@loaders.gl/scene 5.0.0-beta.1 → 5.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/DRACO-README.md +15 -0
  2. package/README.md +7 -1
  3. package/THIRD-PARTY-NOTICES.md +4 -1
  4. package/dist/dist.dev.js +5708 -4937
  5. package/dist/dist.min.js +24 -24
  6. package/dist/draco/bundled.cjs +37 -0
  7. package/dist/draco/bundled.cjs.map +7 -0
  8. package/dist/draco/bundled.d.ts +6 -0
  9. package/dist/draco/bundled.d.ts.map +1 -0
  10. package/dist/draco/bundled.js +7 -0
  11. package/dist/draco/bundled.js.map +1 -0
  12. package/dist/draco/draco-format.cjs +41 -0
  13. package/dist/draco/draco-format.cjs.map +7 -0
  14. package/dist/draco/draco-format.d.ts +15 -0
  15. package/dist/draco/draco-format.d.ts.map +1 -0
  16. package/dist/draco/draco-format.js +18 -0
  17. package/dist/draco/draco-format.js.map +1 -0
  18. package/dist/draco/draco-javascript-loader-with-parser.cjs +44 -0
  19. package/dist/draco/draco-javascript-loader-with-parser.cjs.map +7 -0
  20. package/dist/draco/draco-javascript-loader-with-parser.d.ts +34 -0
  21. package/dist/draco/draco-javascript-loader-with-parser.d.ts.map +1 -0
  22. package/dist/draco/draco-javascript-loader-with-parser.js +14 -0
  23. package/dist/draco/draco-javascript-loader-with-parser.js.map +1 -0
  24. package/dist/draco/draco-libraries.cjs +61 -0
  25. package/dist/draco/draco-libraries.cjs.map +7 -0
  26. package/dist/draco/draco-libraries.d.ts +28 -0
  27. package/dist/draco/draco-libraries.d.ts.map +1 -0
  28. package/dist/draco/draco-libraries.js +33 -0
  29. package/dist/draco/draco-libraries.js.map +1 -0
  30. package/dist/draco/draco-library-options.cjs +80 -0
  31. package/dist/draco/draco-library-options.cjs.map +7 -0
  32. package/dist/draco/draco-library-options.d.ts +16 -0
  33. package/dist/draco/draco-library-options.d.ts.map +1 -0
  34. package/dist/draco/draco-library-options.js +52 -0
  35. package/dist/draco/draco-library-options.js.map +1 -0
  36. package/dist/draco/draco-loader-options.cjs +37 -0
  37. package/dist/draco/draco-loader-options.cjs.map +7 -0
  38. package/dist/draco/draco-loader-options.d.ts +27 -0
  39. package/dist/draco/draco-loader-options.d.ts.map +1 -0
  40. package/dist/draco/draco-loader-options.js +12 -0
  41. package/dist/draco/draco-loader-options.js.map +1 -0
  42. package/dist/draco/draco-loader-types.cjs +88 -0
  43. package/dist/draco/draco-loader-types.cjs.map +7 -0
  44. package/dist/draco/draco-loader-types.d.ts +69 -0
  45. package/dist/draco/draco-loader-types.d.ts.map +1 -0
  46. package/dist/draco/draco-loader-types.js +54 -0
  47. package/dist/draco/draco-loader-types.js.map +1 -0
  48. package/dist/draco/draco-loader.cjs +51 -0
  49. package/dist/draco/draco-loader.cjs.map +7 -0
  50. package/dist/draco/draco-loader.d.ts +39 -0
  51. package/dist/draco/draco-loader.d.ts.map +1 -0
  52. package/dist/draco/draco-loader.js +22 -0
  53. package/dist/draco/draco-loader.js.map +1 -0
  54. package/dist/draco/draco-wasm-loader-with-parser.cjs +48 -0
  55. package/dist/draco/draco-wasm-loader-with-parser.cjs.map +7 -0
  56. package/dist/draco/draco-wasm-loader-with-parser.d.ts +34 -0
  57. package/dist/draco/draco-wasm-loader-with-parser.d.ts.map +1 -0
  58. package/dist/draco/draco-wasm-loader-with-parser.js +14 -0
  59. package/dist/draco/draco-wasm-loader-with-parser.js.map +1 -0
  60. package/dist/draco/draco-writer.cjs +183 -0
  61. package/dist/draco/draco-writer.cjs.map +7 -0
  62. package/dist/draco/draco-writer.d.ts +97 -0
  63. package/dist/draco/draco-writer.d.ts.map +1 -0
  64. package/dist/draco/draco-writer.js +166 -0
  65. package/dist/draco/draco-writer.js.map +1 -0
  66. package/dist/draco/draco3d/draco3d-types.cjs +76 -0
  67. package/dist/draco/draco3d/draco3d-types.cjs.map +7 -0
  68. package/dist/draco/draco3d/draco3d-types.d.ts +303 -0
  69. package/dist/draco/draco3d/draco3d-types.d.ts.map +1 -0
  70. package/dist/draco/draco3d/draco3d-types.js +47 -0
  71. package/dist/draco/draco3d/draco3d-types.js.map +1 -0
  72. package/dist/draco/draco3d-loader-with-parser.cjs +50 -0
  73. package/dist/draco/draco3d-loader-with-parser.cjs.map +7 -0
  74. package/dist/draco/draco3d-loader-with-parser.d.ts +34 -0
  75. package/dist/draco/draco3d-loader-with-parser.d.ts.map +1 -0
  76. package/dist/draco/draco3d-loader-with-parser.js +21 -0
  77. package/dist/draco/draco3d-loader-with-parser.js.map +1 -0
  78. package/dist/draco/index.cjs +54 -0
  79. package/dist/draco/index.cjs.map +7 -0
  80. package/dist/draco/index.d.ts +13 -0
  81. package/dist/draco/index.d.ts.map +1 -0
  82. package/dist/draco/index.js +13 -0
  83. package/dist/draco/index.js.map +1 -0
  84. package/dist/draco/lib/draco-builder.cjs +660 -0
  85. package/dist/draco/lib/draco-builder.cjs.map +7 -0
  86. package/dist/draco/lib/draco-builder.d.ts +175 -0
  87. package/dist/draco/lib/draco-builder.d.ts.map +1 -0
  88. package/dist/draco/lib/draco-builder.js +612 -0
  89. package/dist/draco/lib/draco-builder.js.map +1 -0
  90. package/dist/draco/lib/draco-library-loader.cjs +47 -0
  91. package/dist/draco/lib/draco-library-loader.cjs.map +7 -0
  92. package/dist/draco/lib/draco-library-loader.d.ts +5 -0
  93. package/dist/draco/lib/draco-library-loader.d.ts.map +1 -0
  94. package/dist/draco/lib/draco-library-loader.js +23 -0
  95. package/dist/draco/lib/draco-library-loader.js.map +1 -0
  96. package/dist/draco/lib/draco-module-loader.cjs +281 -0
  97. package/dist/draco/lib/draco-module-loader.cjs.map +7 -0
  98. package/dist/draco/lib/draco-module-loader.d.ts +25 -0
  99. package/dist/draco/lib/draco-module-loader.d.ts.map +1 -0
  100. package/dist/draco/lib/draco-module-loader.js +220 -0
  101. package/dist/draco/lib/draco-module-loader.js.map +1 -0
  102. package/dist/draco/lib/draco-parser.cjs +598 -0
  103. package/dist/draco/lib/draco-parser.cjs.map +7 -0
  104. package/dist/draco/lib/draco-parser.d.ts +142 -0
  105. package/dist/draco/lib/draco-parser.d.ts.map +1 -0
  106. package/dist/draco/lib/draco-parser.js +595 -0
  107. package/dist/draco/lib/draco-parser.js.map +1 -0
  108. package/dist/draco/lib/draco-types.cjs +19 -0
  109. package/dist/draco/lib/draco-types.cjs.map +7 -0
  110. package/dist/draco/lib/draco-types.d.ts +59 -0
  111. package/dist/draco/lib/draco-types.d.ts.map +1 -0
  112. package/dist/draco/lib/draco-types.js +5 -0
  113. package/dist/draco/lib/draco-types.js.map +1 -0
  114. package/dist/draco/lib/parse-draco.cjs +59 -0
  115. package/dist/draco/lib/parse-draco.cjs.map +7 -0
  116. package/dist/draco/lib/parse-draco.d.ts +22 -0
  117. package/dist/draco/lib/parse-draco.d.ts.map +1 -0
  118. package/dist/draco/lib/parse-draco.js +32 -0
  119. package/dist/draco/lib/parse-draco.js.map +1 -0
  120. package/dist/draco/lib/utils/get-draco-schema.cjs +74 -0
  121. package/dist/draco/lib/utils/get-draco-schema.cjs.map +7 -0
  122. package/dist/draco/lib/utils/get-draco-schema.d.ts +7 -0
  123. package/dist/draco/lib/utils/get-draco-schema.d.ts.map +1 -0
  124. package/dist/draco/lib/utils/get-draco-schema.js +45 -0
  125. package/dist/draco/lib/utils/get-draco-schema.js.map +1 -0
  126. package/dist/draco/lib/utils/version.cjs +31 -0
  127. package/dist/draco/lib/utils/version.cjs.map +7 -0
  128. package/dist/draco/lib/utils/version.d.ts +2 -0
  129. package/dist/draco/lib/utils/version.d.ts.map +1 -0
  130. package/dist/draco/lib/utils/version.js +8 -0
  131. package/dist/draco/lib/utils/version.js.map +1 -0
  132. package/dist/draco/unbundled.cjs +33 -0
  133. package/dist/draco/unbundled.cjs.map +7 -0
  134. package/dist/draco/unbundled.d.ts +3 -0
  135. package/dist/draco/unbundled.d.ts.map +1 -0
  136. package/dist/draco/unbundled.js +5 -0
  137. package/dist/draco/unbundled.js.map +1 -0
  138. package/dist/draco/workers/draco-worker-node.cjs +8 -0
  139. package/dist/draco/workers/draco-worker-node.cjs.map +7 -0
  140. package/dist/draco/workers/draco-worker-node.d.ts +2 -0
  141. package/dist/draco/workers/draco-worker-node.d.ts.map +1 -0
  142. package/dist/draco/workers/draco-worker-node.js +9 -0
  143. package/dist/draco/workers/draco-worker-node.js.map +1 -0
  144. package/dist/draco/workers/draco-worker.cjs +7 -0
  145. package/dist/draco/workers/draco-worker.cjs.map +7 -0
  146. package/dist/draco/workers/draco-worker.d.ts +2 -0
  147. package/dist/draco/workers/draco-worker.d.ts.map +1 -0
  148. package/dist/draco/workers/draco-worker.js +7 -0
  149. package/dist/draco/workers/draco-worker.js.map +1 -0
  150. package/dist/draco/workers/draco-writer-worker-node.cjs +11 -0
  151. package/dist/draco/workers/draco-writer-worker-node.cjs.map +7 -0
  152. package/dist/draco/workers/draco-writer-worker-node.d.cts +2 -0
  153. package/dist/draco/workers/draco-writer-worker-node.d.cts.map +1 -0
  154. package/dist/draco/workers/draco-writer-worker-node.d.ts +2 -0
  155. package/dist/draco/workers/draco-writer-worker-node.d.ts.map +1 -0
  156. package/dist/draco/workers/draco-writer-worker-node.js +9 -0
  157. package/dist/draco/workers/draco-writer-worker-node.js.map +1 -0
  158. package/dist/draco/workers/draco-writer-worker.cjs +10 -0
  159. package/dist/draco/workers/draco-writer-worker.cjs.map +7 -0
  160. package/dist/draco/workers/draco-writer-worker.d.ts +2 -0
  161. package/dist/draco/workers/draco-writer-worker.d.ts.map +1 -0
  162. package/dist/draco/workers/draco-writer-worker.js +7 -0
  163. package/dist/draco/workers/draco-writer-worker.js.map +1 -0
  164. package/dist/draco-javascript-loader.cjs +25 -0
  165. package/dist/draco-javascript-loader.cjs.map +7 -0
  166. package/dist/draco-javascript-loader.d.ts +2 -0
  167. package/dist/draco-javascript-loader.d.ts.map +1 -0
  168. package/dist/draco-javascript-loader.js +3 -0
  169. package/dist/draco-javascript-loader.js.map +1 -0
  170. package/dist/draco-library-options.cjs +36 -0
  171. package/dist/draco-library-options.cjs.map +7 -0
  172. package/dist/draco-library-options.d.ts +3 -0
  173. package/dist/draco-library-options.d.ts.map +1 -0
  174. package/dist/draco-library-options.js +4 -0
  175. package/dist/draco-library-options.js.map +1 -0
  176. package/dist/draco-loader-types.cjs +25 -0
  177. package/dist/draco-loader-types.cjs.map +7 -0
  178. package/dist/draco-loader-types.d.ts +2 -0
  179. package/dist/draco-loader-types.d.ts.map +1 -0
  180. package/dist/draco-loader-types.js +3 -0
  181. package/dist/draco-loader-types.js.map +1 -0
  182. package/dist/draco-loader.cjs +25 -0
  183. package/dist/draco-loader.cjs.map +7 -0
  184. package/dist/draco-loader.d.ts +2 -0
  185. package/dist/draco-loader.d.ts.map +1 -0
  186. package/dist/draco-loader.js +3 -0
  187. package/dist/draco-loader.js.map +1 -0
  188. package/dist/draco-wasm-loader.cjs +25 -0
  189. package/dist/draco-wasm-loader.cjs.map +7 -0
  190. package/dist/draco-wasm-loader.d.ts +2 -0
  191. package/dist/draco-wasm-loader.d.ts.map +1 -0
  192. package/dist/draco-wasm-loader.js +3 -0
  193. package/dist/draco-wasm-loader.js.map +1 -0
  194. package/dist/draco-worker-node.js +28279 -0
  195. package/dist/draco-worker-node.js.map +7 -0
  196. package/dist/draco-worker.js +18145 -0
  197. package/dist/draco-worker.js.map +7 -0
  198. package/dist/draco-writer-worker-node.cjs +27521 -0
  199. package/dist/draco-writer-worker-node.cjs.map +7 -0
  200. package/dist/draco-writer-worker.js +17339 -0
  201. package/dist/draco-writer-worker.js.map +7 -0
  202. package/dist/draco-writer.cjs +25 -0
  203. package/dist/draco-writer.cjs.map +7 -0
  204. package/dist/draco-writer.d.ts +2 -0
  205. package/dist/draco-writer.d.ts.map +1 -0
  206. package/dist/draco-writer.js +3 -0
  207. package/dist/draco-writer.js.map +1 -0
  208. package/dist/draco3d-loader.cjs +25 -0
  209. package/dist/draco3d-loader.cjs.map +7 -0
  210. package/dist/draco3d-loader.d.ts +2 -0
  211. package/dist/draco3d-loader.d.ts.map +1 -0
  212. package/dist/draco3d-loader.js +3 -0
  213. package/dist/draco3d-loader.js.map +1 -0
  214. package/dist/glb-loader-types.cjs +61 -0
  215. package/dist/glb-loader-types.cjs.map +7 -0
  216. package/dist/glb-loader-types.d.ts +2 -0
  217. package/dist/glb-loader-types.d.ts.map +1 -0
  218. package/dist/glb-loader-types.js +2 -0
  219. package/dist/glb-loader-types.js.map +1 -0
  220. package/dist/glb-loader.cjs +48 -0
  221. package/dist/glb-loader.cjs.map +7 -0
  222. package/dist/glb-loader.d.ts +2 -0
  223. package/dist/glb-loader.d.ts.map +1 -0
  224. package/dist/glb-loader.js +2 -0
  225. package/dist/glb-loader.js.map +1 -0
  226. package/dist/glb-writer.cjs +53 -0
  227. package/dist/glb-writer.cjs.map +7 -0
  228. package/dist/glb-writer.d.ts +2 -0
  229. package/dist/glb-writer.d.ts.map +1 -0
  230. package/dist/glb-writer.js +2 -0
  231. package/dist/glb-writer.js.map +1 -0
  232. package/dist/gltf/glb-loader-types.cjs +1 -1
  233. package/dist/gltf/glb-loader-types.cjs.map +2 -2
  234. package/dist/gltf/glb-loader-types.d.ts +2 -2
  235. package/dist/gltf/glb-loader-types.js +1 -1
  236. package/dist/gltf/glb-loader-types.js.map +1 -1
  237. package/dist/gltf/gltf-loader-types.cjs +1 -1
  238. package/dist/gltf/gltf-loader-types.cjs.map +2 -2
  239. package/dist/gltf/gltf-loader-types.d.ts +5 -5
  240. package/dist/gltf/gltf-loader-types.d.ts.map +1 -1
  241. package/dist/gltf/gltf-loader-types.js +1 -1
  242. package/dist/gltf/gltf-loader-types.js.map +1 -1
  243. package/dist/gltf/gltf-loader.cjs.map +1 -1
  244. package/dist/gltf/gltf-loader.d.ts +4 -4
  245. package/dist/gltf/gltf-loader.d.ts.map +1 -1
  246. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +12 -2
  247. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +2 -2
  248. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +1 -1
  249. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -1
  250. package/dist/gltf/lib/encoders/encode-gltf-draco.js +1 -1
  251. package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -1
  252. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +2 -2
  253. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +2 -2
  254. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  255. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +1 -1
  256. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  257. package/dist/gltf/lib/parsers/parse-gltf.cjs +2 -2
  258. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +3 -3
  259. package/dist/gltf/lib/parsers/parse-gltf.js +5 -5
  260. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
  261. package/dist/gltf/lib/types/gltf-zod-schema.d.ts +1 -1
  262. package/dist/gltf/lib/utils/version.cjs +1 -1
  263. package/dist/gltf/lib/utils/version.js +1 -1
  264. package/dist/gltf-loader-types.cjs +73 -0
  265. package/dist/gltf-loader-types.cjs.map +7 -0
  266. package/dist/gltf-loader-types.d.ts +2 -0
  267. package/dist/gltf-loader-types.d.ts.map +1 -0
  268. package/dist/gltf-loader-types.js +2 -0
  269. package/dist/gltf-loader-types.js.map +1 -0
  270. package/dist/gltf-loader.cjs +48 -0
  271. package/dist/gltf-loader.cjs.map +7 -0
  272. package/dist/gltf-loader.d.ts +2 -0
  273. package/dist/gltf-loader.d.ts.map +1 -0
  274. package/dist/gltf-loader.js +2 -0
  275. package/dist/gltf-loader.js.map +1 -0
  276. package/dist/gltf-source.cjs +238 -0
  277. package/dist/gltf-source.cjs.map +7 -0
  278. package/dist/gltf-source.d.ts +2 -0
  279. package/dist/gltf-source.d.ts.map +1 -0
  280. package/dist/gltf-source.js +2 -0
  281. package/dist/gltf-source.js.map +1 -0
  282. package/dist/gltf-writer.cjs +69 -0
  283. package/dist/gltf-writer.cjs.map +7 -0
  284. package/dist/gltf-writer.d.ts +2 -0
  285. package/dist/gltf-writer.d.ts.map +1 -0
  286. package/dist/gltf-writer.js +2 -0
  287. package/dist/gltf-writer.js.map +1 -0
  288. package/dist/index.cjs +13 -0
  289. package/dist/index.cjs.map +2 -2
  290. package/dist/index.d.ts +4 -0
  291. package/dist/index.d.ts.map +1 -1
  292. package/dist/index.js +3 -0
  293. package/dist/index.js.map +1 -1
  294. package/dist/libs/DRACO-LICENSE +252 -0
  295. package/dist/libs/README.md +20 -0
  296. package/dist/libs/draco_decoder.js +34 -0
  297. package/dist/libs/draco_decoder.mjs +37 -0
  298. package/dist/libs/draco_decoder.wasm +0 -0
  299. package/dist/libs/draco_decoder_gltf.wasm +0 -0
  300. package/dist/libs/draco_encoder.js +98 -0
  301. package/dist/libs/draco_encoder.mjs +101 -0
  302. package/dist/libs/draco_encoder.wasm +0 -0
  303. package/dist/libs/draco_wasm_wrapper.js +117 -0
  304. package/dist/libs/draco_wasm_wrapper.mjs +120 -0
  305. package/dist/libs/draco_wasm_wrapper_gltf.js +116 -0
  306. package/dist/libs/draco_wasm_wrapper_gltf.mjs +119 -0
  307. package/dist/mtl-loader-types.cjs +64 -0
  308. package/dist/mtl-loader-types.cjs.map +7 -0
  309. package/dist/mtl-loader-types.d.ts +2 -0
  310. package/dist/mtl-loader-types.d.ts.map +1 -0
  311. package/dist/mtl-loader-types.js +2 -0
  312. package/dist/mtl-loader-types.js.map +1 -0
  313. package/dist/mtl-loader.cjs +47 -0
  314. package/dist/mtl-loader.cjs.map +7 -0
  315. package/dist/mtl-loader.d.ts +2 -0
  316. package/dist/mtl-loader.d.ts.map +1 -0
  317. package/dist/mtl-loader.js +2 -0
  318. package/dist/mtl-loader.js.map +1 -0
  319. package/dist/obj/mtl-loader-types.cjs +2 -2
  320. package/dist/obj/mtl-loader-types.cjs.map +2 -2
  321. package/dist/obj/mtl-loader-types.d.ts +2 -2
  322. package/dist/obj/mtl-loader-types.js +2 -2
  323. package/dist/obj/mtl-loader-types.js.map +1 -1
  324. package/dist/obj/mtl-loader.cjs +1 -1
  325. package/dist/obj/mtl-loader.cjs.map +2 -2
  326. package/dist/obj/mtl-loader.js +1 -1
  327. package/dist/obj/mtl-loader.js.map +1 -1
  328. package/dist/obj/obj-loader-types.cjs +2 -2
  329. package/dist/obj/obj-loader-types.cjs.map +2 -2
  330. package/dist/obj/obj-loader-types.js +2 -2
  331. package/dist/obj/obj-loader-types.js.map +1 -1
  332. package/dist/obj/obj-writer.cjs +1 -1
  333. package/dist/obj/obj-writer.js +1 -1
  334. package/dist/obj-loader-types.cjs +71 -0
  335. package/dist/obj-loader-types.cjs.map +7 -0
  336. package/dist/obj-loader-types.d.ts +2 -0
  337. package/dist/obj-loader-types.d.ts.map +1 -0
  338. package/dist/obj-loader-types.js +2 -0
  339. package/dist/obj-loader-types.js.map +1 -0
  340. package/dist/obj-loader.cjs +163 -0
  341. package/dist/obj-loader.cjs.map +7 -0
  342. package/dist/obj-loader.d.ts +2 -0
  343. package/dist/obj-loader.d.ts.map +1 -0
  344. package/dist/obj-loader.js +2 -0
  345. package/dist/obj-loader.js.map +1 -0
  346. package/dist/obj-worker.js +204 -71
  347. package/dist/obj-writer.cjs +167 -0
  348. package/dist/obj-writer.cjs.map +7 -0
  349. package/dist/obj-writer.d.ts +2 -0
  350. package/dist/obj-writer.d.ts.map +1 -0
  351. package/dist/obj-writer.js +2 -0
  352. package/dist/obj-writer.js.map +1 -0
  353. package/dist/usd/usd-loader-types.cjs +2 -2
  354. package/dist/usd/usd-loader-types.cjs.map +2 -2
  355. package/dist/usd/usd-loader-types.js +2 -2
  356. package/dist/usd/usd-loader-types.js.map +1 -1
  357. package/dist/usd-loader-types.cjs +69 -0
  358. package/dist/usd-loader-types.cjs.map +7 -0
  359. package/dist/usd-loader-types.d.ts +2 -0
  360. package/dist/usd-loader-types.d.ts.map +1 -0
  361. package/dist/usd-loader-types.js +2 -0
  362. package/dist/usd-loader-types.js.map +1 -0
  363. package/dist/usd-loader.cjs +43 -0
  364. package/dist/usd-loader.cjs.map +7 -0
  365. package/dist/usd-loader.d.ts +2 -0
  366. package/dist/usd-loader.d.ts.map +1 -0
  367. package/dist/usd-loader.js +2 -0
  368. package/dist/usd-loader.js.map +1 -0
  369. package/package.json +130 -71
  370. package/src/draco/bundled.ts +10 -0
  371. package/src/draco/draco-format.ts +20 -0
  372. package/src/draco/draco-javascript-loader-with-parser.ts +26 -0
  373. package/src/draco/draco-libraries.ts +35 -0
  374. package/src/draco/draco-library-options.ts +76 -0
  375. package/src/draco/draco-loader-options.ts +33 -0
  376. package/src/draco/draco-loader-types.ts +78 -0
  377. package/src/draco/draco-loader.ts +45 -0
  378. package/src/draco/draco-wasm-loader-with-parser.ts +31 -0
  379. package/src/draco/draco-writer.ts +252 -0
  380. package/src/draco/draco3d/draco3d-types.ts +498 -0
  381. package/src/draco/draco3d-loader-with-parser.ts +34 -0
  382. package/src/draco/index.ts +46 -0
  383. package/src/draco/lib/draco-builder.ts +935 -0
  384. package/src/draco/lib/draco-library-loader.ts +38 -0
  385. package/src/draco/lib/draco-module-loader.ts +370 -0
  386. package/src/draco/lib/draco-parser.ts +776 -0
  387. package/src/draco/lib/draco-types.ts +72 -0
  388. package/src/draco/lib/parse-draco.ts +51 -0
  389. package/src/draco/lib/utils/get-draco-schema.ts +65 -0
  390. package/src/draco/lib/utils/version.ts +8 -0
  391. package/src/draco/libs/DRACO-LICENSE +252 -0
  392. package/src/draco/libs/README.md +20 -0
  393. package/src/draco/libs/draco_decoder.js +34 -0
  394. package/src/draco/libs/draco_decoder.wasm +0 -0
  395. package/src/draco/libs/draco_decoder_gltf.wasm +0 -0
  396. package/src/draco/libs/draco_encoder.js +98 -0
  397. package/src/draco/libs/draco_encoder.wasm +0 -0
  398. package/src/draco/libs/draco_wasm_wrapper.js +117 -0
  399. package/src/draco/libs/draco_wasm_wrapper_gltf.js +116 -0
  400. package/src/draco/unbundled.ts +6 -0
  401. package/src/draco/workers/draco-worker-node.ts +10 -0
  402. package/src/draco/workers/draco-worker.ts +8 -0
  403. package/src/draco/workers/draco-writer-worker-node.cjs +21 -0
  404. package/src/draco/workers/draco-writer-worker-node.ts +13 -0
  405. package/src/draco/workers/draco-writer-worker.ts +11 -0
  406. package/src/draco-javascript-loader.ts +2 -0
  407. package/src/draco-library-options.ts +6 -0
  408. package/src/draco-loader-types.ts +2 -0
  409. package/src/draco-loader.ts +2 -0
  410. package/src/draco-wasm-loader.ts +2 -0
  411. package/src/draco-writer.ts +2 -0
  412. package/src/draco3d-loader.ts +2 -0
  413. package/src/glb-loader-types.ts +1 -0
  414. package/src/glb-loader.ts +1 -0
  415. package/src/glb-writer.ts +1 -0
  416. package/src/gltf/glb-loader-types.ts +1 -1
  417. package/src/gltf/gltf-loader-types.ts +5 -5
  418. package/src/gltf/gltf-loader.ts +4 -4
  419. package/src/gltf/lib/encoders/encode-gltf-draco.ts +2 -2
  420. package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +2 -1
  421. package/src/gltf/lib/parsers/parse-gltf.ts +5 -5
  422. package/src/gltf-loader-types.ts +1 -0
  423. package/src/gltf-loader.ts +1 -0
  424. package/src/gltf-source.ts +1 -0
  425. package/src/gltf-writer.ts +1 -0
  426. package/src/index.ts +5 -0
  427. package/src/mtl-loader-types.ts +1 -0
  428. package/src/mtl-loader.ts +1 -0
  429. package/src/obj/mtl-loader-types.ts +1 -1
  430. package/src/obj/mtl-loader.ts +1 -1
  431. package/src/obj/obj-loader-types.ts +1 -1
  432. package/src/obj-loader-types.ts +1 -0
  433. package/src/obj-loader.ts +1 -0
  434. package/src/obj-writer.ts +1 -0
  435. package/src/usd/usd-loader-types.ts +1 -1
  436. package/src/usd-loader-types.ts +1 -0
  437. package/src/usd-loader.ts +1 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../core/src/worker-utils/lib/env-utils/version.ts", "../../core/src/worker-utils/lib/env-utils/assert.ts", "../../core/src/worker-utils/lib/env-utils/globals.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/npm-tag.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/env-utils/version.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/env-utils/assert.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/env-utils/globals.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-farm/worker-job.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/node/worker_threads-browser.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-utils/get-loadable-worker-url.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-utils/get-transfer-list.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-farm/worker-thread.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-farm/worker-pool.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-farm/worker-farm.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-farm/worker-body.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/async-queue/async-queue.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-api/get-worker-url.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-api/shared-state.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-utils/get-input-byte-length.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-api/process-on-worker.ts", "../../../node_modules/@math.gl/core/src/worker-utils/lib/worker-api/create-worker.ts", "../../../node_modules/@math.gl/core/src/worker-utils/index.ts", "../../core/src/worker-utils/lib/library-utils/library-utils.ts", "../../core/src/loader-utils/lib/env-utils/globals.ts", "../../core/src/loader-utils/lib/module-utils/initialize-wasm-module.ts", "../../core/src/loader-utils/lib/worker-loader-utils/encode-with-worker.ts", "../../../node_modules/@math.gl/core/src/types/float16.ts", "../../../node_modules/apache-arrow/src/Arrow.dom.ts", "../../../node_modules/tslib/tslib.es6.mjs", "../../../node_modules/apache-arrow/util/buffer.ts", "../../../node_modules/apache-arrow/util/utf8.ts", "../../../node_modules/apache-arrow/util/compat.ts", "../../../node_modules/apache-arrow/io/adapters.ts", "../../../node_modules/apache-arrow/fb/metadata-version.ts", "../../../node_modules/apache-arrow/fb/union-mode.ts", "../../../node_modules/apache-arrow/fb/precision.ts", "../../../node_modules/apache-arrow/fb/date-unit.ts", "../../../node_modules/apache-arrow/fb/time-unit.ts", "../../../node_modules/apache-arrow/fb/interval-unit.ts", "../../../node_modules/flatbuffers/mjs/constants.js", "../../../node_modules/flatbuffers/mjs/utils.js", "../../../node_modules/flatbuffers/mjs/encoding.js", "../../../node_modules/flatbuffers/mjs/byte-buffer.js", "../../../node_modules/flatbuffers/mjs/builder.js", "../../../node_modules/apache-arrow/fb/body-compression-method.ts", "../../../node_modules/apache-arrow/fb/compression-type.ts", "../../../node_modules/apache-arrow/fb/body-compression.ts", "../../../node_modules/apache-arrow/fb/buffer.ts", "../../../node_modules/apache-arrow/fb/field-node.ts", "../../../node_modules/apache-arrow/fb/record-batch.ts", "../../../node_modules/apache-arrow/fb/dictionary-batch.ts", "../../../node_modules/apache-arrow/fb/endianness.ts", "../../../node_modules/apache-arrow/fb/dictionary-kind.ts", "../../../node_modules/apache-arrow/fb/int.ts", "../../../node_modules/apache-arrow/fb/dictionary-encoding.ts", "../../../node_modules/apache-arrow/fb/key-value.ts", "../../../node_modules/apache-arrow/fb/binary.ts", "../../../node_modules/apache-arrow/fb/binary-view.ts", "../../../node_modules/apache-arrow/fb/bool.ts", "../../../node_modules/apache-arrow/fb/date.ts", "../../../node_modules/apache-arrow/fb/decimal.ts", "../../../node_modules/apache-arrow/fb/duration.ts", "../../../node_modules/apache-arrow/fb/fixed-size-binary.ts", "../../../node_modules/apache-arrow/fb/fixed-size-list.ts", "../../../node_modules/apache-arrow/fb/floating-point.ts", "../../../node_modules/apache-arrow/fb/interval.ts", "../../../node_modules/apache-arrow/fb/large-binary.ts", "../../../node_modules/apache-arrow/fb/large-list.ts", "../../../node_modules/apache-arrow/fb/large-utf8.ts", "../../../node_modules/apache-arrow/fb/list.ts", "../../../node_modules/apache-arrow/fb/map.ts", "../../../node_modules/apache-arrow/fb/null.ts", "../../../node_modules/apache-arrow/fb/struct-.ts", "../../../node_modules/apache-arrow/fb/time.ts", "../../../node_modules/apache-arrow/fb/timestamp.ts", "../../../node_modules/apache-arrow/fb/union.ts", "../../../node_modules/apache-arrow/fb/utf8.ts", "../../../node_modules/apache-arrow/fb/utf8-view.ts", "../../../node_modules/apache-arrow/fb/type.ts", "../../../node_modules/apache-arrow/fb/field.ts", "../../../node_modules/apache-arrow/fb/schema.ts", "../../../node_modules/apache-arrow/fb/message-header.ts", "../../../node_modules/apache-arrow/src/enum.ts", "../../../node_modules/apache-arrow/util/vector.ts", "../../../node_modules/apache-arrow/util/pretty.ts", "../../../node_modules/apache-arrow/util/bn.ts", "../../../node_modules/apache-arrow/util/bigint.ts", "../../../node_modules/apache-arrow/src/type.ts", "../../../node_modules/apache-arrow/src/visitor.ts", "../../../node_modules/apache-arrow/util/math.ts", "../../../node_modules/apache-arrow/visitor/set.ts", "../../../node_modules/apache-arrow/row/struct.ts", "../../../node_modules/apache-arrow/visitor/get.ts", "../../../node_modules/apache-arrow/row/map.ts", "../../../node_modules/apache-arrow/util/bit.ts", "../../../node_modules/apache-arrow/src/data.ts", "../../../node_modules/apache-arrow/util/chunk.ts", "../../../node_modules/apache-arrow/visitor/indexof.ts", "../../../node_modules/apache-arrow/visitor/iterator.ts", "../../../node_modules/apache-arrow/src/vector.ts", "../../../node_modules/apache-arrow/builder/valid.ts", "../../../node_modules/apache-arrow/builder/buffer.ts", "../../../node_modules/apache-arrow/src/builder.ts", "../../../node_modules/apache-arrow/fb/block.ts", "../../../node_modules/apache-arrow/fb/footer.ts", "../../../node_modules/apache-arrow/src/schema.ts", "../../../node_modules/apache-arrow/ipc/metadata/file.ts", "../../../node_modules/apache-arrow/fb/message.ts", "../../../node_modules/apache-arrow/visitor/typeassembler.ts", "../../../node_modules/apache-arrow/ipc/metadata/json.ts", "../../../node_modules/apache-arrow/ipc/metadata/message.ts", "../../../node_modules/apache-arrow/io/interfaces.ts", "../../../node_modules/apache-arrow/io/stream.ts", "../../../node_modules/apache-arrow/io/file.ts", "../../../node_modules/apache-arrow/util/int.ts", "../../../node_modules/apache-arrow/util/interval.ts", "../../../node_modules/apache-arrow/visitor/vectorloader.ts", "../../../node_modules/apache-arrow/builder/binary.ts", "../../../node_modules/apache-arrow/builder/largebinary.ts", "../../../node_modules/apache-arrow/builder/bool.ts", "../../../node_modules/apache-arrow/builder/date.ts", "../../../node_modules/apache-arrow/builder/decimal.ts", "../../../node_modules/apache-arrow/builder/dictionary.ts", "../../../node_modules/apache-arrow/builder/fixedsizebinary.ts", "../../../node_modules/apache-arrow/builder/fixedsizelist.ts", "../../../node_modules/apache-arrow/builder/float.ts", "../../../node_modules/apache-arrow/builder/interval.ts", "../../../node_modules/apache-arrow/builder/duration.ts", "../../../node_modules/apache-arrow/builder/int.ts", "../../../node_modules/apache-arrow/builder/list.ts", "../../../node_modules/apache-arrow/builder/largelist.ts", "../../../node_modules/apache-arrow/builder/map.ts", "../../../node_modules/apache-arrow/builder/null.ts", "../../../node_modules/apache-arrow/builder/struct.ts", "../../../node_modules/apache-arrow/builder/timestamp.ts", "../../../node_modules/apache-arrow/builder/time.ts", "../../../node_modules/apache-arrow/builder/union.ts", "../../../node_modules/apache-arrow/builder/utf8.ts", "../../../node_modules/apache-arrow/builder/largeutf8.ts", "../../../node_modules/apache-arrow/builder/binaryview.ts", "../../../node_modules/apache-arrow/builder/utf8view.ts", "../../../node_modules/apache-arrow/visitor/builderctor.ts", "../../../node_modules/apache-arrow/visitor/typecomparator.ts", "../../../node_modules/apache-arrow/src/factories.ts", "../../../node_modules/apache-arrow/util/recordbatch.ts", "../../../node_modules/apache-arrow/src/table.ts", "../../../node_modules/apache-arrow/src/recordbatch.ts", "../../../node_modules/apache-arrow/ipc/message.ts", "../../../node_modules/apache-arrow/ipc/compression/validators.ts", "../../../node_modules/apache-arrow/ipc/compression/registry.ts", "../../../node_modules/apache-arrow/ipc/compression/constants.ts", "../../../node_modules/apache-arrow/ipc/reader.ts", "../../../node_modules/apache-arrow/visitor/vectorassembler.ts", "../../../node_modules/apache-arrow/visitor/jsontypeassembler.ts", "../../../node_modules/apache-arrow/visitor/jsonvectorassembler.ts", "../../../node_modules/apache-arrow/ipc/writer.ts", "../../../node_modules/apache-arrow/io/whatwg/iterable.ts", "../../../node_modules/apache-arrow/io/whatwg/builder.ts", "../../../node_modules/apache-arrow/io/whatwg/reader.ts", "../../../node_modules/apache-arrow/io/whatwg/writer.ts", "../../../node_modules/apache-arrow/ipc/serialization.ts", "../../../node_modules/apache-arrow/util/typecheck.ts", "../../../node_modules/apache-arrow/src/Arrow.ts", "../../core/src/schema-utils/lib/schema/convert-arrow-schema.ts", "../../core/src/schema-utils/lib/mesh/mesh-utils.ts", "../../core/src/schema/float16.ts", "../../core/src/schema-utils/lib/arrow-utils/arrow-fixed-size-list-utils.ts", "../../core/src/schema-utils/lib/mesh/convert-table-to-mesh.ts", "../src/draco/lib/draco-builder.ts", "../src/draco/lib/draco-library-loader.ts", "../src/draco/draco-libraries.ts", "../src/draco/lib/draco-module-loader.ts", "../src/draco/lib/utils/version.ts", "../src/draco/draco-format.ts", "../src/draco/draco-writer.ts", "../src/draco/workers/draco-writer-worker.ts"],
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {NPM_TAG} from '../npm-tag';\n\ndeclare let __VERSION__: string;\n\n/** Return this package's injected version, independent of other loaded versions. */\nfunction getVersion(): string {\n const version = typeof __VERSION__ === 'undefined' ? NPM_TAG : __VERSION__;\n globalThis._loadersgl_ = globalThis._loadersgl_ || {};\n globalThis._loadersgl_.version ||= version;\n return version;\n}\n\n/** Version of this worker-utils build, or the branch's npm fallback tag. */\nexport const VERSION = getVersion();\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\n\n/** Throws an `Error` with the optional `message` if `condition` is falsy */\nexport function assert(condition: any, message?: string): void {\n if (!condition) {\n throw new Error(message || 'loaders.gl assertion failed.');\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Purpose: include this in your module to avoids adding dependencies on\n// micro modules like 'global' and 'is-browser';\n\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\n\nconst self_: {[key: string]: any} = globals.self || globals.window || globals.global || {};\nconst window_: {[key: string]: any} = globals.window || globals.self || globals.global || {};\nconst global_: {[key: string]: any} = globals.global || globals.self || globals.window || {};\nconst document_: {[key: string]: any} = globals.document || {};\n\nexport {self_ as self, window_ as window, global_ as global, document_ as document};\n\n/** true if running in the browser, false if running in Node.js */\nexport const isBrowser: boolean =\n // @ts-ignore process.browser\n typeof process !== 'object' || String(process) !== '[object process]' || process.browser;\n\n/** true if running on a worker thread */\nexport const isWorker: boolean = typeof importScripts === 'function';\n\n/** true if running on a mobile device */\nexport const isMobile: boolean =\n typeof window !== 'undefined' && typeof window.orientation !== 'undefined';\n\n// Extract node major version\nconst matches =\n typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n\n/** Version of Node.js if running under Node, otherwise 0 */\nexport const nodeVersion: number = (matches && parseFloat(matches[1])) || 0;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nexport const NPM_TAG = 'latest';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport {NPM_TAG} from '../npm-tag';\n\ndeclare let __VERSION__: string;\n\n/** Return this package's injected version, independent of other loaded versions. */\nfunction getVersion(): string {\n return typeof __VERSION__ === 'undefined' ? NPM_TAG : __VERSION__;\n}\n\n/** Version of this worker-utils build, or the branch's npm fallback tag. */\nexport const VERSION = getVersion();\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\n// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\n\n/** Throws an `Error` with the optional `message` if `condition` is falsy */\nexport function assert(condition: any, message?: string): void {\n if (!condition) {\n throw new Error(message || 'loaders.gl assertion failed.');\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\n// Purpose: include this in your module to avoids adding dependencies on\n// micro modules like 'global' and 'is-browser';\n\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\n\nconst self_: {[key: string]: any} = globals.self || globals.window || globals.global || {};\nconst window_: {[key: string]: any} = globals.window || globals.self || globals.global || {};\nconst global_: {[key: string]: any} = globals.global || globals.self || globals.window || {};\nconst document_: {[key: string]: any} = globals.document || {};\n\nexport {self_ as self, window_ as window, global_ as global, document_ as document};\n\n/** true if running in the browser, false if running in Node.js */\nexport const isBrowser: boolean =\n // @ts-ignore process.browser\n typeof process !== 'object' || String(process) !== '[object process]' || process.browser;\n\n/** true if running on a worker thread */\nexport const isWorker: boolean = typeof importScripts === 'function';\n\n/** true if running on a mobile device */\nexport const isMobile: boolean =\n typeof window !== 'undefined' && typeof window.orientation !== 'undefined';\n\n// Extract node major version\nconst matches =\n typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n\n/** Version of Node.js if running under Node, otherwise 0 */\nexport const nodeVersion: number = (matches && parseFloat(matches[1])) || 0;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {WorkerMessageType, WorkerMessagePayload} from '../../types';\nimport WorkerThread from './worker-thread';\nimport type {SharedWorkerState} from '../worker-api/shared-state';\n\n/**\n * Represents one Job handled by a WorkerPool or WorkerFarm\n */\nexport default class WorkerJob {\n readonly name: string;\n readonly workerThread: WorkerThread;\n isRunning: boolean = true;\n isCancelled = false;\n sharedState?: SharedWorkerState;\n failed = false;\n postMessageMs = 0;\n executionMs?: number;\n /** Settles only when the worker can be reused, even after cooperative cancellation. */\n readonly completion: Promise<void>;\n private complete: () => void = () => {};\n private processStarted = false;\n private cancellationTimer?: ReturnType<typeof setTimeout>;\n /** Promise that resolves when Job is done */\n readonly result: Promise<any>;\n\n private _resolve: (value: any) => void = () => {};\n private _reject: (reason?: any) => void = () => {};\n\n constructor(jobName: string, workerThread: WorkerThread) {\n this.name = jobName;\n this.workerThread = workerThread;\n this.completion = new Promise(resolve => {\n this.complete = resolve;\n });\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n\n /**\n * Send a message to the job's worker thread\n * @param data any data structure, ideally consisting mostly of transferrable objects\n */\n postMessage(\n type: WorkerMessageType,\n payload: WorkerMessagePayload,\n transferList?: Transferable[]\n ): void {\n if (!this.isRunning || this.isCancelled) return;\n const startedAt = performance.now();\n if (type === 'process' || type === 'process-in-batches' || type === 'preload')\n this.processStarted = true;\n try {\n this.workerThread.postMessage(\n {\n source: 'loaders.gl', // Lets worker ignore unrelated messages\n type,\n payload\n },\n transferList\n );\n } finally {\n this.postMessageMs += performance.now() - startedAt;\n }\n }\n\n /**\n * Call to resolve the `result` Promise with the supplied value\n */\n done(value: any): void {\n if (!this.isRunning) {\n return;\n }\n this.isRunning = false;\n this.executionMs = value?.executionMs;\n clearTimeout(this.cancellationTimer);\n this.complete();\n if (!this.isCancelled) this._resolve(value);\n }\n\n /**\n * Call to reject the `result` Promise with the supplied error\n */\n error(error: unknown): void {\n if (!this.isRunning) {\n return;\n }\n this.isRunning = false;\n this.failed = true;\n if (this.sharedState?.snapshot.cancelled) this.isCancelled = true;\n clearTimeout(this.cancellationTimer);\n this.complete();\n this._reject(error);\n }\n\n /** Reject immediately, but keep the lease until acknowledgement or hard-cancel timeout. */\n cancel(reason?: unknown, timeout = 1000): void {\n if (!this.isRunning || this.isCancelled) return;\n if (!Number.isFinite(timeout) || timeout < 0) {\n this.abort(new RangeError('cancellationTimeout must be finite and nonnegative'));\n return;\n }\n this.isCancelled = true;\n this.sharedState?.cancel();\n const abortReason = arguments.length\n ? reason\n : createAbortError(`Worker job \"${this.name}\" was cancelled`);\n if (!this.processStarted) {\n // Nothing was posted: settle the lease without terminating or waiting for an acknowledgement.\n this.error(abortReason);\n return;\n }\n this._reject(abortReason);\n try {\n this.workerThread.postMessage({source: 'loaders.gl', type: 'cancel', payload: {}}, []);\n this.cancellationTimer = setTimeout(() => this.abort(reason), timeout);\n } catch (error) {\n this.abort(error);\n }\n }\n\n /**\n * Terminates the worker executing this job and rejects its result.\n * @param reason Abort reason supplied by the caller, or a cross-runtime `AbortError`.\n */\n abort(reason?: unknown): void {\n if (!this.isRunning) {\n return;\n }\n this.isCancelled = true;\n this.sharedState?.cancel();\n this.workerThread.destroy();\n this.error(\n arguments.length ? reason : createAbortError(`Worker job \"${this.name}\" was aborted`)\n );\n }\n}\n\n/** Creates an abort error without requiring the DOMException global. */\nfunction createAbortError(message: string): Error {\n const error = new Error(message);\n error.name = 'AbortError';\n return error;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\n/** Browser polyfill for Node.js built-in `worker_threads` module.\n * These fills are non-functional, and just intended to ensure that\n * `import 'worker_threads` doesn't break browser builds.\n * The replacement is done in package.json browser field\n */\nexport class NodeWorker {\n /** Restores the native worker constructor when this browser shim is embedded in a Node bundle. */\n constructor(...arguments_: unknown[]) {\n const runtimeProcess = (\n globalThis as {\n process?: {\n getBuiltinModule?: (specifier: string) => {\n Worker?: new (...workerArguments: unknown[]) => NodeWorker;\n };\n };\n }\n ).process;\n const WorkerConstructor = runtimeProcess?.getBuiltinModule?.('node:worker_threads').Worker;\n if (WorkerConstructor) {\n return new WorkerConstructor(...arguments_);\n }\n }\n\n /** No-op browser fallback matching the native Worker API. */\n terminate() {}\n}\n\nexport type {NodeWorker as NodeWorkerType};\n\nexport const parentPort = null;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport {assert} from '../env-utils/assert';\n\nconst workerURLCache = new Map();\n\n/**\n * Creates a loadable URL from worker source or URL\n * that can be used to create `Worker` instances.\n * Due to CORS issues it may be necessary to wrap a URL in a small importScripts\n * @param props\n * @param props.source Worker source\n * @param props.url Worker URL\n * @returns loadable url\n */\nexport function getLoadableWorkerURL(props: {\n source?: string;\n url?: string;\n workerType?: 'classic' | 'module';\n}) {\n assert((props.source && !props.url) || (!props.source && props.url)); // Either source or url must be defined\n\n if (props.url && props.workerType === 'module') return props.url;\n let workerURL = workerURLCache.get(props.source || props.url);\n if (!workerURL) {\n // Differentiate worker urls from worker source code\n if (props.url) {\n workerURL = getLoadableWorkerURLFromURL(props.url);\n workerURLCache.set(props.url, workerURL);\n }\n\n if (props.source) {\n workerURL = getLoadableWorkerURLFromSource(props.source);\n workerURLCache.set(props.source, workerURL);\n }\n }\n\n assert(workerURL);\n return workerURL;\n}\n\n/**\n * Build a loadable worker URL from worker URL\n * @param url\n * @returns loadable URL\n */\nfunction getLoadableWorkerURLFromURL(url: string): string {\n // A local script url, we can use it to initialize a Worker directly\n if (!url.startsWith('http')) {\n return url;\n }\n\n // A remote script, we need to use `importScripts` to load from different origin\n const workerSource = buildScriptSource(url);\n return getLoadableWorkerURLFromSource(workerSource);\n}\n\n/**\n * Build a loadable worker URL from worker source\n * @param workerSource\n * @returns loadable url\n */\nfunction getLoadableWorkerURLFromSource(workerSource: string): string {\n const blob = new Blob([workerSource], {type: 'application/javascript'});\n return URL.createObjectURL(blob);\n}\n\n/**\n * Per spec, worker cannot be initialized with a script from a different origin\n * However a local worker script can still import scripts from other origins,\n * so we simply build a wrapper script.\n *\n * @param workerUrl\n * @returns source\n */\nfunction buildScriptSource(workerUrl: string): string {\n return `\\\ntry {\n importScripts('${workerUrl}');\n} catch (error) {\n console.error(error);\n throw error;\n}`;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\n// NOTE - there is a copy of this function is both in core and loader-utils\n// core does not need all the utils in loader-utils, just this one.\n\n/**\n * Returns an array of Transferrable objects that can be used with postMessage\n * https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage\n * @param object data to be sent via postMessage\n * @param recursive - not for application use\n * @param transfers - not for application use\n * @returns a transfer list that can be passed to postMessage\n */\nexport function getTransferList(\n object: any,\n recursive: boolean = true,\n transfers?: Set<any>\n): Transferable[] {\n // Make sure that items in the transfer list is unique\n const transfersSet = transfers || new Set();\n\n const seen = new Set<object>();\n function visit(value: any): void {\n if (!value || typeof value !== 'object' || seen.has(value)) return;\n seen.add(value);\n if (isTransferable(value)) transfersSet.add(value);\n else if (ArrayBuffer.isView(value)) {\n if (isTransferable(value.buffer)) transfersSet.add(value.buffer);\n } else if (recursive && value instanceof Map) {\n for (const [key, item] of value) {\n visit(key);\n visit(item);\n }\n } else if (recursive && value instanceof Set) {\n for (const item of value) visit(item);\n } else if (recursive) {\n for (const key of Object.keys(value)) visit(value[key]);\n }\n }\n visit(object);\n\n // If transfers is defined, is internal recursive call\n // Otherwise it's called by the user\n return transfers === undefined ? Array.from(transfersSet) : [];\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Transferable\nfunction isTransferable(object: unknown) {\n if (!object) {\n return false;\n }\n if (object instanceof ArrayBuffer) {\n return true;\n }\n if (typeof MessagePort !== 'undefined' && object instanceof MessagePort) {\n return true;\n }\n if (typeof ImageBitmap !== 'undefined' && object instanceof ImageBitmap) {\n return true;\n }\n // @ts-ignore\n if (typeof OffscreenCanvas !== 'undefined' && object instanceof OffscreenCanvas) {\n return true;\n }\n return false;\n}\n\n/**\n * Recursively drop non serializable values like functions and regexps.\n * @param object\n */\nexport function getTransferListForWriter(object: object | null): object {\n const seen = new Map<object, any>();\n function clone(value: any): any {\n if (typeof value === 'function' || value instanceof RegExp) return {};\n if (!value || typeof value !== 'object') return value;\n if (seen.has(value)) return seen.get(value);\n // Preserve structured-clone built-ins and backing-buffer identity.\n if (\n ArrayBuffer.isView(value) ||\n value instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && value instanceof SharedArrayBuffer) ||\n value instanceof Date ||\n (typeof WebAssembly !== 'undefined' && value instanceof WebAssembly.Module) ||\n isTransferable(value)\n )\n return value;\n const result: any =\n value instanceof Map\n ? new Map()\n : value instanceof Set\n ? new Set()\n : Array.isArray(value)\n ? []\n : {};\n seen.set(value, result);\n if (value instanceof Map) {\n for (const [key, item] of value) result.set(clone(key), clone(item));\n } else if (value instanceof Set) {\n for (const item of value) result.add(clone(item));\n } else {\n for (const key of Object.keys(value)) {\n Object.defineProperty(result, key, {\n value: clone(value[key]),\n enumerable: true,\n writable: true,\n configurable: true\n });\n }\n }\n return result;\n }\n return object === null ? {} : clone(object);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {LoadWorker} from '../../types';\nimport {NodeWorker, type NodeWorkerType} from '../node/worker_threads';\nimport {isBrowser} from '../env-utils/globals';\nimport {assert} from '../env-utils/assert';\nimport {getLoadableWorkerURL} from '../worker-utils/get-loadable-worker-url';\nimport {getTransferList} from '../worker-utils/get-transfer-list';\n\nconst NOOP = () => {};\n\nexport type WorkerThreadProps = {\n /** Human-readable worker name. */\n name: string;\n /** Inline worker source. */\n source?: string;\n /** Worker script URL. */\n url?: string;\n workerType?: 'classic' | 'module';\n /** Lazily resolves the classic worker URL used as a fallback. */\n getUrl?: () => string;\n /** Creates a browser Worker directly. */\n loadWorker?: LoadWorker;\n};\n\n/**\n * Represents one worker thread\n */\nexport default class WorkerThread {\n readonly name: string;\n readonly source: string | undefined;\n readonly url: string | undefined;\n readonly workerType: 'classic' | 'module';\n /** Lazily resolves the classic worker URL used as a fallback. */\n readonly getUrl: (() => string) | undefined;\n /** Creates a browser Worker directly. */\n readonly loadWorker: LoadWorker | undefined;\n terminated: boolean = false;\n readonly creationTimeMs: number;\n startupTimeMs?: number;\n private termination?: Promise<void>;\n private createdAt = performance.now();\n worker: Worker | NodeWorkerType;\n onMessage: (message: any) => void;\n onError: (error: Error) => void;\n\n private _loadableURL: string = '';\n\n /** Checks if workers are supported on this platform */\n static isSupported(): boolean {\n return (\n (typeof Worker !== 'undefined' && isBrowser) ||\n (typeof NodeWorker !== 'undefined' && !isBrowser)\n );\n }\n\n constructor(props: WorkerThreadProps) {\n const {name, source, url, getUrl, loadWorker} = props;\n assert(source || url || getUrl || loadWorker);\n this.name = name;\n this.source = source;\n this.url = url;\n this.workerType = props.workerType ?? 'classic';\n this.getUrl = getUrl;\n this.loadWorker = loadWorker;\n this.onMessage = NOOP;\n // biome-ignore lint/suspicious/noConsole: Preserve upstream worker diagnostics.\n this.onError = error => console.log(error); // eslint-disable-line\n\n const startedAt = performance.now();\n this.worker = isBrowser ? this._createBrowserWorker() : this._createNodeWorker();\n this.creationTimeMs = performance.now() - startedAt;\n }\n\n /**\n * Terminate this worker thread\n * @note Can free up significant memory\n */\n destroy(): Promise<void> {\n this.onMessage = NOOP;\n this.onError = NOOP;\n if (this.terminated) return this.termination ?? Promise.resolve();\n this.terminated = true;\n this.termination = Promise.resolve(this.worker.terminate()).then(() => undefined);\n void this.termination.catch(() => undefined);\n return this.termination;\n }\n\n /** Keeps this worker from preventing Node.js process exit while idle. */\n unref(): void {\n if (!isBrowser && typeof (this.worker as NodeWorkerType).unref === 'function') {\n (this.worker as NodeWorkerType).unref();\n }\n }\n\n /** Keeps this worker alive while it is actively processing a job. */\n ref(): void {\n if (!isBrowser && typeof (this.worker as NodeWorkerType).ref === 'function') {\n (this.worker as NodeWorkerType).ref();\n }\n }\n\n get isRunning() {\n return Boolean(this.onMessage);\n }\n\n /**\n * Send a message to this worker thread\n * @param data any data structure, ideally consisting mostly of transferrable objects\n * @param transferList If not supplied, calculated automatically by traversing data\n */\n postMessage(data: any, transferList?: any[]): void {\n transferList = transferList || getTransferList(data);\n // @ts-ignore\n this.worker.postMessage(data, transferList);\n }\n\n // PRIVATE\n\n /**\n * Generate a standard Error from an ErrorEvent\n * @param event\n */\n _getErrorFromErrorEvent(event: ErrorEvent): Error {\n // Note Error object does not have the expected fields if loading failed completely\n // https://developer.mozilla.org/en-US/docs/Web/API/Worker#Event_handlers\n // https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n let message = 'Failed to load ';\n message += `worker ${this.name} from ${this.url || 'built-in worker factory'}. `;\n if (event.message) {\n message += `${event.message} in `;\n }\n // const hasFilename = event.filename && !event.filename.startsWith('blob:');\n // message += hasFilename ? event.filename : this.source.slice(0, 100);\n if (event.lineno) {\n message += `:${event.lineno}:${event.colno}`;\n }\n return new Error(message);\n }\n\n /**\n * Creates a worker thread on the browser\n */\n _createBrowserWorker(): Worker {\n if (this.loadWorker) {\n try {\n const worker = this.loadWorker();\n if (worker) {\n return this._initializeBrowserWorker(worker);\n }\n } catch (error) {\n if (!this.source && !this.url && !this.getUrl) {\n throw error;\n }\n }\n }\n\n const url = this.url || this.getUrl?.();\n this._loadableURL = getLoadableWorkerURL({\n source: this.source,\n url,\n workerType: this.workerType\n });\n const worker = new Worker(this._loadableURL, {name: this.name, type: this.workerType});\n\n return this._initializeBrowserWorker(worker);\n }\n\n /** Attaches protocol handlers to a browser worker. */\n _initializeBrowserWorker(worker: Worker): Worker {\n worker.onmessage = event => {\n if (!event.data) {\n this.onError(new Error('No data received'));\n } else if (event.data.type === 'ready') {\n this.startupTimeMs = performance.now() - this.createdAt;\n } else {\n this.onMessage(event.data);\n }\n };\n // This callback represents an uncaught exception in the worker thread\n worker.onerror = (error: ErrorEvent): void => {\n const onError = this.onError;\n const reason = this._getErrorFromErrorEvent(error);\n this.destroy();\n onError(reason);\n };\n // TODO - not clear when this would be called, for now just log in case it happens\n // biome-ignore lint/suspicious/noConsole: Preserve upstream worker diagnostics.\n worker.onmessageerror = () => {\n const onError = this.onError;\n this.destroy();\n onError(new Error('Worker message could not be deserialized'));\n }; // eslint-disable-line\n\n return worker;\n }\n\n /**\n * Creates a worker thread in node.js\n * @todo https://nodejs.org/api/async_hooks.html#async-resource-worker-pool\n */\n _createNodeWorker(): NodeWorkerType {\n let worker: NodeWorkerType;\n if (this.url) {\n // Make sure relative URLs start with './'\n const absolute = this.url.includes(':/') || this.url.startsWith('/');\n const url = absolute ? this.url : `./${this.url}`;\n const workerUrl = url.startsWith('file:') ? new URL(url) : url;\n const type = this.url.endsWith('.ts') || this.url.endsWith('.mjs') ? 'module' : 'commonjs';\n // console.log('Starting work from', url);\n // @ts-ignore type is not known\n worker = new NodeWorker(workerUrl, {eval: false, type});\n } else if (this.source) {\n worker = new NodeWorker(this.source, {eval: true});\n } else {\n throw new Error('no worker');\n }\n worker.on('message', data => {\n if (data?.type === 'ready') this.startupTimeMs = performance.now() - this.createdAt;\n else this.onMessage(data);\n });\n worker.on('error', error => {\n this.terminated = true;\n this.onError(error as Error);\n });\n this.termination = new Promise(resolve => worker.on('exit', () => resolve()));\n worker.on('exit', code => {\n if (!this.terminated) {\n this.terminated = true;\n this.onError(new Error(`Worker ${this.name} exited unexpectedly (code ${code})`));\n }\n });\n return worker;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {LoadWorker, WorkerMessageType, WorkerMessagePayload} from '../../types';\nimport {isMobile} from '../env-utils/globals';\nimport WorkerThread from './worker-thread';\nimport WorkerJob from './worker-job';\nimport type {SharedWorkerState} from '../worker-api/shared-state';\nimport type {WorkerJobMetrics, WorkerPoolStats} from '../../types';\n\n/** WorkerPool onDebug Callback Parameters */\ntype OnDebugParameters = {\n message: string;\n worker: string;\n name: string;\n job: string;\n backlog: number;\n workerThread: WorkerThread;\n};\n\n/** WorkerPool Properties */\nexport type WorkerPoolProps = {\n name?: string;\n source?: string; // | Function;\n url?: string;\n /** Browser worker script type; ignored for Node workers. */\n workerType?: 'classic' | 'module';\n /** Lazily resolves a classic worker fallback URL. */\n getUrl?: () => string;\n /** Creates a browser Worker directly. */\n loadWorker?: LoadWorker;\n /** Maximum retained input bytes waiting for a worker; overflow rejects before transfer. */\n maxQueuedJobs?: number;\n maxPendingAdmissions?: number;\n /** Each interval increases a waiting job's effective priority by one. */\n priorityAgingMs?: number;\n onMetrics?: (metrics: WorkerJobMetrics) => void;\n performanceMarks?: boolean;\n maxQueuedBytes?: number;\n /** Maximum reserved input bytes across running jobs. */\n maxInFlightBytes?: number;\n maxConcurrency?: number;\n maxMobileConcurrency?: number;\n onDebug?: (options: OnDebugParameters) => any;\n reuseWorkers?: boolean;\n};\n\n/** Worker-pool target, including values used only to distinguish cached pools. */\nexport type WorkerPoolTarget = WorkerPoolProps & {\n /** Worker name used as the base pool identity. */\n name: string;\n /** Stable identity for a lazily resolved URL. */\n urlKey?: string;\n};\n\n/** Private helper types */\ntype OnMessage = (job: WorkerJob, type: WorkerMessageType, payload: WorkerMessagePayload) => void;\ntype OnError = (job: WorkerJob, error: Error) => void;\n\ntype QueuedJob = {\n name: string;\n inputBytes: number;\n priority: number;\n queuedAt: number;\n sharedState?: SharedWorkerState;\n cancellationMode?: 'terminate' | 'cooperative';\n cancellationTimeout?: number;\n onMessage: OnMessage;\n onError: OnError;\n onStart: (value: any) => void; // Resolve job start promise\n onReject: (reason: unknown) => void; // Reject job start promise\n /** Removes the queued cancellation listener when the job leaves the queue. */\n removeAbortListener: () => void;\n /** Cancels this queued or active job. */\n signal?: AbortSignal;\n};\n\n/** A byte reservation obtained before constructing a large input. */\nexport type WorkerAdmission = {\n readonly inputBytes: number;\n release(): void;\n};\ntype AdmissionWaiter = {\n inputBytes: number;\n resolve: (admission: WorkerAdmission) => void;\n reject: (error: unknown) => void;\n cleanup: () => void;\n};\n\n/**\n * Process multiple data messages with small pool of identical workers\n */\nexport default class WorkerPool {\n name: string = 'unnamed';\n source?: string; // | Function;\n url?: string;\n workerType?: 'classic' | 'module';\n /** Lazily resolves a classic worker fallback URL. */\n getUrl?: () => string;\n /** Creates a browser Worker directly. */\n loadWorker?: LoadWorker;\n maxConcurrency: number = 1;\n maxMobileConcurrency: number = 1;\n onDebug: (options: OnDebugParameters) => any = () => {};\n reuseWorkers: boolean = true;\n\n private props: WorkerPoolProps = {};\n private jobQueue: QueuedJob[] = [];\n private idleQueue: WorkerThread[] = [];\n private activeJobs = new Set<WorkerJob>();\n private startingJobs = 0;\n private count = 0;\n private workers = new Set<WorkerThread>();\n private queuedBytes = 0;\n private inFlightBytes = 0;\n private maxQueuedBytes = Infinity;\n private maxInFlightBytes = Infinity;\n private isDestroyed = false;\n private isClosing = false;\n private closing?: Promise<void>;\n private onDrained?: () => void;\n private destruction?: Promise<void>;\n private maxQueuedJobs = Infinity;\n private maxPendingAdmissions = 128;\n private priorityAgingMs = 1000;\n private reservations = new Set<WorkerAdmission>();\n private admissions: AdmissionWaiter[] = [];\n private reservedBytes = 0;\n private totals = {\n peakQueuedBytes: 0,\n peakInFlightBytes: 0,\n workersCreated: 0,\n workerRestarts: 0,\n completed: 0,\n failed: 0,\n cancelled: 0\n };\n\n /** Snapshot; byte figures describe input buffers, not total heap memory. */\n get stats(): WorkerPoolStats {\n return {\n ...this.totals,\n queuedJobs: this.jobQueue.length,\n activeJobs: this.activeJobs.size,\n queuedBytes: this.queuedBytes + this.reservedBytes,\n inFlightBytes: this.inFlightBytes,\n pendingAdmissions: this.admissions.length,\n reservations: this.reservations.size\n };\n }\n\n /** Wait for an atomic queue reservation before allocating input. Waiting metadata is bounded. */\n reserve(inputBytes: number, options: {signal?: AbortSignal} = {}): Promise<WorkerAdmission> {\n const {signal} = options;\n if (signal?.aborted) return Promise.reject(signal.reason);\n if (this.isDestroyed) return Promise.reject(new Error('Worker pool was destroyed'));\n if (this.isClosing) return Promise.reject(new Error('Worker pool is closing'));\n if (\n !Number.isSafeInteger(inputBytes) ||\n inputBytes < 0 ||\n inputBytes > this.maxQueuedBytes ||\n inputBytes > this.maxInFlightBytes\n ) {\n return Promise.reject(new RangeError('Reservation exceeds worker byte budgets'));\n }\n if (this.maxQueuedJobs < 1 || this.admissions.length >= this.maxPendingAdmissions) {\n return Promise.reject(new RangeError('Worker admission queue is full'));\n }\n return new Promise((resolve, reject) => {\n const abort = () => {\n const index = this.admissions.indexOf(waiter);\n if (index >= 0) this.admissions.splice(index, 1);\n waiter.cleanup();\n reject(signal?.reason);\n this._admit();\n };\n const waiter: AdmissionWaiter = {\n inputBytes,\n resolve,\n reject,\n cleanup: () => signal?.removeEventListener('abort', abort)\n };\n this.admissions.push(waiter);\n signal?.addEventListener('abort', abort, {once: true});\n this._admit();\n });\n }\n\n private _admit(): void {\n while (!this.isDestroyed && !this.isClosing && this.admissions.length) {\n const waiter = this.admissions[0];\n if (waiter.inputBytes > this.maxQueuedBytes || waiter.inputBytes > this.maxInFlightBytes) {\n this.admissions.shift();\n waiter.cleanup();\n waiter.reject(new RangeError('Reservation exceeds worker byte budgets'));\n continue;\n }\n if (\n this.jobQueue.length + this.reservations.size >= this.maxQueuedJobs ||\n waiter.inputBytes > this.maxQueuedBytes - this.queuedBytes - this.reservedBytes\n )\n return;\n this.admissions.shift();\n waiter.cleanup();\n const admission: WorkerAdmission = {\n inputBytes: waiter.inputBytes,\n release: () => {\n if (this.reservations.delete(admission)) {\n this.reservedBytes -= admission.inputBytes;\n this._admit();\n }\n }\n };\n this.reservations.add(admission);\n this.reservedBytes += admission.inputBytes;\n this.totals.peakQueuedBytes = Math.max(\n this.totals.peakQueuedBytes,\n this.queuedBytes + this.reservedBytes\n );\n waiter.resolve(admission);\n }\n }\n\n /** Checks if workers are supported on this platform */\n static isSupported(): boolean {\n return WorkerThread.isSupported();\n }\n\n /**\n * @param processor - worker function\n * @param maxConcurrency - max count of workers\n */\n constructor(props: WorkerPoolProps) {\n this.source = props.source;\n this.url = props.url;\n this.workerType = props.workerType;\n this.getUrl = props.getUrl;\n this.loadWorker = props.loadWorker;\n this.setProps(props);\n }\n\n /** Reject new work, drain submitted jobs, and terminate workers; optionally force termination after a deadline. */\n close(options: {timeout?: number} = {}): Promise<void> {\n if (this.closing) return this.closing;\n if (this.isDestroyed) return this.destroy();\n if (\n options.timeout !== undefined &&\n (!Number.isFinite(options.timeout) || options.timeout < 0 || options.timeout > 0x7fffffff)\n ) {\n return Promise.reject(new RangeError('Close timeout must be between 0 and 2147483647 ms'));\n }\n this.isClosing = true;\n const reason = new Error('Worker pool is closing');\n this.admissions.splice(0).forEach(waiter => {\n waiter.cleanup();\n waiter.reject(reason);\n });\n this.reservations.clear();\n this.reservedBytes = 0;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const drained = new Promise<void>(resolve => {\n this.onDrained = resolve;\n });\n const deadline =\n options.timeout === undefined\n ? drained\n : Promise.race([\n drained,\n new Promise<void>(resolve => {\n timer = setTimeout(resolve, options.timeout);\n })\n ]);\n this.closing = deadline.then(async () => {\n clearTimeout(timer);\n await this.destroy();\n });\n this._checkDrained();\n return this.closing;\n }\n\n private _checkDrained(): void {\n if (this.isClosing && !this.jobQueue.length && !this.activeJobs.size && !this.startingJobs)\n this.onDrained?.();\n }\n\n /**\n * Terminates all workers in the pool and aborts active jobs.\n * @param reason Optional error delivered to active jobs.\n * @note Can free up significant memory\n */\n destroy(reason: unknown = new Error('Worker pool was destroyed')): Promise<void> {\n if (this.destruction) return this.destruction;\n const workers = [...this.workers];\n // Abort active jobs so callers receive an error when a development worker is invalidated.\n this.isDestroyed = true;\n this.onDrained?.();\n this.activeJobs.forEach(job => job.abort(reason));\n this.admissions.splice(0).forEach(waiter => {\n waiter.cleanup();\n waiter.reject(reason);\n });\n this.reservations.clear();\n this.reservedBytes = 0;\n const queuedJobs = this.jobQueue.splice(0);\n this.queuedBytes = 0;\n queuedJobs.forEach(queuedJob => {\n queuedJob.removeAbortListener();\n queuedJob.onReject(reason);\n });\n this.idleQueue.splice(0).forEach(worker => {\n worker.destroy();\n this.count--;\n });\n this.isDestroyed = true;\n this.destruction = Promise.all(workers.map(worker => worker.destroy())).then(() => {\n this.workers.clear();\n });\n void this.destruction.catch(() => undefined);\n return this.destruction;\n }\n\n setProps(props: WorkerPoolProps) {\n for (const key of [\n 'maxQueuedBytes',\n 'maxInFlightBytes',\n 'maxQueuedJobs',\n 'maxPendingAdmissions'\n ] as const) {\n const value = props[key];\n if (\n value !== undefined &&\n (!(value >= 0) || (value !== Infinity && !Number.isSafeInteger(value)))\n ) {\n throw new RangeError(`${key} must be a nonnegative safe integer or Infinity`);\n }\n }\n if (\n props.priorityAgingMs !== undefined &&\n (!Number.isFinite(props.priorityAgingMs) || props.priorityAgingMs <= 0)\n ) {\n throw new RangeError('priorityAgingMs must be positive and finite');\n }\n this.maxQueuedJobs = props.maxQueuedJobs ?? this.maxQueuedJobs;\n this.maxPendingAdmissions = props.maxPendingAdmissions ?? this.maxPendingAdmissions;\n this.priorityAgingMs = props.priorityAgingMs ?? this.priorityAgingMs;\n this.maxQueuedBytes = props.maxQueuedBytes ?? this.maxQueuedBytes;\n this.maxInFlightBytes = props.maxInFlightBytes ?? this.maxInFlightBytes;\n this.props = {...this.props, ...props};\n\n if (props.name !== undefined) {\n this.name = props.name;\n }\n if (props.maxConcurrency !== undefined) {\n this.maxConcurrency = props.maxConcurrency;\n }\n if (props.maxMobileConcurrency !== undefined) {\n this.maxMobileConcurrency = props.maxMobileConcurrency;\n }\n if (props.reuseWorkers !== undefined) {\n this.reuseWorkers = props.reuseWorkers;\n }\n if (props.onDebug !== undefined) {\n this.onDebug = props.onDebug;\n }\n for (const queuedJob of [...this.jobQueue]) {\n if (queuedJob.inputBytes > this.maxInFlightBytes) {\n this.jobQueue.splice(this.jobQueue.indexOf(queuedJob), 1);\n this.queuedBytes -= queuedJob.inputBytes;\n queuedJob.removeAbortListener();\n queuedJob.onReject(new RangeError('Worker job exceeds maxInFlightBytes'));\n }\n }\n this._admit();\n void this._startQueuedJob();\n this._checkDrained();\n }\n\n /** Whether batch callers must declare a retained-input reservation. */\n get requiresInputBytes(): boolean {\n return this.maxQueuedBytes !== Infinity || this.maxInFlightBytes !== Infinity;\n }\n\n async startJob(\n name: string,\n onMessage: OnMessage = (job, type, data) => job.done(data),\n onError: OnError = (job, error) => job.error(error),\n signal?: AbortSignal,\n scheduling: {\n inputBytes?: number;\n priority?: number;\n admission?: WorkerAdmission;\n sharedState?: SharedWorkerState;\n cancellationMode?: 'terminate' | 'cooperative';\n cancellationTimeout?: number;\n } = {}\n ): Promise<WorkerJob> {\n if (\n scheduling.cancellationMode !== undefined &&\n !['terminate', 'cooperative'].includes(scheduling.cancellationMode)\n ) {\n throw new Error('Invalid worker cancellation mode');\n }\n if (\n scheduling.cancellationTimeout !== undefined &&\n (!Number.isFinite(scheduling.cancellationTimeout) || scheduling.cancellationTimeout < 0)\n ) {\n throw new RangeError('cancellationTimeout must be finite and nonnegative');\n }\n if (signal?.aborted) {\n throw signal.reason;\n }\n if (this.isDestroyed) {\n return Promise.reject(new Error('Worker pool was destroyed'));\n }\n if (this.isClosing) return Promise.reject(new Error('Worker pool is closing'));\n const {inputBytes = 0, priority = 0} = scheduling;\n if (!Number.isSafeInteger(inputBytes) || inputBytes < 0 || !Number.isFinite(priority)) {\n throw new RangeError('Invalid worker scheduling inputBytes or priority');\n }\n if (inputBytes > this.maxInFlightBytes) {\n throw new RangeError('Worker job exceeds maxInFlightBytes');\n }\n const admission = scheduling.admission;\n if (admission && (!this.reservations.has(admission) || admission.inputBytes !== inputBytes)) {\n throw new Error('Invalid or consumed worker admission');\n }\n // A job that can start immediately need not fit the waiting queue budget.\n const canStart =\n !this.jobQueue.length &&\n this.activeJobs.size < this._getMaxConcurrency() &&\n this.inFlightBytes + inputBytes <= this.maxInFlightBytes;\n if (\n !admission &&\n !canStart &&\n (this.jobQueue.length + this.reservations.size >= this.maxQueuedJobs ||\n inputBytes > this.maxQueuedBytes - this.queuedBytes - this.reservedBytes)\n ) {\n throw new RangeError('Worker queue exceeds maxQueuedBytes or maxQueuedJobs');\n }\n if (admission) {\n this.reservations.delete(admission);\n this.reservedBytes -= admission.inputBytes;\n }\n // Promise resolves when thread starts working on this job\n const startPromise = new Promise<WorkerJob>((onStart, onReject) => {\n // Promise resolves when thread completes or fails working on this job\n const abortQueuedJob = (): void => {\n const index = this.jobQueue.indexOf(queuedJob);\n if (index >= 0) {\n this.jobQueue.splice(index, 1);\n this.queuedBytes -= queuedJob.inputBytes;\n this._admit();\n void this._startQueuedJob();\n queuedJob.removeAbortListener();\n onReject(signal?.reason);\n this._checkDrained();\n }\n };\n const queuedJob: QueuedJob = {\n name,\n inputBytes,\n priority,\n queuedAt: performance.now(),\n sharedState: scheduling.sharedState,\n cancellationMode: scheduling.cancellationMode,\n cancellationTimeout: scheduling.cancellationTimeout,\n onMessage,\n onError,\n onStart,\n onReject,\n signal,\n removeAbortListener: () => signal?.removeEventListener('abort', abortQueuedJob)\n };\n // Stable priority order: larger values first, FIFO for equal priorities.\n const index = this.jobQueue.findIndex(job => job.priority < priority);\n this.jobQueue.splice(index < 0 ? this.jobQueue.length : index, 0, queuedJob);\n this.queuedBytes += inputBytes;\n if (!canStart)\n this.totals.peakQueuedBytes = Math.max(\n this.totals.peakQueuedBytes,\n this.queuedBytes + this.reservedBytes\n );\n signal?.addEventListener('abort', abortQueuedJob, {once: true});\n return this;\n });\n this._startQueuedJob(); // eslint-disable-line @typescript-eslint/no-floating-promises\n return await startPromise;\n }\n\n // PRIVATE\n\n /**\n * Starts first queued job if worker is available or can be created\n * Called when job is started and whenever a worker returns to the idleQueue\n */\n async _startQueuedJob(): Promise<void> {\n if (!this.jobQueue.length) {\n return;\n }\n\n const now = performance.now();\n this.jobQueue.sort(\n (a, b) =>\n b.priority +\n Math.floor((now - b.queuedAt) / this.priorityAgingMs) -\n (a.priority + Math.floor((now - a.queuedAt) / this.priorityAgingMs))\n );\n // Strict priority order deliberately prevents smaller jobs bypassing the head job.\n if (this.jobQueue[0].inputBytes > this.maxInFlightBytes - this.inFlightBytes) return;\n\n let workerThread: WorkerThread | null;\n try {\n workerThread = this._getAvailableWorker();\n } catch (error) {\n const queuedJob = this.jobQueue.shift();\n if (queuedJob) this.queuedBytes -= queuedJob.inputBytes;\n this._admit();\n queuedJob?.removeAbortListener();\n queuedJob?.onReject(error);\n void this._startQueuedJob();\n this._checkDrained();\n return;\n }\n if (!workerThread) {\n return;\n }\n\n // We have a worker, dequeue and start the job\n const queuedJob = this.jobQueue.shift();\n if (queuedJob) {\n this.startingJobs++;\n this.queuedBytes -= queuedJob.inputBytes;\n this.inFlightBytes += queuedJob.inputBytes;\n this.totals.peakInFlightBytes = Math.max(this.totals.peakInFlightBytes, this.inFlightBytes);\n this._admit();\n const startedAt = performance.now();\n try {\n // @ts-ignore Legacy diagnostic callback shape.\n this.onDebug({\n message: 'Starting job',\n name: queuedJob.name,\n workerThread,\n backlog: this.jobQueue.length\n });\n } catch {\n /* Diagnostics must never affect scheduling. */\n }\n\n if (this.isDestroyed || workerThread.terminated) {\n this.startingJobs--;\n this.inFlightBytes -= queuedJob.inputBytes;\n queuedJob.removeAbortListener();\n queuedJob.onReject(new Error('Worker pool was destroyed before job start'));\n this.returnWorkerToQueue(workerThread);\n return;\n }\n // Create a worker job to let the app access thread and manage job completion\n const job = new WorkerJob(queuedJob.name, workerThread);\n job.sharedState = queuedJob.sharedState;\n queuedJob.removeAbortListener();\n const abortJob = (): void => {\n if (queuedJob.cancellationMode === 'cooperative') {\n job.cancel(queuedJob.signal?.reason, queuedJob.cancellationTimeout);\n } else job.abort(queuedJob.signal?.reason);\n };\n queuedJob.signal?.addEventListener('abort', abortJob, {once: true});\n if (queuedJob.signal?.aborted) abortJob();\n this.activeJobs.add(job);\n this.startingJobs--;\n workerThread.ref();\n\n // Set the worker thread's message handlers\n workerThread.onMessage = data => {\n try {\n if (job.isRunning) queuedJob.onMessage(job, data.type, data.payload);\n } catch (error) {\n job.abort(error);\n }\n };\n workerThread.onError = error => {\n try {\n queuedJob.onError(job, error);\n } catch (callbackError) {\n job.abort(callbackError);\n }\n };\n\n void job.result.catch(() => undefined);\n // Resolve the start promise so that the app can start sending messages to worker\n queuedJob.onStart(job);\n void this._startQueuedJob();\n\n // Wait for the app to signal that the job is complete, then return worker to queue\n try {\n await job.completion;\n } catch {\n // The job result promise carries worker errors back to the caller; do not duplicate-log\n // handled rejections here.\n } finally {\n queuedJob.signal?.removeEventListener('abort', abortJob);\n this.activeJobs.delete(job);\n this.inFlightBytes -= queuedJob.inputBytes;\n const outcome = job.isCancelled ? 'cancelled' : job.failed ? 'failed' : 'completed';\n this.totals[outcome]++;\n const metrics: WorkerJobMetrics = {\n name: job.name,\n outcome,\n queueWaitMs: startedAt - queuedJob.queuedAt,\n durationMs: performance.now() - startedAt,\n workerCreationMs: workerThread.creationTimeMs,\n workerStartupMs: workerThread.startupTimeMs,\n postMessageMs: job.postMessageMs,\n executionMs: job.executionMs,\n inputBytes: queuedJob.inputBytes\n };\n try {\n this.props.onMetrics?.(metrics);\n if (this.props.performanceMarks && typeof performance.measure === 'function') {\n performance.measure(`math.gl.worker:${job.name}`, {\n start: queuedJob.queuedAt,\n end: performance.now(),\n detail: metrics\n });\n }\n } catch {\n /* Instrumentation must not break worker release. */\n }\n this._admit();\n this.returnWorkerToQueue(workerThread);\n }\n } else {\n this.returnWorkerToQueue(workerThread);\n }\n }\n\n /**\n * Returns a worker to the idle queue\n * Destroys the worker if\n * - pool is destroyed\n * - if this pool doesn't reuse workers\n * - if maxConcurrency has been lowered\n * @param worker\n */\n returnWorkerToQueue(worker: WorkerThread) {\n const shouldDestroyWorker =\n // Aborted jobs terminate their worker immediately.\n worker.terminated ||\n // If the pool is destroyed, there is no reason to keep the worker around\n this.isDestroyed ||\n // If the app has disabled worker reuse, any completed workers should be destroyed\n !this.reuseWorkers ||\n // If concurrency has been lowered, this worker might be surplus to requirements\n this.count > this._getMaxConcurrency();\n\n if (shouldDestroyWorker) {\n if (worker.terminated && !this.isDestroyed) this.totals.workerRestarts++;\n if (!worker.terminated) {\n worker.destroy();\n }\n void worker.destroy().then(() => this.workers.delete(worker));\n this.count--;\n } else {\n worker.unref();\n this.idleQueue.push(worker);\n }\n\n if (!this.isDestroyed) {\n this._startQueuedJob(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n this._checkDrained();\n }\n\n /**\n * Returns idle worker or creates new worker if maxConcurrency has not been reached\n */\n _getAvailableWorker(): WorkerThread | null {\n // If a worker has completed and returned to the queue, it can be used\n while (this.idleQueue.length > 0) {\n const worker = this.idleQueue.shift();\n if (worker && (worker.terminated || this.count > this._getMaxConcurrency())) {\n if (worker.terminated) this.totals.workerRestarts++;\n void worker.destroy().then(() => this.workers.delete(worker));\n this.count--;\n } else if (worker) {\n return worker;\n }\n }\n\n // Create fresh worker if we haven't yet created the max amount of worker threads for this worker source\n if (this.count < this._getMaxConcurrency()) {\n this.count++;\n const name = `${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;\n try {\n const worker = new WorkerThread({\n name,\n source: this.source,\n url: this.url,\n workerType: this.workerType,\n getUrl: this.getUrl,\n loadWorker: this.loadWorker\n });\n this.totals.workersCreated++;\n this.workers.add(worker);\n return worker;\n } catch (error) {\n this.count--;\n throw error;\n }\n }\n\n // No worker available, have to wait\n return null;\n }\n\n _getMaxConcurrency() {\n return isMobile ? this.maxMobileConcurrency : this.maxConcurrency;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport WorkerPool from './worker-pool';\nimport type {WorkerPoolTarget} from './worker-pool';\nimport WorkerThread from './worker-thread';\nimport type {LoadWorker, WorkerJobMetrics} from '../../types';\n\n/**\n * @param maxConcurrency - max count of workers\n * @param maxMobileConcurrency - max count of workers on mobile\n * @param maxConcurrency - max count of workers\n * @param reuseWorkers - if false, destroys workers when task is completed\n * @param onDebug - callback intended to allow application to log worker pool activity\n */\nexport type WorkerFarmProps = {\n maxQueuedJobs?: number;\n maxPendingAdmissions?: number;\n priorityAgingMs?: number;\n onMetrics?: (metrics: WorkerJobMetrics) => void;\n performanceMarks?: boolean;\n maxQueuedBytes?: number;\n maxInFlightBytes?: number;\n maxConcurrency?: number;\n maxMobileConcurrency?: number;\n reuseWorkers?: boolean;\n onDebug?: () => void;\n};\n\nconst DEFAULT_PROPS: Required<WorkerFarmProps> = {\n maxQueuedJobs: Infinity,\n maxPendingAdmissions: 128,\n priorityAgingMs: 1000,\n onMetrics: () => {},\n performanceMarks: false,\n maxQueuedBytes: Infinity,\n maxInFlightBytes: Infinity,\n maxConcurrency: 3,\n maxMobileConcurrency: 1,\n reuseWorkers: true,\n onDebug: () => {}\n};\n\n/** Stable ids used to distinguish worker factories in the pool cache. */\nconst loadWorkerIds = new WeakMap<LoadWorker, number>();\n/** Next stable worker-factory id. */\nlet nextLoadWorkerId = 1;\n\n/**\n * Process multiple jobs with a \"farm\" of different workers in worker pools.\n */\nexport default class WorkerFarm {\n private props: WorkerFarmProps;\n private workerPools = new Map<string, WorkerPool>();\n // singleton\n private static _workerFarm?: WorkerFarm;\n\n /** Checks if workers are supported on this platform */\n static isSupported(): boolean {\n return WorkerThread.isSupported();\n }\n\n /** Get the singleton instance of the global worker farm */\n static getWorkerFarm(props: WorkerFarmProps = {}): WorkerFarm {\n WorkerFarm._workerFarm = WorkerFarm._workerFarm || new WorkerFarm({});\n WorkerFarm._workerFarm.setProps(props);\n return WorkerFarm._workerFarm;\n }\n\n /** get global instance with WorkerFarm.getWorkerFarm() */\n private constructor(props: WorkerFarmProps) {\n this.props = {...DEFAULT_PROPS};\n this.setProps(props);\n /** @type Map<string, WorkerPool>} */\n this.workerPools = new Map();\n }\n\n /**\n * Terminate all workers in the farm and abort active jobs.\n * @param reason Optional error delivered to active jobs.\n * @note Can free up significant memory\n */\n destroy(reason?: unknown): Promise<void> {\n const pools = [...this.workerPools.values()];\n this.workerPools.clear();\n return Promise.all(pools.map(pool => pool.destroy(reason))).then(() => undefined);\n }\n\n /**\n * Set props used when initializing worker pools\n * @param props\n */\n setProps(props: WorkerFarmProps): void {\n // Task payloads, signals and callbacks outside farm configuration must not be retained.\n const configuration: WorkerFarmProps = {};\n for (const key of Object.keys(DEFAULT_PROPS)) {\n if (props[key] !== undefined) configuration[key] = props[key];\n }\n this.props = {...this.props, ...configuration};\n // Update worker pool props\n for (const workerPool of this.workerPools.values()) {\n workerPool.setProps(this._getWorkerPoolProps());\n }\n }\n\n /**\n * Returns a worker pool for the specified worker\n * @param options Worker target used to identify and initialize the pool.\n * @param options.name Worker name used as the base pool identity.\n * @param options.url Worker script URL.\n * @param options.source Inline worker source.\n * @param options.loadWorker Built-in browser worker factory.\n * @example\n * const job = WorkerFarm.getWorkerFarm().getWorkerPool({name, url}).startJob(...);\n */\n getWorkerPool(options: WorkerPoolTarget): WorkerPool {\n const {name, source, url, getUrl, loadWorker, workerType} = options;\n const workerPoolKey = getWorkerPoolKey(options);\n let workerPool = this.workerPools.get(workerPoolKey);\n if (!workerPool) {\n workerPool = new WorkerPool({\n name,\n source,\n url,\n getUrl,\n loadWorker,\n workerType\n });\n workerPool.setProps(this._getWorkerPoolProps());\n this.workerPools.set(workerPoolKey, workerPool);\n }\n return workerPool;\n }\n\n _getWorkerPoolProps() {\n return {\n maxQueuedJobs: this.props.maxQueuedJobs,\n maxPendingAdmissions: this.props.maxPendingAdmissions,\n priorityAgingMs: this.props.priorityAgingMs,\n onMetrics: this.props.onMetrics,\n performanceMarks: this.props.performanceMarks,\n maxQueuedBytes: this.props.maxQueuedBytes,\n maxInFlightBytes: this.props.maxInFlightBytes,\n maxConcurrency: this.props.maxConcurrency,\n maxMobileConcurrency: this.props.maxMobileConcurrency,\n reuseWorkers: this.props.reuseWorkers,\n onDebug: this.props.onDebug\n };\n }\n}\n\n/** Returns a cache key that distinguishes each worker source and factory. */\nfunction getWorkerPoolKey(options: WorkerPoolTarget): string {\n const {name, source, url, urlKey, loadWorker, workerType} = options;\n const sourceKey = source ? `source:${source}` : '';\n const urlKeyPart = url || urlKey ? `url:${url || urlKey}` : '';\n const loadWorkerKey = loadWorker ? `loadWorker:${getLoadWorkerId(loadWorker)}` : '';\n return [name, sourceKey, urlKeyPart, loadWorkerKey, `type:${workerType || 'classic'}`]\n .filter(Boolean)\n .join('|');\n}\n\n/** Returns a stable identifier for a worker factory function. */\nfunction getLoadWorkerId(loadWorker: LoadWorker): number {\n let loadWorkerId = loadWorkerIds.get(loadWorker);\n if (!loadWorkerId) {\n loadWorkerId = nextLoadWorkerId++;\n loadWorkerIds.set(loadWorker, loadWorkerId);\n }\n return loadWorkerId;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {WorkerMessageData, WorkerMessageType, WorkerMessagePayload} from '../../types';\nimport {getTransferList} from '../worker-utils/get-transfer-list';\n// import type {TransferListItem} from '../node/worker_threads';\nimport {parentPort} from '../node/worker_threads';\n\ntype TransferListItem = any;\ntype WorkerMessageEvent = MessageEvent<WorkerMessageData> | WorkerMessageData;\ntype WorkerMessageListener = (type: WorkerMessageType, payload: WorkerMessagePayload) => any;\n\n/** Vile hack to defeat over-zealous bundlers from stripping out the require */\nasync function getParentPort() {\n // const isNode = globalThis.process;\n // let parentPort;\n // try {\n // // biome-ignore format: preserve intentional fixture layout\n // eval('globalThis.parentPort = require(\\'worker_threads\\').parentPort'); // eslint-disable-line no-eval\n // parentPort = globalThis.parentPort;\n // } catch {\n // try {\n // // biome-ignore format: preserve intentional fixture layout\n // eval('globalThis.workerThreadsPromise = import(\\'worker_threads\\')'); // eslint-disable-line no-eval\n // const workerThreads = await globalThis.workerThreadsPromise;\n // parentPort = workerThreads.parentPort;\n // } catch (error) {\n // console.error((error as Error).message); // eslint-disable-line no-console\n // }\n // }\n return parentPort;\n}\n\nconst onMessageWrapperMap = new Map<WorkerMessageListener, (message: WorkerMessageEvent) => void>();\n\n/**\n * Type safe wrapper for worker code\n */\nexport default class WorkerBody {\n /** Check that we are actually in a worker thread */\n static async inWorkerThread(): Promise<boolean> {\n const workerGlobalScope = (globalThis as any).WorkerGlobalScope;\n return (\n (typeof workerGlobalScope === 'function' && globalThis instanceof workerGlobalScope) ||\n Boolean(await getParentPort())\n );\n }\n\n /*\n * (type: WorkerMessageType, payload: WorkerMessagePayload) => any\n */\n static set onmessage(onMessage: (type: WorkerMessageType, payload: WorkerMessagePayload) => any) {\n async function handleMessage(message) {\n const parentPort = await getParentPort();\n // Confusingly the message itself also has a 'type' field which is always set to 'message'\n const {type, payload} = parentPort ? message : message.data;\n // if (!isKnownMessage(message)) {\n // return;\n // }\n onMessage(type, payload);\n }\n\n getParentPort().then(parentPort => {\n if (parentPort) {\n parentPort.on('message', message => {\n handleMessage(message);\n });\n // if (message == 'exit') { parentPort.unref(); }\n // eslint-disable-next-line\n // biome-ignore lint/suspicious/noConsole: Preserve upstream worker diagnostics.\n parentPort.on('exit', () => console.debug('Node worker closing'));\n } else {\n // eslint-disable-next-line no-restricted-globals\n globalThis.onmessage = handleMessage;\n }\n });\n }\n\n static async addEventListener(onMessage: WorkerMessageListener) {\n let onMessageWrapper = onMessageWrapperMap.get(onMessage);\n\n if (!onMessageWrapper) {\n onMessageWrapper = (message: WorkerMessageEvent) => {\n const messageData = getWorkerMessageData(message);\n if (!messageData) {\n return;\n }\n onMessage(messageData.type, messageData.payload);\n };\n onMessageWrapperMap.set(onMessage, onMessageWrapper);\n }\n\n const parentPort = await getParentPort();\n if (parentPort) {\n parentPort.on('message', onMessageWrapper);\n } else {\n globalThis.addEventListener('message', onMessageWrapper);\n }\n }\n\n static async removeEventListener(onMessage: WorkerMessageListener) {\n const onMessageWrapper = onMessageWrapperMap.get(onMessage);\n onMessageWrapperMap.delete(onMessage);\n if (!onMessageWrapper) {\n return;\n }\n const parentPort = await getParentPort();\n if (parentPort) {\n parentPort.off('message', onMessageWrapper);\n } else {\n globalThis.removeEventListener('message', onMessageWrapper);\n }\n }\n\n /**\n * Send a message from a worker to creating thread (main thread)\n * @param type\n * @param payload\n */\n static async postMessage(type: WorkerMessageType, payload: WorkerMessagePayload): Promise<void> {\n const data: WorkerMessageData = {source: 'loaders.gl', type, payload};\n // console.log('posting message', data);\n\n // Cast to Node compatible transfer list\n const transferList = getTransferList(payload) as TransferListItem[];\n\n const parentPort = await getParentPort();\n if (parentPort) {\n parentPort.postMessage(data, transferList);\n // console.log('posted message', data);\n } else {\n // @ts-expect-error Outside of worker scopes this call has a third parameter\n globalThis.postMessage(data, transferList);\n }\n }\n}\n\n// Filter out noise messages sent to workers\nfunction getWorkerMessageData(message: WorkerMessageEvent): WorkerMessageData | null {\n if (!message || typeof message !== 'object') {\n return null;\n }\n const messageData = 'data' in message && message.type === 'message' ? message.data : message;\n return messageData &&\n typeof messageData.source === 'string' &&\n messageData.source.startsWith('loaders.gl')\n ? messageData\n : null;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\n// From https://github.com/rauschma/async-iter-demo/tree/master/src under MIT license\n// http://2ality.com/2016/10/asynchronous-iteration.html\n\n/**\n * Async Queue\n * - AsyncIterable: An async iterator can be\n * - Values can be pushed onto the queue\n * @example\n * const asyncQueue = new AsyncQueue();\n * setTimeout(() => asyncQueue.enqueue('tick'), 1000);\n * setTimeout(() => asyncQueue.enqueue(new Error('done')), 10000);\n * for await (const value of asyncQueue) {\n * console.log(value); // tick\n * }\n */\nexport default class AsyncQueue<T> {\n private _values: any[];\n private _settlers: any[];\n private _closed: boolean;\n\n constructor() {\n this._values = []; // enqueues > dequeues\n this._settlers = []; // dequeues > enqueues\n this._closed = false;\n }\n\n /** Return an async iterator for this queue */\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n }\n\n /** Push a new value - the async iterator will yield a promise resolved to this value */\n push(value: T): void {\n return this.enqueue(value);\n }\n\n /**\n * Push a new value - the async iterator will yield a promise resolved to this value\n * Add an error - the async iterator will yield a promise rejected with this value\n */\n enqueue(value: T | Error): void {\n if (this._closed) {\n throw new Error('Closed');\n }\n\n if (this._settlers.length > 0) {\n if (this._values.length > 0) {\n throw new Error('Illegal internal state');\n }\n const settler = this._settlers.shift();\n if (value instanceof Error) {\n settler.reject(value);\n } else {\n settler.resolve({value});\n }\n } else {\n this._values.push(value);\n }\n }\n\n /** Indicate that we not waiting for more values - The async iterator will be done */\n close(): void {\n while (this._settlers.length > 0) {\n const settler = this._settlers.shift();\n settler.resolve({done: true});\n }\n this._closed = true;\n }\n\n // ITERATOR IMPLEMENTATION\n\n /** @returns a Promise for an IteratorResult */\n next(): Promise<IteratorResult<T, any>> {\n // If values in queue, yield the first value\n if (this._values.length > 0) {\n const value = this._values.shift();\n if (value instanceof Error) {\n return Promise.reject(value);\n }\n return Promise.resolve({done: false, value});\n }\n\n // If queue is closed, the iterator is done\n if (this._closed) {\n if (this._settlers.length > 0) {\n throw new Error('Illegal internal state');\n }\n return Promise.resolve({done: true, value: undefined});\n }\n\n // Yield a promise that waits for new values to be enqueued\n return new Promise((resolve, reject) => {\n this._settlers.push({resolve, reject});\n });\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\n// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {WorkerObject, WorkerOptions} from '../../types';\nimport {assert} from '../env-utils/assert';\nimport {isBrowser} from '../env-utils/globals';\nimport {VERSION} from '../env-utils/version';\nimport {NPM_TAG} from '../npm-tag';\n\nconst warnedWorkerVersionFallbacks = new Set<string>();\n\n/**\n * Gets worker object's name (for debugging in Chrome thread inspector window)\n */\nexport function getWorkerName(worker: WorkerObject): string {\n const warning = worker.version !== VERSION ? ` (worker-utils@${VERSION})` : '';\n return `${worker.name}@${worker.version}${warning}`;\n}\n\n/**\n * Returns an explicitly configured or test worker URL.\n * @param worker Worker descriptor to resolve.\n * @param options Worker options that can override the descriptor.\n * @returns A worker URL, or `null` when URL-based fallback resolution is still required.\n */\nexport function getCustomWorkerURL(\n worker: WorkerObject,\n options: WorkerOptions = {}\n): string | null {\n const workerFile = isBrowser\n ? worker.workerFile || `${worker.id}-worker.js`\n : worker.workerNode || `${worker.id}-worker-node.js`;\n let url = getConfiguredWorkerURL(worker, options);\n\n // If URL is test, generate local loaders.gl url\n // @ts-ignore _workerType\n const workerType = (options as any)._workerType || (options as any)?.core?._workerType;\n if (!url && workerType === 'test') {\n if (isBrowser) {\n url = `modules/${worker.module}/dist/${workerFile}`;\n } else {\n // In the test environment the ts-node loader requires TypeScript code\n const workerSourceDirectory =\n worker.module === 'core' && worker.workerNode?.startsWith('worker-utils/')\n ? 'worker-utils/workers'\n : 'workers';\n const workerSourceNode =\n worker.workerSourceNode || `${workerSourceDirectory}/${worker.id}-worker-node.ts`;\n url = `modules/${worker.module}/src/${workerSourceNode}`;\n }\n }\n\n return url || null;\n}\n\n/** Returns an explicit worker URL override, excluding generated local test URLs. */\nexport function getConfiguredWorkerURL(\n worker: WorkerObject,\n options: WorkerOptions = {}\n): string | null {\n const workerOptions = options[worker.id] || {};\n // Compression also supports the historical non-nested URL override.\n return (\n workerOptions.workerUrl || (worker.id === 'compression' ? options.workerUrl : null) || null\n );\n}\n\n/**\n * Generates a worker URL using overrides first and the published CDN artifact as a fallback.\n * @param worker Worker descriptor to resolve.\n * @param options Worker options that can override the descriptor.\n * @returns A loadable worker URL.\n */\nexport function getWorkerURL(worker: WorkerObject, options: WorkerOptions = {}): string {\n const customWorkerUrl = getCustomWorkerURL(worker, options);\n const descriptorWorkerUrl = typeof worker.worker === 'string' ? worker.worker : null;\n const url = customWorkerUrl || descriptorWorkerUrl || getDefaultWorkerURL(worker, true);\n\n assert(url);\n\n // Allow user to override location\n return url;\n}\n\n/**\n * Returns the generated URL for a published pre-built worker.\n * @param worker Worker descriptor to resolve.\n * @param warn Whether to warn when an uninjected development version uses the npm tag.\n * @returns The CDN worker URL.\n */\nexport function getDefaultWorkerURL(worker: WorkerObject, warn: boolean = false): string {\n const workerFile = isBrowser\n ? worker.workerFile || `${worker.id}-worker.js`\n : worker.workerNode || `${worker.id}-worker-node.js`;\n let version = worker.version;\n if (version === 'latest') {\n version = NPM_TAG;\n }\n const versionTag = version ? `@${version}` : '';\n const packageName = worker.packageName || `@loaders.gl/${worker.module}`;\n const url = `https://unpkg.com/${packageName}${versionTag}/dist/${workerFile}`;\n if (warn) {\n warnIfUsingNpmTagFallback(worker, url);\n }\n return url;\n}\n\n/** Warn once when a worker falls back to the npm tag because __VERSION__ was not injected. */\nfunction warnIfUsingNpmTagFallback(worker: WorkerObject, url: string): void {\n if (worker.version !== 'latest') {\n return;\n }\n\n const workerId = `${worker.module}:${worker.id}`;\n if (warnedWorkerVersionFallbacks.has(workerId)) {\n return;\n }\n\n warnedWorkerVersionFallbacks.add(workerId);\n // eslint-disable-next-line no-console\n // biome-ignore lint/suspicious/noConsole: Preserve upstream worker diagnostics.\n console.warn(\n `loaders.gl: ${worker.name} loader worker version is \"latest\" because __VERSION__ was not injected. Fetching ${url} from CDN.`\n );\n}\n", "// math.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport WorkerThread from '../worker-farm/worker-thread';\nimport {isBrowser} from '../env-utils/globals';\n\nexport type WorkerCapabilities = {\n workers: boolean;\n sharedMemory: boolean;\n crossOriginIsolated: boolean | undefined;\n sharedMemoryUnavailableReason?: 'cross-origin-isolation' | 'unsupported' | 'blocked';\n};\n\n/** Probe the actual realm; browser sharing requires COOP/COEP isolation (Node does not). */\nexport function getWorkerCapabilities(): WorkerCapabilities {\n const isolated =\n typeof globalThis.crossOriginIsolated === 'boolean'\n ? globalThis.crossOriginIsolated\n : undefined;\n const capabilities: WorkerCapabilities = {\n workers: WorkerThread.isSupported(),\n sharedMemory: false,\n crossOriginIsolated: isolated\n };\n if (isBrowser && isolated !== true) {\n capabilities.sharedMemoryUnavailableReason = 'cross-origin-isolation';\n } else if (\n typeof SharedArrayBuffer === 'undefined' ||\n typeof Atomics === 'undefined' ||\n typeof structuredClone !== 'function'\n ) {\n capabilities.sharedMemoryUnavailableReason = 'unsupported';\n } else {\n try {\n const buffer = new SharedArrayBuffer(4);\n const cloned = structuredClone(buffer);\n Atomics.store(new Int32Array(buffer), 0, 17);\n capabilities.sharedMemory = Atomics.load(new Int32Array(cloned), 0) === 17;\n if (!capabilities.sharedMemory) capabilities.sharedMemoryUnavailableReason = 'blocked';\n } catch {\n capabilities.sharedMemoryUnavailableReason = 'blocked';\n }\n }\n return capabilities;\n}\n\nexport type SharedWorkerSnapshot = {\n cancelled: boolean;\n completed: number;\n /** -1 means unknown. */\n total: number;\n revision: number;\n};\n\n/** Same-version, single-job atomic control state. Each field is atomic; snapshots are not transactions. */\nexport class SharedWorkerState {\n readonly buffer: SharedArrayBuffer;\n private values: Int32Array;\n\n constructor(buffer: SharedArrayBuffer) {\n if (\n typeof SharedArrayBuffer === 'undefined' ||\n !(buffer instanceof SharedArrayBuffer) ||\n buffer.byteLength !== 16\n )\n throw new Error('Expected a 16-byte shared worker control buffer');\n this.buffer = buffer;\n this.values = new Int32Array(buffer);\n }\n\n get snapshot(): SharedWorkerSnapshot {\n return {\n cancelled: Atomics.load(this.values, 0) !== 0,\n completed: Atomics.load(this.values, 1),\n total: Atomics.load(this.values, 2),\n revision: Atomics.load(this.values, 3)\n };\n }\n\n cancel(): void {\n Atomics.store(this.values, 0, 1);\n Atomics.add(this.values, 3, 1);\n Atomics.notify(this.values, 0);\n }\n\n throwIfCancelled(): void {\n if (Atomics.load(this.values, 0) !== 0) {\n const error = new Error('Shared worker task was cancelled');\n error.name = 'AbortError';\n throw error;\n }\n }\n\n /** Integer counters for application-defined work; messages still carry phase names and units. */\n setProgress(completed: number, total = -1): void {\n if (\n !Number.isInteger(completed) ||\n completed < 0 ||\n completed > 0x7fffffff ||\n !Number.isInteger(total) ||\n total < -1 ||\n total > 0x7fffffff\n ) {\n throw new RangeError('Shared progress requires nonnegative int32 counts (or total -1)');\n }\n Atomics.store(this.values, 1, completed);\n Atomics.store(this.values, 2, total);\n Atomics.add(this.values, 3, 1);\n }\n}\n\n/** Returns null when unavailable, leaving message-based cancellation/progress usable. */\nexport function createSharedWorkerState(): SharedWorkerState | null {\n if (!getWorkerCapabilities().sharedMemory) return null;\n const state = new SharedWorkerState(new SharedArrayBuffer(16));\n state.setProgress(0);\n return state;\n}\n\n/** Caller-side setup: opt into shared control automatically for cooperative jobs when available. */\nexport function prepareSharedState<\n T extends {cancellationMode?: string; sharedState?: SharedArrayBuffer | false}\n>(options: T): T {\n if (options.sharedState === undefined && options.cancellationMode === 'cooperative') {\n const state = createSharedWorkerState();\n return state ? {...options, sharedState: state.buffer} : options;\n }\n if (options.sharedState) {\n if (!getWorkerCapabilities().sharedMemory)\n throw new Error('Shared worker memory is unavailable');\n new SharedWorkerState(options.sharedState).throwIfCancelled();\n }\n return options;\n}\n", "// math.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\n/** Counts retained backing buffers once, including shared buffers and entire subview buffers.\n * This is an input-buffer budget, not an estimate of total JavaScript heap usage.\n */\nexport function getInputByteLength(input: unknown): number {\n const seen = new Set<object>();\n let bytes = 0;\n function visit(value: any): void {\n if (!value || typeof value !== 'object' || seen.has(value)) return;\n seen.add(value);\n if (ArrayBuffer.isView(value)) {\n visit(value.buffer);\n } else if (\n value instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && value instanceof SharedArrayBuffer)\n ) {\n bytes += value.byteLength;\n } else if (value instanceof Map) {\n for (const [key, item] of value) {\n visit(key);\n visit(item);\n }\n } else if (value instanceof Set) {\n for (const item of value) visit(item);\n } else {\n for (const key of Object.keys(value)) visit(value[key]);\n }\n }\n visit(input);\n return bytes;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {\n WorkerObject,\n WorkerOptions,\n WorkerContext,\n WorkerJobContext,\n WorkerMessageType,\n WorkerMessagePayload\n} from '../../types';\nimport type WorkerJob from '../worker-farm/worker-job';\nimport AsyncQueue from '../async-queue/async-queue';\nimport WorkerFarm from '../worker-farm/worker-farm';\nimport type WorkerPool from '../worker-farm/worker-pool';\nimport type {WorkerPoolTarget, WorkerAdmission} from '../worker-farm/worker-pool';\nimport {\n getCustomWorkerURL,\n getConfiguredWorkerURL,\n getDefaultWorkerURL,\n getWorkerURL,\n getWorkerName\n} from './get-worker-url';\nimport {getTransferList, getTransferListForWriter} from '../worker-utils/get-transfer-list';\nimport {prepareSharedState, SharedWorkerState} from './shared-state';\nimport {isBrowser} from '../env-utils/globals';\nimport {getInputByteLength} from '../worker-utils/get-input-byte-length';\n\n/** Options for worker processing */\nexport type ProcessOnWorkerOptions = WorkerOptions & {\n /** Isolated pool, required when using an admission reservation. */\n workerPool?: WorkerPool;\n admission?: WorkerAdmission;\n /** Cancels the job by terminating its worker. */\n signal?: AbortSignal;\n /** Diagnostic name shown for the worker job. */\n jobName?: string;\n [key: string]: any;\n};\n\n/** Options for preloading workers. */\nexport type PreloadWorkerOptions = {\n /** Number of workers to warm in the worker pool. */\n count?: number;\n};\n\n/**\n * Determines if we can parse with worker\n * @param loader\n * @param data\n * @param options\n */\nexport function canProcessOnWorker(worker: WorkerObject, options?: WorkerOptions) {\n if (!WorkerFarm.isSupported()) {\n return false;\n }\n\n const workerOptions = options?.[worker.id];\n return Boolean(\n (worker.worker || worker.loadWorker || workerOptions?.workerUrl) && options?.worker\n );\n}\n\n/**\n * Checks whether a worker supports stateful batch processing.\n * @param worker Worker descriptor declaring built-in batch support.\n * @param options Worker options, including an explicit capability for custom URLs or source.\n */\nexport function canProcessOnWorkerInBatches(\n worker: WorkerObject,\n options: WorkerOptions = {}\n): boolean {\n if (!canProcessOnWorker(worker, options)) return false;\n if (options.workerInBatches !== undefined) return options.workerInBatches;\n return Boolean(\n worker.workerInBatches && !options['source'] && !getConfiguredWorkerURL(worker, options)\n );\n}\n\n/**\n * This function expects that the worker thread sends certain messages,\n * Creating such a worker can be automated if the worker is wrapper by a call to\n * createWorker in @loaders.gl/core/worker-utils.\n */\nexport async function processOnWorker<Input, Output, Options extends object>(\n worker: WorkerObject<Input, Output, Options>,\n data: Input,\n options: ProcessOnWorkerOptions & Partial<Options> = {} as ProcessOnWorkerOptions &\n Partial<Options>,\n context: WorkerContext = {},\n jobContext: WorkerJobContext = {}\n): Promise<Output> {\n if (\n options.inputOwnership !== undefined &&\n !['copy', 'transfer', 'share'].includes(options.inputOwnership)\n )\n throw new Error('Invalid worker input ownership');\n options = prepareSharedState(options);\n throwIfAborted(options.signal);\n validateSharedInput(options, [data, serializableOptions(options), jobContext]);\n const name = getWorkerName(worker as WorkerObject);\n\n const workerPool =\n options.workerPool ??\n WorkerFarm.getWorkerFarm(options).getWorkerPool(\n getWorkerPoolTarget(worker as WorkerObject, options, name)\n );\n\n const jobName = options.jobName || worker.name;\n const job = await workerPool.startJob(\n jobName,\n // eslint-disable-next-line\n onMessage.bind(null, context, options),\n undefined,\n options.signal,\n {\n inputBytes: getInputByteLength([data, budgetOptions(options), jobContext]),\n priority: options.priority,\n admission: options.admission,\n sharedState: options.sharedState ? new SharedWorkerState(options.sharedState) : undefined,\n cancellationMode: options.cancellationMode,\n cancellationTimeout: options.cancellationTimeout\n }\n );\n\n try {\n if (options.signal?.aborted && !job.isCancelled) job.abort(getAbortReason(options.signal));\n // AbortSignal cannot be structured-cloned. It controls the job on this thread only.\n const workerOptions = serializableOptions(options);\n const transferableOptions = getTransferListForWriter(workerOptions);\n const transferableContext = getTransferListForWriter(jobContext);\n if (job.isRunning) {\n job.postMessage(\n 'process',\n {\n input: data,\n options: transferableOptions,\n context: transferableContext\n },\n options.inputOwnership === 'copy' || options.inputOwnership === 'share' ? [] : undefined\n );\n }\n\n const result = await job.result;\n return result.result;\n } catch (error) {\n if (!job.isCancelled) job.abort(error);\n throw error;\n }\n}\n\n/**\n * Processes an input iterator on one leased worker and streams output batches back.\n *\n * The worker remains assigned to this job for the complete iterator lifetime, allowing\n * `processInBatches` implementations to retain parser or encoder state between input batches.\n * Input is demand-driven: the main thread advances the source only when that worker requests the\n * next batch.\n */\nexport function processOnWorkerInBatches<\n InputBatch = any,\n OutputBatch = any,\n Options extends object = {[key: string]: any}\n>(\n worker: WorkerObject<InputBatch, OutputBatch, Options>,\n input: AsyncIterable<InputBatch> | Iterable<InputBatch>,\n options: ProcessOnWorkerOptions & Partial<Options> = {} as ProcessOnWorkerOptions &\n Partial<Options>,\n context: WorkerContext = {},\n jobContext: WorkerJobContext = {}\n): AsyncIterable<OutputBatch> {\n if (\n options.inputOwnership !== undefined &&\n !['copy', 'transfer', 'share'].includes(options.inputOwnership)\n )\n throw new Error('Invalid worker input ownership');\n return processOnWorkerInBatchesIterator(\n worker as WorkerObject,\n input,\n options,\n context,\n jobContext\n );\n}\n\n/** Implements stateful worker batch processing as an async generator. */\nasync function* processOnWorkerInBatchesIterator<InputBatch, OutputBatch>(\n worker: WorkerObject,\n input: AsyncIterable<InputBatch> | Iterable<InputBatch>,\n options: ProcessOnWorkerOptions,\n context: WorkerContext,\n jobContext: WorkerJobContext\n): AsyncIterable<OutputBatch> {\n options = prepareSharedState(options);\n throwIfAborted(options.signal);\n const name = getWorkerName(worker);\n const workerPool =\n options.workerPool ??\n WorkerFarm.getWorkerFarm(options).getWorkerPool(getWorkerPoolTarget(worker, options, name));\n validateSharedInput(options, [serializableOptions(options), jobContext]);\n const contextBytes = getInputByteLength([budgetOptions(options), jobContext]);\n const inputBytes = options.inputBytes ?? contextBytes;\n if (workerPool.requiresInputBytes && options.inputBytes === undefined) {\n throw new Error('Byte-bounded batch sessions require inputBytes');\n }\n if (!Number.isSafeInteger(inputBytes) || inputBytes < contextBytes) {\n throw new RangeError('Batch inputBytes must cover options and context buffers');\n }\n const outputBatches = new AsyncQueue<OutputBatch>();\n const inputIterator = getAsyncIterator(input);\n let outputFinished = false;\n let inputFinished = false;\n let inputCleanupRequested = false;\n let inputRequest = Promise.resolve();\n const batchJobFailed = new Error('Worker batch job failed');\n\n /** Requests cleanup even when the output consumer is paused after yielding a batch. */\n const closeJobInput = (): void => {\n if (!inputFinished && !inputCleanupRequested) {\n inputCleanupRequested = true;\n closeInputIterator(inputIterator);\n }\n };\n\n const finishOutput = (): void => {\n if (!outputFinished) {\n outputFinished = true;\n outputBatches.close();\n }\n };\n const failOutput = (_error: unknown): void => {\n if (!outputFinished) {\n outputFinished = true;\n outputBatches.enqueue(batchJobFailed);\n outputBatches.close();\n }\n };\n\n const job = await workerPool\n .startJob(\n options.jobName || worker.name,\n (activeJob, type, payload) => {\n if (activeJob.isCancelled && type !== 'done' && type !== 'error') return;\n switch (type) {\n case 'progress':\n reportProgress(activeJob, options, payload);\n break;\n\n case 'input-request':\n inputRequest = inputRequest\n .then(async () => {\n if (!activeJob.isRunning) return;\n const nextBatch = await inputIterator.next();\n if (!activeJob.isRunning) {\n return;\n }\n if (nextBatch.done) {\n inputFinished = true;\n activeJob.postMessage('input-done', {});\n } else {\n validateSharedInput(options, nextBatch.value);\n if (\n options.inputBytes !== undefined &&\n getInputByteLength(nextBatch.value) + contextBytes > inputBytes\n ) {\n throw new RangeError('Worker batch exceeds reserved inputBytes');\n }\n activeJob.postMessage(\n 'input-batch',\n {input: nextBatch.value},\n options.inputOwnership === 'copy' || options.inputOwnership === 'share'\n ? []\n : undefined\n );\n }\n })\n .catch(error => {\n if (!activeJob.isCancelled) activeJob.abort(error);\n });\n break;\n\n case 'output-batch':\n outputBatches.push(payload.result as OutputBatch);\n break;\n\n case 'done':\n activeJob.done(payload);\n finishOutput();\n break;\n\n case 'error': {\n const error = new Error(payload.error || 'Worker batch processing failed');\n error.name = payload.errorName || 'Error';\n activeJob.error(error);\n failOutput(error);\n break;\n }\n\n case 'process':\n void onMessage(context, options, activeJob, type, payload);\n break;\n\n default: {\n const error = new Error(`Unexpected worker batch message: ${type}`);\n activeJob.error(error);\n failOutput(error);\n break;\n }\n }\n },\n undefined,\n options.signal,\n {\n inputBytes,\n priority: options.priority,\n admission: options.admission,\n sharedState: options.sharedState ? new SharedWorkerState(options.sharedState) : undefined,\n cancellationMode: options.cancellationMode,\n cancellationTimeout: options.cancellationTimeout\n }\n )\n .catch(error => {\n closeJobInput();\n throw error;\n });\n\n void job.result.catch(error => {\n failOutput(error);\n closeJobInput();\n });\n\n try {\n const workerOptions = serializableOptions(options);\n if (job.isRunning) {\n job.postMessage(\n 'process-in-batches',\n {\n options: getTransferListForWriter(workerOptions),\n context: getTransferListForWriter(jobContext)\n },\n options.inputOwnership === 'copy' || options.inputOwnership === 'share' ? [] : undefined\n );\n }\n\n try {\n for await (const outputBatch of outputBatches) {\n yield outputBatch;\n if (job.isRunning) {\n job.postMessage('output-ack', {});\n }\n }\n } catch (error) {\n if (error === batchJobFailed) {\n await job.result;\n }\n throw error;\n }\n await job.result;\n } finally {\n if (job.isRunning && !job.isCancelled) {\n job.abort(createAbortError('Worker batch iterator was closed'));\n }\n closeJobInput();\n }\n}\n\n/** Throws a cross-runtime abort error when a signal is already aborted. */\nfunction throwIfAborted(signal?: AbortSignal): void {\n if (!signal?.aborted) {\n return;\n }\n throw getAbortReason(signal);\n}\n\n/** Returns a caller-provided abort reason or a cross-runtime `AbortError`. */\nfunction getAbortReason(signal?: AbortSignal): unknown {\n return signal ? signal.reason : createAbortError('Worker job was aborted');\n}\n\n/** Creates an abort error without requiring the DOMException global. */\nfunction createAbortError(message: string): Error {\n const error = new Error(message);\n error.name = 'AbortError';\n return error;\n}\n\n/** Returns an asynchronous iterator for either accepted source kind. */\nfunction getAsyncIterator<T>(input: AsyncIterable<T> | Iterable<T>): AsyncIterator<T> {\n if (Symbol.asyncIterator in input) {\n return input[Symbol.asyncIterator]();\n }\n return (async function* iterateSynchronously() {\n yield* input;\n })();\n}\n\n/** Closes an input iterator without allowing a blocked return to delay cancellation. */\nfunction closeInputIterator<InputBatch>(inputIterator: AsyncIterator<InputBatch>): void {\n try {\n void Promise.resolve(inputIterator.return?.()).catch(() => undefined);\n } catch {\n // The worker job has already been aborted; iterator cleanup is best effort.\n }\n}\n\n/**\n * Warm-start one or more workers in the same pool used by processOnWorker.\n * @param worker Worker object to preload.\n * @param options Worker options used to resolve the worker pool.\n * @param preloadOptions Preload options.\n */\nexport async function preloadWorker(\n worker: WorkerObject,\n options: ProcessOnWorkerOptions = {},\n preloadOptions: PreloadWorkerOptions = {}\n): Promise<void> {\n const name = getWorkerName(worker);\n const workerPool =\n options.workerPool ??\n WorkerFarm.getWorkerFarm(options).getWorkerPool(getWorkerPoolTarget(worker, options, name));\n const count =\n preloadOptions.count ??\n options.maxConcurrency ??\n options.workerPool?.maxConcurrency ??\n options['core']?.maxConcurrency ??\n 1;\n if (!Number.isSafeInteger(count) || count < 0) throw new RangeError('Invalid preload count');\n\n const preloadJobs = Array.from({length: count}, async () => {\n const job = await workerPool.startJob(\n `${worker.name} preload`,\n onPreloadMessage,\n undefined,\n options.signal\n );\n job.postMessage('preload', {});\n return await job.result;\n });\n\n await Promise.all(preloadJobs);\n}\n\n/**\n * Resolves the worker source while preserving URL overrides and classic-worker fallbacks.\n * @param worker Worker descriptor to resolve.\n * @param options Options for the active worker operation.\n * @param name Versioned worker name.\n * @returns A target suitable for worker-pool lookup.\n */\nexport function getWorkerPoolTarget(\n worker: WorkerObject,\n options: ProcessOnWorkerOptions,\n name: string\n): WorkerPoolTarget {\n if (options['source']) {\n return {name, source: options['source'], workerType: options.workerType};\n }\n\n const customWorkerUrl = getCustomWorkerURL(worker, options);\n if (customWorkerUrl) {\n return {name, url: customWorkerUrl, workerType: options.workerType};\n }\n\n if (isBrowser && worker.loadWorker) {\n return {\n name,\n workerType: options.workerType,\n loadWorker: worker.loadWorker,\n getUrl: () => getWorkerURL(worker, options),\n urlKey: getDefaultWorkerURL(worker)\n };\n }\n\n return {name, url: getWorkerURL(worker, options), workerType: options.workerType};\n}\n\n/**\n * Job completes when we receive the result\n * @param job\n * @param message\n */\nasync function onMessage(\n context: WorkerContext,\n options: ProcessOnWorkerOptions,\n job: WorkerJob,\n type: WorkerMessageType,\n payload: WorkerMessagePayload\n) {\n if (job.isCancelled && type !== 'done' && type !== 'error') return;\n switch (type) {\n case 'progress':\n reportProgress(job, options, payload);\n break;\n\n case 'done':\n // Worker is done\n job.done(payload);\n break;\n\n case 'error':\n // Worker encountered an error\n const error = new Error(payload.error);\n error.name = payload.errorName || 'Error';\n job.error(error);\n break;\n\n case 'process':\n // Worker is asking for us (main thread) to process something\n const {id, input, options: processOptions} = payload;\n try {\n if (!context.process) {\n job.postMessage('error', {id, error: 'Worker not set up to process on main thread'});\n return;\n }\n const result = await context.process(\n input,\n {...processOptions, signal: options.signal, onProgress: options.onProgress},\n undefined,\n payload.context || {}\n );\n job.postMessage('done', {id, result});\n } catch (error) {\n const message = error instanceof Error ? error.message : 'unknown error';\n job.postMessage('error', {id, error: message});\n }\n break;\n\n default:\n // eslint-disable-next-line\n // biome-ignore lint/suspicious/noConsole: Preserve upstream worker diagnostics.\n console.warn(`process-on-worker: unknown message ${type}`);\n }\n}\n\n/**\n * Completes a preload job when the worker acknowledges the preload message.\n * @param job Worker job.\n * @param type Worker message type.\n * @param payload Worker message payload.\n */\nfunction onPreloadMessage(job: WorkerJob, type: WorkerMessageType, payload: WorkerMessagePayload) {\n switch (type) {\n case 'done':\n job.done(payload);\n break;\n\n case 'error':\n job.error(new Error(payload.error));\n break;\n\n default:\n // eslint-disable-next-line\n // biome-ignore lint/suspicious/noConsole: Preserve upstream worker diagnostics.\n console.warn(`process-on-worker: unknown preload message ${type}`);\n }\n}\n\n/** Delivers progress; callback failures terminate the job and settle its caller. */\nfunction reportProgress(\n job: WorkerJob,\n options: ProcessOnWorkerOptions,\n payload: WorkerMessagePayload\n): void {\n if (!job.isRunning || job.isCancelled || !payload.progress) return;\n try {\n options.onProgress?.(payload.progress);\n } catch (error) {\n job.abort(error);\n }\n}\n\n/** Keep runtime objects, callbacks and cancellation controls on the calling thread. */\nfunction serializableOptions(options: ProcessOnWorkerOptions): Record<string, any> {\n const {signal, onProgress, onMetrics, workerPool, admission, workerType, ...serializable} =\n options;\n return serializable;\n}\n\n/** Share mode forbids accidentally cloning or detaching ordinary transferable storage. */\nexport function validateSharedInput(options: WorkerOptions, input: unknown): void {\n if (options.inputOwnership === 'share' && getTransferList(input).length) {\n throw new Error(\n 'Share ownership requires SharedArrayBuffer storage; ordinary transferables are not allowed'\n );\n }\n}\n\n/** Runtime control storage is fixed overhead, not part of application input reservations. */\nfunction budgetOptions(options: ProcessOnWorkerOptions): Record<string, any> {\n const {sharedState, ...inputOptions} = serializableOptions(options);\n return inputOptions;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {\n WorkerProgress,\n WorkerMessageType,\n WorkerMessagePayload,\n WorkerContext,\n WorkerJobContext,\n Process,\n ProcessInBatches\n} from '../../types';\nimport {SharedWorkerState} from './shared-state';\nimport AsyncQueue from '../async-queue/async-queue';\nimport WorkerBody from '../worker-farm/worker-body';\n// import {validateWorkerVersion} from './validate-worker-version';\n\n/** Counter for jobs */\nlet requestId = 0;\nlet activeController: AbortController | null = null;\nlet activeInputBatches: AsyncQueue<any> | null = null;\nlet activeOutputAcknowledgements: AsyncQueue<void> | null = null;\n\nexport type ProcessOnMainThread = (\n data: any,\n options?: {[key: string]: any},\n jobContext?: WorkerJobContext\n) => any;\n\n/**\n * Set up a WebWorkerGlobalScope to talk with the main thread\n */\nexport async function createWorker(\n process: Process,\n processInBatches?: ProcessInBatches\n): Promise<void> {\n if (!(await WorkerBody.inWorkerThread())) {\n return;\n }\n\n const context: WorkerContext = {\n process: processOnMainThread\n };\n\n // eslint-disable-next-line complexity\n WorkerBody.onmessage = async (type: WorkerMessageType, payload: WorkerMessagePayload) => {\n if (type === 'cancel') {\n activeController?.abort();\n activeInputBatches?.close();\n activeOutputAcknowledgements?.close();\n return;\n }\n const controller =\n type === 'process' || type === 'process-in-batches' ? new AbortController() : undefined;\n if (controller) activeController = controller;\n const startedAt = performance.now();\n const reporter =\n type === 'process' || type === 'process-in-batches' ? createProgressReporter() : undefined;\n let sharedState: SharedWorkerState | undefined;\n const throwIfAborted = () => {\n controller?.signal.throwIfAborted();\n sharedState?.throwIfCancelled();\n };\n const jobContext = {\n ...context,\n signal: controller?.signal,\n sharedState,\n throwIfAborted,\n reportProgress: (progress: WorkerProgress) => {\n if (!controller?.signal.aborted && !sharedState?.snapshot.cancelled)\n reporter?.report(progress);\n }\n };\n try {\n if (controller && payload.options?.['sharedState']) {\n sharedState = new SharedWorkerState(payload.options['sharedState']);\n jobContext.sharedState = sharedState;\n }\n switch (type) {\n case 'preload':\n WorkerBody.postMessage('done', {});\n break;\n\n case 'process':\n throwIfAborted();\n if (!process) {\n throw new Error('Worker does not support atomic processing');\n }\n const result = await process(\n payload.input,\n payload.options || {},\n jobContext,\n payload.context || {}\n );\n throwIfAborted();\n reporter?.finish();\n await WorkerBody.postMessage('done', {\n result,\n executionMs: performance.now() - startedAt\n });\n break;\n\n case 'process-in-batches':\n throwIfAborted();\n if (!processInBatches) {\n throw new Error('Worker does not support batched processing');\n }\n const inputBatches = new AsyncQueue<any>();\n const outputAcknowledgements = new AsyncQueue<void>();\n activeInputBatches = inputBatches;\n activeOutputAcknowledgements = outputAcknowledgements;\n try {\n const resultIterator = processInBatches(\n createDemandDrivenIterator(inputBatches),\n payload.options || {},\n jobContext,\n payload.context || {}\n );\n for await (const batch of resultIterator) {\n throwIfAborted();\n await WorkerBody.postMessage('output-batch', {result: batch});\n await outputAcknowledgements.next();\n }\n throwIfAborted();\n reporter?.finish();\n await WorkerBody.postMessage('done', {executionMs: performance.now() - startedAt});\n } finally {\n activeInputBatches = null;\n activeOutputAcknowledgements = null;\n }\n break;\n\n case 'input-batch':\n if (!activeInputBatches) {\n throw new Error('Worker has no active batched processing session');\n }\n activeInputBatches.push(payload.input);\n break;\n\n case 'input-done':\n if (!activeInputBatches) {\n throw new Error('Worker has no active batched processing session');\n }\n activeInputBatches.close();\n break;\n\n case 'output-ack':\n if (!activeOutputAcknowledgements) {\n throw new Error('Worker has no active batched processing session');\n }\n activeOutputAcknowledgements.push(undefined);\n break;\n\n default:\n }\n } catch (error) {\n reporter?.finish(controller?.signal.aborted || sharedState?.snapshot.cancelled);\n const message = error instanceof Error ? error.message : '';\n await WorkerBody.postMessage('error', {\n error: message,\n errorName: error instanceof Error ? error.name : 'Error'\n });\n } finally {\n if (controller && activeController === controller) activeController = null;\n }\n };\n await WorkerBody.postMessage('ready', {});\n}\n\n/** Requests exactly one input batch whenever the worker-side processor advances its iterator. */\nasync function* createDemandDrivenIterator(inputBatches: AsyncQueue<any>): AsyncIterable<any> {\n while (true) {\n await WorkerBody.postMessage('input-request', {});\n const nextBatch = await inputBatches.next();\n if (nextBatch.done) {\n return;\n }\n yield nextBatch.value;\n }\n}\n\nfunction processOnMainThread(arrayBuffer: ArrayBuffer, options = {}, jobContext = {}) {\n const signal = activeController?.signal;\n signal?.throwIfAborted();\n return new Promise((resolve, reject) => {\n const id = requestId++;\n const cleanup = () => {\n signal?.removeEventListener('abort', abort);\n void WorkerBody.removeEventListener(onMessage);\n };\n const abort = () => {\n cleanup();\n reject(signal?.reason);\n };\n const onMessage = (type: string, payload: WorkerMessagePayload) => {\n if (payload.id !== id) return;\n if (type === 'done') {\n cleanup();\n resolve(payload.result);\n } else if (type === 'error') {\n cleanup();\n reject(payload.error);\n }\n };\n void WorkerBody.addEventListener(onMessage)\n .then(async () => {\n if (signal?.aborted) {\n abort();\n return;\n }\n signal?.addEventListener('abort', abort, {once: true});\n await WorkerBody.postMessage('process', {\n id,\n input: arrayBuffer,\n options,\n context: jobContext\n });\n })\n .catch(error => {\n cleanup();\n reject(error);\n });\n });\n}\n\n/** Coalesces same-phase reports per event-loop turn and flushes before settlement. */\nfunction createProgressReporter() {\n let pending: WorkerProgress | undefined;\n let finished = false;\n let scheduled = false;\n /** Posts the latest pending measurement. */\n const flush = (): void => {\n scheduled = false;\n if (pending) {\n WorkerBody.postMessage('progress', {progress: pending});\n pending = undefined;\n }\n };\n return {\n /** Records progress while retaining phase transitions. */\n report(progress: WorkerProgress): void {\n if (finished) return;\n if (pending && pending.phase !== progress.phase) flush();\n pending = {...progress};\n if (!scheduled) {\n scheduled = true;\n setTimeout(flush, 0);\n }\n },\n /** Flushes final progress and suppresses reports from stale callbacks. */\n finish(discard = false): void {\n if (discard) pending = undefined;\n flush();\n finished = true;\n }\n };\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {WorkerObject} from './types';\nimport {VERSION} from './lib/env-utils/version';\ndeclare const __filename: string;\n\n// TYPES\nexport type {\n LoadWorker,\n WorkerObject,\n WorkerOptions,\n WorkerProgress,\n WorkerJobMetrics,\n WorkerPoolStats,\n WorkerContext,\n WorkerJobContext,\n Process,\n ProcessInBatches,\n // Protocol\n WorkerMessage,\n WorkerMessageType,\n WorkerMessageData,\n WorkerMessagePayload\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {isBrowser, isWorker} from './lib/env-utils/globals';\n\n// WORKER UTILS - TYPES\nexport {default as WorkerJob} from './lib/worker-farm/worker-job';\nexport {default as WorkerThread} from './lib/worker-farm/worker-thread';\n\n// WORKER FARMS\nexport {default as WorkerFarm} from './lib/worker-farm/worker-farm';\nexport {default as WorkerPool} from './lib/worker-farm/worker-pool';\nexport {default as WorkerBody} from './lib/worker-farm/worker-body';\n\n// PROCESS ON WORKER\nexport type {ProcessOnWorkerOptions} from './lib/worker-api/process-on-worker';\nexport type {PreloadWorkerOptions} from './lib/worker-api/process-on-worker';\nexport {\n processOnWorker,\n processOnWorkerInBatches,\n preloadWorker,\n canProcessOnWorker,\n canProcessOnWorkerInBatches\n} from './lib/worker-api/process-on-worker';\nexport {createWorker} from './lib/worker-api/create-worker';\n\n// WORKER UTILS - EXPORTS\nexport {getWorkerURL} from './lib/worker-api/get-worker-url';\nexport {validateWorkerVersion} from './lib/worker-api/validate-worker-version';\nexport {getTransferList, getTransferListForWriter} from './lib/worker-utils/get-transfer-list';\n\n// LIBRARY UTILS\nexport {\n extractLoadLibraryOptions,\n getLibraryUrl,\n loadLibrary,\n type LoadLibraryOptions\n} from './lib/library-utils/library-utils';\n\n// PARSER UTILS\nexport {default as AsyncQueue} from './lib/async-queue/async-queue';\n\n// WORKER OBJECTS\n\n/** A null worker to test that worker processing is functional */\nconst path = typeof __filename === 'string' ? __filename.replace(/\\\\/g, '/') : '';\nconst moduleUrl = path\n ? `file://${path.startsWith('/') ? '' : '/'}${encodeURI(path).replace(/#/g, '%23').replace(/\\?/g, '%3F')}`\n : import.meta.url;\nexport const NullWorker: WorkerObject = {\n id: 'null',\n name: 'null',\n module: 'core',\n packageName: '@math.gl/core',\n // Drop the entire URL expression when classic bundles do not use this descriptor.\n worker: /* @__PURE__ */ (() => new URL('./workers/null-worker.js', moduleUrl).href)(),\n loadWorker: () =>\n new Worker(new URL('./workers/null-worker.js', import.meta.url), {type: 'module'}),\n version: VERSION,\n options: {\n null: {}\n }\n};\n\nexport type {WorkerAdmission, WorkerPoolProps} from './lib/worker-farm/worker-pool';\nexport {createWorkerResource, createResourceWorker} from './lib/worker-api/worker-resource';\nexport type {\n WorkerResource,\n WorkerResourceRunOptions,\n WorkerResourceObject,\n ResourceRequest\n} from './lib/worker-api/worker-resource';\n\nexport {\n getWorkerCapabilities,\n createSharedWorkerState,\n SharedWorkerState\n} from './lib/worker-api/shared-state';\nexport type {WorkerCapabilities, SharedWorkerSnapshot} from './lib/worker-api/shared-state';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global importScripts */\nimport {isBrowser, isWorker} from '../env-utils/globals';\nimport {assert} from '../env-utils/assert';\nimport {VERSION} from '../env-utils/version';\n\nexport type LoadLibraryOptions<ModulesT extends Record<string, any> = Record<string, any>> = {\n useLocalLibraries?: boolean;\n CDN?: string | null;\n modules?: ModulesT;\n // Core must not be supplied\n core?: never;\n};\n\ntype ExtractableLoadLibraryOptions<ModulesT extends Record<string, any> = Record<string, any>> = {\n useLocalLibraries?: boolean;\n CDN?: string | null;\n modules?: ModulesT;\n core?: {\n useLocalLibraries?: boolean;\n CDN?: string | null;\n } | null;\n};\n\nconst loadLibraryPromises: Record<string, Promise<any>> = {}; // promises\n\nexport function extractLoadLibraryOptions<\n ModulesT extends Record<string, any> = Record<string, any>\n>(options: ExtractableLoadLibraryOptions<ModulesT> = {}): LoadLibraryOptions<ModulesT> {\n const useLocalLibraries = options.useLocalLibraries ?? options.core?.useLocalLibraries;\n const CDN = getCDNOption(options.CDN, options.core?.CDN);\n const modules = options.modules;\n\n return {\n ...(useLocalLibraries !== undefined ? {useLocalLibraries} : {}),\n ...(CDN !== undefined ? {CDN} : {}),\n ...(modules !== undefined ? {modules} : {})\n };\n}\n\n/**\n * Extracts a valid CDN option from normalized or legacy loader options.\n * @param cdn Deprecated top-level CDN option.\n * @param coreCDN Nested core CDN option.\n * @returns CDN option if it is a string or null.\n */\nfunction getCDNOption(cdn: unknown, coreCDN: unknown): string | null | undefined {\n if (typeof cdn === 'string' || cdn === null) {\n return cdn;\n }\n if (typeof coreCDN === 'string' || coreCDN === null) {\n return coreCDN;\n }\n return undefined;\n}\n\n/**\n * Dynamically loads a library (\"module\")\n *\n * - wasm library: Array buffer is returned\n * - js library: Parse JS is returned\n *\n * Method depends on environment\n * - browser - script element is created and installed on document\n * - classic worker - importScripts loads a classic wrapper\n * - module worker - native import loads an ESM wrapper and returns its exports\n * - node - file is required\n *\n * @param libraryUrl\n * @param moduleName\n * @param options\n * @param libraryName Classic asset name used for URL resolution and overrides.\n * @param moduleLibraryName ESM asset name used by module workers unless the classic URL is overridden.\n */\nexport async function loadLibrary(\n libraryUrl: string,\n moduleName: string | null = null,\n options: LoadLibraryOptions = {},\n libraryName: string | null = null,\n moduleLibraryName: string | null = null\n): Promise<any> {\n let moduleLibraryUrl = libraryUrl;\n if (moduleName) {\n const requestedLibraryName = libraryName || libraryUrl;\n const injectedLibrary = options.modules?.[requestedLibraryName];\n if (injectedLibrary !== undefined && typeof injectedLibrary !== 'string') {\n return injectedLibrary;\n }\n libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);\n const hasLibraryOverride = typeof injectedLibrary === 'string';\n moduleLibraryUrl =\n moduleLibraryName &&\n (!hasLibraryOverride || typeof options.modules?.[moduleLibraryName] === 'string')\n ? getLibraryUrl(moduleLibraryName, moduleName, options, moduleLibraryName)\n : libraryUrl;\n }\n // Workers may select different ESM adapters for the same classic asset.\n const cacheKey = getLibraryCacheKey(libraryUrl, moduleLibraryUrl, isWorker);\n\n loadLibraryPromises[cacheKey] =\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n loadLibraryPromises[cacheKey] || loadLibraryFromFile(libraryUrl, moduleLibraryUrl);\n return await loadLibraryPromises[cacheKey];\n}\n\n/** Identifies a library load, including the alternate adapter available in workers. */\nexport function getLibraryCacheKey(\n libraryUrl: string,\n moduleLibraryUrl: string,\n worker: boolean\n): string {\n return worker ? JSON.stringify([libraryUrl, moduleLibraryUrl]) : libraryUrl;\n}\n\n// TODO - sort out how to resolve paths for main/worker and dev/prod\nexport function getLibraryUrl(\n library: string,\n moduleName?: string,\n options: LoadLibraryOptions = {},\n libraryName: string | null = null\n): string {\n if (options?.core) {\n throw new Error('loadLibrary: options.core must be pre-normalized');\n }\n libraryName = libraryName || library;\n\n // Allow application to import and supply libraries through `options.modules`\n // TODO - See js-module-utils in loader-utils\n const modules = options.modules || {};\n if (typeof modules[libraryName] === 'string') {\n return modules[libraryName];\n }\n\n // Check if already a URL after checking overrides so callers can replace\n // default CDN URLs with locally bundled assets.\n if (!options.useLocalLibraries && library.startsWith('http')) {\n return library;\n }\n\n // Load from local files, not from CDN scripts in Node.js\n // TODO - needs to locate the modules directory when installed!\n if (!isBrowser) {\n return `modules/${moduleName}/dist/libs/${libraryName}`;\n }\n\n // In browser, load from external scripts\n if (options.CDN) {\n if (typeof options.CDN !== 'string') {\n throw new Error('loadLibrary: options.CDN must be a string or null');\n }\n assert(options.CDN.startsWith('http'));\n return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${libraryName}`;\n }\n\n // TODO - loading inside workers requires paths relative to worker script location...\n if (isWorker) {\n return libraryName.endsWith('.mjs') ? `./libs/${libraryName}` : `../src/libs/${libraryName}`;\n }\n\n return `modules/${moduleName}/src/libs/${libraryName}`;\n}\n\nasync function loadLibraryFromFile(libraryUrl: string, moduleLibraryUrl: string): Promise<any> {\n if (libraryUrl.endsWith('wasm')) {\n return await loadAsArrayBuffer(libraryUrl);\n }\n\n if (!isBrowser) {\n // TODO - Node doesn't yet support dynamic import from https URLs\n // try {\n // return await import(libraryUrl);\n // } catch (error) {\n // console.error(error);\n // }\n const {requireFromFile} = globalThis.loaders || {};\n try {\n const result = await requireFromFile?.(libraryUrl);\n if (result || !libraryUrl.includes('/dist/libs/')) {\n return result;\n }\n return await requireFromFile?.(libraryUrl.replace('/dist/libs/', '/src/libs/'));\n } catch (error) {\n if (libraryUrl.includes('/dist/libs/')) {\n try {\n return await requireFromFile?.(libraryUrl.replace('/dist/libs/', '/src/libs/'));\n } catch {\n // ignore\n }\n }\n console.error(error); // eslint-disable-line no-console\n return null;\n }\n }\n if (isWorker) {\n return loadLibraryInWorker(libraryUrl, moduleLibraryUrl);\n }\n // TODO - fix - should be more secure than string parsing since observes CORS\n // if (isBrowser) {\n // return await loadScriptFromFile(libraryUrl);\n // }\n\n const scriptSource = await loadAsText(libraryUrl);\n return loadLibraryFromString(scriptSource, libraryUrl);\n}\n\n/** Loads classic scripts or native ESM exports without evaluating fetched source or masking failures. */\nexport async function loadLibraryInWorker(\n libraryUrl: string,\n moduleLibraryUrl: string = libraryUrl\n): Promise<unknown> {\n try {\n // A zero-argument probe rejects in module workers without loading any script.\n importScripts();\n } catch {\n // Resolve local asset paths against the same worker location used by importScripts.\n const moduleUrl = new URL(moduleLibraryUrl, globalThis.location.href).href;\n const library = await import(/* @vite-ignore */ moduleUrl);\n return library.default ?? library;\n }\n return importScripts(libraryUrl);\n}\n\n/** Installs fetched library source on the browser main thread. Workers use script or module loading. */\nfunction loadLibraryFromString(scriptSource: string, id: string): null | any {\n const script = document.createElement('script');\n script.id = id;\n // most browsers like a separate text node but some throw an error. The second method covers those.\n try {\n script.appendChild(document.createTextNode(scriptSource));\n } catch (_e) {\n script.text = scriptSource;\n }\n document.body.appendChild(script);\n return null;\n}\n\nasync function loadAsArrayBuffer(url: string): Promise<ArrayBuffer> {\n const {readFileAsArrayBuffer} = globalThis.loaders || {};\n if (isBrowser || !readFileAsArrayBuffer || url.startsWith('http')) {\n const response = await fetch(url);\n return await response.arrayBuffer();\n }\n try {\n return await readFileAsArrayBuffer(url);\n } catch {\n if (url.includes('/dist/libs/')) {\n return await readFileAsArrayBuffer(url.replace('/dist/libs/', '/src/libs/'));\n }\n throw new Error(`Failed to load ArrayBuffer from ${url}`);\n }\n}\n\n/**\n * Load a file from local file system\n * @param filename\n * @returns\n */\nasync function loadAsText(url: string): Promise<string> {\n const {readFileAsText} = globalThis.loaders || {};\n if (isBrowser || !readFileAsText || url.startsWith('http')) {\n const response = await fetch(url);\n return await response.text();\n }\n try {\n return await readFileAsText(url);\n } catch {\n if (url.includes('/dist/libs/')) {\n return await readFileAsText(url.replace('/dist/libs/', '/src/libs/'));\n }\n throw new Error(`Failed to load text from ${url}`);\n }\n}\n\n/*\nasync function loadScriptFromFile(libraryUrl) {\n const script = document.createElement('script');\n script.src = libraryUrl;\n return await new Promise((resolve, reject) => {\n script.onload = data => {\n resolve(data);\n };\n script.onerror = reject;\n });\n}\n*/\n\n// TODO - technique for module injection into worker, from THREE.DracoLoader...\n/*\nfunction combineWorkerWithLibrary(worker, jsContent) {\n var fn = wWorker.toString();\n var body = [\n '// injected',\n jsContent,\n '',\n '// worker',\n fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'))\n ].join('\\n');\n this.workerSourceURL = URL.createObjectURL(new Blob([body]));\n}\n*/\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Purpose: include this in your module to avoid\n// dependencies on micro modules like 'global' and 'is-browser';\n\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\n\ntype obj = {[key: string]: any};\nconst self_: obj = globals.self || globals.window || globals.global || {};\nconst window_: obj = globals.window || globals.self || globals.global || {};\nconst global_: obj = globals.global || globals.self || globals.window || {};\nconst document_: obj = globals.document || {};\n\nexport {self_ as self, window_ as window, global_ as global, document_ as document};\n\n/** true if running in a browser */\nexport const isBrowser: boolean =\n // @ts-ignore process does not exist on browser\n Boolean(typeof process !== 'object' || String(process) !== '[object process]' || process.browser);\n\n/** true if running in a worker thread */\nexport const isWorker: boolean = typeof importScripts === 'function';\n\n// Extract node major version\nconst matches =\n typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n/** Major Node version (as a number) */\nexport const nodeVersion: number = (matches && parseFloat(matches[1])) || 0;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/**\n * Initializes a WASM factory that reports readiness through a callback, a thenable, or both.\n * @param initialize - Starts initialization and forwards any available ready/error callbacks.\n * @param extractExports - Initializes the module and returns a plain, non-thenable export object.\n * @returns Extracted exports, or a rejection with the original initialization/setup error.\n * @remarks Never resolve with the raw Emscripten module: its thenable can recurse during assimilation.\n * Dependencies must expose a rejection or abort hook for asynchronous failures to be observable.\n */\nexport function initializeWasmModule<Module, ModuleExports>(\n initialize: (\n onInitialized: (module: Module) => void,\n onError: (error: unknown) => void\n ) => PromiseLike<Module> | void,\n extractExports: (module: Module) => ModuleExports\n): Promise<ModuleExports> {\n return new Promise((resolve, reject) => {\n let isSettled = false;\n\n /** Rejects once and prevents a late ready callback from running module setup. */\n function rejectInitialization(error: unknown): void {\n if (!isSettled) {\n isSettled = true;\n reject(error);\n }\n }\n\n /** Extracts safe exports once, even when the factory uses both completion mechanisms. */\n function resolveInitialization(module: Module): void {\n if (isSettled) {\n return;\n }\n isSettled = true;\n try {\n resolve(extractExports(module));\n } catch (error) {\n reject(error);\n }\n }\n\n try {\n const modulePromise = initialize(resolveInitialization, rejectInitialization);\n modulePromise?.then(resolveInitialization, rejectInitialization);\n } catch (error) {\n rejectInitialization(error);\n }\n });\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {WorkerFarm} from '@loaders.gl/core/worker-utils';\nimport {Writer, WriterOptions} from '../../writer-types';\nimport {isBrowser} from '../env-utils/globals';\n\n/**\n * Determines if a loader can parse with worker\n * @param loader\n * @param options\n */\nexport function canEncodeWithWorker(writer: Writer, options?: WriterOptions) {\n if (!WorkerFarm.isSupported()) {\n return false;\n }\n\n const nodeWorkers = options?._nodeWorkers ?? options?.core?._nodeWorkers;\n const useWorkers = options?.worker ?? options?.core?.worker;\n\n // Node workers are still experimental\n if (!isBrowser && !nodeWorkers) {\n return false;\n }\n\n return Boolean(writer.worker && useWorkers);\n}\n", "// math.gl\n// SPDX-License-Identifier: MIT\n// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors\n\nimport type {TypedArrayConstructor} from './array-types';\nimport {getTypedArrayName} from './typed-array-brand';\n\n/**\n * Checks for native Float16Array values, including arrays from other realms.\n * Does not identify Uint16Array binary16 storage as a decoded Float16Array.\n * Does not require a Float16Array constructor in the current realm.\n */\nexport function isFloat16Array(value: unknown): value is Float16Array {\n return getTypedArrayName(value) === 'Float16Array';\n}\n\n/**\n * The native `Float16Array` constructor exposed by the current JavaScript runtime.\n *\n * @remarks This is `undefined` when the runtime does not provide `Float16Array`. The value is\n * captured when this module is evaluated, so a polyfill must be installed before importing\n * `@math.gl/core`.\n */\nexport const NativeFloat16ArrayConstructor: TypedArrayConstructor | undefined =\n globalThis.Float16Array;\n\n/**\n * Returns the typed array constructor used for half-precision storage.\n *\n * @returns The native `Float16Array` constructor when available, otherwise `Uint16Array`.\n * @remarks The `Uint16Array` fallback stores encoded IEEE 754 binary16 bit patterns. Unlike a\n * native `Float16Array`, it does not encode numeric assignments or decode values when read.\n */\nexport function getFloat16ArrayConstructor(): TypedArrayConstructor {\n return NativeFloat16ArrayConstructor ?? Uint16Array;\n}\n\n/**\n * Checks whether a value is the native `Float16Array` constructor for the current runtime.\n *\n * @param value The value to test.\n * @returns `true` when `value` matches `NativeFloat16ArrayConstructor`. Returns `false` for the\n * `Uint16Array` fallback.\n */\nexport function isFloat16ArrayConstructor(value: unknown): boolean {\n return Boolean(NativeFloat16ArrayConstructor && value === NativeFloat16ArrayConstructor);\n}\n", "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './io/adapters.js';\nimport { Builder } from './builder.js';\nimport { RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, } from './ipc/reader.js';\nimport { RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, } from './ipc/writer.js';\nimport { toDOMStream } from './io/whatwg/iterable.js';\nimport { builderThroughDOMStream } from './io/whatwg/builder.js';\nimport { recordBatchReaderThroughDOMStream } from './io/whatwg/reader.js';\nimport { recordBatchWriterThroughDOMStream } from './io/whatwg/writer.js';\n\nstreamAdapters.toDOMStream = toDOMStream;\nBuilder['throughDOM'] = builderThroughDOMStream;\nRecordBatchReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchFileReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchStreamReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\nRecordBatchFileWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\nRecordBatchStreamWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\n\nexport type {\n TypeMap, StructRowProxy,\n ReadableSource, WritableSink,\n ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions,\n IntervalDayTimeObject, IntervalMonthDayNanoObject,\n Codec\n} from './Arrow.js';\n\nexport {\n DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType,\n Data, makeData,\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8, LargeUtf8, Utf8View,\n Binary, LargeBinary, BinaryView,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n LargeList,\n Struct, StructRow,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth, IntervalMonthDayNano,\n Duration, DurationSecond, DurationMillisecond, DurationMicrosecond, DurationNanosecond,\n FixedSizeList,\n Map_, MapRow,\n Table, makeTable, tableFromArrays,\n Schema, Field,\n Visitor,\n Vector, makeVector, vectorFromArray, tableFromJSON,\n ByteStream, AsyncByteStream, AsyncByteQueue,\n RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader,\n RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter,\n tableFromIPC, tableToIPC,\n MessageReader, AsyncMessageReader, JSONMessageReader,\n Message,\n RecordBatch,\n util,\n Builder, makeBuilder, builderThroughIterable, builderThroughAsyncIterable,\n compressionRegistry, CompressionType,\n isArrowSchema,\n isArrowField,\n isArrowDataType,\n isArrowData,\n isArrowVector,\n isArrowRecordBatch,\n isArrowTable\n} from './Arrow.js';\n\nexport {\n BinaryBuilder, BinaryViewBuilder, LargeBinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder, IntervalMonthDayNanoBuilder,\n DurationBuilder, DurationSecondBuilder, DurationMillisecondBuilder, DurationMicrosecondBuilder, DurationNanosecondBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n LargeListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder, Utf8ViewBuilder, LargeUtf8Builder\n} from './Arrow.js';\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n", null, null, null, null, null, null, null, null, null, null, "export const SIZEOF_SHORT = 2;\nexport const SIZEOF_INT = 4;\nexport const FILE_IDENTIFIER_LENGTH = 4;\nexport const SIZE_PREFIX_LENGTH = 4;\n", "export const int32 = new Int32Array(2);\nexport const float32 = new Float32Array(int32.buffer);\nexport const float64 = new Float64Array(int32.buffer);\nexport const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\n", "export var Encoding;\n(function (Encoding) {\n Encoding[Encoding[\"UTF8_BYTES\"] = 1] = \"UTF8_BYTES\";\n Encoding[Encoding[\"UTF16_STRING\"] = 2] = \"UTF16_STRING\";\n})(Encoding || (Encoding = {}));\n", "import { FILE_IDENTIFIER_LENGTH, SIZEOF_INT } from './constants.js';\nimport { Encoding } from './encoding.js';\nimport { float32, float64, int32, isLittleEndian } from './utils.js';\nexport class ByteBuffer {\n /**\n * Create a new ByteBuffer with a given array of bytes (`Uint8Array`)\n */\n constructor(bytes_) {\n this.bytes_ = bytes_;\n this.position_ = 0;\n this.text_decoder_ = new TextDecoder();\n }\n /**\n * Create and allocate a new ByteBuffer with a given size.\n */\n static allocate(byte_size) {\n return new ByteBuffer(new Uint8Array(byte_size));\n }\n clear() {\n this.position_ = 0;\n }\n /**\n * Get the underlying `Uint8Array`.\n */\n bytes() {\n return this.bytes_;\n }\n /**\n * Get the buffer's position.\n */\n position() {\n return this.position_;\n }\n /**\n * Set the buffer's position.\n */\n setPosition(position) {\n this.position_ = position;\n }\n /**\n * Get the buffer's capacity.\n */\n capacity() {\n return this.bytes_.length;\n }\n readInt8(offset) {\n return (this.readUint8(offset) << 24) >> 24;\n }\n readUint8(offset) {\n return this.bytes_[offset];\n }\n readInt16(offset) {\n return (this.readUint16(offset) << 16) >> 16;\n }\n readUint16(offset) {\n return this.bytes_[offset] | (this.bytes_[offset + 1] << 8);\n }\n readInt32(offset) {\n return (this.bytes_[offset] |\n (this.bytes_[offset + 1] << 8) |\n (this.bytes_[offset + 2] << 16) |\n (this.bytes_[offset + 3] << 24));\n }\n readUint32(offset) {\n return this.readInt32(offset) >>> 0;\n }\n readInt64(offset) {\n return BigInt.asIntN(64, BigInt(this.readUint32(offset)) +\n (BigInt(this.readUint32(offset + 4)) << BigInt(32)));\n }\n readUint64(offset) {\n return BigInt.asUintN(64, BigInt(this.readUint32(offset)) +\n (BigInt(this.readUint32(offset + 4)) << BigInt(32)));\n }\n readFloat32(offset) {\n int32[0] = this.readInt32(offset);\n return float32[0];\n }\n readFloat64(offset) {\n int32[isLittleEndian ? 0 : 1] = this.readInt32(offset);\n int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4);\n return float64[0];\n }\n writeInt8(offset, value) {\n this.bytes_[offset] = value;\n }\n writeUint8(offset, value) {\n this.bytes_[offset] = value;\n }\n writeInt16(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n }\n writeUint16(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n }\n writeInt32(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n }\n writeUint32(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n }\n writeInt64(offset, value) {\n this.writeInt32(offset, Number(BigInt.asIntN(32, value)));\n this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32))));\n }\n writeUint64(offset, value) {\n this.writeUint32(offset, Number(BigInt.asUintN(32, value)));\n this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32))));\n }\n writeFloat32(offset, value) {\n float32[0] = value;\n this.writeInt32(offset, int32[0]);\n }\n writeFloat64(offset, value) {\n float64[0] = value;\n this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]);\n this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]);\n }\n /**\n * Return the file identifier. Behavior is undefined for FlatBuffers whose\n * schema does not include a file_identifier (likely points at padding or the\n * start of a the root vtable).\n */\n getBufferIdentifier() {\n if (this.bytes_.length <\n this.position_ + SIZEOF_INT + FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: ByteBuffer is too short to contain an identifier.');\n }\n let result = '';\n for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) {\n result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i));\n }\n return result;\n }\n /**\n * Look up a field in the vtable, return an offset into the object, or 0 if the\n * field is not present.\n */\n __offset(bb_pos, vtable_offset) {\n const vtable = bb_pos - this.readInt32(bb_pos);\n return vtable_offset < this.readInt16(vtable)\n ? this.readInt16(vtable + vtable_offset)\n : 0;\n }\n /**\n * Initialize any Table-derived type to point to the union at the given offset.\n */\n __union(t, offset) {\n t.bb_pos = offset + this.readInt32(offset);\n t.bb = this;\n return t;\n }\n /**\n * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer.\n * This allocates a new string and converts to wide chars upon each access.\n *\n * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the\n * \"optionalEncoding\" argument. This is useful for avoiding conversion when\n * the data will just be packaged back up in another FlatBuffer later on.\n *\n * @param offset\n * @param opt_encoding Defaults to UTF16_STRING\n */\n __string(offset, opt_encoding) {\n offset += this.readInt32(offset);\n const length = this.readInt32(offset);\n offset += SIZEOF_INT;\n const utf8bytes = this.bytes_.subarray(offset, offset + length);\n if (opt_encoding === Encoding.UTF8_BYTES)\n return utf8bytes;\n else\n return this.text_decoder_.decode(utf8bytes);\n }\n /**\n * Handle unions that can contain string as its member, if a Table-derived type then initialize it,\n * if a string then return a new one\n *\n * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this\n * makes the behaviour of __union_with_string different compared to __union\n */\n __union_with_string(o, offset) {\n if (typeof o === 'string') {\n return this.__string(offset);\n }\n return this.__union(o, offset);\n }\n /**\n * Retrieve the relative offset stored at \"offset\"\n */\n __indirect(offset) {\n return offset + this.readInt32(offset);\n }\n /**\n * Get the start of data of a vector whose offset is stored at \"offset\" in this object.\n */\n __vector(offset) {\n return offset + this.readInt32(offset) + SIZEOF_INT; // data starts after the length\n }\n /**\n * Get the length of a vector whose offset is stored at \"offset\" in this object.\n */\n __vector_len(offset) {\n return this.readInt32(offset + this.readInt32(offset));\n }\n __has_identifier(ident) {\n if (ident.length != FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' + FILE_IDENTIFIER_LENGTH);\n }\n for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) {\n if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) {\n return false;\n }\n }\n return true;\n }\n /**\n * A helper function for generating list for obj api\n */\n createScalarList(listAccessor, listLength) {\n const ret = [];\n for (let i = 0; i < listLength; ++i) {\n const val = listAccessor(i);\n if (val !== null) {\n ret.push(val);\n }\n }\n return ret;\n }\n /**\n * A helper function for generating list for obj api\n * @param listAccessor function that accepts an index and return data at that index\n * @param listLength listLength\n * @param res result list\n */\n createObjList(listAccessor, listLength) {\n const ret = [];\n for (let i = 0; i < listLength; ++i) {\n const val = listAccessor(i);\n if (val !== null) {\n ret.push(val.unpack());\n }\n }\n return ret;\n }\n}\n", "import { ByteBuffer } from './byte-buffer.js';\nimport { FILE_IDENTIFIER_LENGTH, SIZE_PREFIX_LENGTH, SIZEOF_INT, SIZEOF_SHORT, } from './constants.js';\nexport class Builder {\n /**\n * Create a FlatBufferBuilder.\n */\n constructor(opt_initial_size) {\n /** Minimum alignment encountered so far. */\n this.minalign = 1;\n /** The vtable for the current table. */\n this.vtable = null;\n /** The amount of fields we're actually using. */\n this.vtable_in_use = 0;\n /** Whether we are currently serializing a table. */\n this.isNested = false;\n /** Starting offset of the current struct/table. */\n this.object_start = 0;\n /** List of offsets of all vtables. */\n this.vtables = [];\n /** For the current vector being built. */\n this.vector_num_elems = 0;\n /** False omits default values from the serialized data */\n this.force_defaults = false;\n this.string_maps = null;\n this.text_encoder = new TextEncoder();\n let initial_size;\n if (!opt_initial_size) {\n initial_size = 1024;\n }\n else {\n initial_size = opt_initial_size;\n }\n /**\n * @type {ByteBuffer}\n * @private\n */\n this.bb = ByteBuffer.allocate(initial_size);\n this.space = initial_size;\n }\n clear() {\n this.bb.clear();\n this.space = this.bb.capacity();\n this.minalign = 1;\n this.vtable = null;\n this.vtable_in_use = 0;\n this.isNested = false;\n this.object_start = 0;\n this.vtables = [];\n this.vector_num_elems = 0;\n this.force_defaults = false;\n this.string_maps = null;\n }\n /**\n * In order to save space, fields that are set to their default value\n * don't get serialized into the buffer. Forcing defaults provides a\n * way to manually disable this optimization.\n *\n * @param forceDefaults true always serializes default values\n */\n forceDefaults(forceDefaults) {\n this.force_defaults = forceDefaults;\n }\n /**\n * Get the ByteBuffer representing the FlatBuffer. Only call this after you've\n * called finish(). The actual data starts at the ByteBuffer's current position,\n * not necessarily at 0.\n */\n dataBuffer() {\n return this.bb;\n }\n /**\n * Get the bytes representing the FlatBuffer. Only call this after you've\n * called finish().\n */\n asUint8Array() {\n return this.bb\n .bytes()\n .subarray(this.bb.position(), this.bb.position() + this.offset());\n }\n /**\n * Prepare to write an element of `size` after `additional_bytes` have been\n * written, e.g. if you write a string, you need to align such the int length\n * field is aligned to 4 bytes, and the string data follows it directly. If all\n * you need to do is alignment, `additional_bytes` will be 0.\n *\n * @param size This is the of the new element to write\n * @param additional_bytes The padding size\n */\n prep(size, additional_bytes) {\n // Track the biggest thing we've ever aligned to.\n if (size > this.minalign) {\n this.minalign = size;\n }\n // Find the amount of alignment needed such that `size` is properly\n // aligned after `additional_bytes`\n const align_size = (~(this.bb.capacity() - this.space + additional_bytes) + 1) & (size - 1);\n // Reallocate the buffer if needed.\n while (this.space < align_size + size + additional_bytes) {\n const old_buf_size = this.bb.capacity();\n this.bb = Builder.growByteBuffer(this.bb);\n this.space += this.bb.capacity() - old_buf_size;\n }\n this.pad(align_size);\n }\n pad(byte_size) {\n for (let i = 0; i < byte_size; i++) {\n this.bb.writeInt8(--this.space, 0);\n }\n }\n writeInt8(value) {\n this.bb.writeInt8((this.space -= 1), value);\n }\n writeInt16(value) {\n this.bb.writeInt16((this.space -= 2), value);\n }\n writeInt32(value) {\n this.bb.writeInt32((this.space -= 4), value);\n }\n writeInt64(value) {\n this.bb.writeInt64((this.space -= 8), value);\n }\n writeFloat32(value) {\n this.bb.writeFloat32((this.space -= 4), value);\n }\n writeFloat64(value) {\n this.bb.writeFloat64((this.space -= 8), value);\n }\n /**\n * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int8` to add the buffer.\n */\n addInt8(value) {\n this.prep(1, 0);\n this.writeInt8(value);\n }\n /**\n * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int16` to add the buffer.\n */\n addInt16(value) {\n this.prep(2, 0);\n this.writeInt16(value);\n }\n /**\n * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int32` to add the buffer.\n */\n addInt32(value) {\n this.prep(4, 0);\n this.writeInt32(value);\n }\n /**\n * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int64` to add the buffer.\n */\n addInt64(value) {\n this.prep(8, 0);\n this.writeInt64(value);\n }\n /**\n * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `float32` to add the buffer.\n */\n addFloat32(value) {\n this.prep(4, 0);\n this.writeFloat32(value);\n }\n /**\n * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `float64` to add the buffer.\n */\n addFloat64(value) {\n this.prep(8, 0);\n this.writeFloat64(value);\n }\n addFieldInt8(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt8(value);\n this.slot(voffset);\n }\n }\n addFieldInt16(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt16(value);\n this.slot(voffset);\n }\n }\n addFieldInt32(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt32(value);\n this.slot(voffset);\n }\n }\n addFieldInt64(voffset, value, defaultValue) {\n if (this.force_defaults || value !== defaultValue) {\n this.addInt64(value);\n this.slot(voffset);\n }\n }\n addFieldFloat32(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat32(value);\n this.slot(voffset);\n }\n }\n addFieldFloat64(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat64(value);\n this.slot(voffset);\n }\n }\n addFieldOffset(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addOffset(value);\n this.slot(voffset);\n }\n }\n /**\n * Structs are stored inline, so nothing additional is being added. `d` is always 0.\n */\n addFieldStruct(voffset, value, defaultValue) {\n if (value != defaultValue) {\n this.nested(value);\n this.slot(voffset);\n }\n }\n /**\n * Structures are always stored inline, they need to be created right\n * where they're used. You'll get this assertion failure if you\n * created it elsewhere.\n */\n nested(obj) {\n if (obj != this.offset()) {\n throw new TypeError('FlatBuffers: struct must be serialized inline.');\n }\n }\n /**\n * Should not be creating any other object, string or vector\n * while an object is being constructed\n */\n notNested() {\n if (this.isNested) {\n throw new TypeError('FlatBuffers: object serialization must not be nested.');\n }\n }\n /**\n * Set the current vtable at `voffset` to the current location in the buffer.\n */\n slot(voffset) {\n if (this.vtable !== null)\n this.vtable[voffset] = this.offset();\n }\n /**\n * @returns Offset relative to the end of the buffer.\n */\n offset() {\n return this.bb.capacity() - this.space;\n }\n /**\n * Doubles the size of the backing ByteBuffer and copies the old data towards\n * the end of the new buffer (since we build the buffer backwards).\n *\n * @param bb The current buffer with the existing data\n * @returns A new byte buffer with the old data copied\n * to it. The data is located at the end of the buffer.\n *\n * uint8Array.set() formally takes {Array<number>|ArrayBufferView}, so to pass\n * it a uint8Array we need to suppress the type check:\n * @suppress {checkTypes}\n */\n static growByteBuffer(bb) {\n const old_buf_size = bb.capacity();\n // Ensure we don't grow beyond what fits in an int.\n if (old_buf_size & 0xc0000000) {\n throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.');\n }\n const new_buf_size = old_buf_size << 1;\n const nbb = ByteBuffer.allocate(new_buf_size);\n nbb.setPosition(new_buf_size - old_buf_size);\n nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size);\n return nbb;\n }\n /**\n * Adds on offset, relative to where it will be written.\n *\n * @param offset The offset to add.\n */\n addOffset(offset) {\n this.prep(SIZEOF_INT, 0); // Ensure alignment is already done.\n this.writeInt32(this.offset() - offset + SIZEOF_INT);\n }\n /**\n * Start encoding a new object in the buffer. Users will not usually need to\n * call this directly. The FlatBuffers compiler will generate helper methods\n * that call this method internally.\n */\n startObject(numfields) {\n this.notNested();\n if (this.vtable == null) {\n this.vtable = [];\n }\n this.vtable_in_use = numfields;\n for (let i = 0; i < numfields; i++) {\n this.vtable[i] = 0; // This will push additional elements as needed\n }\n this.isNested = true;\n this.object_start = this.offset();\n }\n /**\n * Finish off writing the object that is under construction.\n *\n * @returns The offset to the object inside `dataBuffer`\n */\n endObject() {\n if (this.vtable == null || !this.isNested) {\n throw new Error('FlatBuffers: endObject called without startObject');\n }\n this.addInt32(0);\n const vtableloc = this.offset();\n // Trim trailing zeroes.\n let i = this.vtable_in_use - 1;\n // eslint-disable-next-line no-empty\n for (; i >= 0 && this.vtable[i] == 0; i--) { }\n const trimmed_size = i + 1;\n // Write out the current vtable.\n for (; i >= 0; i--) {\n // Offset relative to the start of the table.\n this.addInt16(this.vtable[i] != 0 ? vtableloc - this.vtable[i] : 0);\n }\n const standard_fields = 2; // The fields below:\n this.addInt16(vtableloc - this.object_start);\n const len = (trimmed_size + standard_fields) * SIZEOF_SHORT;\n this.addInt16(len);\n // Search for an existing vtable that matches the current one.\n let existing_vtable = 0;\n const vt1 = this.space;\n outer_loop: for (i = 0; i < this.vtables.length; i++) {\n const vt2 = this.bb.capacity() - this.vtables[i];\n if (len == this.bb.readInt16(vt2)) {\n for (let j = SIZEOF_SHORT; j < len; j += SIZEOF_SHORT) {\n if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) {\n continue outer_loop;\n }\n }\n existing_vtable = this.vtables[i];\n break;\n }\n }\n if (existing_vtable) {\n // Found a match:\n // Remove the current vtable.\n this.space = this.bb.capacity() - vtableloc;\n // Point table to existing vtable.\n this.bb.writeInt32(this.space, existing_vtable - vtableloc);\n }\n else {\n // No match:\n // Add the location of the current vtable to the list of vtables.\n this.vtables.push(this.offset());\n // Point table to current vtable.\n this.bb.writeInt32(this.bb.capacity() - vtableloc, this.offset() - vtableloc);\n }\n this.isNested = false;\n return vtableloc;\n }\n /**\n * Finalize a buffer, poiting to the given `root_table`.\n */\n finish(root_table, opt_file_identifier, opt_size_prefix) {\n const size_prefix = opt_size_prefix ? SIZE_PREFIX_LENGTH : 0;\n if (opt_file_identifier) {\n const file_identifier = opt_file_identifier;\n this.prep(this.minalign, SIZEOF_INT + FILE_IDENTIFIER_LENGTH + size_prefix);\n if (file_identifier.length != FILE_IDENTIFIER_LENGTH) {\n throw new TypeError('FlatBuffers: file identifier must be length ' +\n FILE_IDENTIFIER_LENGTH);\n }\n for (let i = FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) {\n this.writeInt8(file_identifier.charCodeAt(i));\n }\n }\n this.prep(this.minalign, SIZEOF_INT + size_prefix);\n this.addOffset(root_table);\n if (size_prefix) {\n this.addInt32(this.bb.capacity() - this.space);\n }\n this.bb.setPosition(this.space);\n }\n /**\n * Finalize a size prefixed buffer, pointing to the given `root_table`.\n */\n finishSizePrefixed(root_table, opt_file_identifier) {\n this.finish(root_table, opt_file_identifier, true);\n }\n /**\n * This checks a required field has been set in a given table that has\n * just been constructed.\n */\n requiredField(table, field) {\n const table_start = this.bb.capacity() - table;\n const vtable_start = table_start - this.bb.readInt32(table_start);\n const ok = field < this.bb.readInt16(vtable_start) &&\n this.bb.readInt16(vtable_start + field) != 0;\n // If this fails, the caller will show what field needs to be set.\n if (!ok) {\n throw new TypeError('FlatBuffers: field ' + field + ' must be set');\n }\n }\n /**\n * Start a new array/vector of objects. Users usually will not call\n * this directly. The FlatBuffers compiler will create a start/end\n * method for vector types in generated code.\n *\n * @param elem_size The size of each element in the array\n * @param num_elems The number of elements in the array\n * @param alignment The alignment of the array\n */\n startVector(elem_size, num_elems, alignment) {\n this.notNested();\n this.vector_num_elems = num_elems;\n this.prep(SIZEOF_INT, elem_size * num_elems);\n this.prep(alignment, elem_size * num_elems); // Just in case alignment > int.\n }\n /**\n * Finish off the creation of an array and all its elements. The array must be\n * created with `startVector`.\n *\n * @returns The offset at which the newly created array\n * starts.\n */\n endVector() {\n this.writeInt32(this.vector_num_elems);\n return this.offset();\n }\n /**\n * Encode the string `s` in the buffer using UTF-8. If the string passed has\n * already been seen, we return the offset of the already written string\n *\n * @param s The string to encode\n * @return The offset in the buffer where the encoded string starts\n */\n createSharedString(s) {\n if (!s) {\n return 0;\n }\n if (!this.string_maps) {\n this.string_maps = new Map();\n }\n if (this.string_maps.has(s)) {\n return this.string_maps.get(s);\n }\n const offset = this.createString(s);\n this.string_maps.set(s, offset);\n return offset;\n }\n /**\n * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed\n * instead of a string, it is assumed to contain valid UTF-8 encoded data.\n *\n * @param s The string to encode\n * @return The offset in the buffer where the encoded string starts\n */\n createString(s) {\n if (s === null || s === undefined) {\n return 0;\n }\n let utf8;\n if (s instanceof Uint8Array) {\n utf8 = s;\n }\n else {\n utf8 = this.text_encoder.encode(s);\n }\n this.addInt8(0);\n this.startVector(1, utf8.length, 1);\n this.bb.setPosition((this.space -= utf8.length));\n this.bb.bytes().set(utf8, this.space);\n return this.endVector();\n }\n /**\n * Create a byte vector.\n *\n * @param v The bytes to add\n * @returns The offset in the buffer where the byte vector starts\n */\n createByteVector(v) {\n if (v === null || v === undefined) {\n return 0;\n }\n this.startVector(1, v.length, 1);\n this.bb.setPosition((this.space -= v.length));\n this.bb.bytes().set(v, this.space);\n return this.endVector();\n }\n /**\n * A helper function to pack an object\n *\n * @returns offset of obj\n */\n createObjectOffset(obj) {\n if (obj === null) {\n return 0;\n }\n if (typeof obj === 'string') {\n return this.createString(obj);\n }\n else {\n return obj.pack(this);\n }\n }\n /**\n * A helper function to pack a list of object\n *\n * @returns list of offsets of each non null object\n */\n createObjectOffsetList(list) {\n const ret = [];\n for (let i = 0; i < list.length; ++i) {\n const val = list[i];\n if (val !== null) {\n ret.push(this.createObjectOffset(val));\n }\n else {\n throw new TypeError('FlatBuffers: Argument for createObjectOffsetList cannot contain null.');\n }\n }\n return ret;\n }\n createStructOffsetList(list, startFunc) {\n startFunc(this, list.length);\n this.createObjectOffsetList(list.slice().reverse());\n return this.endVector();\n }\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { MetadataVersion } from './fb/metadata-version.js';\nexport { UnionMode } from './fb/union-mode.js';\nexport { Precision } from './fb/precision.js';\nexport { DateUnit } from './fb/date-unit.js';\nexport { TimeUnit } from './fb/time-unit.js';\nexport { IntervalUnit } from './fb/interval-unit.js';\nexport { MessageHeader } from './fb/message-header.js';\n\n/**\n * Main data type enumeration.\n *\n * Data types in this library are all *logical*. They can be expressed as\n * either a primitive physical type (bytes or bits of some fixed size), a\n * nested type consisting of other data types, or another data type (e.g. a\n * timestamp encoded as an int64).\n *\n * **Note**: Only non-negative enum values are written to an Arrow IPC payload.\n *\n * The rest of the values are specified here so TypeScript can narrow the type\n * signatures further beyond the base Arrow Types. The Arrow DataTypes include\n * metadata like `bitWidth` that impact the type signatures of the values we\n * accept and return.\n *\n * For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an\n * `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`\n * reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the\n * underlying `Int32Array`.\n *\n * Library consumers benefit by knowing the narrowest type, since we can ensure\n * the types across all public methods are propagated, and never bail to `any`.\n * These values are _never_ used at runtime, and they will _never_ be written\n * to the flatbuffers metadata of serialized Arrow IPC payloads.\n */\nexport enum Type {\n NONE = 0, /** The default placeholder type */\n Null = 1, /** A NULL type having no physical storage */\n Int = 2, /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */\n Float = 3, /** 2, 4, or 8-byte floating point value */\n Binary = 4, /** Variable-length bytes (no guarantee of UTF8-ness) */\n Utf8 = 5, /** UTF8 variable-length string as List<Char> */\n Bool = 6, /** Boolean as 1 bit, LSB bit-packed ordering */\n Decimal = 7, /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */\n Date = 8, /** int32_t days or int64_t milliseconds since the UNIX epoch */\n Time = 9, /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */\n Timestamp = 10, /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */\n Interval = 11, /** YEAR_MONTH or DAY_TIME or MONTH_DAY_NANO interval */\n List = 12, /** A list of some logical data type */\n Struct = 13, /** Struct of logical types */\n Union = 14, /** Union of logical types */\n FixedSizeBinary = 15, /** Fixed-size binary. Each value occupies the same number of bytes */\n FixedSizeList = 16, /** Fixed-size list. Each value occupies the same number of bytes */\n Map = 17, /** Map of named logical types */\n Duration = 18, /** Measure of elapsed time in either seconds, milliseconds, microseconds or nanoseconds */\n LargeBinary = 19, /** Large variable-length bytes (no guarantee of UTF8-ness) */\n LargeUtf8 = 20, /** Large variable-length string as List<Char> */\n LargeList = 21, /** A list of some logical data type with 64-bit offsets */\n BinaryView = 23, /** Variable-length binary values backed by inline-or-referenced views */\n Utf8View = 24, /** Variable-length UTF8 string values backed by inline-or-referenced views */\n\n Dictionary = -1, /** Dictionary aka Category type */\n Int8 = -2,\n Int16 = -3,\n Int32 = -4,\n Int64 = -5,\n Uint8 = -6,\n Uint16 = -7,\n Uint32 = -8,\n Uint64 = -9,\n Float16 = -10,\n Float32 = -11,\n Float64 = -12,\n DateDay = -13,\n DateMillisecond = -14,\n TimestampSecond = -15,\n TimestampMillisecond = -16,\n TimestampMicrosecond = -17,\n TimestampNanosecond = -18,\n TimeSecond = -19,\n TimeMillisecond = -20,\n TimeMicrosecond = -21,\n TimeNanosecond = -22,\n DenseUnion = -23,\n SparseUnion = -24,\n IntervalDayTime = -25,\n IntervalYearMonth = -26,\n DurationSecond = -27,\n DurationMillisecond = -28,\n DurationMicrosecond = -29,\n DurationNanosecond = -30,\n IntervalMonthDayNano = -31,\n}\n\nexport enum BufferType {\n /**\n * used in List type, Dense Union and variable length primitive types (String, Binary)\n */\n OFFSET = 0,\n\n /**\n * actual data, either fixed width primitive types in slots or variable width delimited by an OFFSET vector\n */\n DATA = 1,\n\n /**\n * Bit vector indicating if each value is null\n */\n VALIDITY = 2,\n\n /**\n * Type vector used in Union type\n */\n TYPE = 3\n}\n", null, null, null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from './schema.js';\nimport { Vector } from './vector.js';\nimport { MapRow } from './row/map.js';\nimport { StructRow, StructRowProxy } from './row/struct.js';\nimport { ArrayCtor, BigIntArrayConstructor, TypedArrayConstructor } from './interfaces.js';\nimport { bigIntToNumber } from './util/bigint.js';\n\nimport {\n Type,\n Precision, UnionMode,\n DateUnit, TimeUnit, IntervalUnit\n} from './enum.js';\n\n/** @ignore */\nexport type TimeBitWidth = 32 | 64;\n/** @ignore */\nexport type IntBitWidth = 8 | 16 | 32 | 64;\n/** @ignore */\nexport type IsSigned = { 'true': true; 'false': false };\n\n/** @ignore */\nconst kDataTypeSymbol = Symbol.for('apache-arrow/DataType');\n\nexport interface DataType<TType extends Type = Type, TChildren extends TypeMap = any> {\n readonly TType: TType;\n readonly TArray: any;\n readonly TOffsetArray: any;\n readonly TValue: any;\n readonly TChildren: TChildren;\n readonly ArrayType: any;\n readonly OffsetArrayType: ArrayCtor<Int32Array | BigInt64Array>;\n readonly children: Field<TChildren[keyof TChildren]>[];\n}\n\n/**\n * An abstract base class for classes that encapsulate metadata about each of\n * the logical types that Arrow can represent.\n */\nexport abstract class DataType<TType extends Type = Type, TChildren extends TypeMap = any> {\n\n /**\n * Check if an object is an instance of DataType.\n * This works across different instances of the Arrow library.\n * \n * Note: We intentionally do NOT implement Symbol.hasInstance here because\n * it would break instanceof checks for subclasses like Struct, Dictionary, etc.\n * Use DataType.isDataType() for cross-library type checking instead.\n * @nocollapse\n */\n static isDataType(x: any): x is DataType {\n return x?.[kDataTypeSymbol] === true;\n }\n\n /** @internal */\n declare public readonly [kDataTypeSymbol]: true;\n\n declare public [Symbol.toStringTag]: string;\n\n /** @nocollapse */ static isNull(x: any): x is Null { return x?.typeId === Type.Null; }\n /** @nocollapse */ static isInt(x: any): x is Int_ { return x?.typeId === Type.Int; }\n /** @nocollapse */ static isFloat(x: any): x is Float { return x?.typeId === Type.Float; }\n /** @nocollapse */ static isBinary(x: any): x is Binary { return x?.typeId === Type.Binary; }\n /** @nocollapse */ static isBinaryView(x: any): x is BinaryView { return x?.typeId === Type.BinaryView; }\n /** @nocollapse */ static isLargeBinary(x: any): x is LargeBinary { return x?.typeId === Type.LargeBinary; }\n /** @nocollapse */ static isUtf8(x: any): x is Utf8 { return x?.typeId === Type.Utf8; }\n /** @nocollapse */ static isUtf8View(x: any): x is Utf8View { return x?.typeId === Type.Utf8View; }\n /** @nocollapse */ static isLargeUtf8(x: any): x is LargeUtf8 { return x?.typeId === Type.LargeUtf8; }\n /** @nocollapse */ static isBool(x: any): x is Bool { return x?.typeId === Type.Bool; }\n /** @nocollapse */ static isDecimal(x: any): x is Decimal { return x?.typeId === Type.Decimal; }\n /** @nocollapse */ static isDate(x: any): x is Date_ { return x?.typeId === Type.Date; }\n /** @nocollapse */ static isTime(x: any): x is Time_ { return x?.typeId === Type.Time; }\n /** @nocollapse */ static isTimestamp(x: any): x is Timestamp_ { return x?.typeId === Type.Timestamp; }\n /** @nocollapse */ static isInterval(x: any): x is Interval_ { return x?.typeId === Type.Interval; }\n /** @nocollapse */ static isDuration(x: any): x is Duration { return x?.typeId === Type.Duration; }\n /** @nocollapse */ static isList(x: any): x is List { return x?.typeId === Type.List; }\n /** @nocollapse */ static isLargeList(x: any): x is LargeList { return x?.typeId === Type.LargeList; }\n // TODO: Implement ListView type\n // /** @nocollapse */ static isListView(x: any): x is ListView { return x?.typeId === Type.ListView; }\n /** @nocollapse */ static isStruct(x: any): x is Struct { return x?.typeId === Type.Struct; }\n /** @nocollapse */ static isUnion(x: any): x is Union_ { return x?.typeId === Type.Union; }\n /** @nocollapse */ static isFixedSizeBinary(x: any): x is FixedSizeBinary { return x?.typeId === Type.FixedSizeBinary; }\n /** @nocollapse */ static isFixedSizeList(x: any): x is FixedSizeList { return x?.typeId === Type.FixedSizeList; }\n /** @nocollapse */ static isMap(x: any): x is Map_ { return x?.typeId === Type.Map; }\n /** @nocollapse */ static isDictionary(x: any): x is Dictionary { return x?.typeId === Type.Dictionary; }\n\n /** @nocollapse */ static isDenseUnion(x: any): x is DenseUnion { return DataType.isUnion(x) && x.mode === UnionMode.Dense; }\n /** @nocollapse */ static isSparseUnion(x: any): x is SparseUnion { return DataType.isUnion(x) && x.mode === UnionMode.Sparse; }\n\n declare public readonly typeId: TType;\n\n constructor(typeId: TType) {\n this.typeId = typeId;\n }\n\n protected static [Symbol.toStringTag] = ((proto: DataType) => {\n (<any>proto).children = null;\n (<any>proto).ArrayType = Array;\n (<any>proto).OffsetArrayType = Int32Array;\n (<any>proto)[kDataTypeSymbol] = true;\n return proto[Symbol.toStringTag] = 'DataType';\n })(DataType.prototype);\n}\n\n/** @ignore */\nexport interface Null extends DataType<Type.Null> { TArray: void; TValue: null }\n/** @ignore */\nexport class Null extends DataType<Type.Null> {\n constructor() {\n super(Type.Null);\n }\n public toString() { return `Null`; }\n protected static [Symbol.toStringTag] = ((proto: Null) => proto[Symbol.toStringTag] = 'Null')(Null.prototype);\n}\n\n/** @ignore */\ntype Ints = Type.Int | Type.Int8 | Type.Int16 | Type.Int32 | Type.Int64 | Type.Uint8 | Type.Uint16 | Type.Uint32 | Type.Uint64;\n/** @ignore */\ntype IType = {\n [Type.Int]: { bitWidth: IntBitWidth; isSigned: true | false; TArray: IntArray; TValue: number | bigint };\n [Type.Int8]: { bitWidth: 8; isSigned: true; TArray: Int8Array; TValue: number };\n [Type.Int16]: { bitWidth: 16; isSigned: true; TArray: Int16Array; TValue: number };\n [Type.Int32]: { bitWidth: 32; isSigned: true; TArray: Int32Array; TValue: number };\n [Type.Int64]: { bitWidth: 64; isSigned: true; TArray: BigInt64Array; TValue: bigint };\n [Type.Uint8]: { bitWidth: 8; isSigned: false; TArray: Uint8Array; TValue: number };\n [Type.Uint16]: { bitWidth: 16; isSigned: false; TArray: Uint16Array; TValue: number };\n [Type.Uint32]: { bitWidth: 32; isSigned: false; TArray: Uint32Array; TValue: number };\n [Type.Uint64]: { bitWidth: 64; isSigned: false; TArray: BigUint64Array; TValue: bigint };\n};\n\n/** @ignore */\ninterface Int_<T extends Ints = Ints> extends DataType<T> { TArray: IType[T]['TArray']; TValue: IType[T]['TValue'] }\n/** @ignore */\nclass Int_<T extends Ints = Ints> extends DataType<T> {\n constructor(public readonly isSigned: IType[T]['isSigned'],\n public readonly bitWidth: IType[T]['bitWidth']) {\n super(Type.Int as T);\n }\n public get ArrayType() {\n switch (this.bitWidth) {\n case 8: return this.isSigned ? Int8Array : Uint8Array;\n case 16: return this.isSigned ? Int16Array : Uint16Array;\n case 32: return this.isSigned ? Int32Array : Uint32Array;\n case 64: return this.isSigned ? BigInt64Array : BigUint64Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `${this.isSigned ? `I` : `Ui`}nt${this.bitWidth}`; }\n protected static [Symbol.toStringTag] = ((proto: Int_) => {\n (<any>proto).isSigned = null;\n (<any>proto).bitWidth = null;\n return proto[Symbol.toStringTag] = 'Int';\n })(Int_.prototype);\n}\n\nexport { Int_ as Int };\n\n/** @ignore */\nexport class Int8 extends Int_<Type.Int8> {\n constructor() { super(true, 8); }\n public get ArrayType() { return Int8Array; }\n}\n/** @ignore */\nexport class Int16 extends Int_<Type.Int16> {\n constructor() { super(true, 16); }\n public get ArrayType() { return Int16Array; }\n}\n/** @ignore */\nexport class Int32 extends Int_<Type.Int32> {\n constructor() { super(true, 32); }\n public get ArrayType() { return Int32Array; }\n}\n/** @ignore */\nexport class Int64 extends Int_<Type.Int64> {\n constructor() { super(true, 64); }\n public get ArrayType() { return BigInt64Array; }\n}\n/** @ignore */\nexport class Uint8 extends Int_<Type.Uint8> {\n constructor() { super(false, 8); }\n public get ArrayType() { return Uint8Array; }\n}\n/** @ignore */\nexport class Uint16 extends Int_<Type.Uint16> {\n constructor() { super(false, 16); }\n public get ArrayType() { return Uint16Array; }\n}\n/** @ignore */\nexport class Uint32 extends Int_<Type.Uint32> {\n constructor() { super(false, 32); }\n public get ArrayType() { return Uint32Array; }\n}\n/** @ignore */\nexport class Uint64 extends Int_<Type.Uint64> {\n constructor() { super(false, 64); }\n public get ArrayType() { return BigUint64Array; }\n}\n\nObject.defineProperty(Int8.prototype, 'ArrayType', { value: Int8Array });\nObject.defineProperty(Int16.prototype, 'ArrayType', { value: Int16Array });\nObject.defineProperty(Int32.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Int64.prototype, 'ArrayType', { value: BigInt64Array });\nObject.defineProperty(Uint8.prototype, 'ArrayType', { value: Uint8Array });\nObject.defineProperty(Uint16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Uint32.prototype, 'ArrayType', { value: Uint32Array });\nObject.defineProperty(Uint64.prototype, 'ArrayType', { value: BigUint64Array });\n\n/** @ignore */\ntype Floats = Type.Float | Type.Float16 | Type.Float32 | Type.Float64;\n/** @ignore */\ntype FType = {\n [Type.Float]: { precision: Precision; TArray: FloatArray; TValue: number };\n [Type.Float16]: { precision: Precision.HALF; TArray: Uint16Array; TValue: number };\n [Type.Float32]: { precision: Precision.SINGLE; TArray: Float32Array; TValue: number };\n [Type.Float64]: { precision: Precision.DOUBLE; TArray: Float64Array; TValue: number };\n};\n\n/** @ignore */\nexport interface Float<T extends Floats = Floats> extends DataType<T> { TArray: FType[T]['TArray']; TValue: number }\n/** @ignore */\nexport class Float<T extends Floats = Floats> extends DataType<T> {\n constructor(public readonly precision: Precision) {\n super(Type.Float as T);\n }\n public get ArrayType(): TypedArrayConstructor<FType[T]['TArray']> {\n switch (this.precision) {\n case Precision.HALF: return Uint16Array;\n case Precision.SINGLE: return Float32Array;\n case Precision.DOUBLE: return Float64Array;\n }\n // @ts-ignore\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `Float${(this.precision << 5) || 16}`; }\n protected static [Symbol.toStringTag] = ((proto: Float) => {\n (<any>proto).precision = null;\n return proto[Symbol.toStringTag] = 'Float';\n })(Float.prototype);\n}\n\n/** @ignore */\nexport class Float16 extends Float<Type.Float16> { constructor() { super(Precision.HALF); } }\n/** @ignore */\nexport class Float32 extends Float<Type.Float32> { constructor() { super(Precision.SINGLE); } }\n/** @ignore */\nexport class Float64 extends Float<Type.Float64> { constructor() { super(Precision.DOUBLE); } }\n\nObject.defineProperty(Float16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Float32.prototype, 'ArrayType', { value: Float32Array });\nObject.defineProperty(Float64.prototype, 'ArrayType', { value: Float64Array });\n\n/** @ignore */\nexport interface Binary extends DataType<Type.Binary> { TArray: Uint8Array; TOffsetArray: Int32Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor<Uint8Array>; OffsetArrayType: TypedArrayConstructor<Int32Array> }\n/** @ignore */\nexport class Binary extends DataType<Type.Binary> {\n constructor() {\n super(Type.Binary);\n }\n public toString() { return `Binary`; }\n protected static [Symbol.toStringTag] = ((proto: Binary) => {\n (<any>proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Binary';\n })(Binary.prototype);\n}\n\n/** @ignore */\nexport interface BinaryView extends DataType<Type.BinaryView> {\n TArray: Uint8Array;\n TValue: Uint8Array;\n ArrayType: TypedArrayConstructor<Uint8Array>;\n}\n/** @ignore */\nexport class BinaryView extends DataType<Type.BinaryView> {\n public static readonly ELEMENT_WIDTH = 16;\n public static readonly INLINE_CAPACITY = 12;\n public static readonly LENGTH_OFFSET = 0;\n public static readonly INLINE_OFFSET = 4;\n public static readonly BUFFER_INDEX_OFFSET = 8;\n public static readonly BUFFER_OFFSET_OFFSET = 12;\n constructor() {\n super(Type.BinaryView);\n }\n public toString() { return `BinaryView`; }\n protected static [Symbol.toStringTag] = ((proto: BinaryView) => {\n (<any>proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'BinaryView';\n })(BinaryView.prototype);\n}\n\n/** @ignore */\nexport interface LargeBinary extends DataType<Type.LargeBinary> { TArray: Uint8Array; TOffsetArray: BigInt64Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor<Uint8Array>; OffsetArrayType: BigIntArrayConstructor<BigInt64Array> }\n/** @ignore */\nexport class LargeBinary extends DataType<Type.LargeBinary> {\n constructor() {\n super(Type.LargeBinary);\n }\n public toString() { return `LargeBinary`; }\n protected static [Symbol.toStringTag] = ((proto: LargeBinary) => {\n (<any>proto).ArrayType = Uint8Array;\n (<any>proto).OffsetArrayType = BigInt64Array;\n return proto[Symbol.toStringTag] = 'LargeBinary';\n })(LargeBinary.prototype);\n}\n\n/** @ignore */\n/** @ignore */\nexport interface Utf8 extends DataType<Type.Utf8> { TArray: Uint8Array; TOffsetArray: Int32Array; TValue: string; ArrayType: TypedArrayConstructor<Uint8Array>; OffsetArrayType: TypedArrayConstructor<Int32Array> }\n/** @ignore */\nexport class Utf8 extends DataType<Type.Utf8> {\n constructor() {\n super(Type.Utf8);\n }\n public toString() { return `Utf8`; }\n protected static [Symbol.toStringTag] = ((proto: Utf8) => {\n (<any>proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8';\n })(Utf8.prototype);\n}\n\n/** @ignore */\nexport interface Utf8View extends DataType<Type.Utf8View> {\n TArray: Uint8Array;\n TValue: string;\n ArrayType: TypedArrayConstructor<Uint8Array>;\n}\n/** @ignore */\nexport class Utf8View extends DataType<Type.Utf8View> {\n public static readonly ELEMENT_WIDTH = BinaryView.ELEMENT_WIDTH;\n public static readonly INLINE_CAPACITY = BinaryView.INLINE_CAPACITY;\n constructor() {\n super(Type.Utf8View);\n }\n public toString() { return `Utf8View`; }\n protected static [Symbol.toStringTag] = ((proto: Utf8View) => {\n (<any>proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8View';\n })(Utf8View.prototype);\n}\n\n/** @ignore */\nexport interface LargeUtf8 extends DataType<Type.LargeUtf8> { TArray: Uint8Array; TOffsetArray: BigInt64Array; TValue: string; ArrayType: TypedArrayConstructor<Uint8Array>; OffsetArrayType: BigIntArrayConstructor<BigInt64Array> }\n/** @ignore */\nexport class LargeUtf8 extends DataType<Type.LargeUtf8> {\n constructor() {\n super(Type.LargeUtf8);\n }\n public toString() { return `LargeUtf8`; }\n protected static [Symbol.toStringTag] = ((proto: LargeUtf8) => {\n (<any>proto).ArrayType = Uint8Array;\n (<any>proto).OffsetArrayType = BigInt64Array;\n return proto[Symbol.toStringTag] = 'LargeUtf8';\n })(LargeUtf8.prototype);\n}\n\n/** @ignore */\n/** @ignore */\nexport interface Bool extends DataType<Type.Bool> { TArray: Uint8Array; TValue: boolean; ArrayType: TypedArrayConstructor<Uint8Array> }\n/** @ignore */\nexport class Bool extends DataType<Type.Bool> {\n constructor() {\n super(Type.Bool);\n }\n public toString() { return `Bool`; }\n protected static [Symbol.toStringTag] = ((proto: Bool) => {\n (<any>proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Bool';\n })(Bool.prototype);\n}\n\n/** @ignore */\nexport interface Decimal extends DataType<Type.Decimal> { TArray: Uint32Array; TValue: Uint32Array; ArrayType: TypedArrayConstructor<Uint32Array> }\n/** @ignore */\nexport class Decimal extends DataType<Type.Decimal> {\n constructor(public readonly scale: number,\n public readonly precision: number,\n public readonly bitWidth: number = 128) {\n super(Type.Decimal);\n }\n public toString() { return `Decimal[${this.precision}e${this.scale > 0 ? `+` : ``}${this.scale}]`; }\n protected static [Symbol.toStringTag] = ((proto: Decimal) => {\n (<any>proto).scale = null;\n (<any>proto).precision = null;\n (<any>proto).ArrayType = Uint32Array;\n return proto[Symbol.toStringTag] = 'Decimal';\n })(Decimal.prototype);\n}\n\n/** @ignore */\nexport type Dates = Type.Date | Type.DateDay | Type.DateMillisecond;\n/** @ignore */\ntype DateType = {\n [Type.Date]: { TArray: Int32Array | BigInt64Array };\n [Type.DateDay]: { TArray: Int32Array };\n [Type.DateMillisecond]: { TArray: BigInt64Array };\n};\n/** @ignore */\nexport interface Date_<T extends Dates = Dates> extends DataType<T> {\n TArray: DateType[T]['TArray'];\n TValue: number;\n}\n/** @ignore */\nexport class Date_<T extends Dates = Dates> extends DataType<T> {\n constructor(public readonly unit: DateUnit) {\n super(Type.Date as T);\n }\n public toString() { return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`; }\n\n public get ArrayType() {\n return this.unit === DateUnit.DAY ? Int32Array : BigInt64Array;\n }\n protected static [Symbol.toStringTag] = ((proto: Date_) => {\n (<any>proto).unit = null;\n return proto[Symbol.toStringTag] = 'Date';\n })(Date_.prototype);\n}\n\n/** @ignore */\nexport class DateDay extends Date_<Type.DateDay> { constructor() { super(DateUnit.DAY); } }\n/**\n * A signed 64-bit date representing the elapsed time since UNIX epoch (1970-01-01) in milliseconds.\n * According to the specification, this should be treated as the number of days, in milliseconds, since the UNIX epoch.\n * Therefore, values must be evenly divisible by `86_400_000` (the number of milliseconds in a standard day).\n *\n * Practically, validation that values of this type are evenly divisible by `86_400_000` is not enforced by this library\n * for performance and usability reasons.\n *\n * Users should prefer to use {@link DateDay} to cleanly represent the number of days. For JS dates,\n * {@link TimestampMillisecond} is the preferred type.\n *\n * @ignore\n */\nexport class DateMillisecond extends Date_<Type.DateMillisecond> { constructor() { super(DateUnit.MILLISECOND); } }\n\n/** @ignore */\ntype Times = Type.Time | Type.TimeSecond | Type.TimeMillisecond | Type.TimeMicrosecond | Type.TimeNanosecond;\n/** @ignore */\ntype TimesType = {\n [Type.Time]: { unit: TimeUnit; TValue: number | bigint; TArray: Int32Array | BigInt64Array };\n [Type.TimeSecond]: { unit: TimeUnit.SECOND; TValue: number; TArray: Int32Array };\n [Type.TimeMillisecond]: { unit: TimeUnit.MILLISECOND; TValue: number; TArray: Int32Array };\n [Type.TimeMicrosecond]: { unit: TimeUnit.MICROSECOND; TValue: bigint; TArray: BigInt64Array };\n [Type.TimeNanosecond]: { unit: TimeUnit.NANOSECOND; TValue: bigint; TArray: BigInt64Array };\n};\n\n/** @ignore */\ninterface Time_<T extends Times = Times> extends DataType<T> {\n TArray: TimesType[T]['TArray'];\n TValue: TimesType[T]['TValue'];\n}\n/** @ignore */\nclass Time_<T extends Times = Times> extends DataType<T> {\n constructor(public readonly unit: TimesType[T]['unit'],\n public readonly bitWidth: TimeBitWidth) {\n super(Type.Time as T);\n }\n public toString() { return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`; }\n public get ArrayType() {\n switch (this.bitWidth) {\n case 32: return Int32Array;\n case 64: return BigInt64Array;\n }\n // @ts-ignore\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n protected static [Symbol.toStringTag] = ((proto: Time_) => {\n (<any>proto).unit = null;\n (<any>proto).bitWidth = null;\n return proto[Symbol.toStringTag] = 'Time';\n })(Time_.prototype);\n}\n\nexport { Time_ as Time };\n\n/** @ignore */\nexport class TimeSecond extends Time_<Type.TimeSecond> { constructor() { super(TimeUnit.SECOND, 32); } }\n/** @ignore */\nexport class TimeMillisecond extends Time_<Type.TimeMillisecond> { constructor() { super(TimeUnit.MILLISECOND, 32); } }\n/** @ignore */\nexport class TimeMicrosecond extends Time_<Type.TimeMicrosecond> { constructor() { super(TimeUnit.MICROSECOND, 64); } }\n/** @ignore */\nexport class TimeNanosecond extends Time_<Type.TimeNanosecond> { constructor() { super(TimeUnit.NANOSECOND, 64); } }\n\n/** @ignore */\ntype Timestamps = Type.Timestamp | Type.TimestampSecond | Type.TimestampMillisecond | Type.TimestampMicrosecond | Type.TimestampNanosecond;\n/** @ignore */\ninterface Timestamp_<T extends Timestamps = Timestamps> extends DataType<T> {\n TArray: BigInt64Array;\n TValue: number;\n ArrayType: BigIntArrayConstructor<BigInt64Array>;\n}\n\n/** @ignore */\nclass Timestamp_<T extends Timestamps = Timestamps> extends DataType<T> {\n constructor(public readonly unit: TimeUnit,\n public readonly timezone?: string | null) {\n super(Type.Timestamp as T);\n }\n public toString() { return `Timestamp<${TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ``}>`; }\n protected static [Symbol.toStringTag] = ((proto: Timestamp_) => {\n (<any>proto).unit = null;\n (<any>proto).timezone = null;\n (<any>proto).ArrayType = BigInt64Array;\n return proto[Symbol.toStringTag] = 'Timestamp';\n })(Timestamp_.prototype);\n}\n\nexport { Timestamp_ as Timestamp };\n\n/** @ignore */\nexport class TimestampSecond extends Timestamp_<Type.TimestampSecond> { constructor(timezone?: string | null) { super(TimeUnit.SECOND, timezone); } }\n/** @ignore */\nexport class TimestampMillisecond extends Timestamp_<Type.TimestampMillisecond> { constructor(timezone?: string | null) { super(TimeUnit.MILLISECOND, timezone); } }\n/** @ignore */\nexport class TimestampMicrosecond extends Timestamp_<Type.TimestampMicrosecond> { constructor(timezone?: string | null) { super(TimeUnit.MICROSECOND, timezone); } }\n/** @ignore */\nexport class TimestampNanosecond extends Timestamp_<Type.TimestampNanosecond> { constructor(timezone?: string | null) { super(TimeUnit.NANOSECOND, timezone); } }\n\n/** @ignore */\ntype Intervals = Type.Interval | Type.IntervalDayTime | Type.IntervalYearMonth | Type.IntervalMonthDayNano;\n/** @ignore */\ninterface Interval_<T extends Intervals = Intervals> extends DataType<T> {\n TArray: Int32Array;\n TValue: Int32Array;\n ArrayType: TypedArrayConstructor<Int32Array>;\n}\n\n/** @ignore */\nclass Interval_<T extends Intervals = Intervals> extends DataType<T> {\n constructor(public readonly unit: IntervalUnit) {\n super(Type.Interval as T);\n }\n public toString() { return `Interval<${IntervalUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Interval_) => {\n (<any>proto).unit = null;\n (<any>proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Interval';\n })(Interval_.prototype);\n}\n\nexport { Interval_ as Interval };\n\n/** @ignore */\nexport class IntervalDayTime extends Interval_<Type.IntervalDayTime> { constructor() { super(IntervalUnit.DAY_TIME); } }\n/** @ignore */\nexport class IntervalYearMonth extends Interval_<Type.IntervalYearMonth> { constructor() { super(IntervalUnit.YEAR_MONTH); } }\n/** @ignore */\nexport class IntervalMonthDayNano extends Interval_<Type.IntervalMonthDayNano> { constructor() { super(IntervalUnit.MONTH_DAY_NANO); } }\n\n/** @ignore */\ntype Durations = Type.Duration | Type.DurationSecond | Type.DurationMillisecond | Type.DurationMicrosecond | Type.DurationNanosecond;\n/** @ignore */\nexport interface Duration<T extends Durations = Durations> extends DataType<T> {\n TArray: BigInt64Array;\n TValue: bigint;\n ArrayType: BigIntArrayConstructor<BigInt64Array>;\n}\n\n/** @ignore */\nexport class Duration<T extends Durations = Durations> extends DataType<T> {\n constructor(public readonly unit: TimeUnit) {\n super(Type.Duration as T);\n }\n public toString() { return `Duration<${TimeUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Duration) => {\n (<any>proto).unit = null;\n (<any>proto).ArrayType = BigInt64Array;\n return proto[Symbol.toStringTag] = 'Duration';\n })(Duration.prototype);\n}\n\n/** @ignore */\nexport class DurationSecond extends Duration<Type.DurationSecond> { constructor() { super(TimeUnit.SECOND); } }\n/** @ignore */\nexport class DurationMillisecond extends Duration<Type.DurationMillisecond> { constructor() { super(TimeUnit.MILLISECOND); } }\n/** @ignore */\nexport class DurationMicrosecond extends Duration<Type.DurationMicrosecond> { constructor() { super(TimeUnit.MICROSECOND); } }\n/** @ignore */\nexport class DurationNanosecond extends Duration<Type.DurationNanosecond> { constructor() { super(TimeUnit.NANOSECOND); } }\n\n\n/** @ignore */\nexport interface List<T extends DataType = any> extends DataType<Type.List, { [0]: T }> {\n TArray: Array<T>;\n TValue: Vector<T>;\n}\n\n/** @ignore */\nexport class List<T extends DataType = any> extends DataType<Type.List, { [0]: T }> {\n constructor(child: Field<T>) {\n super(Type.List);\n this.children = [child];\n }\n public declare readonly children: Field<T>[];\n public toString() { return `List<${this.valueType}>`; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field<T> { return this.children[0] as Field<T>; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n protected static [Symbol.toStringTag] = ((proto: List) => {\n (<any>proto).children = null;\n return proto[Symbol.toStringTag] = 'List';\n })(List.prototype);\n}\n\n/** @ignore */\nexport interface LargeList<T extends DataType = any> extends DataType<Type.LargeList, { [0]: T }> {\n TArray: Array<T>;\n TValue: Vector<T>;\n TOffsetArray: BigInt64Array;\n OffsetArrayType: BigIntArrayConstructor<BigInt64Array>;\n}\n\n/**\n * Like `List`, but with 64-bit value offsets \u2014 use this when a list column's\n * cumulative child-element count would exceed `List`'s 32-bit offset ceiling\n * of `2^31 - 1`. Otherwise prefer `List`.\n *\n * Values round-trip losslessly through Arrow IPC at any 64-bit offset magnitude.\n * In-process JavaScript APIs (`.get(i)`, slicing, builders) narrow offsets to a\n * JS `number` and are therefore bounded by `Number.MAX_SAFE_INTEGER`\n * (`2^53 - 1`, about 9\u00D710^15) cumulative child elements per column. If an\n * operation would cross that ceiling, it throws a `TypeError` rather than\n * silently returning data at a truncated index. This matches the behavior of\n * `LargeUtf8` and `LargeBinary`.\n *\n * @ignore\n */\nexport class LargeList<T extends DataType = any> extends DataType<Type.LargeList, { [0]: T }> {\n constructor(child: Field<T>) {\n super(Type.LargeList);\n this.children = [child];\n }\n public declare readonly children: Field<T>[];\n public toString() { return `LargeList<${this.valueType}>`; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field<T> { return this.children[0] as Field<T>; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n protected static [Symbol.toStringTag] = ((proto: LargeList) => {\n (<any>proto).children = null;\n (<any>proto).OffsetArrayType = BigInt64Array;\n return proto[Symbol.toStringTag] = 'LargeList';\n })(LargeList.prototype);\n}\n\n/** @ignore */\nexport interface Struct<T extends TypeMap = any> extends DataType<Type.Struct, T> {\n TArray: Array<StructRowProxy<T>>;\n TValue: StructRowProxy<T>;\n dataTypes: T;\n}\n\n/** @ignore */\nexport class Struct<T extends TypeMap = any> extends DataType<Type.Struct, T> {\n public declare _row: StructRow<T>;\n public declare readonly children: Field<T[keyof T]>[];\n constructor(children: Field<T[keyof T]>[]) {\n super(Type.Struct);\n this.children = children;\n }\n public toString() { return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Struct) => {\n (<any>proto).children = null;\n return proto[Symbol.toStringTag] = 'Struct';\n })(Struct.prototype);\n}\n\n/** @ignore */\ntype Unions = Type.Union | Type.DenseUnion | Type.SparseUnion;\n/** @ignore */\ninterface Union_<T extends Unions = Unions> extends DataType<T> { TArray: Int8Array; TValue: any; ArrayType: TypedArrayConstructor<Int8Array> }\n/** @ignore */\nclass Union_<T extends Unions = Unions> extends DataType<T> {\n public declare readonly mode: UnionMode;\n public declare readonly typeIds: Int32Array;\n public declare readonly children: Field<any>[];\n public declare readonly typeIdToChildIndex: { [key: number]: number };\n constructor(mode: UnionMode,\n typeIds: number[] | Int32Array,\n children: Field<any>[]) {\n super(Type.Union as T);\n this.mode = mode;\n this.children = children;\n this.typeIds = typeIds = Int32Array.from(typeIds);\n this.typeIdToChildIndex = typeIds.reduce((typeIdToChildIndex, typeId, idx) => (typeIdToChildIndex[typeId] = idx) && typeIdToChildIndex || typeIdToChildIndex, Object.create(null) as { [key: number]: number });\n }\n public toString() {\n return `${this[Symbol.toStringTag]}<${this.children.map((x) => `${x.type}`).join(` | `)\n }>`;\n }\n protected static [Symbol.toStringTag] = ((proto: Union_) => {\n (<any>proto).mode = null;\n (<any>proto).typeIds = null;\n (<any>proto).children = null;\n (<any>proto).typeIdToChildIndex = null;\n (<any>proto).ArrayType = Int8Array;\n return proto[Symbol.toStringTag] = 'Union';\n })(Union_.prototype);\n}\n\nexport { Union_ as Union };\n\n/** @ignore */\nexport class DenseUnion extends Union_<Type.DenseUnion> {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Dense, typeIds, children);\n }\n}\n\n/** @ignore */\nexport class SparseUnion extends Union_<Type.SparseUnion> {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Sparse, typeIds, children);\n }\n}\n\n/** @ignore */\nexport interface FixedSizeBinary extends DataType<Type.FixedSizeBinary> {\n TArray: Uint8Array;\n TValue: Uint8Array;\n ArrayType: TypedArrayConstructor<Uint8Array>;\n}\n\n/** @ignore */\nexport class FixedSizeBinary extends DataType<Type.FixedSizeBinary> {\n constructor(public readonly byteWidth: number) {\n super(Type.FixedSizeBinary);\n }\n public toString() { return `FixedSizeBinary[${this.byteWidth}]`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeBinary) => {\n (<any>proto).byteWidth = null;\n (<any>proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'FixedSizeBinary';\n })(FixedSizeBinary.prototype);\n}\n\n/** @ignore */\nexport interface FixedSizeList<T extends DataType = any> extends DataType<Type.FixedSizeList, { [0]: T }> {\n TArray: Array<T['TArray']>;\n TValue: Vector<T>;\n}\n\n/** @ignore */\nexport class FixedSizeList<T extends DataType = any> extends DataType<Type.FixedSizeList, { [0]: T }> {\n public declare readonly children: Field<T>[];\n constructor(public readonly listSize: number, child: Field<T>) {\n super(Type.FixedSizeList);\n this.children = [child];\n }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field<T> { return this.children[0] as Field<T>; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n public toString() { return `FixedSizeList[${this.listSize}]<${this.valueType}>`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeList) => {\n (<any>proto).children = null;\n (<any>proto).listSize = null;\n return proto[Symbol.toStringTag] = 'FixedSizeList';\n })(FixedSizeList.prototype);\n}\n\n/** @ignore */\nexport interface Map_<TKey extends DataType = any, TValue extends DataType = any> extends DataType<Type.Map, { [0]: Struct<{ key: TKey; value: TValue }> }> {\n TArray: Array<Map<TKey['TValue'], TValue['TValue'] | null>>;\n TChild: Struct<{ key: TKey; value: TValue }>;\n TValue: MapRow<TKey, TValue>;\n}\n\n/** @ignore */\nexport class Map_<TKey extends DataType = any, TValue extends DataType = any> extends DataType<Type.Map, { [0]: Struct<{ key: TKey; value: TValue }> }> {\n constructor(entries: Field<Struct<{ key: TKey; value: TValue }>>, keysSorted = false) {\n super(Type.Map);\n this.children = [entries];\n this.keysSorted = keysSorted;\n // ARROW-8716\n // https://github.com/apache/arrow/issues/17168\n if (entries) {\n (entries as any)['name'] = 'entries';\n if ((entries as any)?.type?.children) {\n const key = (entries as any)?.type?.children[0];\n if (key) {\n key['name'] = 'key';\n }\n const val = (entries as any)?.type?.children[1];\n if (val) {\n val['name'] = 'value';\n }\n }\n }\n }\n public declare readonly keysSorted: boolean;\n public declare readonly children: Field<Struct<{ key: TKey; value: TValue }>>[];\n public get keyType(): TKey { return this.children[0].type.children[0].type as TKey; }\n public get valueType(): TValue { return this.children[0].type.children[1].type as TValue; }\n public get childType() { return this.children[0].type as Struct<{ key: TKey; value: TValue }>; }\n public toString() { return `Map<{${this.children[0].type.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Map_) => {\n (<any>proto).children = null;\n (<any>proto).keysSorted = null;\n return proto[Symbol.toStringTag] = 'Map_';\n })(Map_.prototype);\n}\n\n/** @ignore */\nconst getId = ((atomicDictionaryId) => () => ++atomicDictionaryId)(-1);\n\n/** @ignore */\nexport type TKeys = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32;\n\n/** @ignore */\nexport interface Dictionary<T extends DataType = any, TKey extends TKeys = TKeys> extends DataType<Type.Dictionary> {\n TArray: TKey['TArray'];\n TValue: T['TValue'];\n}\n\n/** @ignore */\nexport class Dictionary<T extends DataType = any, TKey extends TKeys = TKeys> extends DataType<Type.Dictionary> {\n public declare readonly id: number;\n public declare readonly indices: TKey;\n public declare readonly dictionary: T;\n public declare readonly isOrdered: boolean;\n constructor(dictionary: T, indices: TKey, id?: bigint | number | null, isOrdered?: boolean | null) {\n super(Type.Dictionary);\n this.indices = indices;\n this.dictionary = dictionary;\n this.isOrdered = isOrdered || false;\n this.id = id == null ? getId() : bigIntToNumber(id);\n }\n public get children() { return this.dictionary.children; }\n public get valueType(): T { return this.dictionary as T; }\n public get ArrayType(): T['ArrayType'] { return this.dictionary.ArrayType; }\n public toString() { return `Dictionary<${this.indices}, ${this.dictionary}>`; }\n protected static [Symbol.toStringTag] = ((proto: Dictionary) => {\n (<any>proto).id = null;\n (<any>proto).indices = null;\n (<any>proto).isOrdered = null;\n (<any>proto).dictionary = null;\n return proto[Symbol.toStringTag] = 'Dictionary';\n })(Dictionary.prototype);\n}\n\n/** @ignore */\nexport type FloatArray = Uint16Array | Float32Array | Float64Array;\n/** @ignore */\nexport type IntArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;\n\n/** @ignore */\nexport function strideForType(type: DataType) {\n const t: any = type;\n switch (type.typeId) {\n case Type.Decimal: return (type as Decimal).bitWidth / 32;\n case Type.Interval: {\n if ((t as Interval_).unit === IntervalUnit.MONTH_DAY_NANO) {\n return 4;\n }\n return 1 + (t as Interval_).unit;\n }\n // case Type.Int: return 1 + +((t as Int_).bitWidth > 32);\n // case Type.Time: return 1 + +((t as Time_).bitWidth > 32);\n case Type.BinaryView:\n case Type.Utf8View: return 16;\n case Type.FixedSizeList: return (t as FixedSizeList).listSize;\n case Type.FixedSizeBinary: return (t as FixedSizeBinary).byteWidth;\n default: return 1;\n }\n}\n\n/** @ignore */\nexport type TypeMap = Record<string | number | symbol, DataType>;\n", "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Type, Precision, DateUnit, TimeUnit, IntervalUnit, UnionMode } from './enum.js';\nimport { DataType, Float, Int, Date_, Interval, Time, Timestamp, Union, Duration } from './type.js';\n\nexport abstract class Visitor {\n public visitMany(nodes: any[], ...args: any[][]) {\n return nodes.map((node, i) => this.visit(node, ...args.map((x) => x[i])));\n }\n public visit(...args: any[]) {\n return this.getVisitFn(args[0], false).apply(this, args);\n }\n public getVisitFn(node: any, throwIfNotFound = true) {\n return getVisitFn(this, node, throwIfNotFound);\n }\n public getVisitFnByTypeId(typeId: Type, throwIfNotFound = true) {\n return getVisitFnByTypeId(this, typeId, throwIfNotFound);\n }\n public visitNull(_node: any, ..._args: any[]): any { return null; }\n public visitBool(_node: any, ..._args: any[]): any { return null; }\n public visitInt(_node: any, ..._args: any[]): any { return null; }\n public visitFloat(_node: any, ..._args: any[]): any { return null; }\n public visitUtf8(_node: any, ..._args: any[]): any { return null; }\n public visitLargeUtf8(_node: any, ..._args: any[]): any { return null; }\n public visitUtf8View(_node: any, ..._args: any[]): any { return null; }\n public visitBinary(_node: any, ..._args: any[]): any { return null; }\n public visitLargeBinary(_node: any, ..._args: any[]): any { return null; }\n public visitBinaryView(_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeBinary(_node: any, ..._args: any[]): any { return null; }\n public visitDate(_node: any, ..._args: any[]): any { return null; }\n public visitTimestamp(_node: any, ..._args: any[]): any { return null; }\n public visitTime(_node: any, ..._args: any[]): any { return null; }\n public visitDecimal(_node: any, ..._args: any[]): any { return null; }\n public visitList(_node: any, ..._args: any[]): any { return null; }\n public visitLargeList(_node: any, ..._args: any[]): any { return null; }\n public visitStruct(_node: any, ..._args: any[]): any { return null; }\n public visitUnion(_node: any, ..._args: any[]): any { return null; }\n public visitDictionary(_node: any, ..._args: any[]): any { return null; }\n public visitInterval(_node: any, ..._args: any[]): any { return null; }\n public visitDuration(_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeList(_node: any, ..._args: any[]): any { return null; }\n public visitMap(_node: any, ..._args: any[]): any { return null; }\n}\n\n/** @ignore */\nfunction getVisitFn<T extends DataType>(visitor: Visitor, node: any, throwIfNotFound = true) {\n if (typeof node === 'number') {\n return getVisitFnByTypeId(visitor, node, throwIfNotFound);\n }\n if (typeof node === 'string' && (node in Type)) {\n return getVisitFnByTypeId(visitor, Type[node as keyof typeof Type], throwIfNotFound);\n }\n if (node && (node instanceof DataType)) {\n return getVisitFnByTypeId(visitor, inferDType(node as T), throwIfNotFound);\n }\n if (node?.type && (node.type instanceof DataType)) {\n return getVisitFnByTypeId(visitor, inferDType(node.type as T), throwIfNotFound);\n }\n return getVisitFnByTypeId(visitor, Type.NONE, throwIfNotFound);\n}\n\n/** @ignore */\nfunction getVisitFnByTypeId(visitor: Visitor, dtype: Type, throwIfNotFound = true) {\n let fn: any = null;\n switch (dtype) {\n case Type.Null: fn = visitor.visitNull; break;\n case Type.Bool: fn = visitor.visitBool; break;\n case Type.Int: fn = visitor.visitInt; break;\n case Type.Int8: fn = visitor.visitInt8 || visitor.visitInt; break;\n case Type.Int16: fn = visitor.visitInt16 || visitor.visitInt; break;\n case Type.Int32: fn = visitor.visitInt32 || visitor.visitInt; break;\n case Type.Int64: fn = visitor.visitInt64 || visitor.visitInt; break;\n case Type.Uint8: fn = visitor.visitUint8 || visitor.visitInt; break;\n case Type.Uint16: fn = visitor.visitUint16 || visitor.visitInt; break;\n case Type.Uint32: fn = visitor.visitUint32 || visitor.visitInt; break;\n case Type.Uint64: fn = visitor.visitUint64 || visitor.visitInt; break;\n case Type.Float: fn = visitor.visitFloat; break;\n case Type.Float16: fn = visitor.visitFloat16 || visitor.visitFloat; break;\n case Type.Float32: fn = visitor.visitFloat32 || visitor.visitFloat; break;\n case Type.Float64: fn = visitor.visitFloat64 || visitor.visitFloat; break;\n case Type.Utf8: fn = visitor.visitUtf8; break;\n case Type.LargeUtf8: fn = visitor.visitLargeUtf8; break;\n case Type.Utf8View: fn = visitor.visitUtf8View || visitor.visitUtf8; break;\n case Type.Binary: fn = visitor.visitBinary; break;\n case Type.LargeBinary: fn = visitor.visitLargeBinary; break;\n case Type.BinaryView: fn = visitor.visitBinaryView || visitor.visitBinary; break;\n case Type.FixedSizeBinary: fn = visitor.visitFixedSizeBinary; break;\n case Type.Date: fn = visitor.visitDate; break;\n case Type.DateDay: fn = visitor.visitDateDay || visitor.visitDate; break;\n case Type.DateMillisecond: fn = visitor.visitDateMillisecond || visitor.visitDate; break;\n case Type.Timestamp: fn = visitor.visitTimestamp; break;\n case Type.TimestampSecond: fn = visitor.visitTimestampSecond || visitor.visitTimestamp; break;\n case Type.TimestampMillisecond: fn = visitor.visitTimestampMillisecond || visitor.visitTimestamp; break;\n case Type.TimestampMicrosecond: fn = visitor.visitTimestampMicrosecond || visitor.visitTimestamp; break;\n case Type.TimestampNanosecond: fn = visitor.visitTimestampNanosecond || visitor.visitTimestamp; break;\n case Type.Time: fn = visitor.visitTime; break;\n case Type.TimeSecond: fn = visitor.visitTimeSecond || visitor.visitTime; break;\n case Type.TimeMillisecond: fn = visitor.visitTimeMillisecond || visitor.visitTime; break;\n case Type.TimeMicrosecond: fn = visitor.visitTimeMicrosecond || visitor.visitTime; break;\n case Type.TimeNanosecond: fn = visitor.visitTimeNanosecond || visitor.visitTime; break;\n case Type.Decimal: fn = visitor.visitDecimal; break;\n case Type.List: fn = visitor.visitList; break;\n case Type.LargeList: fn = visitor.visitLargeList; break;\n case Type.Struct: fn = visitor.visitStruct; break;\n case Type.Union: fn = visitor.visitUnion; break;\n case Type.DenseUnion: fn = visitor.visitDenseUnion || visitor.visitUnion; break;\n case Type.SparseUnion: fn = visitor.visitSparseUnion || visitor.visitUnion; break;\n case Type.Dictionary: fn = visitor.visitDictionary; break;\n case Type.Interval: fn = visitor.visitInterval; break;\n case Type.IntervalDayTime: fn = visitor.visitIntervalDayTime || visitor.visitInterval; break;\n case Type.IntervalYearMonth: fn = visitor.visitIntervalYearMonth || visitor.visitInterval; break;\n case Type.IntervalMonthDayNano: fn = visitor.visitIntervalMonthDayNano || visitor.visitInterval; break;\n case Type.Duration: fn = visitor.visitDuration; break;\n case Type.DurationSecond: fn = visitor.visitDurationSecond || visitor.visitDuration; break;\n case Type.DurationMillisecond: fn = visitor.visitDurationMillisecond || visitor.visitDuration; break;\n case Type.DurationMicrosecond: fn = visitor.visitDurationMicrosecond || visitor.visitDuration; break;\n case Type.DurationNanosecond: fn = visitor.visitDurationNanosecond || visitor.visitDuration; break;\n case Type.FixedSizeList: fn = visitor.visitFixedSizeList; break;\n case Type.Map: fn = visitor.visitMap; break;\n }\n if (typeof fn === 'function') return fn;\n if (!throwIfNotFound) return () => null;\n throw new Error(`Unrecognized type '${Type[dtype]}'`);\n}\n\n/** @ignore */\nfunction inferDType<T extends DataType>(type: T): Type {\n switch (type.typeId) {\n case Type.Null: return Type.Null;\n case Type.Int: {\n const { bitWidth, isSigned } = (type as any as Int);\n switch (bitWidth) {\n case 8: return isSigned ? Type.Int8 : Type.Uint8;\n case 16: return isSigned ? Type.Int16 : Type.Uint16;\n case 32: return isSigned ? Type.Int32 : Type.Uint32;\n case 64: return isSigned ? Type.Int64 : Type.Uint64;\n }\n // @ts-ignore\n return Type.Int;\n }\n case Type.Float:\n switch ((type as any as Float).precision) {\n case Precision.HALF: return Type.Float16;\n case Precision.SINGLE: return Type.Float32;\n case Precision.DOUBLE: return Type.Float64;\n }\n // @ts-ignore\n return Type.Float;\n case Type.Binary: return Type.Binary;\n case Type.LargeBinary: return Type.LargeBinary;\n case Type.BinaryView: return Type.BinaryView;\n case Type.Utf8: return Type.Utf8;\n case Type.LargeUtf8: return Type.LargeUtf8;\n case Type.Utf8View: return Type.Utf8View;\n case Type.Bool: return Type.Bool;\n case Type.Decimal: return Type.Decimal;\n case Type.Time:\n switch ((type as any as Time).unit) {\n case TimeUnit.SECOND: return Type.TimeSecond;\n case TimeUnit.MILLISECOND: return Type.TimeMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimeMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimeNanosecond;\n }\n // @ts-ignore\n return Type.Time;\n case Type.Timestamp:\n switch ((type as any as Timestamp).unit) {\n case TimeUnit.SECOND: return Type.TimestampSecond;\n case TimeUnit.MILLISECOND: return Type.TimestampMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimestampMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimestampNanosecond;\n }\n // @ts-ignore\n return Type.Timestamp;\n case Type.Date:\n switch ((type as any as Date_).unit) {\n case DateUnit.DAY: return Type.DateDay;\n case DateUnit.MILLISECOND: return Type.DateMillisecond;\n }\n // @ts-ignore\n return Type.Date;\n case Type.Interval:\n switch ((type as any as Interval).unit) {\n case IntervalUnit.DAY_TIME: return Type.IntervalDayTime;\n case IntervalUnit.YEAR_MONTH: return Type.IntervalYearMonth;\n case IntervalUnit.MONTH_DAY_NANO: return Type.IntervalMonthDayNano;\n }\n // @ts-ignore\n return Type.Interval;\n case Type.Duration:\n switch ((type as any as Duration).unit) {\n case TimeUnit.SECOND: return Type.DurationSecond;\n case TimeUnit.MILLISECOND: return Type.DurationMillisecond;\n case TimeUnit.MICROSECOND: return Type.DurationMicrosecond;\n case TimeUnit.NANOSECOND: return Type.DurationNanosecond;\n }\n // @ts-ignore\n return Type.Duration;\n case Type.Map: return Type.Map;\n case Type.List: return Type.List;\n case Type.LargeList: return Type.LargeList;\n case Type.Struct: return Type.Struct;\n case Type.Union:\n switch ((type as any as Union).mode) {\n case UnionMode.Dense: return Type.DenseUnion;\n case UnionMode.Sparse: return Type.SparseUnion;\n }\n // @ts-ignore\n return Type.Union;\n case Type.FixedSizeBinary: return Type.FixedSizeBinary;\n case Type.FixedSizeList: return Type.FixedSizeList;\n case Type.Dictionary: return Type.Dictionary;\n }\n throw new Error(`Unrecognized type '${Type[type.typeId]}'`);\n}\n\nexport interface Visitor {\n visitNull(node: any, ...args: any[]): any;\n visitBool(node: any, ...args: any[]): any;\n visitInt(node: any, ...args: any[]): any;\n visitInt8?(node: any, ...args: any[]): any;\n visitInt16?(node: any, ...args: any[]): any;\n visitInt32?(node: any, ...args: any[]): any;\n visitInt64?(node: any, ...args: any[]): any;\n visitUint8?(node: any, ...args: any[]): any;\n visitUint16?(node: any, ...args: any[]): any;\n visitUint32?(node: any, ...args: any[]): any;\n visitUint64?(node: any, ...args: any[]): any;\n visitFloat(node: any, ...args: any[]): any;\n visitFloat16?(node: any, ...args: any[]): any;\n visitFloat32?(node: any, ...args: any[]): any;\n visitFloat64?(node: any, ...args: any[]): any;\n visitUtf8(node: any, ...args: any[]): any;\n visitLargeUtf8(node: any, ...args: any[]): any;\n visitBinary(node: any, ...args: any[]): any;\n visitLargeBinary(node: any, ...args: any[]): any;\n visitFixedSizeBinary(node: any, ...args: any[]): any;\n visitDate(node: any, ...args: any[]): any;\n visitDateDay?(node: any, ...args: any[]): any;\n visitDateMillisecond?(node: any, ...args: any[]): any;\n visitTimestamp(node: any, ...args: any[]): any;\n visitTimestampSecond?(node: any, ...args: any[]): any;\n visitTimestampMillisecond?(node: any, ...args: any[]): any;\n visitTimestampMicrosecond?(node: any, ...args: any[]): any;\n visitTimestampNanosecond?(node: any, ...args: any[]): any;\n visitTime(node: any, ...args: any[]): any;\n visitTimeSecond?(node: any, ...args: any[]): any;\n visitTimeMillisecond?(node: any, ...args: any[]): any;\n visitTimeMicrosecond?(node: any, ...args: any[]): any;\n visitTimeNanosecond?(node: any, ...args: any[]): any;\n visitDecimal(node: any, ...args: any[]): any;\n visitList(node: any, ...args: any[]): any;\n visitStruct(node: any, ...args: any[]): any;\n visitUnion(node: any, ...args: any[]): any;\n visitDenseUnion?(node: any, ...args: any[]): any;\n visitSparseUnion?(node: any, ...args: any[]): any;\n visitDictionary(node: any, ...args: any[]): any;\n visitInterval(node: any, ...args: any[]): any;\n visitIntervalDayTime?(node: any, ...args: any[]): any;\n visitIntervalYearMonth?(node: any, ...args: any[]): any;\n visitIntervalMonthDayNano?(node: any, ...args: any[]): any;\n visitDuration(node: any, ...args: any[]): any;\n visitDurationSecond(node: any, ...args: any[]): any;\n visitDurationMillisecond(node: any, ...args: any[]): any;\n visitDurationMicrosecond(node: any, ...args: any[]): any;\n visitDurationNanosecond(node: any, ...args: any[]): any;\n visitFixedSizeList(node: any, ...args: any[]): any;\n visitMap(node: any, ...args: any[]): any;\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Visitor.prototype as any).visitInt8 = null;\n(Visitor.prototype as any).visitInt16 = null;\n(Visitor.prototype as any).visitInt32 = null;\n(Visitor.prototype as any).visitInt64 = null;\n(Visitor.prototype as any).visitUint8 = null;\n(Visitor.prototype as any).visitUint16 = null;\n(Visitor.prototype as any).visitUint32 = null;\n(Visitor.prototype as any).visitUint64 = null;\n(Visitor.prototype as any).visitFloat16 = null;\n(Visitor.prototype as any).visitFloat32 = null;\n(Visitor.prototype as any).visitFloat64 = null;\n(Visitor.prototype as any).visitDateDay = null;\n(Visitor.prototype as any).visitDateMillisecond = null;\n(Visitor.prototype as any).visitTimestampSecond = null;\n(Visitor.prototype as any).visitTimestampMillisecond = null;\n(Visitor.prototype as any).visitTimestampMicrosecond = null;\n(Visitor.prototype as any).visitTimestampNanosecond = null;\n(Visitor.prototype as any).visitTimeSecond = null;\n(Visitor.prototype as any).visitTimeMillisecond = null;\n(Visitor.prototype as any).visitTimeMicrosecond = null;\n(Visitor.prototype as any).visitTimeNanosecond = null;\n(Visitor.prototype as any).visitDenseUnion = null;\n(Visitor.prototype as any).visitSparseUnion = null;\n(Visitor.prototype as any).visitIntervalDayTime = null;\n(Visitor.prototype as any).visitIntervalYearMonth = null;\n(Visitor.prototype as any).visitIntervalMonthDayNano = null;\n(Visitor.prototype as any).visitDuration = null;\n(Visitor.prototype as any).visitDurationSecond = null;\n(Visitor.prototype as any).visitDurationMillisecond = null;\n(Visitor.prototype as any).visitDurationMicrosecond = null;\n(Visitor.prototype as any).visitDurationNanosecond = null;\n", null, null, null, null, null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector.js';\nimport { BufferType, Type, UnionMode } from './enum.js';\nimport { DataType, strideForType } from './type.js';\nimport { popcnt_bit_range, truncateBitmap } from './util/bit.js';\n\n// When slicing, we do not know the null count of the sliced range without\n// doing some computation. To avoid doing this eagerly, we set the null count\n// to -1 (any negative number will do). When Vector.nullCount is called the\n// first time, the null count will be computed. See ARROW-33\n/** @ignore */ export type kUnknownNullCount = -1;\n/** @ignore */ export const kUnknownNullCount = -1;\n\n/** @ignore */ export type NullBuffer = Uint8Array | null | undefined;\n/** @ignore */ export type TypeIdsBuffer = Int8Array | ArrayLike<number> | Iterable<number> | undefined;\n/** @ignore */ export type ValueOffsetsBuffer = Int32Array | ArrayLike<number> | Iterable<number> | undefined;\n/** @ignore */ export type LargeValueOffsetsBuffer = BigInt64Array | ArrayLike<bigint> | Iterable<bigint> | undefined;\n/** @ignore */ export type DataBuffer<T extends DataType> = T['TArray'] | ArrayLike<number> | Iterable<number> | undefined;\n\n/** @ignore */\nexport interface Buffers<T extends DataType> {\n [BufferType.OFFSET]: T['TOffsetArray'];\n [BufferType.DATA]: T['TArray'];\n [BufferType.VALIDITY]: Uint8Array;\n [BufferType.TYPE]: T['TArray'];\n}\n\n/** @ignore */\nconst kDataSymbol = Symbol.for('apache-arrow/Data');\n\n/** @ignore */\nexport interface Data<T extends DataType = DataType> {\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\n/**\n * Data structure underlying {@link Vector}s. Use the convenience method {@link makeData}.\n */\nexport class Data<T extends DataType = DataType> {\n\n /**\n * Check if an object is an instance of Data.\n * This works across different instances of the Arrow library.\n */\n /** @nocollapse */ static isData(x: any): x is Data {\n return x?.[kDataSymbol] === true;\n }\n\n /** @internal */\n declare public readonly [kDataSymbol]: true;\n\n declare public readonly type: T;\n declare public readonly length: number;\n declare public readonly offset: number;\n declare public readonly stride: number;\n declare public readonly children: Data[];\n\n /**\n * The dictionary for this Vector, if any. Only used for Dictionary type.\n */\n declare public dictionary?: Vector;\n\n declare public readonly values: Buffers<T>[BufferType.DATA];\n declare public readonly typeIds: Buffers<T>[BufferType.TYPE];\n declare public readonly nullBitmap: Buffers<T>[BufferType.VALIDITY];\n declare public readonly valueOffsets: Buffers<T>[BufferType.OFFSET];\n declare public readonly variadicBuffers: ReadonlyArray<Uint8Array>;\n\n public get typeId(): T['TType'] { return this.type.typeId; }\n\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n\n public get buffers() {\n return [this.valueOffsets, this.values, this.nullBitmap, this.typeIds] as Buffers<T>;\n }\n\n public get nullable(): boolean {\n if (this._nullCount !== 0) {\n const { type } = this;\n if (DataType.isSparseUnion(type)) {\n return this.children.some((child) => child.nullable);\n } else if (DataType.isDenseUnion(type)) {\n return this.children.some((child) => child.nullable);\n }\n return this.nullBitmap && this.nullBitmap.byteLength > 0;\n }\n return true;\n }\n\n public get byteLength(): number {\n let byteLength = 0;\n const { valueOffsets, values, nullBitmap, typeIds } = this;\n valueOffsets && (byteLength += valueOffsets.byteLength);\n values && (byteLength += values.byteLength);\n nullBitmap && (byteLength += nullBitmap.byteLength);\n typeIds && (byteLength += typeIds.byteLength);\n byteLength += this.variadicBuffers.reduce((size, data) => size + (data?.byteLength ?? 0), 0);\n return this.children.reduce((byteLength, child) => byteLength + child.byteLength, byteLength);\n }\n\n protected _nullCount: number | kUnknownNullCount;\n\n public get nullCount(): number {\n if (DataType.isUnion(this.type)) {\n return this.children.reduce((nullCount, child) => nullCount + child.nullCount, 0);\n }\n let nullCount = this._nullCount;\n let nullBitmap: Uint8Array | undefined;\n if (nullCount <= kUnknownNullCount && (nullBitmap = this.nullBitmap)) {\n this._nullCount = nullCount = nullBitmap.length === 0 ?\n // no null bitmap, so all values are valid\n 0 :\n this.length - popcnt_bit_range(nullBitmap, this.offset, this.offset + this.length);\n }\n return nullCount;\n }\n\n constructor(\n type: T,\n offset: number,\n length: number,\n nullCount?: number,\n buffers?: Partial<Buffers<T>> | Data<T>,\n children: Data[] = [],\n dictionary?: Vector,\n variadicBuffers: ReadonlyArray<Uint8Array> = []\n ) {\n this.type = type;\n this.children = children;\n this.dictionary = dictionary;\n this.offset = Math.floor(Math.max(offset || 0, 0));\n this.length = Math.floor(Math.max(length || 0, 0));\n this._nullCount = Math.floor(Math.max(nullCount || 0, -1));\n let buffer: Buffers<T>[keyof Buffers<T>];\n if (buffers instanceof Data) {\n this.stride = buffers.stride;\n this.values = buffers.values;\n this.typeIds = buffers.typeIds;\n this.nullBitmap = buffers.nullBitmap;\n this.valueOffsets = buffers.valueOffsets;\n this.variadicBuffers = buffers.variadicBuffers;\n } else {\n this.stride = strideForType(type);\n if (buffers) {\n (buffer = (buffers as Buffers<T>)[0]) && (this.valueOffsets = buffer);\n (buffer = (buffers as Buffers<T>)[1]) && (this.values = buffer);\n (buffer = (buffers as Buffers<T>)[2]) && (this.nullBitmap = buffer);\n (buffer = (buffers as Buffers<T>)[3]) && (this.typeIds = buffer);\n }\n this.variadicBuffers = variadicBuffers;\n }\n this.variadicBuffers ??= [];\n }\n\n public getValid(index: number): boolean {\n const { type } = this;\n if (DataType.isUnion(type)) {\n const union = (<unknown>type as Union);\n const typeId = this.typeIds[index];\n const childIndex = union.typeIdToChildIndex[typeId];\n const child = this.children[childIndex];\n const valueOffsets = this.valueOffsets as Int32Array | BigInt64Array | undefined;\n const indexInChild = union.mode === UnionMode.Dense && valueOffsets\n ? Number(valueOffsets[index])\n : index;\n return child.getValid(indexInChild);\n }\n if (this.nullable && this.nullCount > 0) {\n const pos = this.offset + index;\n const val = this.nullBitmap[pos >> 3];\n return (val & (1 << (pos % 8))) !== 0;\n }\n return true;\n }\n\n public setValid(index: number, value: boolean): boolean {\n let prev: boolean;\n const { type } = this;\n if (DataType.isUnion(type)) {\n const union = (<unknown>type as Union);\n const typeId = this.typeIds[index];\n const childIndex = union.typeIdToChildIndex[typeId];\n const child = this.children[childIndex];\n const valueOffsets = this.valueOffsets as Int32Array | BigInt64Array | undefined;\n const indexInChild = union.mode === UnionMode.Dense && valueOffsets\n ? Number(valueOffsets[index])\n : index;\n prev = child.getValid(indexInChild);\n child.setValid(indexInChild, value);\n } else {\n let { nullBitmap } = this;\n const { offset, length } = this;\n const idx = offset + index;\n const mask = 1 << (idx % 8);\n const byteOffset = idx >> 3;\n\n // If no null bitmap, initialize one on the fly\n if (!nullBitmap || nullBitmap.byteLength <= byteOffset) {\n nullBitmap = new Uint8Array((((offset + length) + 63) & ~63) >> 3).fill(255);\n // if we have a nullBitmap, truncate + slice and set it over the pre-filled 1s\n if (this.nullCount > 0) {\n nullBitmap.set(truncateBitmap(offset, length, this.nullBitmap), 0);\n Object.assign(this, { nullBitmap });\n } else {\n Object.assign(this, { nullBitmap, _nullCount: 0 });\n }\n }\n\n const byte = nullBitmap[byteOffset];\n\n prev = (byte & mask) !== 0;\n nullBitmap[byteOffset] = value ? (byte | mask) : (byte & ~mask);\n }\n\n if (prev !== !!value) {\n // Update `_nullCount` if the new value is different from the old value.\n this._nullCount = this.nullCount + (value ? -1 : 1);\n }\n\n return value;\n }\n\n public clone<R extends DataType = T>(\n type: R = this.type as any,\n offset = this.offset,\n length = this.length,\n nullCount = this._nullCount,\n buffers: Buffers<R> = <any>this,\n children: Data[] = this.children,\n variadicBuffers: ReadonlyArray<Uint8Array> = this.variadicBuffers\n ) {\n return new Data(type, offset, length, nullCount, buffers, children, this.dictionary, variadicBuffers);\n }\n\n public slice(offset: number, length: number): Data<T> {\n const { stride, typeId, children } = this;\n // +true === 1, +false === 0, so this means\n // we keep nullCount at 0 if it's already 0,\n // otherwise set to the invalidated flag -1\n const nullCount = +(this._nullCount === 0) - 1;\n const childStride = typeId === 16 /* FixedSizeList */ ? stride : 1;\n const buffers = this._sliceBuffers(offset, length, stride, typeId);\n return this.clone<T>(this.type, this.offset + offset, length, nullCount, buffers,\n // Don't slice children if we have value offsets (the variable-width types)\n (children.length === 0 || this.valueOffsets) ? children : this._sliceChildren(children, childStride * offset, childStride * length),\n this.variadicBuffers);\n }\n\n public _changeLengthAndBackfillNullBitmap(newLength: number): Data<T> {\n if (this.typeId === Type.Null) {\n return this.clone(this.type, 0, newLength, 0, <any>this.buffers, this.children, this.variadicBuffers);\n }\n const { length, nullCount } = this;\n // start initialized with 0s (nulls), then fill from 0 to length with 1s (not null)\n const bitmap = new Uint8Array(((newLength + 63) & ~63) >> 3).fill(255, 0, length >> 3);\n // set all the bits in the last byte (up to bit `length - length % 8`) to 1 (not null)\n bitmap[length >> 3] = (1 << (length - (length & ~7))) - 1;\n // if we have a nullBitmap, truncate + slice and set it over the pre-filled 1s\n if (nullCount > 0) {\n bitmap.set(truncateBitmap(this.offset, length, this.nullBitmap), 0);\n }\n const buffers = this.buffers;\n buffers[BufferType.VALIDITY] = bitmap;\n return this.clone(this.type, 0, newLength, nullCount + (newLength - length), buffers, this.children, this.variadicBuffers);\n }\n\n protected _sliceBuffers(offset: number, length: number, stride: number, typeId: T['TType']): Buffers<T> {\n let arr: any;\n const { buffers } = this;\n // If typeIds exist, slice the typeIds buffer\n (arr = buffers[BufferType.TYPE]) && (buffers[BufferType.TYPE] = arr.subarray(offset, offset + length));\n if (DataType.isBinaryView(this.type) || DataType.isUtf8View(this.type)) {\n const width = BinaryView.ELEMENT_WIDTH;\n (arr = buffers[BufferType.DATA]) && (buffers[BufferType.DATA] = arr.subarray(offset * width, (offset + length) * width));\n } else {\n // If offsets exist, only slice the offsets buffer\n (arr = buffers[BufferType.OFFSET]) && (buffers[BufferType.OFFSET] = arr.subarray(offset, offset + length + 1)) ||\n // Otherwise if no offsets, slice the data buffer. Don't slice the data vector for Booleans, since the offset goes by bits not bytes\n (arr = buffers[BufferType.DATA]) && (buffers[BufferType.DATA] = typeId === 6 ? arr : arr.subarray(stride * offset, stride * (offset + length)));\n }\n return buffers;\n }\n\n protected _sliceChildren(children: Data[], offset: number, length: number): Data[] {\n return children.map((child) => child.slice(offset, length));\n }\n}\n\n(Data.prototype as any).children = Object.freeze([]);\n(Data.prototype as any)[kDataSymbol] = true;\n\nObject.defineProperty(Data, Symbol.hasInstance, {\n value: function isDataInstance(instance: any): instance is Data {\n return Function.prototype[Symbol.hasInstance].call(this, instance)\n || (this === Data && Data.isData(instance));\n },\n});\n\nimport {\n Dictionary,\n Bool, Null, Utf8, Utf8View, LargeUtf8, Binary, BinaryView, LargeBinary, Decimal, FixedSizeBinary, List, LargeList, FixedSizeList, Map_, Struct,\n Float,\n Int,\n Date_,\n Interval,\n Duration,\n Time,\n Timestamp,\n Union, DenseUnion, SparseUnion,\n} from './type.js';\n\nimport { Visitor } from './visitor.js';\nimport { toArrayBufferView, toBigInt64Array, toInt32Array, toUint8Array } from './util/buffer.js';\n\nclass MakeDataVisitor extends Visitor {\n public visit<T extends DataType>(props: any): Data<T> {\n return this.getVisitFn(props['type']).call(this, props);\n }\n public visitNull<T extends Null>(props: NullDataProps<T>) {\n const {\n ['type']: type,\n ['offset']: offset = 0,\n ['length']: length = 0,\n } = props;\n return new Data(type, offset, length, length);\n }\n public visitBool<T extends Bool>(props: BoolDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length >> 3, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitInt<T extends Int>(props: IntDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitFloat<T extends Float>(props: FloatDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitUtf8<T extends Utf8>(props: Utf8DataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const data = toUint8Array(props['data']);\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const valueOffsets = toInt32Array(props['valueOffsets']);\n const { ['length']: length = valueOffsets.length - 1, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [valueOffsets, data, nullBitmap]);\n }\n public visitUtf8View<T extends Utf8View>(props: Utf8ViewDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const views = toArrayBufferView(type.ArrayType, props['views']);\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const variadicBuffers = (props['variadicBuffers'] || []).map((buffer) => toUint8Array(buffer));\n const length = props['length'] ?? Math.trunc(views.length / Utf8View.ELEMENT_WIDTH);\n const nullCount = props['nullBitmap'] ? -1 : 0;\n return new Data(type, offset, length, nullCount, [undefined, views, nullBitmap], [], undefined, variadicBuffers);\n }\n public visitLargeUtf8<T extends LargeUtf8>(props: LargeUtf8DataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const data = toUint8Array(props['data']);\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const valueOffsets = toBigInt64Array(props['valueOffsets']);\n const { ['length']: length = valueOffsets.length - 1, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [valueOffsets, data, nullBitmap]);\n }\n public visitBinary<T extends Binary>(props: BinaryDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const data = toUint8Array(props['data']);\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const valueOffsets = toInt32Array(props['valueOffsets']);\n const { ['length']: length = valueOffsets.length - 1, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [valueOffsets, data, nullBitmap]);\n }\n public visitBinaryView<T extends BinaryView>(props: BinaryViewDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const views = toArrayBufferView(type.ArrayType, props['views']);\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const variadicBuffers = (props['variadicBuffers'] || []).map((buffer) => toUint8Array(buffer));\n const length = props['length'] ?? Math.trunc(views.length / BinaryView.ELEMENT_WIDTH);\n const nullCount = props['nullBitmap'] ? -1 : 0;\n return new Data(type, offset, length, nullCount, [undefined, views, nullBitmap], [], undefined, variadicBuffers);\n }\n public visitLargeBinary<T extends LargeBinary>(props: LargeBinaryDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const data = toUint8Array(props['data']);\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const valueOffsets = toBigInt64Array(props['valueOffsets']);\n const { ['length']: length = valueOffsets.length - 1, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [valueOffsets, data, nullBitmap]);\n }\n public visitFixedSizeBinary<T extends FixedSizeBinary>(props: FixedSizeBinaryDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length / strideForType(type), ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitDate<T extends Date_>(props: Date_DataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length / strideForType(type), ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitTimestamp<T extends Timestamp>(props: TimestampDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length / strideForType(type), ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitTime<T extends Time>(props: TimeDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length / strideForType(type), ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitDecimal<T extends Decimal>(props: DecimalDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length / strideForType(type), ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitList<T extends List>(props: ListDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0, ['child']: child } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const valueOffsets = toInt32Array(props['valueOffsets']);\n const { ['length']: length = valueOffsets.length - 1, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [valueOffsets, undefined, nullBitmap], [child]);\n }\n public visitLargeList<T extends LargeList>(props: LargeListDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0, ['child']: child } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const valueOffsets = toBigInt64Array(props['valueOffsets']);\n const { ['length']: length = valueOffsets.length - 1, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [valueOffsets, undefined, nullBitmap], [child]);\n }\n public visitStruct<T extends Struct>(props: StructDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0, ['children']: children = [] } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const {\n length = children.reduce((len, { length }) => Math.max(len, length), 0),\n nullCount = props['nullBitmap'] ? -1 : 0\n } = props;\n return new Data(type, offset, length, nullCount, [undefined, undefined, nullBitmap], children);\n }\n public visitUnion<T extends Union>(props: UnionDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0, ['children']: children = [] } = props;\n const typeIds = toArrayBufferView(type.ArrayType, props['typeIds']);\n const { ['length']: length = typeIds.length, ['nullCount']: nullCount = -1, } = props;\n if (DataType.isSparseUnion(type)) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, undefined, typeIds], children);\n }\n const valueOffsets = toInt32Array(props['valueOffsets']);\n return new Data(type, offset, length, nullCount, [valueOffsets, undefined, undefined, typeIds], children);\n }\n public visitDictionary<T extends Dictionary>(props: DictionaryDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.indices.ArrayType, props['data']);\n const { ['dictionary']: dictionary = new Vector([new MakeDataVisitor().visit({ type: type.dictionary })]) } = props;\n const { ['length']: length = data.length, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap], [], dictionary);\n }\n public visitInterval<T extends Interval>(props: IntervalDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length / strideForType(type), ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitDuration<T extends Duration>(props: DurationDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0 } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const data = toArrayBufferView(type.ArrayType, props['data']);\n const { ['length']: length = data.length, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [undefined, data, nullBitmap]);\n }\n public visitFixedSizeList<T extends FixedSizeList>(props: FixedSizeListDataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0, ['child']: child = new MakeDataVisitor().visit({ type: type.valueType }) } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const { ['length']: length = child.length / strideForType(type), ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0 } = props;\n return new Data(type, offset, length, nullCount, [undefined, undefined, nullBitmap], [child]);\n }\n public visitMap<T extends Map_>(props: Map_DataProps<T>) {\n const { ['type']: type, ['offset']: offset = 0, ['child']: child = new MakeDataVisitor().visit({ type: type.childType }) } = props;\n const nullBitmap = toUint8Array(props['nullBitmap']);\n const valueOffsets = toInt32Array(props['valueOffsets']);\n const { ['length']: length = valueOffsets.length - 1, ['nullCount']: nullCount = props['nullBitmap'] ? -1 : 0, } = props;\n return new Data(type, offset, length, nullCount, [valueOffsets, undefined, nullBitmap], [child]);\n }\n}\n\n/** @ignore */\ninterface DataProps_<T extends DataType> {\n type: T;\n offset?: number;\n length?: number;\n nullCount?: number;\n nullBitmap?: NullBuffer;\n}\n\ninterface NullDataProps<T extends Null> { type: T; offset?: number; length?: number }\ninterface IntDataProps<T extends Int> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface DictionaryDataProps<T extends Dictionary> extends DataProps_<T> { data?: DataBuffer<T>; dictionary?: Vector<T['dictionary']> }\ninterface FloatDataProps<T extends Float> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface BoolDataProps<T extends Bool> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface DecimalDataProps<T extends Decimal> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface Date_DataProps<T extends Date_> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface TimeDataProps<T extends Time> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface TimestampDataProps<T extends Timestamp> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface IntervalDataProps<T extends Interval> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface DurationDataProps<T extends Duration> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface FixedSizeBinaryDataProps<T extends FixedSizeBinary> extends DataProps_<T> { data?: DataBuffer<T> }\ninterface BinaryDataProps<T extends Binary> extends DataProps_<T> { valueOffsets: ValueOffsetsBuffer; data?: DataBuffer<T> }\ninterface BinaryViewDataProps<T extends BinaryView> extends DataProps_<T> { views: DataBuffer<T>; variadicBuffers?: ReadonlyArray<ArrayLike<number> | Iterable<number> | Uint8Array>; data?: DataBuffer<T> }\ninterface LargeBinaryDataProps<T extends LargeBinary> extends DataProps_<T> { valueOffsets: LargeValueOffsetsBuffer | ValueOffsetsBuffer; data?: DataBuffer<T> }\ninterface Utf8DataProps<T extends Utf8> extends DataProps_<T> { valueOffsets: ValueOffsetsBuffer; data?: DataBuffer<T> }\ninterface Utf8ViewDataProps<T extends Utf8View> extends DataProps_<T> { views: DataBuffer<T>; variadicBuffers?: ReadonlyArray<ArrayLike<number> | Iterable<number> | Uint8Array>; data?: DataBuffer<T> }\ninterface LargeUtf8DataProps<T extends LargeUtf8> extends DataProps_<T> { valueOffsets: LargeValueOffsetsBuffer | ValueOffsetsBuffer; data?: DataBuffer<T> }\ninterface ListDataProps<T extends List> extends DataProps_<T> { valueOffsets: ValueOffsetsBuffer; child: Data<T['valueType']> }\ninterface LargeListDataProps<T extends LargeList> extends DataProps_<T> { valueOffsets: LargeValueOffsetsBuffer | ValueOffsetsBuffer; child: Data<T['valueType']> }\ninterface FixedSizeListDataProps<T extends FixedSizeList> extends DataProps_<T> { child: Data<T['valueType']> }\ninterface StructDataProps<T extends Struct> extends DataProps_<T> { children: Data[] }\ninterface Map_DataProps<T extends Map_> extends DataProps_<T> { valueOffsets: ValueOffsetsBuffer; child: Data }\ninterface SparseUnionDataProps<T extends SparseUnion> extends DataProps_<T> { nullBitmap: never; typeIds: TypeIdsBuffer; children: Data[] }\ninterface DenseUnionDataProps<T extends DenseUnion> extends DataProps_<T> { nullBitmap: never; typeIds: TypeIdsBuffer; children: Data[]; valueOffsets: ValueOffsetsBuffer }\ninterface UnionDataProps<T extends Union> extends DataProps_<T> { typeIds: TypeIdsBuffer; children: Data[]; valueOffsets?: ValueOffsetsBuffer }\n\nexport type DataProps<T extends DataType> = (\n T extends Null /* */ ? NullDataProps<T> :\n T extends Int /* */ ? IntDataProps<T> :\n T extends Dictionary /* */ ? DictionaryDataProps<T> :\n T extends Float /* */ ? FloatDataProps<T> :\n T extends Bool /* */ ? BoolDataProps<T> :\n T extends Decimal /* */ ? DecimalDataProps<T> :\n T extends Date_ /* */ ? Date_DataProps<T> :\n T extends Time /* */ ? TimeDataProps<T> :\n T extends Timestamp /* */ ? TimestampDataProps<T> :\n T extends Interval /* */ ? IntervalDataProps<T> :\n T extends Duration /* */ ? DurationDataProps<T> :\n T extends FixedSizeBinary /* */ ? FixedSizeBinaryDataProps<T> :\n T extends Binary /* */ ? BinaryDataProps<T> :\n T extends LargeBinary /* */ ? LargeBinaryDataProps<T> :\n T extends BinaryView /* */ ? BinaryViewDataProps<T> :\n T extends Utf8 /* */ ? Utf8DataProps<T> :\n T extends LargeUtf8 /* */ ? LargeUtf8DataProps<T> :\n T extends Utf8View /* */ ? Utf8ViewDataProps<T> :\n T extends List /* */ ? ListDataProps<T> :\n T extends LargeList /* */ ? LargeListDataProps<T> :\n T extends FixedSizeList /* */ ? FixedSizeListDataProps<T> :\n T extends Struct /* */ ? StructDataProps<T> :\n T extends Map_ /* */ ? Map_DataProps<T> :\n T extends SparseUnion /* */ ? SparseUnionDataProps<T> :\n T extends DenseUnion /* */ ? DenseUnionDataProps<T> :\n T extends Union /* */ ? UnionDataProps<T> :\n /* */ DataProps_<T>\n);\n\nconst makeDataVisitor = new MakeDataVisitor();\n\nexport function makeData<T extends Null>(props: NullDataProps<T>): Data<T>;\nexport function makeData<T extends Int>(props: IntDataProps<T>): Data<T>;\nexport function makeData<T extends Dictionary>(props: DictionaryDataProps<T>): Data<T>;\nexport function makeData<T extends Float>(props: FloatDataProps<T>): Data<T>;\nexport function makeData<T extends Bool>(props: BoolDataProps<T>): Data<T>;\nexport function makeData<T extends Decimal>(props: DecimalDataProps<T>): Data<T>;\nexport function makeData<T extends Date_>(props: Date_DataProps<T>): Data<T>;\nexport function makeData<T extends Time>(props: TimeDataProps<T>): Data<T>;\nexport function makeData<T extends Timestamp>(props: TimestampDataProps<T>): Data<T>;\nexport function makeData<T extends Interval>(props: IntervalDataProps<T>): Data<T>;\nexport function makeData<T extends Duration>(props: DurationDataProps<T>): Data<T>;\nexport function makeData<T extends FixedSizeBinary>(props: FixedSizeBinaryDataProps<T>): Data<T>;\nexport function makeData<T extends BinaryView>(props: BinaryViewDataProps<T>): Data<T>;\nexport function makeData<T extends Binary>(props: BinaryDataProps<T>): Data<T>;\nexport function makeData<T extends LargeBinary>(props: LargeBinaryDataProps<T>): Data<T>;\nexport function makeData<T extends Utf8>(props: Utf8DataProps<T>): Data<T>;\nexport function makeData<T extends LargeUtf8>(props: LargeUtf8DataProps<T>): Data<T>;\nexport function makeData<T extends Utf8View>(props: Utf8ViewDataProps<T>): Data<T>;\nexport function makeData<T extends List>(props: ListDataProps<T>): Data<T>;\nexport function makeData<T extends LargeList>(props: LargeListDataProps<T>): Data<T>;\nexport function makeData<T extends FixedSizeList>(props: FixedSizeListDataProps<T>): Data<T>;\nexport function makeData<T extends Struct>(props: StructDataProps<T>): Data<T>;\nexport function makeData<T extends Map_>(props: Map_DataProps<T>): Data<T>;\nexport function makeData<T extends SparseUnion>(props: SparseUnionDataProps<T>): Data<T>;\nexport function makeData<T extends DenseUnion>(props: DenseUnionDataProps<T>): Data<T>;\nexport function makeData<T extends Union>(props: UnionDataProps<T>): Data<T>;\nexport function makeData<T extends DataType>(props: DataProps_<T>): Data<T>;\nexport function makeData(props: any) {\n return makeDataVisitor.visit(props);\n}\n", null, null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Type } from './enum.js';\nimport { clampRange, wrapIndex } from './util/vector.js';\nimport { DataType, strideForType } from './type.js';\nimport { Data, makeData, DataProps } from './data.js';\nimport { BigIntArray, TypedArray, TypedArrayDataType } from './interfaces.js';\n\nimport {\n isChunkedValid,\n computeChunkOffsets,\n computeChunkNullable,\n computeChunkNullCounts,\n sliceChunks,\n wrapChunkedCall1,\n wrapChunkedCall2,\n wrapChunkedIndexOf,\n} from './util/chunk.js';\n\nimport { instance as getVisitor } from './visitor/get.js';\nimport { instance as setVisitor } from './visitor/set.js';\nimport { instance as indexOfVisitor } from './visitor/indexof.js';\nimport { instance as iteratorVisitor } from './visitor/iterator.js';\n\n// @ts-ignore\nimport type { vectorFromArray } from './factories.js';\n\n/** @ignore */\nconst kVectorSymbol = Symbol.for('apache-arrow/Vector');\n\nexport interface Vector<T extends DataType = any> {\n ///\n // Virtual properties for the TypeScript compiler.\n // These do not exist at runtime.\n ///\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable\n */\n [Symbol.isConcatSpreadable]: true;\n}\n\nconst visitorsByTypeId = {} as { [typeId: number]: { get: any; set: any; indexOf: any } };\nconst vectorPrototypesByTypeId = {} as { [typeId: number]: any };\n\n/**\n * Array-like data structure. Use the convenience method {@link makeVector} and {@link vectorFromArray} to create vectors.\n */\nexport class Vector<T extends DataType = any> {\n\n /**\n * Check if an object is an instance of Vector.\n * This works across different instances of the Arrow library.\n */\n /** @nocollapse */ static isVector(x: any): x is Vector {\n return x?.[kVectorSymbol] === true;\n }\n\n /** @internal */\n declare public readonly [kVectorSymbol]: true;\n\n constructor(input: readonly (Data<T> | Vector<T>)[]) {\n const data: Data<T>[] = input[0] instanceof Vector\n ? (input as Vector<T>[]).flatMap(x => x.data)\n : input as Data<T>[];\n if (data.length === 0 || data.some((x) => !(x instanceof Data))) {\n throw new TypeError('Vector constructor expects an Array of Data instances.');\n }\n const type = data[0]?.type;\n switch (data.length) {\n case 0: this._offsets = [0]; break;\n case 1: {\n // special case for unchunked vectors\n const { get, set, indexOf } = visitorsByTypeId[type.typeId];\n const unchunkedData = data[0];\n\n this.isValid = (index: number) => isChunkedValid(unchunkedData, index);\n this.get = (index: number) => get(unchunkedData, index);\n this.set = (index: number, value: T) => set(unchunkedData, index, value);\n this.indexOf = (index: number) => indexOf(unchunkedData, index);\n this._offsets = [0, unchunkedData.length];\n break;\n }\n default:\n Object.setPrototypeOf(this, vectorPrototypesByTypeId[type.typeId]);\n this._offsets = computeChunkOffsets(data);\n break;\n }\n this.data = data;\n this.type = type;\n this.stride = strideForType(type);\n this.numChildren = type.children?.length ?? 0;\n this.length = this._offsets.at(-1)!;\n }\n\n declare protected _offsets: number[] | Uint32Array;\n\n /**\n * The {@link DataType `DataType`} of this Vector.\n */\n public declare readonly type: T;\n\n /**\n * The primitive {@link Data `Data`} instances for this Vector's elements.\n */\n public declare readonly data: ReadonlyArray<Data<T>>;\n\n /**\n * The number of elements in this Vector.\n */\n public declare readonly length: number;\n\n /**\n * The number of primitive values per Vector element.\n */\n public declare readonly stride: number;\n\n /**\n * The number of child Vectors if this Vector is a nested dtype.\n */\n public declare readonly numChildren: number;\n\n /**\n * The aggregate size (in bytes) of this Vector's buffers and/or child Vectors.\n */\n public get byteLength() {\n return this.data.reduce((byteLength, data) => byteLength + data.byteLength, 0);\n }\n\n /**\n * Whether this Vector's elements can contain null values.\n */\n public get nullable() {\n return computeChunkNullable(this.data);\n }\n\n /**\n * The number of null elements in this Vector.\n */\n public get nullCount() {\n return computeChunkNullCounts(this.data);\n }\n\n /**\n * The Array or TypedArray constructor used for the JS representation\n * of the element's values in {@link Vector.prototype.toArray `toArray()`}.\n */\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n\n /**\n * The name that should be printed when the Vector is logged in a message.\n */\n public get [Symbol.toStringTag]() {\n return `${this.VectorName}<${this.type[Symbol.toStringTag]}>`;\n }\n\n /**\n * The name of this Vector.\n */\n public get VectorName() { return `${Type[this.type.typeId]}Vector`; }\n\n /**\n * Check whether an element is null.\n * @param index The index at which to read the validity bitmap.\n */\n // @ts-ignore\n public isValid(index: number): boolean { return false; }\n\n /**\n * Get an element value by position.\n * @param index The index of the element to read.\n */\n // @ts-ignore\n public get(index: number): T['TValue'] | null { return null; }\n\n /**\n * Get an element value by position.\n * @param index The index of the element to read. A negative index will count back from the last element.\n */\n public at(index: number): T['TValue'] | null {\n return this.get(wrapIndex(index, this.length));\n }\n\n /**\n * Set an element value by position.\n * @param index The index of the element to write.\n * @param value The value to set.\n */\n // @ts-ignore\n public set(index: number, value: T['TValue'] | null): void { return; }\n\n /**\n * Retrieve the index of the first occurrence of a value in an Vector.\n * @param element The value to locate in the Vector.\n * @param offset The index at which to begin the search. If offset is omitted, the search starts at index 0.\n */\n // @ts-ignore\n public indexOf(element: T['TValue'], offset?: number): number { return -1; }\n\n public includes(element: T['TValue'], offset?: number): boolean {\n // eslint-disable-next-line unicorn/prefer-includes\n return this.indexOf(element, offset) > -1;\n }\n\n /**\n * Iterator for the Vector's elements.\n */\n public [Symbol.iterator](): IterableIterator<T['TValue'] | null> {\n return iteratorVisitor.visit(this);\n }\n\n /**\n * Combines two or more Vectors of the same type.\n * @param others Additional Vectors to add to the end of this Vector.\n */\n public concat(...others: Vector<T>[]): Vector<T> {\n return new Vector(this.data.concat(others.flatMap((x) => x.data).flat(Number.POSITIVE_INFINITY)));\n }\n\n /**\n * Return a zero-copy sub-section of this Vector.\n * @param start The beginning of the specified portion of the Vector.\n * @param end The end of the specified portion of the Vector. This is exclusive of the element at the index 'end'.\n */\n public slice(begin?: number, end?: number): Vector<T> {\n return new Vector(clampRange(this, begin, end, ({ data, _offsets }, begin, end) =>\n sliceChunks(data, _offsets, begin, end)\n ));\n }\n\n public toJSON() { return [...this]; }\n\n /**\n * Return a JavaScript Array or TypedArray of the Vector's elements.\n *\n * @note If this Vector contains a single Data chunk and the Vector's type is a\n * primitive numeric type corresponding to one of the JavaScript TypedArrays, this\n * method returns a zero-copy slice of the underlying TypedArray values. If there's\n * more than one chunk, the resulting TypedArray will be a copy of the data from each\n * chunk's underlying TypedArray values.\n *\n * @returns An Array or TypedArray of the Vector's elements, based on the Vector's DataType.\n */\n public toArray(): T['TArray'] {\n const { type, data, length, stride, ArrayType } = this;\n // Fast case, return subarray if possible\n switch (type.typeId) {\n case Type.Int:\n case Type.Float:\n case Type.Decimal:\n case Type.Time:\n case Type.Timestamp:\n switch (data.length) {\n case 0: return new ArrayType();\n case 1: return data[0].values.subarray(0, length * stride);\n default: return data.reduce((memo, { values, length: chunk_length }) => {\n memo.array.set(values.subarray(0, chunk_length * stride), memo.offset);\n memo.offset += chunk_length * stride;\n return memo;\n }, { array: new ArrayType(length * stride), offset: 0 }).array;\n }\n }\n // Otherwise if not primitive, slow copy\n return [...this] as T['TArray'];\n }\n\n /**\n * Returns a string representation of the Vector.\n *\n * @returns A string representation of the Vector.\n */\n public toString() {\n return `[${[...this].join(',')}]`;\n }\n\n /**\n * Returns a child Vector by name, or null if this Vector has no child with the given name.\n * @param name The name of the child to retrieve.\n */\n public getChild<R extends keyof T['TChildren']>(name: R) {\n return this.getChildAt(this.type.children?.findIndex((f) => f.name === name));\n }\n\n /**\n * Returns a child Vector by index, or null if this Vector has no child at the supplied index.\n * @param index The index of the child to retrieve.\n */\n public getChildAt<R extends DataType = any>(index: number): Vector<R> | null {\n if (index > -1 && index < this.numChildren) {\n return new Vector(this.data.map(({ children }) => children[index] as Data<R>));\n }\n return null;\n }\n\n public get isMemoized(): boolean {\n if (DataType.isDictionary(this.type)) {\n return this.data[0].dictionary!.isMemoized;\n }\n return false;\n }\n\n /**\n * Adds memoization to the Vector's {@link get} method. For dictionary\n * vectors, this method return a vector that memoizes only the dictionary\n * values.\n *\n * Memoization is very useful when decoding a value is expensive such as\n * Utf8. The memoization creates a cache of the size of the Vector and\n * therefore increases memory usage.\n *\n * @returns A new vector that memoizes calls to {@link get}.\n */\n public memoize(): MemoizedVector<T> {\n if (DataType.isDictionary(this.type)) {\n const dictionary = new MemoizedVector(this.data[0].dictionary!);\n const newData = this.data.map((data) => {\n const cloned = data.clone();\n cloned.dictionary = dictionary;\n return cloned;\n });\n return new Vector(newData);\n }\n return new MemoizedVector(this);\n }\n\n /**\n * Returns a vector without memoization of the {@link get} method. If this\n * vector is not memoized, this method returns this vector.\n *\n * @returns A new vector without memoization.\n */\n public unmemoize(): Vector<T> {\n if (DataType.isDictionary(this.type) && this.isMemoized) {\n const dictionary = this.data[0].dictionary!.unmemoize();\n const newData = this.data.map((data) => {\n const newData = data.clone();\n newData.dictionary = dictionary;\n return newData;\n });\n return new Vector(newData);\n }\n return this;\n }\n\n // Initialize this static property via an IIFE so bundlers don't tree-shake\n // out this logic, but also so we're still compliant with `\"sideEffects\": false`\n protected static [Symbol.toStringTag] = ((proto: Vector) => {\n (proto as any).type = DataType.prototype;\n (proto as any).data = [];\n (proto as any).length = 0;\n (proto as any).stride = 1;\n (proto as any).numChildren = 0;\n (proto as any)._offsets = new Uint32Array([0]);\n (proto as any)[Symbol.isConcatSpreadable] = true;\n (proto as any)[kVectorSymbol] = true;\n\n const typeIds: Type[] = Object.keys(Type)\n .map((T: any) => Type[T] as any)\n .filter((T: any) => typeof T === 'number' && T !== Type.NONE);\n\n for (const typeId of typeIds) {\n const get = getVisitor.getVisitFnByTypeId(typeId);\n const set = setVisitor.getVisitFnByTypeId(typeId);\n const indexOf = indexOfVisitor.getVisitFnByTypeId(typeId);\n\n visitorsByTypeId[typeId] = { get, set, indexOf };\n vectorPrototypesByTypeId[typeId] = Object.create(proto, {\n ['isValid']: { value: wrapChunkedCall1(isChunkedValid) },\n ['get']: { value: wrapChunkedCall1(getVisitor.getVisitFnByTypeId(typeId)) },\n ['set']: { value: wrapChunkedCall2(setVisitor.getVisitFnByTypeId(typeId)) },\n ['indexOf']: { value: wrapChunkedIndexOf(indexOfVisitor.getVisitFnByTypeId(typeId)) },\n });\n }\n\n return 'Vector';\n })(Vector.prototype);\n}\n\nObject.defineProperty(Vector, Symbol.hasInstance, {\n value: function isVectorInstance(instance: any): instance is Vector {\n return Function.prototype[Symbol.hasInstance].call(this, instance)\n || (this === Vector && Vector.isVector(instance));\n },\n});\n\nclass MemoizedVector<T extends DataType = any> extends Vector<T> {\n\n public constructor(vector: Vector<T>) {\n super(vector.data);\n\n const get = this.get;\n const set = this.set;\n const slice = this.slice;\n\n const cache = new Array<T['TValue'] | null>(this.length);\n\n Object.defineProperty(this, 'get', {\n value(index: number) {\n const cachedValue = cache[index];\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n const value = get.call(this, index);\n cache[index] = value;\n return value;\n }\n });\n\n Object.defineProperty(this, 'set', {\n value(index: number, value: T['TValue'] | null) {\n set.call(this, index, value);\n cache[index] = value;\n }\n });\n\n Object.defineProperty(this, 'slice', {\n value: (begin?: number, end?: number) => new MemoizedVector(slice.call(this, begin, end))\n });\n\n Object.defineProperty(this, 'isMemoized', { value: true });\n\n Object.defineProperty(this, 'unmemoize', {\n value: () => new Vector(this.data)\n });\n\n Object.defineProperty(this, 'memoize', {\n value: () => this\n });\n }\n}\n\nimport * as dtypes from './type.js';\n\n/**\n * Creates a Vector without data copies.\n *\n * @example\n * ```ts\n * const vector = makeVector(new Int32Array([1, 2, 3]));\n * ```\n */\nexport function makeVector<T extends TypedArray | BigIntArray>(data: T | readonly T[]): Vector<TypedArrayDataType<T>>;\nexport function makeVector<T extends DataView>(data: T | readonly T[]): Vector<dtypes.Int8>;\nexport function makeVector<T extends DataType>(data: Data<T> | readonly Data<T>[]): Vector<T>;\nexport function makeVector<T extends DataType>(data: Vector<T> | readonly Vector<T>[]): Vector<T>;\nexport function makeVector<T extends DataType>(data: DataProps<T> | readonly DataProps<T>[]): Vector<T>;\n\nexport function makeVector(init: any) {\n if (init) {\n if (init instanceof Data) { return new Vector([init]); }\n if (init instanceof Vector) { return new Vector(init.data); }\n if (init.type instanceof DataType) { return new Vector([makeData(init)]); }\n if (Array.isArray(init)) {\n return new Vector(init.flatMap(v => unwrapInputs(v)));\n }\n if (ArrayBuffer.isView(init)) {\n if (init instanceof DataView) {\n init = new Uint8Array(init.buffer);\n }\n const props = { offset: 0, length: init.length, nullCount: -1, data: init };\n if (init instanceof Int8Array) { return new Vector([makeData({ ...props, type: new dtypes.Int8 })]); }\n if (init instanceof Int16Array) { return new Vector([makeData({ ...props, type: new dtypes.Int16 })]); }\n if (init instanceof Int32Array) { return new Vector([makeData({ ...props, type: new dtypes.Int32 })]); }\n if (init instanceof BigInt64Array) { return new Vector([makeData({ ...props, type: new dtypes.Int64 })]); }\n if (init instanceof Uint8Array || init instanceof Uint8ClampedArray) { return new Vector([makeData({ ...props, type: new dtypes.Uint8 })]); }\n if (init instanceof Uint16Array) { return new Vector([makeData({ ...props, type: new dtypes.Uint16 })]); }\n if (init instanceof Uint32Array) { return new Vector([makeData({ ...props, type: new dtypes.Uint32 })]); }\n if (init instanceof BigUint64Array) { return new Vector([makeData({ ...props, type: new dtypes.Uint64 })]); }\n if (init instanceof Float32Array) { return new Vector([makeData({ ...props, type: new dtypes.Float32 })]); }\n if (init instanceof Float64Array) { return new Vector([makeData({ ...props, type: new dtypes.Float64 })]); }\n throw new Error('Unrecognized input');\n }\n }\n throw new Error('Unrecognized input');\n}\n\nfunction unwrapInputs(x: any) {\n return x instanceof Data ? [x] : (x instanceof Vector ? x.data : makeVector(x).data);\n}\n", null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector.js';\nimport { Data, makeData } from './data.js';\nimport { MapRow, kKeys } from './row/map.js';\nimport {\n DataType, strideForType,\n Float, Int, Decimal, FixedSizeBinary,\n Date_, Time, Timestamp, Interval, Duration,\n Utf8, LargeUtf8, Binary, LargeBinary, List, LargeList, Map_,\n} from './type.js';\nimport { createIsValidFunction } from './builder/valid.js';\nimport { BufferBuilder, BitmapBufferBuilder, DataBufferBuilder, OffsetsBufferBuilder } from './builder/buffer.js';\n\nimport type { BuilderDuplexOptions } from './io/node/builder.js';\nimport type { BuilderTransform, BuilderTransformOptions } from './io/whatwg/builder.js';\n\nimport type { Duplex } from 'node:stream';\n\n/**\n * A set of options required to create a `Builder` instance for a given `DataType`.\n * @see {@link Builder}\n */\nexport interface BuilderOptions<T extends DataType = any, TNull = any> {\n type: T;\n nullValues?: TNull[] | ReadonlyArray<TNull> | null;\n children?: { [key: string]: BuilderOptions } | BuilderOptions[];\n}\n\n/**\n * An abstract base class for types that construct Arrow Vectors from arbitrary JavaScript values.\n *\n * A `Builder` is responsible for writing arbitrary JavaScript values\n * to ArrayBuffers and/or child Builders according to the Arrow specification\n * for each DataType, creating or resizing the underlying ArrayBuffers as necessary.\n *\n * The `Builder` for each Arrow `DataType` handles converting and appending\n * values for a given `DataType`. The high-level {@link makeBuilder `makeBuilder()`} convenience\n * method creates the specific `Builder` subclass for the supplied `DataType`.\n *\n * Once created, `Builder` instances support both appending values to the end\n * of the `Builder`, and random-access writes to specific indices\n * (`Builder.prototype.append(value)` is a convenience method for\n * `builder.set(builder.length, value)`). Appending or setting values beyond the\n * Builder's current length may cause the builder to grow its underlying buffers\n * or child Builders (if applicable) to accommodate the new values.\n *\n * After enough values have been written to a `Builder`, `Builder.prototype.flush()`\n * will commit the values to the underlying ArrayBuffers (or child Builders). The\n * internal Builder state will be reset, and an instance of `Data<T>` is returned.\n * Alternatively, `Builder.prototype.toVector()` will flush the `Builder` and return\n * an instance of `Vector<T>` instead.\n *\n * When there are no more values to write, use `Builder.prototype.finish()` to\n * finalize the `Builder`. This does not reset the internal state, so it is\n * necessary to call `Builder.prototype.flush()` or `toVector()` one last time\n * if there are still values queued to be flushed.\n *\n * Note: calling `Builder.prototype.finish()` is required when using a `DictionaryBuilder`,\n * because this is when it flushes the values that have been enqueued in its internal\n * dictionary's `Builder`, and creates the `dictionaryVector` for the `Dictionary` `DataType`.\n *\n * @example\n * ```ts\n * import { makeBuilder, Utf8 } from 'apache-arrow';\n *\n * const utf8Builder = makeBuilder({\n * type: new Utf8(),\n * nullValues: [null, 'n/a']\n * });\n *\n * utf8Builder\n * .append('hello')\n * .append('n/a')\n * .append('world')\n * .append(null);\n *\n * const utf8Vector = utf8Builder.finish().toVector();\n *\n * console.log(utf8Vector.toJSON());\n * // > [\"hello\", null, \"world\", null]\n * ```\n *\n * @typeparam T The `DataType` of this `Builder`.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n */\nexport abstract class Builder<T extends DataType = any, TNull = any> {\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode<T extends DataType = any, TNull = any>(options: BuilderDuplexOptions<T, TNull>): Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n // @ts-ignore\n public static throughDOM<T extends DataType = any, TNull = any>(options: BuilderTransformOptions<T, TNull>): BuilderTransform<T, TNull> {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n /**\n * Construct a builder with the given Arrow DataType with optional null values,\n * which will be interpreted as \"null\" when set or appended to the `Builder`.\n * @param {{ type: T, nullValues?: any[] }} options A `BuilderOptions` object used to create this `Builder`.\n */\n constructor({ 'type': type, 'nullValues': nulls }: BuilderOptions<T, TNull>) {\n this.type = type;\n this.children = [];\n this.nullValues = nulls;\n this.stride = strideForType(type);\n this._nulls = new BitmapBufferBuilder();\n if (nulls && nulls.length > 0) {\n this._isValid = createIsValidFunction(nulls);\n }\n }\n\n /**\n * The Builder's `DataType` instance.\n * @readonly\n */\n public type: T;\n /**\n * The number of values written to the `Builder` that haven't been flushed yet.\n * @readonly\n */\n public length = 0;\n /**\n * A boolean indicating whether `Builder.prototype.finish()` has been called on this `Builder`.\n * @readonly\n */\n public finished = false;\n /**\n * The number of elements in the underlying values TypedArray that\n * represent a single logical element, determined by this Builder's\n * `DataType`. This is 1 for most types, but is larger when the `DataType`\n * is `Int64`, `Uint64`, `Decimal`, `DateMillisecond`, certain variants of\n * `Interval`, `Time`, or `Timestamp`, `FixedSizeBinary`, and `FixedSizeList`.\n * @readonly\n */\n public readonly stride: number;\n public readonly children: Builder[];\n /**\n * The list of null-value sentinels for this `Builder`. When one of these values\n * is written to the `Builder` (either via `Builder.prototype.set()` or `Builder.prototype.append()`),\n * a 1-bit is written to this Builder's underlying null BitmapBufferBuilder.\n * @readonly\n */\n public readonly nullValues?: TNull[] | ReadonlyArray<TNull> | null;\n\n /**\n * Flush the `Builder` and return a `Vector<T>`.\n * @returns {Vector<T>} A `Vector<T>` of the flushed values.\n */\n public toVector() { return new Vector([this.flush()]); }\n\n public get ArrayType() { return this.type.ArrayType; }\n public get nullCount() { return this._nulls.numInvalid; }\n public get numChildren() { return this.children.length; }\n\n /**\n * @returns The aggregate length (in bytes) of the values that have been written.\n */\n public get byteLength(): number {\n let size = 0;\n const { _offsets, _values, _nulls, _typeIds, children } = this;\n _offsets && (size += _offsets.byteLength);\n _values && (size += _values.byteLength);\n _nulls && (size += _nulls.byteLength);\n _typeIds && (size += _typeIds.byteLength);\n return children.reduce((size, child) => size + child.byteLength, size);\n }\n\n /**\n * @returns The aggregate number of rows that have been reserved to write new values.\n */\n public get reservedLength(): number {\n return this._nulls.reservedLength;\n }\n\n /**\n * @returns The aggregate length (in bytes) that has been reserved to write new values.\n */\n public get reservedByteLength(): number {\n let size = 0;\n this._offsets && (size += this._offsets.reservedByteLength);\n this._values && (size += this._values.reservedByteLength);\n this._nulls && (size += this._nulls.reservedByteLength);\n this._typeIds && (size += this._typeIds.reservedByteLength);\n return this.children.reduce((size, child) => size + child.reservedByteLength, size);\n }\n\n declare protected _offsets: DataBufferBuilder<T['TOffsetArray']>;\n public get valueOffsets() { return this._offsets ? this._offsets.buffer : null; }\n\n declare protected _values: BufferBuilder<T['TArray']>;\n public get values() { return this._values ? this._values.buffer : null; }\n\n declare protected _nulls: BitmapBufferBuilder;\n public get nullBitmap() { return this._nulls ? this._nulls.buffer : null; }\n\n declare protected _typeIds: DataBufferBuilder<Int8Array>;\n public get typeIds() { return this._typeIds ? this._typeIds.buffer : null; }\n\n declare protected _isValid: (value: T['TValue'] | TNull) => boolean;\n declare protected _setValue: (inst: Builder<T>, index: number, value: T['TValue']) => void;\n\n /**\n * Appends a value (or null) to this `Builder`.\n * This is equivalent to `builder.set(builder.length, value)`.\n * @param {T['TValue'] | TNull } value The value to append.\n */\n public append(value: T['TValue'] | TNull) { return this.set(this.length, value); }\n\n /**\n * Validates whether a value is valid (true), or null (false)\n * @param {T['TValue'] | TNull } value The value to compare against null the value representations\n */\n public isValid(value: T['TValue'] | TNull): boolean { return this._isValid(value); }\n\n /**\n * Write a value (or null-value sentinel) at the supplied index.\n * If the value matches one of the null-value representations, a 1-bit is\n * written to the null `BitmapBufferBuilder`. Otherwise, a 0 is written to\n * the null `BitmapBufferBuilder`, and the value is passed to\n * `Builder.prototype.setValue()`.\n * @param {number} index The index of the value to write.\n * @param {T['TValue'] | TNull } value The value to write at the supplied index.\n * @returns {this} The updated `Builder` instance.\n */\n public set(index: number, value: T['TValue'] | TNull) {\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value);\n }\n return this;\n }\n\n /**\n * Write a value to the underlying buffers at the supplied index, bypassing\n * the null-value check. This is a low-level method that\n * @param {number} index\n * @param {T['TValue'] | TNull } value\n */\n public setValue(index: number, value: T['TValue']) { this._setValue(this, index, value); }\n public setValid(index: number, valid: boolean) {\n this.length = this._nulls.set(index, +valid).length;\n return valid;\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.numChildren}`) {\n throw new Error(`Cannot append children to non-nested type \"${this.type}\"`);\n }\n\n /**\n * Retrieve the child `Builder` at the supplied `index`, or null if no child\n * exists at that index.\n * @param {number} index The index of the child `Builder` to retrieve.\n * @returns {Builder | null} The child Builder at the supplied index or null.\n */\n public getChildAt<R extends DataType = any>(index: number): Builder<R> | null {\n return this.children[index] || null;\n }\n\n /**\n * Commit all the values that have been written to their underlying\n * ArrayBuffers, including any child Builders if applicable, and reset\n * the internal `Builder` state.\n * @returns A `Data<T>` of the buffers and children representing the values written.\n */\n public flush(): Data<T> {\n let data: BufferBuilder<T['TArray']> | undefined;\n let typeIds: Int8Array;\n let nullBitmap: Uint8Array | undefined;\n let valueOffsets: T['TOffsetArray'];\n const { type, length, nullCount, _typeIds, _offsets, _values, _nulls } = this;\n\n if (typeIds = _typeIds?.flush(length)) { // Unions, DenseUnions\n valueOffsets = _offsets?.flush(length);\n } else if (valueOffsets = _offsets?.flush(length)) { // Variable-width primitives (Binary, LargeBinary, Utf8, LargeUtf8), and Lists\n data = _values?.flush(_offsets.last());\n } else { // Fixed-width primitives (Int, Float, Decimal, Time, Timestamp, Duration and Interval)\n data = _values?.flush(length);\n }\n\n if (nullCount > 0) {\n nullBitmap = _nulls?.flush(length);\n }\n\n const children = this.children.map((child) => child.flush());\n\n this.clear();\n\n return makeData(<any>{\n type, length, nullCount,\n children, 'child': children[0],\n data, typeIds, nullBitmap, valueOffsets,\n }) as Data<T>;\n }\n\n /**\n * Finalize this `Builder`, and child builders if applicable.\n * @returns {this} The finalized `Builder` instance.\n */\n public finish() {\n this.finished = true;\n for (const child of this.children) child.finish();\n return this;\n }\n\n /**\n * Clear this Builder's internal state, including child Builders if applicable, and reset the length to 0.\n * @returns {this} The cleared `Builder` instance.\n */\n public clear() {\n this.length = 0;\n this._nulls?.clear();\n this._values?.clear();\n this._offsets?.clear();\n this._typeIds?.clear();\n for (const child of this.children) child.clear();\n return this;\n }\n}\n\n(Builder.prototype as any).length = 1;\n(Builder.prototype as any).stride = 1;\n(Builder.prototype as any).children = null;\n(Builder.prototype as any).finished = false;\n(Builder.prototype as any).nullValues = null;\n(Builder.prototype as any)._isValid = () => true;\n\n/** @ignore */\nexport abstract class FixedWidthBuilder<T extends Int | Float | FixedSizeBinary | Date_ | Timestamp | Time | Decimal | Interval | Duration = any, TNull = any> extends Builder<T, TNull> {\n constructor(opts: BuilderOptions<T, TNull>) {\n super(opts);\n this._values = new DataBufferBuilder(this.ArrayType, 0, this.stride);\n }\n public setValue(index: number, value: T['TValue']) {\n const values = this._values;\n values.reserve(index - values.length + 1);\n return super.setValue(index, value);\n }\n}\n\n/** @ignore */\nexport abstract class VariableWidthBuilder<T extends Binary | LargeBinary | Utf8 | LargeUtf8 | List | LargeList | Map_, TNull = any> extends Builder<T, TNull> {\n protected _pendingLength = 0;\n protected _offsets: OffsetsBufferBuilder<T>;\n protected _pending: Map<number, any> | undefined;\n constructor(opts: BuilderOptions<T, TNull>) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder(opts.type);\n }\n public setValue(index: number, value: T['TValue']) {\n const pending = this._pending || (this._pending = new Map());\n const current = pending.get(index);\n current && (this._pendingLength -= current.length);\n this._pendingLength += (value instanceof MapRow) ? value[kKeys].length : value.length;\n pending.set(index, value);\n }\n public setValid(index: number, isValid: boolean) {\n if (!super.setValid(index, isValid)) {\n (this._pending || (this._pending = new Map())).set(index, undefined);\n return false;\n }\n return true;\n }\n public clear() {\n this._pendingLength = 0;\n this._pending = undefined;\n return super.clear();\n }\n public flush() {\n this._flush();\n return super.flush();\n }\n public finish() {\n this._flush();\n return super.finish();\n }\n protected _flush() {\n const pending = this._pending;\n const pendingLength = this._pendingLength;\n this._pendingLength = 0;\n this._pending = undefined;\n if (pending && pending.size > 0) {\n this._flushPending(pending, pendingLength);\n }\n return this;\n }\n protected abstract _flushPending(pending: Map<number, any>, pendingLength: number): void;\n}\n", null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { MetadataVersion } from './enum.js';\nimport { DataType, TypeMap } from './type.js';\n\n/** @ignore */\nconst kSchemaSymbol = Symbol.for('apache-arrow/Schema');\n/** @ignore */\nconst kFieldSymbol = Symbol.for('apache-arrow/Field');\n\nexport class Schema<T extends TypeMap = any> {\n\n /**\n * Check if an object is an instance of Schema.\n * This works across different instances of the Arrow library.\n */\n /** @nocollapse */ static isSchema(x: any): x is Schema {\n return x?.[kSchemaSymbol] === true;\n }\n\n /** @internal */\n declare public readonly [kSchemaSymbol]: true;\n\n public readonly fields: Field<T[keyof T]>[];\n public readonly metadata: Map<string, string>;\n public readonly dictionaries: Map<number, DataType>;\n public readonly metadataVersion: MetadataVersion;\n\n constructor(\n fields: Field<T[keyof T]>[] = [],\n metadata?: Map<string, string> | null,\n dictionaries?: Map<number, DataType> | null,\n metadataVersion = MetadataVersion.V5) {\n this.fields = (fields || []) as Field<T[keyof T]>[];\n this.metadata = metadata || new Map();\n if (!dictionaries) {\n dictionaries = generateDictionaryMap(this.fields);\n }\n this.dictionaries = dictionaries;\n this.metadataVersion = metadataVersion;\n }\n public get [Symbol.toStringTag]() { return 'Schema'; }\n\n public get names(): (keyof T)[] { return this.fields.map((f) => f.name); }\n\n public toString() {\n return `Schema<{ ${this.fields.map((f, i) => `${i}: ${f}`).join(', ')} }>`;\n }\n\n /**\n * Construct a new Schema containing only specified fields.\n *\n * @param fieldNames Names of fields to keep.\n * @returns A new Schema of fields matching the specified names.\n */\n public select<K extends keyof T = any>(fieldNames: K[]) {\n const names = new Set<string | K>(fieldNames);\n const fields = this.fields.filter((f) => names.has(f.name)) as Field<T[K]>[];\n return new Schema<{ [P in K]: T[P] }>(fields, this.metadata);\n }\n\n /**\n * Construct a new Schema containing only fields at the specified indices.\n *\n * @param fieldIndices Indices of fields to keep.\n * @returns A new Schema of fields at the specified indices.\n */\n public selectAt<K extends T = any>(fieldIndices: number[]) {\n const fields = fieldIndices.map((i) => this.fields[i]).filter(Boolean) as Field<K[keyof K]>[];\n return new Schema<K>(fields, this.metadata);\n }\n\n public assign<R extends TypeMap = any>(schema: Schema<R>): Schema<T & R>;\n public assign<R extends TypeMap = any>(...fields: (Field<R[keyof R]> | Field<R[keyof R]>[])[]): Schema<T & R>;\n public assign<R extends TypeMap = any>(...args: (Schema<R> | Field<R[keyof R]> | Field<R[keyof R]>[])[]) {\n\n const other = (args[0] instanceof Schema\n ? args[0] as Schema<R>\n : Array.isArray(args[0])\n ? new Schema<R>(<Field<R[keyof R]>[]>args[0])\n : new Schema<R>(<Field<R[keyof R]>[]>args));\n\n const curFields = [...this.fields] as Field[];\n const metadata = mergeMaps(mergeMaps(new Map(), this.metadata), other.metadata);\n const newFields = other.fields.filter((f2) => {\n const i = curFields.findIndex((f) => f.name === f2.name);\n return ~i ? (curFields[i] = f2.clone({\n metadata: mergeMaps(mergeMaps(new Map(), curFields[i].metadata), f2.metadata)\n })) && false : true;\n }) as Field[];\n\n const newDictionaries = generateDictionaryMap(newFields, new Map());\n\n return new Schema<T & R>(\n [...curFields, ...newFields], metadata,\n new Map([...this.dictionaries, ...newDictionaries])\n );\n }\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Schema.prototype as any).fields = <any>null;\n(Schema.prototype as any).metadata = <any>null;\n(Schema.prototype as any).dictionaries = <any>null;\n(Schema.prototype as any)[kSchemaSymbol] = true;\n\nObject.defineProperty(Schema, Symbol.hasInstance, {\n value: function isSchemaInstance(instance: any): instance is Schema {\n return Function.prototype[Symbol.hasInstance].call(this, instance)\n || (this === Schema && Schema.isSchema(instance));\n },\n});\n\nexport class Field<T extends DataType = any> {\n\n /**\n * Check if an object is an instance of Field.\n * This works across different instances of the Arrow library.\n */\n /** @nocollapse */ static isField(x: any): x is Field {\n return x?.[kFieldSymbol] === true;\n }\n\n /** @internal */\n declare public readonly [kFieldSymbol]: true;\n\n public static new<T extends DataType = any>(props: { name: string | number; type: T; nullable?: boolean; metadata?: Map<string, string> | null }): Field<T>;\n public static new<T extends DataType = any>(name: string | number | Field<T>, type: T, nullable?: boolean, metadata?: Map<string, string> | null): Field<T>;\n /** @nocollapse */\n public static new<T extends DataType = any>(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n if (args[0] && typeof args[0] === 'object') {\n ({ name } = args[0]);\n (type === undefined) && (type = args[0].type);\n (nullable === undefined) && (nullable = args[0].nullable);\n (metadata === undefined) && (metadata = args[0].metadata);\n }\n return new Field<T>(`${name}`, type, nullable, metadata);\n }\n\n public readonly type: T;\n public readonly name: string;\n public readonly nullable: boolean;\n public readonly metadata: Map<string, string>;\n\n constructor(name: string, type: T, nullable = false, metadata?: Map<string, string> | null) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata || new Map();\n }\n\n public get typeId() { return this.type.typeId; }\n public get [Symbol.toStringTag]() { return 'Field'; }\n public toString() { return `${this.name}: ${this.type}`; }\n public clone<R extends DataType = T>(props: { name?: string | number; type?: R; nullable?: boolean; metadata?: Map<string, string> | null }): Field<R>;\n public clone<R extends DataType = T>(name?: string | number | Field<T>, type?: R, nullable?: boolean, metadata?: Map<string, string> | null): Field<R>;\n public clone<R extends DataType = T>(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n (!args[0] || typeof args[0] !== 'object')\n ? ([name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata] = args)\n : ({ name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata } = args[0]);\n return Field.new<R>(name, type, nullable, metadata);\n }\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Field.prototype as any).type = null;\n(Field.prototype as any).name = null;\n(Field.prototype as any).nullable = null;\n(Field.prototype as any).metadata = null;\n(Field.prototype as any)[kFieldSymbol] = true;\n\nObject.defineProperty(Field, Symbol.hasInstance, {\n value: function isFieldInstance(instance: any): instance is Field {\n return Function.prototype[Symbol.hasInstance].call(this, instance)\n || (this === Field && Field.isField(instance));\n },\n});\n\n/** @ignore */\nfunction mergeMaps<TKey, TVal>(m1?: Map<TKey, TVal> | null, m2?: Map<TKey, TVal> | null): Map<TKey, TVal> {\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n\n/** @ignore */\nfunction generateDictionaryMap(fields: Field[], dictionaries = new Map<number, DataType>()): Map<number, DataType> {\n\n for (let i = -1, n = fields.length; ++i < n;) {\n const field = fields[i];\n const type = field.type;\n if (DataType.isDictionary(type)) {\n if (!dictionaries.has(type.id)) {\n dictionaries.set(type.id, type.dictionary);\n } else if (dictionaries.get(type.id) !== type.dictionary) {\n throw new Error(`Cannot create Schema containing two different dictionaries with the same Id`);\n }\n }\n if (type.children && type.children.length > 0) {\n generateDictionaryMap(type.children, dictionaries);\n }\n }\n\n return dictionaries;\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field, Schema } from './schema.js';\nimport * as dtypes from './type.js';\nimport { Data, DataProps } from './data.js';\nimport { BuilderType, JavaScriptDataType } from './interfaces.js';\nimport { Vector, makeVector } from './vector.js';\nimport { Builder, BuilderOptions } from './builder.js';\nimport { instance as getBuilderConstructor } from './visitor/builderctor.js';\nimport { ArrayDataType, BigIntArray, JavaScriptArrayDataType, TypedArray, TypedArrayDataType } from './interfaces.js';\nimport { Table } from './table.js';\nimport { RecordBatch } from './recordbatch.js';\nimport { compareTypes } from './visitor/typecomparator.js';\n\nexport function makeBuilder<T extends dtypes.DataType = any, TNull = any>(options: BuilderOptions<T, TNull>): BuilderType<T, TNull> {\n\n const type = options.type;\n const builder = new (getBuilderConstructor.getVisitFn<T>(type)())(options) as Builder<T, TNull>;\n\n if (type.children && type.children.length > 0) {\n\n const children = options['children'] || [] as BuilderOptions[];\n const defaultOptions = { 'nullValues': options['nullValues'] };\n const getChildOptions = Array.isArray(children)\n ? ((_: Field, i: number) => children[i] || defaultOptions)\n : (({ name }: Field) => children[name] || defaultOptions);\n\n for (const [index, field] of type.children.entries()) {\n const { type } = field;\n const opts = getChildOptions(field, index);\n builder.children.push(makeBuilder({ ...opts, type }));\n }\n }\n\n return builder as BuilderType<T, TNull>;\n}\n\n/**\n * Creates a Vector from a JavaScript array via a {@link Builder}.\n * Use {@link makeVector} if you only want to create a vector from a typed array.\n *\n * @example\n * ```ts\n * const vf64 = vectorFromArray([1, 2, 3]);\n * const vi8 = vectorFromArray([1, 2, 3], new Int8);\n * const vdict = vectorFromArray(['foo', 'bar']);\n * const vstruct = vectorFromArray([{a: 'foo', b: 42}, {a: 'bar', b: 12}]);\n * ```\n */\nexport function vectorFromArray(values: readonly (null | undefined)[], type?: dtypes.Null): Vector<dtypes.Null>;\nexport function vectorFromArray(values: readonly (null | undefined | boolean)[], type?: dtypes.Bool): Vector<dtypes.Bool>;\nexport function vectorFromArray<T extends dtypes.Utf8 | dtypes.Dictionary<dtypes.Utf8> = dtypes.Dictionary<dtypes.Utf8, dtypes.Int32>>(values: readonly (null | undefined | string)[], type?: T): Vector<T>;\nexport function vectorFromArray<T extends dtypes.TimestampMillisecond>(values: readonly (null | undefined | Date)[], type?: T): Vector<T>;\nexport function vectorFromArray<T extends dtypes.Int>(values: readonly (null | undefined | number)[], type: T): Vector<T>;\nexport function vectorFromArray<T extends dtypes.Int64 | dtypes.Uint64 = dtypes.Int64>(values: readonly (null | undefined | bigint)[], type?: T): Vector<T>;\nexport function vectorFromArray<T extends dtypes.Float = dtypes.Float64>(values: readonly (null | undefined | number)[], type?: T): Vector<T>;\nexport function vectorFromArray<T extends dtypes.DataType>(values: readonly (unknown)[], type: T): Vector<T>;\nexport function vectorFromArray<T extends readonly unknown[]>(values: T): Vector<JavaScriptArrayDataType<T>>;\n/** Creates a Vector from a typed array via {@link makeVector}. */\nexport function vectorFromArray<T extends TypedArray | BigIntArray>(data: T): Vector<TypedArrayDataType<T>>;\n\nexport function vectorFromArray<T extends dtypes.DataType>(data: Data<T>): Vector<T>;\nexport function vectorFromArray<T extends dtypes.DataType>(data: Vector<T>): Vector<T>;\nexport function vectorFromArray<T extends dtypes.DataType>(data: DataProps<T>): Vector<T>;\nexport function vectorFromArray<T extends TypedArray | BigIntArray | readonly unknown[]>(data: T): Vector<ArrayDataType<T>>;\n\nexport function vectorFromArray(init: any, type?: dtypes.DataType) {\n if (init instanceof Data || init instanceof Vector || init.type instanceof dtypes.DataType || ArrayBuffer.isView(init)) {\n return makeVector(init as any);\n }\n const options: IterableBuilderOptions = { type: type ?? inferType(init), nullValues: [null] };\n const chunks = [...builderThroughIterable(options)(init)];\n const vector = chunks.length === 1 ? chunks[0] : chunks.reduce((a, b) => a.concat(b));\n if (dtypes.DataType.isDictionary(vector.type)) {\n return vector.memoize();\n }\n return vector;\n}\n\n/**\n * Creates a {@link Table} from an array of objects.\n *\n * @param array A table of objects.\n */\nexport function tableFromJSON<T extends Record<string, unknown>>(array: T[]): Table<{ [P in keyof T]: JavaScriptDataType<T[P]> }> {\n const vector = vectorFromArray(array) as Vector<dtypes.Struct<any>>;\n const batch = new RecordBatch(new Schema(vector.type.children), vector.data[0]);\n return new Table(batch);\n}\n\n/** @ignore */\nfunction inferType<T extends readonly unknown[]>(values: T): JavaScriptArrayDataType<T>;\nfunction inferType(value: readonly unknown[]): dtypes.DataType {\n if (value.length === 0) { return new dtypes.Null; }\n let nullsCount = 0;\n let arraysCount = 0;\n let objectsCount = 0;\n let numbersCount = 0;\n let stringsCount = 0;\n let bigintsCount = 0;\n let booleansCount = 0;\n let datesCount = 0;\n\n for (const val of value) {\n if (val == null) { ++nullsCount; continue; }\n switch (typeof val) {\n case 'bigint': ++bigintsCount; continue;\n case 'boolean': ++booleansCount; continue;\n case 'number': ++numbersCount; continue;\n case 'string': ++stringsCount; continue;\n case 'object':\n if (Array.isArray(val)) {\n ++arraysCount;\n } else if (Object.prototype.toString.call(val) === '[object Date]') {\n ++datesCount;\n } else {\n ++objectsCount;\n }\n continue;\n }\n throw new TypeError('Unable to infer Vector type from input values, explicit type declaration expected.');\n }\n\n if (numbersCount + nullsCount === value.length) {\n return new dtypes.Float64;\n } else if (stringsCount + nullsCount === value.length) {\n return new dtypes.Dictionary(new dtypes.Utf8, new dtypes.Int32);\n } else if (bigintsCount + nullsCount === value.length) {\n return new dtypes.Int64;\n } else if (booleansCount + nullsCount === value.length) {\n return new dtypes.Bool;\n } else if (datesCount + nullsCount === value.length) {\n return new dtypes.TimestampMillisecond;\n } else if (arraysCount + nullsCount === value.length) {\n const array = value as Array<unknown>[];\n const childType = inferType(array[array.findIndex((ary) => ary != null)]);\n if (array.every((ary) => ary == null || compareTypes(childType, inferType(ary)))) {\n return new dtypes.List(new Field('', childType, true));\n }\n } else if (objectsCount + nullsCount === value.length) {\n const fields = new Map<string, Field>();\n for (const row of value as Record<string, unknown>[]) {\n for (const key of Object.keys(row)) {\n if (!fields.has(key) && row[key] != null) {\n // use the type inferred for the first instance of a found key\n fields.set(key, new Field(key, inferType([row[key]]), true));\n }\n }\n }\n return new dtypes.Struct([...fields.values()]);\n }\n\n throw new TypeError('Unable to infer Vector type from input values, explicit type declaration expected.');\n}\n\n/**\n * A set of options to create an Iterable or AsyncIterable `Builder` transform function.\n * @see {@link builderThroughIterable}\n * @see {@link builderThroughAsyncIterable}\n */\nexport interface IterableBuilderOptions<T extends dtypes.DataType = any, TNull = any> extends BuilderOptions<T, TNull> {\n highWaterMark?: number;\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n valueToChildTypeId?: (builder: Builder<T, TNull>, value: any, offset: number) => number;\n}\n\n/** @ignore */\ntype ThroughIterable<T extends dtypes.DataType = any, TNull = any> = (source: Iterable<T['TValue'] | TNull>) => IterableIterator<Vector<T>>;\n\n/**\n * Transform a synchronous `Iterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector<T> following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `Iterable` of values to\n * transform. When called, this function returns an Iterator of `Vector<T>`.\n *\n * The resulting `Iterator<Vector<T>>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `Iterator<Vector<T>>`\n * will flush the underlying `Builder` (and yield a new `Vector<T>`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `Iterator<Vector<T>>` will flush\n * the underlying `Builder` (and yield a new `Vector<T>`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions<T, TNull>} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `Iterable` of values to\n * write, and returns an `Iterator` that yields Vectors according\n * to the chunking semantics defined in the `options` argument.\n * @nocollapse\n */\nexport function builderThroughIterable<T extends dtypes.DataType = any, TNull = any>(options: IterableBuilderOptions<T, TNull>) {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? Number.POSITIVE_INFINITY : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return function* (source: Iterable<T['TValue'] | TNull>) {\n let numChunks = 0;\n const builder = makeBuilder(options);\n for (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n } as ThroughIterable<T, TNull>;\n}\n\n/** @ignore */\ntype ThroughAsyncIterable<T extends dtypes.DataType = any, TNull = any> = (source: Iterable<T['TValue'] | TNull> | AsyncIterable<T['TValue'] | TNull>) => AsyncIterableIterator<Vector<T>>;\n\n/**\n * Transform an `AsyncIterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector<T> following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `AsyncIterable` of values to\n * transform. When called, this function returns an AsyncIterator of `Vector<T>`.\n *\n * The resulting `AsyncIterator<Vector<T>>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `AsyncIterator<Vector<T>>`\n * will flush the underlying `Builder` (and yield a new `Vector<T>`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `AsyncIterator<Vector<T>>` will flush\n * the underlying `Builder` (and yield a new `Vector<T>`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions<T, TNull>} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `AsyncIterable` of values\n * to write, and returns an `AsyncIterator` that yields Vectors\n * according to the chunking semantics defined in the `options`\n * argument.\n * @nocollapse\n */\nexport function builderThroughAsyncIterable<T extends dtypes.DataType = any, TNull = any>(options: IterableBuilderOptions<T, TNull>) {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? Number.POSITIVE_INFINITY : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return async function* (source: Iterable<T['TValue'] | TNull> | AsyncIterable<T['TValue'] | TNull>) {\n let numChunks = 0;\n const builder = makeBuilder(options);\n for await (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n } as ThroughAsyncIterable<T, TNull>;\n}\n", null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Type } from './enum.js';\nimport { Data, makeData } from './data.js';\nimport { vectorFromArray } from './factories.js';\nimport { makeVector, Vector } from './vector.js';\nimport { Field, Schema } from './schema.js';\nimport { DataType, Null, Struct, TypeMap } from './type.js';\nimport { compareSchemas } from './visitor/typecomparator.js';\nimport { distributeVectorsIntoRecordBatches } from './util/recordbatch.js';\n\nimport {\n isChunkedValid,\n computeChunkOffsets,\n computeChunkNullCounts,\n wrapChunkedCall1,\n wrapChunkedCall2,\n wrapChunkedIndexOf,\n sliceChunks,\n} from './util/chunk.js';\n\nimport { instance as getVisitor } from './visitor/get.js';\nimport { instance as setVisitor } from './visitor/set.js';\nimport { instance as indexOfVisitor } from './visitor/indexof.js';\nimport { instance as iteratorVisitor } from './visitor/iterator.js';\n\nimport { DataProps } from './data.js';\nimport { clampRange, wrapIndex } from './util/vector.js';\nimport { ArrayDataType, BigIntArray, TypedArray, TypedArrayDataType } from './interfaces.js';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from './recordbatch.js';\n\n/** @ignore */\nconst kTableSymbol = Symbol.for('apache-arrow/Table');\n\n/** @ignore */\nexport interface Table<T extends TypeMap = any> {\n ///\n // Virtual properties for the TypeScript compiler.\n // These do not exist at runtime.\n ///\n readonly TType: Struct<T>;\n readonly TArray: Struct<T>['TArray'];\n readonly TValue: Struct<T>['TValue'];\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable\n */\n [Symbol.isConcatSpreadable]: true;\n}\n\n/**\n * Tables are collections of {@link Vector}s and have a {@link Schema}. Use the convenience methods {@link makeTable}\n * or {@link tableFromArrays} to create a table in JavaScript. To create a table from the IPC format, use\n * {@link tableFromIPC}.\n */\nexport class Table<T extends TypeMap = any> {\n\n /**\n * Check if an object is an instance of Table.\n * This works across different instances of the Arrow library.\n */\n /** @nocollapse */ static isTable(x: any): x is Table {\n return x?.[kTableSymbol] === true;\n }\n\n /** @internal */\n declare public readonly [kTableSymbol]: true;\n\n constructor();\n constructor(batches: Iterable<RecordBatch<T>>);\n constructor(...batches: readonly RecordBatch<T>[]);\n constructor(...columns: { [P in keyof T]: Vector<T[P]> }[]);\n constructor(...columns: { [P in keyof T]: Data<T[P]> | DataProps<T[P]> }[]);\n constructor(schema: Schema<T>, ...columns: { [P in keyof T]: Vector<T[P]> }[]);\n constructor(schema: Schema<T>, ...columns: { [P in keyof T]: Data<T[P]> | DataProps<T[P]> }[]);\n constructor(schema: Schema<T>, data?: RecordBatch<T> | RecordBatch<T>[]);\n constructor(schema: Schema<T>, data?: RecordBatch<T> | RecordBatch<T>[], offsets?: Uint32Array);\n constructor(...args: any[]) {\n\n if (args.length === 0) {\n this.batches = [];\n this.schema = new Schema([]);\n this._offsets = [0];\n return this;\n }\n\n let schema: Schema<T> | undefined;\n let offsets: Uint32Array | number[] | undefined;\n\n if (args[0] instanceof Schema) {\n schema = args.shift() as Schema<T>;\n }\n\n if (args.at(-1) instanceof Uint32Array) {\n offsets = args.pop();\n }\n\n const unwrap = (x: any): RecordBatch<T>[] => {\n if (x) {\n if (x instanceof RecordBatch) {\n return [x];\n } else if (x instanceof Table) {\n return x.batches;\n } else if (x instanceof Data) {\n if (x.type instanceof Struct) {\n return [new RecordBatch(new Schema(x.type.children), x as Data<Struct<any>>)];\n }\n } else if (Array.isArray(x)) {\n return x.flatMap(v => unwrap(v));\n } else if (typeof x[Symbol.iterator] === 'function') {\n return [...x].flatMap(v => unwrap(v));\n } else if (typeof x === 'object') {\n const keys = Object.keys(x) as (keyof T)[];\n const vecs = keys.map((k) => new Vector([x[k]]));\n const batchSchema = schema ?? new Schema(keys.map((k, i) => new Field(String(k), vecs[i].type, vecs[i].nullable)));\n const [, batches] = distributeVectorsIntoRecordBatches(batchSchema, vecs);\n return batches.length === 0 ? [new RecordBatch(x)] : batches;\n }\n }\n return [];\n };\n\n const batches = args.flatMap(v => unwrap(v));\n\n schema = schema ?? batches[0]?.schema ?? new Schema([]);\n\n if (!(schema instanceof Schema)) {\n throw new TypeError('Table constructor expects a [Schema, RecordBatch[]] pair.');\n }\n\n for (const batch of batches) {\n if (!(batch instanceof RecordBatch)) {\n throw new TypeError('Table constructor expects a [Schema, RecordBatch[]] pair.');\n }\n if (!compareSchemas(schema, batch.schema)) {\n throw new TypeError('Table and inner RecordBatch schemas must be equivalent.');\n }\n }\n\n this.schema = schema;\n this.batches = batches;\n this._offsets = offsets ?? computeChunkOffsets(this.data);\n }\n\n declare protected _offsets: Uint32Array | number[];\n declare protected _nullCount: number;\n\n declare public readonly schema: Schema<T>;\n\n /**\n * The contiguous {@link RecordBatch `RecordBatch`} chunks of the Table rows.\n */\n declare public readonly batches: RecordBatch<T>[];\n\n /**\n * The contiguous {@link RecordBatch `RecordBatch`} chunks of the Table rows.\n */\n public get data() { return this.batches.map(({ data }) => data); }\n\n /**\n * The number of columns in this Table.\n */\n public get numCols() { return this.schema.fields.length; }\n\n /**\n * The number of rows in this Table.\n */\n public get numRows() {\n return this.data.reduce((numRows, data) => numRows + data.length, 0);\n }\n\n /**\n * The number of null rows in this Table.\n */\n public get nullCount() {\n if (this._nullCount === -1) {\n this._nullCount = computeChunkNullCounts(this.data);\n }\n return this._nullCount;\n }\n\n /**\n * Check whether an element is null.\n *\n * @param index The index at which to read the validity bitmap.\n */\n // @ts-ignore\n public isValid(index: number): boolean { return false; }\n\n /**\n * Get an element value by position.\n *\n * @param index The index of the element to read.\n */\n // @ts-ignore\n public get(index: number): Struct<T>['TValue'] | null { return null; }\n\n /**\n * Get an element value by position.\n * @param index The index of the element to read. A negative index will count back from the last element.\n */\n // @ts-ignore\n public at(index: number): Struct<T>['TValue'] | null {\n return this.get(wrapIndex(index, this.numRows));\n }\n\n /**\n * Set an element value by position.\n *\n * @param index The index of the element to write.\n * @param value The value to set.\n */\n // @ts-ignore\n public set(index: number, value: Struct<T>['TValue'] | null): void { return; }\n\n /**\n * Retrieve the index of the first occurrence of a value in an Vector.\n *\n * @param element The value to locate in the Vector.\n * @param offset The index at which to begin the search. If offset is omitted, the search starts at index 0.\n */\n // @ts-ignore\n public indexOf(element: Struct<T>['TValue'], offset?: number): number { return -1; }\n\n /**\n * Iterator for rows in this Table.\n */\n public [Symbol.iterator]() {\n if (this.batches.length > 0) {\n return iteratorVisitor.visit(new Vector(this.data)) as IterableIterator<Struct<T>['TValue']>;\n }\n return (new Array(0))[Symbol.iterator]();\n }\n\n /**\n * Return a JavaScript Array of the Table rows.\n *\n * @returns An Array of Table rows.\n */\n public toArray() {\n return [...this];\n }\n\n /**\n * Returns a string representation of the Table rows.\n *\n * @returns A string representation of the Table rows.\n */\n public toString() {\n return `[\\n ${this.toArray().join(',\\n ')}\\n]`;\n }\n\n /**\n * Combines two or more Tables of the same schema.\n *\n * @param others Additional Tables to add to the end of this Tables.\n */\n public concat(...others: Table<T>[]) {\n const schema = this.schema;\n const data = this.data.concat(others.flatMap(({ data }) => data));\n return new Table(schema, data.map((data) => new RecordBatch(schema, data)));\n }\n\n /**\n * Return a zero-copy sub-section of this Table.\n *\n * @param begin The beginning of the specified portion of the Table.\n * @param end The end of the specified portion of the Table. This is exclusive of the element at the index 'end'.\n */\n public slice(begin?: number, end?: number): Table<T> {\n const schema = this.schema;\n [begin, end] = clampRange({ length: this.numRows }, begin, end);\n const data = sliceChunks(this.data, this._offsets, begin, end);\n return new Table(schema, data.map((chunk) => new RecordBatch(schema, chunk)));\n }\n\n /**\n * Returns a child Vector by name, or null if this Vector has no child with the given name.\n *\n * @param name The name of the child to retrieve.\n */\n public getChild<P extends keyof T>(name: P) {\n return this.getChildAt<T[P]>(this.schema.fields.findIndex((f) => f.name === name));\n }\n\n /**\n * Returns a child Vector by index, or null if this Vector has no child at the supplied index.\n *\n * @param index The index of the child to retrieve.\n */\n public getChildAt<R extends T[keyof T] = any>(index: number): Vector<R> | null {\n if (index > -1 && index < this.schema.fields.length) {\n const data = this.data.map((data) => data.children[index] as Data<R>);\n if (data.length === 0) {\n const { type } = this.schema.fields[index] as Field<R>;\n const empty = makeData<R>({ type, length: 0, nullCount: 0 });\n data.push(empty._changeLengthAndBackfillNullBitmap(this.numRows));\n }\n return new Vector(data);\n }\n return null;\n }\n\n /**\n * Sets a child Vector by name.\n *\n * @param name The name of the child to overwrite.\n * @returns A new Table with the supplied child for the specified name.\n */\n public setChild<P extends keyof T, R extends DataType>(name: P, child: Vector<R>) {\n return this.setChildAt(this.schema.fields?.findIndex((f) => f.name === name), child) as Table<T & { [K in P]: R }>;\n }\n\n /**\n * Sets a child Vector by index.\n *\n * @param index The index of the child to overwrite.\n * @returns A new Table with the supplied child at the specified index.\n */\n public setChildAt(index: number, child?: null): Table;\n public setChildAt<R extends DataType = any>(index: number, child: Vector<R>): Table;\n public setChildAt(index: number, child: any) {\n let schema: Schema = this.schema;\n let batches: RecordBatch[] = [...this.batches];\n if (index > -1 && index < this.numCols) {\n if (!child) {\n child = new Vector([makeData({ type: new Null, length: this.numRows })]);\n }\n const fields = schema.fields.slice() as Field<any>[];\n const field = fields[index].clone({ type: child.type });\n const children = this.schema.fields.map((_, i) => this.getChildAt(i)!);\n [fields[index], children[index]] = [field, child];\n [schema, batches] = distributeVectorsIntoRecordBatches(schema, children);\n }\n return new Table(schema, batches);\n }\n\n /**\n * Construct a new Table containing only specified columns.\n *\n * @param columnNames Names of columns to keep.\n * @returns A new Table of columns matching the specified names.\n */\n public select<K extends keyof T = any>(columnNames: K[]) {\n const nameToIndex = this.schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map<K, number>());\n return this.selectAt(columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n\n /**\n * Construct a new Table containing only columns at the specified indices.\n *\n * @param columnIndices Indices of columns to keep.\n * @returns A new Table of columns at the specified indices.\n */\n public selectAt<K extends T[keyof T] = any>(columnIndices: number[]) {\n const schema = this.schema.selectAt(columnIndices);\n const data = this.batches.map((batch) => batch.selectAt(columnIndices));\n return new Table<{ [key: string]: K }>(schema, data);\n }\n\n public assign<R extends TypeMap = any>(other: Table<R>) {\n\n const fields = this.schema.fields;\n const [indices, oldToNew] = other.schema.fields.reduce((memo, f2, newIdx) => {\n const [indices, oldToNew] = memo;\n const i = fields.findIndex((f) => f.name === f2.name);\n ~i ? (oldToNew[i] = newIdx) : indices.push(newIdx);\n return memo;\n }, [[], []] as number[][]);\n\n const schema = this.schema.assign(other.schema);\n const columns = [\n ...fields.map((_, i) => [i, oldToNew[i]]).map(([i, j]) =>\n (j === undefined ? this.getChildAt(i) : other.getChildAt(j))!),\n ...indices.map((i) => other.getChildAt(i)!)\n ].filter(Boolean) as Vector<(T & R)[keyof T | keyof R]>[];\n\n return new Table<T & R>(...distributeVectorsIntoRecordBatches<any>(schema, columns));\n }\n\n // Initialize this static property via an IIFE so bundlers don't tree-shake\n // out this logic, but also so we're still compliant with `\"sideEffects\": false`\n protected static [Symbol.toStringTag] = ((proto: Table) => {\n (proto as any).schema = null;\n (proto as any).batches = [];\n (proto as any)._offsets = new Uint32Array([0]);\n (proto as any)._nullCount = -1;\n (proto as any)[Symbol.isConcatSpreadable] = true;\n (proto as any)[kTableSymbol] = true;\n (proto as any)['isValid'] = wrapChunkedCall1(isChunkedValid);\n (proto as any)['get'] = wrapChunkedCall1(getVisitor.getVisitFn(Type.Struct));\n (proto as any)['set'] = wrapChunkedCall2(setVisitor.getVisitFn(Type.Struct));\n (proto as any)['indexOf'] = wrapChunkedIndexOf(indexOfVisitor.getVisitFn(Type.Struct));\n return 'Table';\n })(Table.prototype);\n}\n\nObject.defineProperty(Table, Symbol.hasInstance, {\n value: function isTableInstance(instance: any): instance is Table {\n return Function.prototype[Symbol.hasInstance].call(this, instance)\n || (this === Table && Table.isTable(instance));\n },\n});\n\n\ntype VectorsMap<T extends TypeMap> = { [P in keyof T]: Vector<T[P]> };\n\n/**\n * Creates a new Table from an object of typed arrays.\n *\n* @example\n * ```ts\n * const table = makeTable({\n * a: new Int8Array([1, 2, 3]),\n * })\n * ```\n *\n * @param input Input an object of typed arrays.\n * @returns A new Table.\n */\nexport function makeTable<I extends Record<string | number | symbol, TypedArray>>(input: I): Table<{ [P in keyof I]: TypedArrayDataType<I[P]> }> {\n type T = { [P in keyof I]: TypedArrayDataType<I[P]> };\n const vecs = {} as VectorsMap<T>;\n const inputs = Object.entries(input) as [keyof I, I[keyof I]][];\n for (const [key, col] of inputs) {\n vecs[key] = makeVector(col);\n }\n return new Table<T>(vecs);\n}\n\n/**\n * Creates a new Table from an object of typed arrays or JavaScript arrays.\n *\n * @example\n * ```ts\n * const table = tableFromArrays({\n * a: [1, 2, 3],\n * b: new Int8Array([1, 2, 3]),\n * })\n * ```\n *\n * @param input Input an object of typed arrays or JavaScript arrays.\n * @returns A new Table.\n */\nexport function tableFromArrays<I extends Record<string | number | symbol, TypedArray | BigIntArray | readonly unknown[]>>(input: I): Table<{ [P in keyof I]: ArrayDataType<I[P]> }> {\n type T = { [P in keyof I]: ArrayDataType<I[P]> };\n const vecs = {} as VectorsMap<T>;\n const inputs = Object.entries(input) as [keyof I, I[keyof I]][];\n for (const [key, col] of inputs) {\n vecs[key] = vectorFromArray(col);\n }\n return new Table<T>(vecs);\n}\n", "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data, makeData } from './data.js';\nimport { Table } from './table.js';\nimport { Vector } from './vector.js';\nimport { Schema, Field } from './schema.js';\nimport { DataType, Struct, Null, TypeMap } from './type.js';\nimport { wrapIndex } from './util/vector.js';\n\nimport { instance as getVisitor } from './visitor/get.js';\nimport { instance as setVisitor } from './visitor/set.js';\nimport { instance as indexOfVisitor } from './visitor/indexof.js';\nimport { instance as iteratorVisitor } from './visitor/iterator.js';\n\n/** @ignore */\nconst kRecordBatchSymbol = Symbol.for('apache-arrow/RecordBatch');\n\n/** @ignore */\nexport interface RecordBatch<T extends TypeMap = any> {\n ///\n // Virtual properties for the TypeScript compiler.\n // These do not exist at runtime.\n ///\n readonly TType: Struct<T>;\n readonly TArray: Struct<T>['TArray'];\n readonly TValue: Struct<T>['TValue'];\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable\n */\n [Symbol.isConcatSpreadable]: true;\n}\n\n/**\n * A RecordBatch is a collection of equal-length columns conforming to a\n * particular {@link Schema}. A {@link Table} is composed of one or more\n * RecordBatches.\n */\nexport class RecordBatch<T extends TypeMap = any> {\n\n /**\n * Check if an object is an instance of RecordBatch.\n * This works across different instances of the Arrow library.\n */\n /** @nocollapse */ static isRecordBatch(x: any): x is RecordBatch {\n return x?.[kRecordBatchSymbol] === true;\n }\n\n /** @internal */\n declare public readonly [kRecordBatchSymbol]: true;\n\n constructor(columns: { [P in keyof T]: Data<T[P]> });\n constructor(schema: Schema<T>, data?: Data<Struct<T>>, metadata?: Map<string, string>);\n constructor(...args: any[]) {\n switch (args.length) {\n case 3:\n case 2: {\n [this.schema] = args;\n if (!(this.schema instanceof Schema)) {\n throw new TypeError('RecordBatch constructor expects a [Schema, Data] pair.');\n }\n [,\n this.data = makeData({\n nullCount: 0,\n type: new Struct<T>(this.schema.fields),\n children: this.schema.fields.map((f) => makeData({ type: f.type, nullCount: 0 }))\n }),\n this._metadata = new Map()\n ] = args;\n if (!(this.data instanceof Data)) {\n throw new TypeError('RecordBatch constructor expects a [Schema, Data] pair.');\n }\n [this.schema, this.data] = ensureSameLengthData<T>(this.schema, this.data.children as Data<T[keyof T]>[], this.data.length);\n break;\n }\n case 1: {\n const [obj] = args;\n const { fields, children, length } = Object.keys(obj).reduce((memo, name, i) => {\n memo.children[i] = obj[name];\n memo.length = Math.max(memo.length, obj[name].length);\n memo.fields[i] = Field.new({ name, type: obj[name].type, nullable: true });\n return memo;\n }, {\n length: 0,\n fields: new Array<Field<T[keyof T]>>(),\n children: new Array<Data<T[keyof T]>>(),\n });\n\n const schema = new Schema<T>(fields);\n const data = makeData({ type: new Struct<T>(fields), length, children, nullCount: 0 });\n [this.schema, this.data] = ensureSameLengthData<T>(schema, data.children as Data<T[keyof T]>[], length);\n this._metadata = new Map();\n break;\n }\n default: throw new TypeError('RecordBatch constructor expects an Object mapping names to child Data, or a [Schema, Data] pair.');\n }\n }\n\n protected _dictionaries?: Map<number, Vector>;\n protected _metadata: Map<string, string>;\n\n public readonly schema: Schema<T>;\n public readonly data: Data<Struct<T>>;\n\n /**\n * Custom metadata for this RecordBatch.\n */\n public get metadata() { return this._metadata; }\n\n public get dictionaries() {\n return this._dictionaries || (this._dictionaries = collectDictionaries(this.schema.fields, this.data.children));\n }\n\n /**\n * The number of columns in this RecordBatch.\n */\n public get numCols() { return this.schema.fields.length; }\n\n /**\n * The number of rows in this RecordBatch.\n */\n public get numRows() { return this.data.length; }\n\n /**\n * The number of null rows in this RecordBatch.\n */\n public get nullCount() {\n return this.data.nullCount;\n }\n\n /**\n * Check whether an row is null.\n * @param index The index at which to read the validity bitmap.\n */\n public isValid(index: number) {\n return this.data.getValid(index);\n }\n\n /**\n * Get a row by position.\n * @param index The index of the row to read.\n */\n public get(index: number) {\n return getVisitor.visit(this.data, index);\n }\n\n /**\n * Get a row value by position.\n * @param index The index of the row to read. A negative index will count back from the last row.\n */\n public at(index: number) {\n return this.get(wrapIndex(index, this.numRows));\n }\n\n /**\n * Set a row by position.\n * @param index The index of the row to write.\n * @param value The value to set.\n */\n public set(index: number, value: Struct<T>['TValue']) {\n return setVisitor.visit(this.data, index, value);\n }\n\n /**\n * Retrieve the index of the first occurrence of a row in an RecordBatch.\n * @param element The row to locate in the RecordBatch.\n * @param offset The index at which to begin the search. If offset is omitted, the search starts at index 0.\n */\n public indexOf(element: Struct<T>['TValue'], offset?: number): number {\n return indexOfVisitor.visit(this.data, element, offset);\n }\n\n /**\n * Iterator for rows in this RecordBatch.\n */\n public [Symbol.iterator]() {\n return iteratorVisitor.visit(new Vector([this.data])) as IterableIterator<Struct<T>['TValue']>;\n }\n\n /**\n * Return a JavaScript Array of the RecordBatch rows.\n * @returns An Array of RecordBatch rows.\n */\n public toArray() {\n return [...this];\n }\n\n /**\n * Combines two or more RecordBatch of the same schema.\n * @param others Additional RecordBatch to add to the end of this RecordBatch.\n */\n public concat(...others: RecordBatch<T>[]) {\n return new Table(this.schema, [this, ...others]);\n }\n\n /**\n * Return a zero-copy sub-section of this RecordBatch.\n * @param start The beginning of the specified portion of the RecordBatch.\n * @param end The end of the specified portion of the RecordBatch. This is exclusive of the row at the index 'end'.\n */\n public slice(begin?: number, end?: number): RecordBatch<T> {\n const [slice] = new Vector([this.data]).slice(begin, end).data;\n return new RecordBatch(this.schema, slice, this._metadata);\n }\n\n /**\n * Returns a child Vector by name, or null if this Vector has no child with the given name.\n * @param name The name of the child to retrieve.\n */\n public getChild<P extends keyof T>(name: P) {\n return this.getChildAt<T[P]>(this.schema.fields?.findIndex((f) => f.name === name));\n }\n\n /**\n * Returns a child Vector by index, or null if this Vector has no child at the supplied index.\n * @param index The index of the child to retrieve.\n */\n public getChildAt<R extends T[keyof T] = any>(index: number): Vector<R> | null {\n if (index > -1 && index < this.schema.fields.length) {\n return new Vector([this.data.children[index]]) as Vector<R>;\n }\n return null;\n }\n\n /**\n * Sets a child Vector by name.\n * @param name The name of the child to overwrite.\n * @returns A new RecordBatch with the new child for the specified name.\n */\n public setChild<P extends keyof T, R extends DataType>(name: P, child: Vector<R>) {\n return this.setChildAt(this.schema.fields?.findIndex((f) => f.name === name), child) as RecordBatch<T & { [K in P]: R }>;\n }\n\n /**\n * Sets a child Vector by index.\n * @param index The index of the child to overwrite.\n * @returns A new RecordBatch with the new child at the specified index.\n */\n public setChildAt(index: number, child?: null): RecordBatch;\n public setChildAt<R extends DataType = any>(index: number, child: Vector<R>): RecordBatch;\n public setChildAt(index: number, child: any) {\n let schema: Schema = this.schema;\n let data: Data<Struct> = this.data;\n if (index > -1 && index < this.numCols) {\n if (!child) {\n child = new Vector([makeData({ type: new Null, length: this.numRows })]);\n }\n const fields = schema.fields.slice() as Field<any>[];\n const children = data.children.slice() as Data<any>[];\n const field = fields[index].clone({ type: child.type });\n [fields[index], children[index]] = [field, child.data[0]];\n schema = new Schema(fields, new Map(this.schema.metadata));\n data = makeData({ type: new Struct<T>(fields), length: data.length, children });\n }\n return new RecordBatch(schema, data, this._metadata);\n }\n\n /**\n * Construct a new RecordBatch containing only specified columns.\n *\n * @param columnNames Names of columns to keep.\n * @returns A new RecordBatch of columns matching the specified names.\n */\n public select<K extends keyof T = any>(columnNames: K[]) {\n const schema = this.schema.select(columnNames);\n const type = new Struct(schema.fields);\n const children = [] as Data<T[K]>[];\n for (const name of columnNames) {\n const index = this.schema.fields.findIndex((f) => f.name === name);\n if (~index) {\n children[index] = this.data.children[index] as Data<T[K]>;\n }\n }\n return new RecordBatch(schema, makeData({ type, length: this.numRows, children }), this._metadata);\n }\n\n /**\n * Construct a new RecordBatch containing only columns at the specified indices.\n *\n * @param columnIndices Indices of columns to keep.\n * @returns A new RecordBatch of columns matching at the specified indices.\n */\n public selectAt<K extends T = any>(columnIndices: number[]) {\n const schema = this.schema.selectAt<K>(columnIndices);\n const children = columnIndices.map((i) => this.data.children[i]).filter(Boolean);\n const subset = makeData({ type: new Struct(schema.fields), length: this.numRows, children });\n return new RecordBatch<{ [P in keyof K]: K[P] }>(schema, subset, this._metadata);\n }\n\n // Initialize this static property via an IIFE so bundlers don't tree-shake\n // out this logic, but also so we're still compliant with `\"sideEffects\": false`\n protected static [Symbol.toStringTag] = ((proto: RecordBatch) => {\n (proto as any)._nullCount = -1;\n (proto as any)[Symbol.isConcatSpreadable] = true;\n (proto as any)[kRecordBatchSymbol] = true;\n return 'RecordBatch';\n })(RecordBatch.prototype);\n}\n\nObject.defineProperty(RecordBatch, Symbol.hasInstance, {\n value: function isRecordBatchInstance(instance: any): instance is RecordBatch {\n return Function.prototype[Symbol.hasInstance].call(this, instance)\n || (this === RecordBatch && RecordBatch.isRecordBatch(instance));\n },\n});\n\n\n/** @ignore */\nfunction ensureSameLengthData<T extends TypeMap = any>(\n schema: Schema<T>,\n chunks: Data<T[keyof T]>[],\n maxLength = chunks.reduce((max, col) => Math.max(max, col.length), 0)\n) {\n const fields = [...schema.fields];\n const children = [...chunks] as Data<T[keyof T]>[];\n const nullBitmapSize = ((maxLength + 63) & ~63) >> 3;\n\n for (const [idx, field] of schema.fields.entries()) {\n const chunk = chunks[idx];\n if (!chunk || chunk.length !== maxLength) {\n fields[idx] = field.clone({ nullable: true });\n children[idx] = chunk?._changeLengthAndBackfillNullBitmap(maxLength) ?? makeData({\n type: field.type,\n length: maxLength,\n nullCount: maxLength,\n nullBitmap: new Uint8Array(nullBitmapSize)\n });\n }\n }\n\n return [\n schema.assign(fields),\n makeData({ type: new Struct<T>(fields), length: maxLength, children })\n ] as [Schema<T>, Data<Struct<T>>];\n}\n\n/** @ignore */\nfunction collectDictionaries(fields: Field[], children: readonly Data[], dictionaries = new Map<number, Vector>()): Map<number, Vector> {\n if ((fields?.length ?? 0) > 0 && (fields?.length === children?.length)) {\n for (let i = -1, n = fields.length; ++i < n;) {\n const { type } = fields[i];\n const data = children[i];\n for (const next of [data, ...(data?.dictionary?.data || [])]) {\n collectDictionaries(type.children, next?.children, dictionaries);\n }\n if (DataType.isDictionary(type)) {\n const { id } = type;\n if (!dictionaries.has(id)) {\n if (data?.dictionary) {\n dictionaries.set(id, data.dictionary);\n }\n } else if (dictionaries.get(id) !== data.dictionary) {\n throw new Error(`Cannot create Schema containing two different dictionaries with the same Id`);\n }\n }\n }\n }\n return dictionaries;\n}\n\n/**\n * An internal class used by the `RecordBatchReader` and `RecordBatchWriter`\n * implementations to differentiate between a stream with valid zero-length\n * RecordBatches, and a stream with a Schema message, but no RecordBatches.\n * @see https://github.com/apache/arrow/pull/4373\n * @ignore\n * @private\n */\nexport class _InternalEmptyPlaceholderRecordBatch<T extends TypeMap = any> extends RecordBatch<T> {\n constructor(schema: Schema<T>, metadata?: Map<string, string>) {\n const children = schema.fields.map((f) => makeData({ type: f.type }));\n const data = makeData({ type: new Struct<T>(schema.fields), length: 0, nullCount: 0, children });\n super(schema, data, metadata || new Map());\n }\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { MessageHeader } from './fb/message-header.js';\nexport { CompressionType } from './fb/compression-type.js';\n\nexport {\n Type,\n BufferType,\n DateUnit,\n TimeUnit,\n Precision,\n UnionMode,\n IntervalUnit,\n MetadataVersion,\n} from './enum.js';\n\nexport { Data, makeData } from './data.js';\nexport type { TypeMap } from './type.js';\nexport {\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8, LargeUtf8, Utf8View,\n Binary, LargeBinary, BinaryView,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n LargeList,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth, IntervalMonthDayNano,\n Duration, DurationSecond, DurationMillisecond, DurationMicrosecond, DurationNanosecond,\n FixedSizeList,\n Map_\n} from './type.js';\n\nexport { Table, makeTable, tableFromArrays } from './table.js';\nexport { Vector, makeVector } from './vector.js';\nexport { Visitor } from './visitor.js';\nexport { Schema, Field } from './schema.js';\n\nexport { MapRow } from './row/map.js';\nexport { StructRow } from './row/struct.js';\nexport type { StructRowProxy } from './row/struct.js';\n\nexport { Builder } from './builder.js';\nexport { makeBuilder, vectorFromArray, tableFromJSON, builderThroughIterable, builderThroughAsyncIterable } from './factories.js';\nexport type { BuilderOptions } from './builder.js';\nexport { BoolBuilder } from './builder/bool.js';\nexport { NullBuilder } from './builder/null.js';\nexport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from './builder/date.js';\nexport { DecimalBuilder } from './builder/decimal.js';\nexport { DictionaryBuilder } from './builder/dictionary.js';\nexport { FixedSizeBinaryBuilder } from './builder/fixedsizebinary.js';\nexport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from './builder/float.js';\nexport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from './builder/int.js';\nexport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from './builder/time.js';\nexport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from './builder/timestamp.js';\nexport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder, IntervalMonthDayNanoBuilder } from './builder/interval.js';\nexport { DurationBuilder, DurationSecondBuilder, DurationMillisecondBuilder, DurationMicrosecondBuilder, DurationNanosecondBuilder } from './builder/duration.js';\nexport { Utf8Builder } from './builder/utf8.js';\nexport { Utf8ViewBuilder } from './builder/utf8view.js';\nexport { LargeUtf8Builder } from './builder/largeutf8.js';\nexport { BinaryBuilder } from './builder/binary.js';\nexport { BinaryViewBuilder } from './builder/binaryview.js';\nexport { LargeBinaryBuilder } from './builder/largebinary.js';\nexport { ListBuilder } from './builder/list.js';\nexport { LargeListBuilder } from './builder/largelist.js';\nexport { FixedSizeListBuilder } from './builder/fixedsizelist.js';\nexport { MapBuilder } from './builder/map.js';\nexport { StructBuilder } from './builder/struct.js';\nexport { UnionBuilder, SparseUnionBuilder, DenseUnionBuilder } from './builder/union.js';\n\nexport { ByteStream, AsyncByteStream, AsyncByteQueue } from './io/stream.js';\nexport type { ReadableSource, WritableSink } from './io/stream.js';\nexport { RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader } from './ipc/reader.js';\nexport { RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter } from './ipc/writer.js';\nexport { tableToIPC, tableFromIPC } from './ipc/serialization.js';\nexport { compressionRegistry } from './ipc/compression/registry.js';\nexport type { Codec } from './ipc/compression/registry.js';\nexport { MessageReader, AsyncMessageReader, JSONMessageReader } from './ipc/message.js';\nexport { Message } from './ipc/metadata/message.js';\nexport { RecordBatch } from './recordbatch.js';\nexport type { ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions } from './io/interfaces.js';\n\nexport {\n isArrowSchema,\n isArrowField,\n isArrowDataType,\n isArrowData,\n isArrowVector,\n isArrowRecordBatch,\n isArrowTable,\n} from './util/typecheck.js';\n\nimport * as util_bn_ from './util/bn.js';\nimport * as util_int_ from './util/int.js';\nimport * as util_bit_ from './util/bit.js';\nimport * as util_math_ from './util/math.js';\nimport * as util_buffer_ from './util/buffer.js';\nimport * as util_vector_ from './util/vector.js';\nimport * as util_pretty_ from './util/pretty.js';\n\nimport * as util_interval_ from './util/interval.js';\nexport type * from './util/interval.js';\n\nimport * as util_typecheck_ from './util/typecheck.js';\n\nimport { compareSchemas, compareFields, compareTypes } from './visitor/typecomparator.js';\n\n/** @ignore */\nexport const util = {\n ...util_bn_,\n ...util_int_,\n ...util_bit_,\n ...util_math_,\n ...util_buffer_,\n ...util_vector_,\n ...util_pretty_,\n ...util_interval_,\n ...util_typecheck_,\n compareSchemas,\n compareFields,\n compareTypes,\n};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {DataType, Field, KeyType, Schema, SchemaMetadata} from '@loaders.gl/core/schema';\nimport * as arrow from 'apache-arrow';\n\ntype ArrowDictionaryKeyType =\n | arrow.Int8\n | arrow.Int16\n | arrow.Int32\n | arrow.Uint8\n | arrow.Uint16\n | arrow.Uint32;\n\n/** Controls whether Arrow schema conversion uses variable-width view types. */\nexport type ArrowViewTypeMode = 'never' | 'prefer' | 'require';\n\n/** Options for converting loaders.gl schemas to Apache Arrow schemas. */\nexport type ArrowSchemaConversionOptions = {\n /** Selects standard types, supported view types with fallback, or required view types. */\n viewTypes?: ArrowViewTypeMode;\n};\n\n/** Runtime support for optional Apache Arrow variable-width view types. */\nexport type ArrowViewTypeSupport = {\n /** Whether the installed Apache Arrow exports `BinaryView`. */\n binaryView: boolean;\n /** Whether the installed Apache Arrow exports `Utf8View`. */\n utf8View: boolean;\n};\n\ntype ArrowDataTypeConstructor = new () => arrow.DataType;\ntype ArrowLargeListConstructor = new (field: arrow.Field) => arrow.DataType;\ntype OptionalArrowConstructors = {\n BinaryView?: ArrowDataTypeConstructor;\n LargeList?: ArrowLargeListConstructor;\n Utf8View?: ArrowDataTypeConstructor;\n};\ntype OptionalArrowViewGuards = {\n isBinaryView?: (value: unknown) => boolean;\n isUtf8View?: (value: unknown) => boolean;\n};\n\n/** Returns the variable-width view types exported by the installed Apache Arrow runtime. */\nexport function getArrowViewTypeSupport(): ArrowViewTypeSupport {\n return {\n binaryView: typeof getOptionalArrowConstructor('BinaryView') === 'function',\n utf8View: typeof getOptionalArrowConstructor('Utf8View') === 'function'\n };\n}\n\n/** Convert Apache Arrow Schema (class instance) to a serialized Schema (plain data) */\nexport function convertArrowToSchema(arrowSchema: arrow.Schema): Schema {\n return serializeArrowSchema(arrowSchema);\n}\n\n/** Convert Apache Arrow Schema (class instance) to a serialized Schema (plain data) */\nexport function convertSchemaToArrow(\n schema: Schema,\n options?: ArrowSchemaConversionOptions\n): arrow.Schema {\n return deserializeArrowSchema(schema, options);\n}\n\n/** Convert Apache Arrow Schema (class instance) to a serialized Schema (plain data) */\nexport function serializeArrowSchema(arrowSchema: arrow.Schema): Schema {\n return {\n fields: arrowSchema.fields.map(arrowField => serializeArrowField(arrowField)),\n metadata: serializeArrowMetadata(arrowSchema.metadata)\n };\n}\n\n/** Convert a serialized Schema (plain data) to an Apache Arrow Schema (class instance) */\nexport function deserializeArrowSchema(\n schema: Schema,\n options?: ArrowSchemaConversionOptions\n): arrow.Schema {\n return new arrow.Schema(\n schema.fields.map(field => deserializeArrowField(field, options)),\n deserializeArrowMetadata(schema.metadata)\n );\n}\n\n/** Convert Apache Arrow Schema metadata (Map<string, string>) to serialized metadata (Record<string, string> */\nexport function serializeArrowMetadata(arrowMetadata: Map<string, string>): SchemaMetadata {\n return Object.fromEntries(arrowMetadata);\n}\n\n/** Convert serialized metadata (Record<string, string> to Apache Arrow Schema metadata (Map<string, string>) to */\nexport function deserializeArrowMetadata(metadata?: SchemaMetadata): Map<string, string> {\n return metadata ? new Map(Object.entries(metadata)) : new Map<string, string>();\n}\n\n/** Convert Apache Arrow Field (class instance) to serialized Field (plain data) */\nexport function serializeArrowField(field: arrow.Field): Field {\n return {\n name: field.name,\n type: serializeArrowType(field.type),\n nullable: field.nullable,\n metadata: serializeArrowMetadata(field.metadata)\n };\n}\n\n/** Convert a serialized Field (plain data) to an Apache Arrow Field (class instance)*/\nexport function deserializeArrowField(\n field: Field,\n options?: ArrowSchemaConversionOptions\n): arrow.Field {\n return new arrow.Field(\n field.name,\n deserializeArrowType(field.type, options),\n field.nullable,\n deserializeArrowMetadata(field.metadata)\n );\n}\n\n/** Converts a serializable loaders.gl data type to hydrated arrow data type */\n// eslint-disable-next-line complexity\nexport function serializeArrowType(arrowType: arrow.DataType): DataType {\n if (isArrowViewType(arrowType, 'BinaryView')) {\n return 'binary-view';\n }\n if (isArrowViewType(arrowType, 'Utf8View')) {\n return 'utf8-view';\n }\n if (isOptionalArrowType(arrowType, 'LargeList')) {\n const largeListType = arrowType as arrow.DataType & {valueField: arrow.Field};\n return {\n type: 'large-list',\n children: [serializeArrowField(largeListType.valueField)]\n };\n }\n\n switch (arrowType.constructor) {\n case arrow.Null:\n return 'null';\n case arrow.Binary:\n return 'binary';\n case arrow.FixedSizeBinary:\n return {\n type: 'fixed-size-binary',\n byteWidth: (arrowType as arrow.FixedSizeBinary).byteWidth\n };\n case arrow.Bool:\n return 'bool';\n case arrow.Int:\n const intType = arrowType as arrow.Int;\n return `${intType.isSigned ? '' : 'u'}int${intType.bitWidth}`;\n case arrow.Int8:\n return 'int8';\n case arrow.Int16:\n return 'int16';\n case arrow.Int32:\n return 'int32';\n case arrow.Int64:\n return 'int64';\n case arrow.Uint8:\n return 'uint8';\n case arrow.Uint16:\n return 'uint16';\n case arrow.Uint32:\n return 'uint32';\n case arrow.Uint64:\n return 'uint64';\n case arrow.Float:\n const precision = (arrowType as arrow.Float).precision;\n // return `float(precision + 1) * 16`;\n switch (precision) {\n case arrow.Precision.HALF:\n return 'float16';\n case arrow.Precision.SINGLE:\n return 'float32';\n case arrow.Precision.DOUBLE:\n return 'float64';\n default:\n return 'float16';\n }\n case arrow.Float16:\n return 'float16';\n case arrow.Float32:\n return 'float32';\n case arrow.Float64:\n return 'float64';\n case arrow.Utf8:\n return 'utf8';\n case arrow.Decimal:\n const decimal = arrowType as arrow.Decimal;\n return {\n type: 'decimal',\n bitWidth: decimal.bitWidth,\n precision: decimal.precision,\n scale: decimal.scale\n };\n case arrow.Date_:\n const dateUnit = (arrowType as arrow.Date_).unit;\n return dateUnit === arrow.DateUnit.DAY ? 'date-day' : 'date-millisecond';\n case arrow.DateDay:\n return 'date-day';\n case arrow.DateMillisecond:\n return 'date-millisecond';\n case arrow.Time:\n const timeUnit = (arrowType as arrow.Time).unit;\n switch (timeUnit) {\n case arrow.TimeUnit.SECOND:\n return 'time-second';\n case arrow.TimeUnit.MILLISECOND:\n return 'time-millisecond';\n case arrow.TimeUnit.MICROSECOND:\n return 'time-microsecond';\n case arrow.TimeUnit.NANOSECOND:\n return 'time-nanosecond';\n default:\n return 'time-second';\n }\n case arrow.TimeMillisecond:\n return 'time-millisecond';\n case arrow.TimeSecond:\n return 'time-second';\n case arrow.TimeMicrosecond:\n return 'time-microsecond';\n case arrow.TimeNanosecond:\n return 'time-nanosecond';\n case arrow.Timestamp:\n const timeStampUnit = (arrowType as arrow.Timestamp).unit;\n switch (timeStampUnit) {\n case arrow.TimeUnit.SECOND:\n return 'timestamp-second';\n case arrow.TimeUnit.MILLISECOND:\n return 'timestamp-millisecond';\n case arrow.TimeUnit.MICROSECOND:\n return 'timestamp-microsecond';\n case arrow.TimeUnit.NANOSECOND:\n return 'timestamp-nanosecond';\n default:\n return 'timestamp-second';\n }\n case arrow.TimestampSecond:\n return 'timestamp-second';\n case arrow.TimestampMillisecond:\n return 'timestamp-millisecond';\n case arrow.TimestampMicrosecond:\n return 'timestamp-microsecond';\n case arrow.TimestampNanosecond:\n return 'timestamp-nanosecond';\n case arrow.Interval:\n const intervalUnit = (arrowType as arrow.Interval).unit;\n switch (intervalUnit) {\n case arrow.IntervalUnit.DAY_TIME:\n return 'interval-daytime';\n case arrow.IntervalUnit.YEAR_MONTH:\n return 'interval-yearmonth';\n default:\n return 'interval-daytime';\n }\n case arrow.IntervalDayTime:\n return 'interval-daytime';\n case arrow.IntervalYearMonth:\n return 'interval-yearmonth';\n case arrow.Map_:\n const mapType = arrowType as arrow.Map_;\n return {\n type: 'map',\n keysSorted: mapType.keysSorted,\n children: mapType.children.map(arrowField => serializeArrowField(arrowField))\n };\n case arrow.List:\n const listType = arrowType as arrow.List;\n const listField = listType.valueField;\n return {\n type: 'list',\n children: [serializeArrowField(listField)]\n };\n case arrow.FixedSizeList:\n const fixedSizeList = arrowType as arrow.FixedSizeList;\n return {\n type: 'fixed-size-list',\n listSize: fixedSizeList.listSize,\n children: [serializeArrowField(fixedSizeList.children[0])]\n };\n case arrow.Struct:\n const structType = arrowType as arrow.Struct;\n return {\n type: 'struct',\n children: structType.children.map(arrowField => serializeArrowField(arrowField))\n };\n case arrow.SparseUnion:\n case arrow.DenseUnion:\n const unionType = arrowType as arrow.SparseUnion | arrow.DenseUnion;\n return {\n type: unionType instanceof arrow.DenseUnion ? 'dense-union' : 'sparse-union',\n typeIds: unionType.typeIds,\n children: unionType.children.map(arrowField => serializeArrowField(arrowField)),\n typeIdToChildIndex: {...unionType.typeIdToChildIndex}\n };\n case arrow.Dictionary:\n const dictionaryType = arrowType as arrow.Dictionary;\n return {\n type: 'dictionary',\n id: dictionaryType.id,\n indices: serializeArrowDictionaryKeyType(dictionaryType.indices),\n dictionary: serializeArrowType(dictionaryType.dictionary),\n isOrdered: dictionaryType.isOrdered\n };\n default:\n throw new Error(`arrow type not supported: ${arrowType.constructor.name}`);\n }\n}\n\n/** Converts a serializable loaders.gl data type to hydrated arrow data type */\n// eslint-disable-next-line complexity\nexport function deserializeArrowType(\n dataType: DataType,\n options?: ArrowSchemaConversionOptions\n): arrow.DataType {\n if (typeof dataType === 'object') {\n switch (dataType.type) {\n case 'decimal':\n return new arrow.Decimal(dataType.scale, dataType.precision, dataType.bitWidth);\n case 'map': {\n const children = dataType.children.map(arrowField =>\n deserializeArrowField(arrowField, options)\n );\n // Apache Arrow's Map_ constructor takes one entries struct field, not\n // an array of fields (the serialized schema stores that field in the\n // one-element children array).\n return new arrow.Map_(children[0] as any, dataType.keysSorted);\n }\n case 'list': {\n const field = deserializeArrowField(dataType.children[0], options);\n return new arrow.List(field);\n }\n case 'large-list': {\n const field = deserializeArrowField(dataType.children[0], options);\n const LargeList = getOptionalArrowConstructor('LargeList');\n if (!LargeList) {\n throw new Error(\n 'LargeList requires an Apache Arrow runtime that exports the LargeList constructor'\n );\n }\n return new LargeList(field);\n }\n case 'fixed-size-list': {\n const child = deserializeArrowField(dataType.children[0], options);\n return new arrow.FixedSizeList(dataType.listSize, child);\n }\n case 'fixed-size-binary':\n return new arrow.FixedSizeBinary(dataType.byteWidth);\n case 'struct': {\n const children = dataType.children.map(arrowField =>\n deserializeArrowField(arrowField, options)\n );\n return new arrow.Struct(children);\n }\n case 'sparse-union':\n case 'dense-union': {\n const children = dataType.children.map(arrowField =>\n deserializeArrowField(arrowField, options)\n );\n return dataType.type === 'dense-union'\n ? new arrow.DenseUnion(dataType.typeIds, children)\n : new arrow.SparseUnion(dataType.typeIds, children);\n }\n case 'dictionary': {\n return new arrow.Dictionary(\n deserializeArrowType(dataType.dictionary, options),\n deserializeArrowDictionaryKeyType(dataType.indices),\n dataType.id,\n dataType.isOrdered\n );\n }\n default:\n throw new Error('array type not supported');\n }\n }\n\n switch (dataType) {\n case 'null':\n return new arrow.Null();\n case 'binary':\n return makeVariableWidthArrowType('BinaryView', new arrow.Binary(), options);\n case 'binary-view':\n return makeRequiredArrowViewType('BinaryView');\n case 'bool':\n return new arrow.Bool();\n case 'int8':\n return new arrow.Int8();\n case 'int16':\n return new arrow.Int16();\n case 'int32':\n return new arrow.Int32();\n case 'int64':\n return new arrow.Int64();\n case 'uint8':\n return new arrow.Uint8();\n case 'uint16':\n return new arrow.Uint16();\n case 'uint32':\n return new arrow.Uint32();\n case 'uint64':\n return new arrow.Uint64();\n case 'float16':\n return new arrow.Float16();\n case 'float32':\n return new arrow.Float32();\n case 'float64':\n return new arrow.Float64();\n case 'utf8':\n return makeVariableWidthArrowType('Utf8View', new arrow.Utf8(), options);\n case 'utf8-view':\n return makeRequiredArrowViewType('Utf8View');\n case 'date-day':\n return new arrow.DateDay();\n case 'date-millisecond':\n return new arrow.DateMillisecond();\n case 'time-second':\n return new arrow.TimeSecond();\n case 'time-millisecond':\n return new arrow.TimeMillisecond();\n case 'time-microsecond':\n return new arrow.TimeMicrosecond();\n case 'time-nanosecond':\n return new arrow.TimeNanosecond();\n case 'timestamp-second':\n return new arrow.TimestampSecond();\n case 'timestamp-millisecond':\n return new arrow.TimestampMillisecond();\n case 'timestamp-microsecond':\n return new arrow.TimestampMicrosecond();\n case 'timestamp-nanosecond':\n return new arrow.TimestampNanosecond();\n case 'interval-daytime':\n return new arrow.IntervalDayTime();\n case 'interval-yearmonth':\n return new arrow.IntervalYearMonth();\n default:\n throw new Error('array type not supported');\n }\n}\n\nfunction getOptionalArrowConstructor<TypeName extends keyof OptionalArrowConstructors>(\n typeName: TypeName\n): OptionalArrowConstructors[TypeName] {\n return (arrow as unknown as OptionalArrowConstructors)[typeName];\n}\n\nfunction isArrowViewType(\n arrowType: arrow.DataType,\n viewTypeName: 'BinaryView' | 'Utf8View'\n): boolean {\n const constructor = getOptionalArrowConstructor(viewTypeName);\n if (constructor && arrowType instanceof constructor) {\n return true;\n }\n\n const guards = arrow.DataType as unknown as OptionalArrowViewGuards;\n const guard = viewTypeName === 'BinaryView' ? guards.isBinaryView : guards.isUtf8View;\n return Boolean(guard?.(arrowType));\n}\n\nfunction isOptionalArrowType(\n arrowType: arrow.DataType,\n typeName: keyof OptionalArrowConstructors\n): boolean {\n const constructor = getOptionalArrowConstructor(typeName);\n return Boolean(constructor && arrowType instanceof constructor);\n}\n\nfunction makeVariableWidthArrowType(\n viewTypeName: 'BinaryView' | 'Utf8View',\n fallbackType: arrow.DataType,\n options?: ArrowSchemaConversionOptions\n): arrow.DataType {\n const viewTypeMode = options?.viewTypes || 'never';\n if (viewTypeMode === 'never') {\n return fallbackType;\n }\n\n const constructor = getOptionalArrowConstructor(viewTypeName);\n if (constructor) {\n return new constructor();\n }\n if (viewTypeMode === 'require') {\n throw new Error(\n `${viewTypeName} requires apache-arrow 21.2.0 or later; the installed runtime does not support it`\n );\n }\n return fallbackType;\n}\n\nfunction makeRequiredArrowViewType(viewTypeName: 'BinaryView' | 'Utf8View'): arrow.DataType {\n const constructor = getOptionalArrowConstructor(viewTypeName);\n if (!constructor) {\n throw new Error(\n `${viewTypeName} requires apache-arrow 21.2.0 or later; the installed runtime does not support it`\n );\n }\n return new constructor();\n}\n\n/** Converts Arrow dictionary index types to serializable schema key types. */\nfunction serializeArrowDictionaryKeyType(arrowType: arrow.DataType): KeyType {\n if (arrowType instanceof arrow.Int) {\n const prefix = arrowType.isSigned ? 'int' : 'uint';\n const keyType = `${prefix}${arrowType.bitWidth}`;\n if (isSchemaDictionaryKeyType(keyType)) {\n return keyType;\n }\n }\n\n switch (arrowType.constructor) {\n case arrow.Int8:\n return 'int8';\n case arrow.Int16:\n return 'int16';\n case arrow.Int32:\n return 'int32';\n case arrow.Uint8:\n return 'uint8';\n case arrow.Uint16:\n return 'uint16';\n case arrow.Uint32:\n return 'uint32';\n default:\n throw new Error(`arrow dictionary index type not supported: ${arrowType.constructor.name}`);\n }\n}\n\n/** Checks whether a string is a supported serialized dictionary key type. */\nfunction isSchemaDictionaryKeyType(keyType: string): keyType is KeyType {\n return ['int8', 'int16', 'int32', 'uint8', 'uint16', 'uint32'].includes(keyType);\n}\n\n/** Converts serializable schema dictionary key types to Arrow index types. */\nfunction deserializeArrowDictionaryKeyType(keyType: KeyType): ArrowDictionaryKeyType {\n switch (keyType) {\n case 'int8':\n return new arrow.Int8();\n case 'int16':\n return new arrow.Int16();\n case 'int32':\n return new arrow.Int32();\n case 'uint8':\n return new arrow.Uint8();\n case 'uint16':\n return new arrow.Uint16();\n case 'uint32':\n return new arrow.Uint32();\n default:\n throw new Error(`schema dictionary index type not supported: ${keyType}`);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Mesh category utilities\n// TODO - move to mesh category module, or to math.gl/geometry module\nimport {MeshAttributes} from '@loaders.gl/core/schema';\nimport {TypedArray} from '../../types/types';\n\ntype TypedArrays = {[key: string]: TypedArray};\n\n/**\n * Holds an axis aligned bounding box\n * TODO - make sure AxisAlignedBoundingBox in math.gl/culling understands this format (or change this format)\n */\ntype BoundingBox = [[number, number, number], [number, number, number]];\n\n/**\n * Get number of vertices in mesh\n * @param attributes\n */\nexport function getMeshSize(attributes: TypedArrays): number {\n let size = 0;\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n if (ArrayBuffer.isView(attribute)) {\n // @ts-ignore DataView doesn't have BYTES_PER_ELEMENT\n size += attribute.byteLength * attribute.BYTES_PER_ELEMENT;\n }\n }\n return size;\n}\n\n/**\n * Get the (axis aligned) bounding box of a mesh\n * @param attributes\n * @returns array of two vectors representing the axis aligned bounding box\n */\n// eslint-disable-next-line complexity\nexport function getMeshBoundingBox(attributes: MeshAttributes | null): BoundingBox | null {\n const positionAttribute = attributes?.POSITION;\n if (!positionAttribute || !('value' in positionAttribute) || !positionAttribute.value.length) {\n return null;\n }\n\n let minX = Infinity;\n let minY = Infinity;\n let minZ = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let maxZ = -Infinity;\n\n const positions = positionAttribute.value;\n const len = positions.length;\n\n for (let i = 0; i < len; i += 3) {\n const x = positions[i];\n const y = positions[i + 1];\n const z = positions[i + 2];\n\n minX = x < minX ? x : minX;\n minY = y < minY ? y : minY;\n minZ = z < minZ ? z : minZ;\n\n maxX = x > maxX ? x : maxX;\n maxY = y > maxY ? y : maxY;\n maxZ = z > maxZ ? z : maxZ;\n }\n return [\n [minX, minY, minZ],\n [maxX, maxY, maxZ]\n ];\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {getFloat16ArrayConstructor, NativeFloat16ArrayConstructor} from '@math.gl/core';\n\n/** Array storage used for logical Float16 values. */\nexport type Float16ArrayStorage = Float16Array | Uint16Array;\n\n/** Create native Float16 storage when the runtime supports it. */\nexport function createFloat16Array(length: number): Float16ArrayStorage {\n const ArrayConstructor = getFloat16ArrayConstructor();\n return new ArrayConstructor(length) as Float16ArrayStorage;\n}\n\n/** Check whether an array is backed by the native Float16Array implementation. */\nexport function isNativeFloat16Array(value: unknown): value is Float16Array {\n return Boolean(NativeFloat16ArrayConstructor && value instanceof NativeFloat16ArrayConstructor);\n}\n\n/** Write a numeric value into native or binary16 fallback storage. */\nexport function setFloat16Value(array: Float16ArrayStorage, index: number, value: number): void {\n if (isNativeFloat16Array(array)) {\n array[index] = value;\n } else {\n array[index] = encodeFloat16(value);\n }\n}\n\n/** Read a numeric value from native or binary16 fallback storage. */\nexport function getFloat16Value(array: Float16ArrayStorage, index: number): number {\n if (isNativeFloat16Array(array)) {\n return array[index];\n }\n return decodeFloat16(array[index]);\n}\n\n/** Return the binary16 words used by Apache Arrow and GPU APIs. */\nexport function getFloat16Storage(array: Float16ArrayStorage): Uint16Array {\n return isNativeFloat16Array(array)\n ? new Uint16Array(array.buffer, array.byteOffset, array.length)\n : array;\n}\n\n/** Convert byte- or word-scaled color components to logical Float16 values. */\nexport function convertColorArrayToFloat16(\n values: ArrayLike<number>,\n sourceScale: number\n): Float16ArrayStorage {\n const result = createFloat16Array(values.length);\n for (let index = 0; index < values.length; index++) {\n setFloat16Value(result, index, values[index] / sourceScale);\n }\n return result;\n}\n\n/** Convert byte- or word-scaled color components to logical Float32 values. */\nexport function convertColorArrayToFloat32(\n values: ArrayLike<number>,\n sourceScale: number\n): Float32Array {\n return Float32Array.from(values, value => value / sourceScale);\n}\n\n/** Encode a JavaScript number as an IEEE-754 binary16 bit pattern. */\nexport function encodeFloat16(value: number): number {\n if (!Number.isFinite(value)) {\n return value === Infinity ? 0x7c00 : value === -Infinity ? 0xfc00 : 0x7e00;\n }\n\n const sign = value < 0 || Object.is(value, -0) ? 0x8000 : 0;\n const absoluteValue = Math.abs(value);\n if (absoluteValue === 0) {\n return sign;\n }\n\n // Values at or above the midpoint between the largest finite half and\n // infinity round to infinity using IEEE-754 round-to-nearest-even.\n if (absoluteValue >= 65520) {\n return sign | 0x7c00;\n }\n if (absoluteValue >= 65504) {\n return sign | 0x7bff;\n }\n\n const exponent = Math.floor(Math.log2(absoluteValue));\n if (exponent < -14) {\n return sign | Math.round(absoluteValue / 2 ** -24);\n }\n\n const normalizedExponent = exponent + 15;\n const mantissa = Math.round((absoluteValue / 2 ** exponent - 1) * 1024);\n if (mantissa === 1024) {\n return sign | ((normalizedExponent + 1) << 10);\n }\n return sign | (normalizedExponent << 10) | mantissa;\n}\n\n/** Decode an IEEE-754 binary16 bit pattern. */\nfunction decodeFloat16(value: number): number {\n const sign = value & 0x8000 ? -1 : 1;\n const exponent = (value >> 10) & 0x1f;\n const mantissa = value & 0x3ff;\n if (exponent === 0) {\n return sign * mantissa * 2 ** -24;\n }\n if (exponent === 0x1f) {\n return mantissa ? NaN : sign * Infinity;\n }\n return sign * (1 + mantissa / 1024) * 2 ** (exponent - 15);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n BigTypedArray,\n DataType,\n getFloat16Storage,\n isNativeFloat16Array\n} from '@loaders.gl/core/schema';\nimport * as arrow from 'apache-arrow';\nimport {getDataTypeFromArray} from '../schema/data-type';\nimport {deserializeArrowType} from '../schema/convert-arrow-schema';\n\nexport function isFixedSizeList(vector: arrow.Vector): vector is arrow.Vector<arrow.FixedSizeList> {\n return vector.type instanceof arrow.FixedSizeList;\n}\n\nexport function getFixedSizeListSize(vector: arrow.Vector): number {\n return vector.type instanceof arrow.FixedSizeList ? vector.type.listSize : 1;\n}\n\n/** Get Arrow FixedSizeList vector from a typed array */\nexport function getFixedSizeListVector(\n typedArray: BigTypedArray,\n stride: number,\n logicalType?: DataType\n): arrow.Vector<arrow.FixedSizeList> {\n const data = getFixedSizeListData(typedArray, stride, logicalType);\n return new arrow.Vector<arrow.FixedSizeList>([data]);\n}\n\n/** Get Arrow FixedSizeList vector from a typed array */\nexport function getFixedSizeListData(\n typedArray: BigTypedArray,\n stride: number,\n logicalType?: DataType\n): arrow.Data<arrow.FixedSizeList> {\n const listType = getFixedSizeListType(typedArray, stride, logicalType);\n const nestedType = listType.children[0].type;\n const storage =\n logicalType === 'float16' && isNativeFloat16Array(typedArray)\n ? getFloat16Storage(typedArray)\n : typedArray;\n const buffers: Partial<Record<arrow.BufferType, any>> = {\n // valueOffsets: undefined,\n [arrow.BufferType.DATA]: storage // values\n // nullBitmap: undefined,\n // typeIds: undefined\n };\n\n // Note: The contiguous array of data is held by the nested \"primitive type\" column\n const nestedData = new arrow.Data(nestedType, 0, storage.length, 0, buffers);\n\n // Wrapped in a FixedSizeList column that provides a \"strided\" view of the data\n const data = new arrow.Data<arrow.FixedSizeList>(\n listType,\n 0,\n storage.length / stride,\n 0,\n undefined,\n [nestedData]\n );\n\n return data;\n}\n\n/** Get Arrow FixedSizeList vector from a typed array */\nexport function getFixedSizeListType(\n typedArray: BigTypedArray,\n stride: number,\n logicalType?: DataType\n): arrow.FixedSizeList {\n const type = logicalType || getDataTypeFromArray(typedArray).type;\n const arrowType = deserializeArrowType(type);\n const listType = new arrow.FixedSizeList(stride, new arrow.Field('value', arrowType, false));\n return listType;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {createFloat16Array, getFloat16Value, setFloat16Value} from '@loaders.gl/core/schema';\nimport type {Mesh, MeshAttribute, ColumnarTable, ArrowTable, Schema} from '@loaders.gl/core/schema';\nimport * as arrow from 'apache-arrow';\nimport {getFixedSizeListSize} from '../arrow-utils/arrow-fixed-size-list-utils';\nimport {serializeArrowSchema} from '../schema/convert-arrow-schema';\nimport {getMeshBoundingBox} from './mesh-utils';\n\n/**\n * Convert a table to a mesh.\n * @param table Table to convert.\n * @returns Mesh reconstructed from the table.\n */\nexport function convertTableToMesh(table: ColumnarTable | ArrowTable): Mesh {\n switch (table.shape) {\n // case 'columnar-table':\n // return convertColumnarTableToMesh(table);\n case 'arrow-table':\n return convertArrowTableToMesh(table);\n default:\n throw new Error(table.shape);\n }\n}\n\n/**\n * Convert an Apache Arrow mesh table to a loaders.gl Mesh.\n * @param table Arrow table wrapper to convert.\n * @returns Mesh reconstructed from the Arrow table.\n */\nexport function convertArrowTableToMesh(table: ArrowTable): Mesh {\n const arrowTable = table.data;\n\n const schema = serializeArrowSchema(arrowTable.schema);\n const fields = schema.fields;\n\n const attributes: Mesh['attributes'] = {};\n const columns: {name: string; data: readonly arrow.Data[]}[] = [];\n for (const field of fields) {\n const {name} = field;\n if (name === 'indices') {\n continue;\n }\n const attributeData = arrowTable.getChild(name)!;\n const size = getFixedSizeListSize(attributeData);\n const typedArray = getAttributeTypedArray(attributeData, size);\n const metadata = getMeshAttributeMetadata(field.metadata);\n const value =\n metadata.componentType === 'float16' ? restoreFloat16Array(typedArray) : typedArray;\n // Preserve exact physical-storage aliases across column copies without merging equal values.\n const shared = columns.find(\n column =>\n column.data.length === attributeData.data.length &&\n attributes[column.name].value.constructor === value.constructor &&\n column.data.every((chunk, index) => shareArrowStorage(chunk, attributeData.data[index]))\n );\n attributes[name] = {\n value: shared ? attributes[shared.name].value : value,\n size,\n ...metadata\n };\n if (!shared) columns.push({name, data: attributeData.data});\n }\n\n fixMetadata(schema);\n const topology = schema.metadata.topology as any;\n const mode = getMeshMode(schema);\n const indices = getIndices(arrowTable);\n const boundingBox =\n attributes.POSITION?.transform?.type === 'quantization'\n ? getMeshBoundingBoxFromSchema(schema) || getMeshBoundingBox(attributes)\n : getMeshBoundingBox(attributes);\n\n return {\n schema,\n attributes,\n topology,\n mode,\n indices,\n header: {\n vertexCount: arrowTable.numRows,\n boundingBox: boundingBox ?? undefined\n }\n };\n}\n\n/** Restores a serialized logical bounding box when one is available. */\nfunction getMeshBoundingBoxFromSchema(\n schema: Schema\n): [[number, number, number], [number, number, number]] | null {\n const serializedBoundingBox = schema.metadata?.boundingBox;\n if (!serializedBoundingBox) {\n return null;\n }\n try {\n const boundingBox = JSON.parse(serializedBoundingBox);\n if (\n Array.isArray(boundingBox) &&\n boundingBox.length === 2 &&\n boundingBox.every(\n (corner: unknown) =>\n Array.isArray(corner) &&\n corner.length === 3 &&\n corner.every(value => typeof value === 'number')\n )\n ) {\n return boundingBox as [[number, number, number], [number, number, number]];\n }\n } catch {\n // Ignore malformed optional metadata and recompute from decoded values.\n }\n return null;\n}\n\n/** Restores Mesh attribute properties serialized into Arrow field metadata. */\nfunction getMeshAttributeMetadata(metadata: Record<string, string> = {}): Partial<MeshAttribute> {\n const result: Partial<MeshAttribute> = {};\n if (metadata.byteOffset !== undefined) {\n result.byteOffset = Number(metadata.byteOffset);\n }\n if (metadata.byteStride !== undefined) {\n result.byteStride = Number(metadata.byteStride);\n }\n if (metadata.normalized !== undefined) {\n result.normalized = metadata.normalized === 'true';\n }\n if (metadata.componentType === 'float16') {\n result.componentType = 'float16';\n }\n if (metadata['loaders.gl.transform']) {\n try {\n const transform = JSON.parse(metadata['loaders.gl.transform']);\n if (isMeshAttributeTransform(transform)) {\n result.transform = transform;\n }\n } catch {\n // Ignore malformed optional metadata and preserve the decoded values.\n }\n }\n return result;\n}\n\n/** Validates the compact transform representation stored in Arrow metadata. */\nfunction isMeshAttributeTransform(value: unknown): value is MeshAttribute['transform'] {\n if (!value || typeof value !== 'object' || !('type' in value)) {\n return false;\n }\n const transform = value as Record<string, unknown>;\n if (transform.type === 'octahedron') {\n return (\n Number.isInteger(transform.bits) &&\n (transform.bits as number) >= 1 &&\n (transform.bits as number) <= 30\n );\n }\n return (\n transform.type === 'quantization' &&\n Number.isInteger(transform.bits) &&\n (transform.bits as number) >= 1 &&\n (transform.bits as number) <= 30 &&\n Array.isArray(transform.origin) &&\n transform.origin.every((component: unknown) => typeof component === 'number') &&\n typeof transform.range === 'number'\n );\n}\n\n/** Ensure required mesh metadata defaults are present on a schema. */\nfunction fixMetadata(schema: Schema) {\n schema.metadata ||= {};\n schema.metadata.topology ||= 'point-list';\n schema.metadata.mode ||= '0';\n}\n\n/** Return a typed attribute array from an Arrow attribute column. */\nfunction getAttributeTypedArray(attributeData: arrow.Vector, size: number): any {\n if (!(attributeData.type instanceof arrow.FixedSizeList)) {\n return attributeData.toArray();\n }\n\n const values = attributeData.data[0].children[0].values;\n const TypedArrayConstructor = values.constructor as any;\n const typedArray = new TypedArrayConstructor(attributeData.length * size);\n let targetOffset = 0;\n\n for (const data of attributeData.data) {\n const child = data.children[0];\n const sourceLength = data.length * size;\n const sourceOffset = child.offset || data.offset * size;\n // Arrow chunks can either slice child values eagerly or retain offsets into the source buffer.\n const sourceStart = sourceOffset + sourceLength <= child.values.length ? sourceOffset : 0;\n const source = child.values.subarray(sourceStart, sourceStart + sourceLength);\n typedArray.set(source, targetOffset);\n targetOffset += sourceLength;\n }\n\n return typedArray;\n}\n\n/** Restore native Float16 storage when the runtime supports it. */\nfunction restoreFloat16Array(typedArray: any): Float16Array | Uint16Array {\n const result = createFloat16Array(typedArray.length);\n for (let index = 0; index < typedArray.length; index++) {\n setFloat16Value(result, index, getFloat16Value(typedArray, index));\n }\n return result;\n}\n\n/** Return the mesh drawing mode stored in Arrow schema metadata. */\nfunction getMeshMode(schema: Schema): number {\n const mode = Number(schema.metadata?.mode);\n return Number.isFinite(mode) ? mode : 0;\n}\n\n/** Return top-level mesh indices from the predefined IndexedMesh Arrow column. */\nfunction getIndices(arrowTable: arrow.Table): Mesh['indices'] | undefined {\n const indicesColumn = arrowTable.getChild('indices');\n if (!indicesColumn?.isValid(0)) {\n return undefined;\n }\n\n const indicesData = indicesColumn.data[0];\n const valueOffsets = indicesData.valueOffsets;\n const start = valueOffsets[indicesData.offset];\n const end = valueOffsets[indicesData.offset + 1];\n const values = indicesData.children[0].values.subarray(start, end);\n\n return {value: values, size: 1};\n}\n\n/** Checks complete Arrow chunk regions, including child buffers and validity/offset metadata. */\nfunction shareArrowStorage(left: arrow.Data, right: arrow.Data): boolean {\n const rightBuffers = Object.values(right.buffers);\n return (\n left.type.toString() === right.type.toString() &&\n left.offset === right.offset &&\n left.length === right.length &&\n left.nullCount === right.nullCount &&\n left.dictionary === right.dictionary &&\n Object.values(left.buffers).every((buffer, index) => {\n const other = rightBuffers[index];\n return (\n buffer === other ||\n Boolean(\n buffer &&\n other &&\n buffer.buffer === other.buffer &&\n buffer.byteOffset === other.byteOffset &&\n buffer.byteLength === other.byteLength\n )\n );\n }) &&\n left.children.length === right.children.length &&\n left.children.every((child, index) => shareArrowStorage(child, right.children[index]))\n );\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase */\n// This code is inspired by example code in the DRACO repository\nimport type {\n Draco3D,\n DracoInt8Array,\n Encoder,\n ExpertEncoder,\n Mesh,\n MeshBuilder,\n PointCloud,\n Metadata,\n MetadataBuilder,\n draco_GeometryAttribute_Type\n} from '../draco3d/draco3d-types';\n\nimport type {MeshAttribute, TypedArray} from '@loaders.gl/core/schema';\n\n/** Geometry accepted by the low-level Draco encoder. */\nexport type DracoBuilderMesh = {\n /** Vertex attributes keyed by semantic or application attribute name. */\n attributes: Record<string, TypedArray | MeshAttribute>;\n /** Optional triangle indices. */\n indices?: TypedArray | MeshAttribute;\n};\n\n/** Metadata values supported by the Draco WebAssembly API. */\nexport type DracoMetadata = Record<string, string | number | Int32Array>;\n\n/** Draco mesh encoding method exposed by the WebAssembly encoder. */\nexport type DracoEncodingMethod = 'MESH_EDGEBREAKER_ENCODING' | 'MESH_SEQUENTIAL_ENCODING';\n\n/** Draco attribute categories used to select compression transforms. */\nexport type DracoAttributeType = 'POSITION' | 'NORMAL' | 'COLOR' | 'TEX_COORD' | 'GENERIC';\n\n/** Explicit quantization transform for one Draco attribute. */\nexport type DracoExplicitQuantization = {\n /** Number of quantization bits, from 1 through 30. */\n bits: number;\n /** Quantization origin, with one finite value per attribute component. */\n origin: number[];\n /** Positive finite quantization range shared by every component. */\n range: number;\n};\n\n/** Per-attribute quantization, expressed as a bit count or an explicit transform. */\nexport type DracoAttributeQuantization = number | DracoExplicitQuantization;\n\n/** Named compression profile for common glTF and GPU workloads. */\nexport type DracoEncodingPreset = 'gltf' | 'webgpu' | 'balanced';\n\n/** Per-attribute details captured after constructing a Draco geometry. */\nexport type DracoEncodingAttributeReport = {\n /** Unique attribute identifier stored in the Draco geometry. */\n id: number;\n /** Draco compression category. */\n type: DracoAttributeType;\n /** Number of scalar components per attribute value. */\n componentCount: number;\n /** Configured quantization, omitted when Draco defaults are used. */\n quantization?: DracoAttributeQuantization;\n};\n\n/** Diagnostics reported for one completed Draco encoding. */\nexport type DracoEncodingReport = {\n /** Encoded geometry kind. */\n geometryType: 'mesh' | 'point-cloud';\n /** Encoded output size in bytes. */\n byteLength: number;\n /** Point count reported by the native encoder. */\n pointCount: number;\n /** Face count reported by the native encoder. */\n faceCount: number;\n /** Number of encoded vertex attributes. */\n attributeCount: number;\n /** Explicit encoding method, omitted when Draco selects its default. */\n method?: DracoEncodingMethod;\n /** Explicit encoder speed settings, omitted when Draco selects its defaults. */\n speed?: [number, number];\n /** Encoded attributes keyed by application attribute name. */\n attributes: Record<string, DracoEncodingAttributeReport>;\n};\n\n/** Encoded Draco bytes and diagnostics from the same native operation. */\nexport type DracoEncodingResult = {\n /** Encoded Draco bytes. */\n data: ArrayBuffer;\n /** Encoding diagnostics. */\n report: DracoEncodingReport;\n};\n\nexport type DracoBuildOptions = {\n pointcloud?: boolean;\n /** Deduplicate identical point-cloud attribute tuples before encoding. */\n deduplicateValues?: boolean;\n /** Metadata key used to preserve application attribute names. */\n attributeNameEntry?: string;\n /** Explicit Draco attribute categories keyed by application attribute name. */\n attributeTypes?: Record<string, DracoAttributeType>;\n metadata?: DracoMetadata;\n attributesMetadata?: Record<string, DracoMetadata>;\n log?: (message: string) => void;\n\n // draco encoding options\n speed?: [number, number];\n method?: DracoEncodingMethod;\n /** Quantization bits keyed by Draco attribute category. */\n quantization?: Partial<Record<DracoAttributeType, number>>;\n /** Quantization keyed by application attribute name, overriding category settings. */\n attributeQuantization?: Record<string, DracoAttributeQuantization>;\n /** Applies a documented set of compression defaults before explicit options. */\n preset?: DracoEncodingPreset;\n};\n\ntype DracoBuilderAttributeInfo = {\n /** Unique attribute identifier assigned by Draco's geometry builder. */\n attributeId: number;\n /** Draco compression category for the attribute. */\n attributeType: draco_GeometryAttribute_Type;\n /** Public name of the Draco compression category. */\n attributeTypeName: DracoAttributeType;\n /** Number of scalar components in each attribute value. */\n componentCount: number;\n /** Whether Draco can apply a lossy quantization transform to the source values. */\n supportsQuantization: boolean;\n};\n\n// Native Draco attribute names to GLTF attribute names.\nconst GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP = {\n POSITION: 'POSITION',\n NORMAL: 'NORMAL',\n COLOR_0: 'COLOR',\n TEXCOORD_0: 'TEX_COORD'\n} as const satisfies Record<string, DracoAttributeType>;\n\nconst noop = () => {};\n\nexport default class DracoBuilder {\n draco: Draco3D;\n dracoEncoder: Encoder;\n dracoMeshBuilder: MeshBuilder;\n dracoMetadataBuilder: MetadataBuilder;\n log: (message: string) => void = noop;\n\n // draco - the draco decoder, either import `draco3d` or load dynamically\n constructor(draco: Draco3D) {\n this.draco = draco;\n this.dracoEncoder = new this.draco.Encoder();\n this.dracoMeshBuilder = new this.draco.MeshBuilder();\n this.dracoMetadataBuilder = new this.draco.MetadataBuilder();\n }\n\n destroy(): void {\n this.destroyEncodedObject(this.dracoMeshBuilder);\n this.destroyEncodedObject(this.dracoEncoder);\n this.destroyEncodedObject(this.dracoMetadataBuilder);\n }\n\n // TBD - when does this need to be called?\n destroyEncodedObject(object: unknown): void {\n if (object) {\n this.draco.destroy(object);\n }\n }\n\n /**\n * Encode mesh or point cloud\n * @param mesh =({})\n * @param options\n */\n encodeSync(mesh: DracoBuilderMesh, options: DracoBuildOptions = {}): ArrayBuffer {\n return this._encodeSync(mesh, options, false).data;\n }\n\n /** Encodes a mesh or point cloud and returns native encoding diagnostics. */\n encodeSyncWithReport(\n mesh: DracoBuilderMesh,\n options: DracoBuildOptions = {}\n ): DracoEncodingResult {\n return this._encodeSync(mesh, options, true);\n }\n\n /** Shared implementation for ordinary encoding and report-producing encoding. */\n _encodeSync(\n mesh: DracoBuilderMesh,\n options: DracoBuildOptions,\n trackEncodedProperties: boolean\n ): DracoEncodingResult {\n options = applyDracoEncodingPreset(options);\n this.log = options.log || noop;\n\n return options.pointcloud\n ? this._encodePointCloud(mesh, options, trackEncodedProperties)\n : this._encodeMesh(mesh, options, trackEncodedProperties);\n }\n\n // PRIVATE\n\n _getAttributesFromMesh(mesh: DracoBuilderMesh): Record<string, TypedArray | MeshAttribute> {\n return {\n ...(mesh.indices ? {indices: mesh.indices} : {}),\n ...mesh.attributes\n };\n }\n\n _encodePointCloud(\n pointcloud: DracoBuilderMesh,\n options: DracoBuildOptions,\n trackEncodedProperties: boolean\n ): DracoEncodingResult {\n const dracoPointCloud = new this.draco.PointCloud();\n const dracoData = new this.draco.DracoInt8Array();\n let expertEncoder: ExpertEncoder | null = null;\n\n try {\n if (options.metadata) {\n this._addGeometryMetadata(dracoPointCloud, options.metadata);\n }\n const attributes = this._getAttributesFromMesh(pointcloud);\n const attributeInfo = this._createDracoPointCloud(dracoPointCloud, attributes, options);\n const useExpertEncoder = hasAttributeQuantization(options);\n let encodedLen: number;\n let activeEncoder: Encoder | ExpertEncoder;\n if (useExpertEncoder) {\n expertEncoder = new this.draco.ExpertEncoder(dracoPointCloud);\n this._setExpertOptions(expertEncoder, attributeInfo, options);\n activeEncoder = expertEncoder;\n if (trackEncodedProperties) {\n activeEncoder.SetTrackEncodedProperties(true);\n }\n encodedLen = expertEncoder.EncodeToDracoBuffer(\n options.deduplicateValues ?? false,\n dracoData\n );\n } else {\n this._setOptions(options);\n activeEncoder = this.dracoEncoder;\n if (trackEncodedProperties) {\n activeEncoder.SetTrackEncodedProperties(true);\n }\n encodedLen = this.dracoEncoder.EncodePointCloudToDracoBuffer(\n dracoPointCloud,\n options.deduplicateValues ?? false,\n dracoData\n );\n }\n\n if (!(encodedLen > 0)) {\n throw new Error('Draco encoding failed.');\n }\n\n this.log(`DRACO encoded ${dracoPointCloud.num_points()} points\n with ${dracoPointCloud.num_attributes()} attributes into ${encodedLen} bytes`);\n\n const data = dracoInt8ArrayToArrayBuffer(dracoData);\n return {\n data,\n report: this._getEncodingReport(\n 'point-cloud',\n data.byteLength,\n dracoPointCloud,\n activeEncoder,\n attributeInfo,\n options,\n trackEncodedProperties\n )\n };\n } finally {\n this.destroyEncodedObject(expertEncoder);\n this.destroyEncodedObject(dracoData);\n this.destroyEncodedObject(dracoPointCloud);\n }\n }\n\n _encodeMesh(\n mesh: DracoBuilderMesh,\n options: DracoBuildOptions,\n trackEncodedProperties: boolean\n ): DracoEncodingResult {\n const dracoMesh = new this.draco.Mesh();\n const dracoData = new this.draco.DracoInt8Array();\n let expertEncoder: ExpertEncoder | null = null;\n\n try {\n if (options.metadata) {\n this._addGeometryMetadata(dracoMesh, options.metadata);\n }\n const attributes = this._getAttributesFromMesh(mesh);\n const attributeInfo = this._createDracoMesh(dracoMesh, attributes, options);\n const useExpertEncoder = hasAttributeQuantization(options);\n let encodedLen: number;\n let activeEncoder: Encoder | ExpertEncoder;\n if (useExpertEncoder) {\n expertEncoder = new this.draco.ExpertEncoder(dracoMesh);\n this._setExpertOptions(expertEncoder, attributeInfo, options);\n activeEncoder = expertEncoder;\n if (trackEncodedProperties) {\n activeEncoder.SetTrackEncodedProperties(true);\n }\n encodedLen = expertEncoder.EncodeToDracoBuffer(false, dracoData);\n } else {\n this._setOptions(options);\n activeEncoder = this.dracoEncoder;\n if (trackEncodedProperties) {\n activeEncoder.SetTrackEncodedProperties(true);\n }\n encodedLen = this.dracoEncoder.EncodeMeshToDracoBuffer(dracoMesh, dracoData);\n }\n if (encodedLen <= 0) {\n throw new Error('Draco encoding failed.');\n }\n\n this.log(`DRACO encoded ${dracoMesh.num_points()} points\n with ${dracoMesh.num_attributes()} attributes into ${encodedLen} bytes`);\n\n const data = dracoInt8ArrayToArrayBuffer(dracoData);\n return {\n data,\n report: this._getEncodingReport(\n 'mesh',\n data.byteLength,\n dracoMesh,\n activeEncoder,\n attributeInfo,\n options,\n trackEncodedProperties\n )\n };\n } finally {\n this.destroyEncodedObject(expertEncoder);\n this.destroyEncodedObject(dracoData);\n this.destroyEncodedObject(dracoMesh);\n }\n }\n\n /** Applies encoder speed, method, and quantization options. */\n _setOptions(options: DracoBuildOptions): void {\n if (options.speed) {\n this.dracoEncoder.SetSpeedOptions(...options.speed);\n }\n if (options.method) {\n const dracoMethod = this.draco[options.method];\n this.dracoEncoder.SetEncodingMethod(dracoMethod);\n }\n if (options.quantization) {\n for (const attribute in options.quantization) {\n const attributeType = attribute as DracoAttributeType;\n const bits = options.quantization[attributeType];\n if (bits !== undefined) {\n validateQuantizationBits(attributeType, bits, attributeType);\n this.dracoEncoder.SetAttributeQuantization(this.draco[attributeType], bits);\n }\n }\n }\n }\n\n /** Applies common options and per-attribute quantization to an expert encoder. */\n _setExpertOptions(\n expertEncoder: ExpertEncoder,\n attributes: Record<string, DracoBuilderAttributeInfo>,\n options: DracoBuildOptions\n ): void {\n if (options.speed) {\n expertEncoder.SetSpeedOptions(...options.speed);\n }\n if (options.method) {\n expertEncoder.SetEncodingMethod(this.draco[options.method]);\n }\n\n const quantization = this._getAttributeQuantization(attributes, options);\n for (const [attributeName, setting] of quantization) {\n const attribute = attributes[attributeName];\n if (typeof setting === 'number') {\n expertEncoder.SetAttributeQuantization(attribute.attributeId, setting);\n } else {\n expertEncoder.SetAttributeExplicitQuantization(\n attribute.attributeId,\n setting.bits,\n attribute.componentCount,\n setting.origin,\n setting.range\n );\n }\n }\n }\n\n /** Resolves category and exact quantization settings for every encoded attribute. */\n _getAttributeQuantization(\n attributes: Record<string, DracoBuilderAttributeInfo>,\n options: DracoBuildOptions\n ): Map<string, DracoAttributeQuantization> {\n const categoryQuantization = new Map<draco_GeometryAttribute_Type, number>();\n for (const attributeType of Object.keys(options.quantization || {}) as DracoAttributeType[]) {\n const bits = options.quantization?.[attributeType];\n if (bits !== undefined) {\n validateQuantizationBits(attributeType, bits, attributeType);\n categoryQuantization.set(this.draco[attributeType], bits);\n }\n }\n\n const quantization = new Map<string, DracoAttributeQuantization>();\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n const bits = categoryQuantization.get(attribute.attributeType);\n if (bits !== undefined) {\n quantization.set(attributeName, bits);\n }\n }\n for (const [attributeName, setting] of Object.entries(options.attributeQuantization || {})) {\n const attribute = attributes[attributeName];\n if (!attribute) {\n throw new Error(`DracoWriter: quantized attribute \"${attributeName}\" does not exist`);\n }\n if (typeof setting === 'number') {\n validateQuantizationBits(attributeName, setting, attribute.attributeTypeName);\n } else {\n if (attribute.attributeTypeName === 'NORMAL') {\n throw new Error(\n `DracoWriter: explicit quantization transforms are not supported for NORMAL attribute \"${attributeName}\"`\n );\n }\n validateExplicitQuantization(\n attributeName,\n attributes[attributeName].componentCount,\n setting\n );\n }\n quantization.set(attributeName, setting);\n }\n for (const attributeName of quantization.keys()) {\n if (!attributes[attributeName].supportsQuantization) {\n throw new Error(\n `DracoWriter: quantization for \"${attributeName}\" requires floating-point attribute data`\n );\n }\n }\n return quantization;\n }\n\n /** Builds public diagnostics for a completed native encoding. */\n _getEncodingReport(\n geometryType: 'mesh' | 'point-cloud',\n byteLength: number,\n geometry: Mesh | PointCloud,\n encoder: Encoder | ExpertEncoder,\n attributes: Record<string, DracoBuilderAttributeInfo>,\n options: DracoBuildOptions,\n trackEncodedProperties: boolean\n ): DracoEncodingReport {\n const quantization = this._getAttributeQuantization(attributes, options);\n const attributeReports: Record<string, DracoEncodingAttributeReport> = {};\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n attributeReports[attributeName] = {\n id: attribute.attributeId,\n type: attribute.attributeTypeName,\n componentCount: attribute.componentCount,\n ...(quantization.has(attributeName) ? {quantization: quantization.get(attributeName)} : {})\n };\n }\n return {\n geometryType,\n byteLength,\n pointCount: trackEncodedProperties\n ? encoder.GetNumberOfEncodedPoints()\n : geometry.num_points(),\n faceCount: trackEncodedProperties\n ? encoder.GetNumberOfEncodedFaces()\n : geometryType === 'mesh'\n ? typeof (geometry as Mesh).num_faces === 'function'\n ? (geometry as Mesh).num_faces()\n : 0\n : 0,\n attributeCount: geometry.num_attributes(),\n ...(options.method ? {method: options.method} : {}),\n ...(options.speed ? {speed: options.speed} : {}),\n attributes: attributeReports\n };\n }\n\n /**\n * @param {Mesh} dracoMesh\n * @param {object} attributes\n * @returns {Mesh}\n */\n _createDracoMesh(\n dracoMesh: Mesh,\n attributes: Record<string, TypedArray | MeshAttribute>,\n options: DracoBuildOptions\n ): Record<string, DracoBuilderAttributeInfo> {\n const optionalMetadata = options.attributesMetadata || {};\n const attributeInfo: Record<string, DracoBuilderAttributeInfo> = {};\n\n const vertexCount = this._getVertexCount(attributes, options);\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n const uniqueId = this._addAttributeToMesh(\n dracoMesh,\n attributeName,\n attribute,\n vertexCount,\n options\n );\n\n if (uniqueId !== -1) {\n const attributeValue = getAttributeValue(attribute);\n const attributeType = this._getDracoAttributeType(\n attributeName,\n options.attributeTypes\n ) as draco_GeometryAttribute_Type;\n attributeInfo[attributeName] = {\n attributeId: uniqueId,\n attributeType,\n attributeTypeName: getDracoAttributeTypeName(this.draco, attributeType),\n componentCount: getAttributeSize(attribute, attributeValue!.length / vertexCount),\n supportsQuantization: attributeValue instanceof Float32Array\n };\n this._addAttributeMetadata(dracoMesh, uniqueId, {\n [options.attributeNameEntry || 'name']: attributeName,\n ...(optionalMetadata[attributeName] || {})\n });\n }\n }\n\n return attributeInfo;\n }\n\n /**\n * @param {} dracoPointCloud\n * @param {object} attributes\n */\n _createDracoPointCloud(\n dracoPointCloud: PointCloud,\n attributes: Record<string, TypedArray | MeshAttribute>,\n options: DracoBuildOptions\n ): Record<string, DracoBuilderAttributeInfo> {\n const optionalMetadata = options.attributesMetadata || {};\n const attributeInfo: Record<string, DracoBuilderAttributeInfo> = {};\n\n const vertexCount = this._getVertexCount(attributes, options);\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n const uniqueId = this._addAttributeToMesh(\n dracoPointCloud,\n attributeName,\n attribute,\n vertexCount,\n options\n );\n if (uniqueId !== -1) {\n const attributeValue = getAttributeValue(attribute);\n const attributeType = this._getDracoAttributeType(\n attributeName,\n options.attributeTypes\n ) as draco_GeometryAttribute_Type;\n attributeInfo[attributeName] = {\n attributeId: uniqueId,\n attributeType,\n attributeTypeName: getDracoAttributeTypeName(this.draco, attributeType),\n componentCount: getAttributeSize(attribute, attributeValue!.length / vertexCount),\n supportsQuantization: attributeValue instanceof Float32Array\n };\n this._addAttributeMetadata(dracoPointCloud, uniqueId, {\n [options.attributeNameEntry || 'name']: attributeName,\n ...(optionalMetadata[attributeName] || {})\n });\n }\n }\n\n return attributeInfo;\n }\n\n /**\n * @param mesh\n * @param attributeName\n * @param attribute\n * @param vertexCount\n */\n _addAttributeToMesh(\n mesh: PointCloud,\n attributeName: string,\n attribute: TypedArray | MeshAttribute,\n vertexCount: number,\n options: DracoBuildOptions = {}\n ): number {\n const attributeValue = getAttributeValue(attribute);\n if (!attributeValue) {\n throw new Error(`DracoWriter: attribute \"${attributeName}\" must contain a typed array`);\n }\n\n const type = this._getDracoAttributeType(attributeName, options.attributeTypes);\n const size = getAttributeSize(attribute, attributeValue.length / vertexCount);\n\n if (type === 'indices') {\n if (attributeValue.length % 3 !== 0) {\n throw new Error('DracoWriter: triangle indices length must be divisible by 3');\n }\n validateIndices(attributeValue, vertexCount);\n const numFaces = attributeValue.length / 3;\n this.log(`Adding attribute ${attributeName}, size ${numFaces}`);\n\n const indices =\n attributeValue instanceof Uint16Array || attributeValue instanceof Uint32Array\n ? attributeValue\n : Uint32Array.from(attributeValue);\n this.dracoMeshBuilder.AddFacesToMesh(mesh as Mesh, numFaces, indices);\n return -1;\n }\n\n if (!Number.isInteger(size) || size <= 0 || attributeValue.length !== vertexCount * size) {\n throw new Error(\n `DracoWriter: attribute \"${attributeName}\" has ${attributeValue.length} values, expected ${vertexCount * size}`\n );\n }\n\n this.log(`Adding attribute ${attributeName}, size ${size}`);\n\n const builder = this.dracoMeshBuilder;\n let uniqueAttributeId = -1;\n if (attributeValue instanceof Int8Array) {\n uniqueAttributeId = builder.AddInt8Attribute(mesh, type, vertexCount, size, attributeValue);\n } else if (attributeValue instanceof Int16Array) {\n uniqueAttributeId = builder.AddInt16Attribute(mesh, type, vertexCount, size, attributeValue);\n } else if (attributeValue instanceof Int32Array) {\n uniqueAttributeId = builder.AddInt32Attribute(mesh, type, vertexCount, size, attributeValue);\n } else if (attributeValue instanceof Uint8Array) {\n uniqueAttributeId = builder.AddUInt8Attribute(mesh, type, vertexCount, size, attributeValue);\n } else if (attributeValue instanceof Uint8ClampedArray) {\n const uint8Value = new Uint8Array(\n attributeValue.buffer,\n attributeValue.byteOffset,\n attributeValue.byteLength\n );\n uniqueAttributeId = builder.AddUInt8Attribute(mesh, type, vertexCount, size, uint8Value);\n } else if (attributeValue instanceof Uint16Array) {\n uniqueAttributeId = builder.AddUInt16Attribute(mesh, type, vertexCount, size, attributeValue);\n } else if (attributeValue instanceof Uint32Array) {\n uniqueAttributeId = builder.AddUInt32Attribute(mesh, type, vertexCount, size, attributeValue);\n } else if (attributeValue instanceof Float32Array) {\n uniqueAttributeId = builder.AddFloatAttribute(mesh, type, vertexCount, size, attributeValue);\n } else {\n throw new Error(\n `DracoWriter: attribute \"${attributeName}\" uses unsupported ${attributeValue.constructor.name}`\n );\n }\n\n if (!ArrayBuffer.isView(attribute) && attribute.normalized !== undefined) {\n builder.SetNormalizedFlagForAttribute(mesh, uniqueAttributeId, attribute.normalized);\n }\n return uniqueAttributeId;\n\n // case Float64Array:\n // Add attribute does not seem to be exposed\n // return builder.AddAttribute(mesh, type, vertexCount, size, new Float32Array(buffer));\n }\n\n /**\n * DRACO can compress attributes of know type better\n * @param attributeName\n */\n _getDracoAttributeType(\n attributeName: string,\n attributeTypes: Record<string, DracoAttributeType> = {}\n ): draco_GeometryAttribute_Type | 'indices' {\n if (attributeName.toLowerCase() === 'indices') {\n return 'indices';\n }\n const explicitType = attributeTypes[attributeName];\n if (explicitType) {\n return this.draco[explicitType];\n }\n const gltfAttributeName = GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP[attributeName];\n if (gltfAttributeName) {\n return this.draco[gltfAttributeName];\n }\n switch (attributeName.toLowerCase()) {\n case 'position':\n case 'positions':\n case 'vertices':\n return this.draco.POSITION;\n case 'normal':\n case 'normals':\n return this.draco.NORMAL;\n case 'color':\n case 'colors':\n return this.draco.COLOR;\n case 'texcoord':\n case 'texcoords':\n return this.draco.TEX_COORD;\n default:\n if (/^color_\\d+$/i.test(attributeName)) {\n return this.draco.COLOR;\n }\n if (/^texcoord_\\d+$/i.test(attributeName)) {\n return this.draco.TEX_COORD;\n }\n return this.draco.GENERIC;\n }\n }\n\n /** Returns the common vertex count after validating the required position attribute. */\n _getVertexCount(\n attributes: Record<string, TypedArray | MeshAttribute>,\n options: DracoBuildOptions\n ): number {\n const positions = this._getPositionAttribute(attributes, options.attributeTypes);\n const positionValues = positions && getAttributeValue(positions);\n if (!positions || !positionValues) {\n throw new Error('DracoWriter: POSITION attribute is required');\n }\n const size = getAttributeSize(positions, 3);\n if (!Number.isInteger(size) || size <= 0 || positionValues.length % size !== 0) {\n throw new Error('DracoWriter: POSITION attribute has an invalid size or value count');\n }\n return positionValues.length / size;\n }\n\n _getPositionAttribute(\n attributes: Record<string, TypedArray | MeshAttribute>,\n attributeTypes: Record<string, DracoAttributeType> = {}\n ): TypedArray | MeshAttribute | null {\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const dracoType = this._getDracoAttributeType(attributeName, attributeTypes);\n if (dracoType === this.draco.POSITION && getAttributeValue(attribute)) {\n return attribute;\n }\n }\n return null;\n }\n\n /**\n * Add metadata for the geometry.\n * @param dracoGeometry - WASM Draco Object\n * @param metadata\n */\n _addGeometryMetadata(dracoGeometry: PointCloud, metadata: DracoMetadata): void {\n const dracoMetadata = new this.draco.Metadata();\n this._populateDracoMetadata(dracoMetadata, metadata);\n this.dracoMeshBuilder.AddMetadata(dracoGeometry, dracoMetadata);\n }\n\n /**\n * Add metadata for an attribute to geometry.\n * @param dracoGeometry - WASM Draco Object\n * @param uniqueAttributeId\n * @param metadata\n */\n _addAttributeMetadata(\n dracoGeometry: PointCloud,\n uniqueAttributeId: number,\n metadata: Map<string, string> | DracoMetadata\n ): void {\n // Note: Draco JS IDL doesn't seem to expose draco.AttributeMetadata, however it seems to\n // create such objects automatically from draco.Metadata object.\n const dracoAttributeMetadata = new this.draco.Metadata();\n this._populateDracoMetadata(dracoAttributeMetadata, metadata);\n // Draco3d doc note: Directly add attribute metadata to geometry.\n // You can do this without explicitly adding |GeometryMetadata| to mesh.\n this.dracoMeshBuilder.SetMetadataForAttribute(\n dracoGeometry,\n uniqueAttributeId,\n dracoAttributeMetadata\n );\n }\n\n /**\n * Add contents of object or map to a WASM Draco Metadata Object\n * @param dracoMetadata - WASM Draco Object\n * @param metadata\n */\n _populateDracoMetadata(\n dracoMetadata: Metadata,\n metadata: Map<string, string | number | Int32Array> | DracoMetadata\n ): void {\n for (const [key, value] of getEntries(metadata)) {\n switch (typeof value) {\n case 'number':\n if (Math.trunc(value) === value) {\n this.dracoMetadataBuilder.AddIntEntry(dracoMetadata, key, value);\n } else {\n this.dracoMetadataBuilder.AddDoubleEntry(dracoMetadata, key, value);\n }\n break;\n case 'object':\n if (value instanceof Int32Array) {\n this.dracoMetadataBuilder.AddIntEntryArray(dracoMetadata, key, value, value.length);\n }\n break;\n case 'string':\n default:\n this.dracoMetadataBuilder.AddStringEntry(dracoMetadata, key, value);\n }\n }\n }\n}\n\n// HELPER FUNCTIONS\n\n/**\n * Copy encoded data to buffer\n * @param dracoData\n */\nfunction dracoInt8ArrayToArrayBuffer(dracoData: DracoInt8Array): ArrayBuffer {\n const byteLength = dracoData.size();\n const outputBuffer = new ArrayBuffer(byteLength);\n const outputData = new Int8Array(outputBuffer);\n for (let i = 0; i < byteLength; ++i) {\n outputData[i] = dracoData.GetValue(i);\n }\n return outputBuffer;\n}\n\n/** Enable iteration over either an object or a map */\nfunction getEntries(\n container: Map<string, string | number | Int32Array> | DracoMetadata\n): Iterable<[string, string | number | Int32Array]> {\n return container instanceof Map ? container.entries() : Object.entries(container);\n}\n\n/** Returns the typed-array payload from either accepted attribute representation. */\nfunction getAttributeValue(attribute: TypedArray | MeshAttribute): TypedArray | null {\n if (ArrayBuffer.isView(attribute)) {\n return attribute;\n }\n if (\n attribute &&\n typeof attribute === 'object' &&\n 'value' in attribute &&\n ArrayBuffer.isView(attribute.value)\n ) {\n return attribute.value;\n }\n return null;\n}\n\n/** Returns the declared component count, falling back to the inferred legacy value. */\nfunction getAttributeSize(attribute: TypedArray | MeshAttribute, inferredSize: number): number {\n return ArrayBuffer.isView(attribute) ? inferredSize : attribute.size;\n}\n\n/** Validates that triangle indices are integers within the encoded vertex range. */\nfunction validateIndices(indices: TypedArray, vertexCount: number): void {\n for (const index of indices) {\n if (!Number.isInteger(index) || index < 0 || index >= vertexCount) {\n throw new Error(\n `DracoWriter: triangle index ${index} is outside vertex range 0-${vertexCount - 1}`\n );\n }\n }\n}\n\n/** Returns true when exact application attributes require the expert encoder. */\nfunction hasAttributeQuantization(options: DracoBuildOptions): boolean {\n return Boolean(\n options.attributeQuantization && Object.keys(options.attributeQuantization).length\n );\n}\n\n/** Validates a Draco quantization bit count. */\nfunction validateQuantizationBits(\n attributeName: string,\n bits: number,\n attributeType?: DracoAttributeType\n): void {\n if (!Number.isInteger(bits) || bits < 1 || bits > 30) {\n throw new Error(\n `DracoWriter: quantization bits for \"${attributeName}\" must be an integer from 1 to 30`\n );\n }\n if (attributeType === 'NORMAL' && (bits < 2 || bits > 29)) {\n throw new Error(\n `DracoWriter: quantization bits for NORMAL attribute \"${attributeName}\" must be an integer from 2 to 29`\n );\n }\n}\n\n/** Validates an explicit per-attribute quantization transform. */\nfunction validateExplicitQuantization(\n attributeName: string,\n componentCount: number,\n quantization: DracoExplicitQuantization\n): void {\n validateQuantizationBits(attributeName, quantization.bits);\n if (!Array.isArray(quantization.origin) || quantization.origin.length !== componentCount) {\n throw new Error(\n `DracoWriter: quantization origin for \"${attributeName}\" must contain ${componentCount} values`\n );\n }\n if (!quantization.origin.every(Number.isFinite)) {\n throw new Error(`DracoWriter: quantization origin for \"${attributeName}\" must be finite`);\n }\n if (!Number.isFinite(quantization.range) || quantization.range <= 0) {\n throw new Error(`DracoWriter: quantization range for \"${attributeName}\" must be positive`);\n }\n}\n\n/** Returns the public Draco category name for a native enum value. */\nfunction getDracoAttributeTypeName(\n draco: Draco3D,\n attributeType: draco_GeometryAttribute_Type\n): DracoAttributeType {\n for (const name of ['POSITION', 'NORMAL', 'COLOR', 'TEX_COORD', 'GENERIC'] as const) {\n if (draco[name] === attributeType) {\n return name;\n }\n }\n return 'GENERIC';\n}\n\n/** Resolves named presets without mutating the caller's options object. */\nfunction applyDracoEncodingPreset(options: DracoBuildOptions): DracoBuildOptions {\n const presetOptions: Record<DracoEncodingPreset, DracoBuildOptions> = {\n gltf: {\n method: 'MESH_EDGEBREAKER_ENCODING',\n speed: [5, 5],\n quantization: {POSITION: 14, NORMAL: 10, TEX_COORD: 12}\n },\n webgpu: {\n method: 'MESH_SEQUENTIAL_ENCODING',\n speed: [5, 5],\n quantization: {POSITION: 14, NORMAL: 10, TEX_COORD: 12}\n },\n balanced: {\n method: 'MESH_EDGEBREAKER_ENCODING',\n speed: [5, 5],\n quantization: {POSITION: 12, NORMAL: 10, TEX_COORD: 10}\n }\n };\n const preset = options.preset ? presetOptions[options.preset] : {};\n return {\n ...preset,\n ...options,\n quantization: {...preset.quantization, ...options.quantization}\n };\n}\n", "// SPDX-License-Identifier: MIT\n\nimport {\n isBrowser,\n isWorker,\n loadLibrary as loadCoreLibrary,\n type LoadLibraryOptions\n} from '@loaders.gl/core/worker-utils';\n\nexport {isBrowser, type LoadLibraryOptions};\n\n/** Resolves local Draco assets inside scene without changing core's format-neutral library paths. */\nexport async function loadLibrary(\n libraryUrl: string,\n moduleName: string | null = null,\n options: LoadLibraryOptions = {},\n libraryName: string | null = null,\n moduleLibraryName: string | null = null\n): Promise<unknown> {\n if (\n isBrowser &&\n options.useLocalLibraries &&\n !options.CDN &&\n libraryName &&\n options.modules?.[libraryName] === undefined\n ) {\n const directory = isWorker ? './libs' : `modules/${moduleName}/dist/libs`;\n options = {\n ...options,\n modules: {\n [libraryName]: `${directory}/${libraryName}`,\n ...(moduleLibraryName ? {[moduleLibraryName]: `${directory}/${moduleLibraryName}`} : {}),\n ...options.modules\n }\n };\n }\n return await loadCoreLibrary(libraryUrl, moduleName, options, libraryName, moduleLibraryName);\n}\n", "// SPDX-License-Identifier: MIT\n\nconst DRACO_VERSION = '1.5.7';\nconst DRACO_RELEASE_COMMIT = '8786740086a9f4d83f44aa83badfbea4dce7a1b5';\nconst STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}`;\nconst STATIC_ENCODER_URL = `https://cdn.jsdelivr.net/gh/google/draco@${DRACO_RELEASE_COMMIT}/javascript`;\n\n/** External Draco runtime assets understood by `loadLibrary`. */\nexport const DRACO_EXTERNAL_LIBRARIES = {\n /** WebAssembly decoder JavaScript wrapper. */\n DECODER: 'draco_wasm_wrapper.js',\n /** WebAssembly decoder binary. */\n DECODER_WASM: 'draco_decoder.wasm',\n /** glTF-profile WebAssembly decoder JavaScript wrapper. */\n GLTF_DECODER: 'draco_wasm_wrapper_gltf.js',\n /** glTF-profile WebAssembly decoder binary. */\n GLTF_DECODER_WASM: 'draco_decoder_gltf.wasm',\n /** JavaScript decoder fallback. */\n FALLBACK_DECODER: 'draco_decoder.js',\n /** WebAssembly encoder JavaScript wrapper. */\n ENCODER: 'draco_encoder.js',\n /** WebAssembly encoder binary. */\n ENCODER_WASM: 'draco_encoder.wasm'\n} as const;\n\n/** Default versioned URLs for external Draco runtime assets. */\nexport const DRACO_EXTERNAL_LIBRARY_URLS = {\n [DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,\n [DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,\n [DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER}`,\n [DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER_WASM}`,\n [DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,\n [DRACO_EXTERNAL_LIBRARIES.ENCODER]: `${STATIC_ENCODER_URL}/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`,\n [DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM]: `${STATIC_ENCODER_URL}/${DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM}`\n} as const;\n", "// SPDX-License-Identifier: MIT\n\n// Dynamic DRACO module loading inspired by THREE.DRACOLoader\n// https://github.com/mrdoob/three.js/blob/dev/examples/jsm/loaders/DRACOLoader.js\n// by Don McCurdy / https://www.donmccurdy.com / MIT license\n\nimport {initializeWasmModule} from '@loaders.gl/core/loader-utils';\nimport {isBrowser, loadLibrary, type LoadLibraryOptions} from './draco-library-loader';\nimport type {Draco3D} from '../draco3d/draco3d-types';\n\nimport {DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS} from '../draco-libraries';\nexport {DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS} from '../draco-libraries';\n\n/** Initialized Draco module returned to the parser or builder. */\nexport type LoadedDracoModule = {draco: Draco3D};\n\n/** Draco decoder build selected for general data or glTF-compatible bitstreams. */\nexport type DracoDecoderProfile = 'full' | 'gltf';\n\n/** Subset of the `draco3d` npm package accepted through `options.modules`. */\nexport type Draco3DModule = {\n /** Creates an initialized decoder module. */\n createDecoderModule?: (options?: Record<string, unknown>) => Promise<Draco3D>;\n /** Creates an initialized encoder module. */\n createEncoderModule?: (options?: Record<string, unknown>) => Promise<Draco3D>;\n};\n\ntype DracoDecoderModule = Required<Pick<Draco3DModule, 'createDecoderModule'>>;\ntype DracoEncoderModule = Required<Pick<Draco3DModule, 'createEncoderModule'>>;\n\ntype DracoModuleInitializerOptions = {\n /** Optional preloaded WASM bytes. */\n wasmBinary?: ArrayBuffer;\n /** Reports an initialized Emscripten module. */\n onModuleLoaded?: (draco: Draco3D) => void;\n};\n\ntype DracoModuleInitializer = (\n options: DracoModuleInitializerOptions\n) => Promise<Draco3D> | undefined;\n\ntype DracoGlobal = typeof globalThis & {\n DracoDecoderModule?: DracoModuleInitializer;\n DracoEncoderModule?: DracoModuleInitializer;\n};\n\nconst libraryDecoderPromises = new Map<string, Promise<LoadedDracoModule>>();\nconst libraryEncoderPromises = new Map<string, Promise<LoadedDracoModule>>();\nconst injectedDecoderPromises = new WeakMap<DracoDecoderModule, Promise<LoadedDracoModule>>();\nconst injectedEncoderPromises = new WeakMap<DracoEncoderModule, Promise<LoadedDracoModule>>();\n\n/** Loads a Draco decoder from either an injected `draco3d` package or external libraries. */\nexport async function loadDracoDecoderModule(\n options: LoadLibraryOptions = {},\n type: 'wasm' | 'js',\n profile: DracoDecoderProfile = 'full'\n): Promise<LoadedDracoModule> {\n const draco3DModule = getInjectedDraco3DModule(options);\n if (draco3DModule) {\n return await loadDracoDecoderModuleFromDraco3D(draco3DModule);\n }\n\n return await loadDracoDecoderModuleFromLibrary(\n options,\n type === 'js' ? 'javascript' : type,\n profile\n );\n}\n\n/** Loads a Draco decoder from external WASM or JavaScript fallback libraries. */\nexport async function loadDracoDecoderModuleFromLibrary(\n options: LoadLibraryOptions = {},\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile = 'full'\n): Promise<LoadedDracoModule> {\n const cacheKey = getLibraryCacheKey(`${type}:${profile}`, options);\n let decoderPromise = libraryDecoderPromises.get(cacheKey);\n if (!decoderPromise) {\n decoderPromise = loadDracoDecoderWithFallback(options, type, profile);\n libraryDecoderPromises.set(cacheKey, decoderPromise);\n }\n return await decoderPromise;\n}\n\n/** Loads a decoder from an injected `draco3d` npm package. */\nexport async function loadDracoDecoderModuleFromDraco3D(\n draco3DModule: unknown\n): Promise<LoadedDracoModule> {\n const typedDraco3DModule = validateDracoDecoderModule(draco3DModule);\n let decoderPromise = injectedDecoderPromises.get(typedDraco3DModule);\n if (!decoderPromise) {\n decoderPromise = initializeWasmModule(\n () => typedDraco3DModule.createDecoderModule({}),\n draco => ({draco})\n );\n injectedDecoderPromises.set(typedDraco3DModule, decoderPromise);\n }\n return await decoderPromise;\n}\n\n/** Loads a Draco encoder from an injected `draco3d` package or external WASM libraries. */\nexport async function loadDracoEncoderModule(\n options: LoadLibraryOptions = {}\n): Promise<LoadedDracoModule> {\n const draco3DModule = getInjectedDraco3DModule(options);\n if (draco3DModule) {\n const typedDraco3DModule = validateDracoEncoderModule(draco3DModule);\n let encoderPromise = injectedEncoderPromises.get(typedDraco3DModule);\n if (!encoderPromise) {\n encoderPromise = initializeWasmModule(\n () => typedDraco3DModule.createEncoderModule({}),\n draco => ({draco})\n );\n injectedEncoderPromises.set(typedDraco3DModule, encoderPromise);\n }\n return await encoderPromise;\n }\n\n const cacheKey = getLibraryCacheKey('encoder', options);\n let encoderPromise = libraryEncoderPromises.get(cacheKey);\n if (!encoderPromise) {\n encoderPromise = loadDracoEncoder(options);\n libraryEncoderPromises.set(cacheKey, encoderPromise);\n }\n return await encoderPromise;\n}\n\n/** Loads the selected decoder and retries with the JavaScript backend after a WASM failure. */\nasync function loadDracoDecoderWithFallback(\n options: LoadLibraryOptions,\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile\n): Promise<LoadedDracoModule> {\n try {\n return await loadDracoDecoder(options, type, profile);\n } catch (wasmError) {\n if (type === 'javascript') {\n throw wasmError;\n }\n try {\n return await loadDracoDecoder(options, 'javascript', 'full');\n } catch (javascriptError) {\n throw new AggregateError(\n [wasmError, javascriptError],\n 'Draco decoder could not load either the WebAssembly or JavaScript backend'\n );\n }\n }\n}\n\nlet decoderInitializationQueue = Promise.resolve();\n\n/** Loads and initializes one external Draco decoder backend. */\nasync function loadDracoDecoder(\n options: LoadLibraryOptions,\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile\n): Promise<LoadedDracoModule> {\n const initialization = decoderInitializationQueue.then(() =>\n loadDracoDecoderInternal(options, type, profile)\n );\n decoderInitializationQueue = initialization.then(\n () => undefined,\n () => undefined\n );\n return await initialization;\n}\n\n/** Performs decoder loading after preceding global initializers have completed. */\nasync function loadDracoDecoderInternal(\n options: LoadLibraryOptions,\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile\n): Promise<LoadedDracoModule> {\n if (type === 'javascript') {\n let decoderLibrary: unknown;\n try {\n decoderLibrary = await loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],\n 'scene',\n options,\n DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,\n 'draco_decoder.mjs'\n );\n } catch (error) {\n if (isBrowser || options.useLocalLibraries) {\n throw error;\n }\n decoderLibrary = await loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],\n 'scene',\n {...options, useLocalLibraries: true},\n DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,\n 'draco_decoder.mjs'\n );\n }\n const decoderInitializer =\n getLibraryExport(decoderLibrary, 'DracoDecoderModule') ||\n (globalThis as DracoGlobal).DracoDecoderModule;\n return await initializeDracoModule(decoderInitializer);\n }\n\n let decoderLibrary: unknown;\n let wasmBinary: ArrayBuffer;\n try {\n [decoderLibrary, wasmBinary] = await loadDecoderWasmAssets(options, profile);\n } catch (error) {\n if (isBrowser || options.useLocalLibraries) {\n throw error;\n }\n [decoderLibrary, wasmBinary] = await loadDecoderWasmAssets(\n {...options, useLocalLibraries: true},\n profile\n );\n }\n const decoderInitializer =\n getLibraryExport(decoderLibrary, 'DracoDecoderModule') ||\n (globalThis as DracoGlobal).DracoDecoderModule;\n return await initializeDracoModule(decoderInitializer, wasmBinary);\n}\n\n/** Loads the decoder wrapper and WASM binary concurrently. */\nasync function loadDecoderWasmAssets(\n options: LoadLibraryOptions,\n profile: DracoDecoderProfile\n): Promise<[unknown, ArrayBuffer]> {\n const decoderLibrary =\n profile === 'gltf' ? DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER : DRACO_EXTERNAL_LIBRARIES.DECODER;\n const decoderWasm =\n profile === 'gltf'\n ? DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER_WASM\n : DRACO_EXTERNAL_LIBRARIES.DECODER_WASM;\n return await Promise.all([\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[decoderLibrary],\n 'scene',\n options,\n decoderLibrary,\n profile === 'gltf' ? 'draco_wasm_wrapper_gltf.mjs' : 'draco_wasm_wrapper.mjs'\n ),\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[decoderWasm],\n 'scene',\n options,\n decoderWasm\n ) as Promise<ArrayBuffer>\n ]);\n}\n\n/** Loads and initializes the external Draco WASM encoder. */\nasync function loadDracoEncoder(options: LoadLibraryOptions): Promise<LoadedDracoModule> {\n let encoderLibrary: unknown;\n let wasmBinary: ArrayBuffer;\n try {\n [encoderLibrary, wasmBinary] = await loadEncoderWasmAssets(options);\n } catch (error) {\n if (isBrowser || options.useLocalLibraries) {\n throw error;\n }\n [encoderLibrary, wasmBinary] = await loadEncoderWasmAssets({\n ...options,\n useLocalLibraries: true\n });\n }\n const encoderInitializer =\n getLibraryExport(encoderLibrary, 'DracoEncoderModule') ||\n (globalThis as DracoGlobal).DracoEncoderModule;\n return await initializeDracoModule(encoderInitializer, wasmBinary);\n}\n\n/** Loads the encoder wrapper and WASM binary concurrently. */\nasync function loadEncoderWasmAssets(options: LoadLibraryOptions): Promise<[unknown, ArrayBuffer]> {\n return await Promise.all([\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.ENCODER],\n 'scene',\n options,\n DRACO_EXTERNAL_LIBRARIES.ENCODER,\n 'draco_encoder.mjs'\n ),\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM],\n 'scene',\n options,\n DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM\n ) as Promise<ArrayBuffer>\n ]);\n}\n\n/** Initializes an Emscripten Draco factory that may use callbacks, promises, or both. */\nfunction initializeDracoModule(\n initializer: DracoModuleInitializer | undefined,\n wasmBinary?: ArrayBuffer\n): Promise<LoadedDracoModule> {\n if (typeof initializer !== 'function') {\n throw new Error('Draco module initializer could not be loaded');\n }\n\n return initializeWasmModule(\n onInitialized =>\n initializer({\n ...(wasmBinary ? {wasmBinary} : {}),\n onModuleLoaded: onInitialized\n }),\n (draco: Draco3D) => ({draco})\n );\n}\n\n/** Resolves a Draco initializer from a direct, named, or default library export. */\nfunction getLibraryExport(\n library: unknown,\n exportName: 'DracoDecoderModule' | 'DracoEncoderModule'\n): DracoModuleInitializer | undefined {\n if (typeof library === 'function') {\n return library as DracoModuleInitializer;\n }\n if (library && typeof library === 'object') {\n const exports = library as Record<string, unknown>;\n const exportedInitializer = exports[exportName] || exports.default;\n return typeof exportedInitializer === 'function'\n ? (exportedInitializer as DracoModuleInitializer)\n : undefined;\n }\n return undefined;\n}\n\n/** Returns and validates the optional injected `draco3d` package reference. */\nfunction getInjectedDraco3DModule(options: LoadLibraryOptions): Draco3DModule | undefined {\n const module = options.modules?.draco3d;\n if (!module) {\n return undefined;\n }\n if (typeof module !== 'object' && typeof module !== 'function') {\n throw new Error('Invalid draco3d module');\n }\n return module as Draco3DModule;\n}\n\n/** Narrows an injected package to the decoder factory interface. */\nfunction validateDracoDecoderModule(module: unknown): DracoDecoderModule {\n const typedModule = module as Draco3DModule;\n if (typeof typedModule?.createDecoderModule !== 'function') {\n throw new Error('Invalid draco3d decoder module');\n }\n return typedModule as DracoDecoderModule;\n}\n\n/** Narrows an injected package to the encoder factory interface. */\nfunction validateDracoEncoderModule(module: unknown): DracoEncoderModule {\n const typedModule = module as Draco3DModule;\n if (typeof typedModule?.createEncoderModule !== 'function') {\n throw new Error('Invalid draco3d encoder module');\n }\n return typedModule as DracoEncoderModule;\n}\n\n/** Builds a stable cache key from the backend and external-library configuration. */\nfunction getLibraryCacheKey(type: string, options: LoadLibraryOptions): string {\n const libraryOverrides = Object.entries(options.modules || {})\n .filter(([name]) => name !== 'draco3d')\n .map(([name, value]) => `${name}:${String(value)}`)\n .sort()\n .join('|');\n return [\n type,\n options.useLocalLibraries ? 'local' : 'remote',\n options.CDN || '',\n libraryOverrides\n ].join('|');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Format} from '@loaders.gl/core/loader-utils';\n\n/**\n * Draco3D compressed geometries\n */\nexport const DracoFormat = {\n name: 'Draco',\n id: 'draco',\n module: 'scene',\n encoding: 'binary',\n format: 'draco',\n extensions: ['drc'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['DRACO']\n} as const satisfies Format;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {\n canEncodeWithWorker,\n type WriterWithEncoder,\n type WriterOptions\n} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable, TypedArray} from '@loaders.gl/core/schema';\nimport {convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {extractLoadLibraryOptions, processOnWorkerInBatches} from '@loaders.gl/core/worker-utils';\nimport type {DracoMesh} from './lib/draco-types';\nimport type {DracoBuilderMesh, DracoBuildOptions, DracoEncodingResult} from './lib/draco-builder';\nimport DRACOBuilder from './lib/draco-builder';\nimport {loadDracoEncoderModule} from './lib/draco-module-loader';\nimport {VERSION} from './lib/utils/version';\nimport {DracoFormat} from './draco-format';\n\n/** Legacy flat attribute map accepted by `DracoWriter`. */\nexport type DracoWriterAttributes = Record<string, TypedArray>;\n\n/** Inputs accepted by `DracoWriter`. */\nexport type DracoWriterInput =\n | DracoMesh\n | Mesh\n | MeshArrowTable\n | DracoBuilderMesh\n | DracoWriterAttributes;\n\n/** Options for `DracoWriter`. */\nexport type DracoWriterOptions = WriterOptions & {\n /** Draco-specific writer options. */\n draco?: DracoBuildOptions;\n};\n\n/** Progress notification emitted after each geometry in a batch. */\nexport type DracoBatchProgress = {\n /** Number of geometries completed. */\n completed: number;\n /** Total number of geometries in the batch. */\n total: number;\n};\n\n/** Options for cancellable, progress-reporting batch encoding. */\nexport type DracoBatchOptions = DracoWriterOptions & {\n /** Abort signal checked between native encoding operations. */\n signal?: AbortSignal;\n /** Called after each geometry is encoded. */\n onProgress?: (progress: DracoBatchProgress) => void;\n};\n\n/** A batch of Draco-writable geometries. */\nexport type DracoWriterInputBatch = DracoWriterInput[];\n\nconst DEFAULT_DRACO_WRITER_OPTIONS = {\n pointcloud: false, // Set to true if pointcloud (mode: 0, no indices)\n attributeNameEntry: 'name'\n // Draco Compression Parameters\n // method: 'MESH_EDGEBREAKER_ENCODING', // Use draco defaults\n // speed: [5, 5], // Use draco defaults\n // quantization: { // Use draco defaults\n // POSITION: 10\n // }\n};\n\n/** Worker-enabled exporter for Draco3D compressed geometries. */\nexport const DracoWriterWorker = {\n ...DracoFormat,\n id: 'draco-writer',\n name: 'Draco compressed geometry writer',\n module: 'scene',\n version: VERSION,\n worker: true,\n workerNode: 'draco-writer-worker-node.cjs',\n /** Node test workers live with the Draco implementation. */\n workerSourceNode: 'draco/workers/draco-writer-worker-node.ts',\n options: {\n draco: {}\n }\n};\n\n/**\n * Exporter for Draco3D compressed geometries\n */\nexport const DracoWriter = {\n ...DracoFormat,\n name: 'DRACO',\n version: VERSION,\n options: {\n draco: DEFAULT_DRACO_WRITER_OPTIONS\n },\n encode,\n encodeInBatches\n} as const satisfies WriterWithEncoder<DracoWriterInput, unknown, DracoWriterOptions>;\n\n/** Encode Draco mesh category data. */\nasync function encode(\n data: DracoWriterInput,\n options: DracoWriterOptions = {}\n): Promise<ArrayBuffer> {\n return (await encodeDraco(data, options)).data;\n}\n\n/** Encodes Draco geometry and returns bytes together with native encoding diagnostics. */\nexport async function encodeDraco(\n data: DracoWriterInput,\n options: DracoWriterOptions = {}\n): Promise<DracoEncodingResult> {\n // Dynamically load draco\n const {draco} = await loadDracoEncoderModule(extractLoadLibraryOptions(options));\n const dracoBuilder = new DRACOBuilder(draco);\n\n try {\n return dracoBuilder.encodeSyncWithReport(normalizeDracoMesh(data), options.draco);\n } finally {\n dracoBuilder.destroy();\n }\n}\n\n/**\n * Encodes multiple geometries while loading and initializing the Draco runtime once.\n *\n * The input geometries are processed sequentially to keep peak native memory bounded.\n * Each result is independent and uses the same writer options.\n */\nexport async function encodeDracoBatch(\n data: DracoWriterInput[],\n options: DracoBatchOptions = {}\n): Promise<DracoEncodingResult[]> {\n throwIfAborted(options.signal);\n const results: DracoEncodingResult[] = [];\n let completed = 0;\n for await (const result of encodeDracoInBatches([data], options)) {\n results.push(result);\n completed++;\n options.onProgress?.({completed, total: data.length});\n }\n return results;\n}\n\n/**\n * Encodes geometry batches while retaining one encoder runtime and one worker\n * lease for the complete input iterator.\n *\n * Worker mode is selected with `worker: true` and the normal Draco writer\n * worker options. Set `worker: false` to keep the operation local.\n */\nexport function encodeDracoInBatches(\n data: AsyncIterable<DracoWriterInputBatch> | Iterable<DracoWriterInputBatch>,\n options: DracoBatchOptions = {}\n): AsyncIterable<DracoEncodingResult> {\n const normalizedData = normalizeDracoInputBatches(data);\n if (canEncodeWithWorker(DracoWriterWorker, options)) {\n const {onProgress: _onProgress, ...workerOptions} = options;\n return processOnWorkerInBatches<DracoBuilderMesh[], DracoEncodingResult>(\n DracoWriterWorker,\n normalizedData,\n workerOptions\n );\n }\n return encodeDracoInBatchesLocally(normalizedData, options);\n}\n\n/** Encodes batches through the public writer's ArrayBuffer-only batch API. */\nasync function* encodeInBatches(\n data: AsyncIterable<DracoWriterInput> | Iterable<DracoWriterInput>,\n options: DracoBatchOptions = {}\n): AsyncIterable<ArrayBuffer> {\n const geometryBatches = (async function* () {\n for await (const geometry of data) {\n yield [geometry];\n }\n })();\n for await (const result of encodeDracoInBatches(geometryBatches, options)) {\n yield result.data;\n }\n}\n\n/** Worker-safe local implementation that initializes Draco exactly once. */\nexport async function* encodeDracoInBatchesLocally(\n data: AsyncIterable<DracoBuilderMesh[]> | Iterable<DracoBuilderMesh[]>,\n options: DracoBatchOptions = {}\n): AsyncIterable<DracoEncodingResult> {\n const {draco} = await loadDracoEncoderModule(extractLoadLibraryOptions(options));\n const dracoBuilder = new DRACOBuilder(draco);\n try {\n for await (const batch of data) {\n for (const geometry of batch) {\n throwIfAborted(options.signal);\n yield dracoBuilder.encodeSyncWithReport(geometry, options.draco);\n }\n }\n } finally {\n dracoBuilder.destroy();\n }\n}\n\n/** Converts any accepted input batch into structured-clone-safe builder meshes. */\nasync function* normalizeDracoInputBatches(\n data: AsyncIterable<DracoWriterInputBatch> | Iterable<DracoWriterInputBatch>\n): AsyncIterable<DracoBuilderMesh[]> {\n for await (const batch of data) {\n yield batch.map(normalizeDracoMesh);\n }\n}\n\n/** Throws the signal's reason before starting or between native encodes. */\nfunction throwIfAborted(signal: AbortSignal | undefined): void {\n if (!signal?.aborted) {\n return;\n }\n if (signal.reason !== undefined) {\n throw signal.reason;\n }\n const error = new Error('Draco batch encoding aborted');\n error.name = 'AbortError';\n throw error;\n}\n\n/** Returns Draco-writable mesh data without copying ordinary Mesh attributes. */\nfunction normalizeDracoMesh(data: DracoWriterInput): DracoBuilderMesh {\n if (isMeshArrowTable(data)) {\n return convertTableToMesh(data);\n }\n\n if (isDracoBuilderMesh(data)) {\n return data;\n }\n\n const {indices, ...attributes} = data;\n return {attributes, ...(indices ? {indices} : {})};\n}\n\n/** Return true when the input is MeshArrowTable category data. */\nfunction isMeshArrowTable(data: unknown): data is MeshArrowTable {\n return (\n typeof data === 'object' && data !== null && 'shape' in data && data.shape === 'arrow-table'\n );\n}\n\n/** Returns true when input uses the nested Mesh attribute representation. */\nfunction isDracoBuilderMesh(data: DracoWriterInput): data is DracoBuilderMesh | Mesh | DracoMesh {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'attributes' in data &&\n typeof data.attributes === 'object' &&\n data.attributes !== null &&\n !ArrayBuffer.isView(data.attributes)\n );\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {createWorker} from '@loaders.gl/core/worker-utils';\nimport {encodeDraco, encodeDracoInBatchesLocally} from '../draco-writer';\n\ncreateWorker(\n async (input, options) => (await encodeDraco(input, options)).data,\n encodeDracoInBatchesLocally\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["getVersion", "VERSION", "assert", "globals", "self_", "window_", "global_", "document_", "isBrowser", "isMobile", "matches", "nodeVersion", "assert", "isBrowser", "assert", "worker", "onMessage", "index", "queuedJob", "isMobile", "onMessage", "parentPort", "VERSION", "isBrowser", "assert", "isBrowser", "createAbortError", "isBrowser", "error", "process", "throwIfAborted", "onMessage", "moduleUrl", "_e", "globals", "self_", "window_", "global_", "document_", "isBrowser", "matches", "nodeVersion", "isBrowser", "Binary", "BinaryView", "Bool", "Builder", "Decimal", "Duration", "Field", "FixedSizeBinary", "FixedSizeList", "LargeBinary", "LargeList", "LargeUtf8", "List", "Message", "Null", "RecordBatch", "Schema", "Type", "Utf8", "Utf8View", "v", "source", "pump", "events", "err", "MetadataVersion", "UnionMode", "Precision", "DateUnit", "TimeUnit", "IntervalUnit", "Encoding", "BodyCompressionMethod", "CompressionType", "Buffer", "Buffer", "Endianness", "DictionaryKind", "Date", "Map", "Type", "MessageHeader", "Type", "BufferType", "x", "Type", "Null", "Type", "Binary", "BinaryView", "LargeBinary", "Utf8", "Utf8View", "LargeUtf8", "Bool", "Decimal", "Type", "Type", "Duration", "Type", "List", "LargeList", "FixedSizeBinary", "Type", "FixedSizeList", "Type", "BinaryView", "_a", "_b", "_c", "_d", "instance", "_a", "instance", "instance", "getBool", "setBool", "_a", "byteLength", "nullCount", "Type", "BinaryView", "instance", "Utf8View", "length", "getBool", "Type", "instance", "instance", "_b", "_d", "_c", "Type", "instance", "begin", "end", "newData", "_a", "Builder", "size", "_a", "_b", "_c", "_d", "Schema", "instance", "Field", "Builder", "ByteBuffer", "Schema", "Date", "Map", "instance", "Schema", "RecordBatch", "DictionaryBatch", "Field", "FieldNode", "Null", "Binary", "LargeBinary", "BinaryView", "Utf8", "LargeUtf8", "Utf8View", "Bool", "List", "LargeList", "Decimal", "Duration", "FixedSizeBinary", "FixedSizeList", "Builder", "ByteBuffer", "Message", "Schema", "RecordBatch", "DictionaryBatch", "FieldNode", "BodyCompression", "Field", "Null", "Binary", "LargeBinary", "BinaryView", "Utf8", "LargeUtf8", "Utf8View", "Bool", "List", "LargeList", "Decimal", "Date", "Duration", "FixedSizeBinary", "FixedSizeList", "Map", "instance", "Buffer", "AsyncQueue", "AsyncQueue", "_d", "_e", "_f", "_a", "_c", "Int64", "Uint64", "_a", "_b", "Field", "_a", "Int64", "encoder", "Builder", "Builder", "Builder", "FixedSizeList", "Field", "List", "Field", "LargeList", "Field", "Field", "Builder", "Builder", "Field", "Builder", "Field", "Builder", "BinaryView", "instance", "instance", "instance", "type", "RecordBatch", "Schema", "Null", "Utf8", "Bool", "List", "Field", "_d", "_a", "_c", "RecordBatch", "_a", "Schema", "RecordBatch", "Field", "batches", "_c", "_b", "instance", "data", "Null", "indices", "oldToNew", "_a", "Type", "RecordBatch", "Schema", "Field", "instance", "_b", "Null", "_a", "_c", "Message", "_a", "_a", "_d", "_e", "_f", "_c", "RecordBatch", "DictionaryBatch", "self", "RecordBatch", "FieldNode", "_a", "getBool", "BodyCompression", "RecordBatch", "Message", "DictionaryBatch", "_a", "_b", "_d", "it", "_a", "reader", "reader", "Schema", "Field", "RecordBatch", "Builder", "Null", "Binary", "FixedSizeBinary", "Bool", "Utf8", "Decimal", "List", "FixedSizeList", "FixedSizeList", "FixedSizeList", "encoder", "loadLibrary", "encoderPromise", "getLibraryCacheKey", "loadLibrary", "getLibraryCacheKey", "VERSION", "VERSION", "throwIfAborted"]
7
+ }