@loaders.gl/3d-tiles 4.0.0 → 4.0.2

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.dev.js CHANGED
@@ -4409,14 +4409,14 @@ var __exports__ = (() => {
4409
4409
  return null;
4410
4410
  }
4411
4411
  async function loadAsArrayBuffer(url) {
4412
- if (!void 0 || url.startsWith("http")) {
4412
+ if (isBrowser2 || !void 0 || url.startsWith("http")) {
4413
4413
  const response = await fetch(url);
4414
4414
  return await response.arrayBuffer();
4415
4415
  }
4416
4416
  return await (void 0)(url);
4417
4417
  }
4418
4418
  async function loadAsText(url) {
4419
- if (!void 0 || url.startsWith("http")) {
4419
+ if (isBrowser2 || !void 0 || url.startsWith("http")) {
4420
4420
  const response = await fetch(url);
4421
4421
  return await response.text();
4422
4422
  }
@@ -18305,6 +18305,7 @@ var __exports__ = (() => {
18305
18305
  var CD_UNCOMPRESSED_SIZE_OFFSET = 24n;
18306
18306
  var CD_FILE_NAME_LENGTH_OFFSET = 28n;
18307
18307
  var CD_EXTRA_FIELD_LENGTH_OFFSET = 30n;
18308
+ var CD_START_DISK_OFFSET = 32n;
18308
18309
  var CD_LOCAL_HEADER_OFFSET_OFFSET = 42n;
18309
18310
  var CD_FILE_NAME_OFFSET = 46n;
18310
18311
  var signature = new Uint8Array([80, 75, 1, 2]);
@@ -18313,36 +18314,31 @@ var __exports__ = (() => {
18313
18314
  if (!compareArrayBuffers(magicBytes, signature.buffer)) {
18314
18315
  return null;
18315
18316
  }
18316
- let compressedSize = BigInt(await file.getUint32(headerOffset + CD_COMPRESSED_SIZE_OFFSET));
18317
- let uncompressedSize = BigInt(await file.getUint32(headerOffset + CD_UNCOMPRESSED_SIZE_OFFSET));
18317
+ const compressedSize = BigInt(await file.getUint32(headerOffset + CD_COMPRESSED_SIZE_OFFSET));
18318
+ const uncompressedSize = BigInt(await file.getUint32(headerOffset + CD_UNCOMPRESSED_SIZE_OFFSET));
18318
18319
  const extraFieldLength = await file.getUint16(headerOffset + CD_EXTRA_FIELD_LENGTH_OFFSET);
18320
+ const startDisk = BigInt(await file.getUint16(headerOffset + CD_START_DISK_OFFSET));
18319
18321
  const fileNameLength = await file.getUint16(headerOffset + CD_FILE_NAME_LENGTH_OFFSET);
18320
18322
  const filenameBytes = await file.slice(headerOffset + CD_FILE_NAME_OFFSET, headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength));
18321
18323
  const fileName = new TextDecoder().decode(filenameBytes);
18322
18324
  const extraOffset = headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
18323
18325
  const oldFormatOffset = await file.getUint32(headerOffset + CD_LOCAL_HEADER_OFFSET_OFFSET);
18324
- let fileDataOffset = BigInt(oldFormatOffset);
18325
- let offsetInZip64Data = 4n;
18326
- if (uncompressedSize === BigInt(4294967295)) {
18327
- uncompressedSize = await file.getBigUint64(extraOffset + offsetInZip64Data);
18328
- offsetInZip64Data += 8n;
18329
- }
18330
- if (compressedSize === BigInt(4294967295)) {
18331
- compressedSize = await file.getBigUint64(extraOffset + offsetInZip64Data);
18332
- offsetInZip64Data += 8n;
18333
- }
18334
- if (fileDataOffset === BigInt(4294967295)) {
18335
- fileDataOffset = await file.getBigUint64(extraOffset + offsetInZip64Data);
18336
- }
18337
- const localHeaderOffset = fileDataOffset;
18338
- return {
18339
- compressedSize,
18326
+ const localHeaderOffset = BigInt(oldFormatOffset);
18327
+ const extraField = new DataView(await file.slice(extraOffset, extraOffset + BigInt(extraFieldLength)));
18328
+ const zip64data = {
18340
18329
  uncompressedSize,
18330
+ compressedSize,
18331
+ localHeaderOffset,
18332
+ startDisk
18333
+ };
18334
+ const res = findZip64DataInExtra(zip64data, extraField);
18335
+ return {
18336
+ ...zip64data,
18337
+ ...res,
18341
18338
  extraFieldLength,
18342
18339
  fileNameLength,
18343
18340
  fileName,
18344
- extraOffset,
18345
- localHeaderOffset
18341
+ extraOffset
18346
18342
  };
18347
18343
  };
18348
18344
  async function* makeZipCDHeaderIterator(fileProvider) {
@@ -18355,6 +18351,52 @@ var __exports__ = (() => {
18355
18351
  cdHeader = await parseZipCDFileHeader(cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength), fileProvider);
18356
18352
  }
18357
18353
  }
18354
+ var getUint16 = (...bytes) => {
18355
+ return bytes[0] + bytes[1] * 16;
18356
+ };
18357
+ var findZip64DataInExtra = (zip64data, extraField) => {
18358
+ const zip64dataList = findExpectedData(zip64data);
18359
+ const zip64DataRes = {};
18360
+ if (zip64dataList.length > 0) {
18361
+ const zip64chunkSize = zip64dataList.reduce((sum, curr) => sum + curr.length, 0);
18362
+ const offsetInExtraData = new Uint8Array(extraField.buffer).findIndex((_val, i2, arr) => getUint16(arr[i2], arr[i2 + 1]) === 1 && getUint16(arr[i2 + 2], arr[i2 + 3]) === zip64chunkSize);
18363
+ let bytesRead = 0;
18364
+ for (const note of zip64dataList) {
18365
+ const offset = bytesRead;
18366
+ zip64DataRes[note.name] = extraField.getBigUint64(offsetInExtraData + 4 + offset, true);
18367
+ bytesRead = offset + note.length;
18368
+ }
18369
+ }
18370
+ return zip64DataRes;
18371
+ };
18372
+ var findExpectedData = (zip64data) => {
18373
+ const zip64dataList = [];
18374
+ if (zip64data.uncompressedSize === BigInt(4294967295)) {
18375
+ zip64dataList.push({
18376
+ name: "uncompressedSize",
18377
+ length: 8
18378
+ });
18379
+ }
18380
+ if (zip64data.compressedSize === BigInt(4294967295)) {
18381
+ zip64dataList.push({
18382
+ name: "compressedSize",
18383
+ length: 8
18384
+ });
18385
+ }
18386
+ if (zip64data.localHeaderOffset === BigInt(4294967295)) {
18387
+ zip64dataList.push({
18388
+ name: "localHeaderOffset",
18389
+ length: 8
18390
+ });
18391
+ }
18392
+ if (zip64data.startDisk === BigInt(4294967295)) {
18393
+ zip64dataList.push({
18394
+ name: "startDisk",
18395
+ length: 4
18396
+ });
18397
+ }
18398
+ return zip64dataList;
18399
+ };
18358
18400
 
18359
18401
  // ../zip/src/parse-zip/local-file-header.ts
18360
18402
  var COMPRESSION_METHOD_OFFSET = 8n;
@@ -19518,11 +19560,12 @@ var __exports__ = (() => {
19518
19560
  version: VERSION2,
19519
19561
  extensions: ["cmpt", "pnts", "b3dm", "i3dm"],
19520
19562
  mimeTypes: ["application/octet-stream"],
19521
- encodeSync,
19522
19563
  binary: true,
19523
19564
  options: {
19524
19565
  ["3d-tiles"]: {}
19525
- }
19566
+ },
19567
+ encode: async (tile, options) => encodeSync(tile, options),
19568
+ encodeSync
19526
19569
  };
19527
19570
  function encodeSync(tile, options) {
19528
19571
  return encode3DTile(tile, options);
package/dist/index.cjs CHANGED
@@ -2826,11 +2826,12 @@ var Tile3DWriter = {
2826
2826
  version: VERSION,
2827
2827
  extensions: ["cmpt", "pnts", "b3dm", "i3dm"],
2828
2828
  mimeTypes: ["application/octet-stream"],
2829
- encodeSync,
2830
2829
  binary: true,
2831
2830
  options: {
2832
2831
  ["3d-tiles"]: {}
2833
- }
2832
+ },
2833
+ encode: async (tile, options) => encodeSync(tile, options),
2834
+ encodeSync
2834
2835
  };
2835
2836
  function encodeSync(tile, options) {
2836
2837
  return encode3DTile(tile, options);
@@ -1 +1 @@
1
- {"version":3,"file":"tile-3d-writer.d.ts","sourceRoot":"","sources":["../src/tile-3d-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAIpE;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAY9D,CAAC"}
1
+ {"version":3,"file":"tile-3d-writer.d.ts","sourceRoot":"","sources":["../src/tile-3d-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAIpE;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAa9D,CAAC"}
@@ -7,11 +7,12 @@ export const Tile3DWriter = {
7
7
  version: VERSION,
8
8
  extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],
9
9
  mimeTypes: ['application/octet-stream'],
10
- encodeSync,
11
10
  binary: true,
12
11
  options: {
13
12
  ['3d-tiles']: {}
14
- }
13
+ },
14
+ encode: async (tile, options) => encodeSync(tile, options),
15
+ encodeSync
15
16
  };
16
17
  function encodeSync(tile, options) {
17
18
  return encode3DTile(tile, options);
@@ -1 +1 @@
1
- {"version":3,"file":"tile-3d-writer.js","names":["VERSION","encode3DTile","Tile3DWriter","name","id","module","version","extensions","mimeTypes","encodeSync","binary","options","tile"],"sources":["../src/tile-3d-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encode3DTile from './lib/encoders/encode-3d-tile';\n\n/**\n * Exporter for 3D Tiles\n */\nexport const Tile3DWriter: Writer<unknown, never, WriterOptions> = {\n name: '3D Tile',\n id: '3d-tiles',\n module: '3d-tiles',\n version: VERSION,\n extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],\n mimeTypes: ['application/octet-stream'],\n encodeSync,\n binary: true,\n options: {\n ['3d-tiles']: {}\n }\n};\n\nfunction encodeSync(tile, options) {\n return encode3DTile(tile, options);\n}\n"],"mappings":"SACQA,OAAO;AAAA,OACRC,YAAY;AAKnB,OAAO,MAAMC,YAAmD,GAAG;EACjEC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,UAAU;EACdC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5CC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,UAAU;EACVC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACP,CAAC,UAAU,GAAG,CAAC;EACjB;AACF,CAAC;AAED,SAASF,UAAUA,CAACG,IAAI,EAAED,OAAO,EAAE;EACjC,OAAOV,YAAY,CAACW,IAAI,EAAED,OAAO,CAAC;AACpC"}
1
+ {"version":3,"file":"tile-3d-writer.js","names":["VERSION","encode3DTile","Tile3DWriter","name","id","module","version","extensions","mimeTypes","binary","options","encode","tile","encodeSync"],"sources":["../src/tile-3d-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encode3DTile from './lib/encoders/encode-3d-tile';\n\n/**\n * Exporter for 3D Tiles\n */\nexport const Tile3DWriter: Writer<unknown, never, WriterOptions> = {\n name: '3D Tile',\n id: '3d-tiles',\n module: '3d-tiles',\n version: VERSION,\n extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n options: {\n ['3d-tiles']: {}\n },\n encode: async (tile, options) => encodeSync(tile, options),\n encodeSync\n};\n\nfunction encodeSync(tile, options) {\n return encode3DTile(tile, options);\n}\n"],"mappings":"SACQA,OAAO;AAAA,OACRC,YAAY;AAKnB,OAAO,MAAMC,YAAmD,GAAG;EACjEC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,UAAU;EACdC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5CC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACP,CAAC,UAAU,GAAG,CAAC;EACjB,CAAC;EACDC,MAAM,EAAE,MAAAA,CAAOC,IAAI,EAAEF,OAAO,KAAKG,UAAU,CAACD,IAAI,EAAEF,OAAO,CAAC;EAC1DG;AACF,CAAC;AAED,SAASA,UAAUA,CAACD,IAAI,EAAEF,OAAO,EAAE;EACjC,OAAOT,YAAY,CAACW,IAAI,EAAEF,OAAO,CAAC;AACpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/3d-tiles",
3
- "version": "4.0.0",
3
+ "version": "4.0.2",
4
4
  "description": "3D Tiles, an open standard for streaming massive heterogeneous 3D geospatial datasets.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -42,19 +42,19 @@
42
42
  "build-bundle": "ocular-bundle ./src/index.ts"
43
43
  },
44
44
  "dependencies": {
45
- "@loaders.gl/draco": "4.0.0",
46
- "@loaders.gl/gltf": "4.0.0",
47
- "@loaders.gl/loader-utils": "4.0.0",
48
- "@loaders.gl/math": "4.0.0",
49
- "@loaders.gl/tiles": "4.0.0",
50
- "@loaders.gl/zip": "4.0.0",
45
+ "@loaders.gl/draco": "4.0.2",
46
+ "@loaders.gl/gltf": "4.0.2",
47
+ "@loaders.gl/loader-utils": "4.0.2",
48
+ "@loaders.gl/math": "4.0.2",
49
+ "@loaders.gl/tiles": "4.0.2",
50
+ "@loaders.gl/zip": "4.0.2",
51
51
  "@math.gl/core": "^4.0.0",
52
52
  "@math.gl/geospatial": "^4.0.0",
53
53
  "@probe.gl/log": "^4.0.4",
54
54
  "long": "^5.2.1"
55
55
  },
56
56
  "peerDependencies": {
57
- "@loaders.gl/core": "4.0.0-beta.6"
57
+ "@loaders.gl/core": "^4.0.0"
58
58
  },
59
- "gitHead": "9b4211dc0ecd4134a1638ac0a29c5ea9008fd971"
59
+ "gitHead": "471058d109d5652f28c32c1f296fd632f9a5c806"
60
60
  }
@@ -12,11 +12,12 @@ export const Tile3DWriter: Writer<unknown, never, WriterOptions> = {
12
12
  version: VERSION,
13
13
  extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],
14
14
  mimeTypes: ['application/octet-stream'],
15
- encodeSync,
16
15
  binary: true,
17
16
  options: {
18
17
  ['3d-tiles']: {}
19
- }
18
+ },
19
+ encode: async (tile, options) => encodeSync(tile, options),
20
+ encodeSync
20
21
  };
21
22
 
22
23
  function encodeSync(tile, options) {