@loaders.gl/i3s 4.0.0-alpha.6 → 4.0.0-alpha.7
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 +676 -113
- 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 +2 -3
- package/dist/es5/i3s-content-loader.js.map +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 +20 -0
- package/dist/es5/i3s-slpk-loader.js.map +1 -0
- package/dist/es5/index.js +8 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +94 -0
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +112 -0
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +44 -0
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js +26 -0
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -0
- package/dist/es5/workers/{i3s-content-nodejs-worker.js → i3s-content-worker-node.js} +2 -2
- package/dist/es5/workers/i3s-content-worker-node.js.map +1 -0
- 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 +2 -3
- package/dist/esm/i3s-content-loader.js.map +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 +13 -0
- package/dist/esm/i3s-slpk-loader.js.map +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +37 -0
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +58 -0
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +37 -0
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js +19 -0
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +1 -0
- package/dist/esm/workers/{i3s-content-nodejs-worker.js → i3s-content-worker-node.js} +2 -2
- package/dist/esm/workers/i3s-content-worker-node.js.map +1 -0
- package/dist/i3s-content-loader.d.ts.map +1 -1
- package/dist/i3s-content-loader.js +1 -2
- package/dist/i3s-content-worker-node.js +197 -0
- package/dist/{i3s-content-nodejs-worker.js.map → i3s-content-worker-node.js.map} +3 -3
- package/dist/i3s-content-worker.js +77 -55
- package/dist/i3s-slpk-loader.d.ts +10 -0
- package/dist/i3s-slpk-loader.d.ts.map +1 -0
- package/dist/i3s-slpk-loader.js +20 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +4 -0
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -0
- package/dist/lib/parsers/parse-slpk/parse-slpk.js +50 -0
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +32 -0
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -0
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js +79 -0
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +38 -0
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/cd-file-header.js +48 -0
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts +30 -0
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/local-file-header.js +28 -0
- package/dist/workers/i3s-content-worker-node.d.ts +2 -0
- package/dist/workers/i3s-content-worker-node.d.ts.map +1 -0
- package/dist/workers/{i3s-content-nodejs-worker.js → i3s-content-worker-node.js} +2 -1
- package/package.json +15 -13
- package/src/i3s-content-loader.ts +1 -2
- package/src/i3s-slpk-loader.ts +25 -0
- package/src/index.ts +2 -2
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +61 -0
- package/src/lib/parsers/parse-slpk/slpk-archieve.ts +108 -0
- package/src/lib/parsers/parse-zip/cd-file-header.ts +93 -0
- package/src/lib/parsers/parse-zip/local-file-header.ts +56 -0
- package/src/workers/{i3s-content-nodejs-worker.ts → i3s-content-worker-node.ts} +2 -1
- package/dist/es5/workers/i3s-content-nodejs-worker.js.map +0 -1
- package/dist/esm/workers/i3s-content-nodejs-worker.js.map +0 -1
- package/dist/i3s-content-nodejs-worker.js +0 -198
- package/dist/workers/i3s-content-nodejs-worker.d.ts +0 -2
- package/dist/workers/i3s-content-nodejs-worker.d.ts.map +0 -1
package/dist/dist.min.js
CHANGED
|
@@ -941,6 +941,22 @@
|
|
|
941
941
|
}
|
|
942
942
|
return false;
|
|
943
943
|
}
|
|
944
|
+
function getTransferListForWriter(object) {
|
|
945
|
+
if (object === null) {
|
|
946
|
+
return {};
|
|
947
|
+
}
|
|
948
|
+
const clone3 = Object.assign({}, object);
|
|
949
|
+
Object.keys(clone3).forEach((key) => {
|
|
950
|
+
if (typeof object[key] === "object" && !ArrayBuffer.isView(object[key]) && !(object[key] instanceof Array)) {
|
|
951
|
+
clone3[key] = getTransferListForWriter(object[key]);
|
|
952
|
+
} else if (typeof clone3[key] === "function" || clone3[key] instanceof RegExp) {
|
|
953
|
+
clone3[key] = {};
|
|
954
|
+
} else {
|
|
955
|
+
clone3[key] = object[key];
|
|
956
|
+
}
|
|
957
|
+
});
|
|
958
|
+
return clone3;
|
|
959
|
+
}
|
|
944
960
|
var init_get_transfer_list = __esm({
|
|
945
961
|
"../worker-utils/src/lib/worker-utils/get-transfer-list.ts"() {
|
|
946
962
|
}
|
|
@@ -1088,9 +1104,9 @@
|
|
|
1088
1104
|
this.onDebug = props.onDebug;
|
|
1089
1105
|
}
|
|
1090
1106
|
}
|
|
1091
|
-
async startJob(name,
|
|
1107
|
+
async startJob(name, onMessage3 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
|
|
1092
1108
|
const startPromise = new Promise((onStart) => {
|
|
1093
|
-
this.jobQueue.push({ name, onMessage:
|
|
1109
|
+
this.jobQueue.push({ name, onMessage: onMessage3, onError, onStart });
|
|
1094
1110
|
return this;
|
|
1095
1111
|
});
|
|
1096
1112
|
this._startQueuedJob();
|
|
@@ -1124,7 +1140,7 @@
|
|
|
1124
1140
|
}
|
|
1125
1141
|
}
|
|
1126
1142
|
returnWorkerToQueue(worker) {
|
|
1127
|
-
const shouldDestroyWorker = this.isDestroyed || !this.reuseWorkers || this.count > this._getMaxConcurrency();
|
|
1143
|
+
const shouldDestroyWorker = !isBrowser2 || this.isDestroyed || !this.reuseWorkers || this.count > this._getMaxConcurrency();
|
|
1128
1144
|
if (shouldDestroyWorker) {
|
|
1129
1145
|
worker.destroy();
|
|
1130
1146
|
this.count--;
|
|
@@ -1220,9 +1236,13 @@
|
|
|
1220
1236
|
});
|
|
1221
1237
|
|
|
1222
1238
|
// ../worker-utils/src/lib/worker-api/get-worker-url.ts
|
|
1239
|
+
function getWorkerName(worker) {
|
|
1240
|
+
const warning = worker.version !== VERSION2 ? ` (worker-utils@${VERSION2})` : "";
|
|
1241
|
+
return `${worker.name}@${worker.version}${warning}`;
|
|
1242
|
+
}
|
|
1223
1243
|
function getWorkerURL(worker, options = {}) {
|
|
1224
1244
|
const workerOptions = options[worker.id] || {};
|
|
1225
|
-
const workerFile = `${worker.id}-worker.js`;
|
|
1245
|
+
const workerFile = isBrowser2 ? `${worker.id}-worker.js` : `${worker.id}-worker-node.js`;
|
|
1226
1246
|
let url = workerOptions.workerUrl;
|
|
1227
1247
|
if (!url && worker.id === "compression") {
|
|
1228
1248
|
url = options.workerUrl;
|
|
@@ -1241,11 +1261,65 @@
|
|
|
1241
1261
|
assert2(url);
|
|
1242
1262
|
return url;
|
|
1243
1263
|
}
|
|
1244
|
-
var NPM_TAG;
|
|
1264
|
+
var NPM_TAG, VERSION2;
|
|
1245
1265
|
var init_get_worker_url = __esm({
|
|
1246
1266
|
"../worker-utils/src/lib/worker-api/get-worker-url.ts"() {
|
|
1247
1267
|
init_assert2();
|
|
1268
|
+
init_globals2();
|
|
1269
|
+
init_version();
|
|
1248
1270
|
NPM_TAG = "beta";
|
|
1271
|
+
VERSION2 = typeof VERSION !== "undefined" ? VERSION : NPM_TAG;
|
|
1272
|
+
}
|
|
1273
|
+
});
|
|
1274
|
+
|
|
1275
|
+
// ../worker-utils/src/lib/worker-api/process-on-worker.ts
|
|
1276
|
+
async function processOnWorker(worker, data, options = {}, context = {}) {
|
|
1277
|
+
const name = getWorkerName(worker);
|
|
1278
|
+
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
1279
|
+
const { source } = options;
|
|
1280
|
+
const workerPoolProps = { name, source };
|
|
1281
|
+
if (!source) {
|
|
1282
|
+
workerPoolProps.url = getWorkerURL(worker, options);
|
|
1283
|
+
}
|
|
1284
|
+
const workerPool = workerFarm.getWorkerPool(workerPoolProps);
|
|
1285
|
+
const jobName = options.jobName || worker.name;
|
|
1286
|
+
const job = await workerPool.startJob(jobName, onMessage.bind(null, context));
|
|
1287
|
+
const transferableOptions = getTransferListForWriter(options);
|
|
1288
|
+
job.postMessage("process", { input: data, options: transferableOptions });
|
|
1289
|
+
const result = await job.result;
|
|
1290
|
+
return result.result;
|
|
1291
|
+
}
|
|
1292
|
+
async function onMessage(context, job, type, payload) {
|
|
1293
|
+
switch (type) {
|
|
1294
|
+
case "done":
|
|
1295
|
+
job.done(payload);
|
|
1296
|
+
break;
|
|
1297
|
+
case "error":
|
|
1298
|
+
job.error(new Error(payload.error));
|
|
1299
|
+
break;
|
|
1300
|
+
case "process":
|
|
1301
|
+
const { id, input, options } = payload;
|
|
1302
|
+
try {
|
|
1303
|
+
if (!context.process) {
|
|
1304
|
+
job.postMessage("error", { id, error: "Worker not set up to process on main thread" });
|
|
1305
|
+
return;
|
|
1306
|
+
}
|
|
1307
|
+
const result = await context.process(input, options);
|
|
1308
|
+
job.postMessage("done", { id, result });
|
|
1309
|
+
} catch (error) {
|
|
1310
|
+
const message = error instanceof Error ? error.message : "unknown error";
|
|
1311
|
+
job.postMessage("error", { id, error: message });
|
|
1312
|
+
}
|
|
1313
|
+
break;
|
|
1314
|
+
default:
|
|
1315
|
+
console.warn(`process-on-worker: unknown message ${type}`);
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
var init_process_on_worker = __esm({
|
|
1319
|
+
"../worker-utils/src/lib/worker-api/process-on-worker.ts"() {
|
|
1320
|
+
init_worker_farm();
|
|
1321
|
+
init_get_worker_url();
|
|
1322
|
+
init_get_transfer_list();
|
|
1249
1323
|
}
|
|
1250
1324
|
});
|
|
1251
1325
|
|
|
@@ -1292,7 +1366,7 @@
|
|
|
1292
1366
|
}
|
|
1293
1367
|
if (options.CDN) {
|
|
1294
1368
|
assert2(options.CDN.startsWith("http"));
|
|
1295
|
-
return `${options.CDN}/${moduleName}@${
|
|
1369
|
+
return `${options.CDN}/${moduleName}@${VERSION3}/dist/libs/${library}`;
|
|
1296
1370
|
}
|
|
1297
1371
|
if (isWorker) {
|
|
1298
1372
|
return `../src/libs/${library}`;
|
|
@@ -1336,7 +1410,7 @@
|
|
|
1336
1410
|
document.body.appendChild(script);
|
|
1337
1411
|
return null;
|
|
1338
1412
|
}
|
|
1339
|
-
var node, LATEST,
|
|
1413
|
+
var node, LATEST, VERSION3, loadLibraryPromises;
|
|
1340
1414
|
var init_library_utils = __esm({
|
|
1341
1415
|
"../worker-utils/src/lib/library-utils/library-utils.ts"() {
|
|
1342
1416
|
init_globals2();
|
|
@@ -1344,7 +1418,7 @@
|
|
|
1344
1418
|
init_assert2();
|
|
1345
1419
|
init_version();
|
|
1346
1420
|
LATEST = "beta";
|
|
1347
|
-
|
|
1421
|
+
VERSION3 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
1348
1422
|
loadLibraryPromises = {};
|
|
1349
1423
|
}
|
|
1350
1424
|
});
|
|
@@ -1355,6 +1429,7 @@
|
|
|
1355
1429
|
init_assert2();
|
|
1356
1430
|
init_globals2();
|
|
1357
1431
|
init_worker_farm();
|
|
1432
|
+
init_process_on_worker();
|
|
1358
1433
|
init_get_worker_url();
|
|
1359
1434
|
init_validate_worker_version();
|
|
1360
1435
|
init_library_utils();
|
|
@@ -1378,7 +1453,7 @@
|
|
|
1378
1453
|
const workerPool = workerFarm.getWorkerPool({ name, url });
|
|
1379
1454
|
options = JSON.parse(JSON.stringify(options));
|
|
1380
1455
|
context = JSON.parse(JSON.stringify(context || {}));
|
|
1381
|
-
const job = await workerPool.startJob("process-on-worker",
|
|
1456
|
+
const job = await workerPool.startJob("process-on-worker", onMessage2.bind(null, parseOnMainThread));
|
|
1382
1457
|
job.postMessage("process", {
|
|
1383
1458
|
input: data,
|
|
1384
1459
|
options,
|
|
@@ -1387,7 +1462,7 @@
|
|
|
1387
1462
|
const result = await job.result;
|
|
1388
1463
|
return await result.result;
|
|
1389
1464
|
}
|
|
1390
|
-
async function
|
|
1465
|
+
async function onMessage2(parseOnMainThread, job, type, payload) {
|
|
1391
1466
|
switch (type) {
|
|
1392
1467
|
case "done":
|
|
1393
1468
|
job.done(payload);
|
|
@@ -1552,15 +1627,15 @@
|
|
|
1552
1627
|
function parseTextSync(text) {
|
|
1553
1628
|
return JSON.parse(text);
|
|
1554
1629
|
}
|
|
1555
|
-
var
|
|
1630
|
+
var VERSION4, JSONLoader;
|
|
1556
1631
|
var init_json_loader = __esm({
|
|
1557
1632
|
"../loader-utils/src/json-loader.ts"() {
|
|
1558
|
-
|
|
1633
|
+
VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
1559
1634
|
JSONLoader = {
|
|
1560
1635
|
name: "JSON",
|
|
1561
1636
|
id: "json",
|
|
1562
1637
|
module: "json",
|
|
1563
|
-
version:
|
|
1638
|
+
version: VERSION4,
|
|
1564
1639
|
extensions: ["json", "geojson"],
|
|
1565
1640
|
mimeTypes: ["application/json"],
|
|
1566
1641
|
category: "json",
|
|
@@ -1822,39 +1897,60 @@
|
|
|
1822
1897
|
}
|
|
1823
1898
|
});
|
|
1824
1899
|
|
|
1900
|
+
// ../core/src/lib/utils/url-utils.ts
|
|
1901
|
+
function extractQueryString(url) {
|
|
1902
|
+
const matches3 = url.match(QUERY_STRING_PATTERN);
|
|
1903
|
+
return matches3 && matches3[0];
|
|
1904
|
+
}
|
|
1905
|
+
function stripQueryString(url) {
|
|
1906
|
+
return url.replace(QUERY_STRING_PATTERN, "");
|
|
1907
|
+
}
|
|
1908
|
+
var QUERY_STRING_PATTERN;
|
|
1909
|
+
var init_url_utils = __esm({
|
|
1910
|
+
"../core/src/lib/utils/url-utils.ts"() {
|
|
1911
|
+
QUERY_STRING_PATTERN = /\?.*/;
|
|
1912
|
+
}
|
|
1913
|
+
});
|
|
1914
|
+
|
|
1825
1915
|
// ../core/src/lib/utils/resource-utils.ts
|
|
1826
|
-
function
|
|
1916
|
+
function getResourceUrl(resource) {
|
|
1827
1917
|
if (isResponse(resource)) {
|
|
1828
|
-
const
|
|
1829
|
-
|
|
1830
|
-
return {
|
|
1831
|
-
url,
|
|
1832
|
-
type: parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(url)
|
|
1833
|
-
};
|
|
1918
|
+
const response = resource;
|
|
1919
|
+
return response.url;
|
|
1834
1920
|
}
|
|
1835
1921
|
if (isBlob(resource)) {
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
type: resource.type || ""
|
|
1839
|
-
};
|
|
1922
|
+
const blob = resource;
|
|
1923
|
+
return blob.name || "";
|
|
1840
1924
|
}
|
|
1841
1925
|
if (typeof resource === "string") {
|
|
1842
|
-
return
|
|
1843
|
-
url: stripQueryString(resource),
|
|
1844
|
-
type: parseMIMETypeFromURL(resource)
|
|
1845
|
-
};
|
|
1926
|
+
return resource;
|
|
1846
1927
|
}
|
|
1847
|
-
return
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1928
|
+
return "";
|
|
1929
|
+
}
|
|
1930
|
+
function getResourceMIMEType(resource) {
|
|
1931
|
+
if (isResponse(resource)) {
|
|
1932
|
+
const response = resource;
|
|
1933
|
+
const contentTypeHeader = response.headers.get("content-type") || "";
|
|
1934
|
+
const noQueryUrl = stripQueryString(response.url);
|
|
1935
|
+
return parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(noQueryUrl);
|
|
1936
|
+
}
|
|
1937
|
+
if (isBlob(resource)) {
|
|
1938
|
+
const blob = resource;
|
|
1939
|
+
return blob.type || "";
|
|
1940
|
+
}
|
|
1941
|
+
if (typeof resource === "string") {
|
|
1942
|
+
return parseMIMETypeFromURL(resource);
|
|
1943
|
+
}
|
|
1944
|
+
return "";
|
|
1851
1945
|
}
|
|
1852
1946
|
function getResourceContentLength(resource) {
|
|
1853
1947
|
if (isResponse(resource)) {
|
|
1854
|
-
|
|
1948
|
+
const response = resource;
|
|
1949
|
+
return response.headers["content-length"] || -1;
|
|
1855
1950
|
}
|
|
1856
1951
|
if (isBlob(resource)) {
|
|
1857
|
-
|
|
1952
|
+
const blob = resource;
|
|
1953
|
+
return blob.size;
|
|
1858
1954
|
}
|
|
1859
1955
|
if (typeof resource === "string") {
|
|
1860
1956
|
return resource.length;
|
|
@@ -1867,15 +1963,11 @@
|
|
|
1867
1963
|
}
|
|
1868
1964
|
return -1;
|
|
1869
1965
|
}
|
|
1870
|
-
function stripQueryString(url) {
|
|
1871
|
-
return url.replace(QUERY_STRING_PATTERN, "");
|
|
1872
|
-
}
|
|
1873
|
-
var QUERY_STRING_PATTERN;
|
|
1874
1966
|
var init_resource_utils = __esm({
|
|
1875
1967
|
"../core/src/lib/utils/resource-utils.ts"() {
|
|
1876
1968
|
init_is_type();
|
|
1877
1969
|
init_mime_type_utils();
|
|
1878
|
-
|
|
1970
|
+
init_url_utils();
|
|
1879
1971
|
}
|
|
1880
1972
|
});
|
|
1881
1973
|
|
|
@@ -1889,7 +1981,8 @@
|
|
|
1889
1981
|
if (contentLength >= 0) {
|
|
1890
1982
|
headers["content-length"] = String(contentLength);
|
|
1891
1983
|
}
|
|
1892
|
-
const
|
|
1984
|
+
const url = getResourceUrl(resource);
|
|
1985
|
+
const type = getResourceMIMEType(resource);
|
|
1893
1986
|
if (type) {
|
|
1894
1987
|
headers["content-type"] = type;
|
|
1895
1988
|
}
|
|
@@ -1978,7 +2071,7 @@
|
|
|
1978
2071
|
}
|
|
1979
2072
|
});
|
|
1980
2073
|
|
|
1981
|
-
// ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
|
|
2074
|
+
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-electron.js
|
|
1982
2075
|
function isElectron(mockUserAgent) {
|
|
1983
2076
|
if (typeof window !== "undefined" && typeof window.process === "object" && window.process.type === "renderer") {
|
|
1984
2077
|
return true;
|
|
@@ -1994,25 +2087,25 @@
|
|
|
1994
2087
|
return false;
|
|
1995
2088
|
}
|
|
1996
2089
|
var init_is_electron = __esm({
|
|
1997
|
-
"../../node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
|
|
2090
|
+
"../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
|
|
1998
2091
|
}
|
|
1999
2092
|
});
|
|
2000
2093
|
|
|
2001
|
-
// ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
|
|
2094
|
+
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-browser.js
|
|
2002
2095
|
function isBrowser3() {
|
|
2003
2096
|
const isNode = typeof process === "object" && String(process) === "[object process]" && !process.browser;
|
|
2004
2097
|
return !isNode || isElectron();
|
|
2005
2098
|
}
|
|
2006
2099
|
var init_is_browser = __esm({
|
|
2007
|
-
"../../node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
|
|
2100
|
+
"../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
|
|
2008
2101
|
init_is_electron();
|
|
2009
2102
|
}
|
|
2010
2103
|
});
|
|
2011
2104
|
|
|
2012
|
-
// ../../node_modules/@probe.gl/env/dist/lib/globals.js
|
|
2105
|
+
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/globals.js
|
|
2013
2106
|
var self_3, window_3, document_3, process_, console_, navigator_;
|
|
2014
2107
|
var init_globals3 = __esm({
|
|
2015
|
-
"../../node_modules/@probe.gl/env/dist/lib/globals.js"() {
|
|
2108
|
+
"../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/globals.js"() {
|
|
2016
2109
|
self_3 = globalThis.self || globalThis.window || globalThis.global;
|
|
2017
2110
|
window_3 = globalThis.window || globalThis.self || globalThis.global;
|
|
2018
2111
|
document_3 = globalThis.document || {};
|
|
@@ -2022,19 +2115,19 @@
|
|
|
2022
2115
|
}
|
|
2023
2116
|
});
|
|
2024
2117
|
|
|
2025
|
-
// ../../node_modules/@probe.gl/env/dist/utils/globals.js
|
|
2026
|
-
var
|
|
2118
|
+
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/utils/globals.js
|
|
2119
|
+
var VERSION5, isBrowser4;
|
|
2027
2120
|
var init_globals4 = __esm({
|
|
2028
|
-
"../../node_modules/@probe.gl/env/dist/utils/globals.js"() {
|
|
2121
|
+
"../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/utils/globals.js"() {
|
|
2029
2122
|
init_is_browser();
|
|
2030
|
-
|
|
2123
|
+
VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
|
|
2031
2124
|
isBrowser4 = isBrowser3();
|
|
2032
2125
|
}
|
|
2033
2126
|
});
|
|
2034
2127
|
|
|
2035
|
-
// ../../node_modules/@probe.gl/env/dist/index.js
|
|
2128
|
+
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/index.js
|
|
2036
2129
|
var init_dist = __esm({
|
|
2037
|
-
"../../node_modules/@probe.gl/env/dist/index.js"() {
|
|
2130
|
+
"../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/index.js"() {
|
|
2038
2131
|
init_globals4();
|
|
2039
2132
|
init_globals3();
|
|
2040
2133
|
init_is_browser();
|
|
@@ -2364,7 +2457,7 @@
|
|
|
2364
2457
|
id: ""
|
|
2365
2458
|
};
|
|
2366
2459
|
_defineProperty(this, "id", void 0);
|
|
2367
|
-
_defineProperty(this, "VERSION",
|
|
2460
|
+
_defineProperty(this, "VERSION", VERSION5);
|
|
2368
2461
|
_defineProperty(this, "_startTs", getHiResTimestamp());
|
|
2369
2462
|
_defineProperty(this, "_deltaTs", getHiResTimestamp());
|
|
2370
2463
|
_defineProperty(this, "_storage", void 0);
|
|
@@ -2567,7 +2660,7 @@
|
|
|
2567
2660
|
return noop;
|
|
2568
2661
|
}
|
|
2569
2662
|
};
|
|
2570
|
-
_defineProperty(Log, "VERSION",
|
|
2663
|
+
_defineProperty(Log, "VERSION", VERSION5);
|
|
2571
2664
|
}
|
|
2572
2665
|
});
|
|
2573
2666
|
|
|
@@ -2875,8 +2968,9 @@
|
|
|
2875
2968
|
return loader;
|
|
2876
2969
|
}
|
|
2877
2970
|
function selectLoaderInternal(data, loaders, options, context) {
|
|
2878
|
-
const
|
|
2879
|
-
const
|
|
2971
|
+
const url = getResourceUrl(data);
|
|
2972
|
+
const type = getResourceMIMEType(data);
|
|
2973
|
+
const testUrl = stripQueryString(url) || context?.url;
|
|
2880
2974
|
let loader = null;
|
|
2881
2975
|
let reason = "";
|
|
2882
2976
|
if (options?.mimeType) {
|
|
@@ -2905,7 +2999,8 @@
|
|
|
2905
2999
|
return true;
|
|
2906
3000
|
}
|
|
2907
3001
|
function getNoValidLoaderMessage(data) {
|
|
2908
|
-
const
|
|
3002
|
+
const url = getResourceUrl(data);
|
|
3003
|
+
const type = getResourceMIMEType(data);
|
|
2909
3004
|
let message = "No valid loader found (";
|
|
2910
3005
|
message += url ? `${path_exports.filename(url)}, ` : "no url provided, ";
|
|
2911
3006
|
message += `MIME type: ${type ? `"${type}"` : "not provided"}, `;
|
|
@@ -3024,6 +3119,7 @@
|
|
|
3024
3119
|
init_resource_utils();
|
|
3025
3120
|
init_register_loaders();
|
|
3026
3121
|
init_is_type();
|
|
3122
|
+
init_url_utils();
|
|
3027
3123
|
EXT_PATTERN = /\.([^.]+)$/;
|
|
3028
3124
|
}
|
|
3029
3125
|
});
|
|
@@ -3236,18 +3332,25 @@
|
|
|
3236
3332
|
});
|
|
3237
3333
|
|
|
3238
3334
|
// ../core/src/lib/loader-utils/loader-context.ts
|
|
3239
|
-
function getLoaderContext(context, options,
|
|
3240
|
-
if (
|
|
3241
|
-
return
|
|
3335
|
+
function getLoaderContext(context, options, parentContext) {
|
|
3336
|
+
if (parentContext) {
|
|
3337
|
+
return parentContext;
|
|
3242
3338
|
}
|
|
3243
|
-
const
|
|
3339
|
+
const newContext = {
|
|
3244
3340
|
fetch: getFetchFunction(options, context),
|
|
3245
3341
|
...context
|
|
3246
3342
|
};
|
|
3247
|
-
if (
|
|
3248
|
-
|
|
3343
|
+
if (newContext.url) {
|
|
3344
|
+
const baseUrl = stripQueryString(newContext.url);
|
|
3345
|
+
newContext.baseUrl = baseUrl;
|
|
3346
|
+
newContext.queryString = extractQueryString(newContext.url);
|
|
3347
|
+
newContext.filename = path_exports.filename(baseUrl);
|
|
3348
|
+
newContext.baseUrl = path_exports.dirname(baseUrl);
|
|
3349
|
+
}
|
|
3350
|
+
if (!Array.isArray(newContext.loaders)) {
|
|
3351
|
+
newContext.loaders = null;
|
|
3249
3352
|
}
|
|
3250
|
-
return
|
|
3353
|
+
return newContext;
|
|
3251
3354
|
}
|
|
3252
3355
|
function getLoadersFromContext(loaders, context) {
|
|
3253
3356
|
if (!context && loaders && !Array.isArray(loaders)) {
|
|
@@ -3266,6 +3369,8 @@
|
|
|
3266
3369
|
var init_loader_context = __esm({
|
|
3267
3370
|
"../core/src/lib/loader-utils/loader-context.ts"() {
|
|
3268
3371
|
init_get_fetch_function();
|
|
3372
|
+
init_url_utils();
|
|
3373
|
+
init_src2();
|
|
3269
3374
|
}
|
|
3270
3375
|
});
|
|
3271
3376
|
|
|
@@ -3279,7 +3384,7 @@
|
|
|
3279
3384
|
}
|
|
3280
3385
|
data = await data;
|
|
3281
3386
|
options = options || {};
|
|
3282
|
-
const
|
|
3387
|
+
const url = getResourceUrl(data);
|
|
3283
3388
|
const typedLoaders = loaders;
|
|
3284
3389
|
const candidateLoaders = getLoadersFromContext(typedLoaders, context);
|
|
3285
3390
|
const loader = await selectLoader(data, candidateLoaders, options);
|
|
@@ -3287,7 +3392,7 @@
|
|
|
3287
3392
|
return null;
|
|
3288
3393
|
}
|
|
3289
3394
|
options = normalizeOptions(options, loader, candidateLoaders, url);
|
|
3290
|
-
context = getLoaderContext({ url, parse, loaders: candidateLoaders }, options, context);
|
|
3395
|
+
context = getLoaderContext({ url, parse, loaders: candidateLoaders }, options, context || null);
|
|
3291
3396
|
return await parseWithLoader(loader, data, options, context);
|
|
3292
3397
|
}
|
|
3293
3398
|
async function parseWithLoader(loader, data, options, context) {
|
|
@@ -6685,10 +6790,10 @@
|
|
|
6685
6790
|
});
|
|
6686
6791
|
|
|
6687
6792
|
// ../images/src/lib/utils/version.ts
|
|
6688
|
-
var
|
|
6793
|
+
var VERSION6;
|
|
6689
6794
|
var init_version2 = __esm({
|
|
6690
6795
|
"../images/src/lib/utils/version.ts"() {
|
|
6691
|
-
|
|
6796
|
+
VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
6692
6797
|
}
|
|
6693
6798
|
});
|
|
6694
6799
|
|
|
@@ -7137,7 +7242,7 @@
|
|
|
7137
7242
|
id: "image",
|
|
7138
7243
|
module: "images",
|
|
7139
7244
|
name: "Images",
|
|
7140
|
-
version:
|
|
7245
|
+
version: VERSION6,
|
|
7141
7246
|
mimeTypes: MIME_TYPES,
|
|
7142
7247
|
extensions: EXTENSIONS,
|
|
7143
7248
|
parse: parseImage,
|
|
@@ -7155,10 +7260,10 @@
|
|
|
7155
7260
|
});
|
|
7156
7261
|
|
|
7157
7262
|
// ../draco/src/lib/utils/version.ts
|
|
7158
|
-
var
|
|
7263
|
+
var VERSION7;
|
|
7159
7264
|
var init_version3 = __esm({
|
|
7160
7265
|
"../draco/src/lib/utils/version.ts"() {
|
|
7161
|
-
|
|
7266
|
+
VERSION7 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
7162
7267
|
}
|
|
7163
7268
|
});
|
|
7164
7269
|
|
|
@@ -7166,7 +7271,6 @@
|
|
|
7166
7271
|
var DEFAULT_DRACO_OPTIONS, DracoLoader;
|
|
7167
7272
|
var init_draco_loader = __esm({
|
|
7168
7273
|
"../draco/src/draco-loader.ts"() {
|
|
7169
|
-
init_src();
|
|
7170
7274
|
init_version3();
|
|
7171
7275
|
DEFAULT_DRACO_OPTIONS = {
|
|
7172
7276
|
draco: {
|
|
@@ -7178,9 +7282,9 @@
|
|
|
7178
7282
|
};
|
|
7179
7283
|
DracoLoader = {
|
|
7180
7284
|
name: "Draco",
|
|
7181
|
-
id:
|
|
7285
|
+
id: "draco",
|
|
7182
7286
|
module: "draco",
|
|
7183
|
-
version:
|
|
7287
|
+
version: VERSION7,
|
|
7184
7288
|
worker: true,
|
|
7185
7289
|
extensions: ["drc"],
|
|
7186
7290
|
mimeTypes: ["application/octet-stream"],
|
|
@@ -7758,10 +7862,10 @@
|
|
|
7758
7862
|
});
|
|
7759
7863
|
|
|
7760
7864
|
// ../textures/src/lib/utils/version.ts
|
|
7761
|
-
var
|
|
7865
|
+
var VERSION8;
|
|
7762
7866
|
var init_version4 = __esm({
|
|
7763
7867
|
"../textures/src/lib/utils/version.ts"() {
|
|
7764
|
-
|
|
7868
|
+
VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
7765
7869
|
}
|
|
7766
7870
|
});
|
|
7767
7871
|
|
|
@@ -7828,13 +7932,13 @@
|
|
|
7828
7932
|
});
|
|
7829
7933
|
});
|
|
7830
7934
|
}
|
|
7831
|
-
var
|
|
7935
|
+
var VERSION9, BASIS_CDN_ENCODER_WASM, BASIS_CDN_ENCODER_JS, loadBasisTranscoderPromise, loadBasisEncoderPromise;
|
|
7832
7936
|
var init_basis_module_loader = __esm({
|
|
7833
7937
|
"../textures/src/lib/parsers/basis-module-loader.ts"() {
|
|
7834
7938
|
init_src();
|
|
7835
|
-
|
|
7836
|
-
BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${
|
|
7837
|
-
BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${
|
|
7939
|
+
VERSION9 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
7940
|
+
BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION9}/dist/libs/basis_encoder.wasm`;
|
|
7941
|
+
BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION9}/dist/libs/basis_encoder.js`;
|
|
7838
7942
|
}
|
|
7839
7943
|
});
|
|
7840
7944
|
|
|
@@ -8395,14 +8499,13 @@
|
|
|
8395
8499
|
var BasisWorkerLoader, BasisLoader;
|
|
8396
8500
|
var init_basis_loader = __esm({
|
|
8397
8501
|
"../textures/src/basis-loader.ts"() {
|
|
8398
|
-
init_src();
|
|
8399
8502
|
init_version4();
|
|
8400
8503
|
init_parse_basis();
|
|
8401
8504
|
BasisWorkerLoader = {
|
|
8402
8505
|
name: "Basis",
|
|
8403
|
-
id:
|
|
8506
|
+
id: "basis",
|
|
8404
8507
|
module: "textures",
|
|
8405
|
-
version:
|
|
8508
|
+
version: VERSION8,
|
|
8406
8509
|
worker: true,
|
|
8407
8510
|
extensions: ["basis", "ktx2"],
|
|
8408
8511
|
mimeTypes: ["application/octet-stream", "image/ktx2"],
|
|
@@ -8745,7 +8848,7 @@
|
|
|
8745
8848
|
name: "Texture Containers",
|
|
8746
8849
|
id: "compressed-texture",
|
|
8747
8850
|
module: "textures",
|
|
8748
|
-
version:
|
|
8851
|
+
version: VERSION8,
|
|
8749
8852
|
worker: true,
|
|
8750
8853
|
extensions: [
|
|
8751
8854
|
"ktx",
|
|
@@ -8816,7 +8919,7 @@
|
|
|
8816
8919
|
}
|
|
8817
8920
|
return attributeUrls;
|
|
8818
8921
|
}
|
|
8819
|
-
var
|
|
8922
|
+
var init_url_utils2 = __esm({
|
|
8820
8923
|
"src/lib/utils/url-utils.ts"() {
|
|
8821
8924
|
}
|
|
8822
8925
|
});
|
|
@@ -8970,20 +9073,20 @@
|
|
|
8970
9073
|
}
|
|
8971
9074
|
return value;
|
|
8972
9075
|
}
|
|
8973
|
-
var
|
|
9076
|
+
var VERSION10, EMPTY_VALUE, REJECTED_STATUS, I3SAttributeLoader;
|
|
8974
9077
|
var init_i3s_attribute_loader = __esm({
|
|
8975
9078
|
"src/i3s-attribute-loader.ts"() {
|
|
8976
9079
|
init_src3();
|
|
8977
9080
|
init_parse_i3s_attribute();
|
|
8978
|
-
|
|
8979
|
-
|
|
9081
|
+
init_url_utils2();
|
|
9082
|
+
VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
8980
9083
|
EMPTY_VALUE = "";
|
|
8981
9084
|
REJECTED_STATUS = "rejected";
|
|
8982
9085
|
I3SAttributeLoader = {
|
|
8983
9086
|
name: "I3S Attribute",
|
|
8984
9087
|
id: "i3s-attribute",
|
|
8985
9088
|
module: "i3s",
|
|
8986
|
-
version:
|
|
9089
|
+
version: VERSION10,
|
|
8987
9090
|
mimeTypes: ["application/binary"],
|
|
8988
9091
|
parse: async (arrayBuffer, options) => parseI3STileAttribute(arrayBuffer, options),
|
|
8989
9092
|
extensions: ["bin"],
|
|
@@ -9056,7 +9159,7 @@
|
|
|
9056
9159
|
"src/lib/utils/customizeColors.ts"() {
|
|
9057
9160
|
init_src3();
|
|
9058
9161
|
init_i3s_attribute_loader();
|
|
9059
|
-
|
|
9162
|
+
init_url_utils2();
|
|
9060
9163
|
}
|
|
9061
9164
|
});
|
|
9062
9165
|
|
|
@@ -9442,7 +9545,7 @@
|
|
|
9442
9545
|
init_src6();
|
|
9443
9546
|
init_src7();
|
|
9444
9547
|
init_types();
|
|
9445
|
-
|
|
9548
|
+
init_url_utils2();
|
|
9446
9549
|
init_constants();
|
|
9447
9550
|
init_customizeColors();
|
|
9448
9551
|
scratchVector5 = new Vector3([0, 0, 0]);
|
|
@@ -9460,18 +9563,17 @@
|
|
|
9460
9563
|
}
|
|
9461
9564
|
return await parseI3STileContent(data, tileOptions, tilesetOptions, options, context);
|
|
9462
9565
|
}
|
|
9463
|
-
var
|
|
9566
|
+
var VERSION11, I3SContentLoader;
|
|
9464
9567
|
var init_i3s_content_loader = __esm({
|
|
9465
9568
|
"src/i3s-content-loader.ts"() {
|
|
9466
|
-
init_src();
|
|
9467
9569
|
init_parse_i3s_tile_content();
|
|
9468
|
-
|
|
9570
|
+
VERSION11 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
9469
9571
|
I3SContentLoader = {
|
|
9470
9572
|
name: "I3S Content (Indexed Scene Layers)",
|
|
9471
|
-
id:
|
|
9573
|
+
id: "i3s-content",
|
|
9472
9574
|
module: "i3s",
|
|
9473
9575
|
worker: true,
|
|
9474
|
-
version:
|
|
9576
|
+
version: VERSION11,
|
|
9475
9577
|
mimeTypes: ["application/octet-stream"],
|
|
9476
9578
|
parse: parse3,
|
|
9477
9579
|
extensions: ["bin"],
|
|
@@ -10071,15 +10173,15 @@
|
|
|
10071
10173
|
async function parseNodePage(data, options) {
|
|
10072
10174
|
return JSON.parse(new TextDecoder().decode(data));
|
|
10073
10175
|
}
|
|
10074
|
-
var
|
|
10176
|
+
var VERSION12, I3SNodePageLoader;
|
|
10075
10177
|
var init_i3s_node_page_loader = __esm({
|
|
10076
10178
|
"src/i3s-node-page-loader.ts"() {
|
|
10077
|
-
|
|
10179
|
+
VERSION12 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
10078
10180
|
I3SNodePageLoader = {
|
|
10079
10181
|
name: "I3S Node Page",
|
|
10080
10182
|
id: "i3s-node-page",
|
|
10081
10183
|
module: "i3s",
|
|
10082
|
-
version:
|
|
10184
|
+
version: VERSION12,
|
|
10083
10185
|
mimeTypes: ["application/json"],
|
|
10084
10186
|
parse: parseNodePage,
|
|
10085
10187
|
extensions: ["json"],
|
|
@@ -10096,7 +10198,7 @@
|
|
|
10096
10198
|
init_src7();
|
|
10097
10199
|
init_i3s_node_page_loader();
|
|
10098
10200
|
init_parse_i3s();
|
|
10099
|
-
|
|
10201
|
+
init_url_utils2();
|
|
10100
10202
|
I3SNodePagesTiles = class {
|
|
10101
10203
|
constructor(tileset, options) {
|
|
10102
10204
|
this.nodePages = [];
|
|
@@ -10348,7 +10450,7 @@
|
|
|
10348
10450
|
init_src3();
|
|
10349
10451
|
init_src8();
|
|
10350
10452
|
init_i3s_nodepages_tiles();
|
|
10351
|
-
|
|
10453
|
+
init_url_utils2();
|
|
10352
10454
|
}
|
|
10353
10455
|
});
|
|
10354
10456
|
|
|
@@ -10403,14 +10505,14 @@
|
|
|
10403
10505
|
}
|
|
10404
10506
|
return null;
|
|
10405
10507
|
}
|
|
10406
|
-
var
|
|
10508
|
+
var VERSION13, TILESET_REGEX, TILE_HEADER_REGEX, SLPK_HEX, POINT_CLOUD, I3SLoader;
|
|
10407
10509
|
var init_i3s_loader = __esm({
|
|
10408
10510
|
"src/i3s-loader.ts"() {
|
|
10409
10511
|
init_src3();
|
|
10410
10512
|
init_i3s_content_loader();
|
|
10411
10513
|
init_parse_i3s();
|
|
10412
10514
|
init_constants();
|
|
10413
|
-
|
|
10515
|
+
VERSION13 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
10414
10516
|
TILESET_REGEX = /layers\/[0-9]+$/;
|
|
10415
10517
|
TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
10416
10518
|
SLPK_HEX = "504b0304";
|
|
@@ -10419,7 +10521,7 @@
|
|
|
10419
10521
|
name: "I3S (Indexed Scene Layers)",
|
|
10420
10522
|
id: "i3s",
|
|
10421
10523
|
module: "i3s",
|
|
10422
|
-
version:
|
|
10524
|
+
version: VERSION13,
|
|
10423
10525
|
mimeTypes: ["application/octet-stream"],
|
|
10424
10526
|
parse: parseI3S,
|
|
10425
10527
|
extensions: ["bin"],
|
|
@@ -10443,6 +10545,459 @@
|
|
|
10443
10545
|
}
|
|
10444
10546
|
});
|
|
10445
10547
|
|
|
10548
|
+
// src/lib/parsers/parse-zip/cd-file-header.ts
|
|
10549
|
+
var parseZipCDFileHeader;
|
|
10550
|
+
var init_cd_file_header = __esm({
|
|
10551
|
+
"src/lib/parsers/parse-zip/cd-file-header.ts"() {
|
|
10552
|
+
parseZipCDFileHeader = (headerOffset, buffer) => {
|
|
10553
|
+
const offsets = {
|
|
10554
|
+
CD_COMPRESSED_SIZE_OFFSET: 20,
|
|
10555
|
+
CD_UNCOMPRESSED_SIZE_OFFSET: 24,
|
|
10556
|
+
CD_FILE_NAME_LENGTH_OFFSET: 28,
|
|
10557
|
+
CD_EXTRA_FIELD_LENGTH_OFFSET: 30,
|
|
10558
|
+
CD_LOCAL_HEADER_OFFSET_OFFSET: 42,
|
|
10559
|
+
CD_FILE_NAME_OFFSET: 46
|
|
10560
|
+
};
|
|
10561
|
+
const compressedSize = buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET, true);
|
|
10562
|
+
const uncompressedSize = buffer.getUint32(headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET, true);
|
|
10563
|
+
const fileNameLength = buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET, true);
|
|
10564
|
+
const fileName = buffer.buffer.slice(headerOffset + offsets.CD_FILE_NAME_OFFSET, headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength);
|
|
10565
|
+
const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength;
|
|
10566
|
+
const oldFormatOffset = buffer.getUint32(headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET, true);
|
|
10567
|
+
let fileDataOffset = oldFormatOffset;
|
|
10568
|
+
if (fileDataOffset === 4294967295) {
|
|
10569
|
+
let offsetInZip64Data = 4;
|
|
10570
|
+
if (compressedSize === 4294967295) {
|
|
10571
|
+
offsetInZip64Data += 8;
|
|
10572
|
+
}
|
|
10573
|
+
if (uncompressedSize === 4294967295) {
|
|
10574
|
+
offsetInZip64Data += 8;
|
|
10575
|
+
}
|
|
10576
|
+
fileDataOffset = buffer.getUint32(extraOffset + offsetInZip64Data, true);
|
|
10577
|
+
}
|
|
10578
|
+
const localHeaderOffset = fileDataOffset;
|
|
10579
|
+
return {
|
|
10580
|
+
compressedSize,
|
|
10581
|
+
uncompressedSize,
|
|
10582
|
+
fileNameLength,
|
|
10583
|
+
fileName,
|
|
10584
|
+
extraOffset,
|
|
10585
|
+
localHeaderOffset
|
|
10586
|
+
};
|
|
10587
|
+
};
|
|
10588
|
+
}
|
|
10589
|
+
});
|
|
10590
|
+
|
|
10591
|
+
// src/lib/parsers/parse-zip/local-file-header.ts
|
|
10592
|
+
var parseZipLocalFileHeader;
|
|
10593
|
+
var init_local_file_header = __esm({
|
|
10594
|
+
"src/lib/parsers/parse-zip/local-file-header.ts"() {
|
|
10595
|
+
parseZipLocalFileHeader = (headerOffset, buffer) => {
|
|
10596
|
+
const offsets = {
|
|
10597
|
+
COMPRESSED_SIZE_OFFSET: 18,
|
|
10598
|
+
FILE_NAME_LENGTH_OFFSET: 26,
|
|
10599
|
+
EXTRA_FIELD_LENGTH_OFFSET: 28,
|
|
10600
|
+
FILE_NAME_OFFSET: 30
|
|
10601
|
+
};
|
|
10602
|
+
const fileNameLength = buffer.getUint16(headerOffset + offsets.FILE_NAME_LENGTH_OFFSET, true);
|
|
10603
|
+
const extraFieldLength = buffer.getUint16(headerOffset + offsets.EXTRA_FIELD_LENGTH_OFFSET, true);
|
|
10604
|
+
const fileDataOffset = headerOffset + offsets.FILE_NAME_OFFSET + fileNameLength + extraFieldLength;
|
|
10605
|
+
const compressedSize = buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET, true);
|
|
10606
|
+
return {
|
|
10607
|
+
fileNameLength,
|
|
10608
|
+
extraFieldLength,
|
|
10609
|
+
fileDataOffset,
|
|
10610
|
+
compressedSize
|
|
10611
|
+
};
|
|
10612
|
+
};
|
|
10613
|
+
}
|
|
10614
|
+
});
|
|
10615
|
+
|
|
10616
|
+
// ../../node_modules/crypt/crypt.js
|
|
10617
|
+
var require_crypt = __commonJS({
|
|
10618
|
+
"../../node_modules/crypt/crypt.js"(exports, module) {
|
|
10619
|
+
(function() {
|
|
10620
|
+
var base64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", crypt = {
|
|
10621
|
+
rotl: function(n2, b) {
|
|
10622
|
+
return n2 << b | n2 >>> 32 - b;
|
|
10623
|
+
},
|
|
10624
|
+
rotr: function(n2, b) {
|
|
10625
|
+
return n2 << 32 - b | n2 >>> b;
|
|
10626
|
+
},
|
|
10627
|
+
endian: function(n2) {
|
|
10628
|
+
if (n2.constructor == Number) {
|
|
10629
|
+
return crypt.rotl(n2, 8) & 16711935 | crypt.rotl(n2, 24) & 4278255360;
|
|
10630
|
+
}
|
|
10631
|
+
for (var i2 = 0; i2 < n2.length; i2++)
|
|
10632
|
+
n2[i2] = crypt.endian(n2[i2]);
|
|
10633
|
+
return n2;
|
|
10634
|
+
},
|
|
10635
|
+
randomBytes: function(n2) {
|
|
10636
|
+
for (var bytes = []; n2 > 0; n2--)
|
|
10637
|
+
bytes.push(Math.floor(Math.random() * 256));
|
|
10638
|
+
return bytes;
|
|
10639
|
+
},
|
|
10640
|
+
bytesToWords: function(bytes) {
|
|
10641
|
+
for (var words = [], i2 = 0, b = 0; i2 < bytes.length; i2++, b += 8)
|
|
10642
|
+
words[b >>> 5] |= bytes[i2] << 24 - b % 32;
|
|
10643
|
+
return words;
|
|
10644
|
+
},
|
|
10645
|
+
wordsToBytes: function(words) {
|
|
10646
|
+
for (var bytes = [], b = 0; b < words.length * 32; b += 8)
|
|
10647
|
+
bytes.push(words[b >>> 5] >>> 24 - b % 32 & 255);
|
|
10648
|
+
return bytes;
|
|
10649
|
+
},
|
|
10650
|
+
bytesToHex: function(bytes) {
|
|
10651
|
+
for (var hex = [], i2 = 0; i2 < bytes.length; i2++) {
|
|
10652
|
+
hex.push((bytes[i2] >>> 4).toString(16));
|
|
10653
|
+
hex.push((bytes[i2] & 15).toString(16));
|
|
10654
|
+
}
|
|
10655
|
+
return hex.join("");
|
|
10656
|
+
},
|
|
10657
|
+
hexToBytes: function(hex) {
|
|
10658
|
+
for (var bytes = [], c2 = 0; c2 < hex.length; c2 += 2)
|
|
10659
|
+
bytes.push(parseInt(hex.substr(c2, 2), 16));
|
|
10660
|
+
return bytes;
|
|
10661
|
+
},
|
|
10662
|
+
bytesToBase64: function(bytes) {
|
|
10663
|
+
for (var base64 = [], i2 = 0; i2 < bytes.length; i2 += 3) {
|
|
10664
|
+
var triplet = bytes[i2] << 16 | bytes[i2 + 1] << 8 | bytes[i2 + 2];
|
|
10665
|
+
for (var j = 0; j < 4; j++)
|
|
10666
|
+
if (i2 * 8 + j * 6 <= bytes.length * 8)
|
|
10667
|
+
base64.push(base64map.charAt(triplet >>> 6 * (3 - j) & 63));
|
|
10668
|
+
else
|
|
10669
|
+
base64.push("=");
|
|
10670
|
+
}
|
|
10671
|
+
return base64.join("");
|
|
10672
|
+
},
|
|
10673
|
+
base64ToBytes: function(base64) {
|
|
10674
|
+
base64 = base64.replace(/[^A-Z0-9+\/]/ig, "");
|
|
10675
|
+
for (var bytes = [], i2 = 0, imod4 = 0; i2 < base64.length; imod4 = ++i2 % 4) {
|
|
10676
|
+
if (imod4 == 0)
|
|
10677
|
+
continue;
|
|
10678
|
+
bytes.push((base64map.indexOf(base64.charAt(i2 - 1)) & Math.pow(2, -2 * imod4 + 8) - 1) << imod4 * 2 | base64map.indexOf(base64.charAt(i2)) >>> 6 - imod4 * 2);
|
|
10679
|
+
}
|
|
10680
|
+
return bytes;
|
|
10681
|
+
}
|
|
10682
|
+
};
|
|
10683
|
+
module.exports = crypt;
|
|
10684
|
+
})();
|
|
10685
|
+
}
|
|
10686
|
+
});
|
|
10687
|
+
|
|
10688
|
+
// ../../node_modules/charenc/charenc.js
|
|
10689
|
+
var require_charenc = __commonJS({
|
|
10690
|
+
"../../node_modules/charenc/charenc.js"(exports, module) {
|
|
10691
|
+
var charenc = {
|
|
10692
|
+
utf8: {
|
|
10693
|
+
stringToBytes: function(str) {
|
|
10694
|
+
return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
|
|
10695
|
+
},
|
|
10696
|
+
bytesToString: function(bytes) {
|
|
10697
|
+
return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
|
|
10698
|
+
}
|
|
10699
|
+
},
|
|
10700
|
+
bin: {
|
|
10701
|
+
stringToBytes: function(str) {
|
|
10702
|
+
for (var bytes = [], i2 = 0; i2 < str.length; i2++)
|
|
10703
|
+
bytes.push(str.charCodeAt(i2) & 255);
|
|
10704
|
+
return bytes;
|
|
10705
|
+
},
|
|
10706
|
+
bytesToString: function(bytes) {
|
|
10707
|
+
for (var str = [], i2 = 0; i2 < bytes.length; i2++)
|
|
10708
|
+
str.push(String.fromCharCode(bytes[i2]));
|
|
10709
|
+
return str.join("");
|
|
10710
|
+
}
|
|
10711
|
+
}
|
|
10712
|
+
};
|
|
10713
|
+
module.exports = charenc;
|
|
10714
|
+
}
|
|
10715
|
+
});
|
|
10716
|
+
|
|
10717
|
+
// ../../node_modules/is-buffer/index.js
|
|
10718
|
+
var require_is_buffer = __commonJS({
|
|
10719
|
+
"../../node_modules/is-buffer/index.js"(exports, module) {
|
|
10720
|
+
module.exports = function(obj) {
|
|
10721
|
+
return obj != null && (isBuffer3(obj) || isSlowBuffer(obj) || !!obj._isBuffer);
|
|
10722
|
+
};
|
|
10723
|
+
function isBuffer3(obj) {
|
|
10724
|
+
return !!obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj);
|
|
10725
|
+
}
|
|
10726
|
+
function isSlowBuffer(obj) {
|
|
10727
|
+
return typeof obj.readFloatLE === "function" && typeof obj.slice === "function" && isBuffer3(obj.slice(0, 0));
|
|
10728
|
+
}
|
|
10729
|
+
}
|
|
10730
|
+
});
|
|
10731
|
+
|
|
10732
|
+
// ../../node_modules/md5/md5.js
|
|
10733
|
+
var require_md5 = __commonJS({
|
|
10734
|
+
"../../node_modules/md5/md5.js"(exports, module) {
|
|
10735
|
+
(function() {
|
|
10736
|
+
var crypt = require_crypt(), utf8 = require_charenc().utf8, isBuffer3 = require_is_buffer(), bin = require_charenc().bin, md52 = function(message, options) {
|
|
10737
|
+
if (message.constructor == String)
|
|
10738
|
+
if (options && options.encoding === "binary")
|
|
10739
|
+
message = bin.stringToBytes(message);
|
|
10740
|
+
else
|
|
10741
|
+
message = utf8.stringToBytes(message);
|
|
10742
|
+
else if (isBuffer3(message))
|
|
10743
|
+
message = Array.prototype.slice.call(message, 0);
|
|
10744
|
+
else if (!Array.isArray(message) && message.constructor !== Uint8Array)
|
|
10745
|
+
message = message.toString();
|
|
10746
|
+
var m = crypt.bytesToWords(message), l2 = message.length * 8, a2 = 1732584193, b = -271733879, c2 = -1732584194, d = 271733878;
|
|
10747
|
+
for (var i2 = 0; i2 < m.length; i2++) {
|
|
10748
|
+
m[i2] = (m[i2] << 8 | m[i2] >>> 24) & 16711935 | (m[i2] << 24 | m[i2] >>> 8) & 4278255360;
|
|
10749
|
+
}
|
|
10750
|
+
m[l2 >>> 5] |= 128 << l2 % 32;
|
|
10751
|
+
m[(l2 + 64 >>> 9 << 4) + 14] = l2;
|
|
10752
|
+
var FF = md52._ff, GG = md52._gg, HH = md52._hh, II = md52._ii;
|
|
10753
|
+
for (var i2 = 0; i2 < m.length; i2 += 16) {
|
|
10754
|
+
var aa = a2, bb = b, cc = c2, dd = d;
|
|
10755
|
+
a2 = FF(a2, b, c2, d, m[i2 + 0], 7, -680876936);
|
|
10756
|
+
d = FF(d, a2, b, c2, m[i2 + 1], 12, -389564586);
|
|
10757
|
+
c2 = FF(c2, d, a2, b, m[i2 + 2], 17, 606105819);
|
|
10758
|
+
b = FF(b, c2, d, a2, m[i2 + 3], 22, -1044525330);
|
|
10759
|
+
a2 = FF(a2, b, c2, d, m[i2 + 4], 7, -176418897);
|
|
10760
|
+
d = FF(d, a2, b, c2, m[i2 + 5], 12, 1200080426);
|
|
10761
|
+
c2 = FF(c2, d, a2, b, m[i2 + 6], 17, -1473231341);
|
|
10762
|
+
b = FF(b, c2, d, a2, m[i2 + 7], 22, -45705983);
|
|
10763
|
+
a2 = FF(a2, b, c2, d, m[i2 + 8], 7, 1770035416);
|
|
10764
|
+
d = FF(d, a2, b, c2, m[i2 + 9], 12, -1958414417);
|
|
10765
|
+
c2 = FF(c2, d, a2, b, m[i2 + 10], 17, -42063);
|
|
10766
|
+
b = FF(b, c2, d, a2, m[i2 + 11], 22, -1990404162);
|
|
10767
|
+
a2 = FF(a2, b, c2, d, m[i2 + 12], 7, 1804603682);
|
|
10768
|
+
d = FF(d, a2, b, c2, m[i2 + 13], 12, -40341101);
|
|
10769
|
+
c2 = FF(c2, d, a2, b, m[i2 + 14], 17, -1502002290);
|
|
10770
|
+
b = FF(b, c2, d, a2, m[i2 + 15], 22, 1236535329);
|
|
10771
|
+
a2 = GG(a2, b, c2, d, m[i2 + 1], 5, -165796510);
|
|
10772
|
+
d = GG(d, a2, b, c2, m[i2 + 6], 9, -1069501632);
|
|
10773
|
+
c2 = GG(c2, d, a2, b, m[i2 + 11], 14, 643717713);
|
|
10774
|
+
b = GG(b, c2, d, a2, m[i2 + 0], 20, -373897302);
|
|
10775
|
+
a2 = GG(a2, b, c2, d, m[i2 + 5], 5, -701558691);
|
|
10776
|
+
d = GG(d, a2, b, c2, m[i2 + 10], 9, 38016083);
|
|
10777
|
+
c2 = GG(c2, d, a2, b, m[i2 + 15], 14, -660478335);
|
|
10778
|
+
b = GG(b, c2, d, a2, m[i2 + 4], 20, -405537848);
|
|
10779
|
+
a2 = GG(a2, b, c2, d, m[i2 + 9], 5, 568446438);
|
|
10780
|
+
d = GG(d, a2, b, c2, m[i2 + 14], 9, -1019803690);
|
|
10781
|
+
c2 = GG(c2, d, a2, b, m[i2 + 3], 14, -187363961);
|
|
10782
|
+
b = GG(b, c2, d, a2, m[i2 + 8], 20, 1163531501);
|
|
10783
|
+
a2 = GG(a2, b, c2, d, m[i2 + 13], 5, -1444681467);
|
|
10784
|
+
d = GG(d, a2, b, c2, m[i2 + 2], 9, -51403784);
|
|
10785
|
+
c2 = GG(c2, d, a2, b, m[i2 + 7], 14, 1735328473);
|
|
10786
|
+
b = GG(b, c2, d, a2, m[i2 + 12], 20, -1926607734);
|
|
10787
|
+
a2 = HH(a2, b, c2, d, m[i2 + 5], 4, -378558);
|
|
10788
|
+
d = HH(d, a2, b, c2, m[i2 + 8], 11, -2022574463);
|
|
10789
|
+
c2 = HH(c2, d, a2, b, m[i2 + 11], 16, 1839030562);
|
|
10790
|
+
b = HH(b, c2, d, a2, m[i2 + 14], 23, -35309556);
|
|
10791
|
+
a2 = HH(a2, b, c2, d, m[i2 + 1], 4, -1530992060);
|
|
10792
|
+
d = HH(d, a2, b, c2, m[i2 + 4], 11, 1272893353);
|
|
10793
|
+
c2 = HH(c2, d, a2, b, m[i2 + 7], 16, -155497632);
|
|
10794
|
+
b = HH(b, c2, d, a2, m[i2 + 10], 23, -1094730640);
|
|
10795
|
+
a2 = HH(a2, b, c2, d, m[i2 + 13], 4, 681279174);
|
|
10796
|
+
d = HH(d, a2, b, c2, m[i2 + 0], 11, -358537222);
|
|
10797
|
+
c2 = HH(c2, d, a2, b, m[i2 + 3], 16, -722521979);
|
|
10798
|
+
b = HH(b, c2, d, a2, m[i2 + 6], 23, 76029189);
|
|
10799
|
+
a2 = HH(a2, b, c2, d, m[i2 + 9], 4, -640364487);
|
|
10800
|
+
d = HH(d, a2, b, c2, m[i2 + 12], 11, -421815835);
|
|
10801
|
+
c2 = HH(c2, d, a2, b, m[i2 + 15], 16, 530742520);
|
|
10802
|
+
b = HH(b, c2, d, a2, m[i2 + 2], 23, -995338651);
|
|
10803
|
+
a2 = II(a2, b, c2, d, m[i2 + 0], 6, -198630844);
|
|
10804
|
+
d = II(d, a2, b, c2, m[i2 + 7], 10, 1126891415);
|
|
10805
|
+
c2 = II(c2, d, a2, b, m[i2 + 14], 15, -1416354905);
|
|
10806
|
+
b = II(b, c2, d, a2, m[i2 + 5], 21, -57434055);
|
|
10807
|
+
a2 = II(a2, b, c2, d, m[i2 + 12], 6, 1700485571);
|
|
10808
|
+
d = II(d, a2, b, c2, m[i2 + 3], 10, -1894986606);
|
|
10809
|
+
c2 = II(c2, d, a2, b, m[i2 + 10], 15, -1051523);
|
|
10810
|
+
b = II(b, c2, d, a2, m[i2 + 1], 21, -2054922799);
|
|
10811
|
+
a2 = II(a2, b, c2, d, m[i2 + 8], 6, 1873313359);
|
|
10812
|
+
d = II(d, a2, b, c2, m[i2 + 15], 10, -30611744);
|
|
10813
|
+
c2 = II(c2, d, a2, b, m[i2 + 6], 15, -1560198380);
|
|
10814
|
+
b = II(b, c2, d, a2, m[i2 + 13], 21, 1309151649);
|
|
10815
|
+
a2 = II(a2, b, c2, d, m[i2 + 4], 6, -145523070);
|
|
10816
|
+
d = II(d, a2, b, c2, m[i2 + 11], 10, -1120210379);
|
|
10817
|
+
c2 = II(c2, d, a2, b, m[i2 + 2], 15, 718787259);
|
|
10818
|
+
b = II(b, c2, d, a2, m[i2 + 9], 21, -343485551);
|
|
10819
|
+
a2 = a2 + aa >>> 0;
|
|
10820
|
+
b = b + bb >>> 0;
|
|
10821
|
+
c2 = c2 + cc >>> 0;
|
|
10822
|
+
d = d + dd >>> 0;
|
|
10823
|
+
}
|
|
10824
|
+
return crypt.endian([a2, b, c2, d]);
|
|
10825
|
+
};
|
|
10826
|
+
md52._ff = function(a2, b, c2, d, x, s2, t2) {
|
|
10827
|
+
var n2 = a2 + (b & c2 | ~b & d) + (x >>> 0) + t2;
|
|
10828
|
+
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10829
|
+
};
|
|
10830
|
+
md52._gg = function(a2, b, c2, d, x, s2, t2) {
|
|
10831
|
+
var n2 = a2 + (b & d | c2 & ~d) + (x >>> 0) + t2;
|
|
10832
|
+
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10833
|
+
};
|
|
10834
|
+
md52._hh = function(a2, b, c2, d, x, s2, t2) {
|
|
10835
|
+
var n2 = a2 + (b ^ c2 ^ d) + (x >>> 0) + t2;
|
|
10836
|
+
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10837
|
+
};
|
|
10838
|
+
md52._ii = function(a2, b, c2, d, x, s2, t2) {
|
|
10839
|
+
var n2 = a2 + (c2 ^ (b | ~d)) + (x >>> 0) + t2;
|
|
10840
|
+
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10841
|
+
};
|
|
10842
|
+
md52._blocksize = 16;
|
|
10843
|
+
md52._digestsize = 16;
|
|
10844
|
+
module.exports = function(message, options) {
|
|
10845
|
+
if (message === void 0 || message === null)
|
|
10846
|
+
throw new Error("Illegal argument " + message);
|
|
10847
|
+
var digestbytes = crypt.wordsToBytes(md52(message, options));
|
|
10848
|
+
return options && options.asBytes ? digestbytes : options && options.asString ? bin.bytesToString(digestbytes) : crypt.bytesToHex(digestbytes);
|
|
10849
|
+
};
|
|
10850
|
+
})();
|
|
10851
|
+
}
|
|
10852
|
+
});
|
|
10853
|
+
|
|
10854
|
+
// ../compression/src/compression-worker.ts
|
|
10855
|
+
var VERSION14, CompressionWorker;
|
|
10856
|
+
var init_compression_worker = __esm({
|
|
10857
|
+
"../compression/src/compression-worker.ts"() {
|
|
10858
|
+
VERSION14 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
10859
|
+
CompressionWorker = {
|
|
10860
|
+
id: "compression",
|
|
10861
|
+
name: "compression",
|
|
10862
|
+
module: "compression",
|
|
10863
|
+
version: VERSION14,
|
|
10864
|
+
options: {}
|
|
10865
|
+
};
|
|
10866
|
+
}
|
|
10867
|
+
});
|
|
10868
|
+
|
|
10869
|
+
// ../compression/src/index.ts
|
|
10870
|
+
var init_src9 = __esm({
|
|
10871
|
+
"../compression/src/index.ts"() {
|
|
10872
|
+
init_compression_worker();
|
|
10873
|
+
}
|
|
10874
|
+
});
|
|
10875
|
+
|
|
10876
|
+
// src/lib/parsers/parse-slpk/slpk-archieve.ts
|
|
10877
|
+
var import_md5, SLPKArchive;
|
|
10878
|
+
var init_slpk_archieve = __esm({
|
|
10879
|
+
"src/lib/parsers/parse-slpk/slpk-archieve.ts"() {
|
|
10880
|
+
init_src();
|
|
10881
|
+
import_md5 = __toModule(require_md5());
|
|
10882
|
+
init_src9();
|
|
10883
|
+
init_local_file_header();
|
|
10884
|
+
SLPKArchive = class {
|
|
10885
|
+
constructor(slpkArchiveBuffer, hashFile) {
|
|
10886
|
+
this.slpkArchive = new DataView(slpkArchiveBuffer);
|
|
10887
|
+
this.hashArray = this.parseHashFile(hashFile);
|
|
10888
|
+
}
|
|
10889
|
+
parseHashFile(hashFile) {
|
|
10890
|
+
const hashFileBuffer = Buffer.from(hashFile);
|
|
10891
|
+
const hashArray = [];
|
|
10892
|
+
for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
|
|
10893
|
+
const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
|
|
10894
|
+
const offset = offsetBuffer.getUint32(offsetBuffer.byteOffset, true);
|
|
10895
|
+
hashArray.push({
|
|
10896
|
+
hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
|
|
10897
|
+
offset
|
|
10898
|
+
});
|
|
10899
|
+
}
|
|
10900
|
+
return hashArray;
|
|
10901
|
+
}
|
|
10902
|
+
async getFile(path, mode = "raw") {
|
|
10903
|
+
if (mode === "http") {
|
|
10904
|
+
throw new Error("http mode is not supported");
|
|
10905
|
+
}
|
|
10906
|
+
const fileToDecompress = this.getFileBytes(`${path}.gz`);
|
|
10907
|
+
if (fileToDecompress) {
|
|
10908
|
+
const decompressedData = await processOnWorker(CompressionWorker, fileToDecompress, {
|
|
10909
|
+
compression: "gzip",
|
|
10910
|
+
operation: "decompress",
|
|
10911
|
+
_workerType: "test",
|
|
10912
|
+
gzip: {}
|
|
10913
|
+
});
|
|
10914
|
+
return decompressedData;
|
|
10915
|
+
}
|
|
10916
|
+
const fileWithoutCompression = this.getFileBytes(path);
|
|
10917
|
+
if (fileWithoutCompression) {
|
|
10918
|
+
return Promise.resolve(Buffer.from(fileWithoutCompression));
|
|
10919
|
+
}
|
|
10920
|
+
throw new Error("No such file in the archieve");
|
|
10921
|
+
}
|
|
10922
|
+
getFileBytes(path) {
|
|
10923
|
+
const nameHash = Buffer.from((0, import_md5.default)(path), "hex");
|
|
10924
|
+
const fileInfo = this.hashArray.find((val) => Buffer.compare(val.hash, nameHash) === 0);
|
|
10925
|
+
if (!fileInfo) {
|
|
10926
|
+
return void 0;
|
|
10927
|
+
}
|
|
10928
|
+
const localFileHeader = parseZipLocalFileHeader(this.slpkArchive.byteOffset + fileInfo?.offset, this.slpkArchive);
|
|
10929
|
+
const compressedFile = this.slpkArchive.buffer.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
|
|
10930
|
+
return compressedFile;
|
|
10931
|
+
}
|
|
10932
|
+
};
|
|
10933
|
+
}
|
|
10934
|
+
});
|
|
10935
|
+
|
|
10936
|
+
// src/lib/parsers/parse-slpk/parse-slpk.ts
|
|
10937
|
+
async function parseSLPK(data, options = {}) {
|
|
10938
|
+
const archive = new DataView(data);
|
|
10939
|
+
const cdFileHeaderSignature = [80, 75, 1, 2];
|
|
10940
|
+
const searchWindow = [
|
|
10941
|
+
getByteAt(archive.byteLength - 1, archive),
|
|
10942
|
+
getByteAt(archive.byteLength - 2, archive),
|
|
10943
|
+
getByteAt(archive.byteLength - 3, archive),
|
|
10944
|
+
void 0
|
|
10945
|
+
];
|
|
10946
|
+
let hashCDOffset = 0;
|
|
10947
|
+
for (let i2 = archive.byteLength - 4; i2 > -1; i2--) {
|
|
10948
|
+
searchWindow[3] = searchWindow[2];
|
|
10949
|
+
searchWindow[2] = searchWindow[1];
|
|
10950
|
+
searchWindow[1] = searchWindow[0];
|
|
10951
|
+
searchWindow[0] = getByteAt(i2, archive);
|
|
10952
|
+
if (searchWindow.every((val, index) => val === cdFileHeaderSignature[index])) {
|
|
10953
|
+
hashCDOffset = i2;
|
|
10954
|
+
break;
|
|
10955
|
+
}
|
|
10956
|
+
}
|
|
10957
|
+
const cdFileHeader = parseZipCDFileHeader(hashCDOffset, archive);
|
|
10958
|
+
const textDecoder = new TextDecoder();
|
|
10959
|
+
if (textDecoder.decode(cdFileHeader.fileName) !== "@specialIndexFileHASH128@") {
|
|
10960
|
+
throw new Error("No hash file in slpk");
|
|
10961
|
+
}
|
|
10962
|
+
const localFileHeader = parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, archive);
|
|
10963
|
+
const fileDataOffset = localFileHeader.fileDataOffset;
|
|
10964
|
+
const hashFile = archive.buffer.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
|
|
10965
|
+
if (!hashFile) {
|
|
10966
|
+
throw new Error("No hash file in slpk");
|
|
10967
|
+
}
|
|
10968
|
+
return await new SLPKArchive(data, hashFile).getFile(options.path ?? "");
|
|
10969
|
+
}
|
|
10970
|
+
var getByteAt;
|
|
10971
|
+
var init_parse_slpk = __esm({
|
|
10972
|
+
"src/lib/parsers/parse-slpk/parse-slpk.ts"() {
|
|
10973
|
+
init_cd_file_header();
|
|
10974
|
+
init_local_file_header();
|
|
10975
|
+
init_slpk_archieve();
|
|
10976
|
+
getByteAt = (offset, buffer) => {
|
|
10977
|
+
return buffer.getUint8(buffer.byteOffset + offset);
|
|
10978
|
+
};
|
|
10979
|
+
}
|
|
10980
|
+
});
|
|
10981
|
+
|
|
10982
|
+
// src/i3s-slpk-loader.ts
|
|
10983
|
+
var VERSION15, SLPKLoader;
|
|
10984
|
+
var init_i3s_slpk_loader = __esm({
|
|
10985
|
+
"src/i3s-slpk-loader.ts"() {
|
|
10986
|
+
init_parse_slpk();
|
|
10987
|
+
VERSION15 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
10988
|
+
SLPKLoader = {
|
|
10989
|
+
name: "I3S SLPK (Scene Layer Package)",
|
|
10990
|
+
id: "slpk",
|
|
10991
|
+
module: "i3s",
|
|
10992
|
+
version: VERSION15,
|
|
10993
|
+
mimeTypes: ["application/octet-stream"],
|
|
10994
|
+
parse: parseSLPK,
|
|
10995
|
+
extensions: ["slpk"],
|
|
10996
|
+
options: {}
|
|
10997
|
+
};
|
|
10998
|
+
}
|
|
10999
|
+
});
|
|
11000
|
+
|
|
10446
11001
|
// src/lib/parsers/parse-i3s-building-scene-layer.ts
|
|
10447
11002
|
async function parseBuildingSceneLayer(data, url) {
|
|
10448
11003
|
const layer0 = JSON.parse(new TextDecoder().decode(data));
|
|
@@ -10487,16 +11042,16 @@
|
|
|
10487
11042
|
}
|
|
10488
11043
|
return parseBuildingSceneLayer(data, context.url);
|
|
10489
11044
|
}
|
|
10490
|
-
var
|
|
11045
|
+
var VERSION16, I3SBuildingSceneLayerLoader;
|
|
10491
11046
|
var init_i3s_building_scene_layer_loader = __esm({
|
|
10492
11047
|
"src/i3s-building-scene-layer-loader.ts"() {
|
|
10493
11048
|
init_parse_i3s_building_scene_layer();
|
|
10494
|
-
|
|
11049
|
+
VERSION16 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
10495
11050
|
I3SBuildingSceneLayerLoader = {
|
|
10496
11051
|
name: "I3S Building Scene Layer",
|
|
10497
11052
|
id: "i3s-building-scene-layer",
|
|
10498
11053
|
module: "i3s",
|
|
10499
|
-
version:
|
|
11054
|
+
version: VERSION16,
|
|
10500
11055
|
mimeTypes: ["application/json"],
|
|
10501
11056
|
parse: parse4,
|
|
10502
11057
|
extensions: ["json"],
|
|
@@ -10577,16 +11132,16 @@
|
|
|
10577
11132
|
async function parse5(data) {
|
|
10578
11133
|
return parseWebscene(data);
|
|
10579
11134
|
}
|
|
10580
|
-
var
|
|
11135
|
+
var VERSION17, ArcGisWebSceneLoader;
|
|
10581
11136
|
var init_arcgis_webscene_loader = __esm({
|
|
10582
11137
|
"src/arcgis-webscene-loader.ts"() {
|
|
10583
11138
|
init_parse_arcgis_webscene();
|
|
10584
|
-
|
|
11139
|
+
VERSION17 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
10585
11140
|
ArcGisWebSceneLoader = {
|
|
10586
11141
|
name: "ArcGIS Web Scene Loader",
|
|
10587
11142
|
id: "arcgis-web-scene",
|
|
10588
11143
|
module: "i3s",
|
|
10589
|
-
version:
|
|
11144
|
+
version: VERSION17,
|
|
10590
11145
|
mimeTypes: ["application/json"],
|
|
10591
11146
|
parse: parse5,
|
|
10592
11147
|
extensions: ["json"],
|
|
@@ -10605,16 +11160,18 @@
|
|
|
10605
11160
|
I3SContentLoader: () => I3SContentLoader,
|
|
10606
11161
|
I3SLoader: () => I3SLoader,
|
|
10607
11162
|
I3SNodePageLoader: () => I3SNodePageLoader,
|
|
11163
|
+
SLPKLoader: () => SLPKLoader,
|
|
10608
11164
|
loadFeatureAttributes: () => loadFeatureAttributes
|
|
10609
11165
|
});
|
|
10610
|
-
var
|
|
11166
|
+
var init_src10 = __esm({
|
|
10611
11167
|
"src/index.ts"() {
|
|
10612
11168
|
init_constants();
|
|
10613
11169
|
init_i3s_loader();
|
|
11170
|
+
init_i3s_slpk_loader();
|
|
10614
11171
|
init_i3s_content_loader();
|
|
10615
11172
|
init_i3s_attribute_loader();
|
|
10616
|
-
init_i3s_node_page_loader();
|
|
10617
11173
|
init_i3s_building_scene_layer_loader();
|
|
11174
|
+
init_i3s_node_page_loader();
|
|
10618
11175
|
init_arcgis_webscene_loader();
|
|
10619
11176
|
}
|
|
10620
11177
|
});
|
|
@@ -10622,10 +11179,16 @@
|
|
|
10622
11179
|
// src/bundle.ts
|
|
10623
11180
|
var require_bundle = __commonJS({
|
|
10624
11181
|
"src/bundle.ts"(exports, module) {
|
|
10625
|
-
var moduleExports = (
|
|
11182
|
+
var moduleExports = (init_src10(), src_exports);
|
|
10626
11183
|
globalThis.loaders = globalThis.loaders || {};
|
|
10627
11184
|
module.exports = Object.assign(globalThis.loaders, moduleExports);
|
|
10628
11185
|
}
|
|
10629
11186
|
});
|
|
10630
11187
|
require_bundle();
|
|
10631
11188
|
})();
|
|
11189
|
+
/*!
|
|
11190
|
+
* Determine if an object is a Buffer
|
|
11191
|
+
*
|
|
11192
|
+
* @author Feross Aboukhadijeh <https://feross.org>
|
|
11193
|
+
* @license MIT
|
|
11194
|
+
*/
|