@loaders.gl/i3s 4.0.0-alpha.14 → 4.0.0-alpha.16

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 (115) hide show
  1. package/dist/dist.min.js +329 -211
  2. package/dist/es5/arcgis-webscene-loader.js +1 -1
  3. package/dist/es5/i3s-attribute-loader.js +1 -1
  4. package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
  5. package/dist/es5/i3s-content-loader.js +1 -1
  6. package/dist/es5/i3s-loader.js +1 -1
  7. package/dist/es5/i3s-node-page-loader.js +1 -1
  8. package/dist/es5/i3s-slpk-loader.js +30 -2
  9. package/dist/es5/i3s-slpk-loader.js.map +1 -1
  10. package/dist/es5/index.js +7 -7
  11. package/dist/es5/index.js.map +1 -1
  12. package/dist/es5/lib/parsers/constants.js +14 -15
  13. package/dist/es5/lib/parsers/constants.js.map +1 -1
  14. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +101 -76
  15. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  16. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +54 -34
  17. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  18. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +76 -39
  19. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
  20. package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js +129 -0
  21. package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js.map +1 -0
  22. package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js +100 -0
  23. package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js.map +1 -0
  24. package/dist/es5/lib/parsers/parse-zip/file-provider.js.map +1 -1
  25. package/dist/es5/lib/parsers/parse-zip/local-file-header.js +55 -14
  26. package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -1
  27. package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js +69 -0
  28. package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js.map +1 -0
  29. package/dist/es5/types.js +1 -14
  30. package/dist/es5/types.js.map +1 -1
  31. package/dist/esm/arcgis-webscene-loader.js +1 -1
  32. package/dist/esm/i3s-attribute-loader.js +1 -1
  33. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  34. package/dist/esm/i3s-content-loader.js +1 -1
  35. package/dist/esm/i3s-loader.js +1 -1
  36. package/dist/esm/i3s-node-page-loader.js +1 -1
  37. package/dist/esm/i3s-slpk-loader.js +8 -2
  38. package/dist/esm/i3s-slpk-loader.js.map +1 -1
  39. package/dist/esm/index.js +1 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/lib/parsers/constants.js +14 -15
  42. package/dist/esm/lib/parsers/constants.js.map +1 -1
  43. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +50 -35
  44. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  45. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +38 -22
  46. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  47. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +30 -22
  48. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
  49. package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js +32 -0
  50. package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js.map +1 -0
  51. package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js +33 -0
  52. package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js.map +1 -0
  53. package/dist/esm/lib/parsers/parse-zip/file-provider.js.map +1 -1
  54. package/dist/esm/lib/parsers/parse-zip/local-file-header.js +25 -10
  55. package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +1 -1
  56. package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js +16 -0
  57. package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js.map +1 -0
  58. package/dist/esm/types.js +0 -12
  59. package/dist/esm/types.js.map +1 -1
  60. package/dist/i3s-content-worker-node.js +47 -47
  61. package/dist/i3s-content-worker-node.js.map +2 -2
  62. package/dist/i3s-content-worker.js +22 -34
  63. package/dist/i3s-slpk-loader.d.ts +3 -0
  64. package/dist/i3s-slpk-loader.d.ts.map +1 -1
  65. package/dist/i3s-slpk-loader.js +11 -1
  66. package/dist/index.d.ts +3 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +3 -1
  69. package/dist/lib/parsers/constants.d.ts.map +1 -1
  70. package/dist/lib/parsers/constants.js +14 -15
  71. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +9 -3
  72. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
  73. package/dist/lib/parsers/parse-slpk/parse-slpk.js +65 -42
  74. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +22 -10
  75. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
  76. package/dist/lib/parsers/parse-slpk/slpk-archieve.js +56 -28
  77. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +9 -5
  78. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +1 -1
  79. package/dist/lib/parsers/parse-zip/cd-file-header.js +32 -25
  80. package/dist/lib/parsers/parse-zip/{buffer-file-provider.d.ts → data-view-file-provider.d.ts} +15 -16
  81. package/dist/lib/parsers/parse-zip/data-view-file-provider.d.ts.map +1 -0
  82. package/dist/lib/parsers/parse-zip/{buffer-file-provider.js → data-view-file-provider.js} +28 -14
  83. package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts +18 -0
  84. package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts.map +1 -0
  85. package/dist/lib/parsers/parse-zip/end-of-central-directory.js +41 -0
  86. package/dist/lib/parsers/parse-zip/file-provider.d.ts +10 -5
  87. package/dist/lib/parsers/parse-zip/file-provider.d.ts.map +1 -1
  88. package/dist/lib/parsers/parse-zip/local-file-header.d.ts +5 -3
  89. package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +1 -1
  90. package/dist/lib/parsers/parse-zip/local-file-header.js +30 -11
  91. package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts +11 -0
  92. package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts.map +1 -0
  93. package/dist/lib/parsers/parse-zip/search-from-the-end.js +31 -0
  94. package/dist/types.d.ts +17 -24
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js +1 -13
  97. package/package.json +9 -9
  98. package/src/i3s-slpk-loader.ts +19 -1
  99. package/src/index.ts +2 -2
  100. package/src/lib/parsers/constants.ts +14 -15
  101. package/src/lib/parsers/parse-slpk/parse-slpk.ts +83 -58
  102. package/src/lib/parsers/parse-slpk/slpk-archieve.ts +59 -44
  103. package/src/lib/parsers/parse-zip/cd-file-header.ts +52 -32
  104. package/src/lib/parsers/parse-zip/data-view-file-provider.ts +69 -0
  105. package/src/lib/parsers/parse-zip/end-of-central-directory.ts +78 -0
  106. package/src/lib/parsers/parse-zip/file-provider.ts +11 -5
  107. package/src/lib/parsers/parse-zip/local-file-header.ts +45 -19
  108. package/src/lib/parsers/parse-zip/search-from-the-end.ts +38 -0
  109. package/src/types.ts +25 -40
  110. package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js +0 -46
  111. package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js.map +0 -1
  112. package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js +0 -23
  113. package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js.map +0 -1
  114. package/dist/lib/parsers/parse-zip/buffer-file-provider.d.ts.map +0 -1
  115. package/src/lib/parsers/parse-zip/buffer-file-provider.ts +0 -55
@@ -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 "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.16" !== 'undefined' ? "4.0.0-alpha.16" : 'beta';
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 "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'latest';
18
+ var VERSION = typeof "4.0.0-alpha.16" !== 'undefined' ? "4.0.0-alpha.16" : '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 "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.16" !== 'undefined' ? "4.0.0-alpha.16" : 'beta';
12
12
  var I3SBuildingSceneLayerLoader = {
13
13
  name: 'I3S Building Scene Layer',
14
14
  id: 'i3s-building-scene-layer',
@@ -8,7 +8,7 @@ exports.I3SContentLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sTileContent = require("./lib/parsers/parse-i3s-tile-content");
11
- var VERSION = typeof "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.16" !== 'undefined' ? "4.0.0-alpha.16" : 'beta';
12
12
  var I3SContentLoader = {
13
13
  name: 'I3S Content (Indexed Scene Layers)',
14
14
  id: 'i3s-content',
@@ -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 "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'latest';
15
+ var VERSION = typeof "4.0.0-alpha.16" !== 'undefined' ? "4.0.0-alpha.16" : '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 "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'latest';
10
+ var VERSION = typeof "4.0.0-alpha.16" !== 'undefined' ? "4.0.0-alpha.16" : 'latest';
11
11
  function parseNodePage(_x, _x2) {
12
12
  return _parseNodePage.apply(this, arguments);
13
13
  }
@@ -1,20 +1,48 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.SLPKLoader = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
7
10
  var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
8
- var VERSION = typeof "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'latest';
11
+ var _dataViewFileProvider = require("./lib/parsers/parse-zip/data-view-file-provider");
12
+ var VERSION = typeof "4.0.0-alpha.16" !== 'undefined' ? "4.0.0-alpha.16" : 'latest';
9
13
  var SLPKLoader = {
10
14
  name: 'I3S SLPK (Scene Layer Package)',
11
15
  id: 'slpk',
12
16
  module: 'i3s',
13
17
  version: VERSION,
14
18
  mimeTypes: ['application/octet-stream'],
15
- parse: _parseSlpk.parseSLPK,
19
+ parse: parseSLPK,
16
20
  extensions: ['slpk'],
17
21
  options: {}
18
22
  };
19
23
  exports.SLPKLoader = SLPKLoader;
24
+ function parseSLPK(_x) {
25
+ return _parseSLPK.apply(this, arguments);
26
+ }
27
+ function _parseSLPK() {
28
+ _parseSLPK = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
29
+ var _options$slpk$path, _options$slpk, _options$slpk2;
30
+ var options,
31
+ _args = arguments;
32
+ return _regenerator.default.wrap(function _callee$(_context) {
33
+ while (1) switch (_context.prev = _context.next) {
34
+ case 0:
35
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
36
+ _context.next = 3;
37
+ return (0, _parseSlpk.parseSLPK)(new _dataViewFileProvider.DataViewFileProvider(new DataView(data)));
38
+ case 3:
39
+ return _context.abrupt("return", _context.sent.getFile((_options$slpk$path = (_options$slpk = options.slpk) === null || _options$slpk === void 0 ? void 0 : _options$slpk.path) !== null && _options$slpk$path !== void 0 ? _options$slpk$path : '', (_options$slpk2 = options.slpk) === null || _options$slpk2 === void 0 ? void 0 : _options$slpk2.pathMode));
40
+ case 4:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }, _callee);
45
+ }));
46
+ return _parseSLPK.apply(this, arguments);
47
+ }
20
48
  //# sourceMappingURL=i3s-slpk-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-slpk-loader.js","names":["_parseSlpk","require","VERSION","SLPKLoader","name","id","module","version","mimeTypes","parse","parseSLPK","extensions","options","exports"],"sources":["../../src/i3s-slpk-loader.ts"],"sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parseSLPK} from './lib/parsers/parse-slpk/parse-slpk';\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 SLPKLoaderOptions = LoaderOptions & {\n slpk?: {\n path?: string;\n pathMode?: 'http' | 'raw';\n };\n};\n\n/**\n * Loader for SLPK - Scene Layer Package\n */\nexport const SLPKLoader: LoaderWithParser<Buffer, never, SLPKLoaderOptions> = {\n name: 'I3S SLPK (Scene Layer Package)',\n id: 'slpk',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseSLPK,\n extensions: ['slpk'],\n options: {}\n};\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAYpE,IAAMC,UAA8D,GAAG;EAC5EC,IAAI,EAAE,gCAAgC;EACtCC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAEC,oBAAS;EAChBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAV,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"i3s-slpk-loader.js","names":["_parseSlpk","require","_dataViewFileProvider","VERSION","SLPKLoader","name","id","module","version","mimeTypes","parse","parseSLPK","extensions","options","exports","_x","_parseSLPK","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$slpk$path","_options$slpk","_options$slpk2","_args","wrap","_callee$","_context","prev","next","length","undefined","parseSLPKFromProvider","DataViewFileProvider","DataView","abrupt","sent","getFile","slpk","path","pathMode","stop"],"sources":["../../src/i3s-slpk-loader.ts"],"sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parseSLPK as parseSLPKFromProvider} from './lib/parsers/parse-slpk/parse-slpk';\nimport {DataViewFileProvider} from './lib/parsers/parse-zip/data-view-file-provider';\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\n/** options to load data from SLPK */\nexport type SLPKLoaderOptions = LoaderOptions & {\n slpk?: {\n /** path inside the slpk archive */\n path?: string;\n /** mode of the path */\n pathMode?: 'http' | 'raw';\n };\n};\n\n/**\n * Loader for SLPK - Scene Layer Package\n */\nexport const SLPKLoader: LoaderWithParser<Buffer, never, SLPKLoaderOptions> = {\n name: 'I3S SLPK (Scene Layer Package)',\n id: 'slpk',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseSLPK,\n extensions: ['slpk'],\n options: {}\n};\n\n/**\n * returns a single file from the slpk archive\n * @param data slpk archive data\n * @param options options\n * @returns requested file\n */\n\nasync function parseSLPK(data: ArrayBuffer, options: SLPKLoaderOptions = {}) {\n return (await parseSLPKFromProvider(new DataViewFileProvider(new DataView(data)))).getFile(\n options.slpk?.path ?? '',\n options.slpk?.pathMode\n );\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAIA,IAAME,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAepE,IAAMC,UAA8D,GAAG;EAC5EC,IAAI,EAAE,gCAAgC;EACtCC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAEC,SAAS;EAChBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAV,UAAA,GAAAA,UAAA;AAAA,SASaO,SAASA,CAAAI,EAAA;EAAA,OAAAC,UAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,WAAA;EAAAA,UAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAxB,SAAAC,QAAyBC,IAAiB;IAAA,IAAAC,kBAAA,EAAAC,aAAA,EAAAC,cAAA;IAAA,IAAAd,OAAA;MAAAe,KAAA,GAAAV,SAAA;IAAA,OAAAG,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEpB,OAA0B,GAAAe,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,CAAC,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAAA,OAC3D,IAAAG,oBAAqB,EAAC,IAAIC,0CAAoB,CAAC,IAAIC,QAAQ,CAACd,IAAI,CAAC,CAAC,CAAC;QAAA;UAAA,OAAAO,QAAA,CAAAQ,MAAA,WAAAR,QAAA,CAAAS,IAAA,CAAEC,OAAO,EAAAhB,kBAAA,IAAAC,aAAA,GACxFb,OAAO,CAAC6B,IAAI,cAAAhB,aAAA,uBAAZA,aAAA,CAAciB,IAAI,cAAAlB,kBAAA,cAAAA,kBAAA,GAAI,EAAE,GAAAE,cAAA,GACxBd,OAAO,CAAC6B,IAAI,cAAAf,cAAA,uBAAZA,cAAA,CAAciB,QAAQ;QAAA;QAAA;UAAA,OAAAb,QAAA,CAAAc,IAAA;MAAA;IAAA,GAAAtB,OAAA;EAAA,CAEzB;EAAA,OAAAP,UAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
package/dist/es5/index.js CHANGED
@@ -15,12 +15,6 @@ Object.defineProperty(exports, "COORDINATE_SYSTEM", {
15
15
  return _constants.COORDINATE_SYSTEM;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "FileProvider", {
19
- enumerable: true,
20
- get: function get() {
21
- return _fileProvider.FileProvider;
22
- }
23
- });
24
18
  Object.defineProperty(exports, "I3SAttributeLoader", {
25
19
  enumerable: true,
26
20
  get: function get() {
@@ -63,6 +57,12 @@ Object.defineProperty(exports, "loadFeatureAttributes", {
63
57
  return _i3sAttributeLoader.loadFeatureAttributes;
64
58
  }
65
59
  });
60
+ Object.defineProperty(exports, "parseSLPK", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _parseSlpk.parseSLPK;
64
+ }
65
+ });
66
66
  Object.defineProperty(exports, "parseZipLocalFileHeader", {
67
67
  enumerable: true,
68
68
  get: function get() {
@@ -78,5 +78,5 @@ var _i3sBuildingSceneLayerLoader = require("./i3s-building-scene-layer-loader");
78
78
  var _i3sNodePageLoader = require("./i3s-node-page-loader");
79
79
  var _arcgisWebsceneLoader = require("./arcgis-webscene-loader");
80
80
  var _localFileHeader = require("./lib/parsers/parse-zip/local-file-header");
81
- var _fileProvider = require("./lib/parsers/parse-zip/file-provider");
81
+ var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
82
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_constants","require","_i3sLoader","_i3sSlpkLoader","_i3sContentLoader","_i3sAttributeLoader","_i3sBuildingSceneLayerLoader","_i3sNodePageLoader","_arcgisWebsceneLoader","_localFileHeader","_fileProvider"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n Attribute,\n Extent,\n FeatureAttribute,\n FieldInfo,\n I3SMaterialDefinition,\n TextureDefinitionInfo,\n MaterialDefinitionInfo,\n FullExtent,\n StatisticsInfo,\n StatsInfo,\n Histogram,\n ValueCount,\n BuildingSceneSublayer,\n DATA_TYPE,\n OperationalLayer,\n TextureSetDefinitionFormats\n} from './types';\n\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n\nexport {I3SLoader} from './i3s-loader';\nexport {SLPKLoader} from './i3s-slpk-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport {I3SNodePageLoader} from './i3s-node-page-loader';\nexport {ArcGisWebSceneLoader} from './arcgis-webscene-loader';\nexport {parseZipLocalFileHeader} from './lib/parsers/parse-zip/local-file-header';\nexport {FileProvider} from './lib/parsers/parse-zip/file-provider';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,4BAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_constants","require","_i3sLoader","_i3sSlpkLoader","_i3sContentLoader","_i3sAttributeLoader","_i3sBuildingSceneLayerLoader","_i3sNodePageLoader","_arcgisWebsceneLoader","_localFileHeader","_parseSlpk"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n Attribute,\n Extent,\n FeatureAttribute,\n FieldInfo,\n I3SMaterialDefinition,\n TextureDefinitionInfo,\n MaterialDefinitionInfo,\n FullExtent,\n StatisticsInfo,\n StatsInfo,\n Histogram,\n ValueCount,\n BuildingSceneSublayer,\n OperationalLayer,\n TextureSetDefinitionFormats\n} from './types';\nexport type {FileProvider} from './lib/parsers/parse-zip/file-provider';\n\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n\nexport {I3SLoader} from './i3s-loader';\nexport {SLPKLoader} from './i3s-slpk-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport {I3SNodePageLoader} from './i3s-node-page-loader';\nexport {ArcGisWebSceneLoader} from './arcgis-webscene-loader';\nexport {parseZipLocalFileHeader} from './lib/parsers/parse-zip/local-file-header';\nexport {parseSLPK} from './lib/parsers/parse-slpk/parse-slpk';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,4BAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA"}
@@ -8,18 +8,17 @@ exports.STRING_ATTRIBUTE_TYPE = exports.OBJECT_ID_ATTRIBUTE_TYPE = exports.INT_1
8
8
  exports.getConstructorForDataFormat = getConstructorForDataFormat;
9
9
  exports.sizeOf = sizeOf;
10
10
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
11
- var _types = require("../../types");
12
11
  function getConstructorForDataFormat(dataType) {
13
12
  switch (dataType) {
14
- case _types.DATA_TYPE.UInt8:
13
+ case 'UInt8':
15
14
  return Uint8Array;
16
- case _types.DATA_TYPE.UInt16:
15
+ case 'UInt16':
17
16
  return Uint16Array;
18
- case _types.DATA_TYPE.UInt32:
17
+ case 'UInt32':
19
18
  return Uint32Array;
20
- case _types.DATA_TYPE.Float32:
19
+ case 'Float32':
21
20
  return Float32Array;
22
- case _types.DATA_TYPE.UInt64:
21
+ case 'UInt64':
23
22
  return Float64Array;
24
23
  default:
25
24
  throw new Error("parse i3s tile content: unknown type of data: ".concat(dataType));
@@ -35,18 +34,18 @@ var GL_TYPE_MAP = {
35
34
  exports.GL_TYPE_MAP = GL_TYPE_MAP;
36
35
  function sizeOf(dataType) {
37
36
  switch (dataType) {
38
- case _types.DATA_TYPE.UInt8:
37
+ case 'UInt8':
39
38
  return 1;
40
- case _types.DATA_TYPE.UInt16:
41
- case _types.DATA_TYPE.Int16:
39
+ case 'UInt16':
40
+ case 'Int16':
42
41
  return 2;
43
- case _types.DATA_TYPE.UInt32:
44
- case _types.DATA_TYPE.Int32:
45
- case _types.DATA_TYPE.Float32:
42
+ case 'UInt32':
43
+ case 'Int32':
44
+ case 'Float32':
46
45
  return 4;
47
- case _types.DATA_TYPE.UInt64:
48
- case _types.DATA_TYPE.Int64:
49
- case _types.DATA_TYPE.Float64:
46
+ case 'UInt64':
47
+ case 'Int64':
48
+ case 'Float64':
50
49
  return 8;
51
50
  default:
52
51
  throw new Error("parse i3s tile content: unknown size of data: ".concat(dataType));
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["_constants","_interopRequireDefault","require","_types","getConstructorForDataFormat","dataType","DATA_TYPE","UInt8","Uint8Array","UInt16","Uint16Array","UInt32","Uint32Array","Float32","Float32Array","UInt64","Float64Array","Error","concat","GL_TYPE_MAP","GL","UNSIGNED_BYTE","UNSIGNED_SHORT","FLOAT","UNSIGNED_INT","DOUBLE","exports","sizeOf","Int16","Int32","Int64","Float64","STRING_ATTRIBUTE_TYPE","OBJECT_ID_ATTRIBUTE_TYPE","FLOAT_64_TYPE","INT_16_ATTRIBUTE_TYPE","COORDINATE_SYSTEM"],"sources":["../../../../src/lib/parsers/constants.ts"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {DATA_TYPE} from '../../types';\n\nexport function getConstructorForDataFormat(dataType: string) {\n switch (dataType) {\n case DATA_TYPE.UInt8:\n return Uint8Array;\n case DATA_TYPE.UInt16:\n return Uint16Array;\n case DATA_TYPE.UInt32:\n return Uint32Array;\n case DATA_TYPE.Float32:\n return Float32Array;\n case DATA_TYPE.UInt64:\n return Float64Array;\n default:\n throw new Error(`parse i3s tile content: unknown type of data: ${dataType}`);\n }\n}\n\nexport const GL_TYPE_MAP: {[key: string]: number} = {\n UInt8: GL.UNSIGNED_BYTE,\n UInt16: GL.UNSIGNED_SHORT,\n Float32: GL.FLOAT,\n UInt32: GL.UNSIGNED_INT,\n UInt64: GL.DOUBLE\n};\n/**\n * Returns how many bytes a type occupies\n * @param dataType\n * @returns\n */\nexport function sizeOf(dataType: string): number {\n switch (dataType) {\n case DATA_TYPE.UInt8:\n return 1;\n case DATA_TYPE.UInt16:\n case DATA_TYPE.Int16:\n return 2;\n case DATA_TYPE.UInt32:\n case DATA_TYPE.Int32:\n case DATA_TYPE.Float32:\n return 4;\n case DATA_TYPE.UInt64:\n case DATA_TYPE.Int64:\n case DATA_TYPE.Float64:\n return 8;\n default:\n throw new Error(`parse i3s tile content: unknown size of data: ${dataType}`);\n }\n}\n\nexport const STRING_ATTRIBUTE_TYPE = 'String';\nexport const OBJECT_ID_ATTRIBUTE_TYPE = 'Oid32';\nexport const FLOAT_64_TYPE = 'Float64';\nexport const INT_16_ATTRIBUTE_TYPE = 'Int16';\n\n// https://github.com/visgl/deck.gl/blob/9548f43cba2234a1f4877b6b17f6c88eb35b2e08/modules/core/src/lib/constants.js#L27\n// Describes the format of positions\nexport enum COORDINATE_SYSTEM {\n /**\n * `LNGLAT` if rendering into a geospatial viewport, `CARTESIAN` otherwise\n */\n DEFAULT = -1,\n /**\n * Positions are interpreted as [lng, lat, elevation]\n * lng lat are degrees, elevation is meters. distances as meters.\n */\n LNGLAT = 1,\n /**\n * Positions are interpreted as meter offsets, distances as meters\n */\n METER_OFFSETS = 2,\n /**\n * Positions are interpreted as lng lat offsets: [deltaLng, deltaLat, elevation]\n * deltaLng, deltaLat are delta degrees, elevation is meters.\n * distances as meters.\n */\n LNGLAT_OFFSETS = 3,\n /**\n * Non-geospatial\n */\n CARTESIAN = 0\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEO,SAASE,2BAA2BA,CAACC,QAAgB,EAAE;EAC5D,QAAQA,QAAQ;IACd,KAAKC,gBAAS,CAACC,KAAK;MAClB,OAAOC,UAAU;IACnB,KAAKF,gBAAS,CAACG,MAAM;MACnB,OAAOC,WAAW;IACpB,KAAKJ,gBAAS,CAACK,MAAM;MACnB,OAAOC,WAAW;IACpB,KAAKN,gBAAS,CAACO,OAAO;MACpB,OAAOC,YAAY;IACrB,KAAKR,gBAAS,CAACS,MAAM;MACnB,OAAOC,YAAY;IACrB;MACE,MAAM,IAAIC,KAAK,kDAAAC,MAAA,CAAkDb,QAAQ,CAAE,CAAC;EAChF;AACF;AAEO,IAAMc,WAAoC,GAAG;EAClDZ,KAAK,EAAEa,kBAAE,CAACC,aAAa;EACvBZ,MAAM,EAAEW,kBAAE,CAACE,cAAc;EACzBT,OAAO,EAAEO,kBAAE,CAACG,KAAK;EACjBZ,MAAM,EAAES,kBAAE,CAACI,YAAY;EACvBT,MAAM,EAAEK,kBAAE,CAACK;AACb,CAAC;AAACC,OAAA,CAAAP,WAAA,GAAAA,WAAA;AAMK,SAASQ,MAAMA,CAACtB,QAAgB,EAAU;EAC/C,QAAQA,QAAQ;IACd,KAAKC,gBAAS,CAACC,KAAK;MAClB,OAAO,CAAC;IACV,KAAKD,gBAAS,CAACG,MAAM;IACrB,KAAKH,gBAAS,CAACsB,KAAK;MAClB,OAAO,CAAC;IACV,KAAKtB,gBAAS,CAACK,MAAM;IACrB,KAAKL,gBAAS,CAACuB,KAAK;IACpB,KAAKvB,gBAAS,CAACO,OAAO;MACpB,OAAO,CAAC;IACV,KAAKP,gBAAS,CAACS,MAAM;IACrB,KAAKT,gBAAS,CAACwB,KAAK;IACpB,KAAKxB,gBAAS,CAACyB,OAAO;MACpB,OAAO,CAAC;IACV;MACE,MAAM,IAAId,KAAK,kDAAAC,MAAA,CAAkDb,QAAQ,CAAE,CAAC;EAChF;AACF;AAEO,IAAM2B,qBAAqB,GAAG,QAAQ;AAACN,OAAA,CAAAM,qBAAA,GAAAA,qBAAA;AACvC,IAAMC,wBAAwB,GAAG,OAAO;AAACP,OAAA,CAAAO,wBAAA,GAAAA,wBAAA;AACzC,IAAMC,aAAa,GAAG,SAAS;AAACR,OAAA,CAAAQ,aAAA,GAAAA,aAAA;AAChC,IAAMC,qBAAqB,GAAG,OAAO;AAACT,OAAA,CAAAS,qBAAA,GAAAA,qBAAA;AAAA,IAIjCC,iBAAiB,aAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAAV,OAAA,CAAAU,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"file":"constants.js","names":["_constants","_interopRequireDefault","require","getConstructorForDataFormat","dataType","Uint8Array","Uint16Array","Uint32Array","Float32Array","Float64Array","Error","concat","GL_TYPE_MAP","UInt8","GL","UNSIGNED_BYTE","UInt16","UNSIGNED_SHORT","Float32","FLOAT","UInt32","UNSIGNED_INT","UInt64","DOUBLE","exports","sizeOf","STRING_ATTRIBUTE_TYPE","OBJECT_ID_ATTRIBUTE_TYPE","FLOAT_64_TYPE","INT_16_ATTRIBUTE_TYPE","COORDINATE_SYSTEM"],"sources":["../../../../src/lib/parsers/constants.ts"],"sourcesContent":["import GL from '@luma.gl/constants';\n\nexport function getConstructorForDataFormat(dataType: string) {\n switch (dataType) {\n case 'UInt8':\n return Uint8Array;\n case 'UInt16':\n return Uint16Array;\n case 'UInt32':\n return Uint32Array;\n case 'Float32':\n return Float32Array;\n case 'UInt64':\n return Float64Array;\n default:\n throw new Error(`parse i3s tile content: unknown type of data: ${dataType}`);\n }\n}\n\nexport const GL_TYPE_MAP: {[key: string]: number} = {\n UInt8: GL.UNSIGNED_BYTE,\n UInt16: GL.UNSIGNED_SHORT,\n Float32: GL.FLOAT,\n UInt32: GL.UNSIGNED_INT,\n UInt64: GL.DOUBLE\n};\n/**\n * Returns how many bytes a type occupies\n * @param dataType\n * @returns\n */\nexport function sizeOf(dataType: string): number {\n switch (dataType) {\n case 'UInt8':\n return 1;\n case 'UInt16':\n case 'Int16':\n return 2;\n case 'UInt32':\n case 'Int32':\n case 'Float32':\n return 4;\n case 'UInt64':\n case 'Int64':\n case 'Float64':\n return 8;\n default:\n throw new Error(`parse i3s tile content: unknown size of data: ${dataType}`);\n }\n}\n\nexport const STRING_ATTRIBUTE_TYPE = 'String';\nexport const OBJECT_ID_ATTRIBUTE_TYPE = 'Oid32';\nexport const FLOAT_64_TYPE = 'Float64';\nexport const INT_16_ATTRIBUTE_TYPE = 'Int16';\n\n// https://github.com/visgl/deck.gl/blob/9548f43cba2234a1f4877b6b17f6c88eb35b2e08/modules/core/src/lib/constants.js#L27\n// Describes the format of positions\nexport enum COORDINATE_SYSTEM {\n /**\n * `LNGLAT` if rendering into a geospatial viewport, `CARTESIAN` otherwise\n */\n DEFAULT = -1,\n /**\n * Positions are interpreted as [lng, lat, elevation]\n * lng lat are degrees, elevation is meters. distances as meters.\n */\n LNGLAT = 1,\n /**\n * Positions are interpreted as meter offsets, distances as meters\n */\n METER_OFFSETS = 2,\n /**\n * Positions are interpreted as lng lat offsets: [deltaLng, deltaLat, elevation]\n * deltaLng, deltaLat are delta degrees, elevation is meters.\n * distances as meters.\n */\n LNGLAT_OFFSETS = 3,\n /**\n * Non-geospatial\n */\n CARTESIAN = 0\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,SAASC,2BAA2BA,CAACC,QAAgB,EAAE;EAC5D,QAAQA,QAAQ;IACd,KAAK,OAAO;MACV,OAAOC,UAAU;IACnB,KAAK,QAAQ;MACX,OAAOC,WAAW;IACpB,KAAK,QAAQ;MACX,OAAOC,WAAW;IACpB,KAAK,SAAS;MACZ,OAAOC,YAAY;IACrB,KAAK,QAAQ;MACX,OAAOC,YAAY;IACrB;MACE,MAAM,IAAIC,KAAK,kDAAAC,MAAA,CAAkDP,QAAQ,CAAE,CAAC;EAChF;AACF;AAEO,IAAMQ,WAAoC,GAAG;EAClDC,KAAK,EAAEC,kBAAE,CAACC,aAAa;EACvBC,MAAM,EAAEF,kBAAE,CAACG,cAAc;EACzBC,OAAO,EAAEJ,kBAAE,CAACK,KAAK;EACjBC,MAAM,EAAEN,kBAAE,CAACO,YAAY;EACvBC,MAAM,EAAER,kBAAE,CAACS;AACb,CAAC;AAACC,OAAA,CAAAZ,WAAA,GAAAA,WAAA;AAMK,SAASa,MAAMA,CAACrB,QAAgB,EAAU;EAC/C,QAAQA,QAAQ;IACd,KAAK,OAAO;MACV,OAAO,CAAC;IACV,KAAK,QAAQ;IACb,KAAK,OAAO;MACV,OAAO,CAAC;IACV,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;MACZ,OAAO,CAAC;IACV,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;MACZ,OAAO,CAAC;IACV;MACE,MAAM,IAAIM,KAAK,kDAAAC,MAAA,CAAkDP,QAAQ,CAAE,CAAC;EAChF;AACF;AAEO,IAAMsB,qBAAqB,GAAG,QAAQ;AAACF,OAAA,CAAAE,qBAAA,GAAAA,qBAAA;AACvC,IAAMC,wBAAwB,GAAG,OAAO;AAACH,OAAA,CAAAG,wBAAA,GAAAA,wBAAA;AACzC,IAAMC,aAAa,GAAG,SAAS;AAACJ,OAAA,CAAAI,aAAA,GAAAA,aAAA;AAChC,IAAMC,qBAAqB,GAAG,OAAO;AAACL,OAAA,CAAAK,qBAAA,GAAAA,qBAAA;AAAA,IAIjCC,iBAAiB,aAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAAN,OAAA,CAAAM,iBAAA,GAAAA,iBAAA"}
@@ -4,104 +4,129 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.parseSLPK = parseSLPK;
7
+ exports.parseSLPK = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _bufferFileProvider = require("../parse-zip/buffer-file-provider");
10
+ var _md = _interopRequireDefault(require("md5"));
11
11
  var _cdFileHeader = require("../parse-zip/cd-file-header");
12
+ var _endOfCentralDirectory = require("../parse-zip/end-of-central-directory");
12
13
  var _localFileHeader = require("../parse-zip/local-file-header");
14
+ var _searchFromTheEnd = require("../parse-zip/search-from-the-end");
13
15
  var _slpkArchieve = require("./slpk-archieve");
14
- var getByteAt = function getByteAt(offset, buffer) {
15
- return buffer.getUint8(buffer.byteOffset + offset);
16
- };
17
- function parseSLPK(_x) {
18
- return _parseSLPK.apply(this, arguments);
19
- }
20
- function _parseSLPK() {
21
- _parseSLPK = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
22
- var _options$slpk$path, _options$slpk, _options$slpk2;
23
- var options,
24
- archive,
25
- cdFileHeaderSignature,
26
- searchWindow,
27
- hashCDOffset,
28
- i,
29
- fileProvider,
30
- cdFileHeader,
31
- localFileHeader,
32
- fileDataOffset,
33
- hashFile,
34
- _args = arguments;
16
+ var parseSLPK = function () {
17
+ var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(fileProvider, cb) {
18
+ var hashCDOffset, cdFileHeader, hashData, localFileHeader, fileDataOffset, hashFile;
35
19
  return _regenerator.default.wrap(function _callee$(_context) {
36
20
  while (1) switch (_context.prev = _context.next) {
37
21
  case 0:
38
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
39
- archive = new DataView(data);
40
- cdFileHeaderSignature = [80, 75, 1, 2];
41
- searchWindow = [getByteAt(archive.byteLength - 1, archive), getByteAt(archive.byteLength - 2, archive), getByteAt(archive.byteLength - 3, archive), undefined];
42
- hashCDOffset = 0;
43
- i = archive.byteLength - 4;
44
- case 6:
45
- if (!(i > -1)) {
46
- _context.next = 17;
47
- break;
48
- }
49
- searchWindow[3] = searchWindow[2];
50
- searchWindow[2] = searchWindow[1];
51
- searchWindow[1] = searchWindow[0];
52
- searchWindow[0] = getByteAt(i, archive);
53
- if (!searchWindow.every(function (val, index) {
54
- return val === cdFileHeaderSignature[index];
55
- })) {
56
- _context.next = 14;
57
- break;
58
- }
59
- hashCDOffset = i;
60
- return _context.abrupt("break", 17);
61
- case 14:
62
- i--;
63
- _context.next = 6;
64
- break;
65
- case 17:
66
- fileProvider = new _bufferFileProvider.DataViewFileProvider(archive);
67
- _context.next = 20;
22
+ _context.next = 2;
23
+ return (0, _searchFromTheEnd.searchFromTheEnd)(fileProvider, _cdFileHeader.signature);
24
+ case 2:
25
+ hashCDOffset = _context.sent;
26
+ _context.next = 5;
68
27
  return (0, _cdFileHeader.parseZipCDFileHeader)(hashCDOffset, fileProvider);
69
- case 20:
28
+ case 5:
70
29
  cdFileHeader = _context.sent;
71
- if (!(cdFileHeader.fileName !== '@specialIndexFileHASH128@')) {
72
- _context.next = 23;
30
+ if (!((cdFileHeader === null || cdFileHeader === void 0 ? void 0 : cdFileHeader.fileName) !== '@specialIndexFileHASH128@')) {
31
+ _context.next = 14;
73
32
  break;
74
33
  }
75
- throw new Error('No hash file in slpk');
76
- case 23:
34
+ cb === null || cb === void 0 ? void 0 : cb('SLPK doesnt contain hash file');
35
+ _context.next = 10;
36
+ return generateHashInfo(fileProvider);
37
+ case 10:
38
+ hashData = _context.sent;
39
+ cb === null || cb === void 0 ? void 0 : cb('hash info has been composed according to central directory records');
77
40
  _context.next = 25;
41
+ break;
42
+ case 14:
43
+ cb === null || cb === void 0 ? void 0 : cb('SLPK contains hash file');
44
+ _context.next = 17;
78
45
  return (0, _localFileHeader.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
79
- case 25:
46
+ case 17:
80
47
  localFileHeader = _context.sent;
81
48
  if (localFileHeader) {
82
- _context.next = 28;
49
+ _context.next = 20;
83
50
  break;
84
51
  }
85
- throw new Error('No hash file in slpk');
86
- case 28:
52
+ throw new Error('corrupted SLPK');
53
+ case 20:
87
54
  fileDataOffset = localFileHeader.fileDataOffset;
88
- hashFile = archive.buffer.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
89
- if (hashFile) {
90
- _context.next = 32;
91
- break;
92
- }
93
- throw new Error('No hash file in slpk');
94
- case 32:
95
- _context.next = 34;
96
- return new _slpkArchieve.SLPKArchive(data, hashFile).getFile((_options$slpk$path = (_options$slpk = options.slpk) === null || _options$slpk === void 0 ? void 0 : _options$slpk.path) !== null && _options$slpk$path !== void 0 ? _options$slpk$path : '', (_options$slpk2 = options.slpk) === null || _options$slpk2 === void 0 ? void 0 : _options$slpk2.pathMode);
97
- case 34:
98
- return _context.abrupt("return", _context.sent);
99
- case 35:
55
+ _context.next = 23;
56
+ return fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
57
+ case 23:
58
+ hashFile = _context.sent;
59
+ hashData = parseHashFile(hashFile);
60
+ case 25:
61
+ return _context.abrupt("return", new _slpkArchieve.SLPKArchive(fileProvider, hashData));
62
+ case 26:
100
63
  case "end":
101
64
  return _context.stop();
102
65
  }
103
66
  }, _callee);
104
67
  }));
105
- return _parseSLPK.apply(this, arguments);
106
- }
68
+ return function parseSLPK(_x, _x2) {
69
+ return _ref.apply(this, arguments);
70
+ };
71
+ }();
72
+ exports.parseSLPK = parseSLPK;
73
+ var generateHashInfo = function () {
74
+ var _ref2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(fileProvider) {
75
+ var _yield$parseEoCDRecor, cdStartOffset, cdHeader, hashInfo;
76
+ return _regenerator.default.wrap(function _callee2$(_context2) {
77
+ while (1) switch (_context2.prev = _context2.next) {
78
+ case 0:
79
+ _context2.next = 2;
80
+ return (0, _endOfCentralDirectory.parseEoCDRecord)(fileProvider);
81
+ case 2:
82
+ _yield$parseEoCDRecor = _context2.sent;
83
+ cdStartOffset = _yield$parseEoCDRecor.cdStartOffset;
84
+ _context2.next = 6;
85
+ return (0, _cdFileHeader.parseZipCDFileHeader)(cdStartOffset, fileProvider);
86
+ case 6:
87
+ cdHeader = _context2.sent;
88
+ hashInfo = [];
89
+ case 8:
90
+ if (!cdHeader) {
91
+ _context2.next = 15;
92
+ break;
93
+ }
94
+ hashInfo.push({
95
+ hash: Buffer.from((0, _md.default)(cdHeader.fileName.split('\\').join('/').toLocaleLowerCase()), 'hex'),
96
+ offset: cdHeader.localHeaderOffset
97
+ });
98
+ _context2.next = 12;
99
+ return (0, _cdFileHeader.parseZipCDFileHeader)(cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength), fileProvider);
100
+ case 12:
101
+ cdHeader = _context2.sent;
102
+ _context2.next = 8;
103
+ break;
104
+ case 15:
105
+ hashInfo.sort(function (a, b) {
106
+ return (0, _slpkArchieve.compareHashes)(a.hash, b.hash);
107
+ });
108
+ return _context2.abrupt("return", hashInfo);
109
+ case 17:
110
+ case "end":
111
+ return _context2.stop();
112
+ }
113
+ }, _callee2);
114
+ }));
115
+ return function generateHashInfo(_x3) {
116
+ return _ref2.apply(this, arguments);
117
+ };
118
+ }();
119
+ var parseHashFile = function parseHashFile(hashFile) {
120
+ var hashFileBuffer = Buffer.from(hashFile);
121
+ var hashArray = [];
122
+ for (var i = 0; i < hashFileBuffer.buffer.byteLength; i = i + 24) {
123
+ var offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i + 16, hashFileBuffer.byteOffset + i + 24));
124
+ var offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
125
+ hashArray.push({
126
+ hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i, hashFileBuffer.byteOffset + i + 16)),
127
+ offset: offset
128
+ });
129
+ }
130
+ return hashArray;
131
+ };
107
132
  //# sourceMappingURL=parse-slpk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-slpk.js","names":["_bufferFileProvider","require","_cdFileHeader","_localFileHeader","_slpkArchieve","getByteAt","offset","buffer","getUint8","byteOffset","parseSLPK","_x","_parseSLPK","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$slpk$path","_options$slpk","_options$slpk2","options","archive","cdFileHeaderSignature","searchWindow","hashCDOffset","i","fileProvider","cdFileHeader","localFileHeader","fileDataOffset","hashFile","_args","wrap","_callee$","_context","prev","next","length","undefined","DataView","byteLength","every","val","index","abrupt","DataViewFileProvider","parseZipCDFileHeader","sent","fileName","Error","parseZipLocalFileHeader","localHeaderOffset","slice","compressedSize","SLPKArchive","getFile","slpk","path","pathMode","stop"],"sources":["../../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"sourcesContent":["import type {SLPKLoaderOptions} from '../../../i3s-slpk-loader';\nimport {DataViewFileProvider} from '../parse-zip/buffer-file-provider';\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 fileProvider = new DataViewFileProvider(archive);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n if (cdFileHeader.fileName !== '@specialIndexFileHASH128@') {\n throw new Error('No hash file in slpk');\n }\n\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('No hash file in slpk');\n }\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(\n options.slpk?.path ?? '',\n options.slpk?.pathMode\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-slpk.js","names":["_md","_interopRequireDefault","require","_cdFileHeader","_endOfCentralDirectory","_localFileHeader","_searchFromTheEnd","_slpkArchieve","parseSLPK","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fileProvider","cb","hashCDOffset","cdFileHeader","hashData","localFileHeader","fileDataOffset","hashFile","wrap","_callee$","_context","prev","next","searchFromTheEnd","cdHeaderSignature","sent","parseZipCDFileHeader","fileName","generateHashInfo","parseZipLocalFileHeader","localHeaderOffset","Error","slice","compressedSize","parseHashFile","abrupt","SLPKArchive","stop","_x","_x2","apply","arguments","exports","_ref2","_callee2","_yield$parseEoCDRecor","cdStartOffset","cdHeader","hashInfo","_callee2$","_context2","parseEoCDRecord","push","hash","Buffer","from","md5","split","join","toLocaleLowerCase","offset","extraOffset","BigInt","extraFieldLength","sort","a","b","compareHashes","_x3","hashFileBuffer","hashArray","i","buffer","byteLength","offsetBuffer","DataView","byteOffset","getBigUint64","subarray"],"sources":["../../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"sourcesContent":["import md5 from 'md5';\nimport {parseZipCDFileHeader, signature as cdHeaderSignature} from '../parse-zip/cd-file-header';\nimport {parseEoCDRecord} from '../parse-zip/end-of-central-directory';\nimport {FileProvider} from '../parse-zip/file-provider';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {searchFromTheEnd} from '../parse-zip/search-from-the-end';\nimport {HashElement, SLPKArchive, compareHashes} from './slpk-archieve';\n\n/**\n * Creates slpk file handler from raw file\n * @param fileProvider raw file data\n * @param cb is called with information message during parsing\n * @returns slpk file handler\n */\nexport const parseSLPK = async (\n fileProvider: FileProvider,\n cb?: (msg: string) => void\n): Promise<SLPKArchive> => {\n const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n let hashData: HashElement[];\n if (cdFileHeader?.fileName !== '@specialIndexFileHASH128@') {\n cb?.('SLPK doesnt contain hash file');\n hashData = await generateHashInfo(fileProvider);\n cb?.('hash info has been composed according to central directory records');\n } else {\n cb?.('SLPK contains hash file');\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('corrupted SLPK');\n }\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = await fileProvider.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n hashData = parseHashFile(hashFile);\n }\n\n return new SLPKArchive(fileProvider, hashData);\n};\n\n/**\n * generates hash info from central directory\n * @param fileProvider - provider of the archive\n * @returns ready to use hash info\n */\nconst generateHashInfo = async (fileProvider: FileProvider): Promise<HashElement[]> => {\n const {cdStartOffset} = await parseEoCDRecord(fileProvider);\n let cdHeader = await parseZipCDFileHeader(cdStartOffset, fileProvider);\n const hashInfo: HashElement[] = [];\n while (cdHeader) {\n hashInfo.push({\n hash: Buffer.from(md5(cdHeader.fileName.split('\\\\').join('/').toLocaleLowerCase()), 'hex'),\n offset: cdHeader.localHeaderOffset\n });\n cdHeader = await parseZipCDFileHeader(\n cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength),\n fileProvider\n );\n }\n hashInfo.sort((a, b) => compareHashes(a.hash, b.hash));\n return hashInfo;\n};\n\n/**\n * Reads hash file from buffer and returns it in ready-to-use form\n * @param hashFile - bufer containing hash file\n * @returns Array containing file info\n */\nconst parseHashFile = (hashFile: ArrayBuffer): HashElement[] => {\n const hashFileBuffer = Buffer.from(hashFile);\n const hashArray: HashElement[] = [];\n for (let i = 0; i < hashFileBuffer.buffer.byteLength; i = i + 24) {\n const offsetBuffer = new DataView(\n hashFileBuffer.buffer.slice(\n hashFileBuffer.byteOffset + i + 16,\n hashFileBuffer.byteOffset + i + 24\n )\n );\n const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);\n hashArray.push({\n hash: Buffer.from(\n hashFileBuffer.subarray(hashFileBuffer.byteOffset + i, hashFileBuffer.byteOffset + i + 16)\n ),\n offset\n });\n }\n return hashArray;\n};\n"],"mappings":"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"}