@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
package/src/index.ts CHANGED
@@ -1,20 +1,29 @@
1
1
  /* eslint-disable dot-notation */
2
- import {isBrowser} from './utils/globals';
2
+ import {isBrowser} from './utils/is-browser';
3
3
 
4
- import {TextDecoder, TextEncoder} from './lib/encoding';
5
- import {allSettled} from './promise/all-settled';
4
+ import {TextDecoder, TextEncoder} from './text-encoder/text-encoder';
6
5
 
7
6
  // Node specific
8
- import * as base64 from './node/buffer/btoa.node';
7
+ import {atob, btoa} from './buffer/btoa.node';
9
8
 
10
- import {encodeImageNode} from './node/images/encode-image.node';
11
- import {parseImageNode, NODE_FORMAT_SUPPORT} from './node/images/parse-image.node';
9
+ import {encodeImageNode} from './images/encode-image-node';
10
+ import {parseImageNode, NODE_FORMAT_SUPPORT} from './images/parse-image-node';
12
11
 
13
- // export {ReadableStreamPolyfill} from './node/file/readable-stream';
14
- // export {BlobPolyfill} from './node/file/blob';
15
- export {FileReaderPolyfill} from './node/file/file-reader';
16
- export {FilePolyfill} from './node/file/file';
17
- export {installFilePolyfills} from './node/file/install-file-polyfills';
12
+ // FILESYSTEM POLYFILLS
13
+ import {NodeFile} from './filesystems/node-file';
14
+ import {NodeFileSystem} from './filesystems/node-filesystem';
15
+ import {fetchNode} from './filesystems/fetch-node';
16
+
17
+ // NODE VERSION
18
+ import {versions} from 'node:process';
19
+ export const nodeVersion = parseInt(versions.node.split('.')[0]);
20
+
21
+ // STREAM POLYFILLS
22
+ import {makeNodeStream} from './streams/make-node-stream';
23
+
24
+ // BLOB AND FILE POLYFILLS
25
+ export {Blob_ as Blob} from './file/install-blob-polyfills';
26
+ export {File_ as File} from './file/install-file-polyfills';
18
27
 
19
28
  if (isBrowser) {
20
29
  // eslint-disable-next-line no-console
@@ -23,6 +32,17 @@ if (isBrowser) {
23
32
  );
24
33
  }
25
34
 
35
+ globalThis.loaders = globalThis.loaders || {};
36
+
37
+ // STREAM POLYFILLS
38
+ export {makeNodeStream} from './streams/make-node-stream';
39
+ globalThis.loaders.makeNodeStream = makeNodeStream;
40
+
41
+ // FILESYSTEM POLYFILLS
42
+ globalThis.loaders.NodeFile = NodeFile;
43
+ globalThis.loaders.NodeFileSystem = NodeFileSystem;
44
+ globalThis.loaders.fetchNode = fetchNode;
45
+
26
46
  // POLYFILLS: TextEncoder, TextDecoder
27
47
  // - Recent Node versions have these classes but virtually no encodings unless special build.
28
48
  // - Browser: Edge, IE11 do not have these
@@ -41,58 +61,61 @@ if (!globalThis.TextDecoder) {
41
61
  // - Node: Yes
42
62
  // - Browser: No
43
63
 
44
- if (!isBrowser && !('atob' in globalThis) && base64.atob) {
45
- globalThis['atob'] = base64.atob;
64
+ if (!('atob' in globalThis) && atob) {
65
+ globalThis['atob'] = atob;
46
66
  }
47
- if (!isBrowser && !('btoa' in globalThis) && base64.btoa) {
48
- globalThis['btoa'] = base64.btoa;
67
+ if (!('btoa' in globalThis) && btoa) {
68
+ globalThis['btoa'] = btoa;
49
69
  }
50
70
 
51
- globalThis.loaders = globalThis.loaders || {};
52
-
53
- // FILESYSTEM POLYFILLS:
54
- export {NodeFileSystem} from './filesystems/node-filesystem';
55
- import {NodeFileSystem} from './filesystems/node-filesystem';
56
- globalThis.loaders.NodeFileSystem = NodeFileSystem;
57
-
58
71
  // NODE IMAGE FUNCTIONS:
59
72
  // These are not official polyfills but used by the @loaders.gl/images module if installed
60
73
  // TODO - is there an appropriate Image API we could polyfill using an adapter?
61
74
 
62
- if (!isBrowser && !('_encodeImageNode' in globalThis) && encodeImageNode) {
63
- globalThis['_encodeImageNode'] = encodeImageNode;
64
- }
75
+ globalThis.loaders.encodeImageNode = encodeImageNode;
76
+ globalThis.loaders.parseImageNode = parseImageNode;
77
+ globalThis.loaders.imageFormatsNode = NODE_FORMAT_SUPPORT;
65
78
 
66
- if (!isBrowser && !('_parseImageNode' in globalThis) && parseImageNode) {
67
- globalThis['_parseImageNode'] = parseImageNode;
68
- globalThis['_imageFormatsNode'] = NODE_FORMAT_SUPPORT;
69
- }
79
+ // Deprecated, remove after republish
80
+ globalThis._parseImageNode = parseImageNode;
81
+ globalThis._imageFormatsNode = NODE_FORMAT_SUPPORT;
70
82
 
71
- if (!('allSettled' in Promise)) {
72
- // @ts-ignore
73
- Promise.allSettled = allSettled;
74
- }
83
+ // LOAD LIBRARY
84
+
85
+ import {
86
+ readFileAsArrayBuffer,
87
+ readFileAsText,
88
+ requireFromFile,
89
+ requireFromString
90
+ } from './load-library/require-utils.node';
91
+
92
+ globalThis.loaders.readFileAsArrayBuffer = readFileAsArrayBuffer;
93
+ globalThis.loaders.readFileAsText = readFileAsText;
94
+ globalThis.loaders.requireFromFile = requireFromFile;
95
+ globalThis.loaders.requireFromString = requireFromString;
75
96
 
76
97
  // DEPRECATED POLYFILL:
77
98
  // - Node v18+: No, not needed
78
99
  // - Node v16 and lower: Yes
79
100
  // - Browsers (evergreen): Not needed.
80
101
  // - IE11: No. This polyfill is node only, install external polyfill
81
- import {Headers as HeadersNode} from './node/fetch/headers.node';
82
- import {Response as ResponseNode} from './node/fetch/response.node';
83
- import {fetchNode as fetchNode} from './node/fetch/fetch.node';
84
-
85
- if (!isBrowser && !('Headers' in globalThis) && HeadersNode) {
86
- // @ts-expect-error
87
- globalThis.Headers = HeadersNode;
88
- }
89
-
90
- if (!isBrowser && !('Response' in globalThis) && ResponseNode) {
91
- // @ts-expect-error
92
- globalThis.Response = ResponseNode;
93
- }
94
-
95
- if (!isBrowser && !('fetch' in globalThis) && fetchNode) {
96
- // @ts-expect-error
97
- globalThis.fetch = fetchNode;
102
+ import {Headers as HeadersNode} from './fetch/headers-polyfill';
103
+ import {Response as ResponseNode} from './fetch/response-polyfill';
104
+ import {fetchNode as fetchNodePolyfill} from './fetch/fetch-polyfill';
105
+
106
+ if (nodeVersion < 18) {
107
+ if (!('Headers' in globalThis) && HeadersNode) {
108
+ // @ts-ignore
109
+ globalThis.Headers = HeadersNode;
110
+ }
111
+
112
+ if (!('Response' in globalThis) && ResponseNode) {
113
+ // @ts-ignore
114
+ globalThis.Response = ResponseNode;
115
+ }
116
+
117
+ if (!('fetch' in globalThis) && fetchNodePolyfill) {
118
+ // @ts-ignore
119
+ globalThis.fetch = fetchNodePolyfill;
120
+ }
98
121
  }
@@ -0,0 +1,101 @@
1
+ // Fork of https://github.com/floatdrop/require-from-string/blob/master/index.js
2
+ // Copyright (c) Vsevolod Strukchinsky <floatdrop@gmail.com> (github.com/floatdrop)
3
+ // MIT license
4
+
5
+ // this file is not visible to webpack (it is excluded in the package.json "browser" field).
6
+
7
+ import Module from 'module';
8
+ import path from 'path';
9
+ import fs from 'fs';
10
+
11
+ /**
12
+ * Load a file from local file system
13
+ * @param filename
14
+ * @returns
15
+ */
16
+ export async function readFileAsArrayBuffer(filename: string): Promise<ArrayBuffer> {
17
+ if (filename.startsWith('http')) {
18
+ const response = await fetch(filename);
19
+ return await response.arrayBuffer();
20
+ }
21
+ const buffer = fs.readFileSync(filename);
22
+ return buffer.buffer;
23
+ }
24
+
25
+ /**
26
+ * Load a file from local file system
27
+ * @param filename
28
+ * @returns
29
+ */
30
+ export async function readFileAsText(filename: string): Promise<string> {
31
+ if (filename.startsWith('http')) {
32
+ const response = await fetch(filename);
33
+ return await response.text();
34
+ }
35
+ const text = fs.readFileSync(filename, 'utf8');
36
+ return text;
37
+ }
38
+
39
+ // Node.js Dynamically require from file
40
+ // Relative names are resolved relative to cwd
41
+ // This indirect function is provided because webpack will try to bundle `module.require`.
42
+ // this file is not visible to webpack (it is excluded in the package.json "browser" field).
43
+ export async function requireFromFile(filename: string): Promise<any> {
44
+ if (filename.startsWith('http')) {
45
+ const response = await fetch(filename);
46
+ const code = await response.text();
47
+ return requireFromString(code);
48
+ }
49
+
50
+ if (!filename.startsWith('/')) {
51
+ filename = `${process.cwd()}/${filename}`;
52
+ }
53
+ const code = await fs.readFileSync(filename, 'utf8');
54
+ return requireFromString(code);
55
+ }
56
+
57
+ // Dynamically require from string
58
+ // - `code` - Required - Type: string - Module code.
59
+ // - `filename` - Type: string - Default: '' - Optional filename.
60
+ // - `options.appendPaths` Type: Array List of paths, that will be appended to module paths.
61
+ // Useful, when you want to be able require modules from these paths.
62
+ // - `options.prependPaths` Type: Array Same as appendPaths, but paths will be prepended.
63
+ export function requireFromString(
64
+ code: string,
65
+ filename = '',
66
+ options?: {
67
+ prependPaths?: string[];
68
+ appendPaths?: string[];
69
+ }
70
+ ): any {
71
+ if (typeof filename === 'object') {
72
+ options = filename;
73
+ filename = '';
74
+ }
75
+ filename = filename.replace('file://', '');
76
+
77
+ if (typeof code !== 'string') {
78
+ throw new Error(`code must be a string, not ${typeof code}`);
79
+ }
80
+
81
+ // @ts-ignore
82
+ const paths = Module._nodeModulePaths(path.dirname(filename));
83
+
84
+ const parent = typeof module !== 'undefined' && module?.parent;
85
+
86
+ // @ts-ignore
87
+ const newModule = new Module(filename, parent);
88
+ newModule.filename = filename;
89
+ newModule.paths = ([] as string[])
90
+ .concat(options?.prependPaths || [])
91
+ .concat(paths)
92
+ .concat(options?.appendPaths || []);
93
+ // @ts-ignore
94
+ newModule._compile(code, filename);
95
+
96
+ if (parent && parent.children) {
97
+ parent.children.splice(parent.children.indexOf(newModule), 1);
98
+ }
99
+
100
+ return newModule.exports;
101
+ }
@@ -0,0 +1,74 @@
1
+ import type {ReadableOptions} from 'stream';
2
+ import * as Stream from 'stream';
3
+
4
+ class _Readable {}
5
+
6
+ type ReadableType = Stream.Readable | _Readable;
7
+ const Readable = Stream.Readable || _Readable;
8
+
9
+ export type MakeStreamOptions = ReadableOptions;
10
+
11
+ /** Builds a node stream from an iterator */
12
+ export function makeNodeStream<ArrayBuffer>(
13
+ source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,
14
+ options?: ReadableOptions
15
+ ): ReadableType {
16
+ // @ts-ignore AsyncGenerator
17
+ const iterator = source[Symbol.asyncIterator]
18
+ ? // @ts-ignore AsyncGenerator
19
+ source[Symbol.asyncIterator]()
20
+ : // @ts-ignore AsyncGenerator
21
+ source[Symbol.iterator]();
22
+ return new AsyncIterableReadable(iterator, options);
23
+ }
24
+
25
+ class AsyncIterableReadable extends Readable {
26
+ private _pulling: boolean;
27
+ private _bytesMode: boolean;
28
+ private _iterator: AsyncIterator<ArrayBuffer>;
29
+
30
+ constructor(it: AsyncIterator<ArrayBuffer>, options?: ReadableOptions) {
31
+ super(options);
32
+ this._iterator = it;
33
+ this._pulling = false;
34
+ this._bytesMode = !options || !options.objectMode;
35
+ }
36
+
37
+ async _read(size: number): Promise<void> {
38
+ if (!this._pulling) {
39
+ this._pulling = true;
40
+ this._pulling = await this._pull(size, this._iterator);
41
+ }
42
+ }
43
+
44
+ async _destroy(error: Error | null, cb: (e: Error | null) => void): Promise<void> {
45
+ if (!this._iterator) {
46
+ return;
47
+ }
48
+ if (error) {
49
+ await this._iterator?.throw?.(error);
50
+ } else {
51
+ await this._iterator?.return?.(error);
52
+ }
53
+ cb?.(null);
54
+ }
55
+
56
+ // eslint-disable-next-line complexity
57
+ private async _pull(size: number, it: AsyncIterator<ArrayBuffer>): Promise<boolean> {
58
+ const bm = this._bytesMode;
59
+ let r: IteratorResult<ArrayBuffer> | null = null;
60
+ // while (this.readable && !(r = await it.next(bm ? size : null)).done) {
61
+ while (this.readable && !(r = await it.next()).done) {
62
+ if (size !== null) {
63
+ size -= bm && ArrayBuffer.isView(r.value) ? r.value.byteLength : 1;
64
+ }
65
+ if (!this.push(new Uint8Array(r.value)) || size <= 0) {
66
+ break;
67
+ }
68
+ }
69
+ if ((r?.done || !this.readable) && (this.push(null) || true)) {
70
+ it?.return?.();
71
+ }
72
+ return !this.readable;
73
+ }
74
+ }
@@ -8,7 +8,7 @@
8
8
  import indexes from './encoding-indexes';
9
9
  // Note: Aaian character indices add half a megabyte to bundle. Ignore, since we really only want the built-in UTF8...
10
10
  // import indexes from './encoding-indexes-asian.js';
11
- global['encoding-indexes'] = indexes || {};
11
+ globalThis['encoding-indexes'] = indexes || {};
12
12
 
13
13
  //
14
14
  // Utilities
@@ -720,10 +720,10 @@ function indexPointerFor(code_point, index) {
720
720
  * @return {(!Array.<number>|!Array.<Array.<number>>)}
721
721
  * */
722
722
  function index(name) {
723
- if (!('encoding-indexes' in global)) {
723
+ if (!('encoding-indexes' in globalThis)) {
724
724
  throw Error('Indexes missing.' + ' Did you forget to include encoding-indexes.js first?');
725
725
  }
726
- return global['encoding-indexes'][name];
726
+ return globalThis['encoding-indexes'][name];
727
727
  }
728
728
 
729
729
  /**
@@ -1121,7 +1121,7 @@ function TextEncoder(label, options) {
1121
1121
  // Standard behavior.
1122
1122
  enc._encoding = getEncoding('utf-8');
1123
1123
 
1124
- if (label !== undefined && 'console' in global) {
1124
+ if (label !== undefined && 'console' in globalThis) {
1125
1125
  console.warn('TextEncoder constructor called with encoding label, ' + 'which is ignored.');
1126
1126
  }
1127
1127
  }
@@ -1483,7 +1483,7 @@ function SingleByteEncoder(index, options) {
1483
1483
  }
1484
1484
 
1485
1485
  (function () {
1486
- if (!('encoding-indexes' in global)) return;
1486
+ if (!('encoding-indexes' in globalThis)) return;
1487
1487
  encodings.forEach(function (category) {
1488
1488
  if (category.heading !== 'Legacy single-byte encodings') return;
1489
1489
  category.encodings.forEach(function (encoding) {
@@ -3077,8 +3077,8 @@ decoders['x-user-defined'] = function (options) {
3077
3077
  };
3078
3078
 
3079
3079
  // FORK
3080
- // if (!global['TextEncoder']) global['TextEncoder'] = TextEncoder;
3081
- // if (!global['TextDecoder']) global['TextDecoder'] = TextDecoder;
3080
+ // if (!globalThis['TextEncoder']) globalThis['TextEncoder'] = TextEncoder;
3081
+ // if (!globalThis['TextDecoder']) globalThis['TextDecoder'] = TextDecoder;
3082
3082
  // babel.config.js skip transpiling files in `libs/`
3083
3083
  // module.exports = {TextEncoder, TextDecoder};
3084
3084
  export {TextEncoder, TextDecoder};
@@ -0,0 +1,6 @@
1
+ // loaders.gl, MIT license
2
+
3
+ /* eslint-disable no-restricted-globals */
4
+ export const isBrowser: boolean =
5
+ // @ts-ignore process.browser
6
+ typeof process !== 'object' || String(process) !== '[object process]' || process.browser;
package/dist/bundle.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare const moduleExports: any;
2
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
package/dist/dist.min.js DELETED
@@ -1,63 +0,0 @@
1
- (() => {
2
- var __defProp = Object.defineProperty;
3
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
4
- var __esm = (fn, res) => function __init() {
5
- return fn && (res = (0, fn[Object.keys(fn)[0]])(fn = 0)), res;
6
- };
7
- var __commonJS = (cb, mod) => function __require() {
8
- return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
- };
10
- var __export = (target, all) => {
11
- __markAsModule(target);
12
- for (var name in all)
13
- __defProp(target, name, { get: all[name], enumerable: true });
14
- };
15
-
16
- // src/promise/all-settled.ts
17
- function allSettled(promises) {
18
- const mappedPromises = promises.map((promise) => {
19
- return promise.then((value) => {
20
- return { status: FULFILLED_STATUS, value };
21
- }).catch((reason) => {
22
- return { status: REJECTED_STATUS, reason };
23
- });
24
- });
25
- return Promise.all(mappedPromises);
26
- }
27
- var REJECTED_STATUS, FULFILLED_STATUS;
28
- var init_all_settled = __esm({
29
- "src/promise/all-settled.ts"() {
30
- REJECTED_STATUS = "rejected";
31
- FULFILLED_STATUS = "fulfilled";
32
- }
33
- });
34
-
35
- // src/index.browser.ts
36
- var index_browser_exports = {};
37
- __export(index_browser_exports, {
38
- NodeFileSystem: () => NodeFileSystem,
39
- installFilePolyfills: () => installFilePolyfills
40
- });
41
- function installFilePolyfills() {
42
- }
43
- var NodeFileSystem;
44
- var init_index_browser = __esm({
45
- "src/index.browser.ts"() {
46
- init_all_settled();
47
- if (!("allSettled" in Promise)) {
48
- Promise.allSettled = allSettled;
49
- }
50
- NodeFileSystem = null;
51
- }
52
- });
53
-
54
- // src/bundle.ts
55
- var require_bundle = __commonJS({
56
- "src/bundle.ts"(exports, module) {
57
- var moduleExports = (init_index_browser(), index_browser_exports);
58
- globalThis.loaders = globalThis.loaders || {};
59
- module.exports = Object.assign(globalThis.loaders, moduleExports);
60
- }
61
- });
62
- require_bundle();
63
- })();
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- var moduleExports = require('./index');
4
- globalThis.loaders = globalThis.loaders || {};
5
- module.exports = Object.assign(globalThis.loaders, moduleExports);
6
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}