@loaders.gl/i3s 3.4.1 → 3.4.3

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.
package/dist/dist.min.js CHANGED
@@ -1363,7 +1363,7 @@
1363
1363
  }
1364
1364
  });
1365
1365
 
1366
- // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
1366
+ // ../core/node_modules/@probe.gl/env/dist/lib/is-electron.js
1367
1367
  function isElectron(mockUserAgent) {
1368
1368
  if (typeof window !== "undefined" && typeof window.process === "object" && window.process.type === "renderer") {
1369
1369
  return true;
@@ -1379,25 +1379,25 @@
1379
1379
  return false;
1380
1380
  }
1381
1381
  var init_is_electron = __esm({
1382
- "../../node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
1382
+ "../core/node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
1383
1383
  }
1384
1384
  });
1385
1385
 
1386
- // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
1386
+ // ../core/node_modules/@probe.gl/env/dist/lib/is-browser.js
1387
1387
  function isBrowser3() {
1388
1388
  const isNode = typeof process === "object" && String(process) === "[object process]" && !process.browser;
1389
1389
  return !isNode || isElectron();
1390
1390
  }
1391
1391
  var init_is_browser = __esm({
1392
- "../../node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
1392
+ "../core/node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
1393
1393
  init_is_electron();
1394
1394
  }
1395
1395
  });
1396
1396
 
1397
- // ../../node_modules/@probe.gl/env/dist/lib/globals.js
1397
+ // ../core/node_modules/@probe.gl/env/dist/lib/globals.js
1398
1398
  var self_3, window_3, document_3, process_, console_, navigator_;
1399
1399
  var init_globals3 = __esm({
1400
- "../../node_modules/@probe.gl/env/dist/lib/globals.js"() {
1400
+ "../core/node_modules/@probe.gl/env/dist/lib/globals.js"() {
1401
1401
  self_3 = globalThis.self || globalThis.window || globalThis.global;
1402
1402
  window_3 = globalThis.window || globalThis.self || globalThis.global;
1403
1403
  document_3 = globalThis.document || {};
@@ -1407,26 +1407,26 @@
1407
1407
  }
1408
1408
  });
1409
1409
 
1410
- // ../../node_modules/@probe.gl/env/dist/utils/globals.js
1410
+ // ../core/node_modules/@probe.gl/env/dist/utils/globals.js
1411
1411
  var VERSION5, isBrowser4;
1412
1412
  var init_globals4 = __esm({
1413
- "../../node_modules/@probe.gl/env/dist/utils/globals.js"() {
1413
+ "../core/node_modules/@probe.gl/env/dist/utils/globals.js"() {
1414
1414
  init_is_browser();
1415
1415
  VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
1416
1416
  isBrowser4 = isBrowser3();
1417
1417
  }
1418
1418
  });
1419
1419
 
1420
- // ../../node_modules/@probe.gl/env/dist/index.js
1420
+ // ../core/node_modules/@probe.gl/env/dist/index.js
1421
1421
  var init_dist = __esm({
1422
- "../../node_modules/@probe.gl/env/dist/index.js"() {
1422
+ "../core/node_modules/@probe.gl/env/dist/index.js"() {
1423
1423
  init_globals4();
1424
1424
  init_globals3();
1425
1425
  init_is_browser();
1426
1426
  }
1427
1427
  });
1428
1428
 
1429
- // ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
1429
+ // ../core/node_modules/@probe.gl/log/dist/utils/local-storage.js
1430
1430
  function getStorage(type) {
1431
1431
  try {
1432
1432
  const storage = window[type];
@@ -1440,7 +1440,7 @@
1440
1440
  }
1441
1441
  var LocalStorage;
1442
1442
  var init_local_storage = __esm({
1443
- "../../node_modules/@probe.gl/log/dist/utils/local-storage.js"() {
1443
+ "../core/node_modules/@probe.gl/log/dist/utils/local-storage.js"() {
1444
1444
  init_defineProperty();
1445
1445
  LocalStorage = class {
1446
1446
  constructor(id, defaultConfig) {
@@ -1476,7 +1476,7 @@
1476
1476
  }
1477
1477
  });
1478
1478
 
1479
- // ../../node_modules/@probe.gl/log/dist/utils/formatters.js
1479
+ // ../core/node_modules/@probe.gl/log/dist/utils/formatters.js
1480
1480
  function formatTime(ms) {
1481
1481
  let formatted;
1482
1482
  if (ms < 10) {
@@ -1507,11 +1507,11 @@
1507
1507
  return ["".concat(message, " %c+"), style];
1508
1508
  }
1509
1509
  var init_formatters = __esm({
1510
- "../../node_modules/@probe.gl/log/dist/utils/formatters.js"() {
1510
+ "../core/node_modules/@probe.gl/log/dist/utils/formatters.js"() {
1511
1511
  }
1512
1512
  });
1513
1513
 
1514
- // ../../node_modules/@probe.gl/log/dist/utils/color.js
1514
+ // ../core/node_modules/@probe.gl/log/dist/utils/color.js
1515
1515
  function getColor(color) {
1516
1516
  if (typeof color !== "string") {
1517
1517
  return color;
@@ -1534,7 +1534,7 @@
1534
1534
  }
1535
1535
  var COLOR, BACKGROUND_INCREMENT;
1536
1536
  var init_color = __esm({
1537
- "../../node_modules/@probe.gl/log/dist/utils/color.js"() {
1537
+ "../core/node_modules/@probe.gl/log/dist/utils/color.js"() {
1538
1538
  init_dist();
1539
1539
  (function(COLOR2) {
1540
1540
  COLOR2[COLOR2["BLACK"] = 30] = "BLACK";
@@ -1558,7 +1558,7 @@
1558
1558
  }
1559
1559
  });
1560
1560
 
1561
- // ../../node_modules/@probe.gl/log/dist/utils/autobind.js
1561
+ // ../core/node_modules/@probe.gl/log/dist/utils/autobind.js
1562
1562
  function autobind(obj) {
1563
1563
  let predefined = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ["constructor"];
1564
1564
  const proto = Object.getPrototypeOf(obj);
@@ -1574,22 +1574,22 @@
1574
1574
  }
1575
1575
  }
1576
1576
  var init_autobind = __esm({
1577
- "../../node_modules/@probe.gl/log/dist/utils/autobind.js"() {
1577
+ "../core/node_modules/@probe.gl/log/dist/utils/autobind.js"() {
1578
1578
  }
1579
1579
  });
1580
1580
 
1581
- // ../../node_modules/@probe.gl/log/dist/utils/assert.js
1581
+ // ../core/node_modules/@probe.gl/log/dist/utils/assert.js
1582
1582
  function assert3(condition, message) {
1583
1583
  if (!condition) {
1584
1584
  throw new Error(message || "Assertion failed");
1585
1585
  }
1586
1586
  }
1587
1587
  var init_assert3 = __esm({
1588
- "../../node_modules/@probe.gl/log/dist/utils/assert.js"() {
1588
+ "../core/node_modules/@probe.gl/log/dist/utils/assert.js"() {
1589
1589
  }
1590
1590
  });
1591
1591
 
1592
- // ../../node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js
1592
+ // ../core/node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js
1593
1593
  function getHiResTimestamp() {
1594
1594
  let timestamp;
1595
1595
  if (isBrowser3() && window_3.performance) {
@@ -1605,12 +1605,12 @@
1605
1605
  return timestamp;
1606
1606
  }
1607
1607
  var init_hi_res_timestamp = __esm({
1608
- "../../node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js"() {
1608
+ "../core/node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js"() {
1609
1609
  init_dist();
1610
1610
  }
1611
1611
  });
1612
1612
 
1613
- // ../../node_modules/@probe.gl/log/dist/log.js
1613
+ // ../core/node_modules/@probe.gl/log/dist/log.js
1614
1614
  function noop() {
1615
1615
  }
1616
1616
  function normalizeLogLevel(logLevel) {
@@ -1717,7 +1717,7 @@
1717
1717
  }
1718
1718
  var originalConsole, DEFAULT_LOG_CONFIGURATION, cache, ONCE, Log;
1719
1719
  var init_log = __esm({
1720
- "../../node_modules/@probe.gl/log/dist/log.js"() {
1720
+ "../core/node_modules/@probe.gl/log/dist/log.js"() {
1721
1721
  init_defineProperty();
1722
1722
  init_dist();
1723
1723
  init_local_storage();
@@ -1956,10 +1956,10 @@
1956
1956
  }
1957
1957
  });
1958
1958
 
1959
- // ../../node_modules/@probe.gl/log/dist/index.js
1959
+ // ../core/node_modules/@probe.gl/log/dist/index.js
1960
1960
  var dist_default;
1961
1961
  var init_dist2 = __esm({
1962
- "../../node_modules/@probe.gl/log/dist/index.js"() {
1962
+ "../core/node_modules/@probe.gl/log/dist/index.js"() {
1963
1963
  init_log();
1964
1964
  init_log();
1965
1965
  dist_default = new Log({
@@ -8,7 +8,7 @@ exports.ArcGisWebSceneLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseArcgisWebscene = require("./lib/parsers/parse-arcgis-webscene");
11
- var VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
11
+ var VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
12
12
  var ArcGisWebSceneLoader = {
13
13
  name: 'ArcGIS Web Scene Loader',
14
14
  id: 'arcgis-web-scene',
@@ -15,7 +15,7 @@ var _parseI3sAttribute = require("./lib/parsers/parse-i3s-attribute");
15
15
  var _urlUtils = require("./lib/utils/url-utils");
16
16
  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; }
17
17
  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; }
18
- var VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
18
+ var VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
19
19
  var EMPTY_VALUE = '';
20
20
  var REJECTED_STATUS = 'rejected';
21
21
  var I3SAttributeLoader = {
@@ -8,7 +8,7 @@ exports.I3SBuildingSceneLayerLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sBuildingSceneLayer = require("./lib/parsers/parse-i3s-building-scene-layer");
11
- var VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
11
+ var VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
12
12
  var I3SBuildingSceneLayerLoader = {
13
13
  name: 'I3S Building Scene Layer',
14
14
  id: 'i3s-building-scene-layer',
@@ -9,7 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _workerUtils = require("@loaders.gl/worker-utils");
11
11
  var _parseI3sTileContent = require("./lib/parsers/parse-i3s-tile-content");
12
- var VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
12
+ var VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
13
13
  var I3SContentLoader = {
14
14
  name: 'I3S Content (Indexed Scene Layers)',
15
15
  id: _workerUtils.isBrowser ? 'i3s-content' : 'i3s-content-nodejs',
@@ -12,7 +12,7 @@ var _core = require("@loaders.gl/core");
12
12
  var _i3sContentLoader = require("./i3s-content-loader");
13
13
  var _parseI3s = require("./lib/parsers/parse-i3s");
14
14
  var _constants = require("./lib/parsers/constants");
15
- var VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
15
+ var VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
16
16
  var TILESET_REGEX = /layers\/[0-9]+$/;
17
17
  var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
18
18
  var SLPK_HEX = '504b0304';
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.I3SNodePageLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
10
+ var VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
11
11
  function parseNodePage(_x) {
12
12
  return _parseNodePage.apply(this, arguments);
13
13
  }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SLPKLoader = void 0;
7
7
  var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
8
- var VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
8
+ var VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
9
9
  var SLPKLoader = {
10
10
  name: 'I3S SLPK (Scene Layer Package)',
11
11
  id: 'slpk',
@@ -1 +1 @@
1
- {"version":3,"file":"parse-slpk.js","names":["_cdFileHeader","require","_localFileHeader","_slpkArchieve","getByteAt","offset","buffer","getUint8","byteOffset","parseSLPK","_x","_parseSLPK","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$path","options","archive","cdFileHeaderSignature","searchWindow","hashCDOffset","i","cdFileHeader","textDecoder","localFileHeader","fileDataOffset","hashFile","_args","wrap","_callee$","_context","prev","next","length","undefined","DataView","byteLength","every","val","index","abrupt","parseZipCDFileHeader","TextDecoder","decode","fileName","Error","parseZipLocalFileHeader","localHeaderOffset","slice","compressedSize","SLPKArchive","getFile","path","sent","stop"],"sources":["../../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"sourcesContent":["import {SLPKLoaderOptions} from 'modules/i3s/src/i3s-slpk-loader';\nimport {parseZipCDFileHeader} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {SLPKArchive} from './slpk-archieve';\n\n/**\n * Returns one byte from the provided buffer at the provided position\n * @param offset - position where to read\n * @param buffer - buffer to read\n * @returns one byte from the provided buffer at the provided position\n */\nconst getByteAt = (offset: number, buffer: DataView): number => {\n return buffer.getUint8(buffer.byteOffset + offset);\n};\n\nexport async function parseSLPK(data: ArrayBuffer, options: SLPKLoaderOptions = {}) {\n const archive = new DataView(data);\n const cdFileHeaderSignature = [80, 75, 1, 2];\n\n const searchWindow = [\n getByteAt(archive.byteLength - 1, archive),\n getByteAt(archive.byteLength - 2, archive),\n getByteAt(archive.byteLength - 3, archive),\n undefined\n ];\n\n let hashCDOffset = 0;\n\n // looking for the last record in the central directory\n for (let i = archive.byteLength - 4; i > -1; i--) {\n searchWindow[3] = searchWindow[2];\n searchWindow[2] = searchWindow[1];\n searchWindow[1] = searchWindow[0];\n searchWindow[0] = getByteAt(i, archive);\n if (searchWindow.every((val, index) => val === cdFileHeaderSignature[index])) {\n hashCDOffset = i;\n break;\n }\n }\n\n const cdFileHeader = parseZipCDFileHeader(hashCDOffset, archive);\n\n const textDecoder = new TextDecoder();\n if (textDecoder.decode(cdFileHeader.fileName) !== '@specialIndexFileHASH128@') {\n throw new Error('No hash file in slpk');\n }\n\n const localFileHeader = parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, archive);\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = archive.buffer.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n if (!hashFile) {\n throw new Error('No hash file in slpk');\n }\n\n return await new SLPKArchive(data, hashFile).getFile(options.path ?? '');\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-slpk.js","names":["_cdFileHeader","require","_localFileHeader","_slpkArchieve","getByteAt","offset","buffer","getUint8","byteOffset","parseSLPK","_x","_parseSLPK","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$path","options","archive","cdFileHeaderSignature","searchWindow","hashCDOffset","i","cdFileHeader","textDecoder","localFileHeader","fileDataOffset","hashFile","_args","wrap","_callee$","_context","prev","next","length","undefined","DataView","byteLength","every","val","index","abrupt","parseZipCDFileHeader","TextDecoder","decode","fileName","Error","parseZipLocalFileHeader","localHeaderOffset","slice","compressedSize","SLPKArchive","getFile","path","sent","stop"],"sources":["../../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"sourcesContent":["import type {SLPKLoaderOptions} from '../../../i3s-slpk-loader';\nimport {parseZipCDFileHeader} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {SLPKArchive} from './slpk-archieve';\n\n/**\n * Returns one byte from the provided buffer at the provided position\n * @param offset - position where to read\n * @param buffer - buffer to read\n * @returns one byte from the provided buffer at the provided position\n */\nconst getByteAt = (offset: number, buffer: DataView): number => {\n return buffer.getUint8(buffer.byteOffset + offset);\n};\n\nexport async function parseSLPK(data: ArrayBuffer, options: SLPKLoaderOptions = {}) {\n const archive = new DataView(data);\n const cdFileHeaderSignature = [80, 75, 1, 2];\n\n const searchWindow = [\n getByteAt(archive.byteLength - 1, archive),\n getByteAt(archive.byteLength - 2, archive),\n getByteAt(archive.byteLength - 3, archive),\n undefined\n ];\n\n let hashCDOffset = 0;\n\n // looking for the last record in the central directory\n for (let i = archive.byteLength - 4; i > -1; i--) {\n searchWindow[3] = searchWindow[2];\n searchWindow[2] = searchWindow[1];\n searchWindow[1] = searchWindow[0];\n searchWindow[0] = getByteAt(i, archive);\n if (searchWindow.every((val, index) => val === cdFileHeaderSignature[index])) {\n hashCDOffset = i;\n break;\n }\n }\n\n const cdFileHeader = parseZipCDFileHeader(hashCDOffset, archive);\n\n const textDecoder = new TextDecoder();\n if (textDecoder.decode(cdFileHeader.fileName) !== '@specialIndexFileHASH128@') {\n throw new Error('No hash file in slpk');\n }\n\n const localFileHeader = parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, archive);\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = archive.buffer.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n if (!hashFile) {\n throw new Error('No hash file in slpk');\n }\n\n return await new SLPKArchive(data, hashFile).getFile(options.path ?? '');\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { parseWebscene } from './lib/parsers/parse-arcgis-webscene';
2
- const VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
2
+ const VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
3
3
  export const ArcGisWebSceneLoader = {
4
4
  name: 'ArcGIS Web Scene Loader',
5
5
  id: 'arcgis-web-scene',
@@ -1,7 +1,7 @@
1
1
  import { load } from '@loaders.gl/core';
2
2
  import { parseI3STileAttribute } from './lib/parsers/parse-i3s-attribute';
3
3
  import { getUrlWithToken } from './lib/utils/url-utils';
4
- const VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
4
+ const VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
5
5
  const EMPTY_VALUE = '';
6
6
  const REJECTED_STATUS = 'rejected';
7
7
  export const I3SAttributeLoader = {
@@ -1,5 +1,5 @@
1
1
  import { parseBuildingSceneLayer } from './lib/parsers/parse-i3s-building-scene-layer';
2
- const VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
2
+ const VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
3
3
  export const I3SBuildingSceneLayerLoader = {
4
4
  name: 'I3S Building Scene Layer',
5
5
  id: 'i3s-building-scene-layer',
@@ -1,6 +1,6 @@
1
1
  import { isBrowser } from '@loaders.gl/worker-utils';
2
2
  import { parseI3STileContent } from './lib/parsers/parse-i3s-tile-content';
3
- const VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
3
+ const VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
4
4
  export const I3SContentLoader = {
5
5
  name: 'I3S Content (Indexed Scene Layers)',
6
6
  id: isBrowser ? 'i3s-content' : 'i3s-content-nodejs',
@@ -2,7 +2,7 @@ import { parse } from '@loaders.gl/core';
2
2
  import { I3SContentLoader } from './i3s-content-loader';
3
3
  import { normalizeTileData, normalizeTilesetData } from './lib/parsers/parse-i3s';
4
4
  import { COORDINATE_SYSTEM } from './lib/parsers/constants';
5
- const VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
5
+ const VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
6
6
  const TILESET_REGEX = /layers\/[0-9]+$/;
7
7
  const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
8
8
  const SLPK_HEX = '504b0304';
@@ -1,4 +1,4 @@
1
- const VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
1
+ const VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
2
2
  async function parseNodePage(data) {
3
3
  return JSON.parse(new TextDecoder().decode(data));
4
4
  }
@@ -1,5 +1,5 @@
1
1
  import { parseSLPK } from './lib/parsers/parse-slpk/parse-slpk';
2
- const VERSION = typeof "3.4.1" !== 'undefined' ? "3.4.1" : 'latest';
2
+ const VERSION = typeof "3.4.3" !== 'undefined' ? "3.4.3" : 'latest';
3
3
  export const SLPKLoader = {
4
4
  name: 'I3S SLPK (Scene Layer Package)',
5
5
  id: 'slpk',
@@ -1 +1 @@
1
- {"version":3,"file":"parse-slpk.js","names":["parseZipCDFileHeader","parseZipLocalFileHeader","SLPKArchive","getByteAt","offset","buffer","getUint8","byteOffset","parseSLPK","data","_options$path","options","arguments","length","undefined","archive","DataView","cdFileHeaderSignature","searchWindow","byteLength","hashCDOffset","i","every","val","index","cdFileHeader","textDecoder","TextDecoder","decode","fileName","Error","localFileHeader","localHeaderOffset","fileDataOffset","hashFile","slice","compressedSize","getFile","path"],"sources":["../../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"sourcesContent":["import {SLPKLoaderOptions} from 'modules/i3s/src/i3s-slpk-loader';\nimport {parseZipCDFileHeader} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {SLPKArchive} from './slpk-archieve';\n\n/**\n * Returns one byte from the provided buffer at the provided position\n * @param offset - position where to read\n * @param buffer - buffer to read\n * @returns one byte from the provided buffer at the provided position\n */\nconst getByteAt = (offset: number, buffer: DataView): number => {\n return buffer.getUint8(buffer.byteOffset + offset);\n};\n\nexport async function parseSLPK(data: ArrayBuffer, options: SLPKLoaderOptions = {}) {\n const archive = new DataView(data);\n const cdFileHeaderSignature = [80, 75, 1, 2];\n\n const searchWindow = [\n getByteAt(archive.byteLength - 1, archive),\n getByteAt(archive.byteLength - 2, archive),\n getByteAt(archive.byteLength - 3, archive),\n undefined\n ];\n\n let hashCDOffset = 0;\n\n // looking for the last record in the central directory\n for (let i = archive.byteLength - 4; i > -1; i--) {\n searchWindow[3] = searchWindow[2];\n searchWindow[2] = searchWindow[1];\n searchWindow[1] = searchWindow[0];\n searchWindow[0] = getByteAt(i, archive);\n if (searchWindow.every((val, index) => val === cdFileHeaderSignature[index])) {\n hashCDOffset = i;\n break;\n }\n }\n\n const cdFileHeader = parseZipCDFileHeader(hashCDOffset, archive);\n\n const textDecoder = new TextDecoder();\n if (textDecoder.decode(cdFileHeader.fileName) !== '@specialIndexFileHASH128@') {\n throw new Error('No hash file in slpk');\n }\n\n const localFileHeader = parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, archive);\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = archive.buffer.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n if (!hashFile) {\n throw new Error('No hash file in slpk');\n }\n\n return await new SLPKArchive(data, hashFile).getFile(options.path ?? '');\n}\n"],"mappings":"AACA,SAAQA,oBAAoB,QAAO,6BAA6B;AAChE,SAAQC,uBAAuB,QAAO,gCAAgC;AACtE,SAAQC,WAAW,QAAO,iBAAiB;AAQ3C,MAAMC,SAAS,GAAGA,CAACC,MAAc,EAAEC,MAAgB,KAAa;EAC9D,OAAOA,MAAM,CAACC,QAAQ,CAACD,MAAM,CAACE,UAAU,GAAGH,MAAM,CAAC;AACpD,CAAC;AAED,OAAO,eAAeI,SAASA,CAACC,IAAiB,EAAmC;EAAA,IAAAC,aAAA;EAAA,IAAjCC,OAA0B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAChF,MAAMG,OAAO,GAAG,IAAIC,QAAQ,CAACP,IAAI,CAAC;EAClC,MAAMQ,qBAAqB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;EAE5C,MAAMC,YAAY,GAAG,CACnBf,SAAS,CAACY,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEJ,OAAO,CAAC,EAC1CZ,SAAS,CAACY,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEJ,OAAO,CAAC,EAC1CZ,SAAS,CAACY,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEJ,OAAO,CAAC,EAC1CD,SAAS,CACV;EAED,IAAIM,YAAY,GAAG,CAAC;EAGpB,KAAK,IAAIC,CAAC,GAAGN,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEE,CAAC,GAAG,CAAC,CAAC,EAAEA,CAAC,EAAE,EAAE;IAChDH,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IACjCA,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IACjCA,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IACjCA,YAAY,CAAC,CAAC,CAAC,GAAGf,SAAS,CAACkB,CAAC,EAAEN,OAAO,CAAC;IACvC,IAAIG,YAAY,CAACI,KAAK,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAKD,GAAG,KAAKN,qBAAqB,CAACO,KAAK,CAAC,CAAC,EAAE;MAC5EJ,YAAY,GAAGC,CAAC;MAChB;IACF;EACF;EAEA,MAAMI,YAAY,GAAGzB,oBAAoB,CAACoB,YAAY,EAAEL,OAAO,CAAC;EAEhE,MAAMW,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC;EACrC,IAAID,WAAW,CAACE,MAAM,CAACH,YAAY,CAACI,QAAQ,CAAC,KAAK,2BAA2B,EAAE;IAC7E,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,MAAMC,eAAe,GAAG9B,uBAAuB,CAACwB,YAAY,CAACO,iBAAiB,EAAEjB,OAAO,CAAC;EAExF,MAAMkB,cAAc,GAAGF,eAAe,CAACE,cAAc;EACrD,MAAMC,QAAQ,GAAGnB,OAAO,CAACV,MAAM,CAAC8B,KAAK,CACnCF,cAAc,EACdA,cAAc,GAAGF,eAAe,CAACK,cACnC,CAAC;EAED,IAAI,CAACF,QAAQ,EAAE;IACb,MAAM,IAAIJ,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,OAAO,MAAM,IAAI5B,WAAW,CAACO,IAAI,EAAEyB,QAAQ,CAAC,CAACG,OAAO,EAAA3B,aAAA,GAACC,OAAO,CAAC2B,IAAI,cAAA5B,aAAA,cAAAA,aAAA,GAAI,EAAE,CAAC;AAC1E"}
1
+ {"version":3,"file":"parse-slpk.js","names":["parseZipCDFileHeader","parseZipLocalFileHeader","SLPKArchive","getByteAt","offset","buffer","getUint8","byteOffset","parseSLPK","data","_options$path","options","arguments","length","undefined","archive","DataView","cdFileHeaderSignature","searchWindow","byteLength","hashCDOffset","i","every","val","index","cdFileHeader","textDecoder","TextDecoder","decode","fileName","Error","localFileHeader","localHeaderOffset","fileDataOffset","hashFile","slice","compressedSize","getFile","path"],"sources":["../../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"sourcesContent":["import type {SLPKLoaderOptions} from '../../../i3s-slpk-loader';\nimport {parseZipCDFileHeader} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {SLPKArchive} from './slpk-archieve';\n\n/**\n * Returns one byte from the provided buffer at the provided position\n * @param offset - position where to read\n * @param buffer - buffer to read\n * @returns one byte from the provided buffer at the provided position\n */\nconst getByteAt = (offset: number, buffer: DataView): number => {\n return buffer.getUint8(buffer.byteOffset + offset);\n};\n\nexport async function parseSLPK(data: ArrayBuffer, options: SLPKLoaderOptions = {}) {\n const archive = new DataView(data);\n const cdFileHeaderSignature = [80, 75, 1, 2];\n\n const searchWindow = [\n getByteAt(archive.byteLength - 1, archive),\n getByteAt(archive.byteLength - 2, archive),\n getByteAt(archive.byteLength - 3, archive),\n undefined\n ];\n\n let hashCDOffset = 0;\n\n // looking for the last record in the central directory\n for (let i = archive.byteLength - 4; i > -1; i--) {\n searchWindow[3] = searchWindow[2];\n searchWindow[2] = searchWindow[1];\n searchWindow[1] = searchWindow[0];\n searchWindow[0] = getByteAt(i, archive);\n if (searchWindow.every((val, index) => val === cdFileHeaderSignature[index])) {\n hashCDOffset = i;\n break;\n }\n }\n\n const cdFileHeader = parseZipCDFileHeader(hashCDOffset, archive);\n\n const textDecoder = new TextDecoder();\n if (textDecoder.decode(cdFileHeader.fileName) !== '@specialIndexFileHASH128@') {\n throw new Error('No hash file in slpk');\n }\n\n const localFileHeader = parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, archive);\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = archive.buffer.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n if (!hashFile) {\n throw new Error('No hash file in slpk');\n }\n\n return await new SLPKArchive(data, hashFile).getFile(options.path ?? '');\n}\n"],"mappings":"AACA,SAAQA,oBAAoB,QAAO,6BAA6B;AAChE,SAAQC,uBAAuB,QAAO,gCAAgC;AACtE,SAAQC,WAAW,QAAO,iBAAiB;AAQ3C,MAAMC,SAAS,GAAGA,CAACC,MAAc,EAAEC,MAAgB,KAAa;EAC9D,OAAOA,MAAM,CAACC,QAAQ,CAACD,MAAM,CAACE,UAAU,GAAGH,MAAM,CAAC;AACpD,CAAC;AAED,OAAO,eAAeI,SAASA,CAACC,IAAiB,EAAmC;EAAA,IAAAC,aAAA;EAAA,IAAjCC,OAA0B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAChF,MAAMG,OAAO,GAAG,IAAIC,QAAQ,CAACP,IAAI,CAAC;EAClC,MAAMQ,qBAAqB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;EAE5C,MAAMC,YAAY,GAAG,CACnBf,SAAS,CAACY,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEJ,OAAO,CAAC,EAC1CZ,SAAS,CAACY,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEJ,OAAO,CAAC,EAC1CZ,SAAS,CAACY,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEJ,OAAO,CAAC,EAC1CD,SAAS,CACV;EAED,IAAIM,YAAY,GAAG,CAAC;EAGpB,KAAK,IAAIC,CAAC,GAAGN,OAAO,CAACI,UAAU,GAAG,CAAC,EAAEE,CAAC,GAAG,CAAC,CAAC,EAAEA,CAAC,EAAE,EAAE;IAChDH,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IACjCA,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IACjCA,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IACjCA,YAAY,CAAC,CAAC,CAAC,GAAGf,SAAS,CAACkB,CAAC,EAAEN,OAAO,CAAC;IACvC,IAAIG,YAAY,CAACI,KAAK,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAKD,GAAG,KAAKN,qBAAqB,CAACO,KAAK,CAAC,CAAC,EAAE;MAC5EJ,YAAY,GAAGC,CAAC;MAChB;IACF;EACF;EAEA,MAAMI,YAAY,GAAGzB,oBAAoB,CAACoB,YAAY,EAAEL,OAAO,CAAC;EAEhE,MAAMW,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC;EACrC,IAAID,WAAW,CAACE,MAAM,CAACH,YAAY,CAACI,QAAQ,CAAC,KAAK,2BAA2B,EAAE;IAC7E,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,MAAMC,eAAe,GAAG9B,uBAAuB,CAACwB,YAAY,CAACO,iBAAiB,EAAEjB,OAAO,CAAC;EAExF,MAAMkB,cAAc,GAAGF,eAAe,CAACE,cAAc;EACrD,MAAMC,QAAQ,GAAGnB,OAAO,CAACV,MAAM,CAAC8B,KAAK,CACnCF,cAAc,EACdA,cAAc,GAAGF,eAAe,CAACK,cACnC,CAAC;EAED,IAAI,CAACF,QAAQ,EAAE;IACb,MAAM,IAAIJ,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,OAAO,MAAM,IAAI5B,WAAW,CAACO,IAAI,EAAEyB,QAAQ,CAAC,CAACG,OAAO,EAAA3B,aAAA,GAACC,OAAO,CAAC2B,IAAI,cAAA5B,aAAA,cAAAA,aAAA,GAAI,EAAE,CAAC;AAC1E"}