{
  "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.2\" !== 'undefined' ? \"4.3.2\" : '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('<?xml');\n}\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 `GetDomain` response\n * @note Error handlings is fairly weak\n */\nexport function parseCSWDomain(text, options) {\n    const parsedXML = XMLLoader.parseTextSync?.(text, {\n        ...options,\n        xml: {\n            ...options?.xml,\n            removeNSPrefix: true,\n            uncapitalizeKeys: true,\n            arrayPaths: [\n                'GetDomainResponse.DomainValues',\n                'GetDomainResponse.DomainValues.ListOfValues.value'\n            ]\n        }\n    });\n    parseExceptionReport(parsedXML);\n    const xmlDomain = parsedXML.getDomainResponse;\n    for (const domainValue of xmlDomain.domainValues) {\n        // Drop the nested <listOfValues><value><value><listOfValues>  => 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.2\" !== 'undefined' ? \"4.3.2\" : '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('<?xml');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { convertXMLFieldToArrayInPlace, XMLLoader } from '@loaders.gl/xml';\nimport { parseExceptionReport } from \"./parse-exception-report.js\";\n/**\n * Parses a typed data structure from raw XML for `GetRecords` response\n * @note Error handlings is fairly weak\n */\nexport function parseCSWRecords(text, options) {\n    const parsedXML = XMLLoader.parseTextSync?.(text, {\n        ...options,\n        xml: {\n            ...options?.xml,\n            removeNSPrefix: true,\n            uncapitalizeKeys: true,\n            arrayPaths: [],\n            _fastXML: {\n                ...options?.xml?._fastXML,\n                parseAttributeValue: true\n            }\n        }\n    });\n    parseExceptionReport(parsedXML);\n    const xmlRecords = parsedXML.getRecordsResponse;\n    // Move results to top\n    const elementSet = xmlRecords.searchResults.elementSet;\n    const recordsFieldName = `${elementSet}Record`;\n    xmlRecords.records = xmlRecords.searchResults[recordsFieldName];\n    delete xmlRecords.searchResults[recordsFieldName];\n    convertXMLFieldToArrayInPlace(xmlRecords, 'records');\n    for (const record of xmlRecords.records) {\n        record.boundingBoxes = record.boundingBox;\n        delete record.boundingBox;\n        convertXMLFieldToArrayInPlace(record, 'boundingBoxes');\n        for (const boundingBox of record.boundingBoxes) {\n            boundingBox.value = [\n                boundingBox.upperCorner[0],\n                boundingBox.upperCorner[1],\n                boundingBox.lowerCorner[0],\n                boundingBox.lowerCorner[1]\n            ];\n            delete boundingBox.upperCorner;\n            delete boundingBox.lowerCorner;\n        }\n    }\n    return xmlRecords;\n}\nexport function renameXMLTags(xml, renameKeys) {\n    for (const [oldKey, newKey] of Object.entries(renameKeys)) {\n        xml[newKey] = xml[oldKey];\n        delete xml[oldKey];\n    }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseCSWRecords } from \"./lib/parsers/csw/parse-csw-records.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.2\" !== 'undefined' ? \"4.3.2\" : 'latest';\n/**\n * Loader for the response to the CSW GetCapability request\n */\nexport const CSWRecordsLoader = {\n    dataType: null,\n    batchType: null,\n    id: 'csw-records',\n    name: 'CSW Records',\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) => 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('<?xml');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { XMLLoader } from '@loaders.gl/xml';\n/**\n * Extract an error message from WMS error response XML\n * @param text\n * @param options\n * @returns a string with a human readable message\n */\nexport function parseWMSError(text, options) {\n    const parsedXML = XMLLoader.parseTextSync?.(text, options);\n    const serviceExceptionXML = parsedXML?.ServiceExceptionReport?.ServiceException ||\n        parsedXML?.['ogc:ServiceExceptionReport']?.['ogc:ServiceException'];\n    // Sigh, can be either a string or an object\n    const message = typeof serviceExceptionXML === 'string'\n        ? serviceExceptionXML\n        : serviceExceptionXML.value || serviceExceptionXML.code || 'Unknown error';\n    return message;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseWMSError } from \"./lib/parsers/wms/parse-wms-error.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.2\" !== 'undefined' ? \"4.3.2\" : 'latest';\n/**\n * Loader for the response to the WMS GetCapability request\n */\nexport const WMSErrorLoader = {\n    dataType: null,\n    batchType: null,\n    id: 'wms-error',\n    name: 'WMS Error',\n    module: 'wms',\n    version: VERSION,\n    worker: false,\n    extensions: ['xml'],\n    mimeTypes: ['application/vnd.ogc.se_xml', 'application/xml', 'text/xml'],\n    testText: testXMLFile,\n    options: {\n        wms: {\n            throwOnError: false\n        }\n    },\n    parse: async (arrayBuffer, options) => 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('<?xml');\n}\nfunction parseTextSync(text, options) {\n    const wmsOptions = { ...WMSErrorLoader.options.wms, ...options?.wms };\n    const error = parseWMSError(text, wmsOptions);\n    const message = wmsOptions.minimalErrors ? error : `WMS Service error: ${error}`;\n    if (wmsOptions.throwOnError) {\n        throw new Error(message);\n    }\n    return message;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { XMLLoader } from '@loaders.gl/xml';\nimport { getXMLArray, getXMLStringArray, getXMLInteger, getXMLFloat, getXMLBoolean } from \"../xml/parse-xml-helpers.js\";\n/**\n * Parses a typed data structure from raw XML for `GetCapabilities` response\n * @note Error handlings is fairly weak\n */\nexport function parseWMSCapabilities(xmlText, options) {\n    const parsedXML = XMLLoader.parseTextSync?.(xmlText, options);\n    const xmlCapabilities = parsedXML.WMT_MS_Capabilities || parsedXML.WMS_Capabilities || parsedXML;\n    const capabilities = extractCapabilities(xmlCapabilities);\n    // In case the processed, normalized capabilities do not contain everything,\n    // the user can get the parsed XML structure.\n    if (options?.inheritedLayerProps) {\n        // Traverse layers and inject missing props from parents\n        for (const layer of capabilities.layers) {\n            addInheritedLayerProps(layer, null);\n        }\n        // Not yet implemented\n    }\n    if (options?.includeRawJSON) {\n        capabilities.json = xmlCapabilities;\n    }\n    if (options?.includeXMLText) {\n        capabilities.xml = xmlText;\n    }\n    return capabilities;\n}\n/** Extract typed capability data from XML */\nfunction extractCapabilities(xml) {\n    const capabilities = {\n        version: String(xml.version || ''),\n        name: String(xml.Service?.Name || 'unnamed'),\n        title: xml.Service?.Title ? String(xml.Service?.Title) : undefined,\n        abstract: xml.Service?.Abstract ? String(xml.Service?.Abstract) : undefined,\n        keywords: getXMLStringArray(xml.Service?.KeywordList?.Keyword),\n        fees: xml.Service?.Fees ? JSON.stringify(xml.Service?.Fees) : undefined,\n        accessConstraints: xml.Service?.AccessConstraints\n            ? JSON.stringify(xml.Service?.AccessConstraints)\n            : undefined,\n        layerLimit: getXMLInteger(xml.Service?.LayerLimit),\n        maxWidth: getXMLInteger(xml.Service?.maxWidth),\n        maxHeight: getXMLInteger(xml.Service?.maxHeight),\n        layers: [],\n        requests: extractRequests(xml.Capability?.Request),\n        exceptions: extractExceptions(xml.Exception)\n        // contact field is a mess of largely irrelevant information, put it last\n        // contact: xml.Service?.Contact ? JSON.stringify(xml.Service?.Contact) : undefined,\n    };\n    // LAYERS\n    const xmlLayers = getXMLArray(xml.Capability?.Layer);\n    for (const xmlSubLayer of xmlLayers) {\n        capabilities.layers.push(extractLayer(xmlSubLayer));\n    }\n    // Clean up object\n    for (const [key, value] of Object.entries(capabilities)) {\n        if (value === undefined) {\n            delete capabilities[key];\n        }\n    }\n    return capabilities;\n}\n/** Extract typed request metadata from XML requests field */\nfunction extractRequests(xmlRequests) {\n    const requests = {};\n    for (const [name, xmlRequest] of Object.entries(xmlRequests || {})) {\n        const mimeTypes = getXMLStringArray(xmlRequest?.Format);\n        requests[name] = { mimeTypes };\n    }\n    return requests;\n}\nfunction extractExceptions(xmlException) {\n    const xmlExceptionFormats = getXMLArray(xmlException?.Format);\n    if (xmlExceptionFormats.length > 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 <Dimension name=\"time\" units=\"ISO8601\" default=\"2018-01-01\" nearestValue=\"0\">2001-01-01/2018-01-01/P1Y</Dimension>\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.2\" !== 'undefined' ? \"4.3.2\" : '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('<?xml');\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 parseWMSFeatureInfo(text, options) {\n    const parsedXML = XMLLoader.parseTextSync?.(text, options);\n    const xmlFeatureInfo = parsedXML.FeatureInfoResponse?.FIELDS || [];\n    const xmlFeatures = Array.isArray(xmlFeatureInfo) ? xmlFeatureInfo : [xmlFeatureInfo];\n    return {\n        features: xmlFeatures.map((xmlFeature) => 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.2\" !== 'undefined' ? \"4.3.2\" : '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('<?xml');\n}\nexport const _typecheckWFSCapabilitiesLoader = WFSCapabilitiesLoader;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { XMLLoader } from '@loaders.gl/xml';\nimport { deepStrictEqual } from \"./deep-strict-equal.js\";\nimport rewind from '@turf/rewind';\nfunction noTransform(...coords) {\n    return coords;\n}\n/**\n * Parses a typed data structure from raw XML for GML features\n * @note Error handlings is fairly weak\n */\nexport function parseGML(text, options) {\n    // GeoJSON | null {\n    const parsedXML = XMLLoader.parseTextSync?.(text, options);\n    options = { transformCoords: noTransform, stride: 2, ...options };\n    const context = createChildContext(parsedXML, options, {});\n    return parseGMLToGeometry(parsedXML, options, context);\n}\n/** Parse a GeoJSON geometry from GML XML */\nexport function parseGMLToGeometry(inputXML, options, context) {\n    const childContext = createChildContext(inputXML, options, context);\n    let geometry = null;\n    const [name, xml] = getFirstKeyValue(inputXML);\n    switch (name) {\n        // case 'gml:MultiPoint':\n        //   geometry = {\n        //     type: 'MultiPoint',\n        //     coordinates: parseMultiPoint(xml, options, childContext)\n        //   };\n        //   break;\n        case 'gml:LineString':\n            geometry = {\n                type: 'LineString',\n                coordinates: parseLinearRingOrLineString(xml, options, childContext)\n            };\n            break;\n        // case 'gml:MultiLineString':\n        //   geometry = {\n        //     type: 'MultiLineString',\n        //     coordinates: parseMultiLineString(xml, options, childContext)\n        //   };\n        //   break;\n        case 'gml:Polygon':\n        case 'gml:Rectangle':\n            geometry = {\n                type: 'Polygon',\n                coordinates: parsePolygonOrRectangle(xml, options, childContext)\n            };\n            break;\n        case 'gml:Surface':\n            geometry = {\n                type: 'MultiPolygon',\n                coordinates: parseSurface(xml, options, childContext)\n            };\n            break;\n        case 'gml:MultiSurface':\n            geometry = {\n                type: 'MultiPolygon',\n                coordinates: parseMultiSurface(xml, options, childContext)\n            };\n            break;\n        default:\n            return null;\n    }\n    // todo\n    return rewind(geometry, { mutate: true });\n}\n/** Parse a list of coordinates from a string */\nfunction parseCoords(s, options, context) {\n    const stride = context.srsDimension || options.stride || 2;\n    // Handle white space\n    const coords = s.replace(/\\s+/g, ' ').trim().split(' ');\n    if (coords.length === 0 || coords.length % stride !== 0) {\n        throw new Error(`invalid coordinates list (stride ${stride})`);\n    }\n    const points = [];\n    for (let i = 0; i < coords.length - 1; i += stride) {\n        const point = coords.slice(i, i + stride).map(parseFloat);\n        points.push(options.transformCoords?.(...point) || point);\n    }\n    return points;\n}\nexport function parsePosList(xml, options, context) {\n    const childContext = createChildContext(xml, options, context);\n    const coords = textOf(xml);\n    if (!coords) {\n        throw new Error('invalid gml:posList element');\n    }\n    return parseCoords(coords, options, childContext);\n}\nexport function parsePos(xml, options, context) {\n    const childContext = createChildContext(xml, options, context);\n    const coords = textOf(xml);\n    if (!coords) {\n        throw new Error('invalid gml:pos element');\n    }\n    const points = parseCoords(coords, options, childContext);\n    if (points.length !== 1) {\n        throw new Error('gml:pos must have 1 point');\n    }\n    return points[0];\n}\nexport function parsePoint(xml, options, context) {\n    const childContext = createChildContext(xml, options, context);\n    // TODO AV: Parse other gml:Point options\n    const pos = findIn(xml, 'gml:pos');\n    if (!pos) {\n        throw new Error('invalid gml:Point element, expected a gml:pos subelement');\n    }\n    return parsePos(pos, options, childContext);\n}\nexport function parseLinearRingOrLineString(xml, options, context) {\n    // or a LineStringSegment\n    const childContext = createChildContext(xml, options, context);\n    let points = [];\n    const posList = findIn(xml, 'gml:posList');\n    if (posList) {\n        points = parsePosList(posList, options, childContext);\n    }\n    else {\n        for (const [childName, childXML] of Object.entries(xml)) {\n            switch (childName) {\n                case 'gml:Point':\n                    points.push(parsePoint(childXML, options, childContext));\n                    break;\n                case 'gml:pos':\n                    points.push(parsePos(childXML, options, childContext));\n                    break;\n                default:\n                    continue;\n            }\n        }\n    }\n    if (points.length === 0) {\n        throw new Error(`${xml.name} must have > 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.2\" !== 'undefined' ? \"4.3.2\" : '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('<?xml');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { ImageLoader } from '@loaders.gl/images';\nimport { mergeLoaderOptions, ImageSource } from '@loaders.gl/loader-utils';\nimport { WMSCapabilitiesLoader } from \"../../wms-capabilities-loader.js\";\nimport { WMSFeatureInfoLoader } from \"../../wip/wms-feature-info-loader.js\";\nimport { WMSLayerDescriptionLoader } from \"../../wip/wms-layer-description-loader.js\";\nimport { WMSErrorLoader } from \"../../wms-error-loader.js\";\nexport const WMSSource = {\n    name: 'Web Map Service (OGC WMS)',\n    id: 'wms',\n    module: 'wms',\n    version: '0.0.0',\n    extensions: [],\n    mimeTypes: [],\n    options: {\n        wms: {\n        // TODO - add options here\n        }\n    },\n    type: 'wms',\n    fromUrl: true,\n    fromBlob: false,\n    testURL: (url) => 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"]
}
