{ "version": 3, "sources": ["index.js", "lib/parsers/csw/parse-csw-capabilities.js", "lib/parsers/csw/parse-exception-report.js", "csw-capabilities-loader.js", "lib/parsers/csw/parse-csw-domain.js", "csw-domain-loader.js", "lib/parsers/csw/parse-csw-records.js", "csw-records-loader.js", "lib/parsers/wms/parse-wms-error.js", "wms-error-loader.js", "lib/parsers/wms/parse-wms-capabilities.js", "lib/parsers/xml/parse-xml-helpers.js", "wms-capabilities-loader.js", "lib/parsers/wms/parse-wms-features.js", "wip/wms-feature-info-loader.js", "lib/parsers/wms/parse-wms-layer-description.js", "wip/wms-layer-description-loader.js", "lib/parsers/wfs/parse-wfs-capabilities.js", "wfs-capabilities-loader.js", "lib/parsers/gml/parse-gml.js", "lib/parsers/gml/deep-strict-equal.js", "gml-loader.js", "services/ogc/wms-service.js", "services/arcgis/arcgis-server.js", "services/arcgis/arcgis-image-server.js", "lib/deprecated/create-image-source.js"], "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { CSWCapabilitiesLoader } from \"./csw-capabilities-loader.js\";\nexport { CSWDomainLoader } from \"./csw-domain-loader.js\";\nexport { CSWRecordsLoader } from \"./csw-records-loader.js\";\n// WMS - Web Map Service\nexport { WMSErrorLoader } from \"./wms-error-loader.js\";\nexport { WMSCapabilitiesLoader } from \"./wms-capabilities-loader.js\";\nexport { WMSFeatureInfoLoader as _WMSFeatureInfoLoader } from \"./wip/wms-feature-info-loader.js\";\nexport { WMSLayerDescriptionLoader as _WMSLayerDescriptionLoader } from \"./wip/wms-layer-description-loader.js\";\nexport { WFSCapabilitiesLoader as _WFSCapabilitiesLoader } from \"./wfs-capabilities-loader.js\";\nexport { GMLLoader as _GMLLoader } from \"./gml-loader.js\";\n// EXPERIMENTAL: DATA SOURCES\n// OGC Services\n// export {CSWSource} from './services/ogc/csw-service';\nexport { WMSSource, WMSImageSource } from \"./services/ogc/wms-service.js\";\n// ArcGIS SourceLoaders\nexport { getArcGISServices as _getArcGISServices } from \"./services/arcgis/arcgis-server.js\";\nexport { ArcGISImageServerSource as _ArcGISImageServerSource } from \"./services/arcgis/arcgis-image-server.js\";\n// DEPRECATED: TODO - remove once deck.gl has been udpated\nexport { ImageSource } from '@loaders.gl/loader-utils';\nexport { createImageSource } from \"./lib/deprecated/create-image-source.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { XMLLoader } from '@loaders.gl/xml';\nimport { parseExceptionReport } from \"./parse-exception-report.js\";\n/**\n * Parses a typed data structure from raw XML for `GetCapabilities` response\n * @note Error handlings is fairly weak\n */\nexport function parseCSWCapabilities(text, options) {\n const parsedXML = XMLLoader.parseTextSync?.(text, {\n ...options,\n xml: {\n ...options?.xml,\n removeNSPrefix: true,\n uncapitalizeKeys: true\n }\n });\n parseExceptionReport(parsedXML);\n const xmlCapabilities = parsedXML.capabilities || parsedXML;\n return xmlCapabilities;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// import type {XMLLoaderOptions} from '@loaders.gl/xml';\n// import {XMLLoader} from '@loaders.gl/xml';\n/**\n * Parses a typed data structure from raw XML for `GetDomain` response\n * @note Error handlings is fairly weak\n */\nexport function parseExceptionReport(parsedXML) {\n // const parsedXML = XMLLoader.parseTextSync?.(text, {\n // ...options,\n // xml: {\n // ...options?.xml,\n // removeNSPrefix: true,\n // uncapitalizeKeys: true\n // }\n // });\n const exceptionReport = parsedXML.exceptionReport;\n if (!exceptionReport) {\n return;\n }\n const errorMessage = exceptionReport.exception?.exceptionText ||\n exceptionReport.exception?.exceptionCode ||\n exceptionReport.exception?.locator ||\n 'server error';\n throw new Error(`Catalog Server: ${errorMessage}`);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseCSWCapabilities } from \"./lib/parsers/csw/parse-csw-capabilities.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.1\" !== 'undefined' ? \"4.3.1\" : 'latest';\n/**\n * Loader for the response to the CSW GetCapability request\n */\nexport const CSWCapabilitiesLoader = {\n dataType: null,\n batchType: null,\n id: 'csw-capabilities',\n name: 'CSW Capabilities',\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.csw_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n csw: {}\n },\n parse: async (arrayBuffer, options) => parseCSWCapabilities(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseCSWCapabilities(text, options)\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith(' => values[]\n domainValue.values = domainValue.listOfValues?.value;\n delete domainValue.listOfValues;\n }\n return xmlDomain;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseCSWDomain } from \"./lib/parsers/csw/parse-csw-domain.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.1\" !== 'undefined' ? \"4.3.1\" : 'latest';\n/**\n * Loader for the response to the CSW GetCapability request\n */\nexport const CSWDomainLoader = {\n dataType: null,\n batchType: null,\n id: 'csw-domain',\n name: 'CSW Domain',\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.csw_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n csw: {}\n },\n parse: async (arrayBuffer, options) => parseCSWDomain(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseCSWDomain(text, options)\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith(' parseCSWRecords(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseCSWRecords(text, options)\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith(' parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseSync: (arrayBuffer, options) => parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseTextSync(text, options)\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith(' 0) {\n return {\n mimeTypes: getXMLStringArray(xmlException)\n };\n }\n return undefined;\n}\n/** Extract request data */\n// eslint-disable-next-line complexity, max-statements\nfunction extractLayer(xmlLayer) {\n const layer = {\n // All layers must have a title\n title: String(xmlLayer?.Title || ''),\n // Name is required only if renderable\n name: xmlLayer?.Name && String(xmlLayer?.Name),\n abstract: xmlLayer?.Name && String(xmlLayer?.Abstract),\n keywords: getXMLStringArray(xmlLayer.KeywordList?.Keyword)\n };\n // WMS 1.3.0 changes SRS to CRS\n const crs = xmlLayer?.CRS || xmlLayer?.SRS;\n if (crs && Array.isArray(crs) && crs.every((_) => typeof _ === 'string')) {\n layer.crs = crs;\n }\n // v1.3.0 extract simple geographic bounding box\n let geographicBoundingBox = xmlLayer?.EX_GeographicBoundingBox && extractEXBoundingBox(xmlLayer?.EX_GeographicBoundingBox);\n if (geographicBoundingBox) {\n layer.geographicBoundingBox = geographicBoundingBox;\n }\n // v1.1.1 extract simple geographic bounding box\n geographicBoundingBox =\n xmlLayer?.LatLonBoundingBox && extractLatLonBoundingBox(xmlLayer?.LatLonBoundingBox);\n if (geographicBoundingBox) {\n layer.geographicBoundingBox = geographicBoundingBox;\n }\n // Extract per-CRS bounding boxes\n const boundingBoxes = xmlLayer?.BoundingBox && extractWMSBoundingBoxes(xmlLayer?.BoundingBox);\n if (boundingBoxes && boundingBoxes.length > 0) {\n layer.boundingBoxes = boundingBoxes;\n }\n // Extract dimensions\n const xmlDimensions = getXMLArray(xmlLayer?.Dimension);\n const dimensions = xmlDimensions.map((xml) => extractDimension(xml));\n if (dimensions.length) {\n layer.dimensions = dimensions;\n }\n if (xmlLayer?.opaque) {\n layer.opaque = getXMLBoolean(xmlLayer?.opaque);\n }\n if (xmlLayer?.cascaded) {\n layer.cascaded = getXMLBoolean(xmlLayer?.cascaded);\n }\n if (xmlLayer?.queryable) {\n layer.queryable = getXMLBoolean(xmlLayer?.queryable);\n }\n // Single layer is not represented as array in XML\n const xmlLayers = getXMLArray(xmlLayer?.Layer);\n const layers = [];\n for (const xmlSubLayer of xmlLayers) {\n layers.push(extractLayer(xmlSubLayer));\n }\n if (layers.length > 0) {\n layer.layers = layers;\n }\n // Clean up object\n for (const [key, value] of Object.entries(layer)) {\n if (value === undefined) {\n delete layer[key];\n }\n }\n return layer;\n}\n/** WMS 1.3.0 Loosely defined geospatial bounding box in unspecified CRS for quick content searches */\nfunction extractEXBoundingBox(xmlBoundingBox) {\n const { westBoundLongitude: w, northBoundLatitude: n, eastBoundLongitude: e, southBoundLatitude: s } = xmlBoundingBox;\n return [\n [w, s],\n [e, n]\n ];\n}\n/** WMS 1.1.1 Loosely defined geospatial bounding box in unspecified CRS for quick content searches */\nfunction extractLatLonBoundingBox(xmlBoundingBox) {\n const { minx, miny, maxx, maxy } = xmlBoundingBox;\n return [\n [minx, miny],\n [maxx, maxy]\n ];\n}\n/** Loosely defined geospatial bounding box in unspecified CRS for quick content searches */\nfunction extractWMSBoundingBoxes(xmlBoundingBoxes) {\n const xmlBoxes = getXMLArray(xmlBoundingBoxes);\n return xmlBoxes.map((xmlBox) => extractWMSBoundingBox(xmlBox));\n}\n/** Loosely defined geospatial bounding box in unspecified CRS for quick content searches */\nfunction extractWMSBoundingBox(xmlBoundingBox) {\n const { CRS, SRS, minx, miny, maxx, maxy, resx, resy } = xmlBoundingBox;\n const boundingBox = {\n // CRS in 1.3.0, SRS in 1.1.1\n crs: CRS || SRS,\n boundingBox: [\n [getXMLFloat(minx), getXMLFloat(miny)],\n [getXMLFloat(maxx), getXMLFloat(maxy)]\n ]\n };\n if (resx) {\n boundingBox.xResolution = resx;\n }\n if (resy) {\n boundingBox.yResolution = resy;\n }\n return boundingBox;\n}\n/**\n * Extracts optional WMS Dimension layer field\n * @param xmlDimension\n * @example 2001-01-01/2018-01-01/P1Y\n * @see https://mapserver.org/ogc/wms_dimension.html\n */\nfunction extractDimension(xmlDimension) {\n const { name, units, value: extent } = xmlDimension;\n const dimension = { name, units, extent };\n if (xmlDimension.unitSymbol) {\n dimension.unitSymbol = xmlDimension.unitSymbol;\n }\n if (xmlDimension.default) {\n dimension.defaultValue = xmlDimension.default;\n }\n if (xmlDimension.multipleValues) {\n dimension.multipleValues = getXMLBoolean(xmlDimension.multipleValues);\n }\n if (xmlDimension.nearestValue) {\n dimension.nearestValue = getXMLBoolean(xmlDimension.nearestValue);\n }\n if (xmlDimension.current) {\n dimension.current = getXMLBoolean(xmlDimension.current);\n }\n return dimension;\n}\n/** Traverse layers and inject missing props from parents */\n// eslint-disable-next-line complexity\nfunction addInheritedLayerProps(layer, parent) {\n if (parent?.geographicBoundingBox && !layer.geographicBoundingBox) {\n layer.geographicBoundingBox = [...parent.geographicBoundingBox];\n }\n if (parent?.crs && !layer.crs) {\n layer.crs = [...parent.crs];\n }\n if (parent?.boundingBoxes && !layer.boundingBoxes) {\n layer.boundingBoxes = [...parent.boundingBoxes];\n }\n if (parent?.dimensions && !layer.dimensions) {\n layer.dimensions = [...parent.dimensions];\n }\n for (const subLayer of layer.layers || []) {\n addInheritedLayerProps(subLayer, layer);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/** A single element of an array is not represented as an array in XML */\nexport function getXMLArray(xmlValue) {\n // Already an array, return as is\n if (Array.isArray(xmlValue)) {\n return xmlValue;\n }\n // Single value, wrap in array\n if (xmlValue) {\n return [xmlValue];\n }\n // nullish, return empty array\n return [];\n}\n/** Get a list of strings from XML */\nexport function getXMLStringArray(xmlValue) {\n const xmlArray = getXMLArray(xmlValue);\n if (xmlArray.length > 0 && xmlArray.every((_) => typeof _ === 'string')) {\n return xmlArray;\n }\n // TODO - error handling?\n return [];\n}\n/** Get XML float */\nexport function getXMLFloat(xmlValue, defaultValue = undefined) {\n switch (typeof xmlValue) {\n case 'number':\n return xmlValue;\n case 'string':\n return parseFloat(xmlValue);\n default:\n return undefined;\n }\n}\n/** Get XML integer */\nexport function getXMLInteger(xmlValue, defaultValue = undefined) {\n switch (typeof xmlValue) {\n case 'number':\n return xmlValue;\n case 'string':\n return parseInt(xmlValue, 10);\n default:\n return undefined;\n }\n}\n/** Somewhat arbitrary boolean parsing */\nexport function getXMLBoolean(xmlValue) {\n switch (xmlValue) {\n case 'true':\n return true;\n case 'false':\n return false;\n case '1':\n return true;\n case '0':\n return false;\n default:\n return false;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseWMSCapabilities } from \"./lib/parsers/wms/parse-wms-capabilities.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.1\" !== 'undefined' ? \"4.3.1\" : 'latest';\n/**\n * Loader for the response to the WMS GetCapability request\n */\nexport const WMSCapabilitiesLoader = {\n dataType: null,\n batchType: null,\n id: 'wms-capabilities',\n name: 'WMS Capabilities',\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.wms_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n wms: {}\n },\n parse: async (arrayBuffer, options) => \n // TODO pass in XML options\n parseWMSCapabilities(new TextDecoder().decode(arrayBuffer), options?.wms),\n parseTextSync: (text, options) => \n // TODO pass in XML options\n parseWMSCapabilities(text, options?.wms)\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith(' extractFeature(xmlFeature))\n };\n}\nfunction extractFeature(xmlFeature) {\n const xmlFields = xmlFeature || {};\n // TODO - not correct\n return {\n attributes: xmlFields,\n type: '',\n bounds: { bottom: 0, top: 0, left: 0, right: 0 }\n };\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\nimport { WMSCapabilitiesLoader } from \"../wms-capabilities-loader.js\";\nimport { parseWMSFeatureInfo } from \"../lib/parsers/wms/parse-wms-features.js\";\n/**\n * Loader for the response to the WMS GetFeatureInfo request\n */\nexport const WMSFeatureInfoLoader = {\n ...WMSCapabilitiesLoader,\n dataType: null,\n id: 'wms-feature-info',\n name: 'WMS FeatureInfo',\n parse: async (arrayBuffer, options) => parseWMSFeatureInfo(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseWMSFeatureInfo(text, options)\n};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { XMLLoader } from '@loaders.gl/xml';\n/**\n * Parses a typed data structure from raw XML for `GetFeatureInfo` response\n * @note Error handlings is fairly weak\n */\nexport function parseWMSLayerDescription(text, options) {\n const parsedXML = XMLLoader.parseTextSync?.(text, options);\n // TODO - implement parser\n return parsedXML;\n}\n", "// loaders.gl, MIT license\nimport { WMSCapabilitiesLoader } from \"../wms-capabilities-loader.js\";\nimport { parseWMSLayerDescription } from \"../lib/parsers/wms/parse-wms-layer-description.js\";\n/**\n * Loader for the response to the WMS DescribeLayer request\n */\nexport const WMSLayerDescriptionLoader = {\n ...WMSCapabilitiesLoader,\n dataType: null,\n id: 'wms-layer-description',\n name: 'WMS DescribeLayer',\n parse: async (arrayBuffer, options) => parseWMSLayerDescription(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseWMSLayerDescription(text, options)\n};\n", "// loaders.gl, MIT license\nimport { XMLLoader } from '@loaders.gl/xml';\n/**\n * Parses a typed data structure from raw XML for `GetCapabilities` response\n * @note Error handlings is fairly weak\n */\nexport function parseWFSCapabilities(text, options) {\n const parsedXML = XMLLoader.parseTextSync?.(text, {\n ...options,\n xml: {\n ...options?.xml,\n removeNSPrefix: true,\n uncapitalizeKeys: true\n }\n });\n const xmlCapabilities = parsedXML.Capabilities || parsedXML;\n return xmlCapabilities;\n}\n", "// loaders.gl, MIT license\nimport { parseWFSCapabilities } from \"./lib/parsers/wfs/parse-wfs-capabilities.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.1\" !== 'undefined' ? \"4.3.1\" : 'latest';\n/**\n * Loader for the response to the WFS GetCapability request\n * @deprecated Warning: this loader is still experimental and incomplete\n */\nexport const WFSCapabilitiesLoader = {\n dataType: null,\n batchType: null,\n id: 'wfs-capabilities',\n name: 'WFS Capabilities',\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.wfs_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n wfs: {}\n },\n parse: async (arrayBuffer, options) => parseWFSCapabilities(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseWFSCapabilities(text, options)\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith(' 0 points`);\n }\n return points;\n}\nexport function parseCurveSegments(xml, options, context) {\n const points = [];\n for (const [childName, childXML] of Object.entries(xml)) {\n switch (childName) {\n case 'gml:LineStringSegment':\n const points2 = parseLinearRingOrLineString(childXML, options, context);\n // remove overlapping\n const end = points[points.length - 1];\n const start = points2[0];\n if (end && start && deepStrictEqual(end, start)) {\n points2.shift();\n }\n points.push(...points2);\n break;\n default:\n continue;\n }\n }\n if (points.length === 0) {\n throw new Error('gml:Curve > gml:segments must have > 0 points');\n }\n return points;\n}\nexport function parseRing(xml, options, context) {\n const childContext = createChildContext(xml, options, context);\n const points = [];\n for (const [childName, childXML] of Object.entries(xml)) {\n switch (childName) {\n case 'gml:curveMember':\n let points2;\n const lineString = findIn(childXML, 'gml:LineString');\n if (lineString) {\n points2 = parseLinearRingOrLineString(lineString, options, childContext);\n }\n else {\n const segments = findIn(childXML, 'gml:Curve', 'gml:segments');\n if (!segments) {\n throw new Error(`invalid ${childName} element`);\n }\n points2 = parseCurveSegments(segments, options, childContext);\n }\n // remove overlapping\n const end = points[points.length - 1];\n const start = points2[0];\n if (end && start && deepStrictEqual(end, start)) {\n points2.shift();\n }\n points.push(...points2);\n break;\n }\n }\n if (points.length < 4) {\n throw new Error(`${xml.name} must have >= 4 points`);\n }\n return points;\n}\nexport function parseExteriorOrInterior(xml, options, context) {\n const linearRing = findIn(xml, 'gml:LinearRing');\n if (linearRing) {\n return parseLinearRingOrLineString(linearRing, options, context);\n }\n const ring = findIn(xml, 'gml:Ring');\n if (!ring) {\n throw new Error(`invalid ${xml.name} element`);\n }\n return parseRing(ring, options, context);\n}\nexport function parsePolygonOrRectangle(xml, options, context) {\n // or PolygonPatch\n const childContext = createChildContext(xml, options, context);\n const exterior = findIn(xml, 'gml:exterior');\n if (!exterior) {\n throw new Error(`invalid ${xml.name} element`);\n }\n const pointLists = [parseExteriorOrInterior(exterior, options, childContext)];\n for (const [childName, childXML] of Object.entries(xml)) {\n switch (childName) {\n case 'gml:interior':\n pointLists.push(parseExteriorOrInterior(childXML, options, childContext));\n break;\n }\n }\n return pointLists;\n}\nexport function parseSurface(xml, options, context) {\n const childContext = createChildContext(xml, options, context);\n const patches = findIn(xml, 'gml:patches');\n if (!patches) {\n throw new Error(`invalid ${xml.name} element`);\n }\n const polygons = [];\n for (const [childName, childXML] of Object.entries(xml)) {\n switch (childName) {\n case 'gml:PolygonPatch':\n case 'gml:Rectangle':\n polygons.push(parsePolygonOrRectangle(childXML, options, childContext));\n break;\n default:\n continue;\n }\n }\n if (polygons.length === 0) {\n throw new Error(`${xml.name} must have > 0 polygons`);\n }\n return polygons;\n}\nexport function parseCompositeSurface(xml, options, context) {\n const childContext = createChildContext(xml, options, context);\n const polygons = [];\n for (const [childName, childXML] of Object.entries(xml)) {\n switch (childName) {\n case 'gml:surfaceMember':\n case 'gml:surfaceMembers':\n const [c2Name, c2Xml] = getFirstKeyValue(childXML);\n switch (c2Name) {\n case 'gml:Surface':\n polygons.push(...parseSurface(c2Xml, options, childContext));\n break;\n case 'gml:Polygon':\n polygons.push(parsePolygonOrRectangle(c2Xml, options, childContext));\n break;\n }\n break;\n }\n }\n if (polygons.length === 0) {\n throw new Error(`${xml.name} must have > 0 polygons`);\n }\n return polygons;\n}\nexport function parseMultiSurface(xml, options, context) {\n let el = xml;\n const surfaceMembers = findIn(xml, 'gml:LinearRing');\n if (surfaceMembers) {\n el = surfaceMembers;\n }\n const polygons = [];\n for (const [childName, childXML] of Object.entries(el)) {\n switch (childName) {\n case 'gml:Surface':\n const polygons2 = parseSurface(childXML, options, context);\n polygons.push(...polygons2);\n break;\n case 'gml:surfaceMember':\n const polygons3 = parseSurfaceMember(childXML, options, context);\n polygons.push(...polygons3);\n break;\n case 'gml:surfaceMembers':\n const polygonXML = findIn(childXML, 'gml:Polygon');\n for (const surfaceMemberXML of polygonXML) {\n const polygons3 = parseSurfaceMember(surfaceMemberXML, options, context);\n polygons.push(...polygons3);\n }\n break;\n }\n }\n if (polygons.length === 0) {\n throw new Error(`${xml.name} must have > 0 polygons`);\n }\n return polygons;\n}\nfunction parseSurfaceMember(xml, options, context) {\n const [childName, childXml] = getFirstKeyValue(xml);\n switch (childName) {\n case 'gml:CompositeSurface':\n return parseCompositeSurface(childXml, options, context);\n case 'gml:Surface':\n return parseSurface(childXml, options, context);\n case 'gml:Polygon':\n return [parsePolygonOrRectangle(childXml, options, context)];\n }\n throw new Error(`${childName} must have polygons`);\n}\n// Helpers\nfunction textOf(el) {\n if (typeof el !== 'string') {\n throw new Error('expected string');\n }\n return el;\n}\nfunction findIn(root, ...tags) {\n let el = root;\n for (const tag of tags) {\n const child = el[tag];\n if (!child) {\n return null;\n }\n el = child;\n }\n return el;\n}\n/** @returns the first [key, value] pair in an object, or ['', null] if empty object */\nfunction getFirstKeyValue(object) {\n if (object && typeof object === 'object') {\n for (const [key, value] of Object.entries(object)) {\n return [key, value];\n }\n }\n return ['', null];\n}\n/** A bit heavyweight for just tracking dimension? */\nfunction createChildContext(xml, options, context) {\n const srsDimensionAttribute = xml.attributes && xml.attributes.srsDimension;\n if (srsDimensionAttribute) {\n const srsDimension = parseInt(srsDimensionAttribute);\n if (Number.isNaN(srsDimension) || srsDimension <= 0) {\n throw new Error(`invalid srsDimension attribute value \"${srsDimensionAttribute}\", expected a positive integer`);\n }\n const childContext = Object.create(context);\n childContext.srsDimension = srsDimension;\n return childContext;\n }\n return context;\n}\n", "// https://github.com/nodejs/node/commit/c1d82ac2ff15594840e2a1b9531b506ae067ed27;\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n/** @todo replace this ridiculous choice of deepStrictEqual */\n// eslint-disable-next-line complexity\nexport function deepStrictEqual(actual, expected, strict) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n // } else if (actual instanceof Buffer && expected instanceof Buffer) {\n // return compare(actual, expected) === 0;\n // // 7.2. If the expected value is a Date object, the actual value is\n // // equivalent if it is also a Date object that refers to the same time.\n }\n else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n }\n else if (actual instanceof RegExp && expected instanceof RegExp) {\n return (actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase);\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n }\n else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n // eslint-disable-next-line eqeqeq\n return strict ? actual === expected : actual == expected;\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n }\n return objEquiv(actual, expected, strict);\n}\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst pSlice = Array.prototype.slice;\nfunction isPrimitive(arg) {\n return arg === null || (typeof arg !== 'object' && typeof arg !== 'function');\n}\nfunction isArguments(object) {\n // eslint-disable-next-line eqeqeq\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n// eslint-disable-next-line complexity\nfunction objEquiv(a, b, strict) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (isPrimitive(a) || isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n const aIsArgs = isArguments(a);\n const bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepStrictEqual(a, b, strict);\n }\n const ka = Object.keys(a);\n const kb = Object.keys(b);\n let key;\n let i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n // equivalent values for every corresponding key, and\n // ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n // @ts-ignore\n if (!deepStrictEqual(a[key], b[key], strict))\n return false;\n }\n return true;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseGML } from \"./lib/parsers/gml/parse-gml.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.1\" !== 'undefined' ? \"4.3.1\" : 'latest';\n/**\n * Loader for the response to the GML GetCapability request\n */\nexport const GMLLoader = {\n dataType: null,\n batchType: null,\n name: 'GML',\n id: 'gml',\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.gml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n gml: {}\n },\n parse: async (arrayBuffer, options) => parseGML(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseGML(text, options)\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith(' url.toLowerCase().includes('wms'),\n createDataSource: (url, props) => new WMSImageSource(url, props)\n};\n//\n/**\n * The WMSImageSource class provides\n * - provides type safe methods to form URLs to a WMS service\n * - provides type safe methods to query and parse results (and errors) from a WMS service\n * - implements the ImageSource interface\n * @note Only the URL parameter conversion is supported. XML posts are not supported.\n */\nexport class WMSImageSource extends ImageSource {\n /** Base URL to the service */\n url;\n data;\n /** In WMS 1.3.0, replaces references to EPSG:4326 with CRS:84. But not always supported. Default: false */\n substituteCRS84;\n /** In WMS 1.3.0, flips x,y (lng, lat) coordinates for the supplied coordinate systems. Default: ['ESPG:4326'] */\n flipCRS;\n /** Default static WMS parameters */\n wmsParameters;\n /** Default static vendor parameters */\n vendorParameters;\n capabilities = null;\n /** Create a WMSImageSource */\n constructor(url, props) {\n super(props);\n // TODO - defaults such as version, layers etc could be extracted from a base URL with parameters\n // This would make pasting in any WMS URL more likely to make this class just work.\n // const {baseUrl, parameters} = this._parseWMSUrl(props.url);\n this.url = url;\n this.data = url;\n this.substituteCRS84 = props.wms?.substituteCRS84 ?? props.substituteCRS84 ?? false;\n this.flipCRS = ['EPSG:4326'];\n this.wmsParameters = {\n layers: undefined,\n query_layers: undefined,\n styles: undefined,\n version: '1.3.0',\n crs: 'EPSG:4326',\n format: 'image/png',\n info_format: 'text/plain',\n transparent: undefined,\n time: undefined,\n elevation: undefined,\n ...props.wmsParameters, // deprecated\n ...props.wms?.wmsParameters\n };\n this.vendorParameters = props.wms?.vendorParameters || props.vendorParameters || {};\n }\n // ImageSource implementation\n async getMetadata() {\n const capabilities = await this.getCapabilities();\n return this.normalizeMetadata(capabilities);\n }\n async getImage(parameters) {\n // Replace the GetImage `boundingBox` parameter with the WMS flat `bbox` parameter.\n const { boundingBox, bbox, ...rest } = parameters;\n const wmsParameters = {\n bbox: boundingBox ? [...boundingBox[0], ...boundingBox[1]] : bbox,\n ...rest\n };\n return await this.getMap(wmsParameters);\n }\n normalizeMetadata(capabilities) {\n return capabilities;\n }\n // WMS Service API Stubs\n /** Get Capabilities */\n async getCapabilities(wmsParameters, vendorParameters) {\n const url = this.getCapabilitiesURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n const capabilities = await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);\n this.capabilities = capabilities;\n return capabilities;\n }\n /** Get a map image */\n async getMap(wmsParameters, vendorParameters) {\n const url = this.getMapURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n try {\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n }\n catch {\n throw this._parseError(arrayBuffer);\n }\n }\n /** Get Feature Info for a coordinate */\n async getFeatureInfo(wmsParameters, vendorParameters) {\n const url = this.getFeatureInfoURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);\n }\n /** Get Feature Info for a coordinate */\n async getFeatureInfoText(wmsParameters, vendorParameters) {\n const url = this.getFeatureInfoURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return new TextDecoder().decode(arrayBuffer);\n }\n /** Get more information about a layer */\n async describeLayer(wmsParameters, vendorParameters) {\n const url = this.describeLayerURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);\n }\n /** Get an image with a semantic legend */\n async getLegendGraphic(wmsParameters, vendorParameters) {\n const url = this.getLegendGraphicURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n try {\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n }\n catch {\n throw this._parseError(arrayBuffer);\n }\n }\n // Typed URL creators\n // For applications that want full control of fetching and parsing\n /** Generate a URL for the GetCapabilities request */\n getCapabilitiesURL(wmsParameters, vendorParameters) {\n const options = {\n version: this.wmsParameters.version,\n ...wmsParameters\n };\n return this._getWMSUrl('GetCapabilities', options, vendorParameters);\n }\n /** Generate a URL for the GetMap request */\n getMapURL(wmsParameters, vendorParameters) {\n wmsParameters = this._getWMS130Parameters(wmsParameters);\n const options = {\n version: this.wmsParameters.version,\n format: this.wmsParameters.format,\n transparent: this.wmsParameters.transparent,\n time: this.wmsParameters.time,\n elevation: this.wmsParameters.elevation,\n layers: this.wmsParameters.layers,\n styles: this.wmsParameters.styles,\n crs: this.wmsParameters.crs,\n // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n // width: 1200,\n // height: 900,\n ...wmsParameters\n };\n return this._getWMSUrl('GetMap', options, vendorParameters);\n }\n /** Generate a URL for the GetFeatureInfo request */\n getFeatureInfoURL(wmsParameters, vendorParameters) {\n wmsParameters = this._getWMS130Parameters(wmsParameters);\n // Replace the GetImage `boundingBox` parameter with the WMS flat `bbox` parameter.\n const { boundingBox, bbox } = wmsParameters;\n wmsParameters.bbox = boundingBox ? [...boundingBox[0], ...boundingBox[1]] : bbox;\n const options = {\n version: this.wmsParameters.version,\n // query_layers: [],\n // format: this.wmsParameters.format,\n info_format: this.wmsParameters.info_format,\n layers: this.wmsParameters.layers,\n query_layers: this.wmsParameters.query_layers,\n styles: this.wmsParameters.styles,\n crs: this.wmsParameters.crs,\n // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n // width: 1200,\n // height: 900,\n // x: undefined!,\n // y: undefined!,\n ...wmsParameters\n };\n return this._getWMSUrl('GetFeatureInfo', options, vendorParameters);\n }\n /** Generate a URL for the GetFeatureInfo request */\n describeLayerURL(wmsParameters, vendorParameters) {\n const options = {\n version: this.wmsParameters.version,\n ...wmsParameters\n };\n return this._getWMSUrl('DescribeLayer', options, vendorParameters);\n }\n getLegendGraphicURL(wmsParameters, vendorParameters) {\n const options = {\n version: this.wmsParameters.version,\n // format?\n ...wmsParameters\n };\n return this._getWMSUrl('GetLegendGraphic', options, vendorParameters);\n }\n // INTERNAL METHODS\n _parseWMSUrl(url) {\n const [baseUrl, search] = url.split('?');\n const searchParams = search.split('&');\n const parameters = {};\n for (const parameter of searchParams) {\n const [key, value] = parameter.split('=');\n parameters[key] = value;\n }\n return { url: baseUrl, parameters };\n }\n /**\n * Generate a URL with parameters\n * @note case _getWMSUrl may need to be overridden to handle certain backends?\n * @note at the moment, only URLs with parameters are supported (no XML payloads)\n * */\n _getWMSUrl(request, wmsParameters, vendorParameters) {\n let url = this.url;\n let first = true;\n // Add any vendor searchParams\n const allParameters = {\n service: 'WMS',\n version: wmsParameters.version,\n request,\n ...wmsParameters,\n ...this.vendorParameters,\n ...vendorParameters\n };\n // Encode the keys\n const IGNORE_EMPTY_KEYS = ['transparent', 'time', 'elevation'];\n for (const [key, value] of Object.entries(allParameters)) {\n // hack to preserve test cases. Not super clear if keys should be included when values are undefined\n if (!IGNORE_EMPTY_KEYS.includes(key) || value) {\n url += first ? '?' : '&';\n first = false;\n url += this._getURLParameter(key, value, wmsParameters);\n }\n }\n return encodeURI(url);\n }\n _getWMS130Parameters(wmsParameters) {\n const newParameters = { ...wmsParameters };\n if (newParameters.srs) {\n newParameters.crs = newParameters.crs || newParameters.srs;\n delete newParameters.srs;\n }\n return newParameters;\n }\n // eslint-disable-next-line complexity\n _getURLParameter(key, value, wmsParameters) {\n // Substitute by key\n switch (key) {\n case 'crs':\n // CRS was called SRS before WMS 1.3.0\n if (wmsParameters.version !== '1.3.0') {\n key = 'srs';\n }\n else if (this.substituteCRS84 && value === 'EPSG:4326') {\n /** In 1.3.0, replaces references to 'EPSG:4326' with the new backwards compatible CRS:84 */\n // Substitute by value\n value = 'CRS:84';\n }\n break;\n case 'srs':\n // CRS was called SRS before WMS 1.3.0\n if (wmsParameters.version === '1.3.0') {\n key = 'crs';\n }\n break;\n case 'bbox':\n // Coordinate order is flipped for certain CRS in WMS 1.3.0\n const bbox = this._flipBoundingBox(value, wmsParameters);\n if (bbox) {\n value = bbox;\n }\n break;\n case 'x':\n // i is the parameter used in WMS 1.3\n // TODO - change parameter to `i` and convert to `x` if not 1.3\n if (wmsParameters.version === '1.3.0') {\n key = 'i';\n }\n break;\n case 'y':\n // j is the parameter used in WMS 1.3\n // TODO - change parameter to `j` and convert to `y` if not 1.3\n if (wmsParameters.version === '1.3.0') {\n key = 'j';\n }\n break;\n default:\n // do nothing\n }\n key = key.toUpperCase();\n return Array.isArray(value)\n ? `${key}=${value.join(',')}`\n : `${key}=${value ? String(value) : ''}`;\n }\n /** Coordinate order is flipped for certain CRS in WMS 1.3.0 */\n _flipBoundingBox(bboxValue, wmsParameters) {\n // Sanity checks\n if (!Array.isArray(bboxValue) || bboxValue.length !== 4) {\n return null;\n }\n const flipCoordinates = \n // Only affects WMS 1.3.0\n wmsParameters.version === '1.3.0' &&\n // Flip if we are dealing with a CRS that was flipped in 1.3.0\n this.flipCRS.includes(wmsParameters.crs || '') &&\n // Don't flip if we are substituting EPSG:4326 with CRS:84\n !(this.substituteCRS84 && wmsParameters.crs === 'EPSG:4326');\n const bbox = bboxValue;\n return flipCoordinates ? [bbox[1], bbox[0], bbox[3], bbox[2]] : bbox;\n }\n /** Fetches an array buffer and checks the response (boilerplate reduction) */\n async _fetchArrayBuffer(url) {\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return arrayBuffer;\n }\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n _checkResponse(response, arrayBuffer) {\n const contentType = response.headers['content-type'];\n if (!response.ok || WMSErrorLoader.mimeTypes.includes(contentType)) {\n // We want error responses to throw exceptions, the WMSErrorLoader can do this\n const loadOptions = mergeLoaderOptions(this.loadOptions, {\n wms: { throwOnError: true }\n });\n const error = WMSErrorLoader.parseSync?.(arrayBuffer, loadOptions);\n throw new Error(error);\n }\n }\n /** Error situation detected */\n _parseError(arrayBuffer) {\n const error = WMSErrorLoader.parseSync?.(arrayBuffer, this.loadOptions);\n return new Error(error);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * (Recursively) load the service directory from an ArcGIS Server URL\n * @param url\n * @param fetchFile= Optional fetch function override\n * @returns\n */\nexport async function getArcGISServices(url, fetchFile = fetch) {\n if (url.includes('rest/services')) {\n const serverUrl = url.replace(/rest\\/services.*$/i, 'rest/services');\n return loadServiceDirectory(serverUrl, fetchFile, []);\n }\n return null;\n}\nasync function loadServiceDirectory(serverUrl, fetch, path) {\n const serviceUrl = `${serverUrl}/${path.join('/')}`;\n const response = await fetch(`${serviceUrl}?f=pjson`);\n const directory = await response.json();\n const services = extractServices(directory, serviceUrl);\n const folders = (directory.folders || []);\n const promises = folders.map((folder) => loadServiceDirectory(`${serverUrl}`, fetch, [...path, folder]));\n for (const folderServices of await Promise.all(promises)) {\n services.push(...folderServices);\n }\n return services;\n}\nfunction extractServices(directory, url) {\n const arcgisServices = (directory.services || []);\n const services = [];\n for (const service of arcgisServices) {\n services.push({\n name: service.name,\n type: `arcgis-${service.type.toLocaleLowerCase().replace('server', '-server')}`,\n url: `${url}${service.name}/${service.type}`\n });\n }\n return services;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { ImageSource } from '@loaders.gl/loader-utils';\n// import type {ImageSourceProps} from '@loaders.gl/loader-utils';\n// import {ImageSource} from '@loaders.gl/loader-utils';\nexport const ArcGISImageServerSource = {\n name: 'ArcGISImageServer',\n id: 'arcgis-image-server',\n module: 'wms',\n version: '0.0.0',\n extensions: [],\n mimeTypes: [],\n options: {\n 'arcgis-image-server': {\n // TODO - add options here\n }\n },\n type: 'arcgis-image-server',\n fromUrl: true,\n fromBlob: false,\n testURL: (url) => url.toLowerCase().includes('ImageServer'),\n createDataSource: (url, props) => new ArcGISImageSource(url, props)\n};\n/**\n * ArcGIS ImageServer\n * Note - exports a big API, that could be exposed here if there is a use case\n * @see https://developers.arcgis.com/rest/services-reference/enterprise/image-service.htm\n */\nexport class ArcGISImageSource extends ImageSource {\n url;\n data;\n constructor(url, props) {\n super(props);\n this.url = url;\n this.data = url;\n }\n // ImageSource (normalized endpoints)\n async getMetadata() {\n return (await this.metadata());\n // TODO - normalize metadata\n }\n async getImage(parameters) {\n throw new Error('not implemented');\n // TODO - Map generic parameters to ArcGIS specific parameters\n // return await this.exportImage(parameters);\n }\n // ImageServer endpoints\n async metadata() {\n // We just need a JSON parsing...\n // return this.getUrl({path: '', ...options});\n throw new Error('not implemented');\n }\n /**\n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&compressionQuality=&bandIds=&mosaicRule=&renderingRule=&f=image`,\n */\n exportImage(options) {\n // See WMSService.getMap()\n throw new Error('not implemented');\n }\n // URL creators\n metadataURL(options) {\n return `${this.url}?f=pjson`;\n }\n /**\n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?\n // bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&\n // size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&\n // noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&\n // compressionQuality=&bandIds=&mosaicRule=&renderingRule=&\n // f=image\n */\n exportImageURL(options) {\n const bbox = `bbox=${options.bbox[0]},${options.bbox[1]},${options.bbox[2]},${options.bbox[3]}`;\n const size = `size=${options.width},${options.height}`;\n const arcgisOptions = { ...options, bbox, size };\n // @ts-expect-error\n delete arcgisOptions.width;\n // @ts-expect-error\n delete arcgisOptions.height;\n return this.getUrl('exportImage', arcgisOptions);\n }\n // INTERNAL METHODS\n /**\n * @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?\n * @note if override is common, maybe add a callback prop?\n * */\n getUrl(path, options, extra) {\n let url = `${this.url}/${path}`;\n let first = true;\n for (const [key, value] of Object.entries(options)) {\n url += first ? '?' : '&';\n first = false;\n if (Array.isArray(value)) {\n url += `${key.toUpperCase()}=${value.join(',')}`;\n }\n else {\n url += `${key.toUpperCase()}=${value ? String(value) : ''}`;\n }\n }\n return url;\n }\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n async checkResponse(response) {\n if (!response.ok) {\n // } || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {\n // const arrayBuffer = await response.arrayBuffer();\n // const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);\n throw new Error('error');\n }\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { WMSSource } from \"../../services/ogc/wms-service.js\";\nimport { ArcGISImageServerSource } from \"../../services/arcgis/arcgis-image-server.js\";\nconst SOURCES = [WMSSource, ArcGISImageServerSource];\n/**\n * Creates an image source\n * If type is not supplied, will try to automatically detect the the\n * @param url URL to the image source\n * @param type type of source. if not known, set to 'auto'\n * @returns an ImageSource instance\n *\n * @deprecated Use createDataSource from @loaders.gl/core\n */\nexport function createImageSource(props, sources = SOURCES) {\n const { type = 'auto' } = props;\n const source = type === 'auto' ? guessSourceType(props.url, sources) : getSourceOfType(type, sources);\n if (!source) {\n throw new Error('Not a valid image source type');\n }\n return source.createDataSource(props.url, props);\n}\n/** Guess service type from URL */\nfunction getSourceOfType(type, sources) {\n // if (type === 'template') {\n // return ImageSource;\n // }\n for (const source of sources) {\n if (source.type === type) {\n return source;\n }\n }\n return null;\n}\n/** Guess source type from URL */\nfunction guessSourceType(url, sources) {\n for (const source of sources) {\n if (source.testURL && source.testURL(url)) {\n return source;\n }\n }\n return null;\n}\n"], "mappings": "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", "names": ["import_xml", "VERSION", "testXMLFile", "import_xml", "VERSION", "testXMLFile", "import_xml", "VERSION", "testXMLFile", "import_xml", "VERSION", "testXMLFile", "import_xml", "import_xml", "import_xml", "VERSION", "testXMLFile", "import_xml", "rewind", "polygons3", "VERSION", "testXMLFile", "fetch", "import_loader_utils", "import_loader_utils"] }