@loaders.gl/scene 5.0.0-beta.1 → 5.0.0-beta.10
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/DRACO-README.md +15 -0
- package/GLTF-README.md +1 -1
- package/OBJ-README.md +1 -1
- package/README.md +13 -2
- package/THIRD-PARTY-NOTICES.md +10 -1
- package/dist/dist.dev.js +21207 -14204
- package/dist/dist.min.js +32 -24
- package/dist/draco/bundled.cjs +34 -0
- package/dist/draco/bundled.cjs.map +7 -0
- package/dist/draco/bundled.d.ts +5 -0
- package/dist/draco/bundled.d.ts.map +1 -0
- package/dist/draco/bundled.js +6 -0
- package/dist/draco/bundled.js.map +1 -0
- package/dist/draco/draco-format.cjs +41 -0
- package/dist/draco/draco-format.cjs.map +7 -0
- package/dist/draco/draco-format.d.ts +15 -0
- package/dist/draco/draco-format.d.ts.map +1 -0
- package/dist/draco/draco-format.js +18 -0
- package/dist/draco/draco-format.js.map +1 -0
- package/dist/draco/draco-javascript-loader-with-parser.cjs +47 -0
- package/dist/draco/draco-javascript-loader-with-parser.cjs.map +7 -0
- package/dist/draco/draco-javascript-loader-with-parser.d.ts +36 -0
- package/dist/draco/draco-javascript-loader-with-parser.d.ts.map +1 -0
- package/dist/draco/draco-javascript-loader-with-parser.js +14 -0
- package/dist/draco/draco-javascript-loader-with-parser.js.map +1 -0
- package/dist/draco/draco-libraries.cjs +61 -0
- package/dist/draco/draco-libraries.cjs.map +7 -0
- package/dist/draco/draco-libraries.d.ts +28 -0
- package/dist/draco/draco-libraries.d.ts.map +1 -0
- package/dist/draco/draco-libraries.js +33 -0
- package/dist/draco/draco-libraries.js.map +1 -0
- package/dist/draco/draco-library-options.cjs +80 -0
- package/dist/draco/draco-library-options.cjs.map +7 -0
- package/dist/draco/draco-library-options.d.ts +16 -0
- package/dist/draco/draco-library-options.d.ts.map +1 -0
- package/dist/draco/draco-library-options.js +52 -0
- package/dist/draco/draco-library-options.js.map +1 -0
- package/dist/draco/draco-loader-options.cjs +37 -0
- package/dist/draco/draco-loader-options.cjs.map +7 -0
- package/dist/draco/draco-loader-options.d.ts +27 -0
- package/dist/draco/draco-loader-options.d.ts.map +1 -0
- package/dist/draco/draco-loader-options.js +12 -0
- package/dist/draco/draco-loader-options.js.map +1 -0
- package/dist/draco/draco-loader-types.cjs +87 -0
- package/dist/draco/draco-loader-types.cjs.map +7 -0
- package/dist/draco/draco-loader-types.d.ts +41 -0
- package/dist/draco/draco-loader-types.d.ts.map +1 -0
- package/dist/draco/draco-loader-types.js +54 -0
- package/dist/draco/draco-loader-types.js.map +1 -0
- package/dist/draco/draco-loader.cjs +51 -0
- package/dist/draco/draco-loader.cjs.map +7 -0
- package/dist/draco/draco-loader.d.ts +41 -0
- package/dist/draco/draco-loader.d.ts.map +1 -0
- package/dist/draco/draco-loader.js +22 -0
- package/dist/draco/draco-loader.js.map +1 -0
- package/dist/draco/draco-wasm-loader-with-parser.cjs +48 -0
- package/dist/draco/draco-wasm-loader-with-parser.cjs.map +7 -0
- package/dist/draco/draco-wasm-loader-with-parser.d.ts +36 -0
- package/dist/draco/draco-wasm-loader-with-parser.d.ts.map +1 -0
- package/dist/draco/draco-wasm-loader-with-parser.js +14 -0
- package/dist/draco/draco-wasm-loader-with-parser.js.map +1 -0
- package/dist/draco/draco-writer.cjs +183 -0
- package/dist/draco/draco-writer.cjs.map +7 -0
- package/dist/draco/draco-writer.d.ts +98 -0
- package/dist/draco/draco-writer.d.ts.map +1 -0
- package/dist/draco/draco-writer.js +166 -0
- package/dist/draco/draco-writer.js.map +1 -0
- package/dist/draco/draco3d/draco3d-types.cjs +76 -0
- package/dist/draco/draco3d/draco3d-types.cjs.map +7 -0
- package/dist/draco/draco3d/draco3d-types.d.ts +303 -0
- package/dist/draco/draco3d/draco3d-types.d.ts.map +1 -0
- package/dist/draco/draco3d/draco3d-types.js +47 -0
- package/dist/draco/draco3d/draco3d-types.js.map +1 -0
- package/dist/draco/draco3d-loader-with-parser.cjs +50 -0
- package/dist/draco/draco3d-loader-with-parser.cjs.map +7 -0
- package/dist/draco/draco3d-loader-with-parser.d.ts +36 -0
- package/dist/draco/draco3d-loader-with-parser.d.ts.map +1 -0
- package/dist/draco/draco3d-loader-with-parser.js +21 -0
- package/dist/draco/draco3d-loader-with-parser.js.map +1 -0
- package/dist/draco/index.cjs +51 -0
- package/dist/draco/index.cjs.map +7 -0
- package/dist/draco/index.d.ts +11 -0
- package/dist/draco/index.d.ts.map +1 -0
- package/dist/draco/index.js +10 -0
- package/dist/draco/index.js.map +1 -0
- package/dist/draco/lib/draco-builder.cjs +660 -0
- package/dist/draco/lib/draco-builder.cjs.map +7 -0
- package/dist/draco/lib/draco-builder.d.ts +175 -0
- package/dist/draco/lib/draco-builder.d.ts.map +1 -0
- package/dist/draco/lib/draco-builder.js +612 -0
- package/dist/draco/lib/draco-builder.js.map +1 -0
- package/dist/draco/lib/draco-library-loader.cjs +47 -0
- package/dist/draco/lib/draco-library-loader.cjs.map +7 -0
- package/dist/draco/lib/draco-library-loader.d.ts +5 -0
- package/dist/draco/lib/draco-library-loader.d.ts.map +1 -0
- package/dist/draco/lib/draco-library-loader.js +23 -0
- package/dist/draco/lib/draco-library-loader.js.map +1 -0
- package/dist/draco/lib/draco-module-loader.cjs +281 -0
- package/dist/draco/lib/draco-module-loader.cjs.map +7 -0
- package/dist/draco/lib/draco-module-loader.d.ts +25 -0
- package/dist/draco/lib/draco-module-loader.d.ts.map +1 -0
- package/dist/draco/lib/draco-module-loader.js +220 -0
- package/dist/draco/lib/draco-module-loader.js.map +1 -0
- package/dist/draco/lib/draco-parser.cjs +601 -0
- package/dist/draco/lib/draco-parser.cjs.map +7 -0
- package/dist/draco/lib/draco-parser.d.ts +143 -0
- package/dist/draco/lib/draco-parser.d.ts.map +1 -0
- package/dist/draco/lib/draco-parser.js +598 -0
- package/dist/draco/lib/draco-parser.js.map +1 -0
- package/dist/draco/lib/draco-types.cjs +19 -0
- package/dist/draco/lib/draco-types.cjs.map +7 -0
- package/dist/draco/lib/draco-types.d.ts +59 -0
- package/dist/draco/lib/draco-types.d.ts.map +1 -0
- package/dist/draco/lib/draco-types.js +5 -0
- package/dist/draco/lib/draco-types.js.map +1 -0
- package/dist/draco/lib/parse-draco.cjs +60 -0
- package/dist/draco/lib/parse-draco.cjs.map +7 -0
- package/dist/draco/lib/parse-draco.d.ts +22 -0
- package/dist/draco/lib/parse-draco.d.ts.map +1 -0
- package/dist/draco/lib/parse-draco.js +33 -0
- package/dist/draco/lib/parse-draco.js.map +1 -0
- package/dist/draco/lib/utils/get-draco-schema.cjs +74 -0
- package/dist/draco/lib/utils/get-draco-schema.cjs.map +7 -0
- package/dist/draco/lib/utils/get-draco-schema.d.ts +7 -0
- package/dist/draco/lib/utils/get-draco-schema.d.ts.map +1 -0
- package/dist/draco/lib/utils/get-draco-schema.js +45 -0
- package/dist/draco/lib/utils/get-draco-schema.js.map +1 -0
- package/dist/draco/lib/utils/version.cjs +31 -0
- package/dist/draco/lib/utils/version.cjs.map +7 -0
- package/dist/draco/lib/utils/version.d.ts +2 -0
- package/dist/draco/lib/utils/version.d.ts.map +1 -0
- package/dist/draco/lib/utils/version.js +8 -0
- package/dist/draco/lib/utils/version.js.map +1 -0
- package/dist/draco/unbundled.cjs +31 -0
- package/dist/draco/unbundled.cjs.map +7 -0
- package/dist/draco/unbundled.d.ts +3 -0
- package/dist/draco/unbundled.d.ts.map +1 -0
- package/dist/draco/unbundled.js +5 -0
- package/dist/draco/unbundled.js.map +1 -0
- package/dist/draco/workers/draco-worker-node.cjs +8 -0
- package/dist/draco/workers/draco-worker-node.cjs.map +7 -0
- package/dist/draco/workers/draco-worker-node.d.ts +2 -0
- package/dist/draco/workers/draco-worker-node.d.ts.map +1 -0
- package/dist/draco/workers/draco-worker-node.js +9 -0
- package/dist/draco/workers/draco-worker-node.js.map +1 -0
- package/dist/draco/workers/draco-worker.cjs +7 -0
- package/dist/draco/workers/draco-worker.cjs.map +7 -0
- package/dist/draco/workers/draco-worker.d.ts +2 -0
- package/dist/draco/workers/draco-worker.d.ts.map +1 -0
- package/dist/draco/workers/draco-worker.js +7 -0
- package/dist/draco/workers/draco-worker.js.map +1 -0
- package/dist/draco/workers/draco-writer-worker-node.cjs +11 -0
- package/dist/draco/workers/draco-writer-worker-node.cjs.map +7 -0
- package/dist/draco/workers/draco-writer-worker-node.d.cts +2 -0
- package/dist/draco/workers/draco-writer-worker-node.d.cts.map +1 -0
- package/dist/draco/workers/draco-writer-worker-node.d.ts +2 -0
- package/dist/draco/workers/draco-writer-worker-node.d.ts.map +1 -0
- package/dist/draco/workers/draco-writer-worker-node.js +9 -0
- package/dist/draco/workers/draco-writer-worker-node.js.map +1 -0
- package/dist/draco/workers/draco-writer-worker.cjs +10 -0
- package/dist/draco/workers/draco-writer-worker.cjs.map +7 -0
- package/dist/draco/workers/draco-writer-worker.d.ts +2 -0
- package/dist/draco/workers/draco-writer-worker.d.ts.map +1 -0
- package/dist/draco/workers/draco-writer-worker.js +7 -0
- package/dist/draco/workers/draco-writer-worker.js.map +1 -0
- package/dist/draco-javascript-loader.cjs +25 -0
- package/dist/draco-javascript-loader.cjs.map +7 -0
- package/dist/draco-javascript-loader.d.ts +2 -0
- package/dist/draco-javascript-loader.d.ts.map +1 -0
- package/dist/draco-javascript-loader.js +3 -0
- package/dist/draco-javascript-loader.js.map +1 -0
- package/dist/draco-library-options.cjs +36 -0
- package/dist/draco-library-options.cjs.map +7 -0
- package/dist/draco-library-options.d.ts +3 -0
- package/dist/draco-library-options.d.ts.map +1 -0
- package/dist/draco-library-options.js +4 -0
- package/dist/draco-library-options.js.map +1 -0
- package/dist/draco-loader-types.cjs +25 -0
- package/dist/draco-loader-types.cjs.map +7 -0
- package/dist/draco-loader-types.d.ts +2 -0
- package/dist/draco-loader-types.d.ts.map +1 -0
- package/dist/draco-loader-types.js +3 -0
- package/dist/draco-loader-types.js.map +1 -0
- package/dist/draco-loader.cjs +25 -0
- package/dist/draco-loader.cjs.map +7 -0
- package/dist/draco-loader.d.ts +2 -0
- package/dist/draco-loader.d.ts.map +1 -0
- package/dist/draco-loader.js +3 -0
- package/dist/draco-loader.js.map +1 -0
- package/dist/draco-wasm-loader.cjs +25 -0
- package/dist/draco-wasm-loader.cjs.map +7 -0
- package/dist/draco-wasm-loader.d.ts +2 -0
- package/dist/draco-wasm-loader.d.ts.map +1 -0
- package/dist/draco-wasm-loader.js +3 -0
- package/dist/draco-wasm-loader.js.map +1 -0
- package/dist/draco-worker-node.js +29842 -0
- package/dist/draco-worker-node.js.map +7 -0
- package/dist/draco-worker.js +19668 -0
- package/dist/draco-worker.js.map +7 -0
- package/dist/draco-writer-worker-node.cjs +30022 -0
- package/dist/draco-writer-worker-node.cjs.map +7 -0
- package/dist/draco-writer-worker.js +19767 -0
- package/dist/draco-writer-worker.js.map +7 -0
- package/dist/draco-writer.cjs +25 -0
- package/dist/draco-writer.cjs.map +7 -0
- package/dist/draco-writer.d.ts +2 -0
- package/dist/draco-writer.d.ts.map +1 -0
- package/dist/draco-writer.js +3 -0
- package/dist/draco-writer.js.map +1 -0
- package/dist/draco3d-loader.cjs +25 -0
- package/dist/draco3d-loader.cjs.map +7 -0
- package/dist/draco3d-loader.d.ts +2 -0
- package/dist/draco3d-loader.d.ts.map +1 -0
- package/dist/draco3d-loader.js +3 -0
- package/dist/draco3d-loader.js.map +1 -0
- package/dist/glb-loader-types.cjs +61 -0
- package/dist/glb-loader-types.cjs.map +7 -0
- package/dist/glb-loader-types.d.ts +2 -0
- package/dist/glb-loader-types.d.ts.map +1 -0
- package/dist/glb-loader-types.js +2 -0
- package/dist/glb-loader-types.js.map +1 -0
- package/dist/glb-loader.cjs +48 -0
- package/dist/glb-loader.cjs.map +7 -0
- package/dist/glb-loader.d.ts +2 -0
- package/dist/glb-loader.d.ts.map +1 -0
- package/dist/glb-loader.js +2 -0
- package/dist/glb-loader.js.map +1 -0
- package/dist/glb-writer.cjs +53 -0
- package/dist/glb-writer.cjs.map +7 -0
- package/dist/glb-writer.d.ts +2 -0
- package/dist/glb-writer.d.ts.map +1 -0
- package/dist/glb-writer.js +2 -0
- package/dist/glb-writer.js.map +1 -0
- package/dist/gltf/glb-loader-types.cjs +1 -1
- package/dist/gltf/glb-loader-types.cjs.map +2 -2
- package/dist/gltf/glb-loader-types.d.ts +2 -2
- package/dist/gltf/glb-loader-types.js +1 -1
- package/dist/gltf/glb-loader-types.js.map +1 -1
- package/dist/gltf/gltf-loader-types.cjs +1 -1
- package/dist/gltf/gltf-loader-types.cjs.map +2 -2
- package/dist/gltf/gltf-loader-types.d.ts +11 -5
- package/dist/gltf/gltf-loader-types.d.ts.map +1 -1
- package/dist/gltf/gltf-loader-types.js +1 -1
- package/dist/gltf/gltf-loader-types.js.map +1 -1
- package/dist/gltf/gltf-loader.cjs.map +1 -1
- package/dist/gltf/gltf-loader.d.ts +4 -4
- package/dist/gltf/gltf-loader.d.ts.map +1 -1
- package/dist/gltf/index.cjs +2 -0
- package/dist/gltf/index.cjs.map +2 -2
- package/dist/gltf/index.d.ts +2 -2
- package/dist/gltf/index.d.ts.map +1 -1
- package/dist/gltf/index.js +1 -1
- package/dist/gltf/index.js.map +1 -1
- package/dist/gltf/lib/api/gltf-extensions.cjs +7 -2
- package/dist/gltf/lib/api/gltf-extensions.cjs.map +2 -2
- package/dist/gltf/lib/api/gltf-extensions.d.ts.map +1 -1
- package/dist/gltf/lib/api/gltf-extensions.js +7 -5
- package/dist/gltf/lib/api/gltf-extensions.js.map +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +12 -2
- package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +2 -2
- package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.js +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -1
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs +1 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs.map +2 -2
- package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/EXT_texture_webp.js +3 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs +45 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts +6 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.js +20 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +2 -2
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +2 -2
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +1 -1
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +23 -7
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +2 -2
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts +2 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +21 -5
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -1
- package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs +64 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs.map +7 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts +12 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.js +39 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.js.map +1 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs +1 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs.map +2 -2
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js +3 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js.map +1 -1
- package/dist/gltf/lib/parsers/parse-gltf.cjs +34 -8
- package/dist/gltf/lib/parsers/parse-gltf.cjs.map +3 -3
- package/dist/gltf/lib/parsers/parse-gltf.d.ts +2 -0
- package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/gltf/lib/parsers/parse-gltf.js +26 -6
- package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs +22 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs.map +2 -2
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts +23 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.js +22 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.js.map +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-extension-schemas.cjs +8 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.cjs.map +2 -2
- package/dist/gltf/lib/types/gltf-extension-schemas.d.ts +27 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-extension-schemas.js +8 -1
- package/dist/gltf/lib/types/gltf-extension-schemas.js.map +1 -1
- package/dist/gltf/lib/types/gltf-json-schema.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-json-schema.d.ts +2 -2
- package/dist/gltf/lib/types/gltf-json-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-texture-procedurals.cjs +19 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts +45 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.js +5 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.js.map +1 -0
- package/dist/gltf/lib/types/gltf-types.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-types.d.ts +7 -0
- package/dist/gltf/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts +34 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-zod-schema.cjs +4 -1
- package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +2 -2
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts +57 -1
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-zod-schema.js +6 -2
- package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -1
- package/dist/gltf/lib/utils/version.cjs +1 -1
- package/dist/gltf/lib/utils/version.cjs.map +1 -1
- package/dist/gltf/lib/utils/version.js +1 -1
- package/dist/gltf/lib/utils/version.js.map +1 -1
- package/dist/gltf/schema.cjs +3 -0
- package/dist/gltf/schema.cjs.map +2 -2
- package/dist/gltf/schema.d.ts +1 -0
- package/dist/gltf/schema.d.ts.map +1 -1
- package/dist/gltf/schema.js +1 -0
- package/dist/gltf/schema.js.map +1 -1
- package/dist/gltf-loader-types.cjs +73 -0
- package/dist/gltf-loader-types.cjs.map +7 -0
- package/dist/gltf-loader-types.d.ts +2 -0
- package/dist/gltf-loader-types.d.ts.map +1 -0
- package/dist/gltf-loader-types.js +2 -0
- package/dist/gltf-loader-types.js.map +1 -0
- package/dist/gltf-loader.cjs +48 -0
- package/dist/gltf-loader.cjs.map +7 -0
- package/dist/gltf-loader.d.ts +2 -0
- package/dist/gltf-loader.d.ts.map +1 -0
- package/dist/gltf-loader.js +2 -0
- package/dist/gltf-loader.js.map +1 -0
- package/dist/gltf-source.cjs +238 -0
- package/dist/gltf-source.cjs.map +7 -0
- package/dist/gltf-source.d.ts +2 -0
- package/dist/gltf-source.d.ts.map +1 -0
- package/dist/gltf-source.js +2 -0
- package/dist/gltf-source.js.map +1 -0
- package/dist/gltf-writer.cjs +69 -0
- package/dist/gltf-writer.cjs.map +7 -0
- package/dist/gltf-writer.d.ts +2 -0
- package/dist/gltf-writer.d.ts.map +1 -0
- package/dist/gltf-writer.js +2 -0
- package/dist/gltf-writer.js.map +1 -0
- package/dist/index.cjs +18 -5
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/libs/DRACO-LICENSE +252 -0
- package/dist/libs/README.md +20 -0
- package/dist/libs/draco_decoder.js +34 -0
- package/dist/libs/draco_decoder.mjs +37 -0
- package/dist/libs/draco_decoder.wasm +0 -0
- package/dist/libs/draco_decoder_gltf.wasm +0 -0
- package/dist/libs/draco_encoder.js +98 -0
- package/dist/libs/draco_encoder.mjs +101 -0
- package/dist/libs/draco_encoder.wasm +0 -0
- package/dist/libs/draco_wasm_wrapper.js +117 -0
- package/dist/libs/draco_wasm_wrapper.mjs +120 -0
- package/dist/libs/draco_wasm_wrapper_gltf.js +116 -0
- package/dist/libs/draco_wasm_wrapper_gltf.mjs +119 -0
- package/dist/materialx/parse-materialx.cjs +61 -0
- package/dist/materialx/parse-materialx.cjs.map +7 -0
- package/dist/materialx/parse-materialx.d.ts +23 -0
- package/dist/materialx/parse-materialx.d.ts.map +1 -0
- package/dist/materialx/parse-materialx.js +39 -0
- package/dist/materialx/parse-materialx.js.map +1 -0
- package/dist/materialx/procedural-graph.cjs +77 -0
- package/dist/materialx/procedural-graph.cjs.map +7 -0
- package/dist/materialx/procedural-graph.d.ts +40 -0
- package/dist/materialx/procedural-graph.d.ts.map +1 -0
- package/dist/materialx/procedural-graph.js +59 -0
- package/dist/materialx/procedural-graph.js.map +1 -0
- package/dist/materialx-loader-types.cjs +57 -0
- package/dist/materialx-loader-types.cjs.map +7 -0
- package/dist/materialx-loader-types.d.ts +34 -0
- package/dist/materialx-loader-types.d.ts.map +1 -0
- package/dist/materialx-loader-types.js +20 -0
- package/dist/materialx-loader-types.js.map +1 -0
- package/dist/materialx-loader.cjs +40 -0
- package/dist/materialx-loader.cjs.map +7 -0
- package/dist/materialx-loader.d.ts +19 -0
- package/dist/materialx-loader.d.ts.map +1 -0
- package/dist/materialx-loader.js +14 -0
- package/dist/materialx-loader.js.map +1 -0
- package/dist/mtl-loader-types.cjs +61 -0
- package/dist/mtl-loader-types.cjs.map +7 -0
- package/dist/mtl-loader-types.d.ts +2 -0
- package/dist/mtl-loader-types.d.ts.map +1 -0
- package/dist/mtl-loader-types.js +2 -0
- package/dist/mtl-loader-types.js.map +1 -0
- package/dist/mtl-loader.cjs +47 -0
- package/dist/mtl-loader.cjs.map +7 -0
- package/dist/mtl-loader.d.ts +2 -0
- package/dist/mtl-loader.d.ts.map +1 -0
- package/dist/mtl-loader.js +2 -0
- package/dist/mtl-loader.js.map +1 -0
- package/dist/obj/bundled.cjs +2 -4
- package/dist/obj/bundled.cjs.map +2 -2
- package/dist/obj/bundled.d.ts +1 -1
- package/dist/obj/bundled.d.ts.map +1 -1
- package/dist/obj/bundled.js +1 -1
- package/dist/obj/bundled.js.map +1 -1
- package/dist/obj/index.cjs +0 -6
- package/dist/obj/index.cjs.map +3 -3
- package/dist/obj/index.d.ts +0 -4
- package/dist/obj/index.d.ts.map +1 -1
- package/dist/obj/index.js +0 -5
- package/dist/obj/index.js.map +1 -1
- package/dist/obj/mtl-loader-types.cjs +4 -7
- package/dist/obj/mtl-loader-types.cjs.map +2 -2
- package/dist/obj/mtl-loader-types.d.ts +2 -22
- package/dist/obj/mtl-loader-types.d.ts.map +1 -1
- package/dist/obj/mtl-loader-types.js +2 -4
- package/dist/obj/mtl-loader-types.js.map +1 -1
- package/dist/obj/mtl-loader.cjs +1 -1
- package/dist/obj/mtl-loader.cjs.map +2 -2
- package/dist/obj/mtl-loader.js +1 -1
- package/dist/obj/mtl-loader.js.map +1 -1
- package/dist/obj/obj-loader-types.cjs +9 -10
- package/dist/obj/obj-loader-types.cjs.map +2 -2
- package/dist/obj/obj-loader-types.d.ts +19 -39
- package/dist/obj/obj-loader-types.d.ts.map +1 -1
- package/dist/obj/obj-loader-types.js +6 -6
- package/dist/obj/obj-loader-types.js.map +1 -1
- package/dist/obj/obj-loader.cjs +63 -31
- package/dist/obj/obj-loader.cjs.map +3 -3
- package/dist/obj/obj-loader.d.ts +43 -9
- package/dist/obj/obj-loader.d.ts.map +1 -1
- package/dist/obj/obj-loader.js +61 -22
- package/dist/obj/obj-loader.js.map +1 -1
- package/dist/obj/obj-writer.cjs +3 -3
- package/dist/obj/obj-writer.cjs.map +2 -2
- package/dist/obj/obj-writer.d.ts +5 -4
- package/dist/obj/obj-writer.d.ts.map +1 -1
- package/dist/obj/obj-writer.js +4 -4
- package/dist/obj/obj-writer.js.map +1 -1
- package/dist/obj/unbundled.cjs +2 -6
- package/dist/obj/unbundled.cjs.map +2 -2
- package/dist/obj/unbundled.d.ts +2 -2
- package/dist/obj/unbundled.d.ts.map +1 -1
- package/dist/obj/unbundled.js +2 -2
- package/dist/obj/unbundled.js.map +1 -1
- package/dist/obj/workers/obj-worker.cjs +5 -5
- package/dist/obj/workers/obj-worker.cjs.map +2 -2
- package/dist/obj/workers/obj-worker.js +6 -6
- package/dist/obj/workers/obj-worker.js.map +1 -1
- package/dist/obj-loader-types.cjs +70 -0
- package/dist/obj-loader-types.cjs.map +7 -0
- package/dist/obj-loader-types.d.ts +2 -0
- package/dist/obj-loader-types.d.ts.map +1 -0
- package/dist/obj-loader-types.js +2 -0
- package/dist/obj-loader-types.js.map +1 -0
- package/dist/obj-loader.cjs +195 -0
- package/dist/obj-loader.cjs.map +7 -0
- package/dist/obj-loader.d.ts +2 -0
- package/dist/obj-loader.d.ts.map +1 -0
- package/dist/obj-loader.js +2 -0
- package/dist/obj-loader.js.map +1 -0
- package/dist/obj-worker.js +1420 -406
- package/dist/obj-writer.cjs +167 -0
- package/dist/obj-writer.cjs.map +7 -0
- package/dist/obj-writer.d.ts +2 -0
- package/dist/obj-writer.d.ts.map +1 -0
- package/dist/obj-writer.js +2 -0
- package/dist/obj-writer.js.map +1 -0
- package/dist/stl/parse-stl.cjs +100 -0
- package/dist/stl/parse-stl.cjs.map +7 -0
- package/dist/stl/parse-stl.d.ts +4 -0
- package/dist/stl/parse-stl.d.ts.map +1 -0
- package/dist/stl/parse-stl.js +84 -0
- package/dist/stl/parse-stl.js.map +1 -0
- package/dist/stl-loader-types.cjs +58 -0
- package/dist/stl-loader-types.cjs.map +7 -0
- package/dist/stl-loader-types.d.ts +32 -0
- package/dist/stl-loader-types.d.ts.map +1 -0
- package/dist/stl-loader-types.js +25 -0
- package/dist/stl-loader-types.js.map +1 -0
- package/dist/stl-loader.cjs +38 -0
- package/dist/stl-loader.cjs.map +7 -0
- package/dist/stl-loader.d.ts +17 -0
- package/dist/stl-loader.d.ts.map +1 -0
- package/dist/stl-loader.js +13 -0
- package/dist/stl-loader.js.map +1 -0
- package/dist/usd/index.cjs.map +1 -1
- package/dist/usd/index.d.ts +1 -1
- package/dist/usd/index.d.ts.map +1 -1
- package/dist/usd/lib/parse-usd.cjs +42 -5
- package/dist/usd/lib/parse-usd.cjs.map +2 -2
- package/dist/usd/lib/parse-usd.d.ts.map +1 -1
- package/dist/usd/lib/parse-usd.js +53 -6
- package/dist/usd/lib/parse-usd.js.map +1 -1
- package/dist/usd/lib/parse-usdc.cjs +187 -0
- package/dist/usd/lib/parse-usdc.cjs.map +7 -0
- package/dist/usd/lib/parse-usdc.d.ts +4 -0
- package/dist/usd/lib/parse-usdc.d.ts.map +1 -0
- package/dist/usd/lib/parse-usdc.js +176 -0
- package/dist/usd/lib/parse-usdc.js.map +1 -0
- package/dist/usd/lib/parse-usdz.cjs +22 -0
- package/dist/usd/lib/parse-usdz.cjs.map +2 -2
- package/dist/usd/lib/parse-usdz.d.ts.map +1 -1
- package/dist/usd/lib/parse-usdz.js +26 -0
- package/dist/usd/lib/parse-usdz.js.map +1 -1
- package/dist/usd/lib/usd-types.cjs.map +1 -1
- package/dist/usd/lib/usd-types.d.ts +14 -1
- package/dist/usd/lib/usd-types.d.ts.map +1 -1
- package/dist/usd/lib/usd-types.js +1 -1
- package/dist/usd/lib/usd-types.js.map +1 -1
- package/dist/usd/libs/README.md +27 -0
- package/dist/usd/libs/THREE-LICENSE +21 -0
- package/dist/usd/libs/usdc-parser.d.ts +78 -0
- package/dist/usd/libs/usdc-parser.d.ts.map +1 -0
- package/dist/usd/libs/usdc-parser.js +1669 -0
- package/dist/usd/libs/usdc-parser.js.map +1 -0
- package/dist/usd/usd-loader-types.cjs +5 -5
- package/dist/usd/usd-loader-types.cjs.map +2 -2
- package/dist/usd/usd-loader-types.d.ts +7 -7
- package/dist/usd/usd-loader-types.d.ts.map +1 -1
- package/dist/usd/usd-loader-types.js +7 -7
- package/dist/usd/usd-loader-types.js.map +1 -1
- package/dist/usd/usd-loader.cjs.map +1 -1
- package/dist/usd/usd-loader.d.ts +4 -4
- package/dist/usd/usd-loader.d.ts.map +1 -1
- package/dist/usd/usd-loader.js +2 -2
- package/dist/usd/usd-loader.js.map +1 -1
- package/dist/usd-loader-types.cjs +69 -0
- package/dist/usd-loader-types.cjs.map +7 -0
- package/dist/usd-loader-types.d.ts +2 -0
- package/dist/usd-loader-types.d.ts.map +1 -0
- package/dist/usd-loader-types.js +2 -0
- package/dist/usd-loader-types.js.map +1 -0
- package/dist/usd-loader.cjs +43 -0
- package/dist/usd-loader.cjs.map +7 -0
- package/dist/usd-loader.d.ts +2 -0
- package/dist/usd-loader.d.ts.map +1 -0
- package/dist/usd-loader.js +2 -0
- package/dist/usd-loader.js.map +1 -0
- package/package.json +144 -72
- package/src/draco/bundled.ts +9 -0
- package/src/draco/draco-format.ts +20 -0
- package/src/draco/draco-javascript-loader-with-parser.ts +30 -0
- package/src/draco/draco-libraries.ts +35 -0
- package/src/draco/draco-library-options.ts +76 -0
- package/src/draco/draco-loader-options.ts +33 -0
- package/src/draco/draco-loader-types.ts +77 -0
- package/src/draco/draco-loader.ts +45 -0
- package/src/draco/draco-wasm-loader-with-parser.ts +31 -0
- package/src/draco/draco-writer.ts +254 -0
- package/src/draco/draco3d/draco3d-types.ts +498 -0
- package/src/draco/draco3d-loader-with-parser.ts +34 -0
- package/src/draco/index.ts +42 -0
- package/src/draco/lib/draco-builder.ts +935 -0
- package/src/draco/lib/draco-library-loader.ts +38 -0
- package/src/draco/lib/draco-module-loader.ts +370 -0
- package/src/draco/lib/draco-parser.ts +779 -0
- package/src/draco/lib/draco-types.ts +72 -0
- package/src/draco/lib/parse-draco.ts +52 -0
- package/src/draco/lib/utils/get-draco-schema.ts +65 -0
- package/src/draco/lib/utils/version.ts +8 -0
- package/src/draco/libs/DRACO-LICENSE +252 -0
- package/src/draco/libs/README.md +20 -0
- package/src/draco/libs/draco_decoder.js +34 -0
- package/src/draco/libs/draco_decoder.wasm +0 -0
- package/src/draco/libs/draco_decoder_gltf.wasm +0 -0
- package/src/draco/libs/draco_encoder.js +98 -0
- package/src/draco/libs/draco_encoder.wasm +0 -0
- package/src/draco/libs/draco_wasm_wrapper.js +117 -0
- package/src/draco/libs/draco_wasm_wrapper_gltf.js +116 -0
- package/src/draco/unbundled.ts +6 -0
- package/src/draco/workers/draco-worker-node.ts +10 -0
- package/src/draco/workers/draco-worker.ts +8 -0
- package/src/draco/workers/draco-writer-worker-node.cjs +21 -0
- package/src/draco/workers/draco-writer-worker-node.ts +13 -0
- package/src/draco/workers/draco-writer-worker.ts +11 -0
- package/src/draco-javascript-loader.ts +2 -0
- package/src/draco-library-options.ts +6 -0
- package/src/draco-loader-types.ts +2 -0
- package/src/draco-loader.ts +2 -0
- package/src/draco-wasm-loader.ts +2 -0
- package/src/draco-writer.ts +2 -0
- package/src/draco3d-loader.ts +2 -0
- package/src/glb-loader-types.ts +1 -0
- package/src/glb-loader.ts +1 -0
- package/src/glb-writer.ts +1 -0
- package/src/gltf/glb-loader-types.ts +1 -1
- package/src/gltf/gltf-loader-types.ts +11 -5
- package/src/gltf/gltf-loader.ts +4 -4
- package/src/gltf/index.ts +4 -1
- package/src/gltf/lib/api/gltf-extensions.ts +7 -2
- package/src/gltf/lib/encoders/encode-gltf-draco.ts +2 -2
- package/src/gltf/lib/extensions/EXT_texture_webp.ts +3 -0
- package/src/gltf/lib/extensions/KHR_accessor_float64.ts +22 -0
- package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +2 -1
- package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +31 -7
- package/src/gltf/lib/extensions/MSFT_texture_dds.ts +52 -0
- package/src/gltf/lib/extensions/utils/3d-tiles-utils.ts +5 -1
- package/src/gltf/lib/parsers/parse-gltf.ts +38 -6
- package/src/gltf/lib/types/gltf-additional-extension-schemas.ts +32 -0
- package/src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts +1 -1
- package/src/gltf/lib/types/gltf-extension-schemas.ts +12 -0
- package/src/gltf/lib/types/gltf-json-schema.ts +2 -1
- package/src/gltf/lib/types/gltf-texture-procedurals.ts +67 -0
- package/src/gltf/lib/types/gltf-types.ts +8 -0
- package/src/gltf/lib/types/gltf-zod-schema.ts +7 -1
- package/src/gltf/schema.ts +1 -0
- package/src/gltf-loader-types.ts +1 -0
- package/src/gltf-loader.ts +1 -0
- package/src/gltf-source.ts +1 -0
- package/src/gltf-writer.ts +1 -0
- package/src/index.ts +13 -3
- package/src/materialx/README.md +5 -0
- package/src/materialx/parse-materialx.ts +70 -0
- package/src/materialx/procedural-graph.ts +94 -0
- package/src/materialx-loader-types.ts +24 -0
- package/src/materialx-loader.ts +15 -0
- package/src/mtl-loader-types.ts +1 -0
- package/src/mtl-loader.ts +1 -0
- package/src/obj/bundled.ts +1 -4
- package/src/obj/index.ts +0 -6
- package/src/obj/mtl-loader-types.ts +1 -4
- package/src/obj/mtl-loader.ts +1 -1
- package/src/obj/obj-loader-types.ts +11 -11
- package/src/obj/obj-loader.ts +87 -37
- package/src/obj/obj-writer.ts +12 -8
- package/src/obj/unbundled.ts +2 -2
- package/src/obj/workers/obj-worker.ts +6 -6
- package/src/obj-loader-types.ts +1 -0
- package/src/obj-loader.ts +1 -0
- package/src/obj-writer.ts +1 -0
- package/src/stl/parse-stl.ts +90 -0
- package/src/stl-loader-types.ts +28 -0
- package/src/stl-loader.ts +12 -0
- package/src/usd/index.ts +1 -0
- package/src/usd/lib/parse-usd.ts +68 -7
- package/src/usd/lib/parse-usdc.ts +188 -0
- package/src/usd/lib/parse-usdz.ts +28 -0
- package/src/usd/lib/usd-types.ts +16 -2
- package/src/usd/libs/README.md +27 -0
- package/src/usd/libs/THREE-LICENSE +21 -0
- package/src/usd/libs/usdc-parser.d.ts +18 -0
- package/src/usd/libs/usdc-parser.js +1669 -0
- package/src/usd/usd-loader-types.ts +6 -6
- package/src/usd/usd-loader.ts +2 -2
- package/src/usd-loader-types.ts +1 -0
- package/src/usd-loader.ts +1 -0
package/dist/obj-worker.js
CHANGED
|
@@ -15,29 +15,44 @@
|
|
|
15
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
//
|
|
18
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/lib/node/worker_threads-browser.js
|
|
19
19
|
var parentPort;
|
|
20
20
|
var init_worker_threads_browser = __esm({
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
parentPort = null;
|
|
21
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/lib/node/worker_threads-browser.js"() {
|
|
22
|
+
parentPort = globalThis.process?.getBuiltinModule?.("node:worker_threads")?.parentPort ?? null;
|
|
24
23
|
}
|
|
25
24
|
});
|
|
26
25
|
|
|
27
|
-
//
|
|
26
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-utils/get-transfer-list.js
|
|
28
27
|
function getTransferList(object, recursive = true, transfers) {
|
|
29
28
|
const transfersSet = transfers || /* @__PURE__ */ new Set();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
29
|
+
const seen = /* @__PURE__ */ new Set();
|
|
30
|
+
function visit(value) {
|
|
31
|
+
if (!value || typeof value !== "object" || seen.has(value))
|
|
32
|
+
return;
|
|
33
|
+
seen.add(value);
|
|
34
|
+
if (isTransferable(value))
|
|
35
|
+
transfersSet.add(value);
|
|
36
|
+
else if (ArrayBuffer.isView(value)) {
|
|
37
|
+
if (isTransferable(value.buffer))
|
|
38
|
+
transfersSet.add(value.buffer);
|
|
39
|
+
} else if (recursive && typeof MessageChannel !== "undefined" && value instanceof MessageChannel) {
|
|
40
|
+
visit(value.port1);
|
|
41
|
+
visit(value.port2);
|
|
42
|
+
} else if (recursive && value instanceof Map) {
|
|
43
|
+
for (const [key, item] of value) {
|
|
44
|
+
visit(key);
|
|
45
|
+
visit(item);
|
|
46
|
+
}
|
|
47
|
+
} else if (recursive && value instanceof Set) {
|
|
48
|
+
for (const item of value)
|
|
49
|
+
visit(item);
|
|
50
|
+
} else if (recursive) {
|
|
51
|
+
for (const key of Object.keys(value))
|
|
52
|
+
visit(value[key]);
|
|
39
53
|
}
|
|
40
54
|
}
|
|
55
|
+
visit(object);
|
|
41
56
|
return transfers === void 0 ? Array.from(transfersSet) : [];
|
|
42
57
|
}
|
|
43
58
|
function isTransferable(object) {
|
|
@@ -59,12 +74,11 @@
|
|
|
59
74
|
return false;
|
|
60
75
|
}
|
|
61
76
|
var init_get_transfer_list = __esm({
|
|
62
|
-
"
|
|
63
|
-
"use strict";
|
|
77
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-utils/get-transfer-list.js"() {
|
|
64
78
|
}
|
|
65
79
|
});
|
|
66
80
|
|
|
67
|
-
//
|
|
81
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-farm/worker-body.js
|
|
68
82
|
async function getParentPort() {
|
|
69
83
|
return parentPort;
|
|
70
84
|
}
|
|
@@ -77,31 +91,31 @@
|
|
|
77
91
|
}
|
|
78
92
|
var onMessageWrapperMap, WorkerBody;
|
|
79
93
|
var init_worker_body = __esm({
|
|
80
|
-
"
|
|
81
|
-
"use strict";
|
|
94
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-farm/worker-body.js"() {
|
|
82
95
|
init_get_transfer_list();
|
|
83
96
|
init_worker_threads_browser();
|
|
84
97
|
onMessageWrapperMap = /* @__PURE__ */ new Map();
|
|
85
98
|
WorkerBody = class {
|
|
86
99
|
/** Check that we are actually in a worker thread */
|
|
87
100
|
static async inWorkerThread() {
|
|
88
|
-
|
|
101
|
+
const workerGlobalScope = globalThis.WorkerGlobalScope;
|
|
102
|
+
return typeof workerGlobalScope === "function" && globalThis instanceof workerGlobalScope || Boolean(await getParentPort());
|
|
89
103
|
}
|
|
90
104
|
/*
|
|
91
105
|
* (type: WorkerMessageType, payload: WorkerMessagePayload) => any
|
|
92
106
|
*/
|
|
93
107
|
static set onmessage(onMessage) {
|
|
94
108
|
async function handleMessage(message) {
|
|
95
|
-
const
|
|
96
|
-
const { type, payload } =
|
|
109
|
+
const parentPort3 = await getParentPort();
|
|
110
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
97
111
|
onMessage(type, payload);
|
|
98
112
|
}
|
|
99
|
-
getParentPort().then((
|
|
100
|
-
if (
|
|
101
|
-
|
|
113
|
+
getParentPort().then((parentPort3) => {
|
|
114
|
+
if (parentPort3) {
|
|
115
|
+
parentPort3.on("message", (message) => {
|
|
102
116
|
handleMessage(message);
|
|
103
117
|
});
|
|
104
|
-
|
|
118
|
+
parentPort3.on("exit", () => console.debug("Node worker closing"));
|
|
105
119
|
} else {
|
|
106
120
|
globalThis.onmessage = handleMessage;
|
|
107
121
|
}
|
|
@@ -119,9 +133,9 @@
|
|
|
119
133
|
};
|
|
120
134
|
onMessageWrapperMap.set(onMessage, onMessageWrapper);
|
|
121
135
|
}
|
|
122
|
-
const
|
|
123
|
-
if (
|
|
124
|
-
|
|
136
|
+
const parentPort3 = await getParentPort();
|
|
137
|
+
if (parentPort3) {
|
|
138
|
+
parentPort3.on("message", onMessageWrapper);
|
|
125
139
|
} else {
|
|
126
140
|
globalThis.addEventListener("message", onMessageWrapper);
|
|
127
141
|
}
|
|
@@ -132,9 +146,9 @@
|
|
|
132
146
|
if (!onMessageWrapper) {
|
|
133
147
|
return;
|
|
134
148
|
}
|
|
135
|
-
const
|
|
136
|
-
if (
|
|
137
|
-
|
|
149
|
+
const parentPort3 = await getParentPort();
|
|
150
|
+
if (parentPort3) {
|
|
151
|
+
parentPort3.off("message", onMessageWrapper);
|
|
138
152
|
} else {
|
|
139
153
|
globalThis.removeEventListener("message", onMessageWrapper);
|
|
140
154
|
}
|
|
@@ -144,12 +158,12 @@
|
|
|
144
158
|
* @param type
|
|
145
159
|
* @param payload
|
|
146
160
|
*/
|
|
147
|
-
static async postMessage(type, payload) {
|
|
161
|
+
static async postMessage(type, payload, copy = false) {
|
|
148
162
|
const data = { source: "loaders.gl", type, payload };
|
|
149
|
-
const transferList = getTransferList(payload);
|
|
150
|
-
const
|
|
151
|
-
if (
|
|
152
|
-
|
|
163
|
+
const transferList = copy ? [] : getTransferList(payload);
|
|
164
|
+
const parentPort3 = await getParentPort();
|
|
165
|
+
if (parentPort3) {
|
|
166
|
+
parentPort3.postMessage(data, transferList);
|
|
153
167
|
} else {
|
|
154
168
|
globalThis.postMessage(data, transferList);
|
|
155
169
|
}
|
|
@@ -158,15 +172,11 @@
|
|
|
158
172
|
}
|
|
159
173
|
});
|
|
160
174
|
|
|
161
|
-
//
|
|
175
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/lib/async-queue/async-queue.js
|
|
162
176
|
var AsyncQueue;
|
|
163
177
|
var init_async_queue = __esm({
|
|
164
|
-
"
|
|
165
|
-
"use strict";
|
|
178
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/lib/async-queue/async-queue.js"() {
|
|
166
179
|
AsyncQueue = class {
|
|
167
|
-
_values;
|
|
168
|
-
_settlers;
|
|
169
|
-
_closed;
|
|
170
180
|
constructor() {
|
|
171
181
|
this._values = [];
|
|
172
182
|
this._settlers = [];
|
|
@@ -234,8 +244,63 @@
|
|
|
234
244
|
}
|
|
235
245
|
});
|
|
236
246
|
|
|
237
|
-
//
|
|
238
|
-
|
|
247
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-api/shared-state.js
|
|
248
|
+
var SharedWorkerState;
|
|
249
|
+
var init_shared_state = __esm({
|
|
250
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-api/shared-state.js"() {
|
|
251
|
+
SharedWorkerState = class {
|
|
252
|
+
constructor(buffer) {
|
|
253
|
+
if (typeof SharedArrayBuffer === "undefined" || !(buffer instanceof SharedArrayBuffer) || buffer.byteLength !== 16)
|
|
254
|
+
throw new Error("Expected a 16-byte shared worker control buffer");
|
|
255
|
+
this.buffer = buffer;
|
|
256
|
+
this.values = new Int32Array(buffer);
|
|
257
|
+
}
|
|
258
|
+
get snapshot() {
|
|
259
|
+
return {
|
|
260
|
+
cancelled: Atomics.load(this.values, 0) !== 0,
|
|
261
|
+
completed: Atomics.load(this.values, 1),
|
|
262
|
+
total: Atomics.load(this.values, 2),
|
|
263
|
+
revision: Atomics.load(this.values, 3)
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
cancel() {
|
|
267
|
+
Atomics.store(this.values, 0, 1);
|
|
268
|
+
Atomics.add(this.values, 3, 1);
|
|
269
|
+
Atomics.notify(this.values, 0);
|
|
270
|
+
}
|
|
271
|
+
throwIfCancelled() {
|
|
272
|
+
if (Atomics.load(this.values, 0) !== 0) {
|
|
273
|
+
const error = new Error("Shared worker task was cancelled");
|
|
274
|
+
error.name = "AbortError";
|
|
275
|
+
throw error;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/** Integer counters for application-defined work; messages still carry phase names and units. */
|
|
279
|
+
setProgress(completed, total = -1) {
|
|
280
|
+
if (!Number.isInteger(completed) || completed < 0 || completed > 2147483647 || !Number.isInteger(total) || total < -1 || total > 2147483647) {
|
|
281
|
+
throw new RangeError("Shared progress requires nonnegative int32 counts (or total -1)");
|
|
282
|
+
}
|
|
283
|
+
Atomics.store(this.values, 1, completed);
|
|
284
|
+
Atomics.store(this.values, 2, total);
|
|
285
|
+
Atomics.add(this.values, 3, 1);
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-api/validate-output-ownership.js
|
|
292
|
+
function validateOutputOwnership(ownership) {
|
|
293
|
+
if (ownership !== void 0 && ownership !== "copy" && ownership !== "transfer") {
|
|
294
|
+
throw new Error("Invalid worker output ownership");
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
var init_validate_output_ownership = __esm({
|
|
298
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-api/validate-output-ownership.js"() {
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-api/create-worker.js
|
|
303
|
+
async function createWorker(process2, processInBatches, preload2) {
|
|
239
304
|
if (!await WorkerBody.inWorkerThread()) {
|
|
240
305
|
return;
|
|
241
306
|
}
|
|
@@ -243,27 +308,59 @@
|
|
|
243
308
|
process: processOnMainThread
|
|
244
309
|
};
|
|
245
310
|
WorkerBody.onmessage = async (type, payload) => {
|
|
311
|
+
if (type === "cancel") {
|
|
312
|
+
activeController?.abort();
|
|
313
|
+
activeInputBatches?.close();
|
|
314
|
+
activeOutputAcknowledgements?.close();
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const controller = type === "process" || type === "process-in-batches" ? new AbortController() : void 0;
|
|
318
|
+
if (controller)
|
|
319
|
+
activeController = controller;
|
|
320
|
+
const startedAt = performance.now();
|
|
246
321
|
const reporter = type === "process" || type === "process-in-batches" ? createProgressReporter() : void 0;
|
|
247
|
-
|
|
322
|
+
let sharedState;
|
|
323
|
+
const throwIfAborted = () => {
|
|
324
|
+
controller?.signal.throwIfAborted();
|
|
325
|
+
sharedState?.throwIfCancelled();
|
|
326
|
+
};
|
|
327
|
+
const jobContext = {
|
|
328
|
+
...context,
|
|
329
|
+
signal: controller?.signal,
|
|
330
|
+
sharedState,
|
|
331
|
+
throwIfAborted,
|
|
332
|
+
reportProgress: (progress) => {
|
|
333
|
+
if (!controller?.signal.aborted && !sharedState?.snapshot.cancelled)
|
|
334
|
+
reporter?.report(progress);
|
|
335
|
+
}
|
|
336
|
+
};
|
|
248
337
|
try {
|
|
338
|
+
if (controller && payload.options?.["sharedState"]) {
|
|
339
|
+
sharedState = new SharedWorkerState(payload.options["sharedState"]);
|
|
340
|
+
jobContext.sharedState = sharedState;
|
|
341
|
+
}
|
|
249
342
|
switch (type) {
|
|
250
343
|
case "preload":
|
|
344
|
+
await preload2?.();
|
|
251
345
|
WorkerBody.postMessage("done", {});
|
|
252
346
|
break;
|
|
253
347
|
case "process":
|
|
254
|
-
|
|
348
|
+
throwIfAborted();
|
|
349
|
+
validateOutputOwnership(payload.options?.["outputOwnership"]);
|
|
350
|
+
if (!process2) {
|
|
255
351
|
throw new Error("Worker does not support atomic processing");
|
|
256
352
|
}
|
|
257
|
-
const result = await
|
|
258
|
-
|
|
259
|
-
payload.options || {},
|
|
260
|
-
jobContext,
|
|
261
|
-
payload.context || {}
|
|
262
|
-
);
|
|
353
|
+
const result = await process2(payload.input, payload.options || {}, jobContext, payload.context || {});
|
|
354
|
+
throwIfAborted();
|
|
263
355
|
reporter?.finish();
|
|
264
|
-
WorkerBody.postMessage("done", {
|
|
356
|
+
await WorkerBody.postMessage("done", {
|
|
357
|
+
result,
|
|
358
|
+
executionMs: performance.now() - startedAt
|
|
359
|
+
}, payload.options?.["outputOwnership"] === "copy");
|
|
265
360
|
break;
|
|
266
361
|
case "process-in-batches":
|
|
362
|
+
throwIfAborted();
|
|
363
|
+
validateOutputOwnership(payload.options?.["outputOwnership"]);
|
|
267
364
|
if (!processInBatches) {
|
|
268
365
|
throw new Error("Worker does not support batched processing");
|
|
269
366
|
}
|
|
@@ -272,18 +369,15 @@
|
|
|
272
369
|
activeInputBatches = inputBatches;
|
|
273
370
|
activeOutputAcknowledgements = outputAcknowledgements;
|
|
274
371
|
try {
|
|
275
|
-
const resultIterator = processInBatches(
|
|
276
|
-
createDemandDrivenIterator(inputBatches),
|
|
277
|
-
payload.options || {},
|
|
278
|
-
jobContext,
|
|
279
|
-
payload.context || {}
|
|
280
|
-
);
|
|
372
|
+
const resultIterator = processInBatches(createDemandDrivenIterator(inputBatches), payload.options || {}, jobContext, payload.context || {});
|
|
281
373
|
for await (const batch of resultIterator) {
|
|
282
|
-
|
|
374
|
+
throwIfAborted();
|
|
375
|
+
await WorkerBody.postMessage("output-batch", { result: batch }, payload.options?.["outputOwnership"] === "copy");
|
|
283
376
|
await outputAcknowledgements.next();
|
|
284
377
|
}
|
|
378
|
+
throwIfAborted();
|
|
285
379
|
reporter?.finish();
|
|
286
|
-
await WorkerBody.postMessage("done", {});
|
|
380
|
+
await WorkerBody.postMessage("done", { executionMs: performance.now() - startedAt });
|
|
287
381
|
} finally {
|
|
288
382
|
activeInputBatches = null;
|
|
289
383
|
activeOutputAcknowledgements = null;
|
|
@@ -310,11 +404,18 @@
|
|
|
310
404
|
default:
|
|
311
405
|
}
|
|
312
406
|
} catch (error) {
|
|
313
|
-
reporter?.finish();
|
|
407
|
+
reporter?.finish(controller?.signal.aborted || sharedState?.snapshot.cancelled);
|
|
314
408
|
const message = error instanceof Error ? error.message : "";
|
|
315
|
-
WorkerBody.postMessage("error", {
|
|
409
|
+
await WorkerBody.postMessage("error", {
|
|
410
|
+
error: message,
|
|
411
|
+
errorName: error instanceof Error ? error.name : "Error"
|
|
412
|
+
});
|
|
413
|
+
} finally {
|
|
414
|
+
if (controller && activeController === controller)
|
|
415
|
+
activeController = null;
|
|
316
416
|
}
|
|
317
417
|
};
|
|
418
|
+
await WorkerBody.postMessage("ready", {});
|
|
318
419
|
}
|
|
319
420
|
async function* createDemandDrivenIterator(inputBatches) {
|
|
320
421
|
while (true) {
|
|
@@ -327,81 +428,691 @@
|
|
|
327
428
|
}
|
|
328
429
|
}
|
|
329
430
|
function processOnMainThread(arrayBuffer, options = {}, jobContext = {}) {
|
|
431
|
+
const signal = activeController?.signal;
|
|
432
|
+
signal?.throwIfAborted();
|
|
330
433
|
return new Promise((resolve, reject) => {
|
|
331
434
|
const id = requestId++;
|
|
332
|
-
const
|
|
333
|
-
|
|
435
|
+
const cleanup = () => {
|
|
436
|
+
signal?.removeEventListener("abort", abort);
|
|
437
|
+
void WorkerBody.removeEventListener(onMessage);
|
|
438
|
+
};
|
|
439
|
+
const abort = () => {
|
|
440
|
+
cleanup();
|
|
441
|
+
reject(signal?.reason);
|
|
442
|
+
};
|
|
443
|
+
const onMessage = (type, payload) => {
|
|
444
|
+
if (payload.id !== id)
|
|
334
445
|
return;
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
case "error":
|
|
342
|
-
WorkerBody.removeEventListener(onMessage);
|
|
343
|
-
reject(payload2.error);
|
|
344
|
-
break;
|
|
345
|
-
default:
|
|
446
|
+
if (type === "done") {
|
|
447
|
+
cleanup();
|
|
448
|
+
resolve(payload.result);
|
|
449
|
+
} else if (type === "error") {
|
|
450
|
+
cleanup();
|
|
451
|
+
reject(payload.error);
|
|
346
452
|
}
|
|
347
453
|
};
|
|
348
|
-
WorkerBody.addEventListener(onMessage)
|
|
349
|
-
|
|
350
|
-
|
|
454
|
+
void WorkerBody.addEventListener(onMessage).then(async () => {
|
|
455
|
+
if (signal?.aborted) {
|
|
456
|
+
abort();
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
460
|
+
await WorkerBody.postMessage("process", {
|
|
461
|
+
id,
|
|
462
|
+
input: arrayBuffer,
|
|
463
|
+
options,
|
|
464
|
+
context: jobContext
|
|
465
|
+
});
|
|
466
|
+
}).catch((error) => {
|
|
467
|
+
cleanup();
|
|
468
|
+
reject(error);
|
|
469
|
+
});
|
|
351
470
|
});
|
|
352
471
|
}
|
|
353
472
|
function createProgressReporter() {
|
|
354
|
-
let
|
|
473
|
+
let pending2;
|
|
355
474
|
let finished = false;
|
|
356
475
|
let scheduled = false;
|
|
357
476
|
const flush = () => {
|
|
358
477
|
scheduled = false;
|
|
359
|
-
if (
|
|
360
|
-
WorkerBody.postMessage("progress", { progress:
|
|
361
|
-
|
|
478
|
+
if (pending2) {
|
|
479
|
+
WorkerBody.postMessage("progress", { progress: pending2 });
|
|
480
|
+
pending2 = void 0;
|
|
362
481
|
}
|
|
363
482
|
};
|
|
364
483
|
return {
|
|
365
484
|
/** Records progress while retaining phase transitions. */
|
|
366
485
|
report(progress) {
|
|
367
|
-
if (finished)
|
|
368
|
-
|
|
369
|
-
|
|
486
|
+
if (finished)
|
|
487
|
+
return;
|
|
488
|
+
if (pending2 && pending2.phase !== progress.phase)
|
|
489
|
+
flush();
|
|
490
|
+
pending2 = { ...progress };
|
|
370
491
|
if (!scheduled) {
|
|
371
492
|
scheduled = true;
|
|
372
493
|
setTimeout(flush, 0);
|
|
373
494
|
}
|
|
374
495
|
},
|
|
375
496
|
/** Flushes final progress and suppresses reports from stale callbacks. */
|
|
376
|
-
finish() {
|
|
497
|
+
finish(discard = false) {
|
|
498
|
+
if (discard)
|
|
499
|
+
pending2 = void 0;
|
|
377
500
|
flush();
|
|
378
501
|
finished = true;
|
|
379
502
|
}
|
|
380
503
|
};
|
|
381
504
|
}
|
|
382
|
-
var requestId, activeInputBatches, activeOutputAcknowledgements;
|
|
505
|
+
var requestId, activeController, activeInputBatches, activeOutputAcknowledgements;
|
|
383
506
|
var init_create_worker = __esm({
|
|
384
|
-
"
|
|
385
|
-
|
|
507
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/lib/worker-api/create-worker.js"() {
|
|
508
|
+
init_shared_state();
|
|
386
509
|
init_async_queue();
|
|
387
510
|
init_worker_body();
|
|
511
|
+
init_validate_output_ownership();
|
|
388
512
|
requestId = 0;
|
|
513
|
+
activeController = null;
|
|
389
514
|
activeInputBatches = null;
|
|
390
515
|
activeOutputAcknowledgements = null;
|
|
391
516
|
}
|
|
392
517
|
});
|
|
393
518
|
|
|
394
|
-
//
|
|
519
|
+
// ../../node_modules/@math.gl/tasks/dist/worker-utils/index.js
|
|
520
|
+
var import_meta, path, moduleUrl;
|
|
395
521
|
var init_worker_utils = __esm({
|
|
522
|
+
"../../node_modules/@math.gl/tasks/dist/worker-utils/index.js"() {
|
|
523
|
+
init_worker_body();
|
|
524
|
+
init_create_worker();
|
|
525
|
+
init_get_transfer_list();
|
|
526
|
+
import_meta = {};
|
|
527
|
+
path = typeof __filename === "string" ? __filename.replace(/\\/g, "/") : "";
|
|
528
|
+
moduleUrl = path ? `file://${path.startsWith("/") ? "" : "/"}${encodeURI(path).replace(/#/g, "%23").replace(/\?/g, "%3F")}` : import_meta.url;
|
|
529
|
+
}
|
|
530
|
+
});
|
|
531
|
+
|
|
532
|
+
// ../../node_modules/@math.gl/tasks/dist/tasks/task-preload.js
|
|
533
|
+
function preloadTaskCode(task, signal) {
|
|
534
|
+
if (!task.preload)
|
|
535
|
+
return Promise.resolve();
|
|
536
|
+
let promise = pending.get(task);
|
|
537
|
+
if (!promise) {
|
|
538
|
+
promise = Promise.resolve().then(() => task.preload()).then(() => {
|
|
539
|
+
loaded.add(task);
|
|
540
|
+
});
|
|
541
|
+
pending.set(task, promise);
|
|
542
|
+
void promise.catch(() => pending.delete(task));
|
|
543
|
+
}
|
|
544
|
+
return withSignal(promise, signal);
|
|
545
|
+
}
|
|
546
|
+
function withSignal(operation, signal) {
|
|
547
|
+
if (!signal)
|
|
548
|
+
return operation;
|
|
549
|
+
return new Promise((resolve, reject) => {
|
|
550
|
+
const abort = () => {
|
|
551
|
+
signal.removeEventListener("abort", abort);
|
|
552
|
+
reject(signal.reason);
|
|
553
|
+
};
|
|
554
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
555
|
+
if (signal.aborted)
|
|
556
|
+
abort();
|
|
557
|
+
operation.then((value) => {
|
|
558
|
+
signal.removeEventListener("abort", abort);
|
|
559
|
+
resolve(value);
|
|
560
|
+
}, (error) => {
|
|
561
|
+
signal.removeEventListener("abort", abort);
|
|
562
|
+
reject(error);
|
|
563
|
+
});
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
var pending, loaded;
|
|
567
|
+
var init_task_preload = __esm({
|
|
568
|
+
"../../node_modules/@math.gl/tasks/dist/tasks/task-preload.js"() {
|
|
569
|
+
pending = /* @__PURE__ */ new WeakMap();
|
|
570
|
+
loaded = /* @__PURE__ */ new WeakSet();
|
|
571
|
+
}
|
|
572
|
+
});
|
|
573
|
+
|
|
574
|
+
// ../../node_modules/@math.gl/tasks/dist/tasks/task-channel.js
|
|
575
|
+
var TaskRequestError, TaskChannel;
|
|
576
|
+
var init_task_channel = __esm({
|
|
577
|
+
"../../node_modules/@math.gl/tasks/dist/tasks/task-channel.js"() {
|
|
578
|
+
TaskRequestError = class extends Error {
|
|
579
|
+
};
|
|
580
|
+
TaskChannel = class {
|
|
581
|
+
constructor(options) {
|
|
582
|
+
this.options = options;
|
|
583
|
+
this.nextId = 1;
|
|
584
|
+
this.pending = /* @__PURE__ */ new Map();
|
|
585
|
+
this.incoming = /* @__PURE__ */ new Map();
|
|
586
|
+
}
|
|
587
|
+
/** Send a request without serializing other in-flight requests. */
|
|
588
|
+
request(operation, value, signal, transfer = []) {
|
|
589
|
+
if (this.failure)
|
|
590
|
+
return Promise.reject(this.failure.reason);
|
|
591
|
+
if (signal?.aborted)
|
|
592
|
+
return Promise.reject(signal.reason);
|
|
593
|
+
const id = this.nextId++;
|
|
594
|
+
return new Promise((resolve, reject) => {
|
|
595
|
+
const abort = () => {
|
|
596
|
+
const pending2 = this.pending.get(id);
|
|
597
|
+
if (!pending2)
|
|
598
|
+
return;
|
|
599
|
+
this.pending.delete(id);
|
|
600
|
+
pending2.cleanup();
|
|
601
|
+
reject(signal?.reason);
|
|
602
|
+
this.send({ source: "math.gl/tasks", kind: "cancel", id });
|
|
603
|
+
};
|
|
604
|
+
this.pending.set(id, {
|
|
605
|
+
resolve,
|
|
606
|
+
reject,
|
|
607
|
+
cleanup: () => signal?.removeEventListener("abort", abort)
|
|
608
|
+
});
|
|
609
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
610
|
+
this.send({ source: "math.gl/tasks", kind: "request", id, operation, value }, transfer);
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
/** Send a one-way notification. */
|
|
614
|
+
emit(operation, value, transfer = []) {
|
|
615
|
+
if (this.failure)
|
|
616
|
+
throw this.failure.reason;
|
|
617
|
+
this.send({ source: "math.gl/tasks", kind: "event", id: 0, operation, value }, transfer);
|
|
618
|
+
}
|
|
619
|
+
/** Dispatch a transport message; unrelated protocols are ignored. */
|
|
620
|
+
receive(message) {
|
|
621
|
+
if (this.failure || message?.source !== "math.gl/tasks")
|
|
622
|
+
return;
|
|
623
|
+
if (message.kind === "failure") {
|
|
624
|
+
const reason = new Error(message.error?.message ?? "Task channel failed");
|
|
625
|
+
this.close(reason);
|
|
626
|
+
this.options.onFailure?.(reason);
|
|
627
|
+
} else if (message.kind === "result" || message.kind === "error") {
|
|
628
|
+
const pending2 = this.pending.get(message.id);
|
|
629
|
+
if (!pending2)
|
|
630
|
+
return;
|
|
631
|
+
this.pending.delete(message.id);
|
|
632
|
+
pending2.cleanup();
|
|
633
|
+
if (message.kind === "result")
|
|
634
|
+
pending2.resolve(message.value);
|
|
635
|
+
else {
|
|
636
|
+
const error = new TaskRequestError(message.error?.message ?? "Task request failed");
|
|
637
|
+
error.name = message.error?.name ?? "Error";
|
|
638
|
+
pending2.reject(error);
|
|
639
|
+
}
|
|
640
|
+
} else if (message.kind === "cancel") {
|
|
641
|
+
this.incoming.get(message.id)?.abort(new DOMException("Task request cancelled", "AbortError"));
|
|
642
|
+
} else if (message.kind === "event") {
|
|
643
|
+
try {
|
|
644
|
+
this.options.handleEvent?.(message.operation, message.value);
|
|
645
|
+
} catch (error) {
|
|
646
|
+
this.fail(error);
|
|
647
|
+
}
|
|
648
|
+
} else if (message.kind === "request") {
|
|
649
|
+
if (this.incoming.has(message.id)) {
|
|
650
|
+
this.fail(new Error("Duplicate task request identifier"));
|
|
651
|
+
return;
|
|
652
|
+
}
|
|
653
|
+
const controller = new AbortController();
|
|
654
|
+
this.incoming.set(message.id, controller);
|
|
655
|
+
void Promise.resolve().then(() => {
|
|
656
|
+
controller.signal.throwIfAborted();
|
|
657
|
+
return this.options.handleRequest(message.operation, message.value, controller.signal);
|
|
658
|
+
}).then((value) => {
|
|
659
|
+
if (!controller.signal.aborted && !this.failure) {
|
|
660
|
+
this.send({ source: "math.gl/tasks", kind: "result", id: message.id, value }, this.options.getResultTransferList?.(value, message.value));
|
|
661
|
+
}
|
|
662
|
+
}).catch((reason) => {
|
|
663
|
+
if (!controller.signal.aborted && !this.failure) {
|
|
664
|
+
this.send({
|
|
665
|
+
source: "math.gl/tasks",
|
|
666
|
+
kind: "error",
|
|
667
|
+
id: message.id,
|
|
668
|
+
error: {
|
|
669
|
+
name: reason instanceof Error ? reason.name : "Error",
|
|
670
|
+
message: reason instanceof Error ? reason.message : String(reason)
|
|
671
|
+
}
|
|
672
|
+
});
|
|
673
|
+
}
|
|
674
|
+
}).finally(() => this.incoming.delete(message.id));
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
/** Reject all outstanding calls with a common cause and abort incoming callbacks. */
|
|
678
|
+
close(reason = new Error("Task channel closed")) {
|
|
679
|
+
if (this.failure)
|
|
680
|
+
return;
|
|
681
|
+
this.failure = { reason };
|
|
682
|
+
for (const pending2 of this.pending.values()) {
|
|
683
|
+
pending2.cleanup();
|
|
684
|
+
pending2.reject(reason);
|
|
685
|
+
}
|
|
686
|
+
this.pending.clear();
|
|
687
|
+
for (const controller of this.incoming.values())
|
|
688
|
+
controller.abort(reason);
|
|
689
|
+
this.incoming.clear();
|
|
690
|
+
}
|
|
691
|
+
send(message, transfer = []) {
|
|
692
|
+
if (this.failure)
|
|
693
|
+
return;
|
|
694
|
+
try {
|
|
695
|
+
this.options.send(message, transfer);
|
|
696
|
+
} catch (error) {
|
|
697
|
+
this.fail(error);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
/** Invalidate the channel and notify the peer when the transport still works. */
|
|
701
|
+
fail(reason) {
|
|
702
|
+
if (this.failure)
|
|
703
|
+
return;
|
|
704
|
+
this.close(reason);
|
|
705
|
+
try {
|
|
706
|
+
this.options.send({
|
|
707
|
+
source: "math.gl/tasks",
|
|
708
|
+
kind: "failure",
|
|
709
|
+
id: 0,
|
|
710
|
+
error: {
|
|
711
|
+
name: reason instanceof Error ? reason.name : "Error",
|
|
712
|
+
message: reason instanceof Error ? reason.message : String(reason)
|
|
713
|
+
}
|
|
714
|
+
}, []);
|
|
715
|
+
} catch {
|
|
716
|
+
}
|
|
717
|
+
this.options.onFailure?.(reason);
|
|
718
|
+
}
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
});
|
|
722
|
+
|
|
723
|
+
// ../../node_modules/@math.gl/tasks/dist/tasks/task-runtime.js
|
|
724
|
+
function assertPayload(value) {
|
|
725
|
+
if (!value || typeof value !== "object" || Object.getPrototypeOf(value) !== Object.prototype) {
|
|
726
|
+
throw new TypeError("Task payloads must be plain objects with named fields");
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
function clonePayload(value, ownership = "copy") {
|
|
730
|
+
assertPayload(value);
|
|
731
|
+
if (!["copy", "transfer", "share"].includes(ownership))
|
|
732
|
+
throw new TypeError("Invalid input ownership");
|
|
733
|
+
const transfer = getTransferList(value);
|
|
734
|
+
if (ownership === "share" && transfer.length)
|
|
735
|
+
throw new TypeError("Share requires shared storage");
|
|
736
|
+
return structuredClone(value, {
|
|
737
|
+
transfer: ownership === "transfer" ? transfer : []
|
|
738
|
+
});
|
|
739
|
+
}
|
|
740
|
+
function taskContext(state, context = {}) {
|
|
741
|
+
const signal = context.signal ?? new AbortController().signal;
|
|
742
|
+
return {
|
|
743
|
+
state,
|
|
744
|
+
signal,
|
|
745
|
+
requestHost: async (operation, payload, controls) => {
|
|
746
|
+
signal.throwIfAborted();
|
|
747
|
+
if (!context.requestHost)
|
|
748
|
+
throw new Error("No host request handler configured");
|
|
749
|
+
return context.requestHost(operation, payload, controls);
|
|
750
|
+
},
|
|
751
|
+
emitHost: (operation, payload) => {
|
|
752
|
+
signal.throwIfAborted();
|
|
753
|
+
context.emitHost?.(operation, payload);
|
|
754
|
+
},
|
|
755
|
+
throwIfAborted: () => {
|
|
756
|
+
signal.throwIfAborted();
|
|
757
|
+
context.throwIfAborted?.();
|
|
758
|
+
},
|
|
759
|
+
reportProgress: (progress) => context.reportProgress?.({
|
|
760
|
+
...progress,
|
|
761
|
+
phase: progress.phase ?? "process",
|
|
762
|
+
unit: progress.unit ?? "items"
|
|
763
|
+
})
|
|
764
|
+
};
|
|
765
|
+
}
|
|
766
|
+
async function initializeTaskWorker(task) {
|
|
767
|
+
if (!await WorkerBody.inWorkerThread())
|
|
768
|
+
throw new Error("initializeTaskWorker must run inside a worker");
|
|
769
|
+
if (installed)
|
|
770
|
+
throw new Error("A task is already installed in this worker");
|
|
771
|
+
installed = true;
|
|
772
|
+
const runtime = new TaskRuntime(task);
|
|
773
|
+
let channelStream;
|
|
774
|
+
const channel = new TaskChannel({
|
|
775
|
+
getResultTransferList: (value, request) => request.outputOwnership === "transfer" ? getTransferList(value) : [],
|
|
776
|
+
send: (message, transfer) => {
|
|
777
|
+
const snapshot = structuredClone(message, { transfer });
|
|
778
|
+
void WorkerBody.postMessage("task-channel", snapshot).catch((reason) => channel.fail(reason));
|
|
779
|
+
},
|
|
780
|
+
handleRequest: async (operation, value, signal) => {
|
|
781
|
+
const request = value;
|
|
782
|
+
const context = {
|
|
783
|
+
signal,
|
|
784
|
+
reportProgress: (progress) => channel.emit("task:progress", { id: request.progressId, progress }),
|
|
785
|
+
requestHost: (operation2, payload, controls = {}) => {
|
|
786
|
+
const request2 = {
|
|
787
|
+
operation: operation2,
|
|
788
|
+
payload: clonePayload(payload, controls.inputOwnership),
|
|
789
|
+
outputOwnership: controls.outputOwnership ?? "copy"
|
|
790
|
+
};
|
|
791
|
+
return channel.request("task:host-request", request2, signal, getTransferList(request2));
|
|
792
|
+
},
|
|
793
|
+
emitHost: (operation2, payload) => channel.emit("task:host-event", { operation: operation2, payload, id: request.progressId })
|
|
794
|
+
};
|
|
795
|
+
switch (operation) {
|
|
796
|
+
case "initialize":
|
|
797
|
+
return runtime.initialize(request.input, context);
|
|
798
|
+
case "process":
|
|
799
|
+
return runtime.process(request.input, request.options, context);
|
|
800
|
+
case "stream-open": {
|
|
801
|
+
if (channelStream)
|
|
802
|
+
throw new Error("A task stream is already open");
|
|
803
|
+
async function* inputs() {
|
|
804
|
+
while (true) {
|
|
805
|
+
const result = await channel.request("task:next-input", { outputOwnership: "transfer" }, signal);
|
|
806
|
+
if (result.done)
|
|
807
|
+
return;
|
|
808
|
+
yield result.value;
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
channelStream = runtime.stream(inputs(), request.options, context)[Symbol.asyncIterator]();
|
|
812
|
+
return {};
|
|
813
|
+
}
|
|
814
|
+
case "stream-next":
|
|
815
|
+
if (!channelStream)
|
|
816
|
+
throw new Error("No active task stream");
|
|
817
|
+
return channelStream.next();
|
|
818
|
+
case "stream-close":
|
|
819
|
+
try {
|
|
820
|
+
await channelStream?.return?.();
|
|
821
|
+
} finally {
|
|
822
|
+
channelStream = void 0;
|
|
823
|
+
}
|
|
824
|
+
return {};
|
|
825
|
+
case "destroy":
|
|
826
|
+
return runtime.destroy();
|
|
827
|
+
default:
|
|
828
|
+
throw new Error("Unknown task channel operation");
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
});
|
|
832
|
+
await WorkerBody.addEventListener((type, payload) => {
|
|
833
|
+
if (type === "task-channel")
|
|
834
|
+
channel.receive(payload);
|
|
835
|
+
});
|
|
836
|
+
let streamOptions = {};
|
|
837
|
+
return createWorker(async (request, _options, context) => {
|
|
838
|
+
switch (request.operation) {
|
|
839
|
+
case "initialize":
|
|
840
|
+
return runtime.initialize(request.input, context);
|
|
841
|
+
case "destroy":
|
|
842
|
+
return runtime.destroy();
|
|
843
|
+
case "stream-options":
|
|
844
|
+
streamOptions = request.options;
|
|
845
|
+
return {};
|
|
846
|
+
case "process":
|
|
847
|
+
return runtime.process(request.input, request.options, context);
|
|
848
|
+
default:
|
|
849
|
+
throw new Error("Unknown task operation");
|
|
850
|
+
}
|
|
851
|
+
}, async function* (inputs, _options, context) {
|
|
852
|
+
async function* batches() {
|
|
853
|
+
for await (const input of inputs) {
|
|
854
|
+
assertPayload(input);
|
|
855
|
+
yield input;
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
try {
|
|
859
|
+
yield* runtime.stream(batches(), streamOptions, context);
|
|
860
|
+
} finally {
|
|
861
|
+
streamOptions = {};
|
|
862
|
+
}
|
|
863
|
+
}, () => preloadTaskCode(task));
|
|
864
|
+
}
|
|
865
|
+
var TaskRuntime, installed;
|
|
866
|
+
var init_task_runtime = __esm({
|
|
867
|
+
"../../node_modules/@math.gl/tasks/dist/tasks/task-runtime.js"() {
|
|
868
|
+
init_worker_utils();
|
|
869
|
+
init_task_preload();
|
|
870
|
+
init_task_channel();
|
|
871
|
+
TaskRuntime = class {
|
|
872
|
+
constructor(task) {
|
|
873
|
+
this.task = task;
|
|
874
|
+
this.initialized = false;
|
|
875
|
+
}
|
|
876
|
+
async initialize(input, context = {}) {
|
|
877
|
+
if (this.initialized)
|
|
878
|
+
throw new Error("Task is already initialized");
|
|
879
|
+
assertPayload(input);
|
|
880
|
+
await preloadTaskCode(this.task, context.signal);
|
|
881
|
+
context.signal?.throwIfAborted();
|
|
882
|
+
this.state = await this.task.initialize?.(input, taskContext(void 0, context));
|
|
883
|
+
this.initialized = true;
|
|
884
|
+
return {};
|
|
885
|
+
}
|
|
886
|
+
async destroy() {
|
|
887
|
+
if (this.initialized) {
|
|
888
|
+
this.initialized = false;
|
|
889
|
+
const state = this.state;
|
|
890
|
+
this.state = void 0;
|
|
891
|
+
if (this.task.initialize)
|
|
892
|
+
await this.task.destroy?.(state);
|
|
893
|
+
}
|
|
894
|
+
return {};
|
|
895
|
+
}
|
|
896
|
+
async process(input, options, context = {}) {
|
|
897
|
+
if (!this.initialized)
|
|
898
|
+
throw new Error("Task is not initialized");
|
|
899
|
+
if (!this.task.process)
|
|
900
|
+
throw new Error("Task has no atomic processor");
|
|
901
|
+
assertPayload(input);
|
|
902
|
+
const result = await this.task.process(input, options, taskContext(this.state, context));
|
|
903
|
+
assertPayload(result);
|
|
904
|
+
return result;
|
|
905
|
+
}
|
|
906
|
+
async *stream(inputs, options, context = {}) {
|
|
907
|
+
if (!this.initialized)
|
|
908
|
+
throw new Error("Task is not initialized");
|
|
909
|
+
if (!this.task.processInBatches)
|
|
910
|
+
throw new Error("Task has no streaming processor");
|
|
911
|
+
for await (const output of this.task.processInBatches(inputs, options, taskContext(this.state, context))) {
|
|
912
|
+
assertPayload(output);
|
|
913
|
+
yield output;
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
};
|
|
917
|
+
installed = false;
|
|
918
|
+
}
|
|
919
|
+
});
|
|
920
|
+
|
|
921
|
+
// ../../node_modules/@math.gl/tasks/dist/tasks/index.js
|
|
922
|
+
var init_tasks = __esm({
|
|
923
|
+
"../../node_modules/@math.gl/tasks/dist/tasks/index.js"() {
|
|
924
|
+
init_task_runtime();
|
|
925
|
+
}
|
|
926
|
+
});
|
|
927
|
+
|
|
928
|
+
// ../../node_modules/@math.gl/tasks/dist/index.js
|
|
929
|
+
var init_dist = __esm({
|
|
930
|
+
"../../node_modules/@math.gl/tasks/dist/index.js"() {
|
|
931
|
+
init_tasks();
|
|
932
|
+
}
|
|
933
|
+
});
|
|
934
|
+
|
|
935
|
+
// ../core/src/worker-utils/lib/node/worker_threads-browser.ts
|
|
936
|
+
var worker_threads_browser_exports = {};
|
|
937
|
+
__export(worker_threads_browser_exports, {
|
|
938
|
+
NodeWorker: () => NodeWorker,
|
|
939
|
+
parentPort: () => parentPort2
|
|
940
|
+
});
|
|
941
|
+
var NodeWorker, parentPort2;
|
|
942
|
+
var init_worker_threads_browser2 = __esm({
|
|
943
|
+
"../core/src/worker-utils/lib/node/worker_threads-browser.ts"() {
|
|
944
|
+
"use strict";
|
|
945
|
+
NodeWorker = class {
|
|
946
|
+
/** Restores the native worker constructor when this browser shim is embedded in a Node bundle. */
|
|
947
|
+
constructor(...arguments_) {
|
|
948
|
+
const runtimeProcess = globalThis.process;
|
|
949
|
+
const WorkerConstructor = runtimeProcess?.getBuiltinModule?.("node:worker_threads").Worker;
|
|
950
|
+
if (WorkerConstructor) {
|
|
951
|
+
return new WorkerConstructor(...arguments_);
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
/** No-op browser fallback matching the native Worker API. */
|
|
955
|
+
terminate() {
|
|
956
|
+
}
|
|
957
|
+
};
|
|
958
|
+
parentPort2 = null;
|
|
959
|
+
}
|
|
960
|
+
});
|
|
961
|
+
|
|
962
|
+
// ../core/src/worker-utils/lib/worker-api/task-runtime.ts
|
|
963
|
+
function normalizeTaskProgress(progress) {
|
|
964
|
+
return { ...progress, phase: progress.phase ?? "process", unit: progress.unit ?? "items" };
|
|
965
|
+
}
|
|
966
|
+
async function isWorkerThread() {
|
|
967
|
+
if (typeof self !== "undefined" && typeof document === "undefined" && typeof self.postMessage === "function")
|
|
968
|
+
return true;
|
|
969
|
+
if (typeof process !== "undefined" && process.versions?.node) {
|
|
970
|
+
const { isMainThread } = await Promise.resolve().then(() => (init_worker_threads_browser2(), worker_threads_browser_exports));
|
|
971
|
+
return !isMainThread;
|
|
972
|
+
}
|
|
973
|
+
return false;
|
|
974
|
+
}
|
|
975
|
+
var initializeTaskWorker2;
|
|
976
|
+
var init_task_runtime2 = __esm({
|
|
977
|
+
"../core/src/worker-utils/lib/worker-api/task-runtime.ts"() {
|
|
978
|
+
"use strict";
|
|
979
|
+
init_dist();
|
|
980
|
+
initializeTaskWorker2 = initializeTaskWorker;
|
|
981
|
+
}
|
|
982
|
+
});
|
|
983
|
+
|
|
984
|
+
// ../core/src/worker-utils/lib/worker-utils/get-transfer-list.ts
|
|
985
|
+
function getTransferList2(object, recursive = true, transfers) {
|
|
986
|
+
const transfersSet = transfers || /* @__PURE__ */ new Set();
|
|
987
|
+
if (!object) {
|
|
988
|
+
} else if (isTransferable2(object)) {
|
|
989
|
+
transfersSet.add(object);
|
|
990
|
+
} else if (isTransferable2(object.buffer)) {
|
|
991
|
+
transfersSet.add(object.buffer);
|
|
992
|
+
} else if (ArrayBuffer.isView(object)) {
|
|
993
|
+
} else if (recursive && typeof object === "object") {
|
|
994
|
+
for (const key in object) {
|
|
995
|
+
getTransferList2(object[key], recursive, transfersSet);
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
return transfers === void 0 ? Array.from(transfersSet) : [];
|
|
999
|
+
}
|
|
1000
|
+
function isTransferable2(object) {
|
|
1001
|
+
if (!object) {
|
|
1002
|
+
return false;
|
|
1003
|
+
}
|
|
1004
|
+
if (object instanceof ArrayBuffer) {
|
|
1005
|
+
return true;
|
|
1006
|
+
}
|
|
1007
|
+
if (typeof MessagePort !== "undefined" && object instanceof MessagePort) {
|
|
1008
|
+
return true;
|
|
1009
|
+
}
|
|
1010
|
+
if (typeof ImageBitmap !== "undefined" && object instanceof ImageBitmap) {
|
|
1011
|
+
return true;
|
|
1012
|
+
}
|
|
1013
|
+
if (typeof OffscreenCanvas !== "undefined" && object instanceof OffscreenCanvas) {
|
|
1014
|
+
return true;
|
|
1015
|
+
}
|
|
1016
|
+
return false;
|
|
1017
|
+
}
|
|
1018
|
+
var init_get_transfer_list2 = __esm({
|
|
1019
|
+
"../core/src/worker-utils/lib/worker-utils/get-transfer-list.ts"() {
|
|
1020
|
+
"use strict";
|
|
1021
|
+
}
|
|
1022
|
+
});
|
|
1023
|
+
|
|
1024
|
+
// ../core/src/worker-utils/lib/worker-api/create-worker.ts
|
|
1025
|
+
async function createWorker2(process2, processInBatches) {
|
|
1026
|
+
if (!await isWorkerThread()) return;
|
|
1027
|
+
await initializeTaskWorker2(createWorkerTask(process2, processInBatches));
|
|
1028
|
+
}
|
|
1029
|
+
function createWorkerTask(process2, processInBatches) {
|
|
1030
|
+
return {
|
|
1031
|
+
id: "loaders.gl",
|
|
1032
|
+
initialize: (state) => state,
|
|
1033
|
+
destroy: (state) => state.port?.close(),
|
|
1034
|
+
process: async ({ value }, options, context) => {
|
|
1035
|
+
if (!process2) throw new Error("Worker does not support atomic processing");
|
|
1036
|
+
return { value: await process2(value, options, createContext(context), context.state.context) };
|
|
1037
|
+
},
|
|
1038
|
+
...processInBatches ? {
|
|
1039
|
+
processInBatches: async function* (inputs, options, context) {
|
|
1040
|
+
async function* values() {
|
|
1041
|
+
for await (const input of inputs) yield input.value;
|
|
1042
|
+
}
|
|
1043
|
+
for await (const value of processInBatches(
|
|
1044
|
+
values(),
|
|
1045
|
+
options,
|
|
1046
|
+
createContext(context),
|
|
1047
|
+
context.state.context
|
|
1048
|
+
)) {
|
|
1049
|
+
yield { value };
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
} : {}
|
|
1053
|
+
};
|
|
1054
|
+
}
|
|
1055
|
+
function createContext(context) {
|
|
1056
|
+
let requestIdentifier = 0;
|
|
1057
|
+
const port = context.state.port;
|
|
1058
|
+
return {
|
|
1059
|
+
signal: context.signal,
|
|
1060
|
+
throwIfAborted: () => context.throwIfAborted(),
|
|
1061
|
+
reportProgress: (progress) => context.reportProgress(normalizeTaskProgress(progress)),
|
|
1062
|
+
process: port ? (input, options = {}, jobContext = {}) => {
|
|
1063
|
+
context.throwIfAborted();
|
|
1064
|
+
const identifier = ++requestIdentifier;
|
|
1065
|
+
return new Promise((resolve, reject) => {
|
|
1066
|
+
const onMessage = (event) => {
|
|
1067
|
+
if (event.data.identifier !== identifier) return;
|
|
1068
|
+
cleanup();
|
|
1069
|
+
if (event.data.error) {
|
|
1070
|
+
const error = new Error(event.data.error.message);
|
|
1071
|
+
error.name = event.data.error.name;
|
|
1072
|
+
reject(error);
|
|
1073
|
+
} else resolve(event.data.value);
|
|
1074
|
+
};
|
|
1075
|
+
const onAbort = () => {
|
|
1076
|
+
cleanup();
|
|
1077
|
+
reject(context.signal.reason);
|
|
1078
|
+
};
|
|
1079
|
+
const cleanup = () => {
|
|
1080
|
+
port.removeEventListener("message", onMessage);
|
|
1081
|
+
context.signal.removeEventListener("abort", onAbort);
|
|
1082
|
+
};
|
|
1083
|
+
port.addEventListener("message", onMessage);
|
|
1084
|
+
context.signal.addEventListener("abort", onAbort, { once: true });
|
|
1085
|
+
port.start();
|
|
1086
|
+
try {
|
|
1087
|
+
const request = { identifier, input, options, context: jobContext };
|
|
1088
|
+
port.postMessage(request, getTransferList2(request));
|
|
1089
|
+
} catch (error) {
|
|
1090
|
+
cleanup();
|
|
1091
|
+
reject(error);
|
|
1092
|
+
}
|
|
1093
|
+
});
|
|
1094
|
+
} : void 0
|
|
1095
|
+
};
|
|
1096
|
+
}
|
|
1097
|
+
var init_create_worker2 = __esm({
|
|
1098
|
+
"../core/src/worker-utils/lib/worker-api/create-worker.ts"() {
|
|
1099
|
+
"use strict";
|
|
1100
|
+
init_task_runtime2();
|
|
1101
|
+
init_get_transfer_list2();
|
|
1102
|
+
}
|
|
1103
|
+
});
|
|
1104
|
+
|
|
1105
|
+
// ../core/src/worker-utils/index.ts
|
|
1106
|
+
var init_worker_utils2 = __esm({
|
|
396
1107
|
"../core/src/worker-utils/index.ts"() {
|
|
397
1108
|
"use strict";
|
|
398
|
-
|
|
1109
|
+
init_create_worker2();
|
|
399
1110
|
}
|
|
400
1111
|
});
|
|
401
1112
|
|
|
402
1113
|
// ../core/src/loader-utils/lib/worker-loader-utils/create-loader-worker.ts
|
|
403
1114
|
async function createLoaderWorker(loader, selectLoader = () => loader) {
|
|
404
|
-
await
|
|
1115
|
+
await createWorker2(
|
|
405
1116
|
(input, options, workerContext, loaderContext) => processLoaderWorkerData(
|
|
406
1117
|
selectLoader(options || {}),
|
|
407
1118
|
input,
|
|
@@ -539,7 +1250,7 @@
|
|
|
539
1250
|
var init_create_loader_worker = __esm({
|
|
540
1251
|
"../core/src/loader-utils/lib/worker-loader-utils/create-loader-worker.ts"() {
|
|
541
1252
|
"use strict";
|
|
542
|
-
|
|
1253
|
+
init_worker_utils2();
|
|
543
1254
|
}
|
|
544
1255
|
});
|
|
545
1256
|
|
|
@@ -752,7 +1463,7 @@
|
|
|
752
1463
|
});
|
|
753
1464
|
|
|
754
1465
|
// ../../node_modules/@math.gl/core/dist/index.js
|
|
755
|
-
var
|
|
1466
|
+
var init_dist2 = __esm({
|
|
756
1467
|
"../../node_modules/@math.gl/core/dist/index.js"() {
|
|
757
1468
|
init_math_utils();
|
|
758
1469
|
init_types2();
|
|
@@ -776,6 +1487,72 @@
|
|
|
776
1487
|
}
|
|
777
1488
|
});
|
|
778
1489
|
|
|
1490
|
+
// ../core/src/schema-utils/lib/schema/data-type.ts
|
|
1491
|
+
function getDataTypeFromValue(value, defaultNumberType = "float32") {
|
|
1492
|
+
if (value instanceof Date) {
|
|
1493
|
+
return "date-millisecond";
|
|
1494
|
+
}
|
|
1495
|
+
if (typeof value === "number") {
|
|
1496
|
+
return defaultNumberType;
|
|
1497
|
+
}
|
|
1498
|
+
if (typeof value === "boolean") {
|
|
1499
|
+
return "bool";
|
|
1500
|
+
}
|
|
1501
|
+
if (typeof value === "string") {
|
|
1502
|
+
return "utf8";
|
|
1503
|
+
}
|
|
1504
|
+
if (value === null || value === "undefined") {
|
|
1505
|
+
return "null";
|
|
1506
|
+
}
|
|
1507
|
+
return "null";
|
|
1508
|
+
}
|
|
1509
|
+
function getDataTypeFromArray(array) {
|
|
1510
|
+
let type = getDataTypeFromTypedArray(array);
|
|
1511
|
+
if (type !== "null") {
|
|
1512
|
+
return { type, nullable: false };
|
|
1513
|
+
}
|
|
1514
|
+
if (array.length > 0) {
|
|
1515
|
+
type = getDataTypeFromValue(array[0]);
|
|
1516
|
+
return { type, nullable: true };
|
|
1517
|
+
}
|
|
1518
|
+
return { type: "null", nullable: true };
|
|
1519
|
+
}
|
|
1520
|
+
function getDataTypeFromTypedArray(array) {
|
|
1521
|
+
if (typeof Float16Array !== "undefined" && array instanceof Float16Array) {
|
|
1522
|
+
return "float16";
|
|
1523
|
+
}
|
|
1524
|
+
switch (array.constructor) {
|
|
1525
|
+
case Int8Array:
|
|
1526
|
+
return "int8";
|
|
1527
|
+
case Uint8Array:
|
|
1528
|
+
case Uint8ClampedArray:
|
|
1529
|
+
return "uint8";
|
|
1530
|
+
case Int16Array:
|
|
1531
|
+
return "int16";
|
|
1532
|
+
case Uint16Array:
|
|
1533
|
+
return "uint16";
|
|
1534
|
+
case Int32Array:
|
|
1535
|
+
return "int32";
|
|
1536
|
+
case Uint32Array:
|
|
1537
|
+
return "uint32";
|
|
1538
|
+
case BigInt64Array:
|
|
1539
|
+
return "int64";
|
|
1540
|
+
case BigUint64Array:
|
|
1541
|
+
return "uint64";
|
|
1542
|
+
case Float32Array:
|
|
1543
|
+
return "float32";
|
|
1544
|
+
case Float64Array:
|
|
1545
|
+
return "float64";
|
|
1546
|
+
default:
|
|
1547
|
+
return "null";
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
var init_data_type = __esm({
|
|
1551
|
+
"../core/src/schema-utils/lib/schema/data-type.ts"() {
|
|
1552
|
+
"use strict";
|
|
1553
|
+
}
|
|
1554
|
+
});
|
|
1555
|
+
|
|
779
1556
|
// ../../node_modules/tslib/tslib.es6.mjs
|
|
780
1557
|
function __rest(s, e) {
|
|
781
1558
|
var t = {};
|
|
@@ -8426,11 +9203,11 @@ return true;`);
|
|
|
8426
9203
|
this._offsets = new OffsetsBufferBuilder(opts.type);
|
|
8427
9204
|
}
|
|
8428
9205
|
setValue(index, value) {
|
|
8429
|
-
const
|
|
8430
|
-
const current =
|
|
9206
|
+
const pending2 = this._pending || (this._pending = /* @__PURE__ */ new Map());
|
|
9207
|
+
const current = pending2.get(index);
|
|
8431
9208
|
current && (this._pendingLength -= current.length);
|
|
8432
9209
|
this._pendingLength += value instanceof MapRow ? value[kKeys].length : value.length;
|
|
8433
|
-
|
|
9210
|
+
pending2.set(index, value);
|
|
8434
9211
|
}
|
|
8435
9212
|
setValid(index, isValid) {
|
|
8436
9213
|
if (!super.setValid(index, isValid)) {
|
|
@@ -8453,12 +9230,12 @@ return true;`);
|
|
|
8453
9230
|
return super.finish();
|
|
8454
9231
|
}
|
|
8455
9232
|
_flush() {
|
|
8456
|
-
const
|
|
9233
|
+
const pending2 = this._pending;
|
|
8457
9234
|
const pendingLength = this._pendingLength;
|
|
8458
9235
|
this._pendingLength = 0;
|
|
8459
9236
|
this._pending = void 0;
|
|
8460
|
-
if (
|
|
8461
|
-
this._flushPending(
|
|
9237
|
+
if (pending2 && pending2.size > 0) {
|
|
9238
|
+
this._flushPending(pending2, pendingLength);
|
|
8462
9239
|
}
|
|
8463
9240
|
return this;
|
|
8464
9241
|
}
|
|
@@ -11044,11 +11821,11 @@ return true;`);
|
|
|
11044
11821
|
setValue(index, value) {
|
|
11045
11822
|
return super.setValue(index, toUint8Array(value));
|
|
11046
11823
|
}
|
|
11047
|
-
_flushPending(
|
|
11824
|
+
_flushPending(pending2, pendingLength) {
|
|
11048
11825
|
const offsets = this._offsets;
|
|
11049
11826
|
const data = this._values.reserve(pendingLength).buffer;
|
|
11050
11827
|
let offset = 0;
|
|
11051
|
-
for (const [index, value] of
|
|
11828
|
+
for (const [index, value] of pending2) {
|
|
11052
11829
|
if (value === void 0) {
|
|
11053
11830
|
offsets.set(index, 0);
|
|
11054
11831
|
} else {
|
|
@@ -11085,11 +11862,11 @@ return true;`);
|
|
|
11085
11862
|
setValue(index, value) {
|
|
11086
11863
|
return super.setValue(index, toUint8Array(value));
|
|
11087
11864
|
}
|
|
11088
|
-
_flushPending(
|
|
11865
|
+
_flushPending(pending2, pendingLength) {
|
|
11089
11866
|
const offsets = this._offsets;
|
|
11090
11867
|
const data = this._values.reserve(pendingLength).buffer;
|
|
11091
11868
|
let offset = 0;
|
|
11092
|
-
for (const [index, value] of
|
|
11869
|
+
for (const [index, value] of pending2) {
|
|
11093
11870
|
if (value === void 0) {
|
|
11094
11871
|
offsets.set(index, BigInt(0));
|
|
11095
11872
|
} else {
|
|
@@ -11400,10 +12177,10 @@ return true;`);
|
|
|
11400
12177
|
this.type = new List2(new Field2(name, child.type, true));
|
|
11401
12178
|
return this.numChildren - 1;
|
|
11402
12179
|
}
|
|
11403
|
-
_flushPending(
|
|
12180
|
+
_flushPending(pending2) {
|
|
11404
12181
|
const offsets = this._offsets;
|
|
11405
12182
|
const [child] = this.children;
|
|
11406
|
-
for (const [index, value] of
|
|
12183
|
+
for (const [index, value] of pending2) {
|
|
11407
12184
|
if (typeof value === "undefined") {
|
|
11408
12185
|
offsets.set(index, 0);
|
|
11409
12186
|
} else {
|
|
@@ -11442,10 +12219,10 @@ return true;`);
|
|
|
11442
12219
|
this.type = new LargeList2(new Field2(name, child.type, true));
|
|
11443
12220
|
return this.numChildren - 1;
|
|
11444
12221
|
}
|
|
11445
|
-
_flushPending(
|
|
12222
|
+
_flushPending(pending2) {
|
|
11446
12223
|
const offsets = this._offsets;
|
|
11447
12224
|
const [child] = this.children;
|
|
11448
|
-
for (const [index, value] of
|
|
12225
|
+
for (const [index, value] of pending2) {
|
|
11449
12226
|
if (typeof value === "undefined") {
|
|
11450
12227
|
offsets.set(index, BigInt(0));
|
|
11451
12228
|
} else {
|
|
@@ -11475,11 +12252,11 @@ return true;`);
|
|
|
11475
12252
|
}
|
|
11476
12253
|
setValue(index, value) {
|
|
11477
12254
|
const row = value instanceof Map ? value : new Map(Object.entries(value));
|
|
11478
|
-
const
|
|
11479
|
-
const current =
|
|
12255
|
+
const pending2 = this._pending || (this._pending = /* @__PURE__ */ new Map());
|
|
12256
|
+
const current = pending2.get(index);
|
|
11480
12257
|
current && (this._pendingLength -= current.size);
|
|
11481
12258
|
this._pendingLength += row.size;
|
|
11482
|
-
|
|
12259
|
+
pending2.set(index, row);
|
|
11483
12260
|
}
|
|
11484
12261
|
addChild(child, name = `${this.numChildren}`) {
|
|
11485
12262
|
if (this.numChildren > 0) {
|
|
@@ -11489,10 +12266,10 @@ return true;`);
|
|
|
11489
12266
|
this.type = new Map_(new Field2(name, child.type, true), this.type.keysSorted);
|
|
11490
12267
|
return this.numChildren - 1;
|
|
11491
12268
|
}
|
|
11492
|
-
_flushPending(
|
|
12269
|
+
_flushPending(pending2) {
|
|
11493
12270
|
const offsets = this._offsets;
|
|
11494
12271
|
const [child] = this.children;
|
|
11495
|
-
for (const [index, value] of
|
|
12272
|
+
for (const [index, value] of pending2) {
|
|
11496
12273
|
if (value === void 0) {
|
|
11497
12274
|
offsets.set(index, 0);
|
|
11498
12275
|
} else {
|
|
@@ -11701,7 +12478,7 @@ return true;`);
|
|
|
11701
12478
|
return super.setValue(index, encodeUtf8(value));
|
|
11702
12479
|
}
|
|
11703
12480
|
// @ts-ignore
|
|
11704
|
-
_flushPending(
|
|
12481
|
+
_flushPending(pending2, pendingLength) {
|
|
11705
12482
|
}
|
|
11706
12483
|
};
|
|
11707
12484
|
Utf8Builder.prototype._flushPending = BinaryBuilder.prototype._flushPending;
|
|
@@ -11732,7 +12509,7 @@ return true;`);
|
|
|
11732
12509
|
return super.setValue(index, encodeUtf8(value));
|
|
11733
12510
|
}
|
|
11734
12511
|
// @ts-ignore
|
|
11735
|
-
_flushPending(
|
|
12512
|
+
_flushPending(pending2, pendingLength) {
|
|
11736
12513
|
}
|
|
11737
12514
|
};
|
|
11738
12515
|
LargeUtf8Builder.prototype._flushPending = LargeBinaryBuilder.prototype._flushPending;
|
|
@@ -16111,260 +16888,105 @@ return true;`);
|
|
|
16111
16888
|
}
|
|
16112
16889
|
});
|
|
16113
16890
|
|
|
16114
|
-
// ../core/src/
|
|
16115
|
-
function
|
|
16116
|
-
|
|
16117
|
-
|
|
16118
|
-
return splitArrowTableBuffersInternal(input, context);
|
|
16119
|
-
}
|
|
16120
|
-
if (isArrowRecordBatch2(input)) {
|
|
16121
|
-
return splitArrowRecordBatchBuffers(input, context);
|
|
16122
|
-
}
|
|
16123
|
-
if (isArrowVector2(input)) {
|
|
16124
|
-
return splitArrowVectorBuffers(input, context);
|
|
16125
|
-
}
|
|
16126
|
-
return splitArrowDataBuffers(input, context);
|
|
16127
|
-
}
|
|
16128
|
-
function isArrowTable2(input) {
|
|
16129
|
-
return "batches" in input;
|
|
16130
|
-
}
|
|
16131
|
-
function isArrowRecordBatch2(input) {
|
|
16132
|
-
return "schema" in input && "data" in input && !Array.isArray(input.data);
|
|
16133
|
-
}
|
|
16134
|
-
function isArrowVector2(input) {
|
|
16135
|
-
return "data" in input && Array.isArray(input.data);
|
|
16136
|
-
}
|
|
16137
|
-
function splitArrowTableBuffersInternal(table, options) {
|
|
16138
|
-
const recordBatches = table.batches.map(
|
|
16139
|
-
(recordBatch) => splitArrowRecordBatchBuffers(recordBatch, options)
|
|
16140
|
-
);
|
|
16141
|
-
return new Table(table.schema, recordBatches);
|
|
16142
|
-
}
|
|
16143
|
-
function splitArrowRecordBatchBuffers(recordBatch, options) {
|
|
16144
|
-
return new RecordBatch3(
|
|
16145
|
-
recordBatch.schema,
|
|
16146
|
-
splitArrowDataBuffers(recordBatch.data, options)
|
|
16147
|
-
);
|
|
16148
|
-
}
|
|
16149
|
-
function splitArrowDataBuffers(data, options) {
|
|
16150
|
-
const children = data.children.map((childData) => splitArrowDataBuffers(childData, options));
|
|
16151
|
-
const dictionary = data.dictionary ? splitArrowVectorBuffers(data.dictionary, options) : void 0;
|
|
16152
|
-
const buffers = {
|
|
16153
|
-
[BufferType.OFFSET]: splitArrowBuffer(data.buffers[BufferType.OFFSET], options),
|
|
16154
|
-
[BufferType.DATA]: splitArrowBuffer(data.buffers[BufferType.DATA], options),
|
|
16155
|
-
[BufferType.VALIDITY]: splitArrowBuffer(data.buffers[BufferType.VALIDITY], options),
|
|
16156
|
-
[BufferType.TYPE]: splitArrowBuffer(data.buffers[BufferType.TYPE], options)
|
|
16157
|
-
};
|
|
16158
|
-
return new Data(
|
|
16159
|
-
data.type,
|
|
16160
|
-
data.offset,
|
|
16161
|
-
data.length,
|
|
16162
|
-
// @ts-expect-error _nullCount is protected. Reuse it to preserve lazy null-count state.
|
|
16163
|
-
data._nullCount,
|
|
16164
|
-
buffers,
|
|
16165
|
-
children,
|
|
16166
|
-
dictionary
|
|
16891
|
+
// ../core/src/lib/loader-utils/native-arrow.ts
|
|
16892
|
+
function isNativeArrowTable(value) {
|
|
16893
|
+
return Boolean(
|
|
16894
|
+
value && typeof value === "object" && "schema" in value && "batches" in value && Array.isArray(value.batches) && "numRows" in value && typeof value.numRows === "number" && "getChildAt" in value && typeof value.getChildAt === "function"
|
|
16167
16895
|
);
|
|
16168
16896
|
}
|
|
16169
|
-
|
|
16170
|
-
|
|
16171
|
-
}
|
|
16172
|
-
function splitArrowBuffer(array, options) {
|
|
16173
|
-
if (!isArrowTypedArray(array)) {
|
|
16174
|
-
return array;
|
|
16175
|
-
}
|
|
16176
|
-
if (options.copy === "none") {
|
|
16177
|
-
return array;
|
|
16178
|
-
}
|
|
16179
|
-
if (options.copy !== "all" && array.byteOffset === 0 && array.byteLength === array.buffer.byteLength) {
|
|
16180
|
-
return array;
|
|
16181
|
-
}
|
|
16182
|
-
let copy = options.copies.get(array);
|
|
16183
|
-
if (!copy) {
|
|
16184
|
-
copy = array.slice();
|
|
16185
|
-
options.copies.set(array, copy);
|
|
16186
|
-
}
|
|
16187
|
-
return copy;
|
|
16188
|
-
}
|
|
16189
|
-
function isArrowTypedArray(value) {
|
|
16190
|
-
return ArrayBuffer.isView(value) && !(value instanceof DataView);
|
|
16191
|
-
}
|
|
16192
|
-
var init_split_arrow_buffers = __esm({
|
|
16193
|
-
"../core/src/schema-utils/lib/arrow/split-arrow-buffers.ts"() {
|
|
16897
|
+
var init_native_arrow = __esm({
|
|
16898
|
+
"../core/src/lib/loader-utils/native-arrow.ts"() {
|
|
16194
16899
|
"use strict";
|
|
16195
|
-
init_Arrow_dom();
|
|
16196
16900
|
}
|
|
16197
16901
|
});
|
|
16198
16902
|
|
|
16199
|
-
// ../core/src/schema-utils/lib/arrow/arrow-
|
|
16200
|
-
function
|
|
16201
|
-
|
|
16202
|
-
|
|
16203
|
-
|
|
16204
|
-
|
|
16205
|
-
|
|
16206
|
-
|
|
16207
|
-
|
|
16208
|
-
|
|
16209
|
-
|
|
16210
|
-
|
|
16211
|
-
|
|
16212
|
-
|
|
16213
|
-
);
|
|
16214
|
-
return new Table(schema, recordBatches);
|
|
16903
|
+
// ../core/src/schema-utils/lib/arrow/arrow-metadata.ts
|
|
16904
|
+
function snapshotArrowSchema(schema) {
|
|
16905
|
+
return deserializeArrowSchema(serializeArrowSchema(schema));
|
|
16906
|
+
}
|
|
16907
|
+
function mergeArrowSchemas(previous, next) {
|
|
16908
|
+
if (!previous) return snapshotArrowSchema(next);
|
|
16909
|
+
new Table(previous, [new RecordBatch3(next, void 0)]);
|
|
16910
|
+
const earlier = serializeArrowSchema(previous);
|
|
16911
|
+
const later = serializeArrowSchema(next);
|
|
16912
|
+
return deserializeArrowSchema({
|
|
16913
|
+
...later,
|
|
16914
|
+
fields: later.fields.map((field, index) => mergeFieldMetadata(earlier.fields[index], field)),
|
|
16915
|
+
metadata: { ...earlier.metadata, ...later.metadata }
|
|
16916
|
+
});
|
|
16215
16917
|
}
|
|
16216
|
-
function
|
|
16217
|
-
if (!isArrowTableWrapper(result)) {
|
|
16218
|
-
throw new Error("Workers require Arrow table output");
|
|
16219
|
-
}
|
|
16220
|
-
const { data, ...metadata } = result;
|
|
16918
|
+
function mergeFieldMetadata(previous, next) {
|
|
16221
16919
|
return {
|
|
16222
|
-
...
|
|
16223
|
-
|
|
16920
|
+
...next,
|
|
16921
|
+
type: mergeTypeMetadata(previous.type, next.type),
|
|
16922
|
+
metadata: { ...previous.metadata, ...next.metadata }
|
|
16224
16923
|
};
|
|
16225
16924
|
}
|
|
16226
|
-
function
|
|
16227
|
-
if (
|
|
16228
|
-
|
|
16925
|
+
function mergeTypeMetadata(previous, next) {
|
|
16926
|
+
if (typeof previous !== "object" || typeof next !== "object") return next;
|
|
16927
|
+
if ("children" in previous && "children" in next) {
|
|
16928
|
+
const previousChildren = previous.children;
|
|
16929
|
+
return {
|
|
16930
|
+
...next,
|
|
16931
|
+
children: next.children.map(
|
|
16932
|
+
(field, index) => mergeFieldMetadata(previousChildren[index], field)
|
|
16933
|
+
)
|
|
16934
|
+
};
|
|
16229
16935
|
}
|
|
16230
|
-
|
|
16231
|
-
|
|
16232
|
-
|
|
16233
|
-
|
|
16234
|
-
return Boolean(
|
|
16235
|
-
table && table.shape === "arrow-table" && table.data && typeof table.data === "object" && "batches" in table.data
|
|
16236
|
-
);
|
|
16936
|
+
if (previous.type === "dictionary" && next.type === "dictionary") {
|
|
16937
|
+
return { ...next, dictionary: mergeTypeMetadata(previous.dictionary, next.dictionary) };
|
|
16938
|
+
}
|
|
16939
|
+
return next;
|
|
16237
16940
|
}
|
|
16238
|
-
function
|
|
16239
|
-
const
|
|
16240
|
-
|
|
16241
|
-
|
|
16941
|
+
function updateArrowTableSchema(table, schema) {
|
|
16942
|
+
const snapshot = snapshotArrowSchema(schema);
|
|
16943
|
+
const batches = table.batches.map(
|
|
16944
|
+
(batch) => new RecordBatch3(snapshotArrowSchema(snapshot), batch.data, new Map(batch.metadata))
|
|
16242
16945
|
);
|
|
16243
|
-
|
|
16244
|
-
|
|
16245
|
-
|
|
16246
|
-
}
|
|
16247
|
-
function dehydrateArrowData(data) {
|
|
16248
|
-
return {
|
|
16249
|
-
type: serializeArrowType(data.type),
|
|
16250
|
-
offset: data.offset,
|
|
16251
|
-
length: data.length,
|
|
16252
|
-
// @ts-expect-error _nullCount is protected. Preserve the Arrow lazy null-count state.
|
|
16253
|
-
nullCount: data._nullCount,
|
|
16254
|
-
buffers: {
|
|
16255
|
-
[BufferType.OFFSET]: data.buffers[BufferType.OFFSET],
|
|
16256
|
-
[BufferType.DATA]: data.buffers[BufferType.DATA],
|
|
16257
|
-
[BufferType.VALIDITY]: data.buffers[BufferType.VALIDITY],
|
|
16258
|
-
[BufferType.TYPE]: data.buffers[BufferType.TYPE]
|
|
16259
|
-
},
|
|
16260
|
-
children: data.children.map((childData) => dehydrateArrowData(childData)),
|
|
16261
|
-
dictionary: data.dictionary ? dehydrateArrowVector(data.dictionary) : void 0
|
|
16262
|
-
};
|
|
16263
|
-
}
|
|
16264
|
-
function dehydrateArrowVector(vector) {
|
|
16265
|
-
return { data: vector.data.map((data) => dehydrateArrowData(data)) };
|
|
16266
|
-
}
|
|
16267
|
-
function hydrateArrowData(data) {
|
|
16268
|
-
const children = data.children.map((childData) => hydrateArrowData(childData));
|
|
16269
|
-
const dictionary = data.dictionary ? hydrateArrowVector(data.dictionary) : void 0;
|
|
16270
|
-
return new Data(
|
|
16271
|
-
deserializeArrowType(data.type),
|
|
16272
|
-
data.offset,
|
|
16273
|
-
data.length,
|
|
16274
|
-
data.nullCount,
|
|
16275
|
-
data.buffers,
|
|
16276
|
-
children,
|
|
16277
|
-
dictionary
|
|
16946
|
+
return new Table(
|
|
16947
|
+
snapshot,
|
|
16948
|
+
batches.length ? batches : [new RecordBatch3(snapshotArrowSchema(snapshot), void 0)]
|
|
16278
16949
|
);
|
|
16279
16950
|
}
|
|
16280
|
-
function
|
|
16281
|
-
return new
|
|
16282
|
-
}
|
|
16283
|
-
var init_arrow_table_transport = __esm({
|
|
16284
|
-
"../core/src/schema-utils/lib/arrow/arrow-table-transport.ts"() {
|
|
16285
|
-
"use strict";
|
|
16286
|
-
init_Arrow_dom();
|
|
16287
|
-
init_convert_arrow_schema();
|
|
16288
|
-
init_split_arrow_buffers();
|
|
16289
|
-
}
|
|
16290
|
-
});
|
|
16291
|
-
|
|
16292
|
-
// ../core/src/schema-utils/arrow-transport.ts
|
|
16293
|
-
var init_arrow_transport = __esm({
|
|
16294
|
-
"../core/src/schema-utils/arrow-transport.ts"() {
|
|
16295
|
-
"use strict";
|
|
16296
|
-
init_arrow_table_transport();
|
|
16297
|
-
init_split_arrow_buffers();
|
|
16298
|
-
}
|
|
16299
|
-
});
|
|
16300
|
-
|
|
16301
|
-
// ../core/src/schema-utils/lib/schema/data-type.ts
|
|
16302
|
-
function getDataTypeFromValue(value, defaultNumberType = "float32") {
|
|
16303
|
-
if (value instanceof Date) {
|
|
16304
|
-
return "date-millisecond";
|
|
16305
|
-
}
|
|
16306
|
-
if (typeof value === "number") {
|
|
16307
|
-
return defaultNumberType;
|
|
16308
|
-
}
|
|
16309
|
-
if (typeof value === "boolean") {
|
|
16310
|
-
return "bool";
|
|
16311
|
-
}
|
|
16312
|
-
if (typeof value === "string") {
|
|
16313
|
-
return "utf8";
|
|
16314
|
-
}
|
|
16315
|
-
if (value === null || value === "undefined") {
|
|
16316
|
-
return "null";
|
|
16317
|
-
}
|
|
16318
|
-
return "null";
|
|
16319
|
-
}
|
|
16320
|
-
function getDataTypeFromArray(array) {
|
|
16321
|
-
let type = getDataTypeFromTypedArray(array);
|
|
16322
|
-
if (type !== "null") {
|
|
16323
|
-
return { type, nullable: false };
|
|
16324
|
-
}
|
|
16325
|
-
if (array.length > 0) {
|
|
16326
|
-
type = getDataTypeFromValue(array[0]);
|
|
16327
|
-
return { type, nullable: true };
|
|
16328
|
-
}
|
|
16329
|
-
return { type: "null", nullable: true };
|
|
16951
|
+
function makeArrowMetadataBatch(schema) {
|
|
16952
|
+
return new RecordBatch3(snapshotArrowSchema(schema), void 0);
|
|
16330
16953
|
}
|
|
16331
|
-
function
|
|
16332
|
-
|
|
16333
|
-
|
|
16334
|
-
|
|
16335
|
-
|
|
16336
|
-
|
|
16337
|
-
|
|
16338
|
-
|
|
16339
|
-
|
|
16340
|
-
|
|
16341
|
-
|
|
16342
|
-
|
|
16343
|
-
|
|
16344
|
-
|
|
16345
|
-
|
|
16346
|
-
|
|
16347
|
-
|
|
16348
|
-
|
|
16349
|
-
|
|
16350
|
-
|
|
16351
|
-
|
|
16352
|
-
|
|
16353
|
-
|
|
16354
|
-
|
|
16355
|
-
|
|
16356
|
-
return "float64";
|
|
16357
|
-
default:
|
|
16358
|
-
return "null";
|
|
16954
|
+
async function* refineArrowTableBatches(batches) {
|
|
16955
|
+
let schema;
|
|
16956
|
+
let bounds;
|
|
16957
|
+
for await (const batch of batches) {
|
|
16958
|
+
const table = batch;
|
|
16959
|
+
if (table?.shape !== "arrow-table") {
|
|
16960
|
+
yield batch;
|
|
16961
|
+
continue;
|
|
16962
|
+
}
|
|
16963
|
+
const localBounds = table.data.schema.metadata.get("boundingBox");
|
|
16964
|
+
const nextSchema = snapshotArrowSchema(table.data.schema);
|
|
16965
|
+
if (localBounds) {
|
|
16966
|
+
const nextBounds = JSON.parse(localBounds);
|
|
16967
|
+
bounds = bounds ? [
|
|
16968
|
+
nextBounds[0].map((value, index) => Math.min(bounds[0][index], value)),
|
|
16969
|
+
nextBounds[1].map((value, index) => Math.max(bounds[1][index], value))
|
|
16970
|
+
] : nextBounds;
|
|
16971
|
+
nextSchema.metadata.set("boundingBox", JSON.stringify(bounds));
|
|
16972
|
+
}
|
|
16973
|
+
schema = mergeArrowSchemas(schema, nextSchema);
|
|
16974
|
+
const data = updateArrowTableSchema(table.data, schema);
|
|
16975
|
+
if (localBounds) {
|
|
16976
|
+
for (const recordBatch of data.batches) recordBatch.metadata.set("boundingBox", localBounds);
|
|
16977
|
+
}
|
|
16978
|
+
yield { ...table, data, schema: serializeArrowSchema(data.schema) };
|
|
16359
16979
|
}
|
|
16360
16980
|
}
|
|
16361
|
-
var
|
|
16362
|
-
"../core/src/schema-utils/lib/
|
|
16981
|
+
var init_arrow_metadata = __esm({
|
|
16982
|
+
"../core/src/schema-utils/lib/arrow/arrow-metadata.ts"() {
|
|
16363
16983
|
"use strict";
|
|
16984
|
+
init_Arrow_dom();
|
|
16985
|
+
init_convert_arrow_schema();
|
|
16364
16986
|
}
|
|
16365
16987
|
});
|
|
16366
16988
|
|
|
16367
|
-
// ../core/src/schema-utils/lib/mesh/mesh-
|
|
16989
|
+
// ../core/src/schema-utils/lib/mesh/get-mesh-bounding-box.ts
|
|
16368
16990
|
function getMeshBoundingBox(attributes) {
|
|
16369
16991
|
const positionAttribute = attributes?.POSITION;
|
|
16370
16992
|
if (!positionAttribute || !("value" in positionAttribute) || !positionAttribute.value.length) {
|
|
@@ -16394,9 +17016,17 @@ return true;`);
|
|
|
16394
17016
|
[maxX, maxY, maxZ]
|
|
16395
17017
|
];
|
|
16396
17018
|
}
|
|
17019
|
+
var init_get_mesh_bounding_box = __esm({
|
|
17020
|
+
"../core/src/schema-utils/lib/mesh/get-mesh-bounding-box.ts"() {
|
|
17021
|
+
"use strict";
|
|
17022
|
+
}
|
|
17023
|
+
});
|
|
17024
|
+
|
|
17025
|
+
// ../core/src/schema-utils/lib/mesh/mesh-utils.ts
|
|
16397
17026
|
var init_mesh_utils = __esm({
|
|
16398
17027
|
"../core/src/schema-utils/lib/mesh/mesh-utils.ts"() {
|
|
16399
17028
|
"use strict";
|
|
17029
|
+
init_get_mesh_bounding_box();
|
|
16400
17030
|
}
|
|
16401
17031
|
});
|
|
16402
17032
|
|
|
@@ -16465,7 +17095,7 @@ return true;`);
|
|
|
16465
17095
|
var init_float162 = __esm({
|
|
16466
17096
|
"../core/src/schema/float16.ts"() {
|
|
16467
17097
|
"use strict";
|
|
16468
|
-
|
|
17098
|
+
init_dist2();
|
|
16469
17099
|
}
|
|
16470
17100
|
});
|
|
16471
17101
|
|
|
@@ -16549,31 +17179,7 @@ return true;`);
|
|
|
16549
17179
|
});
|
|
16550
17180
|
|
|
16551
17181
|
// ../core/src/schema-utils/lib/mesh/convert-mesh-to-table.ts
|
|
16552
|
-
function
|
|
16553
|
-
switch (shape) {
|
|
16554
|
-
case "columnar-table":
|
|
16555
|
-
return convertMeshToColumnarTable(mesh);
|
|
16556
|
-
case "arrow-table":
|
|
16557
|
-
return convertMeshToArrowTable(mesh);
|
|
16558
|
-
default:
|
|
16559
|
-
throw new Error(shape);
|
|
16560
|
-
}
|
|
16561
|
-
}
|
|
16562
|
-
function convertMeshToColumnarTable(mesh) {
|
|
16563
|
-
const columns = {};
|
|
16564
|
-
const hasIndices = hasMeshIndices(mesh);
|
|
16565
|
-
for (const [columnName, attribute] of Object.entries(mesh.attributes)) {
|
|
16566
|
-
columns[columnName] = attribute.value;
|
|
16567
|
-
}
|
|
16568
|
-
return {
|
|
16569
|
-
shape: "columnar-table",
|
|
16570
|
-
schema: mesh.schema,
|
|
16571
|
-
data: columns,
|
|
16572
|
-
topology: mesh.topology,
|
|
16573
|
-
indices: hasIndices ? mesh.indices : void 0
|
|
16574
|
-
};
|
|
16575
|
-
}
|
|
16576
|
-
function convertMeshToArrowTable(mesh, batchSize) {
|
|
17182
|
+
function convertMeshToArrowTableWrapper(mesh, batchSize) {
|
|
16577
17183
|
return makeMeshArrowTable(mesh.attributes, {
|
|
16578
17184
|
schema: mesh.schema,
|
|
16579
17185
|
topology: mesh.topology,
|
|
@@ -16734,6 +17340,7 @@ return true;`);
|
|
|
16734
17340
|
|
|
16735
17341
|
// ../core/src/schema-utils/lib/mesh/convert-table-to-mesh.ts
|
|
16736
17342
|
function convertTableToMesh(table) {
|
|
17343
|
+
if (isNativeArrowTable(table)) return convertArrowTableToMesh(table);
|
|
16737
17344
|
switch (table.shape) {
|
|
16738
17345
|
// case 'columnar-table':
|
|
16739
17346
|
// return convertColumnarTableToMesh(table);
|
|
@@ -16744,8 +17351,10 @@ return true;`);
|
|
|
16744
17351
|
}
|
|
16745
17352
|
}
|
|
16746
17353
|
function convertArrowTableToMesh(table) {
|
|
16747
|
-
const arrowTable = table.data;
|
|
17354
|
+
const arrowTable = isNativeArrowTable(table) ? table : table.data;
|
|
16748
17355
|
const schema = serializeArrowSchema(arrowTable.schema);
|
|
17356
|
+
const localBounds = arrowTable.batches.length === 1 ? arrowTable.batches[0].metadata.get("boundingBox") : void 0;
|
|
17357
|
+
if (localBounds) schema.metadata = { ...schema.metadata, boundingBox: localBounds };
|
|
16749
17358
|
const fields = schema.fields;
|
|
16750
17359
|
const attributes = {};
|
|
16751
17360
|
const columns = [];
|
|
@@ -16900,6 +17509,7 @@ return true;`);
|
|
|
16900
17509
|
init_Arrow_dom();
|
|
16901
17510
|
init_arrow_fixed_size_list_utils();
|
|
16902
17511
|
init_convert_arrow_schema();
|
|
17512
|
+
init_native_arrow();
|
|
16903
17513
|
init_mesh_utils();
|
|
16904
17514
|
}
|
|
16905
17515
|
});
|
|
@@ -16912,6 +17522,377 @@ return true;`);
|
|
|
16912
17522
|
init_mesh_utils();
|
|
16913
17523
|
init_convert_mesh_to_table();
|
|
16914
17524
|
init_convert_table_to_mesh();
|
|
17525
|
+
init_arrow_metadata();
|
|
17526
|
+
init_arrow_metadata();
|
|
17527
|
+
}
|
|
17528
|
+
});
|
|
17529
|
+
|
|
17530
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-helpers.js
|
|
17531
|
+
var init_indexed_arrow_helpers = __esm({
|
|
17532
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-helpers.js"() {
|
|
17533
|
+
}
|
|
17534
|
+
});
|
|
17535
|
+
|
|
17536
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/arrow-schema-utils.js
|
|
17537
|
+
var init_arrow_schema_utils = __esm({
|
|
17538
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/arrow-schema-utils.js"() {
|
|
17539
|
+
}
|
|
17540
|
+
});
|
|
17541
|
+
|
|
17542
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/arrow-data.js
|
|
17543
|
+
function getArrowVariadicBuffers(data) {
|
|
17544
|
+
return data.variadicBuffers ?? [];
|
|
17545
|
+
}
|
|
17546
|
+
function createArrowData(type, offset, length, nullCount, buffers, children, dictionary, variadicBuffers) {
|
|
17547
|
+
return Reflect.construct(Data, [
|
|
17548
|
+
type,
|
|
17549
|
+
offset,
|
|
17550
|
+
length,
|
|
17551
|
+
nullCount,
|
|
17552
|
+
buffers,
|
|
17553
|
+
children,
|
|
17554
|
+
dictionary,
|
|
17555
|
+
variadicBuffers
|
|
17556
|
+
]);
|
|
17557
|
+
}
|
|
17558
|
+
var init_arrow_data = __esm({
|
|
17559
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/arrow-data.js"() {
|
|
17560
|
+
init_Arrow_dom();
|
|
17561
|
+
}
|
|
17562
|
+
});
|
|
17563
|
+
|
|
17564
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/arrow-record-batch.js
|
|
17565
|
+
function getRecordBatchMetadata(batch) {
|
|
17566
|
+
return batch.metadata;
|
|
17567
|
+
}
|
|
17568
|
+
function createRecordBatchWithMetadata(schema, data, metadata) {
|
|
17569
|
+
if ("metadata" in RecordBatch3.prototype) {
|
|
17570
|
+
const MetadataRecordBatch = RecordBatch3;
|
|
17571
|
+
return Object.assign(new MetadataRecordBatch(schema, data, metadata), { data });
|
|
17572
|
+
}
|
|
17573
|
+
const batch = Object.assign(new RecordBatch3(schema, data), { data });
|
|
17574
|
+
return metadata === void 0 ? batch : Object.assign(batch, { metadata });
|
|
17575
|
+
}
|
|
17576
|
+
var init_arrow_record_batch = __esm({
|
|
17577
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/arrow-record-batch.js"() {
|
|
17578
|
+
init_Arrow_dom();
|
|
17579
|
+
}
|
|
17580
|
+
});
|
|
17581
|
+
|
|
17582
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/split-arrow-buffers.js
|
|
17583
|
+
function splitArrowBuffers(input, options = {}) {
|
|
17584
|
+
const retainedBuffers = /* @__PURE__ */ new Set();
|
|
17585
|
+
const visited = /* @__PURE__ */ new Set();
|
|
17586
|
+
for (const retained of options.retain ?? []) {
|
|
17587
|
+
const chunks = isArrowTable2(retained) ? retained.batches.map((batch) => batch.data) : isArrowVector2(retained) ? retained.data : [isArrowRecordBatch2(retained) ? retained.data : retained];
|
|
17588
|
+
for (const data of chunks)
|
|
17589
|
+
collectArrowBuffers(data, retainedBuffers, visited);
|
|
17590
|
+
}
|
|
17591
|
+
const context = { ...options, copies: /* @__PURE__ */ new WeakMap(), retainedBuffers };
|
|
17592
|
+
if (isArrowTable2(input)) {
|
|
17593
|
+
return splitArrowTableBuffersInternal(input, context);
|
|
17594
|
+
}
|
|
17595
|
+
if (isArrowRecordBatch2(input)) {
|
|
17596
|
+
return splitArrowRecordBatchBuffers(input, context);
|
|
17597
|
+
}
|
|
17598
|
+
if (isArrowVector2(input)) {
|
|
17599
|
+
return splitArrowVectorBuffers(input, context);
|
|
17600
|
+
}
|
|
17601
|
+
return splitArrowDataBuffers(input, context);
|
|
17602
|
+
}
|
|
17603
|
+
function isArrowTable2(input) {
|
|
17604
|
+
return "batches" in input;
|
|
17605
|
+
}
|
|
17606
|
+
function isArrowRecordBatch2(input) {
|
|
17607
|
+
return "schema" in input && "data" in input && !Array.isArray(input.data);
|
|
17608
|
+
}
|
|
17609
|
+
function isArrowVector2(input) {
|
|
17610
|
+
return "data" in input && Array.isArray(input.data);
|
|
17611
|
+
}
|
|
17612
|
+
function splitArrowTableBuffersInternal(arrowTable, options) {
|
|
17613
|
+
const recordBatches = arrowTable.batches.map((recordBatch) => splitArrowRecordBatchBuffers(recordBatch, options));
|
|
17614
|
+
return new Table(arrowTable.schema, recordBatches);
|
|
17615
|
+
}
|
|
17616
|
+
function splitArrowRecordBatchBuffers(recordBatch, options) {
|
|
17617
|
+
const data = splitArrowDataBuffers(recordBatch.data, options);
|
|
17618
|
+
return createRecordBatchWithMetadata(recordBatch.schema, data, getRecordBatchMetadata(recordBatch));
|
|
17619
|
+
}
|
|
17620
|
+
function splitArrowDataBuffers(data, options) {
|
|
17621
|
+
const children = data.children.map((childData) => splitArrowDataBuffers(childData, options));
|
|
17622
|
+
const dictionary = data.dictionary ? splitArrowVectorBuffers(data.dictionary, options) : void 0;
|
|
17623
|
+
const buffers = {
|
|
17624
|
+
[BufferType.OFFSET]: splitArrowBuffer(data.buffers[BufferType.OFFSET], options),
|
|
17625
|
+
[BufferType.DATA]: splitArrowBuffer(data.buffers[BufferType.DATA], options),
|
|
17626
|
+
[BufferType.VALIDITY]: splitArrowBuffer(data.buffers[BufferType.VALIDITY], options),
|
|
17627
|
+
[BufferType.TYPE]: splitArrowBuffer(data.buffers[BufferType.TYPE], options)
|
|
17628
|
+
};
|
|
17629
|
+
return createArrowData(
|
|
17630
|
+
data.type,
|
|
17631
|
+
data.offset,
|
|
17632
|
+
data.length,
|
|
17633
|
+
// @ts-expect-error _nullCount is protected. Reuse it to preserve lazy null-count state.
|
|
17634
|
+
data._nullCount,
|
|
17635
|
+
buffers,
|
|
17636
|
+
children,
|
|
17637
|
+
dictionary,
|
|
17638
|
+
getArrowVariadicBuffers(data).map((buffer) => splitArrowBuffer(buffer, options))
|
|
17639
|
+
);
|
|
17640
|
+
}
|
|
17641
|
+
function splitArrowVectorBuffers(vector, options) {
|
|
17642
|
+
return new Vector(vector.data.map((data) => splitArrowDataBuffers(data, options)));
|
|
17643
|
+
}
|
|
17644
|
+
function collectArrowBuffers(data, buffers, visited) {
|
|
17645
|
+
if (visited.has(data))
|
|
17646
|
+
return;
|
|
17647
|
+
visited.add(data);
|
|
17648
|
+
for (const view of [...Object.values(data.buffers), ...getArrowVariadicBuffers(data)]) {
|
|
17649
|
+
if (isArrowTypedArray(view))
|
|
17650
|
+
buffers.add(view.buffer);
|
|
17651
|
+
}
|
|
17652
|
+
for (const child of data.children)
|
|
17653
|
+
collectArrowBuffers(child, buffers, visited);
|
|
17654
|
+
for (const chunk of data.dictionary?.data ?? [])
|
|
17655
|
+
collectArrowBuffers(chunk, buffers, visited);
|
|
17656
|
+
}
|
|
17657
|
+
function splitArrowBuffer(array, options) {
|
|
17658
|
+
if (!isArrowTypedArray(array)) {
|
|
17659
|
+
return array;
|
|
17660
|
+
}
|
|
17661
|
+
const sliced = array.byteOffset !== 0 || array.byteLength !== array.buffer.byteLength;
|
|
17662
|
+
if (!options.retainedBuffers.has(array.buffer) && options.copy !== "all" && (options.copy === "none" || !sliced)) {
|
|
17663
|
+
return array;
|
|
17664
|
+
}
|
|
17665
|
+
let copy = options.copies.get(array);
|
|
17666
|
+
if (!copy) {
|
|
17667
|
+
copy = array instanceof Uint8Array ? new Uint8Array(array) : array.slice();
|
|
17668
|
+
options.copies.set(array, copy);
|
|
17669
|
+
}
|
|
17670
|
+
return copy;
|
|
17671
|
+
}
|
|
17672
|
+
function isArrowTypedArray(value) {
|
|
17673
|
+
return ArrayBuffer.isView(value) && !(value instanceof DataView);
|
|
17674
|
+
}
|
|
17675
|
+
var init_split_arrow_buffers = __esm({
|
|
17676
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/split-arrow-buffers.js"() {
|
|
17677
|
+
init_Arrow_dom();
|
|
17678
|
+
init_arrow_record_batch();
|
|
17679
|
+
init_arrow_data();
|
|
17680
|
+
}
|
|
17681
|
+
});
|
|
17682
|
+
|
|
17683
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/take-arrow-rows.js
|
|
17684
|
+
var init_take_arrow_rows = __esm({
|
|
17685
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/take-arrow-rows.js"() {
|
|
17686
|
+
init_arrow_data();
|
|
17687
|
+
init_split_arrow_buffers();
|
|
17688
|
+
}
|
|
17689
|
+
});
|
|
17690
|
+
|
|
17691
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-vector.js
|
|
17692
|
+
var init_indexed_arrow_vector = __esm({
|
|
17693
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-vector.js"() {
|
|
17694
|
+
init_indexed_arrow_helpers();
|
|
17695
|
+
}
|
|
17696
|
+
});
|
|
17697
|
+
|
|
17698
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-table.js
|
|
17699
|
+
var init_indexed_arrow_table = __esm({
|
|
17700
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-table.js"() {
|
|
17701
|
+
init_indexed_arrow_helpers();
|
|
17702
|
+
init_arrow_schema_utils();
|
|
17703
|
+
init_take_arrow_rows();
|
|
17704
|
+
init_indexed_arrow_vector();
|
|
17705
|
+
}
|
|
17706
|
+
});
|
|
17707
|
+
|
|
17708
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/mapped-arrow-table.js
|
|
17709
|
+
var init_mapped_arrow_table = __esm({
|
|
17710
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/mapped-arrow-table.js"() {
|
|
17711
|
+
init_indexed_arrow_helpers();
|
|
17712
|
+
init_indexed_arrow_table();
|
|
17713
|
+
}
|
|
17714
|
+
});
|
|
17715
|
+
|
|
17716
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/rename-arrow-columns.js
|
|
17717
|
+
var init_rename_arrow_columns = __esm({
|
|
17718
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/rename-arrow-columns.js"() {
|
|
17719
|
+
init_arrow_schema_utils();
|
|
17720
|
+
}
|
|
17721
|
+
});
|
|
17722
|
+
|
|
17723
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/arrow-table-transport.js
|
|
17724
|
+
function dehydrateArrowTable(arrowTable, options) {
|
|
17725
|
+
const splitTable = splitArrowBuffers(arrowTable, options);
|
|
17726
|
+
return {
|
|
17727
|
+
transport: "arrow-js",
|
|
17728
|
+
version: 1,
|
|
17729
|
+
schema: tableToIPC(new Table(splitTable.schema, [])),
|
|
17730
|
+
metadataVersion: splitTable.schema.metadataVersion,
|
|
17731
|
+
batches: splitTable.batches.map((batch) => {
|
|
17732
|
+
const metadata = getRecordBatchMetadata(batch);
|
|
17733
|
+
return {
|
|
17734
|
+
...dehydrateArrowData(batch.data),
|
|
17735
|
+
...metadata !== void 0 ? { metadata: [...metadata] } : {}
|
|
17736
|
+
};
|
|
17737
|
+
})
|
|
17738
|
+
};
|
|
17739
|
+
}
|
|
17740
|
+
function hydrateArrowTable(table) {
|
|
17741
|
+
if (table.transport !== "arrow-js" || table.version !== 1) {
|
|
17742
|
+
throw new Error("Unsupported Arrow column-buffer transport protocol.");
|
|
17743
|
+
}
|
|
17744
|
+
const decodedSchema = tableFromIPC(table.schema).schema;
|
|
17745
|
+
const schema = new Schema2(decodedSchema.fields, decodedSchema.metadata, decodedSchema.dictionaries, table.metadataVersion);
|
|
17746
|
+
const type = new Struct(schema.fields);
|
|
17747
|
+
const batches = table.batches.map((payload) => {
|
|
17748
|
+
const data = hydrateArrowData(payload, type);
|
|
17749
|
+
return createRecordBatchWithMetadata(schema, data, payload.metadata && new Map(payload.metadata));
|
|
17750
|
+
});
|
|
17751
|
+
return new Table(schema, batches);
|
|
17752
|
+
}
|
|
17753
|
+
function dehydrateArrowData(data) {
|
|
17754
|
+
return {
|
|
17755
|
+
offset: data.offset,
|
|
17756
|
+
length: data.length,
|
|
17757
|
+
nullCount: data.nullCount,
|
|
17758
|
+
buffers: {
|
|
17759
|
+
[BufferType.OFFSET]: data.buffers[BufferType.OFFSET],
|
|
17760
|
+
[BufferType.DATA]: data.buffers[BufferType.DATA],
|
|
17761
|
+
[BufferType.VALIDITY]: data.buffers[BufferType.VALIDITY],
|
|
17762
|
+
[BufferType.TYPE]: data.buffers[BufferType.TYPE]
|
|
17763
|
+
},
|
|
17764
|
+
children: data.children.map((child) => dehydrateArrowData(child)),
|
|
17765
|
+
variadicBuffers: getArrowVariadicBuffers(data),
|
|
17766
|
+
dictionary: data.dictionary?.data.map((chunk) => dehydrateArrowData(chunk))
|
|
17767
|
+
};
|
|
17768
|
+
}
|
|
17769
|
+
function hydrateArrowData(data, type) {
|
|
17770
|
+
const children = data.children.map((child, index) => hydrateArrowData(child, type.children[index].type));
|
|
17771
|
+
const dictionary = data.dictionary && DataType.isDictionary(type) ? new Vector(data.dictionary.map((chunk) => hydrateArrowData(chunk, type.dictionary))) : void 0;
|
|
17772
|
+
return createArrowData(type, data.offset, data.length, data.nullCount, data.buffers, children, dictionary, data.variadicBuffers);
|
|
17773
|
+
}
|
|
17774
|
+
var init_arrow_table_transport = __esm({
|
|
17775
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/arrow-table-transport.js"() {
|
|
17776
|
+
init_Arrow_dom();
|
|
17777
|
+
init_arrow_record_batch();
|
|
17778
|
+
init_arrow_data();
|
|
17779
|
+
init_split_arrow_buffers();
|
|
17780
|
+
}
|
|
17781
|
+
});
|
|
17782
|
+
|
|
17783
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/arrow-column-utils.js
|
|
17784
|
+
var init_arrow_column_utils = __esm({
|
|
17785
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/arrow-column-utils.js"() {
|
|
17786
|
+
}
|
|
17787
|
+
});
|
|
17788
|
+
|
|
17789
|
+
// ../../node_modules/@math.gl/arrow/dist/arrow/index.js
|
|
17790
|
+
var init_arrow = __esm({
|
|
17791
|
+
"../../node_modules/@math.gl/arrow/dist/arrow/index.js"() {
|
|
17792
|
+
init_indexed_arrow_table();
|
|
17793
|
+
init_indexed_arrow_vector();
|
|
17794
|
+
init_mapped_arrow_table();
|
|
17795
|
+
init_arrow_schema_utils();
|
|
17796
|
+
init_rename_arrow_columns();
|
|
17797
|
+
init_split_arrow_buffers();
|
|
17798
|
+
init_arrow_table_transport();
|
|
17799
|
+
init_arrow_column_utils();
|
|
17800
|
+
init_take_arrow_rows();
|
|
17801
|
+
init_arrow_record_batch();
|
|
17802
|
+
}
|
|
17803
|
+
});
|
|
17804
|
+
|
|
17805
|
+
// ../../node_modules/@math.gl/arrow/dist/index.js
|
|
17806
|
+
var init_dist3 = __esm({
|
|
17807
|
+
"../../node_modules/@math.gl/arrow/dist/index.js"() {
|
|
17808
|
+
init_arrow();
|
|
17809
|
+
}
|
|
17810
|
+
});
|
|
17811
|
+
|
|
17812
|
+
// ../core/src/arrow-worker-transport.ts
|
|
17813
|
+
function serializeArrowWorkerTable(result) {
|
|
17814
|
+
if (!isArrowTableWrapper(result)) {
|
|
17815
|
+
throw new Error("Workers require Arrow table output");
|
|
17816
|
+
}
|
|
17817
|
+
const { data, shape: _shape, ...metadata } = result;
|
|
17818
|
+
return {
|
|
17819
|
+
transport: "arrow-column-envelope",
|
|
17820
|
+
metadata: structuredClone(metadata),
|
|
17821
|
+
...serializeWorkerColumns(data, { copy: "all" })
|
|
17822
|
+
};
|
|
17823
|
+
}
|
|
17824
|
+
function deserializeArrowWorkerTable(result) {
|
|
17825
|
+
if (isArrowWorkerEnvelope(result)) {
|
|
17826
|
+
return { ...result.metadata, shape: "arrow-table", data: hydrateWorkerTable(result) };
|
|
17827
|
+
}
|
|
17828
|
+
if (isLegacyArrowWorkerEnvelope(result)) {
|
|
17829
|
+
const { arrowBatchMetadata: _snapshots, data: _columns, ...metadata } = result;
|
|
17830
|
+
return { ...metadata, data: hydrateWorkerTable(result) };
|
|
17831
|
+
}
|
|
17832
|
+
throw new Error("Workers require Arrow column transport");
|
|
17833
|
+
}
|
|
17834
|
+
function isArrowTableWrapper(value) {
|
|
17835
|
+
const table = value;
|
|
17836
|
+
return Boolean(
|
|
17837
|
+
table && table.shape === "arrow-table" && table.data && typeof table.data === "object" && "batches" in table.data
|
|
17838
|
+
);
|
|
17839
|
+
}
|
|
17840
|
+
function hasArrowWorkerColumns(value) {
|
|
17841
|
+
const columns = value;
|
|
17842
|
+
return columns?.data?.transport === "arrow-js" && Array.isArray(columns.data.batches);
|
|
17843
|
+
}
|
|
17844
|
+
function isArrowWorkerEnvelope(value) {
|
|
17845
|
+
return value?.transport === "arrow-column-envelope" && hasArrowWorkerColumns(value);
|
|
17846
|
+
}
|
|
17847
|
+
function isLegacyArrowWorkerEnvelope(value) {
|
|
17848
|
+
return value?.shape === "arrow-table" && hasArrowWorkerColumns(value);
|
|
17849
|
+
}
|
|
17850
|
+
function serializeWorkerColumns(table, options) {
|
|
17851
|
+
return {
|
|
17852
|
+
arrowBatchMetadata: snapshotBatchMetadata(table),
|
|
17853
|
+
data: dehydrateWorkerTable(table, options)
|
|
17854
|
+
};
|
|
17855
|
+
}
|
|
17856
|
+
function dehydrateWorkerTable(table, options) {
|
|
17857
|
+
const payload = dehydrateArrowTable(table, options);
|
|
17858
|
+
if (table.numCols === 0) {
|
|
17859
|
+
for (const [index, batch] of table.batches.entries()) {
|
|
17860
|
+
payload.batches[index].length = batch.numRows;
|
|
17861
|
+
}
|
|
17862
|
+
}
|
|
17863
|
+
return payload;
|
|
17864
|
+
}
|
|
17865
|
+
function snapshotBatchMetadata(table) {
|
|
17866
|
+
return table.batches.map((batch) => ({
|
|
17867
|
+
schema: tableToIPC(new Table(batch.schema, [])),
|
|
17868
|
+
metadata: Array.from(batch.metadata)
|
|
17869
|
+
}));
|
|
17870
|
+
}
|
|
17871
|
+
function hydrateWorkerTable(result) {
|
|
17872
|
+
const { arrowBatchMetadata, data } = result;
|
|
17873
|
+
const table = hydrateArrowTable(data);
|
|
17874
|
+
const batches = table.batches.map((batch, index) => {
|
|
17875
|
+
const snapshot = arrowBatchMetadata?.[index];
|
|
17876
|
+
const restored = snapshot ? new RecordBatch3(
|
|
17877
|
+
tableFromIPC(snapshot.schema).schema,
|
|
17878
|
+
batch.data,
|
|
17879
|
+
new Map(snapshot.metadata)
|
|
17880
|
+
) : batch;
|
|
17881
|
+
const rowCount = data.batches[index].length;
|
|
17882
|
+
if (restored.numCols === 0 && restored.numRows !== rowCount) {
|
|
17883
|
+
Object.defineProperty(restored, "data", {
|
|
17884
|
+
value: new Data(new Struct([]), 0, rowCount, 0, void 0, [])
|
|
17885
|
+
});
|
|
17886
|
+
}
|
|
17887
|
+
return restored;
|
|
17888
|
+
});
|
|
17889
|
+
return new Table(table.schema, batches);
|
|
17890
|
+
}
|
|
17891
|
+
var init_arrow_worker_transport = __esm({
|
|
17892
|
+
"../core/src/arrow-worker-transport.ts"() {
|
|
17893
|
+
"use strict";
|
|
17894
|
+
init_Arrow_dom();
|
|
17895
|
+
init_dist3();
|
|
16915
17896
|
}
|
|
16916
17897
|
});
|
|
16917
17898
|
|
|
@@ -17422,9 +18403,11 @@ return true;`);
|
|
|
17422
18403
|
"src/obj/obj-loader-types.ts"() {
|
|
17423
18404
|
"use strict";
|
|
17424
18405
|
init_obj_format();
|
|
17425
|
-
|
|
17426
|
-
VERSION = true ? "5.0.0-beta.
|
|
18406
|
+
init_arrow_worker_transport();
|
|
18407
|
+
VERSION = true ? "5.0.0-beta.10" : "latest";
|
|
17427
18408
|
OBJLoader = {
|
|
18409
|
+
defaultShape: "arrow",
|
|
18410
|
+
supportsNativeArrow: true,
|
|
17428
18411
|
...OBJFormat,
|
|
17429
18412
|
dataType: null,
|
|
17430
18413
|
batchType: null,
|
|
@@ -17436,7 +18419,7 @@ return true;`);
|
|
|
17436
18419
|
text: true,
|
|
17437
18420
|
testText: testOBJFile,
|
|
17438
18421
|
options: {
|
|
17439
|
-
obj: { shape: "arrow
|
|
18422
|
+
obj: { shape: "arrow" }
|
|
17440
18423
|
},
|
|
17441
18424
|
preload
|
|
17442
18425
|
};
|
|
@@ -17446,14 +18429,15 @@ return true;`);
|
|
|
17446
18429
|
// src/obj/obj-loader.ts
|
|
17447
18430
|
var obj_loader_exports = {};
|
|
17448
18431
|
__export(obj_loader_exports, {
|
|
18432
|
+
OBJColumnLoader: () => OBJColumnLoader,
|
|
17449
18433
|
OBJLoaderWithParser: () => OBJLoaderWithParser
|
|
17450
18434
|
});
|
|
17451
18435
|
function convertOBJMesh(mesh, options) {
|
|
17452
|
-
const table =
|
|
18436
|
+
const table = convertMeshToArrowTableWrapper(mesh);
|
|
17453
18437
|
return options?.obj?.shape === "mesh" ? convertTableToMesh(table) : table;
|
|
17454
18438
|
}
|
|
17455
18439
|
function getNumericBatchSize(options) {
|
|
17456
|
-
const batchSize = options?.
|
|
18440
|
+
const batchSize = options?.core?.batchSize;
|
|
17457
18441
|
return typeof batchSize === "number" ? batchSize : void 0;
|
|
17458
18442
|
}
|
|
17459
18443
|
function hasOBJGeometryRecords(text) {
|
|
@@ -17525,7 +18509,7 @@ return true;`);
|
|
|
17525
18509
|
};
|
|
17526
18510
|
}
|
|
17527
18511
|
function makeOBJBatch(mesh, options) {
|
|
17528
|
-
const table =
|
|
18512
|
+
const table = convertMeshToArrowTableWrapper(mesh);
|
|
17529
18513
|
if (options?.obj?.shape === "mesh") {
|
|
17530
18514
|
const convertedMesh = convertTableToMesh(table);
|
|
17531
18515
|
return {
|
|
@@ -17547,42 +18531,72 @@ return true;`);
|
|
|
17547
18531
|
const mesh = convertTableToMesh(table);
|
|
17548
18532
|
return { shape: "mesh", batchType: "data", data: mesh, length: table.length };
|
|
17549
18533
|
}
|
|
17550
|
-
|
|
18534
|
+
async function* parseOBJWithMetadataInBatches(arrayBuffer, options) {
|
|
18535
|
+
const batchSize = getNumericBatchSize(options);
|
|
18536
|
+
if (options?.obj?.pointCloud) {
|
|
18537
|
+
const textIterator = makeTextDecoderIterator(arrayBuffer);
|
|
18538
|
+
const lineIterator = makeLineIterator(textIterator);
|
|
18539
|
+
yield* parseOBJPointCloudLinesInBatches(lineIterator, options, batchSize);
|
|
18540
|
+
return;
|
|
18541
|
+
}
|
|
18542
|
+
const data = await concatenateArrayBuffersAsync(arrayBuffer);
|
|
18543
|
+
const text = new TextDecoder().decode(data);
|
|
18544
|
+
if (hasOBJGeometryRecords(text)) {
|
|
18545
|
+
yield makeOBJBatch(parseOBJ(text, options), options);
|
|
18546
|
+
return;
|
|
18547
|
+
}
|
|
18548
|
+
yield* parseOBJPointCloudInBatches(text, options, batchSize);
|
|
18549
|
+
}
|
|
18550
|
+
function unwrapOBJTable(result) {
|
|
18551
|
+
if ("shape" in result && result.shape === "arrow-table") {
|
|
18552
|
+
return result.data;
|
|
18553
|
+
}
|
|
18554
|
+
return result;
|
|
18555
|
+
}
|
|
18556
|
+
var _OBJLoaderPreload, OBJLoaderMetadataWithoutPreload, OBJColumnLoader, OBJLoaderWithParser;
|
|
17551
18557
|
var init_obj_loader = __esm({
|
|
17552
18558
|
"src/obj/obj-loader.ts"() {
|
|
17553
18559
|
"use strict";
|
|
18560
|
+
init_schema_utils();
|
|
17554
18561
|
init_loader_utils();
|
|
17555
|
-
|
|
18562
|
+
init_arrow_worker_transport();
|
|
17556
18563
|
init_schema_utils();
|
|
17557
18564
|
init_get_obj_schema();
|
|
17558
18565
|
init_parse_obj();
|
|
17559
18566
|
init_obj_loader_types();
|
|
17560
18567
|
({ preload: _OBJLoaderPreload, ...OBJLoaderMetadataWithoutPreload } = OBJLoader);
|
|
17561
|
-
|
|
18568
|
+
OBJColumnLoader = {
|
|
17562
18569
|
...OBJLoaderMetadataWithoutPreload,
|
|
18570
|
+
dataType: null,
|
|
18571
|
+
batchType: null,
|
|
17563
18572
|
parse: async (arrayBuffer, options) => convertOBJMesh(parseOBJ(new TextDecoder().decode(arrayBuffer), options), options),
|
|
17564
18573
|
parseTextSync: (text, options) => convertOBJMesh(parseOBJ(text, options), options),
|
|
17565
|
-
parseInBatches:
|
|
17566
|
-
const batchSize = getNumericBatchSize(options);
|
|
17567
|
-
if (options?.obj?.pointCloud) {
|
|
17568
|
-
const textIterator = makeTextDecoderIterator(arrayBuffer);
|
|
17569
|
-
const lineIterator = makeLineIterator(textIterator);
|
|
17570
|
-
yield* parseOBJPointCloudLinesInBatches(lineIterator, options, batchSize);
|
|
17571
|
-
return;
|
|
17572
|
-
}
|
|
17573
|
-
const data = await concatenateArrayBuffersAsync(arrayBuffer);
|
|
17574
|
-
const text = new TextDecoder().decode(data);
|
|
17575
|
-
if (hasOBJGeometryRecords(text)) {
|
|
17576
|
-
yield makeOBJBatch(parseOBJ(text, options), options);
|
|
17577
|
-
return;
|
|
17578
|
-
}
|
|
17579
|
-
yield* parseOBJPointCloudInBatches(text, options, batchSize);
|
|
17580
|
-
},
|
|
18574
|
+
parseInBatches: (input, options) => refineArrowTableBatches(parseOBJWithMetadataInBatches(input, options)),
|
|
17581
18575
|
serializeWorkerResult: serializeArrowWorkerTable,
|
|
17582
18576
|
deserializeWorkerResult: deserializeOBJWorkerResult,
|
|
17583
18577
|
serializeWorkerBatch: serializeArrowWorkerTable,
|
|
17584
18578
|
deserializeWorkerBatch: deserializeOBJWorkerBatch
|
|
17585
18579
|
};
|
|
18580
|
+
OBJLoaderWithParser = {
|
|
18581
|
+
...OBJColumnLoader,
|
|
18582
|
+
dataType: OBJLoader.dataType,
|
|
18583
|
+
batchType: OBJLoader.batchType,
|
|
18584
|
+
parse: async (input, options) => unwrapOBJTable(await OBJColumnLoader.parse(input, options)),
|
|
18585
|
+
parseTextSync: (input, options) => unwrapOBJTable(OBJColumnLoader.parseTextSync(input, options)),
|
|
18586
|
+
async *parseInBatches(input, options) {
|
|
18587
|
+
for await (const batch of OBJColumnLoader.parseInBatches(input, options)) {
|
|
18588
|
+
if ("shape" in batch && batch.shape === "arrow-table") {
|
|
18589
|
+
if (batch.data.batches.length) yield* batch.data.batches;
|
|
18590
|
+
else yield makeArrowMetadataBatch(batch.data.schema);
|
|
18591
|
+
} else yield batch;
|
|
18592
|
+
}
|
|
18593
|
+
},
|
|
18594
|
+
deserializeWorkerResult: (result, options) => unwrapOBJTable(OBJColumnLoader.deserializeWorkerResult(result, options)),
|
|
18595
|
+
deserializeWorkerBatch(result, options) {
|
|
18596
|
+
const batch = OBJColumnLoader.deserializeWorkerBatch(result, options);
|
|
18597
|
+
return "shape" in batch && batch.shape === "arrow-table" ? batch.data.batches[0] ?? makeArrowMetadataBatch(batch.data.schema) : batch;
|
|
18598
|
+
}
|
|
18599
|
+
};
|
|
17586
18600
|
}
|
|
17587
18601
|
});
|
|
17588
18602
|
|
|
@@ -17590,19 +18604,19 @@ return true;`);
|
|
|
17590
18604
|
init_loader_utils();
|
|
17591
18605
|
init_obj_loader();
|
|
17592
18606
|
createLoaderWorker({
|
|
17593
|
-
...
|
|
18607
|
+
...OBJColumnLoader,
|
|
17594
18608
|
/** Always returns columnar data; legacy mesh conversion runs on the caller. */
|
|
17595
18609
|
parse(input, options) {
|
|
17596
|
-
return
|
|
18610
|
+
return OBJColumnLoader.parse(input, {
|
|
17597
18611
|
...options,
|
|
17598
|
-
obj: { ...options?.obj, shape: "arrow
|
|
18612
|
+
obj: { ...options?.obj, shape: "arrow" }
|
|
17599
18613
|
});
|
|
17600
18614
|
},
|
|
17601
18615
|
/** Keeps one columnar parser alive for the entire worker input stream. */
|
|
17602
18616
|
parseInBatches(input, options) {
|
|
17603
|
-
return
|
|
18617
|
+
return OBJColumnLoader.parseInBatches(input, {
|
|
17604
18618
|
...options,
|
|
17605
|
-
obj: { ...options?.obj, shape: "arrow
|
|
18619
|
+
obj: { ...options?.obj, shape: "arrow" }
|
|
17606
18620
|
});
|
|
17607
18621
|
}
|
|
17608
18622
|
});
|