@loaders.gl/i3s 4.4.0-alpha.2 → 4.4.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +1 -1
  2. package/dist/arcgis-webscene-loader.js +2 -1
  3. package/dist/arcgis-webscene-loader.js.map +1 -0
  4. package/dist/dist.dev.js +402 -298
  5. package/dist/dist.min.js +1 -1
  6. package/dist/i3s-attribute-loader.js +2 -1
  7. package/dist/i3s-attribute-loader.js.map +1 -0
  8. package/dist/i3s-building-scene-layer-loader.js +2 -1
  9. package/dist/i3s-building-scene-layer-loader.js.map +1 -0
  10. package/dist/i3s-content-loader.js +2 -1
  11. package/dist/i3s-content-loader.js.map +1 -0
  12. package/dist/i3s-content-worker-node.js +45 -45
  13. package/dist/i3s-content-worker-node.js.map +4 -4
  14. package/dist/i3s-content-worker.js +396 -159
  15. package/dist/i3s-loader.d.ts +13 -8
  16. package/dist/i3s-loader.d.ts.map +1 -1
  17. package/dist/i3s-loader.js +8 -7
  18. package/dist/i3s-loader.js.map +1 -0
  19. package/dist/i3s-node-page-loader.js +2 -1
  20. package/dist/i3s-node-page-loader.js.map +1 -0
  21. package/dist/i3s-slpk-loader.d.ts +6 -1
  22. package/dist/i3s-slpk-loader.d.ts.map +1 -1
  23. package/dist/i3s-slpk-loader.js +10 -4
  24. package/dist/i3s-slpk-loader.js.map +1 -0
  25. package/dist/index.cjs +35 -27
  26. package/dist/index.cjs.map +4 -4
  27. package/dist/index.js +1 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/lib/helpers/i3s-nodepages-tiles.js +5 -4
  30. package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
  31. package/dist/lib/parsers/constants.js +1 -0
  32. package/dist/lib/parsers/constants.js.map +1 -0
  33. package/dist/lib/parsers/parse-arcgis-webscene.js +1 -0
  34. package/dist/lib/parsers/parse-arcgis-webscene.js.map +1 -0
  35. package/dist/lib/parsers/parse-i3s-attribute.js +1 -0
  36. package/dist/lib/parsers/parse-i3s-attribute.js.map +1 -0
  37. package/dist/lib/parsers/parse-i3s-building-scene-layer.js +1 -0
  38. package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
  39. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +2 -2
  40. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  41. package/dist/lib/parsers/parse-i3s-tile-content.js +1 -0
  42. package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -0
  43. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  44. package/dist/lib/parsers/parse-i3s.js +6 -4
  45. package/dist/lib/parsers/parse-i3s.js.map +1 -0
  46. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +3 -3
  47. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
  48. package/dist/lib/parsers/parse-slpk/parse-slpk.js +4 -3
  49. package/dist/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
  50. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +3 -3
  51. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-slpk/slpk-archieve.js +5 -4
  53. package/dist/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
  54. package/dist/lib/utils/convert-i3s-obb-to-mbs.js +1 -0
  55. package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
  56. package/dist/lib/utils/customize-colors.js +5 -2
  57. package/dist/lib/utils/customize-colors.js.map +1 -0
  58. package/dist/lib/utils/url-utils.js +1 -0
  59. package/dist/lib/utils/url-utils.js.map +1 -0
  60. package/dist/types.js +1 -0
  61. package/dist/types.js.map +1 -0
  62. package/dist/workers/i3s-content-worker-node.js +1 -0
  63. package/dist/workers/i3s-content-worker-node.js.map +1 -0
  64. package/dist/workers/i3s-content-worker.js +1 -0
  65. package/dist/workers/i3s-content-worker.js.map +1 -0
  66. package/package.json +18 -12
  67. package/src/i3s-loader.ts +15 -10
  68. package/src/i3s-slpk-loader.ts +8 -3
  69. package/src/lib/helpers/i3s-nodepages-tiles.ts +4 -4
  70. package/src/lib/parsers/parse-i3s-tile-content.ts +2 -2
  71. package/src/lib/parsers/parse-i3s.ts +7 -4
  72. package/src/lib/parsers/parse-slpk/parse-slpk.ts +7 -5
  73. package/src/lib/parsers/parse-slpk/slpk-archieve.ts +7 -10
  74. package/src/lib/utils/customize-colors.ts +4 -2
@@ -91,15 +91,18 @@ export async function normalizeTilesetData(tileset : SceneLayer3D, options : Loa
91
91
  nodePagesTile = new I3SNodePagesTiles(tileset, url, options);
92
92
  root = await nodePagesTile.formTileFromNodePages(0);
93
93
  } else {
94
- const parseOptions = options.i3s as I3SParseOptions;
94
+ const parseOptions =
95
+ (options.i3s && typeof options.i3s === 'object' ? options.i3s : {}) as I3SParseOptions;
95
96
  const rootNodeUrl = getUrlWithToken(`${url}/nodes/root`, parseOptions.token);
96
97
  // eslint-disable-next-line no-use-before-define
97
98
  root = await load(rootNodeUrl, I3SLoader, {
98
99
  ...options,
99
100
  i3s: {
100
- // @ts-expect-error options is not properly typed
101
- ...options.i3s,
102
- loadContent: false, isTileHeader: true, isTileset: false}
101
+ ...parseOptions,
102
+ loadContent: false,
103
+ isTileHeader: true,
104
+ isTileset: false
105
+ }
103
106
  });
104
107
  }
105
108
 
@@ -1,22 +1,23 @@
1
- import {FileProviderInterface} from '@loaders.gl/loader-utils';
1
+ import type {ReadableFile} from '@loaders.gl/loader-utils';
2
2
  import {
3
3
  parseZipCDFileHeader,
4
4
  CD_HEADER_SIGNATURE,
5
5
  parseZipLocalFileHeader,
6
6
  searchFromTheEnd,
7
7
  parseHashTable,
8
- makeHashTableFromZipHeaders
8
+ makeHashTableFromZipHeaders,
9
+ readRange
9
10
  } from '@loaders.gl/zip';
10
11
  import {SLPKArchive} from './slpk-archieve';
11
12
 
12
13
  /**
13
14
  * Creates slpk file handler from raw file
14
- * @param fileProvider raw file data
15
+ * @param fileProvider raw readable file data
15
16
  * @param cb is called with information message during parsing
16
17
  * @returns slpk file handler
17
18
  */
18
19
  export async function parseSLPKArchive(
19
- fileProvider: FileProviderInterface,
20
+ fileProvider: ReadableFile,
20
21
  cb?: (msg: string) => void,
21
22
  fileName?: string
22
23
  ): Promise<SLPKArchive> {
@@ -41,7 +42,8 @@ export async function parseSLPKArchive(
41
42
  }
42
43
 
43
44
  const fileDataOffset = localFileHeader.fileDataOffset;
44
- const hashFile = await fileProvider.slice(
45
+ const hashFile = await readRange(
46
+ fileProvider,
45
47
  fileDataOffset,
46
48
  fileDataOffset + localFileHeader.compressedSize
47
49
  );
@@ -1,6 +1,6 @@
1
1
  import {MD5Hash} from '@loaders.gl/crypto';
2
- import {FileProviderInterface} from '@loaders.gl/loader-utils';
3
- import {IndexedArchive, parseZipLocalFileHeader} from '@loaders.gl/zip';
2
+ import type {ReadableFile} from '@loaders.gl/loader-utils';
3
+ import {IndexedArchive, parseZipLocalFileHeader, readRange} from '@loaders.gl/zip';
4
4
  import {GZipCompression} from '@loaders.gl/compression';
5
5
 
6
6
  /** Description of real paths for different file types */
@@ -56,15 +56,11 @@ export class SLPKArchive extends IndexedArchive {
56
56
 
57
57
  /**
58
58
  * Constructor
59
- * @param fileProvider - instance of a binary data reader
59
+ * @param fileProvider - readable file handle for random access
60
60
  * @param hashTable - pre-loaded hashTable. If presented, getFile will skip reading the hash file
61
61
  * @param fileName - name of the archive. It is used to add to an URL of a loader context
62
62
  */
63
- constructor(
64
- fileProvider: FileProviderInterface,
65
- hashTable?: Record<string, bigint>,
66
- fileName?: string
67
- ) {
63
+ constructor(fileProvider: ReadableFile, hashTable?: Record<string, bigint>, fileName?: string) {
68
64
  super(fileProvider, hashTable, fileName);
69
65
  this.hashTable = hashTable;
70
66
  }
@@ -145,12 +141,13 @@ export class SLPKArchive extends IndexedArchive {
145
141
  return undefined;
146
142
  }
147
143
 
148
- const localFileHeader = await parseZipLocalFileHeader(offset, this.fileProvider);
144
+ const localFileHeader = await parseZipLocalFileHeader(offset, this.file);
149
145
  if (!localFileHeader) {
150
146
  return undefined;
151
147
  }
152
148
 
153
- compressedFile = await this.fileProvider.slice(
149
+ compressedFile = await readRange(
150
+ this.file,
154
151
  localFileHeader.fileDataOffset,
155
152
  localFileHeader.fileDataOffset + localFileHeader.compressedSize
156
153
  );
@@ -161,8 +161,10 @@ async function loadFeatureAttributeData(
161
161
  const objectIdAttributeUrl = getUrlWithToken(attributeUrls[attributeIndex], token);
162
162
  const attributeType = getAttributeValueType(attributeStorageInfo[attributeIndex]);
163
163
  const objectIdAttributeData = await load(objectIdAttributeUrl, I3SAttributeLoader, {
164
- attributeName,
165
- attributeType
164
+ i3s: {
165
+ attributeName,
166
+ attributeType
167
+ }
166
168
  });
167
169
 
168
170
  return objectIdAttributeData;