@loaders.gl/pointclouds 5.0.0-beta.2 → 5.0.0-beta.5

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 (73) hide show
  1. package/LAS-README.md +1 -1
  2. package/PCD-README.md +1 -1
  3. package/PLY-README.md +1 -1
  4. package/README.md +1 -1
  5. package/dist/dist.dev.js +135 -91
  6. package/dist/dist.min.js +20 -20
  7. package/dist/las/las-loader-shared.cjs +1 -1
  8. package/dist/las/las-loader-shared.js +1 -1
  9. package/dist/las/las-loader-types.d.ts +2 -2
  10. package/dist/las/las-loader.cjs +4 -4
  11. package/dist/las/las-loader.cjs.map +2 -2
  12. package/dist/las/las-loader.d.ts +1 -1
  13. package/dist/las/las-loader.d.ts.map +1 -1
  14. package/dist/las/las-loader.js +1 -1
  15. package/dist/las/las-loader.js.map +1 -1
  16. package/dist/las/las-writer.cjs +1 -1
  17. package/dist/las/las-writer.js +1 -1
  18. package/dist/las/lib/las-extra-bytes.cjs +6 -1
  19. package/dist/las/lib/las-extra-bytes.cjs.map +2 -2
  20. package/dist/las/lib/las-extra-bytes.d.ts.map +1 -1
  21. package/dist/las/lib/las-extra-bytes.js +6 -4
  22. package/dist/las/lib/las-extra-bytes.js.map +1 -1
  23. package/dist/las-loader.cjs +4 -4
  24. package/dist/las-loader.cjs.map +2 -2
  25. package/dist/las-worker.js +704 -160
  26. package/dist/las-writer.cjs +1 -1
  27. package/dist/pcd/pcd-loader-types.cjs +3 -3
  28. package/dist/pcd/pcd-loader-types.cjs.map +2 -2
  29. package/dist/pcd/pcd-loader-types.d.ts +1 -1
  30. package/dist/pcd/pcd-loader-types.d.ts.map +1 -1
  31. package/dist/pcd/pcd-loader-types.js +2 -2
  32. package/dist/pcd/pcd-loader-types.js.map +1 -1
  33. package/dist/pcd/pcd-loader.cjs +4 -4
  34. package/dist/pcd/pcd-loader.cjs.map +2 -2
  35. package/dist/pcd/pcd-loader.d.ts +1 -1
  36. package/dist/pcd/pcd-loader.d.ts.map +1 -1
  37. package/dist/pcd/pcd-loader.js +1 -1
  38. package/dist/pcd/pcd-loader.js.map +1 -1
  39. package/dist/pcd/pcd-writer.cjs +1 -1
  40. package/dist/pcd/pcd-writer.js +1 -1
  41. package/dist/pcd-loader-types.cjs +3 -3
  42. package/dist/pcd-loader-types.cjs.map +2 -2
  43. package/dist/pcd-loader.cjs +4 -4
  44. package/dist/pcd-loader.cjs.map +2 -2
  45. package/dist/pcd-worker.js +984 -367
  46. package/dist/pcd-writer.cjs +1 -1
  47. package/dist/ply/ply-loader-types.cjs +3 -3
  48. package/dist/ply/ply-loader-types.cjs.map +2 -2
  49. package/dist/ply/ply-loader-types.d.ts +1 -1
  50. package/dist/ply/ply-loader-types.d.ts.map +1 -1
  51. package/dist/ply/ply-loader-types.js +2 -2
  52. package/dist/ply/ply-loader-types.js.map +1 -1
  53. package/dist/ply/ply-loader.cjs +4 -4
  54. package/dist/ply/ply-loader.cjs.map +2 -2
  55. package/dist/ply/ply-loader.d.ts +1 -1
  56. package/dist/ply/ply-loader.d.ts.map +1 -1
  57. package/dist/ply/ply-loader.js +1 -1
  58. package/dist/ply/ply-loader.js.map +1 -1
  59. package/dist/ply/ply-writer.cjs +1 -1
  60. package/dist/ply/ply-writer.js +1 -1
  61. package/dist/ply-loader-types.cjs +3 -3
  62. package/dist/ply-loader-types.cjs.map +2 -2
  63. package/dist/ply-loader.cjs +4 -4
  64. package/dist/ply-loader.cjs.map +2 -2
  65. package/dist/ply-worker.js +779 -162
  66. package/dist/ply-writer.cjs +1 -1
  67. package/package.json +4 -3
  68. package/src/las/las-loader.ts +1 -1
  69. package/src/las/lib/las-extra-bytes.ts +6 -4
  70. package/src/pcd/pcd-loader-types.ts +1 -1
  71. package/src/pcd/pcd-loader.ts +1 -1
  72. package/src/ply/ply-loader-types.ts +1 -1
  73. package/src/ply/ply-loader.ts +1 -1
@@ -28,7 +28,7 @@ __export(las_loader_shared_exports, {
28
28
  module.exports = __toCommonJS(las_loader_shared_exports);
29
29
  var import_schema = require("@loaders.gl/core/schema");
30
30
  var import_las_format = require("./las-format.cjs");
31
- var VERSION = true ? "5.0.0-beta.2" : "latest";
31
+ var VERSION = true ? "5.0.0-beta.5" : "latest";
32
32
  var DEFAULT_LAS_SHAPE = "arrow-table";
33
33
  function getLASShape(options) {
34
34
  return options?.las?.shape || DEFAULT_LAS_SHAPE;
@@ -5,7 +5,7 @@ import { convertColorArrayToFloat16, convertColorArrayToFloat32 } from '@loaders
5
5
  import { LASFormat } from "./las-format.js";
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "5.0.0-beta.2" !== 'undefined' ? "5.0.0-beta.2" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.5" !== 'undefined' ? "5.0.0-beta.5" : 'latest';
9
9
  /** Default output shape for LAS and LAZ loaders. */
10
10
  export const DEFAULT_LAS_SHAPE = 'arrow-table';
11
11
  /** Resolve the LAS output shape, including the Arrow-primary default. */
@@ -6,8 +6,8 @@ export type { LASColumnName, LASLoaderOptions } from "./las-loader-shared.js";
6
6
  declare function preload(): Promise<{
7
7
  readonly worker: true;
8
8
  readonly workerInBatches: true;
9
- readonly serializeWorkerResult: typeof import("@loaders.gl/core/schema-utils/arrow-transport").serializeArrowWorkerTable;
10
- readonly serializeWorkerBatch: typeof import("@loaders.gl/core/schema-utils/arrow-transport").serializeArrowWorkerTable;
9
+ readonly serializeWorkerResult: typeof import("@loaders.gl/core/arrow-worker-transport").serializeArrowWorkerTable;
10
+ readonly serializeWorkerBatch: typeof import("@loaders.gl/core/arrow-worker-transport").serializeArrowWorkerTable;
11
11
  readonly deserializeWorkerResult: (result: unknown, options?: LASLoaderOptions) => LASMesh | MeshArrowTable;
12
12
  readonly deserializeWorkerBatch: (result: unknown, options?: LASLoaderOptions) => LASMesh | MeshArrowTable;
13
13
  readonly parse: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) => Promise<LASMesh | MeshArrowTable>;
@@ -25,14 +25,14 @@ __export(las_loader_exports, {
25
25
  module.exports = __toCommonJS(las_loader_exports);
26
26
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
27
27
  var import_las_loader_shared = require("./las-loader-shared.cjs");
28
- var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
28
+ var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
29
29
  var import_parse_las = require("./lib/typescript/parse-las.cjs");
30
30
  var LASLoaderWithParser = {
31
31
  ...import_las_loader_shared.LAS_LOADER_METADATA,
32
32
  worker: true,
33
33
  workerInBatches: true,
34
- serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
35
- serializeWorkerBatch: import_arrow_transport.serializeArrowWorkerTable,
34
+ serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
35
+ serializeWorkerBatch: import_arrow_worker_transport.serializeArrowWorkerTable,
36
36
  deserializeWorkerResult: deserializeLASWorkerTable,
37
37
  deserializeWorkerBatch: deserializeLASWorkerTable,
38
38
  parse: async (arrayBuffer, options) => convertLASMesh(parseLASTable(arrayBuffer, options), options),
@@ -71,7 +71,7 @@ async function* convertLASMeshBatches(tableBatches, options) {
71
71
  }
72
72
  }
73
73
  function deserializeLASWorkerTable(result, options) {
74
- return convertLASMesh((0, import_arrow_transport.deserializeArrowWorkerTable)(result), options);
74
+ return convertLASMesh((0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result), options);
75
75
  }
76
76
  // Annotate the CommonJS export names for ESM import in node:
77
77
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/las/las-loader.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable} from '@loaders.gl/core/schema';\nimport {convertMeshToTable, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {\n formatLASMeshColors,\n getLASShape,\n LAS_LOADER_METADATA,\n type LASLoaderOptions\n} from './las-loader-shared';\nimport {\n serializeArrowWorkerTable,\n deserializeArrowWorkerTable\n} from '@loaders.gl/core/schema-utils/arrow-transport';\nimport type {LASMesh} from './lib/las-types';\nimport {\n decodeLAZChunkToArrowTable,\n parseLAS,\n parseLASInBatches,\n type LASArrowTable,\n type LAZChunkArrowTableMetadata\n} from './lib/typescript/parse-las';\n\ntype LASWorkerChunkRequest = {\n metadata: LAZChunkArrowTableMetadata;\n};\n\ntype LASWorkerOptions = LASLoaderOptions & {\n las?: LASLoaderOptions['las'] & {\n _chunk?: LASWorkerChunkRequest;\n };\n};\n\n/** Parser-bearing TypeScript-only LAS loader implementation. */\nexport const LASLoaderWithParser = {\n ...LAS_LOADER_METADATA,\n worker: true,\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializeLASWorkerTable,\n deserializeWorkerBatch: deserializeLASWorkerTable,\n parse: async (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseInBatches: async function* (arrayBufferIterator, options?: LASLoaderOptions) {\n yield* convertLASMeshBatches(parseLASInBatches(arrayBufferIterator, options), options);\n }\n} as const satisfies LoaderWithParser<\n LASMesh | MeshArrowTable,\n LASMesh | MeshArrowTable,\n LASLoaderOptions\n>;\n\n/** Parse a complete LAS file or an internal standalone worker chunk request. */\nfunction parseLASTable(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASArrowTable {\n const chunkRequest = (options as LASWorkerOptions | undefined)?.las?._chunk;\n return chunkRequest\n ? decodeLAZChunkToArrowTable(arrayBuffer, chunkRequest.metadata, options || {})\n : parseLAS(arrayBuffer, options);\n}\n\nfunction convertLASMesh(\n table: LASArrowTable,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n const formattedTable =\n options?.las?.colorFormat === undefined || options.las.colorFormat === 'uint8norm'\n ? table\n : {\n ...convertMeshToTable(\n formatLASMeshColors(convertTableToMesh(table) as LASMesh, options.las.colorFormat),\n 'arrow-table'\n ),\n loader: table.loader,\n loaderData: table.loaderData,\n progress: table.progress\n };\n if (getLASShape(options) === 'arrow-table') {\n return formattedTable;\n }\n return {\n ...(convertTableToMesh(formattedTable) as LASMesh),\n loader: formattedTable.loader,\n loaderData: formattedTable.loaderData,\n progress: formattedTable.progress\n } as LASMesh & {progress?: number};\n}\n\nasync function* convertLASMeshBatches(\n tableBatches: AsyncIterable<LASArrowTable>,\n options?: LASLoaderOptions\n): AsyncIterable<LASMesh | MeshArrowTable> {\n for await (const table of tableBatches) {\n yield convertLASMesh(table, options);\n }\n}\n\n/** Hydrates transferred columns and applies the requested mesh and color representation on the caller. */\nfunction deserializeLASWorkerTable(\n result: unknown,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n return convertLASMesh(deserializeArrowWorkerTable(result), options);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAAqD;AACrD,+BAKO;AACP,6BAGO;AAEP,uBAMO;AAaA,IAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,OAAO,OAAO,aAA0B,YACtC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,WAAW,CAAC,aAA0B,YACpC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,gBAAgB,iBAAiB,qBAAqB,SAA4B;AAChF,WAAO,0BAAsB,oCAAkB,qBAAqB,OAAO,GAAG,OAAO;AAAA,EACvF;AACF;AAOA,SAAS,cAAc,aAA0B,SAA2C;AAC1F,QAAM,eAAgB,SAA0C,KAAK;AACrE,SAAO,mBACH,6CAA2B,aAAa,aAAa,UAAU,WAAW,CAAC,CAAC,QAC5E,2BAAS,aAAa,OAAO;AACnC;AAEA,SAAS,eACP,OACA,SAC0B;AAC1B,QAAM,iBACJ,SAAS,KAAK,gBAAgB,UAAa,QAAQ,IAAI,gBAAgB,cACnE,QACA;AAAA,IACE,OAAG;AAAA,UACD,kDAAoB,wCAAmB,KAAK,GAAc,QAAQ,IAAI,WAAW;AAAA,MACjF;AAAA,IACF;AAAA,IACA,QAAQ,MAAM;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,UAAU,MAAM;AAAA,EAClB;AACN,UAAI,sCAAY,OAAO,MAAM,eAAe;AAC1C,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,OAAI,wCAAmB,cAAc;AAAA,IACrC,QAAQ,eAAe;AAAA,IACvB,YAAY,eAAe;AAAA,IAC3B,UAAU,eAAe;AAAA,EAC3B;AACF;AAEA,gBAAgB,sBACd,cACA,SACyC;AACzC,mBAAiB,SAAS,cAAc;AACtC,UAAM,eAAe,OAAO,OAAO;AAAA,EACrC;AACF;AAGA,SAAS,0BACP,QACA,SAC0B;AAC1B,SAAO,mBAAe,oDAA4B,MAAM,GAAG,OAAO;AACpE;",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable} from '@loaders.gl/core/schema';\nimport {convertMeshToTable, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {\n formatLASMeshColors,\n getLASShape,\n LAS_LOADER_METADATA,\n type LASLoaderOptions\n} from './las-loader-shared';\nimport {\n serializeArrowWorkerTable,\n deserializeArrowWorkerTable\n} from '@loaders.gl/core/arrow-worker-transport';\nimport type {LASMesh} from './lib/las-types';\nimport {\n decodeLAZChunkToArrowTable,\n parseLAS,\n parseLASInBatches,\n type LASArrowTable,\n type LAZChunkArrowTableMetadata\n} from './lib/typescript/parse-las';\n\ntype LASWorkerChunkRequest = {\n metadata: LAZChunkArrowTableMetadata;\n};\n\ntype LASWorkerOptions = LASLoaderOptions & {\n las?: LASLoaderOptions['las'] & {\n _chunk?: LASWorkerChunkRequest;\n };\n};\n\n/** Parser-bearing TypeScript-only LAS loader implementation. */\nexport const LASLoaderWithParser = {\n ...LAS_LOADER_METADATA,\n worker: true,\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializeLASWorkerTable,\n deserializeWorkerBatch: deserializeLASWorkerTable,\n parse: async (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseInBatches: async function* (arrayBufferIterator, options?: LASLoaderOptions) {\n yield* convertLASMeshBatches(parseLASInBatches(arrayBufferIterator, options), options);\n }\n} as const satisfies LoaderWithParser<\n LASMesh | MeshArrowTable,\n LASMesh | MeshArrowTable,\n LASLoaderOptions\n>;\n\n/** Parse a complete LAS file or an internal standalone worker chunk request. */\nfunction parseLASTable(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASArrowTable {\n const chunkRequest = (options as LASWorkerOptions | undefined)?.las?._chunk;\n return chunkRequest\n ? decodeLAZChunkToArrowTable(arrayBuffer, chunkRequest.metadata, options || {})\n : parseLAS(arrayBuffer, options);\n}\n\nfunction convertLASMesh(\n table: LASArrowTable,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n const formattedTable =\n options?.las?.colorFormat === undefined || options.las.colorFormat === 'uint8norm'\n ? table\n : {\n ...convertMeshToTable(\n formatLASMeshColors(convertTableToMesh(table) as LASMesh, options.las.colorFormat),\n 'arrow-table'\n ),\n loader: table.loader,\n loaderData: table.loaderData,\n progress: table.progress\n };\n if (getLASShape(options) === 'arrow-table') {\n return formattedTable;\n }\n return {\n ...(convertTableToMesh(formattedTable) as LASMesh),\n loader: formattedTable.loader,\n loaderData: formattedTable.loaderData,\n progress: formattedTable.progress\n } as LASMesh & {progress?: number};\n}\n\nasync function* convertLASMeshBatches(\n tableBatches: AsyncIterable<LASArrowTable>,\n options?: LASLoaderOptions\n): AsyncIterable<LASMesh | MeshArrowTable> {\n for await (const table of tableBatches) {\n yield convertLASMesh(table, options);\n }\n}\n\n/** Hydrates transferred columns and applies the requested mesh and color representation on the caller. */\nfunction deserializeLASWorkerTable(\n result: unknown,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n return convertLASMesh(deserializeArrowWorkerTable(result), options);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAAqD;AACrD,+BAKO;AACP,oCAGO;AAEP,uBAMO;AAaA,IAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,OAAO,OAAO,aAA0B,YACtC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,WAAW,CAAC,aAA0B,YACpC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,gBAAgB,iBAAiB,qBAAqB,SAA4B;AAChF,WAAO,0BAAsB,oCAAkB,qBAAqB,OAAO,GAAG,OAAO;AAAA,EACvF;AACF;AAOA,SAAS,cAAc,aAA0B,SAA2C;AAC1F,QAAM,eAAgB,SAA0C,KAAK;AACrE,SAAO,mBACH,6CAA2B,aAAa,aAAa,UAAU,WAAW,CAAC,CAAC,QAC5E,2BAAS,aAAa,OAAO;AACnC;AAEA,SAAS,eACP,OACA,SAC0B;AAC1B,QAAM,iBACJ,SAAS,KAAK,gBAAgB,UAAa,QAAQ,IAAI,gBAAgB,cACnE,QACA;AAAA,IACE,OAAG;AAAA,UACD,kDAAoB,wCAAmB,KAAK,GAAc,QAAQ,IAAI,WAAW;AAAA,MACjF;AAAA,IACF;AAAA,IACA,QAAQ,MAAM;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,UAAU,MAAM;AAAA,EAClB;AACN,UAAI,sCAAY,OAAO,MAAM,eAAe;AAC1C,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,OAAI,wCAAmB,cAAc;AAAA,IACrC,QAAQ,eAAe;AAAA,IACvB,YAAY,eAAe;AAAA,IAC3B,UAAU,eAAe;AAAA,EAC3B;AACF;AAEA,gBAAgB,sBACd,cACA,SACyC;AACzC,mBAAiB,SAAS,cAAc;AACtC,UAAM,eAAe,OAAO,OAAO;AAAA,EACrC;AACF;AAGA,SAAS,0BACP,QACA,SAC0B;AAC1B,SAAO,mBAAe,2DAA4B,MAAM,GAAG,OAAO;AACpE;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import type { MeshArrowTable } from '@loaders.gl/core/schema';
2
2
  import { type LASLoaderOptions } from "./las-loader-shared.js";
3
- import { serializeArrowWorkerTable } from '@loaders.gl/core/schema-utils/arrow-transport';
3
+ import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
4
4
  import type { LASMesh } from "./lib/las-types.js";
5
5
  /** Parser-bearing TypeScript-only LAS loader implementation. */
6
6
  export declare const LASLoaderWithParser: {
@@ -1 +1 @@
1
- {"version":3,"file":"las-loader.d.ts","sourceRoot":"","sources":["../../src/las/las-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAIL,KAAK,gBAAgB,EACtB,+BAA4B;AAC7B,OAAO,EACL,yBAAyB,EAE1B,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAC,OAAO,EAAC,2BAAwB;AAmB7C,gEAAgE;AAChE,eAAO,MAAM,mBAAmB;;;;;;;kCAQH,WAAW,YAAY,gBAAgB;sCAEzC,WAAW,YAAY,gBAAgB;+LAEA,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CAOjF,CAAC;AA8CF,0GAA0G;AAC1G,iBAAS,yBAAyB,CAChC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,GAAG,cAAc,CAE1B"}
1
+ {"version":3,"file":"las-loader.d.ts","sourceRoot":"","sources":["../../src/las/las-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAIL,KAAK,gBAAgB,EACtB,+BAA4B;AAC7B,OAAO,EACL,yBAAyB,EAE1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAC,OAAO,EAAC,2BAAwB;AAmB7C,gEAAgE;AAChE,eAAO,MAAM,mBAAmB;;;;;;;kCAQH,WAAW,YAAY,gBAAgB;sCAEzC,WAAW,YAAY,gBAAgB;+LAEA,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CAOjF,CAAC;AA8CF,0GAA0G;AAC1G,iBAAS,yBAAyB,CAChC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,GAAG,cAAc,CAE1B"}
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { convertMeshToTable, convertTableToMesh } from '@loaders.gl/core/schema-utils';
5
5
  import { formatLASMeshColors, getLASShape, LAS_LOADER_METADATA } from "./las-loader-shared.js";
6
- import { serializeArrowWorkerTable, deserializeArrowWorkerTable } from '@loaders.gl/core/schema-utils/arrow-transport';
6
+ import { serializeArrowWorkerTable, deserializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
7
7
  import { decodeLAZChunkToArrowTable, parseLAS, parseLASInBatches } from "./lib/typescript/parse-las.js";
8
8
  /** Parser-bearing TypeScript-only LAS loader implementation. */
9
9
  export const LASLoaderWithParser = {
@@ -1 +1 @@
1
- {"version":3,"file":"las-loader.js","sourceRoot":"","sources":["../../src/las/las-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"las-loader.js","sourceRoot":"","sources":["../../src/las/las-loader.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(las_writer_exports);
26
26
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
27
27
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
28
28
  var import_las_format = require("./las-format.cjs");
29
- var VERSION = true ? "5.0.0-beta.2" : "latest";
29
+ var VERSION = true ? "5.0.0-beta.5" : "latest";
30
30
  var LAS_HEADER_LENGTH = 227;
31
31
  var LAS_1_4_HEADER_LENGTH = 375;
32
32
  var LAS_1_5_HEADER_LENGTH = 393;
@@ -6,7 +6,7 @@ import { convertMeshToTable, convertTableToMesh } from '@loaders.gl/core/schema-
6
6
  import { LASFormat } from "./las-format.js";
7
7
  // __VERSION__ is injected by babel-plugin-version-inline
8
8
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
9
- const VERSION = typeof "5.0.0-beta.2" !== 'undefined' ? "5.0.0-beta.2" : 'latest';
9
+ const VERSION = typeof "5.0.0-beta.5" !== 'undefined' ? "5.0.0-beta.5" : 'latest';
10
10
  const LAS_HEADER_LENGTH = 227;
11
11
  const LAS_1_4_HEADER_LENGTH = 375;
12
12
  const LAS_1_5_HEADER_LENGTH = 393;
@@ -133,7 +133,12 @@ function populateLASTypedExtraBytes(rawExtraBytes, pointCount, extraByteCount, a
133
133
  }
134
134
  }
135
135
  function readLASString(bytes, offset, length) {
136
- return new TextDecoder().decode(bytes.subarray(offset, offset + length)).replace(/\0+$/, "").trim();
136
+ const decoded = new TextDecoder().decode(bytes.subarray(offset, offset + length));
137
+ let end = decoded.length;
138
+ while (end > 0 && decoded[end - 1] === "\0") {
139
+ end--;
140
+ }
141
+ return decoded.slice(0, end).trim();
137
142
  }
138
143
  function sanitizeExtraBytesName(name) {
139
144
  return name.trim().replace(/[^A-Za-z0-9_]+/g, "_");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/las/lib/las-extra-bytes.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LASExtraBytesDescriptor} from './las-types';\n\n/** Typed-array values supported for LAS Extra Bytes Arrow attributes. */\nexport type LASTypedExtraBytesValue =\n | Uint8Array\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array\n | Float64Array\n | BigInt64Array\n | BigUint64Array;\n\n/** Prepared typed LAS Extra Bytes attribute and its source-record layout. */\nexport type LASTypedExtraBytesAttribute = {\n /** Stable Arrow attribute name. */\n name: string;\n /** Typed output values. */\n value: LASTypedExtraBytesValue;\n /** Number of components per point. */\n size: number;\n /** LAS scalar data type code. */\n scalarDataType: number;\n /** Byte offset within the packed Extra Bytes record. */\n byteOffset: number;\n /** Total source byte length per point. */\n byteLength: number;\n /** Per-component scales. */\n scales: number[];\n /** Per-component offsets. */\n offsets: number[];\n /** Whether transformed integer values require Float64 output. */\n outputFloat64: boolean;\n};\n\n/** Parse the 192-byte descriptors in an LAS Extra Bytes VLR payload. */\nexport function parseLASExtraBytes(data: Uint8Array): LASExtraBytesDescriptor[] {\n if (data.byteLength % 192 !== 0) {\n throw new Error(`LAS Extra Bytes VLR length ${data.byteLength} is not a multiple of 192`);\n }\n const descriptors: LASExtraBytesDescriptor[] = [];\n const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\n for (let descriptorOffset = 0; descriptorOffset < data.byteLength; descriptorOffset += 192) {\n const scales: [number, number, number] = [\n dataView.getFloat64(descriptorOffset + 112, true),\n dataView.getFloat64(descriptorOffset + 120, true),\n dataView.getFloat64(descriptorOffset + 128, true)\n ];\n const offsets: [number, number, number] = [\n dataView.getFloat64(descriptorOffset + 136, true),\n dataView.getFloat64(descriptorOffset + 144, true),\n dataView.getFloat64(descriptorOffset + 152, true)\n ];\n descriptors.push({\n dataType: data[descriptorOffset + 2],\n options: data[descriptorOffset + 3],\n name: readLASString(data, descriptorOffset + 4, 32),\n description: readLASString(data, descriptorOffset + 160, 32),\n scale: scales[0],\n offset: offsets[0],\n scales,\n offsets,\n data: data.slice(descriptorOffset, descriptorOffset + 192)\n });\n }\n return descriptors;\n}\n\n/** Allocate typed Arrow attributes described by an LAS Extra Bytes VLR. */\nexport function createLASTypedExtraBytesAttributes(\n pointCount: number,\n descriptors: readonly LASExtraBytesDescriptor[],\n extraByteCount: number\n): LASTypedExtraBytesAttribute[] {\n let byteOffset = 0;\n const usedNames = new Set<string>();\n const attributes: LASTypedExtraBytesAttribute[] = [];\n for (let descriptorIndex = 0; descriptorIndex < descriptors.length; descriptorIndex++) {\n const descriptor = descriptors[descriptorIndex];\n const scalarDataType = getExtraBytesScalarDataType(descriptor.dataType);\n const size = getExtraBytesComponentCount(descriptor.dataType);\n const scalarByteLength = getExtraBytesScalarByteLength(scalarDataType);\n const byteLength = scalarByteLength * size;\n if (descriptor.dataType < 1 || descriptor.dataType > 30 || !byteLength) {\n throw new Error(`Unsupported typed LAS Extra Bytes data type ${descriptor.dataType}`);\n }\n let name = `EXTRA_BYTES_${sanitizeExtraBytesName(descriptor.name)}`;\n if (name === 'EXTRA_BYTES_') {\n name = `EXTRA_BYTES_${descriptorIndex}`;\n }\n const baseName = name;\n let suffix = 1;\n while (usedNames.has(name)) {\n name = `${baseName}_${suffix++}`;\n }\n usedNames.add(name);\n const scales =\n descriptor.options & 0x08 ? descriptor.scales.slice(0, size) : new Array(size).fill(1);\n const offsets =\n descriptor.options & 0x10 ? descriptor.offsets.slice(0, size) : new Array(size).fill(0);\n const isBigInt = scalarDataType === 7 || scalarDataType === 8;\n const outputFloat64 =\n scalarDataType !== 10 &&\n (isBigInt\n ? scales.some(scale => scale !== 1) || offsets.some(offset => offset !== 0)\n : Boolean(descriptor.options & 0x18));\n attributes.push({\n name,\n value: createLASTypedExtraBytesValue(scalarDataType, pointCount * size, outputFloat64),\n size,\n scalarDataType,\n byteOffset,\n byteLength,\n outputFloat64,\n scales,\n offsets\n });\n byteOffset += byteLength;\n }\n if (byteOffset !== extraByteCount) {\n throw new Error(\n `LAS Extra Bytes descriptors use ${byteOffset} bytes; point records provide ${extraByteCount}`\n );\n }\n return attributes;\n}\n\n/** Populate typed attributes from packed Extra Bytes records. */\nexport function populateLASTypedExtraBytes(\n rawExtraBytes: Uint8Array,\n pointCount: number,\n extraByteCount: number,\n attributes: readonly LASTypedExtraBytesAttribute[]\n): void {\n if (rawExtraBytes.byteLength < pointCount * extraByteCount) {\n throw new Error('Packed LAS Extra Bytes data is truncated');\n }\n const dataView = new DataView(\n rawExtraBytes.buffer,\n rawExtraBytes.byteOffset,\n rawExtraBytes.byteLength\n );\n for (let pointIndex = 0; pointIndex < pointCount; pointIndex++) {\n const recordOffset = pointIndex * extraByteCount;\n for (const attribute of attributes) {\n const targetOffset = pointIndex * attribute.size;\n const sourceOffset = recordOffset + attribute.byteOffset;\n const scalarByteLength = getExtraBytesScalarByteLength(attribute.scalarDataType);\n for (let componentIndex = 0; componentIndex < attribute.size; componentIndex++) {\n populateLASTypedExtraBytesComponent(\n dataView,\n sourceOffset + componentIndex * scalarByteLength,\n attribute,\n targetOffset + componentIndex,\n componentIndex\n );\n }\n }\n }\n}\n\nfunction readLASString(bytes: Uint8Array, offset: number, length: number): string {\n return new TextDecoder()\n .decode(bytes.subarray(offset, offset + length))\n .replace(/\\0+$/, '')\n .trim();\n}\n\nfunction sanitizeExtraBytesName(name: string): string {\n return name.trim().replace(/[^A-Za-z0-9_]+/g, '_');\n}\n\nfunction getExtraBytesScalarDataType(dataType: number): number {\n return dataType > 20 ? dataType - 20 : dataType > 10 ? dataType - 10 : dataType;\n}\n\nfunction getExtraBytesComponentCount(dataType: number): number {\n return dataType > 20 ? 3 : dataType > 10 ? 2 : 1;\n}\n\nfunction getExtraBytesScalarByteLength(dataType: number): number {\n if (dataType <= 2) return 1;\n if (dataType <= 4) return 2;\n if (dataType <= 6 || dataType === 9) return 4;\n if (dataType === 7 || dataType === 8 || dataType === 10) return 8;\n return 0;\n}\n\nfunction readExtraBytesValue(\n dataView: DataView,\n offset: number,\n scalarDataType: number\n): number | bigint {\n switch (scalarDataType) {\n case 1:\n return dataView.getUint8(offset);\n case 2:\n return dataView.getInt8(offset);\n case 3:\n return dataView.getUint16(offset, true);\n case 4:\n return dataView.getInt16(offset, true);\n case 5:\n return dataView.getUint32(offset, true);\n case 6:\n return dataView.getInt32(offset, true);\n case 7:\n return dataView.getBigUint64(offset, true);\n case 8:\n return dataView.getBigInt64(offset, true);\n case 9:\n return dataView.getFloat32(offset, true);\n case 10:\n return dataView.getFloat64(offset, true);\n default:\n throw new Error(`Unsupported typed LAS Extra Bytes scalar data type ${scalarDataType}`);\n }\n}\n\n/** Allocate the typed-array representation for one LAS Extra Bytes scalar type. */\nexport function createLASTypedExtraBytesValue(\n scalarDataType: number,\n length: number,\n outputFloat64: boolean\n): LASTypedExtraBytesValue {\n if (outputFloat64 && scalarDataType !== 10) return new Float64Array(length);\n switch (scalarDataType) {\n case 1:\n return new Uint8Array(length);\n case 2:\n return new Int8Array(length);\n case 3:\n return new Uint16Array(length);\n case 4:\n return new Int16Array(length);\n case 5:\n return new Uint32Array(length);\n case 6:\n return new Int32Array(length);\n case 7:\n return new BigUint64Array(length);\n case 8:\n return new BigInt64Array(length);\n case 9:\n return new Float32Array(length);\n case 10:\n return new Float64Array(length);\n default:\n throw new Error(`Unsupported typed LAS Extra Bytes scalar data type ${scalarDataType}`);\n }\n}\n\n/** Decode one descriptor component, retaining integer precision unless a transform is requested. */\nexport function populateLASTypedExtraBytesComponent(\n dataView: DataView,\n sourceOffset: number,\n attribute: LASTypedExtraBytesAttribute,\n targetOffset: number,\n componentIndex: number\n): void {\n const value = readExtraBytesValue(dataView, sourceOffset, attribute.scalarDataType);\n if (attribute.value instanceof BigInt64Array || attribute.value instanceof BigUint64Array) {\n attribute.value[targetOffset] = value as bigint;\n } else {\n attribute.value[targetOffset] =\n Number(value) * attribute.scales[componentIndex] + attribute.offsets[componentIndex];\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LASExtraBytesDescriptor} from './las-types';\n\n/** Typed-array values supported for LAS Extra Bytes Arrow attributes. */\nexport type LASTypedExtraBytesValue =\n | Uint8Array\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array\n | Float64Array\n | BigInt64Array\n | BigUint64Array;\n\n/** Prepared typed LAS Extra Bytes attribute and its source-record layout. */\nexport type LASTypedExtraBytesAttribute = {\n /** Stable Arrow attribute name. */\n name: string;\n /** Typed output values. */\n value: LASTypedExtraBytesValue;\n /** Number of components per point. */\n size: number;\n /** LAS scalar data type code. */\n scalarDataType: number;\n /** Byte offset within the packed Extra Bytes record. */\n byteOffset: number;\n /** Total source byte length per point. */\n byteLength: number;\n /** Per-component scales. */\n scales: number[];\n /** Per-component offsets. */\n offsets: number[];\n /** Whether transformed integer values require Float64 output. */\n outputFloat64: boolean;\n};\n\n/** Parse the 192-byte descriptors in an LAS Extra Bytes VLR payload. */\nexport function parseLASExtraBytes(data: Uint8Array): LASExtraBytesDescriptor[] {\n if (data.byteLength % 192 !== 0) {\n throw new Error(`LAS Extra Bytes VLR length ${data.byteLength} is not a multiple of 192`);\n }\n const descriptors: LASExtraBytesDescriptor[] = [];\n const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\n for (let descriptorOffset = 0; descriptorOffset < data.byteLength; descriptorOffset += 192) {\n const scales: [number, number, number] = [\n dataView.getFloat64(descriptorOffset + 112, true),\n dataView.getFloat64(descriptorOffset + 120, true),\n dataView.getFloat64(descriptorOffset + 128, true)\n ];\n const offsets: [number, number, number] = [\n dataView.getFloat64(descriptorOffset + 136, true),\n dataView.getFloat64(descriptorOffset + 144, true),\n dataView.getFloat64(descriptorOffset + 152, true)\n ];\n descriptors.push({\n dataType: data[descriptorOffset + 2],\n options: data[descriptorOffset + 3],\n name: readLASString(data, descriptorOffset + 4, 32),\n description: readLASString(data, descriptorOffset + 160, 32),\n scale: scales[0],\n offset: offsets[0],\n scales,\n offsets,\n data: data.slice(descriptorOffset, descriptorOffset + 192)\n });\n }\n return descriptors;\n}\n\n/** Allocate typed Arrow attributes described by an LAS Extra Bytes VLR. */\nexport function createLASTypedExtraBytesAttributes(\n pointCount: number,\n descriptors: readonly LASExtraBytesDescriptor[],\n extraByteCount: number\n): LASTypedExtraBytesAttribute[] {\n let byteOffset = 0;\n const usedNames = new Set<string>();\n const attributes: LASTypedExtraBytesAttribute[] = [];\n for (let descriptorIndex = 0; descriptorIndex < descriptors.length; descriptorIndex++) {\n const descriptor = descriptors[descriptorIndex];\n const scalarDataType = getExtraBytesScalarDataType(descriptor.dataType);\n const size = getExtraBytesComponentCount(descriptor.dataType);\n const scalarByteLength = getExtraBytesScalarByteLength(scalarDataType);\n const byteLength = scalarByteLength * size;\n if (descriptor.dataType < 1 || descriptor.dataType > 30 || !byteLength) {\n throw new Error(`Unsupported typed LAS Extra Bytes data type ${descriptor.dataType}`);\n }\n let name = `EXTRA_BYTES_${sanitizeExtraBytesName(descriptor.name)}`;\n if (name === 'EXTRA_BYTES_') {\n name = `EXTRA_BYTES_${descriptorIndex}`;\n }\n const baseName = name;\n let suffix = 1;\n while (usedNames.has(name)) {\n name = `${baseName}_${suffix++}`;\n }\n usedNames.add(name);\n const scales =\n descriptor.options & 0x08 ? descriptor.scales.slice(0, size) : new Array(size).fill(1);\n const offsets =\n descriptor.options & 0x10 ? descriptor.offsets.slice(0, size) : new Array(size).fill(0);\n const isBigInt = scalarDataType === 7 || scalarDataType === 8;\n const outputFloat64 =\n scalarDataType !== 10 &&\n (isBigInt\n ? scales.some(scale => scale !== 1) || offsets.some(offset => offset !== 0)\n : Boolean(descriptor.options & 0x18));\n attributes.push({\n name,\n value: createLASTypedExtraBytesValue(scalarDataType, pointCount * size, outputFloat64),\n size,\n scalarDataType,\n byteOffset,\n byteLength,\n outputFloat64,\n scales,\n offsets\n });\n byteOffset += byteLength;\n }\n if (byteOffset !== extraByteCount) {\n throw new Error(\n `LAS Extra Bytes descriptors use ${byteOffset} bytes; point records provide ${extraByteCount}`\n );\n }\n return attributes;\n}\n\n/** Populate typed attributes from packed Extra Bytes records. */\nexport function populateLASTypedExtraBytes(\n rawExtraBytes: Uint8Array,\n pointCount: number,\n extraByteCount: number,\n attributes: readonly LASTypedExtraBytesAttribute[]\n): void {\n if (rawExtraBytes.byteLength < pointCount * extraByteCount) {\n throw new Error('Packed LAS Extra Bytes data is truncated');\n }\n const dataView = new DataView(\n rawExtraBytes.buffer,\n rawExtraBytes.byteOffset,\n rawExtraBytes.byteLength\n );\n for (let pointIndex = 0; pointIndex < pointCount; pointIndex++) {\n const recordOffset = pointIndex * extraByteCount;\n for (const attribute of attributes) {\n const targetOffset = pointIndex * attribute.size;\n const sourceOffset = recordOffset + attribute.byteOffset;\n const scalarByteLength = getExtraBytesScalarByteLength(attribute.scalarDataType);\n for (let componentIndex = 0; componentIndex < attribute.size; componentIndex++) {\n populateLASTypedExtraBytesComponent(\n dataView,\n sourceOffset + componentIndex * scalarByteLength,\n attribute,\n targetOffset + componentIndex,\n componentIndex\n );\n }\n }\n }\n}\n\nfunction readLASString(bytes: Uint8Array, offset: number, length: number): string {\n const decoded = new TextDecoder().decode(bytes.subarray(offset, offset + length));\n let end = decoded.length;\n while (end > 0 && decoded[end - 1] === '\\0') {\n end--;\n }\n return decoded.slice(0, end).trim();\n}\n\nfunction sanitizeExtraBytesName(name: string): string {\n return name.trim().replace(/[^A-Za-z0-9_]+/g, '_');\n}\n\nfunction getExtraBytesScalarDataType(dataType: number): number {\n return dataType > 20 ? dataType - 20 : dataType > 10 ? dataType - 10 : dataType;\n}\n\nfunction getExtraBytesComponentCount(dataType: number): number {\n return dataType > 20 ? 3 : dataType > 10 ? 2 : 1;\n}\n\nfunction getExtraBytesScalarByteLength(dataType: number): number {\n if (dataType <= 2) return 1;\n if (dataType <= 4) return 2;\n if (dataType <= 6 || dataType === 9) return 4;\n if (dataType === 7 || dataType === 8 || dataType === 10) return 8;\n return 0;\n}\n\nfunction readExtraBytesValue(\n dataView: DataView,\n offset: number,\n scalarDataType: number\n): number | bigint {\n switch (scalarDataType) {\n case 1:\n return dataView.getUint8(offset);\n case 2:\n return dataView.getInt8(offset);\n case 3:\n return dataView.getUint16(offset, true);\n case 4:\n return dataView.getInt16(offset, true);\n case 5:\n return dataView.getUint32(offset, true);\n case 6:\n return dataView.getInt32(offset, true);\n case 7:\n return dataView.getBigUint64(offset, true);\n case 8:\n return dataView.getBigInt64(offset, true);\n case 9:\n return dataView.getFloat32(offset, true);\n case 10:\n return dataView.getFloat64(offset, true);\n default:\n throw new Error(`Unsupported typed LAS Extra Bytes scalar data type ${scalarDataType}`);\n }\n}\n\n/** Allocate the typed-array representation for one LAS Extra Bytes scalar type. */\nexport function createLASTypedExtraBytesValue(\n scalarDataType: number,\n length: number,\n outputFloat64: boolean\n): LASTypedExtraBytesValue {\n if (outputFloat64 && scalarDataType !== 10) return new Float64Array(length);\n switch (scalarDataType) {\n case 1:\n return new Uint8Array(length);\n case 2:\n return new Int8Array(length);\n case 3:\n return new Uint16Array(length);\n case 4:\n return new Int16Array(length);\n case 5:\n return new Uint32Array(length);\n case 6:\n return new Int32Array(length);\n case 7:\n return new BigUint64Array(length);\n case 8:\n return new BigInt64Array(length);\n case 9:\n return new Float32Array(length);\n case 10:\n return new Float64Array(length);\n default:\n throw new Error(`Unsupported typed LAS Extra Bytes scalar data type ${scalarDataType}`);\n }\n}\n\n/** Decode one descriptor component, retaining integer precision unless a transform is requested. */\nexport function populateLASTypedExtraBytesComponent(\n dataView: DataView,\n sourceOffset: number,\n attribute: LASTypedExtraBytesAttribute,\n targetOffset: number,\n componentIndex: number\n): void {\n const value = readExtraBytesValue(dataView, sourceOffset, attribute.scalarDataType);\n if (attribute.value instanceof BigInt64Array || attribute.value instanceof BigUint64Array) {\n attribute.value[targetOffset] = value as bigint;\n } else {\n attribute.value[targetOffset] =\n Number(value) * attribute.scales[componentIndex] + attribute.offsets[componentIndex];\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"las-extra-bytes.d.ts","sourceRoot":"","sources":["../../../src/las/lib/las-extra-bytes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,uBAAuB,EAAC,uBAAoB;AAEzD,yEAAyE;AACzE,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAEnB,6EAA6E;AAC7E,MAAM,MAAM,2BAA2B,GAAG;IACxC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,uBAAuB,EAAE,CA8B9E;AAED,2EAA2E;AAC3E,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,SAAS,uBAAuB,EAAE,EAC/C,cAAc,EAAE,MAAM,GACrB,2BAA2B,EAAE,CAoD/B;AAED,iEAAiE;AACjE,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,UAAU,EACzB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,SAAS,2BAA2B,EAAE,GACjD,IAAI,CA0BN;AA4DD,mFAAmF;AACnF,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,GACrB,uBAAuB,CA0BzB;AAED,oGAAoG;AACpG,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,2BAA2B,EACtC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,IAAI,CAQN"}
1
+ {"version":3,"file":"las-extra-bytes.d.ts","sourceRoot":"","sources":["../../../src/las/lib/las-extra-bytes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,uBAAuB,EAAC,uBAAoB;AAEzD,yEAAyE;AACzE,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAEnB,6EAA6E;AAC7E,MAAM,MAAM,2BAA2B,GAAG;IACxC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,uBAAuB,EAAE,CA8B9E;AAED,2EAA2E;AAC3E,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,SAAS,uBAAuB,EAAE,EAC/C,cAAc,EAAE,MAAM,GACrB,2BAA2B,EAAE,CAoD/B;AAED,iEAAiE;AACjE,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,UAAU,EACzB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,SAAS,2BAA2B,EAAE,GACjD,IAAI,CA0BN;AA8DD,mFAAmF;AACnF,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,GACrB,uBAAuB,CA0BzB;AAED,oGAAoG;AACpG,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,2BAA2B,EACtC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,IAAI,CAQN"}
@@ -101,10 +101,12 @@ export function populateLASTypedExtraBytes(rawExtraBytes, pointCount, extraByteC
101
101
  }
102
102
  }
103
103
  function readLASString(bytes, offset, length) {
104
- return new TextDecoder()
105
- .decode(bytes.subarray(offset, offset + length))
106
- .replace(/\0+$/, '')
107
- .trim();
104
+ const decoded = new TextDecoder().decode(bytes.subarray(offset, offset + length));
105
+ let end = decoded.length;
106
+ while (end > 0 && decoded[end - 1] === '\0') {
107
+ end--;
108
+ }
109
+ return decoded.slice(0, end).trim();
108
110
  }
109
111
  function sanitizeExtraBytesName(name) {
110
112
  return name.trim().replace(/[^A-Za-z0-9_]+/g, '_');
@@ -1 +1 @@
1
- {"version":3,"file":"las-extra-bytes.js","sourceRoot":"","sources":["../../../src/las/lib/las-extra-bytes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"las-extra-bytes.js","sourceRoot":"","sources":["../../../src/las/lib/las-extra-bytes.ts"],"names":[],"mappings":"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"}
@@ -27,14 +27,14 @@ module.exports = __toCommonJS(las_loader_exports);
27
27
  // src/las/las-loader.ts
28
28
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
29
  var import_las_loader_shared = require("./las-loader-shared.cjs");
30
- var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
30
+ var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
31
31
  var import_parse_las = require("./lib/typescript/parse-las.cjs");
32
32
  var LASLoaderWithParser = {
33
33
  ...import_las_loader_shared.LAS_LOADER_METADATA,
34
34
  worker: true,
35
35
  workerInBatches: true,
36
- serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
37
- serializeWorkerBatch: import_arrow_transport.serializeArrowWorkerTable,
36
+ serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
37
+ serializeWorkerBatch: import_arrow_worker_transport.serializeArrowWorkerTable,
38
38
  deserializeWorkerResult: deserializeLASWorkerTable,
39
39
  deserializeWorkerBatch: deserializeLASWorkerTable,
40
40
  parse: async (arrayBuffer, options) => convertLASMesh(parseLASTable(arrayBuffer, options), options),
@@ -73,7 +73,7 @@ async function* convertLASMeshBatches(tableBatches, options) {
73
73
  }
74
74
  }
75
75
  function deserializeLASWorkerTable(result, options) {
76
- return convertLASMesh((0, import_arrow_transport.deserializeArrowWorkerTable)(result), options);
76
+ return convertLASMesh((0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result), options);
77
77
  }
78
78
  // Annotate the CommonJS export names for ESM import in node:
79
79
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/las-loader.ts", "../src/las/las-loader.ts"],
4
- "sourcesContent": ["export * from './las/las-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable} from '@loaders.gl/core/schema';\nimport {convertMeshToTable, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {\n formatLASMeshColors,\n getLASShape,\n LAS_LOADER_METADATA,\n type LASLoaderOptions\n} from './las-loader-shared';\nimport {\n serializeArrowWorkerTable,\n deserializeArrowWorkerTable\n} from '@loaders.gl/core/schema-utils/arrow-transport';\nimport type {LASMesh} from './lib/las-types';\nimport {\n decodeLAZChunkToArrowTable,\n parseLAS,\n parseLASInBatches,\n type LASArrowTable,\n type LAZChunkArrowTableMetadata\n} from './lib/typescript/parse-las';\n\ntype LASWorkerChunkRequest = {\n metadata: LAZChunkArrowTableMetadata;\n};\n\ntype LASWorkerOptions = LASLoaderOptions & {\n las?: LASLoaderOptions['las'] & {\n _chunk?: LASWorkerChunkRequest;\n };\n};\n\n/** Parser-bearing TypeScript-only LAS loader implementation. */\nexport const LASLoaderWithParser = {\n ...LAS_LOADER_METADATA,\n worker: true,\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializeLASWorkerTable,\n deserializeWorkerBatch: deserializeLASWorkerTable,\n parse: async (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseInBatches: async function* (arrayBufferIterator, options?: LASLoaderOptions) {\n yield* convertLASMeshBatches(parseLASInBatches(arrayBufferIterator, options), options);\n }\n} as const satisfies LoaderWithParser<\n LASMesh | MeshArrowTable,\n LASMesh | MeshArrowTable,\n LASLoaderOptions\n>;\n\n/** Parse a complete LAS file or an internal standalone worker chunk request. */\nfunction parseLASTable(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASArrowTable {\n const chunkRequest = (options as LASWorkerOptions | undefined)?.las?._chunk;\n return chunkRequest\n ? decodeLAZChunkToArrowTable(arrayBuffer, chunkRequest.metadata, options || {})\n : parseLAS(arrayBuffer, options);\n}\n\nfunction convertLASMesh(\n table: LASArrowTable,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n const formattedTable =\n options?.las?.colorFormat === undefined || options.las.colorFormat === 'uint8norm'\n ? table\n : {\n ...convertMeshToTable(\n formatLASMeshColors(convertTableToMesh(table) as LASMesh, options.las.colorFormat),\n 'arrow-table'\n ),\n loader: table.loader,\n loaderData: table.loaderData,\n progress: table.progress\n };\n if (getLASShape(options) === 'arrow-table') {\n return formattedTable;\n }\n return {\n ...(convertTableToMesh(formattedTable) as LASMesh),\n loader: formattedTable.loader,\n loaderData: formattedTable.loaderData,\n progress: formattedTable.progress\n } as LASMesh & {progress?: number};\n}\n\nasync function* convertLASMeshBatches(\n tableBatches: AsyncIterable<LASArrowTable>,\n options?: LASLoaderOptions\n): AsyncIterable<LASMesh | MeshArrowTable> {\n for await (const table of tableBatches) {\n yield convertLASMesh(table, options);\n }\n}\n\n/** Hydrates transferred columns and applies the requested mesh and color representation on the caller. */\nfunction deserializeLASWorkerTable(\n result: unknown,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n return convertLASMesh(deserializeArrowWorkerTable(result), options);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,0BAAqD;AACrD,+BAKO;AACP,6BAGO;AAEP,uBAMO;AAaA,IAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,OAAO,OAAO,aAA0B,YACtC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,WAAW,CAAC,aAA0B,YACpC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,gBAAgB,iBAAiB,qBAAqB,SAA4B;AAChF,WAAO,0BAAsB,oCAAkB,qBAAqB,OAAO,GAAG,OAAO;AAAA,EACvF;AACF;AAOA,SAAS,cAAc,aAA0B,SAA2C;AAC1F,QAAM,eAAgB,SAA0C,KAAK;AACrE,SAAO,mBACH,6CAA2B,aAAa,aAAa,UAAU,WAAW,CAAC,CAAC,QAC5E,2BAAS,aAAa,OAAO;AACnC;AAEA,SAAS,eACP,OACA,SAC0B;AAC1B,QAAM,iBACJ,SAAS,KAAK,gBAAgB,UAAa,QAAQ,IAAI,gBAAgB,cACnE,QACA;AAAA,IACE,OAAG;AAAA,UACD,kDAAoB,wCAAmB,KAAK,GAAc,QAAQ,IAAI,WAAW;AAAA,MACjF;AAAA,IACF;AAAA,IACA,QAAQ,MAAM;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,UAAU,MAAM;AAAA,EAClB;AACN,UAAI,sCAAY,OAAO,MAAM,eAAe;AAC1C,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,OAAI,wCAAmB,cAAc;AAAA,IACrC,QAAQ,eAAe;AAAA,IACvB,YAAY,eAAe;AAAA,IAC3B,UAAU,eAAe;AAAA,EAC3B;AACF;AAEA,gBAAgB,sBACd,cACA,SACyC;AACzC,mBAAiB,SAAS,cAAc;AACtC,UAAM,eAAe,OAAO,OAAO;AAAA,EACrC;AACF;AAGA,SAAS,0BACP,QACA,SAC0B;AAC1B,SAAO,mBAAe,oDAA4B,MAAM,GAAG,OAAO;AACpE;",
4
+ "sourcesContent": ["export * from './las/las-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable} from '@loaders.gl/core/schema';\nimport {convertMeshToTable, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {\n formatLASMeshColors,\n getLASShape,\n LAS_LOADER_METADATA,\n type LASLoaderOptions\n} from './las-loader-shared';\nimport {\n serializeArrowWorkerTable,\n deserializeArrowWorkerTable\n} from '@loaders.gl/core/arrow-worker-transport';\nimport type {LASMesh} from './lib/las-types';\nimport {\n decodeLAZChunkToArrowTable,\n parseLAS,\n parseLASInBatches,\n type LASArrowTable,\n type LAZChunkArrowTableMetadata\n} from './lib/typescript/parse-las';\n\ntype LASWorkerChunkRequest = {\n metadata: LAZChunkArrowTableMetadata;\n};\n\ntype LASWorkerOptions = LASLoaderOptions & {\n las?: LASLoaderOptions['las'] & {\n _chunk?: LASWorkerChunkRequest;\n };\n};\n\n/** Parser-bearing TypeScript-only LAS loader implementation. */\nexport const LASLoaderWithParser = {\n ...LAS_LOADER_METADATA,\n worker: true,\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializeLASWorkerTable,\n deserializeWorkerBatch: deserializeLASWorkerTable,\n parse: async (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLASTable(arrayBuffer, options), options),\n parseInBatches: async function* (arrayBufferIterator, options?: LASLoaderOptions) {\n yield* convertLASMeshBatches(parseLASInBatches(arrayBufferIterator, options), options);\n }\n} as const satisfies LoaderWithParser<\n LASMesh | MeshArrowTable,\n LASMesh | MeshArrowTable,\n LASLoaderOptions\n>;\n\n/** Parse a complete LAS file or an internal standalone worker chunk request. */\nfunction parseLASTable(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASArrowTable {\n const chunkRequest = (options as LASWorkerOptions | undefined)?.las?._chunk;\n return chunkRequest\n ? decodeLAZChunkToArrowTable(arrayBuffer, chunkRequest.metadata, options || {})\n : parseLAS(arrayBuffer, options);\n}\n\nfunction convertLASMesh(\n table: LASArrowTable,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n const formattedTable =\n options?.las?.colorFormat === undefined || options.las.colorFormat === 'uint8norm'\n ? table\n : {\n ...convertMeshToTable(\n formatLASMeshColors(convertTableToMesh(table) as LASMesh, options.las.colorFormat),\n 'arrow-table'\n ),\n loader: table.loader,\n loaderData: table.loaderData,\n progress: table.progress\n };\n if (getLASShape(options) === 'arrow-table') {\n return formattedTable;\n }\n return {\n ...(convertTableToMesh(formattedTable) as LASMesh),\n loader: formattedTable.loader,\n loaderData: formattedTable.loaderData,\n progress: formattedTable.progress\n } as LASMesh & {progress?: number};\n}\n\nasync function* convertLASMeshBatches(\n tableBatches: AsyncIterable<LASArrowTable>,\n options?: LASLoaderOptions\n): AsyncIterable<LASMesh | MeshArrowTable> {\n for await (const table of tableBatches) {\n yield convertLASMesh(table, options);\n }\n}\n\n/** Hydrates transferred columns and applies the requested mesh and color representation on the caller. */\nfunction deserializeLASWorkerTable(\n result: unknown,\n options?: LASLoaderOptions\n): LASMesh | MeshArrowTable {\n return convertLASMesh(deserializeArrowWorkerTable(result), options);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,0BAAqD;AACrD,+BAKO;AACP,oCAGO;AAEP,uBAMO;AAaA,IAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,OAAO,OAAO,aAA0B,YACtC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,WAAW,CAAC,aAA0B,YACpC,eAAe,cAAc,aAAa,OAAO,GAAG,OAAO;AAAA,EAC7D,gBAAgB,iBAAiB,qBAAqB,SAA4B;AAChF,WAAO,0BAAsB,oCAAkB,qBAAqB,OAAO,GAAG,OAAO;AAAA,EACvF;AACF;AAOA,SAAS,cAAc,aAA0B,SAA2C;AAC1F,QAAM,eAAgB,SAA0C,KAAK;AACrE,SAAO,mBACH,6CAA2B,aAAa,aAAa,UAAU,WAAW,CAAC,CAAC,QAC5E,2BAAS,aAAa,OAAO;AACnC;AAEA,SAAS,eACP,OACA,SAC0B;AAC1B,QAAM,iBACJ,SAAS,KAAK,gBAAgB,UAAa,QAAQ,IAAI,gBAAgB,cACnE,QACA;AAAA,IACE,OAAG;AAAA,UACD,kDAAoB,wCAAmB,KAAK,GAAc,QAAQ,IAAI,WAAW;AAAA,MACjF;AAAA,IACF;AAAA,IACA,QAAQ,MAAM;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,UAAU,MAAM;AAAA,EAClB;AACN,UAAI,sCAAY,OAAO,MAAM,eAAe;AAC1C,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,OAAI,wCAAmB,cAAc;AAAA,IACrC,QAAQ,eAAe;AAAA,IACvB,YAAY,eAAe;AAAA,IAC3B,UAAU,eAAe;AAAA,EAC3B;AACF;AAEA,gBAAgB,sBACd,cACA,SACyC;AACzC,mBAAiB,SAAS,cAAc;AACtC,UAAM,eAAe,OAAO,OAAO;AAAA,EACrC;AACF;AAGA,SAAS,0BACP,QACA,SAC0B;AAC1B,SAAO,mBAAe,2DAA4B,MAAM,GAAG,OAAO;AACpE;",
6
6
  "names": []
7
7
  }