@loaders.gl/scan 5.0.0-alpha.5 → 5.0.0-alpha.7
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 +189 -62
- package/dist/delta.cjs.map +3 -3
- package/dist/dist.min.js +34 -12
- package/dist/hudi.cjs +189 -62
- package/dist/hudi.cjs.map +3 -3
- package/dist/iceberg.cjs +189 -62
- package/dist/iceberg.cjs.map +3 -3
- package/dist/index.cjs +29 -12
- package/dist/index.cjs.map +1 -1
- package/package.json +8 -8
package/dist/iceberg.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 = () => {
|
|
@@ -565,6 +593,7 @@ var init_worker_pool = __esm({
|
|
|
565
593
|
props = {};
|
|
566
594
|
jobQueue = [];
|
|
567
595
|
idleQueue = [];
|
|
596
|
+
activeJobs = /* @__PURE__ */ new Set();
|
|
568
597
|
count = 0;
|
|
569
598
|
isDestroyed = false;
|
|
570
599
|
/** Checks if workers are supported on this platform */
|
|
@@ -578,13 +607,19 @@ var init_worker_pool = __esm({
|
|
|
578
607
|
constructor(props) {
|
|
579
608
|
this.source = props.source;
|
|
580
609
|
this.url = props.url;
|
|
610
|
+
this.getUrl = props.getUrl;
|
|
611
|
+
this.loadWorker = props.loadWorker;
|
|
581
612
|
this.setProps(props);
|
|
582
613
|
}
|
|
583
614
|
/**
|
|
584
|
-
* Terminates all workers in the pool
|
|
615
|
+
* Terminates all workers in the pool and aborts active jobs.
|
|
616
|
+
* @param reason Optional error delivered to active jobs.
|
|
585
617
|
* @note Can free up significant memory
|
|
586
618
|
*/
|
|
587
|
-
destroy() {
|
|
619
|
+
destroy(reason = new Error("Worker pool was destroyed")) {
|
|
620
|
+
this.activeJobs.forEach((job) => job.abort(reason));
|
|
621
|
+
const queuedJobs = this.jobQueue.splice(0);
|
|
622
|
+
queuedJobs.forEach((queuedJob) => queuedJob.onReject(reason));
|
|
588
623
|
this.idleQueue.forEach((worker) => worker.destroy());
|
|
589
624
|
this.isDestroyed = true;
|
|
590
625
|
}
|
|
@@ -607,8 +642,11 @@ var init_worker_pool = __esm({
|
|
|
607
642
|
}
|
|
608
643
|
}
|
|
609
644
|
async startJob(name, onMessage2 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
|
|
610
|
-
|
|
611
|
-
|
|
645
|
+
if (this.isDestroyed) {
|
|
646
|
+
return Promise.reject(new Error("Worker pool was destroyed"));
|
|
647
|
+
}
|
|
648
|
+
const startPromise = new Promise((onStart, onReject) => {
|
|
649
|
+
this.jobQueue.push({ name, onMessage: onMessage2, onError, onStart, onReject });
|
|
612
650
|
return this;
|
|
613
651
|
});
|
|
614
652
|
this._startQueuedJob();
|
|
@@ -636,6 +674,7 @@ var init_worker_pool = __esm({
|
|
|
636
674
|
backlog: this.jobQueue.length
|
|
637
675
|
});
|
|
638
676
|
const job = new WorkerJob(queuedJob.name, workerThread);
|
|
677
|
+
this.activeJobs.add(job);
|
|
639
678
|
workerThread.ref();
|
|
640
679
|
workerThread.onMessage = (data) => queuedJob.onMessage(job, data.type, data.payload);
|
|
641
680
|
workerThread.onError = (error) => queuedJob.onError(job, error);
|
|
@@ -644,6 +683,7 @@ var init_worker_pool = __esm({
|
|
|
644
683
|
await job.result;
|
|
645
684
|
} catch {
|
|
646
685
|
} finally {
|
|
686
|
+
this.activeJobs.delete(job);
|
|
647
687
|
this.returnWorkerToQueue(workerThread);
|
|
648
688
|
}
|
|
649
689
|
}
|
|
@@ -687,7 +727,13 @@ var init_worker_pool = __esm({
|
|
|
687
727
|
if (this.count < this._getMaxConcurrency()) {
|
|
688
728
|
this.count++;
|
|
689
729
|
const name = `${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;
|
|
690
|
-
return new WorkerThread({
|
|
730
|
+
return new WorkerThread({
|
|
731
|
+
name,
|
|
732
|
+
source: this.source,
|
|
733
|
+
url: this.url,
|
|
734
|
+
getUrl: this.getUrl,
|
|
735
|
+
loadWorker: this.loadWorker
|
|
736
|
+
});
|
|
691
737
|
}
|
|
692
738
|
return null;
|
|
693
739
|
}
|
|
@@ -699,7 +745,22 @@ var init_worker_pool = __esm({
|
|
|
699
745
|
});
|
|
700
746
|
|
|
701
747
|
// ../worker-utils/src/lib/worker-farm/worker-farm.ts
|
|
702
|
-
|
|
748
|
+
function getWorkerPoolKey(options) {
|
|
749
|
+
const { name, source, url, urlKey, loadWorker } = options;
|
|
750
|
+
const sourceKey = source ? `source:${source}` : "";
|
|
751
|
+
const urlKeyPart = url || urlKey ? `url:${url || urlKey}` : "";
|
|
752
|
+
const loadWorkerKey = loadWorker ? `loadWorker:${getLoadWorkerId(loadWorker)}` : "";
|
|
753
|
+
return [name, sourceKey, urlKeyPart, loadWorkerKey].filter(Boolean).join("|");
|
|
754
|
+
}
|
|
755
|
+
function getLoadWorkerId(loadWorker) {
|
|
756
|
+
let loadWorkerId = loadWorkerIds.get(loadWorker);
|
|
757
|
+
if (!loadWorkerId) {
|
|
758
|
+
loadWorkerId = nextLoadWorkerId++;
|
|
759
|
+
loadWorkerIds.set(loadWorker, loadWorkerId);
|
|
760
|
+
}
|
|
761
|
+
return loadWorkerId;
|
|
762
|
+
}
|
|
763
|
+
var DEFAULT_PROPS, loadWorkerIds, nextLoadWorkerId, WorkerFarm;
|
|
703
764
|
var init_worker_farm = __esm({
|
|
704
765
|
"../worker-utils/src/lib/worker-farm/worker-farm.ts"() {
|
|
705
766
|
"use strict";
|
|
@@ -712,6 +773,8 @@ var init_worker_farm = __esm({
|
|
|
712
773
|
onDebug: () => {
|
|
713
774
|
}
|
|
714
775
|
};
|
|
776
|
+
loadWorkerIds = /* @__PURE__ */ new WeakMap();
|
|
777
|
+
nextLoadWorkerId = 1;
|
|
715
778
|
WorkerFarm = class _WorkerFarm {
|
|
716
779
|
props;
|
|
717
780
|
workerPools = /* @__PURE__ */ new Map();
|
|
@@ -734,12 +797,13 @@ var init_worker_farm = __esm({
|
|
|
734
797
|
this.workerPools = /* @__PURE__ */ new Map();
|
|
735
798
|
}
|
|
736
799
|
/**
|
|
737
|
-
* Terminate all workers in the farm
|
|
800
|
+
* Terminate all workers in the farm and abort active jobs.
|
|
801
|
+
* @param reason Optional error delivered to active jobs.
|
|
738
802
|
* @note Can free up significant memory
|
|
739
803
|
*/
|
|
740
|
-
destroy() {
|
|
804
|
+
destroy(reason) {
|
|
741
805
|
for (const workerPool of this.workerPools.values()) {
|
|
742
|
-
workerPool.destroy();
|
|
806
|
+
workerPool.destroy(reason);
|
|
743
807
|
}
|
|
744
808
|
this.workerPools = /* @__PURE__ */ new Map();
|
|
745
809
|
}
|
|
@@ -755,24 +819,28 @@ var init_worker_farm = __esm({
|
|
|
755
819
|
}
|
|
756
820
|
/**
|
|
757
821
|
* Returns a worker pool for the specified worker
|
|
758
|
-
* @param options
|
|
759
|
-
* @param options.name
|
|
760
|
-
* @param options.url
|
|
761
|
-
* @param options.source
|
|
822
|
+
* @param options Worker target used to identify and initialize the pool.
|
|
823
|
+
* @param options.name Worker name used as the base pool identity.
|
|
824
|
+
* @param options.url Worker script URL.
|
|
825
|
+
* @param options.source Inline worker source.
|
|
826
|
+
* @param options.loadWorker Built-in browser worker factory.
|
|
762
827
|
* @example
|
|
763
828
|
* const job = WorkerFarm.getWorkerFarm().getWorkerPool({name, url}).startJob(...);
|
|
764
829
|
*/
|
|
765
830
|
getWorkerPool(options) {
|
|
766
|
-
const { name, source, url } = options;
|
|
767
|
-
|
|
831
|
+
const { name, source, url, getUrl, loadWorker } = options;
|
|
832
|
+
const workerPoolKey = getWorkerPoolKey(options);
|
|
833
|
+
let workerPool = this.workerPools.get(workerPoolKey);
|
|
768
834
|
if (!workerPool) {
|
|
769
835
|
workerPool = new WorkerPool({
|
|
770
836
|
name,
|
|
771
837
|
source,
|
|
772
|
-
url
|
|
838
|
+
url,
|
|
839
|
+
getUrl,
|
|
840
|
+
loadWorker
|
|
773
841
|
});
|
|
774
842
|
workerPool.setProps(this._getWorkerPoolProps());
|
|
775
|
-
this.workerPools.set(
|
|
843
|
+
this.workerPools.set(workerPoolKey, workerPool);
|
|
776
844
|
}
|
|
777
845
|
return workerPool;
|
|
778
846
|
}
|
|
@@ -793,35 +861,42 @@ function getWorkerName(worker) {
|
|
|
793
861
|
const warning = worker.version !== VERSION2 ? ` (worker-utils@${VERSION2})` : "";
|
|
794
862
|
return `${worker.name}@${worker.version}${warning}`;
|
|
795
863
|
}
|
|
796
|
-
function
|
|
864
|
+
function getCustomWorkerURL(worker, options = {}) {
|
|
797
865
|
var _a;
|
|
798
866
|
const workerOptions = options[worker.id] || {};
|
|
799
|
-
const workerFile = isBrowser2 ? `${worker.id}-worker.js` : worker.workerNode || `${worker.id}-worker-node.js`;
|
|
867
|
+
const workerFile = isBrowser2 ? worker.workerFile || `${worker.id}-worker.js` : worker.workerNode || `${worker.id}-worker-node.js`;
|
|
800
868
|
let url = workerOptions.workerUrl;
|
|
801
|
-
if (!url && typeof worker.worker === "string") {
|
|
802
|
-
url = worker.worker;
|
|
803
|
-
}
|
|
804
869
|
if (!url && worker.id === "compression") {
|
|
805
870
|
url = options.workerUrl;
|
|
806
871
|
}
|
|
807
872
|
const workerType = options._workerType || ((_a = options == null ? void 0 : options.core) == null ? void 0 : _a._workerType);
|
|
808
|
-
if (workerType === "test") {
|
|
873
|
+
if (!url && workerType === "test") {
|
|
809
874
|
if (isBrowser2) {
|
|
810
875
|
url = `modules/${worker.module}/dist/${workerFile}`;
|
|
811
876
|
} else {
|
|
812
877
|
url = `modules/${worker.module}/src/workers/${worker.id}-worker-node.ts`;
|
|
813
878
|
}
|
|
814
879
|
}
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
880
|
+
return url || null;
|
|
881
|
+
}
|
|
882
|
+
function getWorkerURL(worker, options = {}) {
|
|
883
|
+
const customWorkerUrl = getCustomWorkerURL(worker, options);
|
|
884
|
+
const descriptorWorkerUrl = typeof worker.worker === "string" ? worker.worker : null;
|
|
885
|
+
const url = customWorkerUrl || descriptorWorkerUrl || getDefaultWorkerURL(worker, true);
|
|
886
|
+
assert(url);
|
|
887
|
+
return url;
|
|
888
|
+
}
|
|
889
|
+
function getDefaultWorkerURL(worker, warn = false) {
|
|
890
|
+
const workerFile = isBrowser2 ? worker.workerFile || `${worker.id}-worker.js` : worker.workerNode || `${worker.id}-worker-node.js`;
|
|
891
|
+
let version2 = worker.version;
|
|
892
|
+
if (version2 === "latest") {
|
|
893
|
+
version2 = NPM_TAG;
|
|
894
|
+
}
|
|
895
|
+
const versionTag = version2 ? `@${version2}` : "";
|
|
896
|
+
const url = `https://unpkg.com/@loaders.gl/${worker.module}${versionTag}/dist/${workerFile}`;
|
|
897
|
+
if (warn) {
|
|
822
898
|
warnIfUsingNpmTagFallback(worker, url);
|
|
823
899
|
}
|
|
824
|
-
assert(url);
|
|
825
900
|
return url;
|
|
826
901
|
}
|
|
827
902
|
function warnIfUsingNpmTagFallback(worker, url) {
|
|
@@ -855,19 +930,16 @@ function canProcessOnWorker(worker, options) {
|
|
|
855
930
|
return false;
|
|
856
931
|
}
|
|
857
932
|
const workerOptions = options == null ? void 0 : options[worker.id];
|
|
858
|
-
return Boolean(
|
|
933
|
+
return Boolean(
|
|
934
|
+
(worker.worker || worker.loadWorker || (workerOptions == null ? void 0 : workerOptions.workerUrl)) && (options == null ? void 0 : options.worker)
|
|
935
|
+
);
|
|
859
936
|
}
|
|
860
937
|
async function processOnWorker(worker, data, options = {}, context = {}, jobContext = {}) {
|
|
861
938
|
var _a, _b, _c;
|
|
862
939
|
throwIfAborted(options.signal);
|
|
863
940
|
const name = getWorkerName(worker);
|
|
864
941
|
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);
|
|
942
|
+
const workerPool = workerFarm.getWorkerPool(getWorkerPoolTarget(worker, options, name));
|
|
871
943
|
const jobName = options.jobName || worker.name;
|
|
872
944
|
const job = await workerPool.startJob(
|
|
873
945
|
jobName,
|
|
@@ -910,6 +982,24 @@ function createAbortError2(message) {
|
|
|
910
982
|
error.name = "AbortError";
|
|
911
983
|
return error;
|
|
912
984
|
}
|
|
985
|
+
function getWorkerPoolTarget(worker, options, name) {
|
|
986
|
+
if (options.source) {
|
|
987
|
+
return { name, source: options.source };
|
|
988
|
+
}
|
|
989
|
+
const customWorkerUrl = getCustomWorkerURL(worker, options);
|
|
990
|
+
if (customWorkerUrl) {
|
|
991
|
+
return { name, url: customWorkerUrl };
|
|
992
|
+
}
|
|
993
|
+
if (isBrowser2 && worker.loadWorker) {
|
|
994
|
+
return {
|
|
995
|
+
name,
|
|
996
|
+
loadWorker: worker.loadWorker,
|
|
997
|
+
getUrl: () => getWorkerURL(worker, options),
|
|
998
|
+
urlKey: getDefaultWorkerURL(worker)
|
|
999
|
+
};
|
|
1000
|
+
}
|
|
1001
|
+
return { name, url: getWorkerURL(worker, options) };
|
|
1002
|
+
}
|
|
913
1003
|
async function onMessage(context, job, type, payload) {
|
|
914
1004
|
switch (type) {
|
|
915
1005
|
case "done":
|
|
@@ -942,6 +1032,7 @@ var init_process_on_worker = __esm({
|
|
|
942
1032
|
init_worker_farm();
|
|
943
1033
|
init_get_worker_url();
|
|
944
1034
|
init_get_transfer_list();
|
|
1035
|
+
init_globals2();
|
|
945
1036
|
}
|
|
946
1037
|
});
|
|
947
1038
|
|
|
@@ -956,13 +1047,13 @@ var init_src = __esm({
|
|
|
956
1047
|
|
|
957
1048
|
// ../loader-utils/src/lib/worker-loader-utils/parse-with-worker.ts
|
|
958
1049
|
function canParseWithWorker(loader, options) {
|
|
959
|
-
var _a
|
|
1050
|
+
var _a;
|
|
960
1051
|
const workerOptions = getWorkerOptions(options);
|
|
961
1052
|
const nodeWorkers = workerOptions._nodeWorkers;
|
|
962
1053
|
if (!isBrowser2 && !nodeWorkers) {
|
|
963
1054
|
return false;
|
|
964
1055
|
}
|
|
965
|
-
if (loader.id === "
|
|
1056
|
+
if (loader.id === "las" && (((_a = options == null ? void 0 : options.las) == null ? void 0 : _a.shape) ?? "arrow-table") === "arrow-table") {
|
|
966
1057
|
return false;
|
|
967
1058
|
}
|
|
968
1059
|
if (loader.id === "csv" && !shouldParseCSVWithWorker(options)) {
|
|
@@ -975,7 +1066,7 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
975
1066
|
const result = await processOnWorker(
|
|
976
1067
|
loader,
|
|
977
1068
|
data,
|
|
978
|
-
{ ...getWorkerOptions(options), signal: workerSignal },
|
|
1069
|
+
{ ...getWorkerOptions(options, loader), signal: workerSignal },
|
|
979
1070
|
{
|
|
980
1071
|
process: async (input, processOptions, _workerContext, parseContext) => {
|
|
981
1072
|
if (!parseOnMainThread) {
|
|
@@ -1008,12 +1099,19 @@ function callParseOnMainThread(parseOnMainThread, input, options, context) {
|
|
|
1008
1099
|
}
|
|
1009
1100
|
return parseOnMainThread(input, void 0, options, context);
|
|
1010
1101
|
}
|
|
1011
|
-
function getWorkerOptions(options = {}) {
|
|
1102
|
+
function getWorkerOptions(options = {}, loader) {
|
|
1012
1103
|
const serializedOptions = JSON.parse(JSON.stringify(options));
|
|
1013
|
-
|
|
1104
|
+
const workerOptions = {
|
|
1014
1105
|
...serializedOptions.core,
|
|
1015
1106
|
...serializedOptions
|
|
1016
1107
|
};
|
|
1108
|
+
if (workerOptions.worker === "auto") {
|
|
1109
|
+
workerOptions.worker = true;
|
|
1110
|
+
}
|
|
1111
|
+
if (loader) {
|
|
1112
|
+
workerOptions._workerLoaderId = loader.id;
|
|
1113
|
+
}
|
|
1114
|
+
return workerOptions;
|
|
1017
1115
|
}
|
|
1018
1116
|
function getSerializableLoaderContext(context) {
|
|
1019
1117
|
if (!context) {
|
|
@@ -6593,6 +6691,9 @@ function getDataTypeFromArray(array) {
|
|
|
6593
6691
|
return { type: "null", nullable: true };
|
|
6594
6692
|
}
|
|
6595
6693
|
function getDataTypeFromTypedArray(array) {
|
|
6694
|
+
if (typeof Float16Array !== "undefined" && array instanceof Float16Array) {
|
|
6695
|
+
return "float16";
|
|
6696
|
+
}
|
|
6596
6697
|
switch (array.constructor) {
|
|
6597
6698
|
case Int8Array:
|
|
6598
6699
|
return "int8";
|
|
@@ -6634,15 +6735,19 @@ function getArrayTypeFromDataType(type, nullable) {
|
|
|
6634
6735
|
return Float32Array;
|
|
6635
6736
|
case "float64":
|
|
6636
6737
|
return Float64Array;
|
|
6738
|
+
case "float16":
|
|
6739
|
+
return (0, import_types.getFloat16ArrayConstructor)();
|
|
6637
6740
|
default:
|
|
6638
6741
|
break;
|
|
6639
6742
|
}
|
|
6640
6743
|
}
|
|
6641
6744
|
return Array;
|
|
6642
6745
|
}
|
|
6746
|
+
var import_types;
|
|
6643
6747
|
var init_data_type = __esm({
|
|
6644
6748
|
"../schema-utils/src/lib/schema/data-type.ts"() {
|
|
6645
6749
|
"use strict";
|
|
6750
|
+
import_types = require("@math.gl/types");
|
|
6646
6751
|
}
|
|
6647
6752
|
});
|
|
6648
6753
|
|
|
@@ -6691,6 +6796,13 @@ function serializeArrowType(arrowType) {
|
|
|
6691
6796
|
if (isArrowViewType(arrowType, "Utf8View")) {
|
|
6692
6797
|
return "utf8-view";
|
|
6693
6798
|
}
|
|
6799
|
+
if (isOptionalArrowType(arrowType, "LargeList")) {
|
|
6800
|
+
const largeListType = arrowType;
|
|
6801
|
+
return {
|
|
6802
|
+
type: "large-list",
|
|
6803
|
+
children: [serializeArrowField(largeListType.valueField)]
|
|
6804
|
+
};
|
|
6805
|
+
}
|
|
6694
6806
|
switch (arrowType.constructor) {
|
|
6695
6807
|
case arrow2.Null:
|
|
6696
6808
|
return "null";
|
|
@@ -6829,12 +6941,6 @@ function serializeArrowType(arrowType) {
|
|
|
6829
6941
|
type: "list",
|
|
6830
6942
|
children: [serializeArrowField(listField)]
|
|
6831
6943
|
};
|
|
6832
|
-
case arrow2.LargeList:
|
|
6833
|
-
const largeListType = arrowType;
|
|
6834
|
-
return {
|
|
6835
|
-
type: "large-list",
|
|
6836
|
-
children: [serializeArrowField(largeListType.valueField)]
|
|
6837
|
-
};
|
|
6838
6944
|
case arrow2.FixedSizeList:
|
|
6839
6945
|
const fixedSizeList = arrowType;
|
|
6840
6946
|
return {
|
|
@@ -6887,7 +6993,13 @@ function deserializeArrowType(dataType, options) {
|
|
|
6887
6993
|
}
|
|
6888
6994
|
case "large-list": {
|
|
6889
6995
|
const field = deserializeArrowField(dataType.children[0], options);
|
|
6890
|
-
|
|
6996
|
+
const LargeList = getOptionalArrowConstructor("LargeList");
|
|
6997
|
+
if (!LargeList) {
|
|
6998
|
+
throw new Error(
|
|
6999
|
+
"LargeList requires an Apache Arrow runtime that exports the LargeList constructor"
|
|
7000
|
+
);
|
|
7001
|
+
}
|
|
7002
|
+
return new LargeList(field);
|
|
6891
7003
|
}
|
|
6892
7004
|
case "fixed-size-list": {
|
|
6893
7005
|
const child = deserializeArrowField(dataType.children[0], options);
|
|
@@ -6983,11 +7095,11 @@ function deserializeArrowType(dataType, options) {
|
|
|
6983
7095
|
throw new Error("array type not supported");
|
|
6984
7096
|
}
|
|
6985
7097
|
}
|
|
6986
|
-
function
|
|
6987
|
-
return arrow2;
|
|
7098
|
+
function getOptionalArrowConstructor(typeName) {
|
|
7099
|
+
return arrow2[typeName];
|
|
6988
7100
|
}
|
|
6989
7101
|
function isArrowViewType(arrowType, viewTypeName) {
|
|
6990
|
-
const constructor =
|
|
7102
|
+
const constructor = getOptionalArrowConstructor(viewTypeName);
|
|
6991
7103
|
if (constructor && arrowType instanceof constructor) {
|
|
6992
7104
|
return true;
|
|
6993
7105
|
}
|
|
@@ -6995,12 +7107,16 @@ function isArrowViewType(arrowType, viewTypeName) {
|
|
|
6995
7107
|
const guard = viewTypeName === "BinaryView" ? guards.isBinaryView : guards.isUtf8View;
|
|
6996
7108
|
return Boolean(guard == null ? void 0 : guard(arrowType));
|
|
6997
7109
|
}
|
|
7110
|
+
function isOptionalArrowType(arrowType, typeName) {
|
|
7111
|
+
const constructor = getOptionalArrowConstructor(typeName);
|
|
7112
|
+
return Boolean(constructor && arrowType instanceof constructor);
|
|
7113
|
+
}
|
|
6998
7114
|
function makeVariableWidthArrowType(viewTypeName, fallbackType, options) {
|
|
6999
7115
|
const viewTypeMode = (options == null ? void 0 : options.viewTypes) || "never";
|
|
7000
7116
|
if (viewTypeMode === "never") {
|
|
7001
7117
|
return fallbackType;
|
|
7002
7118
|
}
|
|
7003
|
-
const constructor =
|
|
7119
|
+
const constructor = getOptionalArrowConstructor(viewTypeName);
|
|
7004
7120
|
if (constructor) {
|
|
7005
7121
|
return new constructor();
|
|
7006
7122
|
}
|
|
@@ -7012,7 +7128,7 @@ function makeVariableWidthArrowType(viewTypeName, fallbackType, options) {
|
|
|
7012
7128
|
return fallbackType;
|
|
7013
7129
|
}
|
|
7014
7130
|
function makeRequiredArrowViewType(viewTypeName) {
|
|
7015
|
-
const constructor =
|
|
7131
|
+
const constructor = getOptionalArrowConstructor(viewTypeName);
|
|
7016
7132
|
if (!constructor) {
|
|
7017
7133
|
throw new Error(
|
|
7018
7134
|
`${viewTypeName} requires apache-arrow 21.2.0 or later; the installed runtime does not support it`
|
|
@@ -16509,7 +16625,7 @@ var init_parquet_loader_options = __esm({
|
|
|
16509
16625
|
PARQUET_LOADER_DEFAULT_OPTIONS = {
|
|
16510
16626
|
columns: void 0,
|
|
16511
16627
|
preserveBinary: false,
|
|
16512
|
-
shape: "
|
|
16628
|
+
shape: "arrow-table"
|
|
16513
16629
|
};
|
|
16514
16630
|
}
|
|
16515
16631
|
});
|
|
@@ -16538,6 +16654,15 @@ var init_parquet_loader_base = __esm({
|
|
|
16538
16654
|
}
|
|
16539
16655
|
});
|
|
16540
16656
|
|
|
16657
|
+
// ../parquet/src/parquet-source-worker-factory.ts
|
|
16658
|
+
var PARQUET_SOURCE_WORKER_LOAD_WORKER;
|
|
16659
|
+
var init_parquet_source_worker_factory = __esm({
|
|
16660
|
+
"../parquet/src/parquet-source-worker-factory.ts"() {
|
|
16661
|
+
"use strict";
|
|
16662
|
+
PARQUET_SOURCE_WORKER_LOAD_WORKER = void 0;
|
|
16663
|
+
}
|
|
16664
|
+
});
|
|
16665
|
+
|
|
16541
16666
|
// ../parquet/src/parquet-source-worker-url.ts
|
|
16542
16667
|
function resolveParquetSourceWorkerUrl() {
|
|
16543
16668
|
if (!import_meta.url) {
|
|
@@ -16550,7 +16675,7 @@ function resolveParquetSourceWorkerUrl() {
|
|
|
16550
16675
|
}
|
|
16551
16676
|
}
|
|
16552
16677
|
function getParquetSourceWorkerFile() {
|
|
16553
|
-
return "
|
|
16678
|
+
return "../dist/parquet-source-worker.js";
|
|
16554
16679
|
}
|
|
16555
16680
|
var import_meta, PARQUET_SOURCE_WORKER_URL;
|
|
16556
16681
|
var init_parquet_source_worker_url = __esm({
|
|
@@ -16578,12 +16703,14 @@ var init_parquet_source_worker_client = __esm({
|
|
|
16578
16703
|
"use strict";
|
|
16579
16704
|
init_src2();
|
|
16580
16705
|
init_parquet_loader_base();
|
|
16706
|
+
init_parquet_source_worker_factory();
|
|
16581
16707
|
init_parquet_source_worker_url();
|
|
16582
16708
|
PARQUET_SOURCE_WORKER = {
|
|
16583
16709
|
...PARQUET_LOADER_BASE,
|
|
16584
16710
|
id: "parquet-source",
|
|
16585
16711
|
name: "ParquetSource",
|
|
16586
|
-
worker: PARQUET_SOURCE_WORKER_URL
|
|
16712
|
+
worker: PARQUET_SOURCE_WORKER_URL,
|
|
16713
|
+
loadWorker: PARQUET_SOURCE_WORKER_LOAD_WORKER
|
|
16587
16714
|
};
|
|
16588
16715
|
}
|
|
16589
16716
|
});
|