@loaders.gl/core 5.0.0-alpha.1 → 5.0.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.
@@ -27,30 +27,69 @@ async function* makeBrowserStreamIterator(stream, options) {
27
27
  // In the browser, we first need to get a lock on the stream
28
28
  const reader = stream.getReader();
29
29
  let nextBatchPromise;
30
+ let streamFinished = false;
31
+ let streamReadFailed = false;
32
+ let iteratorFailed = false;
30
33
  try {
31
34
  // eslint-disable-next-line no-constant-condition
32
35
  while (true) {
33
36
  const currentBatchPromise = nextBatchPromise || reader.read();
34
- // Issue a read for an additional batch, while we await the next batch
35
- // Idea is to make fetching happen in parallel with processing / parsing
36
- if (options?._streamReadAhead) {
37
- nextBatchPromise = reader.read();
38
- }
37
+ nextBatchPromise = undefined;
39
38
  // Read from the stream
40
39
  // value is a Uint8Array
41
- const { done, value } = await currentBatchPromise;
40
+ let batch;
41
+ try {
42
+ batch = await currentBatchPromise;
43
+ }
44
+ catch (error) {
45
+ streamReadFailed = true;
46
+ throw error;
47
+ }
48
+ const { done, value } = batch;
42
49
  // Exit if we're done
43
50
  if (done) {
51
+ streamFinished = true;
44
52
  return;
45
53
  }
54
+ // Issue a read for an additional batch while the current batch is processed
55
+ if (options?._streamReadAhead) {
56
+ nextBatchPromise = reader.read();
57
+ // Observe a prefetched rejection even if the consumer stops before requesting it
58
+ void nextBatchPromise.catch(() => { });
59
+ }
46
60
  // Else yield the chunk
47
61
  yield toArrayBuffer(value);
48
62
  }
49
63
  }
50
- catch (_error) {
51
- // TODO - examples makes it look like this should always be called,
52
- // but that generates exceptions so only call it if we do not reach the end
53
- reader.releaseLock();
64
+ catch (error) {
65
+ iteratorFailed = true;
66
+ throw error;
67
+ }
68
+ finally {
69
+ let cleanupFailed = false;
70
+ let cleanupError;
71
+ if (!streamFinished && !streamReadFailed) {
72
+ try {
73
+ await reader.cancel();
74
+ }
75
+ catch (error) {
76
+ cleanupFailed = true;
77
+ cleanupError = error;
78
+ }
79
+ }
80
+ try {
81
+ reader.releaseLock();
82
+ }
83
+ catch (error) {
84
+ if (!cleanupFailed) {
85
+ cleanupFailed = true;
86
+ cleanupError = error;
87
+ }
88
+ }
89
+ // Preserve errors from iteration instead of replacing them with cleanup errors
90
+ if (!iteratorFailed && cleanupFailed) {
91
+ throw cleanupError;
92
+ }
54
93
  }
55
94
  }
56
95
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAMlE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAiC,EACjC,OAA+B;IAE/B,OAAO,SAAS;QACd,CAAC,CAAC,yBAAyB,CAAC,MAAwB,EAAE,OAAO,CAAC;QAC9D,CAAC,CAAC,sBAAsB,CAAC,MAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACvC,MAAsB,EACtB,OAA+B;IAE/B,4DAA4D;IAC5D,kDAAkD;IAClD,iCAAiC;IACjC,IAAI;IACJ,4DAA4D;IAC5D,8CAA8C;IAC9C,IAAI;IAEJ,4DAA4D;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,IAAI,gBAA2E,CAAC;IAEhF,IAAI,CAAC;QACH,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,uBAAuB;YACvB,wBAAwB;YACxB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,mBAAmB,CAAC;YAChD,qBAAqB;YACrB,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,uBAAuB;YACvB,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,mEAAmE;QACnE,2EAA2E;QAC3E,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,sBAAsB,CACpC,MAAgB,EAChB,OAA+B;IAE/B,oEAAoE;IACpE,uCAAuC;IACvC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,mCAAmC;IACjE,CAAC;AACH,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BI"}
1
+ {"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"names":[],"mappings":"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"}
@@ -91,13 +91,7 @@ function getLoaderImplementationSpecifier(loader, options) {
91
91
  function getLoaderImplementationCacheKey(loader, options) {
92
92
  const loaderOptions = options?.[loader.id];
93
93
  const defaultLoaderOptions = loader.options?.[loader.id];
94
- return String(loaderOptions?.backend ||
95
- getDeprecatedImplementationBackend(loaderOptions?.implementation) ||
96
- defaultLoaderOptions?.backend ||
97
- '');
98
- }
99
- function getDeprecatedImplementationBackend(implementation) {
100
- return implementation === 'js' ? 'typescript' : implementation;
94
+ return String(loaderOptions?.backend || defaultLoaderOptions?.backend || '');
101
95
  }
102
96
  /** Imports a module and finds the parser-bearing loader implementation with the requested id. */
103
97
  async function importLoaderImplementation(implementationSpecifier, loaderId) {
@@ -1 +1 @@
1
- {"version":3,"file":"load-loader.js","sourceRoot":"","sources":["../../../src/lib/api/load-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-loader.js","sourceRoot":"","sources":["../../../src/lib/api/load-loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAclC;;;;;;;;GAQG;AAEH,wBAAsB,IAAI,CACxB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtC,wBAAsB,IAAI,CACxB,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAelC;;;;;;;;GAQG;AAEH,wBAAsB,IAAI,CACxB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtC,wBAAsB,IAAI,CACxB,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC"}
@@ -12,6 +12,7 @@ import { parseSync } from "./parse-sync.js";
12
12
  import { parseInBatches } from "./parse-in-batches.js";
13
13
  import { loadInBatches } from "./load-in-batches.js";
14
14
  import { selectLoader } from "./select-loader.js";
15
+ import { getLoaderImplementation } from "./load-loader.js";
15
16
  // export async function load(url: string | DataType, loaders: LoaderOptions): Promise<any>;
16
17
  // implementation signature
17
18
  export async function load(url, loaders, options, context) {
@@ -28,6 +29,7 @@ export async function load(url, loaders, options, context) {
28
29
  resolvedOptions = options;
29
30
  }
30
31
  if (!Array.isArray(resolvedLoaders) && isSourceLoader(resolvedLoaders)) {
32
+ const sourceLoader = await resolveSourceLoader(resolvedLoaders, url, resolvedOptions);
31
33
  const runtimeCoreApi = {
32
34
  fetchFile,
33
35
  parse,
@@ -37,11 +39,12 @@ export async function load(url, loaders, options, context) {
37
39
  load,
38
40
  loadInBatches
39
41
  };
40
- return resolvedLoaders.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
42
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
41
43
  }
42
44
  if (Array.isArray(resolvedLoaders) &&
43
45
  resolvedLoaders.length === 1 &&
44
46
  isSourceLoader(resolvedLoaders[0])) {
47
+ const sourceLoader = await resolveSourceLoader(resolvedLoaders[0], url, resolvedOptions);
45
48
  const runtimeCoreApi = {
46
49
  fetchFile,
47
50
  parse,
@@ -51,7 +54,7 @@ export async function load(url, loaders, options, context) {
51
54
  load,
52
55
  loadInBatches
53
56
  };
54
- return resolvedLoaders[0].createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
57
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
55
58
  }
56
59
  if (typeof url === 'string' || isBlob(url)) {
57
60
  const selectedLoader = await selectLoader(url, resolvedLoaders, {
@@ -59,7 +62,8 @@ export async function load(url, loaders, options, context) {
59
62
  core: { ...resolvedOptions?.core, nothrow: true }
60
63
  });
61
64
  if (selectedLoader && isSourceLoader(selectedLoader)) {
62
- return selectedLoader.createDataSource(url, (resolvedOptions || {}), {
65
+ const sourceLoader = await resolveSourceLoader(selectedLoader, url, resolvedOptions);
66
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), {
63
67
  fetchFile,
64
68
  parse,
65
69
  parseFile,
@@ -69,6 +73,12 @@ export async function load(url, loaders, options, context) {
69
73
  loadInBatches
70
74
  });
71
75
  }
76
+ if (selectedLoader && typeof url === 'string') {
77
+ const loaderImplementation = await getLoaderImplementation(selectedLoader, resolvedOptions, url);
78
+ const parseUrl = loaderImplementation.parseUrl;
79
+ if (parseUrl)
80
+ return await parseUrl(url, resolvedOptions, context);
81
+ }
72
82
  }
73
83
  // Select fetch function
74
84
  const fetch = getFetchFunction(resolvedOptions);
@@ -102,4 +112,15 @@ export async function load(url, loaders, options, context) {
102
112
  ? await parse(data, resolvedLoaders, resolvedOptions, context) // loader array overload
103
113
  : await parse(data, resolvedLoaders, resolvedOptions, context); // single loader overload
104
114
  }
115
+ /** Resolves a lightweight source loader into its runtime implementation when necessary. */
116
+ async function resolveSourceLoader(loader, url, options) {
117
+ if (!loader.preload) {
118
+ return loader;
119
+ }
120
+ const sourceLoader = await loader.preload(typeof url === 'string' ? url : '', options);
121
+ if (!isSourceLoader(sourceLoader)) {
122
+ throw new Error(`${loader.id} source loader preload() did not return a runtime source loader`);
123
+ }
124
+ return sourceLoader;
125
+ }
105
126
  //# sourceMappingURL=load.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,QAAQ,EAER,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAoBlC;;GAEG;AACH,wBAAsB,KAAK,CACzB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtC;;GAEG;AACH,wBAAsB,KAAK,CACzB,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAClC,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,QAAQ,EAER,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAqBlC;;GAEG;AACH,wBAAsB,KAAK,CACzB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtC;;GAEG;AACH,wBAAsB,KAAK,CACzB,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAClC,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { parseWithWorker, canParseWithWorker, mergeOptions, isResponse, isSourceLoader } from '@loaders.gl/loader-utils';
4
+ import { parseWithWorker, canParseWithWorker, mergeOptions, isResponse, isBlob, isSourceLoader } from '@loaders.gl/loader-utils';
5
5
  import { validateWorkerVersion } from '@loaders.gl/worker-utils';
6
6
  import { isLoaderObject } from "../loader-utils/normalize-loader.js";
7
7
  import { normalizeOptions } from "../loader-utils/option-utils.js";
@@ -70,6 +70,9 @@ async function parseWithLoader(loader, data, options, context) {
70
70
  data = await getArrayBufferFromData(data, options);
71
71
  return await parseWithWorker(loaderWithParser, data, options, context, parse);
72
72
  }
73
+ if (isBlob(data) && loaderWithParser.parseBlob) {
74
+ return await loaderWithParser.parseBlob(data, options, context);
75
+ }
73
76
  data = await getArrayBufferOrStringFromData(data, loader, options);
74
77
  return await parseWithLoaderImplementation(loaderWithParser, data, options, context);
75
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/lib/api/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/lib/api/parse.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser-filesystem.d.ts","sourceRoot":"","sources":["../../../src/lib/filesystems/browser-filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGvE,KAAK,wBAAwB,GAAG;IAC9B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAClD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,SAAS,CAAqC;IAEtD;;;;OAIG;gBACS,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAexE;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkCnE;;;;OAIG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASlD;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IAQnE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAO/E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQ5C"}
1
+ {"version":3,"file":"browser-filesystem.d.ts","sourceRoot":"","sources":["../../../src/lib/filesystems/browser-filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGvE,KAAK,wBAAwB,GAAG;IAC9B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAClD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,SAAS,CAAqC;IAEtD;;;;OAIG;gBACS,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAexE;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6CnE;;;;OAIG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASlD;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IAQnE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAO/E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQ5C"}
@@ -37,21 +37,32 @@ export class BrowserFileSystem {
37
37
  return this._fetch(path, options);
38
38
  }
39
39
  // Local fetches are served from the list of files
40
- const file = this.files[path];
40
+ const file = this._getFile(path, true);
41
41
  if (!file) {
42
42
  return new Response(path, { status: 400, statusText: 'NOT FOUND' });
43
43
  }
44
44
  const headers = new Headers(options?.headers);
45
45
  const range = headers.get('Range');
46
- const bytes = range && /bytes=($1)-($2)/.exec(range);
46
+ const bytes = range && /bytes=(\d+)-(\d+)/.exec(range);
47
47
  if (bytes) {
48
48
  const start = parseInt(bytes[1]);
49
- const end = parseInt(bytes[2]);
49
+ const end = Math.min(parseInt(bytes[2]), file.size - 1);
50
+ if (start > end) {
51
+ const response = new Response(null, {
52
+ status: 416,
53
+ headers: { 'Content-Range': `bytes */${file.size}` }
54
+ });
55
+ Object.defineProperty(response, 'url', { value: path });
56
+ return response;
57
+ }
50
58
  // The trick when reading File objects is to read successive "slices" of the File
51
59
  // Per spec https://w3c.github.io/FileAPI/, slicing a File should only update the start and end fields
52
60
  // Actually reading from file should happen in `readAsArrayBuffer` (and as far we can tell it does)
53
- const data = await file.slice(start, end).arrayBuffer();
54
- const response = new Response(data);
61
+ const data = await file.slice(start, end + 1).arrayBuffer();
62
+ const response = new Response(data, {
63
+ status: 206,
64
+ headers: { 'Content-Range': `bytes ${start}-${end}/${file.size}` }
65
+ });
55
66
  Object.defineProperty(response, 'url', { value: path });
56
67
  return response;
57
68
  }
@@ -77,7 +88,7 @@ export class BrowserFileSystem {
77
88
  * Return information (size) about files in this file system
78
89
  */
79
90
  async stat(path, options) {
80
- const file = this.files[path];
91
+ const file = this._getFile(path, false);
81
92
  if (!file) {
82
93
  throw new Error(path);
83
94
  }
@@ -87,20 +98,23 @@ export class BrowserFileSystem {
87
98
  * Just removes the file from the list
88
99
  */
89
100
  async unlink(path) {
90
- delete this.files[path];
91
- delete this.lowerCaseFiles[path];
92
- this.usedFiles[path] = true;
101
+ const file = this._getFile(path, false);
102
+ if (file) {
103
+ delete this.files[file.name];
104
+ delete this.lowerCaseFiles[file.name.toLowerCase()];
105
+ this.usedFiles[file.name] = true;
106
+ }
93
107
  }
94
108
  // implements IRandomAccessFileSystem
95
109
  // RANDOM ACCESS
96
110
  async openReadableFile(pathname, flags) {
97
- return new BlobFile(this.files[pathname]);
111
+ return new BlobFile(this._getFile(pathname, true));
98
112
  }
99
113
  // PRIVATE
100
114
  // Supports case independent paths, and file usage tracking
101
115
  _getFile(path, used) {
102
116
  // Prefer case match, but fall back to case independent.
103
- const file = this.files[path] || this.lowerCaseFiles[path];
117
+ const file = this.files[path] || this.lowerCaseFiles[path.toLowerCase()];
104
118
  if (file && used) {
105
119
  this.usedFiles[path] = true;
106
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser-filesystem.js","sourceRoot":"","sources":["../../../src/lib/filesystems/browser-filesystem.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAMlD;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAe;IACrB,KAAK,GAA+B,EAAE,CAAC;IACvC,cAAc,GAA+B,EAAE,CAAC;IAChD,SAAS,GAAkC,EAAE,CAAC;IAEtD;;;;OAIG;IACH,YAAY,KAAwB,EAAE,OAAkC;QACtE,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,yBAAyB;IAEzB;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAqB;QAC7C,oDAAoD;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,kDAAkD;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAC,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,iFAAiF;YACjF,sGAAsG;YACtG,mGAAmG;YACnG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,OAAgB;QAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,yBAAyB;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAgB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,qCAAqC;IAErC,gBAAgB;IAChB,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,KAAc;QACrD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU;IAEV,2DAA2D;IAC3D,QAAQ,CAAC,IAAY,EAAE,IAAa;QAClC,wDAAwD;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BI"}
1
+ {"version":3,"file":"browser-filesystem.js","sourceRoot":"","sources":["../../../src/lib/filesystems/browser-filesystem.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAMlD;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAe;IACrB,KAAK,GAA+B,EAAE,CAAC;IACvC,cAAc,GAA+B,EAAE,CAAC;IAChD,SAAS,GAAkC,EAAE,CAAC;IAEtD;;;;OAIG;IACH,YAAY,KAAwB,EAAE,OAAkC;QACtE,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,yBAAyB;IAEzB;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAqB;QAC7C,oDAAoD;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,kDAAkD;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAC,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;oBAClC,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAC,eAAe,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE,EAAC;iBACnD,CAAC,CAAC;gBACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;gBACtD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,iFAAiF;YACjF,sGAAsG;YACtG,mGAAmG;YACnG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAClC,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAC,eAAe,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAC;aACjE,CAAC,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,OAAgB;QAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,yBAAyB;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAgB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;IAED,qCAAqC;IAErC,gBAAgB;IAChB,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,KAAc;QACrD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;IAEV,2DAA2D;IAC3D,QAAQ,CAAC,IAAY,EAAE,IAAa;QAClC,wDAAwD;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BI"}
package/dist/lib/init.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { log } from '@loaders.gl/loader-utils';
5
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
- const version = typeof "5.0.0-alpha.1" !== 'undefined' ? "5.0.0-alpha.1" : '';
6
+ const version = typeof "5.0.0-alpha.3" !== 'undefined' ? "5.0.0-alpha.3" : '';
7
7
  // @ts-ignore
8
8
  if (!globalThis.loaders) {
9
9
  log.log(1, `loaders.gl ${version}`)();
@@ -1,7 +1,7 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { isObject } from '@loaders.gl/loader-utils';
4
+ import { createAuthenticatedFetch, isObject } from '@loaders.gl/loader-utils';
5
5
  import { fetchFile } from "../fetch/fetch-file.js";
6
6
  import { getGlobalLoaderOptions } from "./option-utils.js";
7
7
  /**
@@ -13,19 +13,33 @@ export function getFetchFunction(options, context) {
13
13
  const globalOptions = getGlobalLoaderOptions();
14
14
  const loaderOptions = options || globalOptions;
15
15
  const fetchOption = loaderOptions.fetch ?? loaderOptions.core?.fetch;
16
+ let fetchFunction;
16
17
  // options.fetch can be a function
17
18
  if (typeof fetchOption === 'function') {
18
- return fetchOption;
19
+ fetchFunction = fetchOption;
19
20
  }
20
- // options.fetch can be an options object
21
- if (isObject(fetchOption)) {
22
- return url => fetchFile(url, fetchOption);
21
+ else if (isObject(fetchOption)) {
22
+ fetchFunction = (url, requestOptions) => fetchFile(url, mergeFetchOptions(fetchOption, requestOptions));
23
23
  }
24
- // else refer to context (from parent loader) if available
25
- if (context?.fetch) {
26
- return context?.fetch;
24
+ else if (context?.fetch) {
25
+ fetchFunction = context.fetch;
27
26
  }
28
- // else return the default fetch function
29
- return fetchFile;
27
+ else {
28
+ fetchFunction = fetchFile;
29
+ }
30
+ return createAuthenticatedFetch({
31
+ fetch: fetchFunction,
32
+ credentials: loaderOptions.core?.credentials || []
33
+ });
34
+ }
35
+ /** Combines static and per-request fetch options without replacing either header collection. */
36
+ function mergeFetchOptions(defaultOptions, requestOptions) {
37
+ const options = { ...defaultOptions, ...requestOptions };
38
+ if (defaultOptions.headers || requestOptions?.headers) {
39
+ const headers = new Headers(defaultOptions.headers);
40
+ new Headers(requestOptions?.headers).forEach((value, key) => headers.set(key, value));
41
+ options.headers = headers;
42
+ }
43
+ return options;
30
44
  }
31
45
  //# sourceMappingURL=get-fetch-function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-fetch-function.js","sourceRoot":"","sources":["../../../src/lib/loader-utils/get-fetch-function.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAC,SAAS,EAAC,+BAA4B;AAC9C,OAAO,EAAC,sBAAsB,EAAC,0BAAuB;AAEtD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAuB,EACvB,OACmD;IAEnD,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAC;IAE/C,MAAM,aAAa,GAAG,OAAO,IAAI,aAAa,CAAC;IAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;IAErE,kCAAkC;IAClC,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,yCAAyC;IACzC,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,WAA0B,CAAC,CAAC;IAC3D,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,OAAO,OAAO,EAAE,KAAK,CAAC;IACxB,CAAC;IAED,yCAAyC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"get-fetch-function.js","sourceRoot":"","sources":["../../../src/lib/loader-utils/get-fetch-function.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,wBAAwB,EAAE,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAC,SAAS,EAAC,+BAA4B;AAC9C,OAAO,EAAC,sBAAsB,EAAC,0BAAuB;AAEtD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAuB,EACvB,OACmD;IAEnD,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAC;IAE/C,MAAM,aAAa,GAAG,OAAO,IAAI,aAAa,CAAC;IAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;IACrE,IAAI,aAAwB,CAAC;IAE7B,kCAAkC;IAClC,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,aAAa,GAAG,WAAW,CAAC;IAC9B,CAAC;SAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,aAAa,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,CACtC,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,WAA0B,EAAE,cAAc,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1B,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC9B,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE;KACnD,CAAC,CAAC;AACL,CAAC;AAED,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,cAA2B,EAAE,cAA4B;IAClF,MAAM,OAAO,GAAG,EAAC,GAAG,cAAc,EAAE,GAAG,cAAc,EAAC,CAAC;IACvD,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  // __VERSION__ is injected by babel-plugin-version-inline
5
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
- const VERSION = typeof "5.0.0-alpha.1" !== 'undefined' ? "5.0.0-alpha.1" : 'latest';
6
+ const VERSION = typeof "5.0.0-alpha.3" !== 'undefined' ? "5.0.0-alpha.3" : 'latest';
7
7
  /**
8
8
  * Loads any data and returns null (or optionally passes through data unparsed)
9
9
  */