@loaders.gl/core 3.1.8 → 3.2.0-alpha.3

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 (78) hide show
  1. package/dist/dist.min.js +234 -60
  2. package/dist/es5/index.js +8 -2
  3. package/dist/es5/index.js.map +1 -1
  4. package/dist/es5/lib/api/encode.js +75 -50
  5. package/dist/es5/lib/api/encode.js.map +1 -1
  6. package/dist/es5/lib/api/loader-options.js +20 -0
  7. package/dist/es5/lib/api/loader-options.js.map +1 -0
  8. package/dist/es5/lib/api/parse.js +36 -17
  9. package/dist/es5/lib/api/parse.js.map +1 -1
  10. package/dist/es5/lib/api/select-loader.js.map +1 -1
  11. package/dist/es5/lib/init.js +1 -1
  12. package/dist/es5/lib/init.js.map +1 -1
  13. package/dist/es5/lib/loader-utils/option-defaults.js +4 -1
  14. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -1
  15. package/dist/es5/lib/loader-utils/option-utils.js +3 -0
  16. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
  17. package/dist/es5/lib/utils/response-utils.js +2 -2
  18. package/dist/es5/lib/utils/response-utils.js.map +1 -1
  19. package/dist/es5/null-loader.js +22 -11
  20. package/dist/es5/null-loader.js.map +1 -1
  21. package/dist/esm/index.js +1 -1
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/lib/api/encode.js +12 -0
  24. package/dist/esm/lib/api/encode.js.map +1 -1
  25. package/dist/esm/lib/api/loader-options.js +3 -0
  26. package/dist/esm/lib/api/loader-options.js.map +1 -0
  27. package/dist/esm/lib/api/parse.js +24 -0
  28. package/dist/esm/lib/api/parse.js.map +1 -1
  29. package/dist/esm/lib/api/select-loader.js.map +1 -1
  30. package/dist/esm/lib/init.js +1 -1
  31. package/dist/esm/lib/init.js.map +1 -1
  32. package/dist/esm/lib/loader-utils/option-defaults.js +3 -1
  33. package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -1
  34. package/dist/esm/lib/loader-utils/option-utils.js +1 -3
  35. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -1
  36. package/dist/esm/lib/utils/response-utils.js +2 -2
  37. package/dist/esm/lib/utils/response-utils.js.map +1 -1
  38. package/dist/esm/null-loader.js +19 -6
  39. package/dist/esm/null-loader.js.map +1 -1
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +5 -4
  43. package/dist/lib/api/encode.d.ts +1 -1
  44. package/dist/lib/api/encode.d.ts.map +1 -1
  45. package/dist/lib/api/encode.js +13 -5
  46. package/dist/lib/api/loader-options.d.ts +3 -0
  47. package/dist/lib/api/loader-options.d.ts.map +1 -0
  48. package/dist/lib/api/loader-options.js +7 -0
  49. package/dist/lib/api/parse.d.ts.map +1 -1
  50. package/dist/lib/api/parse.js +8 -0
  51. package/dist/lib/api/select-loader.js +1 -0
  52. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  53. package/dist/lib/loader-utils/option-defaults.js +3 -1
  54. package/dist/lib/loader-utils/option-utils.d.ts +8 -0
  55. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  56. package/dist/lib/loader-utils/option-utils.js +10 -6
  57. package/dist/lib/utils/response-utils.js +2 -2
  58. package/dist/null-loader.d.ts.map +1 -1
  59. package/dist/null-loader.js +17 -5
  60. package/dist/null-worker.js +61 -21
  61. package/package.json +6 -4
  62. package/src/index.ts +1 -1
  63. package/src/lib/api/encode.ts +9 -1
  64. package/src/lib/api/loader-options.ts +2 -0
  65. package/src/lib/api/parse.ts +9 -0
  66. package/src/lib/api/select-loader.ts +1 -0
  67. package/src/lib/loader-utils/option-defaults.ts +3 -1
  68. package/src/lib/loader-utils/option-utils.ts +6 -3
  69. package/src/lib/utils/response-utils.ts +2 -2
  70. package/src/null-loader.ts +17 -5
  71. package/dist/es5/lib/api/set-loader-options.js +0 -13
  72. package/dist/es5/lib/api/set-loader-options.js.map +0 -1
  73. package/dist/esm/lib/api/set-loader-options.js +0 -5
  74. package/dist/esm/lib/api/set-loader-options.js.map +0 -1
  75. package/dist/lib/api/set-loader-options.d.ts +0 -6
  76. package/dist/lib/api/set-loader-options.d.ts.map +0 -1
  77. package/dist/lib/api/set-loader-options.js +0 -12
  78. package/src/lib/api/set-loader-options.ts +0 -9
package/dist/dist.min.js CHANGED
@@ -65,7 +65,7 @@
65
65
  var DEFAULT_VERSION, VERSION;
66
66
  var init_version = __esm({
67
67
  "../worker-utils/src/lib/env-utils/version.ts"() {
68
- DEFAULT_VERSION = "latest";
68
+ DEFAULT_VERSION = "beta";
69
69
  VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
70
70
  if (typeof __VERSION__ === "undefined") {
71
71
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
@@ -112,13 +112,13 @@
112
112
  init_assert2();
113
113
  WorkerJob = class {
114
114
  constructor(jobName, workerThread) {
115
- this.name = jobName;
116
- this.workerThread = workerThread;
117
115
  this.isRunning = true;
118
116
  this._resolve = () => {
119
117
  };
120
118
  this._reject = () => {
121
119
  };
120
+ this.name = jobName;
121
+ this.workerThread = workerThread;
122
122
  this.result = new Promise((resolve, reject) => {
123
123
  this._resolve = resolve;
124
124
  this._reject = reject;
@@ -145,6 +145,21 @@
145
145
  }
146
146
  });
147
147
 
148
+ // ../worker-utils/src/lib/node/worker_threads-browser.js
149
+ var Worker2;
150
+ var init_worker_threads_browser = __esm({
151
+ "../worker-utils/src/lib/node/worker_threads-browser.js"() {
152
+ Worker2 = class {
153
+ on(message, cb) {
154
+ }
155
+ postMessage(...args) {
156
+ }
157
+ terminate() {
158
+ }
159
+ };
160
+ }
161
+ });
162
+
148
163
  // ../worker-utils/src/lib/worker-utils/get-loadable-worker-url.ts
149
164
  function getLoadableWorkerURL(props) {
150
165
  assert2(props.source && !props.url || !props.source && props.url);
@@ -232,6 +247,8 @@
232
247
  var NOOP, WorkerThread;
233
248
  var init_worker_thread = __esm({
234
249
  "../worker-utils/src/lib/worker-farm/worker-thread.ts"() {
250
+ init_worker_threads_browser();
251
+ init_globals2();
235
252
  init_assert2();
236
253
  init_get_loadable_worker_url();
237
254
  init_get_transfer_list();
@@ -248,10 +265,10 @@
248
265
  this.url = url;
249
266
  this.onMessage = NOOP;
250
267
  this.onError = (error) => console.log(error);
251
- this.worker = this._createBrowserWorker();
268
+ this.worker = isBrowser2 ? this._createBrowserWorker() : this._createNodeWorker();
252
269
  }
253
270
  static isSupported() {
254
- return typeof Worker !== "undefined";
271
+ return typeof Worker !== "undefined" && isBrowser2 || typeof Worker2 !== void 0;
255
272
  }
256
273
  destroy() {
257
274
  this.onMessage = NOOP;
@@ -294,6 +311,27 @@
294
311
  worker.onmessageerror = (event) => console.error(event);
295
312
  return worker;
296
313
  }
314
+ _createNodeWorker() {
315
+ let worker;
316
+ if (this.url) {
317
+ const absolute = this.url.includes(":/") || this.url.startsWith("/");
318
+ const url = absolute ? this.url : `./${this.url}`;
319
+ worker = new Worker2(url, { eval: false });
320
+ } else if (this.source) {
321
+ worker = new Worker2(this.source, { eval: true });
322
+ } else {
323
+ throw new Error("no worker");
324
+ }
325
+ worker.on("message", (data) => {
326
+ this.onMessage(data);
327
+ });
328
+ worker.on("error", (error) => {
329
+ this.onError(error);
330
+ });
331
+ worker.on("exit", (code) => {
332
+ });
333
+ return worker;
334
+ }
297
335
  };
298
336
  }
299
337
  });
@@ -322,6 +360,9 @@
322
360
  this.url = props.url;
323
361
  this.setProps(props);
324
362
  }
363
+ static isSupported() {
364
+ return WorkerThread.isSupported();
365
+ }
325
366
  destroy() {
326
367
  this.idleQueue.forEach((worker) => worker.destroy());
327
368
  this.isDestroyed = true;
@@ -344,9 +385,9 @@
344
385
  this.onDebug = props.onDebug;
345
386
  }
346
387
  }
347
- async startJob(name, onMessage2 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
388
+ async startJob(name, onMessage3 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
348
389
  const startPromise = new Promise((onStart) => {
349
- this.jobQueue.push({ name, onMessage: onMessage2, onError, onStart });
390
+ this.jobQueue.push({ name, onMessage: onMessage3, onError, onStart });
350
391
  return this;
351
392
  });
352
393
  this._startQueuedJob();
@@ -418,9 +459,9 @@
418
459
  DEFAULT_PROPS = {
419
460
  maxConcurrency: 3,
420
461
  maxMobileConcurrency: 1,
462
+ reuseWorkers: true,
421
463
  onDebug: () => {
422
- },
423
- reuseWorkers: true
464
+ }
424
465
  };
425
466
  WorkerFarm = class {
426
467
  constructor(props) {
@@ -441,6 +482,7 @@
441
482
  for (const workerPool of this.workerPools.values()) {
442
483
  workerPool.destroy();
443
484
  }
485
+ this.workerPools = new Map();
444
486
  }
445
487
  setProps(props) {
446
488
  this.props = { ...this.props, ...props };
@@ -474,7 +516,36 @@
474
516
  }
475
517
  });
476
518
 
519
+ // ../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts
520
+ function removeNontransferableOptions(object) {
521
+ return JSON.parse(stringifyJSON(object));
522
+ }
523
+ function stringifyJSON(v) {
524
+ const cache3 = new Set();
525
+ return JSON.stringify(v, (key, value) => {
526
+ if (typeof value === "object" && value !== null) {
527
+ if (cache3.has(value)) {
528
+ try {
529
+ return JSON.parse(JSON.stringify(value));
530
+ } catch (err) {
531
+ return void 0;
532
+ }
533
+ }
534
+ cache3.add(value);
535
+ }
536
+ return value;
537
+ });
538
+ }
539
+ var init_remove_nontransferable_options = __esm({
540
+ "../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts"() {
541
+ }
542
+ });
543
+
477
544
  // ../worker-utils/src/lib/worker-api/get-worker-url.ts
545
+ function getWorkerName(worker) {
546
+ const warning = worker.version !== VERSION2 ? ` (worker-utils@${VERSION2})` : "";
547
+ return `${worker.name}@${worker.version}${warning}`;
548
+ }
478
549
  function getWorkerURL(worker, options = {}) {
479
550
  const workerOptions = options[worker.id] || {};
480
551
  const workerFile = `${worker.id}-worker.js`;
@@ -496,11 +567,64 @@
496
567
  assert2(url);
497
568
  return url;
498
569
  }
499
- var NPM_TAG;
570
+ var NPM_TAG, VERSION2;
500
571
  var init_get_worker_url = __esm({
501
572
  "../worker-utils/src/lib/worker-api/get-worker-url.ts"() {
502
573
  init_assert2();
503
- NPM_TAG = "latest";
574
+ init_version();
575
+ NPM_TAG = "beta";
576
+ VERSION2 = typeof VERSION !== "undefined" ? VERSION : NPM_TAG;
577
+ }
578
+ });
579
+
580
+ // ../worker-utils/src/lib/worker-api/process-on-worker.ts
581
+ async function processOnWorker(worker, data, options = {}, context = {}) {
582
+ const name = getWorkerName(worker);
583
+ const workerFarm = WorkerFarm.getWorkerFarm(options);
584
+ const { source } = options;
585
+ const workerPoolProps = { name, source };
586
+ if (!source) {
587
+ workerPoolProps.url = getWorkerURL(worker, options);
588
+ }
589
+ const workerPool = workerFarm.getWorkerPool(workerPoolProps);
590
+ const jobName = options.jobName || worker.name;
591
+ const job = await workerPool.startJob(jobName, onMessage.bind(null, context));
592
+ const transferableOptions = removeNontransferableOptions(options);
593
+ job.postMessage("process", { input: data, options: transferableOptions });
594
+ const result = await job.result;
595
+ return result.result;
596
+ }
597
+ async function onMessage(context, job, type, payload) {
598
+ switch (type) {
599
+ case "done":
600
+ job.done(payload);
601
+ break;
602
+ case "error":
603
+ job.error(new Error(payload.error));
604
+ break;
605
+ case "process":
606
+ const { id, input, options } = payload;
607
+ try {
608
+ if (!context.process) {
609
+ job.postMessage("error", { id, error: "Worker not set up to process on main thread" });
610
+ return;
611
+ }
612
+ const result = await context.process(input, options);
613
+ job.postMessage("done", { id, result });
614
+ } catch (error) {
615
+ const message = error instanceof Error ? error.message : "unknown error";
616
+ job.postMessage("error", { id, error: message });
617
+ }
618
+ break;
619
+ default:
620
+ console.warn(`process-on-worker: unknown message ${type}`);
621
+ }
622
+ }
623
+ var init_process_on_worker = __esm({
624
+ "../worker-utils/src/lib/worker-api/process-on-worker.ts"() {
625
+ init_worker_farm();
626
+ init_remove_nontransferable_options();
627
+ init_get_worker_url();
504
628
  }
505
629
  });
506
630
 
@@ -524,7 +648,9 @@
524
648
  var init_src = __esm({
525
649
  "../worker-utils/src/index.ts"() {
526
650
  init_assert2();
651
+ init_globals2();
527
652
  init_worker_farm();
653
+ init_process_on_worker();
528
654
  init_get_worker_url();
529
655
  init_validate_worker_version();
530
656
  }
@@ -535,6 +661,9 @@
535
661
  if (!WorkerFarm.isSupported()) {
536
662
  return false;
537
663
  }
664
+ if (!isBrowser2 && !options?._nodeWorkers) {
665
+ return false;
666
+ }
538
667
  return loader.worker && options?.worker;
539
668
  }
540
669
  async function parseWithWorker(loader, data, options, context, parseOnMainThread) {
@@ -543,15 +672,17 @@
543
672
  const workerFarm = WorkerFarm.getWorkerFarm(options);
544
673
  const workerPool = workerFarm.getWorkerPool({ name, url });
545
674
  options = JSON.parse(JSON.stringify(options));
546
- const job = await workerPool.startJob("process-on-worker", onMessage.bind(null, parseOnMainThread));
675
+ context = JSON.parse(JSON.stringify(context || {}));
676
+ const job = await workerPool.startJob("process-on-worker", onMessage2.bind(null, parseOnMainThread));
547
677
  job.postMessage("process", {
548
678
  input: data,
549
- options
679
+ options,
680
+ context
550
681
  });
551
682
  const result = await job.result;
552
683
  return await result.result;
553
684
  }
554
- async function onMessage(parseOnMainThread, job, type, payload) {
685
+ async function onMessage2(parseOnMainThread, job, type, payload) {
555
686
  switch (type) {
556
687
  case "done":
557
688
  job.done(payload);
@@ -576,6 +707,24 @@
576
707
  var init_parse_with_worker = __esm({
577
708
  "../loader-utils/src/lib/worker-loader-utils/parse-with-worker.ts"() {
578
709
  init_src();
710
+ init_src();
711
+ }
712
+ });
713
+
714
+ // ../loader-utils/src/lib/worker-loader-utils/encode-with-worker.ts
715
+ function canEncodeWithWorker(writer, options) {
716
+ if (!WorkerFarm.isSupported()) {
717
+ return false;
718
+ }
719
+ if (!isBrowser && !options?._nodeWorkers) {
720
+ return false;
721
+ }
722
+ return writer.worker && options?.worker;
723
+ }
724
+ var init_encode_with_worker = __esm({
725
+ "../loader-utils/src/lib/worker-loader-utils/encode-with-worker.ts"() {
726
+ init_src();
727
+ init_globals();
579
728
  }
580
729
  });
581
730
 
@@ -746,7 +895,7 @@
746
895
  }
747
896
  });
748
897
 
749
- // ../loader-utils/node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js
898
+ // ../../node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js
750
899
  function getHiResTimestamp() {
751
900
  let timestamp;
752
901
  if (typeof window !== "undefined" && window.performance) {
@@ -760,14 +909,14 @@
760
909
  return timestamp;
761
910
  }
762
911
  var init_hi_res_timestamp = __esm({
763
- "../loader-utils/node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js"() {
912
+ "../../node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js"() {
764
913
  }
765
914
  });
766
915
 
767
- // ../loader-utils/node_modules/@probe.gl/stats/dist/esm/lib/stat.js
916
+ // ../../node_modules/@probe.gl/stats/dist/esm/lib/stat.js
768
917
  var Stat;
769
918
  var init_stat = __esm({
770
- "../loader-utils/node_modules/@probe.gl/stats/dist/esm/lib/stat.js"() {
919
+ "../../node_modules/@probe.gl/stats/dist/esm/lib/stat.js"() {
771
920
  init_defineProperty();
772
921
  init_hi_res_timestamp();
773
922
  Stat = class {
@@ -883,10 +1032,10 @@
883
1032
  }
884
1033
  });
885
1034
 
886
- // ../loader-utils/node_modules/@probe.gl/stats/dist/esm/lib/stats.js
1035
+ // ../../node_modules/@probe.gl/stats/dist/esm/lib/stats.js
887
1036
  var Stats;
888
1037
  var init_stats = __esm({
889
- "../loader-utils/node_modules/@probe.gl/stats/dist/esm/lib/stats.js"() {
1038
+ "../../node_modules/@probe.gl/stats/dist/esm/lib/stats.js"() {
890
1039
  init_defineProperty();
891
1040
  init_stat();
892
1041
  Stats = class {
@@ -956,9 +1105,9 @@
956
1105
  }
957
1106
  });
958
1107
 
959
- // ../loader-utils/node_modules/@probe.gl/stats/dist/esm/index.js
1108
+ // ../../node_modules/@probe.gl/stats/dist/esm/index.js
960
1109
  var init_esm = __esm({
961
- "../loader-utils/node_modules/@probe.gl/stats/dist/esm/index.js"() {
1110
+ "../../node_modules/@probe.gl/stats/dist/esm/index.js"() {
962
1111
  init_stats();
963
1112
  init_stat();
964
1113
  init_hi_res_timestamp();
@@ -1100,15 +1249,15 @@
1100
1249
  function parseTextSync(text) {
1101
1250
  return JSON.parse(text);
1102
1251
  }
1103
- var VERSION2, JSONLoader;
1252
+ var VERSION3, JSONLoader;
1104
1253
  var init_json_loader = __esm({
1105
1254
  "../loader-utils/src/json-loader.ts"() {
1106
- VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1255
+ VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1107
1256
  JSONLoader = {
1108
1257
  name: "JSON",
1109
1258
  id: "json",
1110
1259
  module: "json",
1111
- version: VERSION2,
1260
+ version: VERSION3,
1112
1261
  extensions: ["json", "geojson"],
1113
1262
  mimeTypes: ["application/json"],
1114
1263
  category: "json",
@@ -1166,6 +1315,7 @@
1166
1315
  init_assert();
1167
1316
  init_globals();
1168
1317
  init_parse_with_worker();
1318
+ init_encode_with_worker();
1169
1319
  init_array_buffer_utils();
1170
1320
  init_text_iterators();
1171
1321
  init_async_iteration();
@@ -1322,7 +1472,7 @@
1322
1472
  text += ` ${await response.text()}`;
1323
1473
  }
1324
1474
  message += text;
1325
- message = message.length > 60 ? `${message.slice(60)}...` : message;
1475
+ message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
1326
1476
  } catch (error) {
1327
1477
  }
1328
1478
  return message;
@@ -1498,12 +1648,12 @@
1498
1648
  });
1499
1649
 
1500
1650
  // ../../node_modules/probe.gl/dist/esm/utils/globals.js
1501
- var VERSION3, isBrowser4;
1651
+ var VERSION4, isBrowser4;
1502
1652
  var init_globals4 = __esm({
1503
1653
  "../../node_modules/probe.gl/dist/esm/utils/globals.js"() {
1504
1654
  init_is_browser();
1505
1655
  init_globals3();
1506
- VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
1656
+ VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
1507
1657
  isBrowser4 = isBrowser3();
1508
1658
  }
1509
1659
  });
@@ -1825,7 +1975,7 @@
1825
1975
  id: ""
1826
1976
  }) {
1827
1977
  this.id = id;
1828
- this.VERSION = VERSION3;
1978
+ this.VERSION = VERSION4;
1829
1979
  this._startTs = getHiResTimestamp2();
1830
1980
  this._deltaTs = getHiResTimestamp2();
1831
1981
  this.LOG_THROTTLE_TIMEOUT = 0;
@@ -2021,33 +2171,33 @@
2021
2171
  return noop;
2022
2172
  }
2023
2173
  };
2024
- Log.VERSION = VERSION3;
2174
+ Log.VERSION = VERSION4;
2025
2175
  }
2026
2176
  });
2027
2177
 
2028
- // ../../node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js
2178
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js
2029
2179
  var init_hi_res_timestamp3 = __esm({
2030
- "../../node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js"() {
2180
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js"() {
2031
2181
  }
2032
2182
  });
2033
2183
 
2034
- // ../../node_modules/@probe.gl/stats/dist/esm/lib/stat.js
2184
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stat.js
2035
2185
  var init_stat2 = __esm({
2036
- "../../node_modules/@probe.gl/stats/dist/esm/lib/stat.js"() {
2186
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stat.js"() {
2037
2187
  init_hi_res_timestamp3();
2038
2188
  }
2039
2189
  });
2040
2190
 
2041
- // ../../node_modules/@probe.gl/stats/dist/esm/lib/stats.js
2191
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stats.js
2042
2192
  var init_stats2 = __esm({
2043
- "../../node_modules/@probe.gl/stats/dist/esm/lib/stats.js"() {
2193
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stats.js"() {
2044
2194
  init_stat2();
2045
2195
  }
2046
2196
  });
2047
2197
 
2048
- // ../../node_modules/@probe.gl/stats/dist/esm/index.js
2198
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/index.js
2049
2199
  var init_esm2 = __esm({
2050
- "../../node_modules/@probe.gl/stats/dist/esm/index.js"() {
2200
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/index.js"() {
2051
2201
  init_stats2();
2052
2202
  init_stat2();
2053
2203
  init_hi_res_timestamp3();
@@ -2115,6 +2265,7 @@
2115
2265
  var DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS;
2116
2266
  var init_option_defaults = __esm({
2117
2267
  "src/lib/loader-utils/option-defaults.ts"() {
2268
+ init_src2();
2118
2269
  init_loggers();
2119
2270
  DEFAULT_LOADER_OPTIONS = {
2120
2271
  fetch: null,
@@ -2125,7 +2276,8 @@
2125
2276
  worker: true,
2126
2277
  maxConcurrency: 3,
2127
2278
  maxMobileConcurrency: 1,
2128
- reuseWorkers: true,
2279
+ reuseWorkers: isBrowser,
2280
+ _nodeWorkers: false,
2129
2281
  _workerType: "",
2130
2282
  limit: 0,
2131
2283
  _limitMB: 0,
@@ -2275,12 +2427,10 @@
2275
2427
  }
2276
2428
  });
2277
2429
 
2278
- // src/lib/api/set-loader-options.ts
2279
- function setLoaderOptions(options) {
2280
- setGlobalOptions(options);
2281
- }
2282
- var init_set_loader_options = __esm({
2283
- "src/lib/api/set-loader-options.ts"() {
2430
+ // src/lib/api/loader-options.ts
2431
+ var init_loader_options = __esm({
2432
+ "src/lib/api/loader-options.ts"() {
2433
+ init_option_utils();
2284
2434
  init_option_utils();
2285
2435
  }
2286
2436
  });
@@ -2403,11 +2553,11 @@
2403
2553
  });
2404
2554
 
2405
2555
  // ../../node_modules/@probe.gl/env/dist/esm/utils/globals.js
2406
- var VERSION4, isBrowser6;
2556
+ var VERSION5, isBrowser6;
2407
2557
  var init_globals6 = __esm({
2408
2558
  "../../node_modules/@probe.gl/env/dist/esm/utils/globals.js"() {
2409
2559
  init_is_browser2();
2410
- VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
2560
+ VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
2411
2561
  isBrowser6 = isBrowser5();
2412
2562
  }
2413
2563
  });
@@ -2754,7 +2904,7 @@
2754
2904
  id: ""
2755
2905
  };
2756
2906
  _defineProperty(this, "id", void 0);
2757
- _defineProperty(this, "VERSION", VERSION4);
2907
+ _defineProperty(this, "VERSION", VERSION5);
2758
2908
  _defineProperty(this, "_startTs", getHiResTimestamp4());
2759
2909
  _defineProperty(this, "_deltaTs", getHiResTimestamp4());
2760
2910
  _defineProperty(this, "_storage", void 0);
@@ -2960,7 +3110,7 @@
2960
3110
  return noop2;
2961
3111
  }
2962
3112
  };
2963
- _defineProperty(Log2, "VERSION", VERSION4);
3113
+ _defineProperty(Log2, "VERSION", VERSION5);
2964
3114
  }
2965
3115
  });
2966
3116
 
@@ -3456,6 +3606,12 @@
3456
3606
  }
3457
3607
  async function parseWithLoader(loader, data, options, context) {
3458
3608
  validateWorkerVersion(loader);
3609
+ if (isResponse(data)) {
3610
+ const response = data;
3611
+ const { ok, redirected, status, statusText, type, url } = response;
3612
+ const headers = Object.fromEntries(response.headers.entries());
3613
+ context.response = { headers, ok, redirected, status, statusText, type, url };
3614
+ }
3459
3615
  data = await getArrayBufferOrStringFromData(data, loader, options);
3460
3616
  if (loader.parseTextSync && typeof data === "string") {
3461
3617
  options.dataType = "text";
@@ -3478,6 +3634,7 @@
3478
3634
  init_src();
3479
3635
  init_src2();
3480
3636
  init_normalize_loader();
3637
+ init_is_type();
3481
3638
  init_option_utils();
3482
3639
  init_get_data();
3483
3640
  init_loader_context();
@@ -3668,6 +3825,11 @@
3668
3825
 
3669
3826
  // src/lib/api/encode.ts
3670
3827
  async function encode(data, writer, options) {
3828
+ const globalOptions = getGlobalLoaderOptions();
3829
+ options = { ...globalOptions, ...options };
3830
+ if (canEncodeWithWorker(writer, options)) {
3831
+ return await processOnWorker(writer, data, options);
3832
+ }
3671
3833
  if (writer.encode) {
3672
3834
  return await writer.encode(data, options);
3673
3835
  }
@@ -3736,10 +3898,13 @@
3736
3898
  }
3737
3899
  var init_encode = __esm({
3738
3900
  "src/lib/api/encode.ts"() {
3901
+ init_src2();
3902
+ init_src();
3739
3903
  init_src2();
3740
3904
  init_src2();
3741
3905
  init_write_file();
3742
3906
  init_fetch_file();
3907
+ init_loader_options();
3743
3908
  }
3744
3909
  });
3745
3910
 
@@ -3790,15 +3955,21 @@
3790
3955
  });
3791
3956
 
3792
3957
  // src/null-loader.ts
3793
- var VERSION5, NullWorkerLoader, NullLoader;
3958
+ function parseSync2(arrayBuffer, options, context) {
3959
+ if (!options.null.echoParameters)
3960
+ return null;
3961
+ context = context && JSON.parse(JSON.stringify(context));
3962
+ return { arrayBuffer, options, context };
3963
+ }
3964
+ var VERSION6, NullWorkerLoader, NullLoader;
3794
3965
  var init_null_loader = __esm({
3795
3966
  "src/null-loader.ts"() {
3796
- VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
3967
+ VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
3797
3968
  NullWorkerLoader = {
3798
3969
  name: "Null loader",
3799
3970
  id: "null",
3800
3971
  module: "core",
3801
- version: VERSION5,
3972
+ version: VERSION6,
3802
3973
  worker: true,
3803
3974
  mimeTypes: ["application/x.empty"],
3804
3975
  extensions: ["null"],
@@ -3811,19 +3982,21 @@
3811
3982
  name: "Null loader",
3812
3983
  id: "null",
3813
3984
  module: "core",
3814
- version: VERSION5,
3985
+ version: VERSION6,
3815
3986
  mimeTypes: ["application/x.empty"],
3816
3987
  extensions: ["null"],
3817
- parse: async (arrayBuffer) => arrayBuffer,
3818
- parseSync: (arrayBuffer) => arrayBuffer,
3819
- parseInBatches: async function* generator(asyncIterator) {
3988
+ parse: async (arrayBuffer, options, context) => parseSync2(arrayBuffer, options, context),
3989
+ parseSync: parseSync2,
3990
+ parseInBatches: async function* generator(asyncIterator, options, context) {
3820
3991
  for await (const batch of asyncIterator) {
3821
- yield batch;
3992
+ yield parseSync2(batch, options, context);
3822
3993
  }
3823
3994
  },
3824
3995
  tests: [() => false],
3825
3996
  options: {
3826
- null: {}
3997
+ null: {
3998
+ echoParameters: false
3999
+ }
3827
4000
  }
3828
4001
  };
3829
4002
  }
@@ -3982,6 +4155,7 @@
3982
4155
  encodeURLtoURL: () => encodeURLtoURL,
3983
4156
  fetchFile: () => fetchFile,
3984
4157
  forEach: () => forEach,
4158
+ getLoaderOptions: () => getGlobalLoaderOptions,
3985
4159
  getPathPrefix: () => getPathPrefix,
3986
4160
  global: () => global_,
3987
4161
  isAsyncIterable: () => isAsyncIterable,
@@ -4014,7 +4188,7 @@
4014
4188
  selectLoader: () => selectLoader,
4015
4189
  selectLoaderSync: () => selectLoaderSync,
4016
4190
  self: () => self_,
4017
- setLoaderOptions: () => setLoaderOptions,
4191
+ setLoaderOptions: () => setGlobalOptions,
4018
4192
  setPathPrefix: () => setPathPrefix,
4019
4193
  window: () => window_,
4020
4194
  writeFile: () => writeFile,
@@ -4026,7 +4200,7 @@
4026
4200
  init_read_array_buffer();
4027
4201
  init_read_file();
4028
4202
  init_write_file();
4029
- init_set_loader_options();
4203
+ init_loader_options();
4030
4204
  init_register_loaders();
4031
4205
  init_select_loader();
4032
4206
  init_parse();
package/dist/es5/index.js CHANGED
@@ -38,7 +38,13 @@ Object.defineProperty(exports, "writeFileSync", {
38
38
  Object.defineProperty(exports, "setLoaderOptions", {
39
39
  enumerable: true,
40
40
  get: function get() {
41
- return _setLoaderOptions.setLoaderOptions;
41
+ return _loaderOptions.setLoaderOptions;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "getLoaderOptions", {
45
+ enumerable: true,
46
+ get: function get() {
47
+ return _loaderOptions.getLoaderOptions;
42
48
  }
43
49
  });
44
50
  Object.defineProperty(exports, "registerLoaders", {
@@ -338,7 +344,7 @@ var _readFile = require("./lib/fetch/read-file");
338
344
 
339
345
  var _writeFile = require("./lib/fetch/write-file");
340
346
 
341
- var _setLoaderOptions = require("./lib/api/set-loader-options");
347
+ var _loaderOptions = require("./lib/api/loader-options");
342
348
 
343
349
  var _registerLoaders = require("./lib/api/register-loaders");
344
350
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AACA;;AAGA;;AAIA;;AACA;;AAGA;;AAIA;;AACA;;AAqBA","sourcesContent":["// 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} from './lib/api/set-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 {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"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AACA;;AAGA;;AAIA;;AACA;;AAGA;;AAIA;;AACA;;AAqBA","sourcesContent":["// 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 {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"],"file":"index.js"}