@ifc-lite/pointcloud 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +72 -0
  2. package/dist/copc/copc-hierarchy.d.ts +102 -0
  3. package/dist/copc/copc-hierarchy.d.ts.map +1 -0
  4. package/dist/copc/copc-hierarchy.js +210 -0
  5. package/dist/copc/copc-hierarchy.js.map +1 -0
  6. package/dist/copc/copc-info.d.ts +52 -0
  7. package/dist/copc/copc-info.d.ts.map +1 -0
  8. package/dist/copc/copc-info.js +147 -0
  9. package/dist/copc/copc-info.js.map +1 -0
  10. package/dist/copc/copc-reader.d.ts +60 -0
  11. package/dist/copc/copc-reader.d.ts.map +1 -0
  12. package/dist/copc/copc-reader.js +138 -0
  13. package/dist/copc/copc-reader.js.map +1 -0
  14. package/dist/copc/copc-worker-client.d.ts +37 -0
  15. package/dist/copc/copc-worker-client.d.ts.map +1 -0
  16. package/dist/copc/copc-worker-client.js +154 -0
  17. package/dist/copc/copc-worker-client.js.map +1 -0
  18. package/dist/copc/copc-worker-host.d.ts +11 -0
  19. package/dist/copc/copc-worker-host.d.ts.map +1 -0
  20. package/dist/copc/copc-worker-host.js +73 -0
  21. package/dist/copc/copc-worker-host.js.map +1 -0
  22. package/dist/formats/las.d.ts +1 -0
  23. package/dist/formats/las.d.ts.map +1 -1
  24. package/dist/formats/las.js +1 -1
  25. package/dist/formats/las.js.map +1 -1
  26. package/dist/index.d.ts +11 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +10 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/lod/copc-lod-tree.d.ts +15 -0
  31. package/dist/lod/copc-lod-tree.d.ts.map +1 -0
  32. package/dist/lod/copc-lod-tree.js +67 -0
  33. package/dist/lod/copc-lod-tree.js.map +1 -0
  34. package/dist/lod/frustum.d.ts +13 -0
  35. package/dist/lod/frustum.d.ts.map +1 -0
  36. package/dist/lod/frustum.js +38 -0
  37. package/dist/lod/frustum.js.map +1 -0
  38. package/dist/lod/pacer.d.ts +62 -0
  39. package/dist/lod/pacer.d.ts.map +1 -0
  40. package/dist/lod/pacer.js +56 -0
  41. package/dist/lod/pacer.js.map +1 -0
  42. package/dist/lod/select.d.ts +80 -0
  43. package/dist/lod/select.d.ts.map +1 -0
  44. package/dist/lod/select.js +155 -0
  45. package/dist/lod/select.js.map +1 -0
  46. package/dist/streaming/blob-source.d.ts +3 -2
  47. package/dist/streaming/blob-source.d.ts.map +1 -1
  48. package/dist/streaming/blob-source.js +2 -9
  49. package/dist/streaming/blob-source.js.map +1 -1
  50. package/dist/streaming/decode-worker.js +22 -0
  51. package/dist/streaming/decode-worker.js.map +1 -1
  52. package/dist/streaming/http-range-source.d.ts +47 -0
  53. package/dist/streaming/http-range-source.d.ts.map +1 -0
  54. package/dist/streaming/http-range-source.js +102 -0
  55. package/dist/streaming/http-range-source.js.map +1 -0
  56. package/dist/streaming/inline-worker.js +1 -1
  57. package/dist/streaming/laz-perf-loader.d.ts +58 -0
  58. package/dist/streaming/laz-perf-loader.d.ts.map +1 -0
  59. package/dist/streaming/laz-perf-loader.js +107 -0
  60. package/dist/streaming/laz-perf-loader.js.map +1 -0
  61. package/dist/streaming/laz-source.d.ts +0 -40
  62. package/dist/streaming/laz-source.d.ts.map +1 -1
  63. package/dist/streaming/laz-source.js +1 -94
  64. package/dist/streaming/laz-source.js.map +1 -1
  65. package/dist/streaming/protocol.d.ts +45 -0
  66. package/dist/streaming/protocol.d.ts.map +1 -1
  67. package/dist/streaming/protocol.js.map +1 -1
  68. package/dist/streaming/types.d.ts +14 -0
  69. package/dist/streaming/types.d.ts.map +1 -1
  70. package/dist/streaming/worker-client.d.ts +25 -0
  71. package/dist/streaming/worker-client.d.ts.map +1 -1
  72. package/dist/streaming/worker-client.js +12 -5
  73. package/dist/streaming/worker-client.js.map +1 -1
  74. package/package.json +2 -2
@@ -0,0 +1,58 @@
1
+ /** @internal — exported only so the loader seam below can be typed. */
2
+ export interface LasZipInstance {
3
+ delete(): void;
4
+ open(ptr: number, length: number): void;
5
+ getPoint(dest: number): void;
6
+ getCount(): number;
7
+ getPointLength(): number;
8
+ getPointFormat(): number;
9
+ }
10
+ /**
11
+ * laz-perf's per-chunk decoder: decompresses ONE LAZ chunk that starts at
12
+ * `pointer` (a COPC node's data is exactly one chunk). It is given no
13
+ * length; the caller owns the bounds and only asks for `pointCount` points.
14
+ *
15
+ * @internal — exported only so the loader seam below can be typed.
16
+ */
17
+ export interface ChunkDecoderInstance {
18
+ delete(): void;
19
+ open(pointDataRecordFormat: number, pointDataRecordLength: number, pointer: number): void;
20
+ getPoint(dest: number): void;
21
+ }
22
+ /** @internal — exported only so the loader seam below can be typed. */
23
+ export interface LazPerfModule {
24
+ LASZip: {
25
+ new (): LasZipInstance;
26
+ };
27
+ ChunkDecoder: {
28
+ new (): ChunkDecoderInstance;
29
+ };
30
+ HEAPU8: Uint8Array;
31
+ _malloc(size: number): number;
32
+ _free(ptr: number): void;
33
+ }
34
+ /** The shared, memoised laz-perf module. */
35
+ export declare function loadLazPerf(): Promise<LazPerfModule>;
36
+ /**
37
+ * @internal E2E probe only — `tests/e2e/laz-wasm.e2e.spec.ts`. Exercises the
38
+ * two mechanisms #2097 found unasserted: the Vite `?url` wasm-asset fetch
39
+ * and the `Module.wasmBinary` hand-off to emscripten. Deliberately calls
40
+ * `importLazPerf()` directly rather than the memoized `loadLazPerf` (so the
41
+ * probe isn't affected by, and can't be swapped by, `setLazPerfLoaderForTesting`)
42
+ * and needs no `.laz` fixture: reaching a real `LASZip` constructor proves
43
+ * both mechanisms worked, independent of decoding any actual point data.
44
+ */
45
+ export declare function probeLazPerfWasmLoad(): Promise<{
46
+ ok: true;
47
+ hasLASZip: boolean;
48
+ } | {
49
+ ok: false;
50
+ error: string;
51
+ }>;
52
+ /**
53
+ * @internal Test seam. The real loader fetches wasm over the network and
54
+ * instantiates an emscripten module, neither of which a unit test can
55
+ * drive, so tests swap in a stub. Returns a restore function.
56
+ */
57
+ export declare function setLazPerfLoaderForTesting(testLoader: () => Promise<LazPerfModule>): () => void;
58
+ //# sourceMappingURL=laz-perf-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laz-perf-loader.d.ts","sourceRoot":"","sources":["../../src/streaming/laz-perf-loader.ts"],"names":[],"mappings":"AAYA,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,MAAM,IAAI,IAAI,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,MAAM,CAAC;IACnB,cAAc,IAAI,MAAM,CAAC;IACzB,cAAc,IAAI,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,IAAI,IAAI,CAAC;IACf,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE;QAAE,QAAQ,cAAc,CAAA;KAAE,CAAC;IACnC,YAAY,EAAE;QAAE,QAAQ,oBAAoB,CAAA;KAAE,CAAC;IAC/C,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AA0ED,4CAA4C;AAC5C,wBAAgB,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CACnD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAChE,CAOA;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GACvC,MAAM,IAAI,CAKZ"}
@@ -0,0 +1,107 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * The one lazy, memoised laz-perf (Apache-2.0) wasm loader. Shared by the
6
+ * whole-file LAZ source and the COPC node decoder (#6869) so both pay the
7
+ * wasm instantiation once and both honour the same test seam.
8
+ */
9
+ import { memoizeAsync } from './memo.js';
10
+ async function importLazPerf() {
11
+ // The shipped `laz-perf.js` shim resolves the wasm via emscripten's
12
+ // `locateFile` and tries `fetch("laz-perf.wasm")` relative to the
13
+ // worker's script directory — which under Vite ends up at
14
+ // `/assets/<chunk>.wasm` (404) or `/laz-perf.wasm` (404 → SPA index
15
+ // HTML served as text/plain, which is what triggered the
16
+ // "MIME type 'text/plain'" failure on autzen-classified.laz).
17
+ //
18
+ // Pre-fetch the wasm via Vite's `?url` asset pipeline (hashed,
19
+ // served with `application/wasm`) and hand the bytes to emscripten
20
+ // as `Module.wasmBinary` so its own fetch is skipped entirely.
21
+ const wasmBinary = await fetchLazPerfWasm();
22
+ // Dynamic import keeps `laz-perf` out of bundles that don't touch
23
+ // LAZ. The package is shipped as CommonJS (`lib/{node,web}/index.js`),
24
+ // and Vite/webpack wrap CJS imports under `.default` — but the way
25
+ // they do that varies, so probe every shape we might see:
26
+ // • { createLazPerf } — pure-ESM build
27
+ // • { default: { createLazPerf } } — Vite default-wrapper
28
+ // • { default: createLazPerf } — esModuleInterop on a fn
29
+ // • module-as-function (legacy UMD) — `lazPerf` IS the factory
30
+ const ns = (await import('laz-perf'));
31
+ const dflt = ns.default;
32
+ const candidates = [
33
+ ns.createLazPerf,
34
+ typeof dflt === 'object' && dflt !== null ? dflt.createLazPerf : undefined,
35
+ dflt,
36
+ // Some bundlers expose the CJS module as the namespace object itself.
37
+ ns,
38
+ ];
39
+ const factory = candidates.find((c) => typeof c === 'function');
40
+ if (!factory) {
41
+ const keys = Object.keys(ns).join(', ');
42
+ throw new Error(`laz-perf: could not find createLazPerf factory (saw keys: ${keys || '<empty>'})`);
43
+ }
44
+ return factory({ wasmBinary });
45
+ }
46
+ async function fetchLazPerfWasm() {
47
+ // `?url` triggers Vite's asset pipeline so the .wasm ends up in the
48
+ // build output with the right MIME type. Wrapped in a try/catch so
49
+ // non-Vite hosts (e.g. node-side tests) can fall back to the package's
50
+ // own `locateFile` resolution.
51
+ let wasmUrl;
52
+ try {
53
+ const mod = (await import('laz-perf/lib/web/laz-perf.wasm?url'));
54
+ wasmUrl = mod.default;
55
+ }
56
+ catch (err) {
57
+ throw new Error(`laz-perf: could not resolve wasm asset URL (${err instanceof Error ? err.message : String(err)}). `
58
+ + 'Ensure the bundler treats `laz-perf/lib/web/laz-perf.wasm?url` as a static asset.');
59
+ }
60
+ const response = await fetch(wasmUrl);
61
+ if (!response.ok) {
62
+ throw new Error(`laz-perf: wasm fetch failed (${response.status} ${response.statusText}) for ${wasmUrl}`);
63
+ }
64
+ const buffer = await response.arrayBuffer();
65
+ return new Uint8Array(buffer);
66
+ }
67
+ /**
68
+ * The wasm module is instantiated once and shared by every `open()`.
69
+ * `memoizeAsync` drops the memo if the load rejects, so a transient wasm
70
+ * fetch failure no longer poisons every future LAZ open for the lifetime
71
+ * of the page — the next dropped file retries.
72
+ */
73
+ let loader = memoizeAsync(importLazPerf);
74
+ /** The shared, memoised laz-perf module. */
75
+ export function loadLazPerf() {
76
+ return loader();
77
+ }
78
+ /**
79
+ * @internal E2E probe only — `tests/e2e/laz-wasm.e2e.spec.ts`. Exercises the
80
+ * two mechanisms #2097 found unasserted: the Vite `?url` wasm-asset fetch
81
+ * and the `Module.wasmBinary` hand-off to emscripten. Deliberately calls
82
+ * `importLazPerf()` directly rather than the memoized `loadLazPerf` (so the
83
+ * probe isn't affected by, and can't be swapped by, `setLazPerfLoaderForTesting`)
84
+ * and needs no `.laz` fixture: reaching a real `LASZip` constructor proves
85
+ * both mechanisms worked, independent of decoding any actual point data.
86
+ */
87
+ export async function probeLazPerfWasmLoad() {
88
+ try {
89
+ const mod = await importLazPerf();
90
+ return { ok: true, hasLASZip: typeof mod.LASZip === 'function' };
91
+ }
92
+ catch (err) {
93
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
94
+ }
95
+ }
96
+ /**
97
+ * @internal Test seam. The real loader fetches wasm over the network and
98
+ * instantiates an emscripten module, neither of which a unit test can
99
+ * drive, so tests swap in a stub. Returns a restore function.
100
+ */
101
+ export function setLazPerfLoaderForTesting(testLoader) {
102
+ loader = memoizeAsync(testLoader);
103
+ return () => {
104
+ loader = memoizeAsync(importLazPerf);
105
+ };
106
+ }
107
+ //# sourceMappingURL=laz-perf-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laz-perf-loader.js","sourceRoot":"","sources":["../../src/streaming/laz-perf-loader.ts"],"names":[],"mappings":"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"}
@@ -10,46 +10,6 @@
10
10
  */
11
11
  import type { DecodedPointChunk } from '../types.js';
12
12
  import type { DownsampleHint, PointSourceInfo, StreamingPointSource } from './types.js';
13
- /** @internal — exported only so the loader seam below can be typed. */
14
- export interface LasZipInstance {
15
- delete(): void;
16
- open(ptr: number, length: number): void;
17
- getPoint(dest: number): void;
18
- getCount(): number;
19
- getPointLength(): number;
20
- getPointFormat(): number;
21
- }
22
- /** @internal — exported only so the loader seam below can be typed. */
23
- export interface LazPerfModule {
24
- LASZip: {
25
- new (): LasZipInstance;
26
- };
27
- HEAPU8: Uint8Array;
28
- _malloc(size: number): number;
29
- _free(ptr: number): void;
30
- }
31
- /**
32
- * @internal E2E probe only — `tests/e2e/laz-wasm.e2e.spec.ts`. Exercises the
33
- * two mechanisms #2097 found unasserted: the Vite `?url` wasm-asset fetch
34
- * and the `Module.wasmBinary` hand-off to emscripten. Deliberately calls
35
- * `importLazPerf()` directly rather than the memoized `loadLazPerf` (so the
36
- * probe isn't affected by, and can't be swapped by, `setLazPerfLoaderForTesting`)
37
- * and needs no `.laz` fixture: reaching a real `LASZip` constructor proves
38
- * both mechanisms worked, independent of decoding any actual point data.
39
- */
40
- export declare function probeLazPerfWasmLoad(): Promise<{
41
- ok: true;
42
- hasLASZip: boolean;
43
- } | {
44
- ok: false;
45
- error: string;
46
- }>;
47
- /**
48
- * @internal Test seam. The real loader fetches wasm over the network and
49
- * instantiates an emscripten module, neither of which a unit test can
50
- * drive, so tests swap in a stub. Returns a restore function.
51
- */
52
- export declare function setLazPerfLoaderForTesting(loader: () => Promise<LazPerfModule>): () => void;
53
13
  export declare class LazStreamingSource implements StreamingPointSource {
54
14
  private blob;
55
15
  private downsample;
@@ -1 +1 @@
1
- {"version":3,"file":"laz-source.d.ts","sourceRoot":"","sources":["../../src/streaming/laz-source.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,MAAM,IAAI,IAAI,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,MAAM,CAAC;IACnB,cAAc,IAAI,MAAM,CAAC;IACzB,cAAc,IAAI,MAAM,CAAC;CAC1B;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE;QAAE,QAAQ,cAAc,CAAA;KAAE,CAAC;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AA0ED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CACnD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAChE,CAOA;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GACnC,MAAM,IAAI,CAKZ;AAED,qBAAa,kBAAmB,YAAW,oBAAoB;IAC7D,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,KAAK,CAAC,CAAS;IAGvB,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAC,CAAoC;gBAGvD,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,cAAc,CAAC;QAC5B,kEAAkE;QAClE,YAAY,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7C;IAQF,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAwEpD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAoCtF,KAAK,IAAI,IAAI;IAsBb,OAAO,CAAC,MAAM;CAaf"}
1
+ {"version":3,"file":"laz-source.d.ts","sourceRoot":"","sources":["../../src/streaming/laz-source.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,kBAAmB,YAAW,oBAAoB;IAC7D,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,KAAK,CAAC,CAAS;IAGvB,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAC,CAAoC;gBAGvD,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,cAAc,CAAC;QAC5B,kEAAkE;QAClE,YAAY,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7C;IAQF,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAwEpD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAoCtF,KAAK,IAAI,IAAI;IAsBb,OAAO,CAAC,MAAM;CAaf"}
@@ -2,100 +2,7 @@
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { bboxInDecodedFrame, decodeLasPoints, parseLasHeader, sampleMaxRgbChannel, } from '../formats/las.js';
5
- import { memoizeAsync } from './memo.js';
6
- async function importLazPerf() {
7
- // The shipped `laz-perf.js` shim resolves the wasm via emscripten's
8
- // `locateFile` and tries `fetch("laz-perf.wasm")` relative to the
9
- // worker's script directory — which under Vite ends up at
10
- // `/assets/<chunk>.wasm` (404) or `/laz-perf.wasm` (404 → SPA index
11
- // HTML served as text/plain, which is what triggered the
12
- // "MIME type 'text/plain'" failure on autzen-classified.laz).
13
- //
14
- // Pre-fetch the wasm via Vite's `?url` asset pipeline (hashed,
15
- // served with `application/wasm`) and hand the bytes to emscripten
16
- // as `Module.wasmBinary` so its own fetch is skipped entirely.
17
- const wasmBinary = await fetchLazPerfWasm();
18
- // Dynamic import keeps `laz-perf` out of bundles that don't touch
19
- // LAZ. The package is shipped as CommonJS (`lib/{node,web}/index.js`),
20
- // and Vite/webpack wrap CJS imports under `.default` — but the way
21
- // they do that varies, so probe every shape we might see:
22
- // • { createLazPerf } — pure-ESM build
23
- // • { default: { createLazPerf } } — Vite default-wrapper
24
- // • { default: createLazPerf } — esModuleInterop on a fn
25
- // • module-as-function (legacy UMD) — `lazPerf` IS the factory
26
- const ns = (await import('laz-perf'));
27
- const dflt = ns.default;
28
- const candidates = [
29
- ns.createLazPerf,
30
- typeof dflt === 'object' && dflt !== null ? dflt.createLazPerf : undefined,
31
- dflt,
32
- // Some bundlers expose the CJS module as the namespace object itself.
33
- ns,
34
- ];
35
- const factory = candidates.find((c) => typeof c === 'function');
36
- if (!factory) {
37
- const keys = Object.keys(ns).join(', ');
38
- throw new Error(`laz-perf: could not find createLazPerf factory (saw keys: ${keys || '<empty>'})`);
39
- }
40
- return factory({ wasmBinary });
41
- }
42
- async function fetchLazPerfWasm() {
43
- // `?url` triggers Vite's asset pipeline so the .wasm ends up in the
44
- // build output with the right MIME type. Wrapped in a try/catch so
45
- // non-Vite hosts (e.g. node-side tests) can fall back to the package's
46
- // own `locateFile` resolution.
47
- let wasmUrl;
48
- try {
49
- const mod = (await import('laz-perf/lib/web/laz-perf.wasm?url'));
50
- wasmUrl = mod.default;
51
- }
52
- catch (err) {
53
- throw new Error(`laz-perf: could not resolve wasm asset URL (${err instanceof Error ? err.message : String(err)}). `
54
- + 'Ensure the bundler treats `laz-perf/lib/web/laz-perf.wasm?url` as a static asset.');
55
- }
56
- const response = await fetch(wasmUrl);
57
- if (!response.ok) {
58
- throw new Error(`laz-perf: wasm fetch failed (${response.status} ${response.statusText}) for ${wasmUrl}`);
59
- }
60
- const buffer = await response.arrayBuffer();
61
- return new Uint8Array(buffer);
62
- }
63
- /**
64
- * The wasm module is instantiated once and shared by every `open()`.
65
- * `memoizeAsync` drops the memo if the load rejects, so a transient wasm
66
- * fetch failure no longer poisons every future LAZ open for the lifetime
67
- * of the page — the next dropped file retries.
68
- */
69
- let loadLazPerf = memoizeAsync(importLazPerf);
70
- /**
71
- * @internal E2E probe only — `tests/e2e/laz-wasm.e2e.spec.ts`. Exercises the
72
- * two mechanisms #2097 found unasserted: the Vite `?url` wasm-asset fetch
73
- * and the `Module.wasmBinary` hand-off to emscripten. Deliberately calls
74
- * `importLazPerf()` directly rather than the memoized `loadLazPerf` (so the
75
- * probe isn't affected by, and can't be swapped by, `setLazPerfLoaderForTesting`)
76
- * and needs no `.laz` fixture: reaching a real `LASZip` constructor proves
77
- * both mechanisms worked, independent of decoding any actual point data.
78
- */
79
- export async function probeLazPerfWasmLoad() {
80
- try {
81
- const mod = await importLazPerf();
82
- return { ok: true, hasLASZip: typeof mod.LASZip === 'function' };
83
- }
84
- catch (err) {
85
- return { ok: false, error: err instanceof Error ? err.message : String(err) };
86
- }
87
- }
88
- /**
89
- * @internal Test seam. The real loader fetches wasm over the network and
90
- * instantiates an emscripten module, neither of which a unit test can
91
- * drive, so tests swap in a stub. Returns a restore function.
92
- */
93
- export function setLazPerfLoaderForTesting(loader) {
94
- loadLazPerf = memoizeAsync(loader);
95
- return () => {
96
- loadLazPerf = memoizeAsync(importLazPerf);
97
- };
98
- }
5
+ import { loadLazPerf } from './laz-perf-loader.js';
99
6
  export class LazStreamingSource {
100
7
  blob;
101
8
  downsample;
@@ -1 +1 @@
1
- {"version":3,"file":"laz-source.js","sourceRoot":"","sources":["../../src/streaming/laz-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"laz-source.js","sourceRoot":"","sources":["../../src/streaming/laz-source.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,17 @@
6
6
  */
7
7
  import type { DecodedPointChunk, PointCloudBBox, PointNormalState } from '../types.js';
8
8
  import type { PointSourceInfo } from './types.js';
9
+ import type { CopcFileInfo } from '../copc/copc-info.js';
10
+ import type { CopcHierarchyPage, CopcNodeEntry, CopcPageRef } from '../copc/copc-hierarchy.js';
11
+ /** Where a COPC file's bytes come from; the worker builds the range source. */
12
+ export type CopcSourceDescriptor = {
13
+ kind: 'blob';
14
+ blob: Blob;
15
+ } | {
16
+ kind: 'http';
17
+ url: string;
18
+ headers?: Record<string, string>;
19
+ };
9
20
  export type WorkerSourceFormat = 'las' | 'laz' | 'ply' | 'pcd' | 'e57' | 'pts' | 'xyz';
10
21
  /** main → worker */
11
22
  export type WorkerRequest = {
@@ -29,6 +40,30 @@ export type WorkerRequest = {
29
40
  } | {
30
41
  kind: 'abort';
31
42
  sourceId: number;
43
+ } | {
44
+ kind: 'copc-open';
45
+ requestId: number;
46
+ source: CopcSourceDescriptor;
47
+ originOffset?: readonly [number, number, number];
48
+ /** Hierarchy byte budget; the root page is refused before reading when larger. */
49
+ maxPageBytes: number;
50
+ } | {
51
+ kind: 'copc-page';
52
+ requestId: number;
53
+ sourceId: number;
54
+ page: CopcPageRef;
55
+ /** The caller's remaining hierarchy byte budget, checked before reading. */
56
+ maxBytes: number;
57
+ } | {
58
+ kind: 'copc-node';
59
+ requestId: number;
60
+ sourceId: number;
61
+ node: CopcNodeEntry;
62
+ stride: number;
63
+ } | {
64
+ /** Abort one in-flight COPC page/node request (the camera moved on). */
65
+ kind: 'copc-cancel';
66
+ targetRequestId: number;
32
67
  };
33
68
  /** worker → main */
34
69
  export type WorkerResponse = {
@@ -41,6 +76,16 @@ export type WorkerResponse = {
41
76
  requestId: number;
42
77
  sourceId: number;
43
78
  chunk: SerializedChunk | null;
79
+ } | {
80
+ kind: 'copc-opened';
81
+ requestId: number;
82
+ sourceId: number;
83
+ file: CopcFileInfo;
84
+ rootPage: CopcHierarchyPage;
85
+ } | {
86
+ kind: 'copc-page';
87
+ requestId: number;
88
+ page: CopcHierarchyPage;
44
89
  } | {
45
90
  kind: 'error';
46
91
  requestId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/streaming/protocol.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvF,oBAAoB;AACpB,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;8EAC0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,oBAAoB;AACpB,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;CACvB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;CACtB;AASD,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG;IACrD,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAkCA;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,iBAAiB,CAWzE"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/streaming/protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/streaming/protocol.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA0E/D,SAAS,WAAW,CAAC,IAAqB;IACxC,IAAI,IAAI,CAAC,MAAM,YAAY,WAAW,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9G,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AACtF,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,KAAwB;IAIlD,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,iDAAiD;IACjD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAkB,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAoB;QAC/B,SAAS;QACT,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/C,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,OAAO;QACL,SAAS,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;QAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QACxE,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9F,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QACnF,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/streaming/protocol.ts"],"names":[],"mappings":"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"}
@@ -48,4 +48,18 @@ export interface StreamingPointSource {
48
48
  export interface DownsampleHint {
49
49
  stride: number;
50
50
  }
51
+ /**
52
+ * Random-access byte source: the seam that lets one reader work over a local
53
+ * `File`/`Blob` (`BlobByteSource`) or a remote file through HTTP Range
54
+ * requests (`HttpRangeSource`) without ever holding the whole file (#6869).
55
+ */
56
+ export interface RangeByteSource {
57
+ /** Total size in bytes. */
58
+ readonly size: number;
59
+ /**
60
+ * Bytes `[start, end)`, clamped to the source size. A caller that needs
61
+ * every byte it asked for must check the returned length.
62
+ */
63
+ read(start: number, end: number, signal?: AbortSignal): Promise<Uint8Array>;
64
+ }
51
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE,mFAAmF;AACnF,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,IAAI,EAAE,cAAc,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sDAAsD;IACtD,YAAY,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACjF,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE,mFAAmF;AACnF,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,IAAI,EAAE,cAAc,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sDAAsD;IACtD,YAAY,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACjF,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC7E"}
@@ -1,3 +1,4 @@
1
+ import { type WorkerRequest, type WorkerResponse } from './protocol.js';
1
2
  import type { StreamingPointSource } from './types.js';
2
3
  export type DecodeWorkerFormat = 'las' | 'laz' | 'ply' | 'pcd' | 'e57' | 'pts' | 'xyz';
3
4
  export interface DecodeWorkerOptions {
@@ -9,6 +10,27 @@ export interface DecodeWorkerOptions {
9
10
  */
10
11
  spawn?: () => Worker | Promise<Worker>;
11
12
  }
13
+ /** @internal Shared with the COPC client. */
14
+ export declare function defaultSpawn(): Promise<Worker>;
15
+ /** Variants that need a response (open / next). */
16
+ type RequestWithReply = Extract<WorkerRequest, {
17
+ requestId: number;
18
+ }>;
19
+ /** @internal Shared with the COPC client. */
20
+ export declare class WorkerSession {
21
+ readonly worker: Worker;
22
+ private requests;
23
+ private nextRequestId;
24
+ private listener;
25
+ constructor(worker: Worker);
26
+ /**
27
+ * Send a request that expects a single response by `requestId`.
28
+ * `onRequestId` exposes the id so a caller can cancel it later.
29
+ */
30
+ send<T extends WorkerResponse>(build: (requestId: number) => RequestWithReply, transfer?: Transferable[], onRequestId?: (requestId: number) => void): Promise<T>;
31
+ /** Send a fire-and-forget message (close / abort). */
32
+ notify(req: WorkerRequest): void;
33
+ }
12
34
  /**
13
35
  * Reset hook for the module-level cache. Exported only for tests so the
14
36
  * "construction does not trigger spawn" and "rejected cache is cleared"
@@ -17,6 +39,8 @@ export interface DecodeWorkerOptions {
17
39
  * @internal
18
40
  */
19
41
  export declare function __resetSharedSessionForTests(): void;
42
+ /** @internal Shared with the COPC client: one decode worker per page. */
43
+ export declare function getSharedSession(spawn: () => Worker | Promise<Worker>): Promise<WorkerSession>;
20
44
  export interface CreateDecodeWorkerSourceOptions extends DecodeWorkerOptions {
21
45
  format: DecodeWorkerFormat;
22
46
  blob: Blob;
@@ -33,4 +57,5 @@ export interface CreateDecodeWorkerSourceOptions extends DecodeWorkerOptions {
33
57
  * like the in-process `LasStreamingSource`.
34
58
  */
35
59
  export declare function createDecodeWorkerSource(opts: CreateDecodeWorkerSourceOptions): StreamingPointSource;
60
+ export {};
36
61
  //# sourceMappingURL=worker-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../src/streaming/worker-client.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvF,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AAmFD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AA4BD,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;8EAC0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,+BAA+B,GACpC,oBAAoB,CA4FtB"}
1
+ {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../src/streaming/worker-client.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvF,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AAED,6CAA6C;AAC7C,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAsBpD;AAWD,mDAAmD;AACnD,KAAK,gBAAgB,GAAG,OAAO,CAAC,aAAa,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtE,6CAA6C;AAC7C,qBAAa,aAAa;aAKI,MAAM,EAAE,MAAM;IAJ1C,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAgD;gBAEpC,MAAM,EAAE,MAAM;IAgB1C;;;OAGG;IACH,IAAI,CAAC,CAAC,SAAS,cAAc,EAC3B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,gBAAgB,EAC9C,QAAQ,GAAE,YAAY,EAAO,EAC7B,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACxC,OAAO,CAAC,CAAC,CAAC;IAab,sDAAsD;IACtD,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAGjC;AAID;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAwB9F;AAED,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;8EAC0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,+BAA+B,GACpC,oBAAoB,CA4FtB"}
@@ -2,7 +2,8 @@
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { chunkFromWire, } from './protocol.js';
5
- async function defaultSpawn() {
5
+ /** @internal Shared with the COPC client. */
6
+ export async function defaultSpawn() {
6
7
  // Prefer the published inline bundle. The dynamic import resolves to a
7
8
  // non-null `INLINE_WORKER_CODE` only in the published dist; in the
8
9
  // workspace src tree (and in unit tests) it resolves to `null` and we
@@ -24,7 +25,8 @@ async function defaultSpawn() {
24
25
  name: 'ifclite-pointcloud-decode',
25
26
  });
26
27
  }
27
- class WorkerSession {
28
+ /** @internal Shared with the COPC client. */
29
+ export class WorkerSession {
28
30
  worker;
29
31
  requests = new Map();
30
32
  nextRequestId = 1;
@@ -48,9 +50,13 @@ class WorkerSession {
48
50
  };
49
51
  worker.addEventListener('message', this.listener);
50
52
  }
51
- /** Send a request that expects a single response by `requestId`. */
52
- send(build, transfer = []) {
53
+ /**
54
+ * Send a request that expects a single response by `requestId`.
55
+ * `onRequestId` exposes the id so a caller can cancel it later.
56
+ */
57
+ send(build, transfer = [], onRequestId) {
53
58
  const requestId = this.nextRequestId++;
59
+ onRequestId?.(requestId);
54
60
  const req = build(requestId);
55
61
  return new Promise((resolve, reject) => {
56
62
  this.requests.set(requestId, {
@@ -76,7 +82,8 @@ let sharedSessionPromise = null;
76
82
  export function __resetSharedSessionForTests() {
77
83
  sharedSessionPromise = null;
78
84
  }
79
- function getSharedSession(spawn) {
85
+ /** @internal Shared with the COPC client: one decode worker per page. */
86
+ export function getSharedSession(spawn) {
80
87
  if (sharedSessionPromise)
81
88
  return sharedSessionPromise;
82
89
  // Wrap in an async IIFE so sync throws from a custom `spawn` callback
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../../src/streaming/worker-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../../src/streaming/worker-client.ts"],"names":[],"mappings":"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"}