@loaders.gl/wms 3.3.0-alpha.10 → 3.3.0-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/dist.min.js +3487 -33
  2. package/dist/es5/gml-loader.js +54 -0
  3. package/dist/es5/gml-loader.js.map +1 -0
  4. package/dist/es5/index.js +31 -3
  5. package/dist/es5/index.js.map +1 -1
  6. package/dist/es5/lib/data-sources/image-data-source.js.map +1 -1
  7. package/dist/es5/lib/data-sources/{wms-data-source.js → wms-service.js} +182 -65
  8. package/dist/es5/lib/data-sources/wms-service.js.map +1 -0
  9. package/dist/es5/lib/gml/parse-gml.js +416 -0
  10. package/dist/es5/lib/gml/parse-gml.js.map +1 -0
  11. package/dist/es5/lib/wfs/parse-wfs.js +43 -0
  12. package/dist/es5/lib/wfs/parse-wfs.js.map +1 -0
  13. package/dist/es5/lib/wfs/wfs-types.js +2 -0
  14. package/dist/es5/lib/wfs/wfs-types.js.map +1 -0
  15. package/dist/es5/lib/{parse-wms.js → wms/parse-wms.js} +33 -2
  16. package/dist/es5/lib/wms/parse-wms.js.map +1 -0
  17. package/dist/es5/{wms-types.js → lib/wms/wms-types.js} +0 -0
  18. package/dist/es5/lib/wms/wms-types.js.map +1 -0
  19. package/dist/es5/lib/wmts/parse-wmts.js +43 -0
  20. package/dist/es5/lib/wmts/parse-wmts.js.map +1 -0
  21. package/dist/es5/lib/wmts/wmts-types.js +2 -0
  22. package/dist/es5/lib/wmts/wmts-types.js.map +1 -0
  23. package/dist/es5/wcs-capabilities-loader.js +54 -0
  24. package/dist/es5/wcs-capabilities-loader.js.map +1 -0
  25. package/dist/es5/wfs-capabilities-loader.js +54 -0
  26. package/dist/es5/wfs-capabilities-loader.js.map +1 -0
  27. package/dist/es5/wms-capabilities-loader.js +2 -2
  28. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  29. package/dist/es5/wms-error-loader.js +54 -0
  30. package/dist/es5/wms-error-loader.js.map +1 -0
  31. package/dist/es5/wms-feature-info-loader.js +1 -1
  32. package/dist/es5/wms-feature-info-loader.js.map +1 -1
  33. package/dist/es5/wms-layer-description-loader.js +3 -3
  34. package/dist/es5/wms-layer-description-loader.js.map +1 -1
  35. package/dist/es5/wmts-capabilities-loader.js +54 -0
  36. package/dist/es5/wmts-capabilities-loader.js.map +1 -0
  37. package/dist/esm/gml-loader.js +25 -0
  38. package/dist/esm/gml-loader.js.map +1 -0
  39. package/dist/esm/index.js +8 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/lib/data-sources/image-data-source.js.map +1 -1
  42. package/dist/esm/lib/data-sources/wms-service.js +156 -0
  43. package/dist/esm/lib/data-sources/wms-service.js.map +1 -0
  44. package/dist/esm/lib/gml/parse-gml.js +348 -0
  45. package/dist/esm/lib/gml/parse-gml.js.map +1 -0
  46. package/dist/esm/lib/wfs/parse-wfs.js +32 -0
  47. package/dist/esm/lib/wfs/parse-wfs.js.map +1 -0
  48. package/dist/esm/lib/wfs/wfs-types.js +2 -0
  49. package/dist/esm/lib/wfs/wfs-types.js.map +1 -0
  50. package/dist/esm/lib/{parse-wms.js → wms/parse-wms.js} +31 -2
  51. package/dist/esm/lib/wms/parse-wms.js.map +1 -0
  52. package/dist/esm/{wms-types.js → lib/wms/wms-types.js} +0 -0
  53. package/dist/esm/lib/wms/wms-types.js.map +1 -0
  54. package/dist/esm/lib/wmts/parse-wmts.js +32 -0
  55. package/dist/esm/lib/wmts/parse-wmts.js.map +1 -0
  56. package/dist/esm/lib/wmts/wmts-types.js +2 -0
  57. package/dist/esm/lib/wmts/wmts-types.js.map +1 -0
  58. package/dist/esm/wcs-capabilities-loader.js +25 -0
  59. package/dist/esm/wcs-capabilities-loader.js.map +1 -0
  60. package/dist/esm/wfs-capabilities-loader.js +25 -0
  61. package/dist/esm/wfs-capabilities-loader.js.map +1 -0
  62. package/dist/esm/wms-capabilities-loader.js +2 -2
  63. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  64. package/dist/esm/wms-error-loader.js +25 -0
  65. package/dist/esm/wms-error-loader.js.map +1 -0
  66. package/dist/esm/wms-feature-info-loader.js +1 -1
  67. package/dist/esm/wms-feature-info-loader.js.map +1 -1
  68. package/dist/esm/wms-layer-description-loader.js +3 -3
  69. package/dist/esm/wms-layer-description-loader.js.map +1 -1
  70. package/dist/esm/wmts-capabilities-loader.js +25 -0
  71. package/dist/esm/wmts-capabilities-loader.js.map +1 -0
  72. package/package.json +15 -5
  73. package/src/gml-loader.ts +40 -0
  74. package/src/index.ts +23 -4
  75. package/src/lib/data-sources/image-data-source.ts +1 -2
  76. package/src/lib/data-sources/wms-service.ts +313 -0
  77. package/src/lib/gml/parse-gml.ts +500 -0
  78. package/src/lib/wfs/parse-wfs.ts +39 -0
  79. package/src/lib/wfs/wfs-types.ts +78 -0
  80. package/src/lib/{parse-wms.ts → wms/parse-wms.ts} +41 -4
  81. package/src/{wms-types.ts → lib/wms/wms-types.ts} +3 -1
  82. package/src/lib/wmts/parse-wmts.ts +39 -0
  83. package/src/lib/wmts/wmts-types.ts +77 -0
  84. package/src/wcs-capabilities-loader.ts +40 -0
  85. package/src/wfs-capabilities-loader.ts +40 -0
  86. package/src/wms-capabilities-loader.ts +1 -1
  87. package/src/wms-error-loader.ts +40 -0
  88. package/src/wms-feature-info-loader.ts +1 -1
  89. package/src/wms-layer-description-loader.ts +4 -4
  90. package/src/wmts-capabilities-loader.ts +40 -0
  91. package/dist/es5/lib/data-sources/wms-data-source.js.map +0 -1
  92. package/dist/es5/lib/parse-wms.js.map +0 -1
  93. package/dist/es5/wms-types.js.map +0 -1
  94. package/dist/esm/lib/data-sources/wms-data-source.js +0 -70
  95. package/dist/esm/lib/data-sources/wms-data-source.js.map +0 -1
  96. package/dist/esm/lib/parse-wms.js.map +0 -1
  97. package/dist/esm/wms-types.js.map +0 -1
  98. package/src/lib/data-sources/wms-data-source.ts +0 -99
@@ -1 +1 @@
1
- {"version":3,"file":"wms-feature-info-loader.js","names":["WMSFeatureInfoLoader","WMSCapabilitiesLoader","name","id","parse","arrayBuffer","options","parseWMSFeatureInfo","TextDecoder","decode","parseTextSync","text","_typecheckWMSFeatureInfoLoader"],"sources":["../../src/wms-feature-info-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {WMSCapabilitiesLoader, WMSLoaderOptions} from './wms-capabilities-loader';\nimport {parseWMSFeatureInfo} from './lib/parse-wms';\n\n/**\n * Loader for the response to the WMS GetFeatureInfo request\n */\nexport const WMSFeatureInfoLoader = {\n ...WMSCapabilitiesLoader,\n\n name: 'WMS FeatureInfo',\n id: 'wms-feature-info',\n\n parse: async (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions) =>\n parseWMSFeatureInfo(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMSLoaderOptions) => parseWMSFeatureInfo(text, options)\n};\n\nexport const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSFeatureInfoLoader;\n"],"mappings":";;;;;;;;;;AAGA;AACA;AAAoD;AAAA;AAK7C,IAAMA,oBAAoB,mCAC5BC,4CAAqB;EAExBC,IAAI,EAAE,iBAAiB;EACvBC,EAAE,EAAE,kBAAkB;EAEtBC,KAAK;IAAA,uEAAE,iBAAOC,WAAwB,EAAEC,OAA0B;MAAA;QAAA;UAAA;YAAA;cAAA,iCAChE,IAAAC,6BAAmB,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACJ,WAAW,CAAC,EAAEC,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EACrEI,aAAa,EAAE,uBAACC,IAAY,EAAEL,OAA0B;IAAA,OAAK,IAAAC,6BAAmB,EAACI,IAAI,EAAEL,OAAO,CAAC;EAAA;AAAA,EAChG;AAAC;AAEK,IAAMM,8BAAgD,GAAGZ,oBAAoB;AAAC"}
1
+ {"version":3,"file":"wms-feature-info-loader.js","names":["WMSFeatureInfoLoader","WMSCapabilitiesLoader","name","id","parse","arrayBuffer","options","parseWMSFeatureInfo","TextDecoder","decode","parseTextSync","text","_typecheckWMSFeatureInfoLoader"],"sources":["../../src/wms-feature-info-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {WMSCapabilitiesLoader, WMSLoaderOptions} from './wms-capabilities-loader';\nimport {parseWMSFeatureInfo} from './lib/wms/parse-wms';\n\n/**\n * Loader for the response to the WMS GetFeatureInfo request\n */\nexport const WMSFeatureInfoLoader = {\n ...WMSCapabilitiesLoader,\n\n name: 'WMS FeatureInfo',\n id: 'wms-feature-info',\n\n parse: async (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions) =>\n parseWMSFeatureInfo(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMSLoaderOptions) => parseWMSFeatureInfo(text, options)\n};\n\nexport const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSFeatureInfoLoader;\n"],"mappings":";;;;;;;;;;AAGA;AACA;AAAwD;AAAA;AAKjD,IAAMA,oBAAoB,mCAC5BC,4CAAqB;EAExBC,IAAI,EAAE,iBAAiB;EACvBC,EAAE,EAAE,kBAAkB;EAEtBC,KAAK;IAAA,uEAAE,iBAAOC,WAAwB,EAAEC,OAA0B;MAAA;QAAA;UAAA;YAAA;cAAA,iCAChE,IAAAC,6BAAmB,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACJ,WAAW,CAAC,EAAEC,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EACrEI,aAAa,EAAE,uBAACC,IAAY,EAAEL,OAA0B;IAAA,OAAK,IAAAC,6BAAmB,EAACI,IAAI,EAAEL,OAAO,CAAC;EAAA;AAAA,EAChG;AAAC;AAEK,IAAMM,8BAAgD,GAAGZ,oBAAoB;AAAC"}
@@ -9,7 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _wmsCapabilitiesLoader = require("./wms-capabilities-loader");
12
- var _parseWms = require("./lib/parse-wms");
12
+ var _parseWms = require("./lib/wms/parse-wms");
13
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
15
  var WMSLayerDescriptionLoader = _objectSpread(_objectSpread({}, _wmsCapabilitiesLoader.WMSCapabilitiesLoader), {}, {
@@ -21,7 +21,7 @@ var WMSLayerDescriptionLoader = _objectSpread(_objectSpread({}, _wmsCapabilities
21
21
  while (1) {
22
22
  switch (_context.prev = _context.next) {
23
23
  case 0:
24
- return _context.abrupt("return", (0, _parseWms.parseWMSFeatureInfo)(new TextDecoder().decode(arrayBuffer), options));
24
+ return _context.abrupt("return", (0, _parseWms.parseWMSLayerDescription)(new TextDecoder().decode(arrayBuffer), options));
25
25
  case 1:
26
26
  case "end":
27
27
  return _context.stop();
@@ -35,7 +35,7 @@ var WMSLayerDescriptionLoader = _objectSpread(_objectSpread({}, _wmsCapabilities
35
35
  return parse;
36
36
  }(),
37
37
  parseTextSync: function parseTextSync(text, options) {
38
- return (0, _parseWms.parseWMSFeatureInfo)(text, options);
38
+ return (0, _parseWms.parseWMSLayerDescription)(text, options);
39
39
  }
40
40
  });
41
41
  exports.WMSLayerDescriptionLoader = WMSLayerDescriptionLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"wms-layer-description-loader.js","names":["WMSLayerDescriptionLoader","WMSCapabilitiesLoader","name","id","parse","arrayBuffer","options","parseWMSFeatureInfo","TextDecoder","decode","parseTextSync","text","_typecheckWMSFeatureInfoLoader"],"sources":["../../src/wms-layer-description-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {WMSCapabilitiesLoader, WMSLoaderOptions} from './wms-capabilities-loader';\nimport {parseWMSFeatureInfo} from './lib/parse-wms';\n\n/**\n * Loader for the response to the WMS GetFeatureInfo request\n */\nexport const WMSLayerDescriptionLoader = {\n ...WMSCapabilitiesLoader,\n\n name: 'WMS DescribeLayer',\n id: 'wms-layer-description',\n\n parse: async (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions) =>\n parseWMSFeatureInfo(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMSLoaderOptions) => parseWMSFeatureInfo(text, options)\n};\n\nexport const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSLayerDescriptionLoader;\n"],"mappings":";;;;;;;;;;AAGA;AACA;AAAoD;AAAA;AAK7C,IAAMA,yBAAyB,mCACjCC,4CAAqB;EAExBC,IAAI,EAAE,mBAAmB;EACzBC,EAAE,EAAE,uBAAuB;EAE3BC,KAAK;IAAA,uEAAE,iBAAOC,WAAwB,EAAEC,OAA0B;MAAA;QAAA;UAAA;YAAA;cAAA,iCAChE,IAAAC,6BAAmB,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACJ,WAAW,CAAC,EAAEC,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EACrEI,aAAa,EAAE,uBAACC,IAAY,EAAEL,OAA0B;IAAA,OAAK,IAAAC,6BAAmB,EAACI,IAAI,EAAEL,OAAO,CAAC;EAAA;AAAA,EAChG;AAAC;AAEK,IAAMM,8BAAgD,GAAGZ,yBAAyB;AAAC"}
1
+ {"version":3,"file":"wms-layer-description-loader.js","names":["WMSLayerDescriptionLoader","WMSCapabilitiesLoader","name","id","parse","arrayBuffer","options","parseWMSLayerDescription","TextDecoder","decode","parseTextSync","text","_typecheckWMSFeatureInfoLoader"],"sources":["../../src/wms-layer-description-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {WMSCapabilitiesLoader, WMSLoaderOptions} from './wms-capabilities-loader';\nimport {parseWMSLayerDescription} from './lib/wms/parse-wms';\n\n/**\n * Loader for the response to the WMS DescribeLayer request\n */\nexport const WMSLayerDescriptionLoader = {\n ...WMSCapabilitiesLoader,\n\n name: 'WMS DescribeLayer',\n id: 'wms-layer-description',\n\n parse: async (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions) =>\n parseWMSLayerDescription(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMSLoaderOptions) => parseWMSLayerDescription(text, options)\n};\n\nexport const _typecheckWMSFeatureInfoLoader: LoaderWithParser = WMSLayerDescriptionLoader;\n"],"mappings":";;;;;;;;;;AAGA;AACA;AAA6D;AAAA;AAKtD,IAAMA,yBAAyB,mCACjCC,4CAAqB;EAExBC,IAAI,EAAE,mBAAmB;EACzBC,EAAE,EAAE,uBAAuB;EAE3BC,KAAK;IAAA,uEAAE,iBAAOC,WAAwB,EAAEC,OAA0B;MAAA;QAAA;UAAA;YAAA;cAAA,iCAChE,IAAAC,kCAAwB,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACJ,WAAW,CAAC,EAAEC,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EAC1EI,aAAa,EAAE,uBAACC,IAAY,EAAEL,OAA0B;IAAA,OAAK,IAAAC,kCAAwB,EAACI,IAAI,EAAEL,OAAO,CAAC;EAAA;AAAA,EACrG;AAAC;AAEK,IAAMM,8BAAgD,GAAGZ,yBAAyB;AAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports._typecheckWMTSCapabilitiesLoader = exports.WMTSCapabilitiesLoader = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _parseWmts = require("./lib/wmts/parse-wmts");
11
+
12
+ var VERSION = typeof "3.3.0-alpha.12" !== 'undefined' ? "3.3.0-alpha.12" : 'latest';
13
+ var WMTSCapabilitiesLoader = {
14
+ name: 'WMTS Capabilities',
15
+ id: 'wmts-capabilities',
16
+ module: 'wms',
17
+ version: VERSION,
18
+ worker: false,
19
+ extensions: ['xml'],
20
+ mimeTypes: ['application/vnd.ogc.wmts_xml', 'application/xml', 'text/xml'],
21
+ testText: testXMLFile,
22
+ options: {
23
+ wms: {}
24
+ },
25
+ parse: function () {
26
+ var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
27
+ return _regenerator.default.wrap(function _callee$(_context) {
28
+ while (1) {
29
+ switch (_context.prev = _context.next) {
30
+ case 0:
31
+ return _context.abrupt("return", (0, _parseWmts.parseWMTSCapabilities)(new TextDecoder().decode(arrayBuffer), options));
32
+ case 1:
33
+ case "end":
34
+ return _context.stop();
35
+ }
36
+ }
37
+ }, _callee);
38
+ }));
39
+ function parse(_x, _x2) {
40
+ return _parse.apply(this, arguments);
41
+ }
42
+ return parse;
43
+ }(),
44
+ parseTextSync: function parseTextSync(text, options) {
45
+ return (0, _parseWmts.parseWMTSCapabilities)(text, options);
46
+ }
47
+ };
48
+ exports.WMTSCapabilitiesLoader = WMTSCapabilitiesLoader;
49
+ function testXMLFile(text) {
50
+ return text.startsWith('<?xml');
51
+ }
52
+ var _typecheckWMTSCapabilitiesLoader = WMTSCapabilitiesLoader;
53
+ exports._typecheckWMTSCapabilitiesLoader = _typecheckWMTSCapabilitiesLoader;
54
+ //# sourceMappingURL=wmts-capabilities-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wmts-capabilities-loader.js","names":["VERSION","WMTSCapabilitiesLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testXMLFile","options","wms","parse","arrayBuffer","parseWMTSCapabilities","TextDecoder","decode","parseTextSync","text","startsWith","_typecheckWMTSCapabilitiesLoader"],"sources":["../../src/wmts-capabilities-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseWMTSCapabilities} from './lib/wmts/parse-wmts';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type WMTSLoaderOptions = LoaderOptions & {\n wmts?: {};\n};\n\n/**\n * Loader for the response to the WMTS GetCapability request\n */\nexport const WMTSCapabilitiesLoader = {\n name: 'WMTS Capabilities',\n id: 'wmts-capabilities',\n\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.wmts_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n wms: {}\n },\n parse: async (arrayBuffer: ArrayBuffer, options?: WMTSLoaderOptions) =>\n parseWMTSCapabilities(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: WMTSLoaderOptions) => parseWMTSCapabilities(text, options)\n};\n\nfunction testXMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n\nexport const _typecheckWMTSCapabilitiesLoader: LoaderWithParser = WMTSCapabilitiesLoader;\n"],"mappings":";;;;;;;;;AAGA;;AAIA,IAAMA,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AASpE,IAAMC,sBAAsB,GAAG;EACpCC,IAAI,EAAE,mBAAmB;EACzBC,EAAE,EAAE,mBAAmB;EAEvBC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,8BAA8B,EAAE,iBAAiB,EAAE,UAAU,CAAC;EAC1EC,QAAQ,EAAEC,WAAW;EACrBC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR,CAAC;EACDC,KAAK;IAAA,uEAAE,iBAAOC,WAAwB,EAAEH,OAA2B;MAAA;QAAA;UAAA;YAAA;cAAA,iCACjE,IAAAI,gCAAqB,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACH,WAAW,CAAC,EAAEH,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EACvEO,aAAa,EAAE,uBAACC,IAAY,EAAER,OAA2B;IAAA,OAAK,IAAAI,gCAAqB,EAACI,IAAI,EAAER,OAAO,CAAC;EAAA;AACpG,CAAC;AAAC;AAEF,SAASD,WAAW,CAACS,IAAY,EAAW;EAE1C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEO,IAAMC,gCAAkD,GAAGpB,sBAAsB;AAAC"}
@@ -0,0 +1,25 @@
1
+
2
+
3
+ import { parseGML } from './lib/gml/parse-gml';
4
+
5
+ const VERSION = typeof "3.3.0-alpha.12" !== 'undefined' ? "3.3.0-alpha.12" : 'latest';
6
+ export const GMLLoader = {
7
+ name: 'GML',
8
+ id: 'gml',
9
+ module: 'wms',
10
+ version: VERSION,
11
+ worker: false,
12
+ extensions: ['xml'],
13
+ mimeTypes: ['application/vnd.ogc.gml_xml', 'application/xml', 'text/xml'],
14
+ testText: testXMLFile,
15
+ options: {
16
+ gml: {}
17
+ },
18
+ parse: async (arrayBuffer, options) => parseGML(new TextDecoder().decode(arrayBuffer), options),
19
+ parseTextSync: (text, options) => parseGML(text, options)
20
+ };
21
+ function testXMLFile(text) {
22
+ return text.startsWith('<?xml');
23
+ }
24
+ export const _typecheckGMLLoader = GMLLoader;
25
+ //# sourceMappingURL=gml-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gml-loader.js","names":["parseGML","VERSION","GMLLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testXMLFile","options","gml","parse","arrayBuffer","TextDecoder","decode","parseTextSync","text","startsWith","_typecheckGMLLoader"],"sources":["../../src/gml-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseGML} from './lib/gml/parse-gml';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GMLLoaderOptions = LoaderOptions & {\n gml?: {};\n};\n\n/**\n * Loader for the response to the GML GetCapability request\n */\nexport const GMLLoader = {\n name: 'GML',\n id: 'gml',\n\n module: 'wms',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/vnd.ogc.gml_xml', 'application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n gml: {}\n },\n parse: async (arrayBuffer: ArrayBuffer, options?: GMLLoaderOptions) =>\n parseGML(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: GMLLoaderOptions) => parseGML(text, options)\n};\n\nfunction testXMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n\nexport const _typecheckGMLLoader: LoaderWithParser = GMLLoader;\n"],"mappings":";;AAGA,SAAQA,QAAQ,QAAO,qBAAqB;;AAI5C,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAS3E,OAAO,MAAMC,SAAS,GAAG;EACvBC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EAETC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,6BAA6B,EAAE,iBAAiB,EAAE,UAAU,CAAC;EACzEC,QAAQ,EAAEC,WAAW;EACrBC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR,CAAC;EACDC,KAAK,EAAE,OAAOC,WAAwB,EAAEH,OAA0B,KAChEZ,QAAQ,CAAC,IAAIgB,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEH,OAAO,CAAC;EAC1DM,aAAa,EAAE,CAACC,IAAY,EAAEP,OAA0B,KAAKZ,QAAQ,CAACmB,IAAI,EAAEP,OAAO;AACrF,CAAC;AAED,SAASD,WAAW,CAACQ,IAAY,EAAW;EAE1C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEA,OAAO,MAAMC,mBAAqC,GAAGnB,SAAS"}
package/dist/esm/index.js CHANGED
@@ -1,7 +1,14 @@
1
1
 
2
2
 
3
+ export { WMSErrorLoader } from './wms-error-loader';
3
4
  export { WMSCapabilitiesLoader } from './wms-capabilities-loader';
4
5
  export { WMSFeatureInfoLoader } from './wms-feature-info-loader';
5
6
  export { WMSLayerDescriptionLoader } from './wms-layer-description-loader';
6
- export { WMSDataSource as _WMSDataSource } from './lib/data-sources/wms-data-source';
7
+ export { WMSService } from './lib/data-sources/wms-service';
8
+
9
+ export { WFSCapabilitiesLoader } from './wfs-capabilities-loader';
10
+
11
+ export { WMTSCapabilitiesLoader } from './wmts-capabilities-loader';
12
+
13
+ export { GMLLoader } from './gml-loader';
7
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["WMSCapabilitiesLoader","WMSFeatureInfoLoader","WMSLayerDescriptionLoader","WMSDataSource","_WMSDataSource"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// WMSCapabilitiesLoader\n\nexport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from './wms-types';\n\nexport type {WMSLoaderOptions} from './wms-capabilities-loader';\nexport {WMSCapabilitiesLoader} from './wms-capabilities-loader';\nexport {WMSFeatureInfoLoader} from './wms-feature-info-loader';\nexport {WMSLayerDescriptionLoader} from './wms-layer-description-loader';\n\nexport type {WMSDataSourceProps as _WMSDataSourceProps} from './lib/data-sources/wms-data-source';\nexport {WMSDataSource as _WMSDataSource} from './lib/data-sources/wms-data-source';\n"],"mappings":";;AAOA,SAAQA,qBAAqB,QAAO,2BAA2B;AAC/D,SAAQC,oBAAoB,QAAO,2BAA2B;AAC9D,SAAQC,yBAAyB,QAAO,gCAAgC;AAGxE,SAAQC,aAAa,IAAIC,cAAc,QAAO,oCAAoC"}
1
+ {"version":3,"file":"index.js","names":["WMSErrorLoader","WMSCapabilitiesLoader","WMSFeatureInfoLoader","WMSLayerDescriptionLoader","WMSService","WFSCapabilitiesLoader","WMTSCapabilitiesLoader","GMLLoader"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// WMS\n\nexport {WMSErrorLoader} from './wms-error-loader';\n\nexport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from './lib/wms/wms-types';\nexport type {WMSLoaderOptions} from './wms-capabilities-loader';\nexport {WMSCapabilitiesLoader} from './wms-capabilities-loader';\nexport {WMSFeatureInfoLoader} from './wms-feature-info-loader';\nexport {WMSLayerDescriptionLoader} from './wms-layer-description-loader';\n\nexport type {WMSServiceProps} from './lib/data-sources/wms-service';\nexport {WMSService} from './lib/data-sources/wms-service';\n\n// WFS\n\nexport type {WFSCapabilities} from './lib/wfs/wfs-types';\nexport type {WFSLoaderOptions} from './wfs-capabilities-loader';\nexport {WFSCapabilitiesLoader} from './wfs-capabilities-loader';\n\n// WMTS\n\nexport type {WMTSCapabilities} from './lib/wmts/wmts-types';\nexport type {WMTSLoaderOptions} from './wmts-capabilities-loader';\nexport {WMTSCapabilitiesLoader} from './wmts-capabilities-loader';\n\n// GML\n\nexport type {GeoJSON} from '@loaders.gl/schema';\nexport type {GMLLoaderOptions} from './gml-loader';\nexport {GMLLoader} from './gml-loader';\n"],"mappings":";;AAIA,SAAQA,cAAc,QAAO,oBAAoB;AAIjD,SAAQC,qBAAqB,QAAO,2BAA2B;AAC/D,SAAQC,oBAAoB,QAAO,2BAA2B;AAC9D,SAAQC,yBAAyB,QAAO,gCAAgC;AAGxE,SAAQC,UAAU,QAAO,gCAAgC;;AAMzD,SAAQC,qBAAqB,QAAO,2BAA2B;;AAM/D,SAAQC,sBAAsB,QAAO,4BAA4B;;AAMjE,SAAQC,SAAS,QAAO,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"image-data-source.js","names":[],"sources":["../../../../src/lib/data-sources/image-data-source.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/*\nimport {ImageType} from '@loaders.gl/images';\n\n/** General data source class *\nexport abstract class DataSource {};\n\n/** Data source that serves data by tile index *\nexport abstract class TileDataSource extends DataSource {};\n\nexport type ImageFeatureInfo = {};\n\nexport type ImageLayerInfo = {};\n\nexport type ImageDataSourceCapabilities = {}\n\n/**\n * ImageDataSource - data sources that allow data to be queried by (geospatial) extents\n * @note\n * - If geospatial, bounding box is expected to be in web mercator coordinates\n *\nexport abstract class ImageDataSource extends DataSource {\n abstract getCapabilities(): Promise<ImageDataSourceCapabilities>;\n abstract getImage({boundingBox, width, height, layers, parameters}): Promise<ImageType>;\n getFeatureInfo({layers, parameters}): Promise<ImageFeatureInfo> {\n throw new Error('not implemented');\n }\n getLayerInfo({layers, parameters}): Promise<ImageLayerInfo> {\n throw new Error('not implemented');\n }\n getLegendImage({layers, parameters}): Promise<ImageType> {\n throw new Error('not implemented');\n }\n}\n\n// Vector Tile Data Source\n\nexport type VectorTileDataSourceCapabilities = {\n // check tile.json\n}\n\nexport type VectorTile = Record<string, any>;\n\nexport abstract class VectorTileDataSource extends TileDataSource {\n abstract getCapabilities(): Promise<VectorTileDataSourceCapabilities>;\n abstract getTile({x, y, z, width, height, layers, parameters}): Promise<VectorTile>;\n}\n\n// Image Tile Data Source\n\nexport type ImageTileDataSourceCapabilities = {\n}\n\nexport type ImageTile = Record<string, any>;\n\nexport type FeatureInfo = {};\n\nexport abstract class ImageTileDataSource extends TileDataSource {\n source: ImageDataSource;\n \n constructor(source: ImageDataSource) {\n super();\n this.source = source;\n }\n\n getCapabilities(): Promise<ImageTileDataSourceCapabilities> {\n return this.source.getCapabilities();\n }\n\n getTile({x, y, z, width, height, layers, parameters}): Promise<ImageType> {\n const boundingBox = this.getBoundingBoxFromTileIndex(x, y, z);\n return this.source.getImage({boundingBox, width, height, layers, parameters});\n }\n\n getFeatureInfo(): FeatureInfo | null {\n return null;\n }\n\n getBoundingBoxFromTileIndex(x: number, y: number, z: number): [number, number, number, number] {\n return [0, 0, 1, 1];\n }\n}\n*/\n"],"mappings":""}
1
+ {"version":3,"file":"image-data-source.js","names":[],"sources":["../../../../src/lib/data-sources/image-data-source.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// from '@loaders.gl/images';\n\n/** General data source class *\nexport abstract class DataSource {};\n\n/** Data source that serves data by tile index *\nexport abstract class TileDataSource extends DataSource {};\n\nexport type ImageFeatureInfo = {};\n\nexport type ImageLayerInfo = {};\n\nexport type ImageDataSourceCapabilities = {}\n\n/**\n * ImageDataSource - data sources that allow data to be queried by (geospatial) extents\n * @note\n * - If geospatial, bounding box is expected to be in web mercator coordinates\n *\nexport abstract class ImageDataSource extends DataSource {\n abstract getCapabilities(): Promise<ImageDataSourceCapabilities>;\n abstract getImage({boundingBox, width, height, layers, parameters}): Promise<ImageType>;\n getFeatureInfo({layers, parameters}): Promise<ImageFeatureInfo> {\n throw new Error('not implemented');\n }\n getLayerInfo({layers, parameters}): Promise<ImageLayerInfo> {\n throw new Error('not implemented');\n }\n getLegendImage({layers, parameters}): Promise<ImageType> {\n throw new Error('not implemented');\n }\n}\n\n// Vector Tile Data Source\n\nexport type VectorTileDataSourceCapabilities = {\n // check tile.json\n}\n\nexport type VectorTile = Record<string, any>;\n\nexport abstract class VectorTileDataSource extends TileDataSource {\n abstract getCapabilities(): Promise<VectorTileDataSourceCapabilities>;\n abstract getTile({x, y, z, width, height, layers, parameters}): Promise<VectorTile>;\n}\n\n// Image Tile Data Source\n\nexport type ImageTileDataSourceCapabilities = {\n}\n\nexport type ImageTile = Record<string, any>;\n\nexport type FeatureInfo = {};\n\nexport abstract class ImageTileDataSource extends TileDataSource {\n source: ImageDataSource;\n \n constructor(source: ImageDataSource) {\n super();\n this.source = source;\n }\n\n getCapabilities(): Promise<ImageTileDataSourceCapabilities> {\n return this.source.getCapabilities();\n }\n\n getTile({x, y, z, width, height, layers, parameters}): Promise<ImageType> {\n const boundingBox = this.getBoundingBoxFromTileIndex(x, y, z);\n return this.source.getImage({boundingBox, width, height, layers, parameters});\n }\n\n getFeatureInfo(): FeatureInfo | null {\n return null;\n }\n\n getBoundingBoxFromTileIndex(x: number, y: number, z: number): [number, number, number, number] {\n return [0, 0, 1, 1];\n }\n}\n*/\n"],"mappings":""}
@@ -0,0 +1,156 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
3
+ import { WMSCapabilitiesLoader, WMSFeatureInfoLoader, WMSLayerDescriptionLoader, WMSErrorLoader } from '@loaders.gl/wms';
4
+ import { ImageLoader } from '@loaders.gl/images';
5
+ const WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS = {
6
+ service: 'WMS',
7
+ version: '1.1.1',
8
+ request: 'GetCapabilities'
9
+ };
10
+ const WMS_GET_MAP_DEFAULT_PARAMETERS = {
11
+ service: 'WMS',
12
+ version: '1.1.1',
13
+ request: 'GetMap',
14
+ layers: [],
15
+ styles: undefined,
16
+ bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
17
+ width: 1200,
18
+ height: 900,
19
+ srs: 'EPSG:4326',
20
+ format: 'image/png'
21
+ };
22
+ const WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS = {
23
+ service: 'WMS',
24
+ version: '1.1.1',
25
+ request: 'GetFeatureInfo',
26
+ layers: [],
27
+ styles: undefined,
28
+ bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
29
+ width: 1200,
30
+ height: 900,
31
+ srs: 'EPSG:4326',
32
+ format: 'image/png',
33
+ x: undefined,
34
+ y: undefined,
35
+ query_layers: [],
36
+ info_format: 'text/plain'
37
+ };
38
+ const WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS = {
39
+ service: 'WMS',
40
+ version: '1.1.1',
41
+ request: 'DescribeLayer'
42
+ };
43
+ const WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS = {
44
+ service: 'WMS',
45
+ version: '1.1.1',
46
+ request: 'GetLegendGraphic'
47
+ };
48
+ export class WMSService {
49
+ constructor(props) {
50
+ _defineProperty(this, "url", void 0);
51
+ _defineProperty(this, "loadOptions", void 0);
52
+ _defineProperty(this, "fetch", void 0);
53
+ this.url = props.url;
54
+ this.loadOptions = props.loadOptions || {};
55
+ this.fetch = props.fetch || fetch;
56
+ }
57
+
58
+ getCapabilitiesURL(parameters, extra) {
59
+ const options = {
60
+ ...WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS,
61
+ ...parameters,
62
+ ...extra
63
+ };
64
+ return this.getWMSUrl(options, extra);
65
+ }
66
+ getMapURL(parameters, extra) {
67
+ const options = {
68
+ ...WMS_GET_MAP_DEFAULT_PARAMETERS,
69
+ ...parameters,
70
+ ...extra
71
+ };
72
+ return this.getWMSUrl(options, extra);
73
+ }
74
+ getFeatureInfoURL(parameters, extra) {
75
+ const options = {
76
+ ...WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS,
77
+ ...parameters,
78
+ ...extra
79
+ };
80
+ return this.getWMSUrl(options, extra);
81
+ }
82
+ describeLayerURL(parameters, extra) {
83
+ const options = {
84
+ ...WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS,
85
+ ...parameters,
86
+ ...extra
87
+ };
88
+ return this.getWMSUrl(options, extra);
89
+ }
90
+ getLegendGraphicURL(parameters, extra) {
91
+ const options = {
92
+ ...WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS,
93
+ ...parameters,
94
+ ...extra
95
+ };
96
+ return this.getWMSUrl(options, extra);
97
+ }
98
+
99
+ async getCapabilities(parameters, extra) {
100
+ const url = this.getCapabilitiesURL(parameters, extra);
101
+ const response = await this.fetch(url, this.loadOptions);
102
+ await this.checkResponse(response);
103
+ const arrayBuffer = await response.arrayBuffer();
104
+ return await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);
105
+ }
106
+
107
+ async getMap(options, extra) {
108
+ const url = this.getMapURL(options, extra);
109
+ const response = await this.fetch(url, this.loadOptions);
110
+ await this.checkResponse(response);
111
+ const arrayBuffer = await response.arrayBuffer();
112
+ return await ImageLoader.parse(arrayBuffer, this.loadOptions);
113
+ }
114
+
115
+ async getFeatureInfo(options, extra) {
116
+ const url = this.getFeatureInfoURL(options, extra);
117
+ const response = await this.fetch(url, this.loadOptions);
118
+ await this.checkResponse(response);
119
+ const arrayBuffer = await response.arrayBuffer();
120
+ return await WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);
121
+ }
122
+
123
+ async describeLayer(options, extra) {
124
+ const url = this.describeLayerURL(options, extra);
125
+ const response = await this.fetch(url, this.loadOptions);
126
+ await this.checkResponse(response);
127
+ const arrayBuffer = await response.arrayBuffer();
128
+ return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);
129
+ }
130
+
131
+ async getLegendGraphic(options, extra) {
132
+ const url = this.getLegendGraphicURL(options, extra);
133
+ const response = await this.fetch(url, this.loadOptions);
134
+ await this.checkResponse(response);
135
+ const arrayBuffer = await response.arrayBuffer();
136
+ return await ImageLoader.parse(arrayBuffer, this.loadOptions);
137
+ }
138
+
139
+ getWMSUrl(options, extra) {
140
+ var _options$layers;
141
+ let url = "".concat(this.url, "?REQUEST=").concat(options.request);
142
+ if ((_options$layers = options.layers) !== null && _options$layers !== void 0 && _options$layers.length) {
143
+ url += "&LAYERS=[".concat(options.layers.join(','), "]");
144
+ }
145
+ return url;
146
+ }
147
+
148
+ async checkResponse(response) {
149
+ if (!response.ok || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {
150
+ const arrayBuffer = await response.arrayBuffer();
151
+ const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);
152
+ throw new Error(error);
153
+ }
154
+ }
155
+ }
156
+ //# sourceMappingURL=wms-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wms-service.js","names":["WMSCapabilitiesLoader","WMSFeatureInfoLoader","WMSLayerDescriptionLoader","WMSErrorLoader","ImageLoader","WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS","service","version","request","WMS_GET_MAP_DEFAULT_PARAMETERS","layers","styles","undefined","bbox","width","height","srs","format","WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS","x","y","query_layers","info_format","WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS","WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS","WMSService","constructor","props","url","loadOptions","fetch","getCapabilitiesURL","parameters","extra","options","getWMSUrl","getMapURL","getFeatureInfoURL","describeLayerURL","getLegendGraphicURL","getCapabilities","response","checkResponse","arrayBuffer","parse","getMap","getFeatureInfo","describeLayer","getLegendGraphic","length","join","ok","headers","mimeTypes","error","Error"],"sources":["../../../../src/lib/data-sources/wms-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable camelcase */\n\nimport type {WMSCapabilities, WMSFeatureInfo, WMSLayerDescription} from '@loaders.gl/wms';\nimport {\n WMSCapabilitiesLoader,\n WMSFeatureInfoLoader,\n WMSLayerDescriptionLoader,\n WMSErrorLoader\n} from '@loaders.gl/wms';\nimport {ImageLoader, ImageType} from '@loaders.gl/images';\nimport {LoaderOptions} from '@loaders.gl/loader-utils';\n\ntype FetchLike = (url: string, options?: RequestInit) => Promise<Response>;\n\nexport type WMSGetCapabilitiesParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetCapabilities';\n};\n\nexport type WMSGetMapParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetMap';\n /** Layers to render */\n layers: string[];\n /** Styling */\n styles?: unknown;\n /** bounding box of the requested map image */\n bbox: [number, number, number, number];\n /** pixel width of returned image */\n width: number;\n /** pixels */\n height: number;\n /** srs for the image (not the bounding box) */\n srs?: string;\n /** requested format for the return image */\n format?: 'image/png';\n};\n\n// https://imagery.pasda.psu.edu/arcgis/services/pasda/UrbanTreeCanopy_Landcover/MapServer/WmsServer?SERVICE=WMS&\nexport type WMSGetFeatureInfoParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetFeatureInfo';\n\n /** x coordinate for the feature info request */\n x: number;\n /** y coordinate for the feature info request */\n y: number;\n /** list of layers to query (could be different from rendered layers) */\n query_layers: string[];\n /** MIME type of returned feature info */\n info_format: 'text/plain';\n\n /** Layers to render */\n layers: string[];\n /** Styling */\n styles?: unknown;\n /** bounding box of the requested map image */\n bbox: [number, number, number, number];\n /** pixel width of returned image */\n width: number;\n /** pixels */\n height: number;\n /** srs for the image (not the bounding box) */\n srs?: string;\n /** requested format for the return image */\n format?: 'image/png';\n};\n\nexport type WMSDescribeLayerParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'DescribeLayer';\n};\n\nexport type WMSGetLegendGraphicParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'WMS';\n /** In case the endpoint supports multiple WMS versions */\n version?: '1.1.1' | '1.3.0';\n /** Request type */\n request?: 'GetLegendGraphic';\n};\n\nconst WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS: Required<WMSGetCapabilitiesParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetCapabilities'\n};\n\nconst WMS_GET_MAP_DEFAULT_PARAMETERS: Required<WMSGetMapParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetMap',\n layers: [],\n styles: undefined,\n bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n width: 1200,\n height: 900,\n srs: 'EPSG:4326',\n format: 'image/png'\n};\n\nconst WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS: Required<WMSGetFeatureInfoParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetFeatureInfo',\n layers: [],\n styles: undefined,\n bbox: [-77.87304, 40.78975, -77.85828, 40.80228],\n width: 1200,\n height: 900,\n srs: 'EPSG:4326',\n format: 'image/png',\n\n x: undefined!,\n y: undefined!,\n query_layers: [],\n info_format: 'text/plain'\n};\n\nconst WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS: Required<WMSDescribeLayerParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'DescribeLayer'\n};\n\nconst WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS: Required<WMSGetLegendGraphicParameters> = {\n service: 'WMS',\n version: '1.1.1',\n request: 'GetLegendGraphic'\n};\n\nexport type WMSServiceProps = {\n url: string;\n loadOptions?: LoaderOptions;\n fetch?: typeof fetch | FetchLike;\n};\n\nexport class WMSService {\n url: string;\n loadOptions: LoaderOptions;\n fetch: typeof fetch | FetchLike;\n\n constructor(props: WMSServiceProps) {\n this.url = props.url;\n this.loadOptions = props.loadOptions || {};\n this.fetch = props.fetch || fetch;\n }\n\n // Typed URL creators\n\n getCapabilitiesURL(\n parameters?: WMSGetCapabilitiesParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetCapabilitiesParameters> = {\n ...WMS_GET_CAPABILITIES_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n getMapURL(parameters: WMSGetMapParameters, extra?: Record<string, unknown>): string {\n const options: Required<WMSGetMapParameters> = {\n ...WMS_GET_MAP_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n getFeatureInfoURL(\n parameters: WMSGetFeatureInfoParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetFeatureInfoParameters> = {\n ...WMS_GET_FEATURE_INFO_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n describeLayerURL(\n parameters: WMSDescribeLayerParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSDescribeLayerParameters> = {\n ...WMS_DESCRIBE_LAYER_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n getLegendGraphicURL(\n parameters: WMSGetLegendGraphicParameters,\n extra?: Record<string, unknown>\n ): string {\n const options: Required<WMSGetLegendGraphicParameters> = {\n ...WMS_GET_LEGEND_GRAPHIC_DEFAULT_PARAMETERS,\n ...parameters,\n ...extra\n };\n return this.getWMSUrl(options, extra);\n }\n\n // WMS Service API Stubs\n\n /** Get Capabilities */\n async getCapabilities(\n parameters?: WMSGetCapabilitiesParameters,\n extra?: Record<string, unknown>\n ): Promise<WMSCapabilities> {\n const url = this.getCapabilitiesURL(parameters, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await WMSCapabilitiesLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get a map image */\n async getMap(options: WMSGetMapParameters, extra?: Record<string, unknown>): Promise<ImageType> {\n const url = this.getMapURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get Feature Info for a coordinate */\n async getFeatureInfo(\n options: WMSGetFeatureInfoParameters,\n extra?: Record<string, unknown>\n ): Promise<WMSFeatureInfo> {\n const url = this.getFeatureInfoURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await WMSFeatureInfoLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get more information about a layer */\n async describeLayer(\n options: WMSDescribeLayerParameters,\n extra?: Record<string, unknown>\n ): Promise<WMSLayerDescription> {\n const url = this.describeLayerURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await WMSLayerDescriptionLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n /** Get an image with a semantic legend */\n async getLegendGraphic(\n options: WMSGetLegendGraphicParameters,\n extra?: Record<string, unknown>\n ): Promise<ImageType> {\n const url = this.getLegendGraphicURL(options, extra);\n const response = await this.fetch(url, this.loadOptions);\n await this.checkResponse(response);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer, this.loadOptions);\n }\n\n // INTERNAL METHODS\n\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 protected getWMSUrl(\n options: {\n request: string;\n layers?: string[];\n },\n extra?: Record<string, unknown>\n ): string {\n let url = `${this.url}?REQUEST=${options.request}`;\n if (options.layers?.length) {\n url += `&LAYERS=[${options.layers.join(',')}]`;\n }\n return url;\n }\n\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n protected async checkResponse(response: Response) {\n if (!response.ok || 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"],"mappings":"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"}