@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.
- package/dist/dist.min.js +329 -211
- package/dist/es5/arcgis-webscene-loader.js +1 -1
- package/dist/es5/i3s-attribute-loader.js +1 -1
- package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
- package/dist/es5/i3s-content-loader.js +1 -1
- package/dist/es5/i3s-loader.js +1 -1
- package/dist/es5/i3s-node-page-loader.js +1 -1
- package/dist/es5/i3s-slpk-loader.js +30 -2
- package/dist/es5/i3s-slpk-loader.js.map +1 -1
- package/dist/es5/index.js +7 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/parsers/constants.js +14 -15
- package/dist/es5/lib/parsers/constants.js.map +1 -1
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +101 -76
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +54 -34
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +76 -39
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js +129 -0
- package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js +100 -0
- package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/file-provider.js.map +1 -1
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js +55 -14
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js +69 -0
- package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js.map +1 -0
- package/dist/es5/types.js +1 -14
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/arcgis-webscene-loader.js +1 -1
- package/dist/esm/i3s-attribute-loader.js +1 -1
- package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
- package/dist/esm/i3s-content-loader.js +1 -1
- package/dist/esm/i3s-loader.js +1 -1
- package/dist/esm/i3s-node-page-loader.js +1 -1
- package/dist/esm/i3s-slpk-loader.js +8 -2
- package/dist/esm/i3s-slpk-loader.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/parsers/constants.js +14 -15
- package/dist/esm/lib/parsers/constants.js.map +1 -1
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +50 -35
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +38 -22
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +30 -22
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js +32 -0
- package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js +33 -0
- package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/file-provider.js.map +1 -1
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js +25 -10
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js +16 -0
- package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js.map +1 -0
- package/dist/esm/types.js +0 -12
- package/dist/esm/types.js.map +1 -1
- package/dist/i3s-content-worker-node.js +47 -47
- package/dist/i3s-content-worker-node.js.map +2 -2
- package/dist/i3s-content-worker.js +22 -34
- package/dist/i3s-slpk-loader.d.ts +3 -0
- package/dist/i3s-slpk-loader.d.ts.map +1 -1
- package/dist/i3s-slpk-loader.js +11 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/parsers/constants.d.ts.map +1 -1
- package/dist/lib/parsers/constants.js +14 -15
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +9 -3
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.js +65 -42
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +22 -10
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js +56 -28
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +9 -5
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-zip/cd-file-header.js +32 -25
- package/dist/lib/parsers/parse-zip/{buffer-file-provider.d.ts → data-view-file-provider.d.ts} +15 -16
- package/dist/lib/parsers/parse-zip/data-view-file-provider.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/{buffer-file-provider.js → data-view-file-provider.js} +28 -14
- package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts +18 -0
- package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/end-of-central-directory.js +41 -0
- package/dist/lib/parsers/parse-zip/file-provider.d.ts +10 -5
- package/dist/lib/parsers/parse-zip/file-provider.d.ts.map +1 -1
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts +5 -3
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-zip/local-file-header.js +30 -11
- package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts +11 -0
- package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/search-from-the-end.js +31 -0
- package/dist/types.d.ts +17 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -13
- package/package.json +9 -9
- package/src/i3s-slpk-loader.ts +19 -1
- package/src/index.ts +2 -2
- package/src/lib/parsers/constants.ts +14 -15
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +83 -58
- package/src/lib/parsers/parse-slpk/slpk-archieve.ts +59 -44
- package/src/lib/parsers/parse-zip/cd-file-header.ts +52 -32
- package/src/lib/parsers/parse-zip/data-view-file-provider.ts +69 -0
- package/src/lib/parsers/parse-zip/end-of-central-directory.ts +78 -0
- package/src/lib/parsers/parse-zip/file-provider.ts +11 -5
- package/src/lib/parsers/parse-zip/local-file-header.ts +45 -19
- package/src/lib/parsers/parse-zip/search-from-the-end.ts +38 -0
- package/src/types.ts +25 -40
- package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js +0 -46
- package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js.map +0 -1
- package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js +0 -23
- package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js.map +0 -1
- package/dist/lib/parsers/parse-zip/buffer-file-provider.d.ts.map +0 -1
- 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.
|
|
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.
|
|
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.
|
|
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.
|
|
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',
|
package/dist/es5/i3s-loader.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
|
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:
|
|
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":"
|
|
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
|
|
81
|
+
var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
|
|
82
82
|
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_constants","require","_i3sLoader","_i3sSlpkLoader","_i3sContentLoader","_i3sAttributeLoader","_i3sBuildingSceneLayerLoader","_i3sNodePageLoader","_arcgisWebsceneLoader","_localFileHeader","
|
|
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
|
|
13
|
+
case 'UInt8':
|
|
15
14
|
return Uint8Array;
|
|
16
|
-
case
|
|
15
|
+
case 'UInt16':
|
|
17
16
|
return Uint16Array;
|
|
18
|
-
case
|
|
17
|
+
case 'UInt32':
|
|
19
18
|
return Uint32Array;
|
|
20
|
-
case
|
|
19
|
+
case 'Float32':
|
|
21
20
|
return Float32Array;
|
|
22
|
-
case
|
|
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
|
|
37
|
+
case 'UInt8':
|
|
39
38
|
return 1;
|
|
40
|
-
case
|
|
41
|
-
case
|
|
39
|
+
case 'UInt16':
|
|
40
|
+
case 'Int16':
|
|
42
41
|
return 2;
|
|
43
|
-
case
|
|
44
|
-
case
|
|
45
|
-
case
|
|
42
|
+
case 'UInt32':
|
|
43
|
+
case 'Int32':
|
|
44
|
+
case 'Float32':
|
|
46
45
|
return 4;
|
|
47
|
-
case
|
|
48
|
-
case
|
|
49
|
-
case
|
|
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","
|
|
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 =
|
|
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
|
|
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
|
|
15
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
|
28
|
+
case 5:
|
|
70
29
|
cdFileHeader = _context.sent;
|
|
71
|
-
if (!(cdFileHeader.fileName !== '@specialIndexFileHASH128@')) {
|
|
72
|
-
_context.next =
|
|
30
|
+
if (!((cdFileHeader === null || cdFileHeader === void 0 ? void 0 : cdFileHeader.fileName) !== '@specialIndexFileHASH128@')) {
|
|
31
|
+
_context.next = 14;
|
|
73
32
|
break;
|
|
74
33
|
}
|
|
75
|
-
|
|
76
|
-
|
|
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
|
|
46
|
+
case 17:
|
|
80
47
|
localFileHeader = _context.sent;
|
|
81
48
|
if (localFileHeader) {
|
|
82
|
-
_context.next =
|
|
49
|
+
_context.next = 20;
|
|
83
50
|
break;
|
|
84
51
|
}
|
|
85
|
-
throw new Error('
|
|
86
|
-
case
|
|
52
|
+
throw new Error('corrupted SLPK');
|
|
53
|
+
case 20:
|
|
87
54
|
fileDataOffset = localFileHeader.fileDataOffset;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
|
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":["
|
|
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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"}
|