@loaders.gl/i3s 4.0.0-beta.2 → 4.0.0-beta.4
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/arcgis-webscene-loader.d.ts.map +1 -0
- package/dist/{esm/arcgis-webscene-loader.js → arcgis-webscene-loader.js} +2 -2
- package/dist/arcgis-webscene-loader.js.map +1 -0
- package/dist/dist.dev.js +14346 -0
- package/dist/i3s-attribute-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-attribute-loader.js → i3s-attribute-loader.js} +3 -3
- package/dist/i3s-attribute-loader.js.map +1 -0
- package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-building-scene-layer-loader.js → i3s-building-scene-layer-loader.js} +2 -2
- package/dist/i3s-building-scene-layer-loader.js.map +1 -0
- package/dist/i3s-content-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-content-loader.js → i3s-content-loader.js} +2 -2
- package/dist/i3s-content-loader.js.map +1 -0
- package/dist/i3s-content-worker-node.js +300 -155
- package/dist/i3s-content-worker-node.js.map +4 -4
- package/dist/i3s-content-worker.js +1343 -489
- package/dist/i3s-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-loader.js → i3s-loader.js} +8 -6
- package/dist/i3s-loader.js.map +1 -0
- package/dist/i3s-node-page-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-node-page-loader.js → i3s-node-page-loader.js} +1 -1
- package/dist/i3s-node-page-loader.js.map +1 -0
- package/dist/{src/i3s-slpk-loader.d.ts → i3s-slpk-loader.d.ts} +3 -1
- package/dist/i3s-slpk-loader.d.ts.map +1 -0
- package/dist/i3s-slpk-loader.js +19 -0
- package/dist/i3s-slpk-loader.js.map +1 -0
- package/dist/index.cjs +1597 -0
- package/dist/{src/index.d.ts → index.d.ts} +2 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/helpers/i3s-nodepages-tiles.js +16 -17
- package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
- package/dist/lib/parsers/constants.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/constants.js +2 -2
- package/dist/lib/parsers/constants.js.map +1 -0
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -0
- package/dist/lib/parsers/parse-arcgis-webscene.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s-attribute.js +1 -1
- package/dist/lib/parsers/parse-i3s-attribute.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s-building-scene-layer.js +1 -1
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s-tile-content.js +6 -5
- package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -0
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s.js +7 -7
- package/dist/lib/parsers/parse-i3s.js.map +1 -0
- package/dist/{src/lib → lib}/parsers/parse-slpk/parse-slpk.d.ts +1 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-slpk/parse-slpk.js +9 -11
- package/dist/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
- package/dist/{src/lib → lib}/parsers/parse-slpk/slpk-archieve.d.ts +10 -7
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-slpk/slpk-archieve.js +21 -21
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +1 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
- package/dist/lib/utils/customize-/321/201olors.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/customize-/321/201olors.js +2 -2
- package/dist/lib/utils/customize-/321/201olors.js.map +1 -0
- package/dist/{src/lib → lib}/utils/url-utils.d.ts +6 -0
- package/dist/lib/utils/url-utils.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/url-utils.js +11 -3
- package/dist/lib/utils/url-utils.js.map +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/workers/i3s-content-worker-node.d.ts.map +1 -0
- package/dist/{esm/workers → workers}/i3s-content-worker-node.js +1 -1
- package/dist/workers/i3s-content-worker-node.js.map +1 -0
- package/dist/workers/i3s-content-worker.d.ts.map +1 -0
- package/dist/workers/i3s-content-worker.js +4 -0
- package/dist/workers/i3s-content-worker.js.map +1 -0
- package/package.json +26 -18
- package/src/i3s-loader.ts +5 -2
- package/src/i3s-slpk-loader.ts +9 -18
- package/src/index.ts +3 -1
- package/src/lib/parsers/parse-i3s-tile-content.ts +2 -1
- package/src/lib/parsers/parse-i3s.ts +2 -2
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +13 -13
- package/src/lib/parsers/parse-slpk/slpk-archieve.ts +27 -19
- package/src/lib/utils/url-utils.ts +17 -0
- package/dist/dist.min.js +0 -15742
- package/dist/es5/arcgis-webscene-loader.js +0 -40
- package/dist/es5/arcgis-webscene-loader.js.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/i3s-attribute-loader.js +0 -195
- package/dist/es5/i3s-attribute-loader.js.map +0 -1
- package/dist/es5/i3s-building-scene-layer-loader.js +0 -46
- package/dist/es5/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/es5/i3s-content-loader.js +0 -56
- package/dist/es5/i3s-content-loader.js.map +0 -1
- package/dist/es5/i3s-loader.js +0 -193
- package/dist/es5/i3s-loader.js.map +0 -1
- package/dist/es5/i3s-node-page-loader.js +0 -41
- package/dist/es5/i3s-node-page-loader.js.map +0 -1
- package/dist/es5/i3s-slpk-loader.js +0 -48
- package/dist/es5/i3s-slpk-loader.js.map +0 -1
- package/dist/es5/index.js +0 -75
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +0 -316
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/es5/lib/parsers/constants.js +0 -71
- package/dist/es5/lib/parsers/constants.js.map +0 -1
- package/dist/es5/lib/parsers/parse-arcgis-webscene.js +0 -158
- package/dist/es5/lib/parsers/parse-arcgis-webscene.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-attribute.js +0 -76
- package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +0 -65
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js +0 -513
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s.js +0 -128
- package/dist/es5/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +0 -69
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +0 -1
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +0 -254
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +0 -1
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +0 -17
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/es5/lib/utils/customize-/321/201olors.js +0 -184
- package/dist/es5/lib/utils/customize-/321/201olors.js.map +0 -1
- package/dist/es5/lib/utils/url-utils.js +0 -33
- package/dist/es5/lib/utils/url-utils.js.map +0 -1
- package/dist/es5/types.js +0 -13
- package/dist/es5/types.js.map +0 -1
- package/dist/es5/workers/i3s-content-worker-node.js +0 -7
- package/dist/es5/workers/i3s-content-worker-node.js.map +0 -1
- package/dist/es5/workers/i3s-content-worker.js +0 -6
- package/dist/es5/workers/i3s-content-worker.js.map +0 -1
- package/dist/esm/arcgis-webscene-loader.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/i3s-attribute-loader.js.map +0 -1
- package/dist/esm/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/esm/i3s-content-loader.js.map +0 -1
- package/dist/esm/i3s-loader.js.map +0 -1
- package/dist/esm/i3s-node-page-loader.js.map +0 -1
- package/dist/esm/i3s-slpk-loader.js +0 -19
- package/dist/esm/i3s-slpk-loader.js.map +0 -1
- package/dist/esm/index.js +0 -10
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/esm/lib/parsers/constants.js.map +0 -1
- package/dist/esm/lib/parsers/parse-arcgis-webscene.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +0 -1
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +0 -1
- package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/esm/lib/utils/customize-/321/201olors.js.map +0 -1
- package/dist/esm/lib/utils/url-utils.js.map +0 -1
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/workers/i3s-content-worker-node.js.map +0 -1
- package/dist/esm/workers/i3s-content-worker.js +0 -4
- package/dist/esm/workers/i3s-content-worker.js.map +0 -1
- package/dist/src/arcgis-webscene-loader.d.ts.map +0 -1
- package/dist/src/bundle.d.ts +0 -2
- package/dist/src/bundle.d.ts.map +0 -1
- package/dist/src/i3s-attribute-loader.d.ts.map +0 -1
- package/dist/src/i3s-building-scene-layer-loader.d.ts.map +0 -1
- package/dist/src/i3s-content-loader.d.ts.map +0 -1
- package/dist/src/i3s-loader.d.ts.map +0 -1
- package/dist/src/i3s-node-page-loader.d.ts.map +0 -1
- package/dist/src/i3s-slpk-loader.d.ts.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/lib/helpers/i3s-nodepages-tiles.d.ts.map +0 -1
- package/dist/src/lib/parsers/constants.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-arcgis-webscene.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s-attribute.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s-tile-content.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-slpk/parse-slpk.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +0 -1
- package/dist/src/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +0 -1
- package/dist/src/lib/utils/customize-/321/201olors.d.ts.map +0 -1
- package/dist/src/lib/utils/url-utils.d.ts.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/workers/i3s-content-worker-node.d.ts.map +0 -1
- package/dist/src/workers/i3s-content-worker.d.ts.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/bundle.ts +0 -4
- /package/dist/{src/arcgis-webscene-loader.d.ts → arcgis-webscene-loader.d.ts} +0 -0
- /package/dist/{src/i3s-attribute-loader.d.ts → i3s-attribute-loader.d.ts} +0 -0
- /package/dist/{src/i3s-building-scene-layer-loader.d.ts → i3s-building-scene-layer-loader.d.ts} +0 -0
- /package/dist/{src/i3s-content-loader.d.ts → i3s-content-loader.d.ts} +0 -0
- /package/dist/{src/i3s-loader.d.ts → i3s-loader.d.ts} +0 -0
- /package/dist/{src/i3s-node-page-loader.d.ts → i3s-node-page-loader.d.ts} +0 -0
- /package/dist/{src/lib → lib}/helpers/i3s-nodepages-tiles.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/constants.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-arcgis-webscene.d.ts +0 -0
- /package/dist/{esm/lib → lib}/parsers/parse-arcgis-webscene.js +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s-attribute.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s-building-scene-layer.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s-tile-content.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s.d.ts +0 -0
- /package/dist/{src/lib → lib}/utils/convert-i3s-obb-to-mbs.d.ts +0 -0
- /package/dist/{esm/lib → lib}/utils/convert-i3s-obb-to-mbs.js +0 -0
- /package/dist/{src/lib → lib}/utils/customize-/321/201olors.d.ts" +0 -0
- /package/dist/{src/types.d.ts → types.d.ts} +0 -0
- /package/dist/{esm/types.js → types.js} +0 -0
- /package/dist/{src/workers → workers}/i3s-content-worker-node.d.ts +0 -0
- /package/dist/{src/workers → workers}/i3s-content-worker.d.ts +0 -0
|
@@ -4,9 +4,8 @@ import {
|
|
|
4
4
|
cdSignature as cdHeaderSignature,
|
|
5
5
|
parseZipLocalFileHeader,
|
|
6
6
|
searchFromTheEnd,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
generateHashInfo
|
|
7
|
+
parseHashTable,
|
|
8
|
+
makeHashTableFromZipHeaders
|
|
10
9
|
} from '@loaders.gl/zip';
|
|
11
10
|
import {SLPKArchive} from './slpk-archieve';
|
|
12
11
|
|
|
@@ -16,21 +15,22 @@ import {SLPKArchive} from './slpk-archieve';
|
|
|
16
15
|
* @param cb is called with information message during parsing
|
|
17
16
|
* @returns slpk file handler
|
|
18
17
|
*/
|
|
19
|
-
export
|
|
18
|
+
export async function parseSLPKArchive(
|
|
20
19
|
fileProvider: FileProvider,
|
|
21
20
|
cb?: (msg: string) => void
|
|
22
|
-
): Promise<SLPKArchive>
|
|
21
|
+
): Promise<SLPKArchive> {
|
|
23
22
|
const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);
|
|
24
23
|
|
|
25
24
|
const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);
|
|
26
25
|
|
|
27
|
-
let
|
|
26
|
+
let hashTable: Record<string, bigint>;
|
|
28
27
|
if (cdFileHeader?.fileName !== '@specialIndexFileHASH128@') {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
hashTable = await makeHashTableFromZipHeaders(fileProvider);
|
|
29
|
+
cb?.(
|
|
30
|
+
'SLPK doesnt contain hash file, hash info has been composed according to zip archive headers'
|
|
31
|
+
);
|
|
32
32
|
} else {
|
|
33
|
-
cb?.('SLPK contains hash file');
|
|
33
|
+
// cb?.('SLPK contains hash file');
|
|
34
34
|
const localFileHeader = await parseZipLocalFileHeader(
|
|
35
35
|
cdFileHeader.localHeaderOffset,
|
|
36
36
|
fileProvider
|
|
@@ -45,8 +45,8 @@ export const parseSLPK = async (
|
|
|
45
45
|
fileDataOffset + localFileHeader.compressedSize
|
|
46
46
|
);
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
hashTable = parseHashTable(hashFile);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
return new SLPKArchive(fileProvider,
|
|
52
|
-
}
|
|
51
|
+
return new SLPKArchive(fileProvider, hashTable);
|
|
52
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {MD5Hash} from '@loaders.gl/crypto';
|
|
2
2
|
import {FileProvider} from '@loaders.gl/loader-utils';
|
|
3
|
-
import {parseZipLocalFileHeader
|
|
3
|
+
import {parseZipLocalFileHeader} from '@loaders.gl/zip';
|
|
4
4
|
import {GZipCompression} from '@loaders.gl/compression';
|
|
5
5
|
|
|
6
6
|
/** Description of real paths for different file types */
|
|
@@ -43,11 +43,20 @@ const PATH_DESCRIPTIONS: {test: RegExp; extensions: string[]}[] = [
|
|
|
43
43
|
* Class for handling information about slpk file
|
|
44
44
|
*/
|
|
45
45
|
export class SLPKArchive {
|
|
46
|
+
/** A DataView representation of the archive */
|
|
46
47
|
private slpkArchive: FileProvider;
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
// Maps hex-encoded md5 filename hashes to bigint offsets into the archive
|
|
49
|
+
private hashTable: Record<string, bigint>;
|
|
50
|
+
/** Array of hashes and offsets into archive */
|
|
51
|
+
// hashToOffsetMap: Record<string, number>;
|
|
52
|
+
|
|
53
|
+
protected _textEncoder = new TextEncoder();
|
|
54
|
+
protected _textDecoder = new TextDecoder();
|
|
55
|
+
protected _md5Hash = new MD5Hash();
|
|
56
|
+
|
|
57
|
+
constructor(slpkArchive: FileProvider, hashTable: Record<string, bigint>) {
|
|
49
58
|
this.slpkArchive = slpkArchive;
|
|
50
|
-
this.
|
|
59
|
+
this.hashTable = hashTable;
|
|
51
60
|
}
|
|
52
61
|
|
|
53
62
|
/**
|
|
@@ -56,7 +65,7 @@ export class SLPKArchive {
|
|
|
56
65
|
* @param mode - currently only raw mode supported
|
|
57
66
|
* @returns buffer with ready to use file
|
|
58
67
|
*/
|
|
59
|
-
async getFile(path: string, mode: 'http' | 'raw' = 'raw'): Promise<
|
|
68
|
+
async getFile(path: string, mode: 'http' | 'raw' = 'raw'): Promise<ArrayBuffer> {
|
|
60
69
|
if (mode === 'http') {
|
|
61
70
|
const extensions = PATH_DESCRIPTIONS.find((val) => val.test.test(path))?.extensions;
|
|
62
71
|
if (extensions) {
|
|
@@ -68,22 +77,22 @@ export class SLPKArchive {
|
|
|
68
77
|
}
|
|
69
78
|
}
|
|
70
79
|
if (data) {
|
|
71
|
-
return
|
|
80
|
+
return data;
|
|
72
81
|
}
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
84
|
if (mode === 'raw') {
|
|
76
85
|
const decompressedFile = await this.getDataByPath(`${path}.gz`);
|
|
77
86
|
if (decompressedFile) {
|
|
78
|
-
return
|
|
87
|
+
return decompressedFile;
|
|
79
88
|
}
|
|
80
89
|
const fileWithoutCompression = await this.getFileBytes(path);
|
|
81
90
|
if (fileWithoutCompression) {
|
|
82
|
-
return
|
|
91
|
+
return fileWithoutCompression;
|
|
83
92
|
}
|
|
84
93
|
}
|
|
85
94
|
|
|
86
|
-
throw new Error(
|
|
95
|
+
throw new Error(`No such file in the archive: ${path}`);
|
|
87
96
|
}
|
|
88
97
|
|
|
89
98
|
/**
|
|
@@ -107,22 +116,24 @@ export class SLPKArchive {
|
|
|
107
116
|
const decompressedData = await compression.decompress(data);
|
|
108
117
|
return decompressedData;
|
|
109
118
|
}
|
|
110
|
-
return
|
|
119
|
+
return data;
|
|
111
120
|
}
|
|
112
121
|
|
|
113
122
|
/**
|
|
114
|
-
* Trying to get raw file data by
|
|
123
|
+
* Trying to get raw file data by address
|
|
115
124
|
* @param path - path inside the archive
|
|
116
125
|
* @returns buffer with the raw file data
|
|
117
126
|
*/
|
|
118
127
|
private async getFileBytes(path: string): Promise<ArrayBuffer | undefined> {
|
|
119
|
-
const
|
|
120
|
-
const
|
|
121
|
-
|
|
128
|
+
const binaryPath = this._textEncoder.encode(path);
|
|
129
|
+
const nameHash = await this._md5Hash.hash(binaryPath.buffer, 'hex');
|
|
130
|
+
|
|
131
|
+
const offset = this.hashTable[nameHash];
|
|
132
|
+
if (offset === undefined) {
|
|
122
133
|
return undefined;
|
|
123
134
|
}
|
|
124
135
|
|
|
125
|
-
const localFileHeader = await parseZipLocalFileHeader(
|
|
136
|
+
const localFileHeader = await parseZipLocalFileHeader(offset, this.slpkArchive);
|
|
126
137
|
if (!localFileHeader) {
|
|
127
138
|
return undefined;
|
|
128
139
|
}
|
|
@@ -134,7 +145,4 @@ export class SLPKArchive {
|
|
|
134
145
|
|
|
135
146
|
return compressedFile;
|
|
136
147
|
}
|
|
137
|
-
findBin(nameHash: Buffer) {
|
|
138
|
-
throw new Error('Method not implemented.');
|
|
139
|
-
}
|
|
140
148
|
}
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import {Node3DIndexDocument, SceneLayer3D} from '../../types';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Return URL seperated from search params
|
|
5
|
+
* @param url - URL that might have search params
|
|
6
|
+
* @returns url without search params
|
|
7
|
+
*/
|
|
8
|
+
export function getUrlWithoutParams(url: string): string {
|
|
9
|
+
let urlWithoutParams;
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
const urlObj = new URL(url);
|
|
13
|
+
urlWithoutParams = `${urlObj.origin}${urlObj.pathname}`;
|
|
14
|
+
} catch (e) {
|
|
15
|
+
// do nothing
|
|
16
|
+
}
|
|
17
|
+
return urlWithoutParams || url;
|
|
18
|
+
}
|
|
19
|
+
|
|
3
20
|
/**
|
|
4
21
|
* Generates url with token if it is exists.
|
|
5
22
|
* @param url
|