@loaders.gl/core 4.0.0-alpha.4 → 4.0.0-alpha.6

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 (413) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +2 -2
  4. package/dist/core-addons/write-file-browser.d.ts +1 -0
  5. package/dist/core-addons/write-file-browser.d.ts.map +1 -0
  6. package/dist/core-addons/write-file-browser.js +59 -1
  7. package/dist/dist.min.js +3874 -0
  8. package/dist/es5/bundle.js +6 -0
  9. package/dist/es5/bundle.js.map +1 -0
  10. package/dist/es5/core-addons/write-file-browser.js +2 -0
  11. package/dist/es5/core-addons/write-file-browser.js.map +1 -0
  12. package/dist/es5/index.js +377 -0
  13. package/dist/es5/index.js.map +1 -0
  14. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +94 -0
  15. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  16. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +42 -0
  17. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  18. package/dist/es5/iterators/make-iterator/make-blob-iterator.js +47 -0
  19. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  20. package/dist/es5/iterators/make-iterator/make-iterator.js +31 -0
  21. package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -0
  22. package/dist/es5/iterators/make-iterator/make-stream-iterator.js +133 -0
  23. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  24. package/dist/es5/iterators/make-iterator/make-string-iterator.js +38 -0
  25. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -0
  26. package/dist/es5/iterators/make-stream/make-dom-stream.js +67 -0
  27. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -0
  28. package/dist/es5/iterators/make-stream/make-node-stream.js +168 -0
  29. package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -0
  30. package/dist/es5/javascript-utils/is-type.js +79 -0
  31. package/dist/es5/javascript-utils/is-type.js.map +1 -0
  32. package/dist/es5/lib/api/encode-table.js +159 -0
  33. package/dist/es5/lib/api/encode-table.js.map +1 -0
  34. package/dist/es5/lib/api/encode.js +244 -0
  35. package/dist/es5/lib/api/encode.js.map +1 -0
  36. package/dist/es5/lib/api/load-in-batches.js +63 -0
  37. package/dist/es5/lib/api/load-in-batches.js.map +1 -0
  38. package/dist/es5/lib/api/load.js +76 -0
  39. package/dist/es5/lib/api/load.js.map +1 -0
  40. package/dist/es5/lib/api/loader-options.js +19 -0
  41. package/dist/es5/lib/api/loader-options.js.map +1 -0
  42. package/dist/es5/lib/api/parse-in-batches.js +277 -0
  43. package/dist/es5/lib/api/parse-in-batches.js.map +1 -0
  44. package/dist/es5/lib/api/parse-sync.js +54 -0
  45. package/dist/es5/lib/api/parse-sync.js.map +1 -0
  46. package/dist/es5/lib/api/parse.js +143 -0
  47. package/dist/es5/lib/api/parse.js.map +1 -0
  48. package/dist/es5/lib/api/register-loaders.js +50 -0
  49. package/dist/es5/lib/api/register-loaders.js.map +1 -0
  50. package/dist/es5/lib/api/save.js +42 -0
  51. package/dist/es5/lib/api/save.js.map +1 -0
  52. package/dist/es5/lib/api/select-loader.js +303 -0
  53. package/dist/es5/lib/api/select-loader.js.map +1 -0
  54. package/dist/es5/lib/common.js +2 -0
  55. package/dist/es5/lib/common.js.map +1 -0
  56. package/dist/es5/lib/fetch/fetch-error-message.js +56 -0
  57. package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -0
  58. package/dist/es5/lib/fetch/fetch-file.js +47 -0
  59. package/dist/es5/lib/fetch/fetch-file.js.map +1 -0
  60. package/dist/es5/lib/fetch/read-array-buffer.js +76 -0
  61. package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -0
  62. package/dist/es5/lib/fetch/read-file.js +20 -0
  63. package/dist/es5/lib/fetch/read-file.js.map +1 -0
  64. package/dist/es5/lib/fetch/write-file.js +48 -0
  65. package/dist/es5/lib/fetch/write-file.js.map +1 -0
  66. package/dist/es5/lib/filesystems/browser-filesystem.js +249 -0
  67. package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -0
  68. package/dist/es5/lib/filesystems/filesystem.js +2 -0
  69. package/dist/es5/lib/filesystems/filesystem.js.map +1 -0
  70. package/dist/es5/lib/filesystems/read-array-buffer.js +41 -0
  71. package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -0
  72. package/dist/es5/lib/init.js +18 -0
  73. package/dist/es5/lib/init.js.map +1 -0
  74. package/dist/es5/lib/loader-utils/check-errors.js +57 -0
  75. package/dist/es5/lib/loader-utils/check-errors.js.map +1 -0
  76. package/dist/es5/lib/loader-utils/get-data.js +237 -0
  77. package/dist/es5/lib/loader-utils/get-data.js.map +1 -0
  78. package/dist/es5/lib/loader-utils/get-fetch-function.js +26 -0
  79. package/dist/es5/lib/loader-utils/get-fetch-function.js.map +1 -0
  80. package/dist/es5/lib/loader-utils/loader-context.js +41 -0
  81. package/dist/es5/lib/loader-utils/loader-context.js.map +1 -0
  82. package/dist/es5/lib/loader-utils/loggers.js +90 -0
  83. package/dist/es5/lib/loader-utils/loggers.js.map +1 -0
  84. package/dist/es5/lib/loader-utils/normalize-loader.js +44 -0
  85. package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -0
  86. package/dist/es5/lib/loader-utils/option-defaults.js +47 -0
  87. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -0
  88. package/dist/es5/lib/loader-utils/option-utils.js +132 -0
  89. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -0
  90. package/dist/es5/lib/progress/fetch-progress.js +134 -0
  91. package/dist/es5/lib/progress/fetch-progress.js.map +1 -0
  92. package/dist/es5/lib/utils/log.js +12 -0
  93. package/dist/es5/lib/utils/log.js.map +1 -0
  94. package/dist/es5/lib/utils/mime-type-utils.js +24 -0
  95. package/dist/es5/lib/utils/mime-type-utils.js.map +1 -0
  96. package/dist/es5/lib/utils/resource-utils.js +58 -0
  97. package/dist/es5/lib/utils/resource-utils.js.map +1 -0
  98. package/dist/es5/lib/utils/response-utils.js +196 -0
  99. package/dist/es5/lib/utils/response-utils.js.map +1 -0
  100. package/dist/es5/null-loader.js +139 -0
  101. package/dist/es5/null-loader.js.map +1 -0
  102. package/dist/es5/workers/null-worker.js +6 -0
  103. package/dist/es5/workers/null-worker.js.map +1 -0
  104. package/dist/esm/bundle.js +4 -0
  105. package/dist/esm/bundle.js.map +1 -0
  106. package/dist/esm/core-addons/README.md +1 -0
  107. package/dist/esm/core-addons/write-file-browser.js +2 -0
  108. package/dist/esm/core-addons/write-file-browser.js.map +1 -0
  109. package/dist/esm/index.js +30 -0
  110. package/dist/esm/index.js.map +1 -0
  111. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js +16 -0
  112. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  113. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js +20 -0
  114. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  115. package/dist/esm/iterators/make-iterator/make-blob-iterator.js +12 -0
  116. package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  117. package/dist/esm/iterators/make-iterator/make-iterator.js +25 -0
  118. package/dist/esm/iterators/make-iterator/make-iterator.js.map +1 -0
  119. package/dist/esm/iterators/make-iterator/make-stream-iterator.js +32 -0
  120. package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  121. package/dist/esm/iterators/make-iterator/make-string-iterator.js +13 -0
  122. package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +1 -0
  123. package/dist/esm/iterators/make-stream/make-dom-stream.js +29 -0
  124. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -0
  125. package/dist/esm/iterators/make-stream/make-node-stream.js +57 -0
  126. package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -0
  127. package/dist/esm/javascript-utils/is-type.js +19 -0
  128. package/dist/esm/javascript-utils/is-type.js.map +1 -0
  129. package/dist/esm/lib/api/encode-table.js +45 -0
  130. package/dist/esm/lib/api/encode-table.js.map +1 -0
  131. package/dist/esm/lib/api/encode.js +87 -0
  132. package/dist/esm/lib/api/encode.js.map +1 -0
  133. package/dist/esm/lib/api/load-in-batches.js +25 -0
  134. package/dist/esm/lib/api/load-in-batches.js.map +1 -0
  135. package/dist/esm/lib/api/load.js +26 -0
  136. package/dist/esm/lib/api/load.js.map +1 -0
  137. package/dist/esm/lib/api/loader-options.js +3 -0
  138. package/dist/esm/lib/api/loader-options.js.map +1 -0
  139. package/dist/esm/lib/api/parse-in-batches.js +85 -0
  140. package/dist/esm/lib/api/parse-in-batches.js.map +1 -0
  141. package/dist/esm/lib/api/parse-sync.js +47 -0
  142. package/dist/esm/lib/api/parse-sync.js.map +1 -0
  143. package/dist/esm/lib/api/parse.js +76 -0
  144. package/dist/esm/lib/api/parse.js.map +1 -0
  145. package/dist/esm/lib/api/register-loaders.js +25 -0
  146. package/dist/esm/lib/api/register-loaders.js.map +1 -0
  147. package/dist/esm/lib/api/save.js +11 -0
  148. package/dist/esm/lib/api/save.js.map +1 -0
  149. package/dist/esm/lib/api/select-loader.js +204 -0
  150. package/dist/esm/lib/api/select-loader.js.map +1 -0
  151. package/dist/esm/lib/common.js +2 -0
  152. package/dist/esm/lib/common.js.map +1 -0
  153. package/dist/esm/lib/fetch/fetch-error-message.js +18 -0
  154. package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -0
  155. package/dist/esm/lib/fetch/fetch-file.js +14 -0
  156. package/dist/esm/lib/fetch/fetch-file.js.map +1 -0
  157. package/dist/esm/lib/fetch/read-array-buffer.js +23 -0
  158. package/dist/esm/lib/fetch/read-array-buffer.js.map +1 -0
  159. package/dist/esm/lib/fetch/read-file.js +15 -0
  160. package/dist/esm/lib/fetch/read-file.js.map +1 -0
  161. package/dist/esm/lib/fetch/write-file.js +21 -0
  162. package/dist/esm/lib/fetch/write-file.js.map +1 -0
  163. package/dist/esm/lib/filesystems/browser-filesystem.js +92 -0
  164. package/dist/esm/lib/filesystems/browser-filesystem.js.map +1 -0
  165. package/dist/esm/lib/filesystems/filesystem.js +2 -0
  166. package/dist/esm/lib/filesystems/filesystem.js.map +1 -0
  167. package/dist/esm/lib/filesystems/read-array-buffer.js +8 -0
  168. package/dist/esm/lib/filesystems/read-array-buffer.js.map +1 -0
  169. package/dist/esm/lib/init.js +11 -0
  170. package/dist/esm/lib/init.js.map +1 -0
  171. package/dist/esm/lib/loader-utils/check-errors.js +22 -0
  172. package/dist/esm/lib/loader-utils/check-errors.js.map +1 -0
  173. package/dist/esm/lib/loader-utils/get-data.js +103 -0
  174. package/dist/esm/lib/loader-utils/get-data.js.map +1 -0
  175. package/dist/esm/lib/loader-utils/get-fetch-function.js +18 -0
  176. package/dist/esm/lib/loader-utils/get-fetch-function.js.map +1 -0
  177. package/dist/esm/lib/loader-utils/loader-context.js +30 -0
  178. package/dist/esm/lib/loader-utils/loader-context.js.map +1 -0
  179. package/dist/esm/lib/loader-utils/loggers.js +50 -0
  180. package/dist/esm/lib/loader-utils/loggers.js.map +1 -0
  181. package/dist/esm/lib/loader-utils/normalize-loader.js +37 -0
  182. package/dist/esm/lib/loader-utils/normalize-loader.js.map +1 -0
  183. package/dist/esm/lib/loader-utils/option-defaults.js +39 -0
  184. package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -0
  185. package/dist/esm/lib/loader-utils/option-utils.js +106 -0
  186. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -0
  187. package/dist/esm/lib/progress/fetch-progress.js +52 -0
  188. package/dist/esm/lib/progress/fetch-progress.js.map +1 -0
  189. package/dist/esm/lib/utils/log.js +5 -0
  190. package/dist/esm/lib/utils/log.js.map +1 -0
  191. package/dist/esm/lib/utils/mime-type-utils.js +17 -0
  192. package/dist/esm/lib/utils/mime-type-utils.js.map +1 -0
  193. package/dist/esm/lib/utils/resource-utils.js +51 -0
  194. package/dist/esm/lib/utils/resource-utils.js.map +1 -0
  195. package/dist/esm/lib/utils/response-utils.js +91 -0
  196. package/dist/esm/lib/utils/response-utils.js.map +1 -0
  197. package/dist/esm/null-loader.js +45 -0
  198. package/dist/esm/null-loader.js.map +1 -0
  199. package/dist/esm/workers/null-worker.js +4 -0
  200. package/dist/esm/workers/null-worker.js.map +1 -0
  201. package/dist/index.d.ts +31 -0
  202. package/dist/index.d.ts.map +1 -0
  203. package/dist/index.js +108 -31
  204. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts +5 -0
  205. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts.map +1 -0
  206. package/dist/iterators/batch-iterators/timed-batch-iterator.js +20 -17
  207. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts +9 -0
  208. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts.map +1 -0
  209. package/dist/iterators/make-iterator/make-array-buffer-iterator.js +25 -16
  210. package/dist/iterators/make-iterator/make-blob-iterator.d.ts +9 -0
  211. package/dist/iterators/make-iterator/make-blob-iterator.d.ts.map +1 -0
  212. package/dist/iterators/make-iterator/make-blob-iterator.js +20 -12
  213. package/dist/iterators/make-iterator/make-iterator.d.ts +19 -0
  214. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -0
  215. package/dist/iterators/make-iterator/make-iterator.js +36 -29
  216. package/dist/iterators/make-iterator/make-stream-iterator.d.ts +11 -0
  217. package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -0
  218. package/dist/iterators/make-iterator/make-stream-iterator.js +89 -32
  219. package/dist/iterators/make-iterator/make-string-iterator.d.ts +9 -0
  220. package/dist/iterators/make-iterator/make-string-iterator.d.ts.map +1 -0
  221. package/dist/iterators/make-iterator/make-string-iterator.js +22 -12
  222. package/dist/iterators/make-stream/make-dom-stream.d.ts +14 -0
  223. package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -0
  224. package/dist/iterators/make-stream/make-dom-stream.js +44 -32
  225. package/dist/iterators/make-stream/make-node-stream.d.ts +11 -0
  226. package/dist/iterators/make-stream/make-node-stream.d.ts.map +1 -0
  227. package/dist/iterators/make-stream/make-node-stream.js +75 -70
  228. package/dist/javascript-utils/is-type.d.ts +22 -0
  229. package/dist/javascript-utils/is-type.d.ts.map +1 -0
  230. package/dist/javascript-utils/is-type.js +41 -21
  231. package/dist/lib/api/encode-table.d.ts +6 -0
  232. package/dist/lib/api/encode-table.d.ts.map +1 -0
  233. package/dist/lib/api/encode-table.js +54 -0
  234. package/dist/lib/api/encode.d.ts +26 -0
  235. package/dist/lib/api/encode.d.ts.map +1 -0
  236. package/dist/lib/api/encode.js +111 -81
  237. package/dist/lib/api/load-in-batches.d.ts +13 -0
  238. package/dist/lib/api/load-in-batches.d.ts.map +1 -0
  239. package/dist/lib/api/load-in-batches.js +30 -27
  240. package/dist/lib/api/load.d.ts +14 -0
  241. package/dist/lib/api/load.d.ts.map +1 -0
  242. package/dist/lib/api/load.js +42 -24
  243. package/dist/lib/api/loader-options.d.ts +3 -0
  244. package/dist/lib/api/loader-options.d.ts.map +1 -0
  245. package/dist/lib/api/loader-options.js +7 -0
  246. package/dist/lib/api/parse-in-batches.d.ts +10 -0
  247. package/dist/lib/api/parse-in-batches.d.ts.map +1 -0
  248. package/dist/lib/api/parse-in-batches.js +113 -92
  249. package/dist/lib/api/parse-sync.d.ts +10 -0
  250. package/dist/lib/api/parse-sync.d.ts.map +1 -0
  251. package/dist/lib/api/parse-sync.js +56 -54
  252. package/dist/lib/api/parse.d.ts +6 -0
  253. package/dist/lib/api/parse.d.ts.map +1 -0
  254. package/dist/lib/api/parse.js +81 -61
  255. package/dist/lib/api/register-loaders.d.ts +7 -0
  256. package/dist/lib/api/register-loaders.d.ts.map +1 -0
  257. package/dist/lib/api/register-loaders.js +29 -23
  258. package/dist/lib/api/save.d.ts +4 -0
  259. package/dist/lib/api/save.d.ts.map +1 -0
  260. package/dist/lib/api/save.js +13 -9
  261. package/dist/lib/api/select-loader.d.ts +22 -0
  262. package/dist/lib/api/select-loader.d.ts.map +1 -0
  263. package/dist/lib/api/select-loader.js +216 -194
  264. package/dist/lib/common.d.ts +2 -0
  265. package/dist/lib/common.d.ts.map +1 -0
  266. package/dist/lib/common.js +2 -2
  267. package/dist/lib/fetch/fetch-error-message.d.ts +3 -0
  268. package/dist/lib/fetch/fetch-error-message.d.ts.map +1 -0
  269. package/dist/lib/fetch/fetch-error-message.js +21 -17
  270. package/dist/lib/fetch/fetch-file.d.ts +13 -0
  271. package/dist/lib/fetch/fetch-file.d.ts.map +1 -0
  272. package/dist/lib/fetch/fetch-file.js +25 -15
  273. package/dist/lib/fetch/read-array-buffer.d.ts +17 -0
  274. package/dist/lib/fetch/read-array-buffer.d.ts.map +1 -0
  275. package/dist/lib/fetch/read-array-buffer.js +39 -27
  276. package/dist/lib/fetch/read-file.d.ts +5 -0
  277. package/dist/lib/fetch/read-file.d.ts.map +1 -0
  278. package/dist/lib/fetch/read-file.js +28 -16
  279. package/dist/lib/fetch/write-file.d.ts +3 -0
  280. package/dist/lib/fetch/write-file.d.ts.map +1 -0
  281. package/dist/lib/fetch/write-file.js +20 -23
  282. package/dist/lib/filesystems/browser-filesystem.d.ts +58 -0
  283. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -0
  284. package/dist/lib/filesystems/browser-filesystem.js +118 -107
  285. package/dist/lib/filesystems/filesystem.d.ts +46 -0
  286. package/dist/lib/filesystems/filesystem.d.ts.map +1 -0
  287. package/dist/lib/filesystems/filesystem.js +2 -2
  288. package/dist/lib/filesystems/read-array-buffer.d.ts +19 -0
  289. package/dist/lib/filesystems/read-array-buffer.d.ts.map +1 -0
  290. package/dist/lib/filesystems/read-array-buffer.js +28 -8
  291. package/dist/lib/init.d.ts +3 -0
  292. package/dist/lib/init.d.ts.map +1 -0
  293. package/dist/lib/init.js +16 -6
  294. package/dist/lib/loader-utils/check-errors.d.ts +3 -0
  295. package/dist/lib/loader-utils/check-errors.d.ts.map +1 -0
  296. package/dist/lib/loader-utils/check-errors.js +26 -22
  297. package/dist/lib/loader-utils/get-data.d.ts +6 -0
  298. package/dist/lib/loader-utils/get-data.d.ts.map +1 -0
  299. package/dist/lib/loader-utils/get-data.js +122 -122
  300. package/dist/lib/loader-utils/get-fetch-function.d.ts +9 -0
  301. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -0
  302. package/dist/lib/loader-utils/get-fetch-function.js +31 -0
  303. package/dist/lib/loader-utils/loader-context.d.ts +13 -0
  304. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -0
  305. package/dist/lib/loader-utils/loader-context.js +47 -34
  306. package/dist/lib/loader-utils/loggers.d.ts +17 -0
  307. package/dist/lib/loader-utils/loggers.d.ts.map +1 -0
  308. package/dist/lib/loader-utils/loggers.js +39 -46
  309. package/dist/lib/loader-utils/normalize-loader.d.ts +4 -0
  310. package/dist/lib/loader-utils/normalize-loader.d.ts.map +1 -0
  311. package/dist/lib/loader-utils/normalize-loader.js +50 -41
  312. package/dist/lib/loader-utils/option-defaults.d.ts +20 -0
  313. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -0
  314. package/dist/lib/loader-utils/option-defaults.js +41 -35
  315. package/dist/lib/loader-utils/option-utils.d.ts +34 -0
  316. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -0
  317. package/dist/lib/loader-utils/option-utils.js +140 -120
  318. package/dist/lib/progress/fetch-progress.d.ts +6 -0
  319. package/dist/lib/progress/fetch-progress.d.ts.map +1 -0
  320. package/dist/lib/progress/fetch-progress.js +54 -56
  321. package/dist/lib/utils/log.d.ts +3 -0
  322. package/dist/lib/utils/log.d.ts.map +1 -0
  323. package/dist/lib/utils/log.js +6 -0
  324. package/dist/lib/utils/mime-type-utils.d.ts +20 -0
  325. package/dist/lib/utils/mime-type-utils.d.ts.map +1 -0
  326. package/dist/lib/utils/mime-type-utils.js +38 -17
  327. package/dist/lib/utils/resource-utils.d.ts +21 -0
  328. package/dist/lib/utils/resource-utils.d.ts.map +1 -0
  329. package/dist/lib/utils/resource-utils.js +70 -52
  330. package/dist/lib/utils/response-utils.d.ts +18 -0
  331. package/dist/lib/utils/response-utils.d.ts.map +1 -0
  332. package/dist/lib/utils/response-utils.js +104 -105
  333. package/dist/null-loader.d.ts +10 -0
  334. package/dist/null-loader.d.ts.map +1 -0
  335. package/dist/null-loader.js +53 -31
  336. package/dist/null-worker.js +61 -21
  337. package/dist/workers/null-worker.d.ts +2 -0
  338. package/dist/workers/null-worker.d.ts.map +1 -0
  339. package/dist/workers/null-worker.js +5 -4
  340. package/package.json +16 -15
  341. package/src/index.ts +20 -4
  342. package/src/iterators/make-stream/make-dom-stream.ts +10 -5
  343. package/src/iterators/make-stream/make-node-stream.ts +10 -9
  344. package/src/lib/api/encode-table.ts +71 -0
  345. package/src/lib/api/encode.ts +15 -5
  346. package/src/lib/api/load-in-batches.ts +1 -1
  347. package/src/lib/api/load.ts +39 -8
  348. package/src/lib/api/loader-options.ts +2 -0
  349. package/src/lib/api/parse.ts +39 -2
  350. package/src/lib/api/register-loaders.ts +1 -1
  351. package/src/lib/api/select-loader.ts +16 -0
  352. package/src/lib/init.ts +17 -0
  353. package/src/lib/loader-utils/get-fetch-function.ts +38 -0
  354. package/src/lib/loader-utils/loader-context.ts +1 -1
  355. package/src/lib/loader-utils/loggers.ts +1 -1
  356. package/src/lib/loader-utils/option-defaults.ts +3 -1
  357. package/src/lib/loader-utils/option-utils.ts +22 -46
  358. package/src/lib/progress/fetch-progress.ts +2 -2
  359. package/src/lib/utils/log.ts +4 -0
  360. package/src/lib/utils/response-utils.ts +2 -2
  361. package/src/null-loader.ts +17 -5
  362. package/dist/bundle.js.map +0 -1
  363. package/dist/core-addons/write-file-browser.js.map +0 -1
  364. package/dist/index.js.map +0 -1
  365. package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
  366. package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
  367. package/dist/iterators/make-iterator/make-blob-iterator.js.map +0 -1
  368. package/dist/iterators/make-iterator/make-iterator.js.map +0 -1
  369. package/dist/iterators/make-iterator/make-stream-iterator.js.map +0 -1
  370. package/dist/iterators/make-iterator/make-string-iterator.js.map +0 -1
  371. package/dist/iterators/make-stream/make-dom-stream.js.map +0 -1
  372. package/dist/iterators/make-stream/make-node-stream.js.map +0 -1
  373. package/dist/iterators/make-stream/make-stream.js +0 -7
  374. package/dist/iterators/make-stream/make-stream.js.map +0 -1
  375. package/dist/javascript-utils/is-type.js.map +0 -1
  376. package/dist/lib/api/encode.js.map +0 -1
  377. package/dist/lib/api/load-in-batches.js.map +0 -1
  378. package/dist/lib/api/load.js.map +0 -1
  379. package/dist/lib/api/parse-in-batches.js.map +0 -1
  380. package/dist/lib/api/parse-sync.js.map +0 -1
  381. package/dist/lib/api/parse.js.map +0 -1
  382. package/dist/lib/api/register-loaders.js.map +0 -1
  383. package/dist/lib/api/save.js.map +0 -1
  384. package/dist/lib/api/select-loader.js.map +0 -1
  385. package/dist/lib/api/set-loader-options.js +0 -5
  386. package/dist/lib/api/set-loader-options.js.map +0 -1
  387. package/dist/lib/common.js.map +0 -1
  388. package/dist/lib/fetch/fetch-error-message.js.map +0 -1
  389. package/dist/lib/fetch/fetch-file.js.map +0 -1
  390. package/dist/lib/fetch/read-array-buffer.js.map +0 -1
  391. package/dist/lib/fetch/read-file.js.map +0 -1
  392. package/dist/lib/fetch/write-file.js.map +0 -1
  393. package/dist/lib/filesystems/browser-filesystem.js.map +0 -1
  394. package/dist/lib/filesystems/filesystem.js.map +0 -1
  395. package/dist/lib/filesystems/read-array-buffer.js.map +0 -1
  396. package/dist/lib/init.js.map +0 -1
  397. package/dist/lib/loader-utils/check-errors.js.map +0 -1
  398. package/dist/lib/loader-utils/get-data.js.map +0 -1
  399. package/dist/lib/loader-utils/loader-context.js.map +0 -1
  400. package/dist/lib/loader-utils/loggers.js.map +0 -1
  401. package/dist/lib/loader-utils/normalize-loader.js.map +0 -1
  402. package/dist/lib/loader-utils/option-defaults.js.map +0 -1
  403. package/dist/lib/loader-utils/option-utils.js.map +0 -1
  404. package/dist/lib/progress/fetch-progress.js.map +0 -1
  405. package/dist/lib/utils/mime-type-utils.js.map +0 -1
  406. package/dist/lib/utils/resource-utils.js.map +0 -1
  407. package/dist/lib/utils/response-utils.js.map +0 -1
  408. package/dist/null-loader.js.map +0 -1
  409. package/dist/workers/null-worker.js.map +0 -1
  410. package/src/iterators/make-stream/make-stream.ts +0 -19
  411. package/src/lib/api/set-loader-options.ts +0 -9
  412. package/src/lib/init.js +0 -10
  413. /package/dist/{core-addons → es5/core-addons}/README.md +0 -0
@@ -1,29 +1,41 @@
1
- import { fs } from '@loaders.gl/loader-utils';
2
- export async function readArrayBuffer(file, start, length) {
3
- if (typeof file === 'number') {
4
- return await fs._readToArrayBuffer(file, start, length);
5
- }
6
-
7
- if (!(file instanceof Blob)) {
8
- file = new Blob([file]);
9
- }
10
-
11
- const slice = file.slice(start, start + length);
12
- return await readBlob(slice);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readBlob = exports.readArrayBuffer = void 0;
4
+ //
5
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
6
+ /**
7
+ * Reads a chunk from a random access file
8
+ * @param file
9
+ * @param start
10
+ * @param length
11
+ * @returns
12
+ */
13
+ async function readArrayBuffer(file, start, length) {
14
+ if (typeof file === 'number') {
15
+ return await loader_utils_1.fs._readToArrayBuffer(file, start, length);
16
+ }
17
+ // TODO - we can do better for ArrayBuffer and string
18
+ if (!(file instanceof Blob)) {
19
+ file = new Blob([file]);
20
+ }
21
+ const slice = file.slice(start, start + length);
22
+ return await readBlob(slice);
13
23
  }
14
- export async function readBlob(blob) {
15
- return await new Promise((resolve, reject) => {
16
- const fileReader = new FileReader();
17
-
18
- fileReader.onload = event => {
19
- var _event$target;
20
-
21
- return resolve(event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.result);
22
- };
23
-
24
- fileReader.onerror = error => reject(error);
25
-
26
- fileReader.readAsArrayBuffer(blob);
27
- });
24
+ exports.readArrayBuffer = readArrayBuffer;
25
+ /**
26
+ * Read a slice of a Blob or File, without loading the entire file into memory
27
+ * The trick when reading File objects is to read successive "slices" of the File
28
+ * Per spec https://w3c.github.io/FileAPI/, slicing a File only updates the start and end fields
29
+ * Actually reading from file happens in `readAsArrayBuffer`
30
+ * @param blob to read
31
+ */
32
+ async function readBlob(blob) {
33
+ return await new Promise((resolve, reject) => {
34
+ const fileReader = new FileReader();
35
+ fileReader.onload = (event) => resolve(event?.target?.result);
36
+ // TODO - reject with a proper Error
37
+ fileReader.onerror = (error) => reject(error);
38
+ fileReader.readAsArrayBuffer(blob);
39
+ });
28
40
  }
29
- //# sourceMappingURL=read-array-buffer.js.map
41
+ exports.readBlob = readBlob;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * In a few cases (data URIs, node.js) "files" can be read synchronously
3
+ */
4
+ export declare function readFileSync(url: string, options?: object): string | ArrayBuffer | null;
5
+ //# sourceMappingURL=read-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../src/lib/fetch/read-file.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAW,+BAoB7D"}
@@ -1,17 +1,29 @@
1
- import { isBrowser, resolvePath, fs, toArrayBuffer } from '@loaders.gl/loader-utils';
2
- import { assert } from '@loaders.gl/loader-utils';
3
- export function readFileSync(url, options = {}) {
4
- url = resolvePath(url);
5
-
6
- if (!isBrowser) {
7
- const buffer = fs.readFileSync(url, options);
8
- return typeof buffer !== 'string' ? toArrayBuffer(buffer) : buffer;
9
- }
10
-
11
- if (!options.nothrow) {
12
- assert(false);
13
- }
14
-
15
- return null;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readFileSync = void 0;
4
+ // File read
5
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
6
+ const loader_utils_2 = require("@loaders.gl/loader-utils");
7
+ // TODO - this is not tested
8
+ // const isDataURL = (url) => url.startsWith('data:');
9
+ /**
10
+ * In a few cases (data URIs, node.js) "files" can be read synchronously
11
+ */
12
+ function readFileSync(url, options = {}) {
13
+ url = (0, loader_utils_1.resolvePath)(url);
14
+ // Only support this if we can also support sync data URL decoding in browser
15
+ // if (isDataURL(url)) {
16
+ // return decodeDataUri(url);
17
+ // }
18
+ if (!loader_utils_1.isBrowser) {
19
+ const buffer = loader_utils_1.fs.readFileSync(url, options);
20
+ return typeof buffer !== 'string' ? (0, loader_utils_1.toArrayBuffer)(buffer) : buffer;
21
+ }
22
+ // @ts-ignore
23
+ if (!options.nothrow) {
24
+ // throw new Error('Cant load URI synchronously');
25
+ (0, loader_utils_2.assert)(false);
26
+ }
27
+ return null;
16
28
  }
17
- //# sourceMappingURL=read-file.js.map
29
+ exports.readFileSync = readFileSync;
@@ -0,0 +1,3 @@
1
+ export declare function writeFile(filePath: string, arrayBufferOrString: ArrayBuffer | string, options?: any): Promise<void>;
2
+ export declare function writeFileSync(filePath: string, arrayBufferOrString: ArrayBuffer | string, options?: any): void;
3
+ //# sourceMappingURL=write-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/lib/fetch/write-file.ts"],"names":[],"mappings":"AAIA,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,WAAW,GAAG,MAAM,EACzC,OAAO,CAAC,KAAA,GACP,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,WAAW,GAAG,MAAM,EACzC,OAAO,CAAC,KAAA,GACP,IAAI,CAMN"}
@@ -1,25 +1,22 @@
1
- import { isBrowser, assert, resolvePath } from '@loaders.gl/loader-utils';
2
- import { fs, toBuffer } from '@loaders.gl/loader-utils';
3
- export async function writeFile(filePath, arrayBufferOrString, options) {
4
- filePath = resolvePath(filePath);
5
-
6
- if (!isBrowser) {
7
- await fs.writeFile(filePath, toBuffer(arrayBufferOrString), {
8
- flag: 'w'
9
- });
10
- }
11
-
12
- assert(false);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeFileSync = exports.writeFile = void 0;
4
+ // file write
5
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
6
+ const loader_utils_2 = require("@loaders.gl/loader-utils");
7
+ async function writeFile(filePath, arrayBufferOrString, options) {
8
+ filePath = (0, loader_utils_1.resolvePath)(filePath);
9
+ if (!loader_utils_1.isBrowser) {
10
+ await loader_utils_2.fs.writeFile(filePath, (0, loader_utils_2.toBuffer)(arrayBufferOrString), { flag: 'w' });
11
+ }
12
+ (0, loader_utils_1.assert)(false);
13
13
  }
14
- export function writeFileSync(filePath, arrayBufferOrString, options) {
15
- filePath = resolvePath(filePath);
16
-
17
- if (!isBrowser) {
18
- fs.writeFileSync(filePath, toBuffer(arrayBufferOrString), {
19
- flag: 'w'
20
- });
21
- }
22
-
23
- assert(false);
14
+ exports.writeFile = writeFile;
15
+ function writeFileSync(filePath, arrayBufferOrString, options) {
16
+ filePath = (0, loader_utils_1.resolvePath)(filePath);
17
+ if (!loader_utils_1.isBrowser) {
18
+ loader_utils_2.fs.writeFileSync(filePath, (0, loader_utils_2.toBuffer)(arrayBufferOrString), { flag: 'w' });
19
+ }
20
+ (0, loader_utils_1.assert)(false);
24
21
  }
25
- //# sourceMappingURL=write-file.js.map
22
+ exports.writeFileSync = writeFileSync;
@@ -0,0 +1,58 @@
1
+ import type { FileSystem } from './filesystem';
2
+ type BrowserFileSystemOptions = {
3
+ fetch?: typeof fetch;
4
+ };
5
+ /**
6
+ * FileSystem adapter for a browser FileList.
7
+ * Holds a list of browser 'File' objects.
8
+ */
9
+ export default class BrowserFileSystem implements FileSystem {
10
+ private _fetch;
11
+ private files;
12
+ private lowerCaseFiles;
13
+ private usedFiles;
14
+ /**
15
+ * A FileSystem API wrapper around a list of browser 'File' objects
16
+ * @param files
17
+ * @param options
18
+ */
19
+ constructor(files: FileList | File[], options?: BrowserFileSystemOptions);
20
+ /**
21
+ * Implementation of fetch against this file system
22
+ * Delegates to global fetch for http{s}:// or data://
23
+ */
24
+ fetch(path: string, options?: RequestInit): Promise<Response>;
25
+ /**
26
+ * List filenames in this filesystem
27
+ * @param dirname
28
+ * @returns
29
+ */
30
+ readdir(dirname?: string): Promise<string[]>;
31
+ /**
32
+ * Return information (size) about files in this file system
33
+ */
34
+ stat(path: string, options?: object): Promise<{
35
+ size: number;
36
+ }>;
37
+ /**
38
+ * Just removes the file from the list
39
+ */
40
+ unlink(path: string): Promise<void>;
41
+ open(pathname: string, flags: any, mode?: any): Promise<any>;
42
+ /**
43
+ * Read a range into a buffer
44
+ * @todo - handle position memory
45
+ * @param buffer is the buffer that the data (read from the fd) will be written to.
46
+ * @param offset is the offset in the buffer to start writing at.
47
+ * @param length is an integer specifying the number of bytes to read.
48
+ * @param position is an argument specifying where to begin reading from in the file. If position is null, data will be read from the current file position, and the file position will be updated. If position is an integer, the file position will remain unchanged.
49
+ */
50
+ read(fd: any, buffer: ArrayBuffer, offset?: number, length?: number, position?: number | null): Promise<{
51
+ bytesRead: number;
52
+ buffer: ArrayBuffer;
53
+ }>;
54
+ close(fd: number): Promise<void>;
55
+ _getFile(path: any, used: any): File;
56
+ }
57
+ export {};
58
+ //# sourceMappingURL=browser-filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-filesystem.d.ts","sourceRoot":"","sources":["../../../src/lib/filesystems/browser-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C,KAAK,wBAAwB,GAAG;IAC9B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,YAAW,UAAU;IAC1D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,SAAS,CAAqC;IAEtD;;;;OAIG;gBACS,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAexE;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkCnE;;;;OAIG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASlD;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IAQnE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,KAAA,EAAE,IAAI,CAAC,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxD;;;;;;;OAOG;IACG,IAAI,CACR,EAAE,EAAE,GAAG,EACP,MAAM,EAAE,WAAW,EACnB,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAA0B,EAClC,QAAQ,GAAE,MAAM,GAAG,IAAW,GAC7B,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAC,CAAC;IAQ9C,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC,QAAQ,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA;CAQpB"}
@@ -1,115 +1,126 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- export default class BrowserFileSystem {
3
- constructor(files, options) {
4
- _defineProperty(this, "_fetch", void 0);
5
-
6
- _defineProperty(this, "files", {});
7
-
8
- _defineProperty(this, "lowerCaseFiles", {});
9
-
10
- _defineProperty(this, "usedFiles", {});
11
-
12
- this._fetch = (options === null || options === void 0 ? void 0 : options.fetch) || fetch;
13
-
14
- for (let i = 0; i < files.length; ++i) {
15
- const file = files[i];
16
- this.files[file.name] = file;
17
- this.lowerCaseFiles[file.name.toLowerCase()] = file;
18
- this.usedFiles[file.name] = false;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * FileSystem adapter for a browser FileList.
5
+ * Holds a list of browser 'File' objects.
6
+ */
7
+ class BrowserFileSystem {
8
+ /**
9
+ * A FileSystem API wrapper around a list of browser 'File' objects
10
+ * @param files
11
+ * @param options
12
+ */
13
+ constructor(files, options) {
14
+ this.files = {};
15
+ this.lowerCaseFiles = {};
16
+ this.usedFiles = {};
17
+ this._fetch = options?.fetch || fetch;
18
+ for (let i = 0; i < files.length; ++i) {
19
+ const file = files[i];
20
+ this.files[file.name] = file;
21
+ this.lowerCaseFiles[file.name.toLowerCase()] = file;
22
+ this.usedFiles[file.name] = false;
23
+ }
24
+ this.fetch = this.fetch.bind(this);
19
25
  }
20
-
21
- this.fetch = this.fetch.bind(this);
22
- }
23
-
24
- async fetch(path, options) {
25
- if (path.includes('://')) {
26
- return this._fetch(path, options);
26
+ // implements IFileSystem
27
+ /**
28
+ * Implementation of fetch against this file system
29
+ * Delegates to global fetch for http{s}:// or data://
30
+ */
31
+ async fetch(path, options) {
32
+ // Fallback to handle https:/http:/data: etc fetches
33
+ if (path.includes('://')) {
34
+ return this._fetch(path, options);
35
+ }
36
+ // Local fetches are served from the list of files
37
+ const file = this.files[path];
38
+ if (!file) {
39
+ return new Response(path, { status: 400, statusText: 'NOT FOUND' });
40
+ }
41
+ const headers = new Headers(options?.headers);
42
+ const range = headers.get('Range');
43
+ const bytes = range && /bytes=($1)-($2)/.exec(range);
44
+ if (bytes) {
45
+ const start = parseInt(bytes[1]);
46
+ const end = parseInt(bytes[2]);
47
+ // The trick when reading File objects is to read successive "slices" of the File
48
+ // Per spec https://w3c.github.io/FileAPI/, slicing a File should only update the start and end fields
49
+ // Actually reading from file should happen in `readAsArrayBuffer` (and as far we can tell it does)
50
+ const data = await file.slice(start, end).arrayBuffer();
51
+ const response = new Response(data);
52
+ Object.defineProperty(response, 'url', { value: path });
53
+ return response;
54
+ }
55
+ // return makeResponse()
56
+ const response = new Response(file);
57
+ Object.defineProperty(response, 'url', { value: path });
58
+ return response;
27
59
  }
28
-
29
- const file = this.files[path];
30
-
31
- if (!file) {
32
- return new Response(path, {
33
- status: 400,
34
- statusText: 'NOT FOUND'
35
- });
60
+ /**
61
+ * List filenames in this filesystem
62
+ * @param dirname
63
+ * @returns
64
+ */
65
+ async readdir(dirname) {
66
+ const files = [];
67
+ for (const path in this.files) {
68
+ files.push(path);
69
+ }
70
+ // TODO filter by dirname
71
+ return files;
36
72
  }
37
-
38
- const headers = new Headers(options === null || options === void 0 ? void 0 : options.headers);
39
- const range = headers.get('Range');
40
- const bytes = range && /bytes=($1)-($2)/.exec(range);
41
-
42
- if (bytes) {
43
- const start = parseInt(bytes[1]);
44
- const end = parseInt(bytes[2]);
45
- const data = await file.slice(start, end).arrayBuffer();
46
- const response = new Response(data);
47
- Object.defineProperty(response, 'url', {
48
- value: path
49
- });
50
- return response;
73
+ /**
74
+ * Return information (size) about files in this file system
75
+ */
76
+ async stat(path, options) {
77
+ const file = this.files[path];
78
+ if (!file) {
79
+ throw new Error(path);
80
+ }
81
+ return { size: file.size };
51
82
  }
52
-
53
- const response = new Response(file);
54
- Object.defineProperty(response, 'url', {
55
- value: path
56
- });
57
- return response;
58
- }
59
-
60
- async readdir(dirname) {
61
- const files = [];
62
-
63
- for (const path in this.files) {
64
- files.push(path);
83
+ /**
84
+ * Just removes the file from the list
85
+ */
86
+ async unlink(path) {
87
+ delete this.files[path];
88
+ delete this.lowerCaseFiles[path];
89
+ this.usedFiles[path] = true;
65
90
  }
66
-
67
- return files;
68
- }
69
-
70
- async stat(path, options) {
71
- const file = this.files[path];
72
-
73
- if (!file) {
74
- throw new Error(path);
91
+ // implements IRandomAccessFileSystem
92
+ // RANDOM ACCESS
93
+ async open(pathname, flags, mode) {
94
+ return this.files[pathname];
75
95
  }
76
-
77
- return {
78
- size: file.size
79
- };
80
- }
81
-
82
- async unlink(path) {
83
- delete this.files[path];
84
- delete this.lowerCaseFiles[path];
85
- this.usedFiles[path] = true;
86
- }
87
-
88
- async open(pathname, flags, mode) {
89
- return this.files[pathname];
90
- }
91
-
92
- async read(fd, buffer, offset = 0, length = buffer.byteLength, position = null) {
93
- const file = fd;
94
- const startPosition = 0;
95
- const arrayBuffer = await file.slice(startPosition, startPosition + length).arrayBuffer();
96
- return {
97
- bytesRead: length,
98
- buffer: arrayBuffer
99
- };
100
- }
101
-
102
- async close(fd) {}
103
-
104
- _getFile(path, used) {
105
- const file = this.files[path] || this.lowerCaseFiles[path];
106
-
107
- if (file && used) {
108
- this.usedFiles[path] = true;
96
+ /**
97
+ * Read a range into a buffer
98
+ * @todo - handle position memory
99
+ * @param buffer is the buffer that the data (read from the fd) will be written to.
100
+ * @param offset is the offset in the buffer to start writing at.
101
+ * @param length is an integer specifying the number of bytes to read.
102
+ * @param position is an argument specifying where to begin reading from in the file. If position is null, data will be read from the current file position, and the file position will be updated. If position is an integer, the file position will remain unchanged.
103
+ */
104
+ async read(fd, buffer, offset = 0, length = buffer.byteLength, position = null) {
105
+ const file = fd;
106
+ const startPosition = 0; // position
107
+ const arrayBuffer = await file.slice(startPosition, startPosition + length).arrayBuffer();
108
+ // copy into target buffer
109
+ return { bytesRead: length, buffer: arrayBuffer };
110
+ }
111
+ async close(fd) {
112
+ // NO OP
113
+ }
114
+ // fstat(fd: number): Promise<object>; // Stat
115
+ // PRIVATE
116
+ // Supports case independent paths, and file usage tracking
117
+ _getFile(path, used) {
118
+ // Prefer case match, but fall back to case indepent.
119
+ const file = this.files[path] || this.lowerCaseFiles[path];
120
+ if (file && used) {
121
+ this.usedFiles[path] = true;
122
+ }
123
+ return file;
109
124
  }
110
-
111
- return file;
112
- }
113
-
114
125
  }
115
- //# sourceMappingURL=browser-filesystem.js.map
126
+ exports.default = BrowserFileSystem;
@@ -0,0 +1,46 @@
1
+ export type ReadOptions = {};
2
+ export type Stat = {
3
+ size: number;
4
+ isDirectory: () => boolean;
5
+ };
6
+ /**
7
+ * A FileSystem interface can encapsulate various file sources,
8
+ * a FileList, a ZipFile, a GoogleDrive etc.
9
+ */
10
+ export interface FileSystem {
11
+ /**
12
+ * Return a list of file names
13
+ * @param dirname directory name. file system root directory if omitted
14
+ */
15
+ readdir(dirname?: string, options?: {
16
+ recursive?: boolean;
17
+ }): Promise<string[]>;
18
+ /**
19
+ * Gets information from a local file from the filesystem
20
+ * @param filename file name to stat
21
+ * @param options currently unused
22
+ * @throws if filename is not in local filesystem
23
+ */
24
+ stat(filename: string, options?: object): Promise<{
25
+ size: number;
26
+ }>;
27
+ /**
28
+ * Fetches a local file from the filesystem (or a URL)
29
+ * @param filename
30
+ * @param options
31
+ */
32
+ fetch(filename: RequestInfo, options?: RequestInit): Promise<Response>;
33
+ }
34
+ /**
35
+ * A random access file system
36
+ */
37
+ export interface RandomAccessReadFileSystem extends FileSystem {
38
+ open(path: string, flags: any, mode?: any): Promise<any>;
39
+ close(fd: any): Promise<void>;
40
+ fstat(fd: any): Promise<Stat>;
41
+ read(fd: any, buffer: ArrayBuffer | ArrayBufferView, offset?: number, length?: number, position?: number): Promise<{
42
+ bytesRead: number;
43
+ buffer: ArrayBuffer;
44
+ }>;
45
+ }
46
+ //# sourceMappingURL=filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../src/lib/filesystems/filesystem.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC;AAE7B,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9E;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAElE;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,UAAU;IAC5D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,KAAA,EAAE,IAAI,CAAC,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CACF,EAAE,EAAE,GAAG,EACP,MAAM,EAAE,WAAW,GAAG,eAAe,EACrC,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAC,CAAC,CAAC;CACtD"}
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=filesystem.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,19 @@
1
+ export declare function readArrayBuffer(file: Blob | ArrayBuffer | any, start: number, length: number): Promise<ArrayBuffer>;
2
+ /**
3
+ * Read a slice of a Blob or File, without loading the entire file into memory
4
+ * The trick when reading File objects is to read successive "slices" of the File
5
+ * Per spec https://w3c.github.io/FileAPI/, slicing a File only updates the start and end fields
6
+ * Actually reading from file happens in `readAsArrayBuffer`
7
+ * @param blob to read
8
+ export async function readBlob(blob: Blob): Promise<ArrayBuffer> {
9
+ return await new Promise((resolve, reject) => {
10
+ const fileReader = new FileReader();
11
+ fileReader.onload = (event: ProgressEvent<FileReader>) =>
12
+ resolve(event?.target?.result as ArrayBuffer);
13
+ // TODO - reject with a proper Error
14
+ fileReader.onerror = (error: ProgressEvent<FileReader>) => reject(error);
15
+ fileReader.readAsArrayBuffer(blob);
16
+ });
17
+ }
18
+ */
19
+ //# sourceMappingURL=read-array-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-array-buffer.d.ts","sourceRoot":"","sources":["../../../src/lib/filesystems/read-array-buffer.ts"],"names":[],"mappings":"AAEA,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,GAAG,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAMtB;AAED;;;;;;;;;;;;;;;;EAgBE"}
@@ -1,9 +1,29 @@
1
- export async function readArrayBuffer(file, start, length) {
2
- if (file instanceof Blob) {
3
- const slice = file.slice(start, start + length);
4
- return await slice.arrayBuffer();
5
- }
6
-
7
- return await file.read(start, start + length);
1
+ "use strict";
2
+ // Random-Access read
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.readArrayBuffer = void 0;
5
+ async function readArrayBuffer(file, start, length) {
6
+ if (file instanceof Blob) {
7
+ const slice = file.slice(start, start + length);
8
+ return await slice.arrayBuffer();
9
+ }
10
+ return await file.read(start, start + length);
8
11
  }
9
- //# sourceMappingURL=read-array-buffer.js.map
12
+ exports.readArrayBuffer = readArrayBuffer;
13
+ /**
14
+ * Read a slice of a Blob or File, without loading the entire file into memory
15
+ * The trick when reading File objects is to read successive "slices" of the File
16
+ * Per spec https://w3c.github.io/FileAPI/, slicing a File only updates the start and end fields
17
+ * Actually reading from file happens in `readAsArrayBuffer`
18
+ * @param blob to read
19
+ export async function readBlob(blob: Blob): Promise<ArrayBuffer> {
20
+ return await new Promise((resolve, reject) => {
21
+ const fileReader = new FileReader();
22
+ fileReader.onload = (event: ProgressEvent<FileReader>) =>
23
+ resolve(event?.target?.result as ArrayBuffer);
24
+ // TODO - reject with a proper Error
25
+ fileReader.onerror = (error: ProgressEvent<FileReader>) => reject(error);
26
+ fileReader.readAsArrayBuffer(blob);
27
+ });
28
+ }
29
+ */
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":";AAgBA,wBAAkC"}
package/dist/lib/init.js CHANGED
@@ -1,6 +1,16 @@
1
- const version = typeof "4.0.0-alpha.4" !== 'undefined' ? "4.0.0-alpha.4" : '';
2
- globalThis.loaders = Object.assign(globalThis.loaders || {}, {
3
- VERSION: version
4
- });
5
- export default globalThis.loaders;
6
- //# sourceMappingURL=init.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // loaders.gl, MIT license
4
+ const log_1 = require("./utils/log");
5
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
+ const version = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '';
7
+ // @ts-ignore
8
+ if (!globalThis.loaders) {
9
+ log_1.log.log(1, `loaders.gl ${version}`)();
10
+ globalThis.loaders = Object.assign(globalThis.loaders || {}, {
11
+ VERSION: version,
12
+ log: log_1.log
13
+ });
14
+ }
15
+ // @ts-ignore
16
+ exports.default = globalThis.loaders;
@@ -0,0 +1,3 @@
1
+ export declare function checkFetchResponseStatus(response: any): Promise<void>;
2
+ export declare function checkFetchResponseStatusSync(response: any): void;
3
+ //# sourceMappingURL=check-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-errors.d.ts","sourceRoot":"","sources":["../../../src/lib/loader-utils/check-errors.ts"],"names":[],"mappings":"AAAA,wBAAsB,wBAAwB,CAAC,QAAQ,KAAA,iBAatD;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,KAAA,QAIpD"}