@loaders.gl/polyfills 4.0.0-beta.2 → 4.0.0-beta.4

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 (275) hide show
  1. package/dist/buffer/btoa.node.d.ts.map +1 -0
  2. package/dist/buffer/btoa.node.js.map +1 -0
  3. package/dist/buffer/to-array-buffer.node.d.ts.map +1 -0
  4. package/dist/buffer/to-array-buffer.node.js.map +1 -0
  5. package/dist/crypto/node-hash.d.ts +28 -0
  6. package/dist/crypto/node-hash.d.ts.map +1 -0
  7. package/dist/crypto/node-hash.js +56 -0
  8. package/dist/crypto/node-hash.js.map +1 -0
  9. package/dist/dist.dev.js +43 -0
  10. package/dist/fetch/decode-data-uri.d.ts +16 -0
  11. package/dist/fetch/decode-data-uri.d.ts.map +1 -0
  12. package/dist/fetch/decode-data-uri.js +45 -0
  13. package/dist/fetch/decode-data-uri.js.map +1 -0
  14. package/dist/{node/fetch/fetch.node.d.ts → fetch/fetch-polyfill.d.ts} +2 -2
  15. package/dist/fetch/fetch-polyfill.d.ts.map +1 -0
  16. package/dist/{esm/node/fetch/fetch.node.js → fetch/fetch-polyfill.js} +4 -4
  17. package/dist/fetch/fetch-polyfill.js.map +1 -0
  18. package/dist/{node/fetch/headers.node.d.ts → fetch/headers-polyfill.d.ts} +1 -1
  19. package/dist/{node/fetch/headers.node.d.ts.map → fetch/headers-polyfill.d.ts.map} +1 -1
  20. package/dist/{esm/node/fetch/headers.node.js → fetch/headers-polyfill.js} +3 -4
  21. package/dist/fetch/headers-polyfill.js.map +1 -0
  22. package/dist/{node/fetch/response.node.d.ts → fetch/response-polyfill.d.ts} +2 -2
  23. package/dist/{node/fetch/response.node.d.ts.map → fetch/response-polyfill.d.ts.map} +1 -1
  24. package/dist/{esm/node/fetch/response.node.js → fetch/response-polyfill.js} +14 -15
  25. package/dist/fetch/response-polyfill.js.map +1 -0
  26. package/dist/fetch/utils/decode-data-uri.node.d.ts.map +1 -0
  27. package/dist/{esm/node/fetch → fetch}/utils/decode-data-uri.node.js +2 -2
  28. package/dist/fetch/utils/decode-data-uri.node.js.map +1 -0
  29. package/dist/file/blob-stream-controller.d.ts.map +1 -0
  30. package/dist/{esm/node/file → file}/blob-stream-controller.js +3 -4
  31. package/dist/file/blob-stream-controller.js.map +1 -0
  32. package/dist/file/blob-stream.d.ts.map +1 -0
  33. package/dist/{esm/node/file → file}/blob-stream.js +3 -4
  34. package/dist/file/blob-stream.js.map +1 -0
  35. package/dist/file/blob.d.ts.map +1 -0
  36. package/dist/{esm/node/file → file}/blob.js +4 -5
  37. package/dist/file/blob.js.map +1 -0
  38. package/dist/file/file-reader.d.ts.map +1 -0
  39. package/dist/file/file-reader.js +59 -0
  40. package/dist/file/file-reader.js.map +1 -0
  41. package/dist/{node/file → file}/file.d.ts +1 -2
  42. package/dist/file/file.d.ts.map +1 -0
  43. package/dist/{esm/node/file → file}/file.js +4 -6
  44. package/dist/file/file.js.map +1 -0
  45. package/dist/file/install-blob-polyfills.d.ts +9 -0
  46. package/dist/file/install-blob-polyfills.d.ts.map +1 -0
  47. package/dist/file/install-blob-polyfills.js +9 -0
  48. package/dist/file/install-blob-polyfills.js.map +1 -0
  49. package/dist/file/install-file-polyfills.d.ts +3 -0
  50. package/dist/file/install-file-polyfills.d.ts.map +1 -0
  51. package/dist/file/install-file-polyfills.js +13 -0
  52. package/dist/file/install-file-polyfills.js.map +1 -0
  53. package/dist/file/readable-stream.d.ts.map +1 -0
  54. package/dist/{esm/node/file → file}/readable-stream.js +1 -1
  55. package/dist/file/readable-stream.js.map +1 -0
  56. package/dist/filesystems/fetch-node.d.ts +8 -0
  57. package/dist/filesystems/fetch-node.d.ts.map +1 -0
  58. package/dist/filesystems/fetch-node.js +77 -0
  59. package/dist/filesystems/fetch-node.js.map +1 -0
  60. package/dist/filesystems/node-file.d.ts +13 -0
  61. package/dist/filesystems/node-file.d.ts.map +1 -0
  62. package/dist/filesystems/node-file.js +72 -0
  63. package/dist/filesystems/node-file.js.map +1 -0
  64. package/dist/filesystems/node-filesystem.d.ts +11 -31
  65. package/dist/filesystems/node-filesystem.d.ts.map +1 -1
  66. package/dist/filesystems/node-filesystem.js +40 -0
  67. package/dist/filesystems/node-filesystem.js.map +1 -0
  68. package/dist/{node/fetch/utils → filesystems}/stream-utils.node.d.ts +8 -1
  69. package/dist/filesystems/stream-utils.node.d.ts.map +1 -0
  70. package/dist/{esm/node/fetch/utils → filesystems}/stream-utils.node.js +24 -2
  71. package/dist/filesystems/stream-utils.node.js.map +1 -0
  72. package/dist/images/encode-image-node.d.ts +20 -0
  73. package/dist/images/encode-image-node.d.ts.map +1 -0
  74. package/dist/images/encode-image-node.js +20 -0
  75. package/dist/images/encode-image-node.js.map +1 -0
  76. package/dist/images/encode-image.node.d.ts.map +1 -0
  77. package/dist/{esm/node/images → images}/encode-image.node.js +1 -1
  78. package/dist/images/encode-image.node.js.map +1 -0
  79. package/dist/images/parse-image-node.d.ts +13 -0
  80. package/dist/images/parse-image-node.d.ts.map +1 -0
  81. package/dist/images/parse-image-node.js +29 -0
  82. package/dist/images/parse-image-node.js.map +1 -0
  83. package/dist/images/parse-image.node.d.ts.map +1 -0
  84. package/dist/images/parse-image.node.js.map +1 -0
  85. package/dist/index.browser.d.ts +1 -0
  86. package/dist/index.browser.d.ts.map +1 -1
  87. package/dist/index.browser.js +6 -0
  88. package/dist/index.browser.js.map +1 -0
  89. package/dist/index.cjs +33 -0
  90. package/dist/index.d.ts +4 -4
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +59 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/libs/encoding-indexes-asian.js +2 -0
  95. package/dist/libs/encoding-indexes-asian.js.map +1 -0
  96. package/dist/load-library/require-utils.node.d.ts +18 -0
  97. package/dist/load-library/require-utils.node.d.ts.map +1 -0
  98. package/dist/load-library/require-utils.node.js +55 -0
  99. package/dist/load-library/require-utils.node.js.map +1 -0
  100. package/dist/streams/make-node-stream.d.ts +11 -0
  101. package/dist/streams/make-node-stream.d.ts.map +1 -0
  102. package/dist/streams/make-node-stream.js +56 -0
  103. package/dist/streams/make-node-stream.js.map +1 -0
  104. package/dist/text-encoder/encoding-indexes.d.ts.map +1 -0
  105. package/dist/{esm/lib → text-encoder}/encoding-indexes.js.map +1 -1
  106. package/dist/{lib/encoding.d.ts → text-encoder/text-encoder.d.ts} +1 -1
  107. package/dist/text-encoder/text-encoder.d.ts.map +1 -0
  108. package/dist/{esm/lib/encoding.js → text-encoder/text-encoder.js} +7 -7
  109. package/dist/text-encoder/text-encoder.js.map +1 -0
  110. package/dist/utils/assert.js +6 -0
  111. package/dist/utils/assert.js.map +1 -0
  112. package/dist/utils/is-browser.d.ts +2 -0
  113. package/dist/utils/is-browser.d.ts.map +1 -0
  114. package/dist/utils/is-browser.js +2 -0
  115. package/dist/utils/is-browser.js.map +1 -0
  116. package/package.json +16 -6
  117. package/src/crypto/node-hash.ts +71 -0
  118. package/src/{node/fetch/fetch.node.ts → fetch/fetch-polyfill.ts} +3 -3
  119. package/src/{node/fetch/response.node.ts → fetch/response-polyfill.ts} +6 -6
  120. package/src/fetch/utils/decode-data-uri.node.ts +69 -0
  121. package/src/{node/file → file}/file.ts +1 -2
  122. package/src/file/install-blob-polyfills.ts +13 -0
  123. package/src/file/install-file-polyfills.ts +20 -0
  124. package/src/{node/file → file}/readable-stream.ts +1 -1
  125. package/src/filesystems/fetch-node.ts +96 -0
  126. package/src/filesystems/node-file.ts +137 -0
  127. package/src/filesystems/node-filesystem.ts +26 -61
  128. package/src/{node/fetch/utils → filesystems}/stream-utils.node.ts +42 -3
  129. package/src/images/encode-image.node.ts +41 -0
  130. package/src/images/parse-image.node.ts +53 -0
  131. package/src/index.browser.ts +4 -8
  132. package/src/index.ts +73 -50
  133. package/src/load-library/require-utils.node.ts +101 -0
  134. package/src/streams/make-node-stream.ts +74 -0
  135. package/src/{lib/encoding.ts → text-encoder/text-encoder.ts} +7 -7
  136. package/src/utils/is-browser.ts +6 -0
  137. package/dist/bundle.d.ts +0 -2
  138. package/dist/bundle.d.ts.map +0 -1
  139. package/dist/dist.min.js +0 -63
  140. package/dist/es5/bundle.js +0 -6
  141. package/dist/es5/bundle.js.map +0 -1
  142. package/dist/es5/filesystems/node-filesystem.js +0 -214
  143. package/dist/es5/filesystems/node-filesystem.js.map +0 -1
  144. package/dist/es5/index.browser.js +0 -15
  145. package/dist/es5/index.browser.js.map +0 -1
  146. package/dist/es5/index.js +0 -82
  147. package/dist/es5/index.js.map +0 -1
  148. package/dist/es5/lib/encoding-indexes.js +0 -37
  149. package/dist/es5/lib/encoding-indexes.js.map +0 -1
  150. package/dist/es5/lib/encoding.js +0 -1214
  151. package/dist/es5/lib/encoding.js.map +0 -1
  152. package/dist/es5/libs/encoding-indexes-asian.js +0 -13
  153. package/dist/es5/node/buffer/btoa.node.js +0 -14
  154. package/dist/es5/node/buffer/btoa.node.js.map +0 -1
  155. package/dist/es5/node/buffer/to-array-buffer.node.js +0 -14
  156. package/dist/es5/node/buffer/to-array-buffer.node.js.map +0 -1
  157. package/dist/es5/node/fetch/fetch.node.js +0 -193
  158. package/dist/es5/node/fetch/fetch.node.js.map +0 -1
  159. package/dist/es5/node/fetch/headers.node.js +0 -151
  160. package/dist/es5/node/fetch/headers.node.js.map +0 -1
  161. package/dist/es5/node/fetch/response.node.js +0 -182
  162. package/dist/es5/node/fetch/response.node.js.map +0 -1
  163. package/dist/es5/node/fetch/utils/decode-data-uri.node.js +0 -58
  164. package/dist/es5/node/fetch/utils/decode-data-uri.node.js.map +0 -1
  165. package/dist/es5/node/fetch/utils/stream-utils.node.js +0 -92
  166. package/dist/es5/node/fetch/utils/stream-utils.node.js.map +0 -1
  167. package/dist/es5/node/file/blob-stream-controller.js +0 -90
  168. package/dist/es5/node/file/blob-stream-controller.js.map +0 -1
  169. package/dist/es5/node/file/blob-stream.js +0 -64
  170. package/dist/es5/node/file/blob-stream.js.map +0 -1
  171. package/dist/es5/node/file/blob.js +0 -212
  172. package/dist/es5/node/file/blob.js.map +0 -1
  173. package/dist/es5/node/file/file-reader.js +0 -153
  174. package/dist/es5/node/file/file-reader.js.map +0 -1
  175. package/dist/es5/node/file/file.js +0 -44
  176. package/dist/es5/node/file/file.js.map +0 -1
  177. package/dist/es5/node/file/install-file-polyfills.js +0 -22
  178. package/dist/es5/node/file/install-file-polyfills.js.map +0 -1
  179. package/dist/es5/node/file/readable-stream.js +0 -27
  180. package/dist/es5/node/file/readable-stream.js.map +0 -1
  181. package/dist/es5/node/images/encode-image.node.js +0 -30
  182. package/dist/es5/node/images/encode-image.node.js.map +0 -1
  183. package/dist/es5/node/images/parse-image.node.js +0 -64
  184. package/dist/es5/node/images/parse-image.node.js.map +0 -1
  185. package/dist/es5/promise/all-settled.js +0 -28
  186. package/dist/es5/promise/all-settled.js.map +0 -1
  187. package/dist/es5/utils/assert.js +0 -12
  188. package/dist/es5/utils/assert.js.map +0 -1
  189. package/dist/es5/utils/globals.js +0 -18
  190. package/dist/es5/utils/globals.js.map +0 -1
  191. package/dist/esm/bundle.js +0 -4
  192. package/dist/esm/bundle.js.map +0 -1
  193. package/dist/esm/filesystems/node-filesystem.js +0 -56
  194. package/dist/esm/filesystems/node-filesystem.js.map +0 -1
  195. package/dist/esm/index.browser.js +0 -7
  196. package/dist/esm/index.browser.js.map +0 -1
  197. package/dist/esm/index.js +0 -51
  198. package/dist/esm/index.js.map +0 -1
  199. package/dist/esm/lib/encoding.js.map +0 -1
  200. package/dist/esm/libs/encoding-indexes-asian.js +0 -13
  201. package/dist/esm/node/buffer/btoa.node.js.map +0 -1
  202. package/dist/esm/node/buffer/to-array-buffer.node.js.map +0 -1
  203. package/dist/esm/node/fetch/fetch.node.js.map +0 -1
  204. package/dist/esm/node/fetch/headers.node.js.map +0 -1
  205. package/dist/esm/node/fetch/response.node.js.map +0 -1
  206. package/dist/esm/node/fetch/utils/decode-data-uri.node.js.map +0 -1
  207. package/dist/esm/node/fetch/utils/stream-utils.node.js.map +0 -1
  208. package/dist/esm/node/file/blob-stream-controller.js.map +0 -1
  209. package/dist/esm/node/file/blob-stream.js.map +0 -1
  210. package/dist/esm/node/file/blob.js.map +0 -1
  211. package/dist/esm/node/file/file-reader.js +0 -60
  212. package/dist/esm/node/file/file-reader.js.map +0 -1
  213. package/dist/esm/node/file/file.js.map +0 -1
  214. package/dist/esm/node/file/install-file-polyfills.js +0 -16
  215. package/dist/esm/node/file/install-file-polyfills.js.map +0 -1
  216. package/dist/esm/node/file/readable-stream.js.map +0 -1
  217. package/dist/esm/node/images/encode-image.node.js.map +0 -1
  218. package/dist/esm/node/images/parse-image.node.js.map +0 -1
  219. package/dist/esm/promise/all-settled.js +0 -19
  220. package/dist/esm/promise/all-settled.js.map +0 -1
  221. package/dist/esm/utils/assert.js +0 -6
  222. package/dist/esm/utils/assert.js.map +0 -1
  223. package/dist/esm/utils/globals.js +0 -9
  224. package/dist/esm/utils/globals.js.map +0 -1
  225. package/dist/lib/encoding-indexes.d.ts.map +0 -1
  226. package/dist/lib/encoding.d.ts.map +0 -1
  227. package/dist/node/buffer/btoa.node.d.ts.map +0 -1
  228. package/dist/node/buffer/to-array-buffer.node.d.ts.map +0 -1
  229. package/dist/node/fetch/fetch.node.d.ts.map +0 -1
  230. package/dist/node/fetch/utils/decode-data-uri.node.d.ts.map +0 -1
  231. package/dist/node/fetch/utils/stream-utils.node.d.ts.map +0 -1
  232. package/dist/node/file/blob-stream-controller.d.ts.map +0 -1
  233. package/dist/node/file/blob-stream.d.ts.map +0 -1
  234. package/dist/node/file/blob.d.ts.map +0 -1
  235. package/dist/node/file/file-reader.d.ts.map +0 -1
  236. package/dist/node/file/file.d.ts.map +0 -1
  237. package/dist/node/file/install-file-polyfills.d.ts +0 -2
  238. package/dist/node/file/install-file-polyfills.d.ts.map +0 -1
  239. package/dist/node/file/readable-stream.d.ts.map +0 -1
  240. package/dist/node/images/encode-image.node.d.ts.map +0 -1
  241. package/dist/node/images/parse-image.node.d.ts.map +0 -1
  242. package/dist/promise/all-settled.d.ts +0 -10
  243. package/dist/promise/all-settled.d.ts.map +0 -1
  244. package/dist/utils/globals.d.ts +0 -4
  245. package/dist/utils/globals.d.ts.map +0 -1
  246. package/src/bundle.ts +0 -4
  247. package/src/node/file/install-file-polyfills.ts +0 -27
  248. package/src/promise/all-settled.ts +0 -21
  249. package/src/utils/globals.ts +0 -37
  250. /package/dist/{node/buffer → buffer}/btoa.node.d.ts +0 -0
  251. /package/dist/{esm/node/buffer → buffer}/btoa.node.js +0 -0
  252. /package/dist/{node/buffer → buffer}/to-array-buffer.node.d.ts +0 -0
  253. /package/dist/{esm/node/buffer → buffer}/to-array-buffer.node.js +0 -0
  254. /package/dist/{node/fetch → fetch}/utils/decode-data-uri.node.d.ts +0 -0
  255. /package/dist/{node/file → file}/blob-stream-controller.d.ts +0 -0
  256. /package/dist/{node/file → file}/blob-stream.d.ts +0 -0
  257. /package/dist/{node/file → file}/blob.d.ts +0 -0
  258. /package/dist/{node/file → file}/file-reader.d.ts +0 -0
  259. /package/dist/{node/file → file}/readable-stream.d.ts +0 -0
  260. /package/dist/{node/images → images}/encode-image.node.d.ts +0 -0
  261. /package/dist/{node/images → images}/parse-image.node.d.ts +0 -0
  262. /package/dist/{esm/node/images → images}/parse-image.node.js +0 -0
  263. /package/dist/{lib → text-encoder}/encoding-indexes.d.ts +0 -0
  264. /package/dist/{esm/lib → text-encoder}/encoding-indexes.js +0 -0
  265. /package/src/{node/buffer → buffer}/btoa.node.ts +0 -0
  266. /package/src/{node/buffer → buffer}/to-array-buffer.node.ts +0 -0
  267. /package/src/{node/fetch/utils/decode-data-uri.node.ts → fetch/decode-data-uri.ts} +0 -0
  268. /package/src/{node/fetch/headers.node.ts → fetch/headers-polyfill.ts} +0 -0
  269. /package/src/{node/file → file}/blob-stream-controller.ts +0 -0
  270. /package/src/{node/file → file}/blob-stream.ts +0 -0
  271. /package/src/{node/file → file}/blob.ts +0 -0
  272. /package/src/{node/file → file}/file-reader.ts +0 -0
  273. /package/src/{node/images/encode-image.node.ts → images/encode-image-node.ts} +0 -0
  274. /package/src/{node/images/parse-image.node.ts → images/parse-image-node.ts} +0 -0
  275. /package/src/{lib → text-encoder}/encoding-indexes.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"btoa.node.d.ts","sourceRoot":"","sources":["../../src/buffer/btoa.node.ts"],"names":[],"mappings":"AAIA,wBAAgB,IAAI,CAAC,MAAM,KAAA,UAE1B;AAED,wBAAgB,IAAI,CAAC,MAAM,KAAA,UAE1B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"btoa.node.js","names":["atob","string","Buffer","from","toString","btoa","base64"],"sources":["../../src/buffer/btoa.node.ts"],"sourcesContent":["// btoa, atob polyfills for Node.js\n// Note: The atob and btoa functions (not just the polyfills!) are not unicode safe\n// But still useful for unit testing\n\nexport function atob(string) {\n return Buffer.from(string).toString('base64');\n}\n\nexport function btoa(base64) {\n return Buffer.from(base64, 'base64').toString('ascii');\n}\n"],"mappings":"AAIA,OAAO,SAASA,IAAIA,CAACC,MAAM,EAAE;EAC3B,OAAOC,MAAM,CAACC,IAAI,CAACF,MAAM,CAAC,CAACG,QAAQ,CAAC,QAAQ,CAAC;AAC/C;AAEA,OAAO,SAASC,IAAIA,CAACC,MAAM,EAAE;EAC3B,OAAOJ,MAAM,CAACC,IAAI,CAACG,MAAM,EAAE,QAAQ,CAAC,CAACF,QAAQ,CAAC,OAAO,CAAC;AACxD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-array-buffer.node.d.ts","sourceRoot":"","sources":["../../src/buffer/to-array-buffer.node.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,MAAM,KAAA,OAOzC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-array-buffer.node.js","names":["bufferToArrayBuffer","buffer","Buffer","isBuffer","typedArray","Uint8Array"],"sources":["../../src/buffer/to-array-buffer.node.ts"],"sourcesContent":["export function bufferToArrayBuffer(buffer) {\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n if (Buffer.isBuffer(buffer)) {\n const typedArray = new Uint8Array(buffer);\n return typedArray.buffer;\n }\n return buffer;\n}\n"],"mappings":"AAAA,OAAO,SAASA,mBAAmBA,CAACC,MAAM,EAAE;EAE1C,IAAIC,MAAM,CAACC,QAAQ,CAACF,MAAM,CAAC,EAAE;IAC3B,MAAMG,UAAU,GAAG,IAAIC,UAAU,CAACJ,MAAM,CAAC;IACzC,OAAOG,UAAU,CAACH,MAAM;EAC1B;EACA,OAAOA,MAAM;AACf"}
@@ -0,0 +1,28 @@
1
+ import { Hash } from '@loaders.gl/crypto';
2
+ type CryptoHashOptions = {
3
+ crypto: {
4
+ algorithm: string;
5
+ onEnd?: (result: {
6
+ hash: string;
7
+ }) => any;
8
+ };
9
+ };
10
+ /**
11
+ * Calculates Cryptographic Hash using Node.js crypto library
12
+ * @deprecated Warning, experimental class
13
+ */
14
+ export declare class NodeHash extends Hash {
15
+ readonly name = "crypto-node";
16
+ options: CryptoHashOptions;
17
+ private _algorithm;
18
+ private _hash;
19
+ constructor(options: CryptoHashOptions);
20
+ /**
21
+ * Atomic hash calculation
22
+ * @returns base64 encoded hash
23
+ */
24
+ hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string>;
25
+ hashBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, encoding?: 'hex' | 'base64'): AsyncIterable<ArrayBuffer>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=node-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-hash.d.ts","sourceRoot":"","sources":["../../src/crypto/node-hash.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AAGxC,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,KAAK,GAAG,CAAC;KACzC,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,qBAAa,QAAS,SAAQ,IAAI;IAChC,QAAQ,CAAC,IAAI,iBAAiB;IAE9B,OAAO,EAAE,iBAAiB,CAAC;IAE3B,OAAO,CAAC,UAAU,CAAC;IAEnB,OAAO,CAAC,KAAK,CAAC;gBAEF,OAAO,EAAE,iBAAiB;IAQtC;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAepE,WAAW,CAChB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,EACjE,QAAQ,GAAE,KAAK,GAAG,QAAmB,GACpC,aAAa,CAAC,WAAW,CAAC;CAgB9B"}
@@ -0,0 +1,56 @@
1
+ import { Hash } from '@loaders.gl/crypto';
2
+ import * as crypto from 'crypto';
3
+ export class NodeHash extends Hash {
4
+ constructor(options) {
5
+ var _this$options, _this$options$crypto;
6
+ super();
7
+ this.name = 'crypto-node';
8
+ this.options = void 0;
9
+ this._algorithm = void 0;
10
+ this._hash = void 0;
11
+ this.options = options;
12
+ if (!((_this$options = this.options) !== null && _this$options !== void 0 && (_this$options$crypto = _this$options.crypto) !== null && _this$options$crypto !== void 0 && _this$options$crypto.algorithm)) {
13
+ throw new Error(this.name);
14
+ }
15
+ }
16
+ async hash(input, encoding) {
17
+ var _this$options2, _this$options2$crypto, _this$options2$crypto2;
18
+ const algorithm = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : (_this$options2$crypto = _this$options2.crypto) === null || _this$options2$crypto === void 0 ? void 0 : (_this$options2$crypto2 = _this$options2$crypto.algorithm) === null || _this$options2$crypto2 === void 0 ? void 0 : _this$options2$crypto2.toLowerCase();
19
+ try {
20
+ var _crypto$createHash;
21
+ if (!crypto.createHash) {
22
+ throw new Error('crypto.createHash not available');
23
+ }
24
+ const hash = (_crypto$createHash = crypto.createHash) === null || _crypto$createHash === void 0 ? void 0 : _crypto$createHash.call(crypto, algorithm);
25
+ const inputArray = new Uint8Array(input);
26
+ return hash.update(inputArray).digest('base64');
27
+ } catch (error) {
28
+ throw Error(`${algorithm} hash not available. ${error}`);
29
+ }
30
+ }
31
+ hashBatches(asyncIterator) {
32
+ try {
33
+ var _this = this;
34
+ let encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'base64';
35
+ return async function* () {
36
+ var _crypto$createHash2, _this$options3, _this$options3$crypto, _this$options3$crypto2, _this$options4, _this$options4$crypto, _this$options4$crypto2;
37
+ if (!crypto.createHash) {
38
+ throw new Error('crypto.createHash not available');
39
+ }
40
+ const hash = (_crypto$createHash2 = crypto.createHash) === null || _crypto$createHash2 === void 0 ? void 0 : _crypto$createHash2.call(crypto, (_this$options3 = _this.options) === null || _this$options3 === void 0 ? void 0 : (_this$options3$crypto = _this$options3.crypto) === null || _this$options3$crypto === void 0 ? void 0 : (_this$options3$crypto2 = _this$options3$crypto.algorithm) === null || _this$options3$crypto2 === void 0 ? void 0 : _this$options3$crypto2.toLowerCase());
41
+ for await (const chunk of asyncIterator) {
42
+ const inputArray = new Uint8Array(chunk);
43
+ hash.update(inputArray);
44
+ yield chunk;
45
+ }
46
+ const digest = hash.digest(encoding);
47
+ (_this$options4 = _this.options) === null || _this$options4 === void 0 ? void 0 : (_this$options4$crypto = _this$options4.crypto) === null || _this$options4$crypto === void 0 ? void 0 : (_this$options4$crypto2 = _this$options4$crypto.onEnd) === null || _this$options4$crypto2 === void 0 ? void 0 : _this$options4$crypto2.call(_this$options4$crypto, {
48
+ hash: digest
49
+ });
50
+ }();
51
+ } catch (e) {
52
+ return Promise.reject(e);
53
+ }
54
+ }
55
+ }
56
+ //# sourceMappingURL=node-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-hash.js","names":["Hash","crypto","NodeHash","constructor","options","_this$options","_this$options$crypto","name","_algorithm","_hash","algorithm","Error","hash","input","encoding","_this$options2","_this$options2$crypto","_this$options2$crypto2","toLowerCase","_crypto$createHash","createHash","call","inputArray","Uint8Array","update","digest","error","hashBatches","asyncIterator","_this","arguments","length","undefined","_crypto$createHash2","_this$options3","_this$options3$crypto","_this$options3$crypto2","_this$options4","_this$options4$crypto","_this$options4$crypto2","chunk","onEnd","e","Promise","reject"],"sources":["../../src/crypto/node-hash.ts"],"sourcesContent":["// This dependency is too big, application must provide it\nimport {Hash} from '@loaders.gl/crypto';\nimport * as crypto from 'crypto'; // Node.js builtin\n\ntype CryptoHashOptions = {\n crypto: {\n algorithm: string;\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\n/**\n * Calculates Cryptographic Hash using Node.js crypto library\n * @deprecated Warning, experimental class\n */\nexport class NodeHash extends Hash {\n readonly name = 'crypto-node';\n\n options: CryptoHashOptions;\n // @ts-ignore\n private _algorithm;\n // @ts-ignore\n private _hash;\n\n constructor(options: CryptoHashOptions) {\n super();\n this.options = options;\n if (!this.options?.crypto?.algorithm) {\n throw new Error(this.name);\n }\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n // await this.preload();\n const algorithm = this.options?.crypto?.algorithm?.toLowerCase();\n try {\n if (!crypto.createHash) {\n throw new Error('crypto.createHash not available');\n }\n const hash = crypto.createHash?.(algorithm);\n const inputArray = new Uint8Array(input);\n return hash.update(inputArray).digest('base64');\n } catch (error) {\n throw Error(`${algorithm} hash not available. ${error}`);\n }\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\n ): AsyncIterable<ArrayBuffer> {\n // await this.preload();\n if (!crypto.createHash) {\n throw new Error('crypto.createHash not available');\n }\n const hash = crypto.createHash?.(this.options?.crypto?.algorithm?.toLowerCase());\n for await (const chunk of asyncIterator) {\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n const inputArray = new Uint8Array(chunk);\n hash.update(inputArray);\n yield chunk;\n }\n // We can pass our encoding constant directly to Node.js digest as it already supports `hex` and `base64`\n const digest = hash.digest(encoding);\n this.options?.crypto?.onEnd?.({hash: digest});\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if (typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if (typeof define === 'function' && define.amd) define([], factory);
5
+ else if (typeof exports === 'object') exports['loader'] = factory();
6
+ else root['loader'] = factory();})(globalThis, function () {
7
+ "use strict";
8
+ var __exports__ = (() => {
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+
27
+ // src/index.browser.ts
28
+ var index_browser_exports = {};
29
+ __export(index_browser_exports, {
30
+ NodeFileSystem: () => NodeFileSystem,
31
+ fetchNode: () => fetchNode,
32
+ installFilePolyfills: () => installFilePolyfills
33
+ });
34
+ function installFilePolyfills() {
35
+ }
36
+ var NodeFileSystem = null;
37
+ function fetchNode(path, options) {
38
+ throw new Error("fetchNode not available in browser");
39
+ }
40
+ return __toCommonJS(index_browser_exports);
41
+ })();
42
+ return __exports__;
43
+ });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Parses a data URI into a buffer, as well as retrieving its declared MIME type.
3
+ *
4
+ * @param {string} uri - a data URI (assumed to be valid)
5
+ * @returns {Object} { buffer, mimeType }
6
+ */
7
+ export declare function decodeDataUri(uri: string): {
8
+ arrayBuffer: ArrayBuffer;
9
+ mimeType: string;
10
+ };
11
+ /**
12
+ * @param data
13
+ * @todo Duplicate of core
14
+ */
15
+ export declare function toArrayBuffer(data: unknown): ArrayBuffer;
16
+ //# sourceMappingURL=decode-data-uri.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-data-uri.d.ts","sourceRoot":"","sources":["../../src/fetch/decode-data-uri.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAoBvF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CA+BxD"}
@@ -0,0 +1,45 @@
1
+ const isArrayBuffer = x => x && x instanceof ArrayBuffer;
2
+ const isBuffer = x => x && x instanceof Buffer;
3
+ export function decodeDataUri(uri) {
4
+ const dataIndex = uri.indexOf(',');
5
+ let buffer;
6
+ let mimeType;
7
+ if (uri.slice(dataIndex - 7, dataIndex) === ';base64') {
8
+ buffer = Buffer.from(uri.slice(dataIndex + 1), 'base64');
9
+ mimeType = uri.slice(5, dataIndex - 7).trim();
10
+ } else {
11
+ buffer = Buffer.from(decodeURIComponent(uri.slice(dataIndex + 1)));
12
+ mimeType = uri.slice(5, dataIndex).trim();
13
+ }
14
+ if (!mimeType) {
15
+ mimeType = 'text/plain;charset=US-ASCII';
16
+ } else if (mimeType.startsWith(';')) {
17
+ mimeType = `text/plain${mimeType}`;
18
+ }
19
+ return {
20
+ arrayBuffer: toArrayBuffer(buffer),
21
+ mimeType
22
+ };
23
+ }
24
+ export function toArrayBuffer(data) {
25
+ if (isArrayBuffer(data)) {
26
+ return data;
27
+ }
28
+ if (isBuffer(data)) {
29
+ const typedArray = new Uint8Array(data);
30
+ return typedArray.buffer;
31
+ }
32
+ if (ArrayBuffer.isView(data)) {
33
+ return data.buffer;
34
+ }
35
+ if (typeof data === 'string') {
36
+ const text = data;
37
+ const uint8Array = new TextEncoder().encode(text);
38
+ return uint8Array.buffer;
39
+ }
40
+ if (data && typeof data === 'object' && data._toArrayBuffer) {
41
+ return data._toArrayBuffer();
42
+ }
43
+ throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);
44
+ }
45
+ //# sourceMappingURL=decode-data-uri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-data-uri.js","names":["isArrayBuffer","x","ArrayBuffer","isBuffer","Buffer","decodeDataUri","uri","dataIndex","indexOf","buffer","mimeType","slice","from","trim","decodeURIComponent","startsWith","arrayBuffer","toArrayBuffer","data","typedArray","Uint8Array","isView","text","uint8Array","TextEncoder","encode","_toArrayBuffer","Error","JSON","stringify"],"sources":["../../src/fetch/decode-data-uri.ts"],"sourcesContent":["// Based on binary-gltf-utils under MIT license: Copyright (c) 2016-17 Karl Cheng\n\nconst isArrayBuffer = (x) => x && x instanceof ArrayBuffer;\nconst isBuffer = (x) => x && x instanceof Buffer;\n\n/**\n * Parses a data URI into a buffer, as well as retrieving its declared MIME type.\n *\n * @param {string} uri - a data URI (assumed to be valid)\n * @returns {Object} { buffer, mimeType }\n */\nexport function decodeDataUri(uri: string): {arrayBuffer: ArrayBuffer; mimeType: string} {\n const dataIndex = uri.indexOf(',');\n\n let buffer;\n let mimeType;\n if (uri.slice(dataIndex - 7, dataIndex) === ';base64') {\n buffer = Buffer.from(uri.slice(dataIndex + 1), 'base64');\n mimeType = uri.slice(5, dataIndex - 7).trim();\n } else {\n buffer = Buffer.from(decodeURIComponent(uri.slice(dataIndex + 1)));\n mimeType = uri.slice(5, dataIndex).trim();\n }\n\n if (!mimeType) {\n mimeType = 'text/plain;charset=US-ASCII';\n } else if (mimeType.startsWith(';')) {\n mimeType = `text/plain${mimeType}`;\n }\n\n return {arrayBuffer: toArrayBuffer(buffer), mimeType};\n}\n\n/**\n * @param data\n * @todo Duplicate of core\n */\nexport function toArrayBuffer(data: unknown): ArrayBuffer {\n if (isArrayBuffer(data)) {\n return data as ArrayBuffer;\n }\n\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n if (isBuffer(data)) {\n // @ts-expect-error\n const typedArray = new Uint8Array(data);\n return typedArray.buffer;\n }\n\n // Careful - Node Buffers will look like ArrayBuffers (keep after isBuffer)\n if (ArrayBuffer.isView(data)) {\n return data.buffer;\n }\n\n if (typeof data === 'string') {\n const text = data;\n const uint8Array = new TextEncoder().encode(text);\n return uint8Array.buffer;\n }\n\n // HACK to support Blob polyfill\n // @ts-expect-error\n if (data && typeof data === 'object' && data._toArrayBuffer) {\n // @ts-expect-error\n return data._toArrayBuffer();\n }\n\n throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);\n}\n"],"mappings":"AAEA,MAAMA,aAAa,GAAIC,CAAC,IAAKA,CAAC,IAAIA,CAAC,YAAYC,WAAW;AAC1D,MAAMC,QAAQ,GAAIF,CAAC,IAAKA,CAAC,IAAIA,CAAC,YAAYG,MAAM;AAQhD,OAAO,SAASC,aAAaA,CAACC,GAAW,EAAgD;EACvF,MAAMC,SAAS,GAAGD,GAAG,CAACE,OAAO,CAAC,GAAG,CAAC;EAElC,IAAIC,MAAM;EACV,IAAIC,QAAQ;EACZ,IAAIJ,GAAG,CAACK,KAAK,CAACJ,SAAS,GAAG,CAAC,EAAEA,SAAS,CAAC,KAAK,SAAS,EAAE;IACrDE,MAAM,GAAGL,MAAM,CAACQ,IAAI,CAACN,GAAG,CAACK,KAAK,CAACJ,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;IACxDG,QAAQ,GAAGJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAEJ,SAAS,GAAG,CAAC,CAAC,CAACM,IAAI,CAAC,CAAC;EAC/C,CAAC,MAAM;IACLJ,MAAM,GAAGL,MAAM,CAACQ,IAAI,CAACE,kBAAkB,CAACR,GAAG,CAACK,KAAK,CAACJ,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;IAClEG,QAAQ,GAAGJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAEJ,SAAS,CAAC,CAACM,IAAI,CAAC,CAAC;EAC3C;EAEA,IAAI,CAACH,QAAQ,EAAE;IACbA,QAAQ,GAAG,6BAA6B;EAC1C,CAAC,MAAM,IAAIA,QAAQ,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;IACnCL,QAAQ,GAAI,aAAYA,QAAS,EAAC;EACpC;EAEA,OAAO;IAACM,WAAW,EAAEC,aAAa,CAACR,MAAM,CAAC;IAAEC;EAAQ,CAAC;AACvD;AAMA,OAAO,SAASO,aAAaA,CAACC,IAAa,EAAe;EACxD,IAAIlB,aAAa,CAACkB,IAAI,CAAC,EAAE;IACvB,OAAOA,IAAI;EACb;EAGA,IAAIf,QAAQ,CAACe,IAAI,CAAC,EAAE;IAElB,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACF,IAAI,CAAC;IACvC,OAAOC,UAAU,CAACV,MAAM;EAC1B;EAGA,IAAIP,WAAW,CAACmB,MAAM,CAACH,IAAI,CAAC,EAAE;IAC5B,OAAOA,IAAI,CAACT,MAAM;EACpB;EAEA,IAAI,OAAOS,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAMI,IAAI,GAAGJ,IAAI;IACjB,MAAMK,UAAU,GAAG,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACH,IAAI,CAAC;IACjD,OAAOC,UAAU,CAACd,MAAM;EAC1B;EAIA,IAAIS,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAIA,IAAI,CAACQ,cAAc,EAAE;IAE3D,OAAOR,IAAI,CAACQ,cAAc,CAAC,CAAC;EAC9B;EAEA,MAAM,IAAIC,KAAK,CAAE,iBAAgBC,IAAI,CAACC,SAAS,CAACX,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAACP,KAAK,CAAC,EAAE,CAAE,GAAE,CAAC;AAC9E"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import http from 'http';
3
- import { Response } from './response.node';
3
+ import { Response } from './response-polyfill';
4
4
  /**
5
5
  * Emulation of Browser fetch for Node.js
6
6
  * @param url
@@ -9,4 +9,4 @@ import { Response } from './response.node';
9
9
  export declare function fetchNode(url: string, options: RequestInit): Promise<Response>;
10
10
  /** Returns a promise that resolves to a readable stream */
11
11
  export declare function createHTTPRequestReadStream(url: string, options: any): Promise<http.IncomingMessage>;
12
- //# sourceMappingURL=fetch.node.d.ts.map
12
+ //# sourceMappingURL=fetch-polyfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-polyfill.d.ts","sourceRoot":"","sources":["../../src/fetch/fetch-polyfill.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAO7C;;;;GAIG;AAEH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgDpF;AAED,2DAA2D;AAC3D,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,OAAO,KAAA,GACN,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAW/B"}
@@ -1,8 +1,8 @@
1
1
  import http from 'http';
2
2
  import https from 'https';
3
- import { Response } from './response.node';
4
- import { Headers } from './headers.node';
5
- import { decodeDataUri } from './utils/decode-data-uri.node';
3
+ import { Response } from "./response-polyfill.js";
4
+ import { Headers } from "./headers-polyfill.js";
5
+ import { decodeDataUri } from "./decode-data-uri.js";
6
6
  const isDataURL = url => url.startsWith('data:');
7
7
  const isRequestURL = url => url.startsWith('http:') || url.startsWith('https:');
8
8
  export async function fetchNode(url, options) {
@@ -122,4 +122,4 @@ function getHeaders(url, httpResponse) {
122
122
  function getContentLength(url) {
123
123
  return isDataURL(url) ? url.length - 'data:'.length : null;
124
124
  }
125
- //# sourceMappingURL=fetch.node.js.map
125
+ //# sourceMappingURL=fetch-polyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-polyfill.js","names":["http","https","Response","Headers","decodeDataUri","isDataURL","url","startsWith","isRequestURL","fetchNode","options","globalThis","fetch","arrayBuffer","mimeType","response","headers","syntheticResponseHeaders","originalUrl","endsWith","slice","body","createHTTPRequestReadStream","getHeaders","status","statusText","getStatus","followRedirect","undefined","has","redirectUrl","generateRedirectUrl","get","error","String","Promise","resolve","reject","requestOptions","getRequestOptions","req","request","res","on","end","location","URL","pathname","href","originalHeaders","key","Object","keys","toLowerCase","urlObject","hostname","path","method","port","httpResponse","statusCode","statusMessage","additionalHeaders","arguments","length","httpHeaders","header","contentLength","getContentLength","Number","isFinite","assign"],"sources":["../../src/fetch/fetch-polyfill.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport http from 'http';\nimport https from 'https';\nimport {Response} from './response-polyfill';\nimport {Headers} from './headers-polyfill';\nimport {decodeDataUri} from './decode-data-uri';\n\nconst isDataURL = (url: string): boolean => url.startsWith('data:');\nconst isRequestURL = (url: string): boolean => url.startsWith('http:') || url.startsWith('https:');\n\n/**\n * Emulation of Browser fetch for Node.js\n * @param url\n * @param options\n */\n// eslint-disable-next-line complexity\nexport async function fetchNode(url: string, options: RequestInit): Promise<Response> {\n try {\n // Handle file streams in node\n // @ts-expect-error\n if (globalThis.fetch !== fetchNode && (isRequestURL(url) || isDataURL(url))) {\n // @ts-expect-error\n return await fetch(url, options);\n }\n\n // Handle data urls in node, to match `fetch``\n // Note - this loses the MIME type, data URIs are handled directly in fetch\n if (isDataURL(url)) {\n const {arrayBuffer, mimeType} = decodeDataUri(url);\n const response = new Response(arrayBuffer, {\n headers: {'content-type': mimeType},\n url\n });\n return response;\n }\n\n // Automatically decompress gzipped files with .gz extension\n const syntheticResponseHeaders = {};\n const originalUrl = url;\n if (url.endsWith('.gz')) {\n url = url.slice(0, -3);\n syntheticResponseHeaders['content-encoding'] = 'gzip';\n }\n\n // Need to create the stream in advance since Response constructor needs to be sync\n const body = await createHTTPRequestReadStream(originalUrl, options);\n const headers = getHeaders(url, body, syntheticResponseHeaders);\n const {status, statusText} = getStatus(body);\n\n const followRedirect =\n // @ts-expect-error\n !options || options.followRedirect || options.followRedirect === undefined;\n\n if (status >= 300 && status < 400 && headers.has('location') && followRedirect) {\n const redirectUrl = generateRedirectUrl(url, headers.get('location'));\n\n // Redirect\n return await fetchNode(redirectUrl, options);\n }\n return new Response(body, {headers, status, statusText, url});\n } catch (error) {\n // TODO - what error code to use here?\n return new Response(null, {status: 400, statusText: String(error), url});\n }\n}\n\n/** Returns a promise that resolves to a readable stream */\nexport async function createHTTPRequestReadStream(\n url: string,\n options\n): Promise<http.IncomingMessage> {\n // HANDLE HTTP/HTTPS REQUESTS IN NODE\n // TODO: THIS IS BAD SINCE WE RETURN A PROMISE INSTEAD OF A STREAM\n return await new Promise((resolve, reject) => {\n const requestOptions = getRequestOptions(url, options);\n const req = url.startsWith('https:')\n ? https.request(requestOptions, (res) => resolve(res))\n : http.request(requestOptions, (res) => resolve(res));\n req.on('error', (error) => reject(error));\n req.end();\n });\n}\n\n/**\n * Generate redirect url from location without origin and protocol.\n * @param originalUrl\n * @param redirectUrl\n */\nfunction generateRedirectUrl(originalUrl: string, location: string): string {\n if (location.startsWith('http')) {\n return location;\n }\n // If url doesn't have origin and protocol just extend current url origin with location.\n const url = new URL(originalUrl);\n url.pathname = location;\n\n return url.href;\n}\n\n// HELPER FUNCTIONS\n\nfunction getRequestOptions(url: string, options?: {fetch?: typeof fetch; headers?}) {\n // Ensure header keys are lower case so that we can merge without duplicates\n const originalHeaders = options?.headers || {};\n const headers = {};\n for (const key of Object.keys(originalHeaders)) {\n headers[key.toLowerCase()] = originalHeaders[key];\n }\n\n // Add default accept-encoding to headers\n headers['accept-encoding'] = headers['accept-encoding'] || 'gzip,br,deflate';\n\n const urlObject = new URL(url);\n return {\n hostname: urlObject.hostname,\n path: urlObject.pathname,\n method: 'GET',\n // Add options and user provided 'options.fetch' overrides if available\n ...options,\n ...options?.fetch,\n // Override with updated headers with accepted encodings:\n headers,\n port: urlObject.port\n };\n}\n\nfunction getStatus(httpResponse: http.IncomingMessage): {status: number; statusText: string} {\n if (httpResponse.statusCode) {\n return {status: httpResponse.statusCode, statusText: httpResponse.statusMessage || 'NA'};\n }\n return {status: 200, statusText: 'OK'};\n}\n\nfunction getHeaders(url, httpResponse, additionalHeaders = {}) {\n const headers = {};\n\n if (httpResponse && httpResponse.headers) {\n const httpHeaders = httpResponse.headers;\n for (const key in httpHeaders) {\n const header = httpHeaders[key];\n headers[key.toLowerCase()] = String(header);\n }\n }\n\n // Fix up content length if we can for best progress experience\n if (!headers['content-length']) {\n const contentLength = getContentLength(url);\n if (Number.isFinite(contentLength)) {\n headers['content-length'] = contentLength;\n }\n }\n\n Object.assign(headers, additionalHeaders);\n\n return new Headers(headers);\n}\n\n/** Needs to be read from actual headers */\nfunction getContentLength(url: string): number | null {\n // TODO - remove media type etc\n return isDataURL(url) ? url.length - 'data:'.length : null;\n}\n"],"mappings":"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"}
@@ -31,4 +31,4 @@ export declare class Headers {
31
31
  };
32
32
  [Symbol.iterator](): Generator<any, void, unknown>;
33
33
  }
34
- //# sourceMappingURL=headers.node.d.ts.map
34
+ //# sourceMappingURL=headers-polyfill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"headers.node.d.ts","sourceRoot":"","sources":["../../../src/node/fetch/headers.node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,OAAO;IAClB,GAAG,EAAE,EAAE,CAAC;gBAEI,OAAO,KAAA;IAYnB,MAAM,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAOlB,MAAM,CAAC,IAAI,KAAA;IAIX,GAAG,CAAC,IAAI,KAAA;IAKR,GAAG,CAAC,IAAI,KAAA;IAIR,GAAG,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAIf,OAAO,CAAC,OAAO,KAAA,EAAE,OAAO,OAAO;IAY/B,IAAI;;;;;;IAQJ,MAAM;;;;;;IAQN,OAAO;;;;;;IAQN,CAAC,MAAM,CAAC,QAAQ,CAAC;CAInB"}
1
+ {"version":3,"file":"headers-polyfill.d.ts","sourceRoot":"","sources":["../../src/fetch/headers-polyfill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,OAAO;IAClB,GAAG,EAAE,EAAE,CAAC;gBAEI,OAAO,KAAA;IAYnB,MAAM,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAOlB,MAAM,CAAC,IAAI,KAAA;IAIX,GAAG,CAAC,IAAI,KAAA;IAKR,GAAG,CAAC,IAAI,KAAA;IAIR,GAAG,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAIf,OAAO,CAAC,OAAO,KAAA,EAAE,OAAO,OAAO;IAY/B,IAAI;;;;;;IAQJ,MAAM;;;;;;IAQN,OAAO;;;;;;IAQN,CAAC,MAAM,CAAC,QAAQ,CAAC;CAInB"}
@@ -1,9 +1,8 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  let _Symbol$iterator;
3
2
  _Symbol$iterator = Symbol.iterator;
4
3
  export class Headers {
5
4
  constructor(headers) {
6
- _defineProperty(this, "map", void 0);
5
+ this.map = void 0;
7
6
  this.map = {};
8
7
  if (headers instanceof Headers) {
9
8
  headers.forEach((value, name) => this.append(name, value));
@@ -17,7 +16,7 @@ export class Headers {
17
16
  name = normalizeName(name);
18
17
  value = normalizeValue(value);
19
18
  const oldValue = this.map[name];
20
- this.map[name] = oldValue ? "".concat(oldValue, ", ").concat(value) : value;
19
+ this.map[name] = oldValue ? `${oldValue}, ${value}` : value;
21
20
  }
22
21
  delete(name) {
23
22
  delete this.map[normalizeName(name)];
@@ -99,4 +98,4 @@ function iteratorFor(items) {
99
98
  };
100
99
  return iterator;
101
100
  }
102
- //# sourceMappingURL=headers.node.js.map
101
+ //# sourceMappingURL=headers-polyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers-polyfill.js","names":["Symbol","iterator","Headers","constructor","headers","map","forEach","value","name","append","Array","isArray","header","Object","getOwnPropertyNames","normalizeName","normalizeValue","oldValue","delete","get","has","hasOwnProperty","set","visitor","thisArg","arguments","length","undefined","call","keys","items","push","iteratorFor","values","entries","_Symbol$iterator","String","test","TypeError","toLowerCase","next","shift","done"],"sources":["../../src/fetch/headers-polyfill.ts"],"sourcesContent":["/**\n * Polyfill for Browser Headers\n * Based on https://github.com/github/fetch under MIT license\n */\nexport class Headers {\n map: {};\n\n constructor(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach((value, name) => this.append(name, value));\n } else if (Array.isArray(headers)) {\n headers.forEach((header) => this.append(header[0], header[1]));\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach((name) => this.append(name, headers[name]));\n }\n }\n\n append(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n const oldValue = this.map[name];\n this.map[name] = oldValue ? `${oldValue}, ${value}` : value;\n }\n\n delete(name) {\n delete this.map[normalizeName(name)];\n }\n\n get(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null;\n }\n\n has(name) {\n return this.map.hasOwnProperty(normalizeName(name));\n }\n\n set(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n }\n\n forEach(visitor, thisArg = null) {\n for (const name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n if (thisArg) {\n visitor.call(thisArg, this.map[name], name, this);\n } else {\n visitor(this.map[name], name, this);\n }\n }\n }\n }\n\n keys() {\n const items: any[] = [];\n this.forEach(function (value, name) {\n items.push(name);\n });\n return iteratorFor(items);\n }\n\n values() {\n const items: any[] = [];\n this.forEach(function (value) {\n items.push(value);\n });\n return iteratorFor(items);\n }\n\n entries() {\n const items: any[] = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items);\n }\n\n *[Symbol.iterator]() {\n // @ts-ignore must have a '[Symbol.iterator]()' method that returns an iterator.\n yield* this.entries();\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name');\n }\n return name.toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value;\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n const iterator = {\n next() {\n const value = items.shift();\n return {done: value === undefined, value};\n }\n };\n\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n\n return iterator;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Headers } from './headers.node';
1
+ import { Headers } from './headers-polyfill';
2
2
  export declare class Response {
3
3
  readonly ok: boolean;
4
4
  readonly status: number;
@@ -19,4 +19,4 @@ export declare class Response {
19
19
  json(): Promise<any>;
20
20
  blob(): Promise<Blob>;
21
21
  }
22
- //# sourceMappingURL=response.node.d.ts.map
22
+ //# sourceMappingURL=response-polyfill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.node.d.ts","sourceRoot":"","sources":["../../../src/node/fetch/response.node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAoBvC,qBAAa,QAAQ;IACnB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAIrB,IAAI,KAAA,EACJ,OAAO,EAAE;QACP,OAAO,CAAC,MAAC;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;KACb;IAuBH,IAAI,IAAI,QAKP;IAIK,WAAW;IAQX,IAAI;IAMJ,IAAI;IAKJ,IAAI;CAMX"}
1
+ {"version":3,"file":"response-polyfill.d.ts","sourceRoot":"","sources":["../../src/fetch/response-polyfill.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAoB3C,qBAAa,QAAQ;IACnB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAIrB,IAAI,KAAA,EACJ,OAAO,EAAE;QACP,OAAO,CAAC,MAAC;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;KACb;IAuBH,IAAI,IAAI,QAKP;IAIK,WAAW;IAQX,IAAI;IAMJ,IAAI;IAKJ,IAAI;CAMX"}
@@ -1,21 +1,20 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { assert } from '../../utils/assert';
3
- import { decompressReadStream, concatenateReadStream } from './utils/stream-utils.node';
4
- import { Headers } from './headers.node';
1
+ import { assert } from "../utils/assert.js";
2
+ import { decompressReadStream, concatenateReadStream } from "../filesystems/stream-utils.node.js";
3
+ import { Headers } from "./headers-polyfill.js";
5
4
  const isBoolean = x => typeof x === 'boolean';
6
5
  const isFunction = x => typeof x === 'function';
7
6
  const isObject = x => x !== null && typeof x === 'object';
8
7
  const isReadableNodeStream = x => isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);
9
- import { Readable } from 'stream';
8
+ import * as stream from 'stream';
10
9
  export class Response {
11
10
  constructor(body, options) {
12
- _defineProperty(this, "ok", void 0);
13
- _defineProperty(this, "status", void 0);
14
- _defineProperty(this, "statusText", void 0);
15
- _defineProperty(this, "headers", void 0);
16
- _defineProperty(this, "url", void 0);
17
- _defineProperty(this, "bodyUsed", false);
18
- _defineProperty(this, "_body", void 0);
11
+ this.ok = void 0;
12
+ this.status = void 0;
13
+ this.statusText = void 0;
14
+ this.headers = void 0;
15
+ this.url = void 0;
16
+ this.bodyUsed = false;
17
+ this._body = void 0;
19
18
  const {
20
19
  headers,
21
20
  status = 200,
@@ -30,9 +29,9 @@ export class Response {
30
29
  if (isReadableNodeStream(body)) {
31
30
  this._body = decompressReadStream(body, headers);
32
31
  } else if (typeof body === 'string') {
33
- this._body = Readable.from([new TextEncoder().encode(body)]);
32
+ this._body = stream.Readable.from([new TextEncoder().encode(body)]);
34
33
  } else {
35
- this._body = Readable.from([body || new ArrayBuffer(0)]);
34
+ this._body = stream.Readable.from([body || new ArrayBuffer(0)]);
36
35
  }
37
36
  }
38
37
  get body() {
@@ -64,4 +63,4 @@ export class Response {
64
63
  return new Blob([await this.arrayBuffer()]);
65
64
  }
66
65
  }
67
- //# sourceMappingURL=response.node.js.map
66
+ //# sourceMappingURL=response-polyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-polyfill.js","names":["assert","decompressReadStream","concatenateReadStream","Headers","isBoolean","x","isFunction","isObject","isReadableNodeStream","read","pipe","readable","stream","Response","constructor","body","options","ok","status","statusText","headers","url","bodyUsed","_body","Readable","from","TextEncoder","encode","ArrayBuffer","arrayBuffer","data","text","textDecoder","TextDecoder","decode","json","JSON","parse","blob","Blob","Error"],"sources":["../../src/fetch/response-polyfill.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {assert} from '../utils/assert';\nimport {decompressReadStream, concatenateReadStream} from '../filesystems/stream-utils.node';\nimport {Headers} from './headers-polyfill';\n\nconst isBoolean = (x) => typeof x === 'boolean';\nconst isFunction = (x) => typeof x === 'function';\nconst isObject = (x) => x !== null && typeof x === 'object';\nconst isReadableNodeStream = (x) =>\n isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\n\n/**\n * Polyfill for Browser Response\n *\n * Under Node.js we return a mock \"fetch response object\"\n * so that apps can use the same API as in the browser.\n *\n * Note: This is intended to be a \"lightweight\" implementation and will have limitations.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Response\n */\nimport * as stream from 'stream';\n\nexport class Response {\n readonly ok: boolean;\n readonly status: number;\n readonly statusText: string;\n readonly headers: Headers;\n readonly url: string;\n bodyUsed: boolean = false;\n private readonly _body;\n\n // TODO - handle ArrayBuffer, ArrayBufferView, Buffer\n constructor(\n body,\n options: {\n headers?;\n status?: number;\n statusText?: string;\n url: string;\n }\n ) {\n const {headers, status = 200, statusText = 'OK', url} = options || {};\n\n this.url = url;\n this.ok = status === 200;\n this.status = status; // TODO - handle errors and set status\n this.statusText = statusText;\n this.headers = new Headers(options?.headers || {});\n\n // Check for content-encoding and create a decompression stream\n if (isReadableNodeStream(body)) {\n this._body = decompressReadStream(body, headers);\n } else if (typeof body === 'string') {\n this._body = stream.Readable.from([new TextEncoder().encode(body)]);\n } else {\n this._body = stream.Readable.from([body || new ArrayBuffer(0)]);\n }\n }\n\n // Subset of Properties\n\n // Returns a readable stream to the \"body\" of the response (or file)\n get body() {\n assert(!this.bodyUsed);\n assert(isReadableNodeStream(this._body)); // Not implemented: conversion of ArrayBuffer etc to stream\n this.bodyUsed = true;\n return this._body;\n }\n\n // Subset of Methods\n\n async arrayBuffer() {\n if (!isReadableNodeStream(this._body)) {\n return this._body || new ArrayBuffer(0);\n }\n const data = await concatenateReadStream(this._body);\n return data;\n }\n\n async text() {\n const arrayBuffer = await this.arrayBuffer();\n const textDecoder = new TextDecoder();\n return textDecoder.decode(arrayBuffer);\n }\n\n async json() {\n const text = await this.text();\n return JSON.parse(text);\n }\n\n async blob() {\n if (typeof Blob === 'undefined') {\n throw new Error('Blob polyfill not installed');\n }\n return new Blob([await this.arrayBuffer()]);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-data-uri.node.d.ts","sourceRoot":"","sources":["../../../src/fetch/utils/decode-data-uri.node.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAoBvF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CA+BxD"}
@@ -14,7 +14,7 @@ export function decodeDataUri(uri) {
14
14
  if (!mimeType) {
15
15
  mimeType = 'text/plain;charset=US-ASCII';
16
16
  } else if (mimeType.startsWith(';')) {
17
- mimeType = "text/plain".concat(mimeType);
17
+ mimeType = `text/plain${mimeType}`;
18
18
  }
19
19
  return {
20
20
  arrayBuffer: toArrayBuffer(buffer),
@@ -40,6 +40,6 @@ export function toArrayBuffer(data) {
40
40
  if (data && typeof data === 'object' && data._toArrayBuffer) {
41
41
  return data._toArrayBuffer();
42
42
  }
43
- throw new Error("toArrayBuffer(".concat(JSON.stringify(data, null, 2).slice(10), ")"));
43
+ throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);
44
44
  }
45
45
  //# sourceMappingURL=decode-data-uri.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-data-uri.node.js","names":["isArrayBuffer","x","ArrayBuffer","isBuffer","Buffer","decodeDataUri","uri","dataIndex","indexOf","buffer","mimeType","slice","from","trim","decodeURIComponent","startsWith","arrayBuffer","toArrayBuffer","data","typedArray","Uint8Array","isView","text","uint8Array","TextEncoder","encode","_toArrayBuffer","Error","JSON","stringify"],"sources":["../../../src/fetch/utils/decode-data-uri.node.ts"],"sourcesContent":["// Based on binary-gltf-utils under MIT license: Copyright (c) 2016-17 Karl Cheng\n\nconst isArrayBuffer = (x) => x && x instanceof ArrayBuffer;\nconst isBuffer = (x) => x && x instanceof Buffer;\n\n/**\n * Parses a data URI into a buffer, as well as retrieving its declared MIME type.\n *\n * @param {string} uri - a data URI (assumed to be valid)\n * @returns {Object} { buffer, mimeType }\n */\nexport function decodeDataUri(uri: string): {arrayBuffer: ArrayBuffer; mimeType: string} {\n const dataIndex = uri.indexOf(',');\n\n let buffer;\n let mimeType;\n if (uri.slice(dataIndex - 7, dataIndex) === ';base64') {\n buffer = Buffer.from(uri.slice(dataIndex + 1), 'base64');\n mimeType = uri.slice(5, dataIndex - 7).trim();\n } else {\n buffer = Buffer.from(decodeURIComponent(uri.slice(dataIndex + 1)));\n mimeType = uri.slice(5, dataIndex).trim();\n }\n\n if (!mimeType) {\n mimeType = 'text/plain;charset=US-ASCII';\n } else if (mimeType.startsWith(';')) {\n mimeType = `text/plain${mimeType}`;\n }\n\n return {arrayBuffer: toArrayBuffer(buffer), mimeType};\n}\n\n/**\n * @param data\n * @todo Duplicate of core\n */\nexport function toArrayBuffer(data: unknown): ArrayBuffer {\n if (isArrayBuffer(data)) {\n return data as ArrayBuffer;\n }\n\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n if (isBuffer(data)) {\n // @ts-expect-error\n const typedArray = new Uint8Array(data);\n return typedArray.buffer;\n }\n\n // Careful - Node Buffers will look like ArrayBuffers (keep after isBuffer)\n if (ArrayBuffer.isView(data)) {\n return data.buffer;\n }\n\n if (typeof data === 'string') {\n const text = data;\n const uint8Array = new TextEncoder().encode(text);\n return uint8Array.buffer;\n }\n\n // HACK to support Blob polyfill\n // @ts-expect-error\n if (data && typeof data === 'object' && data._toArrayBuffer) {\n // @ts-expect-error\n return data._toArrayBuffer();\n }\n\n throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);\n}\n"],"mappings":"AAEA,MAAMA,aAAa,GAAIC,CAAC,IAAKA,CAAC,IAAIA,CAAC,YAAYC,WAAW;AAC1D,MAAMC,QAAQ,GAAIF,CAAC,IAAKA,CAAC,IAAIA,CAAC,YAAYG,MAAM;AAQhD,OAAO,SAASC,aAAaA,CAACC,GAAW,EAAgD;EACvF,MAAMC,SAAS,GAAGD,GAAG,CAACE,OAAO,CAAC,GAAG,CAAC;EAElC,IAAIC,MAAM;EACV,IAAIC,QAAQ;EACZ,IAAIJ,GAAG,CAACK,KAAK,CAACJ,SAAS,GAAG,CAAC,EAAEA,SAAS,CAAC,KAAK,SAAS,EAAE;IACrDE,MAAM,GAAGL,MAAM,CAACQ,IAAI,CAACN,GAAG,CAACK,KAAK,CAACJ,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;IACxDG,QAAQ,GAAGJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAEJ,SAAS,GAAG,CAAC,CAAC,CAACM,IAAI,CAAC,CAAC;EAC/C,CAAC,MAAM;IACLJ,MAAM,GAAGL,MAAM,CAACQ,IAAI,CAACE,kBAAkB,CAACR,GAAG,CAACK,KAAK,CAACJ,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;IAClEG,QAAQ,GAAGJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAEJ,SAAS,CAAC,CAACM,IAAI,CAAC,CAAC;EAC3C;EAEA,IAAI,CAACH,QAAQ,EAAE;IACbA,QAAQ,GAAG,6BAA6B;EAC1C,CAAC,MAAM,IAAIA,QAAQ,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;IACnCL,QAAQ,GAAI,aAAYA,QAAS,EAAC;EACpC;EAEA,OAAO;IAACM,WAAW,EAAEC,aAAa,CAACR,MAAM,CAAC;IAAEC;EAAQ,CAAC;AACvD;AAMA,OAAO,SAASO,aAAaA,CAACC,IAAa,EAAe;EACxD,IAAIlB,aAAa,CAACkB,IAAI,CAAC,EAAE;IACvB,OAAOA,IAAI;EACb;EAGA,IAAIf,QAAQ,CAACe,IAAI,CAAC,EAAE;IAElB,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACF,IAAI,CAAC;IACvC,OAAOC,UAAU,CAACV,MAAM;EAC1B;EAGA,IAAIP,WAAW,CAACmB,MAAM,CAACH,IAAI,CAAC,EAAE;IAC5B,OAAOA,IAAI,CAACT,MAAM;EACpB;EAEA,IAAI,OAAOS,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAMI,IAAI,GAAGJ,IAAI;IACjB,MAAMK,UAAU,GAAG,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACH,IAAI,CAAC;IACjD,OAAOC,UAAU,CAACd,MAAM;EAC1B;EAIA,IAAIS,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAIA,IAAI,CAACQ,cAAc,EAAE;IAE3D,OAAOR,IAAI,CAACQ,cAAc,CAAC,CAAC;EAC9B;EAEA,MAAM,IAAIC,KAAK,CAAE,iBAAgBC,IAAI,CAACC,SAAS,CAACX,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAACP,KAAK,CAAC,EAAE,CAAE,GAAE,CAAC;AAC9E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-stream-controller.d.ts","sourceRoot":"","sources":["../../src/file/blob-stream-controller.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,WAAW,CAAkB;IAErC;;OAEG;gBACS,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;IAIxC;;OAEG;IACH,KAAK,CAAC,UAAU,EAAE,+BAA+B;IAIjD;;;OAGG;IACG,IAAI,CAAC,UAAU,EAAE,+BAA+B;IAyBtD;;;OAGG;IACH,IAAI,CAAC,UAAU,KAAA;IAKf,MAAM;CAGP"}
@@ -1,9 +1,8 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  export class BlobStreamController {
3
2
  constructor(chunks) {
4
- _defineProperty(this, "chunks", void 0);
5
- _defineProperty(this, "isWorking", false);
6
- _defineProperty(this, "isCancelled", false);
3
+ this.chunks = void 0;
4
+ this.isWorking = false;
5
+ this.isCancelled = false;
7
6
  this.chunks = chunks;
8
7
  }
9
8
  start(controller) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-stream-controller.js","names":["BlobStreamController","constructor","chunks","isWorking","isCancelled","start","controller","work","desiredSize","next","error","done","enqueue","value","close","pull","cancel"],"sources":["../../src/file/blob-stream-controller.ts"],"sourcesContent":["/**\n * Forked from @gozala's web-blob under MIT license\n * @see https://github.com/Gozala/web-blob\n */\nexport class BlobStreamController {\n private chunks: Iterator<Uint8Array>;\n private isWorking: boolean = false;\n private isCancelled: boolean = false;\n\n /**\n * @param chunks\n */\n constructor(chunks: Iterator<Uint8Array>) {\n this.chunks = chunks;\n }\n\n /**\n * @param controller\n */\n start(controller: ReadableStreamDefaultController) {\n this.work(controller); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n\n /**\n *\n * @param controller\n */\n async work(controller: ReadableStreamDefaultController) {\n const {chunks} = this;\n\n this.isWorking = true;\n while (!this.isCancelled && (controller.desiredSize || 0) > 0) {\n let next: {done?: boolean; value?: Uint8Array} | undefined;\n try {\n next = chunks.next();\n } catch (error) {\n controller.error(error);\n break;\n }\n\n if (next) {\n if (!next.done && !this.isCancelled) {\n controller.enqueue(next.value);\n } else {\n controller.close();\n }\n }\n }\n\n this.isWorking = false;\n }\n\n /**\n *\n * @param {ReadableStreamDefaultController} controller\n */\n pull(controller) {\n if (!this.isWorking) {\n this.work(controller); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n }\n cancel() {\n this.isCancelled = true;\n }\n}\n"],"mappings":"AAIA,OAAO,MAAMA,oBAAoB,CAAC;EAQhCC,WAAWA,CAACC,MAA4B,EAAE;IAAA,KAPlCA,MAAM;IAAA,KACNC,SAAS,GAAY,KAAK;IAAA,KAC1BC,WAAW,GAAY,KAAK;IAMlC,IAAI,CAACF,MAAM,GAAGA,MAAM;EACtB;EAKAG,KAAKA,CAACC,UAA2C,EAAE;IACjD,IAAI,CAACC,IAAI,CAACD,UAAU,CAAC;EACvB;EAMA,MAAMC,IAAIA,CAACD,UAA2C,EAAE;IACtD,MAAM;MAACJ;IAAM,CAAC,GAAG,IAAI;IAErB,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB,OAAO,CAAC,IAAI,CAACC,WAAW,IAAI,CAACE,UAAU,CAACE,WAAW,IAAI,CAAC,IAAI,CAAC,EAAE;MAC7D,IAAIC,IAAsD;MAC1D,IAAI;QACFA,IAAI,GAAGP,MAAM,CAACO,IAAI,CAAC,CAAC;MACtB,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdJ,UAAU,CAACI,KAAK,CAACA,KAAK,CAAC;QACvB;MACF;MAEA,IAAID,IAAI,EAAE;QACR,IAAI,CAACA,IAAI,CAACE,IAAI,IAAI,CAAC,IAAI,CAACP,WAAW,EAAE;UACnCE,UAAU,CAACM,OAAO,CAACH,IAAI,CAACI,KAAK,CAAC;QAChC,CAAC,MAAM;UACLP,UAAU,CAACQ,KAAK,CAAC,CAAC;QACpB;MACF;IACF;IAEA,IAAI,CAACX,SAAS,GAAG,KAAK;EACxB;EAMAY,IAAIA,CAACT,UAAU,EAAE;IACf,IAAI,CAAC,IAAI,CAACH,SAAS,EAAE;MACnB,IAAI,CAACI,IAAI,CAACD,UAAU,CAAC;IACvB;EACF;EACAU,MAAMA,CAAA,EAAG;IACP,IAAI,CAACZ,WAAW,GAAG,IAAI;EACzB;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-stream.d.ts","sourceRoot":"","sources":["../../src/file/blob-stream.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAGzD;;;;;GAKG;AAEH,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,sBAAsB,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC;;OAEG;gBACS,MAAM,KAAA;IAOlB;;OAEG;IAEI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,aAAa,CAAC,UAAU,CAAC;CAK/F"}
@@ -1,14 +1,13 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  let _Symbol$asyncIterator;
3
- import { ReadableStreamPolyfill } from './readable-stream';
4
- import { BlobStreamController } from './blob-stream-controller';
2
+ import { ReadableStreamPolyfill } from "./readable-stream.js";
3
+ import { BlobStreamController } from "./blob-stream-controller.js";
5
4
  _Symbol$asyncIterator = Symbol.asyncIterator;
6
5
  export class BlobStream extends ReadableStreamPolyfill {
7
6
  constructor(chunks) {
8
7
  super(new BlobStreamController(chunks.values()), {
9
8
  type: 'bytes'
10
9
  });
11
- _defineProperty(this, "_chunks", void 0);
10
+ this._chunks = void 0;
12
11
  this._chunks = chunks;
13
12
  }
14
13
  async *[_Symbol$asyncIterator](_options) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-stream.js","names":["ReadableStreamPolyfill","BlobStreamController","_Symbol$asyncIterator","Symbol","asyncIterator","BlobStream","constructor","chunks","values","type","_chunks","_options","reader","getReader","releaseLock"],"sources":["../../src/file/blob-stream.ts"],"sourcesContent":["/**\n * Forked from @gozala's web-blob under MIT license\n * @see https://github.com/Gozala/web-blob\n */\nimport {ReadableStreamPolyfill} from './readable-stream';\nimport {BlobStreamController} from './blob-stream-controller';\n\n/**\n * Blob stream is a `ReadableStream` extension optimized to have minimal\n * overhead when consumed as `AsyncIterable<Uint8Array>`.\n * extends {ReadableStream<Uint8Array>}\n * implements {AsyncIterable<Uint8Array>}\n */\n// @ts-ignore\nexport class BlobStream<T> extends ReadableStreamPolyfill<T> {\n private readonly _chunks: Uint8Array[];\n /**\n * @param chunks\n */\n constructor(chunks) {\n // @ts-ignore\n super(new BlobStreamController(chunks.values()), {type: 'bytes'});\n /** @private */\n this._chunks = chunks;\n }\n\n /**\n * @property [_options.preventCancel]\n */\n // @ts-ignore\n async *[Symbol.asyncIterator](_options?: {preventCancel?: boolean}): AsyncIterable<Uint8Array> {\n const reader = this.getReader();\n yield* this._chunks;\n reader.releaseLock();\n }\n}\n"],"mappings":";SAIQA,sBAAsB;AAAA,SACtBC,oBAAoB;AAAAC,qBAAA,GAyBlBC,MAAM,CAACC,aAAa;AAhB9B,OAAO,MAAMC,UAAU,SAAYL,sBAAsB,CAAI;EAK3DM,WAAWA,CAACC,MAAM,EAAE;IAElB,KAAK,CAAC,IAAIN,oBAAoB,CAACM,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE;MAACC,IAAI,EAAE;IAAO,CAAC,CAAC;IAAC,KANnDC,OAAO;IAQtB,IAAI,CAACA,OAAO,GAAGH,MAAM;EACvB;EAMA,QAAAL,qBAAA,EAA8BS,QAAoC,EAA6B;IAC7F,MAAMC,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;IAC/B,OAAO,IAAI,CAACH,OAAO;IACnBE,MAAM,CAACE,WAAW,CAAC,CAAC;EACtB;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/file/blob.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC;;;GAGG;AACH,qBAAa,YAAY;IAEvB,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,KAAK,CAAe;IAC5B;;;OAGG;gBACS,IAAI,GAAE,QAAQ,EAAO,EAAE,OAAO,GAAE,eAAoB;IAmChE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,KAAK,GAAE,MAAU,EAAE,GAAG,GAAE,MAAkB,EAAE,IAAI,GAAE,MAAW,GAAG,IAAI;IAyC1E;;;OAGG;IAEG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAIzC;;;OAGG;IAEG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAS7B;OACG;IAEH,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC;IAIzB;;OAEG;IACH,QAAQ;IAIR,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,cAAc,IAAI,WAAW;CAU9B"}
@@ -1,14 +1,13 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  let _Symbol$toStringTag;
3
- import { BlobStream } from './blob-stream';
2
+ import { BlobStream } from "./blob-stream.js";
4
3
  _Symbol$toStringTag = Symbol.toStringTag;
5
4
  export class BlobPolyfill {
6
5
  constructor() {
7
6
  let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
8
7
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9
- _defineProperty(this, "type", void 0);
10
- _defineProperty(this, "size", void 0);
11
- _defineProperty(this, "parts", void 0);
8
+ this.type = void 0;
9
+ this.size = void 0;
10
+ this.parts = void 0;
12
11
  this.parts = [];
13
12
  this.size = 0;
14
13
  for (const part of init) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.js","names":["BlobStream","_Symbol$toStringTag","Symbol","toStringTag","BlobPolyfill","constructor","init","arguments","length","undefined","options","type","size","parts","part","bytes","TextEncoder","encode","push","byteLength","ArrayBuffer","Uint8Array","isView","buffer","byteOffset","String","readType","slice","start","end","offset","Math","max","min","limit","span","blob","blobSize","blobParts","chunk","subarray","arrayBuffer","_toArrayBuffer","text","decoder","TextDecoder","decode","stream","toString","set","input","toLowerCase","test"],"sources":["../../src/file/blob.ts"],"sourcesContent":["// Forked from @gozala's web-blob under MIT license https://github.com/Gozala/web-blob\nimport {BlobStream} from './blob-stream';\n\n/**\n * Forked from @gozala's web-blob under MIT license\n * @see https://github.com/Gozala/web-blob\n */\nexport class BlobPolyfill {\n // implements Blob {\n /** The MIME type of the data contained in the Blob. If type is unknown, string is empty. */\n readonly type: string;\n /** The size, in bytes, of the data contained in the Blob object. */\n size: number;\n private parts: Uint8Array[];\n /**\n * @param [init]\n * @param [options]\n */\n constructor(init: BlobPart[] = [], options: BlobPropertyBag = {}) {\n this.parts = [];\n\n this.size = 0;\n for (const part of init) {\n if (typeof part === 'string') {\n const bytes = new TextEncoder().encode(part);\n this.parts.push(bytes);\n this.size += bytes.byteLength;\n } else if (part instanceof BlobPolyfill) {\n this.size += part.size;\n // @ts-ignore - `parts` is marked private so TS will complain about\n // accessing it.\n this.parts.push(...part.parts);\n } else if (part instanceof ArrayBuffer) {\n this.parts.push(new Uint8Array(part));\n this.size += part.byteLength;\n } else if (part instanceof Uint8Array) {\n this.parts.push(part);\n this.size += part.byteLength;\n } else if (ArrayBuffer.isView(part)) {\n const {buffer, byteOffset, byteLength} = part;\n this.parts.push(new Uint8Array(buffer, byteOffset, byteLength));\n this.size += byteLength;\n } else {\n const bytes = new TextEncoder().encode(String(part));\n this.parts.push(bytes);\n this.size += bytes.byteLength;\n }\n }\n\n /** @private */\n this.type = readType(options.type);\n }\n\n /**\n * Returns a new Blob object containing the data in the specified range of\n * bytes of the blob on which it's called.\n * @param start=0 - An index into the Blob indicating the first\n * byte to include in the new Blob. If you specify a negative value, it's\n * treated as an offset from the end of the Blob toward the beginning. For\n * example, `-10` would be the 10th from last byte in the Blob. The default\n * value is `0`. If you specify a value for start that is larger than the\n * size of the source Blob, the returned Blob has size 0 and contains no\n * data.\n * @param end - An index into the `Blob` indicating the first byte\n * that will *not* be included in the new `Blob` (i.e. the byte exactly at\n * this index is not included). If you specify a negative value, it's treated\n * as an offset from the end of the Blob toward the beginning. For example,\n * `-10` would be the 10th from last byte in the `Blob`. The default value is\n * size.\n * @param type - The content type to assign to the new Blob;\n * this will be the value of its type property. The default value is an empty\n * string.\n */\n slice(start: number = 0, end: number = this.size, type: string = ''): Blob {\n const {size, parts: parts} = this;\n let offset = start < 0 ? Math.max(size + start, 0) : Math.min(start, size);\n\n let limit = end < 0 ? Math.max(size + end, 0) : Math.min(end, size);\n const span = Math.max(limit - offset, 0);\n const blob = new BlobPolyfill([], {type});\n\n if (span === 0) {\n // @ts-ignore\n return blob;\n }\n\n let blobSize = 0;\n const blobParts: Uint8Array[] = [];\n for (const part of parts) {\n const {byteLength} = part;\n if (offset > 0 && byteLength <= offset) {\n offset -= byteLength;\n limit -= byteLength;\n } else {\n const chunk = part.subarray(offset, Math.min(byteLength, limit));\n blobParts.push(chunk);\n blobSize += chunk.byteLength;\n // no longer need to take that into account\n offset = 0;\n\n // don't add the overflow to new blobParts\n if (blobSize >= span) {\n break;\n }\n }\n }\n\n blob.parts = blobParts;\n blob.size = blobSize;\n\n // @ts-ignore\n return blob;\n }\n\n /**\n * Returns a promise that resolves with an ArrayBuffer containing the entire\n * contents of the Blob as binary data.\n */\n // eslint-disable-next-line require-await\n async arrayBuffer(): Promise<ArrayBuffer> {\n return this._toArrayBuffer();\n }\n\n /**\n * Returns a promise that resolves with a USVString containing the entire\n * contents of the Blob interpreted as UTF-8 text.\n */\n // eslint-disable-next-line require-await\n async text(): Promise<string> {\n const decoder = new TextDecoder();\n let text = '';\n for (const part of this.parts) {\n text += decoder.decode(part);\n }\n return text;\n }\n\n /**\n */\n // @ts-ignore\n stream(): BlobStream<any> {\n return new BlobStream<any>(this.parts);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return '[object Blob]';\n }\n\n get [Symbol.toStringTag]() {\n return 'Blob';\n }\n\n _toArrayBuffer(): ArrayBuffer {\n const buffer = new ArrayBuffer(this.size);\n const bytes = new Uint8Array(buffer);\n let offset = 0;\n for (const part of this.parts) {\n bytes.set(part, offset);\n offset += part.byteLength;\n }\n return buffer;\n }\n}\n\n/**\n */\nfunction readType(input: string = ''): string {\n const type = String(input).toLowerCase();\n return /[^\\u0020-\\u007E]/.test(type) ? '' : type;\n}\n"],"mappings":"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"}