@loaders.gl/scan 5.0.0-alpha.5 → 5.0.0-alpha.6
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.
- package/dist/delta.cjs +126 -39
- package/dist/delta.cjs.map +2 -2
- package/dist/hudi.cjs +126 -39
- package/dist/hudi.cjs.map +2 -2
- package/dist/iceberg.cjs +126 -39
- package/dist/iceberg.cjs.map +2 -2
- package/package.json +8 -8
package/dist/delta.cjs
CHANGED
|
@@ -424,6 +424,10 @@ var init_worker_thread = __esm({
|
|
|
424
424
|
name;
|
|
425
425
|
source;
|
|
426
426
|
url;
|
|
427
|
+
/** Lazily resolves the classic worker URL used as a fallback. */
|
|
428
|
+
getUrl;
|
|
429
|
+
/** Creates a browser Worker directly. */
|
|
430
|
+
loadWorker;
|
|
427
431
|
terminated = false;
|
|
428
432
|
worker;
|
|
429
433
|
onMessage;
|
|
@@ -434,11 +438,13 @@ var init_worker_thread = __esm({
|
|
|
434
438
|
return typeof Worker !== "undefined" && isBrowser2 || typeof NodeWorker !== "undefined" && !isBrowser2;
|
|
435
439
|
}
|
|
436
440
|
constructor(props) {
|
|
437
|
-
const { name, source, url } = props;
|
|
438
|
-
assert(source || url);
|
|
441
|
+
const { name, source, url, getUrl, loadWorker } = props;
|
|
442
|
+
assert(source || url || getUrl || loadWorker);
|
|
439
443
|
this.name = name;
|
|
440
444
|
this.source = source;
|
|
441
445
|
this.url = url;
|
|
446
|
+
this.getUrl = getUrl;
|
|
447
|
+
this.loadWorker = loadWorker;
|
|
442
448
|
this.onMessage = NOOP;
|
|
443
449
|
this.onError = (error) => console.log(error);
|
|
444
450
|
this.worker = isBrowser2 ? this._createBrowserWorker() : this._createNodeWorker();
|
|
@@ -484,7 +490,7 @@ var init_worker_thread = __esm({
|
|
|
484
490
|
*/
|
|
485
491
|
_getErrorFromErrorEvent(event) {
|
|
486
492
|
let message = "Failed to load ";
|
|
487
|
-
message += `worker ${this.name} from ${this.url}. `;
|
|
493
|
+
message += `worker ${this.name} from ${this.url || "built-in worker factory"}. `;
|
|
488
494
|
if (event.message) {
|
|
489
495
|
message += `${event.message} in `;
|
|
490
496
|
}
|
|
@@ -497,8 +503,26 @@ var init_worker_thread = __esm({
|
|
|
497
503
|
* Creates a worker thread on the browser
|
|
498
504
|
*/
|
|
499
505
|
_createBrowserWorker() {
|
|
500
|
-
|
|
506
|
+
var _a;
|
|
507
|
+
if (this.loadWorker) {
|
|
508
|
+
try {
|
|
509
|
+
const worker2 = this.loadWorker();
|
|
510
|
+
if (worker2) {
|
|
511
|
+
return this._initializeBrowserWorker(worker2);
|
|
512
|
+
}
|
|
513
|
+
} catch (error) {
|
|
514
|
+
if (!this.source && !this.url && !this.getUrl) {
|
|
515
|
+
throw error;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
const url = this.url || ((_a = this.getUrl) == null ? void 0 : _a.call(this));
|
|
520
|
+
this._loadableURL = getLoadableWorkerURL({ source: this.source, url });
|
|
501
521
|
const worker = new Worker(this._loadableURL, { name: this.name });
|
|
522
|
+
return this._initializeBrowserWorker(worker);
|
|
523
|
+
}
|
|
524
|
+
/** Attaches protocol handlers to a browser worker. */
|
|
525
|
+
_initializeBrowserWorker(worker) {
|
|
502
526
|
worker.onmessage = (event) => {
|
|
503
527
|
if (!event.data) {
|
|
504
528
|
this.onError(new Error("No data received"));
|
|
@@ -557,6 +581,10 @@ var init_worker_pool = __esm({
|
|
|
557
581
|
source;
|
|
558
582
|
// | Function;
|
|
559
583
|
url;
|
|
584
|
+
/** Lazily resolves a classic worker fallback URL. */
|
|
585
|
+
getUrl;
|
|
586
|
+
/** Creates a browser Worker directly. */
|
|
587
|
+
loadWorker;
|
|
560
588
|
maxConcurrency = 1;
|
|
561
589
|
maxMobileConcurrency = 1;
|
|
562
590
|
onDebug = () => {
|
|
@@ -578,6 +606,8 @@ var init_worker_pool = __esm({
|
|
|
578
606
|
constructor(props) {
|
|
579
607
|
this.source = props.source;
|
|
580
608
|
this.url = props.url;
|
|
609
|
+
this.getUrl = props.getUrl;
|
|
610
|
+
this.loadWorker = props.loadWorker;
|
|
581
611
|
this.setProps(props);
|
|
582
612
|
}
|
|
583
613
|
/**
|
|
@@ -687,7 +717,13 @@ var init_worker_pool = __esm({
|
|
|
687
717
|
if (this.count < this._getMaxConcurrency()) {
|
|
688
718
|
this.count++;
|
|
689
719
|
const name = `${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;
|
|
690
|
-
return new WorkerThread({
|
|
720
|
+
return new WorkerThread({
|
|
721
|
+
name,
|
|
722
|
+
source: this.source,
|
|
723
|
+
url: this.url,
|
|
724
|
+
getUrl: this.getUrl,
|
|
725
|
+
loadWorker: this.loadWorker
|
|
726
|
+
});
|
|
691
727
|
}
|
|
692
728
|
return null;
|
|
693
729
|
}
|
|
@@ -699,7 +735,22 @@ var init_worker_pool = __esm({
|
|
|
699
735
|
});
|
|
700
736
|
|
|
701
737
|
// ../worker-utils/src/lib/worker-farm/worker-farm.ts
|
|
702
|
-
|
|
738
|
+
function getWorkerPoolKey(options) {
|
|
739
|
+
const { name, source, url, urlKey, loadWorker } = options;
|
|
740
|
+
const sourceKey = source ? `source:${source}` : "";
|
|
741
|
+
const urlKeyPart = url || urlKey ? `url:${url || urlKey}` : "";
|
|
742
|
+
const loadWorkerKey = loadWorker ? `loadWorker:${getLoadWorkerId(loadWorker)}` : "";
|
|
743
|
+
return [name, sourceKey, urlKeyPart, loadWorkerKey].filter(Boolean).join("|");
|
|
744
|
+
}
|
|
745
|
+
function getLoadWorkerId(loadWorker) {
|
|
746
|
+
let loadWorkerId = loadWorkerIds.get(loadWorker);
|
|
747
|
+
if (!loadWorkerId) {
|
|
748
|
+
loadWorkerId = nextLoadWorkerId++;
|
|
749
|
+
loadWorkerIds.set(loadWorker, loadWorkerId);
|
|
750
|
+
}
|
|
751
|
+
return loadWorkerId;
|
|
752
|
+
}
|
|
753
|
+
var DEFAULT_PROPS, loadWorkerIds, nextLoadWorkerId, WorkerFarm;
|
|
703
754
|
var init_worker_farm = __esm({
|
|
704
755
|
"../worker-utils/src/lib/worker-farm/worker-farm.ts"() {
|
|
705
756
|
"use strict";
|
|
@@ -712,6 +763,8 @@ var init_worker_farm = __esm({
|
|
|
712
763
|
onDebug: () => {
|
|
713
764
|
}
|
|
714
765
|
};
|
|
766
|
+
loadWorkerIds = /* @__PURE__ */ new WeakMap();
|
|
767
|
+
nextLoadWorkerId = 1;
|
|
715
768
|
WorkerFarm = class _WorkerFarm {
|
|
716
769
|
props;
|
|
717
770
|
workerPools = /* @__PURE__ */ new Map();
|
|
@@ -755,24 +808,28 @@ var init_worker_farm = __esm({
|
|
|
755
808
|
}
|
|
756
809
|
/**
|
|
757
810
|
* Returns a worker pool for the specified worker
|
|
758
|
-
* @param options
|
|
759
|
-
* @param options.name
|
|
760
|
-
* @param options.url
|
|
761
|
-
* @param options.source
|
|
811
|
+
* @param options Worker target used to identify and initialize the pool.
|
|
812
|
+
* @param options.name Worker name used as the base pool identity.
|
|
813
|
+
* @param options.url Worker script URL.
|
|
814
|
+
* @param options.source Inline worker source.
|
|
815
|
+
* @param options.loadWorker Built-in browser worker factory.
|
|
762
816
|
* @example
|
|
763
817
|
* const job = WorkerFarm.getWorkerFarm().getWorkerPool({name, url}).startJob(...);
|
|
764
818
|
*/
|
|
765
819
|
getWorkerPool(options) {
|
|
766
|
-
const { name, source, url } = options;
|
|
767
|
-
|
|
820
|
+
const { name, source, url, getUrl, loadWorker } = options;
|
|
821
|
+
const workerPoolKey = getWorkerPoolKey(options);
|
|
822
|
+
let workerPool = this.workerPools.get(workerPoolKey);
|
|
768
823
|
if (!workerPool) {
|
|
769
824
|
workerPool = new WorkerPool({
|
|
770
825
|
name,
|
|
771
826
|
source,
|
|
772
|
-
url
|
|
827
|
+
url,
|
|
828
|
+
getUrl,
|
|
829
|
+
loadWorker
|
|
773
830
|
});
|
|
774
831
|
workerPool.setProps(this._getWorkerPoolProps());
|
|
775
|
-
this.workerPools.set(
|
|
832
|
+
this.workerPools.set(workerPoolKey, workerPool);
|
|
776
833
|
}
|
|
777
834
|
return workerPool;
|
|
778
835
|
}
|
|
@@ -793,35 +850,42 @@ function getWorkerName(worker) {
|
|
|
793
850
|
const warning = worker.version !== VERSION2 ? ` (worker-utils@${VERSION2})` : "";
|
|
794
851
|
return `${worker.name}@${worker.version}${warning}`;
|
|
795
852
|
}
|
|
796
|
-
function
|
|
853
|
+
function getCustomWorkerURL(worker, options = {}) {
|
|
797
854
|
var _a;
|
|
798
855
|
const workerOptions = options[worker.id] || {};
|
|
799
|
-
const workerFile = isBrowser2 ? `${worker.id}-worker.js` : worker.workerNode || `${worker.id}-worker-node.js`;
|
|
856
|
+
const workerFile = isBrowser2 ? worker.workerFile || `${worker.id}-worker.js` : worker.workerNode || `${worker.id}-worker-node.js`;
|
|
800
857
|
let url = workerOptions.workerUrl;
|
|
801
|
-
if (!url && typeof worker.worker === "string") {
|
|
802
|
-
url = worker.worker;
|
|
803
|
-
}
|
|
804
858
|
if (!url && worker.id === "compression") {
|
|
805
859
|
url = options.workerUrl;
|
|
806
860
|
}
|
|
807
861
|
const workerType = options._workerType || ((_a = options == null ? void 0 : options.core) == null ? void 0 : _a._workerType);
|
|
808
|
-
if (workerType === "test") {
|
|
862
|
+
if (!url && workerType === "test") {
|
|
809
863
|
if (isBrowser2) {
|
|
810
864
|
url = `modules/${worker.module}/dist/${workerFile}`;
|
|
811
865
|
} else {
|
|
812
866
|
url = `modules/${worker.module}/src/workers/${worker.id}-worker-node.ts`;
|
|
813
867
|
}
|
|
814
868
|
}
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
869
|
+
return url || null;
|
|
870
|
+
}
|
|
871
|
+
function getWorkerURL(worker, options = {}) {
|
|
872
|
+
const customWorkerUrl = getCustomWorkerURL(worker, options);
|
|
873
|
+
const descriptorWorkerUrl = typeof worker.worker === "string" ? worker.worker : null;
|
|
874
|
+
const url = customWorkerUrl || descriptorWorkerUrl || getDefaultWorkerURL(worker, true);
|
|
875
|
+
assert(url);
|
|
876
|
+
return url;
|
|
877
|
+
}
|
|
878
|
+
function getDefaultWorkerURL(worker, warn = false) {
|
|
879
|
+
const workerFile = isBrowser2 ? worker.workerFile || `${worker.id}-worker.js` : worker.workerNode || `${worker.id}-worker-node.js`;
|
|
880
|
+
let version2 = worker.version;
|
|
881
|
+
if (version2 === "latest") {
|
|
882
|
+
version2 = NPM_TAG;
|
|
883
|
+
}
|
|
884
|
+
const versionTag = version2 ? `@${version2}` : "";
|
|
885
|
+
const url = `https://unpkg.com/@loaders.gl/${worker.module}${versionTag}/dist/${workerFile}`;
|
|
886
|
+
if (warn) {
|
|
822
887
|
warnIfUsingNpmTagFallback(worker, url);
|
|
823
888
|
}
|
|
824
|
-
assert(url);
|
|
825
889
|
return url;
|
|
826
890
|
}
|
|
827
891
|
function warnIfUsingNpmTagFallback(worker, url) {
|
|
@@ -855,19 +919,16 @@ function canProcessOnWorker(worker, options) {
|
|
|
855
919
|
return false;
|
|
856
920
|
}
|
|
857
921
|
const workerOptions = options == null ? void 0 : options[worker.id];
|
|
858
|
-
return Boolean(
|
|
922
|
+
return Boolean(
|
|
923
|
+
(worker.worker || worker.loadWorker || (workerOptions == null ? void 0 : workerOptions.workerUrl)) && (options == null ? void 0 : options.worker)
|
|
924
|
+
);
|
|
859
925
|
}
|
|
860
926
|
async function processOnWorker(worker, data, options = {}, context = {}, jobContext = {}) {
|
|
861
927
|
var _a, _b, _c;
|
|
862
928
|
throwIfAborted(options.signal);
|
|
863
929
|
const name = getWorkerName(worker);
|
|
864
930
|
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
865
|
-
const
|
|
866
|
-
const workerPoolProps = { name, source };
|
|
867
|
-
if (!source) {
|
|
868
|
-
workerPoolProps.url = getWorkerURL(worker, options);
|
|
869
|
-
}
|
|
870
|
-
const workerPool = workerFarm.getWorkerPool(workerPoolProps);
|
|
931
|
+
const workerPool = workerFarm.getWorkerPool(getWorkerPoolTarget(worker, options, name));
|
|
871
932
|
const jobName = options.jobName || worker.name;
|
|
872
933
|
const job = await workerPool.startJob(
|
|
873
934
|
jobName,
|
|
@@ -910,6 +971,24 @@ function createAbortError2(message) {
|
|
|
910
971
|
error.name = "AbortError";
|
|
911
972
|
return error;
|
|
912
973
|
}
|
|
974
|
+
function getWorkerPoolTarget(worker, options, name) {
|
|
975
|
+
if (options.source) {
|
|
976
|
+
return { name, source: options.source };
|
|
977
|
+
}
|
|
978
|
+
const customWorkerUrl = getCustomWorkerURL(worker, options);
|
|
979
|
+
if (customWorkerUrl) {
|
|
980
|
+
return { name, url: customWorkerUrl };
|
|
981
|
+
}
|
|
982
|
+
if (isBrowser2 && worker.loadWorker) {
|
|
983
|
+
return {
|
|
984
|
+
name,
|
|
985
|
+
loadWorker: worker.loadWorker,
|
|
986
|
+
getUrl: () => getWorkerURL(worker, options),
|
|
987
|
+
urlKey: getDefaultWorkerURL(worker)
|
|
988
|
+
};
|
|
989
|
+
}
|
|
990
|
+
return { name, url: getWorkerURL(worker, options) };
|
|
991
|
+
}
|
|
913
992
|
async function onMessage(context, job, type, payload) {
|
|
914
993
|
switch (type) {
|
|
915
994
|
case "done":
|
|
@@ -942,6 +1021,7 @@ var init_process_on_worker = __esm({
|
|
|
942
1021
|
init_worker_farm();
|
|
943
1022
|
init_get_worker_url();
|
|
944
1023
|
init_get_transfer_list();
|
|
1024
|
+
init_globals2();
|
|
945
1025
|
}
|
|
946
1026
|
});
|
|
947
1027
|
|
|
@@ -975,7 +1055,7 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
975
1055
|
const result = await processOnWorker(
|
|
976
1056
|
loader,
|
|
977
1057
|
data,
|
|
978
|
-
{ ...getWorkerOptions(options), signal: workerSignal },
|
|
1058
|
+
{ ...getWorkerOptions(options, loader), signal: workerSignal },
|
|
979
1059
|
{
|
|
980
1060
|
process: async (input, processOptions, _workerContext, parseContext) => {
|
|
981
1061
|
if (!parseOnMainThread) {
|
|
@@ -1008,12 +1088,19 @@ function callParseOnMainThread(parseOnMainThread, input, options, context) {
|
|
|
1008
1088
|
}
|
|
1009
1089
|
return parseOnMainThread(input, void 0, options, context);
|
|
1010
1090
|
}
|
|
1011
|
-
function getWorkerOptions(options = {}) {
|
|
1091
|
+
function getWorkerOptions(options = {}, loader) {
|
|
1012
1092
|
const serializedOptions = JSON.parse(JSON.stringify(options));
|
|
1013
|
-
|
|
1093
|
+
const workerOptions = {
|
|
1014
1094
|
...serializedOptions.core,
|
|
1015
1095
|
...serializedOptions
|
|
1016
1096
|
};
|
|
1097
|
+
if (workerOptions.worker === "auto") {
|
|
1098
|
+
workerOptions.worker = true;
|
|
1099
|
+
}
|
|
1100
|
+
if (loader) {
|
|
1101
|
+
workerOptions._workerLoaderId = loader.id;
|
|
1102
|
+
}
|
|
1103
|
+
return workerOptions;
|
|
1017
1104
|
}
|
|
1018
1105
|
function getSerializableLoaderContext(context) {
|
|
1019
1106
|
if (!context) {
|
|
@@ -13249,7 +13336,7 @@ function resolveParquetSourceWorkerUrl() {
|
|
|
13249
13336
|
}
|
|
13250
13337
|
}
|
|
13251
13338
|
function getParquetSourceWorkerFile() {
|
|
13252
|
-
return "
|
|
13339
|
+
return "../dist/parquet-source-worker.js";
|
|
13253
13340
|
}
|
|
13254
13341
|
var import_meta, PARQUET_SOURCE_WORKER_URL;
|
|
13255
13342
|
var init_parquet_source_worker_url = __esm({
|