{"version":3,"file":"WFSCapabilities.js","sources":["../lib/WFSCapabilities.js"],"sourcesContent":["/**\r\n * @module ol/format/WFSCapabilities\r\n */\r\nimport XML from 'ol/format/XML.js';\r\nimport {\r\n getAllTextContent,\r\n makeArrayPusher,\r\n makeObjectPropertyPusher,\r\n makeObjectPropertySetter,\r\n makeStructureNS,\r\n pushParseAndPop,\r\n} from 'ol/xml.js';\r\nimport {readHref} from 'ol/format/xlink.js';\r\nimport {readString} from 'ol/format/xsd.js';\r\n\r\n/**\r\n * @typedef {function(Element, Array<*>): void} Parser\r\n */\r\n\r\n/**\r\n * @const\r\n * @type {Object}\r\n */\r\nconst VERSIONS = {\r\n _200: '2.0.0',\r\n _110: '1.1.0',\r\n _100: '1.0.0',\r\n};\r\n\r\n/**\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {string} WFS version number\r\n */\r\nfunction getVersion(objectStack) {\r\n return objectStack[0].version;\r\n}\r\n/**\r\n * @const\r\n * @type {Array}\r\n */\r\nconst NAMESPACE_URIS = [\r\n null,\r\n 'http://www.opengis.net/fes/2.0',\r\n 'http://www.opengis.net/ows/1.1',\r\n 'http://www.opengis.net/ows',\r\n 'http://www.opengis.net/wfs',\r\n 'http://www.opengis.net/wfs/2.0',\r\n 'http://www.opengis.net/ogc',\r\n 'http://www.opengis.net/gml',\r\n 'http://www.opengis.net/gml/3.2',\r\n];\r\n\r\n/**\r\n * @const\r\n * @type {Object>>}\r\n */\r\nconst PARSERS = {\r\n [VERSIONS._200]: makeStructureNS(NAMESPACE_URIS, {\r\n ServiceIdentification: makeObjectPropertySetter(readServiceIdentification),\r\n ServiceProvider: makeObjectPropertySetter(readServiceProvider),\r\n OperationsMetadata: makeObjectPropertySetter(readOperationsMetadata),\r\n FeatureTypeList: makeObjectPropertySetter(readFeatureTypeList),\r\n Filter_Capabilities: makeObjectPropertySetter(readFilter_Capabilities),\r\n }),\r\n [VERSIONS._110]: makeStructureNS(NAMESPACE_URIS, {\r\n ServiceIdentification: makeObjectPropertySetter(readServiceIdentification),\r\n ServiceProvider: makeObjectPropertySetter(readServiceProvider),\r\n OperationsMetadata: makeObjectPropertySetter(readOperationsMetadata),\r\n FeatureTypeList: makeObjectPropertySetter(readFeatureTypeList),\r\n Filter_Capabilities: makeObjectPropertySetter(readFilter_Capabilities),\r\n }),\r\n [VERSIONS._100]: makeStructureNS(NAMESPACE_URIS, {\r\n Service: makeObjectPropertySetter(readServiceIdentification),\r\n Capability: makeObjectPropertySetter(readCapability),\r\n FeatureTypeList: makeObjectPropertySetter(readFeatureTypeList),\r\n Filter_Capabilities: makeObjectPropertySetter(readFilter_Capabilities),\r\n }),\r\n};\r\n\r\n/**\r\n * @classdesc\r\n * Format for reading WFS capabilities data\r\n *\r\n * @api\r\n */\r\nclass WFSCapabilities extends XML {\r\n constructor() {\r\n super();\r\n\r\n /**\r\n * @type {string|undefined}\r\n */\r\n this.version = undefined;\r\n }\r\n\r\n /**\r\n * @param {Element} node Node.\r\n * @return {Object} Object\r\n */\r\n readFromNode(node) {\r\n this.version = node.getAttribute('version').trim();\r\n const wfsCapabilityObject = pushParseAndPop(\r\n {\r\n version: this.version,\r\n },\r\n PARSERS[this.version],\r\n node,\r\n []\r\n );\r\n return wfsCapabilityObject ? wfsCapabilityObject : null;\r\n }\r\n}\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SERVICE_IDENTIFICATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Name: makeObjectPropertySetter(readString),\r\n Title: makeObjectPropertySetter(readString),\r\n Abstract: makeObjectPropertySetter(readString),\r\n Keywords: makeObjectPropertySetter(function (node, objectStack) {\r\n const version = getVersion(objectStack);\r\n return version === VERSIONS._100\r\n ? readJoinedList(node)\r\n : readKeywordList(node, objectStack);\r\n }),\r\n ServiceType: makeObjectPropertySetter(readString),\r\n ServiceTypeVersion: makeObjectPropertySetter(readString),\r\n Fees: makeObjectPropertySetter(readString),\r\n AccessConstraints: makeObjectPropertySetter(readString),\r\n OnlineResource: makeObjectPropertySetter(readString),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SERVICE_PROVIDER_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n ProviderName: makeObjectPropertySetter(readString),\r\n ServiceContact: makeObjectPropertySetter(readServiceContact),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst OPERATIONS_METADATA_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Operation: makeObjectPropertyPusher(readNamedOperation),\r\n Constraint: makeObjectPropertyPusher(readNamedConstraint),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst CAPABILITY_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Request: makeObjectPropertySetter(readRequests),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SERVICE_CONTACT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n IndividualName: makeObjectPropertySetter(readString),\r\n PositionName: makeObjectPropertySetter(readString),\r\n ContactInfo: makeObjectPropertySetter(readContactInfo),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst CONTACT_INFO_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Phone: makeObjectPropertySetter(readPhone),\r\n Address: makeObjectPropertySetter(readAddress),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst PHONE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Voice: makeObjectPropertySetter(readString),\r\n Facsimile: makeObjectPropertySetter(readString),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst ADDRESS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n DeliveryPoint: makeObjectPropertySetter(readString),\r\n City: makeObjectPropertySetter(readString),\r\n AdministrativeArea: makeObjectPropertySetter(readString),\r\n PostalCode: makeObjectPropertySetter(readString),\r\n Country: makeObjectPropertySetter(readString),\r\n ElectronicMailAddress: makeObjectPropertySetter(readString),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FEATURE_TYPE_LIST_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n FeatureType: makeArrayPusher(readFeatureType),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FEATURE_TYPE_LIST_100_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Operations: makeObjectPropertySetter(readTagList),\r\n FeatureType: makeObjectPropertyPusher(readFeatureType),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FEATURE_TYPE_LIST_110_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Operations: makeObjectPropertySetter(readOperation_110),\r\n FeatureType: makeObjectPropertyPusher(readFeatureType),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FEATURE_TYPE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Name: makeObjectPropertySetter(readString),\r\n Title: makeObjectPropertySetter(readString),\r\n Abstract: makeObjectPropertySetter(readString),\r\n Keywords: makeObjectPropertySetter(function (node, objectStack) {\r\n const version = getVersion(objectStack);\r\n return version === VERSIONS._100\r\n ? readJoinedList(node)\r\n : readKeywordList(node, objectStack);\r\n }),\r\n DefaultSRS: makeObjectPropertySetter(readString),\r\n DefaultCRS: makeObjectPropertySetter(readString), // 1.1.0\r\n OtherSRS: makeObjectPropertyPusher(readString), // 1.1.0\r\n SRS: makeObjectPropertySetter(readString),\r\n WGS84BoundingBox: makeObjectPropertySetter(readWGS84BoundingBox),\r\n MetadataURL: makeObjectPropertySetter(readHrefOrValue),\r\n LatLongBoundingBox: makeObjectPropertySetter(readLatLongBoundingBox), // 1.0.0\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst OPERATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n DCP: makeObjectPropertySetter(readDCP),\r\n Parameter: makeObjectPropertyPusher(readNamedParameter),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst OPERATION_110_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Operation: makeArrayPusher(readString),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst REQUEST_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n DCPType: makeObjectPropertyMerger(readDCPType),\r\n SchemaDescriptionLanguage: makeObjectPropertySetter(readTagList),\r\n ResultFormat: makeObjectPropertySetter(readTagList),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst PARAMETER_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Value: makeObjectPropertyPusher(readString),\r\n AllowedValues: makeObjectPropertySetter(readValueList),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst CONSTRAINT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n NoValues: makeObjectPropertySetter(readString),\r\n DefaultValue: makeObjectPropertySetter(readString),\r\n AllowedValues: makeObjectPropertySetter(readValueList),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst HTTP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Get: makeObjectPropertySetter(readHref),\r\n Post: makeObjectPropertySetter(readHref),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst HTTP_100_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Get: makeObjectPropertySetter(readOnline),\r\n Post: makeObjectPropertySetter(readOnline),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst WGS84_BOUNDINGBOX_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n LowerCorner: makeObjectPropertySetter(readStringCoords),\r\n UpperCorner: makeObjectPropertySetter(readStringCoords),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst DCP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n HTTP: makeObjectPropertySetter(readHTTP),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst DCPTYPE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n HTTP: makeObjectPropertySetter(readHTTP_100),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst KEYWORDLIST_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Keyword: makeArrayPusher(readString),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst VALUELIST_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Value: makeArrayPusher(readString),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FILTER_CAPABILITIES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Conformance: makeObjectPropertySetter(readConformance),\r\n Id_Capabilities: makeObjectPropertySetter(readId_Capabilities),\r\n Scalar_Capabilities: makeObjectPropertySetter(readScalarCapabilities),\r\n Spatial_Capabilities: makeObjectPropertySetter(readSpatialCapabilities),\r\n Temporal_Capabilities: makeObjectPropertySetter(readTemporalCapabilities),\r\n Functions: makeObjectPropertySetter(readFunctions),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst CONFORMANCE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Constraint: makeObjectPropertyPusher(readNamedConstraint),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst ID_CAPABILITIES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n ResourceIdentifier: makeArrayPusher(readNamedResourceIdentifier),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SCALAR_CAPABILITIES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n LogicalOperators: makeObjectPropertySetter(readLogicalOperators),\r\n ComparisonOperators: makeObjectPropertySetter(readComparisonOperators),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SCALAR_CAPABILITIES_110_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n LogicalOperators: makeObjectPropertySetter(readString),\r\n ComparisonOperators: makeObjectPropertySetter(readComparisonOperators),\r\n ArithmeticOperators: makeObjectPropertySetter(readArithmetic_Operators),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SCALAR_CAPABILITIES_100_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Logical_Operators: makeObjectPropertySetter(readString),\r\n Comparison_Operators: makeObjectPropertySetter(readTagList),\r\n Arithmetic_Operators: makeObjectPropertySetter(readArithmetic_Operators),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SPATIAL_CAPABILITIES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n GeometryOperands: makeObjectPropertySetter(readGeometryOperands),\r\n SpatialOperators: makeObjectPropertySetter(readSpatialOperators),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SPATIAL_CAPABILITIES_100_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Spatial_Operators: makeObjectPropertySetter(readTagList),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst TEMPORAL_CAPABILITIES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n TemporalOperands: makeObjectPropertySetter(readTemporalOperands),\r\n TemporalOperators: makeObjectPropertySetter(readTemporalOperators),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FUNCTIONS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Function: makeArrayPusher(readNamedFunction),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FUNCTIONS_100_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Function_Names: makeObjectPropertySetter(readFunction_Names), // 1.0.0\r\n FunctionNames: makeObjectPropertySetter(readFunction_Names), // 1.1.0\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FUNCTION_NAMES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n FunctionName: makeArrayPusher(readFunction_Name), // 1.1.0\r\n Function_Name: makeArrayPusher(readFunction_Name), // 1.0.0\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst FUNCTION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Returns: makeObjectPropertySetter(readString),\r\n Arguments: makeObjectPropertySetter(readArguments),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst ARGUMENTS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Argument: makeArrayPusher(readNamedArgument),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst ARGUMENT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Type: makeObjectPropertySetter(readString),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst LOGICAL_OPERATORS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n LogicalOperator: makeArrayPusher(readNamedOnly),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst COMPARISON_OPERATORS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n ComparisonOperator: makeArrayPusher(readNamedOrValueOnly),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst ARITHMETIC_OPERATORS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n Simple_Arithmetic: makeObjectPropertySetter(readString),\r\n SimpleArithmetic: makeObjectPropertySetter(readString),\r\n Functions: makeObjectPropertySetter(readFunctions100),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst GEOMETRY_OPERANDS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n GeometryOperand: makeArrayPusher(readNamedOrValueOnly),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst SPATIAL_OPERATORS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n SpatialOperator: makeArrayPusher(readNamedOnly),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst TEMPORAL_OPERANDS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n TemporalOperand: makeArrayPusher(readNamedOnly),\r\n});\r\n\r\n/**\r\n * @const\r\n * @type {Object>}\r\n */\r\n// @ts-ignore\r\nconst TEMPORAL_OPERATORS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\r\n TemporalOperator: makeArrayPusher(readNamedOnly),\r\n});\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Service Identification object.\r\n */\r\nfunction readServiceIdentification(node, objectStack) {\r\n return pushParseAndPop({}, SERVICE_IDENTIFICATION_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Service Provider object.\r\n */\r\nfunction readServiceProvider(node, objectStack) {\r\n return pushParseAndPop({}, SERVICE_PROVIDER_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Operations Metadata object.\r\n */\r\nfunction readOperationsMetadata(node, objectStack) {\r\n return pushParseAndPop({}, OPERATIONS_METADATA_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Operations Metadata object.\r\n */\r\nfunction readCapability(node, objectStack) {\r\n return pushParseAndPop({}, CAPABILITY_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} FeatureType list.\r\n */\r\nfunction readFeatureTypeList(node, objectStack) {\r\n const version = getVersion(objectStack);\r\n let featureTypeParser;\r\n if (version === VERSIONS._100) {\r\n featureTypeParser = FEATURE_TYPE_LIST_100_PARSERS;\r\n } else if (version === VERSIONS._110) {\r\n featureTypeParser = FEATURE_TYPE_LIST_110_PARSERS;\r\n } else {\r\n featureTypeParser = FEATURE_TYPE_LIST_PARSERS;\r\n }\r\n return pushParseAndPop(\r\n version === VERSIONS._100 || version === VERSIONS._110 ? {} : [],\r\n featureTypeParser,\r\n node,\r\n objectStack\r\n );\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Serrvice contact object.\r\n */\r\nfunction readServiceContact(node, objectStack) {\r\n return pushParseAndPop({}, SERVICE_CONTACT_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Contact info object.\r\n */\r\nfunction readContactInfo(node, objectStack) {\r\n return pushParseAndPop({}, CONTACT_INFO_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Contact Phone object.\r\n */\r\nfunction readPhone(node, objectStack) {\r\n return pushParseAndPop({}, PHONE_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Contact address object.\r\n */\r\nfunction readAddress(node, objectStack) {\r\n return pushParseAndPop({}, ADDRESS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} DCP object.\r\n */\r\nfunction readDCP(node, objectStack) {\r\n return pushParseAndPop({}, DCP_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} DCP object.\r\n */\r\nfunction readDCPType(node, objectStack) {\r\n return pushParseAndPop({}, DCPTYPE_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Operation object.\r\n */\r\nfunction readOperation(node, objectStack) {\r\n return pushParseAndPop({}, OPERATION_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Operation object.\r\n */\r\nfunction readOperation_110(node, objectStack) {\r\n return pushParseAndPop([], OPERATION_110_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Operation object.\r\n */\r\nfunction readRequest(node, objectStack) {\r\n return pushParseAndPop({}, REQUEST_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Parameter object.\r\n */\r\nfunction readParameter(node, objectStack) {\r\n return getVersion(objectStack) === VERSIONS._110\r\n ? pushParseAndPop({}, PARAMETER_PARSERS, node, objectStack)\r\n : pushParseAndPop({}, PARAMETER_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Constraint object.\r\n */\r\nfunction readConstraint(node, objectStack) {\r\n return pushParseAndPop({}, CONSTRAINT_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} HTTP object.\r\n */\r\nfunction readHTTP(node, objectStack) {\r\n return pushParseAndPop({}, HTTP_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} HTTP object.\r\n */\r\nfunction readHTTP_100(node, objectStack) {\r\n return pushParseAndPop({}, HTTP_100_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} DCP object.\r\n */\r\nfunction readFunction_Names(node, objectStack) {\r\n return pushParseAndPop([], FUNCTION_NAMES_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Named operation object.\r\n */\r\nfunction readNamedOperation(node, objectStack) {\r\n const operation = readOperation(node, objectStack);\r\n if (operation) {\r\n operation['name'] = node.getAttribute('name');\r\n return operation;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Request object.\r\n */\r\nfunction readRequests(node, objectStack) {\r\n const arr = [];\r\n for (const n of node.children) {\r\n const request = readRequest(n, objectStack);\r\n if (request) {\r\n request['name'] = n.tagName;\r\n arr.push(request);\r\n }\r\n }\r\n if (arr.length) {\r\n return arr;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Named Function object.\r\n */\r\nfunction readNamedFunction(node, objectStack) {\r\n const func = readFunction(node, objectStack);\r\n if (func) {\r\n func['name'] = node.getAttribute('name');\r\n return func;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Named Function object.\r\n */\r\nfunction readFunction_Name(node, objectStack) {\r\n const func = readFunction(node, objectStack);\r\n if (func) {\r\n func['name'] = readString(node);\r\n func['nArgs'] = Number(node.getAttribute('nArgs'));\r\n return func;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Named argument object.\r\n */\r\nfunction readNamedArgument(node, objectStack) {\r\n const argument = readArgument(node, objectStack);\r\n if (argument) {\r\n argument['name'] = node.getAttribute('name');\r\n return argument;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Named Parameter object.\r\n */\r\nfunction readNamedParameter(node, objectStack) {\r\n const parameter = readParameter(node, objectStack);\r\n if (parameter) {\r\n parameter['name'] = node.getAttribute('name');\r\n return parameter;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Named Constraint object.\r\n */\r\nfunction readNamedConstraint(node, objectStack) {\r\n const constraint = readConstraint(node, objectStack);\r\n if (constraint) {\r\n constraint['name'] = node.getAttribute('name');\r\n return constraint;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @return {string|undefined} Node name attribute string.\r\n */\r\nfunction readNamedOnly(node) {\r\n return node.getAttribute('name') || undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @return {string|undefined} Node name or value attribute string (useful for compatibility between versions)\r\n */\r\nfunction readNamedOrValueOnly(node) {\r\n return readNamedOnly(node) || readString(node) || undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @return {string|undefined} Node href or value attribute string (useful for compatibility between versions)\r\n */\r\nfunction readHrefOrValue(node) {\r\n return readHref(node) || readString(node) || undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @return {Object|undefined} Named Resource Identifier object.\r\n */\r\nfunction readNamedResourceIdentifier(node) {\r\n return {\r\n name: node.getAttribute('name'),\r\n };\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} WGS84 BoundingBox resource object.\r\n */\r\nfunction readWGS84BoundingBox(node, objectStack) {\r\n return pushParseAndPop({}, WGS84_BOUNDINGBOX_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} LatLong BoundingBox resource object.\r\n */\r\nfunction readLatLongBoundingBox(node, objectStack) {\r\n return [\r\n Number(node.getAttribute('minx')),\r\n Number(node.getAttribute('miny')),\r\n Number(node.getAttribute('maxx')),\r\n Number(node.getAttribute('maxy')),\r\n ];\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Keyword list.\r\n */\r\nfunction readKeywordList(node, objectStack) {\r\n return pushParseAndPop([], KEYWORDLIST_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Value list.\r\n */\r\nfunction readValueList(node, objectStack) {\r\n return pushParseAndPop([], VALUELIST_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Value list.\r\n */\r\nfunction readTagList(node, objectStack) {\r\n const arr = [];\r\n for (const n of node.children) {\r\n const tagName = n.tagName;\r\n // Remove namespace\r\n const splittedTagName = tagName.split(':');\r\n arr.push(splittedTagName[splittedTagName.length - 1]);\r\n }\r\n if (arr.length) {\r\n return arr;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} FeatureTyoe object.\r\n */\r\nfunction readFeatureType(node, objectStack) {\r\n return pushParseAndPop({}, FEATURE_TYPE_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} FilterCapabilities object.\r\n */\r\nfunction readFilter_Capabilities(node, objectStack) {\r\n return pushParseAndPop({}, FILTER_CAPABILITIES_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Conformance object.\r\n */\r\nfunction readConformance(node, objectStack) {\r\n return pushParseAndPop({}, CONFORMANCE_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Id Capabilities object.\r\n */\r\nfunction readId_Capabilities(node, objectStack) {\r\n return getVersion(objectStack) === VERSIONS._110\r\n ? readTagList(node, objectStack)\r\n : pushParseAndPop([], ID_CAPABILITIES_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Scalar Capabilities object.\r\n */\r\nfunction readScalarCapabilities(node, objectStack) {\r\n let scalarParser;\r\n const version = getVersion(objectStack);\r\n if (version === VERSIONS._100) {\r\n scalarParser = SCALAR_CAPABILITIES_100_PARSERS;\r\n } else if (version === VERSIONS._110) {\r\n scalarParser = SCALAR_CAPABILITIES_110_PARSERS;\r\n } else {\r\n scalarParser = SCALAR_CAPABILITIES_PARSERS;\r\n }\r\n return pushParseAndPop({}, scalarParser, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Spatial Capabilities object.\r\n */\r\nfunction readSpatialCapabilities(node, objectStack) {\r\n return pushParseAndPop(\r\n {},\r\n getVersion(objectStack) === VERSIONS._100\r\n ? SPATIAL_CAPABILITIES_100_PARSERS\r\n : SPATIAL_CAPABILITIES_PARSERS,\r\n node,\r\n objectStack\r\n );\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Temporal Capabilities object.\r\n */\r\nfunction readTemporalCapabilities(node, objectStack) {\r\n return pushParseAndPop({}, TEMPORAL_CAPABILITIES_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Functions array.\r\n */\r\nfunction readFunctions(node, objectStack) {\r\n return pushParseAndPop([], FUNCTIONS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Functions object.\r\n */\r\nfunction readFunctions100(node, objectStack) {\r\n return pushParseAndPop({}, FUNCTIONS_100_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Function object.\r\n */\r\nfunction readFunction(node, objectStack) {\r\n return pushParseAndPop({}, FUNCTION_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Logical Operators array.\r\n */\r\nfunction readLogicalOperators(node, objectStack) {\r\n return pushParseAndPop([], LOGICAL_OPERATORS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Comparison Operators array.\r\n */\r\nfunction readComparisonOperators(node, objectStack) {\r\n return pushParseAndPop([], COMPARISON_OPERATORS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Arithmetic Operators object.\r\n */\r\nfunction readArithmetic_Operators(node, objectStack) {\r\n return pushParseAndPop({}, ARITHMETIC_OPERATORS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Geometry Operands array.\r\n */\r\nfunction readGeometryOperands(node, objectStack) {\r\n return pushParseAndPop([], GEOMETRY_OPERANDS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Spatials Operators array.\r\n */\r\nfunction readSpatialOperators(node, objectStack) {\r\n return pushParseAndPop([], SPATIAL_OPERATORS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Temporal Operands array.\r\n */\r\nfunction readTemporalOperands(node, objectStack) {\r\n return pushParseAndPop([], TEMPORAL_OPERANDS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Temporal Operators array.\r\n */\r\nfunction readTemporalOperators(node, objectStack) {\r\n return pushParseAndPop([], TEMPORAL_OPERATORS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Array|undefined} Arguments array.\r\n */\r\nfunction readArguments(node, objectStack) {\r\n return pushParseAndPop([], ARGUMENTS_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n * @return {Object|undefined} Argument object.\r\n */\r\nfunction readArgument(node, objectStack) {\r\n return pushParseAndPop({}, ARGUMENT_PARSERS, node, objectStack);\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @return {Array|undefined} Coordinates array.\r\n */\r\nfunction readStringCoords(node) {\r\n const coords = getAllTextContent(node, false).split(' ');\r\n if (coords.length) {\r\n return coords.map((c) => Number(c));\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param {Node} node Node.\r\n * @param {string} separator separator\r\n * @return {Array|undefined} String array.\r\n */\r\nfunction readJoinedList(node, separator = ', ') {\r\n const value = readString(node);\r\n if (!value) {\r\n return undefined;\r\n }\r\n const arr = value.split(separator);\r\n if (!arr || !arr.length) {\r\n return undefined;\r\n }\r\n return arr;\r\n}\r\n\r\n/**\r\n * @param {Element} node Node.\r\n * @return {string|undefined} online resource attribute.\r\n */\r\nfunction readOnline(node) {\r\n return node.getAttribute('onlineResource');\r\n}\r\n\r\n/**\r\n * Make an object property merger function for adding a property to the\r\n * object at the top of the stack.\r\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\r\n * @param {string} [property] Property.\r\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\r\n * @return {Parser} Parser.\r\n * @template T\r\n */\r\nfunction makeObjectPropertyMerger(valueReader, property, thisArg) {\r\n return (\r\n /**\r\n * @param {Element} node Node.\r\n * @param {Array<*>} objectStack Object stack.\r\n */\r\n function (node, objectStack) {\r\n const value = valueReader.call(\r\n thisArg !== undefined ? thisArg : this,\r\n node,\r\n objectStack\r\n );\r\n if (value !== undefined) {\r\n const object = /** @type {!Object} */ (\r\n objectStack[objectStack.length - 1]\r\n );\r\n const name = property !== undefined ? property : node.localName;\r\n for (const key of Object.keys(value)) {\r\n if (object[name] && key in object[name]) {\r\n object[name][key] = {...object[name][key], ...value[key]};\r\n } else {\r\n object[name] = value;\r\n }\r\n }\r\n }\r\n }\r\n );\r\n}\r\nexport default WFSCapabilities;\r\n"],"names":["makeStructureNS","makeObjectPropertySetter","pushParseAndPop","readString","makeObjectPropertyPusher","makeArrayPusher","readHref","getAllTextContent"],"mappings":"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"}