@loaders.gl/loader-utils 3.3.0 → 3.4.0-alpha.1

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 (119) hide show
  1. package/dist/es5/index.js +22 -36
  2. package/dist/es5/index.js.map +1 -1
  3. package/dist/es5/json-loader.js +1 -1
  4. package/dist/es5/json-loader.js.map +1 -1
  5. package/dist/es5/lib/binary-utils/array-buffer-utils.js +30 -0
  6. package/dist/es5/lib/binary-utils/array-buffer-utils.js.map +1 -1
  7. package/dist/es5/lib/binary-utils/{dataview-copy-utils.js → binary-copy-utils.js} +1 -33
  8. package/dist/es5/lib/binary-utils/binary-copy-utils.js.map +1 -0
  9. package/dist/es5/lib/binary-utils/{memory-conversion-utils.js → buffer-utils.js} +7 -26
  10. package/dist/es5/lib/binary-utils/buffer-utils.js.map +1 -0
  11. package/dist/es5/lib/binary-utils/encode-utils.js +36 -0
  12. package/dist/es5/lib/binary-utils/encode-utils.js.map +1 -0
  13. package/dist/es5/lib/binary-utils/get-first-characters.js +0 -2
  14. package/dist/es5/lib/binary-utils/get-first-characters.js.map +1 -1
  15. package/dist/es5/lib/node/buffer.js +8 -5
  16. package/dist/es5/lib/node/buffer.js.map +1 -1
  17. package/dist/es5/lib/node/fs.js +9 -18
  18. package/dist/es5/lib/node/fs.js.map +1 -1
  19. package/dist/es5/lib/node/util.js +7 -31
  20. package/dist/es5/lib/node/util.js.map +1 -1
  21. package/dist/esm/index.js +9 -11
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/json-loader.js +1 -1
  24. package/dist/esm/json-loader.js.map +1 -1
  25. package/dist/esm/lib/binary-utils/array-buffer-utils.js +27 -0
  26. package/dist/esm/lib/binary-utils/array-buffer-utils.js.map +1 -1
  27. package/dist/esm/lib/binary-utils/{dataview-copy-utils.js → binary-copy-utils.js} +1 -31
  28. package/dist/esm/lib/binary-utils/binary-copy-utils.js.map +1 -0
  29. package/dist/esm/lib/binary-utils/buffer-utils.js +18 -0
  30. package/dist/esm/lib/binary-utils/buffer-utils.js.map +1 -0
  31. package/dist/esm/lib/binary-utils/encode-utils.js +29 -0
  32. package/dist/esm/lib/binary-utils/encode-utils.js.map +1 -0
  33. package/dist/esm/lib/binary-utils/get-first-characters.js +0 -3
  34. package/dist/esm/lib/binary-utils/get-first-characters.js.map +1 -1
  35. package/dist/esm/lib/node/buffer.js +9 -5
  36. package/dist/esm/lib/node/buffer.js.map +1 -1
  37. package/dist/esm/lib/node/fs.js +9 -11
  38. package/dist/esm/lib/node/fs.js.map +1 -1
  39. package/dist/esm/lib/node/util.js +2 -10
  40. package/dist/esm/lib/node/util.js.map +1 -1
  41. package/dist/index.d.ts +7 -10
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +23 -25
  44. package/dist/lib/binary-utils/array-buffer-utils.d.ts +8 -4
  45. package/dist/lib/binary-utils/array-buffer-utils.d.ts.map +1 -1
  46. package/dist/lib/binary-utils/array-buffer-utils.js +36 -5
  47. package/dist/lib/binary-utils/binary-copy-utils.d.ts +24 -0
  48. package/dist/lib/binary-utils/binary-copy-utils.d.ts.map +1 -0
  49. package/dist/lib/binary-utils/{dataview-copy-utils.js → binary-copy-utils.js} +5 -51
  50. package/dist/lib/binary-utils/{memory-conversion-utils.d.ts → buffer-utils.d.ts} +4 -3
  51. package/dist/lib/binary-utils/buffer-utils.d.ts.map +1 -0
  52. package/dist/lib/binary-utils/{memory-conversion-utils.js → buffer-utils.js} +9 -28
  53. package/dist/lib/binary-utils/encode-utils.d.ts +4 -0
  54. package/dist/lib/binary-utils/encode-utils.d.ts.map +1 -0
  55. package/dist/lib/binary-utils/encode-utils.js +35 -0
  56. package/dist/lib/binary-utils/get-first-characters.d.ts +1 -15
  57. package/dist/lib/binary-utils/get-first-characters.d.ts.map +1 -1
  58. package/dist/lib/binary-utils/get-first-characters.js +0 -15
  59. package/dist/lib/node/buffer.d.ts +1 -3
  60. package/dist/lib/node/buffer.d.ts.map +1 -1
  61. package/dist/lib/node/buffer.js +8 -7
  62. package/dist/lib/node/fs.d.ts +2 -4
  63. package/dist/lib/node/fs.d.ts.map +1 -1
  64. package/dist/lib/node/fs.js +9 -10
  65. package/dist/lib/node/util.d.ts +3 -11
  66. package/dist/lib/node/util.d.ts.map +1 -1
  67. package/dist/lib/node/util.js +27 -20
  68. package/dist/lib/worker-loader-utils/create-loader-worker.js +1 -1
  69. package/package.json +4 -5
  70. package/src/index.ts +18 -22
  71. package/src/lib/binary-utils/array-buffer-utils.ts +40 -4
  72. package/src/lib/binary-utils/{dataview-copy-utils.ts → binary-copy-utils.ts} +5 -57
  73. package/src/lib/binary-utils/buffer-utils.ts +28 -0
  74. package/src/lib/binary-utils/encode-utils.ts +32 -0
  75. package/src/lib/binary-utils/get-first-characters.ts +1 -17
  76. package/src/lib/node/buffer.ts +10 -9
  77. package/src/lib/node/fs.ts +11 -16
  78. package/src/lib/node/util.ts +2 -68
  79. package/dist/es5/lib/binary-utils/dataview-copy-utils.js.map +0 -1
  80. package/dist/es5/lib/binary-utils/memory-conversion-utils.js.map +0 -1
  81. package/dist/es5/lib/filesystems/readable-file.js +0 -100
  82. package/dist/es5/lib/filesystems/readable-file.js.map +0 -1
  83. package/dist/es5/lib/filesystems/writable-file.js +0 -89
  84. package/dist/es5/lib/filesystems/writable-file.js.map +0 -1
  85. package/dist/es5/lib/loader-utils/buffer-utils.js +0 -19
  86. package/dist/es5/lib/loader-utils/buffer-utils.js.map +0 -1
  87. package/dist/es5/lib/node/stream.js +0 -20
  88. package/dist/es5/lib/node/stream.js.map +0 -1
  89. package/dist/esm/lib/binary-utils/dataview-copy-utils.js.map +0 -1
  90. package/dist/esm/lib/binary-utils/memory-conversion-utils.js +0 -38
  91. package/dist/esm/lib/binary-utils/memory-conversion-utils.js.map +0 -1
  92. package/dist/esm/lib/filesystems/readable-file.js +0 -22
  93. package/dist/esm/lib/filesystems/readable-file.js.map +0 -1
  94. package/dist/esm/lib/filesystems/writable-file.js +0 -21
  95. package/dist/esm/lib/filesystems/writable-file.js.map +0 -1
  96. package/dist/esm/lib/loader-utils/buffer-utils.js +0 -13
  97. package/dist/esm/lib/loader-utils/buffer-utils.js.map +0 -1
  98. package/dist/esm/lib/node/stream.js +0 -11
  99. package/dist/esm/lib/node/stream.js.map +0 -1
  100. package/dist/lib/binary-utils/dataview-copy-utils.d.ts +0 -43
  101. package/dist/lib/binary-utils/dataview-copy-utils.d.ts.map +0 -1
  102. package/dist/lib/binary-utils/memory-conversion-utils.d.ts.map +0 -1
  103. package/dist/lib/filesystems/readable-file.d.ts +0 -10
  104. package/dist/lib/filesystems/readable-file.d.ts.map +0 -1
  105. package/dist/lib/filesystems/readable-file.js +0 -25
  106. package/dist/lib/filesystems/writable-file.d.ts +0 -18
  107. package/dist/lib/filesystems/writable-file.d.ts.map +0 -1
  108. package/dist/lib/filesystems/writable-file.js +0 -48
  109. package/dist/lib/loader-utils/buffer-utils.d.ts +0 -10
  110. package/dist/lib/loader-utils/buffer-utils.d.ts.map +0 -1
  111. package/dist/lib/loader-utils/buffer-utils.js +0 -22
  112. package/dist/lib/node/stream.d.ts +0 -4
  113. package/dist/lib/node/stream.d.ts.map +0 -1
  114. package/dist/lib/node/stream.js +0 -17
  115. package/src/lib/binary-utils/memory-conversion-utils.ts +0 -53
  116. package/src/lib/filesystems/readable-file.ts +0 -30
  117. package/src/lib/filesystems/writable-file.ts +0 -44
  118. package/src/lib/loader-utils/buffer-utils.ts +0 -18
  119. package/src/lib/node/stream.ts +0 -18
@@ -1,37 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.promisify1 = promisify1;
7
- exports.promisify2 = promisify2;
8
- exports.promisify3 = promisify3;
9
-
10
- function promisify1(fn) {
11
- return function (args) {
12
- return new Promise(function (resolve, reject) {
13
- return fn(args, function (error, callbackArgs) {
14
- return error ? reject(error) : resolve(callbackArgs);
15
- });
16
- });
17
- };
18
- }
19
- function promisify2(fn) {
20
- return function (arg1, arg2) {
21
- return new Promise(function (resolve, reject) {
22
- return fn(arg1, arg2, function (error, callbackArgs) {
23
- return error ? reject(error) : resolve(callbackArgs);
24
- });
25
- });
26
- };
27
- }
28
- function promisify3(fn) {
29
- return function (arg1, arg2, arg3) {
30
- return new Promise(function (resolve, reject) {
31
- return fn(arg1, arg2, arg3, function (error, callbackArgs) {
32
- return error ? reject(error) : resolve(callbackArgs);
33
- });
34
- });
35
- };
36
- }
7
+ exports.promisify = void 0;
8
+ var util = _interopRequireWildcard(require("util"));
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ var promisify = util.promisify;
12
+ exports.promisify = promisify;
37
13
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","names":["promisify1","fn","args","Promise","resolve","reject","error","callbackArgs","promisify2","arg1","arg2","promisify3","arg3"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["// @loaders.gl, MIT license\n\n// type Parameter1<T extends (arg1: any, ...args: unknown[]) => unknown> = T extends (\n// arg1: infer P,\n// ...args: unknown[]\n// ) => unknown\n// ? P\n// : never;\n\n// type Parameter2<T extends (arg1: unknown, arg2: any, ...args: unknown[]) => unknown> = T extends (\n// arg1: unknown,\n// arg2: infer P,\n// ...args: unknown[]\n// ) => unknown\n// ? P\n// : never;\n\n// type CallbackParameter2<\n// T extends (arg: unknown, cb: (error: any, value: any) => void) => unknown\n// > = T extends (arg: unknown, cb: (error: any, value: infer P) => void) => unknown ? P : never;\n\n// type CallbackParameter3<\n// T extends (arg: unknown, arg2: unknown, cb: (error: any, value: any) => void) => unknown\n// > = T extends (arg: unknown, arg2: unknown, cb: (error: any, value: infer P) => void) => unknown\n// ? P\n// : never;\n\n// /** Extract the parameters of a function type in a tuple */\n// export type Promisified<F extends (arg1, cb: (error: unknown, value: any) => void) => any> = (\n// arg1: Parameter1<F>\n// ) => Promise<CallbackParameter2<F>>;\n// /** Extract the parameters of a function type in a tuple */\n// export type Promisified2<F extends (arg1, arg2, cb: (error: unknown, value: any) => void) => any> = (\n// arg1: Parameter1<F>,\n// arg2: Parameter2<F>\n// ) => Promise<CallbackParameter3<F>>;\n\n/** Wrapper for Node.js promisify */\ntype Callback<A> = (error: unknown, args: A) => void;\n\n/**\n * Typesafe promisify implementation\n * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34\n * @param fn\n * @returns\n */\nexport function promisify1<T, A>(fn: (args: T, cb: Callback<A>) => void): (args: T) => Promise<A> {\n return (args: T) =>\n new Promise((resolve, reject) =>\n fn(args, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs)))\n );\n}\n\nexport function promisify2<T1, T2, A>(\n fn: (arg1: T1, arg2: T2, cb: Callback<A>) => void\n): (arg1: T1, arg2: T2) => Promise<A> {\n return (arg1: T1, arg2: T2) =>\n new Promise((resolve, reject) =>\n fn(arg1, arg2, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs)))\n );\n}\n\nexport function promisify3<T1, T2, T3, A>(\n fn: (arg1: T1, arg2: T2, arg3: T3, cb: Callback<A>) => void\n): (arg1: T1, arg2: T2, arg3: T3) => Promise<A> {\n return (arg1: T1, arg2: T2, arg3: T3) =>\n new Promise((resolve, reject) =>\n fn(arg1, arg2, arg3, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs)))\n );\n}\n"],"mappings":";;;;;;;;;AA8CO,SAASA,UAAU,CAAOC,EAAsC,EAA2B;EAChG,OAAO,UAACC,IAAO;IAAA,OACb,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM;MAAA,OAC1BJ,EAAE,CAACC,IAAI,EAAE,UAACI,KAAK,EAAEC,YAAY;QAAA,OAAMD,KAAK,GAAGD,MAAM,CAACC,KAAK,CAAC,GAAGF,OAAO,CAACG,YAAY,CAAC;MAAA,CAAC,CAAC;IAAA,EACnF;EAAA;AACL;AAEO,SAASC,UAAU,CACxBP,EAAiD,EACb;EACpC,OAAO,UAACQ,IAAQ,EAAEC,IAAQ;IAAA,OACxB,IAAIP,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM;MAAA,OAC1BJ,EAAE,CAACQ,IAAI,EAAEC,IAAI,EAAE,UAACJ,KAAK,EAAEC,YAAY;QAAA,OAAMD,KAAK,GAAGD,MAAM,CAACC,KAAK,CAAC,GAAGF,OAAO,CAACG,YAAY,CAAC;MAAA,CAAC,CAAC;IAAA,EACzF;EAAA;AACL;AAEO,SAASI,UAAU,CACxBV,EAA2D,EACb;EAC9C,OAAO,UAACQ,IAAQ,EAAEC,IAAQ,EAAEE,IAAQ;IAAA,OAClC,IAAIT,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM;MAAA,OAC1BJ,EAAE,CAACQ,IAAI,EAAEC,IAAI,EAAEE,IAAI,EAAE,UAACN,KAAK,EAAEC,YAAY;QAAA,OAAMD,KAAK,GAAGD,MAAM,CAACC,KAAK,CAAC,GAAGF,OAAO,CAACG,YAAY,CAAC;MAAA,CAAC,CAAC;IAAA,EAC/F;EAAA;AACL"}
1
+ {"version":3,"file":"util.js","names":["promisify","util"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["import * as util from 'util';\n\n/** Wrapper for Node.js promisify */\nexport const promisify = util.promisify;\n"],"mappings":";;;;;;;AAAA;AAA6B;AAAA;AAGtB,IAAMA,SAAS,GAAGC,IAAI,CAACD,SAAS;AAAC"}
package/dist/esm/index.js CHANGED
@@ -9,9 +9,10 @@ export { canEncodeWithWorker } from './lib/worker-loader-utils/encode-with-worke
9
9
 
10
10
  export { parseJSON } from './lib/parser-utils/parse-json';
11
11
 
12
- export { sliceArrayBuffer, concatenateArrayBuffers, concatenateTypedArrays, compareArrayBuffers } from './lib/binary-utils/array-buffer-utils';
12
+ export { toArrayBuffer, sliceArrayBuffer, concatenateArrayBuffers, concatenateTypedArrays, compareArrayBuffers } from './lib/binary-utils/array-buffer-utils';
13
13
  export { padToNBytes, copyToArray, copyArrayBuffer } from './lib/binary-utils/memory-copy-utils';
14
- export { padStringToByteAlignment, copyStringToDataView, copyBinaryToDataView, copyPaddedArrayBufferToDataView, copyPaddedStringToDataView } from './lib/binary-utils/dataview-copy-utils';
14
+ export { copyPaddedArrayBufferToDataView, copyPaddedStringToDataView } from './lib/binary-utils/binary-copy-utils';
15
+ export { padStringToByteAlignment, copyStringToDataView, copyBinaryToDataView } from './lib/binary-utils/encode-utils';
15
16
  export { getFirstCharacters, getMagicString } from './lib/binary-utils/get-first-characters';
16
17
 
17
18
  export { makeTextEncoderIterator, makeTextDecoderIterator, makeLineIterator, makeNumberedLineIterator } from './lib/iterators/text-iterators';
@@ -24,20 +25,17 @@ export { addAliases as _addAliases } from './lib/path-utils/file-aliases';
24
25
 
25
26
  export { JSONLoader } from './json-loader';
26
27
 
27
- export { isBuffer, toBuffer, toArrayBuffer } from './lib/binary-utils/memory-conversion-utils';
28
-
29
- export { promisify1, promisify2 } from './lib/node/util';
30
-
31
28
  import * as path from './lib/path-utils/path';
32
29
  export { path };
33
30
 
31
+ export { isBuffer, toBuffer, bufferToArrayBuffer } from './lib/binary-utils/buffer-utils';
32
+
33
+ import * as util from './lib/node/util';
34
+ export { util };
35
+ export { promisify } from './lib/node/util';
36
+
34
37
  import * as fs from './lib/node/fs';
35
38
  export { fs };
36
39
 
37
- import * as stream from './lib/node/stream';
38
- export { stream };
39
-
40
- export { makeReadableFile } from './lib/filesystems/readable-file';
41
- export { makeWritableFile } from './lib/filesystems/writable-file';
42
40
  export { default as _NodeFileSystem } from './lib/filesystems/node-filesystem';
43
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["assert","isBrowser","isWorker","nodeVersion","self","window","global","document","createLoaderWorker","parseWithWorker","canParseWithWorker","canEncodeWithWorker","parseJSON","sliceArrayBuffer","concatenateArrayBuffers","concatenateTypedArrays","compareArrayBuffers","padToNBytes","copyToArray","copyArrayBuffer","padStringToByteAlignment","copyStringToDataView","copyBinaryToDataView","copyPaddedArrayBufferToDataView","copyPaddedStringToDataView","getFirstCharacters","getMagicString","makeTextEncoderIterator","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","forEach","concatenateArrayBuffersAsync","default","RequestScheduler","setPathPrefix","getPathPrefix","resolvePath","addAliases","_addAliases","JSONLoader","isBuffer","toBuffer","toArrayBuffer","promisify1","promisify2","path","fs","stream","makeReadableFile","makeWritableFile","_NodeFileSystem"],"sources":["../../src/index.ts"],"sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView,\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/dataview-copy-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, toArrayBuffer} from './lib/binary-utils/memory-conversion-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util' to avoid node dependencies\nexport {promisify1, promisify2} from './lib/node/util';\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Use instead of importing 'fs' to avoid node dependencies`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// Use instead of importing 'stream' to avoid node dependencies`\nimport * as stream from './lib/node/stream';\nexport {stream};\n\n// EXPERIMENTAL\nexport type {ReadableFile} from './lib/filesystems/readable-file';\nexport {makeReadableFile} from './lib/filesystems/readable-file';\n\nexport type {WritableFile} from './lib/filesystems/writable-file';\nexport {makeWritableFile} from './lib/filesystems/writable-file';\n\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"mappings":";;AAgBA,SAAQA,MAAM,QAAO,wBAAwB;AAC7C,SACEC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,QACH,yBAAyB;;AAGhC,SAAQC,kBAAkB,QAAO,gDAAgD;AACjF,SAAQC,eAAe,EAAEC,kBAAkB,QAAO,6CAA6C;AAC/F,SAAQC,mBAAmB,QAAO,8CAA8C;;AAGhF,SAAQC,SAAS,QAAO,+BAA+B;;AAGvD,SACEC,gBAAgB,EAChBC,uBAAuB,EACvBC,sBAAsB,EACtBC,mBAAmB,QACd,uCAAuC;AAC9C,SAAQC,WAAW,EAAEC,WAAW,EAAEC,eAAe,QAAO,sCAAsC;AAC9F,SACEC,wBAAwB,EACxBC,oBAAoB,EACpBC,oBAAoB,EACpBC,+BAA+B,EAC/BC,0BAA0B,QACrB,wCAAwC;AAC/C,SAAQC,kBAAkB,EAAEC,cAAc,QAAO,yCAAyC;;AAG1F,SACEC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAgB,EAChBC,wBAAwB,QACnB,gCAAgC;AACvC,SAAQC,OAAO,EAAEC,4BAA4B,QAAO,iCAAiC;;AAGrF,SAAQC,OAAO,IAAIC,gBAAgB,QAAO,uCAAuC;;AAGjF,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,+BAA+B;AACvF,SAAQC,UAAU,IAAIC,WAAW,QAAO,+BAA+B;;AAGvE,SAAQC,UAAU,QAAO,eAAe;;AAOxC,SAAQC,QAAQ,EAAEC,QAAQ,EAAEC,aAAa,QAAO,4CAA4C;;AAK5F,SAAQC,UAAU,EAAEC,UAAU,QAAO,iBAAiB;;AAGtD,OAAO,KAAKC,IAAI,MAAM,uBAAuB;AAC7C,SAAQA,IAAI;;AAGZ,OAAO,KAAKC,EAAE,MAAM,eAAe;AACnC,SAAQA,EAAE;;AAGV,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,SAAQA,MAAM;;AAId,SAAQC,gBAAgB,QAAO,iCAAiC;AAGhE,SAAQC,gBAAgB,QAAO,iCAAiC;AAEhE,SAAQjB,OAAO,IAAIkB,eAAe,QAAO,mCAAmC"}
1
+ {"version":3,"file":"index.js","names":["assert","isBrowser","isWorker","nodeVersion","self","window","global","document","createLoaderWorker","parseWithWorker","canParseWithWorker","canEncodeWithWorker","parseJSON","toArrayBuffer","sliceArrayBuffer","concatenateArrayBuffers","concatenateTypedArrays","compareArrayBuffers","padToNBytes","copyToArray","copyArrayBuffer","copyPaddedArrayBufferToDataView","copyPaddedStringToDataView","padStringToByteAlignment","copyStringToDataView","copyBinaryToDataView","getFirstCharacters","getMagicString","makeTextEncoderIterator","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","forEach","concatenateArrayBuffersAsync","default","RequestScheduler","setPathPrefix","getPathPrefix","resolvePath","addAliases","_addAliases","JSONLoader","path","isBuffer","toBuffer","bufferToArrayBuffer","util","promisify","fs","_NodeFileSystem"],"sources":["../../src/index.ts"],"sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util'\nimport * as util from './lib/node/util';\nexport {util};\n// TODO - remove\nexport {promisify} from './lib/node/util';\n\n// Use instead of importing 'fs';`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"mappings":";;AAgBA,SAAQA,MAAM,QAAO,wBAAwB;AAC7C,SACEC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,QACH,yBAAyB;;AAGhC,SAAQC,kBAAkB,QAAO,gDAAgD;AACjF,SAAQC,eAAe,EAAEC,kBAAkB,QAAO,6CAA6C;AAC/F,SAAQC,mBAAmB,QAAO,8CAA8C;;AAGhF,SAAQC,SAAS,QAAO,+BAA+B;;AAGvD,SACEC,aAAa,EACbC,gBAAgB,EAChBC,uBAAuB,EACvBC,sBAAsB,EACtBC,mBAAmB,QACd,uCAAuC;AAC9C,SAAQC,WAAW,EAAEC,WAAW,EAAEC,eAAe,QAAO,sCAAsC;AAC9F,SACEC,+BAA+B,EAC/BC,0BAA0B,QACrB,sCAAsC;AAC7C,SACEC,wBAAwB,EACxBC,oBAAoB,EACpBC,oBAAoB,QACf,iCAAiC;AACxC,SAAQC,kBAAkB,EAAEC,cAAc,QAAO,yCAAyC;;AAG1F,SACEC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAgB,EAChBC,wBAAwB,QACnB,gCAAgC;AACvC,SAAQC,OAAO,EAAEC,4BAA4B,QAAO,iCAAiC;;AAGrF,SAAQC,OAAO,IAAIC,gBAAgB,QAAO,uCAAuC;;AAGjF,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,+BAA+B;AACvF,SAAQC,UAAU,IAAIC,WAAW,QAAO,+BAA+B;;AAGvE,SAAQC,UAAU,QAAO,eAAe;;AAOxC,OAAO,KAAKC,IAAI,MAAM,uBAAuB;AAC7C,SAAQA,IAAI;;AAGZ,SAAQC,QAAQ,EAAEC,QAAQ,EAAEC,mBAAmB,QAAO,iCAAiC;;AAKvF,OAAO,KAAKC,IAAI,MAAM,iBAAiB;AACvC,SAAQA,IAAI;AAEZ,SAAQC,SAAS,QAAO,iBAAiB;;AAGzC,OAAO,KAAKC,EAAE,MAAM,eAAe;AACnC,SAAQA,EAAE;;AAGV,SAAQd,OAAO,IAAIe,eAAe,QAAO,mCAAmC"}
@@ -1,5 +1,5 @@
1
1
 
2
- const VERSION = typeof "3.3.0" !== 'undefined' ? "3.3.0" : 'latest';
2
+ const VERSION = typeof "3.4.0-alpha.1" !== 'undefined' ? "3.4.0-alpha.1" : 'latest';
3
3
 
4
4
  export const JSONLoader = {
5
5
  name: 'JSON',
@@ -1 +1 @@
1
- {"version":3,"file":"json-loader.js","names":["VERSION","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parseTextSync","parse","arrayBuffer","TextDecoder","decode","options","JSON","_typecheckJSONLoader"],"sources":["../../src/json-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from './types';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * A JSON Micro loader (minimal bundle size)\n * Alternative to `@loaders.gl/json`\n */\nexport const JSONLoader = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'json',\n text: true,\n parseTextSync,\n parse: async (arrayBuffer) => parseTextSync(new TextDecoder().decode(arrayBuffer)),\n options: {}\n};\n\n// TODO - deprecated\nfunction parseTextSync(text) {\n return JSON.parse(text);\n}\n\nexport const _typecheckJSONLoader: LoaderWithParser = JSONLoader;\n"],"mappings":";AAIA,MAAMA,OAAO,GAAG,cAAkB,KAAK,WAAW,aAAiB,QAAQ;;AAM3E,OAAO,MAAMC,UAAU,GAAG;EACxBC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;EAC/BC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAE,MAAM;EAChBC,IAAI,EAAE,IAAI;EACVC,aAAa;EACbC,KAAK,EAAE,MAAOC,WAAW,IAAKF,aAAa,CAAC,IAAIG,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EAClFG,OAAO,EAAE,CAAC;AACZ,CAAC;;AAGD,SAASL,aAAa,CAACD,IAAI,EAAE;EAC3B,OAAOO,IAAI,CAACL,KAAK,CAACF,IAAI,CAAC;AACzB;AAEA,OAAO,MAAMQ,oBAAsC,GAAGhB,UAAU"}
1
+ {"version":3,"file":"json-loader.js","names":["VERSION","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parseTextSync","parse","arrayBuffer","TextDecoder","decode","options","JSON","_typecheckJSONLoader"],"sources":["../../src/json-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from './types';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * A JSON Micro loader (minimal bundle size)\n * Alternative to `@loaders.gl/json`\n */\nexport const JSONLoader = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'json',\n text: true,\n parseTextSync,\n parse: async (arrayBuffer) => parseTextSync(new TextDecoder().decode(arrayBuffer)),\n options: {}\n};\n\n// TODO - deprecated\nfunction parseTextSync(text) {\n return JSON.parse(text);\n}\n\nexport const _typecheckJSONLoader: LoaderWithParser = JSONLoader;\n"],"mappings":";AAIA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;;AAM3E,OAAO,MAAMC,UAAU,GAAG;EACxBC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;EAC/BC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAE,MAAM;EAChBC,IAAI,EAAE,IAAI;EACVC,aAAa;EACbC,KAAK,EAAE,MAAOC,WAAW,IAAKF,aAAa,CAAC,IAAIG,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EAClFG,OAAO,EAAE,CAAC;AACZ,CAAC;;AAGD,SAASL,aAAa,CAACD,IAAI,EAAE;EAC3B,OAAOO,IAAI,CAACL,KAAK,CAACF,IAAI,CAAC;AACzB;AAEA,OAAO,MAAMQ,oBAAsC,GAAGhB,UAAU"}
@@ -1,3 +1,30 @@
1
+ import { isBuffer, bufferToArrayBuffer } from './buffer-utils';
2
+
3
+ export function toArrayBuffer(data) {
4
+ if (isBuffer(data)) {
5
+ return bufferToArrayBuffer(data);
6
+ }
7
+ if (data instanceof ArrayBuffer) {
8
+ return data;
9
+ }
10
+
11
+ if (ArrayBuffer.isView(data)) {
12
+ if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
13
+ return data.buffer;
14
+ }
15
+ return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
16
+ }
17
+ if (typeof data === 'string') {
18
+ const text = data;
19
+ const uint8Array = new TextEncoder().encode(text);
20
+ return uint8Array.buffer;
21
+ }
22
+
23
+ if (data && typeof data === 'object' && data._toArrayBuffer) {
24
+ return data._toArrayBuffer();
25
+ }
26
+ throw new Error('toArrayBuffer');
27
+ }
1
28
 
2
29
  export function compareArrayBuffers(arrayBuffer1, arrayBuffer2, byteLength) {
3
30
  byteLength = byteLength || arrayBuffer1.byteLength;
@@ -1 +1 @@
1
- {"version":3,"file":"array-buffer-utils.js","names":["compareArrayBuffers","arrayBuffer1","arrayBuffer2","byteLength","array1","Uint8Array","array2","i","length","concatenateArrayBuffers","sources","sourceArrays","map","source2","ArrayBuffer","reduce","typedArray","result","offset","sourceArray","set","buffer","concatenateTypedArrays","typedArrays","arrays","TypedArrayConstructor","constructor","Error","sumLength","acc","value","array","sliceArrayBuffer","arrayBuffer","byteOffset","subArray","undefined","subarray","arrayCopy"],"sources":["../../../../src/lib/binary-utils/array-buffer-utils.ts"],"sourcesContent":["import {TypedArray} from '../../types';\n\n/**\n * compare two binary arrays for equality\n * @param a\n * @param b\n * @param byteLength\n */\nexport function compareArrayBuffers(\n arrayBuffer1: ArrayBuffer,\n arrayBuffer2: ArrayBuffer,\n byteLength?: number\n): boolean {\n byteLength = byteLength || arrayBuffer1.byteLength;\n if (arrayBuffer1.byteLength < byteLength || arrayBuffer2.byteLength < byteLength) {\n return false;\n }\n const array1 = new Uint8Array(arrayBuffer1);\n const array2 = new Uint8Array(arrayBuffer2);\n for (let i = 0; i < array1.length; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Concatenate a sequence of ArrayBuffers\n * @return A concatenated ArrayBuffer\n */\nexport function concatenateArrayBuffers(...sources: (ArrayBuffer | Uint8Array)[]): ArrayBuffer {\n // Make sure all inputs are wrapped in typed arrays\n const sourceArrays = sources.map((source2) =>\n source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2\n );\n\n // Get length of all inputs\n const byteLength = sourceArrays.reduce((length, typedArray) => length + typedArray.byteLength, 0);\n\n // Allocate array with space for all inputs\n const result = new Uint8Array(byteLength);\n\n // Copy the subarrays\n let offset = 0;\n for (const sourceArray of sourceArrays) {\n result.set(sourceArray, offset);\n offset += sourceArray.byteLength;\n }\n\n // We work with ArrayBuffers, discard the typed array wrapper\n return result.buffer;\n}\n\n/**\n * Concatenate arbitrary count of typed arrays\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays\n * @param - list of arrays. All arrays should be the same type\n * @return A concatenated TypedArray\n */\nexport function concatenateTypedArrays<T>(...typedArrays: T[]): T {\n // @ts-ignore\n const arrays = typedArrays as TypedArray[];\n // @ts-ignore\n const TypedArrayConstructor = (arrays && arrays.length > 1 && arrays[0].constructor) || null;\n if (!TypedArrayConstructor) {\n throw new Error(\n '\"concatenateTypedArrays\" - incorrect quantity of arguments or arguments have incompatible data types'\n );\n }\n\n const sumLength = arrays.reduce((acc, value) => acc + value.length, 0);\n // @ts-ignore typescript does not like dynamic constructors\n const result = new TypedArrayConstructor(sumLength);\n let offset = 0;\n for (const array of arrays) {\n result.set(array, offset);\n offset += array.length;\n }\n return result;\n}\n\n/**\n * Copy a view of an ArrayBuffer into new ArrayBuffer with byteOffset = 0\n * @param arrayBuffer\n * @param byteOffset\n * @param byteLength\n */\nexport function sliceArrayBuffer(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n byteLength?: number\n): ArrayBuffer {\n const subArray =\n byteLength !== undefined\n ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength)\n : new Uint8Array(arrayBuffer).subarray(byteOffset);\n const arrayCopy = new Uint8Array(subArray);\n return arrayCopy.buffer;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"array-buffer-utils.js","names":["isBuffer","bufferToArrayBuffer","toArrayBuffer","data","ArrayBuffer","isView","byteOffset","byteLength","buffer","slice","text","uint8Array","TextEncoder","encode","_toArrayBuffer","Error","compareArrayBuffers","arrayBuffer1","arrayBuffer2","array1","Uint8Array","array2","i","length","concatenateArrayBuffers","sources","sourceArrays","map","source2","reduce","typedArray","result","offset","sourceArray","set","concatenateTypedArrays","typedArrays","arrays","TypedArrayConstructor","constructor","sumLength","acc","value","array","sliceArrayBuffer","arrayBuffer","subArray","undefined","subarray","arrayCopy"],"sources":["../../../../src/lib/binary-utils/array-buffer-utils.ts"],"sourcesContent":["import {TypedArray} from '../../types';\nimport {isBuffer, bufferToArrayBuffer} from './buffer-utils';\n\n/**\n * Convert an object to an array buffer\n */\nexport function toArrayBuffer(data: any): ArrayBuffer {\n // Note: Should be called first, Buffers can trigger other detections below\n if (isBuffer(data)) {\n return bufferToArrayBuffer(data);\n }\n\n if (data instanceof ArrayBuffer) {\n return data;\n }\n\n // Careful - Node Buffers look like Uint8Arrays (keep after isBuffer)\n if (ArrayBuffer.isView(data)) {\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);\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 if (data && typeof data === 'object' && data._toArrayBuffer) {\n return data._toArrayBuffer();\n }\n\n throw new Error('toArrayBuffer');\n}\n\n/**\n * compare two binary arrays for equality\n * @param {ArrayBuffer} a\n * @param {ArrayBuffer} b\n * @param {number} byteLength\n */\nexport function compareArrayBuffers(\n arrayBuffer1: ArrayBuffer,\n arrayBuffer2: ArrayBuffer,\n byteLength?: number\n): boolean {\n byteLength = byteLength || arrayBuffer1.byteLength;\n if (arrayBuffer1.byteLength < byteLength || arrayBuffer2.byteLength < byteLength) {\n return false;\n }\n const array1 = new Uint8Array(arrayBuffer1);\n const array2 = new Uint8Array(arrayBuffer2);\n for (let i = 0; i < array1.length; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Concatenate a sequence of ArrayBuffers\n * @return A concatenated ArrayBuffer\n */\nexport function concatenateArrayBuffers(...sources: (ArrayBuffer | Uint8Array)[]): ArrayBuffer {\n // Make sure all inputs are wrapped in typed arrays\n const sourceArrays = sources.map((source2) =>\n source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2\n );\n\n // Get length of all inputs\n const byteLength = sourceArrays.reduce((length, typedArray) => length + typedArray.byteLength, 0);\n\n // Allocate array with space for all inputs\n const result = new Uint8Array(byteLength);\n\n // Copy the subarrays\n let offset = 0;\n for (const sourceArray of sourceArrays) {\n result.set(sourceArray, offset);\n offset += sourceArray.byteLength;\n }\n\n // We work with ArrayBuffers, discard the typed array wrapper\n return result.buffer;\n}\n\n/**\n * Concatenate arbitrary count of typed arrays\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays\n * @param {...*} arrays - list of arrays. All arrays should be the same type\n * @return A concatenated TypedArray\n */\nexport function concatenateTypedArrays<T>(...typedArrays: T[]): T {\n // @ts-ignore\n const arrays = typedArrays as TypedArray[];\n // @ts-ignore\n const TypedArrayConstructor = (arrays && arrays.length > 1 && arrays[0].constructor) || null;\n if (!TypedArrayConstructor) {\n throw new Error(\n '\"concatenateTypedArrays\" - incorrect quantity of arguments or arguments have incompatible data types'\n );\n }\n\n const sumLength = arrays.reduce((acc, value) => acc + value.length, 0);\n // @ts-ignore typescript does not like dynamic constructors\n const result = new TypedArrayConstructor(sumLength);\n let offset = 0;\n for (const array of arrays) {\n result.set(array, offset);\n offset += array.length;\n }\n return result;\n}\n\n/**\n * Copy a view of an ArrayBuffer into new ArrayBuffer with byteOffset = 0\n * @param arrayBuffer\n * @param byteOffset\n * @param byteLength\n */\nexport function sliceArrayBuffer(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n byteLength?: number\n): ArrayBuffer {\n const subArray =\n byteLength !== undefined\n ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength)\n : new Uint8Array(arrayBuffer).subarray(byteOffset);\n const arrayCopy = new Uint8Array(subArray);\n return arrayCopy.buffer;\n}\n"],"mappings":"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"}
@@ -1,35 +1,5 @@
1
-
2
-
3
1
  import { padToNBytes } from './memory-copy-utils';
4
2
 
5
- export function padStringToByteAlignment(string, byteAlignment) {
6
- const length = string.length;
7
- const paddedLength = Math.ceil(length / byteAlignment) * byteAlignment;
8
- const padding = paddedLength - length;
9
- let whitespace = '';
10
- for (let i = 0; i < padding; ++i) {
11
- whitespace += ' ';
12
- }
13
- return string + whitespace;
14
- }
15
-
16
- export function copyStringToDataView(dataView, byteOffset, string, byteLength) {
17
- if (dataView) {
18
- for (let i = 0; i < byteLength; i++) {
19
- dataView.setUint8(byteOffset + i, string.charCodeAt(i));
20
- }
21
- }
22
- return byteOffset + byteLength;
23
- }
24
- export function copyBinaryToDataView(dataView, byteOffset, binary, byteLength) {
25
- if (dataView) {
26
- for (let i = 0; i < byteLength; i++) {
27
- dataView.setUint8(byteOffset + i, binary[i]);
28
- }
29
- }
30
- return byteOffset + byteLength;
31
- }
32
-
33
3
  export function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
34
4
  const paddedLength = padToNBytes(sourceBuffer.byteLength, padding);
35
5
  const padLength = paddedLength - sourceBuffer.byteLength;
@@ -52,4 +22,4 @@ export function copyPaddedStringToDataView(dataView, byteOffset, string, padding
52
22
  byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);
53
23
  return byteOffset;
54
24
  }
55
- //# sourceMappingURL=dataview-copy-utils.js.map
25
+ //# sourceMappingURL=binary-copy-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-copy-utils.js","names":["padToNBytes","copyPaddedArrayBufferToDataView","dataView","byteOffset","sourceBuffer","padding","paddedLength","byteLength","padLength","targetArray","Uint8Array","buffer","sourceArray","set","i","setUint8","copyPaddedStringToDataView","string","textEncoder","TextEncoder","stringBuffer","encode"],"sources":["../../../../src/lib/binary-utils/binary-copy-utils.ts"],"sourcesContent":["import {TypedArray} from '../../types';\nimport {padToNBytes} from './memory-copy-utils';\n\n/**\n * Copy sourceBuffer to dataView with some padding\n *\n * @param {DataView | null} dataView - destination data container. If null - only new offset is calculated\n * @param {number} byteOffset - destination byte offset to copy to\n * @param {Array | TypedArray} sourceBuffer - source data buffer\n * @param {number} padding - pad the resulting array to multiple of \"padding\" bytes. Additional bytes are filled with 0x20 (ASCII space)\n *\n * @return new byteOffset of resulting dataView\n */\nexport function copyPaddedArrayBufferToDataView(\n dataView: DataView | null,\n byteOffset: number,\n sourceBuffer: TypedArray,\n padding: number\n) {\n const paddedLength = padToNBytes(sourceBuffer.byteLength, padding);\n const padLength = paddedLength - sourceBuffer.byteLength;\n\n if (dataView) {\n // Copy array\n const targetArray = new Uint8Array(\n dataView.buffer,\n dataView.byteOffset + byteOffset,\n sourceBuffer.byteLength\n );\n const sourceArray = new Uint8Array(sourceBuffer);\n targetArray.set(sourceArray);\n\n // Add PADDING\n for (let i = 0; i < padLength; ++i) {\n // json chunk is padded with spaces (ASCII 0x20)\n dataView.setUint8(byteOffset + sourceBuffer.byteLength + i, 0x20);\n }\n }\n byteOffset += paddedLength;\n return byteOffset;\n}\n\n/**\n * Copy string to dataView with some padding\n *\n * @param {DataView | null} dataView - destination data container. If null - only new offset is calculated\n * @param {number} byteOffset - destination byte offset to copy to\n * @param {string} string - source string\n * @param {number} padding - pad the resulting array to multiple of \"padding\" bytes. Additional bytes are filled with 0x20 (ASCII space)\n *\n * @return new byteOffset of resulting dataView\n */\nexport function copyPaddedStringToDataView(\n dataView: DataView | null,\n byteOffset: number,\n string: string,\n padding: number\n): number {\n const textEncoder = new TextEncoder();\n // PERFORMANCE IDEA: We encode twice, once to get size and once to store\n // PERFORMANCE IDEA: Use TextEncoder.encodeInto() to avoid temporary copy\n const stringBuffer = textEncoder.encode(string);\n\n byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);\n\n return byteOffset;\n}\n"],"mappings":"AACA,SAAQA,WAAW,QAAO,qBAAqB;;AAY/C,OAAO,SAASC,+BAA+B,CAC7CC,QAAyB,EACzBC,UAAkB,EAClBC,YAAwB,EACxBC,OAAe,EACf;EACA,MAAMC,YAAY,GAAGN,WAAW,CAACI,YAAY,CAACG,UAAU,EAAEF,OAAO,CAAC;EAClE,MAAMG,SAAS,GAAGF,YAAY,GAAGF,YAAY,CAACG,UAAU;EAExD,IAAIL,QAAQ,EAAE;IAEZ,MAAMO,WAAW,GAAG,IAAIC,UAAU,CAChCR,QAAQ,CAACS,MAAM,EACfT,QAAQ,CAACC,UAAU,GAAGA,UAAU,EAChCC,YAAY,CAACG,UAAU,CACxB;IACD,MAAMK,WAAW,GAAG,IAAIF,UAAU,CAACN,YAAY,CAAC;IAChDK,WAAW,CAACI,GAAG,CAACD,WAAW,CAAC;;IAG5B,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,SAAS,EAAE,EAAEM,CAAC,EAAE;MAElCZ,QAAQ,CAACa,QAAQ,CAACZ,UAAU,GAAGC,YAAY,CAACG,UAAU,GAAGO,CAAC,EAAE,IAAI,CAAC;IACnE;EACF;EACAX,UAAU,IAAIG,YAAY;EAC1B,OAAOH,UAAU;AACnB;;AAYA,OAAO,SAASa,0BAA0B,CACxCd,QAAyB,EACzBC,UAAkB,EAClBc,MAAc,EACdZ,OAAe,EACP;EACR,MAAMa,WAAW,GAAG,IAAIC,WAAW,EAAE;EAGrC,MAAMC,YAAY,GAAGF,WAAW,CAACG,MAAM,CAACJ,MAAM,CAAC;EAE/Cd,UAAU,GAAGF,+BAA+B,CAACC,QAAQ,EAAEC,UAAU,EAAEiB,YAAY,EAAEf,OAAO,CAAC;EAEzF,OAAOF,UAAU;AACnB"}
@@ -0,0 +1,18 @@
1
+ import * as node from '../node/buffer';
2
+
3
+ export function isBuffer(value) {
4
+ return value && typeof value === 'object' && value.isBuffer;
5
+ }
6
+
7
+ export function toBuffer(data) {
8
+ return node.toBuffer ? node.toBuffer(data) : data;
9
+ }
10
+
11
+ export function bufferToArrayBuffer(buffer) {
12
+ if (isBuffer(buffer)) {
13
+ const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
14
+ return typedArray.slice().buffer;
15
+ }
16
+ return buffer;
17
+ }
18
+ //# sourceMappingURL=buffer-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer-utils.js","names":["node","isBuffer","value","toBuffer","data","bufferToArrayBuffer","buffer","typedArray","Uint8Array","byteOffset","length","slice"],"sources":["../../../../src/lib/binary-utils/buffer-utils.ts"],"sourcesContent":["import * as node from '../node/buffer';\n\n/**\n * Check for Node.js `Buffer` (without triggering bundler to include Buffer polyfill on browser)\n */\nexport function isBuffer(value: any): boolean {\n return value && typeof value === 'object' && value.isBuffer;\n}\n\n/**\n * Converts to Node.js `Buffer` (without triggering bundler to include Buffer polyfill on browser)\n * @todo better data type\n */\nexport function toBuffer(data: any): Buffer {\n return node.toBuffer ? node.toBuffer(data) : data;\n}\n\n/**\n * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)\n * @todo better data type\n */\nexport function bufferToArrayBuffer(buffer: any): ArrayBuffer {\n if (isBuffer(buffer)) {\n const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);\n return typedArray.slice().buffer;\n }\n return buffer;\n}\n"],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,gBAAgB;;AAKtC,OAAO,SAASC,QAAQ,CAACC,KAAU,EAAW;EAC5C,OAAOA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACD,QAAQ;AAC7D;;AAMA,OAAO,SAASE,QAAQ,CAACC,IAAS,EAAU;EAC1C,OAAOJ,IAAI,CAACG,QAAQ,GAAGH,IAAI,CAACG,QAAQ,CAACC,IAAI,CAAC,GAAGA,IAAI;AACnD;;AAMA,OAAO,SAASC,mBAAmB,CAACC,MAAW,EAAe;EAC5D,IAAIL,QAAQ,CAACK,MAAM,CAAC,EAAE;IACpB,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACF,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACG,UAAU,EAAEH,MAAM,CAACI,MAAM,CAAC;IAClF,OAAOH,UAAU,CAACI,KAAK,EAAE,CAACL,MAAM;EAClC;EACA,OAAOA,MAAM;AACf"}
@@ -0,0 +1,29 @@
1
+
2
+
3
+ export function padStringToByteAlignment(string, byteAlignment) {
4
+ const length = string.length;
5
+ const paddedLength = Math.ceil(length / byteAlignment) * byteAlignment;
6
+ const padding = paddedLength - length;
7
+ let whitespace = '';
8
+ for (let i = 0; i < padding; ++i) {
9
+ whitespace += ' ';
10
+ }
11
+ return string + whitespace;
12
+ }
13
+ export function copyStringToDataView(dataView, byteOffset, string, byteLength) {
14
+ if (dataView) {
15
+ for (let i = 0; i < byteLength; i++) {
16
+ dataView.setUint8(byteOffset + i, string.charCodeAt(i));
17
+ }
18
+ }
19
+ return byteOffset + byteLength;
20
+ }
21
+ export function copyBinaryToDataView(dataView, byteOffset, binary, byteLength) {
22
+ if (dataView) {
23
+ for (let i = 0; i < byteLength; i++) {
24
+ dataView.setUint8(byteOffset + i, binary[i]);
25
+ }
26
+ }
27
+ return byteOffset + byteLength;
28
+ }
29
+ //# sourceMappingURL=encode-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-utils.js","names":["padStringToByteAlignment","string","byteAlignment","length","paddedLength","Math","ceil","padding","whitespace","i","copyStringToDataView","dataView","byteOffset","byteLength","setUint8","charCodeAt","copyBinaryToDataView","binary"],"sources":["../../../../src/lib/binary-utils/encode-utils.ts"],"sourcesContent":["// Note: These were broken out from gltf loader...\n// eslint-disable-next-line complexity\n\n// PERFORMANCE IDEA: No need to copy string twice...\nexport function padStringToByteAlignment(string, byteAlignment) {\n const length = string.length;\n const paddedLength = Math.ceil(length / byteAlignment) * byteAlignment; // Round up to the required alignment\n const padding = paddedLength - length;\n let whitespace = '';\n for (let i = 0; i < padding; ++i) {\n whitespace += ' ';\n }\n return string + whitespace;\n}\n\nexport function copyStringToDataView(dataView, byteOffset, string, byteLength) {\n if (dataView) {\n for (let i = 0; i < byteLength; i++) {\n dataView.setUint8(byteOffset + i, string.charCodeAt(i));\n }\n }\n return byteOffset + byteLength;\n}\n\nexport function copyBinaryToDataView(dataView, byteOffset, binary, byteLength) {\n if (dataView) {\n for (let i = 0; i < byteLength; i++) {\n dataView.setUint8(byteOffset + i, binary[i]);\n }\n }\n return byteOffset + byteLength;\n}\n"],"mappings":";;AAIA,OAAO,SAASA,wBAAwB,CAACC,MAAM,EAAEC,aAAa,EAAE;EAC9D,MAAMC,MAAM,GAAGF,MAAM,CAACE,MAAM;EAC5B,MAAMC,YAAY,GAAGC,IAAI,CAACC,IAAI,CAACH,MAAM,GAAGD,aAAa,CAAC,GAAGA,aAAa;EACtE,MAAMK,OAAO,GAAGH,YAAY,GAAGD,MAAM;EACrC,IAAIK,UAAU,GAAG,EAAE;EACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,OAAO,EAAE,EAAEE,CAAC,EAAE;IAChCD,UAAU,IAAI,GAAG;EACnB;EACA,OAAOP,MAAM,GAAGO,UAAU;AAC5B;AAEA,OAAO,SAASE,oBAAoB,CAACC,QAAQ,EAAEC,UAAU,EAAEX,MAAM,EAAEY,UAAU,EAAE;EAC7E,IAAIF,QAAQ,EAAE;IACZ,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGI,UAAU,EAAEJ,CAAC,EAAE,EAAE;MACnCE,QAAQ,CAACG,QAAQ,CAACF,UAAU,GAAGH,CAAC,EAAER,MAAM,CAACc,UAAU,CAACN,CAAC,CAAC,CAAC;IACzD;EACF;EACA,OAAOG,UAAU,GAAGC,UAAU;AAChC;AAEA,OAAO,SAASG,oBAAoB,CAACL,QAAQ,EAAEC,UAAU,EAAEK,MAAM,EAAEJ,UAAU,EAAE;EAC7E,IAAIF,QAAQ,EAAE;IACZ,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGI,UAAU,EAAEJ,CAAC,EAAE,EAAE;MACnCE,QAAQ,CAACG,QAAQ,CAACF,UAAU,GAAGH,CAAC,EAAEQ,MAAM,CAACR,CAAC,CAAC,CAAC;IAC9C;EACF;EACA,OAAOG,UAAU,GAAGC,UAAU;AAChC"}
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  export function getFirstCharacters(data) {
4
2
  let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
5
3
  if (typeof data === 'string') {
@@ -12,7 +10,6 @@ export function getFirstCharacters(data) {
12
10
  }
13
11
  return '';
14
12
  }
15
-
16
13
  export function getMagicString(arrayBuffer, byteOffset, length) {
17
14
  if (arrayBuffer.byteLength <= byteOffset + length) {
18
15
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"get-first-characters.js","names":["getFirstCharacters","data","length","slice","ArrayBuffer","isView","getMagicString","buffer","byteOffset","arrayBuffer","byteLength","dataView","DataView","magic","i","String","fromCharCode","getUint8"],"sources":["../../../../src/lib/binary-utils/get-first-characters.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/**\n * Get the first characters from a binary file (interpret the first bytes as an ASCII string)\n * @param data\n * @param length\n * @returns\n */\nexport function getFirstCharacters(data: string | ArrayBuffer, length: number = 5): string {\n if (typeof data === 'string') {\n return data.slice(0, length);\n } else if (ArrayBuffer.isView(data)) {\n // Typed Arrays can have offsets into underlying buffer\n return getMagicString(data.buffer, data.byteOffset, length);\n } else if (data instanceof ArrayBuffer) {\n const byteOffset = 0;\n return getMagicString(data, byteOffset, length);\n }\n return '';\n}\n\n/**\n * Gets a magic string from a \"file\"\n * Typically used to check or detect file format\n * @param arrayBuffer\n * @param byteOffset\n * @param length\n * @returns\n */\nexport function getMagicString(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n length: number\n): string {\n if (arrayBuffer.byteLength <= byteOffset + length) {\n return '';\n }\n const dataView = new DataView(arrayBuffer);\n let magic = '';\n for (let i = 0; i < length; i++) {\n magic += String.fromCharCode(dataView.getUint8(byteOffset + i));\n }\n return magic;\n}\n"],"mappings":";;AAQA,OAAO,SAASA,kBAAkB,CAACC,IAA0B,EAA8B;EAAA,IAA5BC,MAAc,uEAAG,CAAC;EAC/E,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAOA,IAAI,CAACE,KAAK,CAAC,CAAC,EAAED,MAAM,CAAC;EAC9B,CAAC,MAAM,IAAIE,WAAW,CAACC,MAAM,CAACJ,IAAI,CAAC,EAAE;IAEnC,OAAOK,cAAc,CAACL,IAAI,CAACM,MAAM,EAAEN,IAAI,CAACO,UAAU,EAAEN,MAAM,CAAC;EAC7D,CAAC,MAAM,IAAID,IAAI,YAAYG,WAAW,EAAE;IACtC,MAAMI,UAAU,GAAG,CAAC;IACpB,OAAOF,cAAc,CAACL,IAAI,EAAEO,UAAU,EAAEN,MAAM,CAAC;EACjD;EACA,OAAO,EAAE;AACX;;AAUA,OAAO,SAASI,cAAc,CAC5BG,WAAwB,EACxBD,UAAkB,EAClBN,MAAc,EACN;EACR,IAAIO,WAAW,CAACC,UAAU,IAAIF,UAAU,GAAGN,MAAM,EAAE;IACjD,OAAO,EAAE;EACX;EACA,MAAMS,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1C,IAAII,KAAK,GAAG,EAAE;EACd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,MAAM,EAAEY,CAAC,EAAE,EAAE;IAC/BD,KAAK,IAAIE,MAAM,CAACC,YAAY,CAACL,QAAQ,CAACM,QAAQ,CAACT,UAAU,GAAGM,CAAC,CAAC,CAAC;EACjE;EACA,OAAOD,KAAK;AACd"}
1
+ {"version":3,"file":"get-first-characters.js","names":["getFirstCharacters","data","length","slice","ArrayBuffer","isView","getMagicString","buffer","byteOffset","arrayBuffer","byteLength","dataView","DataView","magic","i","String","fromCharCode","getUint8"],"sources":["../../../../src/lib/binary-utils/get-first-characters.ts"],"sourcesContent":["export function getFirstCharacters(data, length = 5): string {\n if (typeof data === 'string') {\n return data.slice(0, length);\n } else if (ArrayBuffer.isView(data)) {\n // Typed Arrays can have offsets into underlying buffer\n return getMagicString(data.buffer, data.byteOffset, length);\n } else if (data instanceof ArrayBuffer) {\n const byteOffset = 0;\n return getMagicString(data, byteOffset, length);\n }\n return '';\n}\n\nexport function getMagicString(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n length: number\n): string {\n if (arrayBuffer.byteLength <= byteOffset + length) {\n return '';\n }\n const dataView = new DataView(arrayBuffer);\n let magic = '';\n for (let i = 0; i < length; i++) {\n magic += String.fromCharCode(dataView.getUint8(byteOffset + i));\n }\n return magic;\n}\n"],"mappings":"AAAA,OAAO,SAASA,kBAAkB,CAACC,IAAI,EAAsB;EAAA,IAApBC,MAAM,uEAAG,CAAC;EACjD,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAOA,IAAI,CAACE,KAAK,CAAC,CAAC,EAAED,MAAM,CAAC;EAC9B,CAAC,MAAM,IAAIE,WAAW,CAACC,MAAM,CAACJ,IAAI,CAAC,EAAE;IAEnC,OAAOK,cAAc,CAACL,IAAI,CAACM,MAAM,EAAEN,IAAI,CAACO,UAAU,EAAEN,MAAM,CAAC;EAC7D,CAAC,MAAM,IAAID,IAAI,YAAYG,WAAW,EAAE;IACtC,MAAMI,UAAU,GAAG,CAAC;IACpB,OAAOF,cAAc,CAACL,IAAI,EAAEO,UAAU,EAAEN,MAAM,CAAC;EACjD;EACA,OAAO,EAAE;AACX;AAEA,OAAO,SAASI,cAAc,CAC5BG,WAAwB,EACxBD,UAAkB,EAClBN,MAAc,EACN;EACR,IAAIO,WAAW,CAACC,UAAU,IAAIF,UAAU,GAAGN,MAAM,EAAE;IACjD,OAAO,EAAE;EACX;EACA,MAAMS,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1C,IAAII,KAAK,GAAG,EAAE;EACd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,MAAM,EAAEY,CAAC,EAAE,EAAE;IAC/BD,KAAK,IAAIE,MAAM,CAACC,YAAY,CAACL,QAAQ,CAACM,QAAQ,CAACT,UAAU,GAAGM,CAAC,CAAC,CAAC;EACjE;EACA,OAAOD,KAAK;AACd"}
@@ -1,5 +1,7 @@
1
1
 
2
2
 
3
+ import { assert } from '../env-utils/assert';
4
+
3
5
  export function toArrayBuffer(buffer) {
4
6
  if (Buffer.isBuffer(buffer)) {
5
7
  const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
@@ -9,15 +11,17 @@ export function toArrayBuffer(buffer) {
9
11
  }
10
12
 
11
13
  export function toBuffer(binaryData) {
12
- if (Buffer.isBuffer(binaryData)) {
13
- return binaryData;
14
- }
15
14
  if (ArrayBuffer.isView(binaryData)) {
16
15
  binaryData = binaryData.buffer;
17
16
  }
18
17
  if (typeof Buffer !== 'undefined' && binaryData instanceof ArrayBuffer) {
19
- return Buffer.from(binaryData);
18
+ const buffer = new Buffer(binaryData.byteLength);
19
+ const view = new Uint8Array(binaryData);
20
+ for (let i = 0; i < buffer.length; ++i) {
21
+ buffer[i] = view[i];
22
+ }
23
+ return buffer;
20
24
  }
21
- throw new Error('toBuffer');
25
+ return assert(false);
22
26
  }
23
27
  //# sourceMappingURL=buffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.js","names":["toArrayBuffer","buffer","Buffer","isBuffer","typedArray","Uint8Array","byteOffset","length","slice","toBuffer","binaryData","ArrayBuffer","isView","from","Error"],"sources":["../../../../src/lib/node/buffer.ts"],"sourcesContent":["// Isolates Buffer references to ensure they are only bundled under Node.js (avoids big webpack polyfill)\n// this file is not visible to webpack (it is excluded in the package.json \"browser\" field).\n\n/**\n * Convert Buffer to ArrayBuffer\n * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)\n * @todo better data type\n */\nexport function toArrayBuffer(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.buffer, buffer.byteOffset, buffer.length);\n return typedArray.slice().buffer;\n }\n return buffer;\n}\n\n/**\n * Convert (copy) ArrayBuffer to Buffer\n */\nexport function toBuffer(binaryData: ArrayBuffer | ArrayBuffer | Buffer): Buffer {\n if (Buffer.isBuffer(binaryData)) {\n return binaryData;\n }\n\n if (ArrayBuffer.isView(binaryData)) {\n binaryData = binaryData.buffer;\n }\n\n if (typeof Buffer !== 'undefined' && binaryData instanceof ArrayBuffer) {\n return Buffer.from(binaryData);\n }\n\n throw new Error('toBuffer');\n}\n"],"mappings":";;AAQA,OAAO,SAASA,aAAa,CAACC,MAAM,EAAE;EAEpC,IAAIC,MAAM,CAACC,QAAQ,CAACF,MAAM,CAAC,EAAE;IAC3B,MAAMG,UAAU,GAAG,IAAIC,UAAU,CAACJ,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACK,UAAU,EAAEL,MAAM,CAACM,MAAM,CAAC;IAClF,OAAOH,UAAU,CAACI,KAAK,EAAE,CAACP,MAAM;EAClC;EACA,OAAOA,MAAM;AACf;;AAKA,OAAO,SAASQ,QAAQ,CAACC,UAA8C,EAAU;EAC/E,IAAIR,MAAM,CAACC,QAAQ,CAACO,UAAU,CAAC,EAAE;IAC/B,OAAOA,UAAU;EACnB;EAEA,IAAIC,WAAW,CAACC,MAAM,CAACF,UAAU,CAAC,EAAE;IAClCA,UAAU,GAAGA,UAAU,CAACT,MAAM;EAChC;EAEA,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAIQ,UAAU,YAAYC,WAAW,EAAE;IACtE,OAAOT,MAAM,CAACW,IAAI,CAACH,UAAU,CAAC;EAChC;EAEA,MAAM,IAAII,KAAK,CAAC,UAAU,CAAC;AAC7B"}
1
+ {"version":3,"file":"buffer.js","names":["assert","toArrayBuffer","buffer","Buffer","isBuffer","typedArray","Uint8Array","byteOffset","length","slice","toBuffer","binaryData","ArrayBuffer","isView","byteLength","view","i"],"sources":["../../../../src/lib/node/buffer.ts"],"sourcesContent":["// Isolates Buffer references to ensure they are only bundled under Node.js (avoids big webpack polyfill)\n// this file is not visible to webpack (it is excluded in the package.json \"browser\" field).\n\nimport {assert} from '../env-utils/assert';\n\n/**\n * Convert Buffer to ArrayBuffer\n */\nexport function toArrayBuffer(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.buffer, buffer.byteOffset, buffer.length);\n return typedArray.slice().buffer;\n }\n return buffer;\n}\n\n/**\n * Convert (copy) ArrayBuffer to Buffer\n */\nexport function toBuffer(binaryData) {\n if (ArrayBuffer.isView(binaryData)) {\n binaryData = binaryData.buffer;\n }\n\n if (typeof Buffer !== 'undefined' && binaryData instanceof ArrayBuffer) {\n const buffer = new Buffer(binaryData.byteLength);\n const view = new Uint8Array(binaryData);\n for (let i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n return buffer;\n }\n\n return assert(false);\n}\n"],"mappings":";;AAGA,SAAQA,MAAM,QAAO,qBAAqB;;AAK1C,OAAO,SAASC,aAAa,CAACC,MAAM,EAAE;EAEpC,IAAIC,MAAM,CAACC,QAAQ,CAACF,MAAM,CAAC,EAAE;IAC3B,MAAMG,UAAU,GAAG,IAAIC,UAAU,CAACJ,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACK,UAAU,EAAEL,MAAM,CAACM,MAAM,CAAC;IAClF,OAAOH,UAAU,CAACI,KAAK,EAAE,CAACP,MAAM;EAClC;EACA,OAAOA,MAAM;AACf;;AAKA,OAAO,SAASQ,QAAQ,CAACC,UAAU,EAAE;EACnC,IAAIC,WAAW,CAACC,MAAM,CAACF,UAAU,CAAC,EAAE;IAClCA,UAAU,GAAGA,UAAU,CAACT,MAAM;EAChC;EAEA,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAIQ,UAAU,YAAYC,WAAW,EAAE;IACtE,MAAMV,MAAM,GAAG,IAAIC,MAAM,CAACQ,UAAU,CAACG,UAAU,CAAC;IAChD,MAAMC,IAAI,GAAG,IAAIT,UAAU,CAACK,UAAU,CAAC;IACvC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,MAAM,CAACM,MAAM,EAAE,EAAEQ,CAAC,EAAE;MACtCd,MAAM,CAACc,CAAC,CAAC,GAAGD,IAAI,CAACC,CAAC,CAAC;IACrB;IACA,OAAOd,MAAM;EACf;EAEA,OAAOF,MAAM,CAAC,KAAK,CAAC;AACtB"}
@@ -1,7 +1,7 @@
1
1
 
2
2
  import fs from 'fs';
3
3
  import { toArrayBuffer } from './buffer';
4
- import { promisify2, promisify3 } from './util';
4
+ import { promisify } from './util';
5
5
  export let readdir;
6
6
  export let stat;
7
7
 
@@ -14,23 +14,21 @@ export let open;
14
14
  export let close;
15
15
  export let read;
16
16
  export let fstat;
17
- export let createWriteStream;
18
17
  export let isSupported = Boolean(fs);
19
18
 
20
19
  try {
21
- readdir = promisify2(fs.readdir);
22
- stat = promisify2(fs.stat);
20
+ readdir = promisify(fs.readdir);
21
+ stat = promisify(fs.stat);
23
22
 
24
- readFile = fs.readFile;
23
+ readFile = promisify(fs.readFile);
25
24
  readFileSync = fs.readFileSync;
26
- writeFile = promisify3(fs.writeFile);
25
+ writeFile = promisify(fs.writeFile);
27
26
  writeFileSync = fs.writeFileSync;
28
27
 
29
- open = fs.open;
30
- close = fd => new Promise((resolve, reject) => fs.close(fd, err => err ? reject(err) : resolve()));
31
- read = fs.read;
32
- fstat = fs.fstat;
33
- createWriteStream = fs.createWriteStream;
28
+ open = promisify(fs.open);
29
+ close = promisify(fs.close);
30
+ read = promisify(fs.read);
31
+ fstat = promisify(fs.fstat);
34
32
  isSupported = Boolean(fs);
35
33
  } catch {
36
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","names":["fs","toArrayBuffer","promisify2","promisify3","readdir","stat","readFile","readFileSync","writeFile","writeFileSync","open","close","read","fstat","createWriteStream","isSupported","Boolean","fd","Promise","resolve","reject","err","_readToArrayBuffer","start","length","buffer","Buffer","alloc","bytesRead","Error"],"sources":["../../../../src/lib/node/fs.ts"],"sourcesContent":["// fs wrapper (promisified fs + avoids bundling fs in browsers)\nimport fs from 'fs';\nimport {toArrayBuffer} from './buffer';\nimport {promisify2, promisify3} from './util';\n\nexport type {Stats, WriteStream} from 'fs';\n\nexport let readdir;\n/** Wrapper for Node.js fs method */\nexport let stat;\n\n/** Wrapper for Node.js fs method */\nexport let readFile;\n/** Wrapper for Node.js fs method */\nexport let readFileSync;\n/** Wrapper for Node.js fs method */\nexport let writeFile;\n/** Wrapper for Node.js fs method */\nexport let writeFileSync;\n\n// file descriptors\n\n/** Wrapper for Node.js fs method */\nexport let open;\n/** Wrapper for Node.js fs method */\nexport let close: (fd: number) => Promise<void>;\n/** Wrapper for Node.js fs method */\nexport let read;\n/** Wrapper for Node.js fs method */\nexport let fstat;\n\nexport let createWriteStream: typeof fs.createWriteStream;\n\nexport let isSupported = Boolean(fs);\n\n// paths\n\ntry {\n /** Wrapper for Node.js fs method */\n readdir = promisify2(fs.readdir);\n /** Wrapper for Node.js fs method */\n stat = promisify2(fs.stat);\n\n /** Wrapper for Node.js fs method */\n readFile = fs.readFile;\n /** Wrapper for Node.js fs method */\n readFileSync = fs.readFileSync;\n /** Wrapper for Node.js fs method */\n writeFile = promisify3(fs.writeFile);\n /** Wrapper for Node.js fs method */\n writeFileSync = fs.writeFileSync;\n\n // file descriptors\n\n /** Wrapper for Node.js fs method */\n open = fs.open;\n /** Wrapper for Node.js fs method */\n close = (fd: number) =>\n new Promise((resolve, reject) => fs.close(fd, (err) => (err ? reject(err) : resolve())));\n /** Wrapper for Node.js fs method */\n read = fs.read;\n /** Wrapper for Node.js fs method */\n fstat = fs.fstat;\n\n createWriteStream = fs.createWriteStream;\n\n isSupported = Boolean(fs);\n} catch {\n // ignore\n}\n\nexport async function _readToArrayBuffer(fd: number, start: number, length: number) {\n const buffer = Buffer.alloc(length);\n const {bytesRead} = await read(fd, buffer, 0, length, start);\n if (bytesRead !== length) {\n throw new Error('fs.read failed');\n }\n return toArrayBuffer(buffer);\n}\n"],"mappings":";AACA,OAAOA,EAAE,MAAM,IAAI;AACnB,SAAQC,aAAa,QAAO,UAAU;AACtC,SAAQC,UAAU,EAAEC,UAAU,QAAO,QAAQ;AAI7C,OAAO,IAAIC,OAAO;AAElB,OAAO,IAAIC,IAAI;;AAGf,OAAO,IAAIC,QAAQ;AAEnB,OAAO,IAAIC,YAAY;AAEvB,OAAO,IAAIC,SAAS;AAEpB,OAAO,IAAIC,aAAa;;AAKxB,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAoC;AAE/C,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAK;AAEhB,OAAO,IAAIC,iBAA8C;AAEzD,OAAO,IAAIC,WAAW,GAAGC,OAAO,CAAChB,EAAE,CAAC;;AAIpC,IAAI;EAEFI,OAAO,GAAGF,UAAU,CAACF,EAAE,CAACI,OAAO,CAAC;EAEhCC,IAAI,GAAGH,UAAU,CAACF,EAAE,CAACK,IAAI,CAAC;;EAG1BC,QAAQ,GAAGN,EAAE,CAACM,QAAQ;EAEtBC,YAAY,GAAGP,EAAE,CAACO,YAAY;EAE9BC,SAAS,GAAGL,UAAU,CAACH,EAAE,CAACQ,SAAS,CAAC;EAEpCC,aAAa,GAAGT,EAAE,CAACS,aAAa;;EAKhCC,IAAI,GAAGV,EAAE,CAACU,IAAI;EAEdC,KAAK,GAAIM,EAAU,IACjB,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAKpB,EAAE,CAACW,KAAK,CAACM,EAAE,EAAGI,GAAG,IAAMA,GAAG,GAAGD,MAAM,CAACC,GAAG,CAAC,GAAGF,OAAO,EAAG,CAAC,CAAC;EAE1FP,IAAI,GAAGZ,EAAE,CAACY,IAAI;EAEdC,KAAK,GAAGb,EAAE,CAACa,KAAK;EAEhBC,iBAAiB,GAAGd,EAAE,CAACc,iBAAiB;EAExCC,WAAW,GAAGC,OAAO,CAAChB,EAAE,CAAC;AAC3B,CAAC,CAAC,MAAM;AAER;AAEA,OAAO,eAAesB,kBAAkB,CAACL,EAAU,EAAEM,KAAa,EAAEC,MAAc,EAAE;EAClF,MAAMC,MAAM,GAAGC,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC;EACnC,MAAM;IAACI;EAAS,CAAC,GAAG,MAAMhB,IAAI,CAACK,EAAE,EAAEQ,MAAM,EAAE,CAAC,EAAED,MAAM,EAAED,KAAK,CAAC;EAC5D,IAAIK,SAAS,KAAKJ,MAAM,EAAE;IACxB,MAAM,IAAIK,KAAK,CAAC,gBAAgB,CAAC;EACnC;EACA,OAAO5B,aAAa,CAACwB,MAAM,CAAC;AAC9B"}
1
+ {"version":3,"file":"fs.js","names":["fs","toArrayBuffer","promisify","readdir","stat","readFile","readFileSync","writeFile","writeFileSync","open","close","read","fstat","isSupported","Boolean","_readToArrayBuffer","fd","start","length","buffer","Buffer","alloc","bytesRead","Error"],"sources":["../../../../src/lib/node/fs.ts"],"sourcesContent":["// fs wrapper (promisified fs + avoids bundling fs in browsers)\nimport fs from 'fs';\nimport {toArrayBuffer} from './buffer';\nimport {promisify} from './util';\n\nexport type {Stats} from 'fs';\n\nexport let readdir;\n/** Wrapper for Node.js fs method */\nexport let stat;\n\n/** Wrapper for Node.js fs method */\nexport let readFile;\n/** Wrapper for Node.js fs method */\nexport let readFileSync;\n/** Wrapper for Node.js fs method */\nexport let writeFile;\n/** Wrapper for Node.js fs method */\nexport let writeFileSync;\n\n// file descriptors\n\n/** Wrapper for Node.js fs method */\nexport let open;\n/** Wrapper for Node.js fs method */\nexport let close;\n/** Wrapper for Node.js fs method */\nexport let read;\n/** Wrapper for Node.js fs method */\nexport let fstat;\n\nexport let isSupported = Boolean(fs);\n\n// paths\n\ntry {\n /** Wrapper for Node.js fs method */\n readdir = promisify(fs.readdir);\n /** Wrapper for Node.js fs method */\n stat = promisify(fs.stat);\n\n /** Wrapper for Node.js fs method */\n readFile = promisify(fs.readFile);\n /** Wrapper for Node.js fs method */\n readFileSync = fs.readFileSync;\n /** Wrapper for Node.js fs method */\n writeFile = promisify(fs.writeFile);\n /** Wrapper for Node.js fs method */\n writeFileSync = fs.writeFileSync;\n\n // file descriptors\n\n /** Wrapper for Node.js fs method */\n open = promisify(fs.open);\n /** Wrapper for Node.js fs method */\n close = promisify(fs.close);\n /** Wrapper for Node.js fs method */\n read = promisify(fs.read);\n /** Wrapper for Node.js fs method */\n fstat = promisify(fs.fstat);\n\n isSupported = Boolean(fs);\n} catch {\n // ignore\n}\n\nexport async function _readToArrayBuffer(fd: number, start: number, length: number) {\n const buffer = Buffer.alloc(length);\n const {bytesRead} = await read(fd, buffer, 0, length, start);\n if (bytesRead !== length) {\n throw new Error('fs.read failed');\n }\n return toArrayBuffer(buffer);\n}\n"],"mappings":";AACA,OAAOA,EAAE,MAAM,IAAI;AACnB,SAAQC,aAAa,QAAO,UAAU;AACtC,SAAQC,SAAS,QAAO,QAAQ;AAIhC,OAAO,IAAIC,OAAO;AAElB,OAAO,IAAIC,IAAI;;AAGf,OAAO,IAAIC,QAAQ;AAEnB,OAAO,IAAIC,YAAY;AAEvB,OAAO,IAAIC,SAAS;AAEpB,OAAO,IAAIC,aAAa;;AAKxB,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAK;AAEhB,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAK;AAEhB,OAAO,IAAIC,WAAW,GAAGC,OAAO,CAACd,EAAE,CAAC;;AAIpC,IAAI;EAEFG,OAAO,GAAGD,SAAS,CAACF,EAAE,CAACG,OAAO,CAAC;EAE/BC,IAAI,GAAGF,SAAS,CAACF,EAAE,CAACI,IAAI,CAAC;;EAGzBC,QAAQ,GAAGH,SAAS,CAACF,EAAE,CAACK,QAAQ,CAAC;EAEjCC,YAAY,GAAGN,EAAE,CAACM,YAAY;EAE9BC,SAAS,GAAGL,SAAS,CAACF,EAAE,CAACO,SAAS,CAAC;EAEnCC,aAAa,GAAGR,EAAE,CAACQ,aAAa;;EAKhCC,IAAI,GAAGP,SAAS,CAACF,EAAE,CAACS,IAAI,CAAC;EAEzBC,KAAK,GAAGR,SAAS,CAACF,EAAE,CAACU,KAAK,CAAC;EAE3BC,IAAI,GAAGT,SAAS,CAACF,EAAE,CAACW,IAAI,CAAC;EAEzBC,KAAK,GAAGV,SAAS,CAACF,EAAE,CAACY,KAAK,CAAC;EAE3BC,WAAW,GAAGC,OAAO,CAACd,EAAE,CAAC;AAC3B,CAAC,CAAC,MAAM;AAER;AAEA,OAAO,eAAee,kBAAkB,CAACC,EAAU,EAAEC,KAAa,EAAEC,MAAc,EAAE;EAClF,MAAMC,MAAM,GAAGC,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC;EACnC,MAAM;IAACI;EAAS,CAAC,GAAG,MAAMX,IAAI,CAACK,EAAE,EAAEG,MAAM,EAAE,CAAC,EAAED,MAAM,EAAED,KAAK,CAAC;EAC5D,IAAIK,SAAS,KAAKJ,MAAM,EAAE;IACxB,MAAM,IAAIK,KAAK,CAAC,gBAAgB,CAAC;EACnC;EACA,OAAOtB,aAAa,CAACkB,MAAM,CAAC;AAC9B"}
@@ -1,12 +1,4 @@
1
+ import * as util from 'util';
1
2
 
2
-
3
- export function promisify1(fn) {
4
- return args => new Promise((resolve, reject) => fn(args, (error, callbackArgs) => error ? reject(error) : resolve(callbackArgs)));
5
- }
6
- export function promisify2(fn) {
7
- return (arg1, arg2) => new Promise((resolve, reject) => fn(arg1, arg2, (error, callbackArgs) => error ? reject(error) : resolve(callbackArgs)));
8
- }
9
- export function promisify3(fn) {
10
- return (arg1, arg2, arg3) => new Promise((resolve, reject) => fn(arg1, arg2, arg3, (error, callbackArgs) => error ? reject(error) : resolve(callbackArgs)));
11
- }
3
+ export const promisify = util.promisify;
12
4
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","names":["promisify1","fn","args","Promise","resolve","reject","error","callbackArgs","promisify2","arg1","arg2","promisify3","arg3"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["// @loaders.gl, MIT license\n\n// type Parameter1<T extends (arg1: any, ...args: unknown[]) => unknown> = T extends (\n// arg1: infer P,\n// ...args: unknown[]\n// ) => unknown\n// ? P\n// : never;\n\n// type Parameter2<T extends (arg1: unknown, arg2: any, ...args: unknown[]) => unknown> = T extends (\n// arg1: unknown,\n// arg2: infer P,\n// ...args: unknown[]\n// ) => unknown\n// ? P\n// : never;\n\n// type CallbackParameter2<\n// T extends (arg: unknown, cb: (error: any, value: any) => void) => unknown\n// > = T extends (arg: unknown, cb: (error: any, value: infer P) => void) => unknown ? P : never;\n\n// type CallbackParameter3<\n// T extends (arg: unknown, arg2: unknown, cb: (error: any, value: any) => void) => unknown\n// > = T extends (arg: unknown, arg2: unknown, cb: (error: any, value: infer P) => void) => unknown\n// ? P\n// : never;\n\n// /** Extract the parameters of a function type in a tuple */\n// export type Promisified<F extends (arg1, cb: (error: unknown, value: any) => void) => any> = (\n// arg1: Parameter1<F>\n// ) => Promise<CallbackParameter2<F>>;\n// /** Extract the parameters of a function type in a tuple */\n// export type Promisified2<F extends (arg1, arg2, cb: (error: unknown, value: any) => void) => any> = (\n// arg1: Parameter1<F>,\n// arg2: Parameter2<F>\n// ) => Promise<CallbackParameter3<F>>;\n\n/** Wrapper for Node.js promisify */\ntype Callback<A> = (error: unknown, args: A) => void;\n\n/**\n * Typesafe promisify implementation\n * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34\n * @param fn\n * @returns\n */\nexport function promisify1<T, A>(fn: (args: T, cb: Callback<A>) => void): (args: T) => Promise<A> {\n return (args: T) =>\n new Promise((resolve, reject) =>\n fn(args, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs)))\n );\n}\n\nexport function promisify2<T1, T2, A>(\n fn: (arg1: T1, arg2: T2, cb: Callback<A>) => void\n): (arg1: T1, arg2: T2) => Promise<A> {\n return (arg1: T1, arg2: T2) =>\n new Promise((resolve, reject) =>\n fn(arg1, arg2, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs)))\n );\n}\n\nexport function promisify3<T1, T2, T3, A>(\n fn: (arg1: T1, arg2: T2, arg3: T3, cb: Callback<A>) => void\n): (arg1: T1, arg2: T2, arg3: T3) => Promise<A> {\n return (arg1: T1, arg2: T2, arg3: T3) =>\n new Promise((resolve, reject) =>\n fn(arg1, arg2, arg3, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs)))\n );\n}\n"],"mappings":";;AA8CA,OAAO,SAASA,UAAU,CAAOC,EAAsC,EAA2B;EAChG,OAAQC,IAAO,IACb,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAC1BJ,EAAE,CAACC,IAAI,EAAE,CAACI,KAAK,EAAEC,YAAY,KAAMD,KAAK,GAAGD,MAAM,CAACC,KAAK,CAAC,GAAGF,OAAO,CAACG,YAAY,CAAE,CAAC,CACnF;AACL;AAEA,OAAO,SAASC,UAAU,CACxBP,EAAiD,EACb;EACpC,OAAO,CAACQ,IAAQ,EAAEC,IAAQ,KACxB,IAAIP,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAC1BJ,EAAE,CAACQ,IAAI,EAAEC,IAAI,EAAE,CAACJ,KAAK,EAAEC,YAAY,KAAMD,KAAK,GAAGD,MAAM,CAACC,KAAK,CAAC,GAAGF,OAAO,CAACG,YAAY,CAAE,CAAC,CACzF;AACL;AAEA,OAAO,SAASI,UAAU,CACxBV,EAA2D,EACb;EAC9C,OAAO,CAACQ,IAAQ,EAAEC,IAAQ,EAAEE,IAAQ,KAClC,IAAIT,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAC1BJ,EAAE,CAACQ,IAAI,EAAEC,IAAI,EAAEE,IAAI,EAAE,CAACN,KAAK,EAAEC,YAAY,KAAMD,KAAK,GAAGD,MAAM,CAACC,KAAK,CAAC,GAAGF,OAAO,CAACG,YAAY,CAAE,CAAC,CAC/F;AACL"}
1
+ {"version":3,"file":"util.js","names":["util","promisify"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["import * as util from 'util';\n\n/** Wrapper for Node.js promisify */\nexport const promisify = util.promisify;\n"],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,MAAM;;AAG5B,OAAO,MAAMC,SAAS,GAAGD,IAAI,CAACC,SAAS"}
package/dist/index.d.ts CHANGED
@@ -5,9 +5,10 @@ export { createLoaderWorker } from './lib/worker-loader-utils/create-loader-work
5
5
  export { parseWithWorker, canParseWithWorker } from './lib/worker-loader-utils/parse-with-worker';
6
6
  export { canEncodeWithWorker } from './lib/worker-loader-utils/encode-with-worker';
7
7
  export { parseJSON } from './lib/parser-utils/parse-json';
8
- export { sliceArrayBuffer, concatenateArrayBuffers, concatenateTypedArrays, compareArrayBuffers } from './lib/binary-utils/array-buffer-utils';
8
+ export { toArrayBuffer, sliceArrayBuffer, concatenateArrayBuffers, concatenateTypedArrays, compareArrayBuffers } from './lib/binary-utils/array-buffer-utils';
9
9
  export { padToNBytes, copyToArray, copyArrayBuffer } from './lib/binary-utils/memory-copy-utils';
10
- export { padStringToByteAlignment, copyStringToDataView, copyBinaryToDataView, copyPaddedArrayBufferToDataView, copyPaddedStringToDataView } from './lib/binary-utils/dataview-copy-utils';
10
+ export { copyPaddedArrayBufferToDataView, copyPaddedStringToDataView } from './lib/binary-utils/binary-copy-utils';
11
+ export { padStringToByteAlignment, copyStringToDataView, copyBinaryToDataView } from './lib/binary-utils/encode-utils';
11
12
  export { getFirstCharacters, getMagicString } from './lib/binary-utils/get-first-characters';
12
13
  export { makeTextEncoderIterator, makeTextDecoderIterator, makeLineIterator, makeNumberedLineIterator } from './lib/iterators/text-iterators';
13
14
  export { forEach, concatenateArrayBuffersAsync } from './lib/iterators/async-iteration';
@@ -15,17 +16,13 @@ export { default as RequestScheduler } from './lib/request-utils/request-schedul
15
16
  export { setPathPrefix, getPathPrefix, resolvePath } from './lib/path-utils/file-aliases';
16
17
  export { addAliases as _addAliases } from './lib/path-utils/file-aliases';
17
18
  export { JSONLoader } from './json-loader';
18
- export { isBuffer, toBuffer, toArrayBuffer } from './lib/binary-utils/memory-conversion-utils';
19
- export { promisify1, promisify2 } from './lib/node/util';
20
19
  import * as path from './lib/path-utils/path';
21
20
  export { path };
21
+ export { isBuffer, toBuffer, bufferToArrayBuffer } from './lib/binary-utils/buffer-utils';
22
+ import * as util from './lib/node/util';
23
+ export { util };
24
+ export { promisify } from './lib/node/util';
22
25
  import * as fs from './lib/node/fs';
23
26
  export { fs };
24
- import * as stream from './lib/node/stream';
25
- export { stream };
26
- export type { ReadableFile } from './lib/filesystems/readable-file';
27
- export { makeReadableFile } from './lib/filesystems/readable-file';
28
- export type { WritableFile } from './lib/filesystems/writable-file';
29
- export { makeWritableFile } from './lib/filesystems/writable-file';
30
27
  export { default as _NodeFileSystem } from './lib/filesystems/node-filesystem';
31
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AAGjF,OAAO,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,iCAAiC,CAAC;AAGtF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AAGlF,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAOzC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAC,MAAM,4CAA4C,CAAC;AAK7F,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAGvD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,CAAC;AAGd,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAC,EAAE,EAAC,CAAC;AAGZ,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,CAAC;AAGhB,YAAY,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAEjE,YAAY,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AAGjF,OAAO,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,iCAAiC,CAAC;AAGtF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AAGlF,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAOzC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,CAAC;AAGd,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAKxF,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,IAAI,EAAC,CAAC;AAEd,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAC,EAAE,EAAC,CAAC;AAGZ,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC"}