@loaders.gl/scene 5.0.0-alpha.9 → 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 (1328) hide show
  1. package/DRACO-README.md +15 -0
  2. package/GLTF-README.md +46 -0
  3. package/LICENSE +2 -30
  4. package/OBJ-README.md +28 -0
  5. package/README.md +12 -1
  6. package/THIRD-PARTY-NOTICES.md +26 -0
  7. package/bin/gltf/glbdump.js +8 -0
  8. package/dist/dist.dev.js +34608 -40
  9. package/dist/dist.min.js +38 -3
  10. package/dist/draco/bundled.cjs +37 -0
  11. package/dist/draco/bundled.cjs.map +7 -0
  12. package/dist/draco/bundled.d.ts +6 -0
  13. package/dist/draco/bundled.d.ts.map +1 -0
  14. package/dist/draco/bundled.js +7 -0
  15. package/dist/draco/bundled.js.map +1 -0
  16. package/dist/draco/draco-format.cjs +41 -0
  17. package/dist/draco/draco-format.cjs.map +7 -0
  18. package/dist/draco/draco-format.d.ts +15 -0
  19. package/dist/draco/draco-format.d.ts.map +1 -0
  20. package/dist/draco/draco-format.js +18 -0
  21. package/dist/draco/draco-format.js.map +1 -0
  22. package/dist/draco/draco-javascript-loader-with-parser.cjs +44 -0
  23. package/dist/draco/draco-javascript-loader-with-parser.cjs.map +7 -0
  24. package/dist/draco/draco-javascript-loader-with-parser.d.ts +34 -0
  25. package/dist/draco/draco-javascript-loader-with-parser.d.ts.map +1 -0
  26. package/dist/draco/draco-javascript-loader-with-parser.js +14 -0
  27. package/dist/draco/draco-javascript-loader-with-parser.js.map +1 -0
  28. package/dist/draco/draco-libraries.cjs +61 -0
  29. package/dist/draco/draco-libraries.cjs.map +7 -0
  30. package/dist/draco/draco-libraries.d.ts +28 -0
  31. package/dist/draco/draco-libraries.d.ts.map +1 -0
  32. package/dist/draco/draco-libraries.js +33 -0
  33. package/dist/draco/draco-libraries.js.map +1 -0
  34. package/dist/draco/draco-library-options.cjs +80 -0
  35. package/dist/draco/draco-library-options.cjs.map +7 -0
  36. package/dist/draco/draco-library-options.d.ts +16 -0
  37. package/dist/draco/draco-library-options.d.ts.map +1 -0
  38. package/dist/draco/draco-library-options.js +52 -0
  39. package/dist/draco/draco-library-options.js.map +1 -0
  40. package/dist/draco/draco-loader-options.cjs +37 -0
  41. package/dist/draco/draco-loader-options.cjs.map +7 -0
  42. package/dist/draco/draco-loader-options.d.ts +27 -0
  43. package/dist/draco/draco-loader-options.d.ts.map +1 -0
  44. package/dist/draco/draco-loader-options.js +12 -0
  45. package/dist/draco/draco-loader-options.js.map +1 -0
  46. package/dist/draco/draco-loader-types.cjs +88 -0
  47. package/dist/draco/draco-loader-types.cjs.map +7 -0
  48. package/dist/draco/draco-loader-types.d.ts +69 -0
  49. package/dist/draco/draco-loader-types.d.ts.map +1 -0
  50. package/dist/draco/draco-loader-types.js +54 -0
  51. package/dist/draco/draco-loader-types.js.map +1 -0
  52. package/dist/draco/draco-loader.cjs +51 -0
  53. package/dist/draco/draco-loader.cjs.map +7 -0
  54. package/dist/draco/draco-loader.d.ts +39 -0
  55. package/dist/draco/draco-loader.d.ts.map +1 -0
  56. package/dist/draco/draco-loader.js +22 -0
  57. package/dist/draco/draco-loader.js.map +1 -0
  58. package/dist/draco/draco-wasm-loader-with-parser.cjs +48 -0
  59. package/dist/draco/draco-wasm-loader-with-parser.cjs.map +7 -0
  60. package/dist/draco/draco-wasm-loader-with-parser.d.ts +34 -0
  61. package/dist/draco/draco-wasm-loader-with-parser.d.ts.map +1 -0
  62. package/dist/draco/draco-wasm-loader-with-parser.js +14 -0
  63. package/dist/draco/draco-wasm-loader-with-parser.js.map +1 -0
  64. package/dist/draco/draco-writer.cjs +183 -0
  65. package/dist/draco/draco-writer.cjs.map +7 -0
  66. package/dist/draco/draco-writer.d.ts +97 -0
  67. package/dist/draco/draco-writer.d.ts.map +1 -0
  68. package/dist/draco/draco-writer.js +166 -0
  69. package/dist/draco/draco-writer.js.map +1 -0
  70. package/dist/draco/draco3d/draco3d-types.cjs +76 -0
  71. package/dist/draco/draco3d/draco3d-types.cjs.map +7 -0
  72. package/dist/draco/draco3d/draco3d-types.d.ts +303 -0
  73. package/dist/draco/draco3d/draco3d-types.d.ts.map +1 -0
  74. package/dist/draco/draco3d/draco3d-types.js +47 -0
  75. package/dist/draco/draco3d/draco3d-types.js.map +1 -0
  76. package/dist/draco/draco3d-loader-with-parser.cjs +50 -0
  77. package/dist/draco/draco3d-loader-with-parser.cjs.map +7 -0
  78. package/dist/draco/draco3d-loader-with-parser.d.ts +34 -0
  79. package/dist/draco/draco3d-loader-with-parser.d.ts.map +1 -0
  80. package/dist/draco/draco3d-loader-with-parser.js +21 -0
  81. package/dist/draco/draco3d-loader-with-parser.js.map +1 -0
  82. package/dist/draco/index.cjs +54 -0
  83. package/dist/draco/index.cjs.map +7 -0
  84. package/dist/draco/index.d.ts +13 -0
  85. package/dist/draco/index.d.ts.map +1 -0
  86. package/dist/draco/index.js +13 -0
  87. package/dist/draco/index.js.map +1 -0
  88. package/dist/draco/lib/draco-builder.cjs +660 -0
  89. package/dist/draco/lib/draco-builder.cjs.map +7 -0
  90. package/dist/draco/lib/draco-builder.d.ts +175 -0
  91. package/dist/draco/lib/draco-builder.d.ts.map +1 -0
  92. package/dist/draco/lib/draco-builder.js +612 -0
  93. package/dist/draco/lib/draco-builder.js.map +1 -0
  94. package/dist/draco/lib/draco-library-loader.cjs +47 -0
  95. package/dist/draco/lib/draco-library-loader.cjs.map +7 -0
  96. package/dist/draco/lib/draco-library-loader.d.ts +5 -0
  97. package/dist/draco/lib/draco-library-loader.d.ts.map +1 -0
  98. package/dist/draco/lib/draco-library-loader.js +23 -0
  99. package/dist/draco/lib/draco-library-loader.js.map +1 -0
  100. package/dist/draco/lib/draco-module-loader.cjs +281 -0
  101. package/dist/draco/lib/draco-module-loader.cjs.map +7 -0
  102. package/dist/draco/lib/draco-module-loader.d.ts +25 -0
  103. package/dist/draco/lib/draco-module-loader.d.ts.map +1 -0
  104. package/dist/draco/lib/draco-module-loader.js +220 -0
  105. package/dist/draco/lib/draco-module-loader.js.map +1 -0
  106. package/dist/draco/lib/draco-parser.cjs +598 -0
  107. package/dist/draco/lib/draco-parser.cjs.map +7 -0
  108. package/dist/draco/lib/draco-parser.d.ts +142 -0
  109. package/dist/draco/lib/draco-parser.d.ts.map +1 -0
  110. package/dist/draco/lib/draco-parser.js +595 -0
  111. package/dist/draco/lib/draco-parser.js.map +1 -0
  112. package/dist/draco/lib/draco-types.cjs +19 -0
  113. package/dist/draco/lib/draco-types.cjs.map +7 -0
  114. package/dist/draco/lib/draco-types.d.ts +59 -0
  115. package/dist/draco/lib/draco-types.d.ts.map +1 -0
  116. package/dist/draco/lib/draco-types.js +5 -0
  117. package/dist/draco/lib/draco-types.js.map +1 -0
  118. package/dist/draco/lib/parse-draco.cjs +59 -0
  119. package/dist/draco/lib/parse-draco.cjs.map +7 -0
  120. package/dist/draco/lib/parse-draco.d.ts +22 -0
  121. package/dist/draco/lib/parse-draco.d.ts.map +1 -0
  122. package/dist/draco/lib/parse-draco.js +32 -0
  123. package/dist/draco/lib/parse-draco.js.map +1 -0
  124. package/dist/draco/lib/utils/get-draco-schema.cjs +74 -0
  125. package/dist/draco/lib/utils/get-draco-schema.cjs.map +7 -0
  126. package/dist/draco/lib/utils/get-draco-schema.d.ts +7 -0
  127. package/dist/draco/lib/utils/get-draco-schema.d.ts.map +1 -0
  128. package/dist/draco/lib/utils/get-draco-schema.js +45 -0
  129. package/dist/draco/lib/utils/get-draco-schema.js.map +1 -0
  130. package/dist/draco/lib/utils/version.cjs +31 -0
  131. package/dist/draco/lib/utils/version.cjs.map +7 -0
  132. package/dist/draco/lib/utils/version.d.ts +2 -0
  133. package/dist/draco/lib/utils/version.d.ts.map +1 -0
  134. package/dist/draco/lib/utils/version.js +8 -0
  135. package/dist/draco/lib/utils/version.js.map +1 -0
  136. package/dist/draco/unbundled.cjs +33 -0
  137. package/dist/draco/unbundled.cjs.map +7 -0
  138. package/dist/draco/unbundled.d.ts +3 -0
  139. package/dist/draco/unbundled.d.ts.map +1 -0
  140. package/dist/draco/unbundled.js +5 -0
  141. package/dist/draco/unbundled.js.map +1 -0
  142. package/dist/draco/workers/draco-worker-node.cjs +8 -0
  143. package/dist/draco/workers/draco-worker-node.cjs.map +7 -0
  144. package/dist/draco/workers/draco-worker-node.d.ts +2 -0
  145. package/dist/draco/workers/draco-worker-node.d.ts.map +1 -0
  146. package/dist/draco/workers/draco-worker-node.js +9 -0
  147. package/dist/draco/workers/draco-worker-node.js.map +1 -0
  148. package/dist/draco/workers/draco-worker.cjs +7 -0
  149. package/dist/draco/workers/draco-worker.cjs.map +7 -0
  150. package/dist/draco/workers/draco-worker.d.ts +2 -0
  151. package/dist/draco/workers/draco-worker.d.ts.map +1 -0
  152. package/dist/draco/workers/draco-worker.js +7 -0
  153. package/dist/draco/workers/draco-worker.js.map +1 -0
  154. package/dist/draco/workers/draco-writer-worker-node.cjs +11 -0
  155. package/dist/draco/workers/draco-writer-worker-node.cjs.map +7 -0
  156. package/dist/draco/workers/draco-writer-worker-node.d.cts +2 -0
  157. package/dist/draco/workers/draco-writer-worker-node.d.cts.map +1 -0
  158. package/dist/draco/workers/draco-writer-worker-node.d.ts +2 -0
  159. package/dist/draco/workers/draco-writer-worker-node.d.ts.map +1 -0
  160. package/dist/draco/workers/draco-writer-worker-node.js +9 -0
  161. package/dist/draco/workers/draco-writer-worker-node.js.map +1 -0
  162. package/dist/draco/workers/draco-writer-worker.cjs +10 -0
  163. package/dist/draco/workers/draco-writer-worker.cjs.map +7 -0
  164. package/dist/draco/workers/draco-writer-worker.d.ts +2 -0
  165. package/dist/draco/workers/draco-writer-worker.d.ts.map +1 -0
  166. package/dist/draco/workers/draco-writer-worker.js +7 -0
  167. package/dist/draco/workers/draco-writer-worker.js.map +1 -0
  168. package/dist/draco-javascript-loader.cjs +25 -0
  169. package/dist/draco-javascript-loader.cjs.map +7 -0
  170. package/dist/draco-javascript-loader.d.ts +2 -0
  171. package/dist/draco-javascript-loader.d.ts.map +1 -0
  172. package/dist/draco-javascript-loader.js +3 -0
  173. package/dist/draco-javascript-loader.js.map +1 -0
  174. package/dist/draco-library-options.cjs +36 -0
  175. package/dist/draco-library-options.cjs.map +7 -0
  176. package/dist/draco-library-options.d.ts +3 -0
  177. package/dist/draco-library-options.d.ts.map +1 -0
  178. package/dist/draco-library-options.js +4 -0
  179. package/dist/draco-library-options.js.map +1 -0
  180. package/dist/draco-loader-types.cjs +25 -0
  181. package/dist/draco-loader-types.cjs.map +7 -0
  182. package/dist/draco-loader-types.d.ts +2 -0
  183. package/dist/draco-loader-types.d.ts.map +1 -0
  184. package/dist/draco-loader-types.js +3 -0
  185. package/dist/draco-loader-types.js.map +1 -0
  186. package/dist/draco-loader.cjs +25 -0
  187. package/dist/draco-loader.cjs.map +7 -0
  188. package/dist/draco-loader.d.ts +2 -0
  189. package/dist/draco-loader.d.ts.map +1 -0
  190. package/dist/draco-loader.js +3 -0
  191. package/dist/draco-loader.js.map +1 -0
  192. package/dist/draco-wasm-loader.cjs +25 -0
  193. package/dist/draco-wasm-loader.cjs.map +7 -0
  194. package/dist/draco-wasm-loader.d.ts +2 -0
  195. package/dist/draco-wasm-loader.d.ts.map +1 -0
  196. package/dist/draco-wasm-loader.js +3 -0
  197. package/dist/draco-wasm-loader.js.map +1 -0
  198. package/dist/draco-worker-node.js +28279 -0
  199. package/dist/draco-worker-node.js.map +7 -0
  200. package/dist/draco-worker.js +18145 -0
  201. package/dist/draco-worker.js.map +7 -0
  202. package/dist/draco-writer-worker-node.cjs +27521 -0
  203. package/dist/draco-writer-worker-node.cjs.map +7 -0
  204. package/dist/draco-writer-worker.js +17339 -0
  205. package/dist/draco-writer-worker.js.map +7 -0
  206. package/dist/draco-writer.cjs +25 -0
  207. package/dist/draco-writer.cjs.map +7 -0
  208. package/dist/draco-writer.d.ts +2 -0
  209. package/dist/draco-writer.d.ts.map +1 -0
  210. package/dist/draco-writer.js +3 -0
  211. package/dist/draco-writer.js.map +1 -0
  212. package/dist/draco3d-loader.cjs +25 -0
  213. package/dist/draco3d-loader.cjs.map +7 -0
  214. package/dist/draco3d-loader.d.ts +2 -0
  215. package/dist/draco3d-loader.d.ts.map +1 -0
  216. package/dist/draco3d-loader.js +3 -0
  217. package/dist/draco3d-loader.js.map +1 -0
  218. package/dist/glb-loader-types.cjs +61 -0
  219. package/dist/glb-loader-types.cjs.map +7 -0
  220. package/dist/glb-loader-types.d.ts +2 -0
  221. package/dist/glb-loader-types.d.ts.map +1 -0
  222. package/dist/glb-loader-types.js +2 -0
  223. package/dist/glb-loader-types.js.map +1 -0
  224. package/dist/glb-loader.cjs +48 -0
  225. package/dist/glb-loader.cjs.map +7 -0
  226. package/dist/glb-loader.d.ts +2 -0
  227. package/dist/glb-loader.d.ts.map +1 -0
  228. package/dist/glb-loader.js +2 -0
  229. package/dist/glb-loader.js.map +1 -0
  230. package/dist/glb-writer.cjs +53 -0
  231. package/dist/glb-writer.cjs.map +7 -0
  232. package/dist/glb-writer.d.ts +2 -0
  233. package/dist/glb-writer.d.ts.map +1 -0
  234. package/dist/glb-writer.js +2 -0
  235. package/dist/glb-writer.js.map +1 -0
  236. package/dist/gltf/bundled.cjs +34 -0
  237. package/dist/gltf/bundled.cjs.map +7 -0
  238. package/dist/gltf/bundled.d.ts +5 -0
  239. package/dist/gltf/bundled.d.ts.map +1 -0
  240. package/dist/gltf/bundled.js +6 -0
  241. package/dist/gltf/bundled.js.map +1 -0
  242. package/dist/gltf/glb-loader-types.cjs +59 -0
  243. package/dist/gltf/glb-loader-types.cjs.map +7 -0
  244. package/dist/gltf/glb-loader-types.d.ts +58 -0
  245. package/dist/gltf/glb-loader-types.d.ts.map +1 -0
  246. package/dist/gltf/glb-loader-types.js +24 -0
  247. package/dist/gltf/glb-loader-types.js.map +1 -0
  248. package/dist/gltf/glb-loader.cjs +46 -0
  249. package/dist/gltf/glb-loader.cjs.map +7 -0
  250. package/dist/gltf/glb-loader.d.ts +42 -0
  251. package/dist/gltf/glb-loader.d.ts.map +1 -0
  252. package/dist/gltf/glb-loader.js +24 -0
  253. package/dist/gltf/glb-loader.js.map +1 -0
  254. package/dist/gltf/glb-writer.cjs +51 -0
  255. package/dist/gltf/glb-writer.cjs.map +7 -0
  256. package/dist/gltf/glb-writer.d.ts +30 -0
  257. package/dist/gltf/glb-writer.d.ts.map +1 -0
  258. package/dist/gltf/glb-writer.js +31 -0
  259. package/dist/gltf/glb-writer.js.map +1 -0
  260. package/dist/gltf/gltf-1.schema.json +2075 -0
  261. package/dist/gltf/gltf-2.1.schema.json +1786 -0
  262. package/dist/gltf/gltf-2.schema.json +1786 -0
  263. package/dist/gltf/gltf-all.schema.json +5654 -0
  264. package/dist/gltf/gltf-format.cjs +55 -0
  265. package/dist/gltf/gltf-format.cjs.map +7 -0
  266. package/dist/gltf/gltf-format.d.ts +26 -0
  267. package/dist/gltf/gltf-format.d.ts.map +1 -0
  268. package/dist/gltf/gltf-format.js +29 -0
  269. package/dist/gltf/gltf-format.js.map +1 -0
  270. package/dist/gltf/gltf-loader-types.cjs +71 -0
  271. package/dist/gltf/gltf-loader-types.cjs.map +7 -0
  272. package/dist/gltf/gltf-loader-types.d.ts +71 -0
  273. package/dist/gltf/gltf-loader-types.d.ts.map +1 -0
  274. package/dist/gltf/gltf-loader-types.js +30 -0
  275. package/dist/gltf/gltf-loader-types.js.map +1 -0
  276. package/dist/gltf/gltf-loader.cjs +46 -0
  277. package/dist/gltf/gltf-loader.cjs.map +7 -0
  278. package/dist/gltf/gltf-loader.d.ts +45 -0
  279. package/dist/gltf/gltf-loader.d.ts.map +1 -0
  280. package/dist/gltf/gltf-loader.js +22 -0
  281. package/dist/gltf/gltf-loader.js.map +1 -0
  282. package/dist/gltf/gltf-source.cjs +236 -0
  283. package/dist/gltf/gltf-source.cjs.map +7 -0
  284. package/dist/gltf/gltf-source.d.ts +59 -0
  285. package/dist/gltf/gltf-source.d.ts.map +1 -0
  286. package/dist/gltf/gltf-source.js +230 -0
  287. package/dist/gltf/gltf-source.js.map +1 -0
  288. package/dist/gltf/gltf-writer.cjs +67 -0
  289. package/dist/gltf/gltf-writer.cjs.map +7 -0
  290. package/dist/gltf/gltf-writer.d.ts +14 -0
  291. package/dist/gltf/gltf-writer.d.ts.map +1 -0
  292. package/dist/gltf/gltf-writer.js +44 -0
  293. package/dist/gltf/gltf-writer.js.map +1 -0
  294. package/dist/gltf/gltf.schema.json +5654 -0
  295. package/dist/gltf/index.cjs +225 -0
  296. package/dist/gltf/index.cjs.map +7 -0
  297. package/dist/gltf/index.d.ts +46 -0
  298. package/dist/gltf/index.d.ts.map +1 -0
  299. package/dist/gltf/index.js +39 -0
  300. package/dist/gltf/index.js.map +1 -0
  301. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.cjs +68 -0
  302. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.cjs.map +7 -0
  303. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.d.ts +17 -0
  304. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.d.ts.map +1 -0
  305. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.js +45 -0
  306. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.js.map +1 -0
  307. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.cjs +133 -0
  308. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.cjs.map +7 -0
  309. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.d.ts +8 -0
  310. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.d.ts.map +1 -0
  311. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.js +138 -0
  312. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.js.map +1 -0
  313. package/dist/gltf/lib/api/clean-gltf-v1-fields.cjs +93 -0
  314. package/dist/gltf/lib/api/clean-gltf-v1-fields.cjs.map +7 -0
  315. package/dist/gltf/lib/api/clean-gltf-v1-fields.d.ts +6 -0
  316. package/dist/gltf/lib/api/clean-gltf-v1-fields.d.ts.map +1 -0
  317. package/dist/gltf/lib/api/clean-gltf-v1-fields.js +87 -0
  318. package/dist/gltf/lib/api/clean-gltf-v1-fields.js.map +1 -0
  319. package/dist/gltf/lib/api/convert-gltf-v1-accessors.cjs +128 -0
  320. package/dist/gltf/lib/api/convert-gltf-v1-accessors.cjs.map +7 -0
  321. package/dist/gltf/lib/api/convert-gltf-v1-accessors.d.ts +8 -0
  322. package/dist/gltf/lib/api/convert-gltf-v1-accessors.d.ts.map +1 -0
  323. package/dist/gltf/lib/api/convert-gltf-v1-accessors.js +147 -0
  324. package/dist/gltf/lib/api/convert-gltf-v1-accessors.js.map +1 -0
  325. package/dist/gltf/lib/api/convert-gltf-v1-animations.cjs +81 -0
  326. package/dist/gltf/lib/api/convert-gltf-v1-animations.cjs.map +7 -0
  327. package/dist/gltf/lib/api/convert-gltf-v1-animations.d.ts +4 -0
  328. package/dist/gltf/lib/api/convert-gltf-v1-animations.d.ts.map +1 -0
  329. package/dist/gltf/lib/api/convert-gltf-v1-animations.js +61 -0
  330. package/dist/gltf/lib/api/convert-gltf-v1-animations.js.map +1 -0
  331. package/dist/gltf/lib/api/convert-gltf-v1-materials.cjs +265 -0
  332. package/dist/gltf/lib/api/convert-gltf-v1-materials.cjs.map +7 -0
  333. package/dist/gltf/lib/api/convert-gltf-v1-materials.d.ts +6 -0
  334. package/dist/gltf/lib/api/convert-gltf-v1-materials.d.ts.map +1 -0
  335. package/dist/gltf/lib/api/convert-gltf-v1-materials.js +266 -0
  336. package/dist/gltf/lib/api/convert-gltf-v1-materials.js.map +1 -0
  337. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.cjs +98 -0
  338. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.cjs.map +7 -0
  339. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.d.ts +4 -0
  340. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.d.ts.map +1 -0
  341. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.js +86 -0
  342. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.js.map +1 -0
  343. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.cjs +87 -0
  344. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.cjs.map +7 -0
  345. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.d.ts +4 -0
  346. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.d.ts.map +1 -0
  347. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.js +72 -0
  348. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.js.map +1 -0
  349. package/dist/gltf/lib/api/convert-gltf-v1-skins.cjs +173 -0
  350. package/dist/gltf/lib/api/convert-gltf-v1-skins.cjs.map +7 -0
  351. package/dist/gltf/lib/api/convert-gltf-v1-skins.d.ts +9 -0
  352. package/dist/gltf/lib/api/convert-gltf-v1-skins.d.ts.map +1 -0
  353. package/dist/gltf/lib/api/convert-gltf-v1-skins.js +161 -0
  354. package/dist/gltf/lib/api/convert-gltf-v1-skins.js.map +1 -0
  355. package/dist/gltf/lib/api/gltf-accessors.cjs +83 -0
  356. package/dist/gltf/lib/api/gltf-accessors.cjs.map +7 -0
  357. package/dist/gltf/lib/api/gltf-accessors.d.ts +22 -0
  358. package/dist/gltf/lib/api/gltf-accessors.d.ts.map +1 -0
  359. package/dist/gltf/lib/api/gltf-accessors.js +66 -0
  360. package/dist/gltf/lib/api/gltf-accessors.js.map +1 -0
  361. package/dist/gltf/lib/api/gltf-culling.cjs +73 -0
  362. package/dist/gltf/lib/api/gltf-culling.cjs.map +7 -0
  363. package/dist/gltf/lib/api/gltf-culling.d.ts +12 -0
  364. package/dist/gltf/lib/api/gltf-culling.d.ts.map +1 -0
  365. package/dist/gltf/lib/api/gltf-culling.js +55 -0
  366. package/dist/gltf/lib/api/gltf-culling.js.map +1 -0
  367. package/dist/gltf/lib/api/gltf-extension-data.cjs +102 -0
  368. package/dist/gltf/lib/api/gltf-extension-data.cjs.map +7 -0
  369. package/dist/gltf/lib/api/gltf-extension-data.d.ts +38 -0
  370. package/dist/gltf/lib/api/gltf-extension-data.d.ts.map +1 -0
  371. package/dist/gltf/lib/api/gltf-extension-data.js +75 -0
  372. package/dist/gltf/lib/api/gltf-extension-data.js.map +1 -0
  373. package/dist/gltf/lib/api/gltf-extensions.cjs +123 -0
  374. package/dist/gltf/lib/api/gltf-extensions.cjs.map +7 -0
  375. package/dist/gltf/lib/api/gltf-extensions.d.ts +33 -0
  376. package/dist/gltf/lib/api/gltf-extensions.d.ts.map +1 -0
  377. package/dist/gltf/lib/api/gltf-extensions.js +100 -0
  378. package/dist/gltf/lib/api/gltf-extensions.js.map +1 -0
  379. package/dist/gltf/lib/api/gltf-iterator.cjs +1001 -0
  380. package/dist/gltf/lib/api/gltf-iterator.cjs.map +7 -0
  381. package/dist/gltf/lib/api/gltf-iterator.d.ts +407 -0
  382. package/dist/gltf/lib/api/gltf-iterator.d.ts.map +1 -0
  383. package/dist/gltf/lib/api/gltf-iterator.js +940 -0
  384. package/dist/gltf/lib/api/gltf-iterator.js.map +1 -0
  385. package/dist/gltf/lib/api/gltf-mesh-arrow.cjs +269 -0
  386. package/dist/gltf/lib/api/gltf-mesh-arrow.cjs.map +7 -0
  387. package/dist/gltf/lib/api/gltf-mesh-arrow.d.ts +53 -0
  388. package/dist/gltf/lib/api/gltf-mesh-arrow.d.ts.map +1 -0
  389. package/dist/gltf/lib/api/gltf-mesh-arrow.js +247 -0
  390. package/dist/gltf/lib/api/gltf-mesh-arrow.js.map +1 -0
  391. package/dist/gltf/lib/api/gltf-scenegraph.cjs +615 -0
  392. package/dist/gltf/lib/api/gltf-scenegraph.cjs.map +7 -0
  393. package/dist/gltf/lib/api/gltf-scenegraph.d.ts +183 -0
  394. package/dist/gltf/lib/api/gltf-scenegraph.d.ts.map +1 -0
  395. package/dist/gltf/lib/api/gltf-scenegraph.js +624 -0
  396. package/dist/gltf/lib/api/gltf-scenegraph.js.map +1 -0
  397. package/dist/gltf/lib/api/normalize-gltf-v1.cjs +479 -0
  398. package/dist/gltf/lib/api/normalize-gltf-v1.cjs.map +7 -0
  399. package/dist/gltf/lib/api/normalize-gltf-v1.d.ts +37 -0
  400. package/dist/gltf/lib/api/normalize-gltf-v1.d.ts.map +1 -0
  401. package/dist/gltf/lib/api/normalize-gltf-v1.js +461 -0
  402. package/dist/gltf/lib/api/normalize-gltf-v1.js.map +1 -0
  403. package/dist/gltf/lib/api/repack-gltf-v1-accessors.cjs +405 -0
  404. package/dist/gltf/lib/api/repack-gltf-v1-accessors.cjs.map +7 -0
  405. package/dist/gltf/lib/api/repack-gltf-v1-accessors.d.ts +50 -0
  406. package/dist/gltf/lib/api/repack-gltf-v1-accessors.d.ts.map +1 -0
  407. package/dist/gltf/lib/api/repack-gltf-v1-accessors.js +448 -0
  408. package/dist/gltf/lib/api/repack-gltf-v1-accessors.js.map +1 -0
  409. package/dist/gltf/lib/api/validate-gltf-v1-buffers.cjs +110 -0
  410. package/dist/gltf/lib/api/validate-gltf-v1-buffers.cjs.map +7 -0
  411. package/dist/gltf/lib/api/validate-gltf-v1-buffers.d.ts +4 -0
  412. package/dist/gltf/lib/api/validate-gltf-v1-buffers.d.ts.map +1 -0
  413. package/dist/gltf/lib/api/validate-gltf-v1-buffers.js +111 -0
  414. package/dist/gltf/lib/api/validate-gltf-v1-buffers.js.map +1 -0
  415. package/dist/gltf/lib/api/validate-gltf-v1-cameras.cjs +41 -0
  416. package/dist/gltf/lib/api/validate-gltf-v1-cameras.cjs.map +7 -0
  417. package/dist/gltf/lib/api/validate-gltf-v1-cameras.d.ts +4 -0
  418. package/dist/gltf/lib/api/validate-gltf-v1-cameras.d.ts.map +1 -0
  419. package/dist/gltf/lib/api/validate-gltf-v1-cameras.js +34 -0
  420. package/dist/gltf/lib/api/validate-gltf-v1-cameras.js.map +1 -0
  421. package/dist/gltf/lib/api/validate-gltf-v1-geometry.cjs +121 -0
  422. package/dist/gltf/lib/api/validate-gltf-v1-geometry.cjs.map +7 -0
  423. package/dist/gltf/lib/api/validate-gltf-v1-geometry.d.ts +5 -0
  424. package/dist/gltf/lib/api/validate-gltf-v1-geometry.d.ts.map +1 -0
  425. package/dist/gltf/lib/api/validate-gltf-v1-geometry.js +118 -0
  426. package/dist/gltf/lib/api/validate-gltf-v1-geometry.js.map +1 -0
  427. package/dist/gltf/lib/api/validate-gltf-v1-payloads.cjs +265 -0
  428. package/dist/gltf/lib/api/validate-gltf-v1-payloads.cjs.map +7 -0
  429. package/dist/gltf/lib/api/validate-gltf-v1-payloads.d.ts +4 -0
  430. package/dist/gltf/lib/api/validate-gltf-v1-payloads.d.ts.map +1 -0
  431. package/dist/gltf/lib/api/validate-gltf-v1-payloads.js +268 -0
  432. package/dist/gltf/lib/api/validate-gltf-v1-payloads.js.map +1 -0
  433. package/dist/gltf/lib/encoders/encode-glb.cjs +147 -0
  434. package/dist/gltf/lib/encoders/encode-glb.cjs.map +7 -0
  435. package/dist/gltf/lib/encoders/encode-glb.d.ts +21 -0
  436. package/dist/gltf/lib/encoders/encode-glb.d.ts.map +1 -0
  437. package/dist/gltf/lib/encoders/encode-glb.js +142 -0
  438. package/dist/gltf/lib/encoders/encode-glb.js.map +1 -0
  439. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +212 -0
  440. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +7 -0
  441. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +20 -0
  442. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -0
  443. package/dist/gltf/lib/encoders/encode-gltf-draco.js +187 -0
  444. package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -0
  445. package/dist/gltf/lib/encoders/encode-gltf.cjs +40 -0
  446. package/dist/gltf/lib/encoders/encode-gltf.cjs.map +7 -0
  447. package/dist/gltf/lib/encoders/encode-gltf.d.ts +22 -0
  448. package/dist/gltf/lib/encoders/encode-gltf.d.ts.map +1 -0
  449. package/dist/gltf/lib/encoders/encode-gltf.js +32 -0
  450. package/dist/gltf/lib/encoders/encode-gltf.js.map +1 -0
  451. package/dist/gltf/lib/extensions/EXT_mesh_features.cjs +175 -0
  452. package/dist/gltf/lib/extensions/EXT_mesh_features.cjs.map +7 -0
  453. package/dist/gltf/lib/extensions/EXT_mesh_features.d.ts +22 -0
  454. package/dist/gltf/lib/extensions/EXT_mesh_features.d.ts.map +1 -0
  455. package/dist/gltf/lib/extensions/EXT_mesh_features.js +189 -0
  456. package/dist/gltf/lib/extensions/EXT_mesh_features.js.map +1 -0
  457. package/dist/gltf/lib/extensions/EXT_mesh_polygon.cjs +149 -0
  458. package/dist/gltf/lib/extensions/EXT_mesh_polygon.cjs.map +7 -0
  459. package/dist/gltf/lib/extensions/EXT_mesh_polygon.d.ts +7 -0
  460. package/dist/gltf/lib/extensions/EXT_mesh_polygon.d.ts.map +1 -0
  461. package/dist/gltf/lib/extensions/EXT_mesh_polygon.js +125 -0
  462. package/dist/gltf/lib/extensions/EXT_mesh_polygon.js.map +1 -0
  463. package/dist/gltf/lib/extensions/EXT_meshopt_compression.cjs +37 -0
  464. package/dist/gltf/lib/extensions/EXT_meshopt_compression.cjs.map +7 -0
  465. package/dist/gltf/lib/extensions/EXT_meshopt_compression.d.ts +25 -0
  466. package/dist/gltf/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
  467. package/dist/gltf/lib/extensions/EXT_meshopt_compression.js +29 -0
  468. package/dist/gltf/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  469. package/dist/gltf/lib/extensions/EXT_primitive_voxels.cjs +87 -0
  470. package/dist/gltf/lib/extensions/EXT_primitive_voxels.cjs.map +7 -0
  471. package/dist/gltf/lib/extensions/EXT_primitive_voxels.d.ts +10 -0
  472. package/dist/gltf/lib/extensions/EXT_primitive_voxels.d.ts.map +1 -0
  473. package/dist/gltf/lib/extensions/EXT_primitive_voxels.js +57 -0
  474. package/dist/gltf/lib/extensions/EXT_primitive_voxels.js.map +1 -0
  475. package/dist/gltf/lib/extensions/EXT_structural_metadata.cjs +684 -0
  476. package/dist/gltf/lib/extensions/EXT_structural_metadata.cjs.map +7 -0
  477. package/dist/gltf/lib/extensions/EXT_structural_metadata.d.ts +26 -0
  478. package/dist/gltf/lib/extensions/EXT_structural_metadata.d.ts.map +1 -0
  479. package/dist/gltf/lib/extensions/EXT_structural_metadata.js +786 -0
  480. package/dist/gltf/lib/extensions/EXT_structural_metadata.js.map +1 -0
  481. package/dist/gltf/lib/extensions/EXT_texture_avif.cjs +56 -0
  482. package/dist/gltf/lib/extensions/EXT_texture_avif.cjs.map +7 -0
  483. package/dist/gltf/lib/extensions/EXT_texture_avif.d.ts +15 -0
  484. package/dist/gltf/lib/extensions/EXT_texture_avif.d.ts.map +1 -0
  485. package/dist/gltf/lib/extensions/EXT_texture_avif.js +40 -0
  486. package/dist/gltf/lib/extensions/EXT_texture_avif.js.map +1 -0
  487. package/dist/gltf/lib/extensions/EXT_texture_webp.cjs +53 -0
  488. package/dist/gltf/lib/extensions/EXT_texture_webp.cjs.map +7 -0
  489. package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts +10 -0
  490. package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
  491. package/dist/gltf/lib/extensions/EXT_texture_webp.js +32 -0
  492. package/dist/gltf/lib/extensions/EXT_texture_webp.js.map +1 -0
  493. package/dist/gltf/lib/extensions/KHR_audio_emitter.cjs +128 -0
  494. package/dist/gltf/lib/extensions/KHR_audio_emitter.cjs.map +7 -0
  495. package/dist/gltf/lib/extensions/KHR_audio_emitter.d.ts +8 -0
  496. package/dist/gltf/lib/extensions/KHR_audio_emitter.d.ts.map +1 -0
  497. package/dist/gltf/lib/extensions/KHR_audio_emitter.js +121 -0
  498. package/dist/gltf/lib/extensions/KHR_audio_emitter.js.map +1 -0
  499. package/dist/gltf/lib/extensions/KHR_binary_gltf.cjs +53 -0
  500. package/dist/gltf/lib/extensions/KHR_binary_gltf.cjs.map +7 -0
  501. package/dist/gltf/lib/extensions/KHR_binary_gltf.d.ts +6 -0
  502. package/dist/gltf/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
  503. package/dist/gltf/lib/extensions/KHR_binary_gltf.js +40 -0
  504. package/dist/gltf/lib/extensions/KHR_binary_gltf.js.map +1 -0
  505. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +131 -0
  506. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +7 -0
  507. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts +8 -0
  508. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
  509. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +107 -0
  510. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  511. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +209 -0
  512. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +7 -0
  513. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts +13 -0
  514. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -0
  515. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +160 -0
  516. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -0
  517. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.cjs +110 -0
  518. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.cjs.map +7 -0
  519. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.d.ts +10 -0
  520. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.d.ts.map +1 -0
  521. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.js +87 -0
  522. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.js.map +1 -0
  523. package/dist/gltf/lib/extensions/KHR_meshopt_compression.cjs +37 -0
  524. package/dist/gltf/lib/extensions/KHR_meshopt_compression.cjs.map +7 -0
  525. package/dist/gltf/lib/extensions/KHR_meshopt_compression.d.ts +24 -0
  526. package/dist/gltf/lib/extensions/KHR_meshopt_compression.d.ts.map +1 -0
  527. package/dist/gltf/lib/extensions/KHR_meshopt_compression.js +28 -0
  528. package/dist/gltf/lib/extensions/KHR_meshopt_compression.js.map +1 -0
  529. package/dist/gltf/lib/extensions/KHR_texture_basisu.cjs +47 -0
  530. package/dist/gltf/lib/extensions/KHR_texture_basisu.cjs.map +7 -0
  531. package/dist/gltf/lib/extensions/KHR_texture_basisu.d.ts +10 -0
  532. package/dist/gltf/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
  533. package/dist/gltf/lib/extensions/KHR_texture_basisu.js +26 -0
  534. package/dist/gltf/lib/extensions/KHR_texture_basisu.js.map +1 -0
  535. package/dist/gltf/lib/extensions/KHR_texture_transform.cjs +258 -0
  536. package/dist/gltf/lib/extensions/KHR_texture_transform.cjs.map +7 -0
  537. package/dist/gltf/lib/extensions/KHR_texture_transform.d.ts +10 -0
  538. package/dist/gltf/lib/extensions/KHR_texture_transform.d.ts.map +1 -0
  539. package/dist/gltf/lib/extensions/KHR_texture_transform.js +271 -0
  540. package/dist/gltf/lib/extensions/KHR_texture_transform.js.map +1 -0
  541. package/dist/gltf/lib/extensions/MPEG_audio_spatial.cjs +70 -0
  542. package/dist/gltf/lib/extensions/MPEG_audio_spatial.cjs.map +7 -0
  543. package/dist/gltf/lib/extensions/MPEG_audio_spatial.d.ts +10 -0
  544. package/dist/gltf/lib/extensions/MPEG_audio_spatial.d.ts.map +1 -0
  545. package/dist/gltf/lib/extensions/MPEG_audio_spatial.js +45 -0
  546. package/dist/gltf/lib/extensions/MPEG_audio_spatial.js.map +1 -0
  547. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.cjs +276 -0
  548. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.cjs.map +7 -0
  549. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.d.ts +5 -0
  550. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
  551. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.js +306 -0
  552. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  553. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.cjs +71 -0
  554. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.cjs.map +7 -0
  555. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.d.ts +5 -0
  556. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
  557. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.js +54 -0
  558. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  559. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.cjs +62 -0
  560. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.cjs.map +7 -0
  561. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.d.ts +9 -0
  562. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
  563. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.js +38 -0
  564. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  565. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.cjs +99 -0
  566. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.cjs.map +7 -0
  567. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +5 -0
  568. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
  569. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.js +76 -0
  570. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  571. package/dist/gltf/lib/extensions/meshopt-compression.cjs +114 -0
  572. package/dist/gltf/lib/extensions/meshopt-compression.cjs.map +7 -0
  573. package/dist/gltf/lib/extensions/meshopt-compression.d.ts +48 -0
  574. package/dist/gltf/lib/extensions/meshopt-compression.d.ts.map +1 -0
  575. package/dist/gltf/lib/extensions/meshopt-compression.js +123 -0
  576. package/dist/gltf/lib/extensions/meshopt-compression.js.map +1 -0
  577. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs +280 -0
  578. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs.map +7 -0
  579. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts +84 -0
  580. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -0
  581. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js +358 -0
  582. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
  583. package/dist/gltf/lib/gltf-utils/get-typed-array.cjs +189 -0
  584. package/dist/gltf/lib/gltf-utils/get-typed-array.cjs.map +7 -0
  585. package/dist/gltf/lib/gltf-utils/get-typed-array.d.ts +13 -0
  586. package/dist/gltf/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
  587. package/dist/gltf/lib/gltf-utils/get-typed-array.js +175 -0
  588. package/dist/gltf/lib/gltf-utils/get-typed-array.js.map +1 -0
  589. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.cjs +90 -0
  590. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.cjs.map +7 -0
  591. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
  592. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
  593. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.js +72 -0
  594. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  595. package/dist/gltf/lib/gltf-utils/gltf-constants.cjs +90 -0
  596. package/dist/gltf/lib/gltf-utils/gltf-constants.cjs.map +7 -0
  597. package/dist/gltf/lib/gltf-utils/gltf-constants.d.ts +26 -0
  598. package/dist/gltf/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
  599. package/dist/gltf/lib/gltf-utils/gltf-constants.js +46 -0
  600. package/dist/gltf/lib/gltf-utils/gltf-constants.js.map +1 -0
  601. package/dist/gltf/lib/gltf-utils/gltf-utils.cjs +157 -0
  602. package/dist/gltf/lib/gltf-utils/gltf-utils.cjs.map +7 -0
  603. package/dist/gltf/lib/gltf-utils/gltf-utils.d.ts +17 -0
  604. package/dist/gltf/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
  605. package/dist/gltf/lib/gltf-utils/gltf-utils.js +135 -0
  606. package/dist/gltf/lib/gltf-utils/gltf-utils.js.map +1 -0
  607. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.cjs +91 -0
  608. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.cjs.map +7 -0
  609. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.d.ts +21 -0
  610. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.d.ts.map +1 -0
  611. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.js +77 -0
  612. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.js.map +1 -0
  613. package/dist/gltf/lib/gltf-utils/resolve-url.cjs +61 -0
  614. package/dist/gltf/lib/gltf-utils/resolve-url.cjs.map +7 -0
  615. package/dist/gltf/lib/gltf-utils/resolve-url.d.ts +10 -0
  616. package/dist/gltf/lib/gltf-utils/resolve-url.d.ts.map +1 -0
  617. package/dist/gltf/lib/gltf-utils/resolve-url.js +43 -0
  618. package/dist/gltf/lib/gltf-utils/resolve-url.js.map +1 -0
  619. package/dist/gltf/lib/parsers/parse-glb.cjs +185 -0
  620. package/dist/gltf/lib/parsers/parse-glb.cjs.map +7 -0
  621. package/dist/gltf/lib/parsers/parse-glb.d.ts +20 -0
  622. package/dist/gltf/lib/parsers/parse-glb.d.ts.map +1 -0
  623. package/dist/gltf/lib/parsers/parse-glb.js +216 -0
  624. package/dist/gltf/lib/parsers/parse-glb.js.map +1 -0
  625. package/dist/gltf/lib/parsers/parse-gltf.cjs +365 -0
  626. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +7 -0
  627. package/dist/gltf/lib/parsers/parse-gltf.d.ts +43 -0
  628. package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -0
  629. package/dist/gltf/lib/parsers/parse-gltf.js +372 -0
  630. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -0
  631. package/dist/gltf/lib/types/glb-types.cjs +19 -0
  632. package/dist/gltf/lib/types/glb-types.cjs.map +7 -0
  633. package/dist/gltf/lib/types/glb-types.d.ts +35 -0
  634. package/dist/gltf/lib/types/glb-types.d.ts.map +1 -0
  635. package/dist/gltf/lib/types/glb-types.js +5 -0
  636. package/dist/gltf/lib/types/glb-types.js.map +1 -0
  637. package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs +123 -0
  638. package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs.map +7 -0
  639. package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts +110 -0
  640. package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts.map +1 -0
  641. package/dist/gltf/lib/types/gltf-additional-extension-schemas.js +87 -0
  642. package/dist/gltf/lib/types/gltf-additional-extension-schemas.js.map +1 -0
  643. package/dist/gltf/lib/types/gltf-audio-extension-schemas.cjs +189 -0
  644. package/dist/gltf/lib/types/gltf-audio-extension-schemas.cjs.map +7 -0
  645. package/dist/gltf/lib/types/gltf-audio-extension-schemas.d.ts +192 -0
  646. package/dist/gltf/lib/types/gltf-audio-extension-schemas.d.ts.map +1 -0
  647. package/dist/gltf/lib/types/gltf-audio-extension-schemas.js +154 -0
  648. package/dist/gltf/lib/types/gltf-audio-extension-schemas.js.map +1 -0
  649. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.cjs +19 -0
  650. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.cjs.map +7 -0
  651. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.d.ts +421 -0
  652. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -0
  653. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.js +5 -0
  654. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
  655. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs +19 -0
  656. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs.map +7 -0
  657. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts +39 -0
  658. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts.map +1 -0
  659. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.js +5 -0
  660. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.js.map +1 -0
  661. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.cjs +19 -0
  662. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.cjs.map +7 -0
  663. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.d.ts +49 -0
  664. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -0
  665. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.js +5 -0
  666. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.js.map +1 -0
  667. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.cjs +19 -0
  668. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.cjs.map +7 -0
  669. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.d.ts +334 -0
  670. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -0
  671. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.js +5 -0
  672. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -0
  673. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.cjs +19 -0
  674. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.cjs.map +7 -0
  675. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.d.ts +42 -0
  676. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.d.ts.map +1 -0
  677. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.js +5 -0
  678. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.js.map +1 -0
  679. package/dist/gltf/lib/types/gltf-extension-schemas.cjs +83 -0
  680. package/dist/gltf/lib/types/gltf-extension-schemas.cjs.map +7 -0
  681. package/dist/gltf/lib/types/gltf-extension-schemas.d.ts +229 -0
  682. package/dist/gltf/lib/types/gltf-extension-schemas.d.ts.map +1 -0
  683. package/dist/gltf/lib/types/gltf-extension-schemas.js +53 -0
  684. package/dist/gltf/lib/types/gltf-extension-schemas.js.map +1 -0
  685. package/dist/gltf/lib/types/gltf-interactivity.cjs +34 -0
  686. package/dist/gltf/lib/types/gltf-interactivity.cjs.map +7 -0
  687. package/dist/gltf/lib/types/gltf-interactivity.d.ts +131 -0
  688. package/dist/gltf/lib/types/gltf-interactivity.d.ts.map +1 -0
  689. package/dist/gltf/lib/types/gltf-interactivity.js +13 -0
  690. package/dist/gltf/lib/types/gltf-interactivity.js.map +1 -0
  691. package/dist/gltf/lib/types/gltf-json-schema.cjs +19 -0
  692. package/dist/gltf/lib/types/gltf-json-schema.cjs.map +7 -0
  693. package/dist/gltf/lib/types/gltf-json-schema.d.ts +841 -0
  694. package/dist/gltf/lib/types/gltf-json-schema.d.ts.map +1 -0
  695. package/dist/gltf/lib/types/gltf-json-schema.js +3 -0
  696. package/dist/gltf/lib/types/gltf-json-schema.js.map +1 -0
  697. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.cjs +19 -0
  698. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.cjs.map +7 -0
  699. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.d.ts +46 -0
  700. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.d.ts.map +1 -0
  701. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.js +5 -0
  702. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.js.map +1 -0
  703. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.cjs +19 -0
  704. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.cjs.map +7 -0
  705. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.d.ts +20 -0
  706. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.d.ts.map +1 -0
  707. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.js +5 -0
  708. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.js.map +1 -0
  709. package/dist/gltf/lib/types/gltf-official-json-schemas.cjs +17840 -0
  710. package/dist/gltf/lib/types/gltf-official-json-schemas.cjs.map +7 -0
  711. package/dist/gltf/lib/types/gltf-official-json-schemas.d.ts +14 -0
  712. package/dist/gltf/lib/types/gltf-official-json-schemas.d.ts.map +1 -0
  713. package/dist/gltf/lib/types/gltf-official-json-schemas.js +17751 -0
  714. package/dist/gltf/lib/types/gltf-official-json-schemas.js.map +1 -0
  715. package/dist/gltf/lib/types/gltf-shape-schema.cjs +19 -0
  716. package/dist/gltf/lib/types/gltf-shape-schema.cjs.map +7 -0
  717. package/dist/gltf/lib/types/gltf-shape-schema.d.ts +49 -0
  718. package/dist/gltf/lib/types/gltf-shape-schema.d.ts.map +1 -0
  719. package/dist/gltf/lib/types/gltf-shape-schema.js +5 -0
  720. package/dist/gltf/lib/types/gltf-shape-schema.js.map +1 -0
  721. package/dist/gltf/lib/types/gltf-types.cjs +19 -0
  722. package/dist/gltf/lib/types/gltf-types.cjs.map +7 -0
  723. package/dist/gltf/lib/types/gltf-types.d.ts +53 -0
  724. package/dist/gltf/lib/types/gltf-types.d.ts.map +1 -0
  725. package/dist/gltf/lib/types/gltf-types.js +5 -0
  726. package/dist/gltf/lib/types/gltf-types.js.map +1 -0
  727. package/dist/gltf/lib/types/gltf-vector-topology.cjs +19 -0
  728. package/dist/gltf/lib/types/gltf-vector-topology.cjs.map +7 -0
  729. package/dist/gltf/lib/types/gltf-vector-topology.d.ts +56 -0
  730. package/dist/gltf/lib/types/gltf-vector-topology.d.ts.map +1 -0
  731. package/dist/gltf/lib/types/gltf-vector-topology.js +5 -0
  732. package/dist/gltf/lib/types/gltf-vector-topology.js.map +1 -0
  733. package/dist/gltf/lib/types/gltf-version-zod-schemas.cjs +423 -0
  734. package/dist/gltf/lib/types/gltf-version-zod-schemas.cjs.map +7 -0
  735. package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts +1129 -0
  736. package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts.map +1 -0
  737. package/dist/gltf/lib/types/gltf-version-zod-schemas.js +333 -0
  738. package/dist/gltf/lib/types/gltf-version-zod-schemas.js.map +1 -0
  739. package/dist/gltf/lib/types/gltf-zod-schema.cjs +462 -0
  740. package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +7 -0
  741. package/dist/gltf/lib/types/gltf-zod-schema.d.ts +1595 -0
  742. package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -0
  743. package/dist/gltf/lib/types/gltf-zod-schema.js +497 -0
  744. package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -0
  745. package/dist/gltf/lib/utils/assert.cjs +35 -0
  746. package/dist/gltf/lib/utils/assert.cjs.map +7 -0
  747. package/dist/gltf/lib/utils/assert.d.ts +2 -0
  748. package/dist/gltf/lib/utils/assert.d.ts.map +1 -0
  749. package/dist/gltf/lib/utils/assert.js +12 -0
  750. package/dist/gltf/lib/utils/assert.js.map +1 -0
  751. package/dist/gltf/lib/utils/version.cjs +31 -0
  752. package/dist/gltf/lib/utils/version.cjs.map +7 -0
  753. package/dist/gltf/lib/utils/version.d.ts +2 -0
  754. package/dist/gltf/lib/utils/version.d.ts.map +1 -0
  755. package/dist/gltf/lib/utils/version.js +8 -0
  756. package/dist/gltf/lib/utils/version.js.map +1 -0
  757. package/dist/gltf/libs/README.md +12 -0
  758. package/dist/gltf/libs/meshopt-decoder.d.mts +15 -0
  759. package/dist/gltf/libs/meshopt-decoder.mjs +196 -0
  760. package/dist/gltf/libs/meshoptimizer-LICENSE.md +21 -0
  761. package/dist/gltf/mesh-arrow.cjs +31 -0
  762. package/dist/gltf/mesh-arrow.cjs.map +7 -0
  763. package/dist/gltf/mesh-arrow.d.ts +2 -0
  764. package/dist/gltf/mesh-arrow.d.ts.map +1 -0
  765. package/dist/gltf/mesh-arrow.js +5 -0
  766. package/dist/gltf/mesh-arrow.js.map +1 -0
  767. package/dist/gltf/meshopt/meshopt-decoder.cjs +93 -0
  768. package/dist/gltf/meshopt/meshopt-decoder.cjs.map +7 -0
  769. package/dist/gltf/meshopt/meshopt-decoder.d.ts +78 -0
  770. package/dist/gltf/meshopt/meshopt-decoder.d.ts.map +1 -0
  771. package/dist/gltf/meshopt/meshopt-decoder.js +111 -0
  772. package/dist/gltf/meshopt/meshopt-decoder.js.map +1 -0
  773. package/dist/gltf/meshopt/meshopt-module-loader.cjs +43 -0
  774. package/dist/gltf/meshopt/meshopt-module-loader.cjs.map +7 -0
  775. package/dist/gltf/meshopt/meshopt-module-loader.d.ts +3 -0
  776. package/dist/gltf/meshopt/meshopt-module-loader.d.ts.map +1 -0
  777. package/dist/gltf/meshopt/meshopt-module-loader.js +8 -0
  778. package/dist/gltf/meshopt/meshopt-module-loader.js.map +1 -0
  779. package/dist/gltf/schema.cjs +60 -0
  780. package/dist/gltf/schema.cjs.map +7 -0
  781. package/dist/gltf/schema.d.ts +6 -0
  782. package/dist/gltf/schema.d.ts.map +1 -0
  783. package/dist/gltf/schema.js +10 -0
  784. package/dist/gltf/schema.js.map +1 -0
  785. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_binary_glTF/image.KHR_binary_glTF.schema.json +34 -0
  786. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_binary_glTF/shader.KHR_binary_glTF.schema.json +16 -0
  787. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/glTF.KHR_materials_common.schema.json +272 -0
  788. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.ambient.schema.json +57 -0
  789. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.directional.schema.json +57 -0
  790. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.point.schema.json +72 -0
  791. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.schema.json +258 -0
  792. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.spot.schema.json +82 -0
  793. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/node.KHR_materials_common.schema.json +23 -0
  794. package/dist/gltf/schemas/extensions/1.0/Vendor/CESIUM_RTC/CESIUM_RTC.schema.json +21 -0
  795. package/dist/gltf/schemas/extensions/1.0/Vendor/WEB3D_quantized_attributes/WEB3D_quantized_attributes.accessor.schema.json +40 -0
  796. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness/glTF.KHR_materials_pbrSpecularGlossiness.schema.json +141 -0
  797. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/glTF.KHR_techniques_webgl.schema.json +417 -0
  798. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/material.KHR_techniques_webgl.schema.json +133 -0
  799. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/program.schema.json +97 -0
  800. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/shader.schema.json +109 -0
  801. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.attribute.schema.json +51 -0
  802. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.schema.json +267 -0
  803. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.uniform.schema.json +185 -0
  804. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/uniform.value.schema.json +98 -0
  805. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_xmp/glTF.KHR_xmp.schema.json +61 -0
  806. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_xmp/node.KHR_xmp.schema.json +59 -0
  807. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_animation_pointer/animation.channel.target.KHR_animation_pointer.schema.json +51 -0
  808. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_draco_mesh_compression/mesh.primitive.KHR_draco_mesh_compression.schema.json +67 -0
  809. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_gaussian_splatting/mesh.primitive.KHR_gaussian_splatting.schema.json +100 -0
  810. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/declaration.KHR_interactivity.schema.json +106 -0
  811. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/event.KHR_interactivity.schema.json +90 -0
  812. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/glTF.KHR_interactivity.schema.json +546 -0
  813. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/graph.KHR_interactivity.schema.json +512 -0
  814. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/node.KHR_interactivity.schema.json +183 -0
  815. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/type.KHR_interactivity.schema.json +96 -0
  816. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/variable.KHR_interactivity.schema.json +64 -0
  817. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/glTF.KHR_lights_punctual.schema.json +175 -0
  818. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/light.schema.json +151 -0
  819. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/light.spot.schema.json +58 -0
  820. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/node.KHR_lights_punctual.schema.json +58 -0
  821. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_anisotropy/material.KHR_materials_anisotropy.schema.json +103 -0
  822. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_clearcoat/material.KHR_materials_clearcoat.schema.json +144 -0
  823. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/material.KHR_materials_diffuse_transmission.schema.json +123 -0
  824. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_dispersion/material.KHR_materials_dispersion.schema.json +50 -0
  825. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_emissive_strength/material.KHR_materials_emissive_strength.schema.json +49 -0
  826. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_ior/material.KHR_materials_ior.schema.json +58 -0
  827. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_iridescence/material.KHR_materials_iridescence.schema.json +125 -0
  828. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_sheen/material.KHR_materials_sheen.schema.json +122 -0
  829. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_specular/material.KHR_materials_specular.schema.json +122 -0
  830. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_transmission/material.KHR_materials_transmission.schema.json +97 -0
  831. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_unlit/material.KHR_materials_unlit.schema.json +43 -0
  832. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_variants/glTF.KHR_materials_variants.schema.json +88 -0
  833. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_variants/mesh.primitive.KHR_materials_variants.schema.json +100 -0
  834. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_volume/material.KHR_materials_volume.schema.json +119 -0
  835. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_meshopt_compression/buffer.KHR_meshopt_compression.schema.json +48 -0
  836. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_meshopt_compression/bufferView.KHR_meshopt_compression.schema.json +106 -0
  837. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_hoverability/node.KHR_node_hoverability.schema.json +49 -0
  838. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_selectability/node.KHR_node_selectability.schema.json +49 -0
  839. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_visibility/node.KHR_node_visibility.schema.json +49 -0
  840. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_texture_basisu/texture.KHR_texture_basisu.schema.json +56 -0
  841. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_texture_transform/textureInfo.KHR_texture_transform.schema.json +79 -0
  842. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_xmp_json_ld/KHR_xmp_json_ld.schema.json +59 -0
  843. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_xmp_json_ld/glTF.KHR_xmp_json_ld.schema.json +70 -0
  844. package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_clearcoat_specular/glTF.ADOBE_materials_clearcoat_specular.schema.json +105 -0
  845. package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_clearcoat_tint/material.ADOBE_materials_clearcoat_tint.schema.json +106 -0
  846. package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_thin_transparency/glTF.ADOBE_materials_thin_transparency.schema.json +105 -0
  847. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/articulation.schema.json +177 -0
  848. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/articulation.stage.schema.json +136 -0
  849. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/gltf.AGI_articulations.schema.json +200 -0
  850. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/node.AGI_articulations.schema.json +53 -0
  851. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/gltf.AGI_stk_metadata.schema.json +81 -0
  852. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/node.AGI_stk_metadata.schema.json +53 -0
  853. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/solarPanelGroup.schema.json +59 -0
  854. package/dist/gltf/schemas/extensions/2.0/Vendor/CESIUM_primitive_outline/primitive.CESIUM_primitive_outline.schema.json +56 -0
  855. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/glTF.EXT_lights_ies.schema.json +132 -0
  856. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/lightProfile.schema.json +107 -0
  857. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/node.EXT_lights_ies.schema.json +80 -0
  858. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/glTF.EXT_lights_image_based.schema.json +145 -0
  859. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/light.schema.json +121 -0
  860. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/scene.EXT_lights_image_based.schema.json +58 -0
  861. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/glTF.EXT_mesh_gpu_instancing.schema.json +56 -0
  862. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_manifold/mesh.EXT_mesh_manifold.schema.json +175 -0
  863. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/lineString.schema.json +70 -0
  864. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/primitive.EXT_mesh_primitive_edge_visibility.schema.json +119 -0
  865. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_restart/EXT_mesh_primitive_restart.schema.json +97 -0
  866. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_restart/primitiveGroup.schema.json +72 -0
  867. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_meshopt_compression/buffer.EXT_meshopt_compression.schema.json +48 -0
  868. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_meshopt_compression/bufferView.EXT_meshopt_compression.schema.json +105 -0
  869. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_texture_astc/texture.EXT_texture_astc.schema.json +56 -0
  870. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_texture_webp/glTF.EXT_texture_webp.schema.json +56 -0
  871. package/dist/gltf/schemas/extensions/2.0/Vendor/FB_geometry_metadata/scene.FB_geometry_metadata.schema.json +97 -0
  872. package/dist/gltf/schemas/extensions/2.0/Vendor/FB_geometry_metadata/sceneBounds.schema.json +64 -0
  873. package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/GRIFFEL_bim_data.schema.json +164 -0
  874. package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/glTF.GRIFFEL_bim_data.schema.json +107 -0
  875. package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/node.GRIFFEL_bim_data.schema.json +95 -0
  876. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_accessor_timed/MPEG_accessor_timed.schema.json +85 -0
  877. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_animation_timing/MPEG_animation_timing.schema.json +60 -0
  878. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.listener.schema.json +51 -0
  879. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.reverb.property.schema.json +63 -0
  880. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.reverb.schema.json +107 -0
  881. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.schema.json +276 -0
  882. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.source.schema.json +139 -0
  883. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_buffer_circular/MPEG_buffer_circular.schema.json +80 -0
  884. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.alternative.schema.json +110 -0
  885. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.alternative.track.schema.json +56 -0
  886. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.schema.json +195 -0
  887. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.schema.json +237 -0
  888. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_mesh_linking/MPEG_mesh_linking.schema.json +89 -0
  889. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_scene_dynamic/MPEG_scene_dynamic.schema.json +69 -0
  890. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_texture_video/MPEG_texture_video.schema.json +109 -0
  891. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_viewport_recommended/MPEG_viewport_recommended.schema.json +119 -0
  892. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_viewport_recommended/MPEG_viewport_recommended.viewport.schema.json +96 -0
  893. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_lod/glTF.MSFT_lod.schema.json +51 -0
  894. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_packing_normalRoughnessMetallic/glTF.MSFT_packing_normalRoughnessMetallic.schema.json +62 -0
  895. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_packing_occlusionRoughnessMetallic/glTF.MSFT_packing_occlusionRoughnessMetallic.schema.json +90 -0
  896. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_texture_dds/glTF.MSFT_texture_dds.schema.json +56 -0
  897. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/bsdfMeasurement.schema.json +109 -0
  898. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.argument.schema.json +228 -0
  899. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.schema.json +292 -0
  900. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.type.schema.json +86 -0
  901. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/glTF.NV_materials_mdl.schema.json +451 -0
  902. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/material.NV_materials_mdl.schema.json +60 -0
  903. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/module.schema.json +114 -0
  904. package/dist/gltf/unbundled.cjs +34 -0
  905. package/dist/gltf/unbundled.cjs.map +7 -0
  906. package/dist/gltf/unbundled.d.ts +5 -0
  907. package/dist/gltf/unbundled.d.ts.map +1 -0
  908. package/dist/gltf/unbundled.js +6 -0
  909. package/dist/gltf/unbundled.js.map +1 -0
  910. package/dist/gltf/webp/webp.cjs +53 -0
  911. package/dist/gltf/webp/webp.cjs.map +7 -0
  912. package/dist/gltf/webp/webp.d.ts +7 -0
  913. package/dist/gltf/webp/webp.d.ts.map +1 -0
  914. package/dist/gltf/webp/webp.js +38 -0
  915. package/dist/gltf/webp/webp.js.map +1 -0
  916. package/dist/gltf-loader-types.cjs +73 -0
  917. package/dist/gltf-loader-types.cjs.map +7 -0
  918. package/dist/gltf-loader-types.d.ts +2 -0
  919. package/dist/gltf-loader-types.d.ts.map +1 -0
  920. package/dist/gltf-loader-types.js +2 -0
  921. package/dist/gltf-loader-types.js.map +1 -0
  922. package/dist/gltf-loader.cjs +48 -0
  923. package/dist/gltf-loader.cjs.map +7 -0
  924. package/dist/gltf-loader.d.ts +2 -0
  925. package/dist/gltf-loader.d.ts.map +1 -0
  926. package/dist/gltf-loader.js +2 -0
  927. package/dist/gltf-loader.js.map +1 -0
  928. package/dist/gltf-source.cjs +238 -0
  929. package/dist/gltf-source.cjs.map +7 -0
  930. package/dist/gltf-source.d.ts +2 -0
  931. package/dist/gltf-source.d.ts.map +1 -0
  932. package/dist/gltf-source.js +2 -0
  933. package/dist/gltf-source.js.map +1 -0
  934. package/dist/gltf-writer.cjs +69 -0
  935. package/dist/gltf-writer.cjs.map +7 -0
  936. package/dist/gltf-writer.d.ts +2 -0
  937. package/dist/gltf-writer.d.ts.map +1 -0
  938. package/dist/gltf-writer.js +2 -0
  939. package/dist/gltf-writer.js.map +1 -0
  940. package/dist/index.cjs +56 -809
  941. package/dist/index.cjs.map +4 -3
  942. package/dist/index.d.ts +17 -2
  943. package/dist/index.d.ts.map +1 -1
  944. package/dist/index.js +14 -1
  945. package/dist/index.js.map +1 -1
  946. package/dist/libs/DRACO-LICENSE +252 -0
  947. package/dist/libs/README.md +20 -0
  948. package/dist/libs/draco_decoder.js +34 -0
  949. package/dist/libs/draco_decoder.mjs +37 -0
  950. package/dist/libs/draco_decoder.wasm +0 -0
  951. package/dist/libs/draco_decoder_gltf.wasm +0 -0
  952. package/dist/libs/draco_encoder.js +98 -0
  953. package/dist/libs/draco_encoder.mjs +101 -0
  954. package/dist/libs/draco_encoder.wasm +0 -0
  955. package/dist/libs/draco_wasm_wrapper.js +117 -0
  956. package/dist/libs/draco_wasm_wrapper.mjs +120 -0
  957. package/dist/libs/draco_wasm_wrapper_gltf.js +116 -0
  958. package/dist/libs/draco_wasm_wrapper_gltf.mjs +119 -0
  959. package/dist/mtl-loader-types.cjs +64 -0
  960. package/dist/mtl-loader-types.cjs.map +7 -0
  961. package/dist/mtl-loader-types.d.ts +2 -0
  962. package/dist/mtl-loader-types.d.ts.map +1 -0
  963. package/dist/mtl-loader-types.js +2 -0
  964. package/dist/mtl-loader-types.js.map +1 -0
  965. package/dist/mtl-loader.cjs +47 -0
  966. package/dist/mtl-loader.cjs.map +7 -0
  967. package/dist/mtl-loader.d.ts +2 -0
  968. package/dist/mtl-loader.d.ts.map +1 -0
  969. package/dist/mtl-loader.js +2 -0
  970. package/dist/mtl-loader.js.map +1 -0
  971. package/dist/obj/bundled.cjs +44 -0
  972. package/dist/obj/bundled.cjs.map +7 -0
  973. package/dist/obj/bundled.d.ts +7 -0
  974. package/dist/obj/bundled.d.ts.map +1 -0
  975. package/dist/obj/bundled.js +8 -0
  976. package/dist/obj/bundled.js.map +1 -0
  977. package/dist/obj/index.cjs +49 -0
  978. package/dist/obj/index.cjs.map +7 -0
  979. package/dist/obj/index.d.ts +13 -0
  980. package/dist/obj/index.d.ts.map +1 -0
  981. package/dist/obj/index.js +16 -0
  982. package/dist/obj/index.js.map +1 -0
  983. package/dist/obj/lib/get-obj-schema.cjs +60 -0
  984. package/dist/obj/lib/get-obj-schema.cjs.map +7 -0
  985. package/dist/obj/lib/get-obj-schema.d.ts +4 -0
  986. package/dist/obj/lib/get-obj-schema.d.ts.map +1 -0
  987. package/dist/obj/lib/get-obj-schema.js +36 -0
  988. package/dist/obj/lib/get-obj-schema.js.map +1 -0
  989. package/dist/obj/lib/obj-types.cjs +2 -0
  990. package/dist/obj/lib/obj-types.cjs.map +7 -0
  991. package/dist/obj/lib/obj-types.d.ts +1 -0
  992. package/dist/obj/lib/obj-types.d.ts.map +1 -0
  993. package/dist/obj/lib/obj-types.js +5 -0
  994. package/dist/obj/lib/obj-types.js.map +1 -0
  995. package/dist/obj/lib/parse-mtl.cjs +97 -0
  996. package/dist/obj/lib/parse-mtl.cjs.map +7 -0
  997. package/dist/obj/lib/parse-mtl.d.ts +34 -0
  998. package/dist/obj/lib/parse-mtl.d.ts.map +1 -0
  999. package/dist/obj/lib/parse-mtl.js +200 -0
  1000. package/dist/obj/lib/parse-mtl.js.map +1 -0
  1001. package/dist/obj/lib/parse-obj-meshes.cjs +389 -0
  1002. package/dist/obj/lib/parse-obj-meshes.cjs.map +7 -0
  1003. package/dist/obj/lib/parse-obj-meshes.d.ts +5 -0
  1004. package/dist/obj/lib/parse-obj-meshes.d.ts.map +1 -0
  1005. package/dist/obj/lib/parse-obj-meshes.js +441 -0
  1006. package/dist/obj/lib/parse-obj-meshes.js.map +1 -0
  1007. package/dist/obj/lib/parse-obj.cjs +96 -0
  1008. package/dist/obj/lib/parse-obj.cjs.map +7 -0
  1009. package/dist/obj/lib/parse-obj.d.ts +3 -0
  1010. package/dist/obj/lib/parse-obj.d.ts.map +1 -0
  1011. package/dist/obj/lib/parse-obj.js +72 -0
  1012. package/dist/obj/lib/parse-obj.js.map +1 -0
  1013. package/dist/obj/mtl-format.cjs +39 -0
  1014. package/dist/obj/mtl-format.cjs.map +7 -0
  1015. package/dist/obj/mtl-format.d.ts +14 -0
  1016. package/dist/obj/mtl-format.d.ts.map +1 -0
  1017. package/dist/obj/mtl-format.js +17 -0
  1018. package/dist/obj/mtl-format.js.map +1 -0
  1019. package/dist/obj/mtl-loader-types.cjs +62 -0
  1020. package/dist/obj/mtl-loader-types.cjs.map +7 -0
  1021. package/dist/obj/mtl-loader-types.d.ts +73 -0
  1022. package/dist/obj/mtl-loader-types.d.ts.map +1 -0
  1023. package/dist/obj/mtl-loader-types.js +34 -0
  1024. package/dist/obj/mtl-loader-types.js.map +1 -0
  1025. package/dist/obj/mtl-loader.cjs +45 -0
  1026. package/dist/obj/mtl-loader.cjs.map +7 -0
  1027. package/dist/obj/mtl-loader.d.ts +51 -0
  1028. package/dist/obj/mtl-loader.d.ts.map +1 -0
  1029. package/dist/obj/mtl-loader.js +25 -0
  1030. package/dist/obj/mtl-loader.js.map +1 -0
  1031. package/dist/obj/obj-format.cjs +39 -0
  1032. package/dist/obj/obj-format.cjs.map +7 -0
  1033. package/dist/obj/obj-format.d.ts +13 -0
  1034. package/dist/obj/obj-format.d.ts.map +1 -0
  1035. package/dist/obj/obj-format.js +16 -0
  1036. package/dist/obj/obj-format.js.map +1 -0
  1037. package/dist/obj/obj-loader-types.cjs +69 -0
  1038. package/dist/obj/obj-loader-types.cjs.map +7 -0
  1039. package/dist/obj/obj-loader-types.d.ts +112 -0
  1040. package/dist/obj/obj-loader-types.d.ts.map +1 -0
  1041. package/dist/obj/obj-loader-types.js +41 -0
  1042. package/dist/obj/obj-loader-types.js.map +1 -0
  1043. package/dist/obj/obj-loader.cjs +161 -0
  1044. package/dist/obj/obj-loader.cjs.map +7 -0
  1045. package/dist/obj/obj-loader.d.ts +40 -0
  1046. package/dist/obj/obj-loader.d.ts.map +1 -0
  1047. package/dist/obj/obj-loader.js +142 -0
  1048. package/dist/obj/obj-loader.js.map +1 -0
  1049. package/dist/obj/obj-writer.cjs +165 -0
  1050. package/dist/obj/obj-writer.cjs.map +7 -0
  1051. package/dist/obj/obj-writer.d.ts +35 -0
  1052. package/dist/obj/obj-writer.d.ts.map +1 -0
  1053. package/dist/obj/obj-writer.js +123 -0
  1054. package/dist/obj/obj-writer.js.map +1 -0
  1055. package/dist/obj/unbundled.cjs +44 -0
  1056. package/dist/obj/unbundled.cjs.map +7 -0
  1057. package/dist/obj/unbundled.d.ts +7 -0
  1058. package/dist/obj/unbundled.d.ts.map +1 -0
  1059. package/dist/obj/unbundled.js +8 -0
  1060. package/dist/obj/unbundled.js.map +1 -0
  1061. package/dist/obj/workers/obj-worker.cjs +23 -0
  1062. package/dist/obj/workers/obj-worker.cjs.map +7 -0
  1063. package/dist/obj/workers/obj-worker.d.ts +2 -0
  1064. package/dist/obj/workers/obj-worker.d.ts.map +1 -0
  1065. package/dist/obj/workers/obj-worker.js +23 -0
  1066. package/dist/obj/workers/obj-worker.js.map +1 -0
  1067. package/dist/obj-loader-types.cjs +71 -0
  1068. package/dist/obj-loader-types.cjs.map +7 -0
  1069. package/dist/obj-loader-types.d.ts +2 -0
  1070. package/dist/obj-loader-types.d.ts.map +1 -0
  1071. package/dist/obj-loader-types.js +2 -0
  1072. package/dist/obj-loader-types.js.map +1 -0
  1073. package/dist/obj-loader.cjs +163 -0
  1074. package/dist/obj-loader.cjs.map +7 -0
  1075. package/dist/obj-loader.d.ts +2 -0
  1076. package/dist/obj-loader.d.ts.map +1 -0
  1077. package/dist/obj-loader.js +2 -0
  1078. package/dist/obj-loader.js.map +1 -0
  1079. package/dist/obj-worker.js +17742 -0
  1080. package/dist/obj-writer.cjs +167 -0
  1081. package/dist/obj-writer.cjs.map +7 -0
  1082. package/dist/obj-writer.d.ts +2 -0
  1083. package/dist/obj-writer.d.ts.map +1 -0
  1084. package/dist/obj-writer.js +2 -0
  1085. package/dist/obj-writer.js.map +1 -0
  1086. package/dist/usd/index.cjs +31 -0
  1087. package/dist/usd/index.cjs.map +7 -0
  1088. package/dist/usd/index.d.ts +3 -0
  1089. package/dist/usd/index.d.ts.map +1 -0
  1090. package/dist/usd/index.js +5 -0
  1091. package/dist/usd/index.js.map +1 -0
  1092. package/dist/usd/lib/parse-usd.cjs +294 -0
  1093. package/dist/usd/lib/parse-usd.cjs.map +7 -0
  1094. package/dist/{lib → usd/lib}/parse-usd.d.ts +1 -1
  1095. package/dist/usd/lib/parse-usd.d.ts.map +1 -0
  1096. package/dist/usd/lib/parse-usd.js.map +1 -0
  1097. package/dist/usd/lib/parse-usda.cjs +406 -0
  1098. package/dist/usd/lib/parse-usda.cjs.map +7 -0
  1099. package/dist/usd/lib/parse-usda.d.ts.map +1 -0
  1100. package/dist/usd/lib/parse-usda.js.map +1 -0
  1101. package/dist/usd/lib/parse-usdz.cjs +76 -0
  1102. package/dist/usd/lib/parse-usdz.cjs.map +7 -0
  1103. package/dist/usd/lib/parse-usdz.d.ts.map +1 -0
  1104. package/dist/usd/lib/parse-usdz.js.map +1 -0
  1105. package/dist/usd/lib/usd-types.cjs +19 -0
  1106. package/dist/usd/lib/usd-types.cjs.map +7 -0
  1107. package/dist/{lib → usd/lib}/usd-types.d.ts +1 -1
  1108. package/dist/usd/lib/usd-types.d.ts.map +1 -0
  1109. package/dist/usd/lib/usd-types.js.map +1 -0
  1110. package/dist/usd/usd-loader-types.cjs +67 -0
  1111. package/dist/usd/usd-loader-types.cjs.map +7 -0
  1112. package/dist/usd/usd-loader-types.d.ts +50 -0
  1113. package/dist/usd/usd-loader-types.d.ts.map +1 -0
  1114. package/dist/usd/usd-loader-types.js +35 -0
  1115. package/dist/usd/usd-loader-types.js.map +1 -0
  1116. package/dist/usd/usd-loader.cjs +41 -0
  1117. package/dist/usd/usd-loader.cjs.map +7 -0
  1118. package/dist/usd/usd-loader.d.ts +30 -0
  1119. package/dist/usd/usd-loader.d.ts.map +1 -0
  1120. package/dist/usd/usd-loader.js +17 -0
  1121. package/dist/usd/usd-loader.js.map +1 -0
  1122. package/dist/usd-loader-types.cjs +69 -0
  1123. package/dist/usd-loader-types.cjs.map +7 -0
  1124. package/dist/usd-loader-types.d.ts +1 -49
  1125. package/dist/usd-loader-types.d.ts.map +1 -1
  1126. package/dist/usd-loader-types.js +1 -34
  1127. package/dist/usd-loader-types.js.map +1 -1
  1128. package/dist/usd-loader.cjs +43 -0
  1129. package/dist/usd-loader.cjs.map +7 -0
  1130. package/dist/usd-loader.d.ts +1 -29
  1131. package/dist/usd-loader.d.ts.map +1 -1
  1132. package/dist/usd-loader.js +1 -16
  1133. package/dist/usd-loader.js.map +1 -1
  1134. package/package.json +241 -11
  1135. package/src/draco/bundled.ts +10 -0
  1136. package/src/draco/draco-format.ts +20 -0
  1137. package/src/draco/draco-javascript-loader-with-parser.ts +26 -0
  1138. package/src/draco/draco-libraries.ts +35 -0
  1139. package/src/draco/draco-library-options.ts +76 -0
  1140. package/src/draco/draco-loader-options.ts +33 -0
  1141. package/src/draco/draco-loader-types.ts +78 -0
  1142. package/src/draco/draco-loader.ts +45 -0
  1143. package/src/draco/draco-wasm-loader-with-parser.ts +31 -0
  1144. package/src/draco/draco-writer.ts +252 -0
  1145. package/src/draco/draco3d/draco3d-types.ts +498 -0
  1146. package/src/draco/draco3d-loader-with-parser.ts +34 -0
  1147. package/src/draco/index.ts +46 -0
  1148. package/src/draco/lib/draco-builder.ts +935 -0
  1149. package/src/draco/lib/draco-library-loader.ts +38 -0
  1150. package/src/draco/lib/draco-module-loader.ts +370 -0
  1151. package/src/draco/lib/draco-parser.ts +776 -0
  1152. package/src/draco/lib/draco-types.ts +72 -0
  1153. package/src/draco/lib/parse-draco.ts +51 -0
  1154. package/src/draco/lib/utils/get-draco-schema.ts +65 -0
  1155. package/src/draco/lib/utils/version.ts +8 -0
  1156. package/src/draco/libs/DRACO-LICENSE +252 -0
  1157. package/src/draco/libs/README.md +20 -0
  1158. package/src/draco/libs/draco_decoder.js +34 -0
  1159. package/src/draco/libs/draco_decoder.wasm +0 -0
  1160. package/src/draco/libs/draco_decoder_gltf.wasm +0 -0
  1161. package/src/draco/libs/draco_encoder.js +98 -0
  1162. package/src/draco/libs/draco_encoder.wasm +0 -0
  1163. package/src/draco/libs/draco_wasm_wrapper.js +117 -0
  1164. package/src/draco/libs/draco_wasm_wrapper_gltf.js +116 -0
  1165. package/src/draco/unbundled.ts +6 -0
  1166. package/src/draco/workers/draco-worker-node.ts +10 -0
  1167. package/src/draco/workers/draco-worker.ts +8 -0
  1168. package/src/draco/workers/draco-writer-worker-node.cjs +21 -0
  1169. package/src/draco/workers/draco-writer-worker-node.ts +13 -0
  1170. package/src/draco/workers/draco-writer-worker.ts +11 -0
  1171. package/src/draco-javascript-loader.ts +2 -0
  1172. package/src/draco-library-options.ts +6 -0
  1173. package/src/draco-loader-types.ts +2 -0
  1174. package/src/draco-loader.ts +2 -0
  1175. package/src/draco-wasm-loader.ts +2 -0
  1176. package/src/draco-writer.ts +2 -0
  1177. package/src/draco3d-loader.ts +2 -0
  1178. package/src/glb-loader-types.ts +1 -0
  1179. package/src/glb-loader.ts +1 -0
  1180. package/src/glb-writer.ts +1 -0
  1181. package/src/gltf/bundled.ts +8 -0
  1182. package/src/gltf/glb-loader-types.ts +40 -0
  1183. package/src/gltf/glb-loader.ts +42 -0
  1184. package/src/gltf/glb-writer.ts +46 -0
  1185. package/src/gltf/gltf-format.ts +32 -0
  1186. package/src/gltf/gltf-loader-types.ts +52 -0
  1187. package/src/gltf/gltf-loader.ts +49 -0
  1188. package/src/gltf/gltf-source.ts +244 -0
  1189. package/src/gltf/gltf-writer.ts +62 -0
  1190. package/src/gltf/index.ts +270 -0
  1191. package/src/gltf/lib/api/append-gltf-v1-buffer-data.ts +61 -0
  1192. package/src/gltf/lib/api/bake-gltf-v1-bind-shapes.ts +178 -0
  1193. package/src/gltf/lib/api/clean-gltf-v1-fields.ts +94 -0
  1194. package/src/gltf/lib/api/convert-gltf-v1-accessors.ts +170 -0
  1195. package/src/gltf/lib/api/convert-gltf-v1-animations.ts +79 -0
  1196. package/src/gltf/lib/api/convert-gltf-v1-materials.ts +351 -0
  1197. package/src/gltf/lib/api/convert-gltf-v1-matrix-nodes.ts +116 -0
  1198. package/src/gltf/lib/api/convert-gltf-v1-skin-scenes.ts +88 -0
  1199. package/src/gltf/lib/api/convert-gltf-v1-skins.ts +217 -0
  1200. package/src/gltf/lib/api/gltf-accessors.ts +87 -0
  1201. package/src/gltf/lib/api/gltf-culling.ts +80 -0
  1202. package/src/gltf/lib/api/gltf-extension-data.ts +125 -0
  1203. package/src/gltf/lib/api/gltf-extensions.ts +133 -0
  1204. package/src/gltf/lib/api/gltf-iterator.ts +1469 -0
  1205. package/src/gltf/lib/api/gltf-mesh-arrow.ts +410 -0
  1206. package/src/gltf/lib/api/gltf-scenegraph.ts +741 -0
  1207. package/src/gltf/lib/api/normalize-gltf-v1.ts +603 -0
  1208. package/src/gltf/lib/api/repack-gltf-v1-accessors.ts +566 -0
  1209. package/src/gltf/lib/api/validate-gltf-v1-buffers.ts +139 -0
  1210. package/src/gltf/lib/api/validate-gltf-v1-cameras.ts +40 -0
  1211. package/src/gltf/lib/api/validate-gltf-v1-geometry.ts +156 -0
  1212. package/src/gltf/lib/api/validate-gltf-v1-payloads.ts +315 -0
  1213. package/src/gltf/lib/encoders/encode-glb.ts +198 -0
  1214. package/src/gltf/lib/encoders/encode-gltf-draco.ts +239 -0
  1215. package/src/gltf/lib/encoders/encode-gltf.ts +45 -0
  1216. package/src/gltf/lib/extensions/EXT_mesh_features.ts +240 -0
  1217. package/src/gltf/lib/extensions/EXT_mesh_polygon.ts +172 -0
  1218. package/src/gltf/lib/extensions/EXT_meshopt_compression.ts +33 -0
  1219. package/src/gltf/lib/extensions/EXT_primitive_voxels.ts +85 -0
  1220. package/src/gltf/lib/extensions/EXT_structural_metadata.ts +1130 -0
  1221. package/src/gltf/lib/extensions/EXT_texture_avif.ts +56 -0
  1222. package/src/gltf/lib/extensions/EXT_texture_webp.ts +46 -0
  1223. package/src/gltf/lib/extensions/KHR_audio_emitter.ts +136 -0
  1224. package/src/gltf/lib/extensions/KHR_binary_gltf.ts +56 -0
  1225. package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +170 -0
  1226. package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +239 -0
  1227. package/src/gltf/lib/extensions/KHR_mesh_primitive_restart.ts +108 -0
  1228. package/src/gltf/lib/extensions/KHR_meshopt_compression.ts +32 -0
  1229. package/src/gltf/lib/extensions/KHR_texture_basisu.ts +39 -0
  1230. package/src/gltf/lib/extensions/KHR_texture_transform.ts +385 -0
  1231. package/src/gltf/lib/extensions/MPEG_audio_spatial.ts +59 -0
  1232. package/src/gltf/lib/extensions/deprecated/EXT_feature_metadata.ts +479 -0
  1233. package/src/gltf/lib/extensions/deprecated/KHR_lights_punctual.ts +67 -0
  1234. package/src/gltf/lib/extensions/deprecated/KHR_materials_unlit.ts +52 -0
  1235. package/src/gltf/lib/extensions/deprecated/KHR_techniques_webgl.ts +105 -0
  1236. package/src/gltf/lib/extensions/meshopt-compression.ts +189 -0
  1237. package/src/gltf/lib/extensions/utils/3d-tiles-utils.ts +473 -0
  1238. package/src/gltf/lib/gltf-utils/get-typed-array.ts +215 -0
  1239. package/src/gltf/lib/gltf-utils/gltf-attribute-utils.ts +85 -0
  1240. package/src/gltf/lib/gltf-utils/gltf-constants.ts +53 -0
  1241. package/src/gltf/lib/gltf-utils/gltf-utils.ts +162 -0
  1242. package/src/gltf/lib/gltf-utils/resolve-gltf-file.ts +95 -0
  1243. package/src/gltf/lib/gltf-utils/resolve-url.ts +48 -0
  1244. package/src/gltf/lib/parsers/parse-glb.ts +299 -0
  1245. package/src/gltf/lib/parsers/parse-gltf.ts +570 -0
  1246. package/src/gltf/lib/types/glb-types.ts +44 -0
  1247. package/src/gltf/lib/types/gltf-additional-extension-schemas.ts +127 -0
  1248. package/src/gltf/lib/types/gltf-audio-extension-schemas.ts +167 -0
  1249. package/src/gltf/lib/types/gltf-ext-feature-metadata-schema.ts +474 -0
  1250. package/src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts +46 -0
  1251. package/src/gltf/lib/types/gltf-ext-mesh-features-schema.ts +56 -0
  1252. package/src/gltf/lib/types/gltf-ext-structural-metadata-schema.ts +387 -0
  1253. package/src/gltf/lib/types/gltf-ext-vector-voxel-schema.ts +49 -0
  1254. package/src/gltf/lib/types/gltf-extension-schemas.ts +87 -0
  1255. package/src/gltf/lib/types/gltf-interactivity.ts +168 -0
  1256. package/src/gltf/lib/types/gltf-json-schema.ts +947 -0
  1257. package/src/gltf/lib/types/gltf-khr-audio-emitter-schema.ts +60 -0
  1258. package/src/gltf/lib/types/gltf-mpeg-audio-spatial-schema.ts +31 -0
  1259. package/src/gltf/lib/types/gltf-official-json-schemas.ts +18619 -0
  1260. package/src/gltf/lib/types/gltf-shape-schema.ts +47 -0
  1261. package/src/gltf/lib/types/gltf-types.ts +90 -0
  1262. package/src/gltf/lib/types/gltf-vector-topology.ts +65 -0
  1263. package/src/gltf/lib/types/gltf-version-zod-schemas.ts +511 -0
  1264. package/src/gltf/lib/types/gltf-zod-schema.ts +545 -0
  1265. package/src/gltf/lib/utils/assert.ts +12 -0
  1266. package/src/gltf/lib/utils/version.ts +8 -0
  1267. package/src/gltf/libs/README.md +12 -0
  1268. package/src/gltf/libs/meshopt-decoder.d.mts +15 -0
  1269. package/src/gltf/libs/meshopt-decoder.mjs +196 -0
  1270. package/src/gltf/libs/meshoptimizer-LICENSE.md +21 -0
  1271. package/src/gltf/mesh-arrow.ts +11 -0
  1272. package/src/gltf/meshopt/meshopt-decoder.ts +185 -0
  1273. package/src/gltf/meshopt/meshopt-encoder.ts.disabled +409 -0
  1274. package/src/gltf/meshopt/meshopt-module-loader.ts +8 -0
  1275. package/src/gltf/schema.ts +24 -0
  1276. package/src/gltf/unbundled.ts +8 -0
  1277. package/src/gltf/webp/webp.ts +45 -0
  1278. package/src/gltf-loader-types.ts +1 -0
  1279. package/src/gltf-loader.ts +1 -0
  1280. package/src/gltf-source.ts +1 -0
  1281. package/src/gltf-writer.ts +1 -0
  1282. package/src/index.ts +18 -11
  1283. package/src/mtl-loader-types.ts +1 -0
  1284. package/src/mtl-loader.ts +1 -0
  1285. package/src/obj/bundled.ts +16 -0
  1286. package/src/obj/index.ts +23 -0
  1287. package/src/obj/lib/get-obj-schema.ts +45 -0
  1288. package/src/obj/lib/obj-types.ts +3 -0
  1289. package/src/obj/lib/parse-mtl.ts +248 -0
  1290. package/src/obj/lib/parse-obj-meshes.ts +530 -0
  1291. package/src/obj/lib/parse-obj.ts +88 -0
  1292. package/src/obj/mtl-format.ts +19 -0
  1293. package/src/obj/mtl-loader-types.ts +46 -0
  1294. package/src/obj/mtl-loader.ts +37 -0
  1295. package/src/obj/obj-format.ts +18 -0
  1296. package/src/obj/obj-loader-types.ts +75 -0
  1297. package/src/obj/obj-loader.ts +203 -0
  1298. package/src/obj/obj-writer.ts +190 -0
  1299. package/src/obj/unbundled.ts +10 -0
  1300. package/src/obj/workers/obj-worker.ts +24 -0
  1301. package/src/obj-loader-types.ts +1 -0
  1302. package/src/obj-loader.ts +1 -0
  1303. package/src/obj-writer.ts +1 -0
  1304. package/src/usd/index.ts +15 -0
  1305. package/src/{lib → usd/lib}/parse-usd.ts +1 -1
  1306. package/src/{lib → usd/lib}/usd-types.ts +1 -1
  1307. package/src/usd/usd-loader-types.ts +40 -0
  1308. package/src/usd/usd-loader.ts +26 -0
  1309. package/src/usd-loader-types.ts +1 -40
  1310. package/src/usd-loader.ts +1 -26
  1311. package/third-party-licenses/gltf-loader-ts-LICENSE +21 -0
  1312. package/third-party-licenses/three-LICENSE +21 -0
  1313. package/dist/lib/parse-usd.d.ts.map +0 -1
  1314. package/dist/lib/parse-usd.js.map +0 -1
  1315. package/dist/lib/parse-usda.d.ts.map +0 -1
  1316. package/dist/lib/parse-usda.js.map +0 -1
  1317. package/dist/lib/parse-usdz.d.ts.map +0 -1
  1318. package/dist/lib/parse-usdz.js.map +0 -1
  1319. package/dist/lib/usd-types.d.ts.map +0 -1
  1320. package/dist/lib/usd-types.js.map +0 -1
  1321. /package/dist/{lib → usd/lib}/parse-usd.js +0 -0
  1322. /package/dist/{lib → usd/lib}/parse-usda.d.ts +0 -0
  1323. /package/dist/{lib → usd/lib}/parse-usda.js +0 -0
  1324. /package/dist/{lib → usd/lib}/parse-usdz.d.ts +0 -0
  1325. /package/dist/{lib → usd/lib}/parse-usdz.js +0 -0
  1326. /package/dist/{lib → usd/lib}/usd-types.js +0 -0
  1327. /package/src/{lib → usd/lib}/parse-usda.ts +0 -0
  1328. /package/src/{lib → usd/lib}/parse-usdz.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/sharp/dist/is.mjs", "../../../node_modules/detect-libc/lib/process.js", "../../../node_modules/detect-libc/lib/filesystem.js", "../../../node_modules/detect-libc/lib/elf.js", "../../../node_modules/detect-libc/lib/detect-libc.js", "../../../node_modules/semver/internal/constants.js", "../../../node_modules/semver/internal/debug.js", "../../../node_modules/semver/internal/re.js", "../../../node_modules/semver/internal/parse-options.js", "../../../node_modules/semver/internal/identifiers.js", "../../../node_modules/semver/classes/semver.js", "../../../node_modules/semver/functions/parse.js", "../../../node_modules/semver/functions/valid.js", "../../../node_modules/semver/functions/clean.js", "../../../node_modules/semver/functions/inc.js", "../../../node_modules/semver/functions/diff.js", "../../../node_modules/semver/functions/major.js", "../../../node_modules/semver/functions/minor.js", "../../../node_modules/semver/functions/patch.js", "../../../node_modules/semver/functions/prerelease.js", "../../../node_modules/semver/functions/compare.js", "../../../node_modules/semver/functions/rcompare.js", "../../../node_modules/semver/functions/compare-loose.js", "../../../node_modules/semver/functions/compare-build.js", "../../../node_modules/semver/functions/sort.js", "../../../node_modules/semver/functions/rsort.js", "../../../node_modules/semver/functions/gt.js", "../../../node_modules/semver/functions/lt.js", "../../../node_modules/semver/functions/eq.js", "../../../node_modules/semver/functions/neq.js", "../../../node_modules/semver/functions/gte.js", "../../../node_modules/semver/functions/lte.js", "../../../node_modules/semver/functions/cmp.js", "../../../node_modules/semver/functions/coerce.js", "../../../node_modules/semver/functions/truncate.js", "../../../node_modules/semver/internal/lrucache.js", "../../../node_modules/semver/classes/range.js", "../../../node_modules/semver/classes/comparator.js", "../../../node_modules/semver/functions/satisfies.js", "../../../node_modules/semver/ranges/to-comparators.js", "../../../node_modules/semver/ranges/max-satisfying.js", "../../../node_modules/semver/ranges/min-satisfying.js", "../../../node_modules/semver/ranges/min-version.js", "../../../node_modules/semver/ranges/valid.js", "../../../node_modules/semver/ranges/outside.js", "../../../node_modules/semver/ranges/gtr.js", "../../../node_modules/semver/ranges/ltr.js", "../../../node_modules/semver/ranges/intersects.js", "../../../node_modules/semver/ranges/simplify.js", "../../../node_modules/semver/ranges/subset.js", "../../../node_modules/semver/index.js", "../../../node_modules/sharp/package.json", "../../../node_modules/sharp/dist/libvips.mjs", "../../../node_modules/sharp/dist/sharp.mjs", "../../../node_modules/sharp/dist/constructor.mjs", "../../../node_modules/sharp/dist/input.mjs", "../../../node_modules/sharp/dist/resize.mjs", "../../../node_modules/sharp/dist/composite.mjs", "../../../node_modules/sharp/dist/operation.mjs", "../../../node_modules/@img/colour/color.cjs", "../../../node_modules/@img/colour/index.cjs", "../../../node_modules/sharp/dist/colour.mjs", "../../../node_modules/sharp/dist/channel.mjs", "../../../node_modules/sharp/dist/output.mjs", "../../../node_modules/sharp/dist/utility.mjs", "../../../node_modules/sharp/dist/index.mjs", "../../../node_modules/flatbuffers/js/constants.js", "../../../node_modules/flatbuffers/js/utils.js", "../../../node_modules/flatbuffers/js/encoding.js", "../../../node_modules/flatbuffers/js/byte-buffer.js", "../../../node_modules/flatbuffers/js/builder.js", "../../../node_modules/flatbuffers/js/flatbuffers.js", "../../core/src/polyfills/utils/is-browser.ts", "../../core/src/polyfills/text-encoder/encoding-indexes.ts", "../../core/src/polyfills/text-encoder/text-encoder.ts", "../../core/src/polyfills/buffer/btoa.node.ts", "../../core/src/polyfills/images/load-sharp.ts", "../../core/src/polyfills/images/node-image-formats.ts", "../../core/src/polyfills/images/parse-image-node.ts", "../../core/src/polyfills/utils/buffer-utils.ts", "../../core/src/polyfills/images/encode-image-node.ts", "../../core/src/polyfills/images/node-image-bitmap.ts", "../../core/src/polyfills/utils/path-utils.ts", "../../core/src/polyfills/filesystems/node-file.ts", "../../core/src/polyfills/filesystems/node-filesystem.ts", "../../core/src/polyfills/filesystems/fetch-node.ts", "../../core/src/polyfills/filesystems/stream-utils.node.ts", "../../core/src/polyfills/crypto/node-hash.ts", "../../core/src/polyfills/index.ts", "../../core/src/polyfills/streams/make-node-stream.ts", "../../core/src/polyfills/file/file-reader.ts", "../../core/src/polyfills/file/install-file-polyfills.ts", "../../core/src/polyfills/load-library/require-utils.node.ts", "../../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.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.node.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/apache-arrow/fb/dictionary-batch.ts", "../../../node_modules/apache-arrow/fb/record-batch.ts", "../../../node_modules/apache-arrow/fb/body-compression.ts", "../../../node_modules/apache-arrow/fb/body-compression-method.ts", "../../../node_modules/apache-arrow/fb/compression-type.ts", "../../../node_modules/apache-arrow/fb/buffer.ts", "../../../node_modules/apache-arrow/fb/field-node.ts", "../../../node_modules/apache-arrow/fb/schema.ts", "../../../node_modules/apache-arrow/fb/endianness.ts", "../../../node_modules/apache-arrow/fb/field.ts", "../../../node_modules/apache-arrow/fb/dictionary-encoding.ts", "../../../node_modules/apache-arrow/fb/dictionary-kind.ts", "../../../node_modules/apache-arrow/fb/int.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/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/ipc/metadata/file.ts", "../../../node_modules/apache-arrow/src/schema.ts", "../../../node_modules/apache-arrow/ipc/metadata/message.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/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/reader.ts", "../../../node_modules/apache-arrow/ipc/compression/constants.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/node/iterable.ts", "../../../node_modules/apache-arrow/io/node/builder.ts", "../../../node_modules/apache-arrow/io/node/reader.ts", "../../../node_modules/apache-arrow/io/node/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", "../../../node_modules/apache-arrow/src/Arrow.dom.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-node.ts"],
4
+ "sourcesContent": ["/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\n/**\n * Is this value defined and not null?\n * @private\n */\nconst defined = (val) => typeof val !== 'undefined' && val !== null;\n\n/**\n * Is this value an object?\n * @private\n */\nconst object = (val) => typeof val === 'object';\n\n/**\n * Is this value a plain object?\n * @private\n */\nconst plainObject = (val) => Object.prototype.toString.call(val) === '[object Object]';\n\n/**\n * Is this value a function?\n * @private\n */\nconst fn = (val) => typeof val === 'function';\n\n/**\n * Is this value a boolean?\n * @private\n */\nconst bool = (val) => typeof val === 'boolean';\n\n/**\n * Is this value a Buffer object?\n * @private\n */\nconst buffer = (val) => val instanceof Buffer;\n\n/**\n * Is this value a typed array object?. E.g. Uint8Array or Uint8ClampedArray?\n * @private\n */\nconst typedArray = (val) => {\n if (defined(val)) {\n switch (val.constructor) {\n case Uint8Array:\n case Uint8ClampedArray:\n case Int8Array:\n case Uint16Array:\n case Int16Array:\n case Uint32Array:\n case Int32Array:\n case Float32Array:\n case Float64Array:\n return true;\n }\n }\n\n return false;\n};\n\n/**\n * Is this value an ArrayBuffer object?\n * @private\n */\nconst arrayBuffer = (val) => val instanceof ArrayBuffer;\n\n/**\n * Is this value a non-empty string?\n * @private\n */\nconst string = (val) => typeof val === 'string' && val.length > 0;\n\n/**\n * Is this value a real number?\n * @private\n */\nconst number = (val) => typeof val === 'number' && Number.isFinite(val);\n\n/**\n * Is this value an integer?\n * @private\n */\nconst integer = (val) => Number.isInteger(val);\n\n/**\n * Is this value within an inclusive given range?\n * @private\n */\nconst inRange = (val, min, max) => val >= min && val <= max;\n\n/**\n * Is this value within the elements of an array?\n * @private\n */\nconst inArray = (val, list) => list.includes(val);\n\n/**\n * Create an Error with a message relating to an invalid parameter.\n *\n * @param {string} name - parameter name.\n * @param {string} expected - description of the type/value/range expected.\n * @param {*} actual - the value received.\n * @returns {Error} Containing the formatted message.\n * @private\n */\nconst invalidParameterError = (name, expected, actual) => {\n let actualString;\n try {\n actualString = String(actual).slice(0, 100);\n } catch {}\n return new Error(\n `Expected ${expected} for ${name} but received ${actualString} of type ${typeof actual}`\n );\n};\n\n/**\n * Ensures an Error from C++ contains a JS stack.\n *\n * @param {Error} native - Error with message from C++.\n * @param {Error} context - Error with stack from JS.\n * @returns {Error} Error with message and stack.\n * @private\n */\nconst nativeError = (native, context) => {\n context.message = native.message;\n return context;\n};\n\nexport default {\n defined,\n object,\n plainObject,\n fn,\n bool,\n buffer,\n typedArray,\n arrayBuffer,\n string,\n number,\n integer,\n inRange,\n inArray,\n invalidParameterError,\n nativeError\n};\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst isLinux = () => process.platform === 'linux';\n\nlet report = null;\nconst getReport = () => {\n if (!report) {\n /* istanbul ignore next */\n if (isLinux() && process.report) {\n const orig = process.report.excludeNetwork;\n process.report.excludeNetwork = true;\n report = process.report.getReport();\n process.report.excludeNetwork = orig;\n } else {\n report = {};\n }\n }\n return report;\n};\n\nmodule.exports = { isLinux, getReport };\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst fs = require('fs');\n\nconst LDD_PATH = '/usr/bin/ldd';\nconst SELF_PATH = '/proc/self/exe';\nconst MAX_LENGTH = 2048;\n\n/**\n * Read the content of a file synchronous\n *\n * @param {string} path\n * @returns {Buffer}\n */\nconst readFileSync = (path) => {\n const fd = fs.openSync(path, 'r');\n const buffer = Buffer.alloc(MAX_LENGTH);\n const bytesRead = fs.readSync(fd, buffer, 0, MAX_LENGTH, 0);\n fs.close(fd, () => {});\n return buffer.subarray(0, bytesRead);\n};\n\n/**\n * Read the content of a file\n *\n * @param {string} path\n * @returns {Promise<Buffer>}\n */\nconst readFile = (path) => new Promise((resolve, reject) => {\n fs.open(path, 'r', (err, fd) => {\n if (err) {\n reject(err);\n } else {\n const buffer = Buffer.alloc(MAX_LENGTH);\n fs.read(fd, buffer, 0, MAX_LENGTH, 0, (_, bytesRead) => {\n resolve(buffer.subarray(0, bytesRead));\n fs.close(fd, () => {});\n });\n }\n });\n});\n\nmodule.exports = {\n LDD_PATH,\n SELF_PATH,\n readFileSync,\n readFile\n};\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst interpreterPath = (elf) => {\n if (elf.length < 64) {\n return null;\n }\n if (elf.readUInt32BE(0) !== 0x7F454C46) {\n // Unexpected magic bytes\n return null;\n }\n if (elf.readUInt8(4) !== 2) {\n // Not a 64-bit ELF\n return null;\n }\n if (elf.readUInt8(5) !== 1) {\n // Not little-endian\n return null;\n }\n const offset = elf.readUInt32LE(32);\n const size = elf.readUInt16LE(54);\n const count = elf.readUInt16LE(56);\n for (let i = 0; i < count; i++) {\n const headerOffset = offset + (i * size);\n const type = elf.readUInt32LE(headerOffset);\n if (type === 3) {\n const fileOffset = elf.readUInt32LE(headerOffset + 8);\n const fileSize = elf.readUInt32LE(headerOffset + 32);\n return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\\0.*$/g, '');\n }\n }\n return null;\n};\n\nmodule.exports = {\n interpreterPath\n};\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst childProcess = require('child_process');\nconst { isLinux, getReport } = require('./process');\nconst { LDD_PATH, SELF_PATH, readFile, readFileSync } = require('./filesystem');\nconst { interpreterPath } = require('./elf');\n\nlet cachedFamilyInterpreter;\nlet cachedFamilyFilesystem;\nlet cachedVersionFilesystem;\n\nconst command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true';\nlet commandOut = '';\n\nconst safeCommand = () => {\n if (!commandOut) {\n return new Promise((resolve) => {\n childProcess.exec(command, (err, out) => {\n commandOut = err ? ' ' : out;\n resolve(commandOut);\n });\n });\n }\n return commandOut;\n};\n\nconst safeCommandSync = () => {\n if (!commandOut) {\n try {\n commandOut = childProcess.execSync(command, { encoding: 'utf8' });\n } catch (_err) {\n commandOut = ' ';\n }\n }\n return commandOut;\n};\n\n/**\n * A String constant containing the value `glibc`.\n * @type {string}\n * @public\n */\nconst GLIBC = 'glibc';\n\n/**\n * A Regexp constant to get the GLIBC Version.\n * @type {string}\n */\nconst RE_GLIBC_VERSION = /LIBC[a-z0-9 \\-).]*?(\\d+\\.\\d+)/i;\n\n/**\n * A String constant containing the value `musl`.\n * @type {string}\n * @public\n */\nconst MUSL = 'musl';\n\nconst isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-');\n\nconst familyFromReport = () => {\n const report = getReport();\n if (report.header && report.header.glibcVersionRuntime) {\n return GLIBC;\n }\n if (Array.isArray(report.sharedObjects)) {\n if (report.sharedObjects.some(isFileMusl)) {\n return MUSL;\n }\n }\n return null;\n};\n\nconst familyFromCommand = (out) => {\n const [getconf, ldd1] = out.split(/[\\r\\n]+/);\n if (getconf && getconf.includes(GLIBC)) {\n return GLIBC;\n }\n if (ldd1 && ldd1.includes(MUSL)) {\n return MUSL;\n }\n return null;\n};\n\nconst familyFromInterpreterPath = (path) => {\n if (path) {\n if (path.includes('/ld-musl-')) {\n return MUSL;\n } else if (path.includes('/ld-linux-')) {\n return GLIBC;\n }\n }\n return null;\n};\n\nconst getFamilyFromLddContent = (content) => {\n content = content.toString();\n if (content.includes('musl')) {\n return MUSL;\n }\n if (content.includes('GNU C Library')) {\n return GLIBC;\n }\n return null;\n};\n\nconst familyFromFilesystem = async () => {\n if (cachedFamilyFilesystem !== undefined) {\n return cachedFamilyFilesystem;\n }\n cachedFamilyFilesystem = null;\n try {\n const lddContent = await readFile(LDD_PATH);\n cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n } catch (e) {}\n return cachedFamilyFilesystem;\n};\n\nconst familyFromFilesystemSync = () => {\n if (cachedFamilyFilesystem !== undefined) {\n return cachedFamilyFilesystem;\n }\n cachedFamilyFilesystem = null;\n try {\n const lddContent = readFileSync(LDD_PATH);\n cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n } catch (e) {}\n return cachedFamilyFilesystem;\n};\n\nconst familyFromInterpreter = async () => {\n if (cachedFamilyInterpreter !== undefined) {\n return cachedFamilyInterpreter;\n }\n cachedFamilyInterpreter = null;\n try {\n const selfContent = await readFile(SELF_PATH);\n const path = interpreterPath(selfContent);\n cachedFamilyInterpreter = familyFromInterpreterPath(path);\n } catch (e) {}\n return cachedFamilyInterpreter;\n};\n\nconst familyFromInterpreterSync = () => {\n if (cachedFamilyInterpreter !== undefined) {\n return cachedFamilyInterpreter;\n }\n cachedFamilyInterpreter = null;\n try {\n const selfContent = readFileSync(SELF_PATH);\n const path = interpreterPath(selfContent);\n cachedFamilyInterpreter = familyFromInterpreterPath(path);\n } catch (e) {}\n return cachedFamilyInterpreter;\n};\n\n/**\n * Resolves with the libc family when it can be determined, `null` otherwise.\n * @returns {Promise<?string>}\n */\nconst family = async () => {\n let family = null;\n if (isLinux()) {\n family = await familyFromInterpreter();\n if (!family) {\n family = await familyFromFilesystem();\n if (!family) {\n family = familyFromReport();\n }\n if (!family) {\n const out = await safeCommand();\n family = familyFromCommand(out);\n }\n }\n }\n return family;\n};\n\n/**\n * Returns the libc family when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst familySync = () => {\n let family = null;\n if (isLinux()) {\n family = familyFromInterpreterSync();\n if (!family) {\n family = familyFromFilesystemSync();\n if (!family) {\n family = familyFromReport();\n }\n if (!family) {\n const out = safeCommandSync();\n family = familyFromCommand(out);\n }\n }\n }\n return family;\n};\n\n/**\n * Resolves `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {Promise<boolean>}\n */\nconst isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC;\n\n/**\n * Returns `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {boolean}\n */\nconst isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC;\n\nconst versionFromFilesystem = async () => {\n if (cachedVersionFilesystem !== undefined) {\n return cachedVersionFilesystem;\n }\n cachedVersionFilesystem = null;\n try {\n const lddContent = await readFile(LDD_PATH);\n const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n if (versionMatch) {\n cachedVersionFilesystem = versionMatch[1];\n }\n } catch (e) {}\n return cachedVersionFilesystem;\n};\n\nconst versionFromFilesystemSync = () => {\n if (cachedVersionFilesystem !== undefined) {\n return cachedVersionFilesystem;\n }\n cachedVersionFilesystem = null;\n try {\n const lddContent = readFileSync(LDD_PATH);\n const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n if (versionMatch) {\n cachedVersionFilesystem = versionMatch[1];\n }\n } catch (e) {}\n return cachedVersionFilesystem;\n};\n\nconst versionFromReport = () => {\n const report = getReport();\n if (report.header && report.header.glibcVersionRuntime) {\n return report.header.glibcVersionRuntime;\n }\n return null;\n};\n\nconst versionSuffix = (s) => s.trim().split(/\\s+/)[1];\n\nconst versionFromCommand = (out) => {\n const [getconf, ldd1, ldd2] = out.split(/[\\r\\n]+/);\n if (getconf && getconf.includes(GLIBC)) {\n return versionSuffix(getconf);\n }\n if (ldd1 && ldd2 && ldd1.includes(MUSL)) {\n return versionSuffix(ldd2);\n }\n return null;\n};\n\n/**\n * Resolves with the libc version when it can be determined, `null` otherwise.\n * @returns {Promise<?string>}\n */\nconst version = async () => {\n let version = null;\n if (isLinux()) {\n version = await versionFromFilesystem();\n if (!version) {\n version = versionFromReport();\n }\n if (!version) {\n const out = await safeCommand();\n version = versionFromCommand(out);\n }\n }\n return version;\n};\n\n/**\n * Returns the libc version when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst versionSync = () => {\n let version = null;\n if (isLinux()) {\n version = versionFromFilesystemSync();\n if (!version) {\n version = versionFromReport();\n }\n if (!version) {\n const out = safeCommandSync();\n version = versionFromCommand(out);\n }\n }\n return version;\n};\n\nmodule.exports = {\n GLIBC,\n MUSL,\n family,\n familySync,\n isNonGlibcLinux,\n isNonGlibcLinuxSync,\n version,\n versionSync\n};\n", "'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n", "'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n", "'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifier, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n", "'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n", "'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n", "'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\n\nconst isPrereleaseIdentifier = (prerelease, identifier) => {\n const identifiers = identifier.split('.')\n if (identifiers.length > prerelease.length) {\n return false\n }\n\n for (let i = 0; i < identifiers.length; i++) {\n if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {\n return false\n }\n }\n\n return true\n}\n\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (isPrereleaseIdentifier(this.prerelease, identifier)) {\n const prereleaseBase = this.prerelease[identifier.split('.').length]\n if (isNaN(prereleaseBase)) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n", "'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n", "'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n", "'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are prereleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n", "'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n", "'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n", "'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n", "'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n", "'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n", "'use strict'\n\nconst parse = require('./parse')\nconst constants = require('../internal/constants')\nconst SemVer = require('../classes/semver')\n\nconst truncate = (version, truncation, options) => {\n if (!constants.RELEASE_TYPES.includes(truncation)) {\n return null\n }\n\n const clonedVersion = cloneInputVersion(version, options)\n return clonedVersion && doTruncation(clonedVersion, truncation)\n}\n\nconst cloneInputVersion = (version, options) => {\n const versionStringToParse = (\n version instanceof SemVer ? version.version : version\n )\n\n return parse(versionStringToParse, options)\n}\n\nconst doTruncation = (version, truncation) => {\n if (isPrerelease(truncation)) {\n return version.version\n }\n\n version.prerelease = []\n\n switch (truncation) {\n case 'major':\n version.minor = 0\n version.patch = 0\n break\n case 'minor':\n version.patch = 0\n break\n }\n\n return version.format()\n}\n\nconst isPrerelease = (type) => {\n return type.startsWith('pre')\n}\n\nmodule.exports = truncate\n", "'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n", "'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // strip build metadata so it can't bleed into the version\n range = range.replace(BUILDSTRIPRE, '')\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n src,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\n// unbounded global build-metadata stripper used by parseRange\nconst BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\nconst invalidXRangeOrder = (M, m, p) => (\n (isX(M) && !isX(m)) ||\n (isX(m) && p && !isX(p))\n)\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n // if we're including prereleases in the match, then the lower bound is\n // -0, the lowest possible prerelease value, just like x-ranges and carets.\n // this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as.\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n if (invalidXRangeOrder(M, m, p)) {\n return comp\n }\n\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n", "'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n", "'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n", "'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n", "'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n", "'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n", "'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If LT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !c.test(gt.semver)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !c.test(lt.semver)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n", "'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst truncate = require('./functions/truncate')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n truncate,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n", "{\n \"name\": \"sharp\",\n \"description\": \"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images\",\n \"version\": \"0.35.5\",\n \"author\": \"Lovell Fuller <npm@lovell.info>\",\n \"homepage\": \"https://sharp.pixelplumbing.com\",\n \"contributors\": [\n \"Pierre Inglebert <pierre.inglebert@gmail.com>\",\n \"Jonathan Ong <jonathanrichardong@gmail.com>\",\n \"Chanon Sajjamanochai <chanon.s@gmail.com>\",\n \"Juliano Julio <julianojulio@gmail.com>\",\n \"Daniel Gasienica <daniel@gasienica.ch>\",\n \"Julian Walker <julian@fiftythree.com>\",\n \"Amit Pitaru <pitaru.amit@gmail.com>\",\n \"Brandon Aaron <hello.brandon@aaron.sh>\",\n \"Andreas Lind <andreas@one.com>\",\n \"Maurus Cuelenaere <mcuelenaere@gmail.com>\",\n \"Linus Unneb\u00E4ck <linus@folkdatorn.se>\",\n \"Victor Mateevitsi <mvictoras@gmail.com>\",\n \"Alaric Holloway <alaric.holloway@gmail.com>\",\n \"Bernhard K. Weisshuhn <bkw@codingforce.com>\",\n \"Chris Riley <criley@primedia.com>\",\n \"David Carley <dacarley@gmail.com>\",\n \"John Tobin <john@limelightmobileinc.com>\",\n \"Kenton Gray <kentongray@gmail.com>\",\n \"Felix B\u00FCnemann <Felix.Buenemann@gmail.com>\",\n \"Samy Al Zahrani <samyalzahrany@gmail.com>\",\n \"Chintan Thakkar <lemnisk8@gmail.com>\",\n \"F. Orlando Galashan <frulo@gmx.de>\",\n \"Kleis Auke Wolthuizen <info@kleisauke.nl>\",\n \"Matt Hirsch <mhirsch@media.mit.edu>\",\n \"Matthias Thoemmes <thoemmes@gmail.com>\",\n \"Patrick Paskaris <patrick@paskaris.gr>\",\n \"J\u00E9r\u00E9my Lal <kapouer@melix.org>\",\n \"Rahul Nanwani <r.nanwani@gmail.com>\",\n \"Alice Monday <alice0meta@gmail.com>\",\n \"Kristo Jorgenson <kristo.jorgenson@gmail.com>\",\n \"YvesBos <yves_bos@outlook.com>\",\n \"Guy Maliar <guy@tailorbrands.com>\",\n \"Nicolas Coden <nicolas@ncoden.fr>\",\n \"Matt Parrish <matt.r.parrish@gmail.com>\",\n \"Marcel Bretschneider <marcel.bretschneider@gmail.com>\",\n \"Matthew McEachen <matthew+github@mceachen.org>\",\n \"Jarda Kot\u011B\u0161ovec <jarda.kotesovec@gmail.com>\",\n \"Kenric D'Souza <kenric.dsouza@gmail.com>\",\n \"Oleh Aleinyk <oleg.aleynik@gmail.com>\",\n \"Marcel Bretschneider <marcel.bretschneider@gmail.com>\",\n \"Andrea Bianco <andrea.bianco@unibas.ch>\",\n \"Rik Heywood <rik@rik.org>\",\n \"Thomas Parisot <hi@oncletom.io>\",\n \"Nathan Graves <nathanrgraves+github@gmail.com>\",\n \"Tom Lokhorst <tom@lokhorst.eu>\",\n \"Espen Hovlandsdal <espen@hovlandsdal.com>\",\n \"Sylvain Dumont <sylvain.dumont35@gmail.com>\",\n \"Alun Davies <alun.owain.davies@googlemail.com>\",\n \"Aidan Hoolachan <ajhoolachan21@gmail.com>\",\n \"Axel Eirola <axel.eirola@iki.fi>\",\n \"Freezy <freezy@xbmc.org>\",\n \"Daiz <taneli.vatanen@gmail.com>\",\n \"Julian Aubourg <j@ubourg.net>\",\n \"Keith Belovay <keith@picthrive.com>\",\n \"Michael B. Klein <mbklein@gmail.com>\",\n \"Jordan Prudhomme <jordan@raboland.fr>\",\n \"Ilya Ovdin <iovdin@gmail.com>\",\n \"Andargor <andargor@yahoo.com>\",\n \"Paul Neave <paul.neave@gmail.com>\",\n \"Brendan Kennedy <brenwken@gmail.com>\",\n \"Brychan Bennett-Odlum <git@brychan.io>\",\n \"Edward Silverton <e.silverton@gmail.com>\",\n \"Roman Malieiev <aromaleev@gmail.com>\",\n \"Tomas Szabo <tomas.szabo@deftomat.com>\",\n \"Robert O'Rourke <robert@o-rourke.org>\",\n \"Guillermo Alfonso Varela Chouci\u00F1o <guillevch@gmail.com>\",\n \"Christian Flintrup <chr@gigahost.dk>\",\n \"Manan Jadhav <manan@motionden.com>\",\n \"Leon Radley <leon@radley.se>\",\n \"alza54 <alza54@thiocod.in>\",\n \"Jacob Smith <jacob@frende.me>\",\n \"Michael Nutt <michael@nutt.im>\",\n \"Brad Parham <baparham@gmail.com>\",\n \"Taneli Vatanen <taneli.vatanen@gmail.com>\",\n \"Joris Dugu\u00E9 <zaruike10@gmail.com>\",\n \"Chris Banks <christopher.bradley.banks@gmail.com>\",\n \"Ompal Singh <ompal.hitm09@gmail.com>\",\n \"Brodan <christopher.hranj@gmail.com>\",\n \"Ankur Parihar <ankur.github@gmail.com>\",\n \"Brahim Ait elhaj <brahima@gmail.com>\",\n \"Mart Jansink <m.jansink@gmail.com>\",\n \"Lachlan Newman <lachnewman007@gmail.com>\",\n \"Dennis Beatty <dennis@dcbeatty.com>\",\n \"Ingvar Stepanyan <me@rreverser.com>\",\n \"Don Denton <don@happycollision.com>\",\n \"Dmytro Tiapukhin <cool.gegeg@gmail.com>\",\n \"Florian Lefebvre <contact@florian-lefebvre.dev>\"\n ],\n \"scripts\": {\n \"build\": \"node install/build.js\",\n \"build:dist\": \"node scripts/build.mjs\",\n \"clean\": \"rm -rf src/build/ test/fixtures/output.*\",\n \"test\": \"npm run lint && npm run test-unit\",\n \"lint\": \"npm run lint-cpp && npm run lint-js && npm run lint-types && npm run lint-publish\",\n \"lint-cpp\": \"cpplint --quiet src/*.h src/*.cc\",\n \"lint-js\": \"biome lint\",\n \"lint-publish\": \"publint --strict\",\n \"lint-types\": \"tsd --files ./test/types/sharp.test-d.{cts,mts}\",\n \"test-leak\": \"./test/leak/leak.sh\",\n \"test-unit\": \"node --experimental-test-coverage test/unit.mjs\",\n \"package-from-local-build\": \"node npm/from-local-build.js\",\n \"package-wasm-wrappers\": \"node npm/wasm-wrappers.js\",\n \"package-release-notes\": \"node npm/release-notes.js\",\n \"docs-build\": \"node docs/build.mjs\",\n \"docs-serve\": \"cd docs && npm start\",\n \"docs-publish\": \"cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp\"\n },\n \"type\": \"commonjs\",\n \"files\": [\n \"dist\",\n \"install\",\n \"lib/index.d.ts\",\n \"src/*.{cc,h,gyp}\"\n ],\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.mts\",\n \"exports\": {\n \".\": {\n \"import\": {\n \"types\": \"./dist/index.d.mts\",\n \"default\": \"./dist/index.mjs\"\n },\n \"require\": {\n \"types\": \"./dist/index.d.cts\",\n \"default\": \"./dist/index.cjs\"\n }\n }\n },\n \"sideEffects\": true,\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/lovell/sharp.git\"\n },\n \"keywords\": [\n \"jpeg\",\n \"png\",\n \"webp\",\n \"avif\",\n \"tiff\",\n \"gif\",\n \"svg\",\n \"jp2\",\n \"dzi\",\n \"image\",\n \"resize\",\n \"thumbnail\",\n \"crop\",\n \"embed\",\n \"libvips\",\n \"vips\"\n ],\n \"dependencies\": {\n \"@img/colour\": \"^1.1.0\",\n \"detect-libc\": \"^2.1.2\",\n \"semver\": \"^7.8.5\"\n },\n \"optionalDependencies\": {\n \"@img/sharp-darwin-arm64\": \"0.35.5\",\n \"@img/sharp-darwin-x64\": \"0.35.5\",\n \"@img/sharp-freebsd-wasm32\": \"0.35.5\",\n \"@img/sharp-libvips-darwin-arm64\": \"1.3.4\",\n \"@img/sharp-libvips-darwin-x64\": \"1.3.4\",\n \"@img/sharp-libvips-linux-arm\": \"1.3.4\",\n \"@img/sharp-libvips-linux-arm64\": \"1.3.4\",\n \"@img/sharp-libvips-linux-ppc64\": \"1.3.4\",\n \"@img/sharp-libvips-linux-riscv64\": \"1.3.4\",\n \"@img/sharp-libvips-linux-s390x\": \"1.3.4\",\n \"@img/sharp-libvips-linux-x64\": \"1.3.4\",\n \"@img/sharp-libvips-linuxmusl-arm64\": \"1.3.4\",\n \"@img/sharp-libvips-linuxmusl-x64\": \"1.3.4\",\n \"@img/sharp-linux-arm\": \"0.35.5\",\n \"@img/sharp-linux-arm64\": \"0.35.5\",\n \"@img/sharp-linux-ppc64\": \"0.35.5\",\n \"@img/sharp-linux-riscv64\": \"0.35.5\",\n \"@img/sharp-linux-s390x\": \"0.35.5\",\n \"@img/sharp-linux-x64\": \"0.35.5\",\n \"@img/sharp-linuxmusl-arm64\": \"0.35.5\",\n \"@img/sharp-linuxmusl-x64\": \"0.35.5\",\n \"@img/sharp-webcontainers-wasm32\": \"0.35.5\",\n \"@img/sharp-win32-arm64\": \"0.35.5\",\n \"@img/sharp-win32-ia32\": \"0.35.5\",\n \"@img/sharp-win32-x64\": \"0.35.5\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n }\n },\n \"devDependencies\": {\n \"@biomejs/biome\": \"^2.5.14\",\n \"@cpplint/cli\": \"^0.1.0\",\n \"@emnapi/runtime\": \"^1.11.3\",\n \"@img/sharp-libvips-dev\": \"1.3.4\",\n \"@img/sharp-libvips-dev-wasm32\": \"1.3.4\",\n \"@img/sharp-libvips-win32-arm64\": \"1.3.4\",\n \"@img/sharp-libvips-win32-ia32\": \"1.3.4\",\n \"@img/sharp-libvips-win32-x64\": \"1.3.4\",\n \"@types/node\": \"*\",\n \"emnapi\": \"^1.11.3\",\n \"exif-reader\": \"^2.0.3\",\n \"icc\": \"^4.0.0\",\n \"node-addon-api\": \"^8.9.2\",\n \"node-gyp\": \"^12.4.0\",\n \"publint\": \"^0.3.24\",\n \"tar-fs\": \"^3.1.3\",\n \"tsd\": \"^0.33.0\",\n \"yauzl\": \"^3.4.0\"\n },\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=20.9.0\"\n },\n \"config\": {\n \"libvips\": \">=8.18.7\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/libvips\"\n }\n}\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport { spawnSync } from 'node:child_process';\nimport { createHash } from 'node:crypto';\nimport semver from 'semver';\nimport detectLibc from 'detect-libc';\nimport pkg from '../package.json' with { type: 'json' };\n\n/* node:coverage ignore next */\nconst minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || pkg.config.libvips;\nconst minimumLibvipsVersion = semver.coerce(minimumLibvipsVersionLabelled).version;\n\nconst prebuiltPlatforms = [\n 'darwin-arm64', 'darwin-x64',\n 'freebsd-arm64', 'freebsd-x64',\n 'linux-arm', 'linux-arm64', 'linux-ppc64', 'linux-riscv64', 'linux-s390x', 'linux-wasm32', 'linux-x64',\n 'linuxmusl-arm64', 'linuxmusl-x64',\n 'win32-arm64', 'win32-ia32', 'win32-x64'\n];\n\nconst spawnSyncOptions = {\n encoding: 'utf8',\n shell: true\n};\n\nconst log = (item) => {\n if (item instanceof Error) {\n console.error(`sharp: Installation error: ${item.message}`);\n } else {\n console.log(`sharp: ${item}`);\n }\n};\n\n/* node:coverage disable */\n\nconst runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : '';\n\nconst runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`;\n\nconst buildPlatformArch = () => {\n if (isEmscripten()) {\n return 'wasm32';\n }\n const { npm_config_arch, npm_config_platform, npm_config_libc } = process.env;\n const libc = typeof npm_config_libc === 'string' ? npm_config_libc : runtimeLibc();\n return `${npm_config_platform || process.platform}${libc}-${npm_config_arch || process.arch}`;\n};\n\nconst buildSharpLibvipsIncludeDir = () => {\n try {\n return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`);\n } catch {\n try {\n return require('@img/sharp-libvips-dev/include');\n } catch {}\n }\n return '';\n};\n\nconst buildSharpLibvipsCPlusPlusDir = () => {\n try {\n return require('@img/sharp-libvips-dev/cplusplus');\n } catch {}\n return '';\n};\n\nconst buildSharpLibvipsLibDir = () => {\n try {\n return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`);\n } catch {\n try {\n return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`);\n } catch {}\n }\n return '';\n};\n\nconst isUnsupportedNodeRuntime = () => {\n if (process.release?.name === 'node' && process.versions) {\n if (!semver.satisfies(process.versions.node, pkg.engines.node)) {\n return { found: process.versions.node, expected: pkg.engines.node };\n }\n }\n};\n\nconst isEmscripten = () => {\n const { CC } = process.env;\n return Boolean(CC?.endsWith('/emcc'));\n};\n\nconst isRosetta = () => {\n if (process.platform === 'darwin' && process.arch === 'x64') {\n const translated = spawnSync('sysctl sysctl.proc_translated', spawnSyncOptions).stdout;\n return (translated || '').trim() === 'sysctl.proc_translated: 1';\n }\n return false;\n};\n\n/* node:coverage enable */\n\nconst sha512 = (s) => createHash('sha512').update(s).digest('hex');\n\nconst yarnLocator = () => {\n try {\n const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`);\n const npmVersion = semver.coerce(pkg.optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`], {\n includePrerelease: true\n }).version;\n return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10);\n } catch {}\n return '';\n};\n\n/* node:coverage disable */\n\nconst spawnRebuild = () =>\n spawnSync(`node-gyp rebuild --directory=src ${isEmscripten() ? '--nodedir=emscripten' : ''}`, {\n ...spawnSyncOptions,\n stdio: 'inherit'\n }).status;\n\nconst globalLibvipsVersion = () => {\n if (process.platform !== 'win32') {\n const globalLibvipsVersion = spawnSync('pkg-config --modversion vips-cpp', {\n ...spawnSyncOptions,\n env: {\n ...process.env,\n PKG_CONFIG_PATH: pkgConfigPath()\n }\n }).stdout;\n return (globalLibvipsVersion || '').trim();\n } else {\n return '';\n }\n};\n\nconst getBrewPkgConfigPath = () => {\n try {\n const brewPrefix = (spawnSync('brew', ['--prefix'], { encoding: 'utf8' }).stdout || '').trim();\n if (brewPrefix) {\n return `${brewPrefix}/lib/pkgconfig`;\n }\n } catch (_err) {}\n return undefined;\n};\n\nconst getPkgConfigPath = () => {\n try {\n const pkgConfigPath = (spawnSync('pkg-config', ['--variable', 'pc_path', 'pkg-config'], { encoding: 'utf8' }).stdout || '').trim();\n if (pkgConfigPath) {\n return pkgConfigPath;\n }\n } catch (_err) {}\n return undefined;\n};\n\n/* node:coverage enable */\n\nconst pkgConfigPath = () => {\n if (process.platform !== 'win32') {\n return [\n getBrewPkgConfigPath(),\n getPkgConfigPath(),\n process.env.PKG_CONFIG_PATH\n ].filter(Boolean).join(':');\n } else {\n return '';\n }\n};\n\nconst skipSearch = (status, reason, logger) => {\n if (logger) {\n logger(`Detected ${reason}, skipping search for globally-installed libvips`);\n }\n return status;\n};\n\nconst useGlobalLibvips = (logger) => {\n if (Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS) === true) {\n return skipSearch(false, 'SHARP_IGNORE_GLOBAL_LIBVIPS', logger);\n }\n if (Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS) === true) {\n return skipSearch(true, 'SHARP_FORCE_GLOBAL_LIBVIPS', logger);\n }\n /* node:coverage ignore next 3 */\n if (isRosetta()) {\n return skipSearch(false, 'Rosetta', logger);\n }\n const globalVipsVersion = globalLibvipsVersion();\n /* node:coverage ignore next */\n return !!globalVipsVersion && semver.gte(globalVipsVersion, minimumLibvipsVersion);\n};\n\nexport default {\n minimumLibvipsVersion,\n prebuiltPlatforms,\n buildPlatformArch,\n buildSharpLibvipsIncludeDir,\n buildSharpLibvipsCPlusPlusDir,\n buildSharpLibvipsLibDir,\n isUnsupportedNodeRuntime,\n runtimePlatformArch,\n log,\n yarnLocator,\n spawnRebuild,\n globalLibvipsVersion,\n pkgConfigPath,\n useGlobalLibvips\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\n// Inspects the runtime environment and exports the relevant sharp.node binary\n\nimport { createRequire } from \"node:module\"\nimport { familySync, versionSync } from \"detect-libc\";\n\nimport libvips from \"./libvips.mjs\";\nimport pkg from '../package.json' with { type: 'json' };\n\nconst require = createRequire(import.meta.url);\nconst { version } = pkg;\n\nconst { runtimePlatformArch, isUnsupportedNodeRuntime, prebuiltPlatforms, minimumLibvipsVersion } = libvips;\nconst runtimePlatform = runtimePlatformArch();\n\n/* node:coverage disable */\n\nlet sharp;\nconst errors = [];\ntry {\n sharp = require(`../src/build/Release/sharp-${runtimePlatform}-${version}.node`);\n} catch (err) {\n errors.push(err);\n}\nif (!sharp) {\n try {\n sharp = require(`../src/build/Release/sharp-wasm32-${version}.node`);\n } catch (err) {\n errors.push(err);\n }\n}\nif (!sharp) {\n try {\n switch (runtimePlatform) {\n case \"darwin-arm64\":\n sharp = require(\"@img/sharp-darwin-arm64/sharp.node\");\n break;\n case \"darwin-x64\":\n sharp = require(\"@img/sharp-darwin-x64/sharp.node\");\n break;\n case \"linux-arm\":\n sharp = require(\"@img/sharp-linux-arm/sharp.node\");\n break;\n case \"linux-arm64\":\n sharp = require(\"@img/sharp-linux-arm64/sharp.node\");\n break;\n case \"linux-ppc64\":\n sharp = require(\"@img/sharp-linux-ppc64/sharp.node\");\n break;\n case \"linux-riscv64\":\n sharp = require(\"@img/sharp-linux-riscv64/sharp.node\");\n break;\n case \"linux-s390x\":\n sharp = require(\"@img/sharp-linux-s390x/sharp.node\");\n break;\n case \"linux-x64\":\n sharp = require(\"@img/sharp-linux-x64/sharp.node\");\n break;\n case \"linuxmusl-arm64\":\n sharp = require(\"@img/sharp-linuxmusl-arm64/sharp.node\");\n break;\n case \"linuxmusl-x64\":\n sharp = require(\"@img/sharp-linuxmusl-x64/sharp.node\");\n break;\n case \"win32-arm64\":\n sharp = require(\"@img/sharp-win32-arm64/sharp.node\");\n break;\n case \"win32-ia32\":\n sharp = require(\"@img/sharp-win32-ia32/sharp.node\");\n break;\n case \"win32-x64\":\n sharp = require(\"@img/sharp-win32-x64/sharp.node\");\n break;\n case \"freebsd-arm64\":\n case \"freebsd-x64\":\n sharp = require(\"@img/sharp-freebsd-wasm32/sharp.node\");\n break;\n case \"linux-wasm32\":\n sharp = require(\"@img/sharp-webcontainers-wasm32/sharp.node\");\n break;\n }\n if (sharp && [\"linux-x64\", \"linuxmusl-x64\"].includes(runtimePlatform) && !sharp._isUsingX64V2()) {\n const err = new Error(\"Prebuilt binaries for Linux x64 require v2 microarchitecture\");\n err.code = \"Unsupported CPU\";\n errors.push(err);\n sharp = null;\n }\n if (sharp && process.versions.electron && runtimePlatform.startsWith(\"linux\")) {\n process.emitWarning(\n \"Binaries provided by Electron for use on Linux may be incompatible with sharp - see https://sharp.pixelplumbing.com/install#electron-and-linux\",\n { code: \"SharpElectronLinux\" }\n );\n }\n } catch (err) {\n errors.push(err);\n }\n}\nif (!sharp) {\n try {\n sharp = require(\"@img/sharp-wasm32/sharp.node\");\n } catch (err) {\n errors.push(err);\n }\n}\n\nif (!sharp) {\n const [isLinux, isMacOs, isWindows] = [\"linux\", \"darwin\", \"win32\"].map((os) => runtimePlatform.startsWith(os));\n\n const help = [`Could not load the \"sharp\" module using the ${runtimePlatform} runtime`];\n errors.forEach((err) => {\n if (!err.code?.endsWith(\"MODULE_NOT_FOUND\")) {\n help.push(err.code ? `${err.code}: ${err.message}` : err.message);\n }\n });\n const messages = errors.map((err) => err.message).join(\" \");\n help.push(\"Possible solutions:\");\n // Common error messages\n if (isUnsupportedNodeRuntime()) {\n const { found, expected } = isUnsupportedNodeRuntime();\n help.push(\"- Please upgrade Node.js:\", ` Found ${found}`, ` Requires ${expected}`);\n } else if (prebuiltPlatforms.includes(runtimePlatform) && !/libstdc\\+\\+\\.so/.test(messages)) {\n const [os, cpu] = runtimePlatform.split(\"-\");\n const libc = os.endsWith(\"musl\") ? \" --libc=musl\" : \"\";\n help.push(\n \"- Ensure optional dependencies can be installed:\",\n \" npm install --include=optional sharp\",\n \"- Ensure your package manager supports multi-platform installation:\",\n \" See https://sharp.pixelplumbing.com/install#cross-platform\",\n \"- Add platform-specific dependencies:\",\n ` npm install --os=${os.replace(\"musl\", \"\")}${libc} --cpu=${cpu} sharp`,\n );\n } else {\n help.push(\n `- Manually install libvips >= ${minimumLibvipsVersion}`,\n \" See https://sharp.pixelplumbing.com/install#building-from-source\",\n \"- Add WebAssembly-based dependencies:\",\n \" npm install sharp @img/sharp-wasm32\",\n );\n }\n if (isLinux && /(symbol not found|CXXABI_)/i.test(messages)) {\n try {\n const { config } = require(`@img/sharp-libvips-${runtimePlatform}/package`);\n const libcFound = `${familySync()} ${versionSync()}`;\n const libcRequires = `${config.musl ? \"musl\" : \"glibc\"} ${config.musl || config.glibc}`;\n help.push(\"- Update your OS:\", ` Found ${libcFound}`, ` Requires ${libcRequires}`);\n } catch (_errEngines) {}\n }\n if (isLinux && /\\/snap\\/core[0-9]{2}/.test(messages)) {\n help.push(\"- Remove the Node.js Snap, which does not support native modules\", \" snap remove node\");\n }\n if (isMacOs && /Incompatible library version/.test(messages)) {\n help.push(\"- Update Homebrew:\", \" brew update && brew upgrade vips\");\n }\n if (errors.some((err) => err.code === \"ERR_DLOPEN_DISABLED\")) {\n help.push(\"- Run Node.js without using the --no-addons flag\");\n }\n // Link to installation docs\n if (isWindows && /The specified procedure could not be found/.test(messages)) {\n help.push(\n \"- Using the canvas package on Windows?\",\n \" See https://sharp.pixelplumbing.com/install#canvas-and-windows\",\n \"- Check for outdated versions of sharp in the dependency tree:\",\n \" npm ls sharp\",\n );\n }\n help.push(\"- Consult the installation documentation:\", \" See https://sharp.pixelplumbing.com/install\");\n throw new Error(help.join(\"\\n\"));\n}\n\nexport default sharp;\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport util from 'node:util';\nimport stream from 'node:stream';\nimport is from './is.mjs';\n\nimport './sharp.mjs';\n\n// Use NODE_DEBUG=sharp to enable libvips warnings\nconst debuglog = util.debuglog('sharp');\n\nconst queueListener = (queueLength) => {\n Sharp.queue.emit('change', queueLength);\n};\n\n/**\n * Constructor factory to create an instance of `sharp`, to which further methods are chained.\n *\n * JPEG, PNG, WebP, GIF, AVIF or TIFF format image data can be streamed out from this object.\n * When using Stream based output, derived attributes are available from the `info` event.\n *\n * Non-critical problems encountered during processing are emitted as `warning` events.\n *\n * Implements the [stream.Duplex](http://nodejs.org/api/stream.html#stream_class_stream_duplex) class.\n *\n * When loading more than one page/frame of an animated image,\n * these are combined as a vertically-stacked \"toilet roll\" image\n * where the overall height is the `pageHeight` multiplied by the number of `pages`.\n *\n * @constructs Sharp\n *\n * @emits Sharp#info\n * @emits Sharp#warning\n *\n * @example\n * sharp('input.jpg')\n * .resize(300, 200)\n * .toFile('output.jpg', function(err) {\n * // output.jpg is a 300 pixels wide and 200 pixels high image\n * // containing a scaled and cropped version of input.jpg\n * });\n *\n * @example\n * // Read image data from remote URL,\n * // resize to 300 pixels wide,\n * // emit an 'info' event with calculated dimensions\n * // and finally write image data to writableStream\n * const { body } = await fetch('https://...');\n * const readableStream = Readable.fromWeb(body);\n * const transformer = sharp()\n * .resize(300)\n * .on('info', ({ height }) => {\n * console.log(`Image height is ${height}`);\n * });\n * readableStream.pipe(transformer).pipe(writableStream);\n *\n * @example\n * // Web Streams API, requires Node.js >= 24.15.0\n * import { Duplex } from 'node:stream';\n *\n * const { body } = await fetch('https://...');\n * const transformer = Duplex.toWeb(\n * sharp().resize(300),\n * { readableType: 'bytes' }\n * );\n * body.pipeThrough(transformer).pipeTo(writable);\n *\n * @example\n * // Create a blank 300x200 PNG image of semi-translucent red pixels\n * sharp({\n * create: {\n * width: 300,\n * height: 200,\n * channels: 4,\n * background: { r: 255, g: 0, b: 0, alpha: 0.5 }\n * }\n * })\n * .png()\n * .toBuffer()\n * .then( ... );\n *\n * @example\n * // Convert an animated GIF to an animated WebP\n * await sharp('in.gif', { animated: true }).toFile('out.webp');\n *\n * @example\n * // Read a raw array of pixels and save it to a png\n * const input = Uint8Array.from([255, 255, 255, 0, 0, 0]); // or Uint8ClampedArray\n * const image = sharp(input, {\n * // because the input does not contain its dimensions or how many channels it has\n * // we need to specify it in the constructor options\n * raw: {\n * width: 2,\n * height: 1,\n * channels: 3\n * }\n * });\n * await image.toFile('my-two-pixels.png');\n *\n * @example\n * // Generate RGB Gaussian noise\n * await sharp({\n * create: {\n * width: 300,\n * height: 200,\n * channels: 3,\n * noise: {\n * type: 'gaussian',\n * mean: 128,\n * sigma: 30\n * }\n * }\n * }).toFile('noise.png');\n *\n * @example\n * // Generate an image from text\n * await sharp({\n * text: {\n * text: 'Hello, world!',\n * width: 400, // max width\n * height: 300 // max height\n * }\n * }).toFile('text_bw.png');\n *\n * @example\n * // Generate an rgba image from text using pango markup and font\n * await sharp({\n * text: {\n * text: '<span foreground=\"red\">Red!</span><span background=\"cyan\">blue</span>',\n * font: 'sans',\n * rgba: true,\n * dpi: 300\n * }\n * }).toFile('text_rgba.png');\n *\n * @example\n * // Join four input images as a 2x2 grid with a 4 pixel gutter\n * const data = await sharp(\n * [image1, image2, image3, image4],\n * { join: { across: 2, shim: 4 } }\n * ).toBuffer();\n *\n * @example\n * // Generate a two-frame animated image from emoji\n * const images = ['\uD83D\uDE00', '\uD83D\uDE1B'].map(text => ({\n * text: { text, width: 64, height: 64, channels: 4, rgba: true }\n * }));\n * await sharp(images, { join: { animated: true } }).toFile('out.gif');\n *\n * @param {(Buffer|ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array|Float32Array|Float64Array|string|Array)} [input] - if present, can be\n * a Buffer / ArrayBuffer / Uint8Array / Uint8ClampedArray containing JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image data, or\n * a TypedArray containing raw pixel image data, or\n * a String containing the filesystem path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file.\n * An array of inputs can be provided, and these will be joined together.\n * JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data can be streamed into the object when not present.\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {string} [options.failOn='warning'] - When to abort processing of invalid pixel data, one of (in order of sensitivity, least to most): 'none', 'truncated', 'error', 'warning'. Higher levels imply lower levels. Invalid metadata will always abort. Use the default 'warning' level with untrusted input.\n * @param {number|boolean} [options.limitInputPixels=268402689] - Do not process input images where the number of pixels\n * (width x height) exceeds this limit. Assumes image dimensions contained in the input metadata can be trusted.\n * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF).\n * @param {number|boolean} [options.limitInputChannels=5] - Do not process input images where the number of channels exceeds this limit. Assumes image metadata can be trusted.\n * An integral Number of channels, zero or false to remove limit, true to use default limit of 5.\n * @param {boolean} [options.unlimited=false] - Set this to `true` to remove safety features that help prevent memory exhaustion (JPEG, PNG, SVG, HEIF).\n * @param {boolean} [options.autoOrient=false] - Set this to `true` to rotate/flip the image to match EXIF `Orientation`, if any.\n * @param {boolean} [options.sequentialRead=true] - Set this to `false` to use random access rather than sequential read. Some operations will do this automatically.\n * @param {number} [options.density=72] - The DPI at which to render SVG and PDF images, in the range 1 to 100000.\n * @param {number} [options.ignoreIcc=false] - should the embedded ICC profile, if any, be ignored.\n * @param {number} [options.pages=1] - Number of pages to extract for multi-page input (GIF, WebP, TIFF), use -1 for all pages.\n * @param {number} [options.page=0] - Page number to start extracting from for multi-page input (GIF, WebP, TIFF), zero based.\n * @param {boolean} [options.animated=false] - Set to `true` to read all frames/pages of an animated image (GIF, WebP, TIFF), equivalent of setting `pages` to `-1`.\n * @param {Object} [options.raw] - describes raw pixel input image data. See `raw()` for pixel ordering.\n * @param {number} [options.raw.width] - integral number of pixels wide.\n * @param {number} [options.raw.height] - integral number of pixels high.\n * @param {number} [options.raw.channels] - integral number of channels, between 1 and 4.\n * @param {boolean} [options.raw.premultiplied] - specifies that the raw input has already been premultiplied, set to `true`\n * to avoid sharp premultiplying the image. (optional, default `false`)\n * @param {number} [options.raw.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `raw.height`.\n * @param {Object} [options.create] - describes a new image to be created.\n * @param {number} [options.create.width] - integral number of pixels wide.\n * @param {number} [options.create.height] - integral number of pixels high.\n * @param {number} [options.create.channels] - integral number of channels, either 3 (RGB) or 4 (RGBA).\n * @param {string|Object} [options.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {number} [options.create.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `create.height`.\n * @param {Object} [options.create.noise] - describes a noise to be created.\n * @param {string} [options.create.noise.type] - type of generated noise, currently only `gaussian` is supported.\n * @param {number} [options.create.noise.mean=128] - Mean value of pixels in the generated noise.\n * @param {number} [options.create.noise.sigma=30] - Standard deviation of pixel values in the generated noise.\n * @param {Object} [options.text] - describes a new text image to be created.\n * @param {string} [options.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `<i>Le</i>Monde`.\n * @param {string} [options.text.font] - font name to render with.\n * @param {string} [options.text.fontfile] - absolute filesystem path to a font file that can be used by `font`.\n * @param {number} [options.text.width=0] - Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries.\n * @param {number} [options.text.height=0] - Maximum integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0.\n * @param {string} [options.text.align='left'] - Alignment style for multi-line text (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {boolean} [options.text.justify=false] - set this to true to apply justification to the text.\n * @param {number} [options.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified.\n * @param {boolean} [options.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for pango markup features like `<span foreground=\"red\">Red!</span>`.\n * @param {number} [options.text.spacing=0] - text line height in points. Will use the font line height if none is specified.\n * @param {string} [options.text.wrap='word'] - word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none'.\n * @param {Object} [options.join] - describes how an array of input images should be joined.\n * @param {number} [options.join.across=1] - number of images to join horizontally.\n * @param {boolean} [options.join.animated=false] - set this to `true` to join the images as an animated image.\n * @param {number} [options.join.shim=0] - number of pixels to insert between joined images.\n * @param {string|Object} [options.join.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {string} [options.join.halign='left'] - horizontal alignment style for images joined horizontally (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {string} [options.join.valign='top'] - vertical alignment style for images joined vertically (`'top'`, `'centre'`, `'center'`, `'bottom'`).\n * @param {Object} [options.tiff] - Describes TIFF specific options.\n * @param {number} [options.tiff.subifd=-1] - Sub Image File Directory to extract for OME-TIFF, defaults to main image.\n * @param {Object} [options.svg] - Describes SVG specific options.\n * @param {string} [options.svg.stylesheet] - Custom CSS for SVG input, applied with a User Origin during the CSS cascade.\n * @param {boolean} [options.svg.highBitdepth=false] - Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA.\n * @param {Object} [options.pdf] - Describes PDF specific options. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick.\n * @param {string|Object} [options.pdf.background] - Background colour to use when PDF is partially transparent. Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Object} [options.openSlide] - Describes OpenSlide specific options. Requires the use of a globally-installed libvips compiled with support for OpenSlide.\n * @param {number} [options.openSlide.level=0] - Level to extract from a multi-level input, zero based.\n * @param {Object} [options.jp2] - Describes JPEG 2000 specific options. Requires the use of a globally-installed libvips compiled with support for OpenJPEG.\n * @param {boolean} [options.jp2.oneshot=false] - Set to `true` to decode tiled JPEG 2000 images in a single operation, improving compatibility.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nconst Sharp = function (input, options) {\n // biome-ignore lint/complexity/noArguments: constructor factory\n if (arguments.length === 1 && !is.defined(input)) {\n throw new Error('Invalid input');\n }\n if (!(this instanceof Sharp)) {\n return new Sharp(input, options);\n }\n stream.Duplex.call(this);\n this.options = {\n // resize options\n topOffsetPre: -1,\n leftOffsetPre: -1,\n widthPre: -1,\n heightPre: -1,\n topOffsetPost: -1,\n leftOffsetPost: -1,\n widthPost: -1,\n heightPost: -1,\n width: -1,\n height: -1,\n canvas: 'crop',\n position: 0,\n resizeBackground: [0, 0, 0, 255],\n angle: 0,\n rotationAngle: 0,\n rotationBackground: [0, 0, 0, 255],\n rotateBefore: false,\n orientBefore: false,\n flip: false,\n flop: false,\n extendTop: 0,\n extendBottom: 0,\n extendLeft: 0,\n extendRight: 0,\n extendBackground: [0, 0, 0, 255],\n extendWith: 'background',\n withoutEnlargement: false,\n withoutReduction: false,\n affineMatrix: [],\n affineBackground: [0, 0, 0, 255],\n affineIdx: 0,\n affineIdy: 0,\n affineOdx: 0,\n affineOdy: 0,\n affineInterpolator: this.constructor.interpolators.bilinear,\n kernel: 'lanczos3',\n fastShrinkOnLoad: true,\n // operations\n tint: [-1, 0, 0, 0],\n flatten: false,\n flattenBackground: [0, 0, 0],\n unflatten: false,\n negate: false,\n negateAlpha: true,\n medianSize: 0,\n blurSigma: 0,\n precision: 'integer',\n minAmpl: 0.2,\n sharpenSigma: 0,\n sharpenM1: 1,\n sharpenM2: 2,\n sharpenX1: 2,\n sharpenY2: 10,\n sharpenY3: 20,\n threshold: 0,\n thresholdGrayscale: true,\n trimBackground: [],\n trimThreshold: -1,\n trimLineArt: false,\n trimMargin: 0,\n dilateWidth: 0,\n erodeWidth: 0,\n gamma: 0,\n gammaOut: 0,\n greyscale: false,\n normalise: false,\n normaliseLower: 1,\n normaliseUpper: 99,\n claheWidth: 0,\n claheHeight: 0,\n claheMaxSlope: 3,\n brightness: 1,\n saturation: 1,\n hue: 0,\n lightness: 0,\n booleanBufferIn: null,\n booleanFileIn: '',\n joinChannelIn: [],\n extractChannel: -1,\n removeAlpha: false,\n ensureAlpha: -1,\n colourspace: 'srgb',\n colourspacePipeline: 'last',\n composite: [],\n // output\n fileOut: '',\n formatOut: 'input',\n streamOut: false,\n typedArrayOut: false,\n keepMetadata: 0,\n withMetadataOrientation: -1,\n withMetadataDensity: 0,\n withIccProfile: '',\n withExif: {},\n withExifMerge: true,\n withXmp: '',\n keepGainMap: false,\n withGainMap: false,\n resolveWithObject: false,\n loop: -1,\n delay: [],\n // output format\n jpegQuality: 80,\n jpegProgressive: false,\n jpegChromaSubsampling: '4:2:0',\n jpegTrellisQuantisation: false,\n jpegOvershootDeringing: false,\n jpegOptimiseScans: false,\n jpegOptimiseCoding: true,\n jpegQuantisationTable: 0,\n pngProgressive: false,\n pngCompressionLevel: 6,\n pngAdaptiveFiltering: false,\n pngPalette: false,\n pngQuality: 100,\n pngEffort: 7,\n pngBitdepth: 8,\n pngDither: 1,\n jp2Quality: 80,\n jp2TileHeight: 512,\n jp2TileWidth: 512,\n jp2Lossless: false,\n jp2ChromaSubsampling: '4:4:4',\n webpQuality: 80,\n webpAlphaQuality: 100,\n webpLossless: false,\n webpNearLossless: false,\n webpSmartSubsample: false,\n webpSmartDeblock: false,\n webpPreset: 'default',\n webpEffort: 4,\n webpMinSize: false,\n webpMixed: false,\n webpExact: false,\n gifBitdepth: 8,\n gifEffort: 7,\n gifDither: 1,\n gifInterFrameMaxError: 0,\n gifInterPaletteMaxError: 3,\n gifKeepDuplicateFrames: false,\n gifReuse: true,\n gifProgressive: false,\n tiffQuality: 80,\n tiffCompression: 'jpeg',\n tiffBigtiff: false,\n tiffPredictor: 'horizontal',\n tiffPyramid: false,\n tiffMiniswhite: false,\n tiffBitdepth: 0,\n tiffTile: false,\n tiffTileHeight: 256,\n tiffTileWidth: 256,\n tiffXres: 1.0,\n tiffYres: 1.0,\n tiffResolutionUnit: 'inch',\n heifQuality: 50,\n heifLossless: false,\n heifCompression: 'av1',\n heifEffort: 4,\n heifChromaSubsampling: '4:4:4',\n heifBitdepth: 8,\n heifTune: 'auto',\n jxlDistance: 1,\n jxlDecodingTier: 0,\n jxlEffort: 7,\n jxlLossless: false,\n rawDepth: 'uchar',\n tileSize: 256,\n tileOverlap: 0,\n tileContainer: 'fs',\n tileLayout: 'dz',\n tileFormat: 'last',\n tileDepth: 'last',\n tileAngle: 0,\n tileSkipBlanks: -1,\n tileBackground: [255, 255, 255, 255],\n tileCentre: false,\n tileId: 'https://example.com/iiif',\n tileBasename: '',\n timeoutSeconds: 0,\n linearA: [],\n linearB: [],\n pdfBackground: [255, 255, 255, 255],\n // Function to notify of libvips warnings\n debuglog: warning => {\n this.emit('warning', warning);\n debuglog(warning);\n },\n // Function to notify of queue length changes\n queueListener\n };\n this.options.input = this._createInputDescriptor(input, options, { allowStream: true });\n return this;\n};\nObject.setPrototypeOf(Sharp.prototype, stream.Duplex.prototype);\nObject.setPrototypeOf(Sharp, stream.Duplex);\n\n/**\n * Take a \"snapshot\" of the Sharp instance, returning a new instance.\n * Cloned instances inherit the input of their parent instance.\n * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream.\n *\n * @example\n * // firstWritableStream receives auto-rotated, resized readableStream\n * // secondWritableStream receives auto-rotated, extracted region of readableStream\n *\n * const pipeline = sharp().rotate();\n * pipeline\n * .clone()\n * .resize(800, 600)\n * .pipe(firstWritableStream);\n * pipeline\n * .clone()\n * .extract({ left: 20, top: 20, width: 100, height: 100 })\n * .pipe(secondWritableStream);\n * readableStream.pipe(pipeline);\n *\n * @example\n * // Create a pipeline that will download an image, resize it and format it to different files\n * // Using Promises to know when the pipeline is complete\n *\n * const sharpStream = sharp();\n *\n * const promises = [];\n * promises.push(\n * sharpStream\n * .clone()\n * .jpeg({ quality: 100 })\n * .toFile(\"originalFile.jpg\")\n * );\n * promises.push(\n * sharpStream\n * .clone()\n * .resize({ width: 500 })\n * .jpeg({ quality: 80 })\n * .toFile(\"optimized-500.jpg\")\n * );\n * promises.push(\n * sharpStream\n * .clone()\n * .resize({ width: 500 })\n * .webp({ quality: 80 })\n * .toFile(\"optimized-500.webp\")\n * );\n *\n * const res = await fetch(\"https://www.example.com/some-file.jpg\")\n * Readable.fromWeb(res.body).pipe(sharpStream);\n * await Promise.all(promises);\n *\n * @returns {Sharp}\n */\nfunction clone () {\n // Clone existing options\n const clone = this.constructor.call();\n const { debuglog, queueListener, ...options } = this.options;\n clone.options = structuredClone(options);\n clone.options.debuglog = debuglog;\n clone.options.queueListener = queueListener;\n // Pass 'finish' event to clone for Stream-based input\n if (this._isStreamInput()) {\n this._whenStreamInFinished(() => {\n // Clone inherits input data\n this._flattenBufferIn();\n clone.options.input.buffer = this.options.input.buffer;\n clone.emit('finish');\n });\n }\n return clone;\n}\nObject.assign(Sharp.prototype, { clone });\n\n/**\n * Export constructor.\n * @module Sharp\n * @private\n */\nexport default Sharp;\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\nimport sharp from './sharp.mjs';\n\n/**\n * Justification alignment\n * @member\n * @private\n */\nconst align = {\n left: 'low',\n top: 'low',\n low: 'low',\n center: 'centre',\n centre: 'centre',\n right: 'high',\n bottom: 'high',\n high: 'high'\n};\n\nconst inputStreamParameters = [\n // Limits and error handling\n 'failOn', 'limitInputPixels', 'limitInputChannels', 'unlimited',\n // Format-generic\n 'animated', 'autoOrient', 'density', 'ignoreIcc', 'page', 'pages', 'sequentialRead',\n // Format-specific\n 'jp2', 'openSlide', 'pdf', 'raw', 'svg', 'tiff',\n // Deprecated\n 'openSlideLevel', 'pdfBackground', 'tiffSubifd'\n];\n\n/**\n * Extract input options, if any, from an object.\n * @private\n */\nfunction _inputOptionsFromObject (obj) {\n const params = inputStreamParameters\n .filter(p => is.defined(obj[p]))\n .map(p => ([p, obj[p]]));\n return params.length\n ? Object.fromEntries(params)\n : undefined;\n}\n\n/**\n * Create Object containing input and input-related options.\n * @private\n */\nfunction _createInputDescriptor (input, inputOptions, containerOptions) {\n const inputDescriptor = {\n autoOrient: false,\n failOn: 'warning',\n limitInputPixels: 0x3FFF ** 2,\n limitInputChannels: 5,\n ignoreIcc: false,\n unlimited: false,\n sequentialRead: true\n };\n if (is.string(input)) {\n // filesystem\n inputDescriptor.file = input;\n } else if (is.buffer(input)) {\n // Buffer\n if (input.length === 0) {\n throw Error('Input Buffer is empty');\n }\n inputDescriptor.buffer = input;\n } else if (is.arrayBuffer(input)) {\n if (input.byteLength === 0) {\n throw Error('Input bit Array is empty');\n }\n inputDescriptor.buffer = Buffer.from(input, 0, input.byteLength);\n } else if (is.typedArray(input)) {\n if (input.length === 0) {\n throw Error('Input Bit Array is empty');\n }\n inputDescriptor.buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength);\n } else if (is.plainObject(input) && !is.defined(inputOptions)) {\n // Plain Object descriptor, e.g. create\n inputOptions = input;\n if (_inputOptionsFromObject(inputOptions)) {\n // Stream with options\n inputDescriptor.buffer = [];\n }\n } else if (!is.defined(input) && !is.defined(inputOptions) && is.object(containerOptions) && containerOptions.allowStream) {\n // Stream without options\n inputDescriptor.buffer = [];\n } else if (Array.isArray(input)) {\n if (input.length > 1) {\n // Join images together\n if (!this.options.joining) {\n this.options.joining = true;\n this.options.join = input.map(i => this._createInputDescriptor(i));\n } else {\n throw new Error('Recursive join is unsupported');\n }\n } else {\n throw new Error('Expected at least two images to join');\n }\n } else {\n throw new Error(`Unsupported input '${input}' of type ${typeof input}${\n is.defined(inputOptions) ? ` when also providing options of type ${typeof inputOptions}` : ''\n }`);\n }\n if (is.object(inputOptions)) {\n // failOn\n if (is.defined(inputOptions.failOn)) {\n if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ['none', 'truncated', 'error', 'warning'])) {\n inputDescriptor.failOn = inputOptions.failOn;\n } else {\n throw is.invalidParameterError('failOn', 'one of: none, truncated, error, warning', inputOptions.failOn);\n }\n }\n // autoOrient\n if (is.defined(inputOptions.autoOrient)) {\n if (is.bool(inputOptions.autoOrient)) {\n inputDescriptor.autoOrient = inputOptions.autoOrient;\n } else {\n throw is.invalidParameterError('autoOrient', 'boolean', inputOptions.autoOrient);\n }\n }\n // Density\n if (is.defined(inputOptions.density)) {\n if (is.number(inputOptions.density) && is.inRange(inputOptions.density, 1, 100000)) {\n inputDescriptor.density = inputOptions.density;\n } else {\n throw is.invalidParameterError('density', 'number between 1 and 100000', inputOptions.density);\n }\n }\n // Ignore embeddded ICC profile\n if (is.defined(inputOptions.ignoreIcc)) {\n if (is.bool(inputOptions.ignoreIcc)) {\n inputDescriptor.ignoreIcc = inputOptions.ignoreIcc;\n } else {\n throw is.invalidParameterError('ignoreIcc', 'boolean', inputOptions.ignoreIcc);\n }\n }\n // limitInputPixels\n if (is.defined(inputOptions.limitInputPixels)) {\n if (is.bool(inputOptions.limitInputPixels)) {\n inputDescriptor.limitInputPixels = inputOptions.limitInputPixels\n ? 0x3FFF ** 2\n : 0;\n } else if (is.integer(inputOptions.limitInputPixels) && is.inRange(inputOptions.limitInputPixels, 0, Number.MAX_SAFE_INTEGER)) {\n inputDescriptor.limitInputPixels = inputOptions.limitInputPixels;\n } else {\n throw is.invalidParameterError('limitInputPixels', 'positive integer', inputOptions.limitInputPixels);\n }\n }\n // limitInputChannels\n if (is.defined(inputOptions.limitInputChannels)) {\n if (is.bool(inputOptions.limitInputChannels)) {\n inputDescriptor.limitInputChannels = inputOptions.limitInputChannels ? 5 : 0;\n } else if (is.integer(inputOptions.limitInputChannels) && is.inRange(inputOptions.limitInputChannels, 0, Number.MAX_SAFE_INTEGER)) {\n inputDescriptor.limitInputChannels = inputOptions.limitInputChannels;\n } else {\n throw is.invalidParameterError('limitInputChannels', 'positive integer', inputOptions.limitInputChannels);\n }\n }\n // unlimited\n if (is.defined(inputOptions.unlimited)) {\n if (is.bool(inputOptions.unlimited)) {\n inputDescriptor.unlimited = inputOptions.unlimited;\n } else {\n throw is.invalidParameterError('unlimited', 'boolean', inputOptions.unlimited);\n }\n }\n // sequentialRead\n if (is.defined(inputOptions.sequentialRead)) {\n if (is.bool(inputOptions.sequentialRead)) {\n inputDescriptor.sequentialRead = inputOptions.sequentialRead;\n } else {\n throw is.invalidParameterError('sequentialRead', 'boolean', inputOptions.sequentialRead);\n }\n }\n // Raw pixel input\n if (is.defined(inputOptions.raw)) {\n if (\n is.object(inputOptions.raw) &&\n is.integer(inputOptions.raw.width) && is.inRange(inputOptions.raw.width, 1, 100000000) &&\n is.integer(inputOptions.raw.height) && is.inRange(inputOptions.raw.height, 1, 100000000) &&\n is.integer(inputOptions.raw.channels) && is.inRange(inputOptions.raw.channels, 1, 4)\n ) {\n inputDescriptor.rawWidth = inputOptions.raw.width;\n inputDescriptor.rawHeight = inputOptions.raw.height;\n inputDescriptor.rawChannels = inputOptions.raw.channels;\n switch (input.constructor) {\n case Uint8Array:\n case Uint8ClampedArray:\n inputDescriptor.rawDepth = 'uchar';\n break;\n case Int8Array:\n inputDescriptor.rawDepth = 'char';\n break;\n case Uint16Array:\n inputDescriptor.rawDepth = 'ushort';\n break;\n case Int16Array:\n inputDescriptor.rawDepth = 'short';\n break;\n case Uint32Array:\n inputDescriptor.rawDepth = 'uint';\n break;\n case Int32Array:\n inputDescriptor.rawDepth = 'int';\n break;\n case Float32Array:\n inputDescriptor.rawDepth = 'float';\n break;\n case Float64Array:\n inputDescriptor.rawDepth = 'double';\n break;\n default:\n inputDescriptor.rawDepth = 'uchar';\n break;\n }\n } else {\n throw new Error('Expected width, height and channels for raw pixel input');\n }\n inputDescriptor.rawPremultiplied = false;\n if (is.defined(inputOptions.raw.premultiplied)) {\n if (is.bool(inputOptions.raw.premultiplied)) {\n inputDescriptor.rawPremultiplied = inputOptions.raw.premultiplied;\n } else {\n throw is.invalidParameterError('raw.premultiplied', 'boolean', inputOptions.raw.premultiplied);\n }\n }\n inputDescriptor.rawPageHeight = 0;\n if (is.defined(inputOptions.raw.pageHeight)) {\n if (is.integer(inputOptions.raw.pageHeight) && inputOptions.raw.pageHeight > 0 && inputOptions.raw.pageHeight <= inputOptions.raw.height) {\n if (inputOptions.raw.height % inputOptions.raw.pageHeight !== 0) {\n throw new Error(`Expected raw.height ${inputOptions.raw.height} to be a multiple of raw.pageHeight ${inputOptions.raw.pageHeight}`);\n }\n inputDescriptor.rawPageHeight = inputOptions.raw.pageHeight;\n } else {\n throw is.invalidParameterError('raw.pageHeight', 'positive integer', inputOptions.raw.pageHeight);\n }\n }\n }\n // Multi-page input (GIF, TIFF, PDF)\n if (is.defined(inputOptions.animated)) {\n if (is.bool(inputOptions.animated)) {\n inputDescriptor.pages = inputOptions.animated ? -1 : 1;\n } else {\n throw is.invalidParameterError('animated', 'boolean', inputOptions.animated);\n }\n }\n if (is.defined(inputOptions.pages)) {\n if (is.integer(inputOptions.pages) && is.inRange(inputOptions.pages, -1, 100000)) {\n inputDescriptor.pages = inputOptions.pages;\n } else {\n throw is.invalidParameterError('pages', 'integer between -1 and 100000', inputOptions.pages);\n }\n }\n if (is.defined(inputOptions.page)) {\n if (is.integer(inputOptions.page) && is.inRange(inputOptions.page, 0, 100000)) {\n inputDescriptor.page = inputOptions.page;\n } else {\n throw is.invalidParameterError('page', 'integer between 0 and 100000', inputOptions.page);\n }\n }\n // OpenSlide specific options\n if (is.object(inputOptions.openSlide) && is.defined(inputOptions.openSlide.level)) {\n if (is.integer(inputOptions.openSlide.level) && is.inRange(inputOptions.openSlide.level, 0, 256)) {\n inputDescriptor.openSlideLevel = inputOptions.openSlide.level;\n } else {\n throw is.invalidParameterError('openSlide.level', 'integer between 0 and 256', inputOptions.openSlide.level);\n }\n } else if (is.defined(inputOptions.level)) {\n // Deprecated\n if (is.integer(inputOptions.level) && is.inRange(inputOptions.level, 0, 256)) {\n inputDescriptor.openSlideLevel = inputOptions.level;\n } else {\n throw is.invalidParameterError('level', 'integer between 0 and 256', inputOptions.level);\n }\n }\n // TIFF specific options\n if (is.object(inputOptions.tiff) && is.defined(inputOptions.tiff.subifd)) {\n if (is.integer(inputOptions.tiff.subifd) && is.inRange(inputOptions.tiff.subifd, -1, 100000)) {\n inputDescriptor.tiffSubifd = inputOptions.tiff.subifd;\n } else {\n throw is.invalidParameterError('tiff.subifd', 'integer between -1 and 100000', inputOptions.tiff.subifd);\n }\n } else if (is.defined(inputOptions.subifd)) {\n // Deprecated\n if (is.integer(inputOptions.subifd) && is.inRange(inputOptions.subifd, -1, 100000)) {\n inputDescriptor.tiffSubifd = inputOptions.subifd;\n } else {\n throw is.invalidParameterError('subifd', 'integer between -1 and 100000', inputOptions.subifd);\n }\n }\n // SVG specific options\n if (is.object(inputOptions.svg)) {\n if (is.defined(inputOptions.svg.stylesheet)) {\n if (is.string(inputOptions.svg.stylesheet)) {\n inputDescriptor.svgStylesheet = inputOptions.svg.stylesheet;\n } else {\n throw is.invalidParameterError('svg.stylesheet', 'string', inputOptions.svg.stylesheet);\n }\n }\n if (is.defined(inputOptions.svg.highBitdepth)) {\n if (is.bool(inputOptions.svg.highBitdepth)) {\n inputDescriptor.svgHighBitdepth = inputOptions.svg.highBitdepth;\n } else {\n throw is.invalidParameterError('svg.highBitdepth', 'boolean', inputOptions.svg.highBitdepth);\n }\n }\n }\n // PDF specific options\n if (is.object(inputOptions.pdf) && is.defined(inputOptions.pdf.background)) {\n inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdf.background);\n } else if (is.defined(inputOptions.pdfBackground)) {\n // Deprecated\n inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdfBackground);\n }\n // JPEG 2000 specific options\n if (is.object(inputOptions.jp2) && is.defined(inputOptions.jp2.oneshot)) {\n if (is.bool(inputOptions.jp2.oneshot)) {\n inputDescriptor.jp2Oneshot = inputOptions.jp2.oneshot;\n } else {\n throw is.invalidParameterError('jp2.oneshot', 'boolean', inputOptions.jp2.oneshot);\n }\n }\n // Create new image\n if (is.defined(inputOptions.create)) {\n if (\n is.object(inputOptions.create) &&\n is.integer(inputOptions.create.width) && is.inRange(inputOptions.create.width, 1, 100000000) &&\n is.integer(inputOptions.create.height) && is.inRange(inputOptions.create.height, 1, 100000000) &&\n is.integer(inputOptions.create.channels)\n ) {\n inputDescriptor.createWidth = inputOptions.create.width;\n inputDescriptor.createHeight = inputOptions.create.height;\n inputDescriptor.createChannels = inputOptions.create.channels;\n inputDescriptor.createPageHeight = 0;\n if (is.defined(inputOptions.create.pageHeight)) {\n if (is.integer(inputOptions.create.pageHeight) && inputOptions.create.pageHeight > 0 && inputOptions.create.pageHeight <= inputOptions.create.height) {\n if (inputOptions.create.height % inputOptions.create.pageHeight !== 0) {\n throw new Error(`Expected create.height ${inputOptions.create.height} to be a multiple of create.pageHeight ${inputOptions.create.pageHeight}`);\n }\n inputDescriptor.createPageHeight = inputOptions.create.pageHeight;\n } else {\n throw is.invalidParameterError('create.pageHeight', 'positive integer', inputOptions.create.pageHeight);\n }\n }\n // Noise\n if (is.defined(inputOptions.create.noise)) {\n if (!is.object(inputOptions.create.noise)) {\n throw new Error('Expected noise to be an object');\n }\n if (inputOptions.create.noise.type !== 'gaussian') {\n throw new Error('Only gaussian noise is supported at the moment');\n }\n inputDescriptor.createNoiseType = inputOptions.create.noise.type;\n if (!is.inRange(inputOptions.create.channels, 1, 4)) {\n throw is.invalidParameterError('create.channels', 'number between 1 and 4', inputOptions.create.channels);\n }\n inputDescriptor.createNoiseMean = 128;\n if (is.defined(inputOptions.create.noise.mean)) {\n if (is.number(inputOptions.create.noise.mean) && is.inRange(inputOptions.create.noise.mean, 0, 10000)) {\n inputDescriptor.createNoiseMean = inputOptions.create.noise.mean;\n } else {\n throw is.invalidParameterError('create.noise.mean', 'number between 0 and 10000', inputOptions.create.noise.mean);\n }\n }\n inputDescriptor.createNoiseSigma = 30;\n if (is.defined(inputOptions.create.noise.sigma)) {\n if (is.number(inputOptions.create.noise.sigma) && is.inRange(inputOptions.create.noise.sigma, 0, 10000)) {\n inputDescriptor.createNoiseSigma = inputOptions.create.noise.sigma;\n } else {\n throw is.invalidParameterError('create.noise.sigma', 'number between 0 and 10000', inputOptions.create.noise.sigma);\n }\n }\n } else if (is.defined(inputOptions.create.background)) {\n if (!is.inRange(inputOptions.create.channels, 3, 4)) {\n throw is.invalidParameterError('create.channels', 'number between 3 and 4', inputOptions.create.channels);\n }\n inputDescriptor.createBackground = this._getBackgroundColourOption(inputOptions.create.background);\n } else {\n throw new Error('Expected valid noise or background to create a new input image');\n }\n delete inputDescriptor.buffer;\n } else {\n throw new Error('Expected valid width, height and channels to create a new input image');\n }\n }\n // Create a new image with text\n if (is.defined(inputOptions.text)) {\n if (is.object(inputOptions.text) && is.string(inputOptions.text.text)) {\n inputDescriptor.textValue = inputOptions.text.text;\n if (is.defined(inputOptions.text.height) && is.defined(inputOptions.text.dpi)) {\n throw new Error('Expected only one of dpi or height');\n }\n if (is.defined(inputOptions.text.font)) {\n if (is.string(inputOptions.text.font)) {\n inputDescriptor.textFont = inputOptions.text.font;\n } else {\n throw is.invalidParameterError('text.font', 'string', inputOptions.text.font);\n }\n }\n if (is.defined(inputOptions.text.fontfile)) {\n if (is.string(inputOptions.text.fontfile)) {\n inputDescriptor.textFontfile = inputOptions.text.fontfile;\n } else {\n throw is.invalidParameterError('text.fontfile', 'string', inputOptions.text.fontfile);\n }\n }\n if (is.defined(inputOptions.text.width)) {\n if (is.integer(inputOptions.text.width) && is.inRange(inputOptions.text.width, 1, 1000000)) {\n inputDescriptor.textWidth = inputOptions.text.width;\n } else {\n throw is.invalidParameterError('text.width', 'integer between 1 and 1000000', inputOptions.text.width);\n }\n }\n if (is.defined(inputOptions.text.height)) {\n if (is.integer(inputOptions.text.height) && is.inRange(inputOptions.text.height, 1, 1000000)) {\n inputDescriptor.textHeight = inputOptions.text.height;\n } else {\n throw is.invalidParameterError('text.height', 'integer between 1 and 1000000', inputOptions.text.height);\n }\n }\n if (is.defined(inputOptions.text.align)) {\n if (is.string(inputOptions.text.align) && is.string(this.constructor.align[inputOptions.text.align])) {\n inputDescriptor.textAlign = this.constructor.align[inputOptions.text.align];\n } else {\n throw is.invalidParameterError('text.align', 'valid alignment', inputOptions.text.align);\n }\n }\n if (is.defined(inputOptions.text.justify)) {\n if (is.bool(inputOptions.text.justify)) {\n inputDescriptor.textJustify = inputOptions.text.justify;\n } else {\n throw is.invalidParameterError('text.justify', 'boolean', inputOptions.text.justify);\n }\n }\n if (is.defined(inputOptions.text.dpi)) {\n if (is.integer(inputOptions.text.dpi) && is.inRange(inputOptions.text.dpi, 1, 1000000)) {\n inputDescriptor.textDpi = inputOptions.text.dpi;\n } else {\n throw is.invalidParameterError('text.dpi', 'integer between 1 and 1000000', inputOptions.text.dpi);\n }\n }\n if (is.defined(inputOptions.text.rgba)) {\n if (is.bool(inputOptions.text.rgba)) {\n inputDescriptor.textRgba = inputOptions.text.rgba;\n } else {\n throw is.invalidParameterError('text.rgba', 'bool', inputOptions.text.rgba);\n }\n }\n if (is.defined(inputOptions.text.spacing)) {\n if (is.integer(inputOptions.text.spacing) && is.inRange(inputOptions.text.spacing, -1000000, 1000000)) {\n inputDescriptor.textSpacing = inputOptions.text.spacing;\n } else {\n throw is.invalidParameterError('text.spacing', 'integer between -1000000 and 1000000', inputOptions.text.spacing);\n }\n }\n if (is.defined(inputOptions.text.wrap)) {\n if (is.string(inputOptions.text.wrap) && is.inArray(inputOptions.text.wrap, ['word', 'char', 'word-char', 'none'])) {\n inputDescriptor.textWrap = inputOptions.text.wrap;\n } else {\n throw is.invalidParameterError('text.wrap', 'one of: word, char, word-char, none', inputOptions.text.wrap);\n }\n }\n delete inputDescriptor.buffer;\n } else {\n throw new Error('Expected a valid string to create an image with text.');\n }\n }\n // Join images together\n if (is.defined(inputOptions.join)) {\n if (is.defined(this.options.join)) {\n if (is.defined(inputOptions.join.animated)) {\n if (is.bool(inputOptions.join.animated)) {\n inputDescriptor.joinAnimated = inputOptions.join.animated;\n } else {\n throw is.invalidParameterError('join.animated', 'boolean', inputOptions.join.animated);\n }\n }\n if (is.defined(inputOptions.join.across)) {\n if (is.integer(inputOptions.join.across) && is.inRange(inputOptions.join.across, 1, 1000000)) {\n inputDescriptor.joinAcross = inputOptions.join.across;\n } else {\n throw is.invalidParameterError('join.across', 'integer between 1 and 100000', inputOptions.join.across);\n }\n }\n if (is.defined(inputOptions.join.shim)) {\n if (is.integer(inputOptions.join.shim) && is.inRange(inputOptions.join.shim, 0, 1000000)) {\n inputDescriptor.joinShim = inputOptions.join.shim;\n } else {\n throw is.invalidParameterError('join.shim', 'integer between 0 and 100000', inputOptions.join.shim);\n }\n }\n if (is.defined(inputOptions.join.background)) {\n inputDescriptor.joinBackground = this._getBackgroundColourOption(inputOptions.join.background);\n }\n if (is.defined(inputOptions.join.halign)) {\n if (is.string(inputOptions.join.halign) && is.string(this.constructor.align[inputOptions.join.halign])) {\n inputDescriptor.joinHalign = this.constructor.align[inputOptions.join.halign];\n } else {\n throw is.invalidParameterError('join.halign', 'valid alignment', inputOptions.join.halign);\n }\n }\n if (is.defined(inputOptions.join.valign)) {\n if (is.string(inputOptions.join.valign) && is.string(this.constructor.align[inputOptions.join.valign])) {\n inputDescriptor.joinValign = this.constructor.align[inputOptions.join.valign];\n } else {\n throw is.invalidParameterError('join.valign', 'valid alignment', inputOptions.join.valign);\n }\n }\n } else {\n throw new Error('Expected input to be an array of images to join');\n }\n }\n } else if (is.defined(inputOptions)) {\n throw new Error(`Invalid input options ${inputOptions}`);\n }\n return inputDescriptor;\n}\n\n/**\n * Handle incoming Buffer chunk on Writable Stream.\n * @private\n * @param {Buffer} chunk\n * @param {string} encoding - unused\n * @param {Function} callback\n */\nfunction _write (chunk, _encoding, callback) {\n if (Array.isArray(this.options.input.buffer)) {\n if (is.buffer(chunk)) {\n this.options.input.buffer.push(chunk);\n callback();\n } else {\n callback(new Error('Non-Buffer data on Writable Stream'));\n }\n } else {\n callback(new Error('Unexpected data on Writable Stream'));\n }\n}\n\n/**\n * Flattens the array of chunks accumulated in input.buffer.\n * @private\n */\nfunction _flattenBufferIn () {\n if (this._isStreamInput()) {\n this.options.input.buffer = Buffer.concat(this.options.input.buffer);\n }\n}\n\n/**\n * Are we expecting Stream-based input?\n * @private\n * @returns {boolean}\n */\nfunction _isStreamInput () {\n return Array.isArray(this.options.input.buffer);\n}\n\n/**\n * Call fn when the Writable side of Stream-based input has finished,\n * or immediately when it already has, as 'finish' is emitted only once.\n * @private\n * @param {Function} fn\n */\nfunction _whenStreamInFinished (fn) {\n if (this.writableFinished) {\n fn();\n } else {\n this.once('finish', fn);\n }\n}\n\n/**\n * Fast access to (uncached) image metadata without decoding any compressed pixel data.\n *\n * This is read from the header of the input image.\n * It does not take into consideration any operations to be applied to the output image,\n * such as resize or rotate.\n *\n * Dimensions in the response will respect the `page` and `pages` properties of the\n * {@link /api-constructor/ constructor parameters}.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * - `format`: Name of decoder used to parse image e.g. `jpeg`, `png`, `webp`, `gif`, `svg`, `heif`, `tiff`\n * - `mediaType`: Media Type (MIME Type) e.g. `image/jpeg`, `image/png`, `image/svg+xml`, `image/avif`\n * - `size`: Total size of image in bytes, for Stream and Buffer input only\n * - `width`: Number of pixels wide (EXIF orientation is not taken into consideration, see example below)\n * - `height`: Number of pixels high (EXIF orientation is not taken into consideration, see example below)\n * - `space`: Name of colour space interpretation e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html)\n * - `channels`: Number of bands e.g. `3` for sRGB, `4` for CMYK\n * - `depth`: Name of pixel depth format e.g. `uchar`, `char`, `ushort`, `float` [...](https://www.libvips.org/API/current/enum.BandFormat.html)\n * - `density`: Number of pixels per inch (DPI), if present\n * - `chromaSubsampling`: String containing JPEG chroma subsampling, `4:2:0` or `4:4:4` for RGB, `4:2:0:4` or `4:4:4:4` for CMYK\n * - `isProgressive`: Boolean indicating whether the image is interlaced using a progressive scan\n * - `isPalette`: Boolean indicating whether the image is palette-based (GIF, PNG).\n * - `bitsPerSample`: Number of bits per sample for each channel (GIF, PNG, HEIF).\n * - `pages`: Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP\n * - `pageHeight`: Number of pixels high each page in a multi-page image will be.\n * - `loop`: Number of times to loop an animated image, zero refers to a continuous loop.\n * - `delay`: Delay in ms between each page in an animated image, provided as an array of integers.\n * - `pagePrimary`: Number of the primary page in a HEIF image\n * - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide\n * - `subifds`: Number of Sub Image File Directories in an OME-TIFF image\n * - `background`: Default background colour, if present, for PNG (bKGD) and GIF images\n * - `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC)\n * - `resolutionUnit`: The unit of resolution (density), either `inch` or `cm`, if present\n * - `hasProfile`: Boolean indicating the presence of an embedded ICC profile\n * - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel\n * - `orientation`: Number value of the EXIF Orientation header, if present\n * - `exif`: Buffer containing raw EXIF data, if present\n * - `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present\n * - `iptc`: Buffer containing raw IPTC data, if present\n * - `xmp`: Buffer containing raw XMP data, if present\n * - `xmpAsString`: String containing XMP data, if valid UTF-8.\n * - `tifftagPhotoshop`: Buffer containing raw TIFFTAG_PHOTOSHOP data, if present\n * - `formatMagick`: String containing format for images loaded via *magick\n * - `comments`: Array of keyword/text pairs representing PNG text blocks, if present.\n * - `gainMap.image`: HDR gain map, if present, as compressed JPEG image.\n *\n * @example\n * const metadata = await sharp(input).metadata();\n *\n * @example\n * const image = sharp(inputJpg);\n * image\n * .metadata()\n * .then(function(metadata) {\n * return image\n * .resize(Math.round(metadata.width / 2))\n * .webp()\n * .toBuffer();\n * })\n * .then(function(data) {\n * // data contains a WebP image half the width and height of the original JPEG\n * });\n *\n * @example\n * // Get dimensions taking EXIF Orientation into account.\n * const { autoOrient } = await sharp(input).metadata();\n * const { width, height } = autoOrient;\n *\n * @param {Function} [callback] - called with the arguments `(err, metadata)`\n * @returns {Promise<Object>|Sharp}\n */\nfunction metadata (callback) {\n const stack = Error();\n if (is.fn(callback)) {\n if (this._isStreamInput()) {\n this._whenStreamInFinished(() => {\n this._flattenBufferIn();\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, metadata);\n }\n });\n });\n } else {\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, metadata);\n }\n });\n }\n return this;\n } else {\n if (this._isStreamInput()) {\n return new Promise((resolve, reject) => {\n this._whenStreamInFinished(() => {\n this._flattenBufferIn();\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(metadata);\n }\n });\n });\n });\n } else {\n return new Promise((resolve, reject) => {\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(metadata);\n }\n });\n });\n }\n }\n}\n\n/**\n * Access to pixel-derived image statistics for every channel in the image.\n * A `Promise` is returned when `callback` is not provided.\n *\n * - `channels`: Array of channel statistics for each channel in the image. Each channel statistic contains\n * - `min` (minimum value in the channel)\n * - `max` (maximum value in the channel)\n * - `sum` (sum of all values in a channel)\n * - `squaresSum` (sum of squared values in a channel)\n * - `mean` (mean of the values in a channel)\n * - `stdev` (standard deviation for the values in a channel)\n * - `minX` (x-coordinate of one of the pixel where the minimum lies)\n * - `minY` (y-coordinate of one of the pixel where the minimum lies)\n * - `maxX` (x-coordinate of one of the pixel where the maximum lies)\n * - `maxY` (y-coordinate of one of the pixel where the maximum lies)\n * - `isOpaque`: Is the image fully opaque? Will be `true` if the image has no alpha channel or if every pixel is fully opaque.\n * - `entropy`: Histogram-based estimation of greyscale entropy, discarding alpha channel if any.\n * - `sharpness`: Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any.\n * - `dominant`: Object containing most dominant sRGB colour based on a 4096-bin 3D histogram.\n *\n * **Note**: Statistics are derived from the original input image. Any operations performed on the image must first be\n * written to a buffer in order to run `stats` on the result (see third example).\n *\n * @example\n * const image = sharp(inputJpg);\n * image\n * .stats()\n * .then(function(stats) {\n * // stats contains the channel-wise statistics array and the isOpaque value\n * });\n *\n * @example\n * const { entropy, sharpness, dominant } = await sharp(input).stats();\n * const { r, g, b } = dominant;\n *\n * @example\n * const image = sharp(input);\n * // store intermediate result\n * const part = await image.extract(region).toBuffer();\n * // create new instance to obtain statistics of extracted region\n * const stats = await sharp(part).stats();\n *\n * @param {Function} [callback] - called with the arguments `(err, stats)`\n * @returns {Promise<Object>}\n */\nfunction stats (callback) {\n const stack = Error();\n if (is.fn(callback)) {\n if (this._isStreamInput()) {\n this._whenStreamInFinished(() => {\n this._flattenBufferIn();\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, stats);\n }\n });\n });\n } else {\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, stats);\n }\n });\n }\n return this;\n } else {\n if (this._isStreamInput()) {\n return new Promise((resolve, reject) => {\n this._whenStreamInFinished(() => {\n this._flattenBufferIn();\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(stats);\n }\n });\n });\n });\n } else {\n return new Promise((resolve, reject) => {\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(stats);\n }\n });\n });\n }\n }\n}\n\n/**\n * Decorate the Sharp prototype with input-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Object.assign(Sharp.prototype, {\n // Private\n _inputOptionsFromObject,\n _createInputDescriptor,\n _write,\n _flattenBufferIn,\n _isStreamInput,\n _whenStreamInFinished,\n // Public\n metadata,\n stats\n });\n // Class attributes\n Sharp.align = align;\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * Weighting to apply when using contain/cover fit.\n * @member\n * @private\n */\nconst gravity = {\n center: 0,\n centre: 0,\n north: 1,\n east: 2,\n south: 3,\n west: 4,\n northeast: 5,\n southeast: 6,\n southwest: 7,\n northwest: 8\n};\n\n/**\n * Position to apply when using contain/cover fit.\n * @member\n * @private\n */\nconst position = {\n top: 1,\n right: 2,\n bottom: 3,\n left: 4,\n 'right top': 5,\n 'right bottom': 6,\n 'left bottom': 7,\n 'left top': 8\n};\n\n/**\n * How to extend the image.\n * @member\n * @private\n */\nconst extendWith = {\n background: 'background',\n copy: 'copy',\n repeat: 'repeat',\n mirror: 'mirror'\n};\n\n/**\n * Strategies for automagic cover behaviour.\n * @member\n * @private\n */\nconst strategy = {\n entropy: 16,\n attention: 17\n};\n\n/**\n * Reduction kernels.\n * @member\n * @private\n */\nconst kernel = {\n nearest: 'nearest',\n linear: 'linear',\n cubic: 'cubic',\n mitchell: 'mitchell',\n lanczos2: 'lanczos2',\n lanczos3: 'lanczos3',\n mks2013: 'mks2013',\n mks2021: 'mks2021'\n};\n\n/**\n * Methods by which an image can be resized to fit the provided dimensions.\n * @member\n * @private\n */\nconst fit = {\n contain: 'contain',\n cover: 'cover',\n fill: 'fill',\n inside: 'inside',\n outside: 'outside'\n};\n\n/**\n * Map external fit property to internal canvas property.\n * @member\n * @private\n */\nconst mapFitToCanvas = {\n contain: 'embed',\n cover: 'crop',\n fill: 'ignore_aspect',\n inside: 'max',\n outside: 'min'\n};\n\n/**\n * @private\n */\nfunction isRotationExpected (options) {\n return (options.angle % 360) !== 0 || options.rotationAngle !== 0;\n}\n\n/**\n * @private\n */\nfunction isResizeExpected (options) {\n return options.width !== -1 || options.height !== -1;\n}\n\n/**\n * Resize image to `width`, `height` or `width x height`.\n *\n * When both a `width` and `height` are provided, the possible methods by which the image should **fit** these are:\n * - `cover`: (default) Preserving aspect ratio, attempt to ensure the image covers both provided dimensions by cropping/clipping to fit.\n * - `contain`: Preserving aspect ratio, contain within both provided dimensions using \"letterboxing\" where necessary.\n * - `fill`: Ignore the aspect ratio of the input and stretch to both provided dimensions.\n * - `inside`: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified.\n * - `outside`: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified.\n *\n * Some of these values are based on the [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.\n *\n * <img alt=\"Examples of various values for the fit property when resizing\" width=\"100%\" style=\"aspect-ratio: 998/243\" src=\"/api-resize-fit.svg\">\n *\n * When using a **fit** of `cover` or `contain`, the default **position** is `centre`. Other options are:\n * - `sharp.position`: `top`, `right top`, `right`, `right bottom`, `bottom`, `left bottom`, `left`, `left top`.\n * - `sharp.gravity`: `north`, `northeast`, `east`, `southeast`, `south`, `southwest`, `west`, `northwest`, `center` or `centre`.\n * - `sharp.strategy`: `cover` only, dynamically crop using either the `entropy` or `attention` strategy.\n *\n * Some of these values are based on the [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.\n *\n * The strategy-based approach initially resizes so one dimension is at its target length\n * then repeatedly ranks edge regions, discarding the edge with the lowest score based on the selected strategy.\n * - `entropy`: focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29).\n * - `attention`: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones.\n *\n * Possible downsizing kernels are:\n * - `nearest`: Use [nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation).\n * - `linear`: Use a [triangle filter](https://en.wikipedia.org/wiki/Triangular_function).\n * - `cubic`: Use a [Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline).\n * - `mitchell`: Use a [Mitchell-Netravali spline](https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf).\n * - `lanczos2`: Use a [Lanczos kernel](https://en.wikipedia.org/wiki/Lanczos_resampling#Lanczos_kernel) with `a=2`.\n * - `lanczos3`: Use a Lanczos kernel with `a=3` (the default).\n * - `mks2013`: Use a [Magic Kernel Sharp](https://johncostella.com/magic/mks.pdf) 2013 kernel, as adopted by Facebook.\n * - `mks2021`: Use a Magic Kernel Sharp 2021 kernel, with more accurate (reduced) sharpening than the 2013 version.\n *\n * When upsampling, these kernels map to `nearest`, `linear` and `cubic` interpolators.\n * Downsampling kernels without a matching upsampling interpolator map to `cubic`.\n *\n * Only one resize can occur per pipeline.\n * Previous calls to `resize` in the same pipeline will be ignored.\n *\n * @example\n * sharp(input)\n * .resize({ width: 100 })\n * .toBuffer()\n * .then(data => {\n * // 100 pixels wide, auto-scaled height\n * });\n *\n * @example\n * sharp(input)\n * .resize({ height: 100 })\n * .toBuffer()\n * .then(data => {\n * // 100 pixels high, auto-scaled width\n * });\n *\n * @example\n * sharp(input)\n * .resize(200, 300, {\n * kernel: sharp.kernel.nearest,\n * fit: 'contain',\n * position: 'right top',\n * background: { r: 255, g: 255, b: 255, alpha: 0.5 }\n * })\n * .toFile('output.png')\n * .then(() => {\n * // output.png is a 200 pixels wide and 300 pixels high image\n * // containing a nearest-neighbour scaled version\n * // contained within the north-east corner of a semi-transparent white canvas\n * });\n *\n * @example\n * const transformer = sharp()\n * .resize({\n * width: 200,\n * height: 200,\n * fit: sharp.fit.cover,\n * position: sharp.strategy.entropy\n * });\n * // Read image data from readableStream\n * // Write 200px square auto-cropped image data to writableStream\n * readableStream\n * .pipe(transformer)\n * .pipe(writableStream);\n *\n * @example\n * sharp(input)\n * .resize(200, 200, {\n * fit: sharp.fit.inside,\n * withoutEnlargement: true\n * })\n * .toFormat('jpeg')\n * .toBuffer()\n * .then(function(outputBuffer) {\n * // outputBuffer contains JPEG image data\n * // no wider and no higher than 200 pixels\n * // and no larger than the input image\n * });\n *\n * @example\n * sharp(input)\n * .resize(200, 200, {\n * fit: sharp.fit.outside,\n * withoutReduction: true\n * })\n * .toFormat('jpeg')\n * .toBuffer()\n * .then(function(outputBuffer) {\n * // outputBuffer contains JPEG image data\n * // of at least 200 pixels wide and 200 pixels high while maintaining aspect ratio\n * // and no smaller than the input image\n * });\n *\n * @example\n * const scaleByHalf = await sharp(input)\n * .metadata()\n * .then(({ width }) => sharp(input)\n * .resize(Math.round(width * 0.5))\n * .toBuffer()\n * );\n *\n * @param {number} [width] - How many pixels wide the resultant image should be. Use `null` or `undefined` to auto-scale the width to match the height.\n * @param {number} [height] - How many pixels high the resultant image should be. Use `null` or `undefined` to auto-scale the height to match the width.\n * @param {Object} [options]\n * @param {number} [options.width] - An alternative means of specifying `width`. If both are present this takes priority.\n * @param {number} [options.height] - An alternative means of specifying `height`. If both are present this takes priority.\n * @param {String} [options.fit='cover'] - How the image should be resized/cropped to fit the target dimension(s), one of `cover`, `contain`, `fill`, `inside` or `outside`.\n * @param {String} [options.position='centre'] - A position, gravity or strategy to use when `fit` is `cover` or `contain`.\n * @param {String|Object} [options.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour when `fit` is `contain`, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.\n * @param {String} [options.kernel='lanczos3'] - The kernel to use for image reduction and the inferred interpolator to use for upsampling. Use the `fastShrinkOnLoad` option to control kernel vs shrink-on-load.\n * @param {Boolean} [options.withoutEnlargement=false] - Do not scale up if the width *or* height are already less than the target dimensions, equivalent to GraphicsMagick's `>` geometry option. This may result in output dimensions smaller than the target dimensions.\n * @param {Boolean} [options.withoutReduction=false] - Do not scale down if the width *or* height are already greater than the target dimensions, equivalent to GraphicsMagick's `<` geometry option. This may still result in a crop to reach the target dimensions.\n * @param {Boolean} [options.fastShrinkOnLoad=true] - Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moir\u00E9 pattern or round-down of an auto-scaled dimension.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction resize (widthOrOptions, height, options) {\n if (isResizeExpected(this.options)) {\n this.options.debuglog('ignoring previous resize options');\n }\n if (this.options.widthPost !== -1) {\n this.options.debuglog('operation order will be: extract, resize, extract');\n }\n if (is.defined(widthOrOptions)) {\n if (is.object(widthOrOptions) && !is.defined(options)) {\n options = widthOrOptions;\n } else if (is.integer(widthOrOptions) && is.inRange(widthOrOptions, 1, 100000000)) {\n this.options.width = widthOrOptions;\n } else {\n throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', widthOrOptions);\n }\n } else {\n this.options.width = -1;\n }\n if (is.defined(height)) {\n if (is.integer(height) && is.inRange(height, 1, 100000000)) {\n this.options.height = height;\n } else {\n throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', height);\n }\n } else {\n this.options.height = -1;\n }\n if (is.object(options)) {\n // Width\n if (is.defined(options.width)) {\n if (is.integer(options.width) && is.inRange(options.width, 1, 100000000)) {\n this.options.width = options.width;\n } else {\n throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', options.width);\n }\n }\n // Height\n if (is.defined(options.height)) {\n if (is.integer(options.height) && is.inRange(options.height, 1, 100000000)) {\n this.options.height = options.height;\n } else {\n throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', options.height);\n }\n }\n // Fit\n if (is.defined(options.fit)) {\n const canvas = mapFitToCanvas[options.fit];\n if (is.string(canvas)) {\n this.options.canvas = canvas;\n } else {\n throw is.invalidParameterError('fit', 'valid fit', options.fit);\n }\n }\n // Position\n if (is.defined(options.position)) {\n const pos = is.integer(options.position)\n ? options.position\n : strategy[options.position] || position[options.position] || gravity[options.position];\n if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) {\n this.options.position = pos;\n } else {\n throw is.invalidParameterError('position', 'valid position/gravity/strategy', options.position);\n }\n }\n // Background\n this._setBackgroundColourOption('resizeBackground', options.background);\n // Kernel\n if (is.defined(options.kernel)) {\n if (is.string(kernel[options.kernel])) {\n this.options.kernel = kernel[options.kernel];\n } else {\n throw is.invalidParameterError('kernel', 'valid kernel name', options.kernel);\n }\n }\n // Without enlargement\n if (is.defined(options.withoutEnlargement)) {\n this._setBooleanOption('withoutEnlargement', options.withoutEnlargement);\n }\n // Without reduction\n if (is.defined(options.withoutReduction)) {\n this._setBooleanOption('withoutReduction', options.withoutReduction);\n }\n // Shrink on load\n if (is.defined(options.fastShrinkOnLoad)) {\n this._setBooleanOption('fastShrinkOnLoad', options.fastShrinkOnLoad);\n }\n }\n if (isRotationExpected(this.options) && isResizeExpected(this.options)) {\n this.options.rotateBefore = true;\n }\n return this;\n}\n\n/**\n * Extend / pad / extrude one or more edges of the image with either\n * the provided background colour or pixels derived from the image.\n * This operation will always occur after resizing and extraction, if any.\n *\n * @example\n * // Resize to 140 pixels wide, then add 10 transparent pixels\n * // to the top, left and right edges and 20 to the bottom edge\n * sharp(input)\n * .resize(140)\n * .extend({\n * top: 10,\n * bottom: 20,\n * left: 10,\n * right: 10,\n * background: { r: 0, g: 0, b: 0, alpha: 0 }\n * })\n * ...\n *\n* @example\n * // Add a row of 10 red pixels to the bottom\n * sharp(input)\n * .extend({\n * bottom: 10,\n * background: 'red'\n * })\n * ...\n *\n * @example\n * // Extrude image by 8 pixels to the right, mirroring existing right hand edge\n * sharp(input)\n * .extend({\n * right: 8,\n * background: 'mirror'\n * })\n * ...\n *\n * @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts\n * @param {number} [extend.top=0] - number of pixels to add to the top edge, valid values are integers in the range 0-100000000\n * @param {number} [extend.left=0] - number of pixels to add to the left edge, valid values are integers in the range 0-100000000\n * @param {number} [extend.bottom=0] - number of pixels to add to the bottom edge, valid values are integers in the range 0-100000000\n * @param {number} [extend.right=0] - number of pixels to add to the right edge, valid values are integers in the range 0-100000000\n * @param {String} [extend.extendWith='background'] - populate new pixels using this method, one of: background, copy, repeat, mirror.\n * @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n*/\nfunction extend (extend) {\n if (is.integer(extend)) {\n if (is.inRange(extend, 1, 100000000)) {\n this.options.extendTop = extend;\n this.options.extendBottom = extend;\n this.options.extendLeft = extend;\n this.options.extendRight = extend;\n } else {\n throw is.invalidParameterError('extend', 'integer between 1 and 100000000', extend);\n }\n } else if (is.object(extend)) {\n if (is.defined(extend.top)) {\n if (is.integer(extend.top) && is.inRange(extend.top, 0, 100000000)) {\n this.options.extendTop = extend.top;\n } else {\n throw is.invalidParameterError('top', 'integer between 0 and 100000000', extend.top);\n }\n }\n if (is.defined(extend.bottom)) {\n if (is.integer(extend.bottom) && is.inRange(extend.bottom, 0, 100000000)) {\n this.options.extendBottom = extend.bottom;\n } else {\n throw is.invalidParameterError('bottom', 'integer between 0 and 100000000', extend.bottom);\n }\n }\n if (is.defined(extend.left)) {\n if (is.integer(extend.left) && is.inRange(extend.left, 0, 100000000)) {\n this.options.extendLeft = extend.left;\n } else {\n throw is.invalidParameterError('left', 'integer between 0 and 100000000', extend.left);\n }\n }\n if (is.defined(extend.right)) {\n if (is.integer(extend.right) && is.inRange(extend.right, 0, 100000000)) {\n this.options.extendRight = extend.right;\n } else {\n throw is.invalidParameterError('right', 'integer between 0 and 100000000', extend.right);\n }\n }\n this._setBackgroundColourOption('extendBackground', extend.background);\n if (is.defined(extend.extendWith)) {\n if (is.string(extendWith[extend.extendWith])) {\n this.options.extendWith = extendWith[extend.extendWith];\n } else {\n throw is.invalidParameterError('extendWith', 'one of: background, copy, repeat, mirror', extend.extendWith);\n }\n }\n } else {\n throw is.invalidParameterError('extend', 'integer or object', extend);\n }\n return this;\n}\n\n/**\n * Extract/crop a region of the image.\n *\n * - Use `extract` before `resize` for pre-resize extraction.\n * - Use `extract` after `resize` for post-resize extraction.\n * - Use `extract` twice and `resize` once for extract-then-resize-then-extract in a fixed operation order.\n *\n * @example\n * sharp(input)\n * .extract({ left: left, top: top, width: width, height: height })\n * .toFile(output, function(err) {\n * // Extract a region of the input image, saving in the same format.\n * });\n * @example\n * sharp(input)\n * .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })\n * .resize(width, height)\n * .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })\n * .toFile(output, function(err) {\n * // Extract a region, resize, then extract from the resized image\n * });\n *\n * @param {Object} options - describes the region to extract using integral pixel values\n * @param {number} options.left - zero-indexed offset from left edge, an integer between 0 and 100000000\n * @param {number} options.top - zero-indexed offset from top edge, an integer between 0 and 100000000\n * @param {number} options.width - width of region to extract, an integer between 0 and 100000000\n * @param {number} options.height - height of region to extract, an integer between 0 and 100000000\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction extract (options) {\n const suffix = isResizeExpected(this.options) || this.options.widthPre !== -1 ? 'Post' : 'Pre';\n if (this.options[`width${suffix}`] !== -1) {\n this.options.debuglog('ignoring previous extract options');\n }\n ['left', 'top', 'width', 'height'].forEach(function (name) {\n const value = options[name];\n if (is.integer(value) && is.inRange(value, 0, 100000000)) {\n this.options[name + (name === 'left' || name === 'top' ? 'Offset' : '') + suffix] = value;\n } else {\n throw is.invalidParameterError(name, 'integer between 0 and 100000000', value);\n }\n }, this);\n // Ensure existing rotation occurs before pre-resize extraction\n if (isRotationExpected(this.options) && !isResizeExpected(this.options)) {\n if (this.options.widthPre === -1 || this.options.widthPost === -1) {\n this.options.rotateBefore = true;\n }\n }\n if (this.options.input.autoOrient) {\n this.options.orientBefore = true;\n }\n return this;\n}\n\n/**\n * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel.\n *\n * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels.\n *\n * If the result of this operation would trim an image to nothing then no change is made.\n *\n * Use the `lineArt` and `threshold` options for control over sensitivity.\n *\n * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties.\n *\n * @example\n * // Trim pixels with a colour similar to that of the top-left pixel.\n * await sharp(input)\n * .trim()\n * .toFile(output);\n *\n * @example\n * // Trim pixels with the exact same colour as that of the top-left pixel.\n * await sharp(input)\n * .trim({\n * threshold: 0\n * })\n * .toFile(output);\n *\n * @example\n * // Assume input is line art and trim only pixels with a similar colour to red.\n * const output = await sharp(input)\n * .trim({\n * background: \"#FF0000\",\n * lineArt: true\n * })\n * .toBuffer();\n *\n * @example\n * // Trim all \"yellow-ish\" pixels, being more lenient with the higher threshold.\n * const output = await sharp(input)\n * .trim({\n * background: \"yellow\",\n * threshold: 42,\n * })\n * .toBuffer();\n *\n * @example\n * // Trim image leaving (up to) a 10 pixel margin around the trimmed content.\n * const output = await sharp(input)\n * .trim({\n * margin: 10\n * })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {string|Object} [options.background='top-left pixel'] - Background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to that of the top-left pixel.\n * @param {number} [options.threshold=10] - Allowed difference from the above colour, a positive number.\n * @param {boolean} [options.lineArt=false] - Does the input more closely resemble line art (e.g. vector) rather than being photographic?\n * @param {number} [options.margin=0] - Leave a margin around trimmed content, integral number of pixels between 0 and 10000000.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction trim (options) {\n this.options.trimThreshold = 10;\n if (is.defined(options)) {\n if (is.object(options)) {\n if (is.defined(options.background)) {\n this._setBackgroundColourOption('trimBackground', options.background);\n }\n if (is.defined(options.threshold)) {\n if (is.number(options.threshold) && options.threshold >= 0) {\n this.options.trimThreshold = options.threshold;\n } else {\n throw is.invalidParameterError('threshold', 'positive number', options.threshold);\n }\n }\n if (is.defined(options.lineArt)) {\n this._setBooleanOption('trimLineArt', options.lineArt);\n }\n if (is.defined(options.margin)) {\n if (is.integer(options.margin) && is.inRange(options.margin, 0, 10000000)) {\n this.options.trimMargin = options.margin;\n } else {\n throw is.invalidParameterError('margin', 'integer between 0 and 10000000', options.margin);\n }\n }\n } else {\n throw is.invalidParameterError('trim', 'object', options);\n }\n }\n if (isRotationExpected(this.options)) {\n this.options.rotateBefore = true;\n }\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with resize-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Object.assign(Sharp.prototype, {\n resize,\n extend,\n extract,\n trim\n });\n // Class attributes\n Sharp.gravity = gravity;\n Sharp.strategy = strategy;\n Sharp.kernel = kernel;\n Sharp.fit = fit;\n Sharp.position = position;\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * Blend modes.\n * @member\n * @private\n */\nconst blend = {\n clear: 'clear',\n source: 'source',\n over: 'over',\n in: 'in',\n out: 'out',\n atop: 'atop',\n dest: 'dest',\n 'dest-over': 'dest-over',\n 'dest-in': 'dest-in',\n 'dest-out': 'dest-out',\n 'dest-atop': 'dest-atop',\n xor: 'xor',\n add: 'add',\n saturate: 'saturate',\n multiply: 'multiply',\n screen: 'screen',\n overlay: 'overlay',\n darken: 'darken',\n lighten: 'lighten',\n 'colour-dodge': 'colour-dodge',\n 'color-dodge': 'colour-dodge',\n 'colour-burn': 'colour-burn',\n 'color-burn': 'colour-burn',\n 'hard-light': 'hard-light',\n 'soft-light': 'soft-light',\n difference: 'difference',\n exclusion: 'exclusion'\n};\n\n/**\n * Composite image(s) over the processed (resized, extracted etc.) image.\n *\n * The images to composite must be the same size or smaller than the processed image.\n * If both `top` and `left` options are provided, they take precedence over `gravity`.\n *\n * Other operations in the same processing pipeline (e.g. resize, rotate, flip,\n * flop, extract) will always be applied to the input image before composition.\n *\n * The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`,\n * `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`,\n * `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`,\n * `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`,\n * `hard-light`, `soft-light`, `difference`, `exclusion`.\n *\n * More information about blend modes can be found at\n * https://www.libvips.org/API/current/enum.BlendMode.html\n * and https://www.cairographics.org/operators/\n *\n * @since 0.22.0\n *\n * @example\n * await sharp(background)\n * .composite([\n * { input: layer1, gravity: 'northwest' },\n * { input: layer2, gravity: 'southeast' },\n * ])\n * .toFile('combined.png');\n *\n * @example\n * const output = await sharp('input.gif', { animated: true })\n * .composite([\n * { input: 'overlay.png', tile: true, blend: 'saturate' }\n * ])\n * .toBuffer();\n *\n * @example\n * sharp('input.png')\n * .rotate(180)\n * .resize(300)\n * .flatten( { background: '#ff6600' } )\n * .composite([{ input: 'overlay.png', gravity: 'southeast' }])\n * .sharpen()\n * .withMetadata()\n * .webp( { quality: 90 } )\n * .toBuffer()\n * .then(function(outputBuffer) {\n * // outputBuffer contains upside down, 300px wide, alpha channel flattened\n * // onto orange background, composited with overlay.png with SE gravity,\n * // sharpened, with metadata, 90% quality WebP image data. Phew!\n * });\n *\n * @param {Object[]} images - Ordered list of images to composite\n * @param {Buffer|String} [images[].input] - Buffer containing image data, String containing the path to an image file, or Create object (see below)\n * @param {Object} [images[].input.create] - describes a blank overlay to be created.\n * @param {Number} [images[].input.create.width]\n * @param {Number} [images[].input.create.height]\n * @param {Number} [images[].input.create.channels] - 3-4\n * @param {String|Object} [images[].input.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Object} [images[].input.text] - describes a new text image to be created.\n * @param {string} [images[].input.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `<i>Le</i>Monde`.\n * @param {string} [images[].input.text.font] - font name to render with.\n * @param {string} [images[].input.text.fontfile] - absolute filesystem path to a font file that can be used by `font`.\n * @param {number} [images[].input.text.width=0] - integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries.\n * @param {number} [images[].input.text.height=0] - integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0.\n * @param {string} [images[].input.text.align='left'] - text alignment (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {boolean} [images[].input.text.justify=false] - set this to true to apply justification to the text.\n * @param {number} [images[].input.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified.\n * @param {boolean} [images[].input.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for Pango markup features like `<span foreground=\"red\">Red!</span>`.\n * @param {number} [images[].input.text.spacing=0] - text line height in points. Will use the font line height if none is specified.\n * @param {Boolean} [images[].autoOrient=false] - set to true to use EXIF orientation data, if present, to orient the image.\n * @param {String} [images[].blend='over'] - how to blend this image with the image below.\n * @param {String} [images[].gravity='centre'] - gravity at which to place the overlay.\n * @param {Number} [images[].top] - the pixel offset from the top edge, an integer between -100000000 and 100000000.\n * @param {Number} [images[].left] - the pixel offset from the left edge, an integer between -100000000 and 100000000.\n * @param {Boolean} [images[].tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`.\n * @param {Boolean} [images[].premultiplied=false] - set to true to avoid premultiplying the image below. Equivalent to the `--premultiplied` vips option.\n * @param {Number} [images[].density=72] - number representing the DPI for vector overlay image.\n * @param {Object} [images[].raw] - describes overlay when using raw pixel data.\n * @param {Number} [images[].raw.width]\n * @param {Number} [images[].raw.height]\n * @param {Number} [images[].raw.channels]\n * @param {boolean} [images[].animated=false] - Set to `true` to read all frames/pages of an animated image.\n * @param {string} [images[].failOn='warning'] - @see {@link /api-constructor/ constructor parameters}\n * @param {number|boolean} [images[].limitInputPixels=268402689] - @see {@link /api-constructor/ constructor parameters}\n * @param {number|boolean} [images[].limitInputChannels=5] - @see {@link /api-constructor/ constructor parameters}\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction composite (images) {\n if (!Array.isArray(images)) {\n throw is.invalidParameterError('images to composite', 'array', images);\n }\n this.options.composite = images.map(image => {\n if (!is.object(image)) {\n throw is.invalidParameterError('image to composite', 'object', image);\n }\n const inputOptions = this._inputOptionsFromObject(image);\n const composite = {\n input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }),\n blend: 'over',\n tile: false,\n left: 0,\n top: 0,\n hasOffset: false,\n gravity: 0,\n premultiplied: false\n };\n if (is.defined(image.blend)) {\n if (is.string(blend[image.blend])) {\n composite.blend = blend[image.blend];\n } else {\n throw is.invalidParameterError('blend', 'valid blend name', image.blend);\n }\n }\n if (is.defined(image.tile)) {\n if (is.bool(image.tile)) {\n composite.tile = image.tile;\n } else {\n throw is.invalidParameterError('tile', 'boolean', image.tile);\n }\n }\n if (is.defined(image.left)) {\n if (is.integer(image.left) && is.inRange(image.left, -100000000, 100000000)) {\n composite.left = image.left;\n } else {\n throw is.invalidParameterError('left', 'integer between -100000000 and 100000000', image.left);\n }\n }\n if (is.defined(image.top)) {\n if (is.integer(image.top) && is.inRange(image.top, -100000000, 100000000)) {\n composite.top = image.top;\n } else {\n throw is.invalidParameterError('top', 'integer between -100000000 and 100000000', image.top);\n }\n }\n if (is.defined(image.top) !== is.defined(image.left)) {\n throw new Error('Expected both left and top to be set');\n } else {\n composite.hasOffset = is.integer(image.top) && is.integer(image.left);\n }\n if (is.defined(image.gravity)) {\n if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) {\n composite.gravity = image.gravity;\n } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) {\n composite.gravity = this.constructor.gravity[image.gravity];\n } else {\n throw is.invalidParameterError('gravity', 'valid gravity', image.gravity);\n }\n }\n if (is.defined(image.premultiplied)) {\n if (is.bool(image.premultiplied)) {\n composite.premultiplied = image.premultiplied;\n } else {\n throw is.invalidParameterError('premultiplied', 'boolean', image.premultiplied);\n }\n }\n return composite;\n });\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with composite-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Sharp.prototype.composite = composite;\n Sharp.blend = blend;\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * How accurate an operation should be.\n * @member\n * @private\n */\nconst vipsPrecision = {\n integer: 'integer',\n float: 'float',\n approximate: 'approximate'\n};\n\n/**\n * Rotate the output image.\n *\n * The provided angle is converted to a valid positive degree rotation.\n * For example, `-450` will produce a 270 degree rotation.\n *\n * When rotating by an angle other than a multiple of 90,\n * the background colour can be provided with the `background` option.\n *\n * For backwards compatibility, if no angle is provided, `.autoOrient()` will be called.\n *\n * Only one rotation can occur per pipeline (aside from an initial call without\n * arguments to orient via EXIF data). Previous calls to `rotate` in the same\n * pipeline will be ignored.\n *\n * Multi-page images can only be rotated by 180 degrees.\n *\n * Method order is important when rotating, resizing and/or extracting regions,\n * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`.\n *\n * @example\n * const rotateThenResize = await sharp(input)\n * .rotate(90)\n * .resize({ width: 16, height: 8, fit: 'fill' })\n * .toBuffer();\n * const resizeThenRotate = await sharp(input)\n * .resize({ width: 16, height: 8, fit: 'fill' })\n * .rotate(90)\n * .toBuffer();\n *\n * @param {number} [angle=auto] angle of rotation.\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {string|Object} [options.background=\"#000000\"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction rotate (angle, options) {\n if (!is.defined(angle)) {\n return this.autoOrient();\n }\n if (this.options.angle || this.options.rotationAngle) {\n this.options.debuglog('ignoring previous rotate options');\n this.options.angle = 0;\n this.options.rotationAngle = 0;\n }\n if (is.integer(angle) && !(angle % 90)) {\n this.options.angle = angle;\n } else if (is.number(angle)) {\n this.options.rotationAngle = angle;\n if (is.object(options) && options.background) {\n this._setBackgroundColourOption('rotationBackground', options.background);\n }\n } else {\n throw is.invalidParameterError('angle', 'numeric', angle);\n }\n return this;\n}\n\n/**\n * Auto-orient based on the EXIF `Orientation` tag, then remove the tag.\n * Mirroring is supported and may infer the use of a flip operation.\n *\n * Only the EXIF `Orientation` tag is considered; orientation carried in other\n * places, such as an XMP `tiff:Orientation` element, is left untouched and\n * remains the responsibility of the consumer.\n *\n * Previous or subsequent use of `rotate(angle)` and either `flip()` or `flop()`\n * will logically occur after auto-orientation, regardless of call order.\n *\n * @example\n * const output = await sharp(input).autoOrient().toBuffer();\n *\n * @example\n * const pipeline = sharp()\n * .autoOrient()\n * .resize(null, 200)\n * .toBuffer(function (err, outputBuffer, info) {\n * // outputBuffer contains 200px high JPEG image data,\n * // auto-oriented using EXIF Orientation tag\n * // info.width and info.height contain the dimensions of the resized image\n * });\n * readableStream.pipe(pipeline);\n *\n * @returns {Sharp}\n */\nfunction autoOrient () {\n this.options.input.autoOrient = true;\n return this;\n}\n\n/**\n * Mirror the image vertically (up-down) about the x-axis.\n * This always occurs before rotation, if any.\n *\n * This operation does not work correctly with multi-page images.\n *\n * @example\n * const output = await sharp(input).flip().toBuffer();\n *\n * @param {Boolean} [flip=true]\n * @returns {Sharp}\n */\nfunction flip (flip) {\n this.options.flip = is.bool(flip) ? flip : true;\n return this;\n}\n\n/**\n * Mirror the image horizontally (left-right) about the y-axis.\n * This always occurs before rotation, if any.\n *\n * @example\n * const output = await sharp(input).flop().toBuffer();\n *\n * @param {Boolean} [flop=true]\n * @returns {Sharp}\n */\nfunction flop (flop) {\n this.options.flop = is.bool(flop) ? flop : true;\n return this;\n}\n\n/**\n * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any.\n *\n * You must provide an array of length 4 or a 2x2 affine transformation matrix.\n * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option.\n * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`.\n *\n * In the case of a 2x2 matrix, the transform is:\n * - X = `matrix[0, 0]` \\* (x + `idx`) + `matrix[0, 1]` \\* (y + `idy`) + `odx`\n * - Y = `matrix[1, 0]` \\* (x + `idx`) + `matrix[1, 1]` \\* (y + `idy`) + `ody`\n *\n * where:\n * - x and y are the coordinates in input image.\n * - X and Y are the coordinates in output image.\n * - (0,0) is the upper left corner.\n *\n * @since 0.27.0\n *\n * @example\n * const pipeline = sharp()\n * .affine([[1, 0.3], [0.1, 0.7]], {\n * background: 'white',\n * interpolator: sharp.interpolators.nohalo\n * })\n * .toBuffer((err, outputBuffer, info) => {\n * // outputBuffer contains the transformed image\n * // info.width and info.height contain the new dimensions\n * });\n *\n * inputStream\n * .pipe(pipeline);\n *\n * @param {Array<Array<number>>|Array<number>} matrix - affine transformation matrix\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {String|Object} [options.background=\"#000000\"] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Number} [options.idx=0] - input horizontal offset\n * @param {Number} [options.idy=0] - input vertical offset\n * @param {Number} [options.odx=0] - output horizontal offset\n * @param {Number} [options.ody=0] - output vertical offset\n * @param {String} [options.interpolator=sharp.interpolators.bicubic] - interpolator\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction affine (matrix, options) {\n const isValidShape = Array.isArray(matrix) && (\n // 1x4 array of numbers\n (matrix.length === 4 && matrix.every(is.number)) ||\n // 2x2 array of arrays of numbers\n (matrix.length === 2 && matrix.every((row) => Array.isArray(row) && row.length === 2))\n );\n const flatMatrix = isValidShape ? matrix.flat() : [];\n if (flatMatrix.length === 4 && flatMatrix.every(is.number)) {\n this.options.affineMatrix = flatMatrix;\n } else {\n throw is.invalidParameterError('matrix', '1x4 or 2x2 array', matrix);\n }\n\n if (is.defined(options)) {\n if (is.object(options)) {\n this._setBackgroundColourOption('affineBackground', options.background);\n if (is.defined(options.idx)) {\n if (is.number(options.idx)) {\n this.options.affineIdx = options.idx;\n } else {\n throw is.invalidParameterError('options.idx', 'number', options.idx);\n }\n }\n if (is.defined(options.idy)) {\n if (is.number(options.idy)) {\n this.options.affineIdy = options.idy;\n } else {\n throw is.invalidParameterError('options.idy', 'number', options.idy);\n }\n }\n if (is.defined(options.odx)) {\n if (is.number(options.odx)) {\n this.options.affineOdx = options.odx;\n } else {\n throw is.invalidParameterError('options.odx', 'number', options.odx);\n }\n }\n if (is.defined(options.ody)) {\n if (is.number(options.ody)) {\n this.options.affineOdy = options.ody;\n } else {\n throw is.invalidParameterError('options.ody', 'number', options.ody);\n }\n }\n if (is.defined(options.interpolator)) {\n if (is.inArray(options.interpolator, Object.values(this.constructor.interpolators))) {\n this.options.affineInterpolator = options.interpolator;\n } else {\n throw is.invalidParameterError('options.interpolator', 'valid interpolator name', options.interpolator);\n }\n }\n } else {\n throw is.invalidParameterError('options', 'object', options);\n }\n }\n\n return this;\n}\n\n/**\n * Sharpen the image.\n *\n * When used without parameters, performs a fast, mild sharpen of the output image.\n *\n * When a `sigma` is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space.\n * Fine-grained control over the level of sharpening in \"flat\" (m1) and \"jagged\" (m2) areas is available.\n *\n * See {@link https://www.libvips.org/API/current/method.Image.sharpen.html libvips sharpen} operation.\n *\n * @example\n * const data = await sharp(input).sharpen().toBuffer();\n *\n * @example\n * const data = await sharp(input).sharpen({ sigma: 2 }).toBuffer();\n *\n * @example\n * const data = await sharp(input)\n * .sharpen({\n * sigma: 2,\n * m1: 0,\n * m2: 3,\n * x1: 3,\n * y2: 15,\n * y3: 15,\n * })\n * .toBuffer();\n *\n * @param {Object} [options] - if present, is an Object with attributes\n * @param {number} [options.sigma] - the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`, between 0.000001 and 10\n * @param {number} [options.m1=1.0] - the level of sharpening to apply to \"flat\" areas, between 0 and 1000000\n * @param {number} [options.m2=2.0] - the level of sharpening to apply to \"jagged\" areas, between 0 and 1000000\n * @param {number} [options.x1=2.0] - threshold between \"flat\" and \"jagged\", between 0 and 1000000\n * @param {number} [options.y2=10.0] - maximum amount of brightening, between 0 and 1000000\n * @param {number} [options.y3=20.0] - maximum amount of darkening, between 0 and 1000000\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction sharpen (options) {\n if (is.plainObject(options)) {\n if (is.number(options.sigma) && is.inRange(options.sigma, 0.000001, 10)) {\n this.options.sharpenSigma = options.sigma;\n } else {\n throw is.invalidParameterError('options.sigma', 'number between 0.000001 and 10', options.sigma);\n }\n if (is.defined(options.m1)) {\n if (is.number(options.m1) && is.inRange(options.m1, 0, 1000000)) {\n this.options.sharpenM1 = options.m1;\n } else {\n throw is.invalidParameterError('options.m1', 'number between 0 and 1000000', options.m1);\n }\n }\n if (is.defined(options.m2)) {\n if (is.number(options.m2) && is.inRange(options.m2, 0, 1000000)) {\n this.options.sharpenM2 = options.m2;\n } else {\n throw is.invalidParameterError('options.m2', 'number between 0 and 1000000', options.m2);\n }\n }\n if (is.defined(options.x1)) {\n if (is.number(options.x1) && is.inRange(options.x1, 0, 1000000)) {\n this.options.sharpenX1 = options.x1;\n } else {\n throw is.invalidParameterError('options.x1', 'number between 0 and 1000000', options.x1);\n }\n }\n if (is.defined(options.y2)) {\n if (is.number(options.y2) && is.inRange(options.y2, 0, 1000000)) {\n this.options.sharpenY2 = options.y2;\n } else {\n throw is.invalidParameterError('options.y2', 'number between 0 and 1000000', options.y2);\n }\n }\n if (is.defined(options.y3)) {\n if (is.number(options.y3) && is.inRange(options.y3, 0, 1000000)) {\n this.options.sharpenY3 = options.y3;\n } else {\n throw is.invalidParameterError('options.y3', 'number between 0 and 1000000', options.y3);\n }\n }\n } else {\n this.options.sharpenSigma = -1;\n }\n return this;\n}\n\n/**\n * Apply median filter.\n * When used without parameters the default window is 3x3.\n *\n * @example\n * const output = await sharp(input).median().toBuffer();\n *\n * @example\n * const output = await sharp(input).median(5).toBuffer();\n *\n * @param {number} [size=3] square mask size: size x size\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction median (size) {\n if (!is.defined(size)) {\n // No arguments: default to 3x3\n this.options.medianSize = 3;\n } else if (is.integer(size) && is.inRange(size, 1, 1000)) {\n // Numeric argument: specific sigma\n this.options.medianSize = size;\n } else {\n throw is.invalidParameterError('size', 'integer between 1 and 1000', size);\n }\n return this;\n}\n\n/**\n * Blur the image.\n *\n * When used without parameters, performs a fast 3x3 box blur (equivalent to a box linear filter).\n *\n * When a `sigma` is provided, performs a slower, more accurate Gaussian blur.\n *\n * @example\n * const boxBlurred = await sharp(input)\n * .blur()\n * .toBuffer();\n *\n * @example\n * const gaussianBlurred = await sharp(input)\n * .blur(5)\n * .toBuffer();\n *\n * @param {Object|number|Boolean} [options]\n * @param {number} [options.sigma] a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`.\n * @param {string} [options.precision='integer'] How accurate the operation should be, one of: integer, float, approximate.\n * @param {number} [options.minAmplitude=0.2] A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction blur (options) {\n let sigma;\n if (is.number(options)) {\n sigma = options;\n } else if (is.plainObject(options)) {\n if (!is.number(options.sigma)) {\n throw is.invalidParameterError('options.sigma', 'number between 0.3 and 1000', sigma);\n }\n sigma = options.sigma;\n if ('precision' in options) {\n if (is.string(vipsPrecision[options.precision])) {\n this.options.precision = vipsPrecision[options.precision];\n } else {\n throw is.invalidParameterError('precision', 'one of: integer, float, approximate', options.precision);\n }\n }\n if ('minAmplitude' in options) {\n if (is.number(options.minAmplitude) && is.inRange(options.minAmplitude, 0.001, 1)) {\n this.options.minAmpl = options.minAmplitude;\n } else {\n throw is.invalidParameterError('minAmplitude', 'number between 0.001 and 1', options.minAmplitude);\n }\n }\n }\n\n if (!is.defined(options)) {\n // No arguments: default to mild blur\n this.options.blurSigma = -1;\n } else if (is.bool(options)) {\n // Boolean argument: apply mild blur?\n this.options.blurSigma = options ? -1 : 0;\n } else if (is.number(sigma) && is.inRange(sigma, 0.3, 1000)) {\n // Numeric argument: specific sigma\n this.options.blurSigma = sigma;\n } else {\n throw is.invalidParameterError('sigma', 'number between 0.3 and 1000', sigma);\n }\n\n return this;\n}\n\n/**\n * Expand foreground objects using the dilate morphological operator.\n *\n * @example\n * const output = await sharp(input)\n * .dilate()\n * .toBuffer();\n *\n * @param {Number} [width=1] dilation width in pixels.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction dilate (width) {\n if (!is.defined(width)) {\n this.options.dilateWidth = 1;\n } else if (is.integer(width) && is.inRange(width, 1, 65536)) {\n this.options.dilateWidth = width;\n } else {\n throw is.invalidParameterError('width', 'integer between 1 and 65536', width);\n }\n return this;\n}\n\n/**\n * Shrink foreground objects using the erode morphological operator.\n *\n * @example\n * const output = await sharp(input)\n * .erode()\n * .toBuffer();\n *\n * @param {Number} [width=1] erosion width in pixels.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction erode (width) {\n if (!is.defined(width)) {\n this.options.erodeWidth = 1;\n } else if (is.integer(width) && is.inRange(width, 1, 65536)) {\n this.options.erodeWidth = width;\n } else {\n throw is.invalidParameterError('width', 'integer between 1 and 65536', width);\n }\n return this;\n}\n\n/**\n * Merge alpha transparency channel, if any, with a background, then remove the alpha channel.\n *\n * See also {@link /api-channel#removealpha removeAlpha}.\n *\n * @example\n * await sharp(rgbaInput)\n * .flatten({ background: '#F0A703' })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {string|Object} [options.background={r: 0, g: 0, b: 0}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black.\n * @returns {Sharp}\n */\nfunction flatten (options) {\n this.options.flatten = is.bool(options) ? options : true;\n if (is.object(options)) {\n this._setBackgroundColourOption('flattenBackground', options.background);\n }\n return this;\n}\n\n/**\n * Ensure the image has an alpha channel\n * with all white pixel values made fully transparent.\n *\n * Existing alpha channel values for non-white pixels remain unchanged.\n *\n * @since 0.32.1\n *\n * @example\n * await sharp(rgbInput)\n * .unflatten()\n * .toBuffer();\n *\n * @example\n * await sharp(rgbInput)\n * .threshold(128, { grayscale: false }) // converter bright pixels to white\n * .unflatten()\n * .toBuffer();\n */\nfunction unflatten () {\n this.options.unflatten = true;\n return this;\n}\n\n/**\n * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of `1/gamma`\n * then increasing the encoding (brighten) post-resize at a factor of `gamma`.\n * This can improve the perceived brightness of a resized image in non-linear colour spaces.\n * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation\n * when applying a gamma correction.\n *\n * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases.\n *\n * @param {number} [gamma=2.2] value between 1.0 and 3.0.\n * @param {number} [gammaOut] value between 1.0 and 3.0. (optional, defaults to same as `gamma`)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction gamma (gamma, gammaOut) {\n if (!is.defined(gamma)) {\n // Default gamma correction of 2.2 (sRGB)\n this.options.gamma = 2.2;\n } else if (is.number(gamma) && is.inRange(gamma, 1, 3)) {\n this.options.gamma = gamma;\n } else {\n throw is.invalidParameterError('gamma', 'number between 1.0 and 3.0', gamma);\n }\n if (!is.defined(gammaOut)) {\n // Default gamma correction for output is same as input\n this.options.gammaOut = this.options.gamma;\n } else if (is.number(gammaOut) && is.inRange(gammaOut, 1, 3)) {\n this.options.gammaOut = gammaOut;\n } else {\n throw is.invalidParameterError('gammaOut', 'number between 1.0 and 3.0', gammaOut);\n }\n return this;\n}\n\n/**\n * Produce the \"negative\" of the image.\n *\n * @example\n * const output = await sharp(input)\n * .negate()\n * .toBuffer();\n *\n * @example\n * const output = await sharp(input)\n * .negate({ alpha: false })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {Boolean} [options.alpha=true] Whether or not to negate any alpha channel\n * @returns {Sharp}\n */\nfunction negate (options) {\n this.options.negate = is.bool(options) ? options : true;\n if (is.plainObject(options) && 'alpha' in options) {\n if (!is.bool(options.alpha)) {\n throw is.invalidParameterError('alpha', 'should be boolean value', options.alpha);\n } else {\n this.options.negateAlpha = options.alpha;\n }\n }\n return this;\n}\n\n/**\n * Enhance output image contrast by stretching its luminance to cover a full dynamic range.\n *\n * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes.\n *\n * Luminance values below the `lower` percentile will be underexposed by clipping to zero.\n * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value.\n *\n * @example\n * const output = await sharp(input)\n * .normalise()\n * .toBuffer();\n *\n * @example\n * const output = await sharp(input)\n * .normalise({ lower: 0, upper: 100 })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed.\n * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed.\n * @returns {Sharp}\n */\nfunction normalise (options) {\n if (is.plainObject(options)) {\n if (is.defined(options.lower)) {\n if (is.number(options.lower) && is.inRange(options.lower, 0, 99)) {\n this.options.normaliseLower = options.lower;\n } else {\n throw is.invalidParameterError('lower', 'number between 0 and 99', options.lower);\n }\n }\n if (is.defined(options.upper)) {\n if (is.number(options.upper) && is.inRange(options.upper, 1, 100)) {\n this.options.normaliseUpper = options.upper;\n } else {\n throw is.invalidParameterError('upper', 'number between 1 and 100', options.upper);\n }\n }\n }\n if (this.options.normaliseLower >= this.options.normaliseUpper) {\n throw is.invalidParameterError('range', 'lower to be less than upper',\n `${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);\n }\n this.options.normalise = true;\n return this;\n}\n\n/**\n * Alternative spelling of normalise.\n *\n * @example\n * const output = await sharp(input)\n * .normalize()\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed.\n * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed.\n * @returns {Sharp}\n */\nfunction normalize (options) {\n return this.normalise(options);\n}\n\n/**\n * Perform contrast limiting adaptive histogram equalization\n * {@link https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE CLAHE}.\n *\n * This will, in general, enhance the clarity of the image by bringing out darker details.\n *\n * @since 0.28.3\n *\n * @example\n * const output = await sharp(input)\n * .clahe({\n * width: 3,\n * height: 3,\n * })\n * .toBuffer();\n *\n * @param {Object} options\n * @param {number} options.width - Integral width of the search window, in pixels, between 1 and 65536.\n * @param {number} options.height - Integral height of the search window, in pixels, between 1 and 65536.\n * @param {number} [options.maxSlope=3] - Integral level of brightening, between 0 and 100, where 0 disables contrast limiting.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction clahe (options) {\n if (is.plainObject(options)) {\n if (is.integer(options.width) && is.inRange(options.width, 1, 65536)) {\n this.options.claheWidth = options.width;\n } else {\n throw is.invalidParameterError('width', 'integer between 1 and 65536', options.width);\n }\n if (is.integer(options.height) && is.inRange(options.height, 1, 65536)) {\n this.options.claheHeight = options.height;\n } else {\n throw is.invalidParameterError('height', 'integer between 1 and 65536', options.height);\n }\n if (is.defined(options.maxSlope)) {\n if (is.integer(options.maxSlope) && is.inRange(options.maxSlope, 0, 100)) {\n this.options.claheMaxSlope = options.maxSlope;\n } else {\n throw is.invalidParameterError('maxSlope', 'integer between 0 and 100', options.maxSlope);\n }\n }\n } else {\n throw is.invalidParameterError('options', 'plain object', options);\n }\n return this;\n}\n\n/**\n * Convolve the image with the specified kernel.\n *\n * @example\n * sharp(input)\n * .convolve({\n * width: 3,\n * height: 3,\n * kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1]\n * })\n * .raw()\n * .toBuffer(function(err, data, info) {\n * // data contains the raw pixel data representing the convolution\n * // of the input image with the horizontal Sobel operator\n * });\n *\n * @param {Object} kernel\n * @param {number} kernel.width - width of the kernel in pixels.\n * @param {number} kernel.height - height of the kernel in pixels.\n * @param {Array<number>} kernel.kernel - Array of length `width*height` containing the kernel values.\n * @param {number} [kernel.scale=sum] - the scale of the kernel in pixels.\n * @param {number} [kernel.offset=0] - the offset of the kernel in pixels.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction convolve (kernel) {\n if (!is.object(kernel) || !Array.isArray(kernel.kernel) ||\n !is.integer(kernel.width) || !is.integer(kernel.height) ||\n !is.inRange(kernel.width, 3, 1001) || !is.inRange(kernel.height, 3, 1001) ||\n kernel.height * kernel.width !== kernel.kernel.length ||\n !kernel.kernel.every(is.number)\n ) {\n // must pass in a kernel\n throw new Error('Invalid convolution kernel');\n }\n // Default scale is sum of kernel values\n if (!is.integer(kernel.scale)) {\n kernel.scale = kernel.kernel.reduce((a, b) => a + b, 0);\n }\n // Clip scale to a minimum value of 1\n if (kernel.scale < 1) {\n kernel.scale = 1;\n }\n if (!is.integer(kernel.offset)) {\n kernel.offset = 0;\n }\n this.options.convKernel = kernel;\n return this;\n}\n\n/**\n * Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0.\n * @param {number} [threshold=128] - a value in the range 0-255 representing the level at which the threshold will be applied.\n * @param {Object} [options]\n * @param {Boolean} [options.greyscale=true] - convert to single channel greyscale.\n * @param {Boolean} [options.grayscale=true] - alternative spelling for greyscale.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction threshold (threshold, options) {\n if (!is.defined(threshold)) {\n this.options.threshold = 128;\n } else if (is.bool(threshold)) {\n this.options.threshold = threshold ? 128 : 0;\n } else if (is.integer(threshold) && is.inRange(threshold, 0, 255)) {\n this.options.threshold = threshold;\n } else {\n throw is.invalidParameterError('threshold', 'integer between 0 and 255', threshold);\n }\n if (!is.object(options) || options.greyscale === true || options.grayscale === true) {\n this.options.thresholdGrayscale = true;\n } else {\n this.options.thresholdGrayscale = false;\n }\n return this;\n}\n\n/**\n * Perform a bitwise boolean operation with operand image.\n *\n * This operation creates an output image where each pixel is the result of\n * the selected bitwise boolean `operation` between the corresponding pixels of the input images.\n *\n * @param {Buffer|string} operand - Buffer containing image data or string containing the path to an image file.\n * @param {string} operator - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively.\n * @param {Object} [options]\n * @param {Object} [options.raw] - describes operand when using raw pixel data.\n * @param {number} [options.raw.width]\n * @param {number} [options.raw.height]\n * @param {number} [options.raw.channels]\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction boolean (operand, operator, options) {\n this.options.boolean = this._createInputDescriptor(operand, options);\n if (is.string(operator) && is.inArray(operator, ['and', 'or', 'eor'])) {\n this.options.booleanOp = operator;\n } else {\n throw is.invalidParameterError('operator', 'one of: and, or, eor', operator);\n }\n return this;\n}\n\n/**\n * Apply the linear formula `a` * input + `b` to the image to adjust image levels.\n *\n * When a single number is provided, it will be used for all image channels.\n * When an array of numbers is provided, the array length must match the number of channels.\n *\n * @example\n * await sharp(input)\n * .linear(0.5, 2)\n * .toBuffer();\n *\n * @example\n * await sharp(rgbInput)\n * .linear(\n * [0.25, 0.5, 0.75],\n * [150, 100, 50]\n * )\n * .toBuffer();\n *\n * @param {(number|number[])} [a=[]] multiplier\n * @param {(number|number[])} [b=[]] offset\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction linear (a, b) {\n if (!is.defined(a) && is.number(b)) {\n a = 1.0;\n } else if (is.number(a) && !is.defined(b)) {\n b = 0.0;\n }\n if (!is.defined(a)) {\n this.options.linearA = [];\n } else if (is.number(a)) {\n this.options.linearA = [a];\n } else if (Array.isArray(a) && is.inRange(a.length, 1, 1000000) && a.every(is.number)) {\n this.options.linearA = a;\n } else {\n throw is.invalidParameterError('a', 'number or array of numbers', a);\n }\n if (!is.defined(b)) {\n this.options.linearB = [];\n } else if (is.number(b)) {\n this.options.linearB = [b];\n } else if (Array.isArray(b) && is.inRange(b.length, 1, 1000000) && b.every(is.number)) {\n this.options.linearB = b;\n } else {\n throw is.invalidParameterError('b', 'number or array of numbers', b);\n }\n if (this.options.linearA.length !== this.options.linearB.length) {\n throw new Error('Expected a and b to be arrays of the same length');\n }\n return this;\n}\n\n/**\n * Recombine the image with the specified matrix.\n *\n * @since 0.21.1\n *\n * @example\n * sharp(input)\n * .recomb([\n * [0.3588, 0.7044, 0.1368],\n * [0.2990, 0.5870, 0.1140],\n * [0.2392, 0.4696, 0.0912],\n * ])\n * .raw()\n * .toBuffer(function(err, data, info) {\n * // data contains the raw pixel data after applying the matrix\n * // With this example input, a sepia filter has been applied\n * });\n *\n * @param {Array<Array<number>>} inputMatrix - 3x3 or 4x4 Recombination matrix\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction recomb (inputMatrix) {\n if (!Array.isArray(inputMatrix)) {\n throw is.invalidParameterError('inputMatrix', 'array', inputMatrix);\n }\n const dimensions = inputMatrix.length;\n if (dimensions !== 3 && dimensions !== 4) {\n throw is.invalidParameterError('inputMatrix', '3x3 or 4x4 array', dimensions);\n }\n if (!inputMatrix.every((row) => Array.isArray(row) && row.length === dimensions)) {\n throw is.invalidParameterError('inputMatrix', `array of ${dimensions} arrays of length ${dimensions}`, inputMatrix);\n }\n const recombMatrix = inputMatrix.flat();\n if (!recombMatrix.every(is.number)) {\n throw is.invalidParameterError('inputMatrix', 'array of numbers', recombMatrix);\n }\n this.options.recombMatrix = recombMatrix;\n return this;\n}\n\n/**\n * Transforms the image using brightness, saturation, hue rotation, and lightness.\n * Brightness and lightness both operate on luminance, with the difference being that\n * brightness is multiplicative whereas lightness is additive.\n *\n * @since 0.22.1\n *\n * @example\n * // increase brightness by a factor of 2\n * const output = await sharp(input)\n * .modulate({\n * brightness: 2\n * })\n * .toBuffer();\n *\n * @example\n * // hue-rotate by 180 degrees\n * const output = await sharp(input)\n * .modulate({\n * hue: 180\n * })\n * .toBuffer();\n *\n * @example\n * // increase lightness by +50\n * const output = await sharp(input)\n * .modulate({\n * lightness: 50\n * })\n * .toBuffer();\n *\n * @example\n * // decrease brightness and saturation while also hue-rotating by 90 degrees\n * const output = await sharp(input)\n * .modulate({\n * brightness: 0.5,\n * saturation: 0.5,\n * hue: 90,\n * })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.brightness] Brightness multiplier\n * @param {number} [options.saturation] Saturation multiplier\n * @param {number} [options.hue] Degrees for hue rotation\n * @param {number} [options.lightness] Lightness addend\n * @returns {Sharp}\n */\nfunction modulate (options) {\n if (!is.plainObject(options)) {\n throw is.invalidParameterError('options', 'plain object', options);\n }\n if ('brightness' in options) {\n if (is.number(options.brightness) && options.brightness >= 0) {\n this.options.brightness = options.brightness;\n } else {\n throw is.invalidParameterError('brightness', 'number above zero', options.brightness);\n }\n }\n if ('saturation' in options) {\n if (is.number(options.saturation) && options.saturation >= 0) {\n this.options.saturation = options.saturation;\n } else {\n throw is.invalidParameterError('saturation', 'number above zero', options.saturation);\n }\n }\n if ('hue' in options) {\n if (is.integer(options.hue)) {\n this.options.hue = options.hue % 360;\n } else {\n throw is.invalidParameterError('hue', 'number', options.hue);\n }\n }\n if ('lightness' in options) {\n if (is.number(options.lightness)) {\n this.options.lightness = options.lightness;\n } else {\n throw is.invalidParameterError('lightness', 'number', options.lightness);\n }\n }\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with operation-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Object.assign(Sharp.prototype, {\n autoOrient,\n rotate,\n flip,\n flop,\n affine,\n sharpen,\n erode,\n dilate,\n median,\n blur,\n flatten,\n unflatten,\n gamma,\n negate,\n normalise,\n normalize,\n clahe,\n convolve,\n threshold,\n boolean,\n linear,\n recomb,\n modulate\n });\n};\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/color/index.js\nvar index_exports = {};\n__export(index_exports, {\n default: () => index_default\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// node_modules/color-name/index.js\nvar colors = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n};\nfor (const key in colors) Object.freeze(colors[key]);\nvar color_name_default = Object.freeze(colors);\n\n// node_modules/color-string/index.js\nvar reverseNames = /* @__PURE__ */ Object.create(null);\nfor (const name in color_name_default) {\n if (Object.hasOwn(color_name_default, name)) {\n reverseNames[color_name_default[name]] = name;\n }\n}\nvar cs = {\n to: {},\n get: {}\n};\ncs.get = function(string) {\n const prefix = string.slice(0, 3).toLowerCase();\n let value;\n let model;\n switch (prefix) {\n case \"hsl\": {\n value = cs.get.hsl(string);\n model = \"hsl\";\n break;\n }\n case \"hwb\": {\n value = cs.get.hwb(string);\n model = \"hwb\";\n break;\n }\n default: {\n value = cs.get.rgb(string);\n model = \"rgb\";\n break;\n }\n }\n if (!value) {\n return null;\n }\n return { model, value };\n};\ncs.get.rgb = function(string) {\n if (!string) {\n return null;\n }\n const abbr = /^#([a-f\\d]{3,4})$/i;\n const hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n const rgba = /^rgba?\\(\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)\\s*(?:[\\s,|/]\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(%?)\\s*)?\\)$/i;\n const per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/i;\n const keyword = /^(\\w+)$/;\n let rgb = [0, 0, 0, 1];\n let match;\n let i;\n let hexAlpha;\n if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (i = 0; i < 3; i++) {\n const i2 = i * 2;\n rgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n }\n if (hexAlpha) {\n rgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n }\n } else if (match = string.match(abbr)) {\n match = match[1];\n hexAlpha = match[3];\n for (i = 0; i < 3; i++) {\n rgb[i] = Number.parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n rgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n }\n } else if (match = string.match(rgba)) {\n for (i = 0; i < 3; i++) {\n rgb[i] = Number.parseFloat(match[i + 1]);\n }\n if (match[4]) {\n rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n }\n } else if (match = string.match(per)) {\n for (i = 0; i < 3; i++) {\n rgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n }\n if (match[4]) {\n rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n }\n } else if (match = string.toLowerCase().match(keyword)) {\n if (match[1] === \"transparent\") {\n return [0, 0, 0, 0];\n }\n if (!Object.hasOwn(color_name_default, match[1])) {\n return null;\n }\n rgb = color_name_default[match[1]].slice();\n rgb[3] = 1;\n return rgb;\n } else {\n return null;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] = clamp(rgb[i], 0, 255);\n }\n rgb[3] = clamp(rgb[3], 0, 1);\n return rgb;\n};\ncs.get.hsl = function(string) {\n if (!string) {\n return null;\n }\n const hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n const match = string.match(hsl);\n if (match) {\n const alpha = Number.parseFloat(match[4]);\n const h = (Number.parseFloat(match[1]) % 360 + 360) % 360;\n const s = clamp(Number.parseFloat(match[2]), 0, 100);\n const l = clamp(Number.parseFloat(match[3]), 0, 100);\n const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n return null;\n};\ncs.get.hwb = function(string) {\n if (!string) {\n return null;\n }\n const hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n const match = string.match(hwb);\n if (match) {\n const alpha = Number.parseFloat(match[4]);\n const h = (Number.parseFloat(match[1]) % 360 + 360) % 360;\n const w = clamp(Number.parseFloat(match[2]), 0, 100);\n const b = clamp(Number.parseFloat(match[3]), 0, 100);\n const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n return null;\n};\ncs.to.hex = function(...rgba) {\n return \"#\" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : \"\");\n};\ncs.to.rgb = function(...rgba) {\n return rgba.length < 4 || rgba[3] === 1 ? \"rgb(\" + Math.round(rgba[0]) + \", \" + Math.round(rgba[1]) + \", \" + Math.round(rgba[2]) + \")\" : \"rgba(\" + Math.round(rgba[0]) + \", \" + Math.round(rgba[1]) + \", \" + Math.round(rgba[2]) + \", \" + rgba[3] + \")\";\n};\ncs.to.rgb.percent = function(...rgba) {\n const r = Math.round(rgba[0] / 255 * 100);\n const g = Math.round(rgba[1] / 255 * 100);\n const b = Math.round(rgba[2] / 255 * 100);\n return rgba.length < 4 || rgba[3] === 1 ? \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\" : \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + rgba[3] + \")\";\n};\ncs.to.hsl = function(...hsla) {\n return hsla.length < 4 || hsla[3] === 1 ? \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\" : \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \" + hsla[3] + \")\";\n};\ncs.to.hwb = function(...hwba) {\n let a = \"\";\n if (hwba.length >= 4 && hwba[3] !== 1) {\n a = \", \" + hwba[3];\n }\n return \"hwb(\" + hwba[0] + \", \" + hwba[1] + \"%, \" + hwba[2] + \"%\" + a + \")\";\n};\ncs.to.keyword = function(...rgb) {\n return reverseNames[rgb.slice(0, 3)];\n};\nfunction clamp(number_, min, max) {\n return Math.min(Math.max(min, number_), max);\n}\nfunction hexDouble(number_) {\n const string_ = Math.round(number_).toString(16).toUpperCase();\n return string_.length < 2 ? \"0\" + string_ : string_;\n}\nvar color_string_default = cs;\n\n// node_modules/color-convert/conversions.js\nvar reverseKeywords = {};\nfor (const key of Object.keys(color_name_default)) {\n reverseKeywords[color_name_default[key]] = key;\n}\nvar convert = {\n rgb: { channels: 3, labels: \"rgb\" },\n hsl: { channels: 3, labels: \"hsl\" },\n hsv: { channels: 3, labels: \"hsv\" },\n hwb: { channels: 3, labels: \"hwb\" },\n cmyk: { channels: 4, labels: \"cmyk\" },\n xyz: { channels: 3, labels: \"xyz\" },\n lab: { channels: 3, labels: \"lab\" },\n oklab: { channels: 3, labels: [\"okl\", \"oka\", \"okb\"] },\n lch: { channels: 3, labels: \"lch\" },\n oklch: { channels: 3, labels: [\"okl\", \"okc\", \"okh\"] },\n hex: { channels: 1, labels: [\"hex\"] },\n keyword: { channels: 1, labels: [\"keyword\"] },\n ansi16: { channels: 1, labels: [\"ansi16\"] },\n ansi256: { channels: 1, labels: [\"ansi256\"] },\n hcg: { channels: 3, labels: [\"h\", \"c\", \"g\"] },\n apple: { channels: 3, labels: [\"r16\", \"g16\", \"b16\"] },\n gray: { channels: 1, labels: [\"gray\"] }\n};\nvar conversions_default = convert;\nvar LAB_FT = (6 / 29) ** 3;\nfunction srgbNonlinearTransform(c) {\n const cc = c > 31308e-7 ? 1.055 * c ** (1 / 2.4) - 0.055 : c * 12.92;\n return Math.min(Math.max(0, cc), 1);\n}\nfunction srgbNonlinearTransformInv(c) {\n return c > 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92;\n}\nfor (const model of Object.keys(convert)) {\n if (!(\"channels\" in convert[model])) {\n throw new Error(\"missing channels property: \" + model);\n }\n if (!(\"labels\" in convert[model])) {\n throw new Error(\"missing channel labels property: \" + model);\n }\n if (convert[model].labels.length !== convert[model].channels) {\n throw new Error(\"channel and label counts mismatch: \" + model);\n }\n const { channels, labels } = convert[model];\n delete convert[model].channels;\n delete convert[model].labels;\n Object.defineProperty(convert[model], \"channels\", { value: channels });\n Object.defineProperty(convert[model], \"labels\", { value: labels });\n}\nconvert.rgb.hsl = function(rgb) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const min = Math.min(r, g, b);\n const max = Math.max(r, g, b);\n const delta = max - min;\n let h;\n let s;\n switch (max) {\n case min: {\n h = 0;\n break;\n }\n case r: {\n h = (g - b) / delta;\n break;\n }\n case g: {\n h = 2 + (b - r) / delta;\n break;\n }\n case b: {\n h = 4 + (r - g) / delta;\n break;\n }\n }\n h = Math.min(h * 60, 360);\n if (h < 0) {\n h += 360;\n }\n const l = (min + max) / 2;\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n return [h, s * 100, l * 100];\n};\nconvert.rgb.hsv = function(rgb) {\n let rdif;\n let gdif;\n let bdif;\n let h;\n let s;\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const v = Math.max(r, g, b);\n const diff = v - Math.min(r, g, b);\n const diffc = function(c) {\n return (v - c) / 6 / diff + 1 / 2;\n };\n if (diff === 0) {\n h = 0;\n s = 0;\n } else {\n s = diff / v;\n rdif = diffc(r);\n gdif = diffc(g);\n bdif = diffc(b);\n switch (v) {\n case r: {\n h = bdif - gdif;\n break;\n }\n case g: {\n h = 1 / 3 + rdif - bdif;\n break;\n }\n case b: {\n h = 2 / 3 + gdif - rdif;\n break;\n }\n }\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n return [\n h * 360,\n s * 100,\n v * 100\n ];\n};\nconvert.rgb.hwb = function(rgb) {\n const r = rgb[0];\n const g = rgb[1];\n let b = rgb[2];\n const h = convert.rgb.hsl(rgb)[0];\n const w = 1 / 255 * Math.min(r, Math.min(g, b));\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n return [h, w * 100, b * 100];\n};\nconvert.rgb.oklab = function(rgb) {\n const r = srgbNonlinearTransformInv(rgb[0] / 255);\n const g = srgbNonlinearTransformInv(rgb[1] / 255);\n const b = srgbNonlinearTransformInv(rgb[2] / 255);\n const lp = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);\n const mp = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);\n const sp = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);\n const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp;\n const aa = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp;\n const bb = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp;\n return [l * 100, aa * 100, bb * 100];\n};\nconvert.rgb.cmyk = function(rgb) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const k = Math.min(1 - r, 1 - g, 1 - b);\n const c = (1 - r - k) / (1 - k) || 0;\n const m = (1 - g - k) / (1 - k) || 0;\n const y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n};\nfunction comparativeDistance(x, y) {\n return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;\n}\nconvert.rgb.keyword = function(rgb) {\n const reversed = reverseKeywords[rgb];\n if (reversed) {\n return reversed;\n }\n let currentClosestDistance = Number.POSITIVE_INFINITY;\n let currentClosestKeyword;\n for (const keyword of Object.keys(color_name_default)) {\n const value = color_name_default[keyword];\n const distance = comparativeDistance(rgb, value);\n if (distance < currentClosestDistance) {\n currentClosestDistance = distance;\n currentClosestKeyword = keyword;\n }\n }\n return currentClosestKeyword;\n};\nconvert.keyword.rgb = function(keyword) {\n return [...color_name_default[keyword]];\n};\nconvert.rgb.xyz = function(rgb) {\n const r = srgbNonlinearTransformInv(rgb[0] / 255);\n const g = srgbNonlinearTransformInv(rgb[1] / 255);\n const b = srgbNonlinearTransformInv(rgb[2] / 255);\n const x = r * 0.4124564 + g * 0.3575761 + b * 0.1804375;\n const y = r * 0.2126729 + g * 0.7151522 + b * 0.072175;\n const z = r * 0.0193339 + g * 0.119192 + b * 0.9503041;\n return [x * 100, y * 100, z * 100];\n};\nconvert.rgb.lab = function(rgb) {\n const xyz = convert.rgb.xyz(rgb);\n let x = xyz[0];\n let y = xyz[1];\n let z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n const l = 116 * y - 16;\n const a = 500 * (x - y);\n const b = 200 * (y - z);\n return [l, a, b];\n};\nconvert.hsl.rgb = function(hsl) {\n const h = hsl[0] / 360;\n const s = hsl[1] / 100;\n const l = hsl[2] / 100;\n let t3;\n let value;\n if (s === 0) {\n value = l * 255;\n return [value, value, value];\n }\n const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const t1 = 2 * l - t2;\n const rgb = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n value = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n value = t2;\n } else if (3 * t3 < 2) {\n value = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n value = t1;\n }\n rgb[i] = value * 255;\n }\n return rgb;\n};\nconvert.hsl.hsv = function(hsl) {\n const h = hsl[0];\n let s = hsl[1] / 100;\n let l = hsl[2] / 100;\n let smin = s;\n const lmin = Math.max(l, 0.01);\n l *= 2;\n s *= l <= 1 ? l : 2 - l;\n smin *= lmin <= 1 ? lmin : 2 - lmin;\n const v = (l + s) / 2;\n const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n return [h, sv * 100, v * 100];\n};\nconvert.hsv.rgb = function(hsv) {\n const h = hsv[0] / 60;\n const s = hsv[1] / 100;\n let v = hsv[2] / 100;\n const hi = Math.floor(h) % 6;\n const f = h - Math.floor(h);\n const p = 255 * v * (1 - s);\n const q = 255 * v * (1 - s * f);\n const t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n switch (hi) {\n case 0: {\n return [v, t, p];\n }\n case 1: {\n return [q, v, p];\n }\n case 2: {\n return [p, v, t];\n }\n case 3: {\n return [p, q, v];\n }\n case 4: {\n return [t, p, v];\n }\n case 5: {\n return [v, p, q];\n }\n }\n};\nconvert.hsv.hsl = function(hsv) {\n const h = hsv[0];\n const s = hsv[1] / 100;\n const v = hsv[2] / 100;\n const vmin = Math.max(v, 0.01);\n let sl;\n let l;\n l = (2 - s) * v;\n const lmin = (2 - s) * vmin;\n sl = s * vmin;\n sl /= lmin <= 1 ? lmin : 2 - lmin;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n};\nconvert.hwb.rgb = function(hwb) {\n const h = hwb[0] / 360;\n let wh = hwb[1] / 100;\n let bl = hwb[2] / 100;\n const ratio = wh + bl;\n let f;\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n const i = Math.floor(6 * h);\n const v = 1 - bl;\n f = 6 * h - i;\n if ((i & 1) !== 0) {\n f = 1 - f;\n }\n const n = wh + f * (v - wh);\n let r;\n let g;\n let b;\n switch (i) {\n default:\n case 6:\n case 0: {\n r = v;\n g = n;\n b = wh;\n break;\n }\n case 1: {\n r = n;\n g = v;\n b = wh;\n break;\n }\n case 2: {\n r = wh;\n g = v;\n b = n;\n break;\n }\n case 3: {\n r = wh;\n g = n;\n b = v;\n break;\n }\n case 4: {\n r = n;\n g = wh;\n b = v;\n break;\n }\n case 5: {\n r = v;\n g = wh;\n b = n;\n break;\n }\n }\n return [r * 255, g * 255, b * 255];\n};\nconvert.cmyk.rgb = function(cmyk) {\n const c = cmyk[0] / 100;\n const m = cmyk[1] / 100;\n const y = cmyk[2] / 100;\n const k = cmyk[3] / 100;\n const r = 1 - Math.min(1, c * (1 - k) + k);\n const g = 1 - Math.min(1, m * (1 - k) + k);\n const b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n};\nconvert.xyz.rgb = function(xyz) {\n const x = xyz[0] / 100;\n const y = xyz[1] / 100;\n const z = xyz[2] / 100;\n let r;\n let g;\n let b;\n r = x * 3.2404542 + y * -1.5371385 + z * -0.4985314;\n g = x * -0.969266 + y * 1.8760108 + z * 0.041556;\n b = x * 0.0556434 + y * -0.2040259 + z * 1.0572252;\n r = srgbNonlinearTransform(r);\n g = srgbNonlinearTransform(g);\n b = srgbNonlinearTransform(b);\n return [r * 255, g * 255, b * 255];\n};\nconvert.xyz.lab = function(xyz) {\n let x = xyz[0];\n let y = xyz[1];\n let z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n const l = 116 * y - 16;\n const a = 500 * (x - y);\n const b = 200 * (y - z);\n return [l, a, b];\n};\nconvert.xyz.oklab = function(xyz) {\n const x = xyz[0] / 100;\n const y = xyz[1] / 100;\n const z = xyz[2] / 100;\n const lp = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);\n const mp = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);\n const sp = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.633851707 * z);\n const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp;\n const a = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp;\n const b = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp;\n return [l * 100, a * 100, b * 100];\n};\nconvert.oklab.oklch = function(oklab) {\n return convert.lab.lch(oklab);\n};\nconvert.oklab.xyz = function(oklab) {\n const ll = oklab[0] / 100;\n const a = oklab[1] / 100;\n const b = oklab[2] / 100;\n const l = (0.999999998 * ll + 0.396337792 * a + 0.215803758 * b) ** 3;\n const m = (1.000000008 * ll - 0.105561342 * a - 0.063854175 * b) ** 3;\n const s = (1.000000055 * ll - 0.089484182 * a - 1.291485538 * b) ** 3;\n const x = 1.227013851 * l - 0.55779998 * m + 0.281256149 * s;\n const y = -0.040580178 * l + 1.11225687 * m - 0.071676679 * s;\n const z = -0.076381285 * l - 0.421481978 * m + 1.58616322 * s;\n return [x * 100, y * 100, z * 100];\n};\nconvert.oklab.rgb = function(oklab) {\n const ll = oklab[0] / 100;\n const aa = oklab[1] / 100;\n const bb = oklab[2] / 100;\n const l = (ll + 0.3963377774 * aa + 0.2158037573 * bb) ** 3;\n const m = (ll - 0.1055613458 * aa - 0.0638541728 * bb) ** 3;\n const s = (ll - 0.0894841775 * aa - 1.291485548 * bb) ** 3;\n const r = srgbNonlinearTransform(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s);\n const g = srgbNonlinearTransform(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s);\n const b = srgbNonlinearTransform(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s);\n return [r * 255, g * 255, b * 255];\n};\nconvert.oklch.oklab = function(oklch) {\n return convert.lch.lab(oklch);\n};\nconvert.lab.xyz = function(lab) {\n const l = lab[0];\n const a = lab[1];\n const b = lab[2];\n let x;\n let y;\n let z;\n y = (l + 16) / 116;\n x = a / 500 + y;\n z = y - b / 200;\n const y2 = y ** 3;\n const x2 = x ** 3;\n const z2 = z ** 3;\n y = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n x = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n z = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n x *= 95.047;\n y *= 100;\n z *= 108.883;\n return [x, y, z];\n};\nconvert.lab.lch = function(lab) {\n const l = lab[0];\n const a = lab[1];\n const b = lab[2];\n let h;\n const hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n const c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n};\nconvert.lch.lab = function(lch) {\n const l = lch[0];\n const c = lch[1];\n const h = lch[2];\n const hr = h / 360 * 2 * Math.PI;\n const a = c * Math.cos(hr);\n const b = c * Math.sin(hr);\n return [l, a, b];\n};\nconvert.rgb.ansi16 = function(args, saturation = null) {\n const [r, g, b] = args;\n let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;\n value = Math.round(value / 50);\n if (value === 0) {\n return 30;\n }\n let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n if (value === 2) {\n ansi += 60;\n }\n return ansi;\n};\nconvert.hsv.ansi16 = function(args) {\n return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\nconvert.rgb.ansi256 = function(args) {\n const r = args[0];\n const g = args[1];\n const b = args[2];\n if (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n if (r < 8) {\n return 16;\n }\n if (r > 248) {\n return 231;\n }\n return Math.round((r - 8) / 247 * 24) + 232;\n }\n const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n return ansi;\n};\nconvert.ansi16.rgb = function(args) {\n args = args[0];\n let color = args % 10;\n if (color === 0 || color === 7) {\n if (args > 50) {\n color += 3.5;\n }\n color = color / 10.5 * 255;\n return [color, color, color];\n }\n const mult = (Math.trunc(args > 50) + 1) * 0.5;\n const r = (color & 1) * mult * 255;\n const g = (color >> 1 & 1) * mult * 255;\n const b = (color >> 2 & 1) * mult * 255;\n return [r, g, b];\n};\nconvert.ansi256.rgb = function(args) {\n args = args[0];\n if (args >= 232) {\n const c = (args - 232) * 10 + 8;\n return [c, c, c];\n }\n args -= 16;\n let rem;\n const r = Math.floor(args / 36) / 5 * 255;\n const g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n const b = rem % 6 / 5 * 255;\n return [r, g, b];\n};\nconvert.rgb.hex = function(args) {\n const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);\n const string = integer.toString(16).toUpperCase();\n return \"000000\".slice(string.length) + string;\n};\nconvert.hex.rgb = function(args) {\n const match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n if (!match) {\n return [0, 0, 0];\n }\n let colorString = match[0];\n if (match[0].length === 3) {\n colorString = [...colorString].map((char) => char + char).join(\"\");\n }\n const integer = Number.parseInt(colorString, 16);\n const r = integer >> 16 & 255;\n const g = integer >> 8 & 255;\n const b = integer & 255;\n return [r, g, b];\n};\nconvert.rgb.hcg = function(rgb) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const max = Math.max(Math.max(r, g), b);\n const min = Math.min(Math.min(r, g), b);\n const chroma = max - min;\n let hue;\n const grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n if (chroma <= 0) {\n hue = 0;\n } else if (max === r) {\n hue = (g - b) / chroma % 6;\n } else if (max === g) {\n hue = 2 + (b - r) / chroma;\n } else {\n hue = 4 + (r - g) / chroma;\n }\n hue /= 6;\n hue %= 1;\n return [hue * 360, chroma * 100, grayscale * 100];\n};\nconvert.hsl.hcg = function(hsl) {\n const s = hsl[1] / 100;\n const l = hsl[2] / 100;\n const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l);\n let f = 0;\n if (c < 1) {\n f = (l - 0.5 * c) / (1 - c);\n }\n return [hsl[0], c * 100, f * 100];\n};\nconvert.hsv.hcg = function(hsv) {\n const s = hsv[1] / 100;\n const v = hsv[2] / 100;\n const c = s * v;\n let f = 0;\n if (c < 1) {\n f = (v - c) / (1 - c);\n }\n return [hsv[0], c * 100, f * 100];\n};\nconvert.hcg.rgb = function(hcg) {\n const h = hcg[0] / 360;\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n if (c === 0) {\n return [g * 255, g * 255, g * 255];\n }\n const pure = [0, 0, 0];\n const hi = h % 1 * 6;\n const v = hi % 1;\n const w = 1 - v;\n let mg = 0;\n switch (Math.floor(hi)) {\n case 0: {\n pure[0] = 1;\n pure[1] = v;\n pure[2] = 0;\n break;\n }\n case 1: {\n pure[0] = w;\n pure[1] = 1;\n pure[2] = 0;\n break;\n }\n case 2: {\n pure[0] = 0;\n pure[1] = 1;\n pure[2] = v;\n break;\n }\n case 3: {\n pure[0] = 0;\n pure[1] = w;\n pure[2] = 1;\n break;\n }\n case 4: {\n pure[0] = v;\n pure[1] = 0;\n pure[2] = 1;\n break;\n }\n default: {\n pure[0] = 1;\n pure[1] = 0;\n pure[2] = w;\n }\n }\n mg = (1 - c) * g;\n return [\n (c * pure[0] + mg) * 255,\n (c * pure[1] + mg) * 255,\n (c * pure[2] + mg) * 255\n ];\n};\nconvert.hcg.hsv = function(hcg) {\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n const v = c + g * (1 - c);\n let f = 0;\n if (v > 0) {\n f = c / v;\n }\n return [hcg[0], f * 100, v * 100];\n};\nconvert.hcg.hsl = function(hcg) {\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n const l = g * (1 - c) + 0.5 * c;\n let s = 0;\n if (l > 0 && l < 0.5) {\n s = c / (2 * l);\n } else if (l >= 0.5 && l < 1) {\n s = c / (2 * (1 - l));\n }\n return [hcg[0], s * 100, l * 100];\n};\nconvert.hcg.hwb = function(hcg) {\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n const v = c + g * (1 - c);\n return [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\nconvert.hwb.hcg = function(hwb) {\n const w = hwb[1] / 100;\n const b = hwb[2] / 100;\n const v = 1 - b;\n const c = v - w;\n let g = 0;\n if (c < 1) {\n g = (v - c) / (1 - c);\n }\n return [hwb[0], c * 100, g * 100];\n};\nconvert.apple.rgb = function(apple) {\n return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n};\nconvert.rgb.apple = function(rgb) {\n return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n};\nconvert.gray.rgb = function(args) {\n return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\nconvert.gray.hsl = function(args) {\n return [0, 0, args[0]];\n};\nconvert.gray.hsv = convert.gray.hsl;\nconvert.gray.hwb = function(gray) {\n return [0, 100, gray[0]];\n};\nconvert.gray.cmyk = function(gray) {\n return [0, 0, 0, gray[0]];\n};\nconvert.gray.lab = function(gray) {\n return [gray[0], 0, 0];\n};\nconvert.gray.hex = function(gray) {\n const value = Math.round(gray[0] / 100 * 255) & 255;\n const integer = (value << 16) + (value << 8) + value;\n const string = integer.toString(16).toUpperCase();\n return \"000000\".slice(string.length) + string;\n};\nconvert.rgb.gray = function(rgb) {\n const value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n return [value / 255 * 100];\n};\n\n// node_modules/color-convert/route.js\nfunction buildGraph() {\n const graph = {};\n const models2 = Object.keys(conversions_default);\n for (let { length } = models2, i = 0; i < length; i++) {\n graph[models2[i]] = {\n // http://jsperf.com/1-vs-infinity\n // micro-opt, but this is simple.\n distance: -1,\n parent: null\n };\n }\n return graph;\n}\nfunction deriveBFS(fromModel) {\n const graph = buildGraph();\n const queue = [fromModel];\n graph[fromModel].distance = 0;\n while (queue.length > 0) {\n const current = queue.pop();\n const adjacents = Object.keys(conversions_default[current]);\n for (let { length } = adjacents, i = 0; i < length; i++) {\n const adjacent = adjacents[i];\n const node = graph[adjacent];\n if (node.distance === -1) {\n node.distance = graph[current].distance + 1;\n node.parent = current;\n queue.unshift(adjacent);\n }\n }\n }\n return graph;\n}\nfunction link(from, to) {\n return function(args) {\n return to(from(args));\n };\n}\nfunction wrapConversion(toModel, graph) {\n const path = [graph[toModel].parent, toModel];\n let fn = conversions_default[graph[toModel].parent][toModel];\n let cur = graph[toModel].parent;\n while (graph[cur].parent) {\n path.unshift(graph[cur].parent);\n fn = link(conversions_default[graph[cur].parent][cur], fn);\n cur = graph[cur].parent;\n }\n fn.conversion = path;\n return fn;\n}\nfunction route(fromModel) {\n const graph = deriveBFS(fromModel);\n const conversion = {};\n const models2 = Object.keys(graph);\n for (let { length } = models2, i = 0; i < length; i++) {\n const toModel = models2[i];\n const node = graph[toModel];\n if (node.parent === null) {\n continue;\n }\n conversion[toModel] = wrapConversion(toModel, graph);\n }\n return conversion;\n}\nvar route_default = route;\n\n// node_modules/color-convert/index.js\nvar convert2 = {};\nvar models = Object.keys(conversions_default);\nfunction wrapRaw(fn) {\n const wrappedFn = function(...args) {\n const arg0 = args[0];\n if (arg0 === void 0 || arg0 === null) {\n return arg0;\n }\n if (arg0.length > 1) {\n args = arg0;\n }\n return fn(args);\n };\n if (\"conversion\" in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n return wrappedFn;\n}\nfunction wrapRounded(fn) {\n const wrappedFn = function(...args) {\n const arg0 = args[0];\n if (arg0 === void 0 || arg0 === null) {\n return arg0;\n }\n if (arg0.length > 1) {\n args = arg0;\n }\n const result = fn(args);\n if (typeof result === \"object\") {\n for (let { length } = result, i = 0; i < length; i++) {\n result[i] = Math.round(result[i]);\n }\n }\n return result;\n };\n if (\"conversion\" in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n return wrappedFn;\n}\nfor (const fromModel of models) {\n convert2[fromModel] = {};\n Object.defineProperty(convert2[fromModel], \"channels\", { value: conversions_default[fromModel].channels });\n Object.defineProperty(convert2[fromModel], \"labels\", { value: conversions_default[fromModel].labels });\n const routes = route_default(fromModel);\n const routeModels = Object.keys(routes);\n for (const toModel of routeModels) {\n const fn = routes[toModel];\n convert2[fromModel][toModel] = wrapRounded(fn);\n convert2[fromModel][toModel].raw = wrapRaw(fn);\n }\n}\nvar color_convert_default = convert2;\n\n// node_modules/color/index.js\nvar skippedModels = [\n // To be honest, I don't really feel like keyword belongs in color convert, but eh.\n \"keyword\",\n // Gray conflicts with some method names, and has its own method defined.\n \"gray\",\n // Shouldn't really be in color-convert either...\n \"hex\"\n];\nvar hashedModelKeys = {};\nfor (const model of Object.keys(color_convert_default)) {\n hashedModelKeys[[...color_convert_default[model].labels].sort().join(\"\")] = model;\n}\nvar limiters = {};\nfunction Color(object, model) {\n if (!(this instanceof Color)) {\n return new Color(object, model);\n }\n if (model && model in skippedModels) {\n model = null;\n }\n if (model && !(model in color_convert_default)) {\n throw new Error(\"Unknown model: \" + model);\n }\n let i;\n let channels;\n if (object == null) {\n this.model = \"rgb\";\n this.color = [0, 0, 0];\n this.valpha = 1;\n } else if (object instanceof Color) {\n this.model = object.model;\n this.color = [...object.color];\n this.valpha = object.valpha;\n } else if (typeof object === \"string\") {\n const result = color_string_default.get(object);\n if (result === null) {\n throw new Error(\"Unable to parse color from string: \" + object);\n }\n this.model = result.model;\n channels = color_convert_default[this.model].channels;\n this.color = result.value.slice(0, channels);\n this.valpha = typeof result.value[channels] === \"number\" ? result.value[channels] : 1;\n } else if (object.length > 0) {\n this.model = model || \"rgb\";\n channels = color_convert_default[this.model].channels;\n const newArray = Array.prototype.slice.call(object, 0, channels);\n this.color = zeroArray(newArray, channels);\n this.valpha = typeof object[channels] === \"number\" ? object[channels] : 1;\n } else if (typeof object === \"number\") {\n this.model = \"rgb\";\n this.color = [\n object >> 16 & 255,\n object >> 8 & 255,\n object & 255\n ];\n this.valpha = 1;\n } else {\n this.valpha = 1;\n const keys = Object.keys(object);\n if (\"alpha\" in object) {\n keys.splice(keys.indexOf(\"alpha\"), 1);\n this.valpha = typeof object.alpha === \"number\" ? object.alpha : 0;\n }\n const hashedKeys = keys.sort().join(\"\");\n if (!(hashedKeys in hashedModelKeys)) {\n throw new Error(\"Unable to parse color from object: \" + JSON.stringify(object));\n }\n this.model = hashedModelKeys[hashedKeys];\n const { labels } = color_convert_default[this.model];\n const color = [];\n for (i = 0; i < labels.length; i++) {\n color.push(object[labels[i]]);\n }\n this.color = zeroArray(color);\n }\n if (limiters[this.model]) {\n channels = color_convert_default[this.model].channels;\n for (i = 0; i < channels; i++) {\n const limit = limiters[this.model][i];\n if (limit) {\n this.color[i] = limit(this.color[i]);\n }\n }\n }\n this.valpha = Math.max(0, Math.min(1, this.valpha));\n if (Object.freeze) {\n Object.freeze(this);\n }\n}\nColor.prototype = {\n toString() {\n return this.string();\n },\n toJSON() {\n return this[this.model]();\n },\n string(places) {\n let self = this.model in color_string_default.to ? this : this.rgb();\n self = self.round(typeof places === \"number\" ? places : 1);\n const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n return color_string_default.to[self.model](...arguments_);\n },\n percentString(places) {\n const self = this.rgb().round(typeof places === \"number\" ? places : 1);\n const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n return color_string_default.to.rgb.percent(...arguments_);\n },\n array() {\n return this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n },\n object() {\n const result = {};\n const { channels } = color_convert_default[this.model];\n const { labels } = color_convert_default[this.model];\n for (let i = 0; i < channels; i++) {\n result[labels[i]] = this.color[i];\n }\n if (this.valpha !== 1) {\n result.alpha = this.valpha;\n }\n return result;\n },\n unitArray() {\n const rgb = this.rgb().color;\n rgb[0] /= 255;\n rgb[1] /= 255;\n rgb[2] /= 255;\n if (this.valpha !== 1) {\n rgb.push(this.valpha);\n }\n return rgb;\n },\n unitObject() {\n const rgb = this.rgb().object();\n rgb.r /= 255;\n rgb.g /= 255;\n rgb.b /= 255;\n if (this.valpha !== 1) {\n rgb.alpha = this.valpha;\n }\n return rgb;\n },\n round(places) {\n places = Math.max(places || 0, 0);\n return new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n },\n alpha(value) {\n if (value !== void 0) {\n return new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n }\n return this.valpha;\n },\n // Rgb\n red: getset(\"rgb\", 0, maxfn(255)),\n green: getset(\"rgb\", 1, maxfn(255)),\n blue: getset(\"rgb\", 2, maxfn(255)),\n hue: getset([\"hsl\", \"hsv\", \"hsl\", \"hwb\", \"hcg\"], 0, (value) => (value % 360 + 360) % 360),\n saturationl: getset(\"hsl\", 1, maxfn(100)),\n lightness: getset(\"hsl\", 2, maxfn(100)),\n saturationv: getset(\"hsv\", 1, maxfn(100)),\n value: getset(\"hsv\", 2, maxfn(100)),\n chroma: getset(\"hcg\", 1, maxfn(100)),\n gray: getset(\"hcg\", 2, maxfn(100)),\n white: getset(\"hwb\", 1, maxfn(100)),\n wblack: getset(\"hwb\", 2, maxfn(100)),\n cyan: getset(\"cmyk\", 0, maxfn(100)),\n magenta: getset(\"cmyk\", 1, maxfn(100)),\n yellow: getset(\"cmyk\", 2, maxfn(100)),\n black: getset(\"cmyk\", 3, maxfn(100)),\n x: getset(\"xyz\", 0, maxfn(95.047)),\n y: getset(\"xyz\", 1, maxfn(100)),\n z: getset(\"xyz\", 2, maxfn(108.833)),\n l: getset(\"lab\", 0, maxfn(100)),\n a: getset(\"lab\", 1),\n b: getset(\"lab\", 2),\n keyword(value) {\n if (value !== void 0) {\n return new Color(value);\n }\n return color_convert_default[this.model].keyword(this.color);\n },\n hex(value) {\n if (value !== void 0) {\n return new Color(value);\n }\n return color_string_default.to.hex(...this.rgb().round().color);\n },\n hexa(value) {\n if (value !== void 0) {\n return new Color(value);\n }\n const rgbArray = this.rgb().round().color;\n let alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n if (alphaHex.length === 1) {\n alphaHex = \"0\" + alphaHex;\n }\n return color_string_default.to.hex(...rgbArray) + alphaHex;\n },\n rgbNumber() {\n const rgb = this.rgb().color;\n return (rgb[0] & 255) << 16 | (rgb[1] & 255) << 8 | rgb[2] & 255;\n },\n luminosity() {\n const rgb = this.rgb().color;\n const lum = [];\n for (const [i, element] of rgb.entries()) {\n const chan = element / 255;\n lum[i] = chan <= 0.04045 ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n }\n return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n },\n contrast(color2) {\n const lum1 = this.luminosity();\n const lum2 = color2.luminosity();\n if (lum1 > lum2) {\n return (lum1 + 0.05) / (lum2 + 0.05);\n }\n return (lum2 + 0.05) / (lum1 + 0.05);\n },\n level(color2) {\n const contrastRatio = this.contrast(color2);\n if (contrastRatio >= 7) {\n return \"AAA\";\n }\n return contrastRatio >= 4.5 ? \"AA\" : \"\";\n },\n isDark() {\n const rgb = this.rgb().color;\n const yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 1e4;\n return yiq < 128;\n },\n isLight() {\n return !this.isDark();\n },\n negate() {\n const rgb = this.rgb();\n for (let i = 0; i < 3; i++) {\n rgb.color[i] = 255 - rgb.color[i];\n }\n return rgb;\n },\n lighten(ratio) {\n const hsl = this.hsl();\n hsl.color[2] += hsl.color[2] * ratio;\n return hsl;\n },\n darken(ratio) {\n const hsl = this.hsl();\n hsl.color[2] -= hsl.color[2] * ratio;\n return hsl;\n },\n saturate(ratio) {\n const hsl = this.hsl();\n hsl.color[1] += hsl.color[1] * ratio;\n return hsl;\n },\n desaturate(ratio) {\n const hsl = this.hsl();\n hsl.color[1] -= hsl.color[1] * ratio;\n return hsl;\n },\n whiten(ratio) {\n const hwb = this.hwb();\n hwb.color[1] += hwb.color[1] * ratio;\n return hwb;\n },\n blacken(ratio) {\n const hwb = this.hwb();\n hwb.color[2] += hwb.color[2] * ratio;\n return hwb;\n },\n grayscale() {\n const rgb = this.rgb().color;\n const value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n return Color.rgb(value, value, value);\n },\n fade(ratio) {\n return this.alpha(this.valpha - this.valpha * ratio);\n },\n opaquer(ratio) {\n return this.alpha(this.valpha + this.valpha * ratio);\n },\n rotate(degrees) {\n const hsl = this.hsl();\n let hue = hsl.color[0];\n hue = (hue + degrees) % 360;\n hue = hue < 0 ? 360 + hue : hue;\n hsl.color[0] = hue;\n return hsl;\n },\n mix(mixinColor, weight) {\n if (!mixinColor || !mixinColor.rgb) {\n throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n }\n const color1 = mixinColor.rgb();\n const color2 = this.rgb();\n const p = weight === void 0 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = color1.alpha() - color2.alpha();\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2;\n const w2 = 1 - w1;\n return Color.rgb(\n w1 * color1.red() + w2 * color2.red(),\n w1 * color1.green() + w2 * color2.green(),\n w1 * color1.blue() + w2 * color2.blue(),\n color1.alpha() * p + color2.alpha() * (1 - p)\n );\n }\n};\nfor (const model of Object.keys(color_convert_default)) {\n if (skippedModels.includes(model)) {\n continue;\n }\n const { channels } = color_convert_default[model];\n Color.prototype[model] = function(...arguments_) {\n if (this.model === model) {\n return new Color(this);\n }\n if (arguments_.length > 0) {\n return new Color(arguments_, model);\n }\n return new Color([...assertArray(color_convert_default[this.model][model].raw(this.color)), this.valpha], model);\n };\n Color[model] = function(...arguments_) {\n let color = arguments_[0];\n if (typeof color === \"number\") {\n color = zeroArray(arguments_, channels);\n }\n return new Color(color, model);\n };\n}\nfunction roundTo(number, places) {\n return Number(number.toFixed(places));\n}\nfunction roundToPlace(places) {\n return function(number) {\n return roundTo(number, places);\n };\n}\nfunction getset(model, channel, modifier) {\n model = Array.isArray(model) ? model : [model];\n for (const m of model) {\n (limiters[m] ||= [])[channel] = modifier;\n }\n model = model[0];\n return function(value) {\n let result;\n if (value !== void 0) {\n if (modifier) {\n value = modifier(value);\n }\n result = this[model]();\n result.color[channel] = value;\n return result;\n }\n result = this[model]().color[channel];\n if (modifier) {\n result = modifier(result);\n }\n return result;\n };\n}\nfunction maxfn(max) {\n return function(v) {\n return Math.max(0, Math.min(max, v));\n };\n}\nfunction assertArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nfunction zeroArray(array, length) {\n for (let i = 0; i < length; i++) {\n if (typeof array[i] !== \"number\") {\n array[i] = 0;\n }\n }\n return array;\n}\nvar index_default = Color;\n", "module.exports = require(\"./color.cjs\").default;\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport color from '@img/colour';\nimport is from './is.mjs';\n\n/**\n * Colourspaces.\n * @private\n */\nconst colourspace = {\n multiband: 'multiband',\n 'b-w': 'b-w',\n bw: 'b-w',\n cmyk: 'cmyk',\n srgb: 'srgb'\n};\n\n/**\n * Tint the image using the provided colour.\n * An alpha channel may be present and will be unchanged by the operation.\n *\n * @example\n * const output = await sharp(input)\n * .tint({ r: 255, g: 240, b: 16 })\n * .toBuffer();\n *\n * @param {string|Object} tint - Parsed by the [color](https://www.npmjs.org/package/color) module.\n * @returns {Sharp}\n * @throws {Error} Invalid parameter\n */\nfunction tint (tint) {\n this._setBackgroundColourOption('tint', tint);\n return this;\n}\n\n/**\n * Convert to 8-bit greyscale; 256 shades of grey.\n * This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use `gamma()` with `greyscale()` for the best results.\n * By default the output image will be web-friendly sRGB and contain three (identical) colour channels.\n * This may be overridden by other sharp operations such as `toColourspace('b-w')`,\n * which will produce an output image containing one colour channel.\n * An alpha channel may be present, and will be unchanged by the operation.\n *\n * @example\n * const output = await sharp(input).greyscale().toBuffer();\n *\n * @param {Boolean} [greyscale=true]\n * @returns {Sharp}\n */\nfunction greyscale (greyscale) {\n this.options.greyscale = is.bool(greyscale) ? greyscale : true;\n return this;\n}\n\n/**\n * Alternative spelling of `greyscale`.\n * @param {Boolean} [grayscale=true]\n * @returns {Sharp}\n */\nfunction grayscale (grayscale) {\n return this.greyscale(grayscale);\n}\n\n/**\n * Set the pipeline colourspace.\n *\n * The input image will be converted to the provided colourspace at the start of the pipeline.\n * All operations will use this colourspace before converting to the output colourspace,\n * as defined by {@link #tocolourspace toColourspace}.\n *\n * @since 0.29.0\n *\n * @example\n * // Run pipeline in 16 bits per channel RGB while converting final result to 8 bits per channel sRGB.\n * await sharp(input)\n * .pipelineColourspace('rgb16')\n * .toColourspace('srgb')\n * .toFile('16bpc-pipeline-to-8bpc-output.png')\n *\n * @param {string} [colourspace] - pipeline colourspace e.g. `rgb16`, `scrgb`, `lab`, `grey16` [...](https://www.libvips.org/API/current/enum.Interpretation.html)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction pipelineColourspace (colourspace) {\n if (!is.string(colourspace)) {\n throw is.invalidParameterError('colourspace', 'string', colourspace);\n }\n this.options.colourspacePipeline = colourspace;\n return this;\n}\n\n/**\n * Alternative spelling of `pipelineColourspace`.\n * @param {string} [colorspace] - pipeline colorspace.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction pipelineColorspace (colorspace) {\n return this.pipelineColourspace(colorspace);\n}\n\n/**\n * Set the output colourspace.\n * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.\n *\n * @example\n * // Output 16 bits per pixel RGB\n * await sharp(input)\n * .toColourspace('rgb16')\n * .toFile('16-bpp.png')\n *\n * @param {string} [colourspace] - output colourspace e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction toColourspace (colourspace) {\n if (!is.string(colourspace)) {\n throw is.invalidParameterError('colourspace', 'string', colourspace);\n }\n this.options.colourspace = colourspace;\n return this;\n}\n\n/**\n * Alternative spelling of `toColourspace`.\n * @param {string} [colorspace] - output colorspace.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction toColorspace (colorspace) {\n return this.toColourspace(colorspace);\n}\n\n/**\n * Create a RGBA colour array from a given value.\n * @private\n * @param {string|Object} value\n * @throws {Error} Invalid value\n */\nfunction _getBackgroundColourOption (value) {\n if (\n is.object(value) ||\n (is.string(value) && value.length >= 3 && value.length <= 200)\n ) {\n const colour = color(value);\n const red = colour.red();\n const green = colour.green();\n const blue = colour.blue();\n const alpha = Math.round(colour.alpha() * 255);\n for (const [channel, component] of [['red', red], ['green', green], ['blue', blue], ['alpha', alpha]]) {\n if (!is.number(component)) {\n throw is.invalidParameterError(`background.${channel}`, 'number', component);\n }\n }\n return [red, green, blue, alpha];\n } else {\n throw is.invalidParameterError('background', 'object or string', value);\n }\n}\n\n/**\n * Update a colour attribute of the this.options Object.\n * @private\n * @param {string} key\n * @param {string|Object} value\n * @throws {Error} Invalid value\n */\nfunction _setBackgroundColourOption (key, value) {\n if (is.defined(value)) {\n this.options[key] = _getBackgroundColourOption(value);\n }\n}\n\n/**\n * Decorate the Sharp prototype with colour-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Object.assign(Sharp.prototype, {\n // Public\n tint,\n greyscale,\n grayscale,\n pipelineColourspace,\n pipelineColorspace,\n toColourspace,\n toColorspace,\n // Private\n _getBackgroundColourOption,\n _setBackgroundColourOption\n });\n // Class attributes\n Sharp.colourspace = colourspace;\n Sharp.colorspace = colourspace;\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * Boolean operations for bandbool.\n * @private\n */\nconst bool = {\n and: 'and',\n or: 'or',\n eor: 'eor'\n};\n\n/**\n * Remove alpha channels, if any. This is a no-op if the image does not have an alpha channel.\n *\n * See also {@link /api-operation/#flatten flatten}.\n *\n * @example\n * sharp('rgba.png')\n * .removeAlpha()\n * .toFile('rgb.png', function(err, info) {\n * // rgb.png is a 3 channel image without an alpha channel\n * });\n *\n * @returns {Sharp}\n */\nfunction removeAlpha () {\n this.options.removeAlpha = true;\n return this;\n}\n\n/**\n * Ensure the output image has an alpha transparency channel.\n * If missing, the added alpha channel will have the specified\n * transparency level, defaulting to fully-opaque (1).\n * This is a no-op if the image already has an alpha channel.\n *\n * @since 0.21.2\n *\n * @example\n * // rgba.png will be a 4 channel image with a fully-opaque alpha channel\n * await sharp('rgb.jpg')\n * .ensureAlpha()\n * .toFile('rgba.png')\n *\n * @example\n * // rgba is a 4 channel image with a fully-transparent alpha channel\n * const rgba = await sharp(rgb)\n * .ensureAlpha(0)\n * .toBuffer();\n *\n * @param {number} [alpha=1] - alpha transparency level (0=fully-transparent, 1=fully-opaque)\n * @returns {Sharp}\n * @throws {Error} Invalid alpha transparency level\n */\nfunction ensureAlpha (alpha) {\n if (is.defined(alpha)) {\n if (is.number(alpha) && is.inRange(alpha, 0, 1)) {\n this.options.ensureAlpha = alpha;\n } else {\n throw is.invalidParameterError('alpha', 'number between 0 and 1', alpha);\n }\n } else {\n this.options.ensureAlpha = 1;\n }\n return this;\n}\n\n/**\n * Extract a single channel from a multi-channel image.\n *\n * The output colourspace will be either `b-w` (8-bit) or `grey16` (16-bit).\n *\n * @example\n * // green.jpg is a greyscale image containing the green channel of the input\n * await sharp(input)\n * .extractChannel('green')\n * .toFile('green.jpg');\n *\n * @example\n * // red1 is the red value of the first pixel, red2 the second pixel etc.\n * const [red1, red2, ...] = await sharp(input)\n * .extractChannel(0)\n * .raw()\n * .toBuffer();\n *\n * @param {number|string} channel - zero-indexed channel/band number to extract, or `red`, `green`, `blue` or `alpha`.\n * @returns {Sharp}\n * @throws {Error} Invalid channel\n */\nfunction extractChannel (channel) {\n const channelMap = { red: 0, green: 1, blue: 2, alpha: 3 };\n if (Object.keys(channelMap).includes(channel)) {\n channel = channelMap[channel];\n }\n if (is.integer(channel) && is.inRange(channel, 0, 4)) {\n this.options.extractChannel = channel;\n } else {\n throw is.invalidParameterError('channel', 'integer or one of: red, green, blue, alpha', channel);\n }\n return this;\n}\n\n/**\n * Join one or more channels to the image.\n * The meaning of the added channels depends on the output colourspace, set with `toColourspace()`.\n * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.\n * Channel ordering follows vips convention:\n * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha.\n * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha.\n *\n * Buffers may be any of the image formats supported by sharp.\n * For raw pixel input, the `options` object should contain a `raw` attribute, which follows the format of the attribute of the same name in the `sharp()` constructor.\n *\n * @param {Array<string|Buffer>|string|Buffer} images - one or more images (file paths, Buffers).\n * @param {Object} options - image options, see `sharp()` constructor.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction joinChannel (images, options) {\n if (Array.isArray(images)) {\n images.forEach(function (image) {\n this.options.joinChannelIn.push(this._createInputDescriptor(image, options));\n }, this);\n } else {\n this.options.joinChannelIn.push(this._createInputDescriptor(images, options));\n }\n return this;\n}\n\n/**\n * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image.\n *\n * @example\n * sharp('3-channel-rgb-input.png')\n * .bandbool(sharp.bool.and)\n * .toFile('1-channel-output.png', function (err, info) {\n * // The output will be a single channel image where each pixel `P = R & G & B`.\n * // If `I(1,1) = [247, 170, 14] = [0b11110111, 0b10101010, 0b00001111]`\n * // then `O(1,1) = 0b11110111 & 0b10101010 & 0b00001111 = 0b00000010 = 2`.\n * });\n *\n * @param {string} boolOp - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction bandbool (boolOp) {\n if (is.string(boolOp) && is.inArray(boolOp, ['and', 'or', 'eor'])) {\n this.options.bandBoolOp = boolOp;\n } else {\n throw is.invalidParameterError('boolOp', 'one of: and, or, eor', boolOp);\n }\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with channel-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Object.assign(Sharp.prototype, {\n // Public instance functions\n removeAlpha,\n ensureAlpha,\n extractChannel,\n joinChannel,\n bandbool\n });\n // Class attributes\n Sharp.bool = bool;\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport path from 'node:path';\nimport is from './is.mjs';\nimport sharp from './sharp.mjs';\n\nconst formats = new Map([\n ['heic', 'heif'],\n ['heif', 'heif'],\n ['avif', 'avif'],\n ['jpeg', 'jpeg'],\n ['jpg', 'jpeg'],\n ['jpe', 'jpeg'],\n ['tile', 'tile'],\n ['dz', 'tile'],\n ['png', 'png'],\n ['raw', 'raw'],\n ['tiff', 'tiff'],\n ['tif', 'tiff'],\n ['webp', 'webp'],\n ['gif', 'gif'],\n ['jp2', 'jp2'],\n ['jpx', 'jp2'],\n ['j2k', 'jp2'],\n ['j2c', 'jp2'],\n ['jxl', 'jxl']\n]);\n\nconst jp2Regex = /\\.(jp[2x]|j2[kc])$/i;\n\nconst errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG');\n\nconst bitdepthFromColourCount = (colours) => 1 << 32 - Math.clz32(Math.ceil(Math.log2(colours)) - 1);\n\n/**\n * Write output image data to a file.\n *\n * If an explicit output format is not selected, it will be inferred from the extension,\n * with JPEG, PNG, WebP, AVIF, TIFF, GIF, DZI, and libvips' V format supported.\n * Note that raw pixel data is only supported for buffer output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #withmetadata withMetadata} for control over this.\n *\n * The caller is responsible for ensuring directory structures and permissions exist.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * @example\n * sharp(input)\n * .toFile('output.png', (err, info) => { ... });\n *\n * @example\n * sharp(input)\n * .toFile('output.png')\n * .then(info => { ... })\n * .catch(err => { ... });\n *\n * @param {string} fileOut - the path to write the image data to.\n * @param {Function} [callback] - called on completion with two arguments `(err, info)`.\n * `info` contains the output image `format`, `size` (bytes), `width`, `height`,\n * `channels` and `premultiplied` (indicating if premultiplication was used).\n * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`.\n * When using the attention crop strategy also contains `attentionX` and `attentionY`, the focal point of the cropped region.\n * Animated output will also contain `pageHeight` and `pages`.\n * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text.\n * @returns {Promise<Object>} - when no callback is provided\n * @throws {Error} Invalid parameters\n */\nfunction toFile (fileOut, callback) {\n let err;\n if (!is.string(fileOut)) {\n err = new Error('Missing output file path');\n } else if (is.string(this.options.input.file) && path.resolve(this.options.input.file) === path.resolve(fileOut)) {\n err = new Error('Cannot use same file for input and output');\n } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2.output.file) {\n err = errJp2Save();\n }\n if (err) {\n if (is.fn(callback)) {\n callback(err);\n } else {\n return Promise.reject(err);\n }\n } else {\n this.options.fileOut = fileOut;\n const stack = Error();\n return this._pipeline(callback, stack);\n }\n return this;\n}\n\n/**\n * Write output to a Buffer.\n * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.\n *\n * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format.\n *\n * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #withmetadata withMetadata} for control over this.\n *\n * `callback`, if present, gets three arguments `(err, data, info)` where:\n * - `err` is an error, if any.\n * - `data` is the output image data.\n * - `info` contains the output image `format`, `size` (bytes), `width`, `height`,\n * `channels` and `premultiplied` (indicating if premultiplication was used).\n * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`.\n * Animated output will also contain `pageHeight` and `pages`.\n * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text.\n *\n * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes.\n * Use {@link #touint8array toUint8Array} for a guaranteed transferable `ArrayBuffer`.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * @example\n * const data = await sharp(input)\n * .png()\n * .toBuffer();\n *\n * @example\n * const { data, info } = await sharp(input)\n * .png()\n * .toBuffer({ resolveWithObject: true });\n *\n * @example\n * const { data, info } = await sharp('my-image.jpg')\n * // output the raw pixels\n * .raw()\n * .toBuffer({ resolveWithObject: true });\n *\n * // create a more type safe way to work with the raw pixel data\n * // this will not copy the data, instead it will change `data`s underlying ArrayBuffer\n * // so `data` and `pixelArray` point to the same memory location\n * const pixelArray = new Uint8ClampedArray(data.buffer);\n *\n * // When you are done changing the pixelArray, sharp takes the `pixelArray` as an input\n * const { width, height, channels } = info;\n * await sharp(pixelArray, { raw: { width, height, channels } })\n * .toFile('my-changed-image.jpg');\n *\n * @param {Object} [options]\n * @param {boolean} [options.resolveWithObject] Resolve the Promise with an Object containing `data` and `info` properties instead of resolving only with `data`.\n * @param {Function} [callback]\n * @returns {Promise<Buffer>} - when no callback is provided\n */\nfunction toBuffer (options, callback) {\n if (is.object(options)) {\n this._setBooleanOption('resolveWithObject', options.resolveWithObject);\n } else if (this.options.resolveWithObject) {\n this.options.resolveWithObject = false;\n }\n this.options.fileOut = '';\n const stack = Error();\n return this._pipeline(is.fn(options) ? options : callback, stack);\n}\n\n/**\n * Write output to a `Uint8Array` backed by a transferable `ArrayBuffer`.\n * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.\n *\n * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format.\n *\n * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #keepexif keepExif} and similar methods for control over this.\n *\n * Resolves with an `Object` containing:\n * - `data` is the output image as a `Uint8Array` backed by a transferable `ArrayBuffer`.\n * - `info` contains properties relating to the output image such as `width` and `height`.\n *\n * @since v0.35.0\n *\n * @example\n * const { data, info } = await sharp(input).toUint8Array();\n *\n * @example\n * const { data } = await sharp(input)\n * .avif()\n * .toUint8Array();\n * const base64String = data.toBase64();\n *\n * @returns {Promise<{ data: Uint8Array, info: Object }>}\n */\nfunction toUint8Array () {\n this.options.resolveWithObject = true;\n this.options.typedArrayOut = true;\n const stack = Error();\n return this._pipeline(null, stack);\n}\n\n/**\n * Set output density (DPI) in EXIF metadata.\n *\n * @since 0.35.0\n *\n * @example\n * const data = await sharp(input)\n * .withDensity(96)\n * .toBuffer();\n *\n * @param {number} density Number of pixels per inch (DPI).\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withDensity (density) {\n if (is.number(density) && density > 0) {\n this.options.withMetadataDensity = density;\n } else {\n throw is.invalidParameterError('density', 'positive number', density);\n }\n return this.keepExif();\n}\n\n/**\n * Keep all EXIF metadata from the input image in the output image.\n *\n * EXIF metadata is unsupported for TIFF output.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithExif = await sharp(inputWithExif)\n * .keepExif()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepExif () {\n this.options.keepMetadata |= 0b00001;\n return this;\n}\n\n/**\n * Set EXIF metadata in the output image, ignoring any EXIF in the input image.\n *\n * @since 0.33.0\n *\n * @example\n * const dataWithExif = await sharp(input)\n * .withExif({\n * IFD0: {\n * Copyright: 'The National Gallery'\n * },\n * IFD3: {\n * GPSLatitudeRef: 'N',\n * GPSLatitude: '51/1 30/1 3230/100',\n * GPSLongitudeRef: 'W',\n * GPSLongitude: '0/1 7/1 4366/100'\n * }\n * })\n * .toBuffer();\n *\n * @param {Object<string, Object<string, string>>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withExif (exif) {\n if (is.object(exif)) {\n for (const [ifd, entries] of Object.entries(exif)) {\n if (is.object(entries)) {\n for (const [k, v] of Object.entries(entries)) {\n if (is.string(v)) {\n this.options.withExif[`exif-${ifd.toLowerCase()}-${k}`] = v;\n } else {\n throw is.invalidParameterError(`${ifd}.${k}`, 'string', v);\n }\n }\n } else {\n throw is.invalidParameterError(ifd, 'object', entries);\n }\n }\n } else {\n throw is.invalidParameterError('exif', 'object', exif);\n }\n this.options.withExifMerge = false;\n return this.keepExif();\n}\n\n/**\n * Update EXIF metadata from the input image in the output image.\n *\n * @since 0.33.0\n *\n * @example\n * const dataWithMergedExif = await sharp(inputWithExif)\n * .withExifMerge({\n * IFD0: {\n * Copyright: 'The National Gallery'\n * }\n * })\n * .toBuffer();\n *\n * @param {Object<string, Object<string, string>>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withExifMerge (exif) {\n this.withExif(exif);\n this.options.withExifMerge = true;\n return this;\n}\n\n/**\n * Keep ICC profile from the input image in the output image.\n *\n * When input and output colour spaces differ, use with {@link /api-colour/#tocolourspace toColourspace} and optionally {@link /api-colour/#pipelinecolourspace pipelineColourspace}.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithIccProfile = await sharp(inputWithIccProfile)\n * .keepIccProfile()\n * .toBuffer();\n *\n * @example\n * const cmykOutputWithIccProfile = await sharp(cmykInputWithIccProfile)\n * .pipelineColourspace('cmyk')\n * .toColourspace('cmyk')\n * .keepIccProfile()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepIccProfile () {\n this.options.keepMetadata |= 0b01000;\n return this;\n}\n\n/**\n * Transform using an ICC profile and attach to the output image.\n *\n * This can either be an absolute filesystem path or\n * built-in profile name (`srgb`, `p3`, `cmyk`).\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithP3 = await sharp(input)\n * .withIccProfile('p3')\n * .toBuffer();\n *\n * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk).\n * @param {Object} [options]\n * @param {number} [options.attach=true] Should the ICC profile be included in the output image metadata?\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withIccProfile (icc, options) {\n if (is.string(icc)) {\n this.options.withIccProfile = icc;\n } else {\n throw is.invalidParameterError('icc', 'string', icc);\n }\n this.keepIccProfile();\n if (is.object(options)) {\n if (is.defined(options.attach)) {\n if (is.bool(options.attach)) {\n if (!options.attach) {\n this.options.keepMetadata &= ~0b01000;\n }\n } else {\n throw is.invalidParameterError('attach', 'boolean', options.attach);\n }\n }\n }\n return this;\n}\n\n/**\n * If the input contains gain map metadata, attempt to process the image and gain map separately,\n * recombining them into a single output image.\n *\n * This approach is faster and should produce better results than {@link #withgainmap withGainMap},\n * however not all operations are supported.\n *\n * Only JPEG input and output are supported.\n * JPEG output options other than `quality` are ignored.\n *\n * This feature is experimental and the API may change.\n *\n * @since 0.35.0\n *\n * @example\n * const outputWithResizedGainMap = await sharp(inputWithGainMap)\n * .keepGainMap()\n * .resize({ width: 64 })\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepGainMap() {\n this.options.keepGainMap = true;\n this.options.withGainMap = false;\n this.options.keepMetadata |= 0b100000;\n return this;\n}\n\n/**\n * If the input contains gain map metadata, use it to convert the main image to HDR (High Dynamic Range) before further processing.\n * The input gain map is discarded.\n *\n * If the output is JPEG, generate and attach a new ISO 21496-1 gain map.\n * JPEG output options other than `quality` are ignored.\n *\n * This feature is experimental and the API may change.\n *\n * @since 0.35.0\n *\n * @example\n * const outputWithRegeneratedGainMap = await sharp(inputWithGainMap)\n * .withGainMap()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction withGainMap() {\n this.options.withGainMap = true;\n this.options.keepGainMap = false;\n this.options.colourspace = 'scrgb';\n return this;\n}\n\n/**\n * Keep XMP metadata from the input image in the output image.\n *\n * @since 0.34.3\n *\n * @example\n * const outputWithXmp = await sharp(inputWithXmp)\n * .keepXmp()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepXmp () {\n this.options.keepMetadata |= 0b00010;\n return this;\n}\n\n/**\n * Set XMP metadata in the output image.\n *\n * Supported by PNG, JPEG, WebP, and TIFF output.\n *\n * @since 0.34.3\n *\n * @example\n * const xmpString = `\n * <?xml version=\"1.0\"?>\n * <x:xmpmeta xmlns:x=\"adobe:ns:meta/\">\n * <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n * <rdf:Description rdf:about=\"\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n * <dc:creator><rdf:Seq><rdf:li>John Doe</rdf:li></rdf:Seq></dc:creator>\n * </rdf:Description>\n * </rdf:RDF>\n * </x:xmpmeta>`;\n *\n * const data = await sharp(input)\n * .withXmp(xmpString)\n * .toBuffer();\n *\n * @param {string} xmp String containing XMP metadata to be embedded in the output image.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withXmp (xmp) {\n if (is.string(xmp) && xmp.length > 0) {\n this.options.withXmp = xmp;\n this.options.keepMetadata |= 0b00010;\n } else {\n throw is.invalidParameterError('xmp', 'non-empty string', xmp);\n }\n return this;\n}\n\n/**\n * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image.\n *\n * The default behaviour, when `keepMetadata` is not used, is to convert to the device-independent\n * sRGB colour space and strip all metadata, including the removal of any ICC profile.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithMetadata = await sharp(inputWithMetadata)\n * .keepMetadata()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepMetadata () {\n this.options.keepMetadata |= 0b11111;\n return this;\n}\n\n/**\n * Keep most metadata (EXIF, XMP, IPTC) from the input image in the output image.\n *\n * This will also convert to and add a web-friendly sRGB ICC profile if appropriate.\n *\n * Allows orientation and density to be set or updated.\n *\n * @example\n * const outputSrgbWithMetadata = await sharp(inputRgbWithMetadata)\n * .withMetadata()\n * .toBuffer();\n *\n * @example\n * // Set output metadata to 96 DPI\n * const data = await sharp(input)\n * .withMetadata({ density: 96 })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.orientation] Used to update the EXIF `Orientation` tag, integer between 1 and 8.\n * @param {number} [options.density] Number of pixels per inch (DPI).\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withMetadata (options) {\n this.keepMetadata();\n this.withIccProfile('srgb');\n if (is.object(options)) {\n if (is.defined(options.orientation)) {\n if (is.integer(options.orientation) && is.inRange(options.orientation, 1, 8)) {\n this.options.withMetadataOrientation = options.orientation;\n } else {\n throw is.invalidParameterError('orientation', 'integer between 1 and 8', options.orientation);\n }\n }\n if (is.defined(options.density)) {\n if (is.number(options.density) && options.density > 0) {\n this.options.withMetadataDensity = options.density;\n } else {\n throw is.invalidParameterError('density', 'positive number', options.density);\n }\n }\n if (is.defined(options.icc)) {\n this.withIccProfile(options.icc);\n }\n if (is.defined(options.exif)) {\n this.withExifMerge(options.exif);\n }\n }\n return this;\n}\n\n/**\n * Force output to a given format.\n *\n * @example\n * // Convert any input to PNG output\n * const data = await sharp(input)\n * .toFormat('png')\n * .toBuffer();\n *\n * @param {(string|Object)} format - as a string or an Object with an 'id' attribute\n * @param {Object} options - output options\n * @returns {Sharp}\n * @throws {Error} unsupported format or options\n */\nfunction toFormat (format, options) {\n const actualFormat = formats.get((is.object(format) && is.string(format.id) ? format.id : format).toLowerCase());\n if (!actualFormat) {\n throw is.invalidParameterError('format', `one of: ${[...formats.keys()].join(', ')}`, format);\n }\n return this[actualFormat](options);\n}\n\n/**\n * Use these JPEG options for output image.\n *\n * @example\n * // Convert any input to very high quality JPEG output\n * const data = await sharp(input)\n * .jpeg({\n * quality: 100,\n * chromaSubsampling: '4:4:4'\n * })\n * .toBuffer();\n *\n * @example\n * // Use mozjpeg to reduce output JPEG file size (slower)\n * const data = await sharp(input)\n * .jpeg({ mozjpeg: true })\n * .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {string} [options.chromaSubsampling='4:2:0'] - set to '4:4:4' to prevent chroma subsampling otherwise defaults to '4:2:0' chroma subsampling\n * @param {boolean} [options.optimiseCoding=true] - optimise Huffman coding tables\n * @param {boolean} [options.optimizeCoding=true] - alternative spelling of optimiseCoding\n * @param {boolean} [options.mozjpeg=false] - use mozjpeg defaults, equivalent to `{ trellisQuantisation: true, overshootDeringing: true, optimiseScans: true, quantisationTable: 3 }`\n * @param {boolean} [options.trellisQuantisation=false] - apply trellis quantisation\n * @param {boolean} [options.overshootDeringing=false] - apply overshoot deringing\n * @param {boolean} [options.optimiseScans=false] - optimise progressive scans, forces progressive\n * @param {boolean} [options.optimizeScans=false] - alternative spelling of optimiseScans\n * @param {number} [options.quantisationTable=0] - quantization table to use, integer 0-8\n * @param {number} [options.quantizationTable=0] - alternative spelling of quantisationTable\n * @param {boolean} [options.force=true] - force JPEG output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jpeg (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.jpegQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.progressive)) {\n this._setBooleanOption('jpegProgressive', options.progressive);\n }\n if (is.defined(options.chromaSubsampling)) {\n if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n this.options.jpegChromaSubsampling = options.chromaSubsampling;\n } else {\n throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n }\n }\n const optimiseCoding = is.bool(options.optimizeCoding) ? options.optimizeCoding : options.optimiseCoding;\n if (is.defined(optimiseCoding)) {\n this._setBooleanOption('jpegOptimiseCoding', optimiseCoding);\n }\n if (is.defined(options.mozjpeg)) {\n if (is.bool(options.mozjpeg)) {\n if (options.mozjpeg) {\n this.options.jpegTrellisQuantisation = true;\n this.options.jpegOvershootDeringing = true;\n this.options.jpegOptimiseScans = true;\n this.options.jpegProgressive = true;\n this.options.jpegQuantisationTable = 3;\n }\n } else {\n throw is.invalidParameterError('mozjpeg', 'boolean', options.mozjpeg);\n }\n }\n const trellisQuantisation = is.bool(options.trellisQuantization) ? options.trellisQuantization : options.trellisQuantisation;\n if (is.defined(trellisQuantisation)) {\n this._setBooleanOption('jpegTrellisQuantisation', trellisQuantisation);\n }\n if (is.defined(options.overshootDeringing)) {\n this._setBooleanOption('jpegOvershootDeringing', options.overshootDeringing);\n }\n const optimiseScans = is.bool(options.optimizeScans) ? options.optimizeScans : options.optimiseScans;\n if (is.defined(optimiseScans)) {\n this._setBooleanOption('jpegOptimiseScans', optimiseScans);\n if (optimiseScans) {\n this.options.jpegProgressive = true;\n }\n }\n const quantisationTable = is.number(options.quantizationTable) ? options.quantizationTable : options.quantisationTable;\n if (is.defined(quantisationTable)) {\n if (is.integer(quantisationTable) && is.inRange(quantisationTable, 0, 8)) {\n this.options.jpegQuantisationTable = quantisationTable;\n } else {\n throw is.invalidParameterError('quantisationTable', 'integer between 0 and 8', quantisationTable);\n }\n }\n }\n return this._updateFormatOut('jpeg', options);\n}\n\n/**\n * Use these PNG options for output image.\n *\n * By default, PNG output is full colour at 8 bits per pixel.\n *\n * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel.\n * Set `palette` to `true` for slower, indexed PNG output.\n *\n * For 16 bits per pixel output, convert to `rgb16` via\n * {@link /api-colour/#tocolourspace toColourspace}.\n *\n * @example\n * // Convert any input to full colour PNG output\n * const data = await sharp(input)\n * .png()\n * .toBuffer();\n *\n * @example\n * // Convert any input to indexed PNG output (slower)\n * const data = await sharp(input)\n * .png({ palette: true })\n * .toBuffer();\n *\n * @example\n * // Output 16 bits per pixel RGB(A)\n * const data = await sharp(input)\n * .toColourspace('rgb16')\n * .png()\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest)\n * @param {boolean} [options.adaptiveFiltering=false] - use adaptive row filtering\n * @param {boolean} [options.palette=false] - quantise to a palette-based image with alpha transparency support\n * @param {number} [options.quality=100] - use the lowest number of colours needed to achieve given quality, sets `palette` to `true`\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest), sets `palette` to `true`\n * @param {number} [options.colours=256] - maximum number of palette entries, sets `palette` to `true`\n * @param {number} [options.colors=256] - alternative spelling of `options.colours`, sets `palette` to `true`\n * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, sets `palette` to `true`\n * @param {boolean} [options.force=true] - force PNG output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction png (options) {\n if (is.object(options)) {\n if (is.defined(options.progressive)) {\n this._setBooleanOption('pngProgressive', options.progressive);\n }\n if (is.defined(options.compressionLevel)) {\n if (is.integer(options.compressionLevel) && is.inRange(options.compressionLevel, 0, 9)) {\n this.options.pngCompressionLevel = options.compressionLevel;\n } else {\n throw is.invalidParameterError('compressionLevel', 'integer between 0 and 9', options.compressionLevel);\n }\n }\n if (is.defined(options.adaptiveFiltering)) {\n this._setBooleanOption('pngAdaptiveFiltering', options.adaptiveFiltering);\n }\n const colours = options.colours || options.colors;\n if (is.defined(colours)) {\n if (is.integer(colours) && is.inRange(colours, 2, 256)) {\n this.options.pngBitdepth = bitdepthFromColourCount(colours);\n } else {\n throw is.invalidParameterError('colours', 'integer between 2 and 256', colours);\n }\n }\n if (is.defined(options.palette)) {\n this._setBooleanOption('pngPalette', options.palette);\n } else if ([options.quality, options.effort, options.colours, options.colors, options.dither].some(is.defined)) {\n this._setBooleanOption('pngPalette', true);\n }\n if (this.options.pngPalette) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 0, 100)) {\n this.options.pngQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 0 and 100', options.quality);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) {\n this.options.pngEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort);\n }\n }\n if (is.defined(options.dither)) {\n if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) {\n this.options.pngDither = options.dither;\n } else {\n throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither);\n }\n }\n }\n }\n return this._updateFormatOut('png', options);\n}\n\n/**\n * Use these WebP options for output image.\n *\n * @example\n * // Convert any input to lossless WebP output\n * const data = await sharp(input)\n * .webp({ lossless: true })\n * .toBuffer();\n *\n * @example\n * // Optimise the file size of an animated WebP\n * const outputWebp = await sharp(inputWebp, { animated: true })\n * .webp({ effort: 6 })\n * .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {number} [options.alphaQuality=100] - quality of alpha layer, integer 0-100\n * @param {boolean} [options.lossless=false] - use lossless compression mode\n * @param {boolean} [options.nearLossless=false] - use near_lossless compression mode\n * @param {boolean} [options.smartSubsample=false] - use high quality chroma subsampling\n * @param {boolean} [options.smartDeblock=false] - auto-adjust the deblocking filter, can improve low contrast edges (slow)\n * @param {string} [options.preset='default'] - named preset for preprocessing/filtering, one of: default, photo, picture, drawing, icon, text\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 6 (slowest)\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @param {boolean} [options.minSize=false] - prevent use of animation key frames to minimise file size (slow)\n * @param {boolean} [options.mixed=false] - allow mixture of lossy and lossless animation frames (slow)\n * @param {boolean} [options.exact=false] - preserve the colour data in transparent pixels\n * @param {boolean} [options.force=true] - force WebP output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction webp (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.webpQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.alphaQuality)) {\n if (is.integer(options.alphaQuality) && is.inRange(options.alphaQuality, 0, 100)) {\n this.options.webpAlphaQuality = options.alphaQuality;\n } else {\n throw is.invalidParameterError('alphaQuality', 'integer between 0 and 100', options.alphaQuality);\n }\n }\n if (is.defined(options.lossless)) {\n this._setBooleanOption('webpLossless', options.lossless);\n }\n if (is.defined(options.nearLossless)) {\n this._setBooleanOption('webpNearLossless', options.nearLossless);\n }\n if (is.defined(options.smartSubsample)) {\n this._setBooleanOption('webpSmartSubsample', options.smartSubsample);\n }\n if (is.defined(options.smartDeblock)) {\n this._setBooleanOption('webpSmartDeblock', options.smartDeblock);\n }\n if (is.defined(options.preset)) {\n if (is.string(options.preset) && is.inArray(options.preset, ['default', 'photo', 'picture', 'drawing', 'icon', 'text'])) {\n this.options.webpPreset = options.preset;\n } else {\n throw is.invalidParameterError('preset', 'one of: default, photo, picture, drawing, icon, text', options.preset);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 0, 6)) {\n this.options.webpEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 0 and 6', options.effort);\n }\n }\n if (is.defined(options.minSize)) {\n this._setBooleanOption('webpMinSize', options.minSize);\n }\n if (is.defined(options.mixed)) {\n this._setBooleanOption('webpMixed', options.mixed);\n }\n if (is.defined(options.exact)) {\n this._setBooleanOption('webpExact', options.exact);\n }\n }\n trySetAnimationOptions(options, this.options);\n return this._updateFormatOut('webp', options);\n}\n\n/**\n * Use these GIF options for the output image.\n *\n * The first entry in the palette is reserved for transparency.\n *\n * The palette of the input image will be re-used if possible.\n *\n * @since 0.30.0\n *\n * @example\n * // Convert PNG to GIF\n * await sharp(pngBuffer)\n * .gif()\n * .toBuffer();\n *\n * @example\n * // Convert animated WebP to animated GIF\n * await sharp('animated.webp', { animated: true })\n * .toFile('animated.gif');\n *\n * @example\n * // Create a 128x128, cropped, non-dithered, animated thumbnail of an animated GIF\n * const out = await sharp('in.gif', { animated: true })\n * .resize({ width: 128, height: 128 })\n * .gif({ dither: 0 })\n * .toBuffer();\n *\n * @example\n * // Lossy file size reduction of animated GIF\n * await sharp('in.gif', { animated: true })\n * .gif({ interFrameMaxError: 8 })\n * .toFile('optim.gif');\n *\n * @param {Object} [options] - output options\n * @param {boolean} [options.reuse=true] - re-use existing palette, otherwise generate new (slow)\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {number} [options.colours=256] - maximum number of palette entries, including transparency, between 2 and 256\n * @param {number} [options.colors=256] - alternative spelling of `options.colours`\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest)\n * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most)\n * @param {number} [options.interFrameMaxError=0] - maximum inter-frame error for transparency, between 0 (lossless) and 32\n * @param {number} [options.interPaletteMaxError=3] - maximum inter-palette error for palette reuse, between 0 and 256\n * @param {boolean} [options.keepDuplicateFrames=false] - keep duplicate frames in the output instead of combining them\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @param {boolean} [options.force=true] - force GIF output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction gif (options) {\n if (is.object(options)) {\n if (is.defined(options.reuse)) {\n this._setBooleanOption('gifReuse', options.reuse);\n }\n if (is.defined(options.progressive)) {\n this._setBooleanOption('gifProgressive', options.progressive);\n }\n const colours = options.colours || options.colors;\n if (is.defined(colours)) {\n if (is.integer(colours) && is.inRange(colours, 2, 256)) {\n this.options.gifBitdepth = bitdepthFromColourCount(colours);\n } else {\n throw is.invalidParameterError('colours', 'integer between 2 and 256', colours);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) {\n this.options.gifEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort);\n }\n }\n if (is.defined(options.dither)) {\n if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) {\n this.options.gifDither = options.dither;\n } else {\n throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither);\n }\n }\n if (is.defined(options.interFrameMaxError)) {\n if (is.number(options.interFrameMaxError) && is.inRange(options.interFrameMaxError, 0, 32)) {\n this.options.gifInterFrameMaxError = options.interFrameMaxError;\n } else {\n throw is.invalidParameterError('interFrameMaxError', 'number between 0.0 and 32.0', options.interFrameMaxError);\n }\n }\n if (is.defined(options.interPaletteMaxError)) {\n if (is.number(options.interPaletteMaxError) && is.inRange(options.interPaletteMaxError, 0, 256)) {\n this.options.gifInterPaletteMaxError = options.interPaletteMaxError;\n } else {\n throw is.invalidParameterError('interPaletteMaxError', 'number between 0.0 and 256.0', options.interPaletteMaxError);\n }\n }\n if (is.defined(options.keepDuplicateFrames)) {\n if (is.bool(options.keepDuplicateFrames)) {\n this._setBooleanOption('gifKeepDuplicateFrames', options.keepDuplicateFrames);\n } else {\n throw is.invalidParameterError('keepDuplicateFrames', 'boolean', options.keepDuplicateFrames);\n }\n }\n }\n trySetAnimationOptions(options, this.options);\n return this._updateFormatOut('gif', options);\n}\n\n/**\n * Use these JP2 options for output image.\n *\n * Requires libvips compiled with support for OpenJPEG.\n * The prebuilt binaries do not include this - see\n * {@link /install#custom-libvips installing a custom libvips}.\n *\n * @example\n * // Convert any input to lossless JP2 output\n * const data = await sharp(input)\n * .jp2({ lossless: true })\n * .toBuffer();\n *\n * @example\n * // Convert any input to very high quality JP2 output\n * const data = await sharp(input)\n * .jp2({\n * quality: 100,\n * chromaSubsampling: '4:4:4'\n * })\n * .toBuffer();\n *\n * @since 0.29.1\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression mode\n * @param {number} [options.tileWidth=512] - horizontal tile size\n * @param {number} [options.tileHeight=512] - vertical tile size\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jp2 (options) {\n /* node:coverage ignore next 41 */\n if (!this.constructor.format.jp2.output.buffer) {\n throw errJp2Save();\n }\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.jp2Quality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.lossless)) {\n if (is.bool(options.lossless)) {\n this.options.jp2Lossless = options.lossless;\n } else {\n throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n }\n }\n if (is.defined(options.tileWidth)) {\n if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) {\n this.options.jp2TileWidth = options.tileWidth;\n } else {\n throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth);\n }\n }\n if (is.defined(options.tileHeight)) {\n if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) {\n this.options.jp2TileHeight = options.tileHeight;\n } else {\n throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight);\n }\n }\n if (is.defined(options.chromaSubsampling)) {\n if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n this.options.jp2ChromaSubsampling = options.chromaSubsampling;\n } else {\n throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n }\n }\n }\n return this._updateFormatOut('jp2', options);\n}\n\n/**\n * Set animation options if available.\n * @private\n *\n * @param {Object} [source] - output options\n * @param {number} [source.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number[]} [source.delay] - list of delays between animation frames (in milliseconds)\n * @param {Object} [target] - target object for valid options\n * @throws {Error} Invalid options\n */\nfunction trySetAnimationOptions (source, target) {\n if (is.object(source) && is.defined(source.loop)) {\n if (is.integer(source.loop) && is.inRange(source.loop, 0, 65535)) {\n target.loop = source.loop;\n } else {\n throw is.invalidParameterError('loop', 'integer between 0 and 65535', source.loop);\n }\n }\n if (is.object(source) && is.defined(source.delay)) {\n // We allow singular values as well\n if (is.integer(source.delay) && is.inRange(source.delay, 0, 65535)) {\n target.delay = [source.delay];\n } else if (\n Array.isArray(source.delay) &&\n is.inRange(source.delay.length, 1, 1000000) &&\n source.delay.every(is.integer) &&\n source.delay.every(v => is.inRange(v, 0, 65535))) {\n target.delay = source.delay;\n } else {\n throw is.invalidParameterError('delay', 'integer or an array of integers between 0 and 65535', source.delay);\n }\n }\n}\n\n/**\n * Use these TIFF options for output image.\n *\n * The `density` can be set in pixels/inch via {@link #withmetadata withMetadata}\n * instead of providing `xres` and `yres` in pixels/mm.\n *\n * @example\n * // Convert SVG input to LZW-compressed, 1 bit per pixel TIFF output\n * sharp('input.svg')\n * .tiff({\n * compression: 'lzw',\n * bitdepth: 1\n * })\n * .toFile('1-bpp-output.tiff')\n * .then(info => { ... });\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.force=true] - force TIFF output, otherwise attempt to use input format\n * @param {string} [options.compression='jpeg'] - compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k\n * @param {boolean} [options.bigtiff=false] - use BigTIFF variant (has no effect when compression is none)\n * @param {string} [options.predictor='horizontal'] - compression predictor options: none, horizontal, float\n * @param {boolean} [options.pyramid=false] - write an image pyramid\n * @param {boolean} [options.tile=false] - write a tiled tiff\n * @param {number} [options.tileWidth=256] - horizontal tile size, valid values are integers in the range 1-32768\n * @param {number} [options.tileHeight=256] - vertical tile size, valid values are integers in the range 1-32768\n * @param {number} [options.xres=1.0] - horizontal resolution in pixels/mm, valid values are numbers in the range 0.001-1000000\n * @param {number} [options.yres=1.0] - vertical resolution in pixels/mm, valid values are numbers in the range 0.001-1000000\n * @param {string} [options.resolutionUnit='inch'] - resolution unit options: inch, cm\n * @param {number} [options.bitdepth=0] - reduce bitdepth to 1, 2 or 4 bit\n * @param {boolean} [options.miniswhite=false] - write 1-bit images as miniswhite\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction tiff (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.tiffQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.bitdepth)) {\n if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4])) {\n this.options.tiffBitdepth = options.bitdepth;\n } else {\n throw is.invalidParameterError('bitdepth', '1, 2 or 4', options.bitdepth);\n }\n }\n // tiling\n if (is.defined(options.tile)) {\n this._setBooleanOption('tiffTile', options.tile);\n }\n if (is.defined(options.tileWidth)) {\n if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) {\n this.options.tiffTileWidth = options.tileWidth;\n } else {\n throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth);\n }\n }\n if (is.defined(options.tileHeight)) {\n if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) {\n this.options.tiffTileHeight = options.tileHeight;\n } else {\n throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight);\n }\n }\n // miniswhite\n if (is.defined(options.miniswhite)) {\n this._setBooleanOption('tiffMiniswhite', options.miniswhite);\n }\n // pyramid\n if (is.defined(options.pyramid)) {\n this._setBooleanOption('tiffPyramid', options.pyramid);\n }\n // resolution\n if (is.defined(options.xres)) {\n if (is.number(options.xres) && is.inRange(options.xres, 0.001, 1000000)) {\n this.options.tiffXres = options.xres;\n } else {\n throw is.invalidParameterError('xres', 'number between 0.001 and 1000000', options.xres);\n }\n }\n if (is.defined(options.yres)) {\n if (is.number(options.yres) && is.inRange(options.yres, 0.001, 1000000)) {\n this.options.tiffYres = options.yres;\n } else {\n throw is.invalidParameterError('yres', 'number between 0.001 and 1000000', options.yres);\n }\n }\n // compression\n if (is.defined(options.compression)) {\n if (is.string(options.compression) && is.inArray(options.compression, ['none', 'jpeg', 'deflate', 'packbits', 'ccittfax4', 'lzw', 'webp', 'zstd', 'jp2k'])) {\n this.options.tiffCompression = options.compression;\n } else {\n throw is.invalidParameterError('compression', 'one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k', options.compression);\n }\n }\n // bigtiff\n if (is.defined(options.bigtiff)) {\n this._setBooleanOption('tiffBigtiff', options.bigtiff);\n }\n // predictor\n if (is.defined(options.predictor)) {\n if (is.string(options.predictor) && is.inArray(options.predictor, ['none', 'horizontal', 'float'])) {\n this.options.tiffPredictor = options.predictor;\n } else {\n throw is.invalidParameterError('predictor', 'one of: none, horizontal, float', options.predictor);\n }\n }\n // resolutionUnit\n if (is.defined(options.resolutionUnit)) {\n if (is.string(options.resolutionUnit) && is.inArray(options.resolutionUnit, ['inch', 'cm'])) {\n this.options.tiffResolutionUnit = options.resolutionUnit;\n } else {\n throw is.invalidParameterError('resolutionUnit', 'one of: inch, cm', options.resolutionUnit);\n }\n }\n }\n return this._updateFormatOut('tiff', options);\n}\n\n/**\n * Use these AVIF options for output image.\n *\n * AVIF image sequences are not supported.\n *\n * @example\n * const data = await sharp(input)\n * .avif({ effort: 2 })\n * .toBuffer();\n *\n * @example\n * const data = await sharp(input)\n * .avif({ lossless: true })\n * .toBuffer();\n *\n * @since 0.27.0\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=50] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit\n * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim'\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction avif (options) {\n return this.heif({ ...options, compression: 'av1' });\n}\n\n/**\n * Use these HEIF options for output image.\n *\n * Support for patent-encumbered HEIC images using `hevc` compression requires the use of a\n * globally-installed libvips compiled with support for libheif, libde265 and x265.\n *\n * @example\n * const data = await sharp(input)\n * .heif({ compression: 'hevc' })\n * .toBuffer();\n *\n * @since 0.23.0\n *\n * @param {Object} options - output options\n * @param {string} options.compression - compression format: av1, hevc\n * @param {number} [options.quality=50] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit\n * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim'\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction heif (options) {\n if (is.object(options)) {\n if (is.string(options.compression) && is.inArray(options.compression, ['av1', 'hevc'])) {\n this.options.heifCompression = options.compression;\n } else {\n throw is.invalidParameterError('compression', 'one of: av1, hevc', options.compression);\n }\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.heifQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.lossless)) {\n if (is.bool(options.lossless)) {\n this.options.heifLossless = options.lossless;\n } else {\n throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 0, 9)) {\n this.options.heifEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 0 and 9', options.effort);\n }\n }\n if (is.defined(options.chromaSubsampling)) {\n if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n this.options.heifChromaSubsampling = options.chromaSubsampling;\n } else {\n throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n }\n }\n if (is.defined(options.bitdepth)) {\n if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) {\n this.options.heifBitdepth = options.bitdepth;\n } else {\n throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth);\n }\n }\n if (is.defined(options.tune)) {\n if (is.string(options.tune) && is.inArray(options.tune, ['auto', 'iq', 'psnr', 'ssim'])) {\n if (this.options.heifLossless && options.tune === 'iq') {\n this.options.heifTune = 'ssim';\n } else {\n this.options.heifTune = options.tune;\n }\n } else {\n throw is.invalidParameterError('tune', 'one of: auto, iq, psnr, ssim', options.tune);\n }\n }\n } else {\n throw is.invalidParameterError('options', 'Object', options);\n }\n return this._updateFormatOut('heif', options);\n}\n\n/**\n * Use these JPEG-XL (JXL) options for output image.\n *\n * This feature is experimental, please do not use in production systems.\n *\n * Requires libvips compiled with support for libjxl.\n * The prebuilt binaries do not include this - see\n * {@link /install/#custom-libvips installing a custom libvips}.\n *\n * @since 0.31.3\n *\n * @param {Object} [options] - output options\n * @param {number} [options.distance=1.0] - maximum encoding error, between 0 (highest quality) and 15 (lowest quality)\n * @param {number} [options.quality] - calculate `distance` based on JPEG-like quality, between 1 and 100, overrides distance if specified\n * @param {number} [options.decodingTier=0] - target decode speed tier, between 0 (highest quality) and 4 (lowest quality)\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 9 (slowest)\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jxl (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n // https://github.com/libjxl/libjxl/blob/0aeea7f180bafd6893c1db8072dcb67d2aa5b03d/tools/cjxl_main.cc#L640-L644\n this.options.jxlDistance = options.quality >= 30\n ? 0.1 + (100 - options.quality) * 0.09\n : 53 / 3000 * options.quality * options.quality - 23 / 20 * options.quality + 25;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n } else if (is.defined(options.distance)) {\n if (is.number(options.distance) && is.inRange(options.distance, 0, 15)) {\n this.options.jxlDistance = options.distance;\n } else {\n throw is.invalidParameterError('distance', 'number between 0.0 and 15.0', options.distance);\n }\n }\n if (is.defined(options.decodingTier)) {\n if (is.integer(options.decodingTier) && is.inRange(options.decodingTier, 0, 4)) {\n this.options.jxlDecodingTier = options.decodingTier;\n } else {\n throw is.invalidParameterError('decodingTier', 'integer between 0 and 4', options.decodingTier);\n }\n }\n if (is.defined(options.lossless)) {\n if (is.bool(options.lossless)) {\n this.options.jxlLossless = options.lossless;\n } else {\n throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 1, 9)) {\n this.options.jxlEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 1 and 9', options.effort);\n }\n }\n }\n trySetAnimationOptions(options, this.options);\n return this._updateFormatOut('jxl', options);\n}\n\n/**\n * Force output to be raw, uncompressed pixel data.\n * Pixel ordering is left-to-right, top-to-bottom, without padding.\n * Channel ordering will be RGB or RGBA for non-greyscale colourspaces.\n *\n * @example\n * // Extract raw, unsigned 8-bit RGB pixel data from JPEG input\n * const { data, info } = await sharp('input.jpg')\n * .raw()\n * .toBuffer({ resolveWithObject: true });\n *\n * @example\n * // Extract alpha channel as raw, unsigned 16-bit pixel data from PNG input\n * const data = await sharp('input.png')\n * .ensureAlpha()\n * .extractChannel(3)\n * .toColourspace('b-w')\n * .raw({ depth: 'ushort' })\n * .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {string} [options.depth='uchar'] - bit depth, one of: char, uchar (default), short, ushort, int, uint, float, complex, double, dpcomplex\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction raw (options) {\n if (is.object(options)) {\n if (is.defined(options.depth)) {\n if (is.string(options.depth) && is.inArray(options.depth,\n ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'float', 'complex', 'double', 'dpcomplex']\n )) {\n this.options.rawDepth = options.depth;\n } else {\n throw is.invalidParameterError('depth', 'one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex', options.depth);\n }\n }\n }\n return this._updateFormatOut('raw');\n}\n\n/**\n * Use tile-based deep zoom (image pyramid) output.\n *\n * Set the format and options for tile images via the `toFormat`, `jpeg`, `png` or `webp` functions.\n * Use a `.zip` or `.szi` file extension with `toFile` to write to a compressed archive file format.\n *\n * The container will be set to `zip` when the output is a Buffer or Stream, otherwise it will default to `fs`.\n *\n * @example\n * sharp('input.tiff')\n * .png()\n * .tile({\n * size: 512\n * })\n * .toFile('output.dz', function(err, info) {\n * // output.dzi is the Deep Zoom XML definition\n * // output_files contains 512x512 tiles grouped by zoom level\n * });\n *\n * @example\n * const zipFileWithTiles = await sharp(input)\n * .tile({ basename: \"tiles\" })\n * .toBuffer();\n *\n * @example\n * const iiififier = sharp().tile({ layout: \"iiif\" });\n * readableStream\n * .pipe(iiififier)\n * .pipe(writeableStream);\n *\n * @param {Object} [options]\n * @param {number} [options.size=256] tile size in pixels, a value between 1 and 8192.\n * @param {number} [options.overlap=0] tile overlap in pixels, a value between 0 and 8192.\n * @param {number} [options.angle=0] tile angle of rotation, must be a multiple of 90.\n * @param {string|Object} [options.background={r: 255, g: 255, b: 255, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to white without transparency.\n * @param {string} [options.depth] how deep to make the pyramid, possible values are `onepixel`, `onetile` or `one`, default based on layout.\n * @param {number} [options.skipBlanks=-1] Threshold to skip tile generation. Range is 0-255 for 8-bit images, 0-65535 for 16-bit images. Default is 5 for `google` layout, -1 (no skip) otherwise.\n * @param {string} [options.container='fs'] tile container, with value `fs` (filesystem) or `zip` (compressed file).\n * @param {string} [options.layout='dz'] filesystem layout, possible values are `dz`, `iiif`, `iiif3`, `zoomify` or `google`.\n * @param {boolean} [options.centre=false] centre image in tile.\n * @param {boolean} [options.center=false] alternative spelling of centre.\n * @param {string} [options.id='https://example.com/iiif'] when `layout` is `iiif`/`iiif3`, sets the `@id`/`id` attribute of `info.json`\n * @param {string} [options.basename] the name of the directory within the zip file when container is `zip`.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction tile (options) {\n if (is.object(options)) {\n // Size of square tiles, in pixels\n if (is.defined(options.size)) {\n if (is.integer(options.size) && is.inRange(options.size, 1, 8192)) {\n this.options.tileSize = options.size;\n } else {\n throw is.invalidParameterError('size', 'integer between 1 and 8192', options.size);\n }\n }\n // Overlap of tiles, in pixels\n if (is.defined(options.overlap)) {\n if (is.integer(options.overlap) && is.inRange(options.overlap, 0, 8192)) {\n if (options.overlap > this.options.tileSize) {\n throw is.invalidParameterError('overlap', `<= size (${this.options.tileSize})`, options.overlap);\n }\n this.options.tileOverlap = options.overlap;\n } else {\n throw is.invalidParameterError('overlap', 'integer between 0 and 8192', options.overlap);\n }\n }\n // Container\n if (is.defined(options.container)) {\n if (is.string(options.container) && is.inArray(options.container, ['fs', 'zip'])) {\n this.options.tileContainer = options.container;\n } else {\n throw is.invalidParameterError('container', 'one of: fs, zip', options.container);\n }\n }\n // Layout\n if (is.defined(options.layout)) {\n if (is.string(options.layout) && is.inArray(options.layout, ['dz', 'google', 'iiif', 'iiif3', 'zoomify'])) {\n this.options.tileLayout = options.layout;\n } else {\n throw is.invalidParameterError('layout', 'one of: dz, google, iiif, iiif3, zoomify', options.layout);\n }\n }\n // Angle of rotation,\n if (is.defined(options.angle)) {\n if (is.integer(options.angle) && !(options.angle % 90)) {\n this.options.tileAngle = options.angle;\n } else {\n throw is.invalidParameterError('angle', 'positive/negative multiple of 90', options.angle);\n }\n }\n // Background colour\n this._setBackgroundColourOption('tileBackground', options.background);\n // Depth of tiles\n if (is.defined(options.depth)) {\n if (is.string(options.depth) && is.inArray(options.depth, ['onepixel', 'onetile', 'one'])) {\n this.options.tileDepth = options.depth;\n } else {\n throw is.invalidParameterError('depth', 'one of: onepixel, onetile, one', options.depth);\n }\n }\n // Threshold to skip blank tiles\n if (is.defined(options.skipBlanks)) {\n if (is.integer(options.skipBlanks) && is.inRange(options.skipBlanks, -1, 65535)) {\n this.options.tileSkipBlanks = options.skipBlanks;\n } else {\n throw is.invalidParameterError('skipBlanks', 'integer between -1 and 255/65535', options.skipBlanks);\n }\n } else if (is.defined(options.layout) && options.layout === 'google') {\n this.options.tileSkipBlanks = 5;\n }\n // Center image in tile\n const centre = is.bool(options.center) ? options.center : options.centre;\n if (is.defined(centre)) {\n this._setBooleanOption('tileCentre', centre);\n }\n // @id attribute for IIIF layout\n if (is.defined(options.id)) {\n if (is.string(options.id)) {\n this.options.tileId = options.id;\n } else {\n throw is.invalidParameterError('id', 'string', options.id);\n }\n }\n // Basename for zip container\n if (is.defined(options.basename)) {\n if (is.string(options.basename)) {\n this.options.tileBasename = options.basename;\n } else {\n throw is.invalidParameterError('basename', 'string', options.basename);\n }\n }\n }\n // Format\n if (is.inArray(this.options.formatOut, ['jpeg', 'png', 'webp'])) {\n this.options.tileFormat = this.options.formatOut;\n } else if (this.options.formatOut !== 'input') {\n throw is.invalidParameterError('format', 'one of: jpeg, png, webp', this.options.formatOut);\n }\n return this._updateFormatOut('dz');\n}\n\n/**\n * Set a timeout for processing, in seconds.\n * Use a value of zero to continue processing indefinitely, the default behaviour.\n *\n * The clock starts when libvips opens an input image for processing.\n * Time spent waiting for a libuv thread to become available is not included.\n *\n * @example\n * // Ensure processing takes no longer than 3 seconds\n * try {\n * const data = await sharp(input)\n * .blur(1000)\n * .timeout({ seconds: 3 })\n * .toBuffer();\n * } catch (err) {\n * if (err.message.includes('timeout')) { ... }\n * }\n *\n * @since 0.29.2\n *\n * @param {Object} options\n * @param {number} options.seconds - Number of seconds after which processing will be stopped\n * @returns {Sharp}\n */\nfunction timeout (options) {\n if (!is.plainObject(options)) {\n throw is.invalidParameterError('options', 'object', options);\n }\n if (is.integer(options.seconds) && is.inRange(options.seconds, 0, 3600)) {\n this.options.timeoutSeconds = options.seconds;\n } else {\n throw is.invalidParameterError('seconds', 'integer between 0 and 3600', options.seconds);\n }\n return this;\n}\n\n/**\n * Update the output format unless options.force is false,\n * in which case revert to input format.\n * @private\n * @param {string} formatOut\n * @param {Object} [options]\n * @param {boolean} [options.force=true] - force output format, otherwise attempt to use input format\n * @returns {Sharp}\n */\nfunction _updateFormatOut (formatOut, options) {\n if (!(is.object(options) && options.force === false)) {\n this.options.formatOut = formatOut;\n }\n return this;\n}\n\n/**\n * Update a boolean attribute of the this.options Object.\n * @private\n * @param {string} key\n * @param {boolean} val\n * @throws {Error} Invalid key\n */\nfunction _setBooleanOption (key, val) {\n if (is.bool(val)) {\n this.options[key] = val;\n } else {\n throw is.invalidParameterError(key, 'boolean', val);\n }\n}\n\n/**\n * Called by a WriteableStream to notify us it is ready for data.\n * @private\n */\nfunction _read () {\n if (!this.options.streamOut) {\n this.options.streamOut = true;\n const stack = Error();\n this._pipeline(undefined, stack);\n }\n}\n\n/**\n * Invoke the C++ image processing pipeline\n * Supports callback, stream and promise variants\n * @private\n */\nfunction _pipeline (callback, stack) {\n if (typeof callback === 'function') {\n // output=file/buffer\n if (this._isStreamInput()) {\n // output=file/buffer, input=stream\n this._whenStreamInFinished(() => {\n this._flattenBufferIn();\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, data, info);\n }\n });\n });\n } else {\n // output=file/buffer, input=file/buffer\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, data, info);\n }\n });\n }\n return this;\n } else if (this.options.streamOut) {\n // output=stream\n if (this._isStreamInput()) {\n // output=stream, input=stream\n this._whenStreamInFinished(() => {\n this._flattenBufferIn();\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n this.emit('error', is.nativeError(err, stack));\n } else {\n this.emit('info', info);\n this.push(data);\n }\n this.push(null);\n this.on('end', () => this.emit('close'));\n });\n });\n } else {\n // output=stream, input=file/buffer\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n this.emit('error', is.nativeError(err, stack));\n } else {\n this.emit('info', info);\n this.push(data);\n }\n this.push(null);\n this.on('end', () => this.emit('close'));\n });\n }\n return this;\n } else {\n // output=promise\n if (this._isStreamInput()) {\n // output=promise, input=stream\n return new Promise((resolve, reject) => {\n this._whenStreamInFinished(() => {\n this._flattenBufferIn();\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n if (this.options.resolveWithObject) {\n resolve({ data, info });\n } else {\n resolve(data);\n }\n }\n });\n });\n });\n } else {\n // output=promise, input=file/buffer\n return new Promise((resolve, reject) => {\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n if (this.options.resolveWithObject) {\n resolve({ data, info });\n } else {\n resolve(data);\n }\n }\n });\n });\n }\n }\n}\n\n/**\n * Decorate the Sharp prototype with output-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Object.assign(Sharp.prototype, {\n // Public\n toFile,\n toBuffer,\n toUint8Array,\n withDensity,\n keepExif,\n withExif,\n withExifMerge,\n keepIccProfile,\n withIccProfile,\n keepGainMap,\n withGainMap,\n keepXmp,\n withXmp,\n keepMetadata,\n withMetadata,\n toFormat,\n jpeg,\n jp2,\n png,\n webp,\n tiff,\n avif,\n heif,\n jxl,\n gif,\n raw,\n tile,\n timeout,\n // Private\n _updateFormatOut,\n _setBooleanOption,\n _read,\n _pipeline\n });\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport events from 'node:events';\nimport { createRequire } from \"node:module\";\nimport { availableParallelism } from \"node:os\";\nimport detectLibc from 'detect-libc';\n\nimport is from './is.mjs';\nimport libvips from './libvips.mjs';\nimport sharp from './sharp.mjs';\nimport pkg from \"../package.json\" with { type: \"json\" };\n\nconst require = createRequire(import.meta.url);\nconst runtimePlatform = libvips.runtimePlatformArch();\nconst libvipsVersion = sharp.libvipsVersion();\n\n/**\n * An Object containing nested boolean values representing the available input and output formats/methods.\n * @member\n * @example\n * console.log(sharp.format);\n * @returns {Object}\n */\nconst format = sharp.format();\nformat.heif.output.alias = ['avif', 'heic'];\nformat.jpeg.output.alias = ['jpe', 'jpg'];\nformat.tiff.output.alias = ['tif'];\nformat.jp2.output.alias = ['j2c', 'j2k', 'jp2', 'jpx'];\n\n/**\n * An Object containing the available interpolators and their proper values\n * @readonly\n * @enum {string}\n */\nconst interpolators = {\n /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */\n nearest: 'nearest',\n /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */\n bilinear: 'bilinear',\n /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */\n bicubic: 'bicubic',\n /** [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). Prevents some \"[acutance](http://en.wikipedia.org/wiki/Acutance)\" but typically reduces performance by a factor of 2. */\n locallyBoundedBicubic: 'lbb',\n /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */\n nohalo: 'nohalo',\n /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents \"staircasing\" when enlarging. */\n vertexSplitQuadraticBasisSpline: 'vsqbs'\n};\n\n/**\n * An Object containing the version numbers of sharp, libvips\n * and (when using prebuilt binaries) its dependencies.\n *\n * @member\n * @example\n * console.log(sharp.versions);\n */\nlet versions = {\n vips: libvipsVersion.semver\n};\n/* node:coverage ignore next 15 */\nif (!libvipsVersion.isGlobal) {\n if (!libvipsVersion.isWasm) {\n try {\n versions = require(`@img/sharp-${runtimePlatform}/versions`);\n } catch (_) {\n try {\n versions = require(`@img/sharp-libvips-${runtimePlatform}/versions`);\n } catch (_) {}\n }\n } else {\n try {\n versions = require('@img/sharp-wasm32/versions');\n } catch (_) {}\n }\n}\nversions.sharp = pkg.version;\n\n/* node:coverage ignore next 5 */\nif (versions.heif && format.heif) {\n // Prebuilt binaries provide AV1\n format.heif.input.fileSuffix = ['.avif'];\n format.heif.output.alias = ['avif'];\n}\n\n/**\n * Gets or, when options are provided, sets the limits of _libvips'_ operation cache.\n * Existing entries in the cache will be trimmed after any change in limits.\n * This method always returns cache statistics,\n * useful for determining how much working memory is required for a particular task.\n *\n * @example\n * const stats = sharp.cache();\n * @example\n * sharp.cache( { items: 200 } );\n * sharp.cache( { files: 0 } );\n * sharp.cache(false);\n *\n * @param {Object|boolean} [options=true] - Object with the following attributes, or boolean where true uses default cache settings and false removes all caching\n * @param {number} [options.memory=50] - is the maximum memory in MB to use for this cache\n * @param {number} [options.files=20] - is the maximum number of files to hold open\n * @param {number} [options.items=100] - is the maximum number of operations to cache\n * @returns {Object}\n */\nfunction cache (options) {\n if (is.bool(options)) {\n if (options) {\n // Default cache settings of 50MB, 20 files, 100 items\n return sharp.cache(50, 20, 100);\n } else {\n return sharp.cache(0, 0, 0);\n }\n } else if (is.object(options)) {\n for (const property of ['memory', 'files', 'items']) {\n const value = options[property];\n if (is.defined(value) && !(is.integer(value) && value >= 0)) {\n throw is.invalidParameterError(property, 'a positive integer', value);\n }\n }\n return sharp.cache(options.memory, options.files, options.items);\n } else {\n return sharp.cache();\n }\n}\ncache(true);\n\n/**\n * Gets or, when a concurrency is provided, sets\n * the maximum number of threads _libvips_ should use to process _each image_.\n * These are from a thread pool managed by glib,\n * which helps avoid the overhead of creating new threads.\n *\n * This method always returns the current concurrency.\n *\n * The default value is the number of CPU cores,\n * except when using glibc-based Linux without jemalloc,\n * where the default is `1` to help reduce memory fragmentation.\n *\n * A value of `0` will reset this to the number of CPU cores.\n *\n * Some image format libraries spawn additional threads,\n * e.g. libaom manages its own 4 threads when encoding AVIF images,\n * and these are independent of the value set here.\n *\n * :::note\n * Further {@link /performance/ control over performance} is available.\n * :::\n *\n * @example\n * const threads = sharp.concurrency(); // 4\n * sharp.concurrency(2); // 2\n * sharp.concurrency(0); // 4\n *\n * @param {number} [concurrency]\n * @returns {number} concurrency\n */\nfunction concurrency (concurrency) {\n return sharp.concurrency(is.integer(concurrency) ? concurrency : null);\n}\n/* node:coverage ignore next 7 */\nif (!process.env.MALLOC_ARENA_MAX && detectLibc.familySync() === detectLibc.GLIBC && !sharp._isUsingJemalloc()) {\n // Reduce default concurrency to 1 when using glibc memory allocator\n sharp.concurrency(1);\n} else if (detectLibc.familySync() === detectLibc.MUSL && sharp.concurrency() === 1024) {\n // Reduce default concurrency when musl thread over-subscription detected\n sharp.concurrency(availableParallelism());\n}\n\n/**\n * An EventEmitter that emits a `change` event when a task is either:\n * - queued, waiting for _libuv_ to provide a worker thread\n * - complete\n * @member\n * @example\n * sharp.queue.on('change', function(queueLength) {\n * console.log('Queue contains ' + queueLength + ' task(s)');\n * });\n */\nconst queue = new events.EventEmitter();\n\n/**\n * Provides access to internal task counters.\n * - queue is the number of tasks this module has queued waiting for _libuv_ to provide a worker thread from its pool.\n * - process is the number of resize tasks currently being processed.\n *\n * @example\n * const counters = sharp.counters(); // { queue: 2, process: 4 }\n *\n * @returns {Object}\n */\nfunction counters () {\n return sharp.counters();\n}\n\n/**\n * Get and set use of SIMD vector unit instructions.\n * Requires libvips to have been compiled with highway support.\n *\n * Improves the performance of `resize`, `blur` and `sharpen` operations\n * by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON.\n *\n * @example\n * const simd = sharp.simd();\n * // simd is `true` if the runtime use of highway is currently enabled\n * @example\n * const simd = sharp.simd(false);\n * // prevent libvips from using highway at runtime\n *\n * @param {boolean} [simd=true]\n * @returns {boolean}\n */\nfunction simd (simd) {\n return sharp.simd(is.bool(simd) ? simd : null);\n}\n\n/**\n * Block libvips operations at runtime.\n *\n * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable,\n * which when set will block all \"untrusted\" operations.\n *\n * @since 0.32.4\n *\n * @example <caption>Block all TIFF input.</caption>\n * sharp.block({\n * operation: ['VipsForeignLoadTiff']\n * });\n *\n * @param {Object} options\n * @param {Array<string>} options.operation - List of libvips low-level operation names to block.\n */\nfunction block (options) {\n if (is.object(options)) {\n if (Array.isArray(options.operation) && options.operation.every(is.string)) {\n sharp.block(options.operation, true);\n } else {\n throw is.invalidParameterError('operation', 'Array<string>', options.operation);\n }\n } else {\n throw is.invalidParameterError('options', 'object', options);\n }\n}\n\n/**\n * Unblock libvips operations at runtime.\n *\n * This is useful for defining a list of allowed operations.\n *\n * @since 0.32.4\n *\n * @example <caption>Block all input except WebP from the filesystem.</caption>\n * sharp.block({\n * operation: ['VipsForeignLoad']\n * });\n * sharp.unblock({\n * operation: ['VipsForeignLoadWebpFile']\n * });\n *\n * @example <caption>Block all input except JPEG and PNG from a Buffer or Stream.</caption>\n * sharp.block({\n * operation: ['VipsForeignLoad']\n * });\n * sharp.unblock({\n * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer']\n * });\n *\n * @param {Object} options\n * @param {Array<string>} options.operation - List of libvips low-level operation names to unblock.\n */\nfunction unblock (options) {\n if (is.object(options)) {\n if (Array.isArray(options.operation) && options.operation.every(is.string)) {\n sharp.block(options.operation, false);\n } else {\n throw is.invalidParameterError('operation', 'Array<string>', options.operation);\n }\n } else {\n throw is.invalidParameterError('options', 'object', options);\n }\n}\n\n/**\n * Decorate the Sharp class with utility-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n Sharp.cache = cache;\n Sharp.concurrency = concurrency;\n Sharp.counters = counters;\n Sharp.simd = simd;\n Sharp.format = format;\n Sharp.interpolators = interpolators;\n Sharp.versions = versions;\n Sharp.queue = queue;\n Sharp.block = block;\n Sharp.unblock = unblock;\n};\n", "/*!\n Copyright 2013 Lovell Fuller and others.\n SPDX-License-Identifier: Apache-2.0\n*/\n\nimport Sharp from './constructor.mjs';\nimport input from './input.mjs';\nimport resize from './resize.mjs';\nimport composite from './composite.mjs';\nimport operation from './operation.mjs';\nimport colour from './colour.mjs';\nimport channel from './channel.mjs';\nimport output from './output.mjs';\nimport utility from './utility.mjs';\n\ninput(Sharp);\nresize(Sharp);\ncomposite(Sharp);\noperation(Sharp);\ncolour(Sharp);\nchannel(Sharp);\noutput(Sharp);\nutility(Sharp);\n\nexport default Sharp;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SIZE_PREFIX_LENGTH = exports.FILE_IDENTIFIER_LENGTH = exports.SIZEOF_INT = exports.SIZEOF_SHORT = void 0;\nexports.SIZEOF_SHORT = 2;\nexports.SIZEOF_INT = 4;\nexports.FILE_IDENTIFIER_LENGTH = 4;\nexports.SIZE_PREFIX_LENGTH = 4;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isLittleEndian = exports.float64 = exports.float32 = exports.int32 = void 0;\nexports.int32 = new Int32Array(2);\nexports.float32 = new Float32Array(exports.int32.buffer);\nexports.float64 = new Float64Array(exports.int32.buffer);\nexports.isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Encoding = void 0;\nvar Encoding;\n(function (Encoding) {\n Encoding[Encoding[\"UTF8_BYTES\"] = 1] = \"UTF8_BYTES\";\n Encoding[Encoding[\"UTF16_STRING\"] = 2] = \"UTF16_STRING\";\n})(Encoding || (exports.Encoding = Encoding = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ByteBuffer = void 0;\nconst constants_js_1 = require(\"./constants.js\");\nconst encoding_js_1 = require(\"./encoding.js\");\nconst utils_js_1 = require(\"./utils.js\");\nclass 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 utils_js_1.int32[0] = this.readInt32(offset);\n return utils_js_1.float32[0];\n }\n readFloat64(offset) {\n utils_js_1.int32[utils_js_1.isLittleEndian ? 0 : 1] = this.readInt32(offset);\n utils_js_1.int32[utils_js_1.isLittleEndian ? 1 : 0] = this.readInt32(offset + 4);\n return utils_js_1.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 utils_js_1.float32[0] = value;\n this.writeInt32(offset, utils_js_1.int32[0]);\n }\n writeFloat64(offset, value) {\n utils_js_1.float64[0] = value;\n this.writeInt32(offset, utils_js_1.int32[utils_js_1.isLittleEndian ? 0 : 1]);\n this.writeInt32(offset + 4, utils_js_1.int32[utils_js_1.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_ + constants_js_1.SIZEOF_INT + constants_js_1.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 < constants_js_1.FILE_IDENTIFIER_LENGTH; i++) {\n result += String.fromCharCode(this.readInt8(this.position_ + constants_js_1.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 += constants_js_1.SIZEOF_INT;\n const utf8bytes = this.bytes_.subarray(offset, offset + length);\n if (opt_encoding === encoding_js_1.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) + constants_js_1.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 != constants_js_1.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' + constants_js_1.FILE_IDENTIFIER_LENGTH);\n }\n for (let i = 0; i < constants_js_1.FILE_IDENTIFIER_LENGTH; i++) {\n if (ident.charCodeAt(i) != this.readInt8(this.position() + constants_js_1.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}\nexports.ByteBuffer = ByteBuffer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Builder = void 0;\nconst byte_buffer_js_1 = require(\"./byte-buffer.js\");\nconst constants_js_1 = require(\"./constants.js\");\nclass 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 = byte_buffer_js_1.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 = byte_buffer_js_1.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(constants_js_1.SIZEOF_INT, 0); // Ensure alignment is already done.\n this.writeInt32(this.offset() - offset + constants_js_1.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) * constants_js_1.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 = constants_js_1.SIZEOF_SHORT; j < len; j += constants_js_1.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 ? constants_js_1.SIZE_PREFIX_LENGTH : 0;\n if (opt_file_identifier) {\n const file_identifier = opt_file_identifier;\n this.prep(this.minalign, constants_js_1.SIZEOF_INT + constants_js_1.FILE_IDENTIFIER_LENGTH + size_prefix);\n if (file_identifier.length != constants_js_1.FILE_IDENTIFIER_LENGTH) {\n throw new TypeError('FlatBuffers: file identifier must be length ' +\n constants_js_1.FILE_IDENTIFIER_LENGTH);\n }\n for (let i = constants_js_1.FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) {\n this.writeInt8(file_identifier.charCodeAt(i));\n }\n }\n this.prep(this.minalign, constants_js_1.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(constants_js_1.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}\nexports.Builder = Builder;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Encoding = exports.ByteBuffer = exports.Builder = exports.isLittleEndian = exports.int32 = exports.float64 = exports.float32 = exports.SIZE_PREFIX_LENGTH = exports.SIZEOF_SHORT = exports.SIZEOF_INT = exports.FILE_IDENTIFIER_LENGTH = void 0;\nvar constants_js_1 = require(\"./constants.js\");\nObject.defineProperty(exports, \"FILE_IDENTIFIER_LENGTH\", { enumerable: true, get: function () { return constants_js_1.FILE_IDENTIFIER_LENGTH; } });\nObject.defineProperty(exports, \"SIZEOF_INT\", { enumerable: true, get: function () { return constants_js_1.SIZEOF_INT; } });\nObject.defineProperty(exports, \"SIZEOF_SHORT\", { enumerable: true, get: function () { return constants_js_1.SIZEOF_SHORT; } });\nObject.defineProperty(exports, \"SIZE_PREFIX_LENGTH\", { enumerable: true, get: function () { return constants_js_1.SIZE_PREFIX_LENGTH; } });\nvar utils_js_1 = require(\"./utils.js\");\nObject.defineProperty(exports, \"float32\", { enumerable: true, get: function () { return utils_js_1.float32; } });\nObject.defineProperty(exports, \"float64\", { enumerable: true, get: function () { return utils_js_1.float64; } });\nObject.defineProperty(exports, \"int32\", { enumerable: true, get: function () { return utils_js_1.int32; } });\nObject.defineProperty(exports, \"isLittleEndian\", { enumerable: true, get: function () { return utils_js_1.isLittleEndian; } });\nvar builder_js_1 = require(\"./builder.js\");\nObject.defineProperty(exports, \"Builder\", { enumerable: true, get: function () { return builder_js_1.Builder; } });\nvar byte_buffer_js_1 = require(\"./byte-buffer.js\");\nObject.defineProperty(exports, \"ByteBuffer\", { enumerable: true, get: function () { return byte_buffer_js_1.ByteBuffer; } });\nvar encoding_js_1 = require(\"./encoding.js\");\nObject.defineProperty(exports, \"Encoding\", { enumerable: true, get: function () { return encoding_js_1.Encoding; } });\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-restricted-globals */\nexport const isBrowser: boolean =\n // @ts-ignore process.browser\n typeof process !== 'object' || String(process) !== '[object process]' || process.browser;\n", "// SPDX-License-Identifier: Unlicense\n\n/* eslint-disable */\n// Copied from https://github.com/inexorabletash/text-encoding/blob/b4e5bc26e26e51f56e3daa9f13138c79f49d3c34/lib/encoding-indexes.js\n// License: Public domain https://github.com/inexorabletash/text-encoding/blob/b4e5bc26e26e51f56e3daa9f13138c79f49d3c34/LICENSE.md\n\n// biome-ignore format: preserve intentional fixture layout\nexport default {\n \"ibm866\":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,9617,9618,9619,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9561,9560,9554,9555,9579,9578,9496,9484,9608,9604,9612,9616,9600,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1025,1105,1028,1108,1031,1111,1038,1118,176,8729,183,8730,8470,164,9632,160],\n \"iso-8859-2\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,728,321,164,317,346,167,168,352,350,356,377,173,381,379,176,261,731,322,180,318,347,711,184,353,351,357,378,733,382,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],\n \"iso-8859-3\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,294,728,163,164,null,292,167,168,304,350,286,308,173,null,379,176,295,178,179,180,181,293,183,184,305,351,287,309,189,null,380,192,193,194,null,196,266,264,199,200,201,202,203,204,205,206,207,null,209,210,211,212,288,214,215,284,217,218,219,220,364,348,223,224,225,226,null,228,267,265,231,232,233,234,235,236,237,238,239,null,241,242,243,244,289,246,247,285,249,250,251,252,365,349,729],\n \"iso-8859-4\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,312,342,164,296,315,167,168,352,274,290,358,173,381,175,176,261,731,343,180,297,316,711,184,353,275,291,359,330,382,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,298,272,325,332,310,212,213,214,215,216,370,218,219,220,360,362,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,299,273,326,333,311,244,245,246,247,248,371,250,251,252,361,363,729],\n \"iso-8859-5\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,173,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8470,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,167,1118,1119],\n \"iso-8859-6\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,null,null,164,null,null,null,null,null,null,null,1548,173,null,null,null,null,null,null,null,null,null,null,null,null,null,1563,null,null,null,1567,null,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,null,null,null,null,null,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,null,null,null,null,null,null,null,null,null,null,null,null,null],\n \"iso-8859-7\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8216,8217,163,8364,8367,166,167,168,169,890,171,172,173,null,8213,176,177,178,179,900,901,902,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],\n \"iso-8859-8\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,162,163,164,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,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,8215,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],\n \"iso-8859-10\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,274,290,298,296,310,167,315,272,352,358,381,173,362,330,176,261,275,291,299,297,311,183,316,273,353,359,382,8213,363,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,207,208,325,332,211,212,213,214,360,216,370,218,219,220,221,222,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,239,240,326,333,243,244,245,246,361,248,371,250,251,252,253,254,312],\n \"iso-8859-13\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8221,162,163,164,8222,166,167,216,169,342,171,172,173,174,198,176,177,178,179,8220,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,8217],\n \"iso-8859-14\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,7682,7683,163,266,267,7690,167,7808,169,7810,7691,7922,173,174,376,7710,7711,288,289,7744,7745,182,7766,7809,7767,7811,7776,7923,7812,7813,7777,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,372,209,210,211,212,213,214,7786,216,217,218,219,220,221,374,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,373,241,242,243,244,245,246,7787,248,249,250,251,252,253,375,255],\n \"iso-8859-15\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,8364,165,352,167,353,169,170,171,172,173,174,175,176,177,178,179,381,181,182,183,382,185,186,187,338,339,376,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],\n \"iso-8859-16\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,261,321,8364,8222,352,167,353,169,536,171,377,173,378,379,176,177,268,322,381,8221,182,183,382,269,537,187,338,339,376,380,192,193,194,258,196,262,198,199,200,201,202,203,204,205,206,207,272,323,210,211,212,336,214,346,368,217,218,219,220,280,538,223,224,225,226,259,228,263,230,231,232,233,234,235,236,237,238,239,273,324,242,243,244,337,246,347,369,249,250,251,252,281,539,255],\n \"koi8-r\":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,1025,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],\n \"koi8-u\":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,1108,9556,1110,1111,9559,9560,9561,9562,9563,1169,1118,9566,9567,9568,9569,1025,1028,9571,1030,1031,9574,9575,9576,9577,9578,1168,1038,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],\n \"macintosh\":[196,197,199,201,209,214,220,225,224,226,228,227,229,231,233,232,234,235,237,236,238,239,241,243,242,244,246,245,250,249,251,252,8224,176,162,163,167,8226,182,223,174,169,8482,180,168,8800,198,216,8734,177,8804,8805,165,181,8706,8721,8719,960,8747,170,186,937,230,248,191,161,172,8730,402,8776,8710,171,187,8230,160,192,195,213,338,339,8211,8212,8220,8221,8216,8217,247,9674,255,376,8260,8364,8249,8250,64257,64258,8225,183,8218,8222,8240,194,202,193,203,200,205,206,207,204,211,212,63743,210,218,219,217,305,710,732,175,728,729,730,184,733,731,711],\n \"windows-874\":[8364,129,130,131,132,8230,134,135,136,137,138,139,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,153,154,155,156,157,158,159,160,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,null,null,null,null,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,null,null,null,null],\n \"windows-1250\":[8364,129,8218,131,8222,8230,8224,8225,136,8240,352,8249,346,356,381,377,144,8216,8217,8220,8221,8226,8211,8212,152,8482,353,8250,347,357,382,378,160,711,728,321,164,260,166,167,168,169,350,171,172,173,174,379,176,177,731,322,180,181,182,183,184,261,351,187,317,733,318,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],\n \"windows-1251\":[1026,1027,8218,1107,8222,8230,8224,8225,8364,8240,1033,8249,1034,1036,1035,1039,1106,8216,8217,8220,8221,8226,8211,8212,152,8482,1113,8250,1114,1116,1115,1119,160,1038,1118,1032,164,1168,166,167,1025,169,1028,171,172,173,174,1031,176,177,1030,1110,1169,181,182,183,1105,8470,1108,187,1112,1029,1109,1111,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103],\n \"windows-1252\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],\n \"windows-1253\":[8364,129,8218,402,8222,8230,8224,8225,136,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,157,158,159,160,901,902,163,164,165,166,167,168,169,null,171,172,173,174,8213,176,177,178,179,900,181,182,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],\n \"windows-1254\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,286,209,210,211,212,213,214,215,216,217,218,219,220,304,350,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,287,241,242,243,244,245,246,247,248,249,250,251,252,305,351,255],\n \"windows-1255\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],\n \"windows-1256\":[8364,1662,8218,402,8222,8230,8224,8225,710,8240,1657,8249,338,1670,1688,1672,1711,8216,8217,8220,8221,8226,8211,8212,1705,8482,1681,8250,339,8204,8205,1722,160,1548,162,163,164,165,166,167,168,169,1726,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,1563,187,188,189,190,1567,1729,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,215,1591,1592,1593,1594,1600,1601,1602,1603,224,1604,226,1605,1606,1607,1608,231,232,233,234,235,1609,1610,238,239,1611,1612,1613,1614,244,1615,1616,247,1617,249,1618,251,252,8206,8207,1746],\n \"windows-1257\":[8364,129,8218,131,8222,8230,8224,8225,136,8240,138,8249,140,168,711,184,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,175,731,159,160,null,162,163,164,null,166,167,216,169,342,171,172,173,174,198,176,177,178,179,180,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,729],\n \"windows-1258\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,258,196,197,198,199,200,201,202,203,768,205,206,207,272,209,777,211,212,416,214,215,216,217,218,219,220,431,771,223,224,225,226,259,228,229,230,231,232,233,234,235,769,237,238,239,273,241,803,243,244,417,246,247,248,249,250,251,252,432,8363,255],\n \"x-mac-cyrillic\":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,8224,176,1168,163,167,8226,182,1030,174,169,8482,1026,1106,8800,1027,1107,8734,177,8804,8805,1110,181,1169,1032,1028,1108,1031,1111,1033,1113,1034,1114,1112,1029,172,8730,402,8776,8710,171,187,8230,160,1035,1115,1036,1116,1109,8211,8212,8220,8221,8216,8217,247,8222,1038,1118,1039,1119,8470,1025,1105,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,8364]\n};\n", "// SPDX-License-Identifier: Unlicense\n\n// @ts-nocheck\n/* eslint-disable */\n\n// Copied from https://github.com/inexorabletash/text-encoding/blob/b4e5bc26e26e51f56e3daa9f13138c79f49d3c34/lib/encoding.js\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\nimport indexes from './encoding-indexes';\n// Note: Aaian character indices add half a megabyte to bundle. Ignore, since we really only want the built-in UTF8...\n// import indexes from './encoding-indexes-asian.js';\nglobalThis['encoding-indexes'] = indexes || {};\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {!Array.<*>} array The array to check.\n * @param {*} item The item to look for in the array.\n * @return {boolean} True if the item appears in the array.\n */\nfunction includes(array, item) {\n return array.indexOf(item) !== -1;\n}\n\nvar floor = Math.floor;\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.<number>} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xd800 || c > 0xdfff) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 \u2264 c \u2264 0xDFFF\n else if (0xdc00 <= c && c <= 0xdfff) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xfffd);\n }\n\n // 0xD800 \u2264 c \u2264 0xDBFF\n else if (0xd800 <= c && c <= 0xdbff) {\n // 1. If i = n\u22121, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xfffd);\n }\n // 2. Otherwise, i < n\u22121:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = s.charCodeAt(i + 1);\n\n // 2. If 0xDC00 \u2264 d \u2264 0xDFFF, then:\n if (0xdc00 <= d && d <= 0xdfff) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3ff;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3ff;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xfffd);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.<number>} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xffff) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xd800, (cp & 0x3ff) + 0xdc00);\n }\n }\n return s;\n}\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 4. Terminology\n//\n\n/**\n * An ASCII byte is a byte in the range 0x00 to 0x7F, inclusive.\n * @param {number} a The number to test.\n * @return {boolean} True if a is in the range 0x00 to 0x7F, inclusive.\n */\nfunction isASCIIByte(a) {\n return 0x00 <= a && a <= 0x7f;\n}\n\n/**\n * An ASCII code point is a code point in the range U+0000 to\n * U+007F, inclusive.\n */\nvar isASCIICodePoint = isASCIIByte;\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide\n * the stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.<number>} */\n this.tokens = [].slice.call(tokens);\n // Reversed as push/pop is more efficient than shift/unshift.\n this.tokens.reverse();\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function () {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function () {\n if (!this.tokens.length) return end_of_stream;\n return this.tokens.pop();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The token(s) to prepend to the\n * stream.\n */\n prepend: function (token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/ token;\n while (tokens.length) this.tokens.push(tokens.pop());\n } else {\n this.tokens.push(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The tokens(s) to push to the\n * stream.\n */\n push: function (token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/ token;\n while (tokens.length) this.tokens.unshift(tokens.shift());\n } else {\n this.tokens.unshift(token);\n }\n }\n};\n\n//\n// 5. Encodings\n//\n\n// 5.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal) throw TypeError('Decoder error');\n return opt_code_point || 0xfffd;\n}\n\n/**\n * @param {number} code_point The code point that could not be encoded.\n * @return {number} Always throws, no value is actually returned.\n */\nfunction encoderError(code_point) {\n throw TypeError('The code point ' + code_point + ' could not be encoded.');\n}\n\n/** @interface */\nfunction Decoder() {}\nDecoder.prototype = {\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point, or |finished|.\n */\n handler: function (stream, bite) {}\n};\n\n/** @interface */\nfunction Encoder() {}\nEncoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit, or |finished|.\n */\n handler: function (stream, code_point) {}\n};\n\n// 5.2 Names and labels\n\n// TODO: Define @typedef for Encoding: {name:string,labels:Array.<string>}\n// https://github.com/google/closure-compiler/issues/247\n\n/**\n * @param {string} label The encoding label.\n * @return {?{name:string,labels:Array.<string>}}\n */\nfunction getEncoding(label) {\n // 1. Remove any leading and trailing ASCII whitespace from label.\n label = String(label).trim().toLowerCase();\n\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, return the corresponding\n // encoding, and failure otherwise.\n if (Object.prototype.hasOwnProperty.call(label_to_encoding, label)) {\n return label_to_encoding[label];\n }\n return null;\n}\n\n/**\n * Encodings table: https://encoding.spec.whatwg.org/encodings.json\n * @const\n * @type {!Array.<{\n * heading: string,\n * encodings: Array.<{name:string,labels:Array.<string>}>\n * }>}\n */\nvar encodings = [\n {\n encodings: [\n {\n labels: ['unicode-1-1-utf-8', 'utf-8', 'utf8'],\n name: 'UTF-8'\n }\n ],\n heading: 'The Encoding'\n },\n {\n encodings: [\n {\n labels: ['866', 'cp866', 'csibm866', 'ibm866'],\n name: 'IBM866'\n },\n {\n labels: [\n 'csisolatin2',\n 'iso-8859-2',\n 'iso-ir-101',\n 'iso8859-2',\n 'iso88592',\n 'iso_8859-2',\n 'iso_8859-2:1987',\n 'l2',\n 'latin2'\n ],\n name: 'ISO-8859-2'\n },\n {\n labels: [\n 'csisolatin3',\n 'iso-8859-3',\n 'iso-ir-109',\n 'iso8859-3',\n 'iso88593',\n 'iso_8859-3',\n 'iso_8859-3:1988',\n 'l3',\n 'latin3'\n ],\n name: 'ISO-8859-3'\n },\n {\n labels: [\n 'csisolatin4',\n 'iso-8859-4',\n 'iso-ir-110',\n 'iso8859-4',\n 'iso88594',\n 'iso_8859-4',\n 'iso_8859-4:1988',\n 'l4',\n 'latin4'\n ],\n name: 'ISO-8859-4'\n },\n {\n labels: [\n 'csisolatincyrillic',\n 'cyrillic',\n 'iso-8859-5',\n 'iso-ir-144',\n 'iso8859-5',\n 'iso88595',\n 'iso_8859-5',\n 'iso_8859-5:1988'\n ],\n name: 'ISO-8859-5'\n },\n {\n labels: [\n 'arabic',\n 'asmo-708',\n 'csiso88596e',\n 'csiso88596i',\n 'csisolatinarabic',\n 'ecma-114',\n 'iso-8859-6',\n 'iso-8859-6-e',\n 'iso-8859-6-i',\n 'iso-ir-127',\n 'iso8859-6',\n 'iso88596',\n 'iso_8859-6',\n 'iso_8859-6:1987'\n ],\n name: 'ISO-8859-6'\n },\n {\n labels: [\n 'csisolatingreek',\n 'ecma-118',\n 'elot_928',\n 'greek',\n 'greek8',\n 'iso-8859-7',\n 'iso-ir-126',\n 'iso8859-7',\n 'iso88597',\n 'iso_8859-7',\n 'iso_8859-7:1987',\n 'sun_eu_greek'\n ],\n name: 'ISO-8859-7'\n },\n {\n labels: [\n 'csiso88598e',\n 'csisolatinhebrew',\n 'hebrew',\n 'iso-8859-8',\n 'iso-8859-8-e',\n 'iso-ir-138',\n 'iso8859-8',\n 'iso88598',\n 'iso_8859-8',\n 'iso_8859-8:1988',\n 'visual'\n ],\n name: 'ISO-8859-8'\n },\n {\n labels: ['csiso88598i', 'iso-8859-8-i', 'logical'],\n name: 'ISO-8859-8-I'\n },\n {\n labels: [\n 'csisolatin6',\n 'iso-8859-10',\n 'iso-ir-157',\n 'iso8859-10',\n 'iso885910',\n 'l6',\n 'latin6'\n ],\n name: 'ISO-8859-10'\n },\n {\n labels: ['iso-8859-13', 'iso8859-13', 'iso885913'],\n name: 'ISO-8859-13'\n },\n {\n labels: ['iso-8859-14', 'iso8859-14', 'iso885914'],\n name: 'ISO-8859-14'\n },\n {\n labels: ['csisolatin9', 'iso-8859-15', 'iso8859-15', 'iso885915', 'iso_8859-15', 'l9'],\n name: 'ISO-8859-15'\n },\n {\n labels: ['iso-8859-16'],\n name: 'ISO-8859-16'\n },\n {\n labels: ['cskoi8r', 'koi', 'koi8', 'koi8-r', 'koi8_r'],\n name: 'KOI8-R'\n },\n {\n labels: ['koi8-ru', 'koi8-u'],\n name: 'KOI8-U'\n },\n {\n labels: ['csmacintosh', 'mac', 'macintosh', 'x-mac-roman'],\n name: 'macintosh'\n },\n {\n labels: ['dos-874', 'iso-8859-11', 'iso8859-11', 'iso885911', 'tis-620', 'windows-874'],\n name: 'windows-874'\n },\n {\n labels: ['cp1250', 'windows-1250', 'x-cp1250'],\n name: 'windows-1250'\n },\n {\n labels: ['cp1251', 'windows-1251', 'x-cp1251'],\n name: 'windows-1251'\n },\n {\n labels: [\n 'ansi_x3.4-1968',\n 'ascii',\n 'cp1252',\n 'cp819',\n 'csisolatin1',\n 'ibm819',\n 'iso-8859-1',\n 'iso-ir-100',\n 'iso8859-1',\n 'iso88591',\n 'iso_8859-1',\n 'iso_8859-1:1987',\n 'l1',\n 'latin1',\n 'us-ascii',\n 'windows-1252',\n 'x-cp1252'\n ],\n name: 'windows-1252'\n },\n {\n labels: ['cp1253', 'windows-1253', 'x-cp1253'],\n name: 'windows-1253'\n },\n {\n labels: [\n 'cp1254',\n 'csisolatin5',\n 'iso-8859-9',\n 'iso-ir-148',\n 'iso8859-9',\n 'iso88599',\n 'iso_8859-9',\n 'iso_8859-9:1989',\n 'l5',\n 'latin5',\n 'windows-1254',\n 'x-cp1254'\n ],\n name: 'windows-1254'\n },\n {\n labels: ['cp1255', 'windows-1255', 'x-cp1255'],\n name: 'windows-1255'\n },\n {\n labels: ['cp1256', 'windows-1256', 'x-cp1256'],\n name: 'windows-1256'\n },\n {\n labels: ['cp1257', 'windows-1257', 'x-cp1257'],\n name: 'windows-1257'\n },\n {\n labels: ['cp1258', 'windows-1258', 'x-cp1258'],\n name: 'windows-1258'\n },\n {\n labels: ['x-mac-cyrillic', 'x-mac-ukrainian'],\n name: 'x-mac-cyrillic'\n }\n ],\n heading: 'Legacy single-byte encodings'\n },\n {\n encodings: [\n {\n labels: [\n 'chinese',\n 'csgb2312',\n 'csiso58gb231280',\n 'gb2312',\n 'gb_2312',\n 'gb_2312-80',\n 'gbk',\n 'iso-ir-58',\n 'x-gbk'\n ],\n name: 'GBK'\n },\n {\n labels: ['gb18030'],\n name: 'gb18030'\n }\n ],\n heading: 'Legacy multi-byte Chinese (simplified) encodings'\n },\n {\n encodings: [\n {\n labels: ['big5', 'big5-hkscs', 'cn-big5', 'csbig5', 'x-x-big5'],\n name: 'Big5'\n }\n ],\n heading: 'Legacy multi-byte Chinese (traditional) encodings'\n },\n {\n encodings: [\n {\n labels: ['cseucpkdfmtjapanese', 'euc-jp', 'x-euc-jp'],\n name: 'EUC-JP'\n },\n {\n labels: ['csiso2022jp', 'iso-2022-jp'],\n name: 'ISO-2022-JP'\n },\n {\n labels: [\n 'csshiftjis',\n 'ms932',\n 'ms_kanji',\n 'shift-jis',\n 'shift_jis',\n 'sjis',\n 'windows-31j',\n 'x-sjis'\n ],\n name: 'Shift_JIS'\n }\n ],\n heading: 'Legacy multi-byte Japanese encodings'\n },\n {\n encodings: [\n {\n labels: [\n 'cseuckr',\n 'csksc56011987',\n 'euc-kr',\n 'iso-ir-149',\n 'korean',\n 'ks_c_5601-1987',\n 'ks_c_5601-1989',\n 'ksc5601',\n 'ksc_5601',\n 'windows-949'\n ],\n name: 'EUC-KR'\n }\n ],\n heading: 'Legacy multi-byte Korean encodings'\n },\n {\n encodings: [\n {\n labels: ['csiso2022kr', 'hz-gb-2312', 'iso-2022-cn', 'iso-2022-cn-ext', 'iso-2022-kr'],\n name: 'replacement'\n },\n {\n labels: ['utf-16be'],\n name: 'UTF-16BE'\n },\n {\n labels: ['utf-16', 'utf-16le'],\n name: 'UTF-16LE'\n },\n {\n labels: ['x-user-defined'],\n name: 'x-user-defined'\n }\n ],\n heading: 'Legacy miscellaneous encodings'\n }\n];\n\n// Label to encoding registry.\n/** @type {Object.<string,{name:string,labels:Array.<string>}>} */\nvar label_to_encoding = {};\nencodings.forEach(function (category) {\n category.encodings.forEach(function (encoding) {\n encoding.labels.forEach(function (label) {\n label_to_encoding[label] = encoding;\n });\n });\n});\n\n// Registry of of encoder/decoder factories, by encoding name.\n/** @type {Object.<string, function({fatal:boolean}): Encoder>} */\nvar encoders = {};\n/** @type {Object.<string, function({fatal:boolean}): Decoder>} */\nvar decoders = {};\n\n//\n// 6. Indexes\n//\n\n/**\n * @param {number} pointer The |pointer| to search for.\n * @param {(!Array.<?number>|undefined)} index The |index| to search within.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in |index|.\n */\nfunction indexCodePointFor(pointer, index) {\n if (!index) return null;\n return index[pointer] || null;\n}\n\n/**\n * @param {number} code_point The |code point| to search for.\n * @param {!Array.<?number>} index The |index| to search within.\n * @return {?number} The first pointer corresponding to |code point| in\n * |index|, or null if |code point| is not in |index|.\n */\nfunction indexPointerFor(code_point, index) {\n var pointer = index.indexOf(code_point);\n return pointer === -1 ? null : pointer;\n}\n\n/**\n * @param {string} name Name of the index.\n * @return {(!Array.<number>|!Array.<Array.<number>>)}\n * */\nfunction index(name) {\n if (!('encoding-indexes' in globalThis)) {\n throw Error('Indexes missing.' + ' Did you forget to include encoding-indexes.js first?');\n }\n return globalThis['encoding-indexes'][name];\n}\n\n/**\n * @param {number} pointer The |pointer| to search for in the gb18030 index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in the gb18030 index.\n */\nfunction indexGB18030RangesCodePointFor(pointer) {\n // 1. If pointer is greater than 39419 and less than 189000, or\n // pointer is greater than 1237575, return null.\n if ((pointer > 39419 && pointer < 189000) || pointer > 1237575) return null;\n\n // 2. If pointer is 7457, return code point U+E7C7.\n if (pointer === 7457) return 0xe7c7;\n\n // 3. Let offset be the last pointer in index gb18030 ranges that\n // is equal to or less than pointer and let code point offset be\n // its corresponding code point.\n var offset = 0;\n var code_point_offset = 0;\n var idx = index('gb18030-ranges');\n var i;\n for (i = 0; i < idx.length; ++i) {\n /** @type {!Array.<number>} */\n var entry = idx[i];\n if (entry[0] <= pointer) {\n offset = entry[0];\n code_point_offset = entry[1];\n } else {\n break;\n }\n }\n\n // 4. Return a code point whose value is code point offset +\n // pointer \u2212 offset.\n return code_point_offset + pointer - offset;\n}\n\n/**\n * @param {number} code_point The |code point| to locate in the gb18030 index.\n * @return {number} The first pointer corresponding to |code point| in the\n * gb18030 index.\n */\nfunction indexGB18030RangesPointerFor(code_point) {\n // 1. If code point is U+E7C7, return pointer 7457.\n if (code_point === 0xe7c7) return 7457;\n\n // 2. Let offset be the last code point in index gb18030 ranges\n // that is equal to or less than code point and let pointer offset\n // be its corresponding pointer.\n var offset = 0;\n var pointer_offset = 0;\n var idx = index('gb18030-ranges');\n var i;\n for (i = 0; i < idx.length; ++i) {\n /** @type {!Array.<number>} */\n var entry = idx[i];\n if (entry[1] <= code_point) {\n offset = entry[1];\n pointer_offset = entry[0];\n } else {\n break;\n }\n }\n\n // 3. Return a pointer whose value is pointer offset + code point\n // \u2212 offset.\n return pointer_offset + code_point - offset;\n}\n\n/**\n * @param {number} code_point The |code_point| to search for in the Shift_JIS\n * index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in the Shift_JIS index.\n */\nfunction indexShiftJISPointerFor(code_point) {\n // 1. Let index be index jis0208 excluding all entries whose\n // pointer is in the range 8272 to 8835, inclusive.\n shift_jis_index =\n shift_jis_index ||\n index('jis0208').map(function (code_point, pointer) {\n return inRange(pointer, 8272, 8835) ? null : code_point;\n });\n var index_ = shift_jis_index;\n\n // 2. Return the index pointer for code point in index.\n return index_.indexOf(code_point);\n}\nvar shift_jis_index;\n\n/**\n * @param {number} code_point The |code_point| to search for in the big5\n * index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in the big5 index.\n */\nfunction indexBig5PointerFor(code_point) {\n // 1. Let index be index Big5 excluding all entries whose pointer\n big5_index_no_hkscs =\n big5_index_no_hkscs ||\n index('big5').map(function (code_point, pointer) {\n return pointer < (0xa1 - 0x81) * 157 ? null : code_point;\n });\n var index_ = big5_index_no_hkscs;\n\n // 2. If code point is U+2550, U+255E, U+2561, U+256A, U+5341, or\n // U+5345, return the last pointer corresponding to code point in\n // index.\n if (\n code_point === 0x2550 ||\n code_point === 0x255e ||\n code_point === 0x2561 ||\n code_point === 0x256a ||\n code_point === 0x5341 ||\n code_point === 0x5345\n ) {\n return index_.lastIndexOf(code_point);\n }\n\n // 3. Return the index pointer for code point in index.\n return indexPointerFor(code_point, index_);\n}\nvar big5_index_no_hkscs;\n\n//\n// 8. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 8.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} label The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(label, options) {\n // Web IDL conventions\n if (!(this instanceof TextDecoder))\n throw TypeError(\"Called as a function. Did you forget 'new'?\");\n label = label !== undefined ? String(label) : DEFAULT_ENCODING;\n options = ToDictionary(options);\n\n // A TextDecoder object has an associated encoding, decoder,\n // stream, ignore BOM flag (initially unset), BOM seen flag\n // (initially unset), error mode (initially replacement), and do\n // not flush flag (initially unset).\n\n /** @private */\n this._encoding = null;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._ignoreBOM = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {string} */\n this._error_mode = 'replacement';\n /** @private @type {boolean} */\n this._do_not_flush = false;\n\n // 1. Let encoding be the result of getting an encoding from\n // label.\n var encoding = getEncoding(label);\n\n // 2. If encoding is failure or replacement, throw a RangeError.\n if (encoding === null || encoding.name === 'replacement')\n throw RangeError('Unknown encoding: ' + label);\n if (!decoders[encoding.name]) {\n throw Error('Decoder not present.' + ' Did you forget to include encoding-indexes.js first?');\n }\n\n // 3. Let dec be a new TextDecoder object.\n var dec = this;\n\n // 4. Set dec's encoding to encoding.\n dec._encoding = encoding;\n\n // 5. If options's fatal member is true, set dec's error mode to\n // fatal.\n if (Boolean(options['fatal'])) dec._error_mode = 'fatal';\n\n // 6. If options's ignoreBOM member is true, set dec's ignore BOM\n // flag.\n if (Boolean(options['ignoreBOM'])) dec._ignoreBOM = true;\n\n // For pre-ES5 runtimes:\n if (!Object.defineProperty) {\n this.encoding = dec._encoding.name.toLowerCase();\n this.fatal = dec._error_mode === 'fatal';\n this.ignoreBOM = dec._ignoreBOM;\n }\n\n // 7. Return dec.\n return dec;\n}\n\nif (Object.defineProperty) {\n // The encoding attribute's getter must return encoding's name.\n Object.defineProperty(TextDecoder.prototype, 'encoding', {\n /** @this {TextDecoder} */\n get: function () {\n return this._encoding.name.toLowerCase();\n }\n });\n\n // The fatal attribute's getter must return true if error mode\n // is fatal, and false otherwise.\n Object.defineProperty(TextDecoder.prototype, 'fatal', {\n /** @this {TextDecoder} */\n get: function () {\n return this._error_mode === 'fatal';\n }\n });\n\n // The ignoreBOM attribute's getter must return true if ignore\n // BOM flag is set, and false otherwise.\n Object.defineProperty(TextDecoder.prototype, 'ignoreBOM', {\n /** @this {TextDecoder} */\n get: function () {\n return this._ignoreBOM;\n }\n });\n}\n\n/**\n * @param {BufferSource=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\nTextDecoder.prototype.decode = function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (\n typeof input === 'object' &&\n 'buffer' in input &&\n input.buffer instanceof ArrayBuffer\n ) {\n bytes = new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n // 1. If the do not flush flag is unset, set decoder to a new\n // encoding's decoder, set stream to a new stream, and unset the\n // BOM seen flag.\n if (!this._do_not_flush) {\n this._decoder = decoders[this._encoding.name]({\n fatal: this._error_mode === 'fatal'\n });\n this._BOMseen = false;\n }\n\n // 2. If options's stream is true, set the do not flush flag, and\n // unset the do not flush flag otherwise.\n this._do_not_flush = Boolean(options['stream']);\n\n // 3. If input is given, push a copy of input to stream.\n // TODO: Align with spec algorithm - maintain stream on instance.\n var input_stream = new Stream(bytes);\n\n // 4. Let output be a new stream.\n var output = [];\n\n /** @type {?(number|!Array.<number>)} */\n var result;\n\n // 5. While true:\n while (true) {\n // 1. Let token be the result of reading from stream.\n var token = input_stream.read();\n\n // 2. If token is end-of-stream and the do not flush flag is\n // set, return output, serialized.\n // TODO: Align with spec algorithm.\n if (token === end_of_stream) break;\n\n // 3. Otherwise, run these subsubsteps:\n\n // 1. Let result be the result of processing token for decoder,\n // stream, output, and error mode.\n result = this._decoder.handler(input_stream, token);\n\n // 2. If result is finished, return output, serialized.\n if (result === finished) break;\n\n if (result !== null) {\n if (Array.isArray(result)) output.push.apply(output, /**@type {!Array.<number>}*/ result);\n else output.push(result);\n }\n\n // 3. Otherwise, if result is error, throw a TypeError.\n // (Thrown in handler)\n\n // 4. Otherwise, do nothing.\n }\n // TODO: Align with spec algorithm.\n if (!this._do_not_flush) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished) break;\n if (result === null) continue;\n if (Array.isArray(result)) output.push.apply(output, /**@type {!Array.<number>}*/ result);\n else output.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n // A TextDecoder object also has an associated serialize stream\n // algorithm...\n /**\n * @param {!Array.<number>} stream\n * @return {string}\n * @this {TextDecoder}\n */\n function serializeStream(stream) {\n // 1. Let token be the result of reading from stream.\n // (Done in-place on array, rather than as a stream)\n\n // 2. If encoding is UTF-8, UTF-16BE, or UTF-16LE, and ignore\n // BOM flag and BOM seen flag are unset, run these subsubsteps:\n if (\n includes(['UTF-8', 'UTF-16LE', 'UTF-16BE'], this._encoding.name) &&\n !this._ignoreBOM &&\n !this._BOMseen\n ) {\n if (stream.length > 0 && stream[0] === 0xfeff) {\n // 1. If token is U+FEFF, set BOM seen flag.\n this._BOMseen = true;\n stream.shift();\n } else if (stream.length > 0) {\n // 2. Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to stream.\n this._BOMseen = true;\n } else {\n // 3. Otherwise, if token is not end-of-stream, append token\n // to output.\n // (no-op)\n }\n }\n // 4. Otherwise, return output.\n return codePointsToString(stream);\n }\n\n return serializeStream.call(this, output);\n};\n\n// 8.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} label The label of the encoding. NONSTANDARD.\n * @param {Object=} options NONSTANDARD.\n */\nfunction TextEncoder(label, options) {\n // Web IDL conventions\n if (!(this instanceof TextEncoder))\n throw TypeError(\"Called as a function. Did you forget 'new'?\");\n options = ToDictionary(options);\n\n // A TextEncoder object has an associated encoding and encoder.\n\n /** @private */\n this._encoding = null;\n /** @private @type {?Encoder} */\n this._encoder = null;\n\n // Non-standard\n /** @private @type {boolean} */\n this._do_not_flush = false;\n /** @private @type {string} */\n this._fatal = Boolean(options['fatal']) ? 'fatal' : 'replacement';\n\n // 1. Let enc be a new TextEncoder object.\n var enc = this;\n\n // 2. Set enc's encoding to UTF-8's encoder.\n if (Boolean(options['NONSTANDARD_allowLegacyEncoding'])) {\n // NONSTANDARD behavior.\n label = label !== undefined ? String(label) : DEFAULT_ENCODING;\n var encoding = getEncoding(label);\n if (encoding === null || encoding.name === 'replacement')\n throw RangeError('Unknown encoding: ' + label);\n if (!encoders[encoding.name]) {\n throw Error('Encoder not present.' + ' Did you forget to include encoding-indexes.js first?');\n }\n enc._encoding = encoding;\n } else {\n // Standard behavior.\n enc._encoding = getEncoding('utf-8');\n\n if (label !== undefined && 'console' in globalThis) {\n }\n }\n\n // For pre-ES5 runtimes:\n if (!Object.defineProperty) this.encoding = enc._encoding.name.toLowerCase();\n\n // 3. Return enc.\n return enc;\n}\n\nif (Object.defineProperty) {\n // The encoding attribute's getter must return encoding's name.\n Object.defineProperty(TextEncoder.prototype, 'encoding', {\n /** @this {TextEncoder} */\n get: function () {\n return this._encoding.name.toLowerCase();\n }\n });\n}\n\n/**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {!Uint8Array} Encoded bytes, as a Uint8Array.\n */\nTextEncoder.prototype.encode = function encode(opt_string, options) {\n opt_string = opt_string === undefined ? '' : String(opt_string);\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful when\n // the input is a USVString so streaming is not necessary.\n if (!this._do_not_flush)\n this._encoder = encoders[this._encoding.name]({\n fatal: this._fatal === 'fatal'\n });\n this._do_not_flush = Boolean(options['stream']);\n\n // 1. Convert input to a stream.\n var input = new Stream(stringToCodePoints(opt_string));\n\n // 2. Let output be a new stream\n var output = [];\n\n /** @type {?(number|!Array.<number>)} */\n var result;\n // 3. While true, run these substeps:\n while (true) {\n // 1. Let token be the result of reading from input.\n var token = input.read();\n if (token === end_of_stream) break;\n // 2. Let result be the result of processing token for encoder,\n // input, output.\n result = this._encoder.handler(input, token);\n if (result === finished) break;\n if (Array.isArray(result)) output.push.apply(output, /**@type {!Array.<number>}*/ result);\n else output.push(result);\n }\n // TODO: Align with spec algorithm.\n if (!this._do_not_flush) {\n while (true) {\n result = this._encoder.handler(input, input.read());\n if (result === finished) break;\n if (Array.isArray(result)) output.push.apply(output, /**@type {!Array.<number>}*/ result);\n else output.push(result);\n }\n this._encoder = null;\n }\n // 3. If result is finished, convert output into a byte sequence,\n // and then return a Uint8Array object wrapping an ArrayBuffer\n // containing output.\n return new Uint8Array(output);\n};\n\n//\n// 9. The encoding\n//\n\n// 9.1 utf-8\n\n// 9.1.1 utf-8 decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xbf;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream) return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7f)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n else if (inRange(bite, 0xc2, 0xdf)) {\n // 1. Set utf-8 bytes needed to 1.\n utf8_bytes_needed = 1;\n\n // 2. Set UTF-8 code point to byte & 0x1F.\n utf8_code_point = bite & 0x1f;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xe0, 0xef)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xe0) utf8_lower_boundary = 0xa0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xed) utf8_upper_boundary = 0x9f;\n // 3. Set utf-8 bytes needed to 2.\n utf8_bytes_needed = 2;\n // 4. Set UTF-8 code point to byte & 0xF.\n utf8_code_point = bite & 0xf;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xf0, 0xf4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xf0) utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xf4) utf8_upper_boundary = 0x8f;\n // 3. Set utf-8 bytes needed to 3.\n utf8_bytes_needed = 3;\n // 4. Set UTF-8 code point to byte & 0x7.\n utf8_code_point = bite & 0x7;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Return continue.\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, inclusive, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xbf;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xbf;\n\n // 6. Set UTF-8 code point to (UTF-8 code point << 6) | (byte &\n // 0x3F)\n utf8_code_point = (utf8_code_point << 6) | (bite & 0x3f);\n\n // 7. Increase utf-8 bytes seen by one.\n utf8_bytes_seen += 1;\n\n // 8. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed) return null;\n\n // 9. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 10. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 11. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n// 9.1.2 utf-8 encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF, inclusive:\n if (inRange(code_point, 0x0080, 0x07ff)) {\n // 1 and 0xC0\n count = 1;\n offset = 0xc0;\n }\n // U+0800 to U+FFFF, inclusive:\n else if (inRange(code_point, 0x0800, 0xffff)) {\n // 2 and 0xE0\n count = 2;\n offset = 0xe0;\n }\n // U+10000 to U+10FFFF, inclusive:\n else if (inRange(code_point, 0x10000, 0x10ffff)) {\n // 3 and 0xF0\n count = 3;\n offset = 0xf0;\n }\n\n // 4. Let bytes be a byte sequence whose first byte is (code\n // point >> (6 \u00D7 count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n // 1. Set temp to code point >> (6 \u00D7 (count \u2212 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3f));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['UTF-8'] = function (options) {\n return new UTF8Encoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['UTF-8'] = function (options) {\n return new UTF8Decoder(options);\n};\n\n//\n// 10. Legacy single-byte encodings\n//\n\n// 10.1 single-byte decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {!Array.<number>} index The encoding index.\n * @param {{fatal: boolean}} options\n */\nfunction SingleByteDecoder(index, options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream, return finished.\n if (bite === end_of_stream) return finished;\n\n // 2. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite)) return bite;\n\n // 3. Let code point be the index code point for byte \u2212 0x80 in\n // index single-byte.\n var code_point = index[bite - 0x80];\n\n // 4. If code point is null, return error.\n if (code_point === null) return decoderError(fatal);\n\n // 5. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n// 10.2 single-byte encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {!Array.<?number>} index The encoding index.\n * @param {{fatal: boolean}} options\n */\nfunction SingleByteEncoder(index, options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 3. Let pointer be the index pointer for code point in index\n // single-byte.\n var pointer = indexPointerFor(code_point, index);\n\n // 4. If pointer is null, return error with code point.\n if (pointer === null) encoderError(code_point);\n\n // 5. Return a byte whose value is pointer + 0x80.\n return pointer + 0x80;\n };\n}\n\n(function () {\n if (!('encoding-indexes' in globalThis)) return;\n encodings.forEach(function (category) {\n if (category.heading !== 'Legacy single-byte encodings') return;\n category.encodings.forEach(function (encoding) {\n var name = encoding.name;\n var idx = index(name.toLowerCase());\n /** @param {{fatal: boolean}} options */\n decoders[name] = function (options) {\n return new SingleByteDecoder(idx, options);\n };\n /** @param {{fatal: boolean}} options */\n encoders[name] = function (options) {\n return new SingleByteEncoder(idx, options);\n };\n });\n });\n})();\n\n//\n// 11. Legacy multi-byte Chinese (simplified) encodings\n//\n\n// 11.1 gbk\n\n// 11.1.1 gbk decoder\n// gbk's decoder is gb18030's decoder.\n/** @param {{fatal: boolean}} options */\ndecoders['GBK'] = function (options) {\n return new GB18030Decoder(options);\n};\n\n// 11.1.2 gbk encoder\n// gbk's encoder is gb18030's encoder with its gbk flag set.\n/** @param {{fatal: boolean}} options */\nencoders['GBK'] = function (options) {\n return new GB18030Encoder(options, true);\n};\n\n// 11.2 gb18030\n\n// 11.2.1 gb18030 decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction GB18030Decoder(options) {\n var fatal = options.fatal;\n // gb18030's decoder has an associated gb18030 first, gb18030\n // second, and gb18030 third (all initially 0x00).\n var /** @type {number} */ gb18030_first = 0x00,\n /** @type {number} */ gb18030_second = 0x00,\n /** @type {number} */ gb18030_third = 0x00;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and gb18030 first, gb18030\n // second, and gb18030 third are 0x00, return finished.\n if (\n bite === end_of_stream &&\n gb18030_first === 0x00 &&\n gb18030_second === 0x00 &&\n gb18030_third === 0x00\n ) {\n return finished;\n }\n // 2. If byte is end-of-stream, and gb18030 first, gb18030\n // second, or gb18030 third is not 0x00, set gb18030 first,\n // gb18030 second, and gb18030 third to 0x00, and return error.\n if (\n bite === end_of_stream &&\n (gb18030_first !== 0x00 || gb18030_second !== 0x00 || gb18030_third !== 0x00)\n ) {\n gb18030_first = 0x00;\n gb18030_second = 0x00;\n gb18030_third = 0x00;\n decoderError(fatal);\n }\n var code_point;\n // 3. If gb18030 third is not 0x00, run these substeps:\n if (gb18030_third !== 0x00) {\n // 1. Let code point be null.\n code_point = null;\n // 2. If byte is in the range 0x30 to 0x39, inclusive, set\n // code point to the index gb18030 ranges code point for\n // (((gb18030 first \u2212 0x81) \u00D7 10 + gb18030 second \u2212 0x30) \u00D7\n // 126 + gb18030 third \u2212 0x81) \u00D7 10 + byte \u2212 0x30.\n if (inRange(bite, 0x30, 0x39)) {\n code_point = indexGB18030RangesCodePointFor(\n (((gb18030_first - 0x81) * 10 + gb18030_second - 0x30) * 126 + gb18030_third - 0x81) *\n 10 +\n bite -\n 0x30\n );\n }\n\n // 3. Let buffer be a byte sequence consisting of gb18030\n // second, gb18030 third, and byte, in order.\n var buffer = [gb18030_second, gb18030_third, bite];\n\n // 4. Set gb18030 first, gb18030 second, and gb18030 third to\n // 0x00.\n gb18030_first = 0x00;\n gb18030_second = 0x00;\n gb18030_third = 0x00;\n\n // 5. If code point is null, prepend buffer to stream and\n // return error.\n if (code_point === null) {\n stream.prepend(buffer);\n return decoderError(fatal);\n }\n\n // 6. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If gb18030 second is not 0x00, run these substeps:\n if (gb18030_second !== 0x00) {\n // 1. If byte is in the range 0x81 to 0xFE, inclusive, set\n // gb18030 third to byte and return continue.\n if (inRange(bite, 0x81, 0xfe)) {\n gb18030_third = bite;\n return null;\n }\n\n // 2. Prepend gb18030 second followed by byte to stream, set\n // gb18030 first and gb18030 second to 0x00, and return error.\n stream.prepend([gb18030_second, bite]);\n gb18030_first = 0x00;\n gb18030_second = 0x00;\n return decoderError(fatal);\n }\n\n // 5. If gb18030 first is not 0x00, run these substeps:\n if (gb18030_first !== 0x00) {\n // 1. If byte is in the range 0x30 to 0x39, inclusive, set\n // gb18030 second to byte and return continue.\n if (inRange(bite, 0x30, 0x39)) {\n gb18030_second = bite;\n return null;\n }\n\n // 2. Let lead be gb18030 first, let pointer be null, and set\n // gb18030 first to 0x00.\n var lead = gb18030_first;\n var pointer = null;\n gb18030_first = 0x00;\n\n // 3. Let offset be 0x40 if byte is less than 0x7F and 0x41\n // otherwise.\n var offset = bite < 0x7f ? 0x40 : 0x41;\n\n // 4. If byte is in the range 0x40 to 0x7E, inclusive, or 0x80\n // to 0xFE, inclusive, set pointer to (lead \u2212 0x81) \u00D7 190 +\n // (byte \u2212 offset).\n if (inRange(bite, 0x40, 0x7e) || inRange(bite, 0x80, 0xfe))\n pointer = (lead - 0x81) * 190 + (bite - offset);\n\n // 5. Let code point be null if pointer is null and the index\n // code point for pointer in index gb18030 otherwise.\n code_point = pointer === null ? null : indexCodePointFor(pointer, index('gb18030'));\n\n // 6. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (code_point === null && isASCIIByte(bite)) stream.prepend(bite);\n\n // 7. If code point is null, return error.\n if (code_point === null) return decoderError(fatal);\n\n // 8. Return a code point whose value is code point.\n return code_point;\n }\n\n // 6. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite)) return bite;\n\n // 7. If byte is 0x80, return code point U+20AC.\n if (bite === 0x80) return 0x20ac;\n\n // 8. If byte is in the range 0x81 to 0xFE, inclusive, set\n // gb18030 first to byte and return continue.\n if (inRange(bite, 0x81, 0xfe)) {\n gb18030_first = bite;\n return null;\n }\n\n // 9. Return error.\n return decoderError(fatal);\n };\n}\n\n// 11.2.2 gb18030 encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n * @param {boolean=} gbk_flag\n */\nfunction GB18030Encoder(options, gbk_flag) {\n var _fatal = options.fatal;\n // gb18030's decoder has an associated gbk flag (initially unset).\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 3. If code point is U+E5E5, return error with code point.\n if (code_point === 0xe5e5) return encoderError(code_point);\n\n // 4. If the gbk flag is set and code point is U+20AC, return\n // byte 0x80.\n if (gbk_flag && code_point === 0x20ac) return 0x80;\n\n // 5. Let pointer be the index pointer for code point in index\n // gb18030.\n var pointer = indexPointerFor(code_point, index('gb18030'));\n\n // 6. If pointer is not null, run these substeps:\n if (pointer !== null) {\n // 1. Let lead be floor(pointer / 190) + 0x81.\n var lead = floor(pointer / 190) + 0x81;\n\n // 2. Let trail be pointer % 190.\n var trail = pointer % 190;\n\n // 3. Let offset be 0x40 if trail is less than 0x3F and 0x41 otherwise.\n var offset = trail < 0x3f ? 0x40 : 0x41;\n\n // 4. Return two bytes whose values are lead and trail + offset.\n return [lead, trail + offset];\n }\n\n // 7. If gbk flag is set, return error with code point.\n if (gbk_flag) return encoderError(code_point);\n\n // 8. Set pointer to the index gb18030 ranges pointer for code\n // point.\n pointer = indexGB18030RangesPointerFor(code_point);\n\n // 9. Let byte1 be floor(pointer / 10 / 126 / 10).\n var byte1 = floor(pointer / 10 / 126 / 10);\n\n // 10. Set pointer to pointer \u2212 byte1 \u00D7 10 \u00D7 126 \u00D7 10.\n pointer = pointer - byte1 * 10 * 126 * 10;\n\n // 11. Let byte2 be floor(pointer / 10 / 126).\n var byte2 = floor(pointer / 10 / 126);\n\n // 12. Set pointer to pointer \u2212 byte2 \u00D7 10 \u00D7 126.\n pointer = pointer - byte2 * 10 * 126;\n\n // 13. Let byte3 be floor(pointer / 10).\n var byte3 = floor(pointer / 10);\n\n // 14. Let byte4 be pointer \u2212 byte3 \u00D7 10.\n var byte4 = pointer - byte3 * 10;\n\n // 15. Return four bytes whose values are byte1 + 0x81, byte2 +\n // 0x30, byte3 + 0x81, byte4 + 0x30.\n return [byte1 + 0x81, byte2 + 0x30, byte3 + 0x81, byte4 + 0x30];\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['gb18030'] = function (options) {\n return new GB18030Encoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['gb18030'] = function (options) {\n return new GB18030Decoder(options);\n};\n\n//\n// 12. Legacy multi-byte Chinese (traditional) encodings\n//\n\n// 12.1 Big5\n\n// 12.1.1 Big5 decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction Big5Decoder(options) {\n var fatal = options.fatal;\n // Big5's decoder has an associated Big5 lead (initially 0x00).\n var /** @type {number} */ Big5_lead = 0x00;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and Big5 lead is not 0x00, set\n // Big5 lead to 0x00 and return error.\n if (bite === end_of_stream && Big5_lead !== 0x00) {\n Big5_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and Big5 lead is 0x00, return\n // finished.\n if (bite === end_of_stream && Big5_lead === 0x00) return finished;\n\n // 3. If Big5 lead is not 0x00, let lead be Big5 lead, let\n // pointer be null, set Big5 lead to 0x00, and then run these\n // substeps:\n if (Big5_lead !== 0x00) {\n var lead = Big5_lead;\n var pointer = null;\n Big5_lead = 0x00;\n\n // 1. Let offset be 0x40 if byte is less than 0x7F and 0x62\n // otherwise.\n var offset = bite < 0x7f ? 0x40 : 0x62;\n\n // 2. If byte is in the range 0x40 to 0x7E, inclusive, or 0xA1\n // to 0xFE, inclusive, set pointer to (lead \u2212 0x81) \u00D7 157 +\n // (byte \u2212 offset).\n if (inRange(bite, 0x40, 0x7e) || inRange(bite, 0xa1, 0xfe))\n pointer = (lead - 0x81) * 157 + (bite - offset);\n\n // 3. If there is a row in the table below whose first column\n // is pointer, return the two code points listed in its second\n // column\n // Pointer | Code points\n // --------+--------------\n // 1133 | U+00CA U+0304\n // 1135 | U+00CA U+030C\n // 1164 | U+00EA U+0304\n // 1166 | U+00EA U+030C\n switch (pointer) {\n case 1133:\n return [0x00ca, 0x0304];\n case 1135:\n return [0x00ca, 0x030c];\n case 1164:\n return [0x00ea, 0x0304];\n case 1166:\n return [0x00ea, 0x030c];\n }\n\n // 4. Let code point be null if pointer is null and the index\n // code point for pointer in index Big5 otherwise.\n var code_point = pointer === null ? null : indexCodePointFor(pointer, index('big5'));\n\n // 5. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (code_point === null && isASCIIByte(bite)) stream.prepend(bite);\n\n // 6. If code point is null, return error.\n if (code_point === null) return decoderError(fatal);\n\n // 7. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite)) return bite;\n\n // 5. If byte is in the range 0x81 to 0xFE, inclusive, set Big5\n // lead to byte and return continue.\n if (inRange(bite, 0x81, 0xfe)) {\n Big5_lead = bite;\n return null;\n }\n\n // 6. Return error.\n return decoderError(fatal);\n };\n}\n\n// 12.1.2 Big5 encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction Big5Encoder(options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 3. Let pointer be the index Big5 pointer for code point.\n var pointer = indexBig5PointerFor(code_point);\n\n // 4. If pointer is null, return error with code point.\n if (pointer === null) return encoderError(code_point);\n\n // 5. Let lead be floor(pointer / 157) + 0x81.\n var lead = floor(pointer / 157) + 0x81;\n\n // 6. If lead is less than 0xA1, return error with code point.\n if (lead < 0xa1) return encoderError(code_point);\n\n // 7. Let trail be pointer % 157.\n var trail = pointer % 157;\n\n // 8. Let offset be 0x40 if trail is less than 0x3F and 0x62\n // otherwise.\n var offset = trail < 0x3f ? 0x40 : 0x62;\n\n // Return two bytes whose values are lead and trail + offset.\n return [lead, trail + offset];\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['Big5'] = function (options) {\n return new Big5Encoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['Big5'] = function (options) {\n return new Big5Decoder(options);\n};\n\n//\n// 13. Legacy multi-byte Japanese encodings\n//\n\n// 13.1 euc-jp\n\n// 13.1.1 euc-jp decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction EUCJPDecoder(options) {\n var fatal = options.fatal;\n\n // euc-jp's decoder has an associated euc-jp jis0212 flag\n // (initially unset) and euc-jp lead (initially 0x00).\n var /** @type {boolean} */ eucjp_jis0212_flag = false,\n /** @type {number} */ eucjp_lead = 0x00;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and euc-jp lead is not 0x00, set\n // euc-jp lead to 0x00, and return error.\n if (bite === end_of_stream && eucjp_lead !== 0x00) {\n eucjp_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and euc-jp lead is 0x00, return\n // finished.\n if (bite === end_of_stream && eucjp_lead === 0x00) return finished;\n\n // 3. If euc-jp lead is 0x8E and byte is in the range 0xA1 to\n // 0xDF, inclusive, set euc-jp lead to 0x00 and return a code\n // point whose value is 0xFF61 \u2212 0xA1 + byte.\n if (eucjp_lead === 0x8e && inRange(bite, 0xa1, 0xdf)) {\n eucjp_lead = 0x00;\n return 0xff61 - 0xa1 + bite;\n }\n\n // 4. If euc-jp lead is 0x8F and byte is in the range 0xA1 to\n // 0xFE, inclusive, set the euc-jp jis0212 flag, set euc-jp lead\n // to byte, and return continue.\n if (eucjp_lead === 0x8f && inRange(bite, 0xa1, 0xfe)) {\n eucjp_jis0212_flag = true;\n eucjp_lead = bite;\n return null;\n }\n\n // 5. If euc-jp lead is not 0x00, let lead be euc-jp lead, set\n // euc-jp lead to 0x00, and run these substeps:\n if (eucjp_lead !== 0x00) {\n var lead = eucjp_lead;\n eucjp_lead = 0x00;\n\n // 1. Let code point be null.\n var code_point = null;\n\n // 2. If lead and byte are both in the range 0xA1 to 0xFE,\n // inclusive, set code point to the index code point for (lead\n // \u2212 0xA1) \u00D7 94 + byte \u2212 0xA1 in index jis0208 if the euc-jp\n // jis0212 flag is unset and in index jis0212 otherwise.\n if (inRange(lead, 0xa1, 0xfe) && inRange(bite, 0xa1, 0xfe)) {\n code_point = indexCodePointFor(\n (lead - 0xa1) * 94 + (bite - 0xa1),\n index(!eucjp_jis0212_flag ? 'jis0208' : 'jis0212')\n );\n }\n\n // 3. Unset the euc-jp jis0212 flag.\n eucjp_jis0212_flag = false;\n\n // 4. If byte is not in the range 0xA1 to 0xFE, inclusive,\n // prepend byte to stream.\n if (!inRange(bite, 0xa1, 0xfe)) stream.prepend(bite);\n\n // 5. If code point is null, return error.\n if (code_point === null) return decoderError(fatal);\n\n // 6. Return a code point whose value is code point.\n return code_point;\n }\n\n // 6. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite)) return bite;\n\n // 7. If byte is 0x8E, 0x8F, or in the range 0xA1 to 0xFE,\n // inclusive, set euc-jp lead to byte and return continue.\n if (bite === 0x8e || bite === 0x8f || inRange(bite, 0xa1, 0xfe)) {\n eucjp_lead = bite;\n return null;\n }\n\n // 8. Return error.\n return decoderError(fatal);\n };\n}\n\n// 13.1.2 euc-jp encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction EUCJPEncoder(options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 3. If code point is U+00A5, return byte 0x5C.\n if (code_point === 0x00a5) return 0x5c;\n\n // 4. If code point is U+203E, return byte 0x7E.\n if (code_point === 0x203e) return 0x7e;\n\n // 5. If code point is in the range U+FF61 to U+FF9F, inclusive,\n // return two bytes whose values are 0x8E and code point \u2212\n // 0xFF61 + 0xA1.\n if (inRange(code_point, 0xff61, 0xff9f)) return [0x8e, code_point - 0xff61 + 0xa1];\n\n // 6. If code point is U+2212, set it to U+FF0D.\n if (code_point === 0x2212) code_point = 0xff0d;\n\n // 7. Let pointer be the index pointer for code point in index\n // jis0208.\n var pointer = indexPointerFor(code_point, index('jis0208'));\n\n // 8. If pointer is null, return error with code point.\n if (pointer === null) return encoderError(code_point);\n\n // 9. Let lead be floor(pointer / 94) + 0xA1.\n var lead = floor(pointer / 94) + 0xa1;\n\n // 10. Let trail be pointer % 94 + 0xA1.\n var trail = (pointer % 94) + 0xa1;\n\n // 11. Return two bytes whose values are lead and trail.\n return [lead, trail];\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['EUC-JP'] = function (options) {\n return new EUCJPEncoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['EUC-JP'] = function (options) {\n return new EUCJPDecoder(options);\n};\n\n// 13.2 iso-2022-jp\n\n// 13.2.1 iso-2022-jp decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction ISO2022JPDecoder(options) {\n var fatal = options.fatal;\n /** @enum */\n var states = {\n ASCII: 0,\n Roman: 1,\n Katakana: 2,\n LeadByte: 3,\n TrailByte: 4,\n EscapeStart: 5,\n Escape: 6\n };\n // iso-2022-jp's decoder has an associated iso-2022-jp decoder\n // state (initially ASCII), iso-2022-jp decoder output state\n // (initially ASCII), iso-2022-jp lead (initially 0x00), and\n // iso-2022-jp output flag (initially unset).\n var /** @type {number} */ iso2022jp_decoder_state = states.ASCII,\n /** @type {number} */ iso2022jp_decoder_output_state = states.ASCII,\n /** @type {number} */ iso2022jp_lead = 0x00,\n /** @type {boolean} */ iso2022jp_output_flag = false;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // switching on iso-2022-jp decoder state:\n switch (iso2022jp_decoder_state) {\n default:\n case states.ASCII:\n // ASCII\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1b) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x00 to 0x7F, excluding 0x0E, 0x0F, and 0x1B\n if (inRange(bite, 0x00, 0x7f) && bite !== 0x0e && bite !== 0x0f && bite !== 0x1b) {\n // Unset the iso-2022-jp output flag and return a code point\n // whose value is byte.\n iso2022jp_output_flag = false;\n return bite;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.Roman:\n // Roman\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1b) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x5C\n if (bite === 0x5c) {\n // Unset the iso-2022-jp output flag and return code point\n // U+00A5.\n iso2022jp_output_flag = false;\n return 0x00a5;\n }\n\n // 0x7E\n if (bite === 0x7e) {\n // Unset the iso-2022-jp output flag and return code point\n // U+203E.\n iso2022jp_output_flag = false;\n return 0x203e;\n }\n\n // 0x00 to 0x7F, excluding 0x0E, 0x0F, 0x1B, 0x5C, and 0x7E\n if (\n inRange(bite, 0x00, 0x7f) &&\n bite !== 0x0e &&\n bite !== 0x0f &&\n bite !== 0x1b &&\n bite !== 0x5c &&\n bite !== 0x7e\n ) {\n // Unset the iso-2022-jp output flag and return a code point\n // whose value is byte.\n iso2022jp_output_flag = false;\n return bite;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.Katakana:\n // Katakana\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1b) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x21 to 0x5F\n if (inRange(bite, 0x21, 0x5f)) {\n // Unset the iso-2022-jp output flag and return a code point\n // whose value is 0xFF61 \u2212 0x21 + byte.\n iso2022jp_output_flag = false;\n return 0xff61 - 0x21 + bite;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.LeadByte:\n // Lead byte\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1b) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x21 to 0x7E\n if (inRange(bite, 0x21, 0x7e)) {\n // Unset the iso-2022-jp output flag, set iso-2022-jp lead\n // to byte, iso-2022-jp decoder state to trail byte, and\n // return continue.\n iso2022jp_output_flag = false;\n iso2022jp_lead = bite;\n iso2022jp_decoder_state = states.TrailByte;\n return null;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.TrailByte:\n // Trail byte\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1b) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return decoderError(fatal);\n }\n\n // 0x21 to 0x7E\n if (inRange(bite, 0x21, 0x7e)) {\n // 1. Set the iso-2022-jp decoder state to lead byte.\n iso2022jp_decoder_state = states.LeadByte;\n\n // 2. Let pointer be (iso-2022-jp lead \u2212 0x21) \u00D7 94 + byte \u2212 0x21.\n var pointer = (iso2022jp_lead - 0x21) * 94 + bite - 0x21;\n\n // 3. Let code point be the index code point for pointer in\n // index jis0208.\n var code_point = indexCodePointFor(pointer, index('jis0208'));\n\n // 4. If code point is null, return error.\n if (code_point === null) return decoderError(fatal);\n\n // 5. Return a code point whose value is code point.\n return code_point;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Set the iso-2022-jp decoder state to lead byte, prepend\n // byte to stream, and return error.\n iso2022jp_decoder_state = states.LeadByte;\n stream.prepend(bite);\n return decoderError(fatal);\n }\n\n // Otherwise\n // Set iso-2022-jp decoder state to lead byte and return\n // error.\n iso2022jp_decoder_state = states.LeadByte;\n return decoderError(fatal);\n\n case states.EscapeStart:\n // Escape start\n\n // 1. If byte is either 0x24 or 0x28, set iso-2022-jp lead to\n // byte, iso-2022-jp decoder state to escape, and return\n // continue.\n if (bite === 0x24 || bite === 0x28) {\n iso2022jp_lead = bite;\n iso2022jp_decoder_state = states.Escape;\n return null;\n }\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Unset the iso-2022-jp output flag, set iso-2022-jp\n // decoder state to iso-2022-jp decoder output state, and\n // return error.\n iso2022jp_output_flag = false;\n iso2022jp_decoder_state = iso2022jp_decoder_output_state;\n return decoderError(fatal);\n\n case states.Escape:\n // Escape\n\n // 1. Let lead be iso-2022-jp lead and set iso-2022-jp lead to\n // 0x00.\n var lead = iso2022jp_lead;\n iso2022jp_lead = 0x00;\n\n // 2. Let state be null.\n var state = null;\n\n // 3. If lead is 0x28 and byte is 0x42, set state to ASCII.\n if (lead === 0x28 && bite === 0x42) state = states.ASCII;\n\n // 4. If lead is 0x28 and byte is 0x4A, set state to Roman.\n if (lead === 0x28 && bite === 0x4a) state = states.Roman;\n\n // 5. If lead is 0x28 and byte is 0x49, set state to Katakana.\n if (lead === 0x28 && bite === 0x49) state = states.Katakana;\n\n // 6. If lead is 0x24 and byte is either 0x40 or 0x42, set\n // state to lead byte.\n if (lead === 0x24 && (bite === 0x40 || bite === 0x42)) state = states.LeadByte;\n\n // 7. If state is non-null, run these substeps:\n if (state !== null) {\n // 1. Set iso-2022-jp decoder state and iso-2022-jp decoder\n // output state to states.\n iso2022jp_decoder_state = iso2022jp_decoder_state = state;\n\n // 2. Let output flag be the iso-2022-jp output flag.\n var output_flag = iso2022jp_output_flag;\n\n // 3. Set the iso-2022-jp output flag.\n iso2022jp_output_flag = true;\n\n // 4. Return continue, if output flag is unset, and error\n // otherwise.\n return !output_flag ? null : decoderError(fatal);\n }\n\n // 8. Prepend lead and byte to stream.\n stream.prepend([lead, bite]);\n\n // 9. Unset the iso-2022-jp output flag, set iso-2022-jp\n // decoder state to iso-2022-jp decoder output state and\n // return error.\n iso2022jp_output_flag = false;\n iso2022jp_decoder_state = iso2022jp_decoder_output_state;\n return decoderError(fatal);\n }\n };\n}\n\n// 13.2.2 iso-2022-jp encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction ISO2022JPEncoder(options) {\n var _fatal = options.fatal;\n // iso-2022-jp's encoder has an associated iso-2022-jp encoder\n // state which is one of ASCII, Roman, and jis0208 (initially\n // ASCII).\n /** @enum */\n var states = {\n ASCII: 0,\n Roman: 1,\n jis0208: 2\n };\n var /** @type {number} */ iso2022jp_state = states.ASCII;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream and iso-2022-jp encoder\n // state is not ASCII, prepend code point to stream, set\n // iso-2022-jp encoder state to ASCII, and return three bytes\n // 0x1B 0x28 0x42.\n if (code_point === end_of_stream && iso2022jp_state !== states.ASCII) {\n stream.prepend(code_point);\n iso2022jp_state = states.ASCII;\n return [0x1b, 0x28, 0x42];\n }\n\n // 2. If code point is end-of-stream and iso-2022-jp encoder\n // state is ASCII, return finished.\n if (code_point === end_of_stream && iso2022jp_state === states.ASCII) return finished;\n\n // 3. If ISO-2022-JP encoder state is ASCII or Roman, and code\n // point is U+000E, U+000F, or U+001B, return error with U+FFFD.\n if (\n (iso2022jp_state === states.ASCII || iso2022jp_state === states.Roman) &&\n (code_point === 0x000e || code_point === 0x000f || code_point === 0x001b)\n ) {\n return encoderError(0xfffd);\n }\n\n // 4. If iso-2022-jp encoder state is ASCII and code point is an\n // ASCII code point, return a byte whose value is code point.\n if (iso2022jp_state === states.ASCII && isASCIICodePoint(code_point)) return code_point;\n\n // 5. If iso-2022-jp encoder state is Roman and code point is an\n // ASCII code point, excluding U+005C and U+007E, or is U+00A5\n // or U+203E, run these substeps:\n if (\n iso2022jp_state === states.Roman &&\n ((isASCIICodePoint(code_point) && code_point !== 0x005c && code_point !== 0x007e) ||\n code_point === 0x00a5 ||\n code_point === 0x203e)\n ) {\n // 1. If code point is an ASCII code point, return a byte\n // whose value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 2. If code point is U+00A5, return byte 0x5C.\n if (code_point === 0x00a5) return 0x5c;\n\n // 3. If code point is U+203E, return byte 0x7E.\n if (code_point === 0x203e) return 0x7e;\n }\n\n // 6. If code point is an ASCII code point, and iso-2022-jp\n // encoder state is not ASCII, prepend code point to stream, set\n // iso-2022-jp encoder state to ASCII, and return three bytes\n // 0x1B 0x28 0x42.\n if (isASCIICodePoint(code_point) && iso2022jp_state !== states.ASCII) {\n stream.prepend(code_point);\n iso2022jp_state = states.ASCII;\n return [0x1b, 0x28, 0x42];\n }\n\n // 7. If code point is either U+00A5 or U+203E, and iso-2022-jp\n // encoder state is not Roman, prepend code point to stream, set\n // iso-2022-jp encoder state to Roman, and return three bytes\n // 0x1B 0x28 0x4A.\n if ((code_point === 0x00a5 || code_point === 0x203e) && iso2022jp_state !== states.Roman) {\n stream.prepend(code_point);\n iso2022jp_state = states.Roman;\n return [0x1b, 0x28, 0x4a];\n }\n\n // 8. If code point is U+2212, set it to U+FF0D.\n if (code_point === 0x2212) code_point = 0xff0d;\n\n // 9. Let pointer be the index pointer for code point in index\n // jis0208.\n var pointer = indexPointerFor(code_point, index('jis0208'));\n\n // 10. If pointer is null, return error with code point.\n if (pointer === null) return encoderError(code_point);\n\n // 11. If iso-2022-jp encoder state is not jis0208, prepend code\n // point to stream, set iso-2022-jp encoder state to jis0208,\n // and return three bytes 0x1B 0x24 0x42.\n if (iso2022jp_state !== states.jis0208) {\n stream.prepend(code_point);\n iso2022jp_state = states.jis0208;\n return [0x1b, 0x24, 0x42];\n }\n\n // 12. Let lead be floor(pointer / 94) + 0x21.\n var lead = floor(pointer / 94) + 0x21;\n\n // 13. Let trail be pointer % 94 + 0x21.\n var trail = (pointer % 94) + 0x21;\n\n // 14. Return two bytes whose values are lead and trail.\n return [lead, trail];\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['ISO-2022-JP'] = function (options) {\n return new ISO2022JPEncoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['ISO-2022-JP'] = function (options) {\n return new ISO2022JPDecoder(options);\n};\n\n// 13.3 Shift_JIS\n\n// 13.3.1 Shift_JIS decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction ShiftJISDecoder(options) {\n var fatal = options.fatal;\n // Shift_JIS's decoder has an associated Shift_JIS lead (initially\n // 0x00).\n var /** @type {number} */ Shift_JIS_lead = 0x00;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and Shift_JIS lead is not 0x00,\n // set Shift_JIS lead to 0x00 and return error.\n if (bite === end_of_stream && Shift_JIS_lead !== 0x00) {\n Shift_JIS_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and Shift_JIS lead is 0x00,\n // return finished.\n if (bite === end_of_stream && Shift_JIS_lead === 0x00) return finished;\n\n // 3. If Shift_JIS lead is not 0x00, let lead be Shift_JIS lead,\n // let pointer be null, set Shift_JIS lead to 0x00, and then run\n // these substeps:\n if (Shift_JIS_lead !== 0x00) {\n var lead = Shift_JIS_lead;\n var pointer = null;\n Shift_JIS_lead = 0x00;\n\n // 1. Let offset be 0x40, if byte is less than 0x7F, and 0x41\n // otherwise.\n var offset = bite < 0x7f ? 0x40 : 0x41;\n\n // 2. Let lead offset be 0x81, if lead is less than 0xA0, and\n // 0xC1 otherwise.\n var lead_offset = lead < 0xa0 ? 0x81 : 0xc1;\n\n // 3. If byte is in the range 0x40 to 0x7E, inclusive, or 0x80\n // to 0xFC, inclusive, set pointer to (lead \u2212 lead offset) \u00D7\n // 188 + byte \u2212 offset.\n if (inRange(bite, 0x40, 0x7e) || inRange(bite, 0x80, 0xfc))\n pointer = (lead - lead_offset) * 188 + bite - offset;\n\n // 4. If pointer is in the range 8836 to 10715, inclusive,\n // return a code point whose value is 0xE000 \u2212 8836 + pointer.\n if (inRange(pointer, 8836, 10715)) return 0xe000 - 8836 + pointer;\n\n // 5. Let code point be null, if pointer is null, and the\n // index code point for pointer in index jis0208 otherwise.\n var code_point = pointer === null ? null : indexCodePointFor(pointer, index('jis0208'));\n\n // 6. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (code_point === null && isASCIIByte(bite)) stream.prepend(bite);\n\n // 7. If code point is null, return error.\n if (code_point === null) return decoderError(fatal);\n\n // 8. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If byte is an ASCII byte or 0x80, return a code point\n // whose value is byte.\n if (isASCIIByte(bite) || bite === 0x80) return bite;\n\n // 5. If byte is in the range 0xA1 to 0xDF, inclusive, return a\n // code point whose value is 0xFF61 \u2212 0xA1 + byte.\n if (inRange(bite, 0xa1, 0xdf)) return 0xff61 - 0xa1 + bite;\n\n // 6. If byte is in the range 0x81 to 0x9F, inclusive, or 0xE0\n // to 0xFC, inclusive, set Shift_JIS lead to byte and return\n // continue.\n if (inRange(bite, 0x81, 0x9f) || inRange(bite, 0xe0, 0xfc)) {\n Shift_JIS_lead = bite;\n return null;\n }\n\n // 7. Return error.\n return decoderError(fatal);\n };\n}\n\n// 13.3.2 Shift_JIS encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction ShiftJISEncoder(options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point or U+0080, return a\n // byte whose value is code point.\n if (isASCIICodePoint(code_point) || code_point === 0x0080) return code_point;\n\n // 3. If code point is U+00A5, return byte 0x5C.\n if (code_point === 0x00a5) return 0x5c;\n\n // 4. If code point is U+203E, return byte 0x7E.\n if (code_point === 0x203e) return 0x7e;\n\n // 5. If code point is in the range U+FF61 to U+FF9F, inclusive,\n // return a byte whose value is code point \u2212 0xFF61 + 0xA1.\n if (inRange(code_point, 0xff61, 0xff9f)) return code_point - 0xff61 + 0xa1;\n\n // 6. If code point is U+2212, set it to U+FF0D.\n if (code_point === 0x2212) code_point = 0xff0d;\n\n // 7. Let pointer be the index Shift_JIS pointer for code point.\n var pointer = indexShiftJISPointerFor(code_point);\n\n // 8. If pointer is null, return error with code point.\n if (pointer === null) return encoderError(code_point);\n\n // 9. Let lead be floor(pointer / 188).\n var lead = floor(pointer / 188);\n\n // 10. Let lead offset be 0x81, if lead is less than 0x1F, and\n // 0xC1 otherwise.\n var lead_offset = lead < 0x1f ? 0x81 : 0xc1;\n\n // 11. Let trail be pointer % 188.\n var trail = pointer % 188;\n\n // 12. Let offset be 0x40, if trail is less than 0x3F, and 0x41\n // otherwise.\n var offset = trail < 0x3f ? 0x40 : 0x41;\n\n // 13. Return two bytes whose values are lead + lead offset and\n // trail + offset.\n return [lead + lead_offset, trail + offset];\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['Shift_JIS'] = function (options) {\n return new ShiftJISEncoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['Shift_JIS'] = function (options) {\n return new ShiftJISDecoder(options);\n};\n\n//\n// 14. Legacy multi-byte Korean encodings\n//\n\n// 14.1 euc-kr\n\n// 14.1.1 euc-kr decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction EUCKRDecoder(options) {\n var fatal = options.fatal;\n\n // euc-kr's decoder has an associated euc-kr lead (initially 0x00).\n var /** @type {number} */ euckr_lead = 0x00;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and euc-kr lead is not 0x00, set\n // euc-kr lead to 0x00 and return error.\n if (bite === end_of_stream && euckr_lead !== 0) {\n euckr_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and euc-kr lead is 0x00, return\n // finished.\n if (bite === end_of_stream && euckr_lead === 0) return finished;\n\n // 3. If euc-kr lead is not 0x00, let lead be euc-kr lead, let\n // pointer be null, set euc-kr lead to 0x00, and then run these\n // substeps:\n if (euckr_lead !== 0x00) {\n var lead = euckr_lead;\n var pointer = null;\n euckr_lead = 0x00;\n\n // 1. If byte is in the range 0x41 to 0xFE, inclusive, set\n // pointer to (lead \u2212 0x81) \u00D7 190 + (byte \u2212 0x41).\n if (inRange(bite, 0x41, 0xfe)) pointer = (lead - 0x81) * 190 + (bite - 0x41);\n\n // 2. Let code point be null, if pointer is null, and the\n // index code point for pointer in index euc-kr otherwise.\n var code_point = pointer === null ? null : indexCodePointFor(pointer, index('euc-kr'));\n\n // 3. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (pointer === null && isASCIIByte(bite)) stream.prepend(bite);\n\n // 4. If code point is null, return error.\n if (code_point === null) return decoderError(fatal);\n\n // 5. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite)) return bite;\n\n // 5. If byte is in the range 0x81 to 0xFE, inclusive, set\n // euc-kr lead to byte and return continue.\n if (inRange(bite, 0x81, 0xfe)) {\n euckr_lead = bite;\n return null;\n }\n\n // 6. Return error.\n return decoderError(fatal);\n };\n}\n\n// 14.1.2 euc-kr encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction EUCKREncoder(options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 3. Let pointer be the index pointer for code point in index\n // euc-kr.\n var pointer = indexPointerFor(code_point, index('euc-kr'));\n\n // 4. If pointer is null, return error with code point.\n if (pointer === null) return encoderError(code_point);\n\n // 5. Let lead be floor(pointer / 190) + 0x81.\n var lead = floor(pointer / 190) + 0x81;\n\n // 6. Let trail be pointer % 190 + 0x41.\n var trail = (pointer % 190) + 0x41;\n\n // 7. Return two bytes whose values are lead and trail.\n return [lead, trail];\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['EUC-KR'] = function (options) {\n return new EUCKREncoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['EUC-KR'] = function (options) {\n return new EUCKRDecoder(options);\n};\n\n//\n// 15. Legacy miscellaneous encodings\n//\n\n// 15.1 replacement\n\n// Not needed - API throws RangeError\n\n// 15.2 Common infrastructure for utf-16be and utf-16le\n\n/**\n * @param {number} code_unit\n * @param {boolean} utf16be\n * @return {!Array.<number>} bytes\n */\nfunction convertCodeUnitToBytes(code_unit, utf16be) {\n // 1. Let byte1 be code unit >> 8.\n var byte1 = code_unit >> 8;\n\n // 2. Let byte2 be code unit & 0x00FF.\n var byte2 = code_unit & 0x00ff;\n\n // 3. Then return the bytes in order:\n // utf-16be flag is set: byte1, then byte2.\n if (utf16be) return [byte1, byte2];\n // utf-16be flag is unset: byte2, then byte1.\n return [byte2, byte1];\n}\n\n// 15.2.1 shared utf-16 decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {boolean} utf16_be True if big-endian, false if little-endian.\n * @param {{fatal: boolean}} options\n */\nfunction UTF16Decoder(utf16_be, options) {\n var fatal = options.fatal;\n var /** @type {?number} */ utf16_lead_byte = null,\n /** @type {?number} */ utf16_lead_surrogate = null;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and either utf-16 lead byte or\n // utf-16 lead surrogate is not null, set utf-16 lead byte and\n // utf-16 lead surrogate to null, and return error.\n if (bite === end_of_stream && (utf16_lead_byte !== null || utf16_lead_surrogate !== null)) {\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and utf-16 lead byte and utf-16\n // lead surrogate are null, return finished.\n if (bite === end_of_stream && utf16_lead_byte === null && utf16_lead_surrogate === null) {\n return finished;\n }\n\n // 3. If utf-16 lead byte is null, set utf-16 lead byte to byte\n // and return continue.\n if (utf16_lead_byte === null) {\n utf16_lead_byte = bite;\n return null;\n }\n\n // 4. Let code unit be the result of:\n var code_unit;\n if (utf16_be) {\n // utf-16be decoder flag is set\n // (utf-16 lead byte << 8) + byte.\n code_unit = (utf16_lead_byte << 8) + bite;\n } else {\n // utf-16be decoder flag is unset\n // (byte << 8) + utf-16 lead byte.\n code_unit = (bite << 8) + utf16_lead_byte;\n }\n // Then set utf-16 lead byte to null.\n utf16_lead_byte = null;\n\n // 5. If utf-16 lead surrogate is not null, let lead surrogate\n // be utf-16 lead surrogate, set utf-16 lead surrogate to null,\n // and then run these substeps:\n if (utf16_lead_surrogate !== null) {\n var lead_surrogate = utf16_lead_surrogate;\n utf16_lead_surrogate = null;\n\n // 1. If code unit is in the range U+DC00 to U+DFFF,\n // inclusive, return a code point whose value is 0x10000 +\n // ((lead surrogate \u2212 0xD800) << 10) + (code unit \u2212 0xDC00).\n if (inRange(code_unit, 0xdc00, 0xdfff)) {\n return 0x10000 + (lead_surrogate - 0xd800) * 0x400 + (code_unit - 0xdc00);\n }\n\n // 2. Prepend the sequence resulting of converting code unit\n // to bytes using utf-16be decoder flag to stream and return\n // error.\n stream.prepend(convertCodeUnitToBytes(code_unit, utf16_be));\n return decoderError(fatal);\n }\n\n // 6. If code unit is in the range U+D800 to U+DBFF, inclusive,\n // set utf-16 lead surrogate to code unit and return continue.\n if (inRange(code_unit, 0xd800, 0xdbff)) {\n utf16_lead_surrogate = code_unit;\n return null;\n }\n\n // 7. If code unit is in the range U+DC00 to U+DFFF, inclusive,\n // return error.\n if (inRange(code_unit, 0xdc00, 0xdfff)) return decoderError(fatal);\n\n // 8. Return code point code unit.\n return code_unit;\n };\n}\n\n// 15.2.2 shared utf-16 encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {boolean} utf16_be True if big-endian, false if little-endian.\n * @param {{fatal: boolean}} options\n */\nfunction UTF16Encoder(utf16_be, options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is in the range U+0000 to U+FFFF, inclusive,\n // return the sequence resulting of converting code point to\n // bytes using utf-16be encoder flag.\n if (inRange(code_point, 0x0000, 0xffff)) return convertCodeUnitToBytes(code_point, utf16_be);\n\n // 3. Let lead be ((code point \u2212 0x10000) >> 10) + 0xD800,\n // converted to bytes using utf-16be encoder flag.\n var lead = convertCodeUnitToBytes(((code_point - 0x10000) >> 10) + 0xd800, utf16_be);\n\n // 4. Let trail be ((code point \u2212 0x10000) & 0x3FF) + 0xDC00,\n // converted to bytes using utf-16be encoder flag.\n var trail = convertCodeUnitToBytes(((code_point - 0x10000) & 0x3ff) + 0xdc00, utf16_be);\n\n // 5. Return a byte sequence of lead followed by trail.\n return lead.concat(trail);\n };\n}\n\n// 15.3 utf-16be\n// 15.3.1 utf-16be decoder\n/** @param {{fatal: boolean}} options */\nencoders['UTF-16BE'] = function (options) {\n return new UTF16Encoder(true, options);\n};\n// 15.3.2 utf-16be encoder\n/** @param {{fatal: boolean}} options */\ndecoders['UTF-16BE'] = function (options) {\n return new UTF16Decoder(true, options);\n};\n\n// 15.4 utf-16le\n// 15.4.1 utf-16le decoder\n/** @param {{fatal: boolean}} options */\nencoders['UTF-16LE'] = function (options) {\n return new UTF16Encoder(false, options);\n};\n// 15.4.2 utf-16le encoder\n/** @param {{fatal: boolean}} options */\ndecoders['UTF-16LE'] = function (options) {\n return new UTF16Decoder(false, options);\n};\n\n// 15.5 x-user-defined\n\n// 15.5.1 x-user-defined decoder\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction XUserDefinedDecoder(options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream, return finished.\n if (bite === end_of_stream) return finished;\n\n // 2. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite)) return bite;\n\n // 3. Return a code point whose value is 0xF780 + byte \u2212 0x80.\n return 0xf780 + bite - 0x80;\n };\n}\n\n// 15.5.2 x-user-defined encoder\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction XUserDefinedEncoder(options) {\n var _fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function (stream, code_point) {\n // 1.If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point)) return code_point;\n\n // 3. If code point is in the range U+F780 to U+F7FF, inclusive,\n // return a byte whose value is code point \u2212 0xF780 + 0x80.\n if (inRange(code_point, 0xf780, 0xf7ff)) return code_point - 0xf780 + 0x80;\n\n // 4. Return error with code point.\n return encoderError(code_point);\n };\n}\n\n/** @param {{fatal: boolean}} options */\nencoders['x-user-defined'] = function (options) {\n return new XUserDefinedEncoder(options);\n};\n/** @param {{fatal: boolean}} options */\ndecoders['x-user-defined'] = function (options) {\n return new XUserDefinedDecoder(options);\n};\n\n// FORK\n// if (!globalThis['TextEncoder']) globalThis['TextEncoder'] = TextEncoder;\n// if (!globalThis['TextDecoder']) globalThis['TextDecoder'] = TextDecoder;\n// babel.config.js skip transpiling files in `libs/`\n// module.exports = {TextEncoder, TextDecoder};\nexport {TextEncoder, TextDecoder};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// btoa, atob polyfills for Node.js\n// Note: The atob and btoa functions (not just the polyfills!) are not unicode safe\n// But still useful for unit testing\n\nexport function atob(string) {\n return Buffer.from(string).toString('base64');\n}\n\nexport function btoa(base64) {\n return Buffer.from(base64, 'base64').toString('ascii');\n}\n", "// SPDX-License-Identifier: MIT\n\n/** Loads the optional Node image codec only when image processing is requested. */\nexport async function loadSharp(): Promise<typeof import('sharp').default> {\n try {\n return (await import('sharp')).default;\n } catch (error) {\n throw new Error(\n \"Node image decoding and encoding require the optional 'sharp' package. Install it with 'npm install sharp'.\",\n {cause: error}\n );\n }\n}\n", "// SPDX-License-Identifier: MIT\n\n/** Image MIME types supported by the optional Sharp Node backend. */\nexport const NODE_FORMAT_SUPPORT = [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/avif',\n 'image/tiff',\n 'image/svg+xml'\n];\n", "// SPDX-License-Identifier: MIT\n\nimport {loadSharp} from './load-sharp';\n\nexport {NODE_FORMAT_SUPPORT} from './node-image-formats';\n\n/** Decoded Node image pixels and dimensions. */\ntype NodeImageData = {\n /** Pixel layout, including a frame dimension for animations. */\n shape: number[];\n /** Interleaved RGBA pixels. */\n data: Uint8Array;\n /** Frame width in pixels. */\n width: number;\n /** Frame height in pixels. */\n height: number;\n /** Number of components per pixel. */\n components: number;\n /** Number of animation frames. */\n layers: number[];\n};\n\n/** Decodes encoded image bytes into RGBA pixels, detecting the format from the bytes. */\nexport async function parseImageNode(\n arrayBuffer: ArrayBuffer,\n _mimeType?: string\n): Promise<NodeImageData> {\n const sharp = await loadSharp();\n const {data, info: imageInformation} = await sharp(Buffer.from(arrayBuffer), {animated: true})\n .toColourspace('srgb')\n .ensureAlpha()\n .raw()\n .toBuffer({resolveWithObject: true});\n const width = imageInformation.width;\n const height = imageInformation.pageHeight || imageInformation.height;\n const frameCount = imageInformation.pages || 1;\n return {\n shape: frameCount > 1 ? [frameCount, width, height, 4] : [width, height, 4],\n data: new Uint8Array(data),\n width,\n height,\n components: 4,\n layers: [frameCount]\n };\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/** Convert a Node buffer, typed array, or ArrayBuffer-like value to an ArrayBuffer. */\nexport function toArrayBuffer(data: Buffer | ArrayBufferLike | ArrayBufferView): ArrayBuffer {\n if (data instanceof ArrayBuffer) {\n return data;\n }\n if (ArrayBuffer.isView(data)) {\n return ensureArrayBuffer(data);\n }\n return ensureArrayBuffer(data);\n}\n\n/** Return an ArrayBuffer without exposing pooled or shared backing memory. */\nexport function ensureArrayBuffer(data: ArrayBufferLike | ArrayBufferView): ArrayBuffer {\n if (data instanceof ArrayBuffer) {\n return data;\n }\n if (ArrayBuffer.isView(data)) {\n const {buffer, byteOffset, byteLength} = data;\n if (buffer instanceof ArrayBuffer && byteOffset === 0 && byteLength === buffer.byteLength) {\n return buffer;\n }\n return copyArrayBufferRange(buffer, byteOffset, byteLength);\n }\n return copyArrayBufferRange(data);\n}\n\n/** Copy a byte range into an ordinary ArrayBuffer. */\nfunction copyArrayBufferRange(\n buffer: ArrayBufferLike,\n offset = 0,\n length = buffer.byteLength - offset\n): ArrayBuffer {\n const copy = new Uint8Array(length);\n copy.set(new Uint8Array(buffer, offset, length));\n return copy.buffer;\n}\n", "// SPDX-License-Identifier: MIT\n\nimport {PassThrough} from 'node:stream';\nimport {loadSharp} from './load-sharp';\nimport {toArrayBuffer} from '../utils/buffer-utils';\n\n/** Raw RGBA image accepted by the Node encoder. */\ntype NodeImageData = {\n /** Interleaved RGBA pixels. */\n data: Uint8Array;\n /** Width in pixels. */\n width: number;\n /** Height in pixels. */\n height: number;\n};\n\n/** Options for the Node image encoder. */\ntype NodeImageEncoderOptions = {\n /** Output format name or MIME type; defaults to JPEG. */\n type?: string;\n /** Legacy option retained for callers. */\n dataURI?: string;\n};\n\n/** Encodes raw RGBA pixels with the optional Sharp backend. */\nexport async function encodeImageNode(\n image: NodeImageData,\n options: NodeImageEncoderOptions = {}\n): Promise<ArrayBuffer> {\n const sharp = await loadSharp();\n const requestedFormat = (options.type || 'jpeg').toLowerCase().replace(/^image\\//, '');\n const format = requestedFormat === 'jpg' ? 'jpeg' : requestedFormat;\n const encodedImage = await sharp(Buffer.from(image.data), {\n raw: {width: image.width, height: image.height, channels: 4}\n })\n .toFormat(format as keyof import('sharp').FormatEnum)\n .toBuffer();\n return toArrayBuffer(encodedImage);\n}\n\n/** Streams an encoded image and forwards codec loading and encoding failures. */\nexport function encodeImageToStreamNode(\n image: NodeImageData,\n options: NodeImageEncoderOptions = {}\n): PassThrough {\n const stream = new PassThrough();\n void encodeImageNode(image, options).then(\n arrayBuffer => stream.end(Buffer.from(arrayBuffer)),\n error => stream.destroy(error)\n );\n return stream;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\ntype NodeImageData = {\n data: Uint8Array;\n width: number;\n height: number;\n};\n\n/**\n * Minimal Node.js `ImageBitmap` polyfill backed by decoded pixel data.\n * This is intentionally limited to the functionality needed by `ImageLoader`\n * and `getImageBitmapData()`.\n */\nexport class NodeImageBitmap {\n /** Width of the decoded bitmap in pixels. */\n width: number;\n\n /** Height of the decoded bitmap in pixels. */\n height: number;\n\n /** Backing pixel data retained until `close()` is called. */\n private data: Uint8Array | null;\n\n /** Creates a bitmap wrapper around decoded Node.js image data. */\n constructor(imageData: NodeImageData) {\n if (!imageData || !imageData.data || !imageData.width || !imageData.height) {\n throw new Error('NodeImageBitmap requires decoded image data');\n }\n\n this.width = imageData.width;\n this.height = imageData.height;\n this.data = imageData.data;\n }\n\n /** Releases the backing pixel data and invalidates further reads. */\n close(): void {\n this.width = 0;\n this.height = 0;\n this.data = null;\n }\n\n /** Returns the decoded image data backing this bitmap. */\n _getImageData(): NodeImageData {\n if (!this.data) {\n throw new Error('ImageBitmap is closed');\n }\n\n return {\n data: this.data,\n width: this.width,\n height: this.height\n };\n }\n}\n\n/**\n * Detects whether a value is a Node.js `ImageBitmap` installed by `@loaders.gl/core/polyfills`.\n */\nexport function isNodeImageBitmap(image: unknown): image is NodeImageBitmap {\n return image instanceof NodeImageBitmap;\n}\n\n/**\n * Wraps decoded Node.js image data in the loaders.gl `NodeImageBitmap` polyfill.\n */\nexport function createImageBitmapNode(imageData: NodeImageData): NodeImageBitmap {\n return new NodeImageBitmap(imageData);\n}\n\n/**\n * Returns decoded image data from a Node.js `ImageBitmap`.\n */\nexport function getImageBitmapDataNode(image: unknown): NodeImageData {\n if (!isNodeImageBitmap(image)) {\n throw new Error('getImageBitmapData');\n }\n\n return image._getImageData();\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nlet pathPrefix = '';\nconst fileAliases = new Map<string, string>();\n\n/** Set the prefix applied to local paths used by Node polyfills. */\nexport function setPathPrefix(prefix: string): void {\n pathPrefix = prefix;\n}\n\n/** Register local path aliases used by Node polyfills. */\nexport function addAliases(aliases: Record<string, string>): void {\n for (const [alias, replacement] of Object.entries(aliases)) {\n fileAliases.set(alias, replacement);\n }\n}\n\n/** Resolve a local path using the polyfills path aliases and prefix. */\nexport function resolvePath(filename: string): string {\n for (const [alias, replacement] of fileAliases) {\n if (filename.startsWith(alias)) {\n filename = filename.replace(alias, replacement);\n }\n }\n if (!filename.startsWith('http://') && !filename.startsWith('https://')) {\n filename = `${pathPrefix}${filename}`;\n }\n return filename;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {resolvePath} from '../utils/path-utils';\nimport type {FileStat} from '../utils/filesystem-types';\nimport fs from 'fs';\n\nexport class NodeFile {\n handle: number;\n size: number;\n bigsize: bigint;\n url: string;\n\n constructor(path: string, flags: 'r' | 'w' | 'wx' | 'a+', mode?: number) {\n path = resolvePath(path);\n this.handle = fs.openSync(path, flags, mode);\n const stats = fs.fstatSync(this.handle, {bigint: true});\n this.size = Number(stats.size);\n this.bigsize = stats.size;\n this.url = path;\n }\n\n async close(): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.close(this.handle, err => (err ? reject(err) : resolve()));\n });\n }\n\n async truncate(length: number): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.ftruncate(this.handle, length, err => {\n if (err) {\n reject(err);\n } else {\n this.bigsize = BigInt(length);\n this.size = Number(this.bigsize);\n resolve();\n }\n });\n });\n }\n\n async append(data: Uint8Array): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.appendFile(this.handle, data, err => {\n if (err) {\n reject(err);\n } else {\n this.bigsize = this.bigsize + BigInt(data.length);\n this.size = Number(this.bigsize);\n resolve();\n }\n });\n });\n }\n\n async stat(): Promise<FileStat> {\n return await new Promise((resolve, reject) =>\n fs.fstat(this.handle, {bigint: true}, (err, info) => {\n const stats: FileStat = {\n size: Number(info.size),\n bigsize: info.size,\n isDirectory: info.isDirectory()\n };\n if (err) {\n reject(err);\n } else {\n resolve(stats);\n }\n })\n );\n }\n\n async read(offset: number | bigint, length: number): Promise<ArrayBuffer> {\n const arrayBuffer = new ArrayBuffer(length);\n let bigOffset = BigInt(offset);\n\n let totalBytesRead = 0;\n const uint8Array = new Uint8Array(arrayBuffer);\n\n let position;\n // Read in loop until we get required number of bytes\n while (length > 0) {\n const bytesRead = await readBytes(this.handle, uint8Array, 0, length, bigOffset);\n\n // Check if end of file reached\n if (bytesRead === 0) {\n break;\n }\n\n totalBytesRead += bytesRead;\n bigOffset += BigInt(bytesRead);\n length -= bytesRead;\n\n // Advance position unless we are using built-in position advancement\n if (position !== undefined) {\n position += bytesRead;\n }\n }\n return totalBytesRead < length ? arrayBuffer.slice(0, totalBytesRead) : arrayBuffer;\n }\n\n async write(\n arrayBuffer: ArrayBuffer,\n offset: number | bigint = 0,\n length: number = arrayBuffer.byteLength\n ): Promise<number> {\n return new Promise((resolve, reject) => {\n // TODO - Node.js doesn't offer write with bigint offsets???\n const nOffset = Number(offset);\n const uint8Array = new Uint8Array(arrayBuffer, Number(offset), length);\n fs.write(this.handle, uint8Array, 0, length, nOffset, (err, bytesWritten) =>\n err ? reject(err) : resolve(bytesWritten)\n );\n });\n }\n}\n\nasync function readBytes(\n fd: number,\n uint8Array: Uint8Array,\n offset: number,\n length: number,\n position: number | bigint | null\n): Promise<number> {\n return await new Promise<number>((resolve, reject) =>\n fs.read(fd, uint8Array, offset, length, position, (err, bytesRead) =>\n err ? reject(err) : resolve(bytesRead)\n )\n );\n}\n\n// TODO - implement streaming write\n/*\nexport interface WriteStreamOptions {\n flags?: string;\n encoding?: 'utf8';\n fd?: number;\n mode?: number;\n autoClose?: boolean;\n start?: number;\n}\n\nexport class NodeStreamWritableFile implements WritableFile {\n outputStream: fs.WriteStream | Writable;\n\n constructor(pathOrStream: string | Writable, options?: WriteStreamOptions) {\n this.outputStream =\n typeof pathOrStream === 'string' ? fs.createWriteStream(pathOrStream, options) : pathOrStream;\n }\n\n async write(buffer: ArrayBuffer): Promise<void> {\n return new Promise((resolve, reject) => {\n const uint8Array = new Uint8Array(buffer);\n this.outputStream.write(uint8Array, (err) => (err ? reject(err) : resolve()));\n });\n }\n\n async close(): Promise<void> {\n if (this.outputStream instanceof fs.WriteStream) {\n return new Promise((resolve, reject) => {\n const stream = this.outputStream as fs.WriteStream;\n stream.close((err) => (err ? reject(err) : resolve()));\n });\n }\n }\n}\n*/\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport fsPromise from 'fs/promises';\nimport type {FileStat} from '../utils/filesystem-types';\nimport {NodeFile} from './node-file';\nimport {fetchNode} from './fetch-node';\n\n// import {fetchFile} from \"../fetch/fetch-file\"\n// import {selectLoader} from \"../api/select-loader\";\n\n/**\n * FileSystem pass-through for Node.js\n * Compatible with BrowserFileSystem.\n * @param options\n */\nexport class NodeFileSystem {\n readable: boolean = true;\n writable: boolean = true;\n\n // implements FileSystem\n constructor() {}\n\n async readdir(dirname = '.', options?: {}): Promise<any[]> {\n return await fsPromise.readdir(dirname, options);\n }\n\n async stat(path: string): Promise<FileStat> {\n const info = await fsPromise.stat(path, {bigint: true});\n return {\n size: Number(info.size),\n bigsize: info.size,\n isDirectory: info.isDirectory()\n };\n }\n\n async unlink(path: string): Promise<void> {\n return await fsPromise.unlink(path);\n }\n\n async fetch(path: string, options: RequestInit): Promise<Response> {\n return await fetchNode(path, options);\n }\n\n // implements IRandomAccessFileSystem\n async openReadableFile(path: string, flags: 'r' = 'r'): Promise<NodeFile> {\n return new NodeFile(path, flags);\n }\n\n async openWritableFile(path: string, flags: 'w' | 'wx' = 'w', mode?: any): Promise<NodeFile> {\n return new NodeFile(path, flags, mode);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport fs from 'fs';\nimport {Readable} from 'stream';\nimport {resolvePath} from '../utils/path-utils';\nimport {decompressReadStream} from './stream-utils.node.js';\n\nconst isBoolean = x => typeof x === 'boolean';\nconst isFunction = x => typeof x === 'function';\nconst isObject = x => x !== null && typeof x === 'object';\nconst isReadableNodeStream = x =>\n isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\n\n/**\n * Enables\n * @param url\n * @param options\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport async function fetchNode(url: string, options?: RequestInit): Promise<Response> {\n // Support `file://` protocol\n const FILE_PROTOCOL_REGEX = /^file:\\/\\//;\n url.replace(FILE_PROTOCOL_REGEX, '/');\n\n // Remove any query parameters, as they have no meaning\n let noqueryUrl = url.split('?')[0];\n noqueryUrl = resolvePath(noqueryUrl);\n\n const responseHeaders = new Headers();\n // Automatically decompress gzipped files with .gz extension\n if (url.endsWith('.gz')) {\n // url = url.slice(0, -3);\n responseHeaders.set('content-encoding', 'gzip');\n }\n if (url.endsWith('.br')) {\n // url = url.slice(0, -3);\n responseHeaders.set('content-encoding', 'br');\n }\n\n try {\n // Now open the stream\n const body = await new Promise<fs.ReadStream>((resolve, reject) => {\n // @ts-ignore\n const stream = fs.createReadStream(noqueryUrl, {encoding: null});\n stream.once('readable', () => resolve(stream));\n stream.on('error', error => reject(error));\n });\n\n let bodyStream: Readable = body;\n\n // Check for content-encoding and create a decompression stream\n if (isReadableNodeStream(body)) {\n bodyStream = decompressReadStream(body, responseHeaders);\n } else if (typeof body === 'string') {\n bodyStream = Readable.from([new TextEncoder().encode(body)]);\n } else {\n bodyStream = Readable.from([body || new ArrayBuffer(0)]);\n }\n\n const status = 200;\n const statusText = 'OK';\n const headers = getHeadersForFile(noqueryUrl);\n // @ts-expect-error\n const response = new Response(bodyStream, {headers, status, statusText});\n Object.defineProperty(response, 'url', {value: url});\n return response;\n } catch (error) {\n // console.error(error);\n const errorMessage = (error as Error).message;\n const status = 400;\n const statusText = errorMessage;\n const headers = {};\n const response = new Response(errorMessage, {headers, status, statusText});\n Object.defineProperty(response, 'url', {value: url});\n return response;\n }\n}\n\nfunction getHeadersForFile(noqueryUrl: string): Headers {\n const headers = {};\n\n // Fix up content length if we can for best progress experience\n if (!headers['content-length']) {\n const stats = fs.statSync(noqueryUrl);\n headers['content-length'] = stats.size;\n }\n\n // Automatically decompress gzipped files with .gz extension\n if (noqueryUrl.endsWith('.gz')) {\n noqueryUrl = noqueryUrl.slice(0, -3);\n headers['content-encoding'] = 'gzip';\n }\n\n return new Headers(headers);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport zlib from 'zlib';\nimport {Readable} from 'stream';\nimport {toArrayBuffer} from '../utils/buffer-utils';\n\n/**\n *\n */\nexport function decompressReadStream(readStream: Readable, headers?: Headers) {\n switch (headers?.get('content-encoding')) {\n case 'br':\n return readStream.pipe(zlib.createBrotliDecompress());\n case 'gzip':\n return readStream.pipe(zlib.createGunzip());\n case 'deflate':\n return readStream.pipe(zlib.createDeflate());\n default:\n // No compression or an unknown one, just return it as is\n return readStream;\n }\n}\n\n/**\n *\n * @param readStream\n * @returns\n */\nexport async function concatenateReadStream(readStream): Promise<ArrayBuffer> {\n const arrayBufferChunks: ArrayBuffer[] = [];\n\n return await new Promise((resolve, reject) => {\n readStream.on('error', error => reject(error));\n\n // Once the readable callback has been added, stream switches to \"flowing mode\"\n // In Node 10 (but not 12 and 14) this causes `data` and `end` to never be called unless we read data here\n readStream.on('readable', () => readStream.read());\n\n readStream.on('data', chunk => {\n if (typeof chunk === 'string') {\n reject(new Error('Read stream not binary'));\n }\n arrayBufferChunks.push(toArrayBuffer(chunk));\n });\n\n readStream.on('end', () => {\n const arrayBuffer = concatenateArrayBuffers(arrayBufferChunks);\n resolve(arrayBuffer);\n });\n });\n}\n\n/**\n * Concatenate a sequence of ArrayBuffers\n * @return A concatenated ArrayBuffer\n * @note duplicates loader-utils since polyfills should be independent\n */\nexport function concatenateArrayBuffers(sources: (ArrayBuffer | Uint8Array)[]): ArrayBuffer {\n // Make sure all inputs are wrapped in typed arrays\n const sourceArrays = sources.map(source2 =>\n source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2\n );\n\n // Get length of all inputs\n const byteLength = sourceArrays.reduce((length, typedArray) => length + typedArray.byteLength, 0);\n\n // Allocate array with space for all inputs\n const result = new Uint8Array(byteLength);\n\n // Copy the subarrays\n let offset = 0;\n for (const sourceArray of sourceArrays) {\n result.set(sourceArray, offset);\n offset += sourceArray.byteLength;\n }\n\n // We work with ArrayBuffers, discard the typed array wrapper\n return result.buffer;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport * as crypto from 'crypto'; // Node.js builtin\n\ntype CryptoHashOptions = {\n crypto: {\n algorithm: string;\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\n/**\n * Calculates Cryptographic Hash using Node.js crypto library\n * @deprecated Warning, experimental class\n */\nexport class NodeHash {\n readonly name = 'crypto-node';\n\n options: CryptoHashOptions;\n // @ts-ignore\n private _algorithm;\n // @ts-ignore\n private _hash;\n\n constructor(options: CryptoHashOptions) {\n this.options = options;\n this.hashBatches = this.hashBatches.bind(this);\n if (!this.options?.crypto?.algorithm) {\n throw new Error(this.name);\n }\n }\n\n /** Complete the optional hash initialization step. */\n async preload(): Promise<void> {\n return;\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n // await this.preload();\n const algorithm = this.options?.crypto?.algorithm?.toLowerCase();\n try {\n if (!crypto.createHash) {\n throw new Error('crypto.createHash not available');\n }\n const hash = crypto.createHash?.(algorithm);\n const inputArray = new Uint8Array(input);\n return hash.update(inputArray).digest('base64');\n } catch (error) {\n throw Error(`${algorithm} hash not available. ${error}`);\n }\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\n ): AsyncIterable<ArrayBuffer> {\n // await this.preload();\n if (!crypto.createHash) {\n throw new Error('crypto.createHash not available');\n }\n const hash = crypto.createHash?.(this.options?.crypto?.algorithm?.toLowerCase());\n for await (const chunk of asyncIterator) {\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n const inputArray = new Uint8Array(chunk);\n hash.update(inputArray);\n yield chunk;\n }\n // We can pass our encoding constant directly to Node.js digest as it already supports `hex` and `base64`\n const digest = hash.digest(encoding);\n this.options?.crypto?.onEnd?.({hash: digest});\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable dot-notation */\nimport {isBrowser} from './utils/is-browser';\n\nimport {TextDecoder, TextEncoder} from './text-encoder/text-encoder';\n\n// Node specific\nimport {atob, btoa} from './buffer/btoa.node.js';\n\nimport {encodeImageNode, parseImageNode, NODE_FORMAT_SUPPORT} from './images/image-codecs-node';\nimport {\n createImageBitmapNode,\n NodeImageBitmap,\n getImageBitmapDataNode,\n isNodeImageBitmap\n} from './images/node-image-bitmap';\n\n// FILESYSTEM POLYFILLS\nimport {NodeFile} from './filesystems/node-file';\nimport {NodeFileSystem} from './filesystems/node-filesystem';\nimport {fetchNode} from './filesystems/fetch-node';\n\nimport {NodeHash} from './crypto/node-hash';\n\n// NODE VERSION\nimport {versions} from 'node:process';\nimport {ReadableStream as NodeReadableStream} from 'node:stream/web';\nexport const nodeVersion = parseInt(versions.node.split('.')[0]);\n\n// STREAM POLYFILLS\nimport {makeNodeStream} from './streams/make-node-stream';\n\n// Native Blob and File constructors and the FileReader adapter.\nimport {installFilePolyfills} from './file/install-file-polyfills';\n/** Native Node.js Blob constructor. */\nexport const Blob = globalThis.Blob;\n/** Native Node.js File constructor. */\nexport const File = globalThis.File;\ninstallFilePolyfills();\n\nif (isBrowser) {\n // eslint-disable-next-line no-console\n console.error(\n 'loaders.gl: The @loaders.gl/core/polyfills should only be used in Node.js environments'\n );\n}\n\nglobalThis.loaders = globalThis.loaders || {};\n\n// STREAM POLYFILLS\nexport {makeNodeStream} from './streams/make-node-stream';\nglobalThis.loaders.makeNodeStream = makeNodeStream;\n\n// FILESYSTEM POLYFILLS\nglobalThis.loaders.NodeFile = NodeFile;\nglobalThis.loaders.NodeFileSystem = NodeFileSystem;\nglobalThis.loaders.fetchNode = fetchNode;\n\n// CRYPTO POLYFILLS\nglobalThis.loaders.NodeHash = NodeHash;\n\n// POLYFILLS: TextEncoder, TextDecoder\n// - Recent Node versions have these classes but virtually no encodings unless special build.\n// - Browser: Edge, IE11 do not have these\n\nif (!globalThis.TextEncoder) {\n // @ts-expect-error\n globalThis.TextEncoder = TextEncoder;\n}\n\nif (!globalThis.TextDecoder) {\n // @ts-expect-error\n globalThis.TextDecoder = TextDecoder;\n}\n\nif (!globalThis.ReadableStream) {\n globalThis.ReadableStream = NodeReadableStream as typeof ReadableStream;\n}\n\n// POLYFILLS: btoa, atob\n// - Node: Yes\n// - Browser: No\n\nif (!('atob' in globalThis) && atob) {\n globalThis['atob'] = atob;\n}\nif (!('btoa' in globalThis) && btoa) {\n globalThis['btoa'] = btoa;\n}\n\n// NODE IMAGE FUNCTIONS:\n// These are not official polyfills but used by the @loaders.gl/images module if installed\n// TODO - is there an appropriate Image API we could polyfill using an adapter?\n\nglobalThis.loaders.encodeImageNode = encodeImageNode;\nglobalThis.loaders.parseImageNode = parseImageNode;\nglobalThis.loaders.imageFormatsNode = NODE_FORMAT_SUPPORT;\nglobalThis.loaders.createImageBitmapNode = createImageBitmapNode;\nglobalThis.loaders.getImageBitmapDataNode = getImageBitmapDataNode;\nglobalThis.loaders.isImageBitmapNode = isNodeImageBitmap;\n\nif (!globalThis.ImageBitmap) {\n (globalThis as any).ImageBitmap = NodeImageBitmap;\n}\n\nif (!('getImageBitmapData' in globalThis)) {\n (globalThis as any).getImageBitmapData = getImageBitmapDataNode;\n}\n\n// Deprecated, remove after republish\nglobalThis._parseImageNode = parseImageNode;\nglobalThis._imageFormatsNode = NODE_FORMAT_SUPPORT;\n\n// LOAD LIBRARY\n\nimport {\n readFileAsArrayBuffer,\n readFileAsText,\n requireFromFile,\n requireFromString\n} from './load-library/require-utils.node.js';\n\nglobalThis.loaders.readFileAsArrayBuffer = readFileAsArrayBuffer;\nglobalThis.loaders.readFileAsText = readFileAsText;\nglobalThis.loaders.requireFromFile = requireFromFile;\nglobalThis.loaders.requireFromString = requireFromString;\n\nexport {installFilePolyfills};\nexport {setPathPrefix, addAliases} from './utils/path-utils';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Readable, getDefaultHighWaterMark} from 'node:stream';\nimport type {ReadableOptions} from 'node:stream';\n\nexport type MakeStreamOptions = ReadableOptions;\n\n/** Builds a Node stream of byte chunks from a synchronous or asynchronous iterable. */\nexport function makeNodeStream<Value>(\n source: Iterable<Value> | AsyncIterable<Value>,\n options?: ReadableOptions\n): Readable {\n const iterator =\n Symbol.asyncIterator in source ? source[Symbol.asyncIterator]() : source[Symbol.iterator]();\n let iteratorFailed = false;\n const convertedIterator: AsyncIterableIterator<Uint8Array> = {\n async next() {\n try {\n const result = await iterator.next();\n if (result.done) {\n await iterator.return?.();\n return {done: true, value: undefined};\n }\n return {done: false, value: new Uint8Array(result.value as ArrayBuffer)};\n } catch (error) {\n iteratorFailed = true;\n throw error;\n }\n },\n async return(value?: unknown) {\n await iterator.return?.(value as never);\n return {done: true, value: undefined};\n },\n async throw(error?: unknown) {\n if (iterator.throw) {\n await iterator.throw(error);\n }\n return {done: true, value: undefined};\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n\n const objectMode = options?.objectMode ?? false;\n const stream = Readable.from(convertedIterator, {\n highWaterMark: getDefaultHighWaterMark(objectMode),\n ...options,\n objectMode\n });\n const destroyStream = stream._destroy;\n stream._destroy = function (error, callback) {\n destroyStream.call(this, error, destroyError => {\n // The previous adapter consumed explicit destroy errors after forwarding them to the iterator.\n callback(!iteratorFailed && destroyError === error ? null : destroyError);\n });\n };\n return stream;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport {atob} from '../buffer/btoa.node.js';\n\nexport class FileReaderPolyfill implements FileReader {\n // onload: ({result: any}) => void;\n onload;\n onabort;\n onerror;\n error;\n onloadstart;\n onloadend;\n onprogress;\n\n readyState;\n result;\n DONE;\n EMPTY;\n LOADING;\n addEventListener;\n removeEventListener;\n dispatchEvent;\n\n constructor() {\n this.onload = null;\n }\n\n abort(): void {\n return;\n }\n\n async readAsArrayBuffer(blob: Blob): Promise<void> {\n const arrayBuffer = await blob.arrayBuffer();\n if (this.onload) {\n this.onload({target: {result: arrayBuffer}});\n }\n }\n\n async readAsBinaryString(blob) {\n throw Error('Not implemented');\n }\n\n async readAsDataURL(blob) {\n const text = await blob.text();\n const dataUrl = `data://;base64,${atob(text)}`;\n if (this.onload) {\n this.onload({target: {result: dataUrl}});\n }\n }\n\n async readAsText(blob) {\n const text = await blob.text();\n if (this.onload) {\n this.onload({target: {result: text}});\n }\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport {FileReaderPolyfill} from './file-reader';\n\nexport function installFilePolyfills() {\n if (typeof FileReader === 'undefined' && !globalThis.FileReader) {\n // @ts-ignore;\n globalThis.FileReader = FileReaderPolyfill;\n }\n\n return global;\n}\n", "// SPDX-License-Identifier: MIT\n\n// Fork of https://github.com/floatdrop/require-from-string/blob/master/index.js\n// Copyright (c) Vsevolod Strukchinsky <floatdrop@gmail.com> (github.com/floatdrop)\n// MIT license\n\n// this file is not visible to webpack (it is excluded in the package.json \"browser\" field).\n\nimport Module from 'module';\nimport path from 'path';\nimport fs from 'fs';\nimport {fileURLToPath} from 'node:url';\nimport {ensureArrayBuffer} from '../utils/buffer-utils';\n\n/**\n * Loads exact file bytes from a local path, file URL or HTTP(S) resource.\n * Typed-array byte ranges are preserved rather than exposing a pooled Node backing buffer.\n * @param filename - Resource location; relative file paths resolve against the working directory.\n */\nexport async function readFileAsArrayBuffer(filename: string): Promise<ArrayBuffer> {\n if (filename.startsWith('http')) {\n const response = await fetch(filename);\n return await response.arrayBuffer();\n }\n return ensureArrayBuffer(fs.readFileSync(resolveFilePath(filename)));\n}\n\n/**\n * Loads UTF-8 text from a local path, file URL or HTTP(S) resource.\n * @param filename - Resource location; relative file paths resolve against the working directory.\n */\nexport async function readFileAsText(filename: string): Promise<string> {\n if (filename.startsWith('http')) {\n const response = await fetch(filename);\n return await response.text();\n }\n const text = fs.readFileSync(resolveFilePath(filename), 'utf8');\n return text;\n}\n\n// Node.js Dynamically require from file\n// Relative names are resolved relative to cwd\n// This indirect function is provided because webpack will try to bundle `module.require`.\n// this file is not visible to webpack (it is excluded in the package.json \"browser\" field).\n/** Loads a CommonJS library, resolving local relative imports against the library file. */\nexport async function requireFromFile(filename: string): Promise<any> {\n if (filename.startsWith('http')) {\n const response = await fetch(filename);\n const code = await response.text();\n return requireFromString(code);\n }\n\n const filePath = resolveFilePath(filename);\n const code = fs.readFileSync(filePath, 'utf8');\n return requireFromString(code, filePath);\n}\n\n// Dynamically require from string\n// - `code` - Required - Type: string - Module code.\n// - `filename` - Type: string - Default: '' - Optional filename.\n// - `options.appendPaths` Type: Array List of paths, that will be appended to module paths.\n// Useful, when you want to be able require modules from these paths.\n// - `options.prependPaths` Type: Array Same as appendPaths, but paths will be prepended.\n/** Evaluates a CommonJS library with an optional filename/file URL and module search paths. */\nexport function requireFromString(\n code: string,\n filename = '',\n options?: {\n prependPaths?: string[];\n appendPaths?: string[];\n }\n): any {\n if (typeof filename === 'object') {\n options = filename;\n filename = '';\n }\n if (filename.startsWith('file:')) filename = fileURLToPath(filename);\n\n if (typeof code !== 'string') {\n throw new Error(`code must be a string, not ${typeof code}`);\n }\n\n // @ts-ignore\n const paths = Module._nodeModulePaths(path.dirname(filename));\n\n const parent = typeof module !== 'undefined' && module?.parent;\n\n // @ts-ignore\n const newModule = new Module(filename, parent);\n newModule.filename = filename;\n newModule.paths = ([] as string[])\n .concat(options?.prependPaths || [])\n .concat(paths)\n .concat(options?.appendPaths || []);\n // @ts-ignore\n newModule._compile(code, filename);\n\n if (parent && parent.children) {\n parent.children.splice(parent.children.indexOf(newModule), 1);\n }\n\n return newModule.exports;\n}\n\n/** Resolves local paths and file URLs without treating URL escapes or drive paths as relative names. */\nfunction resolveFilePath(filename: string): string {\n return filename.startsWith('file:') ? fileURLToPath(filename) : path.resolve(filename);\n}\n", "// 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\nimport {Worker, parentPort as nodeParentPort} from 'worker_threads';\n\n/** The runtime surface used by the worker farm, without Node-only public types. */\nexport type NodeWorkerType = {\n postMessage(value: unknown, transferList?: any[]): void;\n terminate(): unknown;\n on(event: string, listener: (...args: any[]) => void): unknown;\n ref(): unknown;\n unref(): unknown;\n};\ntype ParentPort = {\n postMessage(value: unknown, transferList?: any[]): void;\n on(event: string, listener: (...args: any[]) => void): unknown;\n off(event: string, listener: (...args: any[]) => void): unknown;\n};\nexport const parentPort: ParentPort | null = nodeParentPort as ParentPort | null;\nexport const NodeWorker: new (filename: string | URL, options?: any) => NodeWorkerType = Worker;\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 } from './ipc/reader.js';\nimport { RecordBatchWriter } from './ipc/writer.js';\nimport { toNodeStream } from './io/node/iterable.js';\nimport { builderThroughNodeStream } from './io/node/builder.js';\nimport { recordBatchReaderThroughNodeStream } from './io/node/reader.js';\nimport { recordBatchWriterThroughNodeStream } from './io/node/writer.js';\n\nstreamAdapters.toNodeStream = toNodeStream;\nBuilder['throughNode'] = builderThroughNodeStream;\nRecordBatchReader['throughNode'] = recordBatchReaderThroughNodeStream;\nRecordBatchWriter['throughNode'] = recordBatchWriterThroughNodeStream;\n\nexport * from './Arrow.dom.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, 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, 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, "// 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, 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", "// 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", "// 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\n// Polyfills provide Node file loading helpers used by the shared library loader.\nimport '@loaders.gl/core/polyfills';\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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I,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAC7gB,cAAa,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EACphB,cAAa,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAC7gB,cAAa,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,IAAI;AAAA,EAC1mB,cAAa,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EAC1mB,cAAa,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,KAAI,MAAK,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAI;AAAA,EACrhB,cAAa,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EAC/kB,eAAc,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAC/gB,eAAc,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAI;AAAA,EAClhB,eAAc,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,KAAI,KAAI,KAAI,MAAK,MAAK,KAAI,KAAI,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EACpiB,eAAc,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAC/gB,eAAc,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EACjhB,UAAS,CAAC,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EACnoB,UAAS,CAAC,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EACnoB,aAAY,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,MAAK,KAAI,KAAI,MAAK,KAAI,MAAK,MAAK,KAAI,KAAI,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,MAAK,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,OAAM,OAAM,MAAK,KAAI,MAAK,MAAK,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,OAAM,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAChjB,eAAc,CAAC,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EACtnB,gBAAe,CAAC,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAChiB,gBAAe,CAAC,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,MAAK,MAAK,MAAK,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EAC/nB,gBAAe,CAAC,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAChiB,gBAAe,CAAC,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAI;AAAA,EACpiB,gBAAe,CAAC,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EAChiB,gBAAe,CAAC,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EACjmB,gBAAe,CAAC,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,MAAK,MAAK,IAAI;AAAA,EAChmB,gBAAe,CAAC,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAA,EACliB,gBAAe,CAAC,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,GAAG;AAAA,EACjiB,kBAAiB,CAAC,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,KAAI,MAAK,KAAI,MAAK,MAAK,KAAI,KAAI,MAAK,KAAI,MAAK,MAAK,MA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",
6
+ "names": ["inRange", "exports", "module", "exports", "module", "fs", "path", "buffer", "exports", "module", "exports", "module", "path", "family", "familySync", "version", "versionSync", "exports", "module", "exports", "module", "exports", "module", "index", "exports", "module", "exports", "module", "exports", "module", "version", "exports", "module", "version", "exports", "module", "version", "exports", "module", "version", "exports", "module", "version", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "version", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "version", "exports", "module", "version", "exports", "module", "exports", "module", "cache", "version", "exports", "module", "version", "exports", "module", "version", "exports", "module", "exports", "module", "versions", "exports", "module", "versions", "exports", "module", "require_valid", "exports", "module", "exports", "module", "version", "exports", "module", "version", "exports", "module", "version", "exports", "module", "exports", "module", "versions", "version", "exports", "module", "require_semver", "exports", "module", "semver", "detectLibc", "_a", "globalLibvipsVersion", "pkgConfigPath", "import_detect_libc", "require", "runtimePlatformArch", "isUnsupportedNodeRuntime", "prebuiltPlatforms", "minimumLibvipsVersion", "_a", "clone", "debuglog", "queueListener", "util", "stream", "fn", "metadata", "stats", "Sharp", "extend", "Sharp", "composite", "Sharp", "flip", "flop", "gamma", "kernel", "threshold", "Sharp", "exports", "module", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "__export", "__copyProps", "string", "color", "integer", "grayscale", "queue", "path", "fn", "object", "self", "number", "exports", "module", "tint", "greyscale", "grayscale", "colourspace", "color", "Sharp", "bool", "Sharp", "path", "format", "Sharp", "concurrency", "simd", "import_node_module", "import_detect_libc", "import_meta", "require", "runtimePlatform", "_", "detectLibc", "events", "Sharp", "require_constants", "exports", "exports", "exports", "Encoding", "exports", "ByteBuffer", "position", "exports", "Builder", "exports", "string", "stream", "index", "code_point", "TextDecoder", "TextEncoder", "buffer", "string", "arrayBuffer", "sharp", "buffer", "sharp", "format", "path", "fs", "stats", "arrayBuffer", "position", "import_fs", "zlib", "stream", "fs", "stats", "fsPromise", "path", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "import_node_stream", "_a", "stream", "arrayBuffer", "import_fs", "fs", "code", "Module", "path", "Blob", "TextEncoder", "TextDecoder", "NodeReadableStream", "version", "isBrowser", "nodeVersion", "getVersion", "VERSION", "assert", "globals", "self_", "window_", "global_", "document_", "isBrowser", "isMobile", "matches", "nodeVersion", "_a", "timeout", "nodeParentPort", "assert", "object", "clone", "isBrowser", "assert", "_a", "worker", "index", "_a", "onMessage", "_b", "_c", "_d", "_e", "queuedJob", "isMobile", "onMessage", "parentPort", "VERSION", "_a", "_b", "isBrowser", "assert", "version", "isBrowser", "buffer", "createAbortError", "_a", "isBrowser", "error", "_a", "process", "_a", "throwIfAborted", "arrayBuffer", "onMessage", "finished", "import_meta", "path", "_a", "_b", "isBrowser", "requireFromFile", "moduleUrl", "_e", "readFileAsArrayBuffer", "readFileAsText", "globals", "self_", "window_", "global_", "document_", "isBrowser", "matches", "nodeVersion", "module", "_a", "_b", "isBrowser", "Binary", "BinaryView", "Bool", "Decimal", "Duration", "Field", "FixedSizeBinary", "FixedSizeList", "LargeBinary", "LargeList", "LargeUtf8", "List", "Message", "Null", "RecordBatch", "Schema", "Type", "Utf8", "Utf8View", "util", "v", "toUint8Array", "isBoolean", "isFunction", "isObject", "isObject", "isFunction", "isObject", "isObject", "isFunction", "isObject", "isFunction", "isBoolean", "isReadableNodeStream", "buffer", "index", "toUint8Array", "source", "pump", "stream", "buffer", "toUint8Array", "events", "err", "fn", "MetadataVersion", "UnionMode", "Precision", "DateUnit", "TimeUnit", "IntervalUnit", "flatbuffers", "flatbuffers", "BodyCompressionMethod", "CompressionType", "Buffer", "index", "Buffer", "flatbuffers", "Endianness", "flatbuffers", "flatbuffers", "DictionaryKind", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "Date", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "Map", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "flatbuffers", "index", "flatbuffers", "flatbuffers", "Type", "index", "index", "MessageHeader", "Type", "BufferType", "x", "number", "buffer", "number", "Type", "Null", "Type", "Binary", "BinaryView", "LargeBinary", "Utf8", "Utf8View", "LargeUtf8", "Bool", "Decimal", "Type", "Type", "Duration", "Type", "List", "LargeList", "FixedSizeBinary", "Type", "FixedSizeList", "Type", "fn", "fn", "index", "BinaryView", "_a", "_b", "_c", "_d", "instance", "fn", "index", "_a", "instance", "instance", "index", "getBool", "setBool", "index", "_a", "byteLength", "nullCount", "buffer", "index", "Type", "BinaryView", "instance", "toUint8Array", "Utf8View", "length", "index", "fn", "getBool", "Type", "instance", "instance", "_b", "index", "_d", "_c", "Type", "instance", "begin", "end", "newData", "_a", "cache", "index", "buffer", "size", "index", "_a", "_b", "_c", "_d", "flatbuffers", "index", "version", "flatbuffers", "Schema", "metadata", "instance", "Field", "Builder", "ByteBuffer", "toUint8Array", "Schema", "version", "block", "index", "index", "block", "flatbuffers", "flatbuffers", "index", "version", "Date", "Map", "instance", "Schema", "RecordBatch", "DictionaryBatch", "Field", "FieldNode", "metadata", "Null", "Binary", "LargeBinary", "BinaryView", "Utf8", "LargeUtf8", "Utf8View", "Bool", "List", "LargeList", "Decimal", "Duration", "FixedSizeBinary", "FixedSizeList", "Builder", "ByteBuffer", "Message", "toUint8Array", "version", "metadata", "Schema", "RecordBatch", "DictionaryBatch", "FieldNode", "BodyCompression", "Field", "Null", "Binary", "LargeBinary", "BinaryView", "Utf8", "LargeUtf8", "Utf8View", "Bool", "List", "LargeList", "Decimal", "Date", "Duration", "FixedSizeBinary", "FixedSizeList", "Map", "instance", "Buffer", "buffer", "AsyncQueue", "AsyncQueue", "toUint8Array", "_d", "_e", "_f", "_a", "_c", "isReadableNodeStream", "buffer", "toUint8Array", "position", "Int64", "Uint64", "buffer", "negate", "_a", "_b", "Field", "buffer", "_a", "Int64", "encoder", "index", "toUint8Array", "index", "toUint8Array", "index", "index", "index", "FixedSizeList", "Field", "index", "index", "List", "Field", "index", "LargeList", "Field", "index", "index", "Field", "index", "index", "Field", "index", "Field", "index", "index", "buffer", "index", "BinaryView", "toUint8Array", "index", "instance", "instance", "instance", "index", "type", "RecordBatch", "Schema", "Null", "Utf8", "Bool", "List", "Field", "_d", "_a", "_c", "RecordBatch", "_a", "Schema", "RecordBatch", "Field", "batches", "_c", "_b", "index", "instance", "data", "Null", "indices", "oldToNew", "_a", "Type", "RecordBatch", "Schema", "Field", "index", "instance", "_b", "Null", "_a", "_c", "metadata", "toUint8Array", "Message", "buffer", "index", "buffer", "_a", "flatbuffers", "index", "isReadableNodeStream", "_a", "_d", "_e", "_f", "_c", "RecordBatch", "DictionaryBatch", "buffer", "block", "self", "RecordBatch", "FieldNode", "index", "_a", "buffer", "getBool", "flatbuffers", "isObject", "BodyCompression", "RecordBatch", "buffer", "Message", "toUint8Array", "DictionaryBatch", "_a", "_b", "index", "_d", "import_node_stream", "fn", "import_node_stream", "import_node_stream", "import_node_stream", "it", "toUint8Array", "_a", "queue", "reader", "reader", "Schema", "Field", "RecordBatch", "util", "Null", "Binary", "FixedSizeBinary", "Bool", "Utf8", "Decimal", "List", "FixedSizeList", "index", "FixedSizeList", "_a", "_b", "typedArray", "metadata", "index", "FixedSizeList", "buffer", "object", "_a", "encoder", "metadata", "index", "loadLibrary", "_a", "isBrowser", "encoderPromise", "getLibraryCacheKey", "isBrowser", "loadLibrary", "exports", "_a", "module", "module", "getLibraryCacheKey", "VERSION", "VERSION", "encode", "throwIfAborted"]
7
+ }