@loaders.gl/core 5.0.0-alpha.13 → 5.0.0-alpha.14
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/dist.dev.js +190 -63
- package/dist/dist.min.js +3 -3
- package/dist/index.cjs +205 -72
- package/dist/index.cjs.map +2 -2
- package/dist/lib/api/parse-file.js +2 -0
- package/dist/lib/api/parse-file.js.map +1 -1
- package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
- package/dist/lib/api/parse-in-batches.js +5 -4
- package/dist/lib/api/parse-in-batches.js.map +1 -1
- package/dist/lib/api/parse.js +4 -2
- package/dist/lib/api/parse.js.map +1 -1
- package/dist/lib/init.js +1 -1
- package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
- package/dist/lib/loader-utils/get-fetch-function.js +3 -1
- package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
- package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
- package/dist/lib/loader-utils/loader-context.js +4 -0
- package/dist/lib/loader-utils/loader-context.js.map +1 -1
- package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
- package/dist/lib/loader-utils/option-defaults.js +1 -0
- package/dist/lib/loader-utils/option-defaults.js.map +1 -1
- package/dist/lib/loader-utils/option-utils.js +1 -1
- package/dist/lib/loader-utils/option-utils.js.map +1 -1
- package/dist/loader-utils/index.cjs +231 -92
- package/dist/loader-utils/index.cjs.map +2 -2
- package/dist/loader-utils/index.d.ts +1 -1
- package/dist/loader-utils/index.d.ts.map +1 -1
- package/dist/loader-utils/index.js +1 -1
- package/dist/loader-utils/index.js.map +1 -1
- package/dist/loader-utils/json-loader.d.ts +1 -1
- package/dist/loader-utils/json-loader.js +2 -2
- package/dist/loader-utils/lib/log-utils/log.js +1 -1
- package/dist/loader-utils/lib/request-utils/request-credentials.d.ts +3 -1
- package/dist/loader-utils/lib/request-utils/request-credentials.d.ts.map +1 -1
- package/dist/loader-utils/lib/request-utils/request-credentials.js +10 -16
- package/dist/loader-utils/lib/request-utils/request-credentials.js.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts +3 -0
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js +13 -12
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts +6 -0
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js +38 -7
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js.map +1 -1
- package/dist/loader-utils/loader-types.d.ts +12 -4
- package/dist/loader-utils/loader-types.d.ts.map +1 -1
- package/dist/loader-utils/loader-types.js.map +1 -1
- package/dist/null-loader.js +1 -1
- package/dist/null-worker-node.js +60 -15
- package/dist/null-worker.js +59 -15
- package/dist/schema-utils/lib/table/tables/convert-table.d.ts +1 -1
- package/dist/schema-utils/lib/table/tables/convert-table.js +1 -1
- package/dist/worker-utils/index.cjs +170 -49
- package/dist/worker-utils/index.cjs.map +2 -2
- package/dist/worker-utils/index.d.ts +2 -2
- package/dist/worker-utils/index.d.ts.map +1 -1
- package/dist/worker-utils/index.js +1 -1
- package/dist/worker-utils/index.js.map +1 -1
- package/dist/worker-utils/lib/env-utils/version.js +2 -2
- package/dist/worker-utils/lib/worker-api/create-worker.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-api/create-worker.js +40 -2
- package/dist/worker-utils/lib/worker-api/create-worker.js.map +1 -1
- package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts +2 -0
- package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-api/get-worker-url.js +7 -11
- package/dist/worker-utils/lib/worker-api/get-worker-url.js.map +1 -1
- package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts +6 -0
- package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-api/process-on-worker.js +64 -27
- package/dist/worker-utils/lib/worker-api/process-on-worker.js.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-job.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-job.js +3 -2
- package/dist/worker-utils/lib/worker-farm/worker-job.js.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-pool.js +65 -12
- package/dist/worker-utils/lib/worker-farm/worker-pool.js.map +1 -1
- package/dist/worker-utils/null-worker-node.js +36 -2
- package/dist/worker-utils/null-worker-node.js.map +2 -2
- package/dist/worker-utils/null-worker.js +36 -2
- package/dist/worker-utils/null-worker.js.map +2 -2
- package/dist/worker-utils/types.d.ts +25 -4
- package/dist/worker-utils/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/lib/api/parse-file.ts +2 -0
- package/src/lib/api/parse-in-batches.ts +5 -5
- package/src/lib/api/parse.ts +4 -2
- package/src/lib/loader-utils/get-fetch-function.ts +4 -2
- package/src/lib/loader-utils/loader-context.ts +4 -0
- package/src/lib/loader-utils/option-defaults.ts +1 -0
- package/src/lib/loader-utils/option-utils.ts +1 -1
- package/src/loader-utils/index.ts +1 -0
- package/src/loader-utils/json-loader.ts +1 -1
- package/src/loader-utils/lib/request-utils/request-credentials.ts +10 -12
- package/src/loader-utils/lib/worker-loader-utils/create-loader-worker.ts +38 -15
- package/src/loader-utils/lib/worker-loader-utils/parse-with-worker.ts +52 -7
- package/src/loader-utils/loader-types.ts +16 -4
- package/src/schema-utils/lib/table/tables/convert-table.ts +1 -1
- package/src/worker-utils/index.ts +3 -1
- package/src/worker-utils/lib/worker-api/create-worker.ts +41 -2
- package/src/worker-utils/lib/worker-api/get-worker-url.ts +13 -14
- package/src/worker-utils/lib/worker-api/process-on-worker.ts +128 -73
- package/src/worker-utils/lib/worker-farm/worker-job.ts +4 -2
- package/src/worker-utils/lib/worker-farm/worker-pool.ts +65 -12
- package/src/worker-utils/types.ts +26 -3
|
@@ -45,6 +45,7 @@ __export(index_exports, {
|
|
|
45
45
|
bindColumnarPredicateParameters: () => bindColumnarPredicateParameters,
|
|
46
46
|
canEncodeWithWorker: () => canEncodeWithWorker,
|
|
47
47
|
canParseWithWorker: () => canParseWithWorker,
|
|
48
|
+
canParseWithWorkerInBatches: () => canParseWithWorkerInBatches,
|
|
48
49
|
canReuseRasterCoverage: () => canReuseRasterCoverage,
|
|
49
50
|
checkJSModule: () => checkJSModule,
|
|
50
51
|
compareArrayBuffers: () => compareArrayBuffers,
|
|
@@ -242,7 +243,7 @@ var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
|
242
243
|
|
|
243
244
|
// dist/loader-utils/lib/log-utils/log.js
|
|
244
245
|
var import_log = require("probe.gl/log");
|
|
245
|
-
var VERSION = true ? "5.0.0-alpha.
|
|
246
|
+
var VERSION = true ? "5.0.0-alpha.14" : "latest";
|
|
246
247
|
var version = VERSION[0] >= "0" && VERSION[0] <= "9" ? `v${VERSION}` : "";
|
|
247
248
|
function createLog() {
|
|
248
249
|
const log2 = new import_log.Log({ id: "loaders.gl" });
|
|
@@ -424,6 +425,7 @@ var WorkerJob = class {
|
|
|
424
425
|
* @param data any data structure, ideally consisting mostly of transferrable objects
|
|
425
426
|
*/
|
|
426
427
|
postMessage(type, payload) {
|
|
428
|
+
if (!this.isRunning) return;
|
|
427
429
|
this.workerThread.postMessage({
|
|
428
430
|
source: "loaders.gl",
|
|
429
431
|
// Lets worker ignore unrelated messages
|
|
@@ -459,9 +461,10 @@ var WorkerJob = class {
|
|
|
459
461
|
if (!this.isRunning) {
|
|
460
462
|
return;
|
|
461
463
|
}
|
|
462
|
-
const error = reason ?? createAbortError(`Worker job "${this.name}" was aborted`);
|
|
463
464
|
this.workerThread.destroy();
|
|
464
|
-
this.error(
|
|
465
|
+
this.error(
|
|
466
|
+
arguments.length ? reason : createAbortError(`Worker job "${this.name}" was aborted`)
|
|
467
|
+
);
|
|
465
468
|
}
|
|
466
469
|
};
|
|
467
470
|
function createAbortError(message) {
|
|
@@ -767,9 +770,13 @@ var WorkerPool = class {
|
|
|
767
770
|
* @note Can free up significant memory
|
|
768
771
|
*/
|
|
769
772
|
destroy(reason = new Error("Worker pool was destroyed")) {
|
|
773
|
+
this.isDestroyed = true;
|
|
770
774
|
this.activeJobs.forEach((job) => job.abort(reason));
|
|
771
775
|
const queuedJobs = this.jobQueue.splice(0);
|
|
772
|
-
queuedJobs.forEach((queuedJob) =>
|
|
776
|
+
queuedJobs.forEach((queuedJob) => {
|
|
777
|
+
queuedJob.removeAbortListener();
|
|
778
|
+
queuedJob.onReject(reason);
|
|
779
|
+
});
|
|
773
780
|
this.idleQueue.forEach((worker) => worker.destroy());
|
|
774
781
|
this.isDestroyed = true;
|
|
775
782
|
}
|
|
@@ -791,12 +798,33 @@ var WorkerPool = class {
|
|
|
791
798
|
this.onDebug = props.onDebug;
|
|
792
799
|
}
|
|
793
800
|
}
|
|
794
|
-
async startJob(name, onMessage2 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
|
|
801
|
+
async startJob(name, onMessage2 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error), signal) {
|
|
802
|
+
if (signal == null ? void 0 : signal.aborted) {
|
|
803
|
+
throw signal.reason;
|
|
804
|
+
}
|
|
795
805
|
if (this.isDestroyed) {
|
|
796
806
|
return Promise.reject(new Error("Worker pool was destroyed"));
|
|
797
807
|
}
|
|
798
808
|
const startPromise = new Promise((onStart, onReject) => {
|
|
799
|
-
|
|
809
|
+
const abortQueuedJob = () => {
|
|
810
|
+
const index = this.jobQueue.indexOf(queuedJob);
|
|
811
|
+
if (index >= 0) {
|
|
812
|
+
this.jobQueue.splice(index, 1);
|
|
813
|
+
queuedJob.removeAbortListener();
|
|
814
|
+
onReject(signal == null ? void 0 : signal.reason);
|
|
815
|
+
}
|
|
816
|
+
};
|
|
817
|
+
const queuedJob = {
|
|
818
|
+
name,
|
|
819
|
+
onMessage: onMessage2,
|
|
820
|
+
onError,
|
|
821
|
+
onStart,
|
|
822
|
+
onReject,
|
|
823
|
+
signal,
|
|
824
|
+
removeAbortListener: () => signal == null ? void 0 : signal.removeEventListener("abort", abortQueuedJob)
|
|
825
|
+
};
|
|
826
|
+
this.jobQueue.push(queuedJob);
|
|
827
|
+
signal == null ? void 0 : signal.addEventListener("abort", abortQueuedJob, { once: true });
|
|
800
828
|
return this;
|
|
801
829
|
});
|
|
802
830
|
this._startQueuedJob();
|
|
@@ -808,10 +836,20 @@ var WorkerPool = class {
|
|
|
808
836
|
* Called when job is started and whenever a worker returns to the idleQueue
|
|
809
837
|
*/
|
|
810
838
|
async _startQueuedJob() {
|
|
839
|
+
var _a, _b, _c;
|
|
811
840
|
if (!this.jobQueue.length) {
|
|
812
841
|
return;
|
|
813
842
|
}
|
|
814
|
-
|
|
843
|
+
let workerThread;
|
|
844
|
+
try {
|
|
845
|
+
workerThread = this._getAvailableWorker();
|
|
846
|
+
} catch (error) {
|
|
847
|
+
const queuedJob2 = this.jobQueue.shift();
|
|
848
|
+
queuedJob2 == null ? void 0 : queuedJob2.removeAbortListener();
|
|
849
|
+
queuedJob2 == null ? void 0 : queuedJob2.onReject(error);
|
|
850
|
+
void this._startQueuedJob();
|
|
851
|
+
return;
|
|
852
|
+
}
|
|
815
853
|
if (!workerThread) {
|
|
816
854
|
return;
|
|
817
855
|
}
|
|
@@ -824,18 +862,30 @@ var WorkerPool = class {
|
|
|
824
862
|
backlog: this.jobQueue.length
|
|
825
863
|
});
|
|
826
864
|
const job = new WorkerJob(queuedJob.name, workerThread);
|
|
865
|
+
queuedJob.removeAbortListener();
|
|
866
|
+
const abortJob = () => {
|
|
867
|
+
var _a2;
|
|
868
|
+
return job.abort((_a2 = queuedJob.signal) == null ? void 0 : _a2.reason);
|
|
869
|
+
};
|
|
870
|
+
(_a = queuedJob.signal) == null ? void 0 : _a.addEventListener("abort", abortJob, { once: true });
|
|
871
|
+
if ((_b = queuedJob.signal) == null ? void 0 : _b.aborted) abortJob();
|
|
827
872
|
this.activeJobs.add(job);
|
|
828
873
|
workerThread.ref();
|
|
829
|
-
workerThread.onMessage = (data) =>
|
|
874
|
+
workerThread.onMessage = (data) => {
|
|
875
|
+
if (job.isRunning) queuedJob.onMessage(job, data.type, data.payload);
|
|
876
|
+
};
|
|
830
877
|
workerThread.onError = (error) => queuedJob.onError(job, error);
|
|
831
878
|
queuedJob.onStart(job);
|
|
832
879
|
try {
|
|
833
880
|
await job.result;
|
|
834
881
|
} catch {
|
|
835
882
|
} finally {
|
|
883
|
+
(_c = queuedJob.signal) == null ? void 0 : _c.removeEventListener("abort", abortJob);
|
|
836
884
|
this.activeJobs.delete(job);
|
|
837
885
|
this.returnWorkerToQueue(workerThread);
|
|
838
886
|
}
|
|
887
|
+
} else {
|
|
888
|
+
this.returnWorkerToQueue(workerThread);
|
|
839
889
|
}
|
|
840
890
|
}
|
|
841
891
|
/**
|
|
@@ -877,13 +927,18 @@ var WorkerPool = class {
|
|
|
877
927
|
if (this.count < this._getMaxConcurrency()) {
|
|
878
928
|
this.count++;
|
|
879
929
|
const name = `${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
930
|
+
try {
|
|
931
|
+
return new WorkerThread({
|
|
932
|
+
name,
|
|
933
|
+
source: this.source,
|
|
934
|
+
url: this.url,
|
|
935
|
+
getUrl: this.getUrl,
|
|
936
|
+
loadWorker: this.loadWorker
|
|
937
|
+
});
|
|
938
|
+
} catch (error) {
|
|
939
|
+
this.count--;
|
|
940
|
+
throw error;
|
|
941
|
+
}
|
|
887
942
|
}
|
|
888
943
|
return null;
|
|
889
944
|
}
|
|
@@ -1160,12 +1215,8 @@ function getWorkerName(worker) {
|
|
|
1160
1215
|
}
|
|
1161
1216
|
function getCustomWorkerURL(worker, options = {}) {
|
|
1162
1217
|
var _a, _b;
|
|
1163
|
-
const workerOptions = options[worker.id] || {};
|
|
1164
1218
|
const workerFile = isBrowser2 ? worker.workerFile || `${worker.id}-worker.js` : worker.workerNode || `${worker.id}-worker-node.js`;
|
|
1165
|
-
let url =
|
|
1166
|
-
if (!url && worker.id === "compression") {
|
|
1167
|
-
url = options.workerUrl;
|
|
1168
|
-
}
|
|
1219
|
+
let url = getConfiguredWorkerURL(worker, options);
|
|
1169
1220
|
const workerType = options._workerType || ((_a = options == null ? void 0 : options.core) == null ? void 0 : _a._workerType);
|
|
1170
1221
|
if (!url && workerType === "test") {
|
|
1171
1222
|
if (isBrowser2) {
|
|
@@ -1178,6 +1229,10 @@ function getCustomWorkerURL(worker, options = {}) {
|
|
|
1178
1229
|
}
|
|
1179
1230
|
return url || null;
|
|
1180
1231
|
}
|
|
1232
|
+
function getConfiguredWorkerURL(worker, options = {}) {
|
|
1233
|
+
const workerOptions = options[worker.id] || {};
|
|
1234
|
+
return workerOptions.workerUrl || (worker.id === "compression" ? options.workerUrl : null) || null;
|
|
1235
|
+
}
|
|
1181
1236
|
function getWorkerURL(worker, options = {}) {
|
|
1182
1237
|
const customWorkerUrl = getCustomWorkerURL(worker, options);
|
|
1183
1238
|
const descriptorWorkerUrl = typeof worker.worker === "string" ? worker.worker : null;
|
|
@@ -1222,8 +1277,15 @@ function canProcessOnWorker(worker, options) {
|
|
|
1222
1277
|
(worker.worker || worker.loadWorker || (workerOptions == null ? void 0 : workerOptions.workerUrl)) && (options == null ? void 0 : options.worker)
|
|
1223
1278
|
);
|
|
1224
1279
|
}
|
|
1280
|
+
function canProcessOnWorkerInBatches(worker, options = {}) {
|
|
1281
|
+
if (!canProcessOnWorker(worker, options)) return false;
|
|
1282
|
+
if (options.workerInBatches !== void 0) return options.workerInBatches;
|
|
1283
|
+
return Boolean(
|
|
1284
|
+
worker.workerInBatches && !options.source && !getConfiguredWorkerURL(worker, options)
|
|
1285
|
+
);
|
|
1286
|
+
}
|
|
1225
1287
|
async function processOnWorker(worker, data, options = {}, context = {}, jobContext = {}) {
|
|
1226
|
-
var _a
|
|
1288
|
+
var _a;
|
|
1227
1289
|
throwIfAborted(options.signal);
|
|
1228
1290
|
const name = getWorkerName(worker);
|
|
1229
1291
|
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
@@ -1232,15 +1294,13 @@ async function processOnWorker(worker, data, options = {}, context = {}, jobCont
|
|
|
1232
1294
|
const job = await workerPool.startJob(
|
|
1233
1295
|
jobName,
|
|
1234
1296
|
// eslint-disable-next-line
|
|
1235
|
-
onMessage.bind(null, context)
|
|
1297
|
+
onMessage.bind(null, context, options),
|
|
1298
|
+
void 0,
|
|
1299
|
+
options.signal
|
|
1236
1300
|
);
|
|
1237
|
-
const abortJob = () => job.abort(getAbortReason(options.signal));
|
|
1238
|
-
(_a = options.signal) == null ? void 0 : _a.addEventListener("abort", abortJob, { once: true });
|
|
1239
|
-
if ((_b = options.signal) == null ? void 0 : _b.aborted) {
|
|
1240
|
-
abortJob();
|
|
1241
|
-
}
|
|
1242
1301
|
try {
|
|
1243
|
-
|
|
1302
|
+
if ((_a = options.signal) == null ? void 0 : _a.aborted) job.abort(getAbortReason(options.signal));
|
|
1303
|
+
const { signal: _signal, onProgress: _onProgress, ...workerOptions } = options;
|
|
1244
1304
|
const transferableOptions = getTransferListForWriter(workerOptions);
|
|
1245
1305
|
const transferableContext = getTransferListForWriter(jobContext);
|
|
1246
1306
|
if (job.isRunning) {
|
|
@@ -1252,15 +1312,15 @@ async function processOnWorker(worker, data, options = {}, context = {}, jobCont
|
|
|
1252
1312
|
}
|
|
1253
1313
|
const result = await job.result;
|
|
1254
1314
|
return result.result;
|
|
1255
|
-
}
|
|
1256
|
-
|
|
1315
|
+
} catch (error) {
|
|
1316
|
+
job.abort(error);
|
|
1317
|
+
throw error;
|
|
1257
1318
|
}
|
|
1258
1319
|
}
|
|
1259
1320
|
function processOnWorkerInBatches(worker, input, options = {}, context = {}, jobContext = {}) {
|
|
1260
1321
|
return processOnWorkerInBatchesIterator(worker, input, options, context, jobContext);
|
|
1261
1322
|
}
|
|
1262
1323
|
async function* processOnWorkerInBatchesIterator(worker, input, options, context, jobContext) {
|
|
1263
|
-
var _a, _b, _c;
|
|
1264
1324
|
throwIfAborted(options.signal);
|
|
1265
1325
|
const name = getWorkerName(worker);
|
|
1266
1326
|
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
@@ -1269,8 +1329,15 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
1269
1329
|
const inputIterator = getAsyncIterator(input);
|
|
1270
1330
|
let outputFinished = false;
|
|
1271
1331
|
let inputFinished = false;
|
|
1332
|
+
let inputCleanupRequested = false;
|
|
1272
1333
|
let inputRequest = Promise.resolve();
|
|
1273
1334
|
const batchJobFailed = new Error("Worker batch job failed");
|
|
1335
|
+
const closeJobInput = () => {
|
|
1336
|
+
if (!inputFinished && !inputCleanupRequested) {
|
|
1337
|
+
inputCleanupRequested = true;
|
|
1338
|
+
closeInputIterator(inputIterator);
|
|
1339
|
+
}
|
|
1340
|
+
};
|
|
1274
1341
|
const finishOutput = () => {
|
|
1275
1342
|
if (!outputFinished) {
|
|
1276
1343
|
outputFinished = true;
|
|
@@ -1288,8 +1355,12 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
1288
1355
|
options.jobName || worker.name,
|
|
1289
1356
|
(activeJob, type, payload) => {
|
|
1290
1357
|
switch (type) {
|
|
1358
|
+
case "progress":
|
|
1359
|
+
reportProgress(activeJob, options, payload);
|
|
1360
|
+
break;
|
|
1291
1361
|
case "input-request":
|
|
1292
1362
|
inputRequest = inputRequest.then(async () => {
|
|
1363
|
+
if (!activeJob.isRunning) return;
|
|
1293
1364
|
const nextBatch = await inputIterator.next();
|
|
1294
1365
|
if (!activeJob.isRunning) {
|
|
1295
1366
|
return;
|
|
@@ -1316,7 +1387,7 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
1316
1387
|
break;
|
|
1317
1388
|
}
|
|
1318
1389
|
case "process":
|
|
1319
|
-
void onMessage(context, activeJob, type, payload);
|
|
1390
|
+
void onMessage(context, options, activeJob, type, payload);
|
|
1320
1391
|
break;
|
|
1321
1392
|
default: {
|
|
1322
1393
|
const error = new Error(`Unexpected worker batch message: ${type}`);
|
|
@@ -1325,16 +1396,19 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
1325
1396
|
break;
|
|
1326
1397
|
}
|
|
1327
1398
|
}
|
|
1328
|
-
}
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
}
|
|
1335
|
-
void job.result.catch(
|
|
1399
|
+
},
|
|
1400
|
+
void 0,
|
|
1401
|
+
options.signal
|
|
1402
|
+
).catch((error) => {
|
|
1403
|
+
closeJobInput();
|
|
1404
|
+
throw error;
|
|
1405
|
+
});
|
|
1406
|
+
void job.result.catch((error) => {
|
|
1407
|
+
failOutput(error);
|
|
1408
|
+
closeJobInput();
|
|
1409
|
+
});
|
|
1336
1410
|
try {
|
|
1337
|
-
const { signal: _signal, ...workerOptions } = options;
|
|
1411
|
+
const { signal: _signal, onProgress: _onProgress, ...workerOptions } = options;
|
|
1338
1412
|
if (job.isRunning) {
|
|
1339
1413
|
job.postMessage("process-in-batches", {
|
|
1340
1414
|
options: getTransferListForWriter(workerOptions),
|
|
@@ -1356,13 +1430,10 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
1356
1430
|
}
|
|
1357
1431
|
await job.result;
|
|
1358
1432
|
} finally {
|
|
1359
|
-
(_c = options.signal) == null ? void 0 : _c.removeEventListener("abort", abortJob);
|
|
1360
1433
|
if (job.isRunning) {
|
|
1361
1434
|
job.abort(createAbortError2("Worker batch iterator was closed"));
|
|
1362
1435
|
}
|
|
1363
|
-
|
|
1364
|
-
closeInputIterator(inputIterator);
|
|
1365
|
-
}
|
|
1436
|
+
closeJobInput();
|
|
1366
1437
|
}
|
|
1367
1438
|
}
|
|
1368
1439
|
function throwIfAborted(signal) {
|
|
@@ -1372,7 +1443,7 @@ function throwIfAborted(signal) {
|
|
|
1372
1443
|
throw getAbortReason(signal);
|
|
1373
1444
|
}
|
|
1374
1445
|
function getAbortReason(signal) {
|
|
1375
|
-
return
|
|
1446
|
+
return signal ? signal.reason : createAbortError2("Worker job was aborted");
|
|
1376
1447
|
}
|
|
1377
1448
|
function createAbortError2(message) {
|
|
1378
1449
|
const error = new Error(message);
|
|
@@ -1412,8 +1483,11 @@ function getWorkerPoolTarget(worker, options, name) {
|
|
|
1412
1483
|
}
|
|
1413
1484
|
return { name, url: getWorkerURL(worker, options) };
|
|
1414
1485
|
}
|
|
1415
|
-
async function onMessage(context, job, type, payload) {
|
|
1486
|
+
async function onMessage(context, options, job, type, payload) {
|
|
1416
1487
|
switch (type) {
|
|
1488
|
+
case "progress":
|
|
1489
|
+
reportProgress(job, options, payload);
|
|
1490
|
+
break;
|
|
1417
1491
|
case "done":
|
|
1418
1492
|
job.done(payload);
|
|
1419
1493
|
break;
|
|
@@ -1421,13 +1495,18 @@ async function onMessage(context, job, type, payload) {
|
|
|
1421
1495
|
job.error(new Error(payload.error));
|
|
1422
1496
|
break;
|
|
1423
1497
|
case "process":
|
|
1424
|
-
const { id, input, options } = payload;
|
|
1498
|
+
const { id, input, options: processOptions } = payload;
|
|
1425
1499
|
try {
|
|
1426
1500
|
if (!context.process) {
|
|
1427
1501
|
job.postMessage("error", { id, error: "Worker not set up to process on main thread" });
|
|
1428
1502
|
return;
|
|
1429
1503
|
}
|
|
1430
|
-
const result = await context.process(
|
|
1504
|
+
const result = await context.process(
|
|
1505
|
+
input,
|
|
1506
|
+
{ ...processOptions, signal: options.signal, onProgress: options.onProgress },
|
|
1507
|
+
void 0,
|
|
1508
|
+
payload.context || {}
|
|
1509
|
+
);
|
|
1431
1510
|
job.postMessage("done", { id, result });
|
|
1432
1511
|
} catch (error) {
|
|
1433
1512
|
const message = error instanceof Error ? error.message : "unknown error";
|
|
@@ -1438,6 +1517,15 @@ async function onMessage(context, job, type, payload) {
|
|
|
1438
1517
|
console.warn(`process-on-worker: unknown message ${type}`);
|
|
1439
1518
|
}
|
|
1440
1519
|
}
|
|
1520
|
+
function reportProgress(job, options, payload) {
|
|
1521
|
+
var _a;
|
|
1522
|
+
if (!job.isRunning || !payload.progress) return;
|
|
1523
|
+
try {
|
|
1524
|
+
(_a = options.onProgress) == null ? void 0 : _a.call(options, payload.progress);
|
|
1525
|
+
} catch (error) {
|
|
1526
|
+
job.abort(error);
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1441
1529
|
|
|
1442
1530
|
// src/worker-utils/lib/worker-api/create-worker.ts
|
|
1443
1531
|
var requestId = 0;
|
|
@@ -1451,6 +1539,8 @@ async function createWorker(process2, processInBatches) {
|
|
|
1451
1539
|
process: processOnMainThread
|
|
1452
1540
|
};
|
|
1453
1541
|
WorkerBody.onmessage = async (type, payload) => {
|
|
1542
|
+
const reporter = type === "process" || type === "process-in-batches" ? createProgressReporter() : void 0;
|
|
1543
|
+
const jobContext = { ...context, reportProgress: reporter == null ? void 0 : reporter.report };
|
|
1454
1544
|
try {
|
|
1455
1545
|
switch (type) {
|
|
1456
1546
|
case "preload":
|
|
@@ -1463,9 +1553,10 @@ async function createWorker(process2, processInBatches) {
|
|
|
1463
1553
|
const result = await process2(
|
|
1464
1554
|
payload.input,
|
|
1465
1555
|
payload.options || {},
|
|
1466
|
-
|
|
1556
|
+
jobContext,
|
|
1467
1557
|
payload.context || {}
|
|
1468
1558
|
);
|
|
1559
|
+
reporter == null ? void 0 : reporter.finish();
|
|
1469
1560
|
WorkerBody.postMessage("done", { result });
|
|
1470
1561
|
break;
|
|
1471
1562
|
case "process-in-batches":
|
|
@@ -1480,13 +1571,14 @@ async function createWorker(process2, processInBatches) {
|
|
|
1480
1571
|
const resultIterator = processInBatches(
|
|
1481
1572
|
createDemandDrivenIterator(inputBatches),
|
|
1482
1573
|
payload.options || {},
|
|
1483
|
-
|
|
1574
|
+
jobContext,
|
|
1484
1575
|
payload.context || {}
|
|
1485
1576
|
);
|
|
1486
1577
|
for await (const batch of resultIterator) {
|
|
1487
1578
|
await WorkerBody.postMessage("output-batch", { result: batch });
|
|
1488
1579
|
await outputAcknowledgements.next();
|
|
1489
1580
|
}
|
|
1581
|
+
reporter == null ? void 0 : reporter.finish();
|
|
1490
1582
|
await WorkerBody.postMessage("done", {});
|
|
1491
1583
|
} finally {
|
|
1492
1584
|
activeInputBatches = null;
|
|
@@ -1514,6 +1606,7 @@ async function createWorker(process2, processInBatches) {
|
|
|
1514
1606
|
default:
|
|
1515
1607
|
}
|
|
1516
1608
|
} catch (error) {
|
|
1609
|
+
reporter == null ? void 0 : reporter.finish();
|
|
1517
1610
|
const message = error instanceof Error ? error.message : "";
|
|
1518
1611
|
WorkerBody.postMessage("error", { error: message });
|
|
1519
1612
|
}
|
|
@@ -1553,6 +1646,35 @@ function processOnMainThread(arrayBuffer, options = {}, jobContext = {}) {
|
|
|
1553
1646
|
WorkerBody.postMessage("process", payload);
|
|
1554
1647
|
});
|
|
1555
1648
|
}
|
|
1649
|
+
function createProgressReporter() {
|
|
1650
|
+
let pending;
|
|
1651
|
+
let finished = false;
|
|
1652
|
+
let scheduled = false;
|
|
1653
|
+
const flush = () => {
|
|
1654
|
+
scheduled = false;
|
|
1655
|
+
if (pending) {
|
|
1656
|
+
WorkerBody.postMessage("progress", { progress: pending });
|
|
1657
|
+
pending = void 0;
|
|
1658
|
+
}
|
|
1659
|
+
};
|
|
1660
|
+
return {
|
|
1661
|
+
/** Records progress while retaining phase transitions. */
|
|
1662
|
+
report(progress) {
|
|
1663
|
+
if (finished) return;
|
|
1664
|
+
if (pending && pending.phase !== progress.phase) flush();
|
|
1665
|
+
pending = { ...progress };
|
|
1666
|
+
if (!scheduled) {
|
|
1667
|
+
scheduled = true;
|
|
1668
|
+
setTimeout(flush, 0);
|
|
1669
|
+
}
|
|
1670
|
+
},
|
|
1671
|
+
/** Flushes final progress and suppresses reports from stale callbacks. */
|
|
1672
|
+
finish() {
|
|
1673
|
+
flush();
|
|
1674
|
+
finished = true;
|
|
1675
|
+
}
|
|
1676
|
+
};
|
|
1677
|
+
}
|
|
1556
1678
|
|
|
1557
1679
|
// dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js
|
|
1558
1680
|
async function createLoaderWorker(loader, selectLoader = () => loader) {
|
|
@@ -1565,6 +1687,7 @@ async function processLoaderWorkerData(loader, input, options = {}, workerContex
|
|
|
1565
1687
|
options,
|
|
1566
1688
|
context: {
|
|
1567
1689
|
...loaderContext,
|
|
1690
|
+
reportProgress: workerContext == null ? void 0 : workerContext.reportProgress,
|
|
1568
1691
|
coreApi: createWorkerCoreApi(),
|
|
1569
1692
|
_parse: createParseOnMainThread(workerContext == null ? void 0 : workerContext.process)
|
|
1570
1693
|
}
|
|
@@ -1575,8 +1698,10 @@ async function* processLoaderWorkerBatches(loader, inputIterator, options = {},
|
|
|
1575
1698
|
if (!loader.parseInBatches) {
|
|
1576
1699
|
throw new Error(`${loader.id} loader does not support batched parsing`);
|
|
1577
1700
|
}
|
|
1578
|
-
const
|
|
1701
|
+
const parserOptions = getWorkerLoaderOptions(loader, options);
|
|
1702
|
+
const resultIterator = loader.parseInBatches(inputIterator, parserOptions, {
|
|
1579
1703
|
...loaderContext,
|
|
1704
|
+
reportProgress: workerContext == null ? void 0 : workerContext.reportProgress,
|
|
1580
1705
|
coreApi: createWorkerCoreApi(),
|
|
1581
1706
|
_parse: createParseOnMainThread(workerContext == null ? void 0 : workerContext.process)
|
|
1582
1707
|
});
|
|
@@ -1632,7 +1757,7 @@ function getSerializableLoaderContext(context) {
|
|
|
1632
1757
|
if (!context) {
|
|
1633
1758
|
return void 0;
|
|
1634
1759
|
}
|
|
1635
|
-
const { fetch: fetch2, loaders, coreApi, _parse, _parseSync, _parseInBatches, ...serializableContext } = context;
|
|
1760
|
+
const { fetch: fetch2, loaders, coreApi, signal, reportProgress: reportProgress2, _parse, _parseSync, _parseInBatches, ...serializableContext } = context;
|
|
1636
1761
|
return JSON.parse(JSON.stringify(serializableContext));
|
|
1637
1762
|
}
|
|
1638
1763
|
async function parseData({ loader, arrayBuffer, options, context }) {
|
|
@@ -1648,18 +1773,16 @@ async function parseData({ loader, arrayBuffer, options, context }) {
|
|
|
1648
1773
|
} else {
|
|
1649
1774
|
throw new Error(`Could not load data with ${loader.name} loader`);
|
|
1650
1775
|
}
|
|
1651
|
-
options =
|
|
1776
|
+
options = getWorkerLoaderOptions(loader, options);
|
|
1777
|
+
return await parser(data, { ...options }, context, loader);
|
|
1778
|
+
}
|
|
1779
|
+
function getWorkerLoaderOptions(loader, options) {
|
|
1780
|
+
var _a;
|
|
1781
|
+
return {
|
|
1652
1782
|
...options,
|
|
1653
|
-
modules: {
|
|
1654
|
-
|
|
1655
|
-
...options.modules || {}
|
|
1656
|
-
},
|
|
1657
|
-
core: {
|
|
1658
|
-
...options.core,
|
|
1659
|
-
worker: false
|
|
1660
|
-
}
|
|
1783
|
+
modules: { ...(_a = loader.options) == null ? void 0 : _a.modules, ...options.modules },
|
|
1784
|
+
core: { ...options.core, worker: false }
|
|
1661
1785
|
};
|
|
1662
|
-
return await parser(data, { ...options }, context, loader);
|
|
1663
1786
|
}
|
|
1664
1787
|
|
|
1665
1788
|
// dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js
|
|
@@ -1683,6 +1806,13 @@ function canParseWithWorker(loader, options) {
|
|
|
1683
1806
|
}
|
|
1684
1807
|
return Boolean(canProcessOnWorker(loader, workerOptions));
|
|
1685
1808
|
}
|
|
1809
|
+
function canParseWithWorkerInBatches(loader, options) {
|
|
1810
|
+
const parquetOptions = options == null ? void 0 : options.parquet;
|
|
1811
|
+
if (loader.id === "parquet" && typeof (parquetOptions == null ? void 0 : parquetOptions.keyRetriever) === "function") {
|
|
1812
|
+
return false;
|
|
1813
|
+
}
|
|
1814
|
+
return Boolean(loader.workerInBatches && canParseWithWorker(loader, options) && canProcessOnWorkerInBatches(loader, getWorkerOptions(options)));
|
|
1815
|
+
}
|
|
1686
1816
|
function shouldParseWithWorker(loader, data, options, context, estimateLoader = loader) {
|
|
1687
1817
|
var _a, _b;
|
|
1688
1818
|
if (!canParseWithWorker(loader, options)) {
|
|
@@ -1702,8 +1832,12 @@ function shouldParseWithWorker(loader, data, options, context, estimateLoader =
|
|
|
1702
1832
|
}
|
|
1703
1833
|
}
|
|
1704
1834
|
async function parseWithWorker(loader, data, options, context, parseOnMainThread, signal) {
|
|
1705
|
-
const workerSignal = signal || getWorkerAbortSignal(options);
|
|
1706
|
-
const result = await processOnWorker(loader, data, {
|
|
1835
|
+
const workerSignal = signal || getWorkerAbortSignal(options) || (context == null ? void 0 : context.signal);
|
|
1836
|
+
const result = await processOnWorker(loader, data, {
|
|
1837
|
+
...getWorkerOptions(options, loader),
|
|
1838
|
+
signal: workerSignal,
|
|
1839
|
+
onProgress: (options == null ? void 0 : options.onProgress) || (context == null ? void 0 : context.reportProgress)
|
|
1840
|
+
}, {
|
|
1707
1841
|
process: async (input, processOptions, _workerContext, parseContext) => {
|
|
1708
1842
|
if (!parseOnMainThread) {
|
|
1709
1843
|
throw new Error("Worker not set up to parse on main thread");
|
|
@@ -1716,8 +1850,12 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
1716
1850
|
return isLoaderWithWorkerResultDeserializer(loader) ? loader.deserializeWorkerResult(result, options, context) : result;
|
|
1717
1851
|
}
|
|
1718
1852
|
async function* parseWithWorkerInBatches(loader, inputIterator, options, context, parseOnMainThread, signal) {
|
|
1719
|
-
const workerSignal = signal || getWorkerAbortSignal(options);
|
|
1720
|
-
const outputIterator = processOnWorkerInBatches(loader, inputIterator, {
|
|
1853
|
+
const workerSignal = signal || getWorkerAbortSignal(options) || (context == null ? void 0 : context.signal);
|
|
1854
|
+
const outputIterator = processOnWorkerInBatches(loader, inputIterator, {
|
|
1855
|
+
...getWorkerOptions(options, loader),
|
|
1856
|
+
signal: workerSignal,
|
|
1857
|
+
onProgress: (options == null ? void 0 : options.onProgress) || (context == null ? void 0 : context.reportProgress)
|
|
1858
|
+
}, {
|
|
1721
1859
|
process: async (input, processOptions, _workerContext, parseContext) => {
|
|
1722
1860
|
if (!parseOnMainThread) {
|
|
1723
1861
|
throw new Error("Worker not set up to parse on main thread");
|
|
@@ -1733,6 +1871,8 @@ async function* parseWithWorkerInBatches(loader, inputIterator, options, context
|
|
|
1733
1871
|
}
|
|
1734
1872
|
function getWorkerAbortSignal(options) {
|
|
1735
1873
|
var _a;
|
|
1874
|
+
if (options == null ? void 0 : options.signal)
|
|
1875
|
+
return options.signal;
|
|
1736
1876
|
const parquetSignal = (_a = options == null ? void 0 : options.parquet) == null ? void 0 : _a.signal;
|
|
1737
1877
|
if (typeof AbortSignal !== "undefined" && parquetSignal instanceof AbortSignal) {
|
|
1738
1878
|
return parquetSignal;
|
|
@@ -1777,9 +1917,15 @@ function resolveWorkerLoaders(loader, loaderIds, loaderIsArray, context, options
|
|
|
1777
1917
|
function getWorkerOptions(options = {}, loader) {
|
|
1778
1918
|
const optionsToSerialize = {
|
|
1779
1919
|
...options,
|
|
1920
|
+
signal: void 0,
|
|
1921
|
+
onProgress: void 0,
|
|
1780
1922
|
...options.core ? { core: { ...options.core, authentications: void 0 } } : {}
|
|
1781
1923
|
};
|
|
1782
|
-
const serializedOptions = JSON.parse(JSON.stringify(optionsToSerialize, (_key, value) =>
|
|
1924
|
+
const serializedOptions = JSON.parse(JSON.stringify(optionsToSerialize, (_key, value) => {
|
|
1925
|
+
if (typeof AbortSignal !== "undefined" && value instanceof AbortSignal)
|
|
1926
|
+
return void 0;
|
|
1927
|
+
return typeof value === "bigint" ? null : value;
|
|
1928
|
+
}));
|
|
1783
1929
|
restoreBigIntOptions(optionsToSerialize, serializedOptions);
|
|
1784
1930
|
const workerOptions = {
|
|
1785
1931
|
...serializedOptions.core,
|
|
@@ -1808,7 +1954,7 @@ function getSerializableLoaderContext2(context) {
|
|
|
1808
1954
|
if (!context) {
|
|
1809
1955
|
return {};
|
|
1810
1956
|
}
|
|
1811
|
-
const { fetch: fetch2, loaders, coreApi, _parse, _parseSync, _parseInBatches, ...serializableContext } = context;
|
|
1957
|
+
const { fetch: fetch2, loaders, coreApi, signal, reportProgress: reportProgress2, _parse, _parseSync, _parseInBatches, ...serializableContext } = context;
|
|
1812
1958
|
return JSON.parse(JSON.stringify(serializableContext));
|
|
1813
1959
|
}
|
|
1814
1960
|
function shouldParseCSVWithWorker(options) {
|
|
@@ -2894,8 +3040,7 @@ function createAuthenticatedFetch(options) {
|
|
|
2894
3040
|
const authenticatedFetch = async (url, requestOptions = {}) => {
|
|
2895
3041
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
2896
3042
|
requestOptions = mergeFetchOptions(fetchOptions, requestOptions);
|
|
2897
|
-
|
|
2898
|
-
throw createAbortError4();
|
|
3043
|
+
(_a = requestOptions.signal) == null ? void 0 : _a.throwIfAborted();
|
|
2899
3044
|
if (!credentials.length)
|
|
2900
3045
|
return baseFetch(url, requestOptions);
|
|
2901
3046
|
const resolvedURL = parseHTTPURL(url);
|
|
@@ -2914,8 +3059,7 @@ function createAuthenticatedFetch(options) {
|
|
|
2914
3059
|
});
|
|
2915
3060
|
if (!refreshableCredentials.length && !shouldRetrySignature)
|
|
2916
3061
|
return response;
|
|
2917
|
-
|
|
2918
|
-
throw createAbortError4();
|
|
3062
|
+
(_e = requestOptions.signal) == null ? void 0 : _e.throwIfAborted();
|
|
2919
3063
|
const refreshedTokens = /* @__PURE__ */ new Map();
|
|
2920
3064
|
await Promise.all(refreshableCredentials.map(async ({ credential }) => {
|
|
2921
3065
|
const token = await refreshCredential(credential, url, response);
|
|
@@ -2926,8 +3070,7 @@ function createAuthenticatedFetch(options) {
|
|
|
2926
3070
|
return response;
|
|
2927
3071
|
await ((_f = response.body) == null ? void 0 : _f.cancel().catch(() => {
|
|
2928
3072
|
}));
|
|
2929
|
-
|
|
2930
|
-
throw createAbortError4();
|
|
3073
|
+
(_g = requestOptions.signal) == null ? void 0 : _g.throwIfAborted();
|
|
2931
3074
|
const replayAuthorization = resolvedURL ? await authorizeRequest(resolvedURL, requestOptions, tokenCredentials, refreshedTokens, authorization.credentials) : { url, options: requestOptions };
|
|
2932
3075
|
const replayRequest = await authenticateRequest(replayAuthorization, requestCredentials, "retry", response);
|
|
2933
3076
|
return baseFetch(replayRequest.url, replayRequest.options);
|
|
@@ -2951,9 +3094,10 @@ function getAuthenticatedFetch(options = {}) {
|
|
|
2951
3094
|
} else {
|
|
2952
3095
|
fetchFunction = (url, requestOptions) => fetch(url, requestOptions);
|
|
2953
3096
|
}
|
|
3097
|
+
const fetchOptions = typeof fetchOption === "object" && fetchOption ? fetchOption : void 0;
|
|
2954
3098
|
return createAuthenticatedFetch({
|
|
2955
3099
|
fetch: fetchFunction,
|
|
2956
|
-
fetchOptions:
|
|
3100
|
+
fetchOptions: options.signal ? { ...fetchOptions, signal: options.signal } : fetchOptions,
|
|
2957
3101
|
credentials: ((_b = options.core) == null ? void 0 : _b.credentials) || [],
|
|
2958
3102
|
authentications: (_c = options.core) == null ? void 0 : _c.authentications
|
|
2959
3103
|
});
|
|
@@ -2990,8 +3134,7 @@ async function authenticateRequest(request, credentials, reason, response) {
|
|
|
2990
3134
|
const origin = getRequestOrigin(request.url);
|
|
2991
3135
|
if (!origin || !normalizeRequestOrigins(credential.origins).includes(origin))
|
|
2992
3136
|
continue;
|
|
2993
|
-
|
|
2994
|
-
throw createAbortError4();
|
|
3137
|
+
signal == null ? void 0 : signal.throwIfAborted();
|
|
2995
3138
|
const authenticatedRequest = await credential.authenticate({
|
|
2996
3139
|
url: request.url,
|
|
2997
3140
|
options: { ...request.options, headers: new Headers(request.options.headers) },
|
|
@@ -3007,8 +3150,7 @@ async function authenticateRequest(request, credentials, reason, response) {
|
|
|
3007
3150
|
};
|
|
3008
3151
|
appliedCredentials.push(credential);
|
|
3009
3152
|
}
|
|
3010
|
-
|
|
3011
|
-
throw createAbortError4();
|
|
3153
|
+
signal == null ? void 0 : signal.throwIfAborted();
|
|
3012
3154
|
return { ...request, credentials: appliedCredentials };
|
|
3013
3155
|
}
|
|
3014
3156
|
function getRequestOrigin(url) {
|
|
@@ -3110,9 +3252,6 @@ function isReplayableRequest(options) {
|
|
|
3110
3252
|
return false;
|
|
3111
3253
|
return !(options.body && typeof ReadableStream !== "undefined" && options.body instanceof ReadableStream);
|
|
3112
3254
|
}
|
|
3113
|
-
function createAbortError4() {
|
|
3114
|
-
return new DOMException("The operation was aborted.", "AbortError");
|
|
3115
|
-
}
|
|
3116
3255
|
|
|
3117
3256
|
// dist/loader-utils/lib/request-utils/range-request-scheduler.js
|
|
3118
3257
|
var import_stats2 = require("probe.gl/stats");
|
|
@@ -3209,7 +3348,7 @@ var RangeRequestScheduler = class {
|
|
|
3209
3348
|
return Promise.reject(new Error("Byte range length cannot be negative"));
|
|
3210
3349
|
}
|
|
3211
3350
|
if ((_a = request.signal) == null ? void 0 : _a.aborted) {
|
|
3212
|
-
return Promise.reject(request.signal.reason ??
|
|
3351
|
+
return Promise.reject(request.signal.reason ?? createAbortError4());
|
|
3213
3352
|
}
|
|
3214
3353
|
if (request.length === 0) {
|
|
3215
3354
|
return Promise.resolve(new ArrayBuffer(0));
|
|
@@ -3474,7 +3613,7 @@ var RangeRequestScheduler = class {
|
|
|
3474
3613
|
}
|
|
3475
3614
|
}
|
|
3476
3615
|
this.transportQueue = this.transportQueue.filter((group) => group.requests.length > 0);
|
|
3477
|
-
request.reject(((_a = request.signal) == null ? void 0 : _a.reason) ??
|
|
3616
|
+
request.reject(((_a = request.signal) == null ? void 0 : _a.reason) ?? createAbortError4());
|
|
3478
3617
|
this.trackEvent({
|
|
3479
3618
|
type: "abort",
|
|
3480
3619
|
sourceId: request.sourceId,
|
|
@@ -3705,7 +3844,7 @@ function getTimestamp() {
|
|
|
3705
3844
|
var _a;
|
|
3706
3845
|
return ((_a = globalThis.performance) == null ? void 0 : _a.now()) ?? Date.now();
|
|
3707
3846
|
}
|
|
3708
|
-
function
|
|
3847
|
+
function createAbortError4() {
|
|
3709
3848
|
if (typeof DOMException !== "undefined") {
|
|
3710
3849
|
return new DOMException("Request aborted", "AbortError");
|
|
3711
3850
|
}
|
|
@@ -3787,7 +3926,7 @@ var RangeRequestCache = class {
|
|
|
3787
3926
|
(_a = this.onEvent) == null ? void 0 : _a.call(this, { type: "miss", sourceId, offset, length });
|
|
3788
3927
|
if (this.cache.maxEntries === 0 || length > this.cache.maxBytes) {
|
|
3789
3928
|
if (signal == null ? void 0 : signal.aborted) {
|
|
3790
|
-
throw
|
|
3929
|
+
throw createAbortError5();
|
|
3791
3930
|
}
|
|
3792
3931
|
const arrayBuffer = await fetchRange(offset, length, signal || new AbortController().signal);
|
|
3793
3932
|
validateResponseLength(arrayBuffer, length);
|
|
@@ -3898,7 +4037,7 @@ function validateResponseLength(arrayBuffer, expectedLength) {
|
|
|
3898
4037
|
throw new Error(`Range request returned ${arrayBuffer.byteLength} bytes; expected ${expectedLength}`);
|
|
3899
4038
|
}
|
|
3900
4039
|
}
|
|
3901
|
-
function
|
|
4040
|
+
function createAbortError5() {
|
|
3902
4041
|
const error = new Error("Request aborted");
|
|
3903
4042
|
error.name = "AbortError";
|
|
3904
4043
|
return error;
|
|
@@ -9797,7 +9936,7 @@ var CachedUriResolver = class {
|
|
|
9797
9936
|
};
|
|
9798
9937
|
|
|
9799
9938
|
// dist/loader-utils/json-loader.js
|
|
9800
|
-
var VERSION3 = true ? "5.0.0-alpha.
|
|
9939
|
+
var VERSION3 = true ? "5.0.0-alpha.14" : "latest";
|
|
9801
9940
|
var JSONLoader = {
|
|
9802
9941
|
dataType: null,
|
|
9803
9942
|
batchType: null,
|
|
@@ -10315,7 +10454,7 @@ var HttpFile = class _HttpFile {
|
|
|
10315
10454
|
async open(signal) {
|
|
10316
10455
|
this.assertOpen();
|
|
10317
10456
|
if (signal == null ? void 0 : signal.aborted) {
|
|
10318
|
-
const error =
|
|
10457
|
+
const error = createAbortError6();
|
|
10319
10458
|
this.transport.trackFailure(error);
|
|
10320
10459
|
throw error;
|
|
10321
10460
|
}
|
|
@@ -10357,7 +10496,7 @@ var HttpFile = class _HttpFile {
|
|
|
10357
10496
|
async read(offset = 0, length = 0, signal) {
|
|
10358
10497
|
this.assertOpen();
|
|
10359
10498
|
if (signal == null ? void 0 : signal.aborted) {
|
|
10360
|
-
const error =
|
|
10499
|
+
const error = createAbortError6();
|
|
10361
10500
|
this.transport.trackFailure(error);
|
|
10362
10501
|
throw error;
|
|
10363
10502
|
}
|
|
@@ -10465,7 +10604,7 @@ function validateRange2(offset, length, byteLength) {
|
|
|
10465
10604
|
throw new Error("HTTP byte range extends beyond the end of the file");
|
|
10466
10605
|
}
|
|
10467
10606
|
}
|
|
10468
|
-
function
|
|
10607
|
+
function createAbortError6() {
|
|
10469
10608
|
if (typeof DOMException !== "undefined") {
|
|
10470
10609
|
return new DOMException("Request aborted", "AbortError");
|
|
10471
10610
|
}
|