@loaders.gl/loader-utils 3.3.0-alpha.9 → 3.3.0

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 (118) hide show
  1. package/dist/es5/index.js +36 -22
  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 +0 -30
  6. package/dist/es5/lib/binary-utils/array-buffer-utils.js.map +1 -1
  7. package/dist/es5/lib/binary-utils/{binary-copy-utils.js → dataview-copy-utils.js} +33 -1
  8. package/dist/es5/lib/binary-utils/dataview-copy-utils.js.map +1 -0
  9. package/dist/es5/lib/binary-utils/get-first-characters.js +2 -0
  10. package/dist/es5/lib/binary-utils/get-first-characters.js.map +1 -1
  11. package/dist/es5/lib/binary-utils/{buffer-utils.js → memory-conversion-utils.js} +26 -7
  12. package/dist/es5/lib/binary-utils/memory-conversion-utils.js.map +1 -0
  13. package/dist/es5/lib/filesystems/readable-file.js +100 -0
  14. package/dist/es5/lib/filesystems/readable-file.js.map +1 -0
  15. package/dist/es5/lib/filesystems/writable-file.js +89 -0
  16. package/dist/es5/lib/filesystems/writable-file.js.map +1 -0
  17. package/dist/es5/lib/loader-utils/buffer-utils.js +19 -0
  18. package/dist/es5/lib/loader-utils/buffer-utils.js.map +1 -0
  19. package/dist/es5/lib/node/buffer.js +5 -8
  20. package/dist/es5/lib/node/buffer.js.map +1 -1
  21. package/dist/es5/lib/node/fs.js +18 -9
  22. package/dist/es5/lib/node/fs.js.map +1 -1
  23. package/dist/es5/lib/node/stream.js +20 -0
  24. package/dist/es5/lib/node/stream.js.map +1 -0
  25. package/dist/es5/lib/node/util.js +31 -7
  26. package/dist/es5/lib/node/util.js.map +1 -1
  27. package/dist/esm/index.js +11 -9
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/json-loader.js +1 -1
  30. package/dist/esm/json-loader.js.map +1 -1
  31. package/dist/esm/lib/binary-utils/array-buffer-utils.js +0 -27
  32. package/dist/esm/lib/binary-utils/array-buffer-utils.js.map +1 -1
  33. package/dist/esm/lib/binary-utils/{binary-copy-utils.js → dataview-copy-utils.js} +31 -1
  34. package/dist/esm/lib/binary-utils/dataview-copy-utils.js.map +1 -0
  35. package/dist/esm/lib/binary-utils/get-first-characters.js +3 -0
  36. package/dist/esm/lib/binary-utils/get-first-characters.js.map +1 -1
  37. package/dist/esm/lib/binary-utils/memory-conversion-utils.js +38 -0
  38. package/dist/esm/lib/binary-utils/memory-conversion-utils.js.map +1 -0
  39. package/dist/esm/lib/filesystems/readable-file.js +22 -0
  40. package/dist/esm/lib/filesystems/readable-file.js.map +1 -0
  41. package/dist/esm/lib/filesystems/writable-file.js +21 -0
  42. package/dist/esm/lib/filesystems/writable-file.js.map +1 -0
  43. package/dist/esm/lib/loader-utils/buffer-utils.js +13 -0
  44. package/dist/esm/lib/loader-utils/buffer-utils.js.map +1 -0
  45. package/dist/esm/lib/node/buffer.js +5 -9
  46. package/dist/esm/lib/node/buffer.js.map +1 -1
  47. package/dist/esm/lib/node/fs.js +11 -9
  48. package/dist/esm/lib/node/fs.js.map +1 -1
  49. package/dist/esm/lib/node/stream.js +11 -0
  50. package/dist/esm/lib/node/stream.js.map +1 -0
  51. package/dist/esm/lib/node/util.js +10 -2
  52. package/dist/esm/lib/node/util.js.map +1 -1
  53. package/dist/index.d.ts +10 -7
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +25 -23
  56. package/dist/lib/binary-utils/array-buffer-utils.d.ts +4 -8
  57. package/dist/lib/binary-utils/array-buffer-utils.d.ts.map +1 -1
  58. package/dist/lib/binary-utils/array-buffer-utils.js +5 -36
  59. package/dist/lib/binary-utils/dataview-copy-utils.d.ts +43 -0
  60. package/dist/lib/binary-utils/dataview-copy-utils.d.ts.map +1 -0
  61. package/dist/lib/binary-utils/{binary-copy-utils.js → dataview-copy-utils.js} +51 -5
  62. package/dist/lib/binary-utils/get-first-characters.d.ts +15 -1
  63. package/dist/lib/binary-utils/get-first-characters.d.ts.map +1 -1
  64. package/dist/lib/binary-utils/get-first-characters.js +15 -0
  65. package/dist/lib/binary-utils/{buffer-utils.d.ts → memory-conversion-utils.d.ts} +3 -4
  66. package/dist/lib/binary-utils/memory-conversion-utils.d.ts.map +1 -0
  67. package/dist/lib/binary-utils/{buffer-utils.js → memory-conversion-utils.js} +28 -9
  68. package/dist/lib/filesystems/readable-file.d.ts +10 -0
  69. package/dist/lib/filesystems/readable-file.d.ts.map +1 -0
  70. package/dist/lib/filesystems/readable-file.js +25 -0
  71. package/dist/lib/filesystems/writable-file.d.ts +18 -0
  72. package/dist/lib/filesystems/writable-file.d.ts.map +1 -0
  73. package/dist/lib/filesystems/writable-file.js +48 -0
  74. package/dist/lib/loader-utils/buffer-utils.d.ts +10 -0
  75. package/dist/lib/loader-utils/buffer-utils.d.ts.map +1 -0
  76. package/dist/lib/loader-utils/buffer-utils.js +22 -0
  77. package/dist/lib/node/buffer.d.ts +3 -1
  78. package/dist/lib/node/buffer.d.ts.map +1 -1
  79. package/dist/lib/node/buffer.js +7 -8
  80. package/dist/lib/node/fs.d.ts +4 -2
  81. package/dist/lib/node/fs.d.ts.map +1 -1
  82. package/dist/lib/node/fs.js +10 -9
  83. package/dist/lib/node/stream.d.ts +4 -0
  84. package/dist/lib/node/stream.d.ts.map +1 -0
  85. package/dist/lib/node/stream.js +17 -0
  86. package/dist/lib/node/util.d.ts +11 -3
  87. package/dist/lib/node/util.d.ts.map +1 -1
  88. package/dist/lib/node/util.js +20 -27
  89. package/package.json +5 -4
  90. package/src/index.ts +22 -18
  91. package/src/lib/binary-utils/array-buffer-utils.ts +4 -40
  92. package/src/lib/binary-utils/{binary-copy-utils.ts → dataview-copy-utils.ts} +57 -5
  93. package/src/lib/binary-utils/get-first-characters.ts +17 -1
  94. package/src/lib/binary-utils/memory-conversion-utils.ts +53 -0
  95. package/src/lib/filesystems/readable-file.ts +30 -0
  96. package/src/lib/filesystems/writable-file.ts +44 -0
  97. package/src/lib/loader-utils/buffer-utils.ts +18 -0
  98. package/src/lib/node/buffer.ts +9 -10
  99. package/src/lib/node/fs.ts +16 -11
  100. package/src/lib/node/stream.ts +18 -0
  101. package/src/lib/node/util.ts +68 -2
  102. package/dist/es5/lib/binary-utils/binary-copy-utils.js.map +0 -1
  103. package/dist/es5/lib/binary-utils/buffer-utils.js.map +0 -1
  104. package/dist/es5/lib/binary-utils/encode-utils.js +0 -36
  105. package/dist/es5/lib/binary-utils/encode-utils.js.map +0 -1
  106. package/dist/esm/lib/binary-utils/binary-copy-utils.js.map +0 -1
  107. package/dist/esm/lib/binary-utils/buffer-utils.js +0 -18
  108. package/dist/esm/lib/binary-utils/buffer-utils.js.map +0 -1
  109. package/dist/esm/lib/binary-utils/encode-utils.js +0 -29
  110. package/dist/esm/lib/binary-utils/encode-utils.js.map +0 -1
  111. package/dist/lib/binary-utils/binary-copy-utils.d.ts +0 -24
  112. package/dist/lib/binary-utils/binary-copy-utils.d.ts.map +0 -1
  113. package/dist/lib/binary-utils/buffer-utils.d.ts.map +0 -1
  114. package/dist/lib/binary-utils/encode-utils.d.ts +0 -4
  115. package/dist/lib/binary-utils/encode-utils.d.ts.map +0 -1
  116. package/dist/lib/binary-utils/encode-utils.js +0 -35
  117. package/src/lib/binary-utils/buffer-utils.ts +0 -28
  118. package/src/lib/binary-utils/encode-utils.ts +0 -32
package/dist/es5/index.js CHANGED
@@ -35,12 +35,6 @@ Object.defineProperty(exports, "assert", {
35
35
  return _assert.assert;
36
36
  }
37
37
  });
38
- Object.defineProperty(exports, "bufferToArrayBuffer", {
39
- enumerable: true,
40
- get: function get() {
41
- return _bufferUtils.bufferToArrayBuffer;
42
- }
43
- });
44
38
  Object.defineProperty(exports, "canEncodeWithWorker", {
45
39
  enumerable: true,
46
40
  get: function get() {
@@ -86,25 +80,25 @@ Object.defineProperty(exports, "copyArrayBuffer", {
86
80
  Object.defineProperty(exports, "copyBinaryToDataView", {
87
81
  enumerable: true,
88
82
  get: function get() {
89
- return _encodeUtils.copyBinaryToDataView;
83
+ return _dataviewCopyUtils.copyBinaryToDataView;
90
84
  }
91
85
  });
92
86
  Object.defineProperty(exports, "copyPaddedArrayBufferToDataView", {
93
87
  enumerable: true,
94
88
  get: function get() {
95
- return _binaryCopyUtils.copyPaddedArrayBufferToDataView;
89
+ return _dataviewCopyUtils.copyPaddedArrayBufferToDataView;
96
90
  }
97
91
  });
98
92
  Object.defineProperty(exports, "copyPaddedStringToDataView", {
99
93
  enumerable: true,
100
94
  get: function get() {
101
- return _binaryCopyUtils.copyPaddedStringToDataView;
95
+ return _dataviewCopyUtils.copyPaddedStringToDataView;
102
96
  }
103
97
  });
104
98
  Object.defineProperty(exports, "copyStringToDataView", {
105
99
  enumerable: true,
106
100
  get: function get() {
107
- return _encodeUtils.copyStringToDataView;
101
+ return _dataviewCopyUtils.copyStringToDataView;
108
102
  }
109
103
  });
110
104
  Object.defineProperty(exports, "copyToArray", {
@@ -165,7 +159,7 @@ Object.defineProperty(exports, "isBrowser", {
165
159
  Object.defineProperty(exports, "isBuffer", {
166
160
  enumerable: true,
167
161
  get: function get() {
168
- return _bufferUtils.isBuffer;
162
+ return _memoryConversionUtils.isBuffer;
169
163
  }
170
164
  });
171
165
  Object.defineProperty(exports, "isWorker", {
@@ -186,6 +180,12 @@ Object.defineProperty(exports, "makeNumberedLineIterator", {
186
180
  return _textIterators.makeNumberedLineIterator;
187
181
  }
188
182
  });
183
+ Object.defineProperty(exports, "makeReadableFile", {
184
+ enumerable: true,
185
+ get: function get() {
186
+ return _readableFile.makeReadableFile;
187
+ }
188
+ });
189
189
  Object.defineProperty(exports, "makeTextDecoderIterator", {
190
190
  enumerable: true,
191
191
  get: function get() {
@@ -198,6 +198,12 @@ Object.defineProperty(exports, "makeTextEncoderIterator", {
198
198
  return _textIterators.makeTextEncoderIterator;
199
199
  }
200
200
  });
201
+ Object.defineProperty(exports, "makeWritableFile", {
202
+ enumerable: true,
203
+ get: function get() {
204
+ return _writableFile.makeWritableFile;
205
+ }
206
+ });
201
207
  Object.defineProperty(exports, "nodeVersion", {
202
208
  enumerable: true,
203
209
  get: function get() {
@@ -207,7 +213,7 @@ Object.defineProperty(exports, "nodeVersion", {
207
213
  Object.defineProperty(exports, "padStringToByteAlignment", {
208
214
  enumerable: true,
209
215
  get: function get() {
210
- return _encodeUtils.padStringToByteAlignment;
216
+ return _dataviewCopyUtils.padStringToByteAlignment;
211
217
  }
212
218
  });
213
219
  Object.defineProperty(exports, "padToNBytes", {
@@ -229,10 +235,16 @@ Object.defineProperty(exports, "parseWithWorker", {
229
235
  }
230
236
  });
231
237
  exports.path = void 0;
232
- Object.defineProperty(exports, "promisify", {
238
+ Object.defineProperty(exports, "promisify1", {
239
+ enumerable: true,
240
+ get: function get() {
241
+ return _util.promisify1;
242
+ }
243
+ });
244
+ Object.defineProperty(exports, "promisify2", {
233
245
  enumerable: true,
234
246
  get: function get() {
235
- return util.promisify;
247
+ return _util.promisify2;
236
248
  }
237
249
  });
238
250
  Object.defineProperty(exports, "resolvePath", {
@@ -259,19 +271,19 @@ Object.defineProperty(exports, "sliceArrayBuffer", {
259
271
  return _arrayBufferUtils.sliceArrayBuffer;
260
272
  }
261
273
  });
274
+ exports.stream = void 0;
262
275
  Object.defineProperty(exports, "toArrayBuffer", {
263
276
  enumerable: true,
264
277
  get: function get() {
265
- return _arrayBufferUtils.toArrayBuffer;
278
+ return _memoryConversionUtils.toArrayBuffer;
266
279
  }
267
280
  });
268
281
  Object.defineProperty(exports, "toBuffer", {
269
282
  enumerable: true,
270
283
  get: function get() {
271
- return _bufferUtils.toBuffer;
284
+ return _memoryConversionUtils.toBuffer;
272
285
  }
273
286
  });
274
- exports.util = void 0;
275
287
  Object.defineProperty(exports, "window", {
276
288
  enumerable: true,
277
289
  get: function get() {
@@ -286,21 +298,23 @@ var _encodeWithWorker = require("./lib/worker-loader-utils/encode-with-worker");
286
298
  var _parseJson = require("./lib/parser-utils/parse-json");
287
299
  var _arrayBufferUtils = require("./lib/binary-utils/array-buffer-utils");
288
300
  var _memoryCopyUtils = require("./lib/binary-utils/memory-copy-utils");
289
- var _binaryCopyUtils = require("./lib/binary-utils/binary-copy-utils");
290
- var _encodeUtils = require("./lib/binary-utils/encode-utils");
301
+ var _dataviewCopyUtils = require("./lib/binary-utils/dataview-copy-utils");
291
302
  var _getFirstCharacters = require("./lib/binary-utils/get-first-characters");
292
303
  var _textIterators = require("./lib/iterators/text-iterators");
293
304
  var _asyncIteration = require("./lib/iterators/async-iteration");
294
305
  var _requestScheduler = _interopRequireDefault(require("./lib/request-utils/request-scheduler"));
295
306
  var _fileAliases = require("./lib/path-utils/file-aliases");
296
307
  var _jsonLoader = require("./json-loader");
308
+ var _memoryConversionUtils = require("./lib/binary-utils/memory-conversion-utils");
309
+ var _util = require("./lib/node/util");
297
310
  var path = _interopRequireWildcard(require("./lib/path-utils/path"));
298
311
  exports.path = path;
299
- var _bufferUtils = require("./lib/binary-utils/buffer-utils");
300
- var util = _interopRequireWildcard(require("./lib/node/util"));
301
- exports.util = util;
302
312
  var fs = _interopRequireWildcard(require("./lib/node/fs"));
303
313
  exports.fs = fs;
314
+ var stream = _interopRequireWildcard(require("./lib/node/stream"));
315
+ exports.stream = stream;
316
+ var _readableFile = require("./lib/filesystems/readable-file");
317
+ var _writableFile = require("./lib/filesystems/writable-file");
304
318
  var _nodeFilesystem = _interopRequireDefault(require("./lib/filesystems/node-filesystem"));
305
319
  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); }
306
320
  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; }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"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;AACA;AAWA;AACA;AACA;AAGA;AAGA;AAOA;AACA;AAIA;AAKA;AAGA;AAMA;AAGA;AAGA;AAIA;AAOA;AAA8C;AAI9C;AAKA;AAAwC;AAMxC;AAAoC;AAIpC;AAA6E;AAAA"}
1
+ {"version":3,"file":"index.js","names":[],"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;AACA;AAWA;AACA;AACA;AAGA;AAGA;AAMA;AACA;AAOA;AAGA;AAMA;AAGA;AAGA;AAIA;AAOA;AAKA;AAGA;AAA8C;AAI9C;AAAoC;AAIpC;AAA4C;AAK5C;AAGA;AAEA;AAA6E;AAAA"}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports._typecheckJSONLoader = exports.JSONLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var VERSION = typeof "3.3.0-alpha.9" !== 'undefined' ? "3.3.0-alpha.9" : 'latest';
10
+ var VERSION = typeof "3.3.0" !== 'undefined' ? "3.3.0" : 'latest';
11
11
 
12
12
  var JSONLoader = {
13
13
  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,IAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;;AAMpE,IAAMC,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,EAAbA,aAAa;EACbC,KAAK;IAAA,uEAAE,iBAAOC,WAAW;MAAA;QAAA;UAAA;YAAA;cAAA,iCAAKF,aAAa,CAAC,IAAIG,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EAClFG,OAAO,EAAE,CAAC;AACZ,CAAC;;AAAC;AAGF,SAASL,aAAa,CAACD,IAAI,EAAE;EAC3B,OAAOO,IAAI,CAACL,KAAK,CAACF,IAAI,CAAC;AACzB;AAEO,IAAMQ,oBAAsC,GAAGhB,UAAU;AAAC"}
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,IAAMA,OAAO,GAAG,cAAkB,KAAK,WAAW,aAAiB,QAAQ;;AAMpE,IAAMC,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,EAAbA,aAAa;EACbC,KAAK;IAAA,uEAAE,iBAAOC,WAAW;MAAA;QAAA;UAAA;YAAA;cAAA,iCAAKF,aAAa,CAAC,IAAIG,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EAClFG,OAAO,EAAE,CAAC;AACZ,CAAC;;AAAC;AAGF,SAASL,aAAa,CAACD,IAAI,EAAE;EAC3B,OAAOO,IAAI,CAACL,KAAK,CAACF,IAAI,CAAC;AACzB;AAEO,IAAMQ,oBAAsC,GAAGhB,UAAU;AAAC"}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -8,38 +7,9 @@ exports.compareArrayBuffers = compareArrayBuffers;
8
7
  exports.concatenateArrayBuffers = concatenateArrayBuffers;
9
8
  exports.concatenateTypedArrays = concatenateTypedArrays;
10
9
  exports.sliceArrayBuffer = sliceArrayBuffer;
11
- exports.toArrayBuffer = toArrayBuffer;
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
- var _bufferUtils = require("./buffer-utils");
14
10
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
11
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
12
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17
- function toArrayBuffer(data) {
18
- if ((0, _bufferUtils.isBuffer)(data)) {
19
- return (0, _bufferUtils.bufferToArrayBuffer)(data);
20
- }
21
- if (data instanceof ArrayBuffer) {
22
- return data;
23
- }
24
-
25
- if (ArrayBuffer.isView(data)) {
26
- if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
27
- return data.buffer;
28
- }
29
- return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
30
- }
31
- if (typeof data === 'string') {
32
- var text = data;
33
- var uint8Array = new TextEncoder().encode(text);
34
- return uint8Array.buffer;
35
- }
36
-
37
- if (data && (0, _typeof2.default)(data) === 'object' && data._toArrayBuffer) {
38
- return data._toArrayBuffer();
39
- }
40
- throw new Error('toArrayBuffer');
41
- }
42
-
43
13
  function compareArrayBuffers(arrayBuffer1, arrayBuffer2, byteLength) {
44
14
  byteLength = byteLength || arrayBuffer1.byteLength;
45
15
  if (arrayBuffer1.byteLength < byteLength || arrayBuffer2.byteLength < byteLength) {
@@ -1 +1 @@
1
- {"version":3,"file":"array-buffer-utils.js","names":["toArrayBuffer","data","isBuffer","bufferToArrayBuffer","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
+ {"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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"}
@@ -3,9 +3,41 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.copyBinaryToDataView = copyBinaryToDataView;
6
7
  exports.copyPaddedArrayBufferToDataView = copyPaddedArrayBufferToDataView;
7
8
  exports.copyPaddedStringToDataView = copyPaddedStringToDataView;
9
+ exports.copyStringToDataView = copyStringToDataView;
10
+ exports.padStringToByteAlignment = padStringToByteAlignment;
8
11
  var _memoryCopyUtils = require("./memory-copy-utils");
12
+
13
+ function padStringToByteAlignment(string, byteAlignment) {
14
+ var length = string.length;
15
+ var paddedLength = Math.ceil(length / byteAlignment) * byteAlignment;
16
+ var padding = paddedLength - length;
17
+ var whitespace = '';
18
+ for (var i = 0; i < padding; ++i) {
19
+ whitespace += ' ';
20
+ }
21
+ return string + whitespace;
22
+ }
23
+
24
+ function copyStringToDataView(dataView, byteOffset, string, byteLength) {
25
+ if (dataView) {
26
+ for (var i = 0; i < byteLength; i++) {
27
+ dataView.setUint8(byteOffset + i, string.charCodeAt(i));
28
+ }
29
+ }
30
+ return byteOffset + byteLength;
31
+ }
32
+ function copyBinaryToDataView(dataView, byteOffset, binary, byteLength) {
33
+ if (dataView) {
34
+ for (var i = 0; i < byteLength; i++) {
35
+ dataView.setUint8(byteOffset + i, binary[i]);
36
+ }
37
+ }
38
+ return byteOffset + byteLength;
39
+ }
40
+
9
41
  function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
10
42
  var paddedLength = (0, _memoryCopyUtils.padToNBytes)(sourceBuffer.byteLength, padding);
11
43
  var padLength = paddedLength - sourceBuffer.byteLength;
@@ -28,4 +60,4 @@ function copyPaddedStringToDataView(dataView, byteOffset, string, padding) {
28
60
  byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);
29
61
  return byteOffset;
30
62
  }
31
- //# sourceMappingURL=binary-copy-utils.js.map
63
+ //# sourceMappingURL=dataview-copy-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataview-copy-utils.js","names":["padStringToByteAlignment","string","byteAlignment","length","paddedLength","Math","ceil","padding","whitespace","i","copyStringToDataView","dataView","byteOffset","byteLength","setUint8","charCodeAt","copyBinaryToDataView","binary","copyPaddedArrayBufferToDataView","sourceBuffer","padToNBytes","padLength","targetArray","Uint8Array","buffer","sourceArray","set","copyPaddedStringToDataView","textEncoder","TextEncoder","stringBuffer","encode"],"sources":["../../../../src/lib/binary-utils/dataview-copy-utils.ts"],"sourcesContent":["// loaders./gl, MIT license\n\nimport {TypedArray} from '../../types';\nimport {padToNBytes} from './memory-copy-utils';\n\n/**\n * Helper function that pads a string with spaces to fit a certain byte alignment\n * @param string\n * @param byteAlignment\n * @returns\n *\n * @todo PERFORMANCE IDEA: No need to copy string twice...\n */\nexport function padStringToByteAlignment(string: string, byteAlignment: number): string {\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\n/**\n *\n * @param dataView\n * @param byteOffset\n * @param string\n * @param byteLength\n * @returns\n */\nexport function copyStringToDataView(\n dataView: DataView,\n byteOffset: number,\n string: string,\n byteLength: number\n): number {\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\n/**\n * Copy sourceBuffer to dataView with some padding\n *\n * @param dataView - destination data container. If null - only new offset is calculated\n * @param byteOffset - destination byte offset to copy to\n * @param sourceBuffer - source data buffer\n * @param 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): number {\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":";;;;;;;;;;AAGA;;AAUO,SAASA,wBAAwB,CAACC,MAAc,EAAEC,aAAqB,EAAU;EACtF,IAAMC,MAAM,GAAGF,MAAM,CAACE,MAAM;EAC5B,IAAMC,YAAY,GAAGC,IAAI,CAACC,IAAI,CAACH,MAAM,GAAGD,aAAa,CAAC,GAAGA,aAAa;EACtE,IAAMK,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;;AAUO,SAASE,oBAAoB,CAClCC,QAAkB,EAClBC,UAAkB,EAClBX,MAAc,EACdY,UAAkB,EACV;EACR,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;AAEO,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;;AAYO,SAASK,+BAA+B,CAC7CP,QAAyB,EACzBC,UAAkB,EAClBO,YAAwB,EACxBZ,OAAe,EACP;EACR,IAAMH,YAAY,GAAG,IAAAgB,4BAAW,EAACD,YAAY,CAACN,UAAU,EAAEN,OAAO,CAAC;EAClE,IAAMc,SAAS,GAAGjB,YAAY,GAAGe,YAAY,CAACN,UAAU;EAExD,IAAIF,QAAQ,EAAE;IAEZ,IAAMW,WAAW,GAAG,IAAIC,UAAU,CAChCZ,QAAQ,CAACa,MAAM,EACfb,QAAQ,CAACC,UAAU,GAAGA,UAAU,EAChCO,YAAY,CAACN,UAAU,CACxB;IACD,IAAMY,WAAW,GAAG,IAAIF,UAAU,CAACJ,YAAY,CAAC;IAChDG,WAAW,CAACI,GAAG,CAACD,WAAW,CAAC;;IAG5B,KAAK,IAAIhB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,SAAS,EAAE,EAAEZ,CAAC,EAAE;MAElCE,QAAQ,CAACG,QAAQ,CAACF,UAAU,GAAGO,YAAY,CAACN,UAAU,GAAGJ,CAAC,EAAE,IAAI,CAAC;IACnE;EACF;EACAG,UAAU,IAAIR,YAAY;EAC1B,OAAOQ,UAAU;AACnB;;AAYO,SAASe,0BAA0B,CACxChB,QAAyB,EACzBC,UAAkB,EAClBX,MAAc,EACdM,OAAe,EACP;EACR,IAAMqB,WAAW,GAAG,IAAIC,WAAW,EAAE;EAGrC,IAAMC,YAAY,GAAGF,WAAW,CAACG,MAAM,CAAC9B,MAAM,CAAC;EAE/CW,UAAU,GAAGM,+BAA+B,CAACP,QAAQ,EAAEC,UAAU,EAAEkB,YAAY,EAAEvB,OAAO,CAAC;EAEzF,OAAOK,UAAU;AACnB"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getFirstCharacters = getFirstCharacters;
7
7
  exports.getMagicString = getMagicString;
8
+
8
9
  function getFirstCharacters(data) {
9
10
  var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
10
11
  if (typeof data === 'string') {
@@ -17,6 +18,7 @@ function getFirstCharacters(data) {
17
18
  }
18
19
  return '';
19
20
  }
21
+
20
22
  function getMagicString(arrayBuffer, byteOffset, length) {
21
23
  if (arrayBuffer.byteLength <= byteOffset + length) {
22
24
  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":["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":";;;;;;;AAAO,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,IAAMI,UAAU,GAAG,CAAC;IACpB,OAAOF,cAAc,CAACL,IAAI,EAAEO,UAAU,EAAEN,MAAM,CAAC;EACjD;EACA,OAAO,EAAE;AACX;AAEO,SAASI,cAAc,CAC5BG,WAAwB,EACxBD,UAAkB,EAClBN,MAAc,EACN;EACR,IAAIO,WAAW,CAACC,UAAU,IAAIF,UAAU,GAAGN,MAAM,EAAE;IACjD,OAAO,EAAE;EACX;EACA,IAAMS,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":["// 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":";;;;;;;;AAQO,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,IAAMI,UAAU,GAAG,CAAC;IACpB,OAAOF,cAAc,CAACL,IAAI,EAAEO,UAAU,EAAEN,MAAM,CAAC;EACjD;EACA,OAAO,EAAE;AACX;;AAUO,SAASI,cAAc,CAC5BG,WAAwB,EACxBD,UAAkB,EAClBN,MAAc,EACN;EACR,IAAIO,WAAW,CAACC,UAAU,IAAIF,UAAU,GAAGN,MAAM,EAAE;IACjD,OAAO,EAAE;EACX;EACA,IAAMS,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"}
@@ -5,13 +5,14 @@ var _typeof3 = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.bufferToArrayBuffer = bufferToArrayBuffer;
9
8
  exports.isBuffer = isBuffer;
9
+ exports.toArrayBuffer = toArrayBuffer;
10
10
  exports.toBuffer = toBuffer;
11
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
12
  var node = _interopRequireWildcard(require("../node/buffer"));
13
13
  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); }
14
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
15
+
15
16
  function isBuffer(value) {
16
17
  return value && (0, _typeof2.default)(value) === 'object' && value.isBuffer;
17
18
  }
@@ -20,11 +21,29 @@ function toBuffer(data) {
20
21
  return node.toBuffer ? node.toBuffer(data) : data;
21
22
  }
22
23
 
23
- function bufferToArrayBuffer(buffer) {
24
- if (isBuffer(buffer)) {
25
- var typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
26
- return typedArray.slice().buffer;
24
+ function toArrayBuffer(data) {
25
+ if (isBuffer(data)) {
26
+ return node.toArrayBuffer(data);
27
+ }
28
+ if (data instanceof ArrayBuffer) {
29
+ return data;
30
+ }
31
+
32
+ if (ArrayBuffer.isView(data)) {
33
+ if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
34
+ return data.buffer;
35
+ }
36
+ return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
37
+ }
38
+ if (typeof data === 'string') {
39
+ var text = data;
40
+ var uint8Array = new TextEncoder().encode(text);
41
+ return uint8Array.buffer;
42
+ }
43
+
44
+ if (data && (0, _typeof2.default)(data) === 'object' && data._toArrayBuffer) {
45
+ return data._toArrayBuffer();
27
46
  }
28
- return buffer;
47
+ throw new Error('toArrayBuffer');
29
48
  }
30
- //# sourceMappingURL=buffer-utils.js.map
49
+ //# sourceMappingURL=memory-conversion-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-conversion-utils.js","names":["isBuffer","value","toBuffer","data","node","toArrayBuffer","ArrayBuffer","isView","byteOffset","byteLength","buffer","slice","text","uint8Array","TextEncoder","encode","_toArrayBuffer","Error"],"sources":["../../../../src/lib/binary-utils/memory-conversion-utils.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport * 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 * Convert an object to an array buffer\n */\nexport function toArrayBuffer(data: unknown): ArrayBuffer {\n // Note: Should be called first, Buffers can trigger other detections below\n if (isBuffer(data)) {\n return node.toArrayBuffer(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 as any)._toArrayBuffer) {\n return (data as any)._toArrayBuffer();\n }\n\n throw new Error('toArrayBuffer');\n}\n"],"mappings":";;;;;;;;;;;AAEA;AAAuC;AAAA;;AAKhC,SAASA,QAAQ,CAACC,KAAU,EAAW;EAC5C,OAAOA,KAAK,IAAI,sBAAOA,KAAK,MAAK,QAAQ,IAAIA,KAAK,CAACD,QAAQ;AAC7D;;AAMO,SAASE,QAAQ,CAACC,IAAS,EAAU;EAC1C,OAAOC,IAAI,CAACF,QAAQ,GAAGE,IAAI,CAACF,QAAQ,CAACC,IAAI,CAAC,GAAGA,IAAI;AACnD;;AAKO,SAASE,aAAa,CAACF,IAAa,EAAe;EAExD,IAAIH,QAAQ,CAACG,IAAI,CAAC,EAAE;IAClB,OAAOC,IAAI,CAACC,aAAa,CAACF,IAAI,CAAC;EACjC;EAEA,IAAIA,IAAI,YAAYG,WAAW,EAAE;IAC/B,OAAOH,IAAI;EACb;;EAGA,IAAIG,WAAW,CAACC,MAAM,CAACJ,IAAI,CAAC,EAAE;IAC5B,IAAIA,IAAI,CAACK,UAAU,KAAK,CAAC,IAAIL,IAAI,CAACM,UAAU,KAAKN,IAAI,CAACO,MAAM,CAACD,UAAU,EAAE;MACvE,OAAON,IAAI,CAACO,MAAM;IACpB;IACA,OAAOP,IAAI,CAACO,MAAM,CAACC,KAAK,CAACR,IAAI,CAACK,UAAU,EAAEL,IAAI,CAACK,UAAU,GAAGL,IAAI,CAACM,UAAU,CAAC;EAC9E;EAEA,IAAI,OAAON,IAAI,KAAK,QAAQ,EAAE;IAC5B,IAAMS,IAAI,GAAGT,IAAI;IACjB,IAAMU,UAAU,GAAG,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACH,IAAI,CAAC;IACjD,OAAOC,UAAU,CAACH,MAAM;EAC1B;;EAGA,IAAIP,IAAI,IAAI,sBAAOA,IAAI,MAAK,QAAQ,IAAKA,IAAI,CAASa,cAAc,EAAE;IACpE,OAAQb,IAAI,CAASa,cAAc,EAAE;EACvC;EAEA,MAAM,IAAIC,KAAK,CAAC,eAAe,CAAC;AAClC"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.makeReadableFile = makeReadableFile;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+
11
+ function makeReadableFile(data) {
12
+ if (data instanceof ArrayBuffer) {
13
+ var arrayBuffer = data;
14
+ return {
15
+ read: function () {
16
+ var _read = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(start, length) {
17
+ return _regenerator.default.wrap(function _callee$(_context) {
18
+ while (1) {
19
+ switch (_context.prev = _context.next) {
20
+ case 0:
21
+ return _context.abrupt("return", Buffer.from(data, start, length));
22
+ case 1:
23
+ case "end":
24
+ return _context.stop();
25
+ }
26
+ }
27
+ }, _callee);
28
+ }));
29
+ function read(_x, _x2) {
30
+ return _read.apply(this, arguments);
31
+ }
32
+ return read;
33
+ }(),
34
+ close: function () {
35
+ var _close = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
36
+ return _regenerator.default.wrap(function _callee2$(_context2) {
37
+ while (1) {
38
+ switch (_context2.prev = _context2.next) {
39
+ case 0:
40
+ case "end":
41
+ return _context2.stop();
42
+ }
43
+ }
44
+ }, _callee2);
45
+ }));
46
+ function close() {
47
+ return _close.apply(this, arguments);
48
+ }
49
+ return close;
50
+ }(),
51
+ size: arrayBuffer.byteLength
52
+ };
53
+ }
54
+ var blob = data;
55
+ return {
56
+ read: function () {
57
+ var _read2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(start, length) {
58
+ var arrayBuffer;
59
+ return _regenerator.default.wrap(function _callee3$(_context3) {
60
+ while (1) {
61
+ switch (_context3.prev = _context3.next) {
62
+ case 0:
63
+ _context3.next = 2;
64
+ return blob.slice(start, start + length).arrayBuffer();
65
+ case 2:
66
+ arrayBuffer = _context3.sent;
67
+ return _context3.abrupt("return", Buffer.from(arrayBuffer));
68
+ case 4:
69
+ case "end":
70
+ return _context3.stop();
71
+ }
72
+ }
73
+ }, _callee3);
74
+ }));
75
+ function read(_x3, _x4) {
76
+ return _read2.apply(this, arguments);
77
+ }
78
+ return read;
79
+ }(),
80
+ close: function () {
81
+ var _close2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
82
+ return _regenerator.default.wrap(function _callee4$(_context4) {
83
+ while (1) {
84
+ switch (_context4.prev = _context4.next) {
85
+ case 0:
86
+ case "end":
87
+ return _context4.stop();
88
+ }
89
+ }
90
+ }, _callee4);
91
+ }));
92
+ function close() {
93
+ return _close2.apply(this, arguments);
94
+ }
95
+ return close;
96
+ }(),
97
+ size: blob.size
98
+ };
99
+ }
100
+ //# sourceMappingURL=readable-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readable-file.js","names":["makeReadableFile","data","ArrayBuffer","arrayBuffer","read","start","length","Buffer","from","close","size","byteLength","blob","slice"],"sources":["../../../../src/lib/filesystems/readable-file.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type ReadableFile = {\n read: (position: number, length: number) => Promise<Buffer>;\n close: () => Promise<void>;\n /** Length of file in bytes */\n size: number;\n};\n\n/** Helper function to create an envelope reader for a binary memory input */\nexport function makeReadableFile(data: Blob | ArrayBuffer): ReadableFile {\n if (data instanceof ArrayBuffer) {\n const arrayBuffer: ArrayBuffer = data;\n return {\n read: async (start: number, length: number) => Buffer.from(data, start, length),\n close: async () => {},\n size: arrayBuffer.byteLength\n };\n }\n\n const blob: Blob = data;\n return {\n read: async (start: number, length: number) => {\n const arrayBuffer = await blob.slice(start, start + length).arrayBuffer();\n return Buffer.from(arrayBuffer);\n },\n close: async () => {},\n size: blob.size\n };\n}\n"],"mappings":";;;;;;;;;;AAUO,SAASA,gBAAgB,CAACC,IAAwB,EAAgB;EACvE,IAAIA,IAAI,YAAYC,WAAW,EAAE;IAC/B,IAAMC,WAAwB,GAAGF,IAAI;IACrC,OAAO;MACLG,IAAI;QAAA,sEAAE,iBAAOC,KAAa,EAAEC,MAAc;UAAA;YAAA;cAAA;gBAAA;kBAAA,iCAAKC,MAAM,CAACC,IAAI,CAACP,IAAI,EAAEI,KAAK,EAAEC,MAAM,CAAC;gBAAA;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA;QAAA;UAAA;QAAA;QAAA;MAAA;MAC/EG,KAAK;QAAA,uEAAE;UAAA;YAAA;cAAA;gBAAA;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAAc;QAAA;UAAA;QAAA;QAAA;MAAA;MACrBC,IAAI,EAAEP,WAAW,CAACQ;IACpB,CAAC;EACH;EAEA,IAAMC,IAAU,GAAGX,IAAI;EACvB,OAAO;IACLG,IAAI;MAAA,uEAAE,kBAAOC,KAAa,EAAEC,MAAc;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACdM,IAAI,CAACC,KAAK,CAACR,KAAK,EAAEA,KAAK,GAAGC,MAAM,CAAC,CAACH,WAAW,EAAE;cAAA;gBAAnEA,WAAW;gBAAA,kCACVI,MAAM,CAACC,IAAI,CAACL,WAAW,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAChC;MAAA;QAAA;MAAA;MAAA;IAAA;IACDM,KAAK;MAAA,wEAAE;QAAA;UAAA;YAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAAc;MAAA;QAAA;MAAA;MAAA;IAAA;IACrBC,IAAI,EAAEE,IAAI,CAACF;EACb,CAAC;AACH"}