@loaders.gl/core 4.0.0-beta.1 → 4.0.0-beta.3

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 (401) hide show
  1. package/dist/core-addons/write-file-browser.d.ts.map +1 -0
  2. package/dist/core-addons/write-file-browser.js.map +1 -0
  3. package/dist/{dist.min.js → dist.dev.js} +1674 -1930
  4. package/dist/index.cjs +1576 -0
  5. package/dist/{src/index.d.ts → index.d.ts} +2 -5
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +28 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts.map +1 -0
  10. package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  11. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts.map +1 -0
  12. package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  13. package/dist/iterators/make-iterator/make-blob-iterator.d.ts.map +1 -0
  14. package/dist/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  15. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -0
  16. package/dist/{esm/iterators → iterators}/make-iterator/make-iterator.js +5 -5
  17. package/dist/iterators/make-iterator/make-iterator.js.map +1 -0
  18. package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -0
  19. package/dist/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  20. package/dist/iterators/make-iterator/make-string-iterator.d.ts.map +1 -0
  21. package/dist/iterators/make-iterator/make-string-iterator.js.map +1 -0
  22. package/dist/{src/iterators/make-stream/make-dom-stream.d.ts → iterators/make-stream/make-stream.d.ts} +1 -1
  23. package/dist/iterators/make-stream/make-stream.d.ts.map +1 -0
  24. package/dist/{esm/iterators/make-stream/make-dom-stream.js → iterators/make-stream/make-stream.js} +4 -1
  25. package/dist/iterators/make-stream/make-stream.js.map +1 -0
  26. package/dist/javascript-utils/is-type.d.ts.map +1 -0
  27. package/dist/javascript-utils/is-type.js.map +1 -0
  28. package/dist/lib/api/encode-table.d.ts.map +1 -0
  29. package/dist/{esm/lib → lib}/api/encode-table.js +1 -1
  30. package/dist/lib/api/encode-table.js.map +1 -0
  31. package/dist/lib/api/encode.d.ts.map +1 -0
  32. package/dist/{esm/lib → lib}/api/encode.js +8 -8
  33. package/dist/lib/api/encode.js.map +1 -0
  34. package/dist/lib/api/load-in-batches.d.ts.map +1 -0
  35. package/dist/{esm/lib → lib}/api/load-in-batches.js +3 -3
  36. package/dist/lib/api/load-in-batches.js.map +1 -0
  37. package/dist/lib/api/load.d.ts.map +1 -0
  38. package/dist/{esm/lib → lib}/api/load.js +4 -4
  39. package/dist/{es5/lib → lib}/api/load.js.map +1 -1
  40. package/dist/lib/api/loader-options.d.ts.map +1 -0
  41. package/dist/lib/api/loader-options.js +3 -0
  42. package/dist/lib/api/loader-options.js.map +1 -0
  43. package/dist/lib/api/parse-in-batches.d.ts.map +1 -0
  44. package/dist/{esm/lib → lib}/api/parse-in-batches.js +7 -7
  45. package/dist/lib/api/parse-in-batches.js.map +1 -0
  46. package/dist/lib/api/parse-sync.d.ts.map +1 -0
  47. package/dist/{esm/lib → lib}/api/parse-sync.js +7 -7
  48. package/dist/lib/api/parse-sync.js.map +1 -0
  49. package/dist/lib/api/parse.d.ts.map +1 -0
  50. package/dist/{esm/lib → lib}/api/parse.js +8 -8
  51. package/dist/lib/api/parse.js.map +1 -0
  52. package/dist/lib/api/register-loaders.d.ts.map +1 -0
  53. package/dist/{esm/lib → lib}/api/register-loaders.js +2 -2
  54. package/dist/lib/api/register-loaders.js.map +1 -0
  55. package/dist/lib/api/select-loader.d.ts.map +1 -0
  56. package/dist/{esm/lib → lib}/api/select-loader.js +16 -16
  57. package/dist/lib/api/select-loader.js.map +1 -0
  58. package/dist/lib/common.d.ts.map +1 -0
  59. package/dist/lib/common.js.map +1 -0
  60. package/dist/lib/fetch/fetch-error-message.d.ts.map +1 -0
  61. package/dist/{esm/lib → lib}/fetch/fetch-error-message.js +2 -2
  62. package/dist/lib/fetch/fetch-error-message.js.map +1 -0
  63. package/dist/lib/fetch/fetch-file.d.ts.map +1 -0
  64. package/dist/{esm/lib → lib}/fetch/fetch-file.js +7 -4
  65. package/dist/lib/fetch/fetch-file.js.map +1 -0
  66. package/dist/{src/lib → lib}/fetch/read-array-buffer.d.ts +1 -1
  67. package/dist/lib/fetch/read-array-buffer.d.ts.map +1 -0
  68. package/dist/{esm/lib → lib}/fetch/read-array-buffer.js +0 -4
  69. package/dist/lib/fetch/read-array-buffer.js.map +1 -0
  70. package/dist/{src/lib → lib}/filesystems/browser-filesystem.d.ts +2 -15
  71. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -0
  72. package/dist/{esm/lib → lib}/filesystems/browser-filesystem.js +7 -20
  73. package/dist/lib/filesystems/browser-filesystem.js.map +1 -0
  74. package/dist/lib/filesystems/read-array-buffer.d.ts.map +1 -0
  75. package/dist/lib/filesystems/read-array-buffer.js.map +1 -0
  76. package/dist/{src/lib → lib}/init.d.ts.map +1 -1
  77. package/dist/lib/init.js +11 -0
  78. package/dist/lib/init.js.map +1 -0
  79. package/dist/lib/loader-utils/check-errors.d.ts.map +1 -0
  80. package/dist/{esm/lib → lib}/loader-utils/check-errors.js +4 -4
  81. package/dist/lib/loader-utils/check-errors.js.map +1 -0
  82. package/dist/lib/loader-utils/get-data.d.ts.map +1 -0
  83. package/dist/{esm/lib → lib}/loader-utils/get-data.js +3 -3
  84. package/dist/lib/loader-utils/get-data.js.map +1 -0
  85. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -0
  86. package/dist/{esm/lib → lib}/loader-utils/get-fetch-function.js +3 -3
  87. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -0
  88. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -0
  89. package/dist/{esm/lib → lib}/loader-utils/loader-context.js +2 -2
  90. package/dist/lib/loader-utils/loader-context.js.map +1 -0
  91. package/dist/lib/loader-utils/loggers.d.ts.map +1 -0
  92. package/dist/{esm/lib → lib}/loader-utils/loggers.js +1 -2
  93. package/dist/lib/loader-utils/loggers.js.map +1 -0
  94. package/dist/lib/loader-utils/normalize-loader.d.ts.map +1 -0
  95. package/dist/lib/loader-utils/normalize-loader.js.map +1 -0
  96. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -0
  97. package/dist/{esm/lib → lib}/loader-utils/option-defaults.js +1 -1
  98. package/dist/lib/loader-utils/option-defaults.js.map +1 -0
  99. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -0
  100. package/dist/{esm/lib → lib}/loader-utils/option-utils.js +8 -8
  101. package/dist/lib/loader-utils/option-utils.js.map +1 -0
  102. package/dist/lib/progress/fetch-progress.d.ts.map +1 -0
  103. package/dist/lib/progress/fetch-progress.js.map +1 -0
  104. package/dist/lib/utils/log.d.ts.map +1 -0
  105. package/dist/lib/utils/log.js.map +1 -0
  106. package/dist/lib/utils/mime-type-utils.d.ts.map +1 -0
  107. package/dist/lib/utils/mime-type-utils.js.map +1 -0
  108. package/dist/lib/utils/resource-utils.d.ts.map +1 -0
  109. package/dist/{esm/lib → lib}/utils/resource-utils.js +3 -3
  110. package/dist/lib/utils/resource-utils.js.map +1 -0
  111. package/dist/lib/utils/response-utils.d.ts.map +1 -0
  112. package/dist/{esm/lib → lib}/utils/response-utils.js +9 -9
  113. package/dist/lib/utils/response-utils.js.map +1 -0
  114. package/dist/lib/utils/url-utils.d.ts.map +1 -0
  115. package/dist/lib/utils/url-utils.js.map +1 -0
  116. package/dist/null-loader.d.ts.map +1 -0
  117. package/dist/{esm/null-loader.js → null-loader.js} +1 -1
  118. package/dist/null-loader.js.map +1 -0
  119. package/dist/null-worker-node.js +21 -27
  120. package/dist/null-worker.js +14 -3
  121. package/dist/workers/null-worker.d.ts.map +1 -0
  122. package/dist/{esm/workers → workers}/null-worker.js +1 -1
  123. package/dist/workers/null-worker.js.map +1 -0
  124. package/package.json +17 -15
  125. package/src/index.ts +7 -5
  126. package/src/iterators/make-stream/{make-dom-stream.ts → make-stream.ts} +4 -0
  127. package/src/lib/api/encode.ts +3 -3
  128. package/src/lib/fetch/fetch-file.ts +7 -3
  129. package/src/lib/fetch/read-array-buffer.ts +2 -6
  130. package/src/lib/filesystems/browser-filesystem.ts +19 -18
  131. package/dist/es5/bundle.js +0 -6
  132. package/dist/es5/bundle.js.map +0 -1
  133. package/dist/es5/core-addons/write-file-browser.js +0 -2
  134. package/dist/es5/core-addons/write-file-browser.js.map +0 -1
  135. package/dist/es5/index.js +0 -382
  136. package/dist/es5/index.js.map +0 -1
  137. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +0 -94
  138. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
  139. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +0 -42
  140. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
  141. package/dist/es5/iterators/make-iterator/make-blob-iterator.js +0 -47
  142. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +0 -1
  143. package/dist/es5/iterators/make-iterator/make-iterator.js +0 -31
  144. package/dist/es5/iterators/make-iterator/make-iterator.js.map +0 -1
  145. package/dist/es5/iterators/make-iterator/make-stream-iterator.js +0 -133
  146. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +0 -1
  147. package/dist/es5/iterators/make-iterator/make-string-iterator.js +0 -38
  148. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +0 -1
  149. package/dist/es5/iterators/make-stream/make-dom-stream.js +0 -67
  150. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +0 -1
  151. package/dist/es5/iterators/make-stream/make-node-stream.js +0 -168
  152. package/dist/es5/iterators/make-stream/make-node-stream.js.map +0 -1
  153. package/dist/es5/javascript-utils/is-type.js +0 -79
  154. package/dist/es5/javascript-utils/is-type.js.map +0 -1
  155. package/dist/es5/lib/api/encode-table.js +0 -161
  156. package/dist/es5/lib/api/encode-table.js.map +0 -1
  157. package/dist/es5/lib/api/encode.js +0 -254
  158. package/dist/es5/lib/api/encode.js.map +0 -1
  159. package/dist/es5/lib/api/load-in-batches.js +0 -92
  160. package/dist/es5/lib/api/load-in-batches.js.map +0 -1
  161. package/dist/es5/lib/api/load.js +0 -76
  162. package/dist/es5/lib/api/loader-options.js +0 -19
  163. package/dist/es5/lib/api/loader-options.js.map +0 -1
  164. package/dist/es5/lib/api/parse-in-batches.js +0 -276
  165. package/dist/es5/lib/api/parse-in-batches.js.map +0 -1
  166. package/dist/es5/lib/api/parse-sync.js +0 -49
  167. package/dist/es5/lib/api/parse-sync.js.map +0 -1
  168. package/dist/es5/lib/api/parse.js +0 -142
  169. package/dist/es5/lib/api/parse.js.map +0 -1
  170. package/dist/es5/lib/api/register-loaders.js +0 -50
  171. package/dist/es5/lib/api/register-loaders.js.map +0 -1
  172. package/dist/es5/lib/api/save.js +0 -42
  173. package/dist/es5/lib/api/save.js.map +0 -1
  174. package/dist/es5/lib/api/select-loader.js +0 -304
  175. package/dist/es5/lib/api/select-loader.js.map +0 -1
  176. package/dist/es5/lib/common.js +0 -2
  177. package/dist/es5/lib/common.js.map +0 -1
  178. package/dist/es5/lib/fetch/fetch-error-message.js +0 -56
  179. package/dist/es5/lib/fetch/fetch-error-message.js.map +0 -1
  180. package/dist/es5/lib/fetch/fetch-file.js +0 -65
  181. package/dist/es5/lib/fetch/fetch-file.js.map +0 -1
  182. package/dist/es5/lib/fetch/fetch-file.node.js +0 -86
  183. package/dist/es5/lib/fetch/fetch-file.node.js.map +0 -1
  184. package/dist/es5/lib/fetch/read-array-buffer.js +0 -76
  185. package/dist/es5/lib/fetch/read-array-buffer.js.map +0 -1
  186. package/dist/es5/lib/fetch/read-file.js +0 -20
  187. package/dist/es5/lib/fetch/read-file.js.map +0 -1
  188. package/dist/es5/lib/fetch/write-file.js +0 -48
  189. package/dist/es5/lib/fetch/write-file.js.map +0 -1
  190. package/dist/es5/lib/filesystems/browser-filesystem.js +0 -249
  191. package/dist/es5/lib/filesystems/browser-filesystem.js.map +0 -1
  192. package/dist/es5/lib/filesystems/read-array-buffer.js +0 -41
  193. package/dist/es5/lib/filesystems/read-array-buffer.js.map +0 -1
  194. package/dist/es5/lib/init.js +0 -18
  195. package/dist/es5/lib/init.js.map +0 -1
  196. package/dist/es5/lib/loader-utils/check-errors.js +0 -57
  197. package/dist/es5/lib/loader-utils/check-errors.js.map +0 -1
  198. package/dist/es5/lib/loader-utils/get-data.js +0 -237
  199. package/dist/es5/lib/loader-utils/get-data.js.map +0 -1
  200. package/dist/es5/lib/loader-utils/get-fetch-function.js +0 -26
  201. package/dist/es5/lib/loader-utils/get-fetch-function.js.map +0 -1
  202. package/dist/es5/lib/loader-utils/loader-context.js +0 -49
  203. package/dist/es5/lib/loader-utils/loader-context.js.map +0 -1
  204. package/dist/es5/lib/loader-utils/loggers.js +0 -90
  205. package/dist/es5/lib/loader-utils/loggers.js.map +0 -1
  206. package/dist/es5/lib/loader-utils/normalize-loader.js +0 -44
  207. package/dist/es5/lib/loader-utils/normalize-loader.js.map +0 -1
  208. package/dist/es5/lib/loader-utils/option-defaults.js +0 -48
  209. package/dist/es5/lib/loader-utils/option-defaults.js.map +0 -1
  210. package/dist/es5/lib/loader-utils/option-utils.js +0 -131
  211. package/dist/es5/lib/loader-utils/option-utils.js.map +0 -1
  212. package/dist/es5/lib/progress/fetch-progress.js +0 -134
  213. package/dist/es5/lib/progress/fetch-progress.js.map +0 -1
  214. package/dist/es5/lib/utils/log.js +0 -12
  215. package/dist/es5/lib/utils/log.js.map +0 -1
  216. package/dist/es5/lib/utils/mime-type-utils.js +0 -24
  217. package/dist/es5/lib/utils/mime-type-utils.js.map +0 -1
  218. package/dist/es5/lib/utils/resource-utils.js +0 -62
  219. package/dist/es5/lib/utils/resource-utils.js.map +0 -1
  220. package/dist/es5/lib/utils/response-utils.js +0 -197
  221. package/dist/es5/lib/utils/response-utils.js.map +0 -1
  222. package/dist/es5/lib/utils/url-utils.js +0 -16
  223. package/dist/es5/lib/utils/url-utils.js.map +0 -1
  224. package/dist/es5/null-loader.js +0 -131
  225. package/dist/es5/null-loader.js.map +0 -1
  226. package/dist/es5/workers/null-worker.js +0 -6
  227. package/dist/es5/workers/null-worker.js.map +0 -1
  228. package/dist/esm/bundle.js +0 -4
  229. package/dist/esm/bundle.js.map +0 -1
  230. package/dist/esm/core-addons/README.md +0 -1
  231. package/dist/esm/core-addons/write-file-browser.js.map +0 -1
  232. package/dist/esm/index.js +0 -31
  233. package/dist/esm/index.js.map +0 -1
  234. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
  235. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
  236. package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +0 -1
  237. package/dist/esm/iterators/make-iterator/make-iterator.js.map +0 -1
  238. package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +0 -1
  239. package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +0 -1
  240. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +0 -1
  241. package/dist/esm/iterators/make-stream/make-node-stream.js +0 -57
  242. package/dist/esm/iterators/make-stream/make-node-stream.js.map +0 -1
  243. package/dist/esm/javascript-utils/is-type.js.map +0 -1
  244. package/dist/esm/lib/api/encode-table.js.map +0 -1
  245. package/dist/esm/lib/api/encode.js.map +0 -1
  246. package/dist/esm/lib/api/load-in-batches.js.map +0 -1
  247. package/dist/esm/lib/api/load.js.map +0 -1
  248. package/dist/esm/lib/api/loader-options.js +0 -3
  249. package/dist/esm/lib/api/loader-options.js.map +0 -1
  250. package/dist/esm/lib/api/parse-in-batches.js.map +0 -1
  251. package/dist/esm/lib/api/parse-sync.js.map +0 -1
  252. package/dist/esm/lib/api/parse.js.map +0 -1
  253. package/dist/esm/lib/api/register-loaders.js.map +0 -1
  254. package/dist/esm/lib/api/save.js +0 -11
  255. package/dist/esm/lib/api/save.js.map +0 -1
  256. package/dist/esm/lib/api/select-loader.js.map +0 -1
  257. package/dist/esm/lib/common.js.map +0 -1
  258. package/dist/esm/lib/fetch/fetch-error-message.js.map +0 -1
  259. package/dist/esm/lib/fetch/fetch-file.js.map +0 -1
  260. package/dist/esm/lib/fetch/fetch-file.node.js +0 -54
  261. package/dist/esm/lib/fetch/fetch-file.node.js.map +0 -1
  262. package/dist/esm/lib/fetch/read-array-buffer.js.map +0 -1
  263. package/dist/esm/lib/fetch/read-file.js +0 -15
  264. package/dist/esm/lib/fetch/read-file.js.map +0 -1
  265. package/dist/esm/lib/fetch/write-file.js +0 -21
  266. package/dist/esm/lib/fetch/write-file.js.map +0 -1
  267. package/dist/esm/lib/filesystems/browser-filesystem.js.map +0 -1
  268. package/dist/esm/lib/filesystems/read-array-buffer.js.map +0 -1
  269. package/dist/esm/lib/init.js +0 -11
  270. package/dist/esm/lib/init.js.map +0 -1
  271. package/dist/esm/lib/loader-utils/check-errors.js.map +0 -1
  272. package/dist/esm/lib/loader-utils/get-data.js.map +0 -1
  273. package/dist/esm/lib/loader-utils/get-fetch-function.js.map +0 -1
  274. package/dist/esm/lib/loader-utils/loader-context.js.map +0 -1
  275. package/dist/esm/lib/loader-utils/loggers.js.map +0 -1
  276. package/dist/esm/lib/loader-utils/normalize-loader.js.map +0 -1
  277. package/dist/esm/lib/loader-utils/option-defaults.js.map +0 -1
  278. package/dist/esm/lib/loader-utils/option-utils.js.map +0 -1
  279. package/dist/esm/lib/progress/fetch-progress.js.map +0 -1
  280. package/dist/esm/lib/utils/log.js.map +0 -1
  281. package/dist/esm/lib/utils/mime-type-utils.js.map +0 -1
  282. package/dist/esm/lib/utils/resource-utils.js.map +0 -1
  283. package/dist/esm/lib/utils/response-utils.js.map +0 -1
  284. package/dist/esm/lib/utils/url-utils.js.map +0 -1
  285. package/dist/esm/null-loader.js.map +0 -1
  286. package/dist/esm/workers/null-worker.js.map +0 -1
  287. package/dist/src/bundle.d.ts +0 -2
  288. package/dist/src/bundle.d.ts.map +0 -1
  289. package/dist/src/core-addons/write-file-browser.d.ts.map +0 -1
  290. package/dist/src/index.d.ts.map +0 -1
  291. package/dist/src/iterators/batch-iterators/timed-batch-iterator.d.ts.map +0 -1
  292. package/dist/src/iterators/make-iterator/make-array-buffer-iterator.d.ts.map +0 -1
  293. package/dist/src/iterators/make-iterator/make-blob-iterator.d.ts.map +0 -1
  294. package/dist/src/iterators/make-iterator/make-iterator.d.ts.map +0 -1
  295. package/dist/src/iterators/make-iterator/make-stream-iterator.d.ts.map +0 -1
  296. package/dist/src/iterators/make-iterator/make-string-iterator.d.ts.map +0 -1
  297. package/dist/src/iterators/make-stream/make-dom-stream.d.ts.map +0 -1
  298. package/dist/src/iterators/make-stream/make-node-stream.d.ts +0 -11
  299. package/dist/src/iterators/make-stream/make-node-stream.d.ts.map +0 -1
  300. package/dist/src/javascript-utils/is-type.d.ts.map +0 -1
  301. package/dist/src/lib/api/encode-table.d.ts.map +0 -1
  302. package/dist/src/lib/api/encode.d.ts.map +0 -1
  303. package/dist/src/lib/api/load-in-batches.d.ts.map +0 -1
  304. package/dist/src/lib/api/load.d.ts.map +0 -1
  305. package/dist/src/lib/api/loader-options.d.ts.map +0 -1
  306. package/dist/src/lib/api/parse-in-batches.d.ts.map +0 -1
  307. package/dist/src/lib/api/parse-sync.d.ts.map +0 -1
  308. package/dist/src/lib/api/parse.d.ts.map +0 -1
  309. package/dist/src/lib/api/register-loaders.d.ts.map +0 -1
  310. package/dist/src/lib/api/save.d.ts +0 -4
  311. package/dist/src/lib/api/save.d.ts.map +0 -1
  312. package/dist/src/lib/api/select-loader.d.ts.map +0 -1
  313. package/dist/src/lib/common.d.ts.map +0 -1
  314. package/dist/src/lib/fetch/fetch-error-message.d.ts.map +0 -1
  315. package/dist/src/lib/fetch/fetch-file.d.ts.map +0 -1
  316. package/dist/src/lib/fetch/fetch-file.node.d.ts +0 -8
  317. package/dist/src/lib/fetch/fetch-file.node.d.ts.map +0 -1
  318. package/dist/src/lib/fetch/read-array-buffer.d.ts.map +0 -1
  319. package/dist/src/lib/fetch/read-file.d.ts +0 -5
  320. package/dist/src/lib/fetch/read-file.d.ts.map +0 -1
  321. package/dist/src/lib/fetch/write-file.d.ts +0 -3
  322. package/dist/src/lib/fetch/write-file.d.ts.map +0 -1
  323. package/dist/src/lib/filesystems/browser-filesystem.d.ts.map +0 -1
  324. package/dist/src/lib/filesystems/read-array-buffer.d.ts.map +0 -1
  325. package/dist/src/lib/loader-utils/check-errors.d.ts.map +0 -1
  326. package/dist/src/lib/loader-utils/get-data.d.ts.map +0 -1
  327. package/dist/src/lib/loader-utils/get-fetch-function.d.ts.map +0 -1
  328. package/dist/src/lib/loader-utils/loader-context.d.ts.map +0 -1
  329. package/dist/src/lib/loader-utils/loggers.d.ts.map +0 -1
  330. package/dist/src/lib/loader-utils/normalize-loader.d.ts.map +0 -1
  331. package/dist/src/lib/loader-utils/option-defaults.d.ts.map +0 -1
  332. package/dist/src/lib/loader-utils/option-utils.d.ts.map +0 -1
  333. package/dist/src/lib/progress/fetch-progress.d.ts.map +0 -1
  334. package/dist/src/lib/utils/log.d.ts.map +0 -1
  335. package/dist/src/lib/utils/mime-type-utils.d.ts.map +0 -1
  336. package/dist/src/lib/utils/resource-utils.d.ts.map +0 -1
  337. package/dist/src/lib/utils/response-utils.d.ts.map +0 -1
  338. package/dist/src/lib/utils/url-utils.d.ts.map +0 -1
  339. package/dist/src/null-loader.d.ts.map +0 -1
  340. package/dist/src/workers/null-worker.d.ts.map +0 -1
  341. package/dist/tsconfig.tsbuildinfo +0 -1
  342. package/src/bundle.ts +0 -4
  343. package/src/iterators/make-stream/make-node-stream.ts +0 -74
  344. package/src/lib/api/save.ts +0 -13
  345. package/src/lib/fetch/fetch-file.node.ts +0 -61
  346. package/src/lib/fetch/read-file.ts +0 -31
  347. package/src/lib/fetch/write-file.ts +0 -27
  348. /package/dist/{es5/core-addons → core-addons}/README.md +0 -0
  349. /package/dist/{src/core-addons → core-addons}/write-file-browser.d.ts +0 -0
  350. /package/dist/{esm/core-addons → core-addons}/write-file-browser.js +0 -0
  351. /package/dist/{src/iterators → iterators}/batch-iterators/timed-batch-iterator.d.ts +0 -0
  352. /package/dist/{esm/iterators → iterators}/batch-iterators/timed-batch-iterator.js +0 -0
  353. /package/dist/{src/iterators → iterators}/make-iterator/make-array-buffer-iterator.d.ts +0 -0
  354. /package/dist/{esm/iterators → iterators}/make-iterator/make-array-buffer-iterator.js +0 -0
  355. /package/dist/{src/iterators → iterators}/make-iterator/make-blob-iterator.d.ts +0 -0
  356. /package/dist/{esm/iterators → iterators}/make-iterator/make-blob-iterator.js +0 -0
  357. /package/dist/{src/iterators → iterators}/make-iterator/make-iterator.d.ts +0 -0
  358. /package/dist/{src/iterators → iterators}/make-iterator/make-stream-iterator.d.ts +0 -0
  359. /package/dist/{esm/iterators → iterators}/make-iterator/make-stream-iterator.js +0 -0
  360. /package/dist/{src/iterators → iterators}/make-iterator/make-string-iterator.d.ts +0 -0
  361. /package/dist/{esm/iterators → iterators}/make-iterator/make-string-iterator.js +0 -0
  362. /package/dist/{src/javascript-utils → javascript-utils}/is-type.d.ts +0 -0
  363. /package/dist/{esm/javascript-utils → javascript-utils}/is-type.js +0 -0
  364. /package/dist/{src/lib → lib}/api/encode-table.d.ts +0 -0
  365. /package/dist/{src/lib → lib}/api/encode.d.ts +0 -0
  366. /package/dist/{src/lib → lib}/api/load-in-batches.d.ts +0 -0
  367. /package/dist/{src/lib → lib}/api/load.d.ts +0 -0
  368. /package/dist/{src/lib → lib}/api/loader-options.d.ts +0 -0
  369. /package/dist/{src/lib → lib}/api/parse-in-batches.d.ts +0 -0
  370. /package/dist/{src/lib → lib}/api/parse-sync.d.ts +0 -0
  371. /package/dist/{src/lib → lib}/api/parse.d.ts +0 -0
  372. /package/dist/{src/lib → lib}/api/register-loaders.d.ts +0 -0
  373. /package/dist/{src/lib → lib}/api/select-loader.d.ts +0 -0
  374. /package/dist/{src/lib → lib}/common.d.ts +0 -0
  375. /package/dist/{esm/lib → lib}/common.js +0 -0
  376. /package/dist/{src/lib → lib}/fetch/fetch-error-message.d.ts +0 -0
  377. /package/dist/{src/lib → lib}/fetch/fetch-file.d.ts +0 -0
  378. /package/dist/{src/lib → lib}/filesystems/read-array-buffer.d.ts +0 -0
  379. /package/dist/{esm/lib → lib}/filesystems/read-array-buffer.js +0 -0
  380. /package/dist/{src/lib → lib}/init.d.ts +0 -0
  381. /package/dist/{src/lib → lib}/loader-utils/check-errors.d.ts +0 -0
  382. /package/dist/{src/lib → lib}/loader-utils/get-data.d.ts +0 -0
  383. /package/dist/{src/lib → lib}/loader-utils/get-fetch-function.d.ts +0 -0
  384. /package/dist/{src/lib → lib}/loader-utils/loader-context.d.ts +0 -0
  385. /package/dist/{src/lib → lib}/loader-utils/loggers.d.ts +0 -0
  386. /package/dist/{src/lib → lib}/loader-utils/normalize-loader.d.ts +0 -0
  387. /package/dist/{esm/lib → lib}/loader-utils/normalize-loader.js +0 -0
  388. /package/dist/{src/lib → lib}/loader-utils/option-defaults.d.ts +0 -0
  389. /package/dist/{src/lib → lib}/loader-utils/option-utils.d.ts +0 -0
  390. /package/dist/{src/lib → lib}/progress/fetch-progress.d.ts +0 -0
  391. /package/dist/{esm/lib → lib}/progress/fetch-progress.js +0 -0
  392. /package/dist/{src/lib → lib}/utils/log.d.ts +0 -0
  393. /package/dist/{esm/lib → lib}/utils/log.js +0 -0
  394. /package/dist/{src/lib → lib}/utils/mime-type-utils.d.ts +0 -0
  395. /package/dist/{esm/lib → lib}/utils/mime-type-utils.js +0 -0
  396. /package/dist/{src/lib → lib}/utils/resource-utils.d.ts +0 -0
  397. /package/dist/{src/lib → lib}/utils/response-utils.d.ts +0 -0
  398. /package/dist/{src/lib → lib}/utils/url-utils.d.ts +0 -0
  399. /package/dist/{esm/lib → lib}/utils/url-utils.js +0 -0
  400. /package/dist/{src/null-loader.d.ts → null-loader.d.ts} +0 -0
  401. /package/dist/{src/workers → workers}/null-worker.d.ts +0 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,1576 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ JSONLoader: () => import_loader_utils18.JSONLoader,
24
+ NullLoader: () => NullLoader,
25
+ NullWorkerLoader: () => NullWorkerLoader,
26
+ RequestScheduler: () => import_loader_utils17.RequestScheduler,
27
+ _BrowserFileSystem: () => BrowserFileSystem,
28
+ _fetchProgress: () => fetchProgress,
29
+ _unregisterLoaders: () => _unregisterLoaders,
30
+ assert: () => import_loader_utils20.assert,
31
+ concatenateArrayBuffersAsync: () => import_loader_utils21.concatenateArrayBuffersAsync,
32
+ document: () => import_loader_utils19.document,
33
+ encode: () => encode,
34
+ encodeInBatches: () => encodeInBatches,
35
+ encodeSync: () => encodeSync,
36
+ encodeTable: () => encodeTable,
37
+ encodeTableAsText: () => encodeTableAsText,
38
+ encodeTableInBatches: () => encodeTableInBatches,
39
+ encodeText: () => encodeText,
40
+ encodeTextSync: () => encodeTextSync,
41
+ encodeURLtoURL: () => encodeURLtoURL,
42
+ fetchFile: () => fetchFile,
43
+ forEach: () => import_loader_utils21.forEach,
44
+ getLoaderOptions: () => getGlobalLoaderOptions,
45
+ getPathPrefix: () => import_loader_utils16.getPathPrefix,
46
+ global: () => import_loader_utils19.global,
47
+ isAsyncIterable: () => isAsyncIterable,
48
+ isBrowser: () => import_loader_utils19.isBrowser,
49
+ isIterable: () => isIterable,
50
+ isIterator: () => isIterator,
51
+ isPromise: () => isPromise,
52
+ isPureObject: () => isPureObject,
53
+ isReadableStream: () => isReadableStream,
54
+ isResponse: () => isResponse,
55
+ isWorker: () => import_loader_utils19.isWorker,
56
+ isWritableStream: () => isWritableStream,
57
+ load: () => load,
58
+ loadInBatches: () => loadInBatches,
59
+ makeIterator: () => makeIterator,
60
+ makeLineIterator: () => import_loader_utils22.makeLineIterator,
61
+ makeNumberedLineIterator: () => import_loader_utils22.makeNumberedLineIterator,
62
+ makeStream: () => makeStream,
63
+ makeTextDecoderIterator: () => import_loader_utils22.makeTextDecoderIterator,
64
+ makeTextEncoderIterator: () => import_loader_utils22.makeTextEncoderIterator,
65
+ parse: () => parse,
66
+ parseInBatches: () => parseInBatches,
67
+ parseSync: () => parseSync,
68
+ readArrayBuffer: () => readArrayBuffer,
69
+ registerLoaders: () => registerLoaders,
70
+ resolvePath: () => import_loader_utils16.resolvePath,
71
+ selectLoader: () => selectLoader,
72
+ selectLoaderSync: () => selectLoaderSync,
73
+ self: () => import_loader_utils19.self,
74
+ setLoaderOptions: () => setGlobalOptions,
75
+ setPathPrefix: () => import_loader_utils16.setPathPrefix,
76
+ window: () => import_loader_utils19.window
77
+ });
78
+ module.exports = __toCommonJS(src_exports);
79
+
80
+ // src/lib/fetch/fetch-file.ts
81
+ var import_loader_utils = require("@loaders.gl/loader-utils");
82
+
83
+ // src/javascript-utils/is-type.ts
84
+ var isBoolean = (x) => typeof x === "boolean";
85
+ var isFunction = (x) => typeof x === "function";
86
+ var isObject = (x) => x !== null && typeof x === "object";
87
+ var isPureObject = (x) => isObject(x) && x.constructor === {}.constructor;
88
+ var isPromise = (x) => isObject(x) && isFunction(x.then);
89
+ var isIterable = (x) => Boolean(x) && typeof x[Symbol.iterator] === "function";
90
+ var isAsyncIterable = (x) => x && typeof x[Symbol.asyncIterator] === "function";
91
+ var isIterator = (x) => x && isFunction(x.next);
92
+ var isResponse = (x) => typeof Response !== "undefined" && x instanceof Response || x && x.arrayBuffer && x.text && x.json;
93
+ var isBlob = (x) => typeof Blob !== "undefined" && x instanceof Blob;
94
+ var isBuffer = (x) => x && typeof x === "object" && x.isBuffer;
95
+ var isWritableDOMStream = (x) => isObject(x) && isFunction(x.abort) && isFunction(x.getWriter);
96
+ var isReadableDOMStream = (x) => typeof ReadableStream !== "undefined" && x instanceof ReadableStream || isObject(x) && isFunction(x.tee) && isFunction(x.cancel) && isFunction(x.getReader);
97
+ var isWritableNodeStream = (x) => isObject(x) && isFunction(x.end) && isFunction(x.write) && isBoolean(x.writable);
98
+ var isReadableNodeStream = (x) => isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);
99
+ var isReadableStream = (x) => isReadableDOMStream(x) || isReadableNodeStream(x);
100
+ var isWritableStream = (x) => isWritableDOMStream(x) || isWritableNodeStream(x);
101
+
102
+ // src/lib/utils/mime-type-utils.ts
103
+ var DATA_URL_PATTERN = /^data:([-\w.]+\/[-\w.+]+)(;|,)/;
104
+ var MIME_TYPE_PATTERN = /^([-\w.]+\/[-\w.+]+)/;
105
+ function parseMIMEType(mimeString) {
106
+ const matches = MIME_TYPE_PATTERN.exec(mimeString);
107
+ if (matches) {
108
+ return matches[1];
109
+ }
110
+ return mimeString;
111
+ }
112
+ function parseMIMETypeFromURL(url) {
113
+ const matches = DATA_URL_PATTERN.exec(url);
114
+ if (matches) {
115
+ return matches[1];
116
+ }
117
+ return "";
118
+ }
119
+
120
+ // src/lib/utils/url-utils.ts
121
+ var QUERY_STRING_PATTERN = /\?.*/;
122
+ function extractQueryString(url) {
123
+ const matches = url.match(QUERY_STRING_PATTERN);
124
+ return matches && matches[0];
125
+ }
126
+ function stripQueryString(url) {
127
+ return url.replace(QUERY_STRING_PATTERN, "");
128
+ }
129
+
130
+ // src/lib/utils/resource-utils.ts
131
+ function getResourceUrl(resource) {
132
+ if (isResponse(resource)) {
133
+ const response = resource;
134
+ return response.url;
135
+ }
136
+ if (isBlob(resource)) {
137
+ const blob = resource;
138
+ return blob.name || "";
139
+ }
140
+ if (typeof resource === "string") {
141
+ return resource;
142
+ }
143
+ return "";
144
+ }
145
+ function getResourceMIMEType(resource) {
146
+ if (isResponse(resource)) {
147
+ const response = resource;
148
+ const contentTypeHeader = response.headers.get("content-type") || "";
149
+ const noQueryUrl = stripQueryString(response.url);
150
+ return parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(noQueryUrl);
151
+ }
152
+ if (isBlob(resource)) {
153
+ const blob = resource;
154
+ return blob.type || "";
155
+ }
156
+ if (typeof resource === "string") {
157
+ return parseMIMETypeFromURL(resource);
158
+ }
159
+ return "";
160
+ }
161
+ function getResourceContentLength(resource) {
162
+ if (isResponse(resource)) {
163
+ const response = resource;
164
+ return response.headers["content-length"] || -1;
165
+ }
166
+ if (isBlob(resource)) {
167
+ const blob = resource;
168
+ return blob.size;
169
+ }
170
+ if (typeof resource === "string") {
171
+ return resource.length;
172
+ }
173
+ if (resource instanceof ArrayBuffer) {
174
+ return resource.byteLength;
175
+ }
176
+ if (ArrayBuffer.isView(resource)) {
177
+ return resource.byteLength;
178
+ }
179
+ return -1;
180
+ }
181
+
182
+ // src/lib/utils/response-utils.ts
183
+ async function makeResponse(resource) {
184
+ if (isResponse(resource)) {
185
+ return resource;
186
+ }
187
+ const headers = {};
188
+ const contentLength = getResourceContentLength(resource);
189
+ if (contentLength >= 0) {
190
+ headers["content-length"] = String(contentLength);
191
+ }
192
+ const url = getResourceUrl(resource);
193
+ const type = getResourceMIMEType(resource);
194
+ if (type) {
195
+ headers["content-type"] = type;
196
+ }
197
+ const initialDataUrl = await getInitialDataUrl(resource);
198
+ if (initialDataUrl) {
199
+ headers["x-first-bytes"] = initialDataUrl;
200
+ }
201
+ if (typeof resource === "string") {
202
+ resource = new TextEncoder().encode(resource);
203
+ }
204
+ const response = new Response(resource, { headers });
205
+ Object.defineProperty(response, "url", { value: url });
206
+ return response;
207
+ }
208
+ async function checkResponse(response) {
209
+ if (!response.ok) {
210
+ const message = await getResponseError(response);
211
+ throw new Error(message);
212
+ }
213
+ }
214
+ async function getResponseError(response) {
215
+ let message = `Failed to fetch resource ${response.url} (${response.status}): `;
216
+ try {
217
+ const contentType = response.headers.get("Content-Type");
218
+ let text = response.statusText;
219
+ if (contentType.includes("application/json")) {
220
+ text += ` ${await response.text()}`;
221
+ }
222
+ message += text;
223
+ message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
224
+ } catch (error) {
225
+ }
226
+ return message;
227
+ }
228
+ async function getInitialDataUrl(resource) {
229
+ const INITIAL_DATA_LENGTH = 5;
230
+ if (typeof resource === "string") {
231
+ return `data:,${resource.slice(0, INITIAL_DATA_LENGTH)}`;
232
+ }
233
+ if (resource instanceof Blob) {
234
+ const blobSlice = resource.slice(0, 5);
235
+ return await new Promise((resolve) => {
236
+ const reader = new FileReader();
237
+ reader.onload = (event) => {
238
+ var _a;
239
+ return resolve((_a = event == null ? void 0 : event.target) == null ? void 0 : _a.result);
240
+ };
241
+ reader.readAsDataURL(blobSlice);
242
+ });
243
+ }
244
+ if (resource instanceof ArrayBuffer) {
245
+ const slice = resource.slice(0, INITIAL_DATA_LENGTH);
246
+ const base64 = arrayBufferToBase64(slice);
247
+ return `data:base64,${base64}`;
248
+ }
249
+ return null;
250
+ }
251
+ function arrayBufferToBase64(buffer) {
252
+ let binary = "";
253
+ const bytes = new Uint8Array(buffer);
254
+ for (let i = 0; i < bytes.byteLength; i++) {
255
+ binary += String.fromCharCode(bytes[i]);
256
+ }
257
+ return btoa(binary);
258
+ }
259
+
260
+ // src/lib/fetch/fetch-file.ts
261
+ function isNodePath(url) {
262
+ return !isRequestURL(url) && !isDataURL(url);
263
+ }
264
+ function isRequestURL(url) {
265
+ return url.startsWith("http:") || url.startsWith("https:");
266
+ }
267
+ function isDataURL(url) {
268
+ return url.startsWith("data:");
269
+ }
270
+ async function fetchFile(urlOrData, fetchOptions) {
271
+ var _a, _b;
272
+ if (typeof urlOrData === "string") {
273
+ const url = (0, import_loader_utils.resolvePath)(urlOrData);
274
+ if (isNodePath(url)) {
275
+ if ((_a = globalThis.loaders) == null ? void 0 : _a.fetchNode) {
276
+ return (_b = globalThis.loaders) == null ? void 0 : _b.fetchNode(url, fetchOptions);
277
+ }
278
+ }
279
+ return await fetch(url, fetchOptions);
280
+ }
281
+ return await makeResponse(urlOrData);
282
+ }
283
+
284
+ // src/lib/fetch/read-array-buffer.ts
285
+ async function readArrayBuffer(file, start, length) {
286
+ if (!(file instanceof Blob)) {
287
+ file = new Blob([file]);
288
+ }
289
+ const slice = file.slice(start, start + length);
290
+ return await readBlob(slice);
291
+ }
292
+ async function readBlob(blob) {
293
+ return await new Promise((resolve, reject) => {
294
+ const fileReader = new FileReader();
295
+ fileReader.onload = (event) => {
296
+ var _a;
297
+ return resolve((_a = event == null ? void 0 : event.target) == null ? void 0 : _a.result);
298
+ };
299
+ fileReader.onerror = (error) => reject(error);
300
+ fileReader.readAsArrayBuffer(blob);
301
+ });
302
+ }
303
+
304
+ // src/lib/loader-utils/loggers.ts
305
+ var import_log = require("@probe.gl/log");
306
+ var probeLog = new import_log.Log({ id: "loaders.gl" });
307
+ var NullLog = class {
308
+ log() {
309
+ return () => {
310
+ };
311
+ }
312
+ info() {
313
+ return () => {
314
+ };
315
+ }
316
+ warn() {
317
+ return () => {
318
+ };
319
+ }
320
+ error() {
321
+ return () => {
322
+ };
323
+ }
324
+ };
325
+ var ConsoleLog = class {
326
+ constructor() {
327
+ this.console = console;
328
+ }
329
+ log(...args) {
330
+ return this.console.log.bind(this.console, ...args);
331
+ }
332
+ info(...args) {
333
+ return this.console.info.bind(this.console, ...args);
334
+ }
335
+ warn(...args) {
336
+ return this.console.warn.bind(this.console, ...args);
337
+ }
338
+ error(...args) {
339
+ return this.console.error.bind(this.console, ...args);
340
+ }
341
+ };
342
+
343
+ // src/lib/loader-utils/option-defaults.ts
344
+ var import_loader_utils2 = require("@loaders.gl/loader-utils");
345
+ var DEFAULT_LOADER_OPTIONS = {
346
+ // baseUri
347
+ fetch: null,
348
+ mimeType: void 0,
349
+ nothrow: false,
350
+ log: new ConsoleLog(),
351
+ // A probe.gl compatible (`log.log()()` syntax) that just logs to console
352
+ useLocalLibraries: false,
353
+ CDN: "https://unpkg.com/@loaders.gl",
354
+ worker: true,
355
+ // By default, use worker if provided by loader.
356
+ maxConcurrency: 3,
357
+ // How many worker instances should be created for each loader.
358
+ maxMobileConcurrency: 1,
359
+ // How many worker instances should be created for each loader on mobile devices.
360
+ reuseWorkers: import_loader_utils2.isBrowser,
361
+ // By default reuse workers in browser (Node.js refuses to terminate if browsers are running)
362
+ _nodeWorkers: false,
363
+ // By default do not support node workers
364
+ _workerType: "",
365
+ // 'test' to use locally generated workers
366
+ limit: 0,
367
+ _limitMB: 0,
368
+ batchSize: "auto",
369
+ batchDebounceMs: 0,
370
+ metadata: false,
371
+ // TODO - currently only implemented for parseInBatches, adds initial metadata batch,
372
+ transforms: []
373
+ };
374
+ var REMOVED_LOADER_OPTIONS = {
375
+ throws: "nothrow",
376
+ dataType: "(no longer used)",
377
+ uri: "baseUri",
378
+ // Warn if fetch options are used on top-level
379
+ method: "fetch.method",
380
+ headers: "fetch.headers",
381
+ body: "fetch.body",
382
+ mode: "fetch.mode",
383
+ credentials: "fetch.credentials",
384
+ cache: "fetch.cache",
385
+ redirect: "fetch.redirect",
386
+ referrer: "fetch.referrer",
387
+ referrerPolicy: "fetch.referrerPolicy",
388
+ integrity: "fetch.integrity",
389
+ keepalive: "fetch.keepalive",
390
+ signal: "fetch.signal"
391
+ };
392
+
393
+ // src/lib/loader-utils/option-utils.ts
394
+ function getGlobalLoaderState() {
395
+ globalThis.loaders = globalThis.loaders || {};
396
+ const { loaders } = globalThis;
397
+ loaders._state = loaders._state || {};
398
+ return loaders._state;
399
+ }
400
+ function getGlobalLoaderOptions() {
401
+ const state = getGlobalLoaderState();
402
+ state.globalOptions = state.globalOptions || { ...DEFAULT_LOADER_OPTIONS };
403
+ return state.globalOptions;
404
+ }
405
+ function setGlobalOptions(options) {
406
+ const state = getGlobalLoaderState();
407
+ const globalOptions = getGlobalLoaderOptions();
408
+ state.globalOptions = normalizeOptionsInternal(globalOptions, options);
409
+ }
410
+ function normalizeOptions(options, loader, loaders, url) {
411
+ loaders = loaders || [];
412
+ loaders = Array.isArray(loaders) ? loaders : [loaders];
413
+ validateOptions(options, loaders);
414
+ return normalizeOptionsInternal(loader, options, url);
415
+ }
416
+ function validateOptions(options, loaders) {
417
+ validateOptionsObject(options, null, DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS, loaders);
418
+ for (const loader of loaders) {
419
+ const idOptions = options && options[loader.id] || {};
420
+ const loaderOptions = loader.options && loader.options[loader.id] || {};
421
+ const deprecatedOptions = loader.deprecatedOptions && loader.deprecatedOptions[loader.id] || {};
422
+ validateOptionsObject(idOptions, loader.id, loaderOptions, deprecatedOptions, loaders);
423
+ }
424
+ }
425
+ function validateOptionsObject(options, id, defaultOptions, deprecatedOptions, loaders) {
426
+ const loaderName = id || "Top level";
427
+ const prefix = id ? `${id}.` : "";
428
+ for (const key in options) {
429
+ const isSubOptions = !id && isObject(options[key]);
430
+ const isBaseUriOption = key === "baseUri" && !id;
431
+ const isWorkerUrlOption = key === "workerUrl" && id;
432
+ if (!(key in defaultOptions) && !isBaseUriOption && !isWorkerUrlOption) {
433
+ if (key in deprecatedOptions) {
434
+ probeLog.warn(
435
+ `${loaderName} loader option '${prefix}${key}' no longer supported, use '${deprecatedOptions[key]}'`
436
+ )();
437
+ } else if (!isSubOptions) {
438
+ const suggestion = findSimilarOption(key, loaders);
439
+ probeLog.warn(
440
+ `${loaderName} loader option '${prefix}${key}' not recognized. ${suggestion}`
441
+ )();
442
+ }
443
+ }
444
+ }
445
+ }
446
+ function findSimilarOption(optionKey, loaders) {
447
+ const lowerCaseOptionKey = optionKey.toLowerCase();
448
+ let bestSuggestion = "";
449
+ for (const loader of loaders) {
450
+ for (const key in loader.options) {
451
+ if (optionKey === key) {
452
+ return `Did you mean '${loader.id}.${key}'?`;
453
+ }
454
+ const lowerCaseKey = key.toLowerCase();
455
+ const isPartialMatch = lowerCaseOptionKey.startsWith(lowerCaseKey) || lowerCaseKey.startsWith(lowerCaseOptionKey);
456
+ if (isPartialMatch) {
457
+ bestSuggestion = bestSuggestion || `Did you mean '${loader.id}.${key}'?`;
458
+ }
459
+ }
460
+ }
461
+ return bestSuggestion;
462
+ }
463
+ function normalizeOptionsInternal(loader, options, url) {
464
+ const loaderDefaultOptions = loader.options || {};
465
+ const mergedOptions = { ...loaderDefaultOptions };
466
+ addUrlOptions(mergedOptions, url);
467
+ if (mergedOptions.log === null) {
468
+ mergedOptions.log = new NullLog();
469
+ }
470
+ mergeNestedFields(mergedOptions, getGlobalLoaderOptions());
471
+ mergeNestedFields(mergedOptions, options);
472
+ return mergedOptions;
473
+ }
474
+ function mergeNestedFields(mergedOptions, options) {
475
+ for (const key in options) {
476
+ if (key in options) {
477
+ const value = options[key];
478
+ if (isPureObject(value) && isPureObject(mergedOptions[key])) {
479
+ mergedOptions[key] = {
480
+ ...mergedOptions[key],
481
+ ...options[key]
482
+ };
483
+ } else {
484
+ mergedOptions[key] = options[key];
485
+ }
486
+ }
487
+ }
488
+ }
489
+ function addUrlOptions(options, url) {
490
+ if (url && !("baseUri" in options)) {
491
+ options.baseUri = url;
492
+ }
493
+ }
494
+
495
+ // src/lib/loader-utils/normalize-loader.ts
496
+ var import_loader_utils3 = require("@loaders.gl/loader-utils");
497
+ function isLoaderObject(loader) {
498
+ if (!loader) {
499
+ return false;
500
+ }
501
+ if (Array.isArray(loader)) {
502
+ loader = loader[0];
503
+ }
504
+ const hasExtensions = Array.isArray(loader == null ? void 0 : loader.extensions);
505
+ return hasExtensions;
506
+ }
507
+ function normalizeLoader(loader) {
508
+ (0, import_loader_utils3.assert)(loader, "null loader");
509
+ (0, import_loader_utils3.assert)(isLoaderObject(loader), "invalid loader");
510
+ let options;
511
+ if (Array.isArray(loader)) {
512
+ options = loader[1];
513
+ loader = loader[0];
514
+ loader = {
515
+ ...loader,
516
+ options: { ...loader.options, ...options }
517
+ };
518
+ }
519
+ if ((loader == null ? void 0 : loader.parseTextSync) || (loader == null ? void 0 : loader.parseText)) {
520
+ loader.text = true;
521
+ }
522
+ if (!loader.text) {
523
+ loader.binary = true;
524
+ }
525
+ return loader;
526
+ }
527
+
528
+ // src/lib/api/register-loaders.ts
529
+ var getGlobalLoaderRegistry = () => {
530
+ const state = getGlobalLoaderState();
531
+ state.loaderRegistry = state.loaderRegistry || [];
532
+ return state.loaderRegistry;
533
+ };
534
+ function registerLoaders(loaders) {
535
+ const loaderRegistry = getGlobalLoaderRegistry();
536
+ loaders = Array.isArray(loaders) ? loaders : [loaders];
537
+ for (const loader of loaders) {
538
+ const normalizedLoader = normalizeLoader(loader);
539
+ if (!loaderRegistry.find((registeredLoader) => normalizedLoader === registeredLoader)) {
540
+ loaderRegistry.unshift(normalizedLoader);
541
+ }
542
+ }
543
+ }
544
+ function getRegisteredLoaders() {
545
+ return getGlobalLoaderRegistry();
546
+ }
547
+ function _unregisterLoaders() {
548
+ const state = getGlobalLoaderState();
549
+ state.loaderRegistry = [];
550
+ }
551
+
552
+ // src/lib/api/select-loader.ts
553
+ var import_loader_utils4 = require("@loaders.gl/loader-utils");
554
+
555
+ // src/lib/utils/log.ts
556
+ var import_log2 = require("@probe.gl/log");
557
+ var log = new import_log2.Log({ id: "loaders.gl" });
558
+
559
+ // src/lib/api/select-loader.ts
560
+ var EXT_PATTERN = /\.([^.]+)$/;
561
+ async function selectLoader(data, loaders = [], options, context) {
562
+ if (!validHTTPResponse(data)) {
563
+ return null;
564
+ }
565
+ let loader = selectLoaderSync(data, loaders, { ...options, nothrow: true }, context);
566
+ if (loader) {
567
+ return loader;
568
+ }
569
+ if (isBlob(data)) {
570
+ data = await data.slice(0, 10).arrayBuffer();
571
+ loader = selectLoaderSync(data, loaders, options, context);
572
+ }
573
+ if (!loader && !(options == null ? void 0 : options.nothrow)) {
574
+ throw new Error(getNoValidLoaderMessage(data));
575
+ }
576
+ return loader;
577
+ }
578
+ function selectLoaderSync(data, loaders = [], options, context) {
579
+ if (!validHTTPResponse(data)) {
580
+ return null;
581
+ }
582
+ if (loaders && !Array.isArray(loaders)) {
583
+ return normalizeLoader(loaders);
584
+ }
585
+ let candidateLoaders = [];
586
+ if (loaders) {
587
+ candidateLoaders = candidateLoaders.concat(loaders);
588
+ }
589
+ if (!(options == null ? void 0 : options.ignoreRegisteredLoaders)) {
590
+ candidateLoaders.push(...getRegisteredLoaders());
591
+ }
592
+ normalizeLoaders(candidateLoaders);
593
+ const loader = selectLoaderInternal(data, candidateLoaders, options, context);
594
+ if (!loader && !(options == null ? void 0 : options.nothrow)) {
595
+ throw new Error(getNoValidLoaderMessage(data));
596
+ }
597
+ return loader;
598
+ }
599
+ function selectLoaderInternal(data, loaders, options, context) {
600
+ const url = getResourceUrl(data);
601
+ const type = getResourceMIMEType(data);
602
+ const testUrl = stripQueryString(url) || (context == null ? void 0 : context.url);
603
+ let loader = null;
604
+ let reason = "";
605
+ if (options == null ? void 0 : options.mimeType) {
606
+ loader = findLoaderByMIMEType(loaders, options == null ? void 0 : options.mimeType);
607
+ reason = `match forced by supplied MIME type ${options == null ? void 0 : options.mimeType}`;
608
+ }
609
+ loader = loader || findLoaderByUrl(loaders, testUrl);
610
+ reason = reason || (loader ? `matched url ${testUrl}` : "");
611
+ loader = loader || findLoaderByMIMEType(loaders, type);
612
+ reason = reason || (loader ? `matched MIME type ${type}` : "");
613
+ loader = loader || findLoaderByInitialBytes(loaders, data);
614
+ reason = reason || (loader ? `matched initial data ${getFirstCharacters(data)}` : "");
615
+ if (options == null ? void 0 : options.fallbackMimeType) {
616
+ loader = loader || findLoaderByMIMEType(loaders, options == null ? void 0 : options.fallbackMimeType);
617
+ reason = reason || (loader ? `matched fallback MIME type ${type}` : "");
618
+ }
619
+ if (reason) {
620
+ log.log(1, `selectLoader selected ${loader == null ? void 0 : loader.name}: ${reason}.`);
621
+ }
622
+ return loader;
623
+ }
624
+ function validHTTPResponse(data) {
625
+ if (data instanceof Response) {
626
+ if (data.status === 204) {
627
+ return false;
628
+ }
629
+ }
630
+ return true;
631
+ }
632
+ function getNoValidLoaderMessage(data) {
633
+ const url = getResourceUrl(data);
634
+ const type = getResourceMIMEType(data);
635
+ let message = "No valid loader found (";
636
+ message += url ? `${import_loader_utils4.path.filename(url)}, ` : "no url provided, ";
637
+ message += `MIME type: ${type ? `"${type}"` : "not provided"}, `;
638
+ const firstCharacters = data ? getFirstCharacters(data) : "";
639
+ message += firstCharacters ? ` first bytes: "${firstCharacters}"` : "first bytes: not available";
640
+ message += ")";
641
+ return message;
642
+ }
643
+ function normalizeLoaders(loaders) {
644
+ for (const loader of loaders) {
645
+ normalizeLoader(loader);
646
+ }
647
+ }
648
+ function findLoaderByUrl(loaders, url) {
649
+ const match = url && EXT_PATTERN.exec(url);
650
+ const extension = match && match[1];
651
+ return extension ? findLoaderByExtension(loaders, extension) : null;
652
+ }
653
+ function findLoaderByExtension(loaders, extension) {
654
+ extension = extension.toLowerCase();
655
+ for (const loader of loaders) {
656
+ for (const loaderExtension of loader.extensions) {
657
+ if (loaderExtension.toLowerCase() === extension) {
658
+ return loader;
659
+ }
660
+ }
661
+ }
662
+ return null;
663
+ }
664
+ function findLoaderByMIMEType(loaders, mimeType) {
665
+ for (const loader of loaders) {
666
+ if (loader.mimeTypes && loader.mimeTypes.includes(mimeType)) {
667
+ return loader;
668
+ }
669
+ if (mimeType === `application/x.${loader.id}`) {
670
+ return loader;
671
+ }
672
+ }
673
+ return null;
674
+ }
675
+ function findLoaderByInitialBytes(loaders, data) {
676
+ if (!data) {
677
+ return null;
678
+ }
679
+ for (const loader of loaders) {
680
+ if (typeof data === "string") {
681
+ if (testDataAgainstText(data, loader)) {
682
+ return loader;
683
+ }
684
+ } else if (ArrayBuffer.isView(data)) {
685
+ if (testDataAgainstBinary(data.buffer, data.byteOffset, loader)) {
686
+ return loader;
687
+ }
688
+ } else if (data instanceof ArrayBuffer) {
689
+ const byteOffset = 0;
690
+ if (testDataAgainstBinary(data, byteOffset, loader)) {
691
+ return loader;
692
+ }
693
+ }
694
+ }
695
+ return null;
696
+ }
697
+ function testDataAgainstText(data, loader) {
698
+ if (loader.testText) {
699
+ return loader.testText(data);
700
+ }
701
+ const tests = Array.isArray(loader.tests) ? loader.tests : [loader.tests];
702
+ return tests.some((test) => data.startsWith(test));
703
+ }
704
+ function testDataAgainstBinary(data, byteOffset, loader) {
705
+ const tests = Array.isArray(loader.tests) ? loader.tests : [loader.tests];
706
+ return tests.some((test) => testBinary(data, byteOffset, loader, test));
707
+ }
708
+ function testBinary(data, byteOffset, loader, test) {
709
+ if (test instanceof ArrayBuffer) {
710
+ return (0, import_loader_utils4.compareArrayBuffers)(test, data, test.byteLength);
711
+ }
712
+ switch (typeof test) {
713
+ case "function":
714
+ return test(data);
715
+ case "string":
716
+ const magic = getMagicString(data, byteOffset, test.length);
717
+ return test === magic;
718
+ default:
719
+ return false;
720
+ }
721
+ }
722
+ function getFirstCharacters(data, length = 5) {
723
+ if (typeof data === "string") {
724
+ return data.slice(0, length);
725
+ } else if (ArrayBuffer.isView(data)) {
726
+ return getMagicString(data.buffer, data.byteOffset, length);
727
+ } else if (data instanceof ArrayBuffer) {
728
+ const byteOffset = 0;
729
+ return getMagicString(data, byteOffset, length);
730
+ }
731
+ return "";
732
+ }
733
+ function getMagicString(arrayBuffer, byteOffset, length) {
734
+ if (arrayBuffer.byteLength < byteOffset + length) {
735
+ return "";
736
+ }
737
+ const dataView = new DataView(arrayBuffer);
738
+ let magic = "";
739
+ for (let i = 0; i < length; i++) {
740
+ magic += String.fromCharCode(dataView.getUint8(byteOffset + i));
741
+ }
742
+ return magic;
743
+ }
744
+
745
+ // src/lib/api/parse.ts
746
+ var import_loader_utils8 = require("@loaders.gl/loader-utils");
747
+ var import_worker_utils = require("@loaders.gl/worker-utils");
748
+ var import_loader_utils9 = require("@loaders.gl/loader-utils");
749
+
750
+ // src/lib/loader-utils/get-data.ts
751
+ var import_loader_utils6 = require("@loaders.gl/loader-utils");
752
+
753
+ // src/iterators/make-iterator/make-string-iterator.ts
754
+ var DEFAULT_CHUNK_SIZE = 256 * 1024;
755
+ function* makeStringIterator(string, options) {
756
+ const chunkSize = (options == null ? void 0 : options.chunkSize) || DEFAULT_CHUNK_SIZE;
757
+ let offset = 0;
758
+ const textEncoder = new TextEncoder();
759
+ while (offset < string.length) {
760
+ const chunkLength = Math.min(string.length - offset, chunkSize);
761
+ const chunk = string.slice(offset, offset + chunkLength);
762
+ offset += chunkLength;
763
+ yield textEncoder.encode(chunk);
764
+ }
765
+ }
766
+
767
+ // src/iterators/make-iterator/make-array-buffer-iterator.ts
768
+ var DEFAULT_CHUNK_SIZE2 = 256 * 1024;
769
+ function* makeArrayBufferIterator(arrayBuffer, options = {}) {
770
+ const { chunkSize = DEFAULT_CHUNK_SIZE2 } = options;
771
+ let byteOffset = 0;
772
+ while (byteOffset < arrayBuffer.byteLength) {
773
+ const chunkByteLength = Math.min(arrayBuffer.byteLength - byteOffset, chunkSize);
774
+ const chunk = new ArrayBuffer(chunkByteLength);
775
+ const sourceArray = new Uint8Array(arrayBuffer, byteOffset, chunkByteLength);
776
+ const chunkArray = new Uint8Array(chunk);
777
+ chunkArray.set(sourceArray);
778
+ byteOffset += chunkByteLength;
779
+ yield chunk;
780
+ }
781
+ }
782
+
783
+ // src/iterators/make-iterator/make-blob-iterator.ts
784
+ var DEFAULT_CHUNK_SIZE3 = 1024 * 1024;
785
+ async function* makeBlobIterator(blob, options) {
786
+ const chunkSize = (options == null ? void 0 : options.chunkSize) || DEFAULT_CHUNK_SIZE3;
787
+ let offset = 0;
788
+ while (offset < blob.size) {
789
+ const end = offset + chunkSize;
790
+ const chunk = await blob.slice(offset, end).arrayBuffer();
791
+ offset = end;
792
+ yield chunk;
793
+ }
794
+ }
795
+
796
+ // src/iterators/make-iterator/make-stream-iterator.ts
797
+ var import_loader_utils5 = require("@loaders.gl/loader-utils");
798
+ function makeStreamIterator(stream, options) {
799
+ return import_loader_utils5.isBrowser ? makeBrowserStreamIterator(stream, options) : makeNodeStreamIterator(stream, options);
800
+ }
801
+ async function* makeBrowserStreamIterator(stream, options) {
802
+ const reader = stream.getReader();
803
+ let nextBatchPromise;
804
+ try {
805
+ while (true) {
806
+ const currentBatchPromise = nextBatchPromise || reader.read();
807
+ if (options == null ? void 0 : options._streamReadAhead) {
808
+ nextBatchPromise = reader.read();
809
+ }
810
+ const { done, value } = await currentBatchPromise;
811
+ if (done) {
812
+ return;
813
+ }
814
+ yield (0, import_loader_utils5.toArrayBuffer)(value);
815
+ }
816
+ } catch (error) {
817
+ reader.releaseLock();
818
+ }
819
+ }
820
+ async function* makeNodeStreamIterator(stream, options) {
821
+ for await (const chunk of stream) {
822
+ yield (0, import_loader_utils5.toArrayBuffer)(chunk);
823
+ }
824
+ }
825
+
826
+ // src/iterators/make-iterator/make-iterator.ts
827
+ function makeIterator(data, options) {
828
+ if (typeof data === "string") {
829
+ return makeStringIterator(data, options);
830
+ }
831
+ if (data instanceof ArrayBuffer) {
832
+ return makeArrayBufferIterator(data, options);
833
+ }
834
+ if (isBlob(data)) {
835
+ return makeBlobIterator(data, options);
836
+ }
837
+ if (isReadableStream(data)) {
838
+ return makeStreamIterator(data, options);
839
+ }
840
+ if (isResponse(data)) {
841
+ const response = data;
842
+ return makeStreamIterator(response.body, options);
843
+ }
844
+ throw new Error("makeIterator");
845
+ }
846
+
847
+ // src/lib/loader-utils/get-data.ts
848
+ var ERR_DATA = "Cannot convert supplied data type";
849
+ function getArrayBufferOrStringFromDataSync(data, loader, options) {
850
+ if (loader.text && typeof data === "string") {
851
+ return data;
852
+ }
853
+ if (isBuffer(data)) {
854
+ data = data.buffer;
855
+ }
856
+ if (data instanceof ArrayBuffer) {
857
+ const arrayBuffer = data;
858
+ if (loader.text && !loader.binary) {
859
+ const textDecoder = new TextDecoder("utf8");
860
+ return textDecoder.decode(arrayBuffer);
861
+ }
862
+ return arrayBuffer;
863
+ }
864
+ if (ArrayBuffer.isView(data)) {
865
+ if (loader.text && !loader.binary) {
866
+ const textDecoder = new TextDecoder("utf8");
867
+ return textDecoder.decode(data);
868
+ }
869
+ let arrayBuffer = data.buffer;
870
+ const byteLength = data.byteLength || data.length;
871
+ if (data.byteOffset !== 0 || byteLength !== arrayBuffer.byteLength) {
872
+ arrayBuffer = arrayBuffer.slice(data.byteOffset, data.byteOffset + byteLength);
873
+ }
874
+ return arrayBuffer;
875
+ }
876
+ throw new Error(ERR_DATA);
877
+ }
878
+ async function getArrayBufferOrStringFromData(data, loader, options) {
879
+ const isArrayBuffer = data instanceof ArrayBuffer || ArrayBuffer.isView(data);
880
+ if (typeof data === "string" || isArrayBuffer) {
881
+ return getArrayBufferOrStringFromDataSync(data, loader, options);
882
+ }
883
+ if (isBlob(data)) {
884
+ data = await makeResponse(data);
885
+ }
886
+ if (isResponse(data)) {
887
+ const response = data;
888
+ await checkResponse(response);
889
+ return loader.binary ? await response.arrayBuffer() : await response.text();
890
+ }
891
+ if (isReadableStream(data)) {
892
+ data = makeIterator(data, options);
893
+ }
894
+ if (isIterable(data) || isAsyncIterable(data)) {
895
+ return (0, import_loader_utils6.concatenateArrayBuffersAsync)(data);
896
+ }
897
+ throw new Error(ERR_DATA);
898
+ }
899
+ async function getAsyncIterableFromData(data, options) {
900
+ if (isIterator(data)) {
901
+ return data;
902
+ }
903
+ if (isResponse(data)) {
904
+ const response = data;
905
+ await checkResponse(response);
906
+ const body = await response.body;
907
+ return makeIterator(body, options);
908
+ }
909
+ if (isBlob(data) || isReadableStream(data)) {
910
+ return makeIterator(data, options);
911
+ }
912
+ if (isAsyncIterable(data)) {
913
+ return data;
914
+ }
915
+ return getIterableFromData(data);
916
+ }
917
+ function getIterableFromData(data) {
918
+ if (ArrayBuffer.isView(data)) {
919
+ return function* oneChunk() {
920
+ yield data.buffer;
921
+ }();
922
+ }
923
+ if (data instanceof ArrayBuffer) {
924
+ return function* oneChunk() {
925
+ yield data;
926
+ }();
927
+ }
928
+ if (isIterator(data)) {
929
+ return data;
930
+ }
931
+ if (isIterable(data)) {
932
+ return data[Symbol.iterator]();
933
+ }
934
+ throw new Error(ERR_DATA);
935
+ }
936
+
937
+ // src/lib/loader-utils/get-fetch-function.ts
938
+ function getFetchFunction(options, context) {
939
+ const globalOptions = getGlobalLoaderOptions();
940
+ const loaderOptions = options || globalOptions;
941
+ if (typeof loaderOptions.fetch === "function") {
942
+ return loaderOptions.fetch;
943
+ }
944
+ if (isObject(loaderOptions.fetch)) {
945
+ return (url) => fetchFile(url, loaderOptions.fetch);
946
+ }
947
+ if (context == null ? void 0 : context.fetch) {
948
+ return context == null ? void 0 : context.fetch;
949
+ }
950
+ return fetchFile;
951
+ }
952
+
953
+ // src/lib/loader-utils/loader-context.ts
954
+ var import_loader_utils7 = require("@loaders.gl/loader-utils");
955
+ function getLoaderContext(context, options, parentContext) {
956
+ if (parentContext) {
957
+ return parentContext;
958
+ }
959
+ const newContext = {
960
+ fetch: getFetchFunction(options, context),
961
+ ...context
962
+ };
963
+ if (newContext.url) {
964
+ const baseUrl = stripQueryString(newContext.url);
965
+ newContext.baseUrl = baseUrl;
966
+ newContext.queryString = extractQueryString(newContext.url);
967
+ newContext.filename = import_loader_utils7.path.filename(baseUrl);
968
+ newContext.baseUrl = import_loader_utils7.path.dirname(baseUrl);
969
+ }
970
+ if (!Array.isArray(newContext.loaders)) {
971
+ newContext.loaders = null;
972
+ }
973
+ return newContext;
974
+ }
975
+ function getLoadersFromContext(loaders, context) {
976
+ if (loaders && !Array.isArray(loaders)) {
977
+ return loaders;
978
+ }
979
+ let candidateLoaders;
980
+ if (loaders) {
981
+ candidateLoaders = Array.isArray(loaders) ? loaders : [loaders];
982
+ }
983
+ if (context && context.loaders) {
984
+ const contextLoaders = Array.isArray(context.loaders) ? context.loaders : [context.loaders];
985
+ candidateLoaders = candidateLoaders ? [...candidateLoaders, ...contextLoaders] : contextLoaders;
986
+ }
987
+ return candidateLoaders && candidateLoaders.length ? candidateLoaders : void 0;
988
+ }
989
+
990
+ // src/lib/api/parse.ts
991
+ async function parse(data, loaders, options, context) {
992
+ if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {
993
+ context = void 0;
994
+ options = loaders;
995
+ loaders = void 0;
996
+ }
997
+ data = await data;
998
+ options = options || {};
999
+ const url = getResourceUrl(data);
1000
+ const typedLoaders = loaders;
1001
+ const candidateLoaders = getLoadersFromContext(typedLoaders, context);
1002
+ const loader = await selectLoader(data, candidateLoaders, options);
1003
+ if (!loader) {
1004
+ return null;
1005
+ }
1006
+ options = normalizeOptions(options, loader, candidateLoaders, url);
1007
+ context = getLoaderContext(
1008
+ // @ts-expect-error
1009
+ { url, _parse: parse, loaders: candidateLoaders },
1010
+ options,
1011
+ context || null
1012
+ );
1013
+ return await parseWithLoader(loader, data, options, context);
1014
+ }
1015
+ async function parseWithLoader(loader, data, options, context) {
1016
+ (0, import_worker_utils.validateWorkerVersion)(loader);
1017
+ options = (0, import_loader_utils9.mergeLoaderOptions)(loader.options, options);
1018
+ if (isResponse(data)) {
1019
+ const response = data;
1020
+ const { ok, redirected, status, statusText, type, url } = response;
1021
+ const headers = Object.fromEntries(response.headers.entries());
1022
+ context.response = { headers, ok, redirected, status, statusText, type, url };
1023
+ }
1024
+ data = await getArrayBufferOrStringFromData(data, loader, options);
1025
+ const loaderWithParser = loader;
1026
+ if (loaderWithParser.parseTextSync && typeof data === "string") {
1027
+ return loaderWithParser.parseTextSync(data, options, context);
1028
+ }
1029
+ if ((0, import_loader_utils8.canParseWithWorker)(loader, options)) {
1030
+ return await (0, import_loader_utils8.parseWithWorker)(loader, data, options, context, parse);
1031
+ }
1032
+ if (loaderWithParser.parseText && typeof data === "string") {
1033
+ return await loaderWithParser.parseText(data, options, context);
1034
+ }
1035
+ if (loaderWithParser.parse) {
1036
+ return await loaderWithParser.parse(data, options, context);
1037
+ }
1038
+ (0, import_worker_utils.assert)(!loaderWithParser.parseSync);
1039
+ throw new Error(`${loader.id} loader - no parser found and worker is disabled`);
1040
+ }
1041
+
1042
+ // src/lib/api/parse-sync.ts
1043
+ function parseSync(data, loaders, options, context) {
1044
+ if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
1045
+ context = void 0;
1046
+ options = loaders;
1047
+ loaders = void 0;
1048
+ }
1049
+ options = options || {};
1050
+ const typedLoaders = loaders;
1051
+ const candidateLoaders = getLoadersFromContext(typedLoaders, context);
1052
+ const loader = selectLoaderSync(data, candidateLoaders, options);
1053
+ if (!loader) {
1054
+ return null;
1055
+ }
1056
+ options = normalizeOptions(options, loader, candidateLoaders);
1057
+ const url = getResourceUrl(data);
1058
+ const parse2 = () => {
1059
+ throw new Error("parseSync called parse (which is async");
1060
+ };
1061
+ context = getLoaderContext(
1062
+ { url, _parseSync: parse2, _parse: parse2, loaders },
1063
+ options,
1064
+ context || null
1065
+ );
1066
+ return parseWithLoaderSync(loader, data, options, context);
1067
+ }
1068
+ function parseWithLoaderSync(loader, data, options, context) {
1069
+ data = getArrayBufferOrStringFromDataSync(data, loader, options);
1070
+ if (loader.parseTextSync && typeof data === "string") {
1071
+ return loader.parseTextSync(data, options);
1072
+ }
1073
+ if (loader.parseSync && data instanceof ArrayBuffer) {
1074
+ return loader.parseSync(data, options, context);
1075
+ }
1076
+ throw new Error(
1077
+ `${loader.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${context.url || ""}`
1078
+ );
1079
+ }
1080
+
1081
+ // src/lib/api/parse-in-batches.ts
1082
+ var import_loader_utils10 = require("@loaders.gl/loader-utils");
1083
+ async function parseInBatches(data, loaders, options, context) {
1084
+ const loaderArray = Array.isArray(loaders) ? loaders : void 0;
1085
+ if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
1086
+ context = void 0;
1087
+ options = loaders;
1088
+ loaders = void 0;
1089
+ }
1090
+ data = await data;
1091
+ options = options || {};
1092
+ const url = getResourceUrl(data);
1093
+ const loader = await selectLoader(data, loaders, options);
1094
+ if (!loader) {
1095
+ return [];
1096
+ }
1097
+ options = normalizeOptions(options, loader, loaderArray, url);
1098
+ context = getLoaderContext(
1099
+ { url, _parseInBatches: parseInBatches, _parse: parse, loaders: loaderArray },
1100
+ options,
1101
+ context || null
1102
+ );
1103
+ return await parseWithLoaderInBatches(loader, data, options, context);
1104
+ }
1105
+ async function parseWithLoaderInBatches(loader, data, options, context) {
1106
+ const outputIterator = await parseToOutputIterator(loader, data, options, context);
1107
+ if (!options.metadata) {
1108
+ return outputIterator;
1109
+ }
1110
+ const metadataBatch = {
1111
+ batchType: "metadata",
1112
+ metadata: {
1113
+ _loader: loader,
1114
+ _context: context
1115
+ },
1116
+ // Populate with some default fields to avoid crashing
1117
+ data: [],
1118
+ bytesUsed: 0
1119
+ };
1120
+ async function* makeMetadataBatchIterator(iterator) {
1121
+ yield metadataBatch;
1122
+ yield* iterator;
1123
+ }
1124
+ return makeMetadataBatchIterator(outputIterator);
1125
+ }
1126
+ async function parseToOutputIterator(loader, data, options, context) {
1127
+ const inputIterator = await getAsyncIterableFromData(data, options);
1128
+ const transformedIterator = await applyInputTransforms(inputIterator, (options == null ? void 0 : options.transforms) || []);
1129
+ if (loader.parseInBatches) {
1130
+ return loader.parseInBatches(transformedIterator, options, context);
1131
+ }
1132
+ async function* parseChunkInBatches() {
1133
+ const arrayBuffer = await (0, import_loader_utils10.concatenateArrayBuffersAsync)(transformedIterator);
1134
+ const parsedData = await parse(
1135
+ arrayBuffer,
1136
+ loader,
1137
+ // TODO - Hack: supply loaders MIME type to ensure we match it
1138
+ { ...options, mimeType: loader.mimeTypes[0] },
1139
+ context
1140
+ );
1141
+ const batch = {
1142
+ mimeType: loader.mimeTypes[0],
1143
+ shape: Array.isArray(parsedData) ? "row-table" : "unknown",
1144
+ batchType: "data",
1145
+ data: parsedData,
1146
+ length: Array.isArray(parsedData) ? parsedData.length : 1
1147
+ };
1148
+ yield batch;
1149
+ }
1150
+ return parseChunkInBatches();
1151
+ }
1152
+ async function applyInputTransforms(inputIterator, transforms = []) {
1153
+ let iteratorChain = inputIterator;
1154
+ for await (const transformBatches of transforms) {
1155
+ iteratorChain = transformBatches(iteratorChain);
1156
+ }
1157
+ return iteratorChain;
1158
+ }
1159
+
1160
+ // src/lib/api/load.ts
1161
+ async function load(url, loaders, options, context) {
1162
+ let resolvedLoaders;
1163
+ let resolvedOptions;
1164
+ if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
1165
+ resolvedLoaders = [];
1166
+ resolvedOptions = loaders;
1167
+ context = void 0;
1168
+ } else {
1169
+ resolvedLoaders = loaders;
1170
+ resolvedOptions = options;
1171
+ }
1172
+ const fetch2 = getFetchFunction(resolvedOptions);
1173
+ let data = url;
1174
+ if (typeof url === "string") {
1175
+ data = await fetch2(url);
1176
+ }
1177
+ if (isBlob(url)) {
1178
+ data = await fetch2(url);
1179
+ }
1180
+ return Array.isArray(resolvedLoaders) ? await parse(data, resolvedLoaders, resolvedOptions) : await parse(data, resolvedLoaders, resolvedOptions);
1181
+ }
1182
+
1183
+ // src/lib/api/load-in-batches.ts
1184
+ function loadInBatches(files, loaders, options, context) {
1185
+ let loadersArray;
1186
+ if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
1187
+ context = void 0;
1188
+ options = loaders;
1189
+ loadersArray = void 0;
1190
+ } else {
1191
+ loadersArray = loaders;
1192
+ }
1193
+ const fetch2 = getFetchFunction(options || {});
1194
+ if (!Array.isArray(files)) {
1195
+ return loadOneFileInBatches(files, loadersArray, options || {}, fetch2);
1196
+ }
1197
+ const promises = files.map(
1198
+ (file) => loadOneFileInBatches(file, loadersArray, options || {}, fetch2)
1199
+ );
1200
+ return promises;
1201
+ }
1202
+ async function loadOneFileInBatches(file, loaders, options, fetch2) {
1203
+ if (typeof file === "string") {
1204
+ const url = file;
1205
+ const response = await fetch2(url);
1206
+ return Array.isArray(loaders) ? await parseInBatches(response, loaders, options) : await parseInBatches(response, loaders, options);
1207
+ }
1208
+ return Array.isArray(loaders) ? await parseInBatches(file, loaders, options) : await parseInBatches(file, loaders, options);
1209
+ }
1210
+
1211
+ // src/lib/api/encode-table.ts
1212
+ var import_loader_utils11 = require("@loaders.gl/loader-utils");
1213
+ async function encodeTable(data, writer, options) {
1214
+ if (writer.encode) {
1215
+ return await writer.encode(data, options);
1216
+ }
1217
+ if (writer.encodeText) {
1218
+ const text = await writer.encodeText(data, options);
1219
+ return new TextEncoder().encode(text);
1220
+ }
1221
+ if (writer.encodeInBatches) {
1222
+ const batches = encodeTableInBatches(data, writer, options);
1223
+ const chunks = [];
1224
+ for await (const batch of batches) {
1225
+ chunks.push(batch);
1226
+ }
1227
+ return (0, import_loader_utils11.concatenateArrayBuffers)(...chunks);
1228
+ }
1229
+ throw new Error("Writer could not encode data");
1230
+ }
1231
+ async function encodeTableAsText(data, writer, options) {
1232
+ if (writer.text && writer.encodeText) {
1233
+ return await writer.encodeText(data, options);
1234
+ }
1235
+ if (writer.text && (writer.encode || writer.encodeInBatches)) {
1236
+ const arrayBuffer = await encodeTable(data, writer, options);
1237
+ return new TextDecoder().decode(arrayBuffer);
1238
+ }
1239
+ throw new Error(`Writer ${writer.name} could not encode data as text`);
1240
+ }
1241
+ function encodeTableInBatches(data, writer, options) {
1242
+ if (writer.encodeInBatches) {
1243
+ const dataIterator = getIterator(data);
1244
+ return writer.encodeInBatches(dataIterator, options);
1245
+ }
1246
+ throw new Error("Writer could not encode data in batches");
1247
+ }
1248
+ function getIterator(data) {
1249
+ const dataIterator = [{ ...data, start: 0, end: data.length }];
1250
+ return dataIterator;
1251
+ }
1252
+
1253
+ // src/lib/api/encode.ts
1254
+ var import_loader_utils12 = require("@loaders.gl/loader-utils");
1255
+ var import_loader_utils13 = require("@loaders.gl/loader-utils");
1256
+ var import_worker_utils2 = require("@loaders.gl/worker-utils");
1257
+ var import_loader_utils14 = require("@loaders.gl/loader-utils");
1258
+ async function encode(data, writer, options) {
1259
+ const globalOptions = getGlobalLoaderOptions();
1260
+ options = { ...globalOptions, ...options };
1261
+ if ((0, import_loader_utils12.canEncodeWithWorker)(writer, options)) {
1262
+ return await (0, import_worker_utils2.processOnWorker)(writer, data, options);
1263
+ }
1264
+ if (writer.encode) {
1265
+ return await writer.encode(data, options);
1266
+ }
1267
+ if (writer.encodeSync) {
1268
+ return writer.encodeSync(data, options);
1269
+ }
1270
+ if (writer.encodeText) {
1271
+ return new TextEncoder().encode(await writer.encodeText(data, options));
1272
+ }
1273
+ if (writer.encodeInBatches) {
1274
+ const batches = encodeInBatches(data, writer, options);
1275
+ const chunks = [];
1276
+ for await (const batch of batches) {
1277
+ chunks.push(batch);
1278
+ }
1279
+ return (0, import_loader_utils13.concatenateArrayBuffers)(...chunks);
1280
+ }
1281
+ if (!import_loader_utils14.isBrowser && writer.encodeURLtoURL) {
1282
+ const tmpInputFilename = getTemporaryFilename("input");
1283
+ const file = new import_loader_utils13.NodeFile(tmpInputFilename, "w");
1284
+ await file.write(data);
1285
+ const tmpOutputFilename = getTemporaryFilename("output");
1286
+ const outputFilename = await encodeURLtoURL(
1287
+ tmpInputFilename,
1288
+ tmpOutputFilename,
1289
+ writer,
1290
+ options
1291
+ );
1292
+ const response = await fetchFile(outputFilename);
1293
+ return response.arrayBuffer();
1294
+ }
1295
+ throw new Error("Writer could not encode data");
1296
+ }
1297
+ function encodeSync(data, writer, options) {
1298
+ if (writer.encodeSync) {
1299
+ return writer.encodeSync(data, options);
1300
+ }
1301
+ throw new Error("Writer could not synchronously encode data");
1302
+ }
1303
+ async function encodeText(data, writer, options) {
1304
+ if (writer.text && writer.encodeText) {
1305
+ return await writer.encodeText(data, options);
1306
+ }
1307
+ if (writer.text && (writer.encode || writer.encodeInBatches)) {
1308
+ const arrayBuffer = await encode(data, writer, options);
1309
+ return new TextDecoder().decode(arrayBuffer);
1310
+ }
1311
+ throw new Error(`Writer ${writer.name} could not encode data as text`);
1312
+ }
1313
+ function encodeTextSync(data, writer, options) {
1314
+ if (writer.text && writer.encodeTextSync) {
1315
+ return writer.encodeTextSync(data, options);
1316
+ }
1317
+ if (writer.text && writer.encodeSync) {
1318
+ const arrayBuffer = encodeSync(data, writer, options);
1319
+ return new TextDecoder().decode(arrayBuffer);
1320
+ }
1321
+ throw new Error(`Writer ${writer.name} could not encode data as text`);
1322
+ }
1323
+ function encodeInBatches(data, writer, options) {
1324
+ if (writer.encodeInBatches) {
1325
+ const dataIterator = getIterator2(data);
1326
+ return writer.encodeInBatches(dataIterator, options);
1327
+ }
1328
+ throw new Error("Writer could not encode data in batches");
1329
+ }
1330
+ async function encodeURLtoURL(inputUrl, outputUrl, writer, options) {
1331
+ inputUrl = (0, import_loader_utils13.resolvePath)(inputUrl);
1332
+ outputUrl = (0, import_loader_utils13.resolvePath)(outputUrl);
1333
+ if (import_loader_utils14.isBrowser || !writer.encodeURLtoURL) {
1334
+ throw new Error();
1335
+ }
1336
+ const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);
1337
+ return outputFilename;
1338
+ }
1339
+ function getIterator2(data) {
1340
+ const dataIterator = [{ ...data, start: 0, end: data.length }];
1341
+ return dataIterator;
1342
+ }
1343
+ function getTemporaryFilename(filename) {
1344
+ return `/tmp/${filename}`;
1345
+ }
1346
+
1347
+ // src/index.ts
1348
+ var import_loader_utils16 = require("@loaders.gl/loader-utils");
1349
+ var import_loader_utils17 = require("@loaders.gl/loader-utils");
1350
+
1351
+ // src/iterators/make-stream/make-stream.ts
1352
+ function makeStream(source, options) {
1353
+ if (globalThis.loaders.makeNodeStream) {
1354
+ return globalThis.loaders.makeNodeStream(source, options);
1355
+ }
1356
+ const iterator = source[Symbol.asyncIterator] ? source[Symbol.asyncIterator]() : source[Symbol.iterator]();
1357
+ return new ReadableStream(
1358
+ {
1359
+ // Create a byte stream (enables `Response(stream).arrayBuffer()`)
1360
+ // Only supported on Chrome
1361
+ // See: https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController
1362
+ type: "bytes",
1363
+ async pull(controller) {
1364
+ try {
1365
+ const { done, value } = await iterator.next();
1366
+ if (done) {
1367
+ controller.close();
1368
+ } else {
1369
+ controller.enqueue(new Uint8Array(value));
1370
+ }
1371
+ } catch (error) {
1372
+ controller.error(error);
1373
+ }
1374
+ },
1375
+ async cancel() {
1376
+ var _a;
1377
+ await ((_a = iterator == null ? void 0 : iterator.return) == null ? void 0 : _a.call(iterator));
1378
+ }
1379
+ },
1380
+ // options: QueingStrategy<Uint8Array>
1381
+ {
1382
+ // This is bytes, not chunks
1383
+ highWaterMark: 2 ** 24,
1384
+ ...options
1385
+ }
1386
+ );
1387
+ }
1388
+
1389
+ // src/null-loader.ts
1390
+ var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1391
+ var NullWorkerLoader = {
1392
+ name: "Null loader",
1393
+ id: "null",
1394
+ module: "core",
1395
+ version: VERSION,
1396
+ worker: true,
1397
+ mimeTypes: ["application/x.empty"],
1398
+ extensions: ["null"],
1399
+ tests: [() => false],
1400
+ options: {
1401
+ null: {}
1402
+ }
1403
+ };
1404
+ var NullLoader = {
1405
+ name: "Null loader",
1406
+ id: "null",
1407
+ module: "core",
1408
+ version: VERSION,
1409
+ mimeTypes: ["application/x.empty"],
1410
+ extensions: ["null"],
1411
+ parse: async (arrayBuffer, options, context) => parseSync2(arrayBuffer, options || {}, context),
1412
+ parseSync: parseSync2,
1413
+ parseInBatches: async function* generator(asyncIterator, options, context) {
1414
+ for await (const batch of asyncIterator) {
1415
+ yield parseSync2(batch, options, context);
1416
+ }
1417
+ },
1418
+ tests: [() => false],
1419
+ options: {
1420
+ null: {}
1421
+ }
1422
+ };
1423
+ function parseSync2(arrayBuffer, options, context) {
1424
+ return null;
1425
+ }
1426
+
1427
+ // src/index.ts
1428
+ var import_loader_utils18 = require("@loaders.gl/loader-utils");
1429
+
1430
+ // src/lib/progress/fetch-progress.ts
1431
+ async function fetchProgress(response, onProgress, onDone = () => {
1432
+ }, onError = () => {
1433
+ }) {
1434
+ response = await response;
1435
+ if (!response.ok) {
1436
+ return response;
1437
+ }
1438
+ const body = response.body;
1439
+ if (!body) {
1440
+ return response;
1441
+ }
1442
+ const contentLength = response.headers.get("content-length") || 0;
1443
+ const totalBytes = contentLength ? parseInt(contentLength) : 0;
1444
+ if (!(totalBytes > 0)) {
1445
+ return response;
1446
+ }
1447
+ if (typeof ReadableStream === "undefined" || !body.getReader) {
1448
+ return response;
1449
+ }
1450
+ const progressStream = new ReadableStream({
1451
+ async start(controller) {
1452
+ const reader = body.getReader();
1453
+ await read(controller, reader, 0, totalBytes, onProgress, onDone, onError);
1454
+ }
1455
+ });
1456
+ return new Response(progressStream);
1457
+ }
1458
+ async function read(controller, reader, loadedBytes, totalBytes, onProgress, onDone, onError) {
1459
+ try {
1460
+ const { done, value } = await reader.read();
1461
+ if (done) {
1462
+ onDone();
1463
+ controller.close();
1464
+ return;
1465
+ }
1466
+ loadedBytes += value.byteLength;
1467
+ const percent = Math.round(loadedBytes / totalBytes * 100);
1468
+ onProgress(percent, { loadedBytes, totalBytes });
1469
+ controller.enqueue(value);
1470
+ await read(controller, reader, loadedBytes, totalBytes, onProgress, onDone, onError);
1471
+ } catch (error) {
1472
+ controller.error(error);
1473
+ onError(error);
1474
+ }
1475
+ }
1476
+
1477
+ // src/lib/filesystems/browser-filesystem.ts
1478
+ var import_loader_utils15 = require("@loaders.gl/loader-utils");
1479
+ var BrowserFileSystem = class {
1480
+ /**
1481
+ * A FileSystem API wrapper around a list of browser 'File' objects
1482
+ * @param files
1483
+ * @param options
1484
+ */
1485
+ constructor(files, options) {
1486
+ this.files = {};
1487
+ this.lowerCaseFiles = {};
1488
+ this.usedFiles = {};
1489
+ this._fetch = (options == null ? void 0 : options.fetch) || fetch;
1490
+ for (let i = 0; i < files.length; ++i) {
1491
+ const file = files[i];
1492
+ this.files[file.name] = file;
1493
+ this.lowerCaseFiles[file.name.toLowerCase()] = file;
1494
+ this.usedFiles[file.name] = false;
1495
+ }
1496
+ this.fetch = this.fetch.bind(this);
1497
+ }
1498
+ // implements IFileSystem
1499
+ /**
1500
+ * Implementation of fetch against this file system
1501
+ * Delegates to global fetch for http{s}:// or data://
1502
+ */
1503
+ async fetch(path3, options) {
1504
+ if (path3.includes("://")) {
1505
+ return this._fetch(path3, options);
1506
+ }
1507
+ const file = this.files[path3];
1508
+ if (!file) {
1509
+ return new Response(path3, { status: 400, statusText: "NOT FOUND" });
1510
+ }
1511
+ const headers = new Headers(options == null ? void 0 : options.headers);
1512
+ const range = headers.get("Range");
1513
+ const bytes = range && /bytes=($1)-($2)/.exec(range);
1514
+ if (bytes) {
1515
+ const start = parseInt(bytes[1]);
1516
+ const end = parseInt(bytes[2]);
1517
+ const data = await file.slice(start, end).arrayBuffer();
1518
+ const response2 = new Response(data);
1519
+ Object.defineProperty(response2, "url", { value: path3 });
1520
+ return response2;
1521
+ }
1522
+ const response = new Response(file);
1523
+ Object.defineProperty(response, "url", { value: path3 });
1524
+ return response;
1525
+ }
1526
+ /**
1527
+ * List filenames in this filesystem
1528
+ * @param dirname
1529
+ * @returns
1530
+ */
1531
+ async readdir(dirname) {
1532
+ const files = [];
1533
+ for (const path3 in this.files) {
1534
+ files.push(path3);
1535
+ }
1536
+ return files;
1537
+ }
1538
+ /**
1539
+ * Return information (size) about files in this file system
1540
+ */
1541
+ async stat(path3, options) {
1542
+ const file = this.files[path3];
1543
+ if (!file) {
1544
+ throw new Error(path3);
1545
+ }
1546
+ return { size: file.size };
1547
+ }
1548
+ /**
1549
+ * Just removes the file from the list
1550
+ */
1551
+ async unlink(path3) {
1552
+ delete this.files[path3];
1553
+ delete this.lowerCaseFiles[path3];
1554
+ this.usedFiles[path3] = true;
1555
+ }
1556
+ // implements IRandomAccessFileSystem
1557
+ // RANDOM ACCESS
1558
+ async openReadableFile(pathname, flags) {
1559
+ return new import_loader_utils15.BlobFile(this.files[pathname]);
1560
+ }
1561
+ // PRIVATE
1562
+ // Supports case independent paths, and file usage tracking
1563
+ _getFile(path3, used) {
1564
+ const file = this.files[path3] || this.lowerCaseFiles[path3];
1565
+ if (file && used) {
1566
+ this.usedFiles[path3] = true;
1567
+ }
1568
+ return file;
1569
+ }
1570
+ };
1571
+
1572
+ // src/index.ts
1573
+ var import_loader_utils19 = require("@loaders.gl/loader-utils");
1574
+ var import_loader_utils20 = require("@loaders.gl/loader-utils");
1575
+ var import_loader_utils21 = require("@loaders.gl/loader-utils");
1576
+ var import_loader_utils22 = require("@loaders.gl/loader-utils");