@loaders.gl/i3s 3.0.13 → 3.0.14

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 (36) hide show
  1. package/dist/dist.es5.min.js +1 -1
  2. package/dist/dist.es5.min.js.map +1 -1
  3. package/dist/dist.min.js +1 -1
  4. package/dist/dist.min.js.map +1 -1
  5. package/dist/es5/bundle.js +2 -2
  6. package/dist/es5/bundle.js.map +1 -1
  7. package/dist/es5/i3s-attribute-loader.js +132 -53
  8. package/dist/es5/i3s-attribute-loader.js.map +1 -1
  9. package/dist/es5/i3s-content-loader.js +36 -10
  10. package/dist/es5/i3s-content-loader.js.map +1 -1
  11. package/dist/es5/i3s-loader.js +175 -51
  12. package/dist/es5/i3s-loader.js.map +1 -1
  13. package/dist/es5/i3s-node-page-loader.js +51 -8
  14. package/dist/es5/i3s-node-page-loader.js.map +1 -1
  15. package/dist/es5/index.js +4 -4
  16. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +313 -163
  17. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  18. package/dist/es5/lib/parsers/constants.js +9 -9
  19. package/dist/es5/lib/parsers/constants.js.map +1 -1
  20. package/dist/es5/lib/parsers/parse-i3s-attribute.js +68 -26
  21. package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +1 -1
  22. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +405 -276
  23. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  24. package/dist/es5/lib/parsers/parse-i3s.js +70 -31
  25. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
  26. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +8 -4
  27. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -1
  28. package/dist/es5/lib/utils/url-utils.js +14 -17
  29. package/dist/es5/lib/utils/url-utils.js.map +1 -1
  30. package/dist/esm/i3s-attribute-loader.js +1 -1
  31. package/dist/esm/i3s-content-loader.js +1 -1
  32. package/dist/esm/i3s-loader.js +1 -1
  33. package/dist/esm/i3s-node-page-loader.js +1 -1
  34. package/dist/i3s-content-worker.js +1 -1
  35. package/dist/i3s-content-worker.js.map +1 -1
  36. package/package.json +9 -9
@@ -1,21 +1,29 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.I3SLoader = void 0;
7
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
8
16
  var _core = require("@loaders.gl/core");
9
17
 
10
18
  var _i3sContentLoader = require("./i3s-content-loader");
11
19
 
12
20
  var _parseI3s = require("./lib/parsers/parse-i3s");
13
21
 
14
- const VERSION = typeof "3.0.13" !== 'undefined' ? "3.0.13" : 'latest';
15
- const TILESET_REGEX = /layers\/[0-9]+$/;
16
- const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
17
- const SLPK_HEX = '504b0304';
18
- const I3SLoader = {
22
+ var VERSION = typeof "3.0.14" !== 'undefined' ? "3.0.14" : 'latest';
23
+ var TILESET_REGEX = /layers\/[0-9]+$/;
24
+ var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
25
+ var SLPK_HEX = '504b0304';
26
+ var I3SLoader = {
19
27
  name: 'I3S (Indexed Scene Layers)',
20
28
  id: 'i3s',
21
29
  module: 'i3s',
@@ -38,66 +46,182 @@ const I3SLoader = {
38
46
  };
39
47
  exports.I3SLoader = I3SLoader;
40
48
 
41
- async function parseI3S(data, options, context) {
42
- const url = context.url;
43
- options.i3s = options.i3s || {};
44
- const magicNumber = getMagicNumber(data);
45
-
46
- if (magicNumber === SLPK_HEX) {
47
- throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
48
- }
49
-
50
- let isTileset;
51
-
52
- if (options.i3s.isTileset === 'auto') {
53
- isTileset = TILESET_REGEX.test(url);
54
- } else {
55
- isTileset = options.i3s.isTileset;
56
- }
57
-
58
- let isTileHeader;
49
+ function parseI3S(_x, _x2, _x3) {
50
+ return _parseI3S.apply(this, arguments);
51
+ }
59
52
 
60
- if (options.isTileHeader === 'auto') {
61
- isTileHeader = TILE_HEADER_REGEX.test(url);
62
- } else {
63
- isTileHeader = options.i3s.isTileHeader;
64
- }
53
+ function _parseI3S() {
54
+ _parseI3S = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, options, context) {
55
+ var url, magicNumber, isTileset, isTileHeader;
56
+ return _regenerator.default.wrap(function _callee$(_context) {
57
+ while (1) {
58
+ switch (_context.prev = _context.next) {
59
+ case 0:
60
+ url = context.url;
61
+ options.i3s = options.i3s || {};
62
+ magicNumber = getMagicNumber(data);
63
+
64
+ if (!(magicNumber === SLPK_HEX)) {
65
+ _context.next = 5;
66
+ break;
67
+ }
68
+
69
+ throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
70
+
71
+ case 5:
72
+ if (options.i3s.isTileset === 'auto') {
73
+ isTileset = TILESET_REGEX.test(url);
74
+ } else {
75
+ isTileset = options.i3s.isTileset;
76
+ }
77
+
78
+ if (options.isTileHeader === 'auto') {
79
+ isTileHeader = TILE_HEADER_REGEX.test(url);
80
+ } else {
81
+ isTileHeader = options.i3s.isTileHeader;
82
+ }
83
+
84
+ if (!isTileset) {
85
+ _context.next = 13;
86
+ break;
87
+ }
88
+
89
+ _context.next = 10;
90
+ return parseTileset(data, options, context);
91
+
92
+ case 10:
93
+ data = _context.sent;
94
+ _context.next = 26;
95
+ break;
96
+
97
+ case 13:
98
+ if (!isTileHeader) {
99
+ _context.next = 23;
100
+ break;
101
+ }
102
+
103
+ _context.next = 16;
104
+ return parseTile(data, options, context);
105
+
106
+ case 16:
107
+ data = _context.sent;
108
+
109
+ if (!options.i3s.loadContent) {
110
+ _context.next = 21;
111
+ break;
112
+ }
113
+
114
+ options.i3s.tile = data;
115
+ _context.next = 21;
116
+ return (0, _core.load)(data.contentUrl, I3SLoader, options);
117
+
118
+ case 21:
119
+ _context.next = 26;
120
+ break;
121
+
122
+ case 23:
123
+ _context.next = 25;
124
+ return parseTileContent(data, options);
125
+
126
+ case 25:
127
+ data = _context.sent;
128
+
129
+ case 26:
130
+ return _context.abrupt("return", data);
131
+
132
+ case 27:
133
+ case "end":
134
+ return _context.stop();
135
+ }
136
+ }
137
+ }, _callee);
138
+ }));
139
+ return _parseI3S.apply(this, arguments);
140
+ }
65
141
 
66
- if (isTileset) {
67
- data = await parseTileset(data, options, context);
68
- } else if (isTileHeader) {
69
- data = await parseTile(data, options, context);
142
+ function parseTileContent(_x4, _x5) {
143
+ return _parseTileContent.apply(this, arguments);
144
+ }
70
145
 
71
- if (options.i3s.loadContent) {
72
- options.i3s.tile = data;
73
- await (0, _core.load)(data.contentUrl, I3SLoader, options);
74
- }
75
- } else {
76
- data = await parseTileContent(data, options);
77
- }
146
+ function _parseTileContent() {
147
+ _parseTileContent = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, options) {
148
+ return _regenerator.default.wrap(function _callee2$(_context2) {
149
+ while (1) {
150
+ switch (_context2.prev = _context2.next) {
151
+ case 0:
152
+ _context2.next = 2;
153
+ return (0, _core.parse)(arrayBuffer, _i3sContentLoader.I3SContentLoader, options);
154
+
155
+ case 2:
156
+ return _context2.abrupt("return", _context2.sent);
157
+
158
+ case 3:
159
+ case "end":
160
+ return _context2.stop();
161
+ }
162
+ }
163
+ }, _callee2);
164
+ }));
165
+ return _parseTileContent.apply(this, arguments);
166
+ }
78
167
 
79
- return data;
168
+ function parseTileset(_x6, _x7, _x8) {
169
+ return _parseTileset.apply(this, arguments);
80
170
  }
81
171
 
82
- async function parseTileContent(arrayBuffer, options) {
83
- return await (0, _core.parse)(arrayBuffer, _i3sContentLoader.I3SContentLoader, options);
172
+ function _parseTileset() {
173
+ _parseTileset = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(data, options, context) {
174
+ var tilesetJson;
175
+ return _regenerator.default.wrap(function _callee3$(_context3) {
176
+ while (1) {
177
+ switch (_context3.prev = _context3.next) {
178
+ case 0:
179
+ tilesetJson = JSON.parse(new TextDecoder().decode(data));
180
+ tilesetJson.loader = I3SLoader;
181
+ _context3.next = 4;
182
+ return (0, _parseI3s.normalizeTilesetData)(tilesetJson, options, context);
183
+
184
+ case 4:
185
+ return _context3.abrupt("return", tilesetJson);
186
+
187
+ case 5:
188
+ case "end":
189
+ return _context3.stop();
190
+ }
191
+ }
192
+ }, _callee3);
193
+ }));
194
+ return _parseTileset.apply(this, arguments);
84
195
  }
85
196
 
86
- async function parseTileset(data, options, context) {
87
- const tilesetJson = JSON.parse(new TextDecoder().decode(data));
88
- tilesetJson.loader = I3SLoader;
89
- await (0, _parseI3s.normalizeTilesetData)(tilesetJson, options, context);
90
- return tilesetJson;
197
+ function parseTile(_x9, _x10, _x11) {
198
+ return _parseTile.apply(this, arguments);
91
199
  }
92
200
 
93
- async function parseTile(data, options, context) {
94
- data = JSON.parse(new TextDecoder().decode(data));
95
- return (0, _parseI3s.normalizeTileData)(data, options, context);
201
+ function _parseTile() {
202
+ _parseTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(data, options, context) {
203
+ return _regenerator.default.wrap(function _callee4$(_context4) {
204
+ while (1) {
205
+ switch (_context4.prev = _context4.next) {
206
+ case 0:
207
+ data = JSON.parse(new TextDecoder().decode(data));
208
+ return _context4.abrupt("return", (0, _parseI3s.normalizeTileData)(data, options, context));
209
+
210
+ case 2:
211
+ case "end":
212
+ return _context4.stop();
213
+ }
214
+ }
215
+ }, _callee4);
216
+ }));
217
+ return _parseTile.apply(this, arguments);
96
218
  }
97
219
 
98
220
  function getMagicNumber(data) {
99
221
  if (data instanceof ArrayBuffer) {
100
- return [...new Uint8Array(data, 0, 4)].map(value => value.toString(16).padStart(2, '0')).join('');
222
+ return (0, _toConsumableArray2.default)(new Uint8Array(data, 0, 4)).map(function (value) {
223
+ return value.toString(16).padStart(2, '0');
224
+ }).join('');
101
225
  }
102
226
 
103
227
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i3s-loader.ts"],"names":["VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","I3SLoader","name","id","module","version","mimeTypes","parse","parseI3S","extensions","options","i3s","loadContent","token","isTileset","isTileHeader","tile","tileset","useDracoGeometry","useCompressedTextures","data","context","url","magicNumber","getMagicNumber","Error","test","parseTileset","parseTile","contentUrl","parseTileContent","arrayBuffer","I3SContentLoader","tilesetJson","JSON","TextDecoder","decode","loader","ArrayBuffer","Uint8Array","map","value","toString","padStart","join"],"mappings":"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","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {load, parse} from '@loaders.gl/core';\nimport {I3SContentLoader} from './i3s-content-loader';\nimport {normalizeTileData, normalizeTilesetData} from './lib/parsers/parse-i3s';\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\nconst TILESET_REGEX = /layers\\/[0-9]+$/;\nconst TILE_HEADER_REGEX = /nodes\\/([0-9-]+|root)$/;\nconst SLPK_HEX = '504b0304';\n\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SLoader: LoaderWithParser = {\n name: 'I3S (Indexed Scene Layers)',\n id: 'i3s',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseI3S,\n extensions: ['bin'],\n options: {\n i3s: {\n loadContent: true,\n token: null,\n isTileset: 'auto',\n isTileHeader: 'auto',\n tile: null,\n tileset: null,\n useDracoGeometry: true,\n useCompressedTextures: true\n }\n }\n};\n\nasync function parseI3S(data, options, context) {\n const url = context.url;\n options.i3s = options.i3s || {};\n const magicNumber = getMagicNumber(data);\n\n // check if file is slpk\n if (magicNumber === SLPK_HEX) {\n throw new Error('Files with .slpk extention currently are not supported by I3SLoader');\n }\n\n // auto detect file type based on url\n let isTileset;\n if (options.i3s.isTileset === 'auto') {\n isTileset = TILESET_REGEX.test(url);\n } else {\n isTileset = options.i3s.isTileset;\n }\n\n let isTileHeader;\n if (options.isTileHeader === 'auto') {\n isTileHeader = TILE_HEADER_REGEX.test(url);\n } else {\n isTileHeader = options.i3s.isTileHeader;\n }\n\n if (isTileset) {\n data = await parseTileset(data, options, context);\n } else if (isTileHeader) {\n data = await parseTile(data, options, context);\n if (options.i3s.loadContent) {\n options.i3s.tile = data;\n await load(data.contentUrl, I3SLoader, options);\n }\n } else {\n data = await parseTileContent(data, options);\n }\n\n return data;\n}\n\nasync function parseTileContent(arrayBuffer, options) {\n return await parse(arrayBuffer, I3SContentLoader, options);\n}\n\nasync function parseTileset(data, options, context) {\n const tilesetJson = JSON.parse(new TextDecoder().decode(data));\n // eslint-disable-next-line no-use-before-define\n tilesetJson.loader = I3SLoader;\n await normalizeTilesetData(tilesetJson, options, context);\n\n return tilesetJson;\n}\n\nasync function parseTile(data, options, context) {\n data = JSON.parse(new TextDecoder().decode(data));\n return normalizeTileData(data, options, context);\n}\n\nfunction getMagicNumber(data) {\n if (data instanceof ArrayBuffer) {\n // slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system\n return [...new Uint8Array(data, 0, 4)]\n .map((value) => value.toString(16).padStart(2, '0'))\n .join('');\n }\n return null;\n}\n"],"file":"i3s-loader.js"}
1
+ {"version":3,"sources":["../../src/i3s-loader.ts"],"names":["VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","I3SLoader","name","id","module","version","mimeTypes","parse","parseI3S","extensions","options","i3s","loadContent","token","isTileset","isTileHeader","tile","tileset","useDracoGeometry","useCompressedTextures","data","context","url","magicNumber","getMagicNumber","Error","test","parseTileset","parseTile","contentUrl","parseTileContent","arrayBuffer","I3SContentLoader","tilesetJson","JSON","TextDecoder","decode","loader","ArrayBuffer","Uint8Array","map","value","toString","padStart","join"],"mappings":"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","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {load, parse} from '@loaders.gl/core';\nimport {I3SContentLoader} from './i3s-content-loader';\nimport {normalizeTileData, normalizeTilesetData} from './lib/parsers/parse-i3s';\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\nconst TILESET_REGEX = /layers\\/[0-9]+$/;\nconst TILE_HEADER_REGEX = /nodes\\/([0-9-]+|root)$/;\nconst SLPK_HEX = '504b0304';\n\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SLoader: LoaderWithParser = {\n name: 'I3S (Indexed Scene Layers)',\n id: 'i3s',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseI3S,\n extensions: ['bin'],\n options: {\n i3s: {\n loadContent: true,\n token: null,\n isTileset: 'auto',\n isTileHeader: 'auto',\n tile: null,\n tileset: null,\n useDracoGeometry: true,\n useCompressedTextures: true\n }\n }\n};\n\nasync function parseI3S(data, options, context) {\n const url = context.url;\n options.i3s = options.i3s || {};\n const magicNumber = getMagicNumber(data);\n\n // check if file is slpk\n if (magicNumber === SLPK_HEX) {\n throw new Error('Files with .slpk extention currently are not supported by I3SLoader');\n }\n\n // auto detect file type based on url\n let isTileset;\n if (options.i3s.isTileset === 'auto') {\n isTileset = TILESET_REGEX.test(url);\n } else {\n isTileset = options.i3s.isTileset;\n }\n\n let isTileHeader;\n if (options.isTileHeader === 'auto') {\n isTileHeader = TILE_HEADER_REGEX.test(url);\n } else {\n isTileHeader = options.i3s.isTileHeader;\n }\n\n if (isTileset) {\n data = await parseTileset(data, options, context);\n } else if (isTileHeader) {\n data = await parseTile(data, options, context);\n if (options.i3s.loadContent) {\n options.i3s.tile = data;\n await load(data.contentUrl, I3SLoader, options);\n }\n } else {\n data = await parseTileContent(data, options);\n }\n\n return data;\n}\n\nasync function parseTileContent(arrayBuffer, options) {\n return await parse(arrayBuffer, I3SContentLoader, options);\n}\n\nasync function parseTileset(data, options, context) {\n const tilesetJson = JSON.parse(new TextDecoder().decode(data));\n // eslint-disable-next-line no-use-before-define\n tilesetJson.loader = I3SLoader;\n await normalizeTilesetData(tilesetJson, options, context);\n\n return tilesetJson;\n}\n\nasync function parseTile(data, options, context) {\n data = JSON.parse(new TextDecoder().decode(data));\n return normalizeTileData(data, options, context);\n}\n\nfunction getMagicNumber(data) {\n if (data instanceof ArrayBuffer) {\n // slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system\n return [...new Uint8Array(data, 0, 4)]\n .map((value) => value.toString(16).padStart(2, '0'))\n .join('');\n }\n return null;\n}\n"],"file":"i3s-loader.js"}
@@ -1,29 +1,72 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.I3SNodePageLoader = void 0;
7
- const VERSION = typeof "3.0.13" !== 'undefined' ? "3.0.13" : 'latest';
8
9
 
9
- async function parseNodePage(data) {
10
- return JSON.parse(new TextDecoder().decode(data));
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var VERSION = typeof "3.0.14" !== 'undefined' ? "3.0.14" : 'latest';
15
+
16
+ function parseNodePage(_x) {
17
+ return _parseNodePage.apply(this, arguments);
18
+ }
19
+
20
+ function _parseNodePage() {
21
+ _parseNodePage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
22
+ return _regenerator.default.wrap(function _callee$(_context) {
23
+ while (1) {
24
+ switch (_context.prev = _context.next) {
25
+ case 0:
26
+ return _context.abrupt("return", JSON.parse(new TextDecoder().decode(data)));
27
+
28
+ case 1:
29
+ case "end":
30
+ return _context.stop();
31
+ }
32
+ }
33
+ }, _callee);
34
+ }));
35
+ return _parseNodePage.apply(this, arguments);
11
36
  }
12
37
 
13
- const I3SNodePageLoader = {
38
+ var I3SNodePageLoader = {
14
39
  name: 'I3S Node Page',
15
40
  id: 'i3s-node-page',
16
41
  module: 'i3s',
17
42
  version: VERSION,
18
43
  mimeTypes: ['application/json'],
19
- parse,
44
+ parse: parse,
20
45
  extensions: ['json'],
21
46
  options: {}
22
47
  };
23
48
  exports.I3SNodePageLoader = I3SNodePageLoader;
24
49
 
25
- async function parse(data) {
26
- data = parseNodePage(data);
27
- return data;
50
+ function parse(_x2) {
51
+ return _parse.apply(this, arguments);
52
+ }
53
+
54
+ function _parse() {
55
+ _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(data) {
56
+ return _regenerator.default.wrap(function _callee2$(_context2) {
57
+ while (1) {
58
+ switch (_context2.prev = _context2.next) {
59
+ case 0:
60
+ data = parseNodePage(data);
61
+ return _context2.abrupt("return", data);
62
+
63
+ case 2:
64
+ case "end":
65
+ return _context2.stop();
66
+ }
67
+ }
68
+ }, _callee2);
69
+ }));
70
+ return _parse.apply(this, arguments);
28
71
  }
29
72
  //# sourceMappingURL=i3s-node-page-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i3s-node-page-loader.ts"],"names":["VERSION","parseNodePage","data","JSON","parse","TextDecoder","decode","I3SNodePageLoader","name","id","module","version","mimeTypes","extensions","options"],"mappings":";;;;;;AAIA,MAAMA,OAAO,GAAG,oBAAuB,WAAvB,cAAmD,QAAnE;;AAEA,eAAeC,aAAf,CAA6BC,IAA7B,EAAmC;AACjC,SAAOC,IAAI,CAACC,KAAL,CAAW,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,IAAzB,CAAX,CAAP;AACD;;AAKM,MAAMK,iBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,eAD2C;AAEjDC,EAAAA,EAAE,EAAE,eAF6C;AAGjDC,EAAAA,MAAM,EAAE,KAHyC;AAIjDC,EAAAA,OAAO,EAAEX,OAJwC;AAKjDY,EAAAA,SAAS,EAAE,CAAC,kBAAD,CALsC;AAMjDR,EAAAA,KANiD;AAOjDS,EAAAA,UAAU,EAAE,CAAC,MAAD,CAPqC;AAQjDC,EAAAA,OAAO,EAAE;AARwC,CAA5C;;;AAWP,eAAeV,KAAf,CAAqBF,IAArB,EAA2B;AACzBA,EAAAA,IAAI,GAAGD,aAAa,CAACC,IAAD,CAApB;AACA,SAAOA,IAAP;AACD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\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\nasync function parseNodePage(data) {\n return JSON.parse(new TextDecoder().decode(data));\n}\n\n/**\n * Loader for I3S node pages\n */\nexport const I3SNodePageLoader: LoaderWithParser = {\n name: 'I3S Node Page',\n id: 'i3s-node-page',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(data) {\n data = parseNodePage(data);\n return data;\n}\n"],"file":"i3s-node-page-loader.js"}
1
+ {"version":3,"sources":["../../src/i3s-node-page-loader.ts"],"names":["VERSION","parseNodePage","data","JSON","parse","TextDecoder","decode","I3SNodePageLoader","name","id","module","version","mimeTypes","extensions","options"],"mappings":";;;;;;;;;;;;;AAIA,IAAMA,OAAO,GAAG,oBAAuB,WAAvB,cAAmD,QAAnE;;SAEeC,a;;;;;6EAAf,iBAA6BC,IAA7B;AAAA;AAAA;AAAA;AAAA;AAAA,6CACSC,IAAI,CAACC,KAAL,CAAW,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,IAAzB,CAAX,CADT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAOO,IAAMK,iBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,eAD2C;AAEjDC,EAAAA,EAAE,EAAE,eAF6C;AAGjDC,EAAAA,MAAM,EAAE,KAHyC;AAIjDC,EAAAA,OAAO,EAAEX,OAJwC;AAKjDY,EAAAA,SAAS,EAAE,CAAC,kBAAD,CALsC;AAMjDR,EAAAA,KAAK,EAALA,KANiD;AAOjDS,EAAAA,UAAU,EAAE,CAAC,MAAD,CAPqC;AAQjDC,EAAAA,OAAO,EAAE;AARwC,CAA5C;;;SAWQV,K;;;;;qEAAf,kBAAqBF,IAArB;AAAA;AAAA;AAAA;AAAA;AACEA,YAAAA,IAAI,GAAGD,aAAa,CAACC,IAAD,CAApB;AADF,8CAESA,IAFT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\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\nasync function parseNodePage(data) {\n return JSON.parse(new TextDecoder().decode(data));\n}\n\n/**\n * Loader for I3S node pages\n */\nexport const I3SNodePageLoader: LoaderWithParser = {\n name: 'I3S Node Page',\n id: 'i3s-node-page',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(data) {\n data = parseNodePage(data);\n return data;\n}\n"],"file":"i3s-node-page-loader.js"}
package/dist/es5/index.js CHANGED
@@ -5,25 +5,25 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "I3SLoader", {
7
7
  enumerable: true,
8
- get: function () {
8
+ get: function get() {
9
9
  return _i3sLoader.I3SLoader;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "I3SContentLoader", {
13
13
  enumerable: true,
14
- get: function () {
14
+ get: function get() {
15
15
  return _i3sContentLoader.I3SContentLoader;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "I3SAttributeLoader", {
19
19
  enumerable: true,
20
- get: function () {
20
+ get: function get() {
21
21
  return _i3sAttributeLoader.I3SAttributeLoader;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "loadFeatureAttributes", {
25
25
  enumerable: true,
26
- get: function () {
26
+ get: function get() {
27
27
  return _i3sAttributeLoader.loadFeatureAttributes;
28
28
  }
29
29
  });