@loaders.gl/tile-converter 4.0.0-alpha.10 → 4.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/slpk-extractor.js +4 -0
- package/dist/3d-tiles-attributes-worker.js +1 -1
- package/dist/converter-cli.js +18 -84
- package/dist/converter.min.js +50 -50
- package/dist/dist.min.js +21 -18
- package/dist/es5/3d-tiles-attributes-worker.js +1 -1
- package/dist/es5/converter-cli.js +18 -63
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +2 -2
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +59 -38
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/lib/utils/cli-utils.js +57 -0
- package/dist/es5/lib/utils/cli-utils.js.map +1 -0
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/es5/slpk-extractor/helpers/file-handle-provider.js +181 -0
- package/dist/es5/slpk-extractor/helpers/file-handle-provider.js.map +1 -0
- package/dist/es5/slpk-extractor/slpk-extractor.js +172 -0
- package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -0
- package/dist/es5/slpk-extractor-cli.js +117 -0
- package/dist/es5/slpk-extractor-cli.js.map +1 -0
- package/dist/esm/3d-tiles-attributes-worker.js +1 -1
- package/dist/esm/converter-cli.js +1 -46
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +1 -1
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +22 -9
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/lib/utils/cli-utils.js +47 -0
- package/dist/esm/lib/utils/cli-utils.js.map +1 -0
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/slpk-extractor/helpers/file-handle-provider.js +43 -0
- package/dist/esm/slpk-extractor/helpers/file-handle-provider.js.map +1 -0
- package/dist/esm/slpk-extractor/slpk-extractor.js +63 -0
- package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -0
- package/dist/esm/slpk-extractor-cli.js +74 -0
- package/dist/esm/slpk-extractor-cli.js.map +1 -0
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts +1 -2
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/coordinate-converter.js +1 -2
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts +1 -1
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/gltf-attributes.js +2 -1
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +2 -3
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +1 -2
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +21 -6
- package/dist/lib/utils/cli-utils.d.ts +34 -0
- package/dist/lib/utils/cli-utils.d.ts.map +1 -0
- package/dist/lib/utils/cli-utils.js +82 -0
- package/dist/slpk-extractor/helpers/file-handle-provider.d.ts +48 -0
- package/dist/slpk-extractor/helpers/file-handle-provider.d.ts.map +1 -0
- package/dist/slpk-extractor/helpers/file-handle-provider.js +71 -0
- package/dist/slpk-extractor/slpk-extractor.d.ts +23 -0
- package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -0
- package/dist/slpk-extractor/slpk-extractor.js +78 -0
- package/dist/slpk-extractor-cli.d.ts +17 -0
- package/dist/slpk-extractor-cli.d.ts.map +1 -0
- package/dist/slpk-extractor-cli.js +102 -0
- package/dist/slpk-extractor.min.js +189 -0
- package/package.json +17 -15
- package/src/converter-cli.ts +7 -72
- package/src/i3s-converter/helpers/coordinate-converter.ts +1 -2
- package/src/i3s-converter/helpers/gltf-attributes.ts +7 -8
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +1 -3
- package/src/i3s-converter/i3s-converter.ts +24 -7
- package/src/lib/utils/cli-utils.ts +78 -0
- package/src/slpk-extractor/helpers/file-handle-provider.ts +91 -0
- package/src/slpk-extractor/slpk-extractor.ts +102 -0
- package/src/slpk-extractor-cli.ts +128 -0
package/dist/es5/pgm-loader.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.PGMLoader = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _geoid = require("@math.gl/geoid");
|
|
11
|
-
var VERSION = typeof "4.0.0-alpha.
|
|
11
|
+
var VERSION = typeof "4.0.0-alpha.12" !== 'undefined' ? "4.0.0-alpha.12" : 'latest';
|
|
12
12
|
var PGMLoader = {
|
|
13
13
|
name: 'PGM - Netpbm grayscale image format',
|
|
14
14
|
id: 'pgm',
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FileHandleProvider = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
var _fs = require("fs");
|
|
14
|
+
var FileHandleProvider = function () {
|
|
15
|
+
function FileHandleProvider(fileDescriptor, size) {
|
|
16
|
+
(0, _classCallCheck2.default)(this, FileHandleProvider);
|
|
17
|
+
(0, _defineProperty2.default)(this, "fileDescriptor", void 0);
|
|
18
|
+
(0, _defineProperty2.default)(this, "size", void 0);
|
|
19
|
+
this.fileDescriptor = fileDescriptor;
|
|
20
|
+
this.size = size;
|
|
21
|
+
}
|
|
22
|
+
(0, _createClass2.default)(FileHandleProvider, [{
|
|
23
|
+
key: "getUint8",
|
|
24
|
+
value: function () {
|
|
25
|
+
var _getUint = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(offset) {
|
|
26
|
+
var val;
|
|
27
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
28
|
+
while (1) switch (_context.prev = _context.next) {
|
|
29
|
+
case 0:
|
|
30
|
+
_context.t0 = Uint8Array;
|
|
31
|
+
_context.next = 3;
|
|
32
|
+
return this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset);
|
|
33
|
+
case 3:
|
|
34
|
+
_context.t1 = _context.sent.buffer.buffer;
|
|
35
|
+
val = new _context.t0(_context.t1).at(0);
|
|
36
|
+
if (!(val === undefined)) {
|
|
37
|
+
_context.next = 7;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
throw new Error('something went wrong');
|
|
41
|
+
case 7:
|
|
42
|
+
return _context.abrupt("return", val);
|
|
43
|
+
case 8:
|
|
44
|
+
case "end":
|
|
45
|
+
return _context.stop();
|
|
46
|
+
}
|
|
47
|
+
}, _callee, this);
|
|
48
|
+
}));
|
|
49
|
+
function getUint8(_x) {
|
|
50
|
+
return _getUint.apply(this, arguments);
|
|
51
|
+
}
|
|
52
|
+
return getUint8;
|
|
53
|
+
}()
|
|
54
|
+
}, {
|
|
55
|
+
key: "getUint16",
|
|
56
|
+
value: function () {
|
|
57
|
+
var _getUint2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(offset) {
|
|
58
|
+
var val;
|
|
59
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
60
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
_context2.t0 = Uint16Array;
|
|
63
|
+
_context2.next = 3;
|
|
64
|
+
return this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset);
|
|
65
|
+
case 3:
|
|
66
|
+
_context2.t1 = _context2.sent.buffer.buffer;
|
|
67
|
+
val = new _context2.t0(_context2.t1).at(0);
|
|
68
|
+
if (!(val === undefined)) {
|
|
69
|
+
_context2.next = 7;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
throw new Error('something went wrong');
|
|
73
|
+
case 7:
|
|
74
|
+
return _context2.abrupt("return", val);
|
|
75
|
+
case 8:
|
|
76
|
+
case "end":
|
|
77
|
+
return _context2.stop();
|
|
78
|
+
}
|
|
79
|
+
}, _callee2, this);
|
|
80
|
+
}));
|
|
81
|
+
function getUint16(_x2) {
|
|
82
|
+
return _getUint2.apply(this, arguments);
|
|
83
|
+
}
|
|
84
|
+
return getUint16;
|
|
85
|
+
}()
|
|
86
|
+
}, {
|
|
87
|
+
key: "getUint32",
|
|
88
|
+
value: function () {
|
|
89
|
+
var _getUint3 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(offset) {
|
|
90
|
+
var val;
|
|
91
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
92
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
93
|
+
case 0:
|
|
94
|
+
_context3.t0 = Uint32Array;
|
|
95
|
+
_context3.next = 3;
|
|
96
|
+
return this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset);
|
|
97
|
+
case 3:
|
|
98
|
+
_context3.t1 = _context3.sent.buffer.buffer;
|
|
99
|
+
val = new _context3.t0(_context3.t1).at(0);
|
|
100
|
+
if (!(val === undefined)) {
|
|
101
|
+
_context3.next = 7;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
throw new Error('something went wrong');
|
|
105
|
+
case 7:
|
|
106
|
+
return _context3.abrupt("return", val);
|
|
107
|
+
case 8:
|
|
108
|
+
case "end":
|
|
109
|
+
return _context3.stop();
|
|
110
|
+
}
|
|
111
|
+
}, _callee3, this);
|
|
112
|
+
}));
|
|
113
|
+
function getUint32(_x3) {
|
|
114
|
+
return _getUint3.apply(this, arguments);
|
|
115
|
+
}
|
|
116
|
+
return getUint32;
|
|
117
|
+
}()
|
|
118
|
+
}, {
|
|
119
|
+
key: "slice",
|
|
120
|
+
value: function () {
|
|
121
|
+
var _slice = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(startOffset, endOffset) {
|
|
122
|
+
var length;
|
|
123
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
124
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
125
|
+
case 0:
|
|
126
|
+
length = endOffset - startOffset;
|
|
127
|
+
_context4.next = 3;
|
|
128
|
+
return this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffset);
|
|
129
|
+
case 3:
|
|
130
|
+
return _context4.abrupt("return", _context4.sent.buffer.buffer);
|
|
131
|
+
case 4:
|
|
132
|
+
case "end":
|
|
133
|
+
return _context4.stop();
|
|
134
|
+
}
|
|
135
|
+
}, _callee4, this);
|
|
136
|
+
}));
|
|
137
|
+
function slice(_x4, _x5) {
|
|
138
|
+
return _slice.apply(this, arguments);
|
|
139
|
+
}
|
|
140
|
+
return slice;
|
|
141
|
+
}()
|
|
142
|
+
}, {
|
|
143
|
+
key: "length",
|
|
144
|
+
get: function get() {
|
|
145
|
+
return this.size;
|
|
146
|
+
}
|
|
147
|
+
}], [{
|
|
148
|
+
key: "from",
|
|
149
|
+
value: function () {
|
|
150
|
+
var _from = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(path) {
|
|
151
|
+
var fileDescriptor;
|
|
152
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
153
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
154
|
+
case 0:
|
|
155
|
+
_context5.next = 2;
|
|
156
|
+
return _fs.promises.open(path);
|
|
157
|
+
case 2:
|
|
158
|
+
fileDescriptor = _context5.sent;
|
|
159
|
+
_context5.t0 = FileHandleProvider;
|
|
160
|
+
_context5.t1 = fileDescriptor;
|
|
161
|
+
_context5.next = 7;
|
|
162
|
+
return fileDescriptor.stat();
|
|
163
|
+
case 7:
|
|
164
|
+
_context5.t2 = _context5.sent.size;
|
|
165
|
+
return _context5.abrupt("return", new _context5.t0(_context5.t1, _context5.t2));
|
|
166
|
+
case 9:
|
|
167
|
+
case "end":
|
|
168
|
+
return _context5.stop();
|
|
169
|
+
}
|
|
170
|
+
}, _callee5);
|
|
171
|
+
}));
|
|
172
|
+
function from(_x6) {
|
|
173
|
+
return _from.apply(this, arguments);
|
|
174
|
+
}
|
|
175
|
+
return from;
|
|
176
|
+
}()
|
|
177
|
+
}]);
|
|
178
|
+
return FileHandleProvider;
|
|
179
|
+
}();
|
|
180
|
+
exports.FileHandleProvider = FileHandleProvider;
|
|
181
|
+
//# sourceMappingURL=file-handle-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-handle-provider.js","names":["_fs","require","FileHandleProvider","fileDescriptor","size","_classCallCheck2","default","_defineProperty2","_createClass2","key","value","_getUint","_asyncToGenerator2","_regenerator","mark","_callee","offset","val","wrap","_callee$","_context","prev","next","t0","Uint8Array","read","Buffer","alloc","t1","sent","buffer","at","undefined","Error","abrupt","stop","getUint8","_x","apply","arguments","_getUint2","_callee2","_callee2$","_context2","Uint16Array","getUint16","_x2","_getUint3","_callee3","_callee3$","_context3","Uint32Array","getUint32","_x3","_slice","_callee4","startOffset","endOffset","length","_callee4$","_context4","slice","_x4","_x5","get","_from","_callee5","path","_callee5$","_context5","fsPromises","open","stat","t2","from","_x6","exports"],"sources":["../../../../src/slpk-extractor/helpers/file-handle-provider.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/i3s';\nimport {promises as fsPromises, PathLike} from 'fs';\n\n/**\n * Provides file data using node fs library\n */\nexport class FileHandleProvider implements FileProvider {\n /**\n * Returns a new copy of FileHandleProvider\n * @param path The path to the file in file system\n */\n static async from(path: PathLike): Promise<FileHandleProvider> {\n const fileDescriptor = await fsPromises.open(path);\n return new FileHandleProvider(fileDescriptor, (await fileDescriptor.stat()).size);\n }\n\n /**\n * The FileHandle from which data is provided\n */\n private fileDescriptor: fsPromises.FileHandle;\n\n /**\n * The file length in bytes\n */\n private size: number;\n\n private constructor(fileDescriptor: fsPromises.FileHandle, size: number) {\n this.fileDescriptor = fileDescriptor;\n this.size = size;\n }\n\n /**\n * Gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint8(offset: number): Promise<number> {\n const val = new Uint8Array(\n (await this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 16-bit integer (unsigned byte) at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint16(offset: number): Promise<number> {\n const val = new Uint16Array(\n (await this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer (unsigned byte) at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint32(offset: number): Promise<number> {\n const val = new Uint32Array(\n (await this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * returns an ArrayBuffer whose contents are a copy of this file bytes from startOffset, inclusive, up to endOffset, exclusive.\n * @param startOffset The offset, in bytes, from the start of the file where to start reading the data.\n * @param endOffset The offset, in bytes, from the start of the file where to end reading the data.\n */\n async slice(startOffset: number, endOffset: number): Promise<ArrayBuffer> {\n const length = endOffset - startOffset;\n return (await this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffset)).buffer\n .buffer;\n }\n\n /**\n * the length (in bytes) of the data.\n */\n get length(): number {\n return this.size;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _core = require("@loaders.gl/core");
|
|
13
|
+
var _constants = require("../constants");
|
|
14
|
+
var _fileHandleProvider = require("./helpers/file-handle-provider");
|
|
15
|
+
var _i3s = require("@loaders.gl/i3s");
|
|
16
|
+
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
17
|
+
var _compression = require("@loaders.gl/compression");
|
|
18
|
+
var _fileUtils = require("../lib/utils/file-utils");
|
|
19
|
+
var indexNames = ['3dSceneLayer.json.gz', '3dNodeIndexDocument.json.gz', 'sharedResource.json.gz'];
|
|
20
|
+
var SLPKExtractor = function () {
|
|
21
|
+
function SLPKExtractor() {
|
|
22
|
+
(0, _classCallCheck2.default)(this, SLPKExtractor);
|
|
23
|
+
}
|
|
24
|
+
(0, _createClass2.default)(SLPKExtractor, [{
|
|
25
|
+
key: "extract",
|
|
26
|
+
value: function () {
|
|
27
|
+
var _extract = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
|
|
28
|
+
var inputUrl, provider, localHeader, _localHeader, _localHeader2;
|
|
29
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
30
|
+
while (1) switch (_context.prev = _context.next) {
|
|
31
|
+
case 0:
|
|
32
|
+
if (!_core.isBrowser) {
|
|
33
|
+
_context.next = 3;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
console.log(_constants.BROWSER_ERROR_MESSAGE);
|
|
37
|
+
return _context.abrupt("return", _constants.BROWSER_ERROR_MESSAGE);
|
|
38
|
+
case 3:
|
|
39
|
+
inputUrl = options.inputUrl;
|
|
40
|
+
_context.next = 6;
|
|
41
|
+
return _fileHandleProvider.FileHandleProvider.from(inputUrl);
|
|
42
|
+
case 6:
|
|
43
|
+
provider = _context.sent;
|
|
44
|
+
_context.next = 9;
|
|
45
|
+
return (0, _i3s.parseZipLocalFileHeader)(0, provider);
|
|
46
|
+
case 9:
|
|
47
|
+
localHeader = _context.sent;
|
|
48
|
+
case 10:
|
|
49
|
+
if (!localHeader) {
|
|
50
|
+
_context.next = 29;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
_context.t0 = this;
|
|
54
|
+
_context.t1 = this;
|
|
55
|
+
_context.t2 = this.correctIndexNames(localHeader.fileName);
|
|
56
|
+
_context.next = 16;
|
|
57
|
+
return provider.slice(localHeader.fileDataOffset, localHeader.fileDataOffset + localHeader.compressedSize);
|
|
58
|
+
case 16:
|
|
59
|
+
_context.t3 = _context.sent;
|
|
60
|
+
_context.t4 = {
|
|
61
|
+
name: _context.t2,
|
|
62
|
+
data: _context.t3
|
|
63
|
+
};
|
|
64
|
+
_context.next = 20;
|
|
65
|
+
return _context.t1.unGzip.call(_context.t1, _context.t4);
|
|
66
|
+
case 20:
|
|
67
|
+
_context.t5 = _context.sent;
|
|
68
|
+
_context.t6 = options.outputPath;
|
|
69
|
+
_context.next = 24;
|
|
70
|
+
return _context.t0.writeFile.call(_context.t0, _context.t5, _context.t6);
|
|
71
|
+
case 24:
|
|
72
|
+
_context.next = 26;
|
|
73
|
+
return (0, _i3s.parseZipLocalFileHeader)(((_localHeader = localHeader) === null || _localHeader === void 0 ? void 0 : _localHeader.fileDataOffset) + ((_localHeader2 = localHeader) === null || _localHeader2 === void 0 ? void 0 : _localHeader2.compressedSize), provider);
|
|
74
|
+
case 26:
|
|
75
|
+
localHeader = _context.sent;
|
|
76
|
+
_context.next = 10;
|
|
77
|
+
break;
|
|
78
|
+
case 29:
|
|
79
|
+
return _context.abrupt("return", 'success');
|
|
80
|
+
case 30:
|
|
81
|
+
case "end":
|
|
82
|
+
return _context.stop();
|
|
83
|
+
}
|
|
84
|
+
}, _callee, this);
|
|
85
|
+
}));
|
|
86
|
+
function extract(_x) {
|
|
87
|
+
return _extract.apply(this, arguments);
|
|
88
|
+
}
|
|
89
|
+
return extract;
|
|
90
|
+
}()
|
|
91
|
+
}, {
|
|
92
|
+
key: "correctIndexNames",
|
|
93
|
+
value: function correctIndexNames(fileName) {
|
|
94
|
+
if (indexNames.includes(_loaderUtils.path.filename(_loaderUtils.path.join('/', fileName)))) {
|
|
95
|
+
return _loaderUtils.path.join(_loaderUtils.path.dirname(fileName), 'index.json.gz');
|
|
96
|
+
}
|
|
97
|
+
var parts = /^(.*\/[^\/\.]*)(\..+)$/.exec(fileName);
|
|
98
|
+
if (!parts) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return "".concat(parts === null || parts === void 0 ? void 0 : parts.at(1), "/index").concat(parts === null || parts === void 0 ? void 0 : parts.at(2));
|
|
102
|
+
}
|
|
103
|
+
}, {
|
|
104
|
+
key: "unGzip",
|
|
105
|
+
value: function () {
|
|
106
|
+
var _unGzip = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(file) {
|
|
107
|
+
var _file$name;
|
|
108
|
+
var _file$name2, compression, decompressedData;
|
|
109
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
110
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
111
|
+
case 0:
|
|
112
|
+
if (!/\.gz$/.test((_file$name = file.name) !== null && _file$name !== void 0 ? _file$name : '')) {
|
|
113
|
+
_context2.next = 6;
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
compression = new _compression.GZipCompression();
|
|
117
|
+
_context2.next = 4;
|
|
118
|
+
return compression.decompress(file.data);
|
|
119
|
+
case 4:
|
|
120
|
+
decompressedData = _context2.sent;
|
|
121
|
+
return _context2.abrupt("return", {
|
|
122
|
+
data: decompressedData,
|
|
123
|
+
name: ((_file$name2 = file.name) !== null && _file$name2 !== void 0 ? _file$name2 : '').slice(0, -3)
|
|
124
|
+
});
|
|
125
|
+
case 6:
|
|
126
|
+
return _context2.abrupt("return", Promise.resolve(file));
|
|
127
|
+
case 7:
|
|
128
|
+
case "end":
|
|
129
|
+
return _context2.stop();
|
|
130
|
+
}
|
|
131
|
+
}, _callee2);
|
|
132
|
+
}));
|
|
133
|
+
function unGzip(_x2) {
|
|
134
|
+
return _unGzip.apply(this, arguments);
|
|
135
|
+
}
|
|
136
|
+
return unGzip;
|
|
137
|
+
}()
|
|
138
|
+
}, {
|
|
139
|
+
key: "writeFile",
|
|
140
|
+
value: function () {
|
|
141
|
+
var _writeFile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(options, outputPath) {
|
|
142
|
+
var finalPath, dirName, fileName;
|
|
143
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
144
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
145
|
+
case 0:
|
|
146
|
+
if (options.name) {
|
|
147
|
+
_context3.next = 2;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
return _context3.abrupt("return");
|
|
151
|
+
case 2:
|
|
152
|
+
finalPath = _loaderUtils.path.join(outputPath, options.name);
|
|
153
|
+
dirName = _loaderUtils.path.dirname(finalPath);
|
|
154
|
+
fileName = _loaderUtils.path.filename(finalPath);
|
|
155
|
+
_context3.next = 7;
|
|
156
|
+
return (0, _fileUtils.writeFile)(dirName, options.data, fileName);
|
|
157
|
+
case 7:
|
|
158
|
+
case "end":
|
|
159
|
+
return _context3.stop();
|
|
160
|
+
}
|
|
161
|
+
}, _callee3);
|
|
162
|
+
}));
|
|
163
|
+
function writeFile(_x3, _x4) {
|
|
164
|
+
return _writeFile2.apply(this, arguments);
|
|
165
|
+
}
|
|
166
|
+
return writeFile;
|
|
167
|
+
}()
|
|
168
|
+
}]);
|
|
169
|
+
return SLPKExtractor;
|
|
170
|
+
}();
|
|
171
|
+
exports.default = SLPKExtractor;
|
|
172
|
+
//# sourceMappingURL=slpk-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slpk-extractor.js","names":["_core","require","_constants","_fileHandleProvider","_i3s","_loaderUtils","_compression","_fileUtils","indexNames","SLPKExtractor","_classCallCheck2","default","_createClass2","key","value","_extract","_asyncToGenerator2","_regenerator","mark","_callee","options","inputUrl","provider","localHeader","_localHeader","_localHeader2","wrap","_callee$","_context","prev","next","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","FileHandleProvider","from","sent","parseZipLocalFileHeader","t0","t1","t2","correctIndexNames","fileName","slice","fileDataOffset","compressedSize","t3","t4","name","data","unGzip","call","t5","t6","outputPath","writeFile","stop","extract","_x","apply","arguments","includes","path","filename","join","dirname","parts","exec","concat","at","_unGzip","_callee2","file","_file$name","_file$name2","compression","decompressedData","_callee2$","_context2","test","GZipCompression","decompress","Promise","resolve","_x2","_writeFile2","_callee3","finalPath","dirName","_callee3$","_context3","_x3","_x4","exports"],"sources":["../../../src/slpk-extractor/slpk-extractor.ts"],"sourcesContent":["import {isBrowser} from '@loaders.gl/core';\n\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport {FileHandleProvider} from './helpers/file-handle-provider';\nimport {parseZipLocalFileHeader} from '@loaders.gl/i3s';\nimport {path} from '@loaders.gl/loader-utils';\nimport {GZipCompression} from '@loaders.gl/compression';\nimport {writeFile} from '../lib/utils/file-utils';\n\n/**\n * names of files that should be changed to index\n */\nconst indexNames = [\n '3dSceneLayer.json.gz',\n '3dNodeIndexDocument.json.gz',\n 'sharedResource.json.gz'\n];\n\n/**\n * Description of the file in the SLPK\n */\ntype File = {\n name: string | null;\n data: ArrayBuffer;\n};\n\n/**\n * Converter from slpk to i3s\n */\nexport default class SLPKExtractor {\n /**\n * extract slpk to i3s\n * @param options\n * @param options.inputUrl the url to read SLPK file\n * @param options.outputPath the output filename\n */\n public async extract(options: {inputUrl: string; outputPath: string}): Promise<string> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n const {inputUrl} = options;\n\n const provider = await FileHandleProvider.from(inputUrl);\n\n let localHeader = await parseZipLocalFileHeader(0, provider);\n while (localHeader) {\n await this.writeFile(\n await this.unGzip({\n name: this.correctIndexNames(localHeader.fileName),\n data: await provider.slice(\n localHeader.fileDataOffset,\n localHeader.fileDataOffset + localHeader.compressedSize\n )\n }),\n options.outputPath\n );\n localHeader = await parseZipLocalFileHeader(\n localHeader?.fileDataOffset + localHeader?.compressedSize,\n provider\n );\n }\n\n return 'success';\n }\n\n /**\n * Defines file name and path for i3s format\n * @param fileName initial file name and path\n */\n private correctIndexNames(fileName: string): string | null {\n if (indexNames.includes(path.filename(path.join('/', fileName)))) {\n return path.join(path.dirname(fileName), 'index.json.gz');\n }\n // finds path with name part and extention part\n let parts = /^(.*\\/[^\\/\\.]*)(\\..+)$/.exec(fileName);\n if (!parts) {\n return null;\n }\n return `${parts?.at(1)}/index${parts?.at(2)}`;\n }\n\n private async unGzip(file: File): Promise<File> {\n if (/\\.gz$/.test(file.name ?? '')) {\n const compression = new GZipCompression();\n\n const decompressedData = await compression.decompress(file.data);\n return {data: decompressedData, name: (file.name ?? '').slice(0, -3)};\n }\n return Promise.resolve(file);\n }\n\n private async writeFile(options: File, outputPath: string): Promise<void> {\n if (!options.name) {\n return;\n }\n const finalPath = path.join(outputPath, options.name);\n const dirName = path.dirname(finalPath);\n const fileName = path.filename(finalPath);\n await writeFile(dirName, options.data, fileName);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAKA,IAAMO,UAAU,GAAG,CACjB,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,CACzB;AAAC,IAamBC,aAAa;EAAA,SAAAA,cAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,aAAA;EAAA;EAAA,IAAAG,aAAA,CAAAD,OAAA,EAAAF,aAAA;IAAAI,GAAA;IAAAC,KAAA;MAAA,IAAAC,QAAA,OAAAC,kBAAA,CAAAL,OAAA,EAAAM,YAAA,CAAAN,OAAA,CAAAO,IAAA,CAOhC,SAAAC,QAAqBC,OAA+C;QAAA,IAAAC,QAAA,EAAAC,QAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,aAAA;QAAA,OAAAR,YAAA,CAAAN,OAAA,CAAAe,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAA,KAC9DC,eAAS;gBAAAH,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACXE,OAAO,CAACC,GAAG,CAACC,gCAAqB,CAAC;cAAC,OAAAN,QAAA,CAAAO,MAAA,WAC5BD,gCAAqB;YAAA;cAEvBb,QAAQ,GAAID,OAAO,CAAnBC,QAAQ;cAAAO,QAAA,CAAAE,IAAA;cAAA,OAEQM,sCAAkB,CAACC,IAAI,CAAChB,QAAQ,CAAC;YAAA;cAAlDC,QAAQ,GAAAM,QAAA,CAAAU,IAAA;cAAAV,QAAA,CAAAE,IAAA;cAAA,OAEU,IAAAS,4BAAuB,EAAC,CAAC,EAAEjB,QAAQ,CAAC;YAAA;cAAxDC,WAAW,GAAAK,QAAA,CAAAU,IAAA;YAAA;cAAA,KACRf,WAAW;gBAAAK,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAY,EAAA,GACV,IAAI;cAAAZ,QAAA,CAAAa,EAAA,GACF,IAAI;cAAAb,QAAA,CAAAc,EAAA,GACF,IAAI,CAACC,iBAAiB,CAACpB,WAAW,CAACqB,QAAQ,CAAC;cAAAhB,QAAA,CAAAE,IAAA;cAAA,OACtCR,QAAQ,CAACuB,KAAK,CACxBtB,WAAW,CAACuB,cAAc,EAC1BvB,WAAW,CAACuB,cAAc,GAAGvB,WAAW,CAACwB,cAC3C,CAAC;YAAA;cAAAnB,QAAA,CAAAoB,EAAA,GAAApB,QAAA,CAAAU,IAAA;cAAAV,QAAA,CAAAqB,EAAA;gBAJDC,IAAI,EAAAtB,QAAA,CAAAc,EAAA;gBACJS,IAAI,EAAAvB,QAAA,CAAAoB;cAAA;cAAApB,QAAA,CAAAE,IAAA;cAAA,OAAAF,QAAA,CAAAa,EAAA,CAFKW,MAAM,CAAAC,IAAA,CAAAzB,QAAA,CAAAa,EAAA,EAAAb,QAAA,CAAAqB,EAAA;YAAA;cAAArB,QAAA,CAAA0B,EAAA,GAAA1B,QAAA,CAAAU,IAAA;cAAAV,QAAA,CAAA2B,EAAA,GAOjBnC,OAAO,CAACoC,UAAU;cAAA5B,QAAA,CAAAE,IAAA;cAAA,OAAAF,QAAA,CAAAY,EAAA,CARTiB,SAAS,CAAAJ,IAAA,CAAAzB,QAAA,CAAAY,EAAA,EAAAZ,QAAA,CAAA0B,EAAA,EAAA1B,QAAA,CAAA2B,EAAA;YAAA;cAAA3B,QAAA,CAAAE,IAAA;cAAA,OAUA,IAAAS,4BAAuB,EACzC,EAAAf,YAAA,GAAAD,WAAW,cAAAC,YAAA,uBAAXA,YAAA,CAAasB,cAAc,MAAArB,aAAA,GAAGF,WAAW,cAAAE,aAAA,uBAAXA,aAAA,CAAasB,cAAc,GACzDzB,QACF,CAAC;YAAA;cAHDC,WAAW,GAAAK,QAAA,CAAAU,IAAA;cAAAV,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,OAAAF,QAAA,CAAAO,MAAA,WAMN,SAAS;YAAA;YAAA;cAAA,OAAAP,QAAA,CAAA8B,IAAA;UAAA;QAAA,GAAAvC,OAAA;MAAA,CACjB;MAAA,SAAAwC,QAAAC,EAAA;QAAA,OAAA7C,QAAA,CAAA8C,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAAH,OAAA;IAAA;EAAA;IAAA9C,GAAA;IAAAC,KAAA,EAMD,SAAA6B,kBAA0BC,QAAgB,EAAiB;MACzD,IAAIpC,UAAU,CAACuD,QAAQ,CAACC,iBAAI,CAACC,QAAQ,CAACD,iBAAI,CAACE,IAAI,CAAC,GAAG,EAAEtB,QAAQ,CAAC,CAAC,CAAC,EAAE;QAChE,OAAOoB,iBAAI,CAACE,IAAI,CAACF,iBAAI,CAACG,OAAO,CAACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;MAC3D;MAEA,IAAIwB,KAAK,GAAG,wBAAwB,CAACC,IAAI,CAACzB,QAAQ,CAAC;MACnD,IAAI,CAACwB,KAAK,EAAE;QACV,OAAO,IAAI;MACb;MACA,UAAAE,MAAA,CAAUF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,EAAE,CAAC,CAAC,CAAC,YAAAD,MAAA,CAASF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,EAAE,CAAC,CAAC,CAAC;IAC7C;EAAC;IAAA1D,GAAA;IAAAC,KAAA;MAAA,IAAA0D,OAAA,OAAAxD,kBAAA,CAAAL,OAAA,EAAAM,YAAA,CAAAN,OAAA,CAAAO,IAAA,CAED,SAAAuD,SAAqBC,IAAU;QAAA,IAAAC,UAAA;QAAA,IAAAC,WAAA,EAAAC,WAAA,EAAAC,gBAAA;QAAA,OAAA7D,YAAA,CAAAN,OAAA,CAAAe,IAAA,UAAAqD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAnD,IAAA,GAAAmD,SAAA,CAAAlD,IAAA;YAAA;cAAA,KACzB,OAAO,CAACmD,IAAI,EAAAN,UAAA,GAACD,IAAI,CAACxB,IAAI,cAAAyB,UAAA,cAAAA,UAAA,GAAI,EAAE,CAAC;gBAAAK,SAAA,CAAAlD,IAAA;gBAAA;cAAA;cACzB+C,WAAW,GAAG,IAAIK,4BAAe,CAAC,CAAC;cAAAF,SAAA,CAAAlD,IAAA;cAAA,OAEV+C,WAAW,CAACM,UAAU,CAACT,IAAI,CAACvB,IAAI,CAAC;YAAA;cAA1D2B,gBAAgB,GAAAE,SAAA,CAAA1C,IAAA;cAAA,OAAA0C,SAAA,CAAA7C,MAAA,WACf;gBAACgB,IAAI,EAAE2B,gBAAgB;gBAAE5B,IAAI,EAAE,EAAA0B,WAAA,GAACF,IAAI,CAACxB,IAAI,cAAA0B,WAAA,cAAAA,WAAA,GAAI,EAAE,EAAE/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;cAAC,CAAC;YAAA;cAAA,OAAAmC,SAAA,CAAA7C,MAAA,WAEhEiD,OAAO,CAACC,OAAO,CAACX,IAAI,CAAC;YAAA;YAAA;cAAA,OAAAM,SAAA,CAAAtB,IAAA;UAAA;QAAA,GAAAe,QAAA;MAAA,CAC7B;MAAA,SAAArB,OAAAkC,GAAA;QAAA,OAAAd,OAAA,CAAAX,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAAV,MAAA;IAAA;EAAA;IAAAvC,GAAA;IAAAC,KAAA;MAAA,IAAAyE,WAAA,OAAAvE,kBAAA,CAAAL,OAAA,EAAAM,YAAA,CAAAN,OAAA,CAAAO,IAAA,CAED,SAAAsE,SAAwBpE,OAAa,EAAEoC,UAAkB;QAAA,IAAAiC,SAAA,EAAAC,OAAA,EAAA9C,QAAA;QAAA,OAAA3B,YAAA,CAAAN,OAAA,CAAAe,IAAA,UAAAiE,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA/D,IAAA,GAAA+D,SAAA,CAAA9D,IAAA;YAAA;cAAA,IAClDV,OAAO,CAAC8B,IAAI;gBAAA0C,SAAA,CAAA9D,IAAA;gBAAA;cAAA;cAAA,OAAA8D,SAAA,CAAAzD,MAAA;YAAA;cAGXsD,SAAS,GAAGzB,iBAAI,CAACE,IAAI,CAACV,UAAU,EAAEpC,OAAO,CAAC8B,IAAI,CAAC;cAC/CwC,OAAO,GAAG1B,iBAAI,CAACG,OAAO,CAACsB,SAAS,CAAC;cACjC7C,QAAQ,GAAGoB,iBAAI,CAACC,QAAQ,CAACwB,SAAS,CAAC;cAAAG,SAAA,CAAA9D,IAAA;cAAA,OACnC,IAAA2B,oBAAS,EAACiC,OAAO,EAAEtE,OAAO,CAAC+B,IAAI,EAAEP,QAAQ,CAAC;YAAA;YAAA;cAAA,OAAAgD,SAAA,CAAAlC,IAAA;UAAA;QAAA,GAAA8B,QAAA;MAAA,CACjD;MAAA,SAAA/B,UAAAoC,GAAA,EAAAC,GAAA;QAAA,OAAAP,WAAA,CAAA1B,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAAL,SAAA;IAAA;EAAA;EAAA,OAAAhD,aAAA;AAAA;AAAAsF,OAAA,CAAApF,OAAA,GAAAF,aAAA"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
|
6
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
+
require("@loaders.gl/polyfills");
|
|
8
|
+
var _slpkExtractor = _interopRequireDefault(require("./slpk-extractor/slpk-extractor"));
|
|
9
|
+
var _cliUtils = require("./lib/utils/cli-utils");
|
|
10
|
+
function main() {
|
|
11
|
+
return _main.apply(this, arguments);
|
|
12
|
+
}
|
|
13
|
+
function _main() {
|
|
14
|
+
_main = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
15
|
+
var _process$argv, args, validatedOptionsArr, options, validatedOptions;
|
|
16
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
17
|
+
while (1) switch (_context.prev = _context.next) {
|
|
18
|
+
case 0:
|
|
19
|
+
_process$argv = (0, _toArray2.default)(process.argv), args = _process$argv.slice(2);
|
|
20
|
+
if (args.length === 0) {
|
|
21
|
+
printHelp();
|
|
22
|
+
}
|
|
23
|
+
validatedOptionsArr = (0, _cliUtils.validateOptionsWithEqual)(args);
|
|
24
|
+
options = parseOptions(validatedOptionsArr);
|
|
25
|
+
validatedOptions = validateOptions(options);
|
|
26
|
+
_context.next = 7;
|
|
27
|
+
return convert(validatedOptions);
|
|
28
|
+
case 7:
|
|
29
|
+
case "end":
|
|
30
|
+
return _context.stop();
|
|
31
|
+
}
|
|
32
|
+
}, _callee);
|
|
33
|
+
}));
|
|
34
|
+
return _main.apply(this, arguments);
|
|
35
|
+
}
|
|
36
|
+
main().catch(function (error) {
|
|
37
|
+
console.log(error);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
});
|
|
40
|
+
function printHelp() {
|
|
41
|
+
console.log('cli: converter slpk to I3S...');
|
|
42
|
+
console.log('--output [Output folder, default: "data" folder]');
|
|
43
|
+
console.log('--tileset [SLPK file]');
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
|
46
|
+
function convert(_x) {
|
|
47
|
+
return _convert.apply(this, arguments);
|
|
48
|
+
}
|
|
49
|
+
function _convert() {
|
|
50
|
+
_convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options) {
|
|
51
|
+
var slpkExtractor;
|
|
52
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
53
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
console.log("------------------------------------------------");
|
|
56
|
+
console.log("Starting conversion of SLPK");
|
|
57
|
+
console.log("------------------------------------------------");
|
|
58
|
+
slpkExtractor = new _slpkExtractor.default();
|
|
59
|
+
slpkExtractor.extract({
|
|
60
|
+
inputUrl: options.tileset,
|
|
61
|
+
outputPath: options.output
|
|
62
|
+
});
|
|
63
|
+
case 5:
|
|
64
|
+
case "end":
|
|
65
|
+
return _context2.stop();
|
|
66
|
+
}
|
|
67
|
+
}, _callee2);
|
|
68
|
+
}));
|
|
69
|
+
return _convert.apply(this, arguments);
|
|
70
|
+
}
|
|
71
|
+
function validateOptions(options) {
|
|
72
|
+
var mandatoryOptionsWithExceptions = {
|
|
73
|
+
output: function output() {
|
|
74
|
+
return console.log('Missed: --output [Output path name]');
|
|
75
|
+
},
|
|
76
|
+
tileset: function tileset() {
|
|
77
|
+
return console.log('Missed: --tileset [SLPK file]');
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var exceptions = [];
|
|
81
|
+
for (var mandatoryOption in mandatoryOptionsWithExceptions) {
|
|
82
|
+
var optionValue = options[mandatoryOption];
|
|
83
|
+
if (!optionValue) {
|
|
84
|
+
exceptions.push(mandatoryOptionsWithExceptions[mandatoryOption]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (exceptions.length) {
|
|
88
|
+
exceptions.forEach(function (exeption) {
|
|
89
|
+
return exeption();
|
|
90
|
+
});
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
return options;
|
|
94
|
+
}
|
|
95
|
+
function parseOptions(args) {
|
|
96
|
+
var opts = {};
|
|
97
|
+
args.forEach(function (arg, index) {
|
|
98
|
+
if (arg.indexOf('--') === 0) {
|
|
99
|
+
switch (arg) {
|
|
100
|
+
case '--tileset':
|
|
101
|
+
opts.tileset = (0, _cliUtils.getURLValue)(index, args);
|
|
102
|
+
break;
|
|
103
|
+
case '--output':
|
|
104
|
+
opts.output = (0, _cliUtils.getURLValue)(index, args);
|
|
105
|
+
break;
|
|
106
|
+
case '--help':
|
|
107
|
+
printHelp();
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
console.warn("Unknown option ".concat(arg));
|
|
111
|
+
process.exit(0);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return opts;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=slpk-extractor-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slpk-extractor-cli.js","names":["require","_slpkExtractor","_interopRequireDefault","_cliUtils","main","_main","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","_process$argv","args","validatedOptionsArr","options","validatedOptions","wrap","_callee$","_context","prev","next","_toArray2","process","argv","slice","length","printHelp","validateOptionsWithEqual","parseOptions","validateOptions","convert","stop","catch","error","console","log","exit","_x","_convert","_callee2","slpkExtractor","_callee2$","_context2","SLPKExtractor","extract","inputUrl","tileset","outputPath","output","mandatoryOptionsWithExceptions","exceptions","mandatoryOption","optionValue","push","forEach","exeption","opts","arg","index","indexOf","getURLValue","warn","concat"],"sources":["../../src/slpk-extractor-cli.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport '@loaders.gl/polyfills';\nimport SLPKExtractor from './slpk-extractor/slpk-extractor';\nimport {getURLValue, validateOptionsWithEqual} from './lib/utils/cli-utils';\n\ntype SLPKExtractionOptions = {\n /** \"tileset.json\" file (3DTiles) / \"http://..../SceneServer/layers/0\" resource (I3S) */\n tileset?: string;\n /** Output folder. This folder will be created by converter if doesn't exist. It is relative to the converter path.\n * Default: \"data\" folder */\n output?: string;\n};\n\n/* During validation we check that particular options are defined so they can't be undefined */\nexport type ValidatedSLPKExtractionOptions = SLPKExtractionOptions & {\n /** slpk file */\n tileset: string;\n /** Output folder. This folder will be created by converter if doesn't exist. It is relative to the converter path.\n * Default: \"data\" folder */\n output: string;\n};\n\n/**\n * CLI entry\n * @returns\n */\nasync function main() {\n const [, , ...args] = process.argv;\n\n if (args.length === 0) {\n printHelp();\n }\n\n const validatedOptionsArr = validateOptionsWithEqual(args);\n\n const options: SLPKExtractionOptions = parseOptions(validatedOptionsArr);\n\n const validatedOptions: ValidatedSLPKExtractionOptions = validateOptions(options);\n\n await convert(validatedOptions);\n}\n\nmain().catch((error) => {\n console.log(error);\n process.exit(1); // eslint-disable-line\n});\n\n/**\n * Output for `npx slpk-extractor --help`\n */\nfunction printHelp(): void {\n console.log('cli: converter slpk to I3S...');\n console.log('--output [Output folder, default: \"data\" folder]');\n console.log('--tileset [SLPK file]');\n process.exit(0); // eslint-disable-line\n}\n\n/**\n * Run extraction process\n * @param options validated slpk-extractor options\n */\nasync function convert(options: ValidatedSLPKExtractionOptions) {\n console.log(`------------------------------------------------`); // eslint-disable-line\n console.log(`Starting conversion of SLPK`); // eslint-disable-line\n console.log(`------------------------------------------------`); // eslint-disable-line\n const slpkExtractor = new SLPKExtractor();\n slpkExtractor.extract({\n inputUrl: options.tileset,\n outputPath: options.output\n });\n}\n\n// OPTIONS\n/**\n * Validate input options of the CLI command\n * @param options - input options of the CLI command\n * @returns validated options\n */\nfunction validateOptions(options: SLPKExtractionOptions): ValidatedSLPKExtractionOptions {\n const mandatoryOptionsWithExceptions: {\n [key: string]: () => void;\n } = {\n output: () => console.log('Missed: --output [Output path name]'),\n tileset: () => console.log('Missed: --tileset [SLPK file]')\n };\n const exceptions: (() => void)[] = [];\n for (const mandatoryOption in mandatoryOptionsWithExceptions) {\n const optionValue = options[mandatoryOption];\n if (!optionValue) {\n exceptions.push(mandatoryOptionsWithExceptions[mandatoryOption]);\n }\n }\n if (exceptions.length) {\n exceptions.forEach((exeption) => exeption());\n process.exit(1);\n }\n return <ValidatedSLPKExtractionOptions>options;\n}\n\n/**\n * Parse option from the cli arguments array\n * @param args\n * @returns\n */\nfunction parseOptions(args: string[]): SLPKExtractionOptions {\n const opts: SLPKExtractionOptions = {};\n\n // eslint-disable-next-line complexity\n args.forEach((arg, index) => {\n if (arg.indexOf('--') === 0) {\n switch (arg) {\n case '--tileset':\n opts.tileset = getURLValue(index, args);\n break;\n case '--output':\n opts.output = getURLValue(index, args);\n break;\n case '--help':\n printHelp();\n break;\n default:\n console.warn(`Unknown option ${arg}`);\n process.exit(0); // eslint-disable-line\n }\n }\n });\n return opts;\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { processOnWorker } from '@loaders.gl/worker-utils';
|
|
2
|
-
const VERSION = typeof "4.0.0-alpha.
|
|
2
|
+
const VERSION = typeof "4.0.0-alpha.12" !== 'undefined' ? "4.0.0-alpha.12" : 'latest';
|
|
3
3
|
export const Tile3dAttributesWorker = {
|
|
4
4
|
id: '3d-tiles-attributes',
|
|
5
5
|
name: '3DTiles Attributes Worker',
|
|
@@ -2,6 +2,7 @@ import '@loaders.gl/polyfills';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { I3SConverter, Tiles3DConverter } from '@loaders.gl/tile-converter';
|
|
4
4
|
import { DepsInstaller } from './deps-installer/deps-installer';
|
|
5
|
+
import { getBooleanValue, getIntegerValue, getStringValue, getURLValue, validateOptionsWithEqual } from './lib/utils/cli-utils';
|
|
5
6
|
const TILESET_TYPE = {
|
|
6
7
|
I3S: 'I3S',
|
|
7
8
|
_3DTILES: '3DTILES'
|
|
@@ -107,18 +108,6 @@ function validateOptions(options) {
|
|
|
107
108
|
}
|
|
108
109
|
return options;
|
|
109
110
|
}
|
|
110
|
-
function validateOptionsWithEqual(args) {
|
|
111
|
-
return args.reduce((acc, curr) => {
|
|
112
|
-
const equalSignIndex = curr.indexOf('=');
|
|
113
|
-
const beforeEqual = curr.slice(0, equalSignIndex);
|
|
114
|
-
const afterEqual = curr.slice(equalSignIndex + 1, curr.length);
|
|
115
|
-
const condition = curr.includes('=') && curr.startsWith('--') && afterEqual;
|
|
116
|
-
if (condition) {
|
|
117
|
-
return acc.concat(beforeEqual, afterEqual);
|
|
118
|
-
}
|
|
119
|
-
return acc.concat(curr);
|
|
120
|
-
}, []);
|
|
121
|
-
}
|
|
122
111
|
function parseOptions(args) {
|
|
123
112
|
const opts = {
|
|
124
113
|
output: 'data',
|
|
@@ -195,38 +184,4 @@ function parseOptions(args) {
|
|
|
195
184
|
});
|
|
196
185
|
return opts;
|
|
197
186
|
}
|
|
198
|
-
function getStringValue(index, args) {
|
|
199
|
-
if (index + 1 >= args.length) {
|
|
200
|
-
return '';
|
|
201
|
-
}
|
|
202
|
-
const value = args[index + 1];
|
|
203
|
-
if (value.indexOf('--') === 0) {
|
|
204
|
-
return '';
|
|
205
|
-
}
|
|
206
|
-
return value;
|
|
207
|
-
}
|
|
208
|
-
function getURLValue(index, args) {
|
|
209
|
-
const value = getStringValue(index, args);
|
|
210
|
-
console.log("Input tileset value: ".concat(value));
|
|
211
|
-
console.log("Modified tileset value: ".concat(value.replace(/\\/g, '/')));
|
|
212
|
-
return value.replace(/\\/g, '/');
|
|
213
|
-
}
|
|
214
|
-
function getIntegerValue(index, args) {
|
|
215
|
-
const stringValue = getStringValue(index, args);
|
|
216
|
-
const result = Number.parseInt(stringValue);
|
|
217
|
-
if (isFinite(result)) {
|
|
218
|
-
return result;
|
|
219
|
-
}
|
|
220
|
-
return NaN;
|
|
221
|
-
}
|
|
222
|
-
function getBooleanValue(index, args) {
|
|
223
|
-
const stringValue = getStringValue(index, args).toLowerCase().trim();
|
|
224
|
-
if (['--no-draco', '--split-nodes'].includes(args[index]) && !stringValue) {
|
|
225
|
-
return false;
|
|
226
|
-
}
|
|
227
|
-
if (!stringValue || stringValue === 'true') {
|
|
228
|
-
return true;
|
|
229
|
-
}
|
|
230
|
-
return false;
|
|
231
|
-
}
|
|
232
187
|
//# sourceMappingURL=converter-cli.js.map
|