@loaders.gl/core 5.0.0-alpha.11 → 5.0.0-alpha.13

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 (1314) hide show
  1. package/LICENSE +1 -1
  2. package/SCHEMA-README.md +9 -0
  3. package/SCHEMA-UTILS-README.md +11 -0
  4. package/dist/dist.dev.js +180 -146
  5. package/dist/dist.min.js +3 -3
  6. package/dist/index.cjs +107 -98
  7. package/dist/index.cjs.map +2 -2
  8. package/dist/index.d.ts +10 -10
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +8 -8
  11. package/dist/index.js.map +1 -1
  12. package/dist/iterators/make-iterator/make-iterator.js +1 -1
  13. package/dist/iterators/make-iterator/make-iterator.js.map +1 -1
  14. package/dist/iterators/make-iterator/make-stream-iterator.js +1 -1
  15. package/dist/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  16. package/dist/iterators/make-iterator/make-string-iterator.js +1 -1
  17. package/dist/iterators/make-iterator/make-string-iterator.js.map +1 -1
  18. package/dist/lib/api/core-api.d.ts +1 -1
  19. package/dist/lib/api/core-api.d.ts.map +1 -1
  20. package/dist/lib/api/create-data-source.d.ts +1 -1
  21. package/dist/lib/api/create-data-source.d.ts.map +1 -1
  22. package/dist/lib/api/create-data-source.js +1 -1
  23. package/dist/lib/api/create-data-source.js.map +1 -1
  24. package/dist/lib/api/encode-table.d.ts +2 -2
  25. package/dist/lib/api/encode-table.d.ts.map +1 -1
  26. package/dist/lib/api/encode-table.js +1 -1
  27. package/dist/lib/api/encode-table.js.map +1 -1
  28. package/dist/lib/api/encode.d.ts +1 -1
  29. package/dist/lib/api/encode.d.ts.map +1 -1
  30. package/dist/lib/api/encode.js +2 -2
  31. package/dist/lib/api/encode.js.map +1 -1
  32. package/dist/lib/api/load-in-batches.d.ts +1 -1
  33. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  34. package/dist/lib/api/load-in-batches.js +1 -1
  35. package/dist/lib/api/load-in-batches.js.map +1 -1
  36. package/dist/lib/api/load-loader.d.ts +1 -1
  37. package/dist/lib/api/load-loader.d.ts.map +1 -1
  38. package/dist/lib/api/load-loader.js +1 -1
  39. package/dist/lib/api/load-loader.js.map +1 -1
  40. package/dist/lib/api/load.d.ts +1 -1
  41. package/dist/lib/api/load.d.ts.map +1 -1
  42. package/dist/lib/api/load.js +1 -1
  43. package/dist/lib/api/load.js.map +1 -1
  44. package/dist/lib/api/parse-file.d.ts +1 -1
  45. package/dist/lib/api/parse-file.d.ts.map +1 -1
  46. package/dist/lib/api/parse-file.js +2 -2
  47. package/dist/lib/api/parse-file.js.map +1 -1
  48. package/dist/lib/api/parse-in-batches.d.ts +1 -1
  49. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  50. package/dist/lib/api/parse-in-batches.js +40 -4
  51. package/dist/lib/api/parse-in-batches.js.map +1 -1
  52. package/dist/lib/api/parse-sync.d.ts +1 -1
  53. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  54. package/dist/lib/api/parse-sync.js +1 -1
  55. package/dist/lib/api/parse-sync.js.map +1 -1
  56. package/dist/lib/api/parse.d.ts +1 -1
  57. package/dist/lib/api/parse.d.ts.map +1 -1
  58. package/dist/lib/api/parse.js +3 -3
  59. package/dist/lib/api/parse.js.map +1 -1
  60. package/dist/lib/api/preload.d.ts +1 -1
  61. package/dist/lib/api/preload.d.ts.map +1 -1
  62. package/dist/lib/api/preload.js.map +1 -1
  63. package/dist/lib/api/register-loaders.d.ts +1 -1
  64. package/dist/lib/api/register-loaders.d.ts.map +1 -1
  65. package/dist/lib/api/select-loader.d.ts +1 -1
  66. package/dist/lib/api/select-loader.d.ts.map +1 -1
  67. package/dist/lib/api/select-loader.js +1 -1
  68. package/dist/lib/api/select-loader.js.map +1 -1
  69. package/dist/lib/api/select-source.d.ts +1 -1
  70. package/dist/lib/api/select-source.d.ts.map +1 -1
  71. package/dist/lib/common.d.ts +1 -1
  72. package/dist/lib/common.d.ts.map +1 -1
  73. package/dist/lib/fetch/fetch-file.js +2 -2
  74. package/dist/lib/fetch/fetch-file.js.map +1 -1
  75. package/dist/lib/filesystems/browser-filesystem.d.ts +1 -1
  76. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
  77. package/dist/lib/filesystems/browser-filesystem.js +1 -1
  78. package/dist/lib/filesystems/browser-filesystem.js.map +1 -1
  79. package/dist/lib/init.js +2 -2
  80. package/dist/lib/init.js.map +1 -1
  81. package/dist/lib/loader-utils/get-data.d.ts +1 -1
  82. package/dist/lib/loader-utils/get-data.d.ts.map +1 -1
  83. package/dist/lib/loader-utils/get-data.js +1 -1
  84. package/dist/lib/loader-utils/get-data.js.map +1 -1
  85. package/dist/lib/loader-utils/get-fetch-function.d.ts +1 -1
  86. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  87. package/dist/lib/loader-utils/get-fetch-function.js +1 -1
  88. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
  89. package/dist/lib/loader-utils/loader-context.d.ts +1 -1
  90. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  91. package/dist/lib/loader-utils/loader-context.js +1 -1
  92. package/dist/lib/loader-utils/loader-context.js.map +1 -1
  93. package/dist/lib/loader-utils/loggers.d.ts +1 -1
  94. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  95. package/dist/lib/loader-utils/loggers.js +1 -1
  96. package/dist/lib/loader-utils/loggers.js.map +1 -1
  97. package/dist/lib/loader-utils/normalize-loader.d.ts +1 -1
  98. package/dist/lib/loader-utils/normalize-loader.d.ts.map +1 -1
  99. package/dist/lib/loader-utils/normalize-loader.js +1 -1
  100. package/dist/lib/loader-utils/normalize-loader.js.map +1 -1
  101. package/dist/lib/loader-utils/option-defaults.d.ts +1 -1
  102. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  103. package/dist/lib/loader-utils/option-defaults.js +1 -1
  104. package/dist/lib/loader-utils/option-defaults.js.map +1 -1
  105. package/dist/lib/loader-utils/option-utils.d.ts +1 -1
  106. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  107. package/dist/lib/loader-utils/option-utils.js +1 -1
  108. package/dist/lib/loader-utils/option-utils.js.map +1 -1
  109. package/dist/lib/utils/resource-utils.js +1 -1
  110. package/dist/lib/utils/resource-utils.js.map +1 -1
  111. package/dist/lib/utils/response-utils.js +1 -1
  112. package/dist/lib/utils/response-utils.js.map +1 -1
  113. package/dist/loader-utils/format-types.d.ts +32 -0
  114. package/dist/loader-utils/format-types.d.ts.map +1 -0
  115. package/dist/loader-utils/format-types.js +5 -0
  116. package/dist/loader-utils/format-types.js.map +1 -0
  117. package/dist/loader-utils/index.cjs +12416 -0
  118. package/dist/loader-utils/index.cjs.map +6 -0
  119. package/dist/loader-utils/index.d.ts +122 -0
  120. package/dist/loader-utils/index.d.ts.map +1 -0
  121. package/dist/loader-utils/index.js +91 -0
  122. package/dist/loader-utils/index.js.map +1 -0
  123. package/dist/loader-utils/json-loader.d.ts +27 -0
  124. package/dist/loader-utils/json-loader.d.ts.map +1 -0
  125. package/dist/loader-utils/json-loader.js +32 -0
  126. package/dist/loader-utils/json-loader.js.map +1 -0
  127. package/dist/loader-utils/lib/binary-utils/array-buffer-utils.d.ts +32 -0
  128. package/dist/loader-utils/lib/binary-utils/array-buffer-utils.d.ts.map +1 -0
  129. package/dist/loader-utils/lib/binary-utils/array-buffer-utils.js +88 -0
  130. package/dist/loader-utils/lib/binary-utils/array-buffer-utils.js.map +1 -0
  131. package/dist/loader-utils/lib/binary-utils/binary-chunk-reader.d.ts +67 -0
  132. package/dist/loader-utils/lib/binary-utils/binary-chunk-reader.d.ts.map +1 -0
  133. package/dist/loader-utils/lib/binary-utils/binary-chunk-reader.js +245 -0
  134. package/dist/loader-utils/lib/binary-utils/binary-chunk-reader.js.map +1 -0
  135. package/dist/loader-utils/lib/binary-utils/dataview-copy-utils.d.ts +43 -0
  136. package/dist/loader-utils/lib/binary-utils/dataview-copy-utils.d.ts.map +1 -0
  137. package/dist/loader-utils/lib/binary-utils/dataview-copy-utils.js +92 -0
  138. package/dist/loader-utils/lib/binary-utils/dataview-copy-utils.js.map +1 -0
  139. package/dist/loader-utils/lib/binary-utils/encode-array-buffer-to-base64.d.ts +3 -0
  140. package/dist/loader-utils/lib/binary-utils/encode-array-buffer-to-base64.d.ts.map +1 -0
  141. package/dist/loader-utils/lib/binary-utils/encode-array-buffer-to-base64.js +15 -0
  142. package/dist/loader-utils/lib/binary-utils/encode-array-buffer-to-base64.js.map +1 -0
  143. package/dist/loader-utils/lib/binary-utils/get-first-characters.d.ts +17 -0
  144. package/dist/loader-utils/lib/binary-utils/get-first-characters.d.ts.map +1 -0
  145. package/dist/loader-utils/lib/binary-utils/get-first-characters.js +43 -0
  146. package/dist/loader-utils/lib/binary-utils/get-first-characters.js.map +1 -0
  147. package/dist/loader-utils/lib/binary-utils/hex-transcoder.d.ts +15 -0
  148. package/dist/loader-utils/lib/binary-utils/hex-transcoder.d.ts.map +1 -0
  149. package/dist/loader-utils/lib/binary-utils/hex-transcoder.js +51 -0
  150. package/dist/loader-utils/lib/binary-utils/hex-transcoder.js.map +1 -0
  151. package/dist/loader-utils/lib/binary-utils/memory-conversion-utils.d.ts +20 -0
  152. package/dist/loader-utils/lib/binary-utils/memory-conversion-utils.d.ts.map +1 -0
  153. package/dist/loader-utils/lib/binary-utils/memory-conversion-utils.js +82 -0
  154. package/dist/loader-utils/lib/binary-utils/memory-conversion-utils.js.map +1 -0
  155. package/dist/loader-utils/lib/binary-utils/memory-copy-utils.d.ts +25 -0
  156. package/dist/loader-utils/lib/binary-utils/memory-copy-utils.d.ts.map +1 -0
  157. package/dist/loader-utils/lib/binary-utils/memory-copy-utils.js +59 -0
  158. package/dist/loader-utils/lib/binary-utils/memory-copy-utils.js.map +1 -0
  159. package/dist/loader-utils/lib/crs/crs-reprojection.d.ts +31 -0
  160. package/dist/loader-utils/lib/crs/crs-reprojection.d.ts.map +1 -0
  161. package/dist/loader-utils/lib/crs/crs-reprojection.js +20 -0
  162. package/dist/loader-utils/lib/crs/crs-reprojection.js.map +1 -0
  163. package/dist/loader-utils/lib/env-utils/assert.d.ts +6 -0
  164. package/dist/loader-utils/lib/env-utils/assert.d.ts.map +1 -0
  165. package/dist/loader-utils/lib/env-utils/assert.js +13 -0
  166. package/dist/loader-utils/lib/env-utils/assert.js.map +1 -0
  167. package/dist/loader-utils/lib/env-utils/globals.d.ts +15 -0
  168. package/dist/loader-utils/lib/env-utils/globals.d.ts.map +1 -0
  169. package/dist/loader-utils/lib/env-utils/globals.js +28 -0
  170. package/dist/loader-utils/lib/env-utils/globals.js.map +1 -0
  171. package/dist/loader-utils/lib/file-provider/data-view-file.d.ts +40 -0
  172. package/dist/loader-utils/lib/file-provider/data-view-file.d.ts.map +1 -0
  173. package/dist/loader-utils/lib/file-provider/data-view-file.js +68 -0
  174. package/dist/loader-utils/lib/file-provider/data-view-file.js.map +1 -0
  175. package/dist/loader-utils/lib/file-provider/file-handle-file.d.ts +54 -0
  176. package/dist/loader-utils/lib/file-provider/file-handle-file.d.ts.map +1 -0
  177. package/dist/loader-utils/lib/file-provider/file-handle-file.js +102 -0
  178. package/dist/loader-utils/lib/file-provider/file-handle-file.js.map +1 -0
  179. package/dist/loader-utils/lib/file-provider/file-provider-interface.d.ts +45 -0
  180. package/dist/loader-utils/lib/file-provider/file-provider-interface.d.ts.map +1 -0
  181. package/dist/loader-utils/lib/file-provider/file-provider-interface.js +13 -0
  182. package/dist/loader-utils/lib/file-provider/file-provider-interface.js.map +1 -0
  183. package/dist/loader-utils/lib/file-provider/file-provider.d.ts +57 -0
  184. package/dist/loader-utils/lib/file-provider/file-provider.d.ts.map +1 -0
  185. package/dist/loader-utils/lib/file-provider/file-provider.js +114 -0
  186. package/dist/loader-utils/lib/file-provider/file-provider.js.map +1 -0
  187. package/dist/loader-utils/lib/files/array-buffer-file.d.ts +21 -0
  188. package/dist/loader-utils/lib/files/array-buffer-file.d.ts.map +1 -0
  189. package/dist/loader-utils/lib/files/array-buffer-file.js +36 -0
  190. package/dist/loader-utils/lib/files/array-buffer-file.js.map +1 -0
  191. package/dist/loader-utils/lib/files/blob-file.d.ts +19 -0
  192. package/dist/loader-utils/lib/files/blob-file.d.ts.map +1 -0
  193. package/dist/loader-utils/lib/files/blob-file.js +39 -0
  194. package/dist/loader-utils/lib/files/blob-file.js.map +1 -0
  195. package/dist/loader-utils/lib/files/file.d.ts +33 -0
  196. package/dist/loader-utils/lib/files/file.d.ts.map +1 -0
  197. package/dist/loader-utils/lib/files/file.js +5 -0
  198. package/dist/loader-utils/lib/files/file.js.map +1 -0
  199. package/dist/loader-utils/lib/files/http-file-transport.d.ts +37 -0
  200. package/dist/loader-utils/lib/files/http-file-transport.d.ts.map +1 -0
  201. package/dist/loader-utils/lib/files/http-file-transport.js +290 -0
  202. package/dist/loader-utils/lib/files/http-file-transport.js.map +1 -0
  203. package/dist/loader-utils/lib/files/http-file-types.d.ts +49 -0
  204. package/dist/loader-utils/lib/files/http-file-types.d.ts.map +1 -0
  205. package/dist/loader-utils/lib/files/http-file-types.js +5 -0
  206. package/dist/loader-utils/lib/files/http-file-types.js.map +1 -0
  207. package/dist/loader-utils/lib/files/http-file.d.ts +55 -0
  208. package/dist/loader-utils/lib/files/http-file.d.ts.map +1 -0
  209. package/dist/loader-utils/lib/files/http-file.js +213 -0
  210. package/dist/loader-utils/lib/files/http-file.js.map +1 -0
  211. package/dist/loader-utils/lib/files/node-file-facade.d.ts +22 -0
  212. package/dist/loader-utils/lib/files/node-file-facade.d.ts.map +1 -0
  213. package/dist/loader-utils/lib/files/node-file-facade.js +45 -0
  214. package/dist/loader-utils/lib/files/node-file-facade.js.map +1 -0
  215. package/dist/loader-utils/lib/files/sources.d.ts +1 -0
  216. package/dist/loader-utils/lib/files/sources.d.ts.map +1 -0
  217. package/dist/loader-utils/lib/files/sources.js +155 -0
  218. package/dist/loader-utils/lib/files/sources.js.map +1 -0
  219. package/dist/loader-utils/lib/filesystems/filesystem.d.ts +33 -0
  220. package/dist/loader-utils/lib/filesystems/filesystem.d.ts.map +1 -0
  221. package/dist/loader-utils/lib/filesystems/filesystem.js +5 -0
  222. package/dist/loader-utils/lib/filesystems/filesystem.js.map +1 -0
  223. package/dist/loader-utils/lib/filesystems/node-filesystem-facade.d.ts +23 -0
  224. package/dist/loader-utils/lib/filesystems/node-filesystem-facade.d.ts.map +1 -0
  225. package/dist/loader-utils/lib/filesystems/node-filesystem-facade.js +48 -0
  226. package/dist/loader-utils/lib/filesystems/node-filesystem-facade.js.map +1 -0
  227. package/dist/loader-utils/lib/iterators/async-iteration.d.ts +20 -0
  228. package/dist/loader-utils/lib/iterators/async-iteration.d.ts.map +1 -0
  229. package/dist/loader-utils/lib/iterators/async-iteration.js +102 -0
  230. package/dist/loader-utils/lib/iterators/async-iteration.js.map +1 -0
  231. package/dist/loader-utils/lib/iterators/text-iterators.d.ts +19 -0
  232. package/dist/loader-utils/lib/iterators/text-iterators.d.ts.map +1 -0
  233. package/dist/loader-utils/lib/iterators/text-iterators.js +60 -0
  234. package/dist/loader-utils/lib/iterators/text-iterators.js.map +1 -0
  235. package/dist/loader-utils/lib/javascript-utils/is-type.d.ts +59 -0
  236. package/dist/loader-utils/lib/javascript-utils/is-type.d.ts.map +1 -0
  237. package/dist/loader-utils/lib/javascript-utils/is-type.js +68 -0
  238. package/dist/loader-utils/lib/javascript-utils/is-type.js.map +1 -0
  239. package/dist/loader-utils/lib/laz/laz-arithmetic-encoder.d.ts +118 -0
  240. package/dist/loader-utils/lib/laz/laz-arithmetic-encoder.d.ts.map +1 -0
  241. package/dist/loader-utils/lib/laz/laz-arithmetic-encoder.js +427 -0
  242. package/dist/loader-utils/lib/laz/laz-arithmetic-encoder.js.map +1 -0
  243. package/dist/loader-utils/lib/laz/laz-chunk-decoder.d.ts +204 -0
  244. package/dist/loader-utils/lib/laz/laz-chunk-decoder.d.ts.map +1 -0
  245. package/dist/loader-utils/lib/laz/laz-chunk-decoder.js +4226 -0
  246. package/dist/loader-utils/lib/laz/laz-chunk-decoder.js.map +1 -0
  247. package/dist/loader-utils/lib/laz/laz-chunk-encoder.d.ts +40 -0
  248. package/dist/loader-utils/lib/laz/laz-chunk-encoder.d.ts.map +1 -0
  249. package/dist/loader-utils/lib/laz/laz-chunk-encoder.js +1518 -0
  250. package/dist/loader-utils/lib/laz/laz-chunk-encoder.js.map +1 -0
  251. package/dist/loader-utils/lib/log-utils/log.d.ts +4 -0
  252. package/dist/loader-utils/lib/log-utils/log.d.ts.map +1 -0
  253. package/dist/loader-utils/lib/log-utils/log.js +21 -0
  254. package/dist/loader-utils/lib/log-utils/log.js.map +1 -0
  255. package/dist/loader-utils/lib/module-utils/initialize-wasm-module.d.ts +10 -0
  256. package/dist/loader-utils/lib/module-utils/initialize-wasm-module.d.ts.map +1 -0
  257. package/dist/loader-utils/lib/module-utils/initialize-wasm-module.js +44 -0
  258. package/dist/loader-utils/lib/module-utils/initialize-wasm-module.js.map +1 -0
  259. package/dist/loader-utils/lib/module-utils/js-module-utils.d.ts +18 -0
  260. package/dist/loader-utils/lib/module-utils/js-module-utils.d.ts.map +1 -0
  261. package/dist/loader-utils/lib/module-utils/js-module-utils.js +40 -0
  262. package/dist/loader-utils/lib/module-utils/js-module-utils.js.map +1 -0
  263. package/dist/loader-utils/lib/node/buffer.browser.d.ts +11 -0
  264. package/dist/loader-utils/lib/node/buffer.browser.d.ts.map +1 -0
  265. package/dist/loader-utils/lib/node/buffer.browser.js +20 -0
  266. package/dist/loader-utils/lib/node/buffer.browser.js.map +1 -0
  267. package/dist/loader-utils/lib/node/buffer.d.ts +11 -0
  268. package/dist/loader-utils/lib/node/buffer.d.ts.map +1 -0
  269. package/dist/loader-utils/lib/node/buffer.js +35 -0
  270. package/dist/loader-utils/lib/node/buffer.js.map +1 -0
  271. package/dist/loader-utils/lib/node/fs.browser.d.ts +2 -0
  272. package/dist/loader-utils/lib/node/fs.browser.d.ts.map +1 -0
  273. package/dist/loader-utils/lib/node/fs.browser.js +5 -0
  274. package/dist/loader-utils/lib/node/fs.browser.js.map +1 -0
  275. package/dist/loader-utils/lib/node/promisify.d.ts +13 -0
  276. package/dist/loader-utils/lib/node/promisify.d.ts.map +1 -0
  277. package/dist/loader-utils/lib/node/promisify.js +19 -0
  278. package/dist/loader-utils/lib/node/promisify.js.map +1 -0
  279. package/dist/loader-utils/lib/node/stream.browser.d.ts +2 -0
  280. package/dist/loader-utils/lib/node/stream.browser.d.ts.map +1 -0
  281. package/dist/loader-utils/lib/node/stream.browser.js +5 -0
  282. package/dist/loader-utils/lib/node/stream.browser.js.map +1 -0
  283. package/dist/loader-utils/lib/node/stream.d.ts +6 -0
  284. package/dist/loader-utils/lib/node/stream.d.ts.map +1 -0
  285. package/dist/loader-utils/lib/node/stream.js +8 -0
  286. package/dist/loader-utils/lib/node/stream.js.map +1 -0
  287. package/dist/loader-utils/lib/option-utils/merge-options.d.ts +12 -0
  288. package/dist/loader-utils/lib/option-utils/merge-options.d.ts.map +1 -0
  289. package/dist/loader-utils/lib/option-utils/merge-options.js +34 -0
  290. package/dist/loader-utils/lib/option-utils/merge-options.js.map +1 -0
  291. package/dist/loader-utils/lib/parser-utils/parse-json.d.ts +5 -0
  292. package/dist/loader-utils/lib/parser-utils/parse-json.d.ts.map +1 -0
  293. package/dist/loader-utils/lib/parser-utils/parse-json.js +16 -0
  294. package/dist/loader-utils/lib/parser-utils/parse-json.js.map +1 -0
  295. package/dist/loader-utils/lib/path-utils/cached-uri-resolver.d.ts +35 -0
  296. package/dist/loader-utils/lib/path-utils/cached-uri-resolver.d.ts.map +1 -0
  297. package/dist/loader-utils/lib/path-utils/cached-uri-resolver.js +64 -0
  298. package/dist/loader-utils/lib/path-utils/cached-uri-resolver.js.map +1 -0
  299. package/dist/loader-utils/lib/path-utils/file-aliases.d.ts +17 -0
  300. package/dist/loader-utils/lib/path-utils/file-aliases.d.ts.map +1 -0
  301. package/dist/loader-utils/lib/path-utils/file-aliases.js +44 -0
  302. package/dist/loader-utils/lib/path-utils/file-aliases.js.map +1 -0
  303. package/dist/loader-utils/lib/path-utils/get-cwd.d.ts +3 -0
  304. package/dist/loader-utils/lib/path-utils/get-cwd.d.ts.map +1 -0
  305. package/dist/loader-utils/lib/path-utils/get-cwd.js +12 -0
  306. package/dist/loader-utils/lib/path-utils/get-cwd.js.map +1 -0
  307. package/dist/loader-utils/lib/path-utils/path.d.ts +24 -0
  308. package/dist/loader-utils/lib/path-utils/path.d.ts.map +1 -0
  309. package/dist/loader-utils/lib/path-utils/path.js +173 -0
  310. package/dist/loader-utils/lib/path-utils/path.js.map +1 -0
  311. package/dist/loader-utils/lib/request-utils/abort-utils.d.ts +5 -0
  312. package/dist/loader-utils/lib/request-utils/abort-utils.d.ts.map +1 -0
  313. package/dist/loader-utils/lib/request-utils/abort-utils.js +59 -0
  314. package/dist/loader-utils/lib/request-utils/abort-utils.js.map +1 -0
  315. package/dist/loader-utils/lib/request-utils/authentication.d.ts +56 -0
  316. package/dist/loader-utils/lib/request-utils/authentication.d.ts.map +1 -0
  317. package/dist/loader-utils/lib/request-utils/authentication.js +67 -0
  318. package/dist/loader-utils/lib/request-utils/authentication.js.map +1 -0
  319. package/dist/loader-utils/lib/request-utils/parse-content-type.d.ts +7 -0
  320. package/dist/loader-utils/lib/request-utils/parse-content-type.d.ts.map +1 -0
  321. package/dist/loader-utils/lib/request-utils/parse-content-type.js +20 -0
  322. package/dist/loader-utils/lib/request-utils/parse-content-type.js.map +1 -0
  323. package/dist/loader-utils/lib/request-utils/range-request-cache.d.ts +70 -0
  324. package/dist/loader-utils/lib/request-utils/range-request-cache.d.ts.map +1 -0
  325. package/dist/loader-utils/lib/request-utils/range-request-cache.js +203 -0
  326. package/dist/loader-utils/lib/request-utils/range-request-cache.js.map +1 -0
  327. package/dist/loader-utils/lib/request-utils/range-request-scheduler.d.ts +201 -0
  328. package/dist/loader-utils/lib/request-utils/range-request-scheduler.d.ts.map +1 -0
  329. package/dist/loader-utils/lib/request-utils/range-request-scheduler.js +636 -0
  330. package/dist/loader-utils/lib/request-utils/range-request-scheduler.js.map +1 -0
  331. package/dist/loader-utils/lib/request-utils/request-cache.d.ts +62 -0
  332. package/dist/loader-utils/lib/request-utils/request-cache.d.ts.map +1 -0
  333. package/dist/loader-utils/lib/request-utils/request-cache.js +236 -0
  334. package/dist/loader-utils/lib/request-utils/request-cache.js.map +1 -0
  335. package/dist/loader-utils/lib/request-utils/request-credentials.d.ts +137 -0
  336. package/dist/loader-utils/lib/request-utils/request-credentials.d.ts.map +1 -0
  337. package/dist/loader-utils/lib/request-utils/request-credentials.js +379 -0
  338. package/dist/loader-utils/lib/request-utils/request-credentials.js.map +1 -0
  339. package/dist/loader-utils/lib/request-utils/request-scheduler.d.ts +71 -0
  340. package/dist/loader-utils/lib/request-utils/request-scheduler.d.ts.map +1 -0
  341. package/dist/loader-utils/lib/request-utils/request-scheduler.js +174 -0
  342. package/dist/loader-utils/lib/request-utils/request-scheduler.js.map +1 -0
  343. package/dist/loader-utils/lib/scan-utils/columnar-predicate.d.ts +56 -0
  344. package/dist/loader-utils/lib/scan-utils/columnar-predicate.d.ts.map +1 -0
  345. package/dist/loader-utils/lib/scan-utils/columnar-predicate.js +261 -0
  346. package/dist/loader-utils/lib/scan-utils/columnar-predicate.js.map +1 -0
  347. package/dist/loader-utils/lib/scan-utils/experimental-scan-options.d.ts +42 -0
  348. package/dist/loader-utils/lib/scan-utils/experimental-scan-options.d.ts.map +1 -0
  349. package/dist/loader-utils/lib/scan-utils/experimental-scan-options.js +5 -0
  350. package/dist/loader-utils/lib/scan-utils/experimental-scan-options.js.map +1 -0
  351. package/dist/loader-utils/lib/scan-utils/point-cloud-query.d.ts +56 -0
  352. package/dist/loader-utils/lib/scan-utils/point-cloud-query.d.ts.map +1 -0
  353. package/dist/loader-utils/lib/scan-utils/point-cloud-query.js +86 -0
  354. package/dist/loader-utils/lib/scan-utils/point-cloud-query.js.map +1 -0
  355. package/dist/loader-utils/lib/scan-utils/raster-query.d.ts +36 -0
  356. package/dist/loader-utils/lib/scan-utils/raster-query.d.ts.map +1 -0
  357. package/dist/loader-utils/lib/scan-utils/raster-query.js +49 -0
  358. package/dist/loader-utils/lib/scan-utils/raster-query.js.map +1 -0
  359. package/dist/loader-utils/lib/scan-utils/relational-query.d.ts +75 -0
  360. package/dist/loader-utils/lib/scan-utils/relational-query.d.ts.map +1 -0
  361. package/dist/loader-utils/lib/scan-utils/relational-query.js +107 -0
  362. package/dist/loader-utils/lib/scan-utils/relational-query.js.map +1 -0
  363. package/dist/loader-utils/lib/scan-utils/scan-executor.d.ts +20 -0
  364. package/dist/loader-utils/lib/scan-utils/scan-executor.d.ts.map +1 -0
  365. package/dist/loader-utils/lib/scan-utils/scan-executor.js +183 -0
  366. package/dist/loader-utils/lib/scan-utils/scan-executor.js.map +1 -0
  367. package/dist/loader-utils/lib/scan-utils/scan-fragments.d.ts +23 -0
  368. package/dist/loader-utils/lib/scan-utils/scan-fragments.d.ts.map +1 -0
  369. package/dist/loader-utils/lib/scan-utils/scan-fragments.js +5 -0
  370. package/dist/loader-utils/lib/scan-utils/scan-fragments.js.map +1 -0
  371. package/dist/loader-utils/lib/scan-utils/scan-query-metadata.d.ts +272 -0
  372. package/dist/loader-utils/lib/scan-utils/scan-query-metadata.d.ts.map +1 -0
  373. package/dist/loader-utils/lib/scan-utils/scan-query-metadata.js +97 -0
  374. package/dist/loader-utils/lib/scan-utils/scan-query-metadata.js.map +1 -0
  375. package/dist/loader-utils/lib/scan-utils/table-query-explain.d.ts +39 -0
  376. package/dist/loader-utils/lib/scan-utils/table-query-explain.d.ts.map +1 -0
  377. package/dist/loader-utils/lib/scan-utils/table-query-explain.js +35 -0
  378. package/dist/loader-utils/lib/scan-utils/table-query-explain.js.map +1 -0
  379. package/dist/loader-utils/lib/scan-utils/table-query.d.ts +77 -0
  380. package/dist/loader-utils/lib/scan-utils/table-query.d.ts.map +1 -0
  381. package/dist/loader-utils/lib/scan-utils/table-query.js +56 -0
  382. package/dist/loader-utils/lib/scan-utils/table-query.js.map +1 -0
  383. package/dist/loader-utils/lib/scan-utils/table-scan-batch.d.ts +30 -0
  384. package/dist/loader-utils/lib/scan-utils/table-scan-batch.d.ts.map +1 -0
  385. package/dist/loader-utils/lib/scan-utils/table-scan-batch.js +161 -0
  386. package/dist/loader-utils/lib/scan-utils/table-scan-batch.js.map +1 -0
  387. package/dist/loader-utils/lib/sources/catalog-source.d.ts +36 -0
  388. package/dist/loader-utils/lib/sources/catalog-source.d.ts.map +1 -0
  389. package/dist/loader-utils/lib/sources/catalog-source.js +5 -0
  390. package/dist/loader-utils/lib/sources/catalog-source.js.map +1 -0
  391. package/dist/loader-utils/lib/sources/data-source-manager.d.ts +136 -0
  392. package/dist/loader-utils/lib/sources/data-source-manager.d.ts.map +1 -0
  393. package/dist/loader-utils/lib/sources/data-source-manager.js +376 -0
  394. package/dist/loader-utils/lib/sources/data-source-manager.js.map +1 -0
  395. package/dist/loader-utils/lib/sources/data-source.d.ts +79 -0
  396. package/dist/loader-utils/lib/sources/data-source.d.ts.map +1 -0
  397. package/dist/loader-utils/lib/sources/data-source.js +145 -0
  398. package/dist/loader-utils/lib/sources/data-source.js.map +1 -0
  399. package/dist/loader-utils/lib/sources/image-source.d.ts +55 -0
  400. package/dist/loader-utils/lib/sources/image-source.d.ts.map +1 -0
  401. package/dist/loader-utils/lib/sources/image-source.js +5 -0
  402. package/dist/loader-utils/lib/sources/image-source.js.map +1 -0
  403. package/dist/loader-utils/lib/sources/image-tile-source.d.ts +12 -0
  404. package/dist/loader-utils/lib/sources/image-tile-source.d.ts.map +1 -0
  405. package/dist/loader-utils/lib/sources/image-tile-source.js +5 -0
  406. package/dist/loader-utils/lib/sources/image-tile-source.js.map +1 -0
  407. package/dist/loader-utils/lib/sources/raster-coverage.d.ts +17 -0
  408. package/dist/loader-utils/lib/sources/raster-coverage.d.ts.map +1 -0
  409. package/dist/loader-utils/lib/sources/raster-coverage.js +62 -0
  410. package/dist/loader-utils/lib/sources/raster-coverage.js.map +1 -0
  411. package/dist/loader-utils/lib/sources/raster-region.d.ts +4 -0
  412. package/dist/loader-utils/lib/sources/raster-region.d.ts.map +1 -0
  413. package/dist/loader-utils/lib/sources/raster-region.js +22 -0
  414. package/dist/loader-utils/lib/sources/raster-region.js.map +1 -0
  415. package/dist/loader-utils/lib/sources/raster-sampling.d.ts +35 -0
  416. package/dist/loader-utils/lib/sources/raster-sampling.d.ts.map +1 -0
  417. package/dist/loader-utils/lib/sources/raster-sampling.js +152 -0
  418. package/dist/loader-utils/lib/sources/raster-sampling.js.map +1 -0
  419. package/dist/loader-utils/lib/sources/raster-source.d.ts +302 -0
  420. package/dist/loader-utils/lib/sources/raster-source.d.ts.map +1 -0
  421. package/dist/loader-utils/lib/sources/raster-source.js +20 -0
  422. package/dist/loader-utils/lib/sources/raster-source.js.map +1 -0
  423. package/dist/loader-utils/lib/sources/service-capabilities.d.ts +36 -0
  424. package/dist/loader-utils/lib/sources/service-capabilities.d.ts.map +1 -0
  425. package/dist/loader-utils/lib/sources/service-capabilities.js +5 -0
  426. package/dist/loader-utils/lib/sources/service-capabilities.js.map +1 -0
  427. package/dist/loader-utils/lib/sources/tile-grid.d.ts +46 -0
  428. package/dist/loader-utils/lib/sources/tile-grid.d.ts.map +1 -0
  429. package/dist/loader-utils/lib/sources/tile-grid.js +128 -0
  430. package/dist/loader-utils/lib/sources/tile-grid.js.map +1 -0
  431. package/dist/loader-utils/lib/sources/tile-source-adapter.d.ts +24 -0
  432. package/dist/loader-utils/lib/sources/tile-source-adapter.d.ts.map +1 -0
  433. package/dist/loader-utils/lib/sources/tile-source-adapter.js +109 -0
  434. package/dist/loader-utils/lib/sources/tile-source-adapter.js.map +1 -0
  435. package/dist/loader-utils/lib/sources/tile-source-utils.d.ts +6 -0
  436. package/dist/loader-utils/lib/sources/tile-source-utils.d.ts.map +1 -0
  437. package/dist/loader-utils/lib/sources/tile-source-utils.js +13 -0
  438. package/dist/loader-utils/lib/sources/tile-source-utils.js.map +1 -0
  439. package/dist/loader-utils/lib/sources/tile-source.d.ts +190 -0
  440. package/dist/loader-utils/lib/sources/tile-source.d.ts.map +1 -0
  441. package/dist/loader-utils/lib/sources/tile-source.js +5 -0
  442. package/dist/loader-utils/lib/sources/tile-source.js.map +1 -0
  443. package/dist/loader-utils/lib/sources/utils/image-type.d.ts +10 -0
  444. package/dist/loader-utils/lib/sources/utils/image-type.d.ts.map +1 -0
  445. package/dist/loader-utils/lib/sources/utils/image-type.js +5 -0
  446. package/dist/loader-utils/lib/sources/utils/image-type.js.map +1 -0
  447. package/dist/loader-utils/lib/sources/utils/utils.d.ts +13 -0
  448. package/dist/loader-utils/lib/sources/utils/utils.d.ts.map +1 -0
  449. package/dist/loader-utils/lib/sources/utils/utils.js +26 -0
  450. package/dist/loader-utils/lib/sources/utils/utils.js.map +1 -0
  451. package/dist/loader-utils/lib/sources/vector-source.d.ts +76 -0
  452. package/dist/loader-utils/lib/sources/vector-source.d.ts.map +1 -0
  453. package/dist/loader-utils/lib/sources/vector-source.js +5 -0
  454. package/dist/loader-utils/lib/sources/vector-source.js.map +1 -0
  455. package/dist/loader-utils/lib/sources/vector-tile-source.d.ts +15 -0
  456. package/dist/loader-utils/lib/sources/vector-tile-source.d.ts.map +1 -0
  457. package/dist/loader-utils/lib/sources/vector-tile-source.js +5 -0
  458. package/dist/loader-utils/lib/sources/vector-tile-source.js.map +1 -0
  459. package/dist/loader-utils/lib/sources/xyz-grid.d.ts +9 -0
  460. package/dist/loader-utils/lib/sources/xyz-grid.d.ts.map +1 -0
  461. package/dist/loader-utils/lib/sources/xyz-grid.js +63 -0
  462. package/dist/loader-utils/lib/sources/xyz-grid.js.map +1 -0
  463. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts +22 -0
  464. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts.map +1 -0
  465. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js +155 -0
  466. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js.map +1 -0
  467. package/dist/loader-utils/lib/worker-loader-utils/encode-with-worker.d.ts +8 -0
  468. package/dist/loader-utils/lib/worker-loader-utils/encode-with-worker.d.ts.map +1 -0
  469. package/dist/loader-utils/lib/worker-loader-utils/encode-with-worker.js +23 -0
  470. package/dist/loader-utils/lib/worker-loader-utils/encode-with-worker.js.map +1 -0
  471. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts +41 -0
  472. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts.map +1 -0
  473. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js +239 -0
  474. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js.map +1 -0
  475. package/dist/loader-utils/loader-types.d.ts +322 -0
  476. package/dist/loader-utils/loader-types.d.ts.map +1 -0
  477. package/dist/loader-utils/loader-types.js +33 -0
  478. package/dist/loader-utils/loader-types.js.map +1 -0
  479. package/dist/loader-utils/source-types.d.ts +42 -0
  480. package/dist/loader-utils/source-types.d.ts.map +1 -0
  481. package/dist/loader-utils/source-types.js +8 -0
  482. package/dist/loader-utils/source-types.js.map +1 -0
  483. package/dist/loader-utils/types.d.ts +24 -0
  484. package/dist/loader-utils/types.d.ts.map +1 -0
  485. package/dist/loader-utils/types.js +6 -0
  486. package/dist/loader-utils/types.js.map +1 -0
  487. package/dist/loader-utils/workers/json-worker.d.ts +2 -0
  488. package/dist/loader-utils/workers/json-worker.d.ts.map +1 -0
  489. package/dist/loader-utils/workers/json-worker.js +7 -0
  490. package/dist/loader-utils/workers/json-worker.js.map +1 -0
  491. package/dist/loader-utils/writer-types.d.ts +74 -0
  492. package/dist/loader-utils/writer-types.d.ts.map +1 -0
  493. package/dist/loader-utils/writer-types.js +5 -0
  494. package/dist/loader-utils/writer-types.js.map +1 -0
  495. package/dist/null-loader.d.ts +2 -2
  496. package/dist/null-loader.d.ts.map +1 -1
  497. package/dist/null-loader.js +1 -1
  498. package/dist/null-worker-node.js +7 -19
  499. package/dist/null-worker.js +7 -7
  500. package/dist/polyfills/buffer/btoa.node.d.ts +3 -0
  501. package/dist/polyfills/buffer/btoa.node.d.ts.map +1 -0
  502. package/dist/polyfills/buffer/btoa.node.js +13 -0
  503. package/dist/polyfills/buffer/btoa.node.js.map +1 -0
  504. package/dist/polyfills/buffer/to-array-buffer.node.d.ts +2 -0
  505. package/dist/polyfills/buffer/to-array-buffer.node.d.ts.map +1 -0
  506. package/dist/polyfills/buffer/to-array-buffer.node.js +12 -0
  507. package/dist/polyfills/buffer/to-array-buffer.node.js.map +1 -0
  508. package/dist/polyfills/crypto/node-hash.d.ts +29 -0
  509. package/dist/polyfills/crypto/node-hash.d.ts.map +1 -0
  510. package/dist/polyfills/crypto/node-hash.js +63 -0
  511. package/dist/polyfills/crypto/node-hash.js.map +1 -0
  512. package/dist/polyfills/fetch/decode-data-uri.d.ts +11 -0
  513. package/dist/polyfills/fetch/decode-data-uri.d.ts.map +1 -0
  514. package/dist/polyfills/fetch/decode-data-uri.js +63 -0
  515. package/dist/polyfills/fetch/decode-data-uri.js.map +1 -0
  516. package/dist/polyfills/fetch/fetch-polyfill.d.ts +11 -0
  517. package/dist/polyfills/fetch/fetch-polyfill.d.ts.map +1 -0
  518. package/dist/polyfills/fetch/fetch-polyfill.js +141 -0
  519. package/dist/polyfills/fetch/fetch-polyfill.js.map +1 -0
  520. package/dist/polyfills/fetch/headers-polyfill.d.ts +34 -0
  521. package/dist/polyfills/fetch/headers-polyfill.d.ts.map +1 -0
  522. package/dist/polyfills/fetch/headers-polyfill.js +105 -0
  523. package/dist/polyfills/fetch/headers-polyfill.js.map +1 -0
  524. package/dist/polyfills/fetch/response-polyfill.d.ts +22 -0
  525. package/dist/polyfills/fetch/response-polyfill.d.ts.map +1 -0
  526. package/dist/polyfills/fetch/response-polyfill.js +81 -0
  527. package/dist/polyfills/fetch/response-polyfill.js.map +1 -0
  528. package/dist/polyfills/fetch/utils/decode-data-uri.node.d.ts +11 -0
  529. package/dist/polyfills/fetch/utils/decode-data-uri.node.d.ts.map +1 -0
  530. package/dist/polyfills/fetch/utils/decode-data-uri.node.js +32 -0
  531. package/dist/polyfills/fetch/utils/decode-data-uri.node.js.map +1 -0
  532. package/dist/polyfills/file/blob-stream-controller.d.ts +29 -0
  533. package/dist/polyfills/file/blob-stream-controller.d.ts.map +1 -0
  534. package/dist/polyfills/file/blob-stream-controller.js +64 -0
  535. package/dist/polyfills/file/blob-stream-controller.js.map +1 -0
  536. package/dist/polyfills/file/blob-stream.d.ts +25 -0
  537. package/dist/polyfills/file/blob-stream.d.ts.map +1 -0
  538. package/dist/polyfills/file/blob-stream.js +38 -0
  539. package/dist/polyfills/file/blob-stream.js.map +1 -0
  540. package/dist/polyfills/file/blob.d.ts +58 -0
  541. package/dist/polyfills/file/blob.d.ts.map +1 -0
  542. package/dist/polyfills/file/blob.js +166 -0
  543. package/dist/polyfills/file/blob.js.map +1 -0
  544. package/dist/polyfills/file/file-reader.d.ts +24 -0
  545. package/dist/polyfills/file/file-reader.d.ts.map +1 -0
  546. package/dist/polyfills/file/file-reader.js +51 -0
  547. package/dist/polyfills/file/file-reader.js.map +1 -0
  548. package/dist/polyfills/file/file.d.ts +24 -0
  549. package/dist/polyfills/file/file.d.ts.map +1 -0
  550. package/dist/polyfills/file/file.js +41 -0
  551. package/dist/polyfills/file/file.js.map +1 -0
  552. package/dist/polyfills/file/install-blob-polyfills.d.ts +9 -0
  553. package/dist/polyfills/file/install-blob-polyfills.d.ts.map +1 -0
  554. package/dist/polyfills/file/install-blob-polyfills.js +14 -0
  555. package/dist/polyfills/file/install-blob-polyfills.js.map +1 -0
  556. package/dist/polyfills/file/install-file-polyfills.d.ts +3 -0
  557. package/dist/polyfills/file/install-file-polyfills.d.ts.map +1 -0
  558. package/dist/polyfills/file/install-file-polyfills.js +20 -0
  559. package/dist/polyfills/file/install-file-polyfills.js.map +1 -0
  560. package/dist/polyfills/file/readable-stream.d.ts +5 -0
  561. package/dist/polyfills/file/readable-stream.d.ts.map +1 -0
  562. package/dist/polyfills/file/readable-stream.js +8 -0
  563. package/dist/polyfills/file/readable-stream.js.map +1 -0
  564. package/dist/polyfills/filesystems/fetch-node.d.ts +8 -0
  565. package/dist/polyfills/filesystems/fetch-node.d.ts.map +1 -0
  566. package/dist/polyfills/filesystems/fetch-node.js +88 -0
  567. package/dist/polyfills/filesystems/fetch-node.js.map +1 -0
  568. package/dist/polyfills/filesystems/node-file.d.ts +15 -0
  569. package/dist/polyfills/filesystems/node-file.d.ts.map +1 -0
  570. package/dist/polyfills/filesystems/node-file.js +138 -0
  571. package/dist/polyfills/filesystems/node-file.js.map +1 -0
  572. package/dist/polyfills/filesystems/node-filesystem.d.ts +19 -0
  573. package/dist/polyfills/filesystems/node-filesystem.d.ts.map +1 -0
  574. package/dist/polyfills/filesystems/node-filesystem.js +44 -0
  575. package/dist/polyfills/filesystems/node-filesystem.js.map +1 -0
  576. package/dist/polyfills/filesystems/stream-utils.node.d.ts +18 -0
  577. package/dist/polyfills/filesystems/stream-utils.node.d.ts.map +1 -0
  578. package/dist/polyfills/filesystems/stream-utils.node.js +67 -0
  579. package/dist/polyfills/filesystems/stream-utils.node.js.map +1 -0
  580. package/dist/polyfills/images/encode-image-node.d.ts +20 -0
  581. package/dist/polyfills/images/encode-image-node.d.ts.map +1 -0
  582. package/dist/polyfills/images/encode-image-node.js +37 -0
  583. package/dist/polyfills/images/encode-image-node.js.map +1 -0
  584. package/dist/polyfills/images/image-codecs-node.d.ts +8 -0
  585. package/dist/polyfills/images/image-codecs-node.d.ts.map +1 -0
  586. package/dist/polyfills/images/image-codecs-node.js +27 -0
  587. package/dist/polyfills/images/image-codecs-node.js.map +1 -0
  588. package/dist/polyfills/images/node-image-bitmap.d.ts +38 -0
  589. package/dist/polyfills/images/node-image-bitmap.d.ts.map +1 -0
  590. package/dist/polyfills/images/node-image-bitmap.js +64 -0
  591. package/dist/polyfills/images/node-image-bitmap.js.map +1 -0
  592. package/dist/polyfills/images/node-image-formats.d.ts +3 -0
  593. package/dist/polyfills/images/node-image-formats.d.ts.map +1 -0
  594. package/dist/polyfills/images/node-image-formats.js +6 -0
  595. package/dist/polyfills/images/node-image-formats.js.map +1 -0
  596. package/dist/polyfills/images/parse-image-node.d.ts +11 -0
  597. package/dist/polyfills/images/parse-image-node.d.ts.map +1 -0
  598. package/dist/polyfills/images/parse-image-node.js +36 -0
  599. package/dist/polyfills/images/parse-image-node.js.map +1 -0
  600. package/dist/polyfills/index.browser.d.ts +8 -0
  601. package/dist/polyfills/index.browser.d.ts.map +1 -0
  602. package/dist/polyfills/index.browser.js +18 -0
  603. package/dist/polyfills/index.browser.js.map +1 -0
  604. package/dist/polyfills/index.cjs +2918 -0
  605. package/dist/polyfills/index.cjs.map +6 -0
  606. package/dist/polyfills/index.d.ts +7 -0
  607. package/dist/polyfills/index.d.ts.map +1 -0
  608. package/dist/polyfills/index.js +110 -0
  609. package/dist/polyfills/index.js.map +1 -0
  610. package/dist/polyfills/libs/encoding-indexes-asian.d.ts +10 -0
  611. package/dist/polyfills/libs/encoding-indexes-asian.d.ts.map +1 -0
  612. package/dist/polyfills/libs/encoding-indexes-asian.js +14 -0
  613. package/dist/polyfills/libs/encoding-indexes-asian.js.map +1 -0
  614. package/dist/polyfills/load-library/require-utils.node.d.ts +19 -0
  615. package/dist/polyfills/load-library/require-utils.node.d.ts.map +1 -0
  616. package/dist/polyfills/load-library/require-utils.node.js +88 -0
  617. package/dist/polyfills/load-library/require-utils.node.js.map +1 -0
  618. package/dist/polyfills/streams/make-node-stream.d.ts +10 -0
  619. package/dist/polyfills/streams/make-node-stream.d.ts.map +1 -0
  620. package/dist/polyfills/streams/make-node-stream.js +70 -0
  621. package/dist/polyfills/streams/make-node-stream.js.map +1 -0
  622. package/dist/polyfills/text-encoder/encoding-indexes.d.ts +31 -0
  623. package/dist/polyfills/text-encoder/encoding-indexes.d.ts.map +1 -0
  624. package/dist/polyfills/text-encoder/encoding-indexes.js +35 -0
  625. package/dist/polyfills/text-encoder/encoding-indexes.js.map +1 -0
  626. package/dist/polyfills/text-encoder/text-encoder.d.ts +15 -0
  627. package/dist/polyfills/text-encoder/text-encoder.d.ts.map +1 -0
  628. package/dist/polyfills/text-encoder/text-encoder.js +2778 -0
  629. package/dist/polyfills/text-encoder/text-encoder.js.map +1 -0
  630. package/dist/polyfills/utils/assert.d.ts +2 -0
  631. package/dist/polyfills/utils/assert.d.ts.map +1 -0
  632. package/dist/polyfills/utils/assert.js +9 -0
  633. package/dist/polyfills/utils/assert.js.map +1 -0
  634. package/dist/polyfills/utils/buffer-utils.d.ts +5 -0
  635. package/dist/polyfills/utils/buffer-utils.d.ts.map +1 -0
  636. package/dist/polyfills/utils/buffer-utils.js +34 -0
  637. package/dist/polyfills/utils/buffer-utils.js.map +1 -0
  638. package/dist/polyfills/utils/filesystem-types.d.ts +10 -0
  639. package/dist/polyfills/utils/filesystem-types.d.ts.map +1 -0
  640. package/dist/polyfills/utils/filesystem-types.js +5 -0
  641. package/dist/polyfills/utils/filesystem-types.js.map +1 -0
  642. package/dist/polyfills/utils/is-browser.d.ts +2 -0
  643. package/dist/polyfills/utils/is-browser.d.ts.map +1 -0
  644. package/dist/polyfills/utils/is-browser.js +8 -0
  645. package/dist/polyfills/utils/is-browser.js.map +1 -0
  646. package/dist/polyfills/utils/path-utils.d.ts +7 -0
  647. package/dist/polyfills/utils/path-utils.d.ts.map +1 -0
  648. package/dist/polyfills/utils/path-utils.js +28 -0
  649. package/dist/polyfills/utils/path-utils.js.map +1 -0
  650. package/dist/schema/categories/category-gis.d.ts +7 -0
  651. package/dist/schema/categories/category-gis.d.ts.map +1 -0
  652. package/dist/schema/categories/category-gis.js +5 -0
  653. package/dist/schema/categories/category-gis.js.map +1 -0
  654. package/dist/schema/categories/category-image.d.ts +18 -0
  655. package/dist/schema/categories/category-image.d.ts.map +1 -0
  656. package/dist/schema/categories/category-image.js +5 -0
  657. package/dist/schema/categories/category-image.js.map +1 -0
  658. package/dist/schema/categories/category-mesh.d.ts +99 -0
  659. package/dist/schema/categories/category-mesh.d.ts.map +1 -0
  660. package/dist/schema/categories/category-mesh.js +14 -0
  661. package/dist/schema/categories/category-mesh.js.map +1 -0
  662. package/dist/schema/categories/category-table.d.ts +106 -0
  663. package/dist/schema/categories/category-table.d.ts.map +1 -0
  664. package/dist/schema/categories/category-table.js +5 -0
  665. package/dist/schema/categories/category-table.js.map +1 -0
  666. package/dist/schema/categories/category-texture.d.ts +115 -0
  667. package/dist/schema/categories/category-texture.d.ts.map +1 -0
  668. package/dist/schema/categories/category-texture.js +5 -0
  669. package/dist/schema/categories/category-texture.js.map +1 -0
  670. package/dist/schema/deprecated/mesh-utils.d.ts +12 -0
  671. package/dist/schema/deprecated/mesh-utils.d.ts.map +1 -0
  672. package/dist/schema/deprecated/mesh-utils.js +37 -0
  673. package/dist/schema/deprecated/mesh-utils.js.map +1 -0
  674. package/dist/schema/float16.d.ts +19 -0
  675. package/dist/schema/float16.d.ts.map +1 -0
  676. package/dist/schema/float16.js +90 -0
  677. package/dist/schema/float16.js.map +1 -0
  678. package/dist/schema/geoarrow-metadata.schema.json +117 -0
  679. package/dist/schema/geometry/arrow-binary-features.d.ts +45 -0
  680. package/dist/schema/geometry/arrow-binary-features.d.ts.map +1 -0
  681. package/dist/schema/geometry/arrow-binary-features.js +5 -0
  682. package/dist/schema/geometry/arrow-binary-features.js.map +1 -0
  683. package/dist/schema/geometry/binary-features.d.ts +30 -0
  684. package/dist/schema/geometry/binary-features.d.ts.map +1 -0
  685. package/dist/schema/geometry/binary-features.js +5 -0
  686. package/dist/schema/geometry/binary-features.js.map +1 -0
  687. package/dist/schema/geometry/binary-geometries.d.ts +33 -0
  688. package/dist/schema/geometry/binary-geometries.d.ts.map +1 -0
  689. package/dist/schema/geometry/binary-geometries.js +5 -0
  690. package/dist/schema/geometry/binary-geometries.js.map +1 -0
  691. package/dist/schema/geometry/flat-geometries.d.ts +61 -0
  692. package/dist/schema/geometry/flat-geometries.d.ts.map +1 -0
  693. package/dist/schema/geometry/flat-geometries.js +5 -0
  694. package/dist/schema/geometry/flat-geometries.js.map +1 -0
  695. package/dist/schema/geometry/geoarrow.d.ts +69 -0
  696. package/dist/schema/geometry/geoarrow.d.ts.map +1 -0
  697. package/dist/schema/geometry/geoarrow.js +5 -0
  698. package/dist/schema/geometry/geoarrow.js.map +1 -0
  699. package/dist/schema/geoparquet.schema.json +222 -0
  700. package/dist/schema/geospatial-metadata-zod-schema.cjs +154 -0
  701. package/dist/schema/geospatial-metadata-zod-schema.cjs.map +6 -0
  702. package/dist/schema/geospatial-metadata-zod-schema.d.ts +44 -0
  703. package/dist/schema/geospatial-metadata-zod-schema.d.ts.map +1 -0
  704. package/dist/schema/geospatial-metadata-zod-schema.js +151 -0
  705. package/dist/schema/geospatial-metadata-zod-schema.js.map +1 -0
  706. package/dist/schema/index.cjs +259 -0
  707. package/dist/schema/index.cjs.map +6 -0
  708. package/dist/schema/index.d.ts +21 -0
  709. package/dist/schema/index.d.ts.map +1 -0
  710. package/dist/schema/index.js +9 -0
  711. package/dist/schema/index.js.map +1 -0
  712. package/dist/schema/metadata.d.ts +40 -0
  713. package/dist/schema/metadata.d.ts.map +1 -0
  714. package/dist/schema/metadata.js +86 -0
  715. package/dist/schema/metadata.js.map +1 -0
  716. package/dist/schema/types/batch.d.ts +37 -0
  717. package/dist/schema/types/batch.d.ts.map +1 -0
  718. package/dist/schema/types/batch.js +5 -0
  719. package/dist/schema/types/batch.js.map +1 -0
  720. package/dist/schema/types/schema.d.ts +70 -0
  721. package/dist/schema/types/schema.d.ts.map +1 -0
  722. package/dist/schema/types/schema.js +5 -0
  723. package/dist/schema/types/schema.js.map +1 -0
  724. package/dist/schema/types/types.d.ts +16 -0
  725. package/dist/schema/types/types.d.ts.map +1 -0
  726. package/dist/schema/types/types.js +6 -0
  727. package/dist/schema/types/types.js.map +1 -0
  728. package/dist/schema-utils/arrow-transport.cjs +665 -0
  729. package/dist/schema-utils/arrow-transport.cjs.map +6 -0
  730. package/dist/schema-utils/arrow-transport.d.ts +4 -0
  731. package/dist/schema-utils/arrow-transport.d.ts.map +1 -0
  732. package/dist/schema-utils/arrow-transport.js +7 -0
  733. package/dist/schema-utils/arrow-transport.js.map +1 -0
  734. package/dist/schema-utils/deprecated.d.ts +24 -0
  735. package/dist/schema-utils/deprecated.d.ts.map +1 -0
  736. package/dist/schema-utils/deprecated.js +27 -0
  737. package/dist/schema-utils/deprecated.js.map +1 -0
  738. package/dist/schema-utils/index.cjs +3423 -0
  739. package/dist/schema-utils/index.cjs.map +6 -0
  740. package/dist/schema-utils/index.d.ts +38 -0
  741. package/dist/schema-utils/index.d.ts.map +1 -0
  742. package/dist/schema-utils/index.js +77 -0
  743. package/dist/schema-utils/index.js.map +1 -0
  744. package/dist/schema-utils/lib/arrow/arrow-table-transport.d.ts +72 -0
  745. package/dist/schema-utils/lib/arrow/arrow-table-transport.d.ts.map +1 -0
  746. package/dist/schema-utils/lib/arrow/arrow-table-transport.js +162 -0
  747. package/dist/schema-utils/lib/arrow/arrow-table-transport.js.map +1 -0
  748. package/dist/schema-utils/lib/arrow/split-arrow-buffers.d.ts +33 -0
  749. package/dist/schema-utils/lib/arrow/split-arrow-buffers.d.ts.map +1 -0
  750. package/dist/schema-utils/lib/arrow/split-arrow-buffers.js +128 -0
  751. package/dist/schema-utils/lib/arrow/split-arrow-buffers.js.map +1 -0
  752. package/dist/schema-utils/lib/arrow-utils/arrow-fixed-size-list-utils.d.ts +11 -0
  753. package/dist/schema-utils/lib/arrow-utils/arrow-fixed-size-list-utils.d.ts.map +1 -0
  754. package/dist/schema-utils/lib/arrow-utils/arrow-fixed-size-list-utils.js +45 -0
  755. package/dist/schema-utils/lib/arrow-utils/arrow-fixed-size-list-utils.js.map +1 -0
  756. package/dist/schema-utils/lib/arrow-utils/arrow-list-of-fixed-size-list-utils.d.ts +11 -0
  757. package/dist/schema-utils/lib/arrow-utils/arrow-list-of-fixed-size-list-utils.d.ts.map +1 -0
  758. package/dist/schema-utils/lib/arrow-utils/arrow-list-of-fixed-size-list-utils.js +33 -0
  759. package/dist/schema-utils/lib/arrow-utils/arrow-list-of-fixed-size-list-utils.js.map +1 -0
  760. package/dist/schema-utils/lib/converters/convert.d.ts +10 -0
  761. package/dist/schema-utils/lib/converters/convert.d.ts.map +1 -0
  762. package/dist/schema-utils/lib/converters/convert.js +98 -0
  763. package/dist/schema-utils/lib/converters/convert.js.map +1 -0
  764. package/dist/schema-utils/lib/converters/converters.d.ts +3 -0
  765. package/dist/schema-utils/lib/converters/converters.d.ts.map +1 -0
  766. package/dist/schema-utils/lib/converters/converters.js +5 -0
  767. package/dist/schema-utils/lib/converters/converters.js.map +1 -0
  768. package/dist/schema-utils/lib/converters/types.d.ts +35 -0
  769. package/dist/schema-utils/lib/converters/types.d.ts.map +1 -0
  770. package/dist/schema-utils/lib/converters/types.js +5 -0
  771. package/dist/schema-utils/lib/converters/types.js.map +1 -0
  772. package/dist/schema-utils/lib/mesh/convert-mesh-to-table.d.ts +44 -0
  773. package/dist/schema-utils/lib/mesh/convert-mesh-to-table.d.ts.map +1 -0
  774. package/dist/schema-utils/lib/mesh/convert-mesh-to-table.js +187 -0
  775. package/dist/schema-utils/lib/mesh/convert-mesh-to-table.js.map +1 -0
  776. package/dist/schema-utils/lib/mesh/convert-table-to-mesh.d.ts +14 -0
  777. package/dist/schema-utils/lib/mesh/convert-table-to-mesh.d.ts.map +1 -0
  778. package/dist/schema-utils/lib/mesh/convert-table-to-mesh.js +217 -0
  779. package/dist/schema-utils/lib/mesh/convert-table-to-mesh.js.map +1 -0
  780. package/dist/schema-utils/lib/mesh/deduce-mesh-schema.d.ts +23 -0
  781. package/dist/schema-utils/lib/mesh/deduce-mesh-schema.d.ts.map +1 -0
  782. package/dist/schema-utils/lib/mesh/deduce-mesh-schema.js +72 -0
  783. package/dist/schema-utils/lib/mesh/deduce-mesh-schema.js.map +1 -0
  784. package/dist/schema-utils/lib/mesh/mesh-utils.d.ts +23 -0
  785. package/dist/schema-utils/lib/mesh/mesh-utils.d.ts.map +1 -0
  786. package/dist/schema-utils/lib/mesh/mesh-utils.js +54 -0
  787. package/dist/schema-utils/lib/mesh/mesh-utils.js.map +1 -0
  788. package/dist/schema-utils/lib/mesh/point-cloud-tiler.d.ts +98 -0
  789. package/dist/schema-utils/lib/mesh/point-cloud-tiler.d.ts.map +1 -0
  790. package/dist/schema-utils/lib/mesh/point-cloud-tiler.js +407 -0
  791. package/dist/schema-utils/lib/mesh/point-cloud-tiler.js.map +1 -0
  792. package/dist/schema-utils/lib/schema/convert-arrow-schema.d.ts +39 -0
  793. package/dist/schema-utils/lib/schema/convert-arrow-schema.d.ts.map +1 -0
  794. package/dist/schema-utils/lib/schema/convert-arrow-schema.js +441 -0
  795. package/dist/schema-utils/lib/schema/convert-arrow-schema.js.map +1 -0
  796. package/dist/schema-utils/lib/schema/data-type.d.ts +16 -0
  797. package/dist/schema-utils/lib/schema/data-type.d.ts.map +1 -0
  798. package/dist/schema-utils/lib/schema/data-type.js +102 -0
  799. package/dist/schema-utils/lib/schema/data-type.js.map +1 -0
  800. package/dist/schema-utils/lib/schema/deduce-table-schema.d.ts +14 -0
  801. package/dist/schema-utils/lib/schema/deduce-table-schema.d.ts.map +1 -0
  802. package/dist/schema-utils/lib/schema/deduce-table-schema.js +101 -0
  803. package/dist/schema-utils/lib/schema/deduce-table-schema.js.map +1 -0
  804. package/dist/schema-utils/lib/table/arrow-api/arrow-like-field.d.ts +19 -0
  805. package/dist/schema-utils/lib/table/arrow-api/arrow-like-field.d.ts.map +1 -0
  806. package/dist/schema-utils/lib/table/arrow-api/arrow-like-field.js +37 -0
  807. package/dist/schema-utils/lib/table/arrow-api/arrow-like-field.js.map +1 -0
  808. package/dist/schema-utils/lib/table/arrow-api/arrow-like-interface.d.ts +43 -0
  809. package/dist/schema-utils/lib/table/arrow-api/arrow-like-interface.d.ts.map +1 -0
  810. package/dist/schema-utils/lib/table/arrow-api/arrow-like-interface.js +5 -0
  811. package/dist/schema-utils/lib/table/arrow-api/arrow-like-interface.js.map +1 -0
  812. package/dist/schema-utils/lib/table/arrow-api/arrow-like-schema.d.ts +12 -0
  813. package/dist/schema-utils/lib/table/arrow-api/arrow-like-schema.d.ts.map +1 -0
  814. package/dist/schema-utils/lib/table/arrow-api/arrow-like-schema.js +82 -0
  815. package/dist/schema-utils/lib/table/arrow-api/arrow-like-schema.js.map +1 -0
  816. package/dist/schema-utils/lib/table/arrow-api/arrow-like-table.d.ts +28 -0
  817. package/dist/schema-utils/lib/table/arrow-api/arrow-like-table.d.ts.map +1 -0
  818. package/dist/schema-utils/lib/table/arrow-api/arrow-like-table.js +64 -0
  819. package/dist/schema-utils/lib/table/arrow-api/arrow-like-table.js.map +1 -0
  820. package/dist/schema-utils/lib/table/arrow-api/arrow-like-type.d.ts +177 -0
  821. package/dist/schema-utils/lib/table/arrow-api/arrow-like-type.d.ts.map +1 -0
  822. package/dist/schema-utils/lib/table/arrow-api/arrow-like-type.js +441 -0
  823. package/dist/schema-utils/lib/table/arrow-api/arrow-like-type.js.map +1 -0
  824. package/dist/schema-utils/lib/table/arrow-api/enum.d.ts +92 -0
  825. package/dist/schema-utils/lib/table/arrow-api/enum.d.ts.map +1 -0
  826. package/dist/schema-utils/lib/table/arrow-api/enum.js +98 -0
  827. package/dist/schema-utils/lib/table/arrow-api/enum.js.map +1 -0
  828. package/dist/schema-utils/lib/table/arrow-api/get-type-info.d.ts +13 -0
  829. package/dist/schema-utils/lib/table/arrow-api/get-type-info.d.ts.map +1 -0
  830. package/dist/schema-utils/lib/table/arrow-api/get-type-info.js +28 -0
  831. package/dist/schema-utils/lib/table/arrow-api/get-type-info.js.map +1 -0
  832. package/dist/schema-utils/lib/table/arrow-api/index.d.ts +6 -0
  833. package/dist/schema-utils/lib/table/arrow-api/index.d.ts.map +1 -0
  834. package/dist/schema-utils/lib/table/arrow-api/index.js +8 -0
  835. package/dist/schema-utils/lib/table/arrow-api/index.js.map +1 -0
  836. package/dist/schema-utils/lib/table/batch-builder/arrow-table-batch-aggregator.d.ts +10 -0
  837. package/dist/schema-utils/lib/table/batch-builder/arrow-table-batch-aggregator.d.ts.map +1 -0
  838. package/dist/schema-utils/lib/table/batch-builder/arrow-table-batch-aggregator.js +71 -0
  839. package/dist/schema-utils/lib/table/batch-builder/arrow-table-batch-aggregator.js.map +1 -0
  840. package/dist/schema-utils/lib/table/batch-builder/arrow-table-builder.d.ts +28 -0
  841. package/dist/schema-utils/lib/table/batch-builder/arrow-table-builder.d.ts.map +1 -0
  842. package/dist/schema-utils/lib/table/batch-builder/arrow-table-builder.js +104 -0
  843. package/dist/schema-utils/lib/table/batch-builder/arrow-table-builder.js.map +1 -0
  844. package/dist/schema-utils/lib/table/batch-builder/base-table-batch-aggregator.d.ts +19 -0
  845. package/dist/schema-utils/lib/table/batch-builder/base-table-batch-aggregator.d.ts.map +1 -0
  846. package/dist/schema-utils/lib/table/batch-builder/base-table-batch-aggregator.js +64 -0
  847. package/dist/schema-utils/lib/table/batch-builder/base-table-batch-aggregator.js.map +1 -0
  848. package/dist/schema-utils/lib/table/batch-builder/columnar-table-batch-aggregator.d.ts +20 -0
  849. package/dist/schema-utils/lib/table/batch-builder/columnar-table-batch-aggregator.d.ts.map +1 -0
  850. package/dist/schema-utils/lib/table/batch-builder/columnar-table-batch-aggregator.js +84 -0
  851. package/dist/schema-utils/lib/table/batch-builder/columnar-table-batch-aggregator.js.map +1 -0
  852. package/dist/schema-utils/lib/table/batch-builder/row-table-batch-aggregator.d.ts +21 -0
  853. package/dist/schema-utils/lib/table/batch-builder/row-table-batch-aggregator.d.ts.map +1 -0
  854. package/dist/schema-utils/lib/table/batch-builder/row-table-batch-aggregator.js +86 -0
  855. package/dist/schema-utils/lib/table/batch-builder/row-table-batch-aggregator.js.map +1 -0
  856. package/dist/schema-utils/lib/table/batch-builder/table-batch-aggregator.d.ts +24 -0
  857. package/dist/schema-utils/lib/table/batch-builder/table-batch-aggregator.d.ts.map +1 -0
  858. package/dist/schema-utils/lib/table/batch-builder/table-batch-aggregator.js +5 -0
  859. package/dist/schema-utils/lib/table/batch-builder/table-batch-aggregator.js.map +1 -0
  860. package/dist/schema-utils/lib/table/batch-builder/table-batch-builder.d.ts +52 -0
  861. package/dist/schema-utils/lib/table/batch-builder/table-batch-builder.d.ts.map +1 -0
  862. package/dist/schema-utils/lib/table/batch-builder/table-batch-builder.js +149 -0
  863. package/dist/schema-utils/lib/table/batch-builder/table-batch-builder.js.map +1 -0
  864. package/dist/schema-utils/lib/table/batches/convert-batches.d.ts +10 -0
  865. package/dist/schema-utils/lib/table/batches/convert-batches.d.ts.map +1 -0
  866. package/dist/schema-utils/lib/table/batches/convert-batches.js +46 -0
  867. package/dist/schema-utils/lib/table/batches/convert-batches.js.map +1 -0
  868. package/dist/schema-utils/lib/table/batches/make-arrow-batch-iterator.d.ts +17 -0
  869. package/dist/schema-utils/lib/table/batches/make-arrow-batch-iterator.d.ts.map +1 -0
  870. package/dist/schema-utils/lib/table/batches/make-arrow-batch-iterator.js +61 -0
  871. package/dist/schema-utils/lib/table/batches/make-arrow-batch-iterator.js.map +1 -0
  872. package/dist/schema-utils/lib/table/batches/make-table-batch-iterator.d.ts +15 -0
  873. package/dist/schema-utils/lib/table/batches/make-table-batch-iterator.d.ts.map +1 -0
  874. package/dist/schema-utils/lib/table/batches/make-table-batch-iterator.js +22 -0
  875. package/dist/schema-utils/lib/table/batches/make-table-batch-iterator.js.map +1 -0
  876. package/dist/schema-utils/lib/table/batches/make-table-from-batches.d.ts +9 -0
  877. package/dist/schema-utils/lib/table/batches/make-table-from-batches.d.ts.map +1 -0
  878. package/dist/schema-utils/lib/table/batches/make-table-from-batches.js +63 -0
  879. package/dist/schema-utils/lib/table/batches/make-table-from-batches.js.map +1 -0
  880. package/dist/schema-utils/lib/table/query-arrow-table.d.ts +23 -0
  881. package/dist/schema-utils/lib/table/query-arrow-table.d.ts.map +1 -0
  882. package/dist/schema-utils/lib/table/query-arrow-table.js +73 -0
  883. package/dist/schema-utils/lib/table/query-arrow-table.js.map +1 -0
  884. package/dist/schema-utils/lib/table/tables/convert-arrow-table.d.ts +24 -0
  885. package/dist/schema-utils/lib/table/tables/convert-arrow-table.d.ts.map +1 -0
  886. package/dist/schema-utils/lib/table/tables/convert-arrow-table.js +151 -0
  887. package/dist/schema-utils/lib/table/tables/convert-arrow-table.js.map +1 -0
  888. package/dist/schema-utils/lib/table/tables/convert-table.d.ts +43 -0
  889. package/dist/schema-utils/lib/table/tables/convert-table.d.ts.map +1 -0
  890. package/dist/schema-utils/lib/table/tables/convert-table.js +122 -0
  891. package/dist/schema-utils/lib/table/tables/convert-table.js.map +1 -0
  892. package/dist/schema-utils/lib/table/tables/make-table.d.ts +67 -0
  893. package/dist/schema-utils/lib/table/tables/make-table.d.ts.map +1 -0
  894. package/dist/schema-utils/lib/table/tables/make-table.js +102 -0
  895. package/dist/schema-utils/lib/table/tables/make-table.js.map +1 -0
  896. package/dist/schema-utils/lib/table/tables/row-utils.d.ts +15 -0
  897. package/dist/schema-utils/lib/table/tables/row-utils.d.ts.map +1 -0
  898. package/dist/schema-utils/lib/table/tables/row-utils.js +50 -0
  899. package/dist/schema-utils/lib/table/tables/row-utils.js.map +1 -0
  900. package/dist/schema-utils/lib/table/tables/table-accessors.d.ts +68 -0
  901. package/dist/schema-utils/lib/table/tables/table-accessors.d.ts.map +1 -0
  902. package/dist/schema-utils/lib/table/tables/table-accessors.js +352 -0
  903. package/dist/schema-utils/lib/table/tables/table-accessors.js.map +1 -0
  904. package/dist/schema-utils/lib/table/tables/table-column.d.ts +7 -0
  905. package/dist/schema-utils/lib/table/tables/table-column.d.ts.map +1 -0
  906. package/dist/schema-utils/lib/table/tables/table-column.js +40 -0
  907. package/dist/schema-utils/lib/table/tables/table-column.js.map +1 -0
  908. package/dist/schema-utils/lib/table/tables/table-converter/convert-tables.d.ts +9 -0
  909. package/dist/schema-utils/lib/table/tables/table-converter/convert-tables.d.ts.map +1 -0
  910. package/dist/schema-utils/lib/table/tables/table-converter/convert-tables.js +19 -0
  911. package/dist/schema-utils/lib/table/tables/table-converter/convert-tables.js.map +1 -0
  912. package/dist/schema-utils/lib/table/tables/table-converter/table-converter.d.ts +16 -0
  913. package/dist/schema-utils/lib/table/tables/table-converter/table-converter.d.ts.map +1 -0
  914. package/dist/schema-utils/lib/table/tables/table-converter/table-converter.js +45 -0
  915. package/dist/schema-utils/lib/table/tables/table-converter/table-converter.js.map +1 -0
  916. package/dist/schema-utils/lib/table/tables/table-types.d.ts +12 -0
  917. package/dist/schema-utils/lib/table/tables/table-types.d.ts.map +1 -0
  918. package/dist/schema-utils/lib/table/tables/table-types.js +24 -0
  919. package/dist/schema-utils/lib/table/tables/table-types.js.map +1 -0
  920. package/dist/schema-utils/lib/utils/assert.d.ts +2 -0
  921. package/dist/schema-utils/lib/utils/assert.d.ts.map +1 -0
  922. package/dist/schema-utils/lib/utils/assert.js +12 -0
  923. package/dist/schema-utils/lib/utils/assert.js.map +1 -0
  924. package/dist/schema-utils/lib/utils/async-queue.d.ts +18 -0
  925. package/dist/schema-utils/lib/utils/async-queue.d.ts.map +1 -0
  926. package/dist/schema-utils/lib/utils/async-queue.js +96 -0
  927. package/dist/schema-utils/lib/utils/async-queue.js.map +1 -0
  928. package/dist/schema-utils/types/types.d.ts +15 -0
  929. package/dist/schema-utils/types/types.d.ts.map +1 -0
  930. package/dist/schema-utils/types/types.js +5 -0
  931. package/dist/schema-utils/types/types.js.map +1 -0
  932. package/dist/worker-utils/index.cjs +1448 -0
  933. package/dist/worker-utils/index.cjs.map +6 -0
  934. package/dist/worker-utils/index.d.ts +22 -0
  935. package/dist/worker-utils/index.d.ts.map +1 -0
  936. package/dist/worker-utils/index.js +40 -0
  937. package/dist/worker-utils/index.js.map +1 -0
  938. package/dist/worker-utils/lib/async-queue/async-queue.d.ts +32 -0
  939. package/dist/worker-utils/lib/async-queue/async-queue.d.ts.map +1 -0
  940. package/dist/worker-utils/lib/async-queue/async-queue.js +91 -0
  941. package/dist/worker-utils/lib/async-queue/async-queue.js.map +1 -0
  942. package/dist/worker-utils/lib/env-utils/assert.d.ts +3 -0
  943. package/dist/worker-utils/lib/env-utils/assert.d.ts.map +1 -0
  944. package/dist/worker-utils/lib/env-utils/assert.js +13 -0
  945. package/dist/worker-utils/lib/env-utils/assert.js.map +1 -0
  946. package/dist/worker-utils/lib/env-utils/globals.d.ts +22 -0
  947. package/dist/worker-utils/lib/env-utils/globals.d.ts.map +1 -0
  948. package/dist/worker-utils/lib/env-utils/globals.js +30 -0
  949. package/dist/worker-utils/lib/env-utils/globals.js.map +1 -0
  950. package/dist/worker-utils/lib/env-utils/version.d.ts +2 -0
  951. package/dist/worker-utils/lib/env-utils/version.d.ts.map +1 -0
  952. package/dist/worker-utils/lib/env-utils/version.js +20 -0
  953. package/dist/worker-utils/lib/env-utils/version.js.map +1 -0
  954. package/dist/worker-utils/lib/library-utils/library-utils.d.ts +42 -0
  955. package/dist/worker-utils/lib/library-utils/library-utils.d.ts.map +1 -0
  956. package/dist/worker-utils/lib/library-utils/library-utils.js +248 -0
  957. package/dist/worker-utils/lib/library-utils/library-utils.js.map +1 -0
  958. package/dist/worker-utils/lib/node/worker_threads-browser.d.ts +14 -0
  959. package/dist/worker-utils/lib/node/worker_threads-browser.d.ts.map +1 -0
  960. package/dist/worker-utils/lib/node/worker_threads-browser.js +22 -0
  961. package/dist/worker-utils/lib/node/worker_threads-browser.js.map +1 -0
  962. package/dist/worker-utils/lib/node/worker_threads.d.ts +15 -0
  963. package/dist/worker-utils/lib/node/worker_threads.d.ts.map +1 -0
  964. package/dist/worker-utils/lib/node/worker_threads.js +16 -0
  965. package/dist/worker-utils/lib/node/worker_threads.js.map +1 -0
  966. package/dist/worker-utils/lib/npm-tag.d.ts +8 -0
  967. package/dist/worker-utils/lib/npm-tag.d.ts.map +1 -0
  968. package/dist/worker-utils/lib/npm-tag.js +11 -0
  969. package/dist/worker-utils/lib/npm-tag.js.map +1 -0
  970. package/dist/worker-utils/lib/process-utils/child-process-proxy.browser.d.ts +8 -0
  971. package/dist/worker-utils/lib/process-utils/child-process-proxy.browser.d.ts.map +1 -0
  972. package/dist/worker-utils/lib/process-utils/child-process-proxy.browser.js +18 -0
  973. package/dist/worker-utils/lib/process-utils/child-process-proxy.browser.js.map +1 -0
  974. package/dist/worker-utils/lib/process-utils/child-process-proxy.d.ts +45 -0
  975. package/dist/worker-utils/lib/process-utils/child-process-proxy.d.ts.map +1 -0
  976. package/dist/worker-utils/lib/process-utils/child-process-proxy.js +123 -0
  977. package/dist/worker-utils/lib/process-utils/child-process-proxy.js.map +1 -0
  978. package/dist/worker-utils/lib/process-utils/process-utils.d.ts +2 -0
  979. package/dist/worker-utils/lib/process-utils/process-utils.d.ts.map +1 -0
  980. package/dist/worker-utils/lib/process-utils/process-utils.js +32 -0
  981. package/dist/worker-utils/lib/process-utils/process-utils.js.map +1 -0
  982. package/dist/worker-utils/lib/worker-api/create-worker.d.ts +9 -0
  983. package/dist/worker-utils/lib/worker-api/create-worker.d.ts.map +1 -0
  984. package/dist/worker-utils/lib/worker-api/create-worker.js +123 -0
  985. package/dist/worker-utils/lib/worker-api/create-worker.js.map +1 -0
  986. package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts +27 -0
  987. package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts.map +1 -0
  988. package/dist/worker-utils/lib/worker-api/get-worker-url.js +103 -0
  989. package/dist/worker-utils/lib/worker-api/get-worker-url.js.map +1 -0
  990. package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts +44 -0
  991. package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts.map +1 -0
  992. package/dist/worker-utils/lib/worker-api/process-on-worker.js +312 -0
  993. package/dist/worker-utils/lib/worker-api/process-on-worker.js.map +1 -0
  994. package/dist/worker-utils/lib/worker-api/validate-worker-version.d.ts +9 -0
  995. package/dist/worker-utils/lib/worker-api/validate-worker-version.d.ts.map +1 -0
  996. package/dist/worker-utils/lib/worker-api/validate-worker-version.js +35 -0
  997. package/dist/worker-utils/lib/worker-api/validate-worker-version.js.map +1 -0
  998. package/dist/worker-utils/lib/worker-farm/worker-body.d.ts +20 -0
  999. package/dist/worker-utils/lib/worker-farm/worker-body.d.ts.map +1 -0
  1000. package/dist/worker-utils/lib/worker-farm/worker-body.js +131 -0
  1001. package/dist/worker-utils/lib/worker-farm/worker-body.js.map +1 -0
  1002. package/dist/worker-utils/lib/worker-farm/worker-farm.d.ts +58 -0
  1003. package/dist/worker-utils/lib/worker-farm/worker-farm.d.ts.map +1 -0
  1004. package/dist/worker-utils/lib/worker-farm/worker-farm.js +116 -0
  1005. package/dist/worker-utils/lib/worker-farm/worker-farm.js.map +1 -0
  1006. package/dist/worker-utils/lib/worker-farm/worker-job.d.ts +34 -0
  1007. package/dist/worker-utils/lib/worker-farm/worker-job.d.ts.map +1 -0
  1008. package/dist/worker-utils/lib/worker-farm/worker-job.js +73 -0
  1009. package/dist/worker-utils/lib/worker-farm/worker-job.js.map +1 -0
  1010. package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts +94 -0
  1011. package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts.map +1 -0
  1012. package/dist/worker-utils/lib/worker-farm/worker-pool.js +193 -0
  1013. package/dist/worker-utils/lib/worker-farm/worker-pool.js.map +1 -0
  1014. package/dist/worker-utils/lib/worker-farm/worker-thread.d.ts +67 -0
  1015. package/dist/worker-utils/lib/worker-farm/worker-thread.d.ts.map +1 -0
  1016. package/dist/worker-utils/lib/worker-farm/worker-thread.js +175 -0
  1017. package/dist/worker-utils/lib/worker-farm/worker-thread.js.map +1 -0
  1018. package/dist/worker-utils/lib/worker-utils/get-loadable-worker-url.d.ts +14 -0
  1019. package/dist/worker-utils/lib/worker-utils/get-loadable-worker-url.d.ts.map +1 -0
  1020. package/dist/worker-utils/lib/worker-utils/get-loadable-worker-url.js +72 -0
  1021. package/dist/worker-utils/lib/worker-utils/get-loadable-worker-url.js.map +1 -0
  1022. package/dist/worker-utils/lib/worker-utils/get-transfer-list.d.ts +15 -0
  1023. package/dist/worker-utils/lib/worker-utils/get-transfer-list.d.ts.map +1 -0
  1024. package/dist/worker-utils/lib/worker-utils/get-transfer-list.js +86 -0
  1025. package/dist/worker-utils/lib/worker-utils/get-transfer-list.js.map +1 -0
  1026. package/dist/worker-utils/lib/worker-utils/remove-nontransferable-options.d.ts +6 -0
  1027. package/dist/worker-utils/lib/worker-utils/remove-nontransferable-options.d.ts.map +1 -0
  1028. package/dist/worker-utils/lib/worker-utils/remove-nontransferable-options.js +27 -0
  1029. package/dist/worker-utils/lib/worker-utils/remove-nontransferable-options.js.map +1 -0
  1030. package/dist/worker-utils/null-worker-node.js +349 -0
  1031. package/dist/worker-utils/null-worker-node.js.map +7 -0
  1032. package/dist/worker-utils/null-worker.js +327 -0
  1033. package/dist/worker-utils/null-worker.js.map +7 -0
  1034. package/dist/worker-utils/types.d.ts +79 -0
  1035. package/dist/worker-utils/types.d.ts.map +1 -0
  1036. package/dist/worker-utils/types.js +5 -0
  1037. package/dist/worker-utils/types.js.map +1 -0
  1038. package/dist/worker-utils/workers/null-worker.d.ts +2 -0
  1039. package/dist/worker-utils/workers/null-worker.d.ts.map +1 -0
  1040. package/dist/worker-utils/workers/null-worker.js +17 -0
  1041. package/dist/worker-utils/workers/null-worker.js.map +1 -0
  1042. package/dist/workers/null-worker-node.js +1 -1
  1043. package/dist/workers/null-worker-node.js.map +1 -1
  1044. package/dist/workers/null-worker.js +1 -1
  1045. package/dist/workers/null-worker.js.map +1 -1
  1046. package/package.json +101 -11
  1047. package/src/index.ts +10 -10
  1048. package/src/iterators/make-iterator/make-iterator.ts +1 -1
  1049. package/src/iterators/make-iterator/make-stream-iterator.ts +1 -1
  1050. package/src/iterators/make-iterator/make-string-iterator.ts +1 -1
  1051. package/src/lib/api/core-api.ts +1 -1
  1052. package/src/lib/api/create-data-source.ts +2 -2
  1053. package/src/lib/api/encode-table.ts +2 -2
  1054. package/src/lib/api/encode.ts +3 -3
  1055. package/src/lib/api/load-in-batches.ts +2 -2
  1056. package/src/lib/api/load-loader.ts +2 -2
  1057. package/src/lib/api/load.ts +2 -2
  1058. package/src/lib/api/parse-file.ts +3 -3
  1059. package/src/lib/api/parse-in-batches.ts +44 -6
  1060. package/src/lib/api/parse-sync.ts +2 -2
  1061. package/src/lib/api/parse.ts +4 -4
  1062. package/src/lib/api/preload.ts +6 -1
  1063. package/src/lib/api/register-loaders.ts +1 -1
  1064. package/src/lib/api/select-loader.ts +3 -3
  1065. package/src/lib/api/select-source.ts +1 -1
  1066. package/src/lib/common.ts +1 -1
  1067. package/src/lib/fetch/fetch-file.ts +2 -2
  1068. package/src/lib/filesystems/browser-filesystem.ts +2 -2
  1069. package/src/lib/init.ts +1 -1
  1070. package/src/lib/loader-utils/get-data.ts +2 -2
  1071. package/src/lib/loader-utils/get-fetch-function.ts +2 -2
  1072. package/src/lib/loader-utils/loader-context.ts +2 -2
  1073. package/src/lib/loader-utils/loggers.ts +1 -1
  1074. package/src/lib/loader-utils/normalize-loader.ts +2 -2
  1075. package/src/lib/loader-utils/option-defaults.ts +2 -2
  1076. package/src/lib/loader-utils/option-utils.ts +1 -1
  1077. package/src/lib/utils/resource-utils.ts +1 -1
  1078. package/src/lib/utils/response-utils.ts +1 -1
  1079. package/src/loader-utils/format-types.ts +49 -0
  1080. package/src/loader-utils/index.ts +522 -0
  1081. package/src/loader-utils/json-loader.ts +39 -0
  1082. package/src/loader-utils/lib/binary-utils/array-buffer-utils.ts +114 -0
  1083. package/src/loader-utils/lib/binary-utils/binary-chunk-reader.ts +297 -0
  1084. package/src/loader-utils/lib/binary-utils/dataview-copy-utils.ts +121 -0
  1085. package/src/loader-utils/lib/binary-utils/encode-array-buffer-to-base64.ts +17 -0
  1086. package/src/loader-utils/lib/binary-utils/get-first-characters.ts +46 -0
  1087. package/src/loader-utils/lib/binary-utils/hex-transcoder.ts +54 -0
  1088. package/src/loader-utils/lib/binary-utils/memory-conversion-utils.ts +105 -0
  1089. package/src/loader-utils/lib/binary-utils/memory-copy-utils.ts +69 -0
  1090. package/src/loader-utils/lib/crs/crs-reprojection.ts +52 -0
  1091. package/src/loader-utils/lib/env-utils/assert.ts +13 -0
  1092. package/src/loader-utils/lib/env-utils/globals.ts +36 -0
  1093. package/src/loader-utils/lib/file-provider/data-view-file.ts +83 -0
  1094. package/src/loader-utils/lib/file-provider/file-handle-file.ts +114 -0
  1095. package/src/loader-utils/lib/file-provider/file-provider-interface.ts +60 -0
  1096. package/src/loader-utils/lib/file-provider/file-provider.ts +130 -0
  1097. package/src/loader-utils/lib/files/array-buffer-file.ts +46 -0
  1098. package/src/loader-utils/lib/files/blob-file.ts +45 -0
  1099. package/src/loader-utils/lib/files/file.ts +39 -0
  1100. package/src/loader-utils/lib/files/http-file-transport.ts +432 -0
  1101. package/src/loader-utils/lib/files/http-file-types.ts +60 -0
  1102. package/src/loader-utils/lib/files/http-file.ts +267 -0
  1103. package/src/loader-utils/lib/files/node-file-facade.ts +57 -0
  1104. package/src/loader-utils/lib/files/sources.ts +154 -0
  1105. package/src/loader-utils/lib/filesystems/filesystem.ts +40 -0
  1106. package/src/loader-utils/lib/filesystems/node-filesystem-facade.ts +65 -0
  1107. package/src/loader-utils/lib/iterators/async-iteration.ts +136 -0
  1108. package/src/loader-utils/lib/iterators/text-iterators.ts +76 -0
  1109. package/src/loader-utils/lib/javascript-utils/is-type.ts +130 -0
  1110. package/src/loader-utils/lib/laz/LASZIP-LICENSE +202 -0
  1111. package/src/loader-utils/lib/laz/LASZIP-NOTICE +6 -0
  1112. package/src/loader-utils/lib/laz/laz-arithmetic-encoder.ts +446 -0
  1113. package/src/loader-utils/lib/laz/laz-chunk-decoder.ts +5251 -0
  1114. package/src/loader-utils/lib/laz/laz-chunk-encoder.ts +1909 -0
  1115. package/src/loader-utils/lib/log-utils/log.ts +28 -0
  1116. package/src/loader-utils/lib/module-utils/initialize-wasm-module.ts +51 -0
  1117. package/src/loader-utils/lib/module-utils/js-module-utils.ts +44 -0
  1118. package/src/loader-utils/lib/node/buffer.browser.ts +22 -0
  1119. package/src/loader-utils/lib/node/buffer.ts +40 -0
  1120. package/src/loader-utils/lib/node/fs.browser.ts +5 -0
  1121. package/src/loader-utils/lib/node/promisify.ts +72 -0
  1122. package/src/loader-utils/lib/node/stream.browser.ts +5 -0
  1123. package/src/loader-utils/lib/node/stream.ts +12 -0
  1124. package/src/loader-utils/lib/option-utils/merge-options.ts +50 -0
  1125. package/src/loader-utils/lib/parser-utils/parse-json.ts +16 -0
  1126. package/src/loader-utils/lib/path-utils/cached-uri-resolver.ts +69 -0
  1127. package/src/loader-utils/lib/path-utils/file-aliases.ts +49 -0
  1128. package/src/loader-utils/lib/path-utils/get-cwd.ts +12 -0
  1129. package/src/loader-utils/lib/path-utils/path.ts +173 -0
  1130. package/src/loader-utils/lib/request-utils/abort-utils.ts +64 -0
  1131. package/src/loader-utils/lib/request-utils/authentication.ts +134 -0
  1132. package/src/loader-utils/lib/request-utils/parse-content-type.ts +22 -0
  1133. package/src/loader-utils/lib/request-utils/range-request-cache.ts +279 -0
  1134. package/src/loader-utils/lib/request-utils/range-request-scheduler.ts +899 -0
  1135. package/src/loader-utils/lib/request-utils/request-cache.ts +296 -0
  1136. package/src/loader-utils/lib/request-utils/request-credentials.ts +576 -0
  1137. package/src/loader-utils/lib/request-utils/request-scheduler.ts +230 -0
  1138. package/src/loader-utils/lib/scan-utils/columnar-predicate.ts +397 -0
  1139. package/src/loader-utils/lib/scan-utils/experimental-scan-options.ts +46 -0
  1140. package/src/loader-utils/lib/scan-utils/point-cloud-query.ts +176 -0
  1141. package/src/loader-utils/lib/scan-utils/raster-query.ts +82 -0
  1142. package/src/loader-utils/lib/scan-utils/relational-query.ts +188 -0
  1143. package/src/loader-utils/lib/scan-utils/scan-executor.ts +208 -0
  1144. package/src/loader-utils/lib/scan-utils/scan-fragments.ts +33 -0
  1145. package/src/loader-utils/lib/scan-utils/scan-query-metadata.ts +439 -0
  1146. package/src/loader-utils/lib/scan-utils/table-query-explain.ts +88 -0
  1147. package/src/loader-utils/lib/scan-utils/table-query.ts +163 -0
  1148. package/src/loader-utils/lib/scan-utils/table-scan-batch.ts +200 -0
  1149. package/src/loader-utils/lib/sources/catalog-source.ts +42 -0
  1150. package/src/loader-utils/lib/sources/data-source-manager.ts +569 -0
  1151. package/src/loader-utils/lib/sources/data-source.ts +236 -0
  1152. package/src/loader-utils/lib/sources/image-source.ts +66 -0
  1153. package/src/loader-utils/lib/sources/image-tile-source.ts +22 -0
  1154. package/src/loader-utils/lib/sources/raster-coverage.ts +92 -0
  1155. package/src/loader-utils/lib/sources/raster-region.ts +35 -0
  1156. package/src/loader-utils/lib/sources/raster-sampling.ts +213 -0
  1157. package/src/loader-utils/lib/sources/raster-source.ts +344 -0
  1158. package/src/loader-utils/lib/sources/service-capabilities.ts +50 -0
  1159. package/src/loader-utils/lib/sources/tile-grid.ts +162 -0
  1160. package/src/loader-utils/lib/sources/tile-source-adapter.ts +126 -0
  1161. package/src/loader-utils/lib/sources/tile-source-utils.ts +19 -0
  1162. package/src/loader-utils/lib/sources/tile-source.ts +198 -0
  1163. package/src/loader-utils/lib/sources/utils/image-type.ts +14 -0
  1164. package/src/loader-utils/lib/sources/utils/utils.ts +31 -0
  1165. package/src/loader-utils/lib/sources/vector-source.ts +89 -0
  1166. package/src/loader-utils/lib/sources/vector-tile-source.ts +29 -0
  1167. package/src/loader-utils/lib/sources/xyz-grid.ts +82 -0
  1168. package/src/loader-utils/lib/worker-loader-utils/create-loader-worker.ts +233 -0
  1169. package/src/loader-utils/lib/worker-loader-utils/encode-with-worker.ts +28 -0
  1170. package/src/loader-utils/lib/worker-loader-utils/parse-with-worker.ts +347 -0
  1171. package/src/loader-utils/loader-types.ts +531 -0
  1172. package/src/loader-utils/source-types.ts +76 -0
  1173. package/src/loader-utils/types.ts +83 -0
  1174. package/src/loader-utils/workers/json-worker.ts +8 -0
  1175. package/src/loader-utils/writer-types.ts +107 -0
  1176. package/src/null-loader.ts +2 -2
  1177. package/src/polyfills/README.md +16 -0
  1178. package/src/polyfills/buffer/btoa.node.ts +15 -0
  1179. package/src/polyfills/buffer/to-array-buffer.node.ts +12 -0
  1180. package/src/polyfills/crypto/node-hash.ts +78 -0
  1181. package/src/polyfills/fetch/decode-data-uri.ts +71 -0
  1182. package/src/polyfills/fetch/fetch-polyfill.ts +165 -0
  1183. package/src/polyfills/fetch/headers-polyfill.ts +119 -0
  1184. package/src/polyfills/fetch/response-polyfill.ts +101 -0
  1185. package/src/polyfills/fetch/utils/decode-data-uri.node.ts +34 -0
  1186. package/src/polyfills/file/blob-stream-controller.ts +69 -0
  1187. package/src/polyfills/file/blob-stream.ts +40 -0
  1188. package/src/polyfills/file/blob.ts +177 -0
  1189. package/src/polyfills/file/file-reader.ts +59 -0
  1190. package/src/polyfills/file/file.ts +45 -0
  1191. package/src/polyfills/file/install-blob-polyfills.ts +17 -0
  1192. package/src/polyfills/file/install-file-polyfills.ts +24 -0
  1193. package/src/polyfills/file/readable-stream.ts +8 -0
  1194. package/src/polyfills/filesystems/fetch-node.ts +98 -0
  1195. package/src/polyfills/filesystems/node-file.ts +169 -0
  1196. package/src/polyfills/filesystems/node-filesystem.ts +54 -0
  1197. package/src/polyfills/filesystems/stream-utils.node.ts +81 -0
  1198. package/src/polyfills/images/encode-image-node.ts +45 -0
  1199. package/src/polyfills/images/encode-image.node.ts.disabled +41 -0
  1200. package/src/polyfills/images/image-codecs-node.ts +40 -0
  1201. package/src/polyfills/images/node-image-bitmap.ts +81 -0
  1202. package/src/polyfills/images/node-image-formats.ts +6 -0
  1203. package/src/polyfills/images/parse-image-node.ts +54 -0
  1204. package/src/polyfills/images/parse-image.node.ts.disabled +55 -0
  1205. package/src/polyfills/index.browser.ts +23 -0
  1206. package/src/polyfills/index.ts +154 -0
  1207. package/src/polyfills/libs/encoding-indexes-asian.js +15 -0
  1208. package/src/polyfills/load-library/require-utils.node.ts +108 -0
  1209. package/src/polyfills/streams/make-node-stream.ts +83 -0
  1210. package/src/polyfills/text-encoder/encoding-indexes.ts +36 -0
  1211. package/src/polyfills/text-encoder/text-encoder.ts +3085 -0
  1212. package/src/polyfills/utils/assert.ts +9 -0
  1213. package/src/polyfills/utils/buffer-utils.ts +40 -0
  1214. package/src/polyfills/utils/filesystem-types.ts +13 -0
  1215. package/src/polyfills/utils/is-browser.ts +8 -0
  1216. package/src/polyfills/utils/path-utils.ts +31 -0
  1217. package/src/polyfills/wip/fetch-browser/fetch-file.browser.d.ts +34 -0
  1218. package/src/schema/categories/category-gis.ts +63 -0
  1219. package/src/schema/categories/category-image.ts +23 -0
  1220. package/src/schema/categories/category-mesh.ts +138 -0
  1221. package/src/schema/categories/category-table.ts +125 -0
  1222. package/src/schema/categories/category-texture.ts +259 -0
  1223. package/src/schema/deprecated/mesh-utils.ts +46 -0
  1224. package/src/schema/float16.ts +111 -0
  1225. package/src/schema/geometry/arrow-binary-features.ts +54 -0
  1226. package/src/schema/geometry/binary-features.ts +43 -0
  1227. package/src/schema/geometry/binary-geometries.ts +45 -0
  1228. package/src/schema/geometry/flat-geometries.ts +72 -0
  1229. package/src/schema/geometry/geoarrow.ts +116 -0
  1230. package/src/schema/geospatial-metadata-zod-schema.ts +163 -0
  1231. package/src/schema/index.ts +169 -0
  1232. package/src/schema/metadata.ts +115 -0
  1233. package/src/schema/types/batch.ts +47 -0
  1234. package/src/schema/types/schema.ts +86 -0
  1235. package/src/schema/types/types.ts +52 -0
  1236. package/src/schema-utils/arrow-transport.ts +7 -0
  1237. package/src/schema-utils/deprecated.ts +53 -0
  1238. package/src/schema-utils/index.ts +165 -0
  1239. package/src/schema-utils/lib/arrow/arrow-table-transport.ts +260 -0
  1240. package/src/schema-utils/lib/arrow/split-arrow-buffers.ts +235 -0
  1241. package/src/schema-utils/lib/arrow-utils/arrow-fixed-size-list-utils.ts +78 -0
  1242. package/src/schema-utils/lib/arrow-utils/arrow-list-of-fixed-size-list-utils.ts +48 -0
  1243. package/src/schema-utils/lib/converters/convert.ts +142 -0
  1244. package/src/schema-utils/lib/converters/converters.ts +6 -0
  1245. package/src/schema-utils/lib/converters/types.ts +44 -0
  1246. package/src/schema-utils/lib/mesh/convert-mesh-to-table.ts +311 -0
  1247. package/src/schema-utils/lib/mesh/convert-table-to-mesh.ts +257 -0
  1248. package/src/schema-utils/lib/mesh/deduce-mesh-schema.ts +85 -0
  1249. package/src/schema-utils/lib/mesh/mesh-utils.ts +73 -0
  1250. package/src/schema-utils/lib/mesh/point-cloud-tiler.ts +485 -0
  1251. package/src/schema-utils/lib/schema/convert-arrow-schema.ts +552 -0
  1252. package/src/schema-utils/lib/schema/data-type.ts +122 -0
  1253. package/src/schema-utils/lib/schema/deduce-table-schema.ts +119 -0
  1254. package/src/schema-utils/lib/table/arrow-api/arrow-like-field.ts +53 -0
  1255. package/src/schema-utils/lib/table/arrow-api/arrow-like-interface.ts +84 -0
  1256. package/src/schema-utils/lib/table/arrow-api/arrow-like-schema.ts +101 -0
  1257. package/src/schema-utils/lib/table/arrow-api/arrow-like-table.ts +85 -0
  1258. package/src/schema-utils/lib/table/arrow-api/arrow-like-type.ts +500 -0
  1259. package/src/schema-utils/lib/table/arrow-api/enum.ts +99 -0
  1260. package/src/schema-utils/lib/table/arrow-api/get-type-info.ts +38 -0
  1261. package/src/schema-utils/lib/table/arrow-api/index.ts +50 -0
  1262. package/src/schema-utils/lib/table/batch-builder/arrow-table-batch-aggregator-builders.ts.disabled +190 -0
  1263. package/src/schema-utils/lib/table/batch-builder/arrow-table-batch-aggregator.ts +85 -0
  1264. package/src/schema-utils/lib/table/batch-builder/arrow-table-builder.ts +123 -0
  1265. package/src/schema-utils/lib/table/batch-builder/base-table-batch-aggregator.ts +82 -0
  1266. package/src/schema-utils/lib/table/batch-builder/columnar-table-batch-aggregator.ts +104 -0
  1267. package/src/schema-utils/lib/table/batch-builder/row-table-batch-aggregator.ts +108 -0
  1268. package/src/schema-utils/lib/table/batch-builder/table-batch-aggregator.ts +28 -0
  1269. package/src/schema-utils/lib/table/batch-builder/table-batch-builder.ts +185 -0
  1270. package/src/schema-utils/lib/table/batches/convert-batches.ts +83 -0
  1271. package/src/schema-utils/lib/table/batches/make-arrow-batch-iterator.ts +81 -0
  1272. package/src/schema-utils/lib/table/batches/make-table-batch-iterator.ts +25 -0
  1273. package/src/schema-utils/lib/table/batches/make-table-from-batches.ts +84 -0
  1274. package/src/schema-utils/lib/table/query-arrow-table.ts +130 -0
  1275. package/src/schema-utils/lib/table/tables/convert-arrow-table.ts +198 -0
  1276. package/src/schema-utils/lib/table/tables/convert-table.ts +152 -0
  1277. package/src/schema-utils/lib/table/tables/make-table.ts +127 -0
  1278. package/src/schema-utils/lib/table/tables/row-utils.ts +59 -0
  1279. package/src/schema-utils/lib/table/tables/table-accessors.ts +418 -0
  1280. package/src/schema-utils/lib/table/tables/table-column.ts +49 -0
  1281. package/src/schema-utils/lib/table/tables/table-converter/convert-tables.ts +35 -0
  1282. package/src/schema-utils/lib/table/tables/table-converter/table-converter.ts +57 -0
  1283. package/src/schema-utils/lib/table/tables/table-types.ts +37 -0
  1284. package/src/schema-utils/lib/utils/assert.ts +12 -0
  1285. package/src/schema-utils/lib/utils/async-queue.ts +109 -0
  1286. package/src/schema-utils/types/types.ts +45 -0
  1287. package/src/worker-utils/index.ts +80 -0
  1288. package/src/worker-utils/lib/async-queue/async-queue.ts +100 -0
  1289. package/src/worker-utils/lib/env-utils/assert.ts +14 -0
  1290. package/src/worker-utils/lib/env-utils/globals.ts +40 -0
  1291. package/src/worker-utils/lib/env-utils/version.ts +25 -0
  1292. package/src/worker-utils/lib/library-utils/library-utils.ts +303 -0
  1293. package/src/worker-utils/lib/node/worker_threads-browser.ts +34 -0
  1294. package/src/worker-utils/lib/node/worker_threads.ts +58 -0
  1295. package/src/worker-utils/lib/npm-tag.ts +11 -0
  1296. package/src/worker-utils/lib/process-utils/child-process-proxy.browser.ts +23 -0
  1297. package/src/worker-utils/lib/process-utils/child-process-proxy.ts +165 -0
  1298. package/src/worker-utils/lib/process-utils/process-utils.ts +34 -0
  1299. package/src/worker-utils/lib/worker-api/create-worker.ts +166 -0
  1300. package/src/worker-utils/lib/worker-api/get-worker-url.ts +129 -0
  1301. package/src/worker-utils/lib/worker-api/process-on-worker.ts +413 -0
  1302. package/src/worker-utils/lib/worker-api/validate-worker-version.ts +44 -0
  1303. package/src/worker-utils/lib/worker-farm/worker-body.ts +145 -0
  1304. package/src/worker-utils/lib/worker-farm/worker-farm.ts +144 -0
  1305. package/src/worker-utils/lib/worker-farm/worker-job.ts +83 -0
  1306. package/src/worker-utils/lib/worker-farm/worker-pool.ts +263 -0
  1307. package/src/worker-utils/lib/worker-farm/worker-thread.ts +206 -0
  1308. package/src/worker-utils/lib/worker-utils/get-loadable-worker-url.ts +81 -0
  1309. package/src/worker-utils/lib/worker-utils/get-transfer-list.ts +93 -0
  1310. package/src/worker-utils/lib/worker-utils/remove-nontransferable-options.ts +27 -0
  1311. package/src/worker-utils/types.ts +125 -0
  1312. package/src/worker-utils/workers/null-worker.ts +20 -0
  1313. package/src/workers/null-worker-node.ts +1 -1
  1314. package/src/workers/null-worker.ts +1 -1
@@ -0,0 +1,1518 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { ArithmeticEncoder, ArithmeticModel, IntegerCompressor, StreamingMedian, toInt32 } from "./laz-arithmetic-encoder.js";
5
+ const POINT_FORMAT_BASE_LENGTHS = {
6
+ 0: 20,
7
+ 1: 28,
8
+ 2: 26,
9
+ 3: 34,
10
+ 4: 57,
11
+ 5: 63,
12
+ 6: 30,
13
+ 7: 36,
14
+ 8: 38,
15
+ 9: 59,
16
+ 10: 67
17
+ };
18
+ const LASZIP_VLR_HEADER_LENGTH = 54;
19
+ const LASZIP_VLR_PAYLOAD_BASE_LENGTH = 34;
20
+ const GPS_TIME_MULTI = 500;
21
+ const GPS_TIME_MULTI_MINUS = -10;
22
+ const GPS_TIME_MULTI_CODE_FULL = 511;
23
+ const GPS_TIME10_MULTI_CODE_FULL = GPS_TIME_MULTI - GPS_TIME_MULTI_MINUS + 2;
24
+ const NUMBER_RETURN_MAP_6_CONTEXT = [
25
+ [0, 1, 2, 3, 4, 5, 3, 4, 4, 5, 5, 5, 5, 5, 5, 5],
26
+ [1, 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
27
+ [2, 1, 2, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3],
28
+ [3, 3, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
29
+ [4, 3, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
30
+ [5, 3, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
31
+ [3, 3, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4],
32
+ [4, 3, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4],
33
+ [4, 3, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4],
34
+ [5, 3, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4],
35
+ [5, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4],
36
+ [5, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 4, 4, 4],
37
+ [5, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 4, 4],
38
+ [5, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 4],
39
+ [5, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5],
40
+ [5, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5]
41
+ ];
42
+ const NUMBER_RETURN_MAP_10_CONTEXT = [
43
+ [15, 14, 13, 12, 11, 10, 9, 8],
44
+ [14, 0, 1, 3, 6, 10, 10, 9],
45
+ [13, 1, 2, 4, 7, 11, 11, 10],
46
+ [12, 3, 4, 5, 8, 12, 12, 11],
47
+ [11, 6, 7, 8, 9, 13, 13, 12],
48
+ [10, 10, 11, 12, 13, 14, 14, 13],
49
+ [9, 10, 11, 12, 13, 14, 15, 14],
50
+ [8, 9, 10, 11, 12, 13, 14, 15]
51
+ ];
52
+ const NUMBER_RETURN_LEVEL_10_CONTEXT = [
53
+ [0, 1, 2, 3, 4, 5, 6, 7],
54
+ [1, 0, 1, 2, 3, 4, 5, 6],
55
+ [2, 1, 0, 1, 2, 3, 4, 5],
56
+ [3, 2, 1, 0, 1, 2, 3, 4],
57
+ [4, 3, 2, 1, 0, 1, 2, 3],
58
+ [5, 4, 3, 2, 1, 0, 1, 2],
59
+ [6, 5, 4, 3, 2, 1, 0, 1],
60
+ [7, 6, 5, 4, 3, 2, 1, 0]
61
+ ];
62
+ const NUMBER_RETURN_LEVEL_8_CONTEXT = [
63
+ [0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7],
64
+ [1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7],
65
+ [2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7],
66
+ [3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7],
67
+ [4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7],
68
+ [5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7],
69
+ [6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7],
70
+ [7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 7],
71
+ [7, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7],
72
+ [7, 7, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6],
73
+ [7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5],
74
+ [7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4],
75
+ [7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3],
76
+ [7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2],
77
+ [7, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0, 1],
78
+ [7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0]
79
+ ];
80
+ /** Feedable TypeScript LAZ chunk encoder. */
81
+ export class FeedableLAZChunkEncoder {
82
+ /** Metadata describing the raw point records. */
83
+ metadata;
84
+ /** Raw point byte ranges supplied by the caller. */
85
+ chunks = [];
86
+ /** Whether the raw point input has been closed. */
87
+ closed = false;
88
+ /** Create a feedable encoder for one LAZ chunk. */
89
+ constructor(metadata) {
90
+ this.metadata = metadata;
91
+ }
92
+ /** Add raw LAS point record bytes to the encoder input. */
93
+ feed(chunk) {
94
+ if (this.closed) {
95
+ throw new Error('Cannot feed a closed LAZ chunk encoder');
96
+ }
97
+ this.chunks.push(toUint8Array(chunk));
98
+ }
99
+ /** Mark the raw point input as complete. */
100
+ close() {
101
+ this.closed = true;
102
+ }
103
+ /** Encode all fed point data into one compressed LAZ chunk. */
104
+ encode() {
105
+ if (!this.closed) {
106
+ throw new Error('LAZ chunk encoder input is not closed');
107
+ }
108
+ return encodeLAZChunk(concatenateUint8Arrays(this.chunks), this.metadata);
109
+ }
110
+ }
111
+ /** Create a feedable TypeScript LAZ chunk encoder. */
112
+ export function createLAZChunkEncoder(metadata) {
113
+ return new FeedableLAZChunkEncoder(metadata);
114
+ }
115
+ /** Encode raw LAS 1.4 point records into one LASzip layered chunk. */
116
+ export function encodeLAZChunk(rawPointData, metadata) {
117
+ const rawBytes = toUint8Array(rawPointData);
118
+ validateMetadata(rawBytes, metadata);
119
+ if (metadata.pointCount === 0) {
120
+ return new Uint8Array(0);
121
+ }
122
+ if (metadata.pointDataRecordFormat <= 5) {
123
+ return encodeLegacyPointFormatChunk(rawBytes, metadata);
124
+ }
125
+ const pointRecordLength = metadata.pointDataRecordLength;
126
+ const pointFormat = metadata.pointDataRecordFormat;
127
+ const baseRecordLength = POINT_FORMAT_BASE_LENGTHS[pointFormat];
128
+ const extraByteCount = pointRecordLength - baseRecordLength;
129
+ const firstRecord = rawBytes.subarray(0, pointRecordLength);
130
+ const firstPoint = readPoint14(firstRecord, 0);
131
+ const pointEncoder = new Point14LayerEncoder(firstPoint);
132
+ const firstRgb = pointFormat === 7 || pointFormat === 8 || pointFormat === 10 ? readRgb(firstRecord, 30) : null;
133
+ const rgbEncoder = firstRgb
134
+ ? new RGB14LayerEncoder(firstRgb, getScannerChannel(firstPoint))
135
+ : null;
136
+ const nirEncoder = pointFormat === 8 || pointFormat === 10
137
+ ? new NIR14LayerEncoder(readUint16(firstRecord, 36), getScannerChannel(firstPoint))
138
+ : null;
139
+ const wavePacketOffset = pointFormat === 9 ? 30 : pointFormat === 10 ? 38 : -1;
140
+ const wavePacketEncoder = wavePacketOffset >= 0
141
+ ? new WavePacket14LayerEncoder(readWavePacket(firstRecord, wavePacketOffset), getScannerChannel(firstPoint), metadata.wavePacketItemVersion ?? 3)
142
+ : null;
143
+ const extraBytesEncoder = extraByteCount
144
+ ? new Byte14LayerEncoder(firstRecord.subarray(baseRecordLength, pointRecordLength), getScannerChannel(firstPoint))
145
+ : null;
146
+ for (let pointIndex = 1; pointIndex < metadata.pointCount; pointIndex++) {
147
+ const recordOffset = pointIndex * pointRecordLength;
148
+ const record = rawBytes.subarray(recordOffset, recordOffset + pointRecordLength);
149
+ const itemContext = pointEncoder.encode(readPoint14(record, 0));
150
+ rgbEncoder?.encode(readRgb(record, 30), itemContext);
151
+ nirEncoder?.encode(readUint16(record, pointFormat === 10 ? 36 : 36), itemContext);
152
+ wavePacketEncoder?.encode(readWavePacket(record, wavePacketOffset), itemContext);
153
+ extraBytesEncoder?.encode(record.subarray(baseRecordLength, pointRecordLength), itemContext);
154
+ }
155
+ const pointLayers = pointEncoder.finish();
156
+ const rgbLayer = rgbEncoder?.finish();
157
+ const nirLayer = nirEncoder?.finish();
158
+ const wavePacketLayer = wavePacketEncoder?.finish();
159
+ const extraByteLayers = extraBytesEncoder?.finish() || [];
160
+ const layers = [
161
+ ...pointLayers,
162
+ ...(rgbLayer ? [rgbLayer] : []),
163
+ ...(nirLayer ? [nirLayer] : []),
164
+ ...(wavePacketLayer ? [wavePacketLayer] : []),
165
+ ...extraByteLayers
166
+ ];
167
+ const sizeHeader = new Uint8Array(4 + layers.length * 4);
168
+ const sizeView = new DataView(sizeHeader.buffer);
169
+ sizeView.setUint32(0, metadata.pointCount, true);
170
+ for (let index = 0; index < layers.length; index++) {
171
+ sizeView.setUint32(4 + index * 4, layers[index].byteLength, true);
172
+ }
173
+ return concatenateUint8Arrays([firstRecord, sizeHeader, ...layers]);
174
+ }
175
+ /** Encode LASzip chunk-table entries as one arithmetic-coded payload. */
176
+ export function encodeLAZChunkTable(chunks, options = {}) {
177
+ if (chunks.length === 0) {
178
+ return new Uint8Array(0);
179
+ }
180
+ const encoder = new ArithmeticEncoder();
181
+ const compressor = new IntegerCompressor(encoder, 32, 2);
182
+ let pointCountPredictor = 0;
183
+ let byteLengthPredictor = 0;
184
+ for (const chunk of chunks) {
185
+ validateChunkTableEntry(chunk);
186
+ if (options.variable) {
187
+ compressor.compress(pointCountPredictor, chunk.pointCount, 0);
188
+ pointCountPredictor = chunk.pointCount;
189
+ }
190
+ compressor.compress(byteLengthPredictor, chunk.byteLength, 1);
191
+ byteLengthPredictor = chunk.byteLength;
192
+ }
193
+ return encoder.finish();
194
+ }
195
+ /** Encode a complete LASzip VLR for a supported layered point layout. */
196
+ export function encodeLASzipVLR(options) {
197
+ const legacy = options.pointDataRecordFormat <= 5;
198
+ const itemVersion = options.itemVersion || (legacy ? 2 : 3);
199
+ if (legacy && itemVersion !== 2) {
200
+ throw new Error('Legacy LASzip point formats require item version 2');
201
+ }
202
+ if (!legacy && itemVersion !== 3) {
203
+ throw new Error('Modern LASzip point formats require item version 3');
204
+ }
205
+ const items = getLASzipItems(options.pointDataRecordFormat, options.pointDataRecordLength);
206
+ const payloadLength = LASZIP_VLR_PAYLOAD_BASE_LENGTH + items.length * 6;
207
+ const bytes = new Uint8Array(LASZIP_VLR_HEADER_LENGTH + payloadLength);
208
+ const dataView = new DataView(bytes.buffer);
209
+ const payloadOffset = LASZIP_VLR_HEADER_LENGTH;
210
+ writeString(dataView, 2, 'laszip encoded', 16);
211
+ dataView.setUint16(18, 22204, true);
212
+ dataView.setUint16(20, payloadLength, true);
213
+ writeString(dataView, 22, 'loaders.gl LAZ writer', 32);
214
+ dataView.setUint16(payloadOffset, legacy ? 2 : 3, true);
215
+ dataView.setUint16(payloadOffset + 2, 0, true);
216
+ dataView.setUint8(payloadOffset + 4, legacy ? 2 : 3);
217
+ dataView.setUint8(payloadOffset + 5, 0);
218
+ dataView.setUint16(payloadOffset + 6, 1, true);
219
+ dataView.setUint32(payloadOffset + 8, 0, true);
220
+ dataView.setUint32(payloadOffset + 12, options.chunkSize, true);
221
+ bytes.fill(0xff, payloadOffset + 16, payloadOffset + 32);
222
+ dataView.setUint16(payloadOffset + 32, items.length, true);
223
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
224
+ const itemOffset = payloadOffset + LASZIP_VLR_PAYLOAD_BASE_LENGTH + itemIndex * 6;
225
+ const item = items[itemIndex];
226
+ dataView.setUint16(itemOffset, item.type, true);
227
+ dataView.setUint16(itemOffset + 2, item.size, true);
228
+ dataView.setUint16(itemOffset + 4, item.version ?? itemVersion, true);
229
+ }
230
+ return bytes;
231
+ }
232
+ /** Encode the legacy LAS point-format 0 item and optional Extra Bytes. */
233
+ function encodeLegacyPointFormatChunk(rawBytes, metadata) {
234
+ const pointRecordLength = metadata.pointDataRecordLength;
235
+ const pointFormat = metadata.pointDataRecordFormat;
236
+ const baseRecordLength = POINT_FORMAT_BASE_LENGTHS[pointFormat];
237
+ const extraByteCount = pointRecordLength - baseRecordLength;
238
+ const firstRecord = rawBytes.subarray(0, pointRecordLength);
239
+ const encoder = new ArithmeticEncoder();
240
+ const pointEncoder = new Point10LayerEncoder(encoder, readPoint10(firstRecord, 0));
241
+ const gpsTimeEncoder = pointFormat === 1 || pointFormat === 3 || pointFormat === 4 || pointFormat === 5
242
+ ? new GpsTime10LayerEncoder(encoder, readFloat64(firstRecord, 20))
243
+ : null;
244
+ const rgbOffset = pointFormat === 2 ? 20 : pointFormat === 3 || pointFormat === 5 ? 28 : -1;
245
+ const rgbEncoder = rgbOffset >= 0 ? new RGB10LayerEncoder(encoder, readRgb(firstRecord, rgbOffset)) : null;
246
+ const wavePacketOffset = pointFormat === 4 ? 28 : pointFormat === 5 ? 34 : -1;
247
+ const wavePacketEncoder = wavePacketOffset >= 0
248
+ ? new WavePacket13LayerEncoder(encoder, readWavePacket(firstRecord, wavePacketOffset))
249
+ : null;
250
+ const extraBytesEncoder = extraByteCount
251
+ ? new Byte10LayerEncoder(encoder, firstRecord.subarray(baseRecordLength, pointRecordLength))
252
+ : null;
253
+ for (let pointIndex = 1; pointIndex < metadata.pointCount; pointIndex++) {
254
+ const recordOffset = pointIndex * pointRecordLength;
255
+ const record = rawBytes.subarray(recordOffset, recordOffset + pointRecordLength);
256
+ pointEncoder.encode(readPoint10(record, 0));
257
+ gpsTimeEncoder?.encode(readFloat64(record, 20));
258
+ rgbEncoder?.encode(readRgb(record, rgbOffset));
259
+ wavePacketEncoder?.encode(readWavePacket(record, wavePacketOffset));
260
+ extraBytesEncoder?.encode(record.subarray(baseRecordLength, pointRecordLength));
261
+ }
262
+ return concatenateUint8Arrays([firstRecord, encoder.finish()]);
263
+ }
264
+ /** Encode the interleaved arithmetic Point10 LASzip item. */
265
+ class Point10LayerEncoder {
266
+ encoder;
267
+ changedValuesModel = new ArithmeticModel(64);
268
+ bitByteModels = createModels(256, 256);
269
+ classificationModels = createModels(256, 256);
270
+ scanAngleRankModels = createModels(2, 256);
271
+ userDataModels = createModels(256, 256);
272
+ intensityCompressor;
273
+ pointSourceIdCompressor;
274
+ xDifferenceCompressor;
275
+ yDifferenceCompressor;
276
+ zCompressor;
277
+ lastIntensity = new Array(16).fill(0);
278
+ lastHeight = new Array(8).fill(0);
279
+ lastXDifferenceMedian = Array.from({ length: 16 }, () => new StreamingMedian());
280
+ lastYDifferenceMedian = Array.from({ length: 16 }, () => new StreamingMedian());
281
+ last;
282
+ constructor(encoder, firstPoint) {
283
+ this.encoder = encoder;
284
+ this.last = { ...firstPoint };
285
+ this.intensityCompressor = new IntegerCompressor(encoder, 16, 4);
286
+ this.pointSourceIdCompressor = new IntegerCompressor(encoder, 16, 1);
287
+ this.xDifferenceCompressor = new IntegerCompressor(encoder, 32, 2);
288
+ this.yDifferenceCompressor = new IntegerCompressor(encoder, 32, 22);
289
+ this.zCompressor = new IntegerCompressor(encoder, 32, 20);
290
+ }
291
+ /** Encode one Point10 record after the first raw record. */
292
+ encode(point) {
293
+ const lastPoint = this.last;
294
+ const returnNumber = point.bitByte & 7;
295
+ const numberOfReturns = (point.bitByte >> 3) & 7;
296
+ const context = NUMBER_RETURN_MAP_10_CONTEXT[numberOfReturns][returnNumber];
297
+ const levelContext = NUMBER_RETURN_LEVEL_10_CONTEXT[numberOfReturns][returnNumber];
298
+ const changedValues = (point.bitByte !== lastPoint.bitByte ? 1 << 5 : 0) |
299
+ (point.intensity !== this.lastIntensity[context] ? 1 << 4 : 0) |
300
+ (point.classification !== lastPoint.classification ? 1 << 3 : 0) |
301
+ (point.scanAngleRank !== lastPoint.scanAngleRank ? 1 << 2 : 0) |
302
+ (point.userData !== lastPoint.userData ? 1 << 1 : 0) |
303
+ (point.pointSourceId !== lastPoint.pointSourceId ? 1 : 0);
304
+ this.encoder.encodeSymbol(this.changedValuesModel, changedValues);
305
+ if (changedValues & (1 << 5)) {
306
+ this.encoder.encodeSymbol(this.bitByteModels[lastPoint.bitByte], point.bitByte);
307
+ }
308
+ if (changedValues & (1 << 4)) {
309
+ this.intensityCompressor.compress(this.lastIntensity[context], point.intensity, context < 3 ? context : 3);
310
+ this.lastIntensity[context] = point.intensity;
311
+ }
312
+ if (changedValues & (1 << 3)) {
313
+ this.encoder.encodeSymbol(this.classificationModels[lastPoint.classification], point.classification);
314
+ }
315
+ if (changedValues & (1 << 2)) {
316
+ this.encoder.encodeSymbol(this.scanAngleRankModels[(point.bitByte >> 6) & 1], foldInt8(point.scanAngleRank - lastPoint.scanAngleRank));
317
+ }
318
+ if (changedValues & (1 << 1)) {
319
+ this.encoder.encodeSymbol(this.userDataModels[lastPoint.userData], point.userData);
320
+ }
321
+ if (changedValues & 1) {
322
+ this.pointSourceIdCompressor.compress(lastPoint.pointSourceId, point.pointSourceId);
323
+ }
324
+ const xMedian = this.lastXDifferenceMedian[context].get();
325
+ const xDifference = toInt32(point.x - lastPoint.x);
326
+ this.xDifferenceCompressor.compress(xMedian, xDifference, numberOfReturns === 1 ? 1 : 0);
327
+ this.lastXDifferenceMedian[context].add(xDifference);
328
+ const yMedian = this.lastYDifferenceMedian[context].get();
329
+ const xKbits = Math.min(this.xDifferenceCompressor.k, 20) & ~1;
330
+ const yDifference = toInt32(point.y - lastPoint.y);
331
+ this.yDifferenceCompressor.compress(yMedian, yDifference, (numberOfReturns === 1 ? 1 : 0) + xKbits);
332
+ this.lastYDifferenceMedian[context].add(yDifference);
333
+ const zKbits = Math.min((this.xDifferenceCompressor.k + this.yDifferenceCompressor.k) >> 1, 18) & ~1;
334
+ this.zCompressor.compress(this.lastHeight[levelContext], point.z, (numberOfReturns === 1 ? 1 : 0) + zKbits);
335
+ this.lastHeight[levelContext] = point.z;
336
+ this.last = { ...point };
337
+ }
338
+ }
339
+ /** Encode the legacy LASzip GPS-time item on the shared arithmetic stream. */
340
+ class GpsTime10LayerEncoder {
341
+ encoder;
342
+ gpsTimeMultiModel;
343
+ gpsTime0DiffModel;
344
+ gpsTime;
345
+ lastGpsTime;
346
+ lastGpsTimeDifference = [0, 0, 0, 0];
347
+ multiExtremeCounter = [0, 0, 0, 0];
348
+ lastGpsSequence = 0;
349
+ nextGpsSequence = 0;
350
+ /** Initialize GPS prediction state from the first raw timestamp. */
351
+ constructor(encoder, firstGpsTime) {
352
+ this.encoder = encoder;
353
+ this.gpsTimeMultiModel = new ArithmeticModel(516);
354
+ this.gpsTime0DiffModel = new ArithmeticModel(6);
355
+ this.gpsTime = new IntegerCompressor(encoder, 32, 9);
356
+ this.lastGpsTime = [firstGpsTime, 0, 0, 0];
357
+ }
358
+ /** Encode one GPS timestamp after the first raw timestamp. */
359
+ encode(gpsTime) {
360
+ const sequence = this.lastGpsSequence;
361
+ const difference64 = float64BitDifference(gpsTime, this.lastGpsTime[sequence]);
362
+ const difference = Number(BigInt.asIntN(32, difference64));
363
+ const differenceFits = difference64 === BigInt(difference);
364
+ if (this.lastGpsTimeDifference[sequence] === 0) {
365
+ if (differenceFits) {
366
+ if (difference === 0) {
367
+ this.encoder.encodeSymbol(this.gpsTime0DiffModel, 0);
368
+ }
369
+ else {
370
+ this.encoder.encodeSymbol(this.gpsTime0DiffModel, 1);
371
+ this.gpsTime.compress(0, difference, 0);
372
+ this.lastGpsTimeDifference[sequence] = difference;
373
+ this.multiExtremeCounter[sequence] = 0;
374
+ }
375
+ }
376
+ else if (this.selectSequence(gpsTime, false)) {
377
+ this.encode(gpsTime);
378
+ return;
379
+ }
380
+ else {
381
+ this.encoder.encodeSymbol(this.gpsTime0DiffModel, 2);
382
+ this.startSequence(gpsTime);
383
+ }
384
+ }
385
+ else if (differenceFits) {
386
+ const lastDifference = this.lastGpsTimeDifference[sequence];
387
+ const multiplier = quantizeFloat32(difference, lastDifference);
388
+ if (multiplier === 1) {
389
+ this.encoder.encodeSymbol(this.gpsTimeMultiModel, 1);
390
+ this.gpsTime.compress(lastDifference, difference, 1);
391
+ this.multiExtremeCounter[sequence] = 0;
392
+ }
393
+ else if (multiplier > 0 && multiplier < GPS_TIME_MULTI) {
394
+ this.encoder.encodeSymbol(this.gpsTimeMultiModel, multiplier);
395
+ this.gpsTime.compress(toInt32(multiplier * lastDifference), difference, multiplier < 10 ? 2 : 3);
396
+ }
397
+ else if (multiplier >= GPS_TIME_MULTI) {
398
+ this.encoder.encodeSymbol(this.gpsTimeMultiModel, GPS_TIME_MULTI);
399
+ this.gpsTime.compress(toInt32(GPS_TIME_MULTI * lastDifference), difference, 4);
400
+ this.recordExtremeDifference(sequence, difference);
401
+ }
402
+ else if (multiplier < 0 && multiplier > GPS_TIME_MULTI_MINUS) {
403
+ this.encoder.encodeSymbol(this.gpsTimeMultiModel, GPS_TIME_MULTI - multiplier);
404
+ this.gpsTime.compress(toInt32(multiplier * lastDifference), difference, 5);
405
+ }
406
+ else if (multiplier < 0) {
407
+ this.encoder.encodeSymbol(this.gpsTimeMultiModel, GPS_TIME_MULTI - GPS_TIME_MULTI_MINUS);
408
+ this.gpsTime.compress(toInt32(GPS_TIME_MULTI_MINUS * lastDifference), difference, 6);
409
+ this.recordExtremeDifference(sequence, difference);
410
+ }
411
+ else {
412
+ this.encoder.encodeSymbol(this.gpsTimeMultiModel, 0);
413
+ this.gpsTime.compress(0, difference, 7);
414
+ this.recordExtremeDifference(sequence, difference);
415
+ }
416
+ }
417
+ else if (this.selectSequence(gpsTime, true)) {
418
+ this.encode(gpsTime);
419
+ return;
420
+ }
421
+ else {
422
+ this.encoder.encodeSymbol(this.gpsTimeMultiModel, GPS_TIME10_MULTI_CODE_FULL);
423
+ this.startSequence(gpsTime);
424
+ }
425
+ this.lastGpsTime[this.lastGpsSequence] = gpsTime;
426
+ }
427
+ selectSequence(gpsTime, hasLastDifference) {
428
+ for (let index = 1; index < 4; index++) {
429
+ const sequence = (this.lastGpsSequence + index) & 3;
430
+ const difference = float64BitDifference(gpsTime, this.lastGpsTime[sequence]);
431
+ if (difference === BigInt.asIntN(32, difference)) {
432
+ this.encoder.encodeSymbol(hasLastDifference ? this.gpsTimeMultiModel : this.gpsTime0DiffModel, hasLastDifference ? GPS_TIME10_MULTI_CODE_FULL + index : index + 2);
433
+ this.lastGpsSequence = sequence;
434
+ return true;
435
+ }
436
+ }
437
+ return false;
438
+ }
439
+ startSequence(gpsTime) {
440
+ const previousBits = float64ToBigUint64(this.lastGpsTime[this.lastGpsSequence]);
441
+ const nextBits = float64ToBigUint64(gpsTime);
442
+ this.gpsTime.compress(Number(BigInt.asIntN(32, previousBits >> 32n)), Number(BigInt.asIntN(32, nextBits >> 32n)), 8);
443
+ this.encoder.writeInt(Number(nextBits & 0xffffffffn));
444
+ this.nextGpsSequence = (this.nextGpsSequence + 1) & 3;
445
+ this.lastGpsSequence = this.nextGpsSequence;
446
+ this.lastGpsTimeDifference[this.lastGpsSequence] = 0;
447
+ this.multiExtremeCounter[this.lastGpsSequence] = 0;
448
+ }
449
+ recordExtremeDifference(sequence, difference) {
450
+ this.multiExtremeCounter[sequence]++;
451
+ if (this.multiExtremeCounter[sequence] > 3) {
452
+ this.multiExtremeCounter[sequence] = 0;
453
+ this.lastGpsTimeDifference[sequence] = difference;
454
+ }
455
+ }
456
+ }
457
+ /** Encode the legacy LASzip RGB item on the shared arithmetic stream. */
458
+ class RGB10LayerEncoder {
459
+ encoder;
460
+ usedModel = new ArithmeticModel(128);
461
+ differenceModels = createModels(6, 256);
462
+ red;
463
+ green;
464
+ blue;
465
+ /** Initialize RGB prediction state from the first raw color. */
466
+ constructor(encoder, firstColor) {
467
+ this.encoder = encoder;
468
+ this.red = firstColor.red;
469
+ this.green = firstColor.green;
470
+ this.blue = firstColor.blue;
471
+ }
472
+ /** Encode one RGB value after the first raw value. */
473
+ encode(color) {
474
+ const lastRed = this.red;
475
+ const lastGreen = this.green;
476
+ const lastBlue = this.blue;
477
+ let symbol = ((color.red & 0xff) !== (lastRed & 0xff) ? 1 : 0) |
478
+ ((color.red & 0xff00) !== (lastRed & 0xff00) ? 2 : 0) |
479
+ ((color.green & 0xff) !== (lastGreen & 0xff) ? 4 : 0) |
480
+ ((color.green & 0xff00) !== (lastGreen & 0xff00) ? 8 : 0) |
481
+ ((color.blue & 0xff) !== (lastBlue & 0xff) ? 16 : 0) |
482
+ ((color.blue & 0xff00) !== (lastBlue & 0xff00) ? 32 : 0);
483
+ if ((color.red & 0xff) !== (color.green & 0xff) ||
484
+ (color.red & 0xff) !== (color.blue & 0xff) ||
485
+ (color.red & 0xff00) !== (color.green & 0xff00) ||
486
+ (color.red & 0xff00) !== (color.blue & 0xff00)) {
487
+ symbol |= 64;
488
+ }
489
+ this.encoder.encodeSymbol(this.usedModel, symbol);
490
+ let lowDifference = 0;
491
+ let highDifference = 0;
492
+ if (symbol & 1) {
493
+ lowDifference = (color.red & 0xff) - (lastRed & 0xff);
494
+ this.encoder.encodeSymbol(this.differenceModels[0], foldUint8(lowDifference));
495
+ }
496
+ if (symbol & 2) {
497
+ highDifference = (color.red >> 8) - (lastRed >> 8);
498
+ this.encoder.encodeSymbol(this.differenceModels[1], foldUint8(highDifference));
499
+ }
500
+ if (symbol & 64) {
501
+ if (symbol & 4) {
502
+ this.encoder.encodeSymbol(this.differenceModels[2], foldUint8((color.green & 0xff) - clampUint8(lowDifference + (lastGreen & 0xff))));
503
+ }
504
+ if (symbol & 16) {
505
+ lowDifference = Math.trunc((lowDifference + (color.green & 0xff) - (lastGreen & 0xff)) / 2);
506
+ this.encoder.encodeSymbol(this.differenceModels[4], foldUint8((color.blue & 0xff) - clampUint8(lowDifference + (lastBlue & 0xff))));
507
+ }
508
+ if (symbol & 8) {
509
+ this.encoder.encodeSymbol(this.differenceModels[3], foldUint8((color.green >> 8) - clampUint8(highDifference + (lastGreen >> 8))));
510
+ }
511
+ if (symbol & 32) {
512
+ highDifference = Math.trunc((highDifference + (color.green >> 8) - (lastGreen >> 8)) / 2);
513
+ this.encoder.encodeSymbol(this.differenceModels[5], foldUint8((color.blue >> 8) - clampUint8(highDifference + (lastBlue >> 8))));
514
+ }
515
+ }
516
+ this.red = color.red;
517
+ this.green = color.green;
518
+ this.blue = color.blue;
519
+ }
520
+ }
521
+ /** Encode the legacy LASzip waveform packet reference item. */
522
+ class WavePacket13LayerEncoder {
523
+ encoder;
524
+ descriptorModel;
525
+ offsetDifferenceModels;
526
+ offsetDifferenceCompressor;
527
+ packetSizeCompressor;
528
+ returnPointCompressor;
529
+ vectorCompressor;
530
+ last;
531
+ lastOffsetDifference = 0;
532
+ lastOffsetDifferenceSymbol = 0;
533
+ /** Initialize waveform prediction state from the first raw packet reference. */
534
+ constructor(encoder, firstPacket) {
535
+ this.encoder = encoder;
536
+ this.descriptorModel = new ArithmeticModel(256);
537
+ this.offsetDifferenceModels = createModels(4, 4);
538
+ this.offsetDifferenceCompressor = new IntegerCompressor(encoder, 32, 1);
539
+ this.packetSizeCompressor = new IntegerCompressor(encoder, 32, 1);
540
+ this.returnPointCompressor = new IntegerCompressor(encoder, 32, 1);
541
+ this.vectorCompressor = new IntegerCompressor(encoder, 32, 3);
542
+ this.last = { ...firstPacket };
543
+ }
544
+ /** Encode one waveform packet reference after the first raw item. */
545
+ encode(packet) {
546
+ const last = this.last;
547
+ this.encoder.encodeSymbol(this.descriptorModel, packet.descriptorIndex);
548
+ let offsetDifferenceSymbol = 0;
549
+ if (packet.offset === last.offset) {
550
+ offsetDifferenceSymbol = 0;
551
+ }
552
+ else if (packet.offset === last.offset + BigInt(last.packetSize)) {
553
+ offsetDifferenceSymbol = 1;
554
+ }
555
+ else {
556
+ const difference = BigInt.asIntN(64, packet.offset - last.offset);
557
+ if (difference === BigInt.asIntN(32, difference)) {
558
+ offsetDifferenceSymbol = 2;
559
+ }
560
+ else {
561
+ offsetDifferenceSymbol = 3;
562
+ }
563
+ }
564
+ this.encoder.encodeSymbol(this.offsetDifferenceModels[this.lastOffsetDifferenceSymbol], offsetDifferenceSymbol);
565
+ this.lastOffsetDifferenceSymbol = offsetDifferenceSymbol;
566
+ if (offsetDifferenceSymbol === 2) {
567
+ const difference = Number(BigInt.asIntN(32, packet.offset - last.offset));
568
+ this.offsetDifferenceCompressor.compress(this.lastOffsetDifference, difference, 0);
569
+ this.lastOffsetDifference = difference;
570
+ }
571
+ if (offsetDifferenceSymbol === 3) {
572
+ this.encoder.writeInt(Number(packet.offset & 0xffffffffn));
573
+ this.encoder.writeInt(Number(packet.offset >> 32n));
574
+ }
575
+ this.packetSizeCompressor.compress(last.packetSize, packet.packetSize, 0);
576
+ this.returnPointCompressor.compress(last.returnPointBits, packet.returnPointBits, 0);
577
+ this.vectorCompressor.compress(last.xBits, packet.xBits, 0);
578
+ this.vectorCompressor.compress(last.yBits, packet.yBits, 1);
579
+ this.vectorCompressor.compress(last.zBits, packet.zBits, 2);
580
+ this.last = { ...packet };
581
+ }
582
+ }
583
+ /** Prediction state for one modern waveform scanner-channel context. */
584
+ class WavePacket14Context {
585
+ /** Last packet reference. */
586
+ packet;
587
+ /** Descriptor arithmetic model. */
588
+ descriptorModel = new ArithmeticModel(256);
589
+ /** Offset selector models. */
590
+ offsetDifferenceModels = createModels(4, 4);
591
+ /** Offset difference compressor. */
592
+ offsetDifferenceCompressor;
593
+ /** Packet-size compressor. */
594
+ packetSizeCompressor;
595
+ /** Return-point compressor. */
596
+ returnPointCompressor;
597
+ /** Vector compressor. */
598
+ vectorCompressor;
599
+ /** Last signed offset difference. */
600
+ lastOffsetDifference = 0;
601
+ /** Last offset selector. */
602
+ lastOffsetDifferenceSymbol = 0;
603
+ /** Whether this context has a packet reference. */
604
+ haveLast = false;
605
+ /** Initialize one modern waveform prediction context. */
606
+ constructor(encoder, packet) {
607
+ this.packet = { ...packet };
608
+ this.offsetDifferenceCompressor = new IntegerCompressor(encoder, 32, 1);
609
+ this.packetSizeCompressor = new IntegerCompressor(encoder, 32, 1);
610
+ this.returnPointCompressor = new IntegerCompressor(encoder, 32, 1);
611
+ this.vectorCompressor = new IntegerCompressor(encoder, 32, 3);
612
+ this.haveLast = true;
613
+ }
614
+ }
615
+ /** Encode the LASzip v3/v4 modern waveform packet reference layer. */
616
+ class WavePacket14LayerEncoder {
617
+ encoder = new ArithmeticEncoder();
618
+ contexts = new Array(4).fill(null);
619
+ itemVersion;
620
+ lastChannel;
621
+ /** Initialize modern waveform coding from the first packet reference. */
622
+ constructor(firstPacket, firstChannel, itemVersion) {
623
+ this.itemVersion = itemVersion;
624
+ this.lastChannel = firstChannel;
625
+ this.contexts[firstChannel] = new WavePacket14Context(this.encoder, firstPacket);
626
+ }
627
+ /** Encode one waveform reference using the Point14 scanner-channel context. */
628
+ encode(packet, scannerChannel) {
629
+ const previousContext = this.contexts[this.lastChannel];
630
+ let targetContext = this.contexts[scannerChannel];
631
+ let codingContext = targetContext;
632
+ if (scannerChannel !== this.lastChannel) {
633
+ if (!targetContext) {
634
+ targetContext = new WavePacket14Context(this.encoder, previousContext.packet);
635
+ this.contexts[scannerChannel] = targetContext;
636
+ codingContext = targetContext;
637
+ }
638
+ else if (this.itemVersion < 4) {
639
+ codingContext = targetContext;
640
+ targetContext = previousContext;
641
+ }
642
+ this.lastChannel = scannerChannel;
643
+ }
644
+ this.encodePacket(codingContext, targetContext, packet);
645
+ }
646
+ /** Finish the independent waveform arithmetic stream. */
647
+ finish() {
648
+ return this.encoder.finish();
649
+ }
650
+ encodePacket(codingContext, targetContext, packet) {
651
+ const last = targetContext.packet;
652
+ this.encoder.encodeSymbol(codingContext.descriptorModel, packet.descriptorIndex);
653
+ let offsetDifferenceSymbol = 0;
654
+ if (packet.offset === last.offset) {
655
+ offsetDifferenceSymbol = 0;
656
+ }
657
+ else if (packet.offset === last.offset + BigInt(last.packetSize)) {
658
+ offsetDifferenceSymbol = 1;
659
+ }
660
+ else if (BigInt.asIntN(64, packet.offset - last.offset) ===
661
+ BigInt.asIntN(32, packet.offset - last.offset)) {
662
+ offsetDifferenceSymbol = 2;
663
+ }
664
+ else {
665
+ offsetDifferenceSymbol = 3;
666
+ }
667
+ this.encoder.encodeSymbol(codingContext.offsetDifferenceModels[codingContext.lastOffsetDifferenceSymbol], offsetDifferenceSymbol);
668
+ codingContext.lastOffsetDifferenceSymbol = offsetDifferenceSymbol;
669
+ if (offsetDifferenceSymbol === 2) {
670
+ const difference = Number(BigInt.asIntN(32, packet.offset - last.offset));
671
+ codingContext.offsetDifferenceCompressor.compress(codingContext.lastOffsetDifference, difference, 0);
672
+ codingContext.lastOffsetDifference = difference;
673
+ }
674
+ else if (offsetDifferenceSymbol === 3) {
675
+ this.encoder.writeInt(Number(packet.offset & 0xffffffffn));
676
+ this.encoder.writeInt(Number(packet.offset >> 32n));
677
+ }
678
+ codingContext.packetSizeCompressor.compress(last.packetSize, packet.packetSize, 0);
679
+ codingContext.returnPointCompressor.compress(last.returnPointBits, packet.returnPointBits, 0);
680
+ codingContext.vectorCompressor.compress(last.xBits, packet.xBits, 0);
681
+ codingContext.vectorCompressor.compress(last.yBits, packet.yBits, 1);
682
+ codingContext.vectorCompressor.compress(last.zBits, packet.zBits, 2);
683
+ targetContext.packet = { ...packet };
684
+ }
685
+ }
686
+ /** Encode the legacy Byte item that carries Extra Bytes values. */
687
+ class Byte10LayerEncoder {
688
+ encoder;
689
+ models;
690
+ last;
691
+ constructor(encoder, firstValues) {
692
+ this.encoder = encoder;
693
+ this.models = createModels(firstValues.byteLength, 256);
694
+ this.last = new Uint8Array(firstValues);
695
+ }
696
+ /** Encode one Extra Bytes value after the first raw value. */
697
+ encode(values) {
698
+ for (let index = 0; index < values.byteLength; index++) {
699
+ const difference = values[index] - this.last[index];
700
+ this.encoder.encodeSymbol(this.models[index], foldUint8(difference));
701
+ this.last[index] = values[index];
702
+ }
703
+ }
704
+ }
705
+ /** Prediction state for one Point14 scanner channel. */
706
+ class Point14Context {
707
+ /** Changed-value models selected by prior return and GPS state. */
708
+ changedValuesModels = createModels(8, 128);
709
+ /** Scanner-channel delta model. */
710
+ scannerChannelModel = new ArithmeticModel(3);
711
+ /** Return-number delta model used when GPS time is unchanged. */
712
+ returnNumberGpsSameModel = new ArithmeticModel(13);
713
+ /** Lazily allocated number-of-returns models. */
714
+ numberReturnsModels = new Array(16).fill(null);
715
+ /** Lazily allocated return-number models. */
716
+ returnNumberModels = new Array(16).fill(null);
717
+ /** Lazily allocated classification models. */
718
+ classificationModels = new Array(64).fill(null);
719
+ /** Lazily allocated flag models. */
720
+ flagModels = new Array(64).fill(null);
721
+ /** Lazily allocated user-data models. */
722
+ userDataModels = new Array(64).fill(null);
723
+ /** GPS multiplier model. */
724
+ gpsTimeMultiplierModel = new ArithmeticModel(515);
725
+ /** GPS zero-difference model. */
726
+ gpsTimeZeroDifferenceModel = new ArithmeticModel(5);
727
+ /** X difference compressor. */
728
+ xDifferenceCompressor;
729
+ /** Y difference compressor. */
730
+ yDifferenceCompressor;
731
+ /** Z value compressor. */
732
+ zCompressor;
733
+ /** Intensity compressor. */
734
+ intensityCompressor;
735
+ /** Scan-angle compressor. */
736
+ scanAngleCompressor;
737
+ /** Point-source ID compressor. */
738
+ pointSourceIdCompressor;
739
+ /** GPS bit-difference compressor. */
740
+ gpsTimeCompressor;
741
+ /** Last X difference medians by return context. */
742
+ lastXDifferenceMedian = Array.from({ length: 12 }, () => new StreamingMedian());
743
+ /** Last Y difference medians by return context. */
744
+ lastYDifferenceMedian = Array.from({ length: 12 }, () => new StreamingMedian());
745
+ /** Last Z value by return level. */
746
+ lastZ;
747
+ /** Last intensity by first/last and GPS context. */
748
+ lastIntensity;
749
+ /** Last GPS time for each interleaved sequence. */
750
+ lastGpsTimeBits;
751
+ /** Last signed GPS bit difference for each sequence. */
752
+ lastGpsTimeDifference = new Array(4).fill(0);
753
+ /** Extreme GPS multiplier counters by sequence. */
754
+ gpsTimeExtremeCounter = new Array(4).fill(0);
755
+ /** Current GPS sequence. */
756
+ lastGpsSequence = 0;
757
+ /** Next GPS sequence replacement slot. */
758
+ nextGpsSequence = 0;
759
+ /** Whether the preceding point changed GPS time. */
760
+ gpsTimeChanged = false;
761
+ /** Last point encoded in this scanner channel. */
762
+ last;
763
+ /** Create scanner-channel state initialized from a preceding point. */
764
+ constructor(point, layers) {
765
+ this.last = { ...point };
766
+ this.xDifferenceCompressor = new IntegerCompressor(layers.xy, 32, 2);
767
+ this.yDifferenceCompressor = new IntegerCompressor(layers.xy, 32, 22);
768
+ this.zCompressor = new IntegerCompressor(layers.z, 32, 20);
769
+ this.intensityCompressor = new IntegerCompressor(layers.intensity, 16, 4);
770
+ this.scanAngleCompressor = new IntegerCompressor(layers.scanAngle, 16, 2);
771
+ this.pointSourceIdCompressor = new IntegerCompressor(layers.pointSourceId, 16, 1);
772
+ this.gpsTimeCompressor = new IntegerCompressor(layers.gpsTime, 32, 9);
773
+ this.lastZ = new Array(8).fill(point.z);
774
+ this.lastIntensity = new Array(8).fill(point.intensity);
775
+ this.lastGpsTimeBits = [point.gpsTimeBits, 0n, 0n, 0n];
776
+ }
777
+ }
778
+ /** Encoder for the nine layered Point14 streams. */
779
+ class Point14LayerEncoder {
780
+ /** Arithmetic encoder for each independent Point14 layer. */
781
+ layers = {
782
+ xy: new ArithmeticEncoder(),
783
+ z: new ArithmeticEncoder(),
784
+ classification: new ArithmeticEncoder(),
785
+ flags: new ArithmeticEncoder(),
786
+ intensity: new ArithmeticEncoder(),
787
+ scanAngle: new ArithmeticEncoder(),
788
+ userData: new ArithmeticEncoder(),
789
+ pointSourceId: new ArithmeticEncoder(),
790
+ gpsTime: new ArithmeticEncoder()
791
+ };
792
+ /** Scanner-channel prediction contexts. */
793
+ contexts = new Array(4).fill(null);
794
+ /** Scanner channel used by the previous point. */
795
+ currentScannerChannel;
796
+ /** Whether each optional Point14 layer changed in this chunk. */
797
+ changed = {
798
+ classification: false,
799
+ flags: false,
800
+ intensity: false,
801
+ scanAngle: false,
802
+ userData: false,
803
+ pointSourceId: false,
804
+ gpsTime: false
805
+ };
806
+ /** Initialize Point14 coding from the raw first point. */
807
+ constructor(firstPoint) {
808
+ this.currentScannerChannel = getScannerChannel(firstPoint);
809
+ this.contexts[this.currentScannerChannel] = new Point14Context(firstPoint, this.layers);
810
+ }
811
+ /** Encode one subsequent Point14 item and return the LASzip v3 item context. */
812
+ encode(point) {
813
+ const previousContext = this.contexts[this.currentScannerChannel];
814
+ let lastPoint = previousContext.last;
815
+ const scannerChannel = getScannerChannel(point);
816
+ if (scannerChannel !== this.currentScannerChannel && this.contexts[scannerChannel]) {
817
+ lastPoint = this.contexts[scannerChannel].last;
818
+ }
819
+ const pointSourceChanged = point.pointSourceId !== lastPoint.pointSourceId;
820
+ const gpsTimeChanged = point.gpsTimeBits !== lastPoint.gpsTimeBits;
821
+ const scanAngleChanged = point.scanAngle !== lastPoint.scanAngle;
822
+ const lastNumberOfReturns = lastPoint.returns >> 4;
823
+ const lastReturnNumber = lastPoint.returns & 0x0f;
824
+ const numberOfReturns = point.returns >> 4;
825
+ const returnNumber = point.returns & 0x0f;
826
+ const previousReturnContext = (lastReturnNumber === 1 ? 1 : 0) |
827
+ (lastReturnNumber >= lastNumberOfReturns ? 2 : 0) |
828
+ (previousContext.gpsTimeChanged ? 4 : 0);
829
+ let changedValues = (scannerChannel !== this.currentScannerChannel ? 1 << 6 : 0) |
830
+ (pointSourceChanged ? 1 << 5 : 0) |
831
+ (gpsTimeChanged ? 1 << 4 : 0) |
832
+ (scanAngleChanged ? 1 << 3 : 0) |
833
+ (numberOfReturns !== lastNumberOfReturns ? 1 << 2 : 0);
834
+ if (returnNumber !== lastReturnNumber) {
835
+ if (returnNumber === (lastReturnNumber + 1) % 16) {
836
+ changedValues |= 1;
837
+ }
838
+ else if (returnNumber === (lastReturnNumber + 15) % 16) {
839
+ changedValues |= 2;
840
+ }
841
+ else {
842
+ changedValues |= 3;
843
+ }
844
+ }
845
+ this.layers.xy.encodeSymbol(previousContext.changedValuesModels[previousReturnContext], changedValues);
846
+ let itemContext = 0;
847
+ if (scannerChannel !== this.currentScannerChannel) {
848
+ const scannerDifference = scannerChannel - this.currentScannerChannel;
849
+ this.layers.xy.encodeSymbol(previousContext.scannerChannelModel, (scannerDifference + 3) % 4);
850
+ this.contexts[scannerChannel] ||= new Point14Context(previousContext.last, this.layers);
851
+ this.currentScannerChannel = scannerChannel;
852
+ itemContext = scannerChannel;
853
+ lastPoint = this.contexts[scannerChannel].last;
854
+ }
855
+ const context = this.contexts[this.currentScannerChannel];
856
+ if (numberOfReturns !== lastNumberOfReturns) {
857
+ let model = context.numberReturnsModels[lastNumberOfReturns];
858
+ if (!model) {
859
+ model = new ArithmeticModel(16);
860
+ context.numberReturnsModels[lastNumberOfReturns] = model;
861
+ }
862
+ this.layers.xy.encodeSymbol(model, numberOfReturns);
863
+ }
864
+ if ((changedValues & 3) === 3) {
865
+ if (gpsTimeChanged) {
866
+ let model = context.returnNumberModels[lastReturnNumber];
867
+ if (!model) {
868
+ model = new ArithmeticModel(16);
869
+ context.returnNumberModels[lastReturnNumber] = model;
870
+ }
871
+ this.layers.xy.encodeSymbol(model, returnNumber);
872
+ }
873
+ else {
874
+ const returnDifference = returnNumber - lastReturnNumber;
875
+ this.layers.xy.encodeSymbol(context.returnNumberGpsSameModel, (returnDifference + 14) % 16);
876
+ }
877
+ }
878
+ const returnMap = NUMBER_RETURN_MAP_6_CONTEXT[numberOfReturns][returnNumber];
879
+ const returnLevel = NUMBER_RETURN_LEVEL_8_CONTEXT[numberOfReturns][returnNumber];
880
+ const currentReturnContext = (returnNumber === 1 ? 2 : 0) | (returnNumber >= numberOfReturns ? 1 : 0);
881
+ const xyContext = (returnMap << 1) | (gpsTimeChanged ? 1 : 0);
882
+ const xMedian = context.lastXDifferenceMedian[xyContext].get();
883
+ const xDifference = toInt32(point.x - lastPoint.x);
884
+ context.xDifferenceCompressor.compress(xMedian, xDifference, numberOfReturns === 1 ? 1 : 0);
885
+ context.lastXDifferenceMedian[xyContext].add(xDifference);
886
+ const yMedian = context.lastYDifferenceMedian[xyContext].get();
887
+ const yDifference = toInt32(point.y - lastPoint.y);
888
+ const yContext = (numberOfReturns === 1 ? 1 : 0) | (Math.min(context.xDifferenceCompressor.k, 20) & ~1);
889
+ context.yDifferenceCompressor.compress(yMedian, yDifference, yContext);
890
+ context.lastYDifferenceMedian[xyContext].add(yDifference);
891
+ const zContext = (numberOfReturns === 1 ? 1 : 0) |
892
+ (Math.min((context.xDifferenceCompressor.k + context.yDifferenceCompressor.k) >> 1, 18) & ~1);
893
+ context.zCompressor.compress(context.lastZ[returnLevel], point.z, zContext);
894
+ context.lastZ[returnLevel] = point.z;
895
+ if (point.classification !== lastPoint.classification) {
896
+ this.changed.classification = true;
897
+ }
898
+ const classificationContext = ((lastPoint.classification & 0x1f) << 1) | (currentReturnContext === 3 ? 1 : 0);
899
+ let classificationModel = context.classificationModels[classificationContext];
900
+ if (!classificationModel) {
901
+ classificationModel = new ArithmeticModel(256);
902
+ context.classificationModels[classificationContext] = classificationModel;
903
+ }
904
+ this.layers.classification.encodeSymbol(classificationModel, point.classification);
905
+ const lastFlags = mergeFlags(lastPoint);
906
+ const flags = mergeFlags(point);
907
+ if (flags !== lastFlags) {
908
+ this.changed.flags = true;
909
+ }
910
+ let flagModel = context.flagModels[lastFlags];
911
+ if (!flagModel) {
912
+ flagModel = new ArithmeticModel(64);
913
+ context.flagModels[lastFlags] = flagModel;
914
+ }
915
+ this.layers.flags.encodeSymbol(flagModel, flags);
916
+ if (point.intensity !== lastPoint.intensity) {
917
+ this.changed.intensity = true;
918
+ }
919
+ const intensityIndex = (currentReturnContext << 1) | (gpsTimeChanged ? 1 : 0);
920
+ context.intensityCompressor.compress(context.lastIntensity[intensityIndex], point.intensity, currentReturnContext);
921
+ context.lastIntensity[intensityIndex] = point.intensity;
922
+ if (scanAngleChanged) {
923
+ this.changed.scanAngle = true;
924
+ context.scanAngleCompressor.compress(lastPoint.scanAngle, point.scanAngle, gpsTimeChanged ? 1 : 0);
925
+ }
926
+ if (point.userData !== lastPoint.userData) {
927
+ this.changed.userData = true;
928
+ }
929
+ const userDataContext = lastPoint.userData >> 2;
930
+ let userDataModel = context.userDataModels[userDataContext];
931
+ if (!userDataModel) {
932
+ userDataModel = new ArithmeticModel(256);
933
+ context.userDataModels[userDataContext] = userDataModel;
934
+ }
935
+ this.layers.userData.encodeSymbol(userDataModel, point.userData);
936
+ if (pointSourceChanged) {
937
+ this.changed.pointSourceId = true;
938
+ context.pointSourceIdCompressor.compress(lastPoint.pointSourceId, point.pointSourceId);
939
+ }
940
+ if (gpsTimeChanged) {
941
+ this.changed.gpsTime = true;
942
+ this.encodeGpsTime(context, point.gpsTimeBits);
943
+ }
944
+ copyPoint14(context.last, point);
945
+ context.gpsTimeChanged = gpsTimeChanged;
946
+ return itemContext;
947
+ }
948
+ /** Finish Point14 arithmetic streams in LASzip layer order. */
949
+ finish() {
950
+ return [
951
+ this.layers.xy.finish(),
952
+ this.layers.z.finish(),
953
+ this.changed.classification ? this.layers.classification.finish() : new Uint8Array(0),
954
+ this.changed.flags ? this.layers.flags.finish() : new Uint8Array(0),
955
+ this.changed.intensity ? this.layers.intensity.finish() : new Uint8Array(0),
956
+ this.changed.scanAngle ? this.layers.scanAngle.finish() : new Uint8Array(0),
957
+ this.changed.userData ? this.layers.userData.finish() : new Uint8Array(0),
958
+ this.changed.pointSourceId ? this.layers.pointSourceId.finish() : new Uint8Array(0),
959
+ this.changed.gpsTime ? this.layers.gpsTime.finish() : new Uint8Array(0)
960
+ ];
961
+ }
962
+ /** Encode one changed GPS time into the active scanner-channel sequence state. */
963
+ encodeGpsTime(context, gpsTimeBits) {
964
+ const sequence = context.lastGpsSequence;
965
+ const difference64 = BigInt.asIntN(64, gpsTimeBits - context.lastGpsTimeBits[sequence]);
966
+ const difference = Number(BigInt.asIntN(32, difference64));
967
+ const differenceFits = difference64 === BigInt(difference);
968
+ if (context.lastGpsTimeDifference[sequence] === 0) {
969
+ if (differenceFits) {
970
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeZeroDifferenceModel, 0);
971
+ context.gpsTimeCompressor.compress(0, difference, 0);
972
+ context.lastGpsTimeDifference[sequence] = difference;
973
+ context.gpsTimeExtremeCounter[sequence] = 0;
974
+ }
975
+ else if (this.selectGpsTimeSequence(context, gpsTimeBits, false)) {
976
+ this.encodeGpsTime(context, gpsTimeBits);
977
+ return;
978
+ }
979
+ else {
980
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeZeroDifferenceModel, 1);
981
+ this.startGpsTimeSequence(context, gpsTimeBits);
982
+ }
983
+ }
984
+ else if (differenceFits) {
985
+ const lastDifference = context.lastGpsTimeDifference[sequence];
986
+ const multiplier = quantizeFloat32(difference, lastDifference);
987
+ if (multiplier === 1) {
988
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeMultiplierModel, 1);
989
+ context.gpsTimeCompressor.compress(lastDifference, difference, 1);
990
+ context.gpsTimeExtremeCounter[sequence] = 0;
991
+ }
992
+ else if (multiplier > 0) {
993
+ if (multiplier < GPS_TIME_MULTI) {
994
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeMultiplierModel, multiplier);
995
+ context.gpsTimeCompressor.compress(toInt32(multiplier * lastDifference), difference, multiplier < 10 ? 2 : 3);
996
+ }
997
+ else {
998
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeMultiplierModel, GPS_TIME_MULTI);
999
+ context.gpsTimeCompressor.compress(toInt32(GPS_TIME_MULTI * lastDifference), difference, 4);
1000
+ this.recordExtremeGpsDifference(context, sequence, difference);
1001
+ }
1002
+ }
1003
+ else if (multiplier < 0) {
1004
+ if (multiplier > GPS_TIME_MULTI_MINUS) {
1005
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeMultiplierModel, GPS_TIME_MULTI - multiplier);
1006
+ context.gpsTimeCompressor.compress(toInt32(multiplier * lastDifference), difference, 5);
1007
+ }
1008
+ else {
1009
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeMultiplierModel, GPS_TIME_MULTI - GPS_TIME_MULTI_MINUS);
1010
+ context.gpsTimeCompressor.compress(toInt32(GPS_TIME_MULTI_MINUS * lastDifference), difference, 6);
1011
+ this.recordExtremeGpsDifference(context, sequence, difference);
1012
+ }
1013
+ }
1014
+ else {
1015
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeMultiplierModel, 0);
1016
+ context.gpsTimeCompressor.compress(0, difference, 7);
1017
+ this.recordExtremeGpsDifference(context, sequence, difference);
1018
+ }
1019
+ }
1020
+ else if (this.selectGpsTimeSequence(context, gpsTimeBits, true)) {
1021
+ this.encodeGpsTime(context, gpsTimeBits);
1022
+ return;
1023
+ }
1024
+ else {
1025
+ this.layers.gpsTime.encodeSymbol(context.gpsTimeMultiplierModel, GPS_TIME_MULTI_CODE_FULL);
1026
+ this.startGpsTimeSequence(context, gpsTimeBits);
1027
+ }
1028
+ context.lastGpsTimeBits[context.lastGpsSequence] = gpsTimeBits;
1029
+ }
1030
+ /** Select an existing GPS sequence whose bit difference fits in 32 bits. */
1031
+ selectGpsTimeSequence(context, gpsTimeBits, hasLastDifference) {
1032
+ for (let index = 1; index < 4; index++) {
1033
+ const sequence = (context.lastGpsSequence + index) & 3;
1034
+ const difference64 = BigInt.asIntN(64, gpsTimeBits - context.lastGpsTimeBits[sequence]);
1035
+ if (difference64 === BigInt.asIntN(32, difference64)) {
1036
+ const symbol = hasLastDifference ? GPS_TIME_MULTI_CODE_FULL + index : index + 1;
1037
+ const model = hasLastDifference
1038
+ ? context.gpsTimeMultiplierModel
1039
+ : context.gpsTimeZeroDifferenceModel;
1040
+ this.layers.gpsTime.encodeSymbol(model, symbol);
1041
+ context.lastGpsSequence = sequence;
1042
+ return true;
1043
+ }
1044
+ }
1045
+ return false;
1046
+ }
1047
+ /** Start a new GPS sequence by writing upper and lower timestamp words. */
1048
+ startGpsTimeSequence(context, gpsTimeBits) {
1049
+ const previousBits = context.lastGpsTimeBits[context.lastGpsSequence];
1050
+ context.gpsTimeCompressor.compress(Number(BigInt.asIntN(32, previousBits >> 32n)), Number(BigInt.asIntN(32, gpsTimeBits >> 32n)), 8);
1051
+ this.layers.gpsTime.writeInt(Number(gpsTimeBits & 0xffffffffn));
1052
+ context.nextGpsSequence = (context.nextGpsSequence + 1) & 3;
1053
+ context.lastGpsSequence = context.nextGpsSequence;
1054
+ context.lastGpsTimeDifference[context.lastGpsSequence] = 0;
1055
+ context.gpsTimeExtremeCounter[context.lastGpsSequence] = 0;
1056
+ }
1057
+ /** Update GPS difference prediction after four consecutive extreme multipliers. */
1058
+ recordExtremeGpsDifference(context, sequence, difference) {
1059
+ context.gpsTimeExtremeCounter[sequence]++;
1060
+ if (context.gpsTimeExtremeCounter[sequence] > 3) {
1061
+ context.lastGpsTimeDifference[sequence] = difference;
1062
+ context.gpsTimeExtremeCounter[sequence] = 0;
1063
+ }
1064
+ }
1065
+ }
1066
+ /** RGB prediction state for one LASzip v3 item context. */
1067
+ class RGB14Context {
1068
+ /** Previous red channel. */
1069
+ red;
1070
+ /** Previous green channel. */
1071
+ green;
1072
+ /** Previous blue channel. */
1073
+ blue;
1074
+ /** Changed-byte mask model. */
1075
+ usedModel = new ArithmeticModel(128);
1076
+ /** Byte correction models. */
1077
+ differenceModels = createModels(6, 256);
1078
+ /** Initialize an RGB context from a previous color. */
1079
+ constructor(color) {
1080
+ this.red = color.red;
1081
+ this.green = color.green;
1082
+ this.blue = color.blue;
1083
+ }
1084
+ }
1085
+ /** Encoder for the layered RGB14 stream. */
1086
+ class RGB14LayerEncoder {
1087
+ /** RGB arithmetic stream. */
1088
+ encoder = new ArithmeticEncoder();
1089
+ /** LASzip v3 item contexts. */
1090
+ contexts = new Array(4).fill(null);
1091
+ /** Item context used by the previous point. */
1092
+ currentContext;
1093
+ /** Whether any RGB channel changed. */
1094
+ changed = false;
1095
+ /** Initialize RGB coding from the first point. */
1096
+ constructor(firstColor, firstContext) {
1097
+ this.currentContext = firstContext;
1098
+ this.contexts[firstContext] = new RGB14Context(firstColor);
1099
+ }
1100
+ /** Encode one RGB item in the Point14-provided item context. */
1101
+ encode(color, itemContext) {
1102
+ let lastContext = this.contexts[this.currentContext];
1103
+ if (itemContext !== this.currentContext) {
1104
+ this.currentContext = itemContext;
1105
+ if (!this.contexts[itemContext]) {
1106
+ this.contexts[itemContext] = new RGB14Context({
1107
+ red: lastContext.red,
1108
+ green: lastContext.green,
1109
+ blue: lastContext.blue
1110
+ });
1111
+ lastContext = this.contexts[itemContext];
1112
+ }
1113
+ }
1114
+ const codingContext = this.contexts[this.currentContext];
1115
+ let symbol = ((color.red & 0xff) !== (lastContext.red & 0xff) ? 1 : 0) |
1116
+ ((color.red & 0xff00) !== (lastContext.red & 0xff00) ? 2 : 0) |
1117
+ ((color.green & 0xff) !== (lastContext.green & 0xff) ? 4 : 0) |
1118
+ ((color.green & 0xff00) !== (lastContext.green & 0xff00) ? 8 : 0) |
1119
+ ((color.blue & 0xff) !== (lastContext.blue & 0xff) ? 16 : 0) |
1120
+ ((color.blue & 0xff00) !== (lastContext.blue & 0xff00) ? 32 : 0);
1121
+ if ((color.red & 0xff) !== (color.green & 0xff) ||
1122
+ (color.red & 0xff) !== (color.blue & 0xff) ||
1123
+ (color.red & 0xff00) !== (color.green & 0xff00) ||
1124
+ (color.red & 0xff00) !== (color.blue & 0xff00)) {
1125
+ symbol |= 64;
1126
+ }
1127
+ this.encoder.encodeSymbol(codingContext.usedModel, symbol);
1128
+ let lowDifference = 0;
1129
+ let highDifference = 0;
1130
+ if (symbol & 1) {
1131
+ lowDifference = (color.red & 0xff) - (lastContext.red & 0xff);
1132
+ this.encoder.encodeSymbol(codingContext.differenceModels[0], foldUint8(lowDifference));
1133
+ }
1134
+ if (symbol & 2) {
1135
+ highDifference = (color.red >> 8) - (lastContext.red >> 8);
1136
+ this.encoder.encodeSymbol(codingContext.differenceModels[1], foldUint8(highDifference));
1137
+ }
1138
+ if (symbol & 64) {
1139
+ if (symbol & 4) {
1140
+ const correction = (color.green & 0xff) - clampUint8(lowDifference + (lastContext.green & 0xff));
1141
+ this.encoder.encodeSymbol(codingContext.differenceModels[2], foldUint8(correction));
1142
+ }
1143
+ if (symbol & 16) {
1144
+ lowDifference = Math.trunc((lowDifference + (color.green & 0xff) - (lastContext.green & 0xff)) / 2);
1145
+ const correction = (color.blue & 0xff) - clampUint8(lowDifference + (lastContext.blue & 0xff));
1146
+ this.encoder.encodeSymbol(codingContext.differenceModels[4], foldUint8(correction));
1147
+ }
1148
+ if (symbol & 8) {
1149
+ const correction = (color.green >> 8) - clampUint8(highDifference + (lastContext.green >> 8));
1150
+ this.encoder.encodeSymbol(codingContext.differenceModels[3], foldUint8(correction));
1151
+ }
1152
+ if (symbol & 32) {
1153
+ highDifference = Math.trunc((highDifference + (color.green >> 8) - (lastContext.green >> 8)) / 2);
1154
+ const correction = (color.blue >> 8) - clampUint8(highDifference + (lastContext.blue >> 8));
1155
+ this.encoder.encodeSymbol(codingContext.differenceModels[5], foldUint8(correction));
1156
+ }
1157
+ }
1158
+ this.changed ||= symbol !== 0;
1159
+ lastContext.red = color.red;
1160
+ lastContext.green = color.green;
1161
+ lastContext.blue = color.blue;
1162
+ }
1163
+ /** Finish the RGB stream, or return an omitted unchanged layer. */
1164
+ finish() {
1165
+ return this.changed ? this.encoder.finish() : new Uint8Array(0);
1166
+ }
1167
+ }
1168
+ /** NIR prediction state for one LASzip v3 item context. */
1169
+ class NIR14Context {
1170
+ /** Previous NIR value. */
1171
+ value;
1172
+ /** Changed-byte mask model. */
1173
+ usedModel = new ArithmeticModel(4);
1174
+ /** Byte correction models. */
1175
+ differenceModels = createModels(2, 256);
1176
+ /** Initialize an NIR context from a previous value. */
1177
+ constructor(value) {
1178
+ this.value = value;
1179
+ }
1180
+ }
1181
+ /** Encoder for the layered NIR14 stream. */
1182
+ class NIR14LayerEncoder {
1183
+ /** NIR arithmetic stream. */
1184
+ encoder = new ArithmeticEncoder();
1185
+ /** LASzip v3 item contexts. */
1186
+ contexts = new Array(4).fill(null);
1187
+ /** Item context used by the previous point. */
1188
+ currentContext;
1189
+ /** Whether any NIR byte changed. */
1190
+ changed = false;
1191
+ /** Initialize NIR coding from the first point. */
1192
+ constructor(firstValue, firstContext) {
1193
+ this.currentContext = firstContext;
1194
+ this.contexts[firstContext] = new NIR14Context(firstValue);
1195
+ }
1196
+ /** Encode one NIR item in the Point14-provided item context. */
1197
+ encode(value, itemContext) {
1198
+ let lastContext = this.contexts[this.currentContext];
1199
+ if (itemContext !== this.currentContext) {
1200
+ this.currentContext = itemContext;
1201
+ if (!this.contexts[itemContext]) {
1202
+ this.contexts[itemContext] = new NIR14Context(lastContext.value);
1203
+ lastContext = this.contexts[itemContext];
1204
+ }
1205
+ }
1206
+ const codingContext = this.contexts[this.currentContext];
1207
+ const symbol = ((value & 0xff) !== (lastContext.value & 0xff) ? 1 : 0) |
1208
+ ((value & 0xff00) !== (lastContext.value & 0xff00) ? 2 : 0);
1209
+ this.encoder.encodeSymbol(codingContext.usedModel, symbol);
1210
+ if (symbol & 1) {
1211
+ this.encoder.encodeSymbol(codingContext.differenceModels[0], foldUint8((value & 0xff) - (lastContext.value & 0xff)));
1212
+ }
1213
+ if (symbol & 2) {
1214
+ this.encoder.encodeSymbol(codingContext.differenceModels[1], foldUint8((value >> 8) - (lastContext.value >> 8)));
1215
+ }
1216
+ this.changed ||= symbol !== 0;
1217
+ lastContext.value = value;
1218
+ }
1219
+ /** Finish the NIR stream, or return an omitted unchanged layer. */
1220
+ finish() {
1221
+ return this.changed ? this.encoder.finish() : new Uint8Array(0);
1222
+ }
1223
+ }
1224
+ /** Extra-byte prediction state for one LASzip v3 item context. */
1225
+ class Byte14Context {
1226
+ /** Previous value for each extra-byte layer. */
1227
+ values;
1228
+ /** Difference model for each extra-byte layer. */
1229
+ models;
1230
+ /** Initialize an extra-byte context from preceding values. */
1231
+ constructor(values) {
1232
+ this.values = values.slice();
1233
+ this.models = createModels(values.byteLength, 256);
1234
+ }
1235
+ }
1236
+ /** Encoder for independent Byte14 extra-byte streams. */
1237
+ class Byte14LayerEncoder {
1238
+ /** Arithmetic stream for each extra-byte offset. */
1239
+ encoders;
1240
+ /** LASzip v3 item contexts. */
1241
+ contexts = new Array(4).fill(null);
1242
+ /** Whether each extra-byte offset changed. */
1243
+ changed;
1244
+ /** Item context used by the previous point. */
1245
+ currentContext;
1246
+ /** Initialize extra-byte coding from the first point. */
1247
+ constructor(firstValues, firstContext) {
1248
+ this.encoders = Array.from({ length: firstValues.byteLength }, () => new ArithmeticEncoder());
1249
+ this.changed = new Array(firstValues.byteLength).fill(false);
1250
+ this.currentContext = firstContext;
1251
+ this.contexts[firstContext] = new Byte14Context(firstValues);
1252
+ }
1253
+ /** Encode extra bytes in the Point14-provided item context. */
1254
+ encode(values, itemContext) {
1255
+ let lastContext = this.contexts[this.currentContext];
1256
+ if (itemContext !== this.currentContext) {
1257
+ this.currentContext = itemContext;
1258
+ if (!this.contexts[itemContext]) {
1259
+ this.contexts[itemContext] = new Byte14Context(lastContext.values);
1260
+ lastContext = this.contexts[itemContext];
1261
+ }
1262
+ }
1263
+ const codingContext = this.contexts[this.currentContext];
1264
+ for (let index = 0; index < values.byteLength; index++) {
1265
+ const difference = values[index] - lastContext.values[index];
1266
+ this.encoders[index].encodeSymbol(codingContext.models[index], foldUint8(difference));
1267
+ if (difference) {
1268
+ this.changed[index] = true;
1269
+ lastContext.values[index] = values[index];
1270
+ }
1271
+ }
1272
+ }
1273
+ /** Finish changed extra-byte streams and omit unchanged offsets. */
1274
+ finish() {
1275
+ return this.encoders.map((encoder, index) => this.changed[index] ? encoder.finish() : new Uint8Array(0));
1276
+ }
1277
+ }
1278
+ /** Validate that raw records can be represented by the supported LASzip item set. */
1279
+ function validateMetadata(rawBytes, metadata) {
1280
+ if ([
1281
+ metadata.point10ItemVersion,
1282
+ metadata.gpsTime11ItemVersion,
1283
+ metadata.rgb12ItemVersion,
1284
+ metadata.byteItemVersion
1285
+ ].some(version => version !== undefined && version !== 2)) {
1286
+ throw new Error('TypeScript LAZ encoder only supports legacy item version 2');
1287
+ }
1288
+ if (!Number.isInteger(metadata.pointCount) || metadata.pointCount < 0) {
1289
+ throw new Error(`Invalid LAZ chunk point count ${metadata.pointCount}`);
1290
+ }
1291
+ const baseLength = POINT_FORMAT_BASE_LENGTHS[metadata.pointDataRecordFormat];
1292
+ if (!baseLength) {
1293
+ throw new Error(`TypeScript LAZ encoder does not support point format ${metadata.pointDataRecordFormat}`);
1294
+ }
1295
+ if (!Number.isInteger(metadata.pointDataRecordLength) ||
1296
+ metadata.pointDataRecordLength < baseLength) {
1297
+ throw new Error(`Invalid point record length ${metadata.pointDataRecordLength} for point format ${metadata.pointDataRecordFormat}`);
1298
+ }
1299
+ if (metadata.point14ItemVersion !== undefined && metadata.point14ItemVersion !== 3) {
1300
+ throw new Error(`TypeScript LAZ encoder only supports Point14 item version 3`);
1301
+ }
1302
+ if (metadata.pointDataRecordFormat >= 7 &&
1303
+ metadata.rgb14ItemVersion !== undefined &&
1304
+ metadata.rgb14ItemVersion !== 3) {
1305
+ throw new Error(`TypeScript LAZ encoder only supports RGB14 item version 3`);
1306
+ }
1307
+ if ((metadata.pointDataRecordFormat === 9 || metadata.pointDataRecordFormat === 10) &&
1308
+ metadata.wavePacketItemVersion !== undefined &&
1309
+ metadata.wavePacketItemVersion !== 3) {
1310
+ throw new Error(`TypeScript LAZ encoder only supports WavePacket14 item version 3`);
1311
+ }
1312
+ if (metadata.pointDataRecordLength > baseLength &&
1313
+ metadata.byte14ItemVersion !== undefined &&
1314
+ metadata.byte14ItemVersion !== 3) {
1315
+ throw new Error(`TypeScript LAZ encoder only supports Byte14 item version 3`);
1316
+ }
1317
+ const expectedByteLength = metadata.pointCount * metadata.pointDataRecordLength;
1318
+ if (rawBytes.byteLength !== expectedByteLength) {
1319
+ throw new Error(`LAZ chunk input has ${rawBytes.byteLength} bytes; expected ${expectedByteLength}`);
1320
+ }
1321
+ }
1322
+ /** Validate one chunk-table entry before integer compression. */
1323
+ function validateChunkTableEntry(chunk) {
1324
+ if (!Number.isInteger(chunk.pointCount) ||
1325
+ chunk.pointCount <= 0 ||
1326
+ chunk.pointCount > 0xffffffff) {
1327
+ throw new Error(`Invalid LAZ chunk point count ${chunk.pointCount}`);
1328
+ }
1329
+ if (!Number.isInteger(chunk.byteLength) ||
1330
+ chunk.byteLength <= 0 ||
1331
+ chunk.byteLength > 0xffffffff) {
1332
+ throw new Error(`Invalid LAZ chunk byte length ${chunk.byteLength}`);
1333
+ }
1334
+ }
1335
+ /** Return LASzip item descriptors for one supported point format. */
1336
+ function getLASzipItems(pointDataRecordFormat, pointDataRecordLength) {
1337
+ const baseLength = POINT_FORMAT_BASE_LENGTHS[pointDataRecordFormat];
1338
+ if (!baseLength || pointDataRecordLength < baseLength) {
1339
+ throw new Error(`Invalid point record length ${pointDataRecordLength} for point format ${pointDataRecordFormat}`);
1340
+ }
1341
+ if (pointDataRecordFormat <= 5) {
1342
+ const legacyItems = [{ type: 6, size: 20 }];
1343
+ if (pointDataRecordFormat === 1 ||
1344
+ pointDataRecordFormat === 3 ||
1345
+ pointDataRecordFormat === 4 ||
1346
+ pointDataRecordFormat === 5) {
1347
+ legacyItems.push({ type: 7, size: 8 });
1348
+ }
1349
+ if (pointDataRecordFormat === 2 || pointDataRecordFormat === 3 || pointDataRecordFormat === 5) {
1350
+ legacyItems.push({ type: 8, size: 6 });
1351
+ }
1352
+ if (pointDataRecordFormat === 4 || pointDataRecordFormat === 5) {
1353
+ legacyItems.push({ type: 9, size: 29, version: 1 });
1354
+ }
1355
+ const legacyExtraByteCount = pointDataRecordLength - baseLength;
1356
+ if (legacyExtraByteCount > 0) {
1357
+ legacyItems.push({ type: 0, size: legacyExtraByteCount });
1358
+ }
1359
+ return legacyItems;
1360
+ }
1361
+ const items = [{ type: 10, size: 30 }];
1362
+ if (pointDataRecordFormat === 7) {
1363
+ items.push({ type: 11, size: 6 });
1364
+ }
1365
+ else if (pointDataRecordFormat === 8) {
1366
+ items.push({ type: 12, size: 8 });
1367
+ }
1368
+ else if (pointDataRecordFormat === 10) {
1369
+ items.push({ type: 12, size: 8 });
1370
+ }
1371
+ if (pointDataRecordFormat === 9 || pointDataRecordFormat === 10) {
1372
+ items.push({ type: 13, size: 29 });
1373
+ }
1374
+ const extraByteCount = pointDataRecordLength - baseLength;
1375
+ if (extraByteCount > 0) {
1376
+ items.push({ type: 14, size: extraByteCount });
1377
+ }
1378
+ return items;
1379
+ }
1380
+ /** Parse a raw LAS 1.4 Point14 item. */
1381
+ function readPoint14(bytes, offset) {
1382
+ const view = new DataView(bytes.buffer, bytes.byteOffset + offset, 30);
1383
+ return {
1384
+ x: view.getInt32(0, true),
1385
+ y: view.getInt32(4, true),
1386
+ z: view.getInt32(8, true),
1387
+ intensity: view.getUint16(12, true),
1388
+ returns: view.getUint8(14),
1389
+ flags: view.getUint8(15),
1390
+ classification: view.getUint8(16),
1391
+ userData: view.getUint8(17),
1392
+ scanAngle: view.getInt16(18, true),
1393
+ pointSourceId: view.getUint16(20, true),
1394
+ gpsTimeBits: view.getBigUint64(22, true)
1395
+ };
1396
+ }
1397
+ /** Parse a raw legacy LAS Point10 item. */
1398
+ function readPoint10(bytes, offset) {
1399
+ const view = new DataView(bytes.buffer, bytes.byteOffset + offset, 20);
1400
+ return {
1401
+ x: view.getInt32(0, true),
1402
+ y: view.getInt32(4, true),
1403
+ z: view.getInt32(8, true),
1404
+ intensity: view.getUint16(12, true),
1405
+ bitByte: view.getUint8(14),
1406
+ classification: view.getUint8(15),
1407
+ scanAngleRank: view.getInt8(16),
1408
+ userData: view.getUint8(17),
1409
+ pointSourceId: view.getUint16(18, true)
1410
+ };
1411
+ }
1412
+ /** Parse one raw RGB14 item. */
1413
+ function readRgb(bytes, offset) {
1414
+ return {
1415
+ red: readUint16(bytes, offset),
1416
+ green: readUint16(bytes, offset + 2),
1417
+ blue: readUint16(bytes, offset + 4)
1418
+ };
1419
+ }
1420
+ /** Parse one raw legacy waveform packet reference. */
1421
+ function readWavePacket(bytes, offset) {
1422
+ const view = new DataView(bytes.buffer, bytes.byteOffset + offset, 29);
1423
+ return {
1424
+ descriptorIndex: view.getUint8(0),
1425
+ offset: view.getBigUint64(1, true),
1426
+ packetSize: view.getUint32(9, true),
1427
+ returnPointBits: view.getInt32(13, true),
1428
+ xBits: view.getInt32(17, true),
1429
+ yBits: view.getInt32(21, true),
1430
+ zBits: view.getInt32(25, true)
1431
+ };
1432
+ }
1433
+ /** Read an IEEE-754 timestamp from a legacy point record. */
1434
+ function readFloat64(bytes, offset) {
1435
+ return new DataView(bytes.buffer, bytes.byteOffset + offset, 8).getFloat64(0, true);
1436
+ }
1437
+ /** Return the signed 64-bit difference between two IEEE-754 timestamps. */
1438
+ function float64BitDifference(value, previousValue) {
1439
+ return BigInt.asIntN(64, float64ToBigUint64(value) - float64ToBigUint64(previousValue));
1440
+ }
1441
+ /** Read the raw IEEE-754 bits of a JavaScript number. */
1442
+ function float64ToBigUint64(value) {
1443
+ const buffer = new ArrayBuffer(8);
1444
+ const view = new DataView(buffer);
1445
+ view.setFloat64(0, value, true);
1446
+ return view.getBigUint64(0, true);
1447
+ }
1448
+ /** Read one little-endian unsigned 16-bit integer. */
1449
+ function readUint16(bytes, offset) {
1450
+ return bytes[offset] | (bytes[offset + 1] << 8);
1451
+ }
1452
+ /** Copy all Point14 fields without replacing context object identity. */
1453
+ function copyPoint14(target, source) {
1454
+ target.x = source.x;
1455
+ target.y = source.y;
1456
+ target.z = source.z;
1457
+ target.intensity = source.intensity;
1458
+ target.returns = source.returns;
1459
+ target.flags = source.flags;
1460
+ target.classification = source.classification;
1461
+ target.userData = source.userData;
1462
+ target.scanAngle = source.scanAngle;
1463
+ target.pointSourceId = source.pointSourceId;
1464
+ target.gpsTimeBits = source.gpsTimeBits;
1465
+ }
1466
+ /** Return the scanner-channel bits from a Point14 flags byte. */
1467
+ function getScannerChannel(point) {
1468
+ return (point.flags >> 4) & 3;
1469
+ }
1470
+ /** Merge Point14 classification and flight-line flags into the LASzip symbol. */
1471
+ function mergeFlags(point) {
1472
+ return ((point.flags >> 2) & 0x30) | (point.flags & 0x0f);
1473
+ }
1474
+ /** Create uniformly initialized arithmetic models. */
1475
+ function createModels(count, symbols) {
1476
+ return Array.from({ length: count }, () => new ArithmeticModel(symbols));
1477
+ }
1478
+ /** Fold an arbitrary signed byte difference into an unsigned byte. */
1479
+ function foldUint8(value) {
1480
+ return value & 0xff;
1481
+ }
1482
+ /** Fold a signed byte correction into the arithmetic symbol range. */
1483
+ function foldInt8(value) {
1484
+ return value & 0xff;
1485
+ }
1486
+ /** Clamp a predictor to the unsigned byte range. */
1487
+ function clampUint8(value) {
1488
+ return Math.min(255, Math.max(0, value));
1489
+ }
1490
+ /** Match LASzip's float32 multiplier calculation and nearest-integer quantization. */
1491
+ function quantizeFloat32(numerator, denominator) {
1492
+ const ratio = Math.fround(Math.fround(numerator) / Math.fround(denominator));
1493
+ return ratio >= 0 ? Math.trunc(ratio + 0.5) : Math.trunc(ratio - 0.5);
1494
+ }
1495
+ /** Return a byte view that preserves an input view's byte range. */
1496
+ function toUint8Array(data) {
1497
+ return data instanceof ArrayBuffer
1498
+ ? new Uint8Array(data)
1499
+ : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
1500
+ }
1501
+ /** Concatenate byte arrays without retaining caller-owned backing buffers. */
1502
+ function concatenateUint8Arrays(chunks) {
1503
+ const totalLength = chunks.reduce((length, chunk) => length + chunk.byteLength, 0);
1504
+ const result = new Uint8Array(totalLength);
1505
+ let offset = 0;
1506
+ for (const chunk of chunks) {
1507
+ result.set(chunk, offset);
1508
+ offset += chunk.byteLength;
1509
+ }
1510
+ return result;
1511
+ }
1512
+ /** Write a fixed-length ASCII string into a DataView. */
1513
+ function writeString(dataView, byteOffset, value, byteLength) {
1514
+ for (let characterIndex = 0; characterIndex < byteLength; characterIndex++) {
1515
+ dataView.setUint8(byteOffset + characterIndex, value.charCodeAt(characterIndex) || 0);
1516
+ }
1517
+ }
1518
+ //# sourceMappingURL=laz-chunk-encoder.js.map