@loaders.gl/core 4.0.0-alpha.20 → 4.0.0-alpha.21

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 (90) hide show
  1. package/dist/dist.min.js +19 -21
  2. package/dist/es5/index.js +7 -0
  3. package/dist/es5/index.js.map +1 -1
  4. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  5. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -1
  6. package/dist/es5/javascript-utils/is-type.js +1 -1
  7. package/dist/es5/javascript-utils/is-type.js.map +1 -1
  8. package/dist/es5/lib/api/encode-table.js.map +1 -1
  9. package/dist/es5/lib/api/encode.js.map +1 -1
  10. package/dist/es5/lib/api/load-in-batches.js +6 -3
  11. package/dist/es5/lib/api/load-in-batches.js.map +1 -1
  12. package/dist/es5/lib/api/load.js.map +1 -1
  13. package/dist/es5/lib/api/parse-in-batches.js.map +1 -1
  14. package/dist/es5/lib/api/parse-sync.js.map +1 -1
  15. package/dist/es5/lib/api/parse.js +10 -10
  16. package/dist/es5/lib/api/parse.js.map +1 -1
  17. package/dist/es5/lib/filesystems/filesystem.js.map +1 -1
  18. package/dist/es5/lib/init.js +1 -1
  19. package/dist/es5/lib/loader-utils/get-fetch-function.js.map +1 -1
  20. package/dist/es5/null-loader.js +6 -14
  21. package/dist/es5/null-loader.js.map +1 -1
  22. package/dist/esm/index.js +1 -0
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  25. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -1
  26. package/dist/esm/javascript-utils/is-type.js +1 -1
  27. package/dist/esm/javascript-utils/is-type.js.map +1 -1
  28. package/dist/esm/lib/api/encode-table.js.map +1 -1
  29. package/dist/esm/lib/api/encode.js.map +1 -1
  30. package/dist/esm/lib/api/load-in-batches.js +6 -3
  31. package/dist/esm/lib/api/load-in-batches.js.map +1 -1
  32. package/dist/esm/lib/api/load.js.map +1 -1
  33. package/dist/esm/lib/api/parse-in-batches.js.map +1 -1
  34. package/dist/esm/lib/api/parse-sync.js.map +1 -1
  35. package/dist/esm/lib/api/parse.js +9 -9
  36. package/dist/esm/lib/api/parse.js.map +1 -1
  37. package/dist/esm/lib/filesystems/filesystem.js.map +1 -1
  38. package/dist/esm/lib/init.js +1 -1
  39. package/dist/esm/lib/loader-utils/get-fetch-function.js.map +1 -1
  40. package/dist/esm/null-loader.js +6 -14
  41. package/dist/esm/null-loader.js.map +1 -1
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts +1 -1
  45. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts.map +1 -1
  46. package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -1
  47. package/dist/iterators/make-stream/make-dom-stream.js +1 -0
  48. package/dist/javascript-utils/is-type.d.ts +5 -5
  49. package/dist/javascript-utils/is-type.d.ts.map +1 -1
  50. package/dist/javascript-utils/is-type.js +1 -1
  51. package/dist/lib/api/encode.d.ts +5 -5
  52. package/dist/lib/api/encode.d.ts.map +1 -1
  53. package/dist/lib/api/load-in-batches.d.ts +5 -0
  54. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  55. package/dist/lib/api/load-in-batches.js +10 -3
  56. package/dist/lib/api/load.d.ts +1 -2
  57. package/dist/lib/api/load.d.ts.map +1 -1
  58. package/dist/lib/api/parse-in-batches.d.ts +13 -7
  59. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  60. package/dist/lib/api/parse-in-batches.js +1 -0
  61. package/dist/lib/api/parse-sync.d.ts +13 -7
  62. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  63. package/dist/lib/api/parse-sync.js +0 -4
  64. package/dist/lib/api/parse.d.ts +11 -1
  65. package/dist/lib/api/parse.d.ts.map +1 -1
  66. package/dist/lib/api/parse.js +10 -9
  67. package/dist/lib/filesystems/filesystem.d.ts +3 -3
  68. package/dist/lib/filesystems/filesystem.d.ts.map +1 -1
  69. package/dist/lib/loader-utils/get-fetch-function.d.ts +2 -2
  70. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  71. package/dist/null-loader.d.ts +6 -3
  72. package/dist/null-loader.d.ts.map +1 -1
  73. package/dist/null-loader.js +9 -14
  74. package/dist/null-worker-node.js +6 -11
  75. package/dist/null-worker.js +6 -11
  76. package/package.json +4 -4
  77. package/src/index.ts +1 -0
  78. package/src/iterators/batch-iterators/timed-batch-iterator.ts +4 -1
  79. package/src/iterators/make-stream/make-dom-stream.ts +2 -1
  80. package/src/javascript-utils/is-type.ts +12 -8
  81. package/src/lib/api/encode-table.ts +1 -1
  82. package/src/lib/api/encode.ts +10 -10
  83. package/src/lib/api/load-in-batches.ts +45 -7
  84. package/src/lib/api/load.ts +2 -5
  85. package/src/lib/api/parse-in-batches.ts +39 -10
  86. package/src/lib/api/parse-sync.ts +34 -12
  87. package/src/lib/api/parse.ts +29 -12
  88. package/src/lib/filesystems/filesystem.ts +3 -3
  89. package/src/lib/loader-utils/get-fetch-function.ts +2 -2
  90. package/src/null-loader.ts +23 -17
@@ -8,8 +8,8 @@ exports.parse = parse;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _workerUtils = require("@loaders.gl/worker-utils");
12
11
  var _loaderUtils = require("@loaders.gl/loader-utils");
12
+ var _workerUtils = require("@loaders.gl/worker-utils");
13
13
  var _normalizeLoader = require("../loader-utils/normalize-loader");
14
14
  var _isType = require("../../javascript-utils/is-type");
15
15
  var _optionUtils = require("../loader-utils/option-utils");
@@ -73,7 +73,7 @@ function parseWithLoader(_x5, _x6, _x7, _x8) {
73
73
  }
74
74
  function _parseWithLoader() {
75
75
  _parseWithLoader = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(loader, data, options, context) {
76
- var response, ok, redirected, status, statusText, type, url, headers;
76
+ var response, ok, redirected, status, statusText, type, url, headers, loaderWithParser;
77
77
  return _regenerator.default.wrap(function _callee2$(_context2) {
78
78
  while (1) switch (_context2.prev = _context2.next) {
79
79
  case 0:
@@ -96,12 +96,12 @@ function _parseWithLoader() {
96
96
  return (0, _getData.getArrayBufferOrStringFromData)(data, loader, options);
97
97
  case 4:
98
98
  data = _context2.sent;
99
- if (!(loader.parseTextSync && typeof data === 'string')) {
99
+ loaderWithParser = loader;
100
+ if (!(loaderWithParser.parseTextSync && typeof data === 'string')) {
100
101
  _context2.next = 8;
101
102
  break;
102
103
  }
103
- options.dataType = 'text';
104
- return _context2.abrupt("return", loader.parseTextSync(data, options, context, loader));
104
+ return _context2.abrupt("return", loaderWithParser.parseTextSync(data, options, context));
105
105
  case 8:
106
106
  if (!(0, _loaderUtils.canParseWithWorker)(loader, options)) {
107
107
  _context2.next = 12;
@@ -112,25 +112,25 @@ function _parseWithLoader() {
112
112
  case 11:
113
113
  return _context2.abrupt("return", _context2.sent);
114
114
  case 12:
115
- if (!(loader.parseText && typeof data === 'string')) {
115
+ if (!(loaderWithParser.parseText && typeof data === 'string')) {
116
116
  _context2.next = 16;
117
117
  break;
118
118
  }
119
119
  _context2.next = 15;
120
- return loader.parseText(data, options, context, loader);
120
+ return loaderWithParser.parseText(data, options, context);
121
121
  case 15:
122
122
  return _context2.abrupt("return", _context2.sent);
123
123
  case 16:
124
- if (!loader.parse) {
124
+ if (!loaderWithParser.parse) {
125
125
  _context2.next = 20;
126
126
  break;
127
127
  }
128
128
  _context2.next = 19;
129
- return loader.parse(data, options, context, loader);
129
+ return loaderWithParser.parse(data, options, context);
130
130
  case 19:
131
131
  return _context2.abrupt("return", _context2.sent);
132
132
  case 20:
133
- (0, _workerUtils.assert)(!loader.parseSync);
133
+ (0, _workerUtils.assert)(!loaderWithParser.parseSync);
134
134
  throw new Error("".concat(loader.id, " loader - no parser found and worker is disabled"));
135
135
  case 22:
136
136
  case "end":
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","names":["_workerUtils","require","_loaderUtils","_normalizeLoader","_isType","_optionUtils","_getData","_loaderContext","_resourceUtils","_selectLoader","parse","_x","_x2","_x3","_x4","_parse","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","loaders","options","context","url","typedLoaders","candidateLoaders","loader","wrap","_callee$","_context","prev","next","assert","_typeof2","Array","isArray","isLoaderObject","undefined","sent","getResourceUrl","getLoadersFromContext","selectLoader","abrupt","normalizeOptions","getLoaderContext","parseWithLoader","stop","_x5","_x6","_x7","_x8","_parseWithLoader","_callee2","response","ok","redirected","status","statusText","type","headers","_callee2$","_context2","validateWorkerVersion","isResponse","Object","fromEntries","entries","getArrayBufferOrStringFromData","parseTextSync","dataType","canParseWithWorker","parseWithWorker","parseText","parseSync","Error","concat","id"],"sources":["../../../../src/lib/api/parse.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';\nimport {assert, validateWorkerVersion} from '@loaders.gl/worker-utils';\nimport {parseWithWorker, canParseWithWorker} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {isResponse} from '../../javascript-utils/is-type';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getArrayBufferOrStringFromData} from '../loader-utils/get-data';\nimport {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';\nimport {getResourceUrl} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// type LoaderArrayType<T> = T extends (infer Loader)[] ? LoaderOptionsType<Loader> : T\n\nexport async function parse<\n LoaderT extends Loader,\n OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>\n>(\n data: DataType | Promise<DataType>,\n loader: LoaderT,\n options?: OptionsT,\n context?: LoaderContext\n): Promise<LoaderReturnType<LoaderT>>;\n\nexport async function parse(\n data: DataType | Promise<DataType>,\n loaders: Loader[],\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<any>;\n\nexport async function parse(\n data: DataType | Promise<DataType>,\n options?: LoaderOptions\n): Promise<any>;\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n// implementation signature\nexport async function parse(\n data: DataType | Promise<DataType>,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<any> {\n assert(!context || typeof context === 'object'); // parse no longer accepts final url\n\n // Signature: parse(data, options, context | url)\n // Uses registered loaders\n if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n data = await data; // Resolve any promise\n options = options || ({} as LoaderOptions); // Could be invalid...\n\n // Extract a url for auto detection\n const url = getResourceUrl(data);\n\n // Chooses a loader (and normalizes it)\n // Also use any loaders in the context, new loaders take priority\n const typedLoaders = loaders as Loader | Loader[] | undefined;\n const candidateLoaders = getLoadersFromContext(typedLoaders, context);\n // todo hacky type cast\n const loader = await selectLoader(data as ArrayBuffer, candidateLoaders, options);\n // Note: if no loader was found, if so just return null\n if (!loader) {\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, candidateLoaders, url); // Could be invalid...\n\n // Get a context (if already present, will be unchanged)\n context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context || null);\n\n return await parseWithLoader(loader, data, options, context);\n}\n\n// TODO: support progress and abort\n// TODO - should accept loader.parseAsyncIterator and concatenate.\nasync function parseWithLoader(loader, data, options, context) {\n validateWorkerVersion(loader);\n\n if (isResponse(data)) {\n // Serialize to support passing the response to web worker\n const response = data as Response;\n const {ok, redirected, status, statusText, type, url} = response;\n const headers = Object.fromEntries(response.headers.entries());\n context.response = {headers, ok, redirected, status, statusText, type, url};\n }\n\n data = await getArrayBufferOrStringFromData(data, loader, options);\n\n // First check for synchronous text parser, wrap results in promises\n if (loader.parseTextSync && typeof data === 'string') {\n options.dataType = 'text';\n return loader.parseTextSync(data, options, context, loader);\n }\n\n // If we have a workerUrl and the loader can parse the given options efficiently in a worker\n if (canParseWithWorker(loader, options)) {\n return await parseWithWorker(loader, data, options, context, parse);\n }\n\n // Check for asynchronous parser\n if (loader.parseText && typeof data === 'string') {\n return await loader.parseText(data, options, context, loader);\n }\n\n if (loader.parse) {\n return await loader.parse(data, options, context, loader);\n }\n\n // This should not happen, all sync loaders should also offer `parse` function\n assert(!loader.parseSync);\n\n // TBD - If asynchronous parser not available, return null\n throw new Error(`${loader.id} loader - no parser found and worker is disabled`);\n}\n"],"mappings":";;;;;;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AAA6C,SAkCvBS,KAAKA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,OAAA;EAAAA,MAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAApB,SAAAC,QACLC,IAAkC,EAClCC,OAA2C,EAC3CC,OAAuB,EACvBC,OAAuB;IAAA,IAAAC,GAAA,EAAAC,YAAA,EAAAC,gBAAA,EAAAC,MAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAEvB,IAAAC,mBAAM,EAAC,CAACV,OAAO,IAAI,IAAAW,QAAA,CAAAlB,OAAA,EAAOO,OAAO,MAAK,QAAQ,CAAC;UAI/C,IAAIF,OAAO,IAAI,CAACc,KAAK,CAACC,OAAO,CAACf,OAAO,CAAC,IAAI,CAAC,IAAAgB,+BAAc,EAAChB,OAAO,CAAC,EAAE;YAClEE,OAAO,GAAGe,SAAS;YACnBhB,OAAO,GAAGD,OAAwB;YAClCA,OAAO,GAAGiB,SAAS;UACrB;UAACR,QAAA,CAAAE,IAAA;UAAA,OAEYZ,IAAI;QAAA;UAAjBA,IAAI,GAAAU,QAAA,CAAAS,IAAA;UACJjB,OAAO,GAAGA,OAAO,IAAK,CAAC,CAAmB;UAGpCE,GAAG,GAAG,IAAAgB,6BAAc,EAACpB,IAAI,CAAC;UAI1BK,YAAY,GAAGJ,OAAO;UACtBK,gBAAgB,GAAG,IAAAe,oCAAqB,EAAChB,YAAY,EAAEF,OAAO,CAAC;UAAAO,QAAA,CAAAE,IAAA;UAAA,OAEhD,IAAAU,0BAAY,EAACtB,IAAI,EAAiBM,gBAAgB,EAAEJ,OAAO,CAAC;QAAA;UAA3EK,MAAM,GAAAG,QAAA,CAAAS,IAAA;UAAA,IAEPZ,MAAM;YAAAG,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAa,MAAA,WACF,IAAI;QAAA;UAIbrB,OAAO,GAAG,IAAAsB,6BAAgB,EAACtB,OAAO,EAAEK,MAAM,EAAED,gBAAgB,EAAEF,GAAG,CAAC;UAGlED,OAAO,GAAG,IAAAsB,+BAAgB,EAAC;YAACrB,GAAG,EAAHA,GAAG;YAAEjB,KAAK,EAALA,KAAK;YAAEc,OAAO,EAAEK;UAAgB,CAAC,EAAEJ,OAAO,EAAEC,OAAO,IAAI,IAAI,CAAC;UAACO,QAAA,CAAAE,IAAA;UAAA,OAEjFc,eAAe,CAACnB,MAAM,EAAEP,IAAI,EAAEE,OAAO,EAAEC,OAAO,CAAC;QAAA;UAAA,OAAAO,QAAA,CAAAa,MAAA,WAAAb,QAAA,CAAAS,IAAA;QAAA;QAAA;UAAA,OAAAT,QAAA,CAAAiB,IAAA;MAAA;IAAA,GAAA5B,OAAA;EAAA,CAC7D;EAAA,OAAAP,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAIcgC,eAAeA,CAAAE,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,gBAAA,CAAAvC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAsC,iBAAA;EAAAA,gBAAA,OAAArC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA9B,SAAAmC,SAA+B1B,MAAM,EAAEP,IAAI,EAAEE,OAAO,EAAEC,OAAO;IAAA,IAAA+B,QAAA,EAAAC,EAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,IAAA,EAAAnC,GAAA,EAAAoC,OAAA;IAAA,OAAA3C,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAiC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;QAAA;UAC3D,IAAA+B,kCAAqB,EAACpC,MAAM,CAAC;UAE7B,IAAI,IAAAqC,kBAAU,EAAC5C,IAAI,CAAC,EAAE;YAEdkC,QAAQ,GAAGlC,IAAI;YACdmC,EAAE,GAA+CD,QAAQ,CAAzDC,EAAE,EAAEC,UAAU,GAAmCF,QAAQ,CAArDE,UAAU,EAAEC,MAAM,GAA2BH,QAAQ,CAAzCG,MAAM,EAAEC,UAAU,GAAeJ,QAAQ,CAAjCI,UAAU,EAAEC,IAAI,GAASL,QAAQ,CAArBK,IAAI,EAAEnC,GAAG,GAAI8B,QAAQ,CAAf9B,GAAG;YAC9CoC,OAAO,GAAGK,MAAM,CAACC,WAAW,CAACZ,QAAQ,CAACM,OAAO,CAACO,OAAO,CAAC,CAAC,CAAC;YAC9D5C,OAAO,CAAC+B,QAAQ,GAAG;cAACM,OAAO,EAAPA,OAAO;cAAEL,EAAE,EAAFA,EAAE;cAAEC,UAAU,EAAVA,UAAU;cAAEC,MAAM,EAANA,MAAM;cAAEC,UAAU,EAAVA,UAAU;cAAEC,IAAI,EAAJA,IAAI;cAAEnC,GAAG,EAAHA;YAAG,CAAC;UAC7E;UAACsC,SAAA,CAAA9B,IAAA;UAAA,OAEY,IAAAoC,uCAA8B,EAAChD,IAAI,EAAEO,MAAM,EAAEL,OAAO,CAAC;QAAA;UAAlEF,IAAI,GAAA0C,SAAA,CAAAvB,IAAA;UAAA,MAGAZ,MAAM,CAAC0C,aAAa,IAAI,OAAOjD,IAAI,KAAK,QAAQ;YAAA0C,SAAA,CAAA9B,IAAA;YAAA;UAAA;UAClDV,OAAO,CAACgD,QAAQ,GAAG,MAAM;UAAC,OAAAR,SAAA,CAAAnB,MAAA,WACnBhB,MAAM,CAAC0C,aAAa,CAACjD,IAAI,EAAEE,OAAO,EAAEC,OAAO,EAAEI,MAAM,CAAC;QAAA;UAAA,KAIzD,IAAA4C,+BAAkB,EAAC5C,MAAM,EAAEL,OAAO,CAAC;YAAAwC,SAAA,CAAA9B,IAAA;YAAA;UAAA;UAAA8B,SAAA,CAAA9B,IAAA;UAAA,OACxB,IAAAwC,4BAAe,EAAC7C,MAAM,EAAEP,IAAI,EAAEE,OAAO,EAAEC,OAAO,EAAEhB,KAAK,CAAC;QAAA;UAAA,OAAAuD,SAAA,CAAAnB,MAAA,WAAAmB,SAAA,CAAAvB,IAAA;QAAA;UAAA,MAIjEZ,MAAM,CAAC8C,SAAS,IAAI,OAAOrD,IAAI,KAAK,QAAQ;YAAA0C,SAAA,CAAA9B,IAAA;YAAA;UAAA;UAAA8B,SAAA,CAAA9B,IAAA;UAAA,OACjCL,MAAM,CAAC8C,SAAS,CAACrD,IAAI,EAAEE,OAAO,EAAEC,OAAO,EAAEI,MAAM,CAAC;QAAA;UAAA,OAAAmC,SAAA,CAAAnB,MAAA,WAAAmB,SAAA,CAAAvB,IAAA;QAAA;UAAA,KAG3DZ,MAAM,CAACpB,KAAK;YAAAuD,SAAA,CAAA9B,IAAA;YAAA;UAAA;UAAA8B,SAAA,CAAA9B,IAAA;UAAA,OACDL,MAAM,CAACpB,KAAK,CAACa,IAAI,EAAEE,OAAO,EAAEC,OAAO,EAAEI,MAAM,CAAC;QAAA;UAAA,OAAAmC,SAAA,CAAAnB,MAAA,WAAAmB,SAAA,CAAAvB,IAAA;QAAA;UAI3D,IAAAN,mBAAM,EAAC,CAACN,MAAM,CAAC+C,SAAS,CAAC;UAAC,MAGpB,IAAIC,KAAK,IAAAC,MAAA,CAAIjD,MAAM,CAACkD,EAAE,qDAAkD,CAAC;QAAA;QAAA;UAAA,OAAAf,SAAA,CAAAf,IAAA;MAAA;IAAA,GAAAM,QAAA;EAAA,CAChF;EAAA,OAAAD,gBAAA,CAAAvC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"parse.js","names":["_loaderUtils","require","_workerUtils","_normalizeLoader","_isType","_optionUtils","_getData","_loaderContext","_resourceUtils","_selectLoader","parse","_x","_x2","_x3","_x4","_parse","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","loaders","options","context","url","typedLoaders","candidateLoaders","loader","wrap","_callee$","_context","prev","next","assert","_typeof2","Array","isArray","isLoaderObject","undefined","sent","getResourceUrl","getLoadersFromContext","selectLoader","abrupt","normalizeOptions","getLoaderContext","parseWithLoader","stop","_x5","_x6","_x7","_x8","_parseWithLoader","_callee2","response","ok","redirected","status","statusText","type","headers","loaderWithParser","_callee2$","_context2","validateWorkerVersion","isResponse","Object","fromEntries","entries","getArrayBufferOrStringFromData","parseTextSync","canParseWithWorker","parseWithWorker","parseText","parseSync","Error","concat","id"],"sources":["../../../../src/lib/api/parse.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {DataType, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';\nimport {parseWithWorker, canParseWithWorker} from '@loaders.gl/loader-utils';\nimport {assert, validateWorkerVersion} from '@loaders.gl/worker-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {isResponse} from '../../javascript-utils/is-type';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getArrayBufferOrStringFromData} from '../loader-utils/get-data';\nimport {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';\nimport {getResourceUrl} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// type LoaderArrayType<T> = T extends (infer Loader)[] ? LoaderOptionsType<Loader> : T\n\n/**\n * Parses `data` asynchronously using the supplied loaders\n */\nexport async function parse<\n LoaderT extends Loader,\n OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>\n>(\n data: DataType | Promise<DataType>,\n loader: LoaderT,\n options?: OptionsT,\n context?: LoaderContext\n): Promise<LoaderReturnType<LoaderT>>;\n\n/**\n * Parses `data` asynchronously by matching one of the supplied loaders\n */\nexport async function parse(\n data: DataType | Promise<DataType>,\n loaders: Loader[],\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<any>;\n\n/**\n * Parses data asynchronously by matching a pre-registered loader\n */\nexport async function parse(\n data: DataType | Promise<DataType>,\n options?: LoaderOptions\n): Promise<any>;\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n// implementation signature\nexport async function parse(\n data: DataType | Promise<DataType>,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<unknown> {\n assert(!context || typeof context === 'object'); // parse no longer accepts final url\n\n // Signature: parse(data, options, context | url)\n // Uses registered loaders\n if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n data = await data; // Resolve any promise\n options = options || ({} as LoaderOptions); // Could be invalid...\n\n // Extract a url for auto detection\n const url = getResourceUrl(data);\n\n // Chooses a loader (and normalizes it)\n // Also use any loaders in the context, new loaders take priority\n const typedLoaders = loaders as Loader | Loader[] | undefined;\n const candidateLoaders = getLoadersFromContext(typedLoaders, context);\n // todo hacky type cast\n const loader = await selectLoader(data as ArrayBuffer, candidateLoaders, options);\n // Note: if no loader was found, if so just return null\n if (!loader) {\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, candidateLoaders, url); // Could be invalid...\n\n // Get a context (if already present, will be unchanged)\n context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context || null);\n\n return await parseWithLoader(loader, data, options, context);\n}\n\n// TODO: support progress and abort\n// TODO - should accept loader.parseAsyncIterator and concatenate.\nasync function parseWithLoader(\n loader: Loader,\n data,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<unknown> {\n validateWorkerVersion(loader);\n\n if (isResponse(data)) {\n // Serialize to support passing the response to web worker\n const response = data as Response;\n const {ok, redirected, status, statusText, type, url} = response;\n const headers = Object.fromEntries(response.headers.entries());\n // @ts-expect-error TODO - fix this\n context.response = {headers, ok, redirected, status, statusText, type, url};\n }\n\n data = await getArrayBufferOrStringFromData(data, loader, options);\n\n const loaderWithParser = loader as LoaderWithParser;\n\n // First check for synchronous text parser, wrap results in promises\n if (loaderWithParser.parseTextSync && typeof data === 'string') {\n return loaderWithParser.parseTextSync(data, options, context);\n }\n\n // If we have a workerUrl and the loader can parse the given options efficiently in a worker\n if (canParseWithWorker(loader, options)) {\n return await parseWithWorker(loader, data, options, context, parse);\n }\n\n // Check for asynchronous parser\n if (loaderWithParser.parseText && typeof data === 'string') {\n return await loaderWithParser.parseText(data, options, context);\n }\n\n if (loaderWithParser.parse) {\n return await loaderWithParser.parse(data, options, context);\n }\n\n // This should not happen, all sync loaders should also offer `parse` function\n assert(!loaderWithParser.parseSync);\n\n // TBD - If asynchronous parser not available, return null\n throw new Error(`${loader.id} loader - no parser found and worker is disabled`);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.js","names":[],"sources":["../../../../src/lib/filesystems/filesystem.ts"],"sourcesContent":["export type ReadOptions = {};\n\nexport type Stat = {\n size: number;\n isDirectory: () => boolean;\n};\n\n/**\n * A FileSystem interface can encapsulate various file sources,\n * a FileList, a ZipFile, a GoogleDrive etc.\n */\nexport interface FileSystem {\n /**\n * Return a list of file names\n * @param dirname directory name. file system root directory if omitted\n */\n readdir(dirname?: string, options?: {recursive?: boolean}): Promise<string[]>;\n\n /**\n * Gets information from a local file from the filesystem\n * @param filename file name to stat\n * @param options currently unused\n * @throws if filename is not in local filesystem\n */\n stat(filename: string, options?: object): Promise<{size: number}>;\n\n /**\n * Fetches a local file from the filesystem (or a URL)\n * @param filename\n * @param options\n */\n fetch(filename: RequestInfo, options?: RequestInit): Promise<Response>;\n}\n\n/**\n * A random access file system\n */\nexport interface RandomAccessReadFileSystem extends FileSystem {\n open(path: string, flags, mode?): Promise<any>;\n close(fd: any): Promise<void>;\n fstat(fd: any): Promise<Stat>;\n read(\n fd: any,\n buffer: ArrayBuffer | ArrayBufferView,\n offset?: number,\n length?: number,\n position?: number\n ): Promise<{bytesRead: number; buffer: ArrayBuffer}>;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"filesystem.js","names":[],"sources":["../../../../src/lib/filesystems/filesystem.ts"],"sourcesContent":["export type ReadOptions = {};\n\nexport type Stat = {\n size: number;\n isDirectory: () => boolean;\n};\n\n/**\n * A FileSystem interface can encapsulate various file sources,\n * a FileList, a ZipFile, a GoogleDrive etc.\n */\nexport interface FileSystem {\n /**\n * Return a list of file names\n * @param dirname directory name. file system root directory if omitted\n */\n readdir(dirname?: string, options?: {recursive?: boolean}): Promise<string[]>;\n\n /**\n * Gets information from a local file from the filesystem\n * @param filename file name to stat\n * @param options currently unused\n * @throws if filename is not in local filesystem\n */\n stat(filename: string, options?: object): Promise<{size: number}>;\n\n /**\n * Fetches a local file from the filesystem (or a URL)\n * @param filename\n * @param options\n */\n fetch(filename: RequestInfo, options?: RequestInit): Promise<Response>;\n}\n\n/**\n * A random access file system\n */\nexport interface RandomAccessReadFileSystem extends FileSystem {\n open(path: string, flags: unknown, mode?: unknown): Promise<any>;\n close(fd: unknown): Promise<void>;\n fstat(fd: unknown): Promise<Stat>;\n read(\n fd: any,\n buffer: ArrayBuffer | ArrayBufferView,\n offset?: number,\n length?: number,\n position?: number\n ): Promise<{bytesRead: number; buffer: ArrayBuffer}>;\n}\n"],"mappings":""}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _log = require("./utils/log");
8
- var version = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : '';
8
+ var version = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : '';
9
9
  if (!globalThis.loaders) {
10
10
  _log.log.log(1, "loaders.gl ".concat(version))();
11
11
  globalThis.loaders = Object.assign(globalThis.loaders || {}, {
@@ -1 +1 @@
1
- {"version":3,"file":"get-fetch-function.js","names":["_isType","require","_fetchFile","_optionUtils","getFetchFunction","options","context","globalOptions","getGlobalLoaderOptions","loaderOptions","fetch","isObject","url","fetchFile"],"sources":["../../../../src/lib/loader-utils/get-fetch-function.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {isObject} from '../../javascript-utils/is-type';\nimport {fetchFile} from '../fetch/fetch-file';\nimport {getGlobalLoaderOptions} from './option-utils';\n\n/**\n * Gets the current fetch function from options and context\n * @param options\n * @param context\n */\nexport function getFetchFunction(\n options?: LoaderOptions,\n context?: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>\n) {\n const globalOptions = getGlobalLoaderOptions();\n\n const loaderOptions = options || globalOptions;\n\n // options.fetch can be a function\n if (typeof loaderOptions.fetch === 'function') {\n return loaderOptions.fetch;\n }\n\n // options.fetch can be an options object\n if (isObject(loaderOptions.fetch)) {\n return (url) => fetchFile(url, loaderOptions.fetch as RequestInit);\n }\n\n // else refer to context (from parent loader) if available\n if (context?.fetch) {\n return context?.fetch;\n }\n\n // else return the default fetch function\n return fetchFile;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAOO,SAASG,gBAAgBA,CAC9BC,OAAuB,EACvBC,OAA8E,EAC9E;EACA,IAAMC,aAAa,GAAG,IAAAC,mCAAsB,EAAC,CAAC;EAE9C,IAAMC,aAAa,GAAGJ,OAAO,IAAIE,aAAa;EAG9C,IAAI,OAAOE,aAAa,CAACC,KAAK,KAAK,UAAU,EAAE;IAC7C,OAAOD,aAAa,CAACC,KAAK;EAC5B;EAGA,IAAI,IAAAC,gBAAQ,EAACF,aAAa,CAACC,KAAK,CAAC,EAAE;IACjC,OAAO,UAACE,GAAG;MAAA,OAAK,IAAAC,oBAAS,EAACD,GAAG,EAAEH,aAAa,CAACC,KAAoB,CAAC;IAAA;EACpE;EAGA,IAAIJ,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEI,KAAK,EAAE;IAClB,OAAOJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,KAAK;EACvB;EAGA,OAAOG,oBAAS;AAClB"}
1
+ {"version":3,"file":"get-fetch-function.js","names":["_isType","require","_fetchFile","_optionUtils","getFetchFunction","options","context","globalOptions","getGlobalLoaderOptions","loaderOptions","fetch","isObject","url","fetchFile"],"sources":["../../../../src/lib/loader-utils/get-fetch-function.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderContext, LoaderOptions, FetchLike} from '@loaders.gl/loader-utils';\nimport {isObject} from '../../javascript-utils/is-type';\nimport {fetchFile} from '../fetch/fetch-file';\nimport {getGlobalLoaderOptions} from './option-utils';\n\n/**\n * Gets the current fetch function from options and context\n * @param options\n * @param context\n */\nexport function getFetchFunction(\n options?: LoaderOptions,\n context?: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>\n): FetchLike {\n const globalOptions = getGlobalLoaderOptions();\n\n const loaderOptions = options || globalOptions;\n\n // options.fetch can be a function\n if (typeof loaderOptions.fetch === 'function') {\n return loaderOptions.fetch;\n }\n\n // options.fetch can be an options object\n if (isObject(loaderOptions.fetch)) {\n return (url) => fetchFile(url, loaderOptions.fetch as RequestInit);\n }\n\n // else refer to context (from parent loader) if available\n if (context?.fetch) {\n return context?.fetch;\n }\n\n // else return the default fetch function\n return fetchFile;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAOO,SAASG,gBAAgBA,CAC9BC,OAAuB,EACvBC,OAA8E,EACnE;EACX,IAAMC,aAAa,GAAG,IAAAC,mCAAsB,EAAC,CAAC;EAE9C,IAAMC,aAAa,GAAGJ,OAAO,IAAIE,aAAa;EAG9C,IAAI,OAAOE,aAAa,CAACC,KAAK,KAAK,UAAU,EAAE;IAC7C,OAAOD,aAAa,CAACC,KAAK;EAC5B;EAGA,IAAI,IAAAC,gBAAQ,EAACF,aAAa,CAACC,KAAK,CAAC,EAAE;IACjC,OAAO,UAACE,GAAG;MAAA,OAAK,IAAAC,oBAAS,EAACD,GAAG,EAAEH,aAAa,CAACC,KAAoB,CAAC;IAAA;EACpE;EAGA,IAAIJ,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEI,KAAK,EAAE;IAClB,OAAOJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,KAAK;EACvB;EAGA,OAAOG,oBAAS;AAClB"}
@@ -11,7 +11,7 @@ var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpe
11
11
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
12
12
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
13
13
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
14
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'latest';
14
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
15
15
  var NullWorkerLoader = {
16
16
  name: 'Null loader',
17
17
  id: 'null',
@@ -28,15 +28,6 @@ var NullWorkerLoader = {
28
28
  }
29
29
  };
30
30
  exports.NullWorkerLoader = NullWorkerLoader;
31
- function parseSync(arrayBuffer, options, context) {
32
- if (!options.null.echoParameters) return null;
33
- context = context && JSON.parse(JSON.stringify(context));
34
- return {
35
- arrayBuffer: arrayBuffer,
36
- options: options,
37
- context: context
38
- };
39
- }
40
31
  var NullLoader = {
41
32
  name: 'Null loader',
42
33
  id: 'null',
@@ -49,7 +40,7 @@ var NullLoader = {
49
40
  return _regenerator.default.wrap(function _callee$(_context) {
50
41
  while (1) switch (_context.prev = _context.next) {
51
42
  case 0:
52
- return _context.abrupt("return", parseSync(arrayBuffer, options, context));
43
+ return _context.abrupt("return", parseSync(arrayBuffer, options || {}, context));
53
44
  case 1:
54
45
  case "end":
55
46
  return _context.stop();
@@ -130,10 +121,11 @@ var NullLoader = {
130
121
  return false;
131
122
  }],
132
123
  options: {
133
- null: {
134
- echoParameters: false
135
- }
124
+ null: {}
136
125
  }
137
126
  };
138
127
  exports.NullLoader = NullLoader;
128
+ function parseSync(arrayBuffer, options, context) {
129
+ return null;
130
+ }
139
131
  //# sourceMappingURL=null-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"null-loader.js","names":["VERSION","NullWorkerLoader","name","id","module","version","worker","mimeTypes","extensions","tests","options","null","exports","parseSync","arrayBuffer","context","echoParameters","JSON","parse","stringify","NullLoader","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","stop","_x4","_x5","_x6","apply","arguments","parseInBatches","_generator","_wrapAsyncGenerator2","_callee2","asyncIterator","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee2$","_context2","_asyncIterator","_awaitAsyncGenerator2","sent","done","value","t0","return","finish","generator","_x","_x2","_x3"],"sources":["../../src/null-loader.ts"],"sourcesContent":["// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nimport {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullWorkerLoader: Loader = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n worker: true,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n tests: [() => false],\n options: {\n null: {}\n }\n};\n\n/**\n * Returns arguments passed to the parse API in a format that can be transfered to a\n * web worker. The `context` parameter is stripped using JSON.stringify & parse.\n */\nfunction parseSync(arrayBuffer, options, context) {\n if (!options.null.echoParameters) return null;\n context = context && JSON.parse(JSON.stringify(context));\n return {arrayBuffer, options, context};\n}\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullLoader: LoaderWithParser = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),\n parseSync,\n parseInBatches: async function* generator(asyncIterator, options, context) {\n for await (const batch of asyncIterator) {\n yield parseSync(batch, options, context);\n }\n },\n tests: [() => false],\n options: {\n null: {\n echoParameters: false\n }\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"null-loader.js","names":["VERSION","NullWorkerLoader","name","id","module","version","worker","mimeTypes","extensions","tests","options","null","exports","NullLoader","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","context","wrap","_callee$","_context","prev","next","abrupt","parseSync","stop","_x4","_x5","_x6","apply","arguments","parseInBatches","_generator","_wrapAsyncGenerator2","_callee2","asyncIterator","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee2$","_context2","_asyncIterator","_awaitAsyncGenerator2","sent","done","value","t0","return","finish","generator","_x","_x2","_x3"],"sources":["../../src/null-loader.ts"],"sourcesContent":["// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {LoaderContext} from 'modules/loader-utils/dist';\n\nexport type NullLoaderOptions = LoaderOptions & {\n null?: {};\n};\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullWorkerLoader: Loader<null, never, NullLoaderOptions> = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n worker: true,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n tests: [() => false],\n options: {\n null: {}\n }\n};\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullLoader: LoaderWithParser<null, null, NullLoaderOptions> = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n parse: async (arrayBuffer: ArrayBuffer, options?: NullLoaderOptions, context?: LoaderContext) =>\n parseSync(arrayBuffer, options || {}, context),\n parseSync,\n parseInBatches: async function* generator(asyncIterator, options, context) {\n for await (const batch of asyncIterator) {\n yield parseSync(batch, options, context);\n }\n },\n tests: [() => false],\n options: {\n null: {}\n }\n};\n\n/**\n * Returns arguments passed to the parse API in a format that can be transferred to a\n * web worker. The `context` parameter is stripped using JSON.stringify & parse.\n */\nfunction parseSync(\n arrayBuffer: ArrayBuffer,\n options?: NullLoaderOptions,\n context?: LoaderContext\n): null {\n return null;\n}\n"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -21,6 +21,7 @@ export { NullWorkerLoader, NullLoader } from './null-loader';
21
21
  export { JSONLoader } from '@loaders.gl/loader-utils';
22
22
  export { default as _fetchProgress } from './lib/progress/fetch-progress';
23
23
  export { default as _BrowserFileSystem } from './lib/filesystems/browser-filesystem';
24
+ export { FileSystem } from './lib/filesystems/filesystem';
24
25
  export { _unregisterLoaders } from './lib/api/register-loaders';
25
26
  export { isBrowser, isWorker, self, window, global, document } from '@loaders.gl/loader-utils';
26
27
  export { assert } from '@loaders.gl/loader-utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fetchFile","readArrayBuffer","readFileSync","writeFile","writeFileSync","setLoaderOptions","getLoaderOptions","registerLoaders","selectLoader","selectLoaderSync","parse","parseSync","parseInBatches","load","loadInBatches","encodeTable","encodeTableAsText","encodeTableInBatches","encode","encodeSync","encodeInBatches","encodeText","encodeURLtoURL","save","saveSync","setPathPrefix","getPathPrefix","resolvePath","RequestScheduler","makeIterator","makeStream","NullWorkerLoader","NullLoader","JSONLoader","default","_fetchProgress","_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\n// 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 '@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';\nexport {readFileSync} from './lib/fetch/read-file';\nexport {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, encodeText, encodeURLtoURL} from './lib/api/encode';\nexport {save, saveSync} from './lib/api/save';\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-node-stream';\n\n// CORE LOADERS\nexport {NullWorkerLoader, NullLoader} from './null-loader';\nexport {JSONLoader} from '@loaders.gl/loader-utils';\n\n// EXPERIMENTAL\nexport {default as _fetchProgress} from './lib/progress/fetch-progress';\nexport {default 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":"AAkBA,SAAQA,SAAS,QAAO,wBAAwB;AAEhD,SAAQC,eAAe,QAAO,+BAA+B;AAC7D,SAAQC,YAAY,QAAO,uBAAuB;AAClD,SAAQC,SAAS,EAAEC,aAAa,QAAO,wBAAwB;AAG/D,SAAQC,gBAAgB,EAAEC,gBAAgB,QAAO,0BAA0B;AAC3E,SAAQC,eAAe,QAAO,4BAA4B;AAC1D,SAAQC,YAAY,EAAEC,gBAAgB,QAAO,yBAAyB;AAGtE,SAAQC,KAAK,QAAO,iBAAiB;AACrC,SAAQC,SAAS,QAAO,sBAAsB;AAC9C,SAAQC,cAAc,QAAO,4BAA4B;AAEzD,SAAQC,IAAI,QAAO,gBAAgB;AACnC,SAAQC,aAAa,QAAO,2BAA2B;AAGvD,SAAQC,WAAW,EAAEC,iBAAiB,EAAEC,oBAAoB,QAAO,wBAAwB;AAC3F,SAAQC,MAAM,EAAEC,UAAU,EAAEC,eAAe,EAAEC,UAAU,EAAEC,cAAc,QAAO,kBAAkB;AAChG,SAAQC,IAAI,EAAEC,QAAQ,QAAO,gBAAgB;AAG7C,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,0BAA0B;AAClF,SAAQC,gBAAgB,QAAO,0BAA0B;AAGzD,SAAQC,YAAY,QAAO,yCAAyC;AACpE,SAAQC,UAAU,QAAO,0CAA0C;AAGnE,SAAQC,gBAAgB,EAAEC,UAAU,QAAO,eAAe;AAC1D,SAAQC,UAAU,QAAO,0BAA0B;AAGnD,SAAQC,OAAO,IAAIC,cAAc,QAAO,+BAA+B;AACvE,SAAQD,OAAO,IAAIE,kBAAkB,QAAO,sCAAsC;AAGlF,SAAQC,kBAAkB,QAAO,4BAA4B;AAM7D,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;AAGjC,SACEC,YAAY,EACZC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,UAAU,EACVC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB,QACX,4BAA4B"}
1
+ {"version":3,"file":"index.js","names":["fetchFile","readArrayBuffer","readFileSync","writeFile","writeFileSync","setLoaderOptions","getLoaderOptions","registerLoaders","selectLoader","selectLoaderSync","parse","parseSync","parseInBatches","load","loadInBatches","encodeTable","encodeTableAsText","encodeTableInBatches","encode","encodeSync","encodeInBatches","encodeText","encodeURLtoURL","save","saveSync","setPathPrefix","getPathPrefix","resolvePath","RequestScheduler","makeIterator","makeStream","NullWorkerLoader","NullLoader","JSONLoader","default","_fetchProgress","_BrowserFileSystem","FileSystem","_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\n// 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 '@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';\nexport {readFileSync} from './lib/fetch/read-file';\nexport {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, encodeText, encodeURLtoURL} from './lib/api/encode';\nexport {save, saveSync} from './lib/api/save';\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-node-stream';\n\n// CORE LOADERS\nexport {NullWorkerLoader, NullLoader} from './null-loader';\nexport {JSONLoader} from '@loaders.gl/loader-utils';\n\n// EXPERIMENTAL\nexport {default as _fetchProgress} from './lib/progress/fetch-progress';\nexport {default as _BrowserFileSystem} from './lib/filesystems/browser-filesystem';\nexport {FileSystem} from './lib/filesystems/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":"AAkBA,SAAQA,SAAS,QAAO,wBAAwB;AAEhD,SAAQC,eAAe,QAAO,+BAA+B;AAC7D,SAAQC,YAAY,QAAO,uBAAuB;AAClD,SAAQC,SAAS,EAAEC,aAAa,QAAO,wBAAwB;AAG/D,SAAQC,gBAAgB,EAAEC,gBAAgB,QAAO,0BAA0B;AAC3E,SAAQC,eAAe,QAAO,4BAA4B;AAC1D,SAAQC,YAAY,EAAEC,gBAAgB,QAAO,yBAAyB;AAGtE,SAAQC,KAAK,QAAO,iBAAiB;AACrC,SAAQC,SAAS,QAAO,sBAAsB;AAC9C,SAAQC,cAAc,QAAO,4BAA4B;AAEzD,SAAQC,IAAI,QAAO,gBAAgB;AACnC,SAAQC,aAAa,QAAO,2BAA2B;AAGvD,SAAQC,WAAW,EAAEC,iBAAiB,EAAEC,oBAAoB,QAAO,wBAAwB;AAC3F,SAAQC,MAAM,EAAEC,UAAU,EAAEC,eAAe,EAAEC,UAAU,EAAEC,cAAc,QAAO,kBAAkB;AAChG,SAAQC,IAAI,EAAEC,QAAQ,QAAO,gBAAgB;AAG7C,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,0BAA0B;AAClF,SAAQC,gBAAgB,QAAO,0BAA0B;AAGzD,SAAQC,YAAY,QAAO,yCAAyC;AACpE,SAAQC,UAAU,QAAO,0CAA0C;AAGnE,SAAQC,gBAAgB,EAAEC,UAAU,QAAO,eAAe;AAC1D,SAAQC,UAAU,QAAO,0BAA0B;AAGnD,SAAQC,OAAO,IAAIC,cAAc,QAAO,+BAA+B;AACvE,SAAQD,OAAO,IAAIE,kBAAkB,QAAO,sCAAsC;AAClF,SAAQC,UAAU,QAAO,8BAA8B;AAGvD,SAAQC,kBAAkB,QAAO,4BAA4B;AAM7D,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;AAGjC,SACEC,YAAY,EACZC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,UAAU,EACVC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB,QACX,4BAA4B"}
@@ -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":["/**\n * \"Debounces\" batches and returns them in groups\n */\nexport async function* timedBatchIterator<Batch>(batchIterator: AsyncIterable<Batch>, timeout) {\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":"AAGA,OAAO,gBAAgBA,kBAAkBA,CAAQC,aAAmC,EAAEC,OAAO,EAAE;EAC7F,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":["/**\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":"AAGA,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-dom-stream.js","names":["makeStream","source","options","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-dom-stream.ts"],"sourcesContent":["export 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 const iterator = source[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 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":"AAaA,OAAO,SAASA,UAAUA,CACxBC,MAA0D,EAC1DC,OAA2B,EACX;EAChB,MAAMC,QAAQ,GAAGF,MAAM,CAACG,MAAM,CAACC,aAAa,CAAC,GACxCJ,MAAM,CAAgCG,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC,GAC7DJ,MAAM,CAA2BG,MAAM,CAACD,QAAQ,CAAC,CAAC,CAAC;EAExD,OAAO,IAAIG,cAAc,CACvB;IAIEC,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,GAAGnB;EACL,CACF,CAAC;AACH"}
1
+ {"version":3,"file":"make-dom-stream.js","names":["makeStream","source","options","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-dom-stream.ts"],"sourcesContent":["export 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 // 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 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":"AAaA,OAAO,SAASA,UAAUA,CACxBC,MAA0D,EAC1DC,OAA2B,EACX;EAEhB,MAAMC,QAAQ,GAAIF,MAAM,CAAiCG,MAAM,CAACC,aAAa,CAAC,GACzEJ,MAAM,CAAgCG,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC,GAC7DJ,MAAM,CAA2BG,MAAM,CAACD,QAAQ,CAAC,CAAC,CAAC;EAExD,OAAO,IAAIG,cAAc,CACvB;IAIEC,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,GAAGnB;EACL,CACF,CAAC;AACH"}
@@ -3,7 +3,7 @@ const isFunction = x => typeof x === 'function';
3
3
  export const isObject = x => x !== null && typeof x === 'object';
4
4
  export const isPureObject = x => isObject(x) && x.constructor === {}.constructor;
5
5
  export const isPromise = x => isObject(x) && isFunction(x.then);
6
- export const isIterable = x => x && typeof x[Symbol.iterator] === 'function';
6
+ export const isIterable = x => Boolean(x) && typeof x[Symbol.iterator] === 'function';
7
7
  export const isAsyncIterable = x => x && typeof x[Symbol.asyncIterator] === 'function';
8
8
  export const isIterator = x => x && isFunction(x.next);
9
9
  export const isResponse = x => typeof Response !== 'undefined' && x instanceof Response || x && x.arrayBuffer && x.text && x.json;
@@ -1 +1 @@
1
- {"version":3,"file":"is-type.js","names":["isBoolean","x","isFunction","isObject","isPureObject","constructor","isPromise","then","isIterable","Symbol","iterator","isAsyncIterable","asyncIterator","isIterator","next","isResponse","Response","arrayBuffer","text","json","isFile","File","isBlob","Blob","isBuffer","isWritableDOMStream","abort","getWriter","isReadableDOMStream","ReadableStream","tee","cancel","getReader","isWritableNodeStream","end","write","writable","isReadableNodeStream","read","pipe","readable","isReadableStream","isWritableStream"],"sources":["../../../src/javascript-utils/is-type.ts"],"sourcesContent":["import type {Readable} from 'stream';\n\n/** A DOM or Node readable stream */\nexport type ReadableStreamType = ReadableStream | Readable;\n\nconst isBoolean: (x: any) => boolean = (x) => typeof x === 'boolean';\nconst isFunction: (x: any) => boolean = (x) => typeof x === 'function';\n\nexport const isObject: (x: any) => boolean = (x) => x !== null && typeof x === 'object';\nexport const isPureObject: (x: any) => boolean = (x) =>\n isObject(x) && x.constructor === {}.constructor;\nexport const isPromise: (x: any) => boolean = (x) => isObject(x) && isFunction(x.then);\n\nexport const isIterable: (x: any) => boolean = (x) => x && typeof x[Symbol.iterator] === 'function';\nexport const isAsyncIterable: (x: any) => boolean = (x) =>\n x && typeof x[Symbol.asyncIterator] === 'function';\nexport const isIterator: (x: any) => boolean = (x) => x && isFunction(x.next);\n\nexport const isResponse: (x: any) => boolean = (x) =>\n (typeof Response !== 'undefined' && x instanceof Response) ||\n (x && x.arrayBuffer && x.text && x.json);\n\nexport const isFile: (x: any) => boolean = (x) => typeof File !== 'undefined' && x instanceof File;\nexport const isBlob: (x: any) => boolean = (x) => typeof Blob !== 'undefined' && x instanceof Blob;\n\n/** Check for Node.js `Buffer` without triggering bundler to include buffer polyfill */\nexport const isBuffer: (x: any) => boolean = (x) => x && typeof x === 'object' && x.isBuffer;\n\nexport const isWritableDOMStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.abort) && isFunction(x.getWriter);\n\nexport const isReadableDOMStream: (x: any) => boolean = (x) =>\n (typeof ReadableStream !== 'undefined' && x instanceof ReadableStream) ||\n (isObject(x) && isFunction(x.tee) && isFunction(x.cancel) && isFunction(x.getReader));\n// Not implemented in Firefox: && isFunction(x.pipeTo)\n\nexport const isWritableNodeStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.end) && isFunction(x.write) && isBoolean(x.writable);\nexport const isReadableNodeStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\nexport const isReadableStream: (x: any) => boolean = (x) =>\n isReadableDOMStream(x) || isReadableNodeStream(x);\nexport const isWritableStream: (x: any) => boolean = (x) =>\n isWritableDOMStream(x) || isWritableNodeStream(x);\n"],"mappings":"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"}
1
+ {"version":3,"file":"is-type.js","names":["isBoolean","x","isFunction","isObject","isPureObject","constructor","isPromise","then","isIterable","Boolean","Symbol","iterator","isAsyncIterable","asyncIterator","isIterator","next","isResponse","Response","arrayBuffer","text","json","isFile","File","isBlob","Blob","isBuffer","isWritableDOMStream","abort","getWriter","isReadableDOMStream","ReadableStream","tee","cancel","getReader","isWritableNodeStream","end","write","writable","isReadableNodeStream","read","pipe","readable","isReadableStream","isWritableStream"],"sources":["../../../src/javascript-utils/is-type.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {Readable} from 'stream';\n\n/** A DOM or Node readable stream */\nexport type ReadableStreamType = ReadableStream | Readable;\n\nconst isBoolean: (x: unknown) => boolean = (x) => typeof x === 'boolean';\nconst isFunction: (x: unknown) => boolean = (x) => typeof x === 'function';\n\nexport const isObject: (x: unknown) => boolean = (x) => x !== null && typeof x === 'object';\nexport const isPureObject: (x: any) => boolean = (x) =>\n isObject(x) && x.constructor === {}.constructor;\nexport const isPromise: (x: any) => boolean = (x) => isObject(x) && isFunction(x.then);\n\nexport const isIterable: (x: any) => boolean = (x) =>\n Boolean(x) && typeof x[Symbol.iterator] === 'function';\nexport const isAsyncIterable: (x: any) => boolean = (x) =>\n x && typeof x[Symbol.asyncIterator] === 'function';\nexport const isIterator: (x: any) => boolean = (x) => x && isFunction(x.next);\n\nexport const isResponse: (x: any) => boolean = (x) =>\n (typeof Response !== 'undefined' && x instanceof Response) ||\n (x && x.arrayBuffer && x.text && x.json);\n\nexport const isFile: (x: unknown) => boolean = (x) =>\n typeof File !== 'undefined' && x instanceof File;\nexport const isBlob: (x: unknown) => boolean = (x) =>\n typeof Blob !== 'undefined' && x instanceof Blob;\n\n/** Check for Node.js `Buffer` without triggering bundler to include buffer polyfill */\nexport const isBuffer: (x: any) => boolean = (x) => x && typeof x === 'object' && x.isBuffer;\n\nexport const isWritableDOMStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.abort) && isFunction(x.getWriter);\n\nexport const isReadableDOMStream: (x: any) => boolean = (x) =>\n (typeof ReadableStream !== 'undefined' && x instanceof ReadableStream) ||\n (isObject(x) && isFunction(x.tee) && isFunction(x.cancel) && isFunction(x.getReader));\n// Not implemented in Firefox: && isFunction(x.pipeTo)\n\nexport const isWritableNodeStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.end) && isFunction(x.write) && isBoolean(x.writable);\nexport const isReadableNodeStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\nexport const isReadableStream: (x: unknown) => boolean = (x) =>\n isReadableDOMStream(x) || isReadableNodeStream(x);\nexport const isWritableStream: (x: unknown) => boolean = (x) =>\n isWritableDOMStream(x) || isWritableNodeStream(x);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-table.js","names":["concatenateArrayBuffers","encodeTable","data","writer","options","encode","encodeText","text","TextEncoder","encodeInBatches","batches","encodeTableInBatches","chunks","batch","push","Error","encodeTableAsText","arrayBuffer","TextDecoder","decode","dataIterator","getIterator","table","start","end","length"],"sources":["../../../../src/lib/api/encode-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc\n\n/* global TextEncoder, TextDecoder */\nimport {concatenateArrayBuffers, Writer, WriterOptionsType} from '@loaders.gl/loader-utils';\nimport {Table} from '@loaders.gl/schema';\n\nexport async function encodeTable<WriterT extends Writer = Writer>(\n data: Table,\n writer: WriterT,\n options?: WriterOptionsType<WriterT>\n): Promise<ArrayBuffer> {\n if (writer.encode) {\n return await writer.encode(data, options);\n }\n\n if (writer.encodeText) {\n const text = await writer.encodeText(data, options);\n return new TextEncoder().encode(text);\n }\n\n if (writer.encodeInBatches) {\n // Create an iterator representing the data\n // TODO - Assumes this is a table\n const batches = encodeTableInBatches(data, writer, options);\n\n // Concatenate the output\n const chunks: ArrayBuffer[] = [];\n for await (const batch of batches) {\n chunks.push(batch);\n }\n return concatenateArrayBuffers(...chunks);\n }\n\n throw new Error('Writer could not encode data');\n}\n\nexport async function encodeTableAsText<WriterT extends Writer = Writer>(\n data: Table,\n writer: WriterT,\n options?: WriterOptionsType<WriterT>\n): Promise<string> {\n if (writer.text && writer.encodeText) {\n return await writer.encodeText(data, options);\n }\n\n if (writer.text && (writer.encode || writer.encodeInBatches)) {\n const arrayBuffer = await encodeTable(data, writer, options);\n return new TextDecoder().decode(arrayBuffer);\n }\n throw new Error('Writer could not encode data as text');\n}\n\nexport function encodeTableInBatches<WriterT extends Writer = Writer>(\n data: Table,\n writer: WriterT,\n options?: WriterOptionsType<WriterT>\n): AsyncIterable<ArrayBuffer> {\n if (writer.encodeInBatches) {\n const dataIterator = getIterator(data);\n // @ts-expect-error\n return writer.encodeInBatches(dataIterator, options);\n }\n // TODO -fall back to atomic encode?\n throw new Error('Writer could not encode data in batches');\n}\n\nfunction getIterator(data) {\n const dataIterator = [{table: data, start: 0, end: data.length}];\n return dataIterator;\n}\n"],"mappings":"AAIA,SAAQA,uBAAuB,QAAkC,0BAA0B;AAG3F,OAAO,eAAeC,WAAWA,CAC/BC,IAAW,EACXC,MAAe,EACfC,OAAoC,EACd;EACtB,IAAID,MAAM,CAACE,MAAM,EAAE;IACjB,OAAO,MAAMF,MAAM,CAACE,MAAM,CAACH,IAAI,EAAEE,OAAO,CAAC;EAC3C;EAEA,IAAID,MAAM,CAACG,UAAU,EAAE;IACrB,MAAMC,IAAI,GAAG,MAAMJ,MAAM,CAACG,UAAU,CAACJ,IAAI,EAAEE,OAAO,CAAC;IACnD,OAAO,IAAII,WAAW,CAAC,CAAC,CAACH,MAAM,CAACE,IAAI,CAAC;EACvC;EAEA,IAAIJ,MAAM,CAACM,eAAe,EAAE;IAG1B,MAAMC,OAAO,GAAGC,oBAAoB,CAACT,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAG3D,MAAMQ,MAAqB,GAAG,EAAE;IAChC,WAAW,MAAMC,KAAK,IAAIH,OAAO,EAAE;MACjCE,MAAM,CAACE,IAAI,CAACD,KAAK,CAAC;IACpB;IACA,OAAOb,uBAAuB,CAAC,GAAGY,MAAM,CAAC;EAC3C;EAEA,MAAM,IAAIG,KAAK,CAAC,8BAA8B,CAAC;AACjD;AAEA,OAAO,eAAeC,iBAAiBA,CACrCd,IAAW,EACXC,MAAe,EACfC,OAAoC,EACnB;EACjB,IAAID,MAAM,CAACI,IAAI,IAAIJ,MAAM,CAACG,UAAU,EAAE;IACpC,OAAO,MAAMH,MAAM,CAACG,UAAU,CAACJ,IAAI,EAAEE,OAAO,CAAC;EAC/C;EAEA,IAAID,MAAM,CAACI,IAAI,KAAKJ,MAAM,CAACE,MAAM,IAAIF,MAAM,CAACM,eAAe,CAAC,EAAE;IAC5D,MAAMQ,WAAW,GAAG,MAAMhB,WAAW,CAACC,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC5D,OAAO,IAAIc,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC;EAC9C;EACA,MAAM,IAAIF,KAAK,CAAC,sCAAsC,CAAC;AACzD;AAEA,OAAO,SAASJ,oBAAoBA,CAClCT,IAAW,EACXC,MAAe,EACfC,OAAoC,EACR;EAC5B,IAAID,MAAM,CAACM,eAAe,EAAE;IAC1B,MAAMW,YAAY,GAAGC,WAAW,CAACnB,IAAI,CAAC;IAEtC,OAAOC,MAAM,CAACM,eAAe,CAACW,YAAY,EAAEhB,OAAO,CAAC;EACtD;EAEA,MAAM,IAAIW,KAAK,CAAC,yCAAyC,CAAC;AAC5D;AAEA,SAASM,WAAWA,CAACnB,IAAI,EAAE;EACzB,MAAMkB,YAAY,GAAG,CAAC;IAACE,KAAK,EAAEpB,IAAI;IAAEqB,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAEtB,IAAI,CAACuB;EAAM,CAAC,CAAC;EAChE,OAAOL,YAAY;AACrB"}
1
+ {"version":3,"file":"encode-table.js","names":["concatenateArrayBuffers","encodeTable","data","writer","options","encode","encodeText","text","TextEncoder","encodeInBatches","batches","encodeTableInBatches","chunks","batch","push","Error","encodeTableAsText","arrayBuffer","TextDecoder","decode","dataIterator","getIterator","table","start","end","length"],"sources":["../../../../src/lib/api/encode-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc\n\n/* global TextEncoder, TextDecoder */\nimport {concatenateArrayBuffers, Writer, WriterOptionsType} from '@loaders.gl/loader-utils';\nimport {Table} from '@loaders.gl/schema';\n\nexport async function encodeTable<WriterT extends Writer = Writer>(\n data: Table,\n writer: WriterT,\n options?: WriterOptionsType<WriterT>\n): Promise<ArrayBuffer> {\n if (writer.encode) {\n return await writer.encode(data, options);\n }\n\n if (writer.encodeText) {\n const text = await writer.encodeText(data, options);\n return new TextEncoder().encode(text);\n }\n\n if (writer.encodeInBatches) {\n // Create an iterator representing the data\n // TODO - Assumes this is a table\n const batches = encodeTableInBatches(data, writer, options);\n\n // Concatenate the output\n const chunks: ArrayBuffer[] = [];\n for await (const batch of batches) {\n chunks.push(batch);\n }\n return concatenateArrayBuffers(...chunks);\n }\n\n throw new Error('Writer could not encode data');\n}\n\nexport async function encodeTableAsText<WriterT extends Writer = Writer>(\n data: Table,\n writer: WriterT,\n options?: WriterOptionsType<WriterT>\n): Promise<string> {\n if (writer.text && writer.encodeText) {\n return await writer.encodeText(data, options);\n }\n\n if (writer.text && (writer.encode || writer.encodeInBatches)) {\n const arrayBuffer = await encodeTable(data, writer, options);\n return new TextDecoder().decode(arrayBuffer);\n }\n throw new Error('Writer could not encode data as text');\n}\n\nexport function encodeTableInBatches<WriterT extends Writer = Writer>(\n data: Table,\n writer: WriterT,\n options?: WriterOptionsType<WriterT>\n): AsyncIterable<ArrayBuffer> {\n if (writer.encodeInBatches) {\n const dataIterator = getIterator(data);\n // @ts-expect-error\n return writer.encodeInBatches(dataIterator, options);\n }\n // TODO -fall back to atomic encode?\n throw new Error('Writer could not encode data in batches');\n}\n\nfunction getIterator(data: any): Iterable<{table: any; start: number; end: number}> {\n const dataIterator = [{table: data, start: 0, end: data.length}];\n return dataIterator;\n}\n"],"mappings":"AAIA,SAAQA,uBAAuB,QAAkC,0BAA0B;AAG3F,OAAO,eAAeC,WAAWA,CAC/BC,IAAW,EACXC,MAAe,EACfC,OAAoC,EACd;EACtB,IAAID,MAAM,CAACE,MAAM,EAAE;IACjB,OAAO,MAAMF,MAAM,CAACE,MAAM,CAACH,IAAI,EAAEE,OAAO,CAAC;EAC3C;EAEA,IAAID,MAAM,CAACG,UAAU,EAAE;IACrB,MAAMC,IAAI,GAAG,MAAMJ,MAAM,CAACG,UAAU,CAACJ,IAAI,EAAEE,OAAO,CAAC;IACnD,OAAO,IAAII,WAAW,CAAC,CAAC,CAACH,MAAM,CAACE,IAAI,CAAC;EACvC;EAEA,IAAIJ,MAAM,CAACM,eAAe,EAAE;IAG1B,MAAMC,OAAO,GAAGC,oBAAoB,CAACT,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAG3D,MAAMQ,MAAqB,GAAG,EAAE;IAChC,WAAW,MAAMC,KAAK,IAAIH,OAAO,EAAE;MACjCE,MAAM,CAACE,IAAI,CAACD,KAAK,CAAC;IACpB;IACA,OAAOb,uBAAuB,CAAC,GAAGY,MAAM,CAAC;EAC3C;EAEA,MAAM,IAAIG,KAAK,CAAC,8BAA8B,CAAC;AACjD;AAEA,OAAO,eAAeC,iBAAiBA,CACrCd,IAAW,EACXC,MAAe,EACfC,OAAoC,EACnB;EACjB,IAAID,MAAM,CAACI,IAAI,IAAIJ,MAAM,CAACG,UAAU,EAAE;IACpC,OAAO,MAAMH,MAAM,CAACG,UAAU,CAACJ,IAAI,EAAEE,OAAO,CAAC;EAC/C;EAEA,IAAID,MAAM,CAACI,IAAI,KAAKJ,MAAM,CAACE,MAAM,IAAIF,MAAM,CAACM,eAAe,CAAC,EAAE;IAC5D,MAAMQ,WAAW,GAAG,MAAMhB,WAAW,CAACC,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC5D,OAAO,IAAIc,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC;EAC9C;EACA,MAAM,IAAIF,KAAK,CAAC,sCAAsC,CAAC;AACzD;AAEA,OAAO,SAASJ,oBAAoBA,CAClCT,IAAW,EACXC,MAAe,EACfC,OAAoC,EACR;EAC5B,IAAID,MAAM,CAACM,eAAe,EAAE;IAC1B,MAAMW,YAAY,GAAGC,WAAW,CAACnB,IAAI,CAAC;IAEtC,OAAOC,MAAM,CAACM,eAAe,CAACW,YAAY,EAAEhB,OAAO,CAAC;EACtD;EAEA,MAAM,IAAIW,KAAK,CAAC,yCAAyC,CAAC;AAC5D;AAEA,SAASM,WAAWA,CAACnB,IAAS,EAAsD;EAClF,MAAMkB,YAAY,GAAG,CAAC;IAACE,KAAK,EAAEpB,IAAI;IAAEqB,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAEtB,IAAI,CAACuB;EAAM,CAAC,CAAC;EAChE,OAAOL,YAAY;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","names":["canEncodeWithWorker","processOnWorker","concatenateArrayBuffers","resolvePath","isBrowser","writeFile","fetchFile","getLoaderOptions","encode","data","writer","options","globalOptions","encodeSync","encodeText","TextEncoder","encodeInBatches","batches","chunks","batch","push","encodeURLtoURL","tmpInputFilename","getTemporaryFilename","tmpOutputFilename","outputFilename","response","arrayBuffer","Error","text","TextDecoder","decode","dataIterator","getIterator","inputUrl","outputUrl","table","start","end","length","filename","concat"],"sources":["../../../../src/lib/api/encode.ts"],"sourcesContent":["import {Writer, WriterOptions, canEncodeWithWorker} from '@loaders.gl/loader-utils';\nimport {processOnWorker} from '@loaders.gl/worker-utils';\nimport {concatenateArrayBuffers, resolvePath} from '@loaders.gl/loader-utils';\nimport {isBrowser} from '@loaders.gl/loader-utils';\nimport {writeFile} from '../fetch/write-file';\nimport {fetchFile} from '../fetch/fetch-file';\nimport {getLoaderOptions} from './loader-options';\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport async function encode(\n data: any,\n writer: Writer,\n options?: WriterOptions\n): Promise<ArrayBuffer> {\n const globalOptions = getLoaderOptions() as WriterOptions;\n // const globalOptions: WriterOptions = {}; // getWriterOptions();\n options = {...globalOptions, ...options};\n if (canEncodeWithWorker(writer, options)) {\n return await processOnWorker(writer, data, options);\n }\n\n // TODO Merge default writer options with options argument like it is done in load module.\n if (writer.encode) {\n return await writer.encode(data, options);\n }\n\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n\n if (writer.encodeText) {\n return new TextEncoder().encode(await writer.encodeText(data, options));\n }\n\n if (writer.encodeInBatches) {\n // Create an iterator representing the data\n // TODO - Assumes this is a table\n const batches = encodeInBatches(data, writer, options);\n\n // Concatenate the output\n const chunks: any[] = [];\n for await (const batch of batches) {\n chunks.push(batch);\n }\n // @ts-ignore\n return concatenateArrayBuffers(...chunks);\n }\n\n if (!isBrowser && writer.encodeURLtoURL) {\n // TODO - how to generate filenames with correct extensions?\n const tmpInputFilename = getTemporaryFilename('input');\n await writeFile(tmpInputFilename, data);\n\n const tmpOutputFilename = getTemporaryFilename('output');\n\n const outputFilename = await encodeURLtoURL(\n tmpInputFilename,\n tmpOutputFilename,\n writer,\n options\n );\n\n const response = await fetchFile(outputFilename);\n return response.arrayBuffer();\n }\n\n throw new Error('Writer could not encode data');\n}\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport function encodeSync(data: any, writer: Writer, options?: WriterOptions): ArrayBuffer {\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n throw new Error('Writer could not synchronously encode data');\n}\n\n/**\n * Encode loaded data to text using the specified Writer\n * @note This is a convenience function not intended for production use on large input data.\n * It is not optimized for performance. Data maybe converted from text to binary and back.\n * @throws if the writer does not generate text output\n */\nexport async function encodeText(\n data: any,\n writer: Writer,\n options?: WriterOptions\n): Promise<string> {\n if (writer.text && writer.encodeText) {\n return await writer.encodeText(data, options);\n }\n\n if (writer.text && (writer.encode || writer.encodeInBatches)) {\n const arrayBuffer = await encode(data, writer, options);\n return new TextDecoder().decode(arrayBuffer);\n }\n\n throw new Error('Writer could not encode data as text');\n}\n\n/**\n * Encode loaded data into a sequence (iterator) of binary ArrayBuffers using the specified Writer.\n */\nexport function encodeInBatches(\n data: any,\n writer: Writer,\n options?: WriterOptions\n): AsyncIterable<ArrayBuffer> {\n if (writer.encodeInBatches) {\n const dataIterator = getIterator(data);\n // @ts-expect-error\n return writer.encodeInBatches(dataIterator, options);\n }\n // TODO -fall back to atomic encode?\n throw new Error('Writer could not encode data in batches');\n}\n\n/**\n * Encode data stored in a file (on disk) to another file.\n * @note Node.js only. This function enables using command-line converters as \"writers\".\n */\nexport async function encodeURLtoURL(\n inputUrl,\n outputUrl,\n writer: Writer,\n options\n): Promise<string> {\n inputUrl = resolvePath(inputUrl);\n outputUrl = resolvePath(outputUrl);\n if (isBrowser || !writer.encodeURLtoURL) {\n throw new Error();\n }\n const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);\n return outputFilename;\n}\n\n/**\n * @todo TODO - this is an unacceptable hack!!!\n */\nfunction getIterator(data) {\n const dataIterator = [{table: data, start: 0, end: data.length}];\n return dataIterator;\n}\n\n/**\n * @todo Move to utils\n */\nfunction getTemporaryFilename(filename: string): string {\n return `/tmp/${filename}`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"encode.js","names":["canEncodeWithWorker","processOnWorker","concatenateArrayBuffers","resolvePath","isBrowser","writeFile","fetchFile","getLoaderOptions","encode","data","writer","options","globalOptions","encodeSync","encodeText","TextEncoder","encodeInBatches","batches","chunks","batch","push","encodeURLtoURL","tmpInputFilename","getTemporaryFilename","tmpOutputFilename","outputFilename","response","arrayBuffer","Error","text","TextDecoder","decode","dataIterator","getIterator","inputUrl","outputUrl","table","start","end","length","filename","concat"],"sources":["../../../../src/lib/api/encode.ts"],"sourcesContent":["import {Writer, WriterOptions, canEncodeWithWorker} from '@loaders.gl/loader-utils';\nimport {processOnWorker} from '@loaders.gl/worker-utils';\nimport {concatenateArrayBuffers, resolvePath} from '@loaders.gl/loader-utils';\nimport {isBrowser} from '@loaders.gl/loader-utils';\nimport {writeFile} from '../fetch/write-file';\nimport {fetchFile} from '../fetch/fetch-file';\nimport {getLoaderOptions} from './loader-options';\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport async function encode(\n data: unknown,\n writer: Writer,\n options?: WriterOptions\n): Promise<ArrayBuffer> {\n const globalOptions = getLoaderOptions() as WriterOptions;\n // const globalOptions: WriterOptions = {}; // getWriterOptions();\n options = {...globalOptions, ...options};\n if (canEncodeWithWorker(writer, options)) {\n return await processOnWorker(writer, data, options);\n }\n\n // TODO Merge default writer options with options argument like it is done in load module.\n if (writer.encode) {\n return await writer.encode(data, options);\n }\n\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n\n if (writer.encodeText) {\n return new TextEncoder().encode(await writer.encodeText(data, options));\n }\n\n if (writer.encodeInBatches) {\n // Create an iterator representing the data\n // TODO - Assumes this is a table\n const batches = encodeInBatches(data, writer, options);\n\n // Concatenate the output\n const chunks: unknown[] = [];\n for await (const batch of batches) {\n chunks.push(batch);\n }\n // @ts-ignore\n return concatenateArrayBuffers(...chunks);\n }\n\n if (!isBrowser && writer.encodeURLtoURL) {\n // TODO - how to generate filenames with correct extensions?\n const tmpInputFilename = getTemporaryFilename('input');\n await writeFile(tmpInputFilename, data as ArrayBuffer);\n\n const tmpOutputFilename = getTemporaryFilename('output');\n\n const outputFilename = await encodeURLtoURL(\n tmpInputFilename,\n tmpOutputFilename,\n writer,\n options\n );\n\n const response = await fetchFile(outputFilename);\n return response.arrayBuffer();\n }\n\n throw new Error('Writer could not encode data');\n}\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport function encodeSync(data: unknown, writer: Writer, options?: WriterOptions): ArrayBuffer {\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n throw new Error('Writer could not synchronously encode data');\n}\n\n/**\n * Encode loaded data to text using the specified Writer\n * @note This is a convenience function not intended for production use on large input data.\n * It is not optimized for performance. Data maybe converted from text to binary and back.\n * @throws if the writer does not generate text output\n */\nexport async function encodeText(\n data: unknown,\n writer: Writer,\n options?: WriterOptions\n): Promise<string> {\n if (writer.text && writer.encodeText) {\n return await writer.encodeText(data, options);\n }\n\n if (writer.text && (writer.encode || writer.encodeInBatches)) {\n const arrayBuffer = await encode(data, writer, options);\n return new TextDecoder().decode(arrayBuffer);\n }\n\n throw new Error('Writer could not encode data as text');\n}\n\n/**\n * Encode loaded data into a sequence (iterator) of binary ArrayBuffers using the specified Writer.\n */\nexport function encodeInBatches(\n data: unknown,\n writer: Writer,\n options?: WriterOptions\n): AsyncIterable<ArrayBuffer> {\n if (writer.encodeInBatches) {\n const dataIterator = getIterator(data);\n // @ts-expect-error\n return writer.encodeInBatches(dataIterator, options);\n }\n // TODO -fall back to atomic encode?\n throw new Error('Writer could not encode data in batches');\n}\n\n/**\n * Encode data stored in a file (on disk) to another file.\n * @note Node.js only. This function enables using command-line converters as \"writers\".\n */\nexport async function encodeURLtoURL(\n inputUrl: string,\n outputUrl: string,\n writer: Writer,\n options?: WriterOptions\n): Promise<string> {\n inputUrl = resolvePath(inputUrl);\n outputUrl = resolvePath(outputUrl);\n if (isBrowser || !writer.encodeURLtoURL) {\n throw new Error();\n }\n const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);\n return outputFilename;\n}\n\n/**\n * @todo TODO - this is an unacceptable hack!!!\n */\nfunction getIterator(data: any): Iterable<{table: any; start: number; end: number}> {\n const dataIterator = [{table: data, start: 0, end: data.length}];\n return dataIterator;\n}\n\n/**\n * @todo Move to utils\n */\nfunction getTemporaryFilename(filename: string): string {\n return `/tmp/${filename}`;\n}\n"],"mappings":"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"}
@@ -2,16 +2,19 @@ import { isLoaderObject } from '../loader-utils/normalize-loader';
2
2
  import { getFetchFunction } from '../loader-utils/get-fetch-function';
3
3
  import { parseInBatches } from './parse-in-batches';
4
4
  export function loadInBatches(files, loaders, options, context) {
5
+ let loadersArray;
5
6
  if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
6
7
  context = undefined;
7
8
  options = loaders;
8
- loaders = null;
9
+ loadersArray = undefined;
10
+ } else {
11
+ loadersArray = loaders;
9
12
  }
10
13
  const fetch = getFetchFunction(options || {});
11
14
  if (!Array.isArray(files)) {
12
- return loadOneFileInBatches(files, loaders, options, fetch);
15
+ return loadOneFileInBatches(files, loadersArray, options || {}, fetch);
13
16
  }
14
- const promises = files.map(file => loadOneFileInBatches(file, loaders, options, fetch));
17
+ const promises = files.map(file => loadOneFileInBatches(file, loadersArray, options || {}, fetch));
15
18
  return promises;
16
19
  }
17
20
  async function loadOneFileInBatches(file, loaders, options, fetch) {
@@ -1 +1 @@
1
- {"version":3,"file":"load-in-batches.js","names":["isLoaderObject","getFetchFunction","parseInBatches","loadInBatches","files","loaders","options","context","Array","isArray","undefined","fetch","loadOneFileInBatches","promises","map","file","url","response"],"sources":["../../../../src/lib/api/load-in-batches.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/get-fetch-function';\n\nimport {parseInBatches} from './parse-in-batches';\n\ntype FileType = string | File | Blob | Response | (string | File | Blob | Response)[] | FileList;\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport function loadInBatches(\n files: FileType,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(\n files: FileType[] | FileList,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(files, loaders, options, context) {\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders;\n loaders = null;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(options || {});\n\n // Single url/file\n if (!Array.isArray(files)) {\n return loadOneFileInBatches(files, loaders, options, fetch);\n }\n\n // Multiple URLs / files\n const promises = files.map((file) => loadOneFileInBatches(file, loaders, options, fetch));\n\n // No point in waiting here for all responses before starting to stream individual streams?\n return promises;\n}\n\nasync function loadOneFileInBatches(file, loaders, options, fetch) {\n if (typeof file === 'string') {\n const url = file;\n const response = await fetch(url);\n return await parseInBatches(response, loaders, options);\n }\n return await parseInBatches(file, loaders, options);\n}\n"],"mappings":"AACA,SAAQA,cAAc,QAAO,kCAAkC;AAC/D,SAAQC,gBAAgB,QAAO,oCAAoC;AAEnE,SAAQC,cAAc,QAAO,oBAAoB;AAyBjD,OAAO,SAASC,aAAaA,CAACC,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,OAAO,EAAE;EAE9D,IAAI,CAACC,KAAK,CAACC,OAAO,CAACJ,OAAO,CAAC,IAAI,CAACL,cAAc,CAACK,OAAO,CAAC,EAAE;IACvDE,OAAO,GAAGG,SAAS;IACnBJ,OAAO,GAAGD,OAAO;IACjBA,OAAO,GAAG,IAAI;EAChB;EAGA,MAAMM,KAAK,GAAGV,gBAAgB,CAACK,OAAO,IAAI,CAAC,CAAC,CAAC;EAG7C,IAAI,CAACE,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;IACzB,OAAOQ,oBAAoB,CAACR,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEK,KAAK,CAAC;EAC7D;EAGA,MAAME,QAAQ,GAAGT,KAAK,CAACU,GAAG,CAAEC,IAAI,IAAKH,oBAAoB,CAACG,IAAI,EAAEV,OAAO,EAAEC,OAAO,EAAEK,KAAK,CAAC,CAAC;EAGzF,OAAOE,QAAQ;AACjB;AAEA,eAAeD,oBAAoBA,CAACG,IAAI,EAAEV,OAAO,EAAEC,OAAO,EAAEK,KAAK,EAAE;EACjE,IAAI,OAAOI,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAMC,GAAG,GAAGD,IAAI;IAChB,MAAME,QAAQ,GAAG,MAAMN,KAAK,CAACK,GAAG,CAAC;IACjC,OAAO,MAAMd,cAAc,CAACe,QAAQ,EAAEZ,OAAO,EAAEC,OAAO,CAAC;EACzD;EACA,OAAO,MAAMJ,cAAc,CAACa,IAAI,EAAEV,OAAO,EAAEC,OAAO,CAAC;AACrD"}
1
+ {"version":3,"file":"load-in-batches.js","names":["isLoaderObject","getFetchFunction","parseInBatches","loadInBatches","files","loaders","options","context","loadersArray","Array","isArray","undefined","fetch","loadOneFileInBatches","promises","map","file","url","response"],"sources":["../../../../src/lib/api/load-in-batches.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {\n LoaderWithParser,\n LoaderOptions,\n LoaderContext,\n FetchLike\n} from '@loaders.gl/loader-utils';\nimport type {LoaderBatchType, LoaderOptionsType} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/get-fetch-function';\n\nimport {parseInBatches} from './parse-in-batches';\n\ntype FileType = string | File | Blob | Response | (string | File | Blob | Response)[] | FileList;\n\n/**\n * Parses `data` synchronously using a specified loader\n */\nexport async function loadInBatches<\n LoaderT extends LoaderWithParser,\n OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>\n>(\n files: FileType,\n loader: LoaderT,\n options?: OptionsT,\n context?: LoaderContext\n): Promise<AsyncIterable<LoaderBatchType<LoaderT>>>;\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport function loadInBatches(\n files: FileType,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(\n files: FileType[] | FileList,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(\n files: FileType | FileType[] | FileList,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n) {\n let loadersArray: LoaderWithParser | LoaderWithParser[] | undefined;\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loadersArray = undefined;\n } else {\n loadersArray = loaders as LoaderWithParser | LoaderWithParser[] | undefined;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(options || {});\n\n // Single url/file\n if (!Array.isArray(files)) {\n return loadOneFileInBatches(files, loadersArray!, options || {}, fetch);\n }\n\n // Multiple URLs / files\n const promises = files.map((file) =>\n loadOneFileInBatches(file, loadersArray!, options || {}, fetch)\n );\n\n // No point in waiting here for all responses before starting to stream individual streams?\n return promises;\n}\n\nasync function loadOneFileInBatches(\n file: FileType,\n loaders: LoaderWithParser | LoaderWithParser[],\n options: LoaderOptions,\n fetch: FetchLike\n) {\n if (typeof file === 'string') {\n const url = file;\n const response = await fetch(url);\n // @ts-expect-error\n return await parseInBatches(response, loaders, options);\n }\n // @ts-expect-error TODO\n return await parseInBatches(file, loaders, options);\n}\n"],"mappings":"AASA,SAAQA,cAAc,QAAO,kCAAkC;AAC/D,SAAQC,gBAAgB,QAAO,oCAAoC;AAEnE,SAAQC,cAAc,QAAO,oBAAoB;AAsCjD,OAAO,SAASC,aAAaA,CAC3BC,KAAuC,EACvCC,OAA+D,EAC/DC,OAAuB,EACvBC,OAAuB,EACvB;EACA,IAAIC,YAA+D;EAEnE,IAAI,CAACC,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,IAAI,CAACL,cAAc,CAACK,OAAO,CAAC,EAAE;IACvDE,OAAO,GAAGI,SAAS;IACnBL,OAAO,GAAGD,OAAwB;IAClCG,YAAY,GAAGG,SAAS;EAC1B,CAAC,MAAM;IACLH,YAAY,GAAGH,OAA4D;EAC7E;EAGA,MAAMO,KAAK,GAAGX,gBAAgB,CAACK,OAAO,IAAI,CAAC,CAAC,CAAC;EAG7C,IAAI,CAACG,KAAK,CAACC,OAAO,CAACN,KAAK,CAAC,EAAE;IACzB,OAAOS,oBAAoB,CAACT,KAAK,EAAEI,YAAY,EAAGF,OAAO,IAAI,CAAC,CAAC,EAAEM,KAAK,CAAC;EACzE;EAGA,MAAME,QAAQ,GAAGV,KAAK,CAACW,GAAG,CAAEC,IAAI,IAC9BH,oBAAoB,CAACG,IAAI,EAAER,YAAY,EAAGF,OAAO,IAAI,CAAC,CAAC,EAAEM,KAAK,CAChE,CAAC;EAGD,OAAOE,QAAQ;AACjB;AAEA,eAAeD,oBAAoBA,CACjCG,IAAc,EACdX,OAA8C,EAC9CC,OAAsB,EACtBM,KAAgB,EAChB;EACA,IAAI,OAAOI,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAMC,GAAG,GAAGD,IAAI;IAChB,MAAME,QAAQ,GAAG,MAAMN,KAAK,CAACK,GAAG,CAAC;IAEjC,OAAO,MAAMf,cAAc,CAACgB,QAAQ,EAAEb,OAAO,EAAEC,OAAO,CAAC;EACzD;EAEA,OAAO,MAAMJ,cAAc,CAACc,IAAI,EAAEX,OAAO,EAAEC,OAAO,CAAC;AACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","names":["isBlob","isLoaderObject","getFetchFunction","parse","load","url","loaders","options","context","resolvedLoaders","resolvedOptions","Array","isArray","undefined","fetch","data"],"sources":["../../../../src/lib/api/load.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';\nimport {isBlob} from '../../javascript-utils/is-type';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/get-fetch-function';\n\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * Note: Load does duplicate a lot of parse.\n * it can also call fetchFile on string urls, which `parse` won't do.\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n\nexport async function load<LoaderT extends Loader>(\n url: string | DataType,\n loader: LoaderT,\n options?: LoaderOptionsType<LoaderT>,\n context?: LoaderContext\n): Promise<LoaderReturnType<LoaderT>>;\n\nexport async function load<\n LoaderT extends Loader, // eslint-disable-line @typescript-eslint/no-unused-vars\n LoaderOptionsT extends LoaderOptions = LoaderOptions\n>(\n url: string | DataType,\n loaders: Loader[] | LoaderOptions,\n options?: LoaderOptionsT,\n context?: LoaderContext\n): Promise<any>;\n\n// implementation signature\nexport async function load<LoaderOptionsT extends LoaderOptions>(\n url: string | DataType,\n loaders?: Loader[] | LoaderOptions,\n options?: LoaderOptionsT,\n context?: LoaderContext\n): Promise<any> {\n let resolvedLoaders: Loader | Loader[];\n let resolvedOptions: LoaderOptionsT | undefined;\n\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n resolvedLoaders = [];\n resolvedOptions = loaders as LoaderOptionsT;\n context = undefined; // context not supported in short signature\n } else {\n resolvedLoaders = loaders as Loader | Loader[];\n resolvedOptions = options;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(resolvedOptions);\n\n // at this point, `url` could be already loaded binary data\n let data = url;\n // url is a string, fetch the url\n if (typeof url === 'string') {\n data = await fetch(url);\n // URL is Blob or File, fetchFile handles it (alt: we could generate ObjectURL here)\n }\n\n if (isBlob(url)) {\n // The fetch response object will contain blob.name\n // @ts-expect-error TODO - This may not work for overridden fetch functions\n data = await fetch(url);\n }\n\n // Data is loaded (at least we have a `Response` object) so time to hand over to `parse`\n // return await parse(data, loaders as Loader[], options);\n return Array.isArray(resolvedLoaders)\n ? await parse(data, resolvedLoaders, resolvedOptions) // loader array overload\n : await parse(data, resolvedLoaders, resolvedOptions); // single loader overload\n}\n"],"mappings":"AAIA,SAAQA,MAAM,QAAO,gCAAgC;AACrD,SAAQC,cAAc,QAAO,kCAAkC;AAC/D,SAAQC,gBAAgB,QAAO,oCAAoC;AAEnE,SAAQC,KAAK,QAAO,SAAS;AA8B7B,OAAO,eAAeC,IAAIA,CACxBC,GAAsB,EACtBC,OAAkC,EAClCC,OAAwB,EACxBC,OAAuB,EACT;EACd,IAAIC,eAAkC;EACtC,IAAIC,eAA2C;EAG/C,IAAI,CAACC,KAAK,CAACC,OAAO,CAACN,OAAO,CAAC,IAAI,CAACL,cAAc,CAACK,OAAO,CAAC,EAAE;IACvDG,eAAe,GAAG,EAAE;IACpBC,eAAe,GAAGJ,OAAyB;IAC3CE,OAAO,GAAGK,SAAS;EACrB,CAAC,MAAM;IACLJ,eAAe,GAAGH,OAA4B;IAC9CI,eAAe,GAAGH,OAAO;EAC3B;EAGA,MAAMO,KAAK,GAAGZ,gBAAgB,CAACQ,eAAe,CAAC;EAG/C,IAAIK,IAAI,GAAGV,GAAG;EAEd,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3BU,IAAI,GAAG,MAAMD,KAAK,CAACT,GAAG,CAAC;EAEzB;EAEA,IAAIL,MAAM,CAACK,GAAG,CAAC,EAAE;IAGfU,IAAI,GAAG,MAAMD,KAAK,CAACT,GAAG,CAAC;EACzB;EAIA,OAAOM,KAAK,CAACC,OAAO,CAACH,eAAe,CAAC,GACjC,MAAMN,KAAK,CAACY,IAAI,EAAEN,eAAe,EAAEC,eAAe,CAAC,GACnD,MAAMP,KAAK,CAACY,IAAI,EAAEN,eAAe,EAAEC,eAAe,CAAC;AACzD"}
1
+ {"version":3,"file":"load.js","names":["isBlob","isLoaderObject","getFetchFunction","parse","load","url","loaders","options","context","resolvedLoaders","resolvedOptions","Array","isArray","undefined","fetch","data"],"sources":["../../../../src/lib/api/load.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';\nimport {isBlob} from '../../javascript-utils/is-type';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/get-fetch-function';\n\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * Note: Load does duplicate a lot of parse.\n * it can also call fetchFile on string urls, which `parse` won't do.\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n\nexport async function load<LoaderT extends Loader>(\n url: string | DataType,\n loader: LoaderT,\n options?: LoaderOptionsType<LoaderT>,\n context?: LoaderContext\n): Promise<LoaderReturnType<LoaderT>>;\n\nexport async function load<LoaderOptionsT extends LoaderOptions = LoaderOptions>(\n url: string | DataType,\n loaders: Loader[] | LoaderOptions,\n options?: LoaderOptionsT,\n context?: LoaderContext\n): Promise<any>;\n\n// implementation signature\nexport async function load<LoaderOptionsT extends LoaderOptions = LoaderOptions>(\n url: string | DataType,\n loaders?: Loader[] | LoaderOptions,\n options?: LoaderOptionsT,\n context?: LoaderContext\n): Promise<any> {\n let resolvedLoaders: Loader | Loader[];\n let resolvedOptions: LoaderOptionsT | undefined;\n\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n resolvedLoaders = [];\n resolvedOptions = loaders as LoaderOptionsT;\n context = undefined; // context not supported in short signature\n } else {\n resolvedLoaders = loaders as Loader | Loader[];\n resolvedOptions = options;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(resolvedOptions);\n\n // at this point, `url` could be already loaded binary data\n let data = url;\n // url is a string, fetch the url\n if (typeof url === 'string') {\n data = await fetch(url);\n // URL is Blob or File, fetchFile handles it (alt: we could generate ObjectURL here)\n }\n\n if (isBlob(url)) {\n // The fetch response object will contain blob.name\n // @ts-expect-error TODO - This may not work for overridden fetch functions\n data = await fetch(url);\n }\n\n // Data is loaded (at least we have a `Response` object) so time to hand over to `parse`\n // return await parse(data, loaders as Loader[], options);\n return Array.isArray(resolvedLoaders)\n ? await parse(data, resolvedLoaders, resolvedOptions) // loader array overload\n : await parse(data, resolvedLoaders, resolvedOptions); // single loader overload\n}\n"],"mappings":"AAIA,SAAQA,MAAM,QAAO,gCAAgC;AACrD,SAAQC,cAAc,QAAO,kCAAkC;AAC/D,SAAQC,gBAAgB,QAAO,oCAAoC;AAEnE,SAAQC,KAAK,QAAO,SAAS;AA2B7B,OAAO,eAAeC,IAAIA,CACxBC,GAAsB,EACtBC,OAAkC,EAClCC,OAAwB,EACxBC,OAAuB,EACT;EACd,IAAIC,eAAkC;EACtC,IAAIC,eAA2C;EAG/C,IAAI,CAACC,KAAK,CAACC,OAAO,CAACN,OAAO,CAAC,IAAI,CAACL,cAAc,CAACK,OAAO,CAAC,EAAE;IACvDG,eAAe,GAAG,EAAE;IACpBC,eAAe,GAAGJ,OAAyB;IAC3CE,OAAO,GAAGK,SAAS;EACrB,CAAC,MAAM;IACLJ,eAAe,GAAGH,OAA4B;IAC9CI,eAAe,GAAGH,OAAO;EAC3B;EAGA,MAAMO,KAAK,GAAGZ,gBAAgB,CAACQ,eAAe,CAAC;EAG/C,IAAIK,IAAI,GAAGV,GAAG;EAEd,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3BU,IAAI,GAAG,MAAMD,KAAK,CAACT,GAAG,CAAC;EAEzB;EAEA,IAAIL,MAAM,CAACK,GAAG,CAAC,EAAE;IAGfU,IAAI,GAAG,MAAMD,KAAK,CAACT,GAAG,CAAC;EACzB;EAIA,OAAOM,KAAK,CAACC,OAAO,CAACH,eAAe,CAAC,GACjC,MAAMN,KAAK,CAACY,IAAI,EAAEN,eAAe,EAAEC,eAAe,CAAC,GACnD,MAAMP,KAAK,CAACY,IAAI,EAAEN,eAAe,EAAEC,eAAe,CAAC;AACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-in-batches.js","names":["assert","concatenateArrayBuffersAsync","isLoaderObject","normalizeOptions","getLoaderContext","getAsyncIterableFromData","getResourceUrl","selectLoader","parse","parseInBatches","data","loaders","options","context","loaderArray","Array","isArray","undefined","url","loader","parseWithLoaderInBatches","outputIterator","parseToOutputIterator","metadata","metadataBatch","batchType","_loader","_context","bytesUsed","makeMetadataBatchIterator","iterator","inputIterator","transformedIterator","applyInputTransforms","transforms","parseChunkInBatches","arrayBuffer","parsedData","mimeType","mimeTypes","batch","shape","length","arguments","iteratorChain","transformBatches"],"sources":["../../../../src/lib/api/parse-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {\n BatchableDataType,\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions\n} from '@loaders.gl/loader-utils';\nimport {assert, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getLoaderContext} from '../loader-utils/loader-context';\nimport {getAsyncIterableFromData} from '../loader-utils/get-data';\nimport {getResourceUrl} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// Ensure `parse` is available in context if loader falls back to `parse`\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>> {\n assert(!context || typeof context === 'object'); // parseInBatches no longer accepts final url\n\n const loaderArray = Array.isArray(loaders) ? loaders : undefined;\n\n // Signature: parseInBatches(data, options, url) - Uses registered loaders\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n data = await data; // Resolve any promise\n options = options || {};\n\n // Extract a url for auto detection\n const url = getResourceUrl(data);\n\n // Chooses a loader and normalizes it\n // Note - only uses URL and contentType for streams and iterator inputs\n const loader = await selectLoader(data as ArrayBuffer, loaders as Loader | Loader[], options);\n // Note: if options.nothrow was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n // @ts-ignore\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, loaderArray, url);\n context = getLoaderContext(\n {url, parseInBatches, parse, loaders: loaderArray},\n options,\n context || null\n );\n\n return await parseWithLoaderInBatches(loader as LoaderWithParser, data, options, context);\n}\n\n/**\n * Loader has been selected and context has been prepared, see if we need to emit a metadata batch\n */\nasync function parseWithLoaderInBatches(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n const outputIterator = await parseToOutputIterator(loader, data, options, context);\n\n // Generate metadata batch if requested\n if (!options.metadata) {\n return outputIterator;\n }\n\n const metadataBatch = {\n batchType: 'metadata',\n metadata: {\n _loader: loader,\n _context: context\n },\n // Populate with some default fields to avoid crashing\n data: [],\n bytesUsed: 0\n };\n\n async function* makeMetadataBatchIterator(iterator) {\n yield metadataBatch;\n yield* iterator;\n }\n\n return makeMetadataBatchIterator(outputIterator);\n}\n\n/**\n * Prep work is done, now it is time to start parsing into an output operator\n * The approach depends on which parse function the loader exposes\n * `parseInBatches` (preferred), `parse` (fallback)\n */\nasync function parseToOutputIterator(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n // Get an iterator from the input\n const inputIterator = await getAsyncIterableFromData(data, options);\n\n // Apply any iterator transforms (options.transforms)\n const transformedIterator = await applyInputTransforms(inputIterator, options?.transforms || []);\n\n // If loader supports parseInBatches, we are done\n if (loader.parseInBatches) {\n return loader.parseInBatches(transformedIterator, options, context);\n }\n\n // Fallback: load atomically using `parse` concatenating input iterator into single chunk\n async function* parseChunkInBatches() {\n const arrayBuffer = await concatenateArrayBuffersAsync(transformedIterator);\n // Call `parse` instead of `loader.parse` to ensure we can call workers etc.\n const parsedData = await parse(\n arrayBuffer,\n loader,\n // TODO - Hack: supply loaders MIME type to ensure we match it\n {...options, mimeType: loader.mimeTypes[0]},\n context\n );\n // yield a single batch, the output from loader.parse()\n // TODO - run through batch builder to apply options etc...\n const batch: Batch = {\n mimeType: loader.mimeTypes[0],\n shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',\n batchType: 'data',\n data: parsedData,\n length: Array.isArray(parsedData) ? parsedData.length : 1\n };\n yield batch;\n }\n\n return parseChunkInBatches();\n}\n\ntype TransformBatches = (\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n) => AsyncIterable<ArrayBuffer>;\n\n/**\n * Create an iterator chain with any transform iterators (crypto, decompression)\n * @param inputIterator\n * @param options\n */\nasync function applyInputTransforms(\n inputIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n transforms: TransformBatches[] = []\n): Promise<AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>> {\n let iteratorChain = inputIterator;\n for await (const transformBatches of transforms) {\n iteratorChain = transformBatches(iteratorChain);\n }\n return iteratorChain;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-in-batches.js","names":["assert","concatenateArrayBuffersAsync","isLoaderObject","normalizeOptions","getLoaderContext","getAsyncIterableFromData","getResourceUrl","selectLoader","parse","parseInBatches","data","loaders","options","context","loaderArray","Array","isArray","undefined","url","loader","parseWithLoaderInBatches","outputIterator","parseToOutputIterator","metadata","metadataBatch","batchType","_loader","_context","bytesUsed","makeMetadataBatchIterator","iterator","inputIterator","transformedIterator","applyInputTransforms","transforms","parseChunkInBatches","arrayBuffer","parsedData","mimeType","mimeTypes","batch","shape","length","arguments","iteratorChain","transformBatches"],"sources":["../../../../src/lib/api/parse-in-batches.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Batch} from '@loaders.gl/schema';\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {LoaderContext, BatchableDataType} from '@loaders.gl/loader-utils';\nimport type {LoaderBatchType, LoaderOptionsType} from '@loaders.gl/loader-utils';\nimport {assert, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getLoaderContext} from '../loader-utils/loader-context';\nimport {getAsyncIterableFromData} from '../loader-utils/get-data';\nimport {getResourceUrl} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// Ensure `parse` is available in context if loader falls back to `parse`\nimport {parse} from './parse';\n\n/**\n * Parses `data` synchronously using a specified loader\n */\nexport async function parseInBatches<\n LoaderT extends Loader,\n OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>\n>(\n data: BatchableDataType,\n loader: LoaderT,\n options?: OptionsT,\n context?: LoaderContext\n): Promise<AsyncIterable<LoaderBatchType<LoaderT>>>;\n\n/**\n * Parses `data` using one of the supplied loaders\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n loaders: Loader[],\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\n/**\n * Parses `data` in batches by selecting a pre-registered loader\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n options?: LoaderOptions\n): Promise<AsyncIterable<any>>;\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<unknown>> {\n assert(!context || typeof context === 'object'); // parseInBatches no longer accepts final url\n\n const loaderArray = Array.isArray(loaders) ? loaders : undefined;\n\n // Signature: parseInBatches(data, options, url) - Uses registered loaders\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n data = await data; // Resolve any promise\n options = options || {};\n\n // Extract a url for auto detection\n const url = getResourceUrl(data);\n\n // Chooses a loader and normalizes it\n // Note - only uses URL and contentType for streams and iterator inputs\n const loader = await selectLoader(data as ArrayBuffer, loaders as Loader | Loader[], options);\n // Note: if options.nothrow was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n // @ts-ignore\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, loaderArray, url);\n context = getLoaderContext(\n {url, parseInBatches, parse, loaders: loaderArray},\n options,\n context || null\n );\n\n return await parseWithLoaderInBatches(loader as LoaderWithParser, data, options, context);\n}\n\n/**\n * Loader has been selected and context has been prepared, see if we need to emit a metadata batch\n */\nasync function parseWithLoaderInBatches(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<unknown>> {\n const outputIterator = await parseToOutputIterator(loader, data, options, context);\n\n // Generate metadata batch if requested\n if (!options.metadata) {\n return outputIterator;\n }\n\n const metadataBatch = {\n batchType: 'metadata',\n metadata: {\n _loader: loader,\n _context: context\n },\n // Populate with some default fields to avoid crashing\n data: [],\n bytesUsed: 0\n };\n\n async function* makeMetadataBatchIterator(iterator) {\n yield metadataBatch;\n yield* iterator;\n }\n\n return makeMetadataBatchIterator(outputIterator);\n}\n\n/**\n * Prep work is done, now it is time to start parsing into an output operator\n * The approach depends on which parse function the loader exposes\n * `parseInBatches` (preferred), `parse` (fallback)\n */\nasync function parseToOutputIterator(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<unknown>> {\n // Get an iterator from the input\n const inputIterator = await getAsyncIterableFromData(data, options);\n\n // Apply any iterator transforms (options.transforms)\n const transformedIterator = await applyInputTransforms(inputIterator, options?.transforms || []);\n\n // If loader supports parseInBatches, we are done\n if (loader.parseInBatches) {\n return loader.parseInBatches(transformedIterator, options, context);\n }\n\n // Fallback: load atomically using `parse` concatenating input iterator into single chunk\n async function* parseChunkInBatches() {\n const arrayBuffer = await concatenateArrayBuffersAsync(transformedIterator);\n // Call `parse` instead of `loader.parse` to ensure we can call workers etc.\n const parsedData = await parse(\n arrayBuffer,\n loader,\n // TODO - Hack: supply loaders MIME type to ensure we match it\n {...options, mimeType: loader.mimeTypes[0]},\n context\n );\n // yield a single batch, the output from loader.parse()\n // TODO - run through batch builder to apply options etc...\n const batch: Batch = {\n mimeType: loader.mimeTypes[0],\n shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',\n batchType: 'data',\n data: parsedData,\n length: Array.isArray(parsedData) ? parsedData.length : 1\n };\n yield batch;\n }\n\n return parseChunkInBatches();\n}\n\ntype TransformBatches = (\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n) => AsyncIterable<ArrayBuffer>;\n\n/**\n * Create an iterator chain with any transform iterators (crypto, decompression)\n * @param inputIterator\n * @param options\n */\nasync function applyInputTransforms(\n inputIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n transforms: TransformBatches[] = []\n): Promise<AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>> {\n let iteratorChain = inputIterator;\n for await (const transformBatches of transforms) {\n iteratorChain = transformBatches(iteratorChain);\n }\n return iteratorChain;\n}\n"],"mappings":"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"}