@loaders.gl/core 4.1.0-alpha.2 → 4.1.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/core-addons/write-file-browser.js.map +1 -1
  2. package/dist/dist.dev.js +43 -38
  3. package/dist/index.cjs +55 -65
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts.map +1 -1
  7. package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  8. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts.map +1 -1
  9. package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -1
  10. package/dist/iterators/make-iterator/make-blob-iterator.d.ts.map +1 -1
  11. package/dist/iterators/make-iterator/make-blob-iterator.js.map +1 -1
  12. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -1
  13. package/dist/iterators/make-iterator/make-iterator.js.map +1 -1
  14. package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -1
  15. package/dist/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  16. package/dist/iterators/make-iterator/make-string-iterator.d.ts.map +1 -1
  17. package/dist/iterators/make-iterator/make-string-iterator.js.map +1 -1
  18. package/dist/iterators/make-stream/make-stream.d.ts.map +1 -1
  19. package/dist/iterators/make-stream/make-stream.js.map +1 -1
  20. package/dist/javascript-utils/is-type.d.ts.map +1 -1
  21. package/dist/javascript-utils/is-type.js.map +1 -1
  22. package/dist/lib/api/encode-table.d.ts.map +1 -1
  23. package/dist/lib/api/encode-table.js.map +1 -1
  24. package/dist/lib/api/encode.d.ts +6 -2
  25. package/dist/lib/api/encode.d.ts.map +1 -1
  26. package/dist/lib/api/encode.js +35 -34
  27. package/dist/lib/api/encode.js.map +1 -1
  28. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  29. package/dist/lib/api/load-in-batches.js.map +1 -1
  30. package/dist/lib/api/load.d.ts.map +1 -1
  31. package/dist/lib/api/load.js.map +1 -1
  32. package/dist/lib/api/loader-options.d.ts.map +1 -1
  33. package/dist/lib/api/loader-options.js.map +1 -1
  34. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  35. package/dist/lib/api/parse-in-batches.js +1 -0
  36. package/dist/lib/api/parse-in-batches.js.map +1 -1
  37. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  38. package/dist/lib/api/parse-sync.js.map +1 -1
  39. package/dist/lib/api/parse.d.ts.map +1 -1
  40. package/dist/lib/api/parse.js.map +1 -1
  41. package/dist/lib/api/register-loaders.d.ts.map +1 -1
  42. package/dist/lib/api/register-loaders.js.map +1 -1
  43. package/dist/lib/api/select-loader.d.ts.map +1 -1
  44. package/dist/lib/api/select-loader.js.map +1 -1
  45. package/dist/lib/common.d.ts.map +1 -1
  46. package/dist/lib/common.js.map +1 -1
  47. package/dist/lib/fetch/fetch-error-message.d.ts.map +1 -1
  48. package/dist/lib/fetch/fetch-error-message.js.map +1 -1
  49. package/dist/lib/fetch/fetch-file.d.ts.map +1 -1
  50. package/dist/lib/fetch/fetch-file.js.map +1 -1
  51. package/dist/lib/fetch/read-array-buffer.d.ts.map +1 -1
  52. package/dist/lib/fetch/read-array-buffer.js.map +1 -1
  53. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
  54. package/dist/lib/filesystems/browser-filesystem.js.map +1 -1
  55. package/dist/lib/filesystems/read-array-buffer.d.ts.map +1 -1
  56. package/dist/lib/filesystems/read-array-buffer.js.map +1 -1
  57. package/dist/lib/init.d.ts.map +1 -1
  58. package/dist/lib/init.js +1 -1
  59. package/dist/lib/init.js.map +1 -1
  60. package/dist/lib/loader-utils/check-errors.d.ts.map +1 -1
  61. package/dist/lib/loader-utils/check-errors.js.map +1 -1
  62. package/dist/lib/loader-utils/get-data.d.ts.map +1 -1
  63. package/dist/lib/loader-utils/get-data.js.map +1 -1
  64. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  65. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
  66. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  67. package/dist/lib/loader-utils/loader-context.js.map +1 -1
  68. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  69. package/dist/lib/loader-utils/loggers.js.map +1 -1
  70. package/dist/lib/loader-utils/normalize-loader.d.ts.map +1 -1
  71. package/dist/lib/loader-utils/normalize-loader.js.map +1 -1
  72. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  73. package/dist/lib/loader-utils/option-defaults.js.map +1 -1
  74. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  75. package/dist/lib/loader-utils/option-utils.js.map +1 -1
  76. package/dist/lib/progress/fetch-progress.d.ts.map +1 -1
  77. package/dist/lib/progress/fetch-progress.js.map +1 -1
  78. package/dist/lib/utils/log.d.ts.map +1 -1
  79. package/dist/lib/utils/log.js.map +1 -1
  80. package/dist/lib/utils/mime-type-utils.d.ts.map +1 -1
  81. package/dist/lib/utils/mime-type-utils.js.map +1 -1
  82. package/dist/lib/utils/resource-utils.d.ts.map +1 -1
  83. package/dist/lib/utils/resource-utils.js.map +1 -1
  84. package/dist/lib/utils/response-utils.d.ts.map +1 -1
  85. package/dist/lib/utils/response-utils.js.map +1 -1
  86. package/dist/lib/utils/url-utils.d.ts.map +1 -1
  87. package/dist/lib/utils/url-utils.js.map +1 -1
  88. package/dist/null-loader.d.ts.map +1 -1
  89. package/dist/null-loader.js +1 -1
  90. package/dist/null-loader.js.map +1 -1
  91. package/dist/null-worker-node.js +1 -1
  92. package/dist/null-worker.js +1 -1
  93. package/dist/workers/null-worker-node.js.map +1 -1
  94. package/dist/workers/null-worker.js.map +1 -1
  95. package/package.json +4 -4
  96. package/src/core-addons/write-file-browser.ts +2 -1
  97. package/src/index.ts +2 -1
  98. package/src/iterators/batch-iterators/timed-batch-iterator.ts +2 -1
  99. package/src/iterators/make-iterator/make-array-buffer-iterator.ts +2 -1
  100. package/src/iterators/make-iterator/make-blob-iterator.ts +2 -1
  101. package/src/iterators/make-iterator/make-iterator.ts +2 -1
  102. package/src/iterators/make-iterator/make-stream-iterator.ts +2 -1
  103. package/src/iterators/make-iterator/make-string-iterator.ts +2 -1
  104. package/src/iterators/make-stream/make-stream.ts +2 -1
  105. package/src/javascript-utils/is-type.ts +2 -1
  106. package/src/lib/api/encode-table.ts +2 -1
  107. package/src/lib/api/encode.ts +64 -55
  108. package/src/lib/api/load-in-batches.ts +2 -1
  109. package/src/lib/api/load.ts +2 -1
  110. package/src/lib/api/loader-options.ts +2 -1
  111. package/src/lib/api/parse-in-batches.ts +3 -1
  112. package/src/lib/api/parse-sync.ts +2 -1
  113. package/src/lib/api/parse.ts +2 -1
  114. package/src/lib/api/register-loaders.ts +2 -1
  115. package/src/lib/api/select-loader.ts +2 -1
  116. package/src/lib/common.ts +2 -1
  117. package/src/lib/fetch/fetch-error-message.ts +2 -1
  118. package/src/lib/fetch/fetch-file.ts +2 -1
  119. package/src/lib/fetch/read-array-buffer.ts +2 -1
  120. package/src/lib/filesystems/browser-filesystem.ts +2 -1
  121. package/src/lib/filesystems/read-array-buffer.ts +2 -1
  122. package/src/lib/init.ts +2 -1
  123. package/src/lib/loader-utils/check-errors.ts +2 -1
  124. package/src/lib/loader-utils/get-data.ts +2 -1
  125. package/src/lib/loader-utils/get-fetch-function.ts +2 -1
  126. package/src/lib/loader-utils/loader-context.ts +2 -1
  127. package/src/lib/loader-utils/loggers.ts +2 -1
  128. package/src/lib/loader-utils/normalize-loader.ts +2 -1
  129. package/src/lib/loader-utils/option-defaults.ts +2 -1
  130. package/src/lib/loader-utils/option-utils.ts +2 -1
  131. package/src/lib/progress/fetch-progress.ts +2 -1
  132. package/src/lib/utils/log.ts +2 -1
  133. package/src/lib/utils/mime-type-utils.ts +2 -1
  134. package/src/lib/utils/resource-utils.ts +2 -1
  135. package/src/lib/utils/response-utils.ts +2 -1
  136. package/src/lib/utils/url-utils.ts +2 -1
  137. package/src/null-loader.ts +2 -1
  138. package/src/workers/null-worker-node.ts +2 -1
  139. package/src/workers/null-worker.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"write-file-browser.js","names":[],"sources":["../../src/core-addons/write-file-browser.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// A browser implementation of the Node.js `fs` module's `fs.writeFile` method.\n// NOTE: WAS COMMENTED OUT TO GET NODE 8 TESTS RUNNING\n\n/*\n/* global global *\n/* global Blob *\nimport {isBrowser} from '@loaders.gl/core';\n\n// TODO hack - trick filesaver.js to skip loading under node\nconst savedNavigatorExists = 'navigator' in global;\nconst savedNavigator = globalThis.navigator;\nif (!isBrowser) {\n globalThis.navigator = {userAgent: 'MSIE 9.'};\n}\n\n// Need to use `require` to ensure our modification of global code above happens first\nconst saveAs = require('filesaver.js');\n\nif (!isBrowser) {\n if (savedNavigatorExists) {\n globalThis.navigator = savedNavigator;\n } else {\n delete globalThis.navigator;\n }\n}\n// END hack\n\n/**\n * File system write function for the browser, similar to Node's fs.writeFile\n *\n * Saves a file by downloading it with the given file name.\n *\n * @param {String} file - file name\n * @param {String|Blob} data - data to be written to file\n * @param {String|Object} options -\n * @param {Function} callback - Standard node (err, data) callback\n * @return {Promise} - promise, can be used instead of callback\n *\nasync export function writeFile(file, data, options, callback = () => {}) {\n // options is optional\n if (callback === undefined && typeof options === 'function') {\n options = undefined;\n callback = options;\n }\n if (typeof data === 'string') {\n data = new Blob(data);\n }\n return new Promise((resolve, reject) => {\n let result;\n try {\n result = saveAs(data, file, options);\n } catch (error) {\n reject(error);\n return callback(error, null);\n }\n resolve();\n return callback(null, result);\n });\n}\n*/\n"],"mappings":""}
1
+ {"version":3,"file":"write-file-browser.js","names":[],"sources":["../../src/core-addons/write-file-browser.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// A browser implementation of the Node.js `fs` module's `fs.writeFile` method.\n// NOTE: WAS COMMENTED OUT TO GET NODE 8 TESTS RUNNING\n\n/*\n/* global global *\n/* global Blob *\nimport {isBrowser} from '@loaders.gl/core';\n\n// TODO hack - trick filesaver.js to skip loading under node\nconst savedNavigatorExists = 'navigator' in global;\nconst savedNavigator = globalThis.navigator;\nif (!isBrowser) {\n globalThis.navigator = {userAgent: 'MSIE 9.'};\n}\n\n// Need to use `require` to ensure our modification of global code above happens first\nconst saveAs = require('filesaver.js');\n\nif (!isBrowser) {\n if (savedNavigatorExists) {\n globalThis.navigator = savedNavigator;\n } else {\n delete globalThis.navigator;\n }\n}\n// END hack\n\n/**\n * File system write function for the browser, similar to Node's fs.writeFile\n *\n * Saves a file by downloading it with the given file name.\n *\n * @param {String} file - file name\n * @param {String|Blob} data - data to be written to file\n * @param {String|Object} options -\n * @param {Function} callback - Standard node (err, data) callback\n * @return {Promise} - promise, can be used instead of callback\n *\nasync export function writeFile(file, data, options, callback = () => {}) {\n // options is optional\n if (callback === undefined && typeof options === 'function') {\n options = undefined;\n callback = options;\n }\n if (typeof data === 'string') {\n data = new Blob(data);\n }\n return new Promise((resolve, reject) => {\n let result;\n try {\n result = saveAs(data, file, options);\n } catch (error) {\n reject(error);\n return callback(error, null);\n }\n resolve();\n return callback(null, result);\n });\n}\n*/\n"],"mappings":""}
package/dist/dist.dev.js CHANGED
@@ -110,13 +110,16 @@ var __exports__ = (() => {
110
110
  function mergeLoaderOptions(baseOptions, newOptions) {
111
111
  return mergeOptionsRecursively(baseOptions || {}, newOptions);
112
112
  }
113
- function mergeOptionsRecursively(baseOptions, newOptions) {
113
+ function mergeOptionsRecursively(baseOptions, newOptions, level = 0) {
114
+ if (level > 3) {
115
+ return newOptions;
116
+ }
114
117
  const options = {
115
118
  ...baseOptions
116
119
  };
117
120
  for (const [key, newValue] of Object.entries(newOptions)) {
118
121
  if (newValue && typeof newValue === "object" && !Array.isArray(newValue)) {
119
- options[key] = mergeOptionsRecursively(options[key] || {}, newOptions[key]);
122
+ options[key] = mergeOptionsRecursively(options[key] || {}, newOptions[key], level + 1);
120
123
  } else {
121
124
  options[key] = newOptions[key];
122
125
  }
@@ -129,11 +132,11 @@ var __exports__ = (() => {
129
132
  function getVersion() {
130
133
  if (!globalThis._loadersgl_?.version) {
131
134
  globalThis._loadersgl_ = globalThis._loadersgl_ || {};
132
- if (typeof __VERSION__ === "undefined") {
135
+ if (false) {
133
136
  console.warn("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
134
137
  globalThis._loadersgl_.version = NPM_TAG;
135
138
  } else {
136
- globalThis._loadersgl_.version = __VERSION__;
139
+ globalThis._loadersgl_.version = "4.1.0-alpha.4";
137
140
  }
138
141
  }
139
142
  return globalThis._loadersgl_.version;
@@ -1226,7 +1229,7 @@ var __exports__ = (() => {
1226
1229
  }
1227
1230
 
1228
1231
  // ../loader-utils/src/json-loader.ts
1229
- var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1232
+ var VERSION2 = true ? "4.1.0-alpha.4" : "latest";
1230
1233
  var JSONLoader = {
1231
1234
  name: "JSON",
1232
1235
  id: "json",
@@ -1467,6 +1470,12 @@ var __exports__ = (() => {
1467
1470
  async stat() {
1468
1471
  throw NOT_IMPLEMENTED;
1469
1472
  }
1473
+ async truncate(length) {
1474
+ throw NOT_IMPLEMENTED;
1475
+ }
1476
+ async append(data) {
1477
+ throw NOT_IMPLEMENTED;
1478
+ }
1470
1479
  async close() {
1471
1480
  }
1472
1481
  };
@@ -3073,6 +3082,7 @@ var __exports__ = (() => {
3073
3082
  return outputIterator;
3074
3083
  }
3075
3084
  const metadataBatch = {
3085
+ shape: "metadata",
3076
3086
  batchType: "metadata",
3077
3087
  metadata: {
3078
3088
  _loader: loader,
@@ -3223,55 +3233,38 @@ var __exports__ = (() => {
3223
3233
  ...globalOptions,
3224
3234
  ...options
3225
3235
  };
3236
+ if (writer.encodeURLtoURL) {
3237
+ return encodeWithCommandLineTool(writer, data, options);
3238
+ }
3226
3239
  if (canEncodeWithWorker(writer, options)) {
3227
3240
  return await processOnWorker(writer, data, options);
3228
3241
  }
3229
- if (writer.encode) {
3230
- return await writer.encode(data, options);
3231
- }
3232
- if (writer.encodeSync) {
3233
- return writer.encodeSync(data, options);
3234
- }
3235
- if (writer.encodeText) {
3236
- return new TextEncoder().encode(await writer.encodeText(data, options));
3237
- }
3238
- if (writer.encodeInBatches) {
3239
- const batches = encodeInBatches(data, writer, options);
3240
- const chunks = [];
3241
- for await (const batch of batches) {
3242
- chunks.push(batch);
3243
- }
3244
- return concatenateArrayBuffers(...chunks);
3245
- }
3246
- if (!isBrowser && writer.encodeURLtoURL) {
3247
- const tmpInputFilename = getTemporaryFilename("input");
3248
- const file = new NodeFileFacade(tmpInputFilename, "w");
3249
- await file.write(data);
3250
- const tmpOutputFilename = getTemporaryFilename("output");
3251
- const outputFilename = await encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
3252
- const response = await fetchFile(outputFilename);
3253
- return response.arrayBuffer();
3254
- }
3255
- throw new Error("Writer could not encode data");
3242
+ return await writer.encode(data, options);
3256
3243
  }
3257
3244
  function encodeSync(data, writer, options) {
3258
3245
  if (writer.encodeSync) {
3259
3246
  return writer.encodeSync(data, options);
3260
3247
  }
3261
- throw new Error("Writer could not synchronously encode data");
3248
+ if (writer.encodeTextSync) {
3249
+ return new TextEncoder().encode(writer.encodeTextSync(data, options));
3250
+ }
3251
+ throw new Error(`Writer ${writer.name} could not synchronously encode data`);
3262
3252
  }
3263
3253
  async function encodeText(data, writer, options) {
3264
- if (writer.text && writer.encodeText) {
3254
+ if (writer.encodeText) {
3265
3255
  return await writer.encodeText(data, options);
3266
3256
  }
3257
+ if (writer.encodeTextSync) {
3258
+ return writer.encodeTextSync(data, options);
3259
+ }
3267
3260
  if (writer.text) {
3268
- const arrayBuffer = await encode(data, writer, options);
3261
+ const arrayBuffer = await writer.encode(data, options);
3269
3262
  return new TextDecoder().decode(arrayBuffer);
3270
3263
  }
3271
3264
  throw new Error(`Writer ${writer.name} could not encode data as text`);
3272
3265
  }
3273
3266
  function encodeTextSync(data, writer, options) {
3274
- if (writer.text && writer.encodeTextSync) {
3267
+ if (writer.encodeTextSync) {
3275
3268
  return writer.encodeTextSync(data, options);
3276
3269
  }
3277
3270
  if (writer.text && writer.encodeSync) {
@@ -3285,7 +3278,7 @@ var __exports__ = (() => {
3285
3278
  const dataIterator = getIterator2(data);
3286
3279
  return writer.encodeInBatches(dataIterator, options);
3287
3280
  }
3288
- throw new Error("Writer could not encode data in batches");
3281
+ throw new Error(`Writer ${writer.name} could not encode in batches`);
3289
3282
  }
3290
3283
  async function encodeURLtoURL(inputUrl, outputUrl, writer, options) {
3291
3284
  inputUrl = resolvePath(inputUrl);
@@ -3296,6 +3289,18 @@ var __exports__ = (() => {
3296
3289
  const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);
3297
3290
  return outputFilename;
3298
3291
  }
3292
+ async function encodeWithCommandLineTool(writer, data, options) {
3293
+ if (isBrowser) {
3294
+ throw new Error(`Writer ${writer.name} not supported in browser`);
3295
+ }
3296
+ const tmpInputFilename = getTemporaryFilename("input");
3297
+ const file = new NodeFileFacade(tmpInputFilename, "w");
3298
+ await file.write(data);
3299
+ const tmpOutputFilename = getTemporaryFilename("output");
3300
+ const outputFilename = await encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
3301
+ const response = await fetchFile(outputFilename);
3302
+ return response.arrayBuffer();
3303
+ }
3299
3304
  function getIterator2(data) {
3300
3305
  const dataIterator = [{
3301
3306
  ...data,
@@ -3341,7 +3346,7 @@ var __exports__ = (() => {
3341
3346
  }
3342
3347
 
3343
3348
  // src/null-loader.ts
3344
- var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
3349
+ var VERSION4 = true ? "4.1.0-alpha.4" : "latest";
3345
3350
  var NullWorkerLoader = {
3346
3351
  name: "Null loader",
3347
3352
  id: "null",
package/dist/index.cjs CHANGED
@@ -20,16 +20,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
- JSONLoader: () => import_loader_utils18.JSONLoader,
23
+ JSONLoader: () => import_loader_utils17.JSONLoader,
24
24
  NullLoader: () => NullLoader,
25
25
  NullWorkerLoader: () => NullWorkerLoader,
26
- RequestScheduler: () => import_loader_utils17.RequestScheduler,
26
+ RequestScheduler: () => import_loader_utils16.RequestScheduler,
27
27
  _BrowserFileSystem: () => BrowserFileSystem,
28
28
  _fetchProgress: () => fetchProgress,
29
29
  _unregisterLoaders: () => _unregisterLoaders,
30
- assert: () => import_loader_utils20.assert,
31
- concatenateArrayBuffersAsync: () => import_loader_utils21.concatenateArrayBuffersAsync,
32
- document: () => import_loader_utils19.document,
30
+ assert: () => import_loader_utils19.assert,
31
+ concatenateArrayBuffersAsync: () => import_loader_utils20.concatenateArrayBuffersAsync,
32
+ document: () => import_loader_utils18.document,
33
33
  encode: () => encode,
34
34
  encodeInBatches: () => encodeInBatches,
35
35
  encodeSync: () => encodeSync,
@@ -40,40 +40,40 @@ __export(src_exports, {
40
40
  encodeTextSync: () => encodeTextSync,
41
41
  encodeURLtoURL: () => encodeURLtoURL,
42
42
  fetchFile: () => fetchFile,
43
- forEach: () => import_loader_utils21.forEach,
43
+ forEach: () => import_loader_utils20.forEach,
44
44
  getLoaderOptions: () => getGlobalLoaderOptions,
45
- getPathPrefix: () => import_loader_utils16.getPathPrefix,
46
- global: () => import_loader_utils19.global,
45
+ getPathPrefix: () => import_loader_utils15.getPathPrefix,
46
+ global: () => import_loader_utils18.global,
47
47
  isAsyncIterable: () => isAsyncIterable,
48
- isBrowser: () => import_loader_utils19.isBrowser,
48
+ isBrowser: () => import_loader_utils18.isBrowser,
49
49
  isIterable: () => isIterable,
50
50
  isIterator: () => isIterator,
51
51
  isPromise: () => isPromise,
52
52
  isPureObject: () => isPureObject,
53
53
  isReadableStream: () => isReadableStream,
54
54
  isResponse: () => isResponse,
55
- isWorker: () => import_loader_utils19.isWorker,
55
+ isWorker: () => import_loader_utils18.isWorker,
56
56
  isWritableStream: () => isWritableStream,
57
57
  load: () => load,
58
58
  loadInBatches: () => loadInBatches,
59
59
  makeIterator: () => makeIterator,
60
- makeLineIterator: () => import_loader_utils22.makeLineIterator,
61
- makeNumberedLineIterator: () => import_loader_utils22.makeNumberedLineIterator,
60
+ makeLineIterator: () => import_loader_utils21.makeLineIterator,
61
+ makeNumberedLineIterator: () => import_loader_utils21.makeNumberedLineIterator,
62
62
  makeStream: () => makeStream,
63
- makeTextDecoderIterator: () => import_loader_utils22.makeTextDecoderIterator,
64
- makeTextEncoderIterator: () => import_loader_utils22.makeTextEncoderIterator,
63
+ makeTextDecoderIterator: () => import_loader_utils21.makeTextDecoderIterator,
64
+ makeTextEncoderIterator: () => import_loader_utils21.makeTextEncoderIterator,
65
65
  parse: () => parse,
66
66
  parseInBatches: () => parseInBatches,
67
67
  parseSync: () => parseSync,
68
68
  readArrayBuffer: () => readArrayBuffer,
69
69
  registerLoaders: () => registerLoaders,
70
- resolvePath: () => import_loader_utils16.resolvePath,
70
+ resolvePath: () => import_loader_utils15.resolvePath,
71
71
  selectLoader: () => selectLoader,
72
72
  selectLoaderSync: () => selectLoaderSync,
73
- self: () => import_loader_utils19.self,
73
+ self: () => import_loader_utils18.self,
74
74
  setLoaderOptions: () => setGlobalOptions,
75
- setPathPrefix: () => import_loader_utils16.setPathPrefix,
76
- window: () => import_loader_utils19.window
75
+ setPathPrefix: () => import_loader_utils15.setPathPrefix,
76
+ window: () => import_loader_utils18.window
77
77
  });
78
78
  module.exports = __toCommonJS(src_exports);
79
79
 
@@ -1109,6 +1109,7 @@ async function parseWithLoaderInBatches(loader, data, options, context) {
1109
1109
  return outputIterator;
1110
1110
  }
1111
1111
  const metadataBatch = {
1112
+ shape: "metadata",
1112
1113
  batchType: "metadata",
1113
1114
  metadata: {
1114
1115
  _loader: loader,
@@ -1257,66 +1258,43 @@ function getIterator(data) {
1257
1258
 
1258
1259
  // src/lib/api/encode.ts
1259
1260
  var import_loader_utils12 = require("@loaders.gl/loader-utils");
1260
- var import_loader_utils13 = require("@loaders.gl/loader-utils");
1261
1261
  var import_worker_utils2 = require("@loaders.gl/worker-utils");
1262
- var import_loader_utils14 = require("@loaders.gl/loader-utils");
1262
+ var import_loader_utils13 = require("@loaders.gl/loader-utils");
1263
1263
  async function encode(data, writer, options) {
1264
1264
  const globalOptions = getGlobalLoaderOptions();
1265
1265
  options = { ...globalOptions, ...options };
1266
+ if (writer.encodeURLtoURL) {
1267
+ return encodeWithCommandLineTool(writer, data, options);
1268
+ }
1266
1269
  if ((0, import_loader_utils12.canEncodeWithWorker)(writer, options)) {
1267
1270
  return await (0, import_worker_utils2.processOnWorker)(writer, data, options);
1268
1271
  }
1269
- if (writer.encode) {
1270
- return await writer.encode(data, options);
1271
- }
1272
- if (writer.encodeSync) {
1273
- return writer.encodeSync(data, options);
1274
- }
1275
- if (writer.encodeText) {
1276
- return new TextEncoder().encode(await writer.encodeText(data, options));
1277
- }
1278
- if (writer.encodeInBatches) {
1279
- const batches = encodeInBatches(data, writer, options);
1280
- const chunks = [];
1281
- for await (const batch of batches) {
1282
- chunks.push(batch);
1283
- }
1284
- return (0, import_loader_utils13.concatenateArrayBuffers)(...chunks);
1285
- }
1286
- if (!import_loader_utils14.isBrowser && writer.encodeURLtoURL) {
1287
- const tmpInputFilename = getTemporaryFilename("input");
1288
- const file = new import_loader_utils13.NodeFile(tmpInputFilename, "w");
1289
- await file.write(data);
1290
- const tmpOutputFilename = getTemporaryFilename("output");
1291
- const outputFilename = await encodeURLtoURL(
1292
- tmpInputFilename,
1293
- tmpOutputFilename,
1294
- writer,
1295
- options
1296
- );
1297
- const response = await fetchFile(outputFilename);
1298
- return response.arrayBuffer();
1299
- }
1300
- throw new Error("Writer could not encode data");
1272
+ return await writer.encode(data, options);
1301
1273
  }
1302
1274
  function encodeSync(data, writer, options) {
1303
1275
  if (writer.encodeSync) {
1304
1276
  return writer.encodeSync(data, options);
1305
1277
  }
1306
- throw new Error("Writer could not synchronously encode data");
1278
+ if (writer.encodeTextSync) {
1279
+ return new TextEncoder().encode(writer.encodeTextSync(data, options));
1280
+ }
1281
+ throw new Error(`Writer ${writer.name} could not synchronously encode data`);
1307
1282
  }
1308
1283
  async function encodeText(data, writer, options) {
1309
- if (writer.text && writer.encodeText) {
1284
+ if (writer.encodeText) {
1310
1285
  return await writer.encodeText(data, options);
1311
1286
  }
1287
+ if (writer.encodeTextSync) {
1288
+ return writer.encodeTextSync(data, options);
1289
+ }
1312
1290
  if (writer.text) {
1313
- const arrayBuffer = await encode(data, writer, options);
1291
+ const arrayBuffer = await writer.encode(data, options);
1314
1292
  return new TextDecoder().decode(arrayBuffer);
1315
1293
  }
1316
1294
  throw new Error(`Writer ${writer.name} could not encode data as text`);
1317
1295
  }
1318
1296
  function encodeTextSync(data, writer, options) {
1319
- if (writer.text && writer.encodeTextSync) {
1297
+ if (writer.encodeTextSync) {
1320
1298
  return writer.encodeTextSync(data, options);
1321
1299
  }
1322
1300
  if (writer.text && writer.encodeSync) {
@@ -1330,17 +1308,29 @@ function encodeInBatches(data, writer, options) {
1330
1308
  const dataIterator = getIterator2(data);
1331
1309
  return writer.encodeInBatches(dataIterator, options);
1332
1310
  }
1333
- throw new Error("Writer could not encode data in batches");
1311
+ throw new Error(`Writer ${writer.name} could not encode in batches`);
1334
1312
  }
1335
1313
  async function encodeURLtoURL(inputUrl, outputUrl, writer, options) {
1336
- inputUrl = (0, import_loader_utils13.resolvePath)(inputUrl);
1337
- outputUrl = (0, import_loader_utils13.resolvePath)(outputUrl);
1338
- if (import_loader_utils14.isBrowser || !writer.encodeURLtoURL) {
1314
+ inputUrl = (0, import_loader_utils12.resolvePath)(inputUrl);
1315
+ outputUrl = (0, import_loader_utils12.resolvePath)(outputUrl);
1316
+ if (import_loader_utils13.isBrowser || !writer.encodeURLtoURL) {
1339
1317
  throw new Error();
1340
1318
  }
1341
1319
  const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);
1342
1320
  return outputFilename;
1343
1321
  }
1322
+ async function encodeWithCommandLineTool(writer, data, options) {
1323
+ if (import_loader_utils13.isBrowser) {
1324
+ throw new Error(`Writer ${writer.name} not supported in browser`);
1325
+ }
1326
+ const tmpInputFilename = getTemporaryFilename("input");
1327
+ const file = new import_loader_utils12.NodeFile(tmpInputFilename, "w");
1328
+ await file.write(data);
1329
+ const tmpOutputFilename = getTemporaryFilename("output");
1330
+ const outputFilename = await encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
1331
+ const response = await fetchFile(outputFilename);
1332
+ return response.arrayBuffer();
1333
+ }
1344
1334
  function getIterator2(data) {
1345
1335
  const dataIterator = [{ ...data, start: 0, end: data.length }];
1346
1336
  return dataIterator;
@@ -1350,8 +1340,8 @@ function getTemporaryFilename(filename) {
1350
1340
  }
1351
1341
 
1352
1342
  // src/index.ts
1343
+ var import_loader_utils15 = require("@loaders.gl/loader-utils");
1353
1344
  var import_loader_utils16 = require("@loaders.gl/loader-utils");
1354
- var import_loader_utils17 = require("@loaders.gl/loader-utils");
1355
1345
 
1356
1346
  // src/iterators/make-stream/make-stream.ts
1357
1347
  function makeStream(source, options) {
@@ -1431,7 +1421,7 @@ function parseSync2(arrayBuffer, options, context) {
1431
1421
  }
1432
1422
 
1433
1423
  // src/index.ts
1434
- var import_loader_utils18 = require("@loaders.gl/loader-utils");
1424
+ var import_loader_utils17 = require("@loaders.gl/loader-utils");
1435
1425
 
1436
1426
  // src/lib/progress/fetch-progress.ts
1437
1427
  async function fetchProgress(response, onProgress, onDone = () => {
@@ -1481,7 +1471,7 @@ async function read(controller, reader, loadedBytes, totalBytes, onProgress, onD
1481
1471
  }
1482
1472
 
1483
1473
  // src/lib/filesystems/browser-filesystem.ts
1484
- var import_loader_utils15 = require("@loaders.gl/loader-utils");
1474
+ var import_loader_utils14 = require("@loaders.gl/loader-utils");
1485
1475
  var BrowserFileSystem = class {
1486
1476
  /**
1487
1477
  * A FileSystem API wrapper around a list of browser 'File' objects
@@ -1562,7 +1552,7 @@ var BrowserFileSystem = class {
1562
1552
  // implements IRandomAccessFileSystem
1563
1553
  // RANDOM ACCESS
1564
1554
  async openReadableFile(pathname, flags) {
1565
- return new import_loader_utils15.BlobFile(this.files[pathname]);
1555
+ return new import_loader_utils14.BlobFile(this.files[pathname]);
1566
1556
  }
1567
1557
  // PRIVATE
1568
1558
  // Supports case independent paths, and file usage tracking
@@ -1576,7 +1566,7 @@ var BrowserFileSystem = class {
1576
1566
  };
1577
1567
 
1578
1568
  // src/index.ts
1569
+ var import_loader_utils18 = require("@loaders.gl/loader-utils");
1579
1570
  var import_loader_utils19 = require("@loaders.gl/loader-utils");
1580
1571
  var import_loader_utils20 = require("@loaders.gl/loader-utils");
1581
1572
  var import_loader_utils21 = require("@loaders.gl/loader-utils");
1582
- var import_loader_utils22 = require("@loaders.gl/loader-utils");
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAK9D,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAC,YAAY,EAAC,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAG/D,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AAG7F,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAM9D,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAK9D,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAC,YAAY,EAAC,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAG/D,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AAG7F,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAM9D,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,4BAA4B,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fetchFile","readArrayBuffer","setLoaderOptions","getLoaderOptions","registerLoaders","selectLoader","selectLoaderSync","parse","parseSync","parseInBatches","load","loadInBatches","encodeTable","encodeTableAsText","encodeTableInBatches","encode","encodeSync","encodeInBatches","encodeURLtoURL","encodeText","encodeTextSync","setPathPrefix","getPathPrefix","resolvePath","RequestScheduler","makeIterator","makeStream","NullWorkerLoader","NullLoader","JSONLoader","fetchProgress","_fetchProgress","BrowserFileSystem","_BrowserFileSystem","_unregisterLoaders","isBrowser","isWorker","self","window","global","document","assert","forEach","concatenateArrayBuffersAsync","makeTextDecoderIterator","makeTextEncoderIterator","makeLineIterator","makeNumberedLineIterator","isPureObject","isPromise","isIterable","isAsyncIterable","isIterator","isResponse","isReadableStream","isWritableStream"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n ReadableFile,\n WritableFile,\n Stat,\n FileSystem,\n RandomAccessFileSystem\n} from '@loaders.gl/loader-utils';\n\n// FILE READING AND WRITING\nexport {fetchFile} from './lib/fetch/fetch-file';\n\nexport {readArrayBuffer} from './lib/fetch/read-array-buffer';\n// export {readFileSync} from './lib/fetch/read-file';\n// export {writeFile, writeFileSync} from './lib/fetch/write-file';\n\n// CONFIGURATION\nexport {setLoaderOptions, getLoaderOptions} from './lib/api/loader-options';\nexport {registerLoaders} from './lib/api/register-loaders';\nexport {selectLoader, selectLoaderSync} from './lib/api/select-loader';\n\n// LOADING (READING + PARSING)\nexport {parse} from './lib/api/parse';\nexport {parseSync} from './lib/api/parse-sync';\nexport {parseInBatches} from './lib/api/parse-in-batches';\n\nexport {load} from './lib/api/load';\nexport {loadInBatches} from './lib/api/load-in-batches';\n\n// ENCODING (ENCODING AND WRITING)\nexport {encodeTable, encodeTableAsText, encodeTableInBatches} from './lib/api/encode-table';\nexport {encode, encodeSync, encodeInBatches, encodeURLtoURL} from './lib/api/encode';\nexport {encodeText, encodeTextSync} from './lib/api/encode';\n\n// CORE UTILS SHARED WITH LOADERS (RE-EXPORTED FROM LOADER-UTILS)\nexport {setPathPrefix, getPathPrefix, resolvePath} from '@loaders.gl/loader-utils';\nexport {RequestScheduler} from '@loaders.gl/loader-utils';\n\n// ITERATOR UTILS\nexport {makeIterator} from './iterators/make-iterator/make-iterator';\nexport {makeStream} from './iterators/make-stream/make-stream';\n\n// CORE LOADERS\nexport {NullWorkerLoader, NullLoader} from './null-loader';\nexport {JSONLoader} from '@loaders.gl/loader-utils';\n\n// EXPERIMENTAL\nexport {fetchProgress as _fetchProgress} from './lib/progress/fetch-progress';\nexport {BrowserFileSystem as _BrowserFileSystem} from './lib/filesystems/browser-filesystem';\n\n// FOR TESTING\nexport {_unregisterLoaders} from './lib/api/register-loaders';\n\n//\n// TODO - MOVE TO LOADER-UTILS AND DEPRECATE IN CORE?\n//\n\nexport {isBrowser, isWorker, self, window, global, document} from '@loaders.gl/loader-utils';\nexport {assert} from '@loaders.gl/loader-utils';\nexport {forEach, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\nexport {\n makeTextDecoderIterator,\n makeTextEncoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from '@loaders.gl/loader-utils';\n\n// \"JAVASCRIPT\" UTILS - move to loader-utils?\nexport {\n isPureObject,\n isPromise,\n isIterable,\n isAsyncIterable,\n isIterator,\n isResponse,\n isReadableStream,\n isWritableStream\n} from './javascript-utils/is-type';\n"],"mappings":"SAsBQA,SAAS;AAAA,SAETC,eAAe;AAAA,SAKfC,gBAAgB,EAAEC,gBAAgB;AAAA,SAClCC,eAAe;AAAA,SACfC,YAAY,EAAEC,gBAAgB;AAAA,SAG9BC,KAAK;AAAA,SACLC,SAAS;AAAA,SACTC,cAAc;AAAA,SAEdC,IAAI;AAAA,SACJC,aAAa;AAAA,SAGbC,WAAW,EAAEC,iBAAiB,EAAEC,oBAAoB;AAAA,SACpDC,MAAM,EAAEC,UAAU,EAAEC,eAAe,EAAEC,cAAc;AAAA,SACnDC,UAAU,EAAEC,cAAc;AAGlC,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,0BAA0B;AAClF,SAAQC,gBAAgB,QAAO,0BAA0B;AAAC,SAGlDC,YAAY;AAAA,SACZC,UAAU;AAAA,SAGVC,gBAAgB,EAAEC,UAAU;AACpC,SAAQC,UAAU,QAAO,0BAA0B;AAAC,SAG5CC,aAAa,IAAIC,cAAc;AAAA,SAC/BC,iBAAiB,IAAIC,kBAAkB;AAAA,SAGvCC,kBAAkB;AAM1B,SAAQC,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,QAAO,0BAA0B;AAC5F,SAAQC,MAAM,QAAO,0BAA0B;AAC/C,SAAQC,OAAO,EAAEC,4BAA4B,QAAO,0BAA0B;AAE9E,SACEC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAgB,EAChBC,wBAAwB,QACnB,0BAA0B;AAAC,SAIhCC,YAAY,EACZC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,UAAU,EACVC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB"}
1
+ {"version":3,"file":"index.js","names":["fetchFile","readArrayBuffer","setLoaderOptions","getLoaderOptions","registerLoaders","selectLoader","selectLoaderSync","parse","parseSync","parseInBatches","load","loadInBatches","encodeTable","encodeTableAsText","encodeTableInBatches","encode","encodeSync","encodeInBatches","encodeURLtoURL","encodeText","encodeTextSync","setPathPrefix","getPathPrefix","resolvePath","RequestScheduler","makeIterator","makeStream","NullWorkerLoader","NullLoader","JSONLoader","fetchProgress","_fetchProgress","BrowserFileSystem","_BrowserFileSystem","_unregisterLoaders","isBrowser","isWorker","self","window","global","document","assert","forEach","concatenateArrayBuffersAsync","makeTextDecoderIterator","makeTextEncoderIterator","makeLineIterator","makeNumberedLineIterator","isPureObject","isPromise","isIterable","isAsyncIterable","isIterator","isResponse","isReadableStream","isWritableStream"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n ReadableFile,\n WritableFile,\n Stat,\n FileSystem,\n RandomAccessFileSystem\n} from '@loaders.gl/loader-utils';\n\n// FILE READING AND WRITING\nexport {fetchFile} from './lib/fetch/fetch-file';\n\nexport {readArrayBuffer} from './lib/fetch/read-array-buffer';\n// export {readFileSync} from './lib/fetch/read-file';\n// export {writeFile, writeFileSync} from './lib/fetch/write-file';\n\n// CONFIGURATION\nexport {setLoaderOptions, getLoaderOptions} from './lib/api/loader-options';\nexport {registerLoaders} from './lib/api/register-loaders';\nexport {selectLoader, selectLoaderSync} from './lib/api/select-loader';\n\n// LOADING (READING + PARSING)\nexport {parse} from './lib/api/parse';\nexport {parseSync} from './lib/api/parse-sync';\nexport {parseInBatches} from './lib/api/parse-in-batches';\n\nexport {load} from './lib/api/load';\nexport {loadInBatches} from './lib/api/load-in-batches';\n\n// ENCODING (ENCODING AND WRITING)\nexport {encodeTable, encodeTableAsText, encodeTableInBatches} from './lib/api/encode-table';\nexport {encode, encodeSync, encodeInBatches, encodeURLtoURL} from './lib/api/encode';\nexport {encodeText, encodeTextSync} from './lib/api/encode';\n\n// CORE UTILS SHARED WITH LOADERS (RE-EXPORTED FROM LOADER-UTILS)\nexport {setPathPrefix, getPathPrefix, resolvePath} from '@loaders.gl/loader-utils';\nexport {RequestScheduler} from '@loaders.gl/loader-utils';\n\n// ITERATOR UTILS\nexport {makeIterator} from './iterators/make-iterator/make-iterator';\nexport {makeStream} from './iterators/make-stream/make-stream';\n\n// CORE LOADERS\nexport {NullWorkerLoader, NullLoader} from './null-loader';\nexport {JSONLoader} from '@loaders.gl/loader-utils';\n\n// EXPERIMENTAL\nexport {fetchProgress as _fetchProgress} from './lib/progress/fetch-progress';\nexport {BrowserFileSystem as _BrowserFileSystem} from './lib/filesystems/browser-filesystem';\n\n// FOR TESTING\nexport {_unregisterLoaders} from './lib/api/register-loaders';\n\n//\n// TODO - MOVE TO LOADER-UTILS AND DEPRECATE IN CORE?\n//\n\nexport {isBrowser, isWorker, self, window, global, document} from '@loaders.gl/loader-utils';\nexport {assert} from '@loaders.gl/loader-utils';\nexport {forEach, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\nexport {\n makeTextDecoderIterator,\n makeTextEncoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from '@loaders.gl/loader-utils';\n\n// \"JAVASCRIPT\" UTILS - move to loader-utils?\nexport {\n isPureObject,\n isPromise,\n isIterable,\n isAsyncIterable,\n isIterator,\n isResponse,\n isReadableStream,\n isWritableStream\n} from './javascript-utils/is-type';\n"],"mappings":"SAuBQA,SAAS;AAAA,SAETC,eAAe;AAAA,SAKfC,gBAAgB,EAAEC,gBAAgB;AAAA,SAClCC,eAAe;AAAA,SACfC,YAAY,EAAEC,gBAAgB;AAAA,SAG9BC,KAAK;AAAA,SACLC,SAAS;AAAA,SACTC,cAAc;AAAA,SAEdC,IAAI;AAAA,SACJC,aAAa;AAAA,SAGbC,WAAW,EAAEC,iBAAiB,EAAEC,oBAAoB;AAAA,SACpDC,MAAM,EAAEC,UAAU,EAAEC,eAAe,EAAEC,cAAc;AAAA,SACnDC,UAAU,EAAEC,cAAc;AAGlC,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,0BAA0B;AAClF,SAAQC,gBAAgB,QAAO,0BAA0B;AAAC,SAGlDC,YAAY;AAAA,SACZC,UAAU;AAAA,SAGVC,gBAAgB,EAAEC,UAAU;AACpC,SAAQC,UAAU,QAAO,0BAA0B;AAAC,SAG5CC,aAAa,IAAIC,cAAc;AAAA,SAC/BC,iBAAiB,IAAIC,kBAAkB;AAAA,SAGvCC,kBAAkB;AAM1B,SAAQC,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,QAAO,0BAA0B;AAC5F,SAAQC,MAAM,QAAO,0BAA0B;AAC/C,SAAQC,OAAO,EAAEC,4BAA4B,QAAO,0BAA0B;AAE9E,SACEC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAgB,EAChBC,wBAAwB,QACnB,0BAA0B;AAAC,SAIhCC,YAAY,EACZC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,UAAU,EACVC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"timed-batch-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/batch-iterators/timed-batch-iterator.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAuB,kBAAkB,CAAC,KAAK,EAC7C,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,OAAO,EAAE,MAAM,GACd,aAAa,CAAC,KAAK,EAAE,CAAC,CAexB"}
1
+ {"version":3,"file":"timed-batch-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/batch-iterators/timed-batch-iterator.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAuB,kBAAkB,CAAC,KAAK,EAC7C,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,OAAO,EAAE,MAAM,GACd,aAAa,CAAC,KAAK,EAAE,CAAC,CAexB"}
@@ -1 +1 @@
1
- {"version":3,"file":"timed-batch-iterator.js","names":["timedBatchIterator","batchIterator","timeout","start","Date","now","batches","batch","push"],"sources":["../../../src/iterators/batch-iterators/timed-batch-iterator.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/**\n * \"Debounces\" batches and returns them in groups\n */\nexport async function* timedBatchIterator<Batch>(\n batchIterator: AsyncIterable<Batch>,\n timeout: number\n): AsyncIterable<Batch[]> {\n let start = Date.now();\n let batches: Batch[] = [];\n for await (const batch of batchIterator) {\n batches.push(batch);\n if (Date.now() - start > timeout) {\n yield batches;\n start = Date.now();\n batches = [];\n }\n }\n\n if (batches) {\n yield batches;\n }\n}\n"],"mappings":"AAMA,OAAO,gBAAgBA,kBAAkBA,CACvCC,aAAmC,EACnCC,OAAe,EACS;EACxB,IAAIC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACtB,IAAIC,OAAgB,GAAG,EAAE;EACzB,WAAW,MAAMC,KAAK,IAAIN,aAAa,EAAE;IACvCK,OAAO,CAACE,IAAI,CAACD,KAAK,CAAC;IACnB,IAAIH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,KAAK,GAAGD,OAAO,EAAE;MAChC,MAAMI,OAAO;MACbH,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MAClBC,OAAO,GAAG,EAAE;IACd;EACF;EAEA,IAAIA,OAAO,EAAE;IACX,MAAMA,OAAO;EACf;AACF"}
1
+ {"version":3,"file":"timed-batch-iterator.js","names":["timedBatchIterator","batchIterator","timeout","start","Date","now","batches","batch","push"],"sources":["../../../src/iterators/batch-iterators/timed-batch-iterator.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/**\n * \"Debounces\" batches and returns them in groups\n */\nexport async function* timedBatchIterator<Batch>(\n batchIterator: AsyncIterable<Batch>,\n timeout: number\n): AsyncIterable<Batch[]> {\n let start = Date.now();\n let batches: Batch[] = [];\n for await (const batch of batchIterator) {\n batches.push(batch);\n if (Date.now() - start > timeout) {\n yield batches;\n start = Date.now();\n batches = [];\n }\n }\n\n if (batches) {\n yield batches;\n }\n}\n"],"mappings":"AAOA,OAAO,gBAAgBA,kBAAkBA,CACvCC,aAAmC,EACnCC,OAAe,EACS;EACxB,IAAIC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACtB,IAAIC,OAAgB,GAAG,EAAE;EACzB,WAAW,MAAMC,KAAK,IAAIN,aAAa,EAAE;IACvCK,OAAO,CAACE,IAAI,CAACD,KAAK,CAAC;IACnB,IAAIH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,KAAK,GAAGD,OAAO,EAAE;MAChC,MAAMI,OAAO;MACbH,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MAClBC,OAAO,GAAG,EAAE;IACd;EACF;EAEA,IAAIA,OAAO,EAAE;IACX,MAAMA,OAAO;EACf;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-array-buffer-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-array-buffer-iterator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,wBAAiB,uBAAuB,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAAC,WAAW,CAAC,CAmBvB"}
1
+ {"version":3,"file":"make-array-buffer-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-array-buffer-iterator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,wBAAiB,uBAAuB,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAAC,WAAW,CAAC,CAmBvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-array-buffer-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeArrayBufferIterator","arrayBuffer","options","arguments","length","undefined","chunkSize","byteOffset","byteLength","chunkByteLength","Math","min","chunk","ArrayBuffer","sourceArray","Uint8Array","chunkArray","set"],"sources":["../../../src/iterators/make-iterator/make-array-buffer-iterator.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n\n/**\n * Returns an iterator that breaks a big ArrayBuffer into chunks and yields them one-by-one\n * @param blob ArrayBuffer to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeArrayBufferIterator(\n arrayBuffer: ArrayBuffer,\n options: IteratorOptions = {}\n): Iterable<ArrayBuffer> {\n const {chunkSize = DEFAULT_CHUNK_SIZE} = options;\n\n let byteOffset = 0;\n\n while (byteOffset < arrayBuffer.byteLength) {\n // Create a chunk of the right size\n const chunkByteLength = Math.min(arrayBuffer.byteLength - byteOffset, chunkSize);\n const chunk = new ArrayBuffer(chunkByteLength);\n\n // Copy data from the big chunk\n const sourceArray = new Uint8Array(arrayBuffer, byteOffset, chunkByteLength);\n const chunkArray = new Uint8Array(chunk);\n chunkArray.set(sourceArray);\n\n // yield the chunk\n byteOffset += chunkByteLength;\n yield chunk;\n }\n}\n"],"mappings":"AAKA,MAAMA,kBAAkB,GAAG,GAAG,GAAG,IAAI;AAQrC,OAAO,SAAUC,uBAAuBA,CACtCC,WAAwB;EAAA,IACxBC,OAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,oBACN;IACvB,MAAM;MAACG,SAAS,GAAGP;IAAkB,CAAC,GAAGG,OAAO;IAEhD,IAAIK,UAAU,GAAG,CAAC;IAElB,OAAOA,UAAU,GAAGN,WAAW,CAACO,UAAU,EAAE;MAE1C,MAAMC,eAAe,GAAGC,IAAI,CAACC,GAAG,CAACV,WAAW,CAACO,UAAU,GAAGD,UAAU,EAAED,SAAS,CAAC;MAChF,MAAMM,KAAK,GAAG,IAAIC,WAAW,CAACJ,eAAe,CAAC;MAG9C,MAAMK,WAAW,GAAG,IAAIC,UAAU,CAACd,WAAW,EAAEM,UAAU,EAAEE,eAAe,CAAC;MAC5E,MAAMO,UAAU,GAAG,IAAID,UAAU,CAACH,KAAK,CAAC;MACxCI,UAAU,CAACC,GAAG,CAACH,WAAW,CAAC;MAG3BP,UAAU,IAAIE,eAAe;MAC7B,MAAMG,KAAK;IACb;EACF,CAAC;AAAA"}
1
+ {"version":3,"file":"make-array-buffer-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeArrayBufferIterator","arrayBuffer","options","arguments","length","undefined","chunkSize","byteOffset","byteLength","chunkByteLength","Math","min","chunk","ArrayBuffer","sourceArray","Uint8Array","chunkArray","set"],"sources":["../../../src/iterators/make-iterator/make-array-buffer-iterator.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n\n/**\n * Returns an iterator that breaks a big ArrayBuffer into chunks and yields them one-by-one\n * @param blob ArrayBuffer to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeArrayBufferIterator(\n arrayBuffer: ArrayBuffer,\n options: IteratorOptions = {}\n): Iterable<ArrayBuffer> {\n const {chunkSize = DEFAULT_CHUNK_SIZE} = options;\n\n let byteOffset = 0;\n\n while (byteOffset < arrayBuffer.byteLength) {\n // Create a chunk of the right size\n const chunkByteLength = Math.min(arrayBuffer.byteLength - byteOffset, chunkSize);\n const chunk = new ArrayBuffer(chunkByteLength);\n\n // Copy data from the big chunk\n const sourceArray = new Uint8Array(arrayBuffer, byteOffset, chunkByteLength);\n const chunkArray = new Uint8Array(chunk);\n chunkArray.set(sourceArray);\n\n // yield the chunk\n byteOffset += chunkByteLength;\n yield chunk;\n }\n}\n"],"mappings":"AAMA,MAAMA,kBAAkB,GAAG,GAAG,GAAG,IAAI;AAQrC,OAAO,SAAUC,uBAAuBA,CACtCC,WAAwB;EAAA,IACxBC,OAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,oBACN;IACvB,MAAM;MAACG,SAAS,GAAGP;IAAkB,CAAC,GAAGG,OAAO;IAEhD,IAAIK,UAAU,GAAG,CAAC;IAElB,OAAOA,UAAU,GAAGN,WAAW,CAACO,UAAU,EAAE;MAE1C,MAAMC,eAAe,GAAGC,IAAI,CAACC,GAAG,CAACV,WAAW,CAACO,UAAU,GAAGD,UAAU,EAAED,SAAS,CAAC;MAChF,MAAMM,KAAK,GAAG,IAAIC,WAAW,CAACJ,eAAe,CAAC;MAG9C,MAAMK,WAAW,GAAG,IAAIC,UAAU,CAACd,WAAW,EAAEM,UAAU,EAAEE,eAAe,CAAC;MAC5E,MAAMO,UAAU,GAAG,IAAID,UAAU,CAACH,KAAK,CAAC;MACxCI,UAAU,CAACC,GAAG,CAACH,WAAW,CAAC;MAG3BP,UAAU,IAAIE,eAAe;MAC7B,MAAMG,KAAK;IACb;EACF,CAAC;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-blob-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-blob-iterator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,wBAAuB,gBAAgB,CACrC,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,eAAe,GACxB,aAAa,CAAC,WAAW,CAAC,CAY5B"}
1
+ {"version":3,"file":"make-blob-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-blob-iterator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,wBAAuB,gBAAgB,CACrC,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,eAAe,GACxB,aAAa,CAAC,WAAW,CAAC,CAY5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-blob-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeBlobIterator","blob","options","chunkSize","offset","size","end","chunk","slice","arrayBuffer"],"sources":["../../../src/iterators/make-iterator/make-blob-iterator.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 1024 * 1024; // 1MB — biggest value that keeps UI responsive\n\n/**\n * Returns an iterator that breaks a big Blob into chunks and yields them one-by-one\n * @param blob Blob or File object\n * @param options\n * @param options.chunkSize\n */\nexport async function* makeBlobIterator(\n blob: Blob,\n options?: IteratorOptions\n): AsyncIterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n while (offset < blob.size) {\n const end = offset + chunkSize;\n\n const chunk = await blob.slice(offset, end).arrayBuffer();\n\n offset = end;\n yield chunk;\n }\n}\n"],"mappings":"AAKA,MAAMA,kBAAkB,GAAG,IAAI,GAAG,IAAI;AAQtC,OAAO,gBAAgBC,gBAAgBA,CACrCC,IAAU,EACVC,OAAyB,EACG;EAC5B,MAAMC,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAIJ,kBAAkB;EAE1D,IAAIK,MAAM,GAAG,CAAC;EACd,OAAOA,MAAM,GAAGH,IAAI,CAACI,IAAI,EAAE;IACzB,MAAMC,GAAG,GAAGF,MAAM,GAAGD,SAAS;IAE9B,MAAMI,KAAK,GAAG,MAAMN,IAAI,CAACO,KAAK,CAACJ,MAAM,EAAEE,GAAG,CAAC,CAACG,WAAW,CAAC,CAAC;IAEzDL,MAAM,GAAGE,GAAG;IACZ,MAAMC,KAAK;EACb;AACF"}
1
+ {"version":3,"file":"make-blob-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeBlobIterator","blob","options","chunkSize","offset","size","end","chunk","slice","arrayBuffer"],"sources":["../../../src/iterators/make-iterator/make-blob-iterator.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 1024 * 1024; // 1MB — biggest value that keeps UI responsive\n\n/**\n * Returns an iterator that breaks a big Blob into chunks and yields them one-by-one\n * @param blob Blob or File object\n * @param options\n * @param options.chunkSize\n */\nexport async function* makeBlobIterator(\n blob: Blob,\n options?: IteratorOptions\n): AsyncIterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n while (offset < blob.size) {\n const end = offset + chunkSize;\n\n const chunk = await blob.slice(offset, end).arrayBuffer();\n\n offset = end;\n yield chunk;\n }\n}\n"],"mappings":"AAMA,MAAMA,kBAAkB,GAAG,IAAI,GAAG,IAAI;AAQtC,OAAO,gBAAgBC,gBAAgBA,CACrCC,IAAU,EACVC,OAAyB,EACG;EAC5B,MAAMC,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAIJ,kBAAkB;EAE1D,IAAIK,MAAM,GAAG,CAAC;EACd,OAAOA,MAAM,GAAGH,IAAI,CAACI,IAAI,EAAE;IACzB,MAAMC,GAAG,GAAGF,MAAM,GAAGD,SAAS;IAE9B,MAAMI,KAAK,GAAG,MAAMN,IAAI,CAACO,KAAK,CAACJ,MAAM,EAAEE,GAAG,CAAC,CAACG,WAAW,CAAC,CAAC;IAEzDL,MAAM,GAAGE,GAAG;IACZ,MAAMC,KAAK;EACb;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-iterator.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,IAAI,CAAC;AAKnC,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAIlE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,EAC1E,OAAO,CAAC,EAAE,eAAe,GACxB,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAmBpD"}
1
+ {"version":3,"file":"make-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-iterator.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,IAAI,CAAC;AAKnC,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAIlE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,EAC1E,OAAO,CAAC,EAAE,eAAe,GACxB,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAmBpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-iterator.js","names":["makeStringIterator","makeArrayBufferIterator","makeBlobIterator","makeStreamIterator","isBlob","isReadableStream","isResponse","makeIterator","data","options","ArrayBuffer","response","body","Error"],"sources":["../../../src/iterators/make-iterator/make-iterator.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ReadStream} from 'fs';\n\nimport {makeStringIterator} from './make-string-iterator';\nimport {makeArrayBufferIterator} from './make-array-buffer-iterator';\nimport {makeBlobIterator} from './make-blob-iterator';\nimport type {StreamIteratorOptions} from './make-stream-iterator';\nimport {makeStreamIterator} from './make-stream-iterator';\nimport {isBlob, isReadableStream, isResponse} from '../../javascript-utils/is-type';\n\n/**\n * @param [options.chunkSize]\n */\nexport type IteratorOptions = StreamIteratorOptions & {\n chunkSize?: number;\n};\n\n/**\n * Returns an iterator that breaks its input into chunks and yields them one-by-one.\n * @param data\n * @param options\n * @returns\n * This function can e.g. be used to enable data sources that can only be read atomically\n * (such as `Blob` and `File` via `FileReader`) to still be parsed in batches.\n */\nexport function makeIterator(\n data: ArrayBuffer | string | Blob | Response | ReadableStream | ReadStream,\n options?: IteratorOptions\n): AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer> {\n if (typeof data === 'string') {\n // Note: Converts string chunks to binary\n return makeStringIterator(data, options);\n }\n if (data instanceof ArrayBuffer) {\n return makeArrayBufferIterator(data, options);\n }\n if (isBlob(data)) {\n return makeBlobIterator(data as Blob, options);\n }\n if (isReadableStream(data)) {\n return makeStreamIterator(data as ReadableStream, options);\n }\n if (isResponse(data)) {\n const response = data as Response;\n return makeStreamIterator(response.body as ReadableStream, options);\n }\n throw new Error('makeIterator');\n}\n"],"mappings":"SAKQA,kBAAkB;AAAA,SAClBC,uBAAuB;AAAA,SACvBC,gBAAgB;AAAA,SAEhBC,kBAAkB;AAAA,SAClBC,MAAM,EAAEC,gBAAgB,EAAEC,UAAU;AAiB5C,OAAO,SAASC,YAAYA,CAC1BC,IAA0E,EAC1EC,OAAyB,EAC2B;EACpD,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAE5B,OAAOR,kBAAkB,CAACQ,IAAI,EAAEC,OAAO,CAAC;EAC1C;EACA,IAAID,IAAI,YAAYE,WAAW,EAAE;IAC/B,OAAOT,uBAAuB,CAACO,IAAI,EAAEC,OAAO,CAAC;EAC/C;EACA,IAAIL,MAAM,CAACI,IAAI,CAAC,EAAE;IAChB,OAAON,gBAAgB,CAACM,IAAI,EAAUC,OAAO,CAAC;EAChD;EACA,IAAIJ,gBAAgB,CAACG,IAAI,CAAC,EAAE;IAC1B,OAAOL,kBAAkB,CAACK,IAAI,EAAoBC,OAAO,CAAC;EAC5D;EACA,IAAIH,UAAU,CAACE,IAAI,CAAC,EAAE;IACpB,MAAMG,QAAQ,GAAGH,IAAgB;IACjC,OAAOL,kBAAkB,CAACQ,QAAQ,CAACC,IAAI,EAAoBH,OAAO,CAAC;EACrE;EACA,MAAM,IAAII,KAAK,CAAC,cAAc,CAAC;AACjC"}
1
+ {"version":3,"file":"make-iterator.js","names":["makeStringIterator","makeArrayBufferIterator","makeBlobIterator","makeStreamIterator","isBlob","isReadableStream","isResponse","makeIterator","data","options","ArrayBuffer","response","body","Error"],"sources":["../../../src/iterators/make-iterator/make-iterator.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ReadStream} from 'fs';\n\nimport {makeStringIterator} from './make-string-iterator';\nimport {makeArrayBufferIterator} from './make-array-buffer-iterator';\nimport {makeBlobIterator} from './make-blob-iterator';\nimport type {StreamIteratorOptions} from './make-stream-iterator';\nimport {makeStreamIterator} from './make-stream-iterator';\nimport {isBlob, isReadableStream, isResponse} from '../../javascript-utils/is-type';\n\n/**\n * @param [options.chunkSize]\n */\nexport type IteratorOptions = StreamIteratorOptions & {\n chunkSize?: number;\n};\n\n/**\n * Returns an iterator that breaks its input into chunks and yields them one-by-one.\n * @param data\n * @param options\n * @returns\n * This function can e.g. be used to enable data sources that can only be read atomically\n * (such as `Blob` and `File` via `FileReader`) to still be parsed in batches.\n */\nexport function makeIterator(\n data: ArrayBuffer | string | Blob | Response | ReadableStream | ReadStream,\n options?: IteratorOptions\n): AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer> {\n if (typeof data === 'string') {\n // Note: Converts string chunks to binary\n return makeStringIterator(data, options);\n }\n if (data instanceof ArrayBuffer) {\n return makeArrayBufferIterator(data, options);\n }\n if (isBlob(data)) {\n return makeBlobIterator(data as Blob, options);\n }\n if (isReadableStream(data)) {\n return makeStreamIterator(data as ReadableStream, options);\n }\n if (isResponse(data)) {\n const response = data as Response;\n return makeStreamIterator(response.body as ReadableStream, options);\n }\n throw new Error('makeIterator');\n}\n"],"mappings":"SAMQA,kBAAkB;AAAA,SAClBC,uBAAuB;AAAA,SACvBC,gBAAgB;AAAA,SAEhBC,kBAAkB;AAAA,SAClBC,MAAM,EAAEC,gBAAgB,EAAEC,UAAU;AAiB5C,OAAO,SAASC,YAAYA,CAC1BC,IAA0E,EAC1EC,OAAyB,EAC2B;EACpD,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAE5B,OAAOR,kBAAkB,CAACQ,IAAI,EAAEC,OAAO,CAAC;EAC1C;EACA,IAAID,IAAI,YAAYE,WAAW,EAAE;IAC/B,OAAOT,uBAAuB,CAACO,IAAI,EAAEC,OAAO,CAAC;EAC/C;EACA,IAAIL,MAAM,CAACI,IAAI,CAAC,EAAE;IAChB,OAAON,gBAAgB,CAACM,IAAI,EAAUC,OAAO,CAAC;EAChD;EACA,IAAIJ,gBAAgB,CAACG,IAAI,CAAC,EAAE;IAC1B,OAAOL,kBAAkB,CAACK,IAAI,EAAoBC,OAAO,CAAC;EAC5D;EACA,IAAIH,UAAU,CAACE,IAAI,CAAC,EAAE;IACpB,MAAMG,QAAQ,GAAGH,IAAgB;IACjC,OAAOL,kBAAkB,CAACQ,QAAQ,CAACC,IAAI,EAAoBH,OAAO,CAAC;EACrE;EACA,MAAM,IAAII,KAAK,CAAC,cAAc,CAAC;AACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGrC,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,GAAG,QAAQ,EACjC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,WAAW,CAAC,CAI5B"}
1
+ {"version":3,"file":"make-stream-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGrC,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,GAAG,QAAQ,EACjC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,WAAW,CAAC,CAI5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream-iterator.js","names":["isBrowser","toArrayBuffer","makeStreamIterator","stream","options","makeBrowserStreamIterator","makeNodeStreamIterator","reader","getReader","nextBatchPromise","currentBatchPromise","read","_streamReadAhead","done","value","error","releaseLock","chunk"],"sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Readable} from 'stream';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\n\nexport type StreamIteratorOptions = {\n _streamReadAhead?: boolean;\n};\n\n/**\n * Returns an async iterable that reads from a stream (works in both Node.js and browsers)\n * @param stream stream to iterator over\n */\nexport function makeStreamIterator(\n stream: ReadableStream | Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n return isBrowser\n ? makeBrowserStreamIterator(stream as ReadableStream, options)\n : makeNodeStreamIterator(stream as Readable, options);\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @see https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nasync function* makeBrowserStreamIterator(\n stream: ReadableStream,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // WhatWG: stream is supposed to have a `getIterator` method\n // if (typeof stream.getIterator === 'function') {\n // return stream.getIterator();\n // }\n // if (typeof stream[Symbol.asyncIterator] === 'function') {\n // return makeToArrayBufferIterator(stream);\n // }\n\n // In the browser, we first need to get a lock on the stream\n const reader = stream.getReader();\n\n let nextBatchPromise: Promise<{done?: boolean; value?: Uint8Array}> | undefined;\n\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const currentBatchPromise = nextBatchPromise || reader.read();\n // Issue a read for an additional batch, while we await the next batch\n // Idea is to make fetching happen in parallel with processing / parsing\n if (options?._streamReadAhead) {\n nextBatchPromise = reader.read();\n }\n // Read from the stream\n // value is a Uint8Array\n const {done, value} = await currentBatchPromise;\n // Exit if we're done\n if (done) {\n return;\n }\n // Else yield the chunk\n yield toArrayBuffer(value);\n }\n } catch (error) {\n // TODO - examples makes it look like this should always be called,\n // but that generates exceptions so only call it if we do not reach the end\n reader.releaseLock();\n }\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @note Requires Node.js >= 10\n */\nasync function* makeNodeStreamIterator(\n stream: Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // Hacky test for node version to ensure we don't call bad polyfills\n // NODE 10+: stream is an asyncIterator\n for await (const chunk of stream) {\n yield toArrayBuffer(chunk); // Coerce each chunk to ArrayBuffer\n }\n}\n/* TODO - remove NODE < 10\n * @see https://github.com/bustle/streaming-iterables, MIT license\n *\n if (typeof stream[Symbol.asyncIterator] === 'function') {\n return;\n }\n\n // TODO - check if is this ever used in Node 10+?\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const data = stream.read();\n if (data !== null) {\n yield toArrayBuffer(data);\n // eslint-disable-next-line no-continue\n continue;\n }\n if (stream._readableState?.ended) {\n return;\n }\n await onceReadable(stream);\n }\n\nasync function onceReadable(stream: Readable): Promise<any> {\n return new Promise((resolve) => {\n stream.once('readable', resolve);\n });\n}\n */\n"],"mappings":"AAIA,SAAQA,SAAS,EAAEC,aAAa,QAAO,0BAA0B;AAUjE,OAAO,SAASC,kBAAkBA,CAChCC,MAAiC,EACjCC,OAA+B,EACH;EAC5B,OAAOJ,SAAS,GACZK,yBAAyB,CAACF,MAAM,EAAoBC,OAAO,CAAC,GAC5DE,sBAAsB,CAACH,MAAM,EAAcC,OAAO,CAAC;AACzD;AAOA,gBAAgBC,yBAAyBA,CACvCF,MAAsB,EACtBC,OAA+B,EACH;EAU5B,MAAMG,MAAM,GAAGJ,MAAM,CAACK,SAAS,CAAC,CAAC;EAEjC,IAAIC,gBAA2E;EAE/E,IAAI;IAEF,OAAO,IAAI,EAAE;MACX,MAAMC,mBAAmB,GAAGD,gBAAgB,IAAIF,MAAM,CAACI,IAAI,CAAC,CAAC;MAG7D,IAAIP,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEQ,gBAAgB,EAAE;QAC7BH,gBAAgB,GAAGF,MAAM,CAACI,IAAI,CAAC,CAAC;MAClC;MAGA,MAAM;QAACE,IAAI;QAAEC;MAAK,CAAC,GAAG,MAAMJ,mBAAmB;MAE/C,IAAIG,IAAI,EAAE;QACR;MACF;MAEA,MAAMZ,aAAa,CAACa,KAAK,CAAC;IAC5B;EACF,CAAC,CAAC,OAAOC,KAAK,EAAE;IAGdR,MAAM,CAACS,WAAW,CAAC,CAAC;EACtB;AACF;AAOA,gBAAgBV,sBAAsBA,CACpCH,MAAgB,EAChBC,OAA+B,EACH;EAG5B,WAAW,MAAMa,KAAK,IAAId,MAAM,EAAE;IAChC,MAAMF,aAAa,CAACgB,KAAK,CAAC;EAC5B;AACF"}
1
+ {"version":3,"file":"make-stream-iterator.js","names":["isBrowser","toArrayBuffer","makeStreamIterator","stream","options","makeBrowserStreamIterator","makeNodeStreamIterator","reader","getReader","nextBatchPromise","currentBatchPromise","read","_streamReadAhead","done","value","error","releaseLock","chunk"],"sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Readable} from 'stream';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\n\nexport type StreamIteratorOptions = {\n _streamReadAhead?: boolean;\n};\n\n/**\n * Returns an async iterable that reads from a stream (works in both Node.js and browsers)\n * @param stream stream to iterator over\n */\nexport function makeStreamIterator(\n stream: ReadableStream | Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n return isBrowser\n ? makeBrowserStreamIterator(stream as ReadableStream, options)\n : makeNodeStreamIterator(stream as Readable, options);\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @see https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nasync function* makeBrowserStreamIterator(\n stream: ReadableStream,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // WhatWG: stream is supposed to have a `getIterator` method\n // if (typeof stream.getIterator === 'function') {\n // return stream.getIterator();\n // }\n // if (typeof stream[Symbol.asyncIterator] === 'function') {\n // return makeToArrayBufferIterator(stream);\n // }\n\n // In the browser, we first need to get a lock on the stream\n const reader = stream.getReader();\n\n let nextBatchPromise: Promise<{done?: boolean; value?: Uint8Array}> | undefined;\n\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const currentBatchPromise = nextBatchPromise || reader.read();\n // Issue a read for an additional batch, while we await the next batch\n // Idea is to make fetching happen in parallel with processing / parsing\n if (options?._streamReadAhead) {\n nextBatchPromise = reader.read();\n }\n // Read from the stream\n // value is a Uint8Array\n const {done, value} = await currentBatchPromise;\n // Exit if we're done\n if (done) {\n return;\n }\n // Else yield the chunk\n yield toArrayBuffer(value);\n }\n } catch (error) {\n // TODO - examples makes it look like this should always be called,\n // but that generates exceptions so only call it if we do not reach the end\n reader.releaseLock();\n }\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @note Requires Node.js >= 10\n */\nasync function* makeNodeStreamIterator(\n stream: Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // Hacky test for node version to ensure we don't call bad polyfills\n // NODE 10+: stream is an asyncIterator\n for await (const chunk of stream) {\n yield toArrayBuffer(chunk); // Coerce each chunk to ArrayBuffer\n }\n}\n/* TODO - remove NODE < 10\n * @see https://github.com/bustle/streaming-iterables, MIT license\n *\n if (typeof stream[Symbol.asyncIterator] === 'function') {\n return;\n }\n\n // TODO - check if is this ever used in Node 10+?\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const data = stream.read();\n if (data !== null) {\n yield toArrayBuffer(data);\n // eslint-disable-next-line no-continue\n continue;\n }\n if (stream._readableState?.ended) {\n return;\n }\n await onceReadable(stream);\n }\n\nasync function onceReadable(stream: Readable): Promise<any> {\n return new Promise((resolve) => {\n stream.once('readable', resolve);\n });\n}\n */\n"],"mappings":"AAKA,SAAQA,SAAS,EAAEC,aAAa,QAAO,0BAA0B;AAUjE,OAAO,SAASC,kBAAkBA,CAChCC,MAAiC,EACjCC,OAA+B,EACH;EAC5B,OAAOJ,SAAS,GACZK,yBAAyB,CAACF,MAAM,EAAoBC,OAAO,CAAC,GAC5DE,sBAAsB,CAACH,MAAM,EAAcC,OAAO,CAAC;AACzD;AAOA,gBAAgBC,yBAAyBA,CACvCF,MAAsB,EACtBC,OAA+B,EACH;EAU5B,MAAMG,MAAM,GAAGJ,MAAM,CAACK,SAAS,CAAC,CAAC;EAEjC,IAAIC,gBAA2E;EAE/E,IAAI;IAEF,OAAO,IAAI,EAAE;MACX,MAAMC,mBAAmB,GAAGD,gBAAgB,IAAIF,MAAM,CAACI,IAAI,CAAC,CAAC;MAG7D,IAAIP,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEQ,gBAAgB,EAAE;QAC7BH,gBAAgB,GAAGF,MAAM,CAACI,IAAI,CAAC,CAAC;MAClC;MAGA,MAAM;QAACE,IAAI;QAAEC;MAAK,CAAC,GAAG,MAAMJ,mBAAmB;MAE/C,IAAIG,IAAI,EAAE;QACR;MACF;MAEA,MAAMZ,aAAa,CAACa,KAAK,CAAC;IAC5B;EACF,CAAC,CAAC,OAAOC,KAAK,EAAE;IAGdR,MAAM,CAACS,WAAW,CAAC,CAAC;EACtB;AACF;AAOA,gBAAgBV,sBAAsBA,CACpCH,MAAgB,EAChBC,OAA+B,EACH;EAG5B,WAAW,MAAMa,KAAK,IAAId,MAAM,EAAE;IAChC,MAAMF,aAAa,CAACgB,KAAK,CAAC;EAC5B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-string-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-string-iterator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,wBAAiB,kBAAkB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,QAAQ,CAAC,WAAW,CAAC,CAcvB"}
1
+ {"version":3,"file":"make-string-iterator.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-string-iterator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,wBAAiB,kBAAkB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,QAAQ,CAAC,WAAW,CAAC,CAcvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-string-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeStringIterator","string","options","chunkSize","offset","textEncoder","TextEncoder","length","chunkLength","Math","min","chunk","slice","encode"],"sources":["../../../src/iterators/make-iterator/make-string-iterator.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n\n/**\n * Returns an iterator that breaks a big string into chunks and yields them one-by-one as ArrayBuffers\n * @param blob string to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeStringIterator(\n string: string,\n options?: IteratorOptions\n): Iterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n const textEncoder = new TextEncoder();\n while (offset < string.length) {\n // Create a chunk of the right size\n const chunkLength = Math.min(string.length - offset, chunkSize);\n const chunk = string.slice(offset, offset + chunkLength);\n offset += chunkLength;\n\n // yield an ArrayBuffer chunk\n yield textEncoder.encode(chunk);\n }\n}\n"],"mappings":"AAKA,MAAMA,kBAAkB,GAAG,GAAG,GAAG,IAAI;AAQrC,OAAO,UAAUC,kBAAkBA,CACjCC,MAAc,EACdC,OAAyB,EACF;EACvB,MAAMC,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAIJ,kBAAkB;EAE1D,IAAIK,MAAM,GAAG,CAAC;EACd,MAAMC,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC;EACrC,OAAOF,MAAM,GAAGH,MAAM,CAACM,MAAM,EAAE;IAE7B,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACT,MAAM,CAACM,MAAM,GAAGH,MAAM,EAAED,SAAS,CAAC;IAC/D,MAAMQ,KAAK,GAAGV,MAAM,CAACW,KAAK,CAACR,MAAM,EAAEA,MAAM,GAAGI,WAAW,CAAC;IACxDJ,MAAM,IAAII,WAAW;IAGrB,MAAMH,WAAW,CAACQ,MAAM,CAACF,KAAK,CAAC;EACjC;AACF"}
1
+ {"version":3,"file":"make-string-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeStringIterator","string","options","chunkSize","offset","textEncoder","TextEncoder","length","chunkLength","Math","min","chunk","slice","encode"],"sources":["../../../src/iterators/make-iterator/make-string-iterator.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n\n/**\n * Returns an iterator that breaks a big string into chunks and yields them one-by-one as ArrayBuffers\n * @param blob string to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeStringIterator(\n string: string,\n options?: IteratorOptions\n): Iterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n const textEncoder = new TextEncoder();\n while (offset < string.length) {\n // Create a chunk of the right size\n const chunkLength = Math.min(string.length - offset, chunkSize);\n const chunk = string.slice(offset, offset + chunkLength);\n offset += chunkLength;\n\n // yield an ArrayBuffer chunk\n yield textEncoder.encode(chunk);\n }\n}\n"],"mappings":"AAMA,MAAMA,kBAAkB,GAAG,GAAG,GAAG,IAAI;AAQrC,OAAO,UAAUC,kBAAkBA,CACjCC,MAAc,EACdC,OAAyB,EACF;EACvB,MAAMC,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAIJ,kBAAkB;EAE1D,IAAIK,MAAM,GAAG,CAAC;EACd,MAAMC,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC;EACrC,OAAOF,MAAM,GAAGH,MAAM,CAACM,MAAM,EAAE;IAE7B,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACT,MAAM,CAACM,MAAM,GAAGH,MAAM,EAAED,SAAS,CAAC;IAC/D,MAAMQ,KAAK,GAAGV,MAAM,CAACW,KAAK,CAACR,MAAM,EAAEA,MAAM,GAAGI,WAAW,CAAC;IACxDJ,MAAM,IAAII,WAAW;IAGrB,MAAMH,WAAW,CAACQ,MAAM,CAACF,KAAK,CAAC;EACjC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-stream/make-stream.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,WAAW,EACpC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,EAC1D,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CA4ChB"}
1
+ {"version":3,"file":"make-stream.d.ts","sourceRoot":"","sources":["../../../src/iterators/make-stream/make-stream.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,WAAW,EACpC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,EAC1D,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CA4ChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream.js","names":["makeStream","source","options","globalThis","loaders","makeNodeStream","iterator","Symbol","asyncIterator","ReadableStream","type","pull","controller","done","value","next","close","enqueue","Uint8Array","error","cancel","_iterator$return","return","call","highWaterMark"],"sources":["../../../src/iterators/make-stream/make-stream.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport type MakeStreamOptions = {\n /** Stream allocates an arrayBuffer. Enables use of a default reader. */\n autoAllocateChunkSize?: number;\n /** Total number of chunks in queue before back pressure is applied */\n highWaterMark?: number;\n};\n\n/**\n * Builds a DOM stream from an iterator\n * This stream is currently used in browsers only,\n * but note that Web stream support is present in Node from Node 16\n * https://nodejs.org/api/webstreams.html#webstreams_web_streams_api\n */\nexport function makeStream<ArrayBuffer>(\n source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,\n options?: MakeStreamOptions\n): ReadableStream {\n if (globalThis.loaders.makeNodeStream) {\n return globalThis.loaders.makeNodeStream(source, options);\n }\n\n // TODO - add AsyncGenerator to parameter types?\n const iterator = (source as AsyncGenerator<ArrayBuffer>)[Symbol.asyncIterator]\n ? (source as AsyncIterable<ArrayBuffer>)[Symbol.asyncIterator]()\n : (source as Iterable<ArrayBuffer>)[Symbol.iterator]();\n\n return new ReadableStream<Uint8Array>(\n {\n // Create a byte stream (enables `Response(stream).arrayBuffer()`)\n // Only supported on Chrome\n // See: https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController\n // @ts-ignore\n type: 'bytes',\n\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n if (done) {\n controller.close();\n } else {\n // TODO - ignores controller.desiredSize\n // @ts-expect-error Unclear why value is not correctly typed\n controller.enqueue(new Uint8Array(value));\n }\n } catch (error) {\n controller.error(error);\n }\n },\n\n async cancel() {\n await iterator?.return?.();\n }\n },\n // options: QueingStrategy<Uint8Array>\n {\n // This is bytes, not chunks\n highWaterMark: 2 ** 24,\n ...options\n }\n );\n}\n"],"mappings":"AAgBA,OAAO,SAASA,UAAUA,CACxBC,MAA0D,EAC1DC,OAA2B,EACX;EAChB,IAAIC,UAAU,CAACC,OAAO,CAACC,cAAc,EAAE;IACrC,OAAOF,UAAU,CAACC,OAAO,CAACC,cAAc,CAACJ,MAAM,EAAEC,OAAO,CAAC;EAC3D;EAGA,MAAMI,QAAQ,GAAIL,MAAM,CAAiCM,MAAM,CAACC,aAAa,CAAC,GACzEP,MAAM,CAAgCM,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC,GAC7DP,MAAM,CAA2BM,MAAM,CAACD,QAAQ,CAAC,CAAC,CAAC;EAExD,OAAO,IAAIG,cAAc,CACvB;IAKEC,IAAI,EAAE,OAAO;IAEb,MAAMC,IAAIA,CAACC,UAAU,EAAE;MACrB,IAAI;QACF,MAAM;UAACC,IAAI;UAAEC;QAAK,CAAC,GAAG,MAAMR,QAAQ,CAACS,IAAI,CAAC,CAAC;QAC3C,IAAIF,IAAI,EAAE;UACRD,UAAU,CAACI,KAAK,CAAC,CAAC;QACpB,CAAC,MAAM;UAGLJ,UAAU,CAACK,OAAO,CAAC,IAAIC,UAAU,CAACJ,KAAK,CAAC,CAAC;QAC3C;MACF,CAAC,CAAC,OAAOK,KAAK,EAAE;QACdP,UAAU,CAACO,KAAK,CAACA,KAAK,CAAC;MACzB;IACF,CAAC;IAED,MAAMC,MAAMA,CAAA,EAAG;MAAA,IAAAC,gBAAA;MACb,OAAMf,QAAQ,aAARA,QAAQ,wBAAAe,gBAAA,GAARf,QAAQ,CAAEgB,MAAM,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAAE,IAAA,CAAAjB,QAAmB,CAAC;IAC5B;EACF,CAAC,EAED;IAEEkB,aAAa,EAAE,CAAC,IAAI,EAAE;IACtB,GAAGtB;EACL,CACF,CAAC;AACH"}
1
+ {"version":3,"file":"make-stream.js","names":["makeStream","source","options","globalThis","loaders","makeNodeStream","iterator","Symbol","asyncIterator","ReadableStream","type","pull","controller","done","value","next","close","enqueue","Uint8Array","error","cancel","_iterator$return","return","call","highWaterMark"],"sources":["../../../src/iterators/make-stream/make-stream.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport type MakeStreamOptions = {\n /** Stream allocates an arrayBuffer. Enables use of a default reader. */\n autoAllocateChunkSize?: number;\n /** Total number of chunks in queue before back pressure is applied */\n highWaterMark?: number;\n};\n\n/**\n * Builds a DOM stream from an iterator\n * This stream is currently used in browsers only,\n * but note that Web stream support is present in Node from Node 16\n * https://nodejs.org/api/webstreams.html#webstreams_web_streams_api\n */\nexport function makeStream<ArrayBuffer>(\n source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,\n options?: MakeStreamOptions\n): ReadableStream {\n if (globalThis.loaders.makeNodeStream) {\n return globalThis.loaders.makeNodeStream(source, options);\n }\n\n // TODO - add AsyncGenerator to parameter types?\n const iterator = (source as AsyncGenerator<ArrayBuffer>)[Symbol.asyncIterator]\n ? (source as AsyncIterable<ArrayBuffer>)[Symbol.asyncIterator]()\n : (source as Iterable<ArrayBuffer>)[Symbol.iterator]();\n\n return new ReadableStream<Uint8Array>(\n {\n // Create a byte stream (enables `Response(stream).arrayBuffer()`)\n // Only supported on Chrome\n // See: https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController\n // @ts-ignore\n type: 'bytes',\n\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n if (done) {\n controller.close();\n } else {\n // TODO - ignores controller.desiredSize\n // @ts-expect-error Unclear why value is not correctly typed\n controller.enqueue(new Uint8Array(value));\n }\n } catch (error) {\n controller.error(error);\n }\n },\n\n async cancel() {\n await iterator?.return?.();\n }\n },\n // options: QueingStrategy<Uint8Array>\n {\n // This is bytes, not chunks\n highWaterMark: 2 ** 24,\n ...options\n }\n );\n}\n"],"mappings":"AAiBA,OAAO,SAASA,UAAUA,CACxBC,MAA0D,EAC1DC,OAA2B,EACX;EAChB,IAAIC,UAAU,CAACC,OAAO,CAACC,cAAc,EAAE;IACrC,OAAOF,UAAU,CAACC,OAAO,CAACC,cAAc,CAACJ,MAAM,EAAEC,OAAO,CAAC;EAC3D;EAGA,MAAMI,QAAQ,GAAIL,MAAM,CAAiCM,MAAM,CAACC,aAAa,CAAC,GACzEP,MAAM,CAAgCM,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC,GAC7DP,MAAM,CAA2BM,MAAM,CAACD,QAAQ,CAAC,CAAC,CAAC;EAExD,OAAO,IAAIG,cAAc,CACvB;IAKEC,IAAI,EAAE,OAAO;IAEb,MAAMC,IAAIA,CAACC,UAAU,EAAE;MACrB,IAAI;QACF,MAAM;UAACC,IAAI;UAAEC;QAAK,CAAC,GAAG,MAAMR,QAAQ,CAACS,IAAI,CAAC,CAAC;QAC3C,IAAIF,IAAI,EAAE;UACRD,UAAU,CAACI,KAAK,CAAC,CAAC;QACpB,CAAC,MAAM;UAGLJ,UAAU,CAACK,OAAO,CAAC,IAAIC,UAAU,CAACJ,KAAK,CAAC,CAAC;QAC3C;MACF,CAAC,CAAC,OAAOK,KAAK,EAAE;QACdP,UAAU,CAACO,KAAK,CAACA,KAAK,CAAC;MACzB;IACF,CAAC;IAED,MAAMC,MAAMA,CAAA,EAAG;MAAA,IAAAC,gBAAA;MACb,OAAMf,QAAQ,aAARA,QAAQ,wBAAAe,gBAAA,GAARf,QAAQ,CAAEgB,MAAM,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAAE,IAAA,CAAAjB,QAAmB,CAAC;IAC5B;EACF,CAAC,EAED;IAEEkB,aAAa,EAAE,CAAC,IAAI,EAAE;IACtB,GAAGtB;EACL,CACF,CAAC;AACH"}