@loaders.gl/core 5.0.0-alpha.1 → 5.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/LICENSE +14 -3
  2. package/dist/dist.dev.js +1246 -227
  3. package/dist/dist.min.js +3 -3
  4. package/dist/index.cjs +2695 -270
  5. package/dist/index.cjs.map +3 -4
  6. package/dist/iterators/make-iterator/make-stream-iterator.js +49 -10
  7. package/dist/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  8. package/dist/lib/api/create-data-source.d.ts +1 -1
  9. package/dist/lib/api/create-data-source.d.ts.map +1 -1
  10. package/dist/lib/api/create-data-source.js +23 -2
  11. package/dist/lib/api/create-data-source.js.map +1 -1
  12. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  13. package/dist/lib/api/load-in-batches.js +17 -6
  14. package/dist/lib/api/load-in-batches.js.map +1 -1
  15. package/dist/lib/api/load-loader.d.ts +2 -0
  16. package/dist/lib/api/load-loader.d.ts.map +1 -1
  17. package/dist/lib/api/load-loader.js +113 -7
  18. package/dist/lib/api/load-loader.js.map +1 -1
  19. package/dist/lib/api/load.d.ts +3 -3
  20. package/dist/lib/api/load.d.ts.map +1 -1
  21. package/dist/lib/api/load.js +36 -6
  22. package/dist/lib/api/load.js.map +1 -1
  23. package/dist/lib/api/parse-file.d.ts.map +1 -1
  24. package/dist/lib/api/parse-file.js +6 -2
  25. package/dist/lib/api/parse-file.js.map +1 -1
  26. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  27. package/dist/lib/api/parse-in-batches.js +12 -3
  28. package/dist/lib/api/parse-in-batches.js.map +1 -1
  29. package/dist/lib/api/parse.d.ts.map +1 -1
  30. package/dist/lib/api/parse.js +11 -3
  31. package/dist/lib/api/parse.js.map +1 -1
  32. package/dist/lib/api/preload.d.ts +6 -3
  33. package/dist/lib/api/preload.d.ts.map +1 -1
  34. package/dist/lib/api/preload.js +4 -5
  35. package/dist/lib/api/preload.js.map +1 -1
  36. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
  37. package/dist/lib/filesystems/browser-filesystem.js +25 -11
  38. package/dist/lib/filesystems/browser-filesystem.js.map +1 -1
  39. package/dist/lib/init.js +1 -1
  40. package/dist/lib/init.js.map +1 -1
  41. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  42. package/dist/lib/loader-utils/get-fetch-function.js +16 -10
  43. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
  44. package/dist/lib/loader-utils/loader-context.d.ts +1 -1
  45. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  46. package/dist/lib/loader-utils/loader-context.js +8 -3
  47. package/dist/lib/loader-utils/loader-context.js.map +1 -1
  48. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  49. package/dist/lib/loader-utils/option-defaults.js +3 -0
  50. package/dist/lib/loader-utils/option-defaults.js.map +1 -1
  51. package/dist/lib/loader-utils/option-utils.d.ts +7 -0
  52. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  53. package/dist/lib/loader-utils/option-utils.js +41 -1
  54. package/dist/lib/loader-utils/option-utils.js.map +1 -1
  55. package/dist/lib/utils/response-utils.js +2 -11
  56. package/dist/lib/utils/response-utils.js.map +1 -1
  57. package/dist/null-loader.js +1 -1
  58. package/dist/null-loader.js.map +1 -1
  59. package/dist/null-worker-node.js +130 -58
  60. package/dist/null-worker.js +130 -58
  61. package/package.json +6 -6
  62. package/src/iterators/make-iterator/make-stream-iterator.ts +48 -10
  63. package/src/lib/api/create-data-source.ts +31 -2
  64. package/src/lib/api/load-in-batches.ts +18 -11
  65. package/src/lib/api/load-loader.ts +157 -14
  66. package/src/lib/api/load.ts +87 -9
  67. package/src/lib/api/parse-file.ts +15 -2
  68. package/src/lib/api/parse-in-batches.ts +22 -3
  69. package/src/lib/api/parse.ts +18 -3
  70. package/src/lib/api/preload.ts +22 -7
  71. package/src/lib/filesystems/browser-filesystem.ts +25 -11
  72. package/src/lib/loader-utils/get-fetch-function.ts +15 -14
  73. package/src/lib/loader-utils/loader-context.ts +8 -3
  74. package/src/lib/loader-utils/option-defaults.ts +3 -0
  75. package/src/lib/loader-utils/option-utils.ts +47 -1
  76. package/src/lib/utils/response-utils.ts +2 -12
@@ -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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"}
@@ -6,5 +6,5 @@ import { SourceLoader, SourceArrayOptionsType, SourceArrayDataSourceType } from
6
6
  * @param type type of source. if not known, set to 'auto'
7
7
  * @returns an DataSource instance
8
8
  */
9
- export declare function createDataSource<SourceArrayT extends SourceLoader[]>(data: unknown, sources: Readonly<SourceArrayT>, options: Readonly<SourceArrayOptionsType<SourceArrayT>>): SourceArrayDataSourceType<SourceArrayT>;
9
+ export declare function createDataSource<SourceArrayT extends SourceLoader[]>(data: unknown, sources: Readonly<SourceArrayT>, options?: Readonly<SourceArrayOptionsType<SourceArrayT>>): SourceArrayDataSourceType<SourceArrayT>;
10
10
  //# sourceMappingURL=create-data-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-source.d.ts","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAIlC;;;;;;GAMG;AAGH,wBAAgB,gBAAgB,CAAC,YAAY,SAAS,YAAY,EAAE,EAClE,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC/B,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,GACtD,yBAAyB,CAAC,YAAY,CAAC,CAmBzC"}
1
+ {"version":3,"file":"create-data-source.d.ts","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAKlC;;;;;;GAMG;AAGH,wBAAgB,gBAAgB,CAAC,YAAY,SAAS,YAAY,EAAE,EAClE,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC/B,OAAO,GAAE,QAAQ,CACf,sBAAsB,CAAC,YAAY,CAAC,CACQ,GAC7C,yBAAyB,CAAC,YAAY,CAAC,CA6CzC"}
@@ -1,6 +1,7 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { resolveAuthenticationOptions } from '@loaders.gl/loader-utils';
4
5
  import { coreApi } from "./core-api.js";
5
6
  import { selectLoaderSync } from "./select-loader.js";
6
7
  /**
@@ -12,7 +13,7 @@ import { selectLoaderSync } from "./select-loader.js";
12
13
  */
13
14
  // DataSourceOptionsT extends DataSourceOptions = DataSourceOptions,
14
15
  // DataSourceT extends DataSource = DataSource
15
- export function createDataSource(data, sources, options) {
16
+ export function createDataSource(data, sources, options = {}) {
16
17
  const resolvedOptions = (options || {});
17
18
  const type = resolvedOptions?.core?.type || resolvedOptions.type || 'auto';
18
19
  const source = sources.length === 1
@@ -28,7 +29,27 @@ export function createDataSource(data, sources, options) {
28
29
  if (!source) {
29
30
  throw new Error('Not a valid source type');
30
31
  }
31
- return source.createDataSource(data, resolvedOptions, coreApi);
32
+ const contributions = resolvedOptions.core?.credentials?.length
33
+ ? source.getAuthentications?.(typeof data === 'string' ? data : '', resolvedOptions)
34
+ : undefined;
35
+ if (contributions && 'then' in contributions) {
36
+ // Avoid an unhandled rejection from a hook that cannot be awaited by this sync API.
37
+ void contributions.catch(() => { });
38
+ throw new Error('Use load() with an asynchronous getAuthentications() hook.');
39
+ }
40
+ const authenticatedOptions = resolveAuthenticationOptions(contributions?.length
41
+ ? {
42
+ ...resolvedOptions,
43
+ core: {
44
+ ...resolvedOptions.core,
45
+ authentications: [
46
+ ...(resolvedOptions.core?.authentications || []),
47
+ ...(contributions || [])
48
+ ]
49
+ }
50
+ }
51
+ : resolvedOptions);
52
+ return source.createDataSource(data, authenticatedOptions, coreApi);
32
53
  }
33
54
  /** Guess service type from URL */
34
55
  function getSourceOfType(type, sources) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-source.js","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,EAAC,OAAO,EAAC,sBAAmB;AACnC,OAAO,EAAC,gBAAgB,EAAC,2BAAwB;AAEjD;;;;;;GAMG;AACH,oEAAoE;AACpE,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB,CAC9B,IAAa,EACb,OAA+B,EAC/B,OAAuD;IAEvD,MAAM,eAAe,GAAG,CAAC,OAAO,IAAI,EAAE,CAAyC,CAAC;IAChF,MAAM,IAAI,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,IAAK,eAAe,CAAC,IAA0B,IAAI,MAAM,CAAC;IAClG,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,IAAI,KAAK,MAAM;YACf,CAAC,CAAE,gBAAgB,CAAC,IAAa,EAAE,OAAoC,EAAE;gBACrE,yEAAyE;gBACzE,iDAAiD;gBACjD,GAAG,eAAe;gBAClB,IAAI,EAAE,EAAC,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC;aAC/C,CAAiC;YACpC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAqB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AAClF,CAAC;AAED,kCAAkC;AAClC,SAAS,eAAe,CAAC,IAAY,EAAE,OAAiC;IACtE,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"create-data-source.js","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,EAAC,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAC,OAAO,EAAC,sBAAmB;AACnC,OAAO,EAAC,gBAAgB,EAAC,2BAAwB;AAEjD;;;;;;GAMG;AACH,oEAAoE;AACpE,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB,CAC9B,IAAa,EACb,OAA+B,EAC/B,UAEI,EAA0C;IAE9C,MAAM,eAAe,GAAG,CAAC,OAAO,IAAI,EAAE,CAAyC,CAAC;IAChF,MAAM,IAAI,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,IAAK,eAAe,CAAC,IAA0B,IAAI,MAAM,CAAC;IAClG,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,IAAI,KAAK,MAAM;YACf,CAAC,CAAE,gBAAgB,CAAC,IAAa,EAAE,OAAoC,EAAE;gBACrE,yEAAyE;gBACzE,iDAAiD;gBACjD,GAAG,eAAe;gBAClB,IAAI,EAAE,EAAC,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC;aAC/C,CAAiC;YACpC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM;QAC7D,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC;QACpF,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,aAAa,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;QAC7C,oFAAoF;QACpF,KAAK,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,oBAAoB,GAAG,4BAA4B,CACvD,aAAa,EAAE,MAAM;QACnB,CAAC,CAAC;YACE,GAAG,eAAe;YAClB,IAAI,EAAE;gBACJ,GAAG,eAAe,CAAC,IAAI;gBACvB,eAAe,EAAE;oBACf,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,IAAI,EAAE,CAAC;oBAChD,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;iBACzB;aACF;SACF;QACH,CAAC,CAAC,eAAe,CACpB,CAAC;IACF,OAAO,MAAM,CAAC,gBAAgB,CAC5B,IAAqB,EACrB,oBAAoB,EACpB,OAAO,CACmC,CAAC;AAC/C,CAAC;AAED,kCAAkC;AAClC,SAAS,eAAe,CAAC,IAAY,EAAE,OAAiC;IACtE,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EAGb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAMlC,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC;AAEjG;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"load-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EAEb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAUlC,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC;AAEjG;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC"}
@@ -1,9 +1,13 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { resolveLoaderAuthenticationOptions } from '@loaders.gl/loader-utils';
4
5
  import { isLoaderObject } from "../loader-utils/normalize-loader.js";
5
6
  import { getFetchFunction } from "../loader-utils/get-fetch-function.js";
7
+ import { applySearchParamsToUrl } from "../loader-utils/option-utils.js";
6
8
  import { parseInBatches } from "./parse-in-batches.js";
9
+ import { selectLoader } from "./select-loader.js";
10
+ import { getLoaderImplementation } from "./load-loader.js";
7
11
  export function loadInBatches(files, loaders, options, context) {
8
12
  let loadersArray;
9
13
  // Signature: load(url, options)
@@ -15,21 +19,28 @@ export function loadInBatches(files, loaders, options, context) {
15
19
  else {
16
20
  loadersArray = loaders;
17
21
  }
18
- // Select fetch function
19
- const fetch = getFetchFunction(options || {});
20
22
  // Single url/file
21
23
  if (!Array.isArray(files)) {
22
- return loadOneFileInBatches(files, loadersArray, options || {}, fetch);
24
+ return loadOneFileInBatches(files, loadersArray, options || {});
23
25
  }
24
26
  // Multiple URLs / files
25
- const promises = files.map(file => loadOneFileInBatches(file, loadersArray, options || {}, fetch));
27
+ const promises = files.map(file => loadOneFileInBatches(file, loadersArray, options || {}));
26
28
  // No point in waiting here for all responses before starting to stream individual streams?
27
29
  return promises;
28
30
  }
29
- async function loadOneFileInBatches(file, loaders, options, fetch) {
31
+ async function loadOneFileInBatches(file, loaders, options) {
30
32
  if (typeof file === 'string') {
31
33
  const url = file;
32
- const response = await fetch(url);
34
+ const loader = await selectLoader(url, loaders, {
35
+ ...options,
36
+ core: { ...options.core, nothrow: true }
37
+ });
38
+ const authenticationLoader = loader && !loader.getAuthentications && options.core?.credentials?.length
39
+ ? await getLoaderImplementation(loader, options, url)
40
+ : loader;
41
+ options = await resolveLoaderAuthenticationOptions(authenticationLoader, url, options);
42
+ const fetch = getFetchFunction(options);
43
+ const response = await fetch(applySearchParamsToUrl(url, options));
33
44
  // pick right overload
34
45
  return Array.isArray(loaders)
35
46
  ? await parseInBatches(response, loaders, options)
@@ -1 +1 @@
1
- {"version":3,"file":"load-in-batches.js","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAapC,OAAO,EAAC,cAAc,EAAC,4CAAyC;AAChE,OAAO,EAAC,gBAAgB,EAAC,8CAA2C;AAEpE,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAyClD,MAAM,UAAU,aAAa,CAC3B,KAAuC,EACvC,OAA2C,EAC3C,OAAuB,EACvB,OAAuB;IAEvB,IAAI,YAA2C,CAAC;IAChD,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,GAAG,SAAS,CAAC,CAAC,2CAA2C;QAChE,OAAO,GAAG,OAAwB,CAAC;QACnC,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,OAAwC,CAAC;IAC1D,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAE9C,kBAAkB;IAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,oBAAoB,CAAC,KAAK,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAChC,oBAAoB,CAAC,IAAI,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAChE,CAAC;IAEF,2FAA2F;IAC3F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAc,EACd,OAA0B,EAC1B,OAAsB,EACtB,KAAgB;IAEhB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,sBAAsB;QACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YAClD,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,sBAAsB;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC;QACnE,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"load-in-batches.js","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAYpC,OAAO,EAAC,kCAAkC,EAAC,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,4CAAyC;AAChE,OAAO,EAAC,gBAAgB,EAAC,8CAA2C;AACpE,OAAO,EAAC,sBAAsB,EAAC,wCAAqC;AAEpE,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAClD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,uBAAuB,EAAC,yBAAsB;AAyCtD,MAAM,UAAU,aAAa,CAC3B,KAAuC,EACvC,OAA2C,EAC3C,OAAuB,EACvB,OAAuB;IAEvB,IAAI,YAA2C,CAAC;IAChD,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,GAAG,SAAS,CAAC,CAAC,2CAA2C;QAChE,OAAO,GAAG,OAAwB,CAAC;QACnC,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,OAAwC,CAAC;IAC1D,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,oBAAoB,CAAC,KAAK,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAE7F,2FAA2F;IAC3F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAc,EACd,OAA0B,EAC1B,OAAsB;IAEtB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE;YAC9C,GAAG,OAAO;YACV,IAAI,EAAE,EAAC,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC;SACvC,CAAC,CAAC;QACH,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM;YACvE,CAAC,CAAC,MAAM,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC;YACrD,CAAC,CAAC,MAAM,CAAC;QACb,OAAO,GAAG,MAAM,kCAAkC,CAAC,oBAAoB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,sBAAsB;QACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YAClD,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,sBAAsB;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC;QACnE,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
@@ -5,4 +5,6 @@ export declare function getLoaderImplementation(loader: Loader, options?: Loader
5
5
  export declare function getLoaderImplementationSync(loader: Loader): LoaderWithParser | null;
6
6
  /** Returns true when a loader object already includes parser methods. */
7
7
  export declare function isLoaderWithParser(loader: Loader): loader is LoaderWithParser;
8
+ /** Resolves declared dependencies and binds parser entry points to their implementations. */
9
+ export declare function preloadLoaderDependencies(loader: Loader, options?: LoaderOptions, url?: string): Promise<LoaderWithParser>;
8
10
  //# sourceMappingURL=load-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKtF,+EAA+E;AAC/E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAyC3B;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAOnF;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAW7E"}
1
+ {"version":3,"file":"load-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAKlC,+EAA+E;AAC/E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAkD3B;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAYnF;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAW7E;AAiFD,6FAA6F;AAC7F,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAI3B"}
@@ -1,10 +1,18 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { isSourceLoader, mergeOptions } from '@loaders.gl/loader-utils';
4
5
  const loaderImplementationPromises = new Map();
5
6
  const loaderImplementations = new Map();
6
7
  /** Gets a parser-bearing implementation for a loader, loading it if needed. */
7
8
  export async function getLoaderImplementation(loader, options, url) {
9
+ if (isSourceLoader(loader)) {
10
+ const source = loader.preload ? await loader.preload(url || '', options) : loader;
11
+ if (!isSourceLoader(source)) {
12
+ throw new Error(`${loader.id} source loader preload() did not return a runtime source loader`);
13
+ }
14
+ return source;
15
+ }
8
16
  if (isLoaderWithParser(loader)) {
9
17
  return loader;
10
18
  }
@@ -43,6 +51,13 @@ export async function getLoaderImplementation(loader, options, url) {
43
51
  }
44
52
  /** Gets a cached parser-bearing implementation for a loader without loading it. */
45
53
  export function getLoaderImplementationSync(loader) {
54
+ if (loader.subloaders && !preparedLoaders.has(loader)) {
55
+ const prepared = preparedDefaults.get(loader);
56
+ if (prepared)
57
+ return prepared;
58
+ if (!isLoaderWithParser(loader))
59
+ return null;
60
+ }
46
61
  if (isLoaderWithParser(loader)) {
47
62
  return loader;
48
63
  }
@@ -91,13 +106,7 @@ function getLoaderImplementationSpecifier(loader, options) {
91
106
  function getLoaderImplementationCacheKey(loader, options) {
92
107
  const loaderOptions = options?.[loader.id];
93
108
  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;
109
+ return String(loaderOptions?.backend || defaultLoaderOptions?.backend || '');
101
110
  }
102
111
  /** Imports a module and finds the parser-bearing loader implementation with the requested id. */
103
112
  async function importLoaderImplementation(implementationSpecifier, loaderId) {
@@ -113,4 +122,101 @@ async function importLoaderImplementation(implementationSpecifier, loaderId) {
113
122
  }
114
123
  throw new Error(`Could not find parser implementation for ${loaderId} in ${implementationSpecifier}`);
115
124
  }
125
+ /** Prepared loaders carry caller-local parser bindings rather than shared metadata. */
126
+ const preparedLoaders = new WeakSet();
127
+ /** Successfully prepared default graphs used by synchronous parsing. */
128
+ const preparedDefaults = new WeakMap();
129
+ /** In-flight preparations for default dependency graphs. */
130
+ const subloaderPreparations = new WeakMap();
131
+ /** Resolves declared dependencies and binds parser entry points to their implementations. */
132
+ export async function preloadLoaderDependencies(loader, options, url) {
133
+ if (preparedLoaders.has(loader))
134
+ return await getLoaderImplementation(loader, options, url);
135
+ validateSubloaderGraph(loader, options);
136
+ return await prepareLoaderDependencies(loader, options, url);
137
+ }
138
+ /** Prepares a node after the complete dependency graph has been validated. */
139
+ async function prepareLoaderDependencies(loader, options, url) {
140
+ // Options can select nested backends or overrides; do not share their bindings.
141
+ if (!options) {
142
+ const cached = subloaderPreparations.get(loader);
143
+ if (cached)
144
+ return await cached;
145
+ }
146
+ const preparation = bindSubloaders(loader, options, url);
147
+ if (!options) {
148
+ subloaderPreparations.set(loader, preparation);
149
+ void preparation.catch(() => subloaderPreparations.delete(loader));
150
+ }
151
+ const prepared = await preparation;
152
+ if (!options)
153
+ preparedDefaults.set(loader, prepared);
154
+ return prepared;
155
+ }
156
+ /** Returns declared dependencies with the shared flat override map applied. */
157
+ function getSubloaders(loader, options) {
158
+ const overrides = options?.core?.subloaders || {};
159
+ return Object.fromEntries(Object.entries(loader.subloaders || {}).map(([name, dependency]) => [
160
+ name,
161
+ Object.hasOwn(overrides, name) ? overrides[name] : dependency
162
+ ]));
163
+ }
164
+ /** Rejects cycles in the dependency graph after applying the shared overrides. */
165
+ function validateSubloaderGraph(loader, options) {
166
+ visitLoader(loader, []);
167
+ /** Detects cycles along each resolved dependency path. */
168
+ function visitLoader(currentLoader, ancestors) {
169
+ if (ancestors.includes(currentLoader)) {
170
+ throw new Error(`Subloader cycle: ${[...ancestors, currentLoader].map(value => value.id).join(' -> ')}`);
171
+ }
172
+ for (const dependency of Object.values(getSubloaders(currentLoader, options))) {
173
+ visitLoader(dependency, [...ancestors, currentLoader]);
174
+ }
175
+ }
176
+ }
177
+ /** Prepares dependencies concurrently and injects them into parser calls' scoped options. */
178
+ async function bindSubloaders(loader, options, url) {
179
+ const [implementation, entries] = await Promise.all([
180
+ getLoaderImplementation(loader, options, url),
181
+ Promise.all(Object.entries(getSubloaders(loader, options)).map(async ([name, dependency]) => [name, await prepareLoaderDependencies(dependency, options, url)]))
182
+ ]);
183
+ const subloaders = Object.fromEntries(entries);
184
+ // Expose preload settings as defaults before core normalizes a later parse call.
185
+ const defaultOptions = mergeOptions(implementation.options, (options || {}));
186
+ defaultOptions.core = { ...defaultOptions.core, worker: false };
187
+ const prepared = { ...implementation, options: defaultOptions, subloaders };
188
+ delete prepared.preload;
189
+ // Function-valued dependency bindings cannot be transferred to a worker.
190
+ prepared.worker = false;
191
+ for (const method of [
192
+ 'parseBlob',
193
+ 'createDataSource',
194
+ 'parse',
195
+ 'parseSync',
196
+ 'parseText',
197
+ 'parseTextSync',
198
+ 'parseInBatches',
199
+ 'parseFile',
200
+ 'parseFileInBatches',
201
+ 'parseUrl'
202
+ ]) {
203
+ const parser = implementation[method];
204
+ if (typeof parser === 'function') {
205
+ prepared[method] = (data, parseOptions, context) => {
206
+ const forwardedOptions = mergeOptions(options, parseOptions || {});
207
+ return parser.call(implementation, data, {
208
+ ...forwardedOptions,
209
+ core: {
210
+ ...forwardedOptions.core,
211
+ subloaders: options?.core?.subloaders || parseOptions?.core?.subloaders,
212
+ worker: false
213
+ },
214
+ [loader.id]: { ...forwardedOptions[loader.id], subloaders }
215
+ }, context);
216
+ };
217
+ }
218
+ }
219
+ preparedLoaders.add(prepared);
220
+ return prepared;
221
+ }
116
222
  //# sourceMappingURL=load-loader.js.map
@@ -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,4 +1,4 @@
1
- import type { DataType, Loader, LoaderContext, LoaderOptions, LoaderOptionsWithShape, LoaderOptionsType, LoaderShapeType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType } from '@loaders.gl/loader-utils';
1
+ import type { DataType, Loader, LoaderContext, LoaderOptions, LoaderOptionsWithShape, LoaderOptionsType, LoaderShapeType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType, SourceLoader, SourcePropsType, SourceArrayOptionsType, DataSourceOptions } from '@loaders.gl/loader-utils';
2
2
  /**
3
3
  * Parses `data` using a specified loader
4
4
  * Note: Load does duplicate a lot of parse.
@@ -8,8 +8,8 @@ import type { DataType, Loader, LoaderContext, LoaderOptions, LoaderOptionsWithS
8
8
  * @param options
9
9
  * @param context
10
10
  */
11
- export declare function load<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(url: string | DataType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<LoaderReturnType<LoaderT>>;
12
- export declare function load<LoaderArrayT extends Loader[], OptionsT extends LoaderOptions = LoaderArrayOptionsType<LoaderArrayT>>(url: string | DataType, loaders: LoaderArrayT, options?: OptionsT, context?: LoaderContext): Promise<LoaderArrayReturnType<LoaderArrayT>>;
11
+ export declare function load<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(url: string | DataType, loader: LoaderT, options?: LoaderT extends SourceLoader ? SourcePropsType<LoaderT> & DataSourceOptions : OptionsT, context?: LoaderContext): Promise<LoaderReturnType<LoaderT>>;
12
+ export declare function load<LoaderArrayT extends Loader[], OptionsT extends LoaderOptions = LoaderArrayOptionsType<LoaderArrayT>>(url: string | DataType, loaders: LoaderArrayT, options?: LoaderArrayT extends SourceLoader[] ? SourceArrayOptionsType<LoaderArrayT> : OptionsT, context?: LoaderContext): Promise<LoaderArrayReturnType<LoaderArrayT>>;
13
13
  /**
14
14
  * Loads data asynchronously by matching a pre-registered loader
15
15
  * @deprecated Loader registration is deprecated, use load(data, loaders, options) instead
@@ -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,EACrB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAwBlC;;;;;;;;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,OAAO,SAAS,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,iBAAiB,GAAG,QAAQ,EAChG,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,YAAY,SAAS,YAAY,EAAE,GAAG,sBAAsB,CAAC,YAAY,CAAC,GAAG,QAAQ,EAC/F,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,10 +1,10 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { isBlob, isSourceLoader } from '@loaders.gl/loader-utils';
4
+ import { isBlob, isSourceLoader, resolveAuthenticationOptions, resolveLoaderAuthenticationOptions } from '@loaders.gl/loader-utils';
5
5
  import { isLoaderObject } from "../loader-utils/normalize-loader.js";
6
6
  import { getFetchFunction } from "../loader-utils/get-fetch-function.js";
7
- import { normalizeLoaderOptions } from "../loader-utils/option-utils.js";
7
+ import { applySearchParamsToUrl, normalizeLoaderOptions, getGlobalLoaderOptions } from "../loader-utils/option-utils.js";
8
8
  import { fetchFile } from "../fetch/fetch-file.js";
9
9
  import { parse } from "./parse.js";
10
10
  import { parseFile } from "./parse-file.js";
@@ -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) {
@@ -27,7 +28,10 @@ export async function load(url, loaders, options, context) {
27
28
  resolvedLoaders = loaders;
28
29
  resolvedOptions = options;
29
30
  }
31
+ resolvedOptions ||= getGlobalLoaderOptions();
30
32
  if (!Array.isArray(resolvedLoaders) && isSourceLoader(resolvedLoaders)) {
33
+ const sourceLoader = await resolveSourceLoader(resolvedLoaders, url, resolvedOptions);
34
+ resolvedOptions = await resolveLoaderAuthenticationOptions(resolvedLoaders.getAuthentications ? resolvedLoaders : sourceLoader, typeof url === 'string' ? url : '', resolvedOptions || {});
31
35
  const runtimeCoreApi = {
32
36
  fetchFile,
33
37
  parse,
@@ -37,11 +41,13 @@ export async function load(url, loaders, options, context) {
37
41
  load,
38
42
  loadInBatches
39
43
  };
40
- return resolvedLoaders.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
44
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
41
45
  }
42
46
  if (Array.isArray(resolvedLoaders) &&
43
47
  resolvedLoaders.length === 1 &&
44
48
  isSourceLoader(resolvedLoaders[0])) {
49
+ const sourceLoader = await resolveSourceLoader(resolvedLoaders[0], url, resolvedOptions);
50
+ resolvedOptions = await resolveLoaderAuthenticationOptions(resolvedLoaders[0].getAuthentications ? resolvedLoaders[0] : sourceLoader, typeof url === 'string' ? url : '', resolvedOptions || {});
45
51
  const runtimeCoreApi = {
46
52
  fetchFile,
47
53
  parse,
@@ -51,7 +57,7 @@ export async function load(url, loaders, options, context) {
51
57
  load,
52
58
  loadInBatches
53
59
  };
54
- return resolvedLoaders[0].createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
60
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
55
61
  }
56
62
  if (typeof url === 'string' || isBlob(url)) {
57
63
  const selectedLoader = await selectLoader(url, resolvedLoaders, {
@@ -59,7 +65,9 @@ export async function load(url, loaders, options, context) {
59
65
  core: { ...resolvedOptions?.core, nothrow: true }
60
66
  });
61
67
  if (selectedLoader && isSourceLoader(selectedLoader)) {
62
- return selectedLoader.createDataSource(url, (resolvedOptions || {}), {
68
+ const sourceLoader = await resolveSourceLoader(selectedLoader, url, resolvedOptions);
69
+ resolvedOptions = await resolveLoaderAuthenticationOptions(selectedLoader.getAuthentications ? selectedLoader : sourceLoader, typeof url === 'string' ? url : '', resolvedOptions || {});
70
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), {
63
71
  fetchFile,
64
72
  parse,
65
73
  parseFile,
@@ -69,14 +77,25 @@ export async function load(url, loaders, options, context) {
69
77
  loadInBatches
70
78
  });
71
79
  }
80
+ if (selectedLoader && typeof url === 'string') {
81
+ const loaderImplementation = await getLoaderImplementation(selectedLoader, resolvedOptions, url);
82
+ resolvedOptions = await resolveLoaderAuthenticationOptions(selectedLoader.getAuthentications ? selectedLoader : loaderImplementation, url, resolvedOptions || {});
83
+ const parseUrl = loaderImplementation.parseUrl;
84
+ if (parseUrl) {
85
+ const requestUrl = applySearchParamsToUrl(url, resolvedOptions);
86
+ return await parseUrl(requestUrl, resolvedOptions, context);
87
+ }
88
+ }
72
89
  }
73
90
  // Select fetch function
91
+ if (resolvedOptions)
92
+ resolvedOptions = resolveAuthenticationOptions(resolvedOptions);
74
93
  const fetch = getFetchFunction(resolvedOptions);
75
94
  // at this point, `url` could be already loaded binary data
76
95
  let data = url;
77
96
  // url is a string, fetch the url
78
97
  if (typeof url === 'string') {
79
- data = await fetch(url);
98
+ data = await fetch(applySearchParamsToUrl(url, resolvedOptions));
80
99
  // URL is Blob or File, fetchFile handles it (alt: we could generate ObjectURL here)
81
100
  }
82
101
  if (isBlob(url)) {
@@ -102,4 +121,15 @@ export async function load(url, loaders, options, context) {
102
121
  ? await parse(data, resolvedLoaders, resolvedOptions, context) // loader array overload
103
122
  : await parse(data, resolvedLoaders, resolvedOptions, context); // single loader overload
104
123
  }
124
+ /** Resolves a lightweight source loader into its runtime implementation when necessary. */
125
+ async function resolveSourceLoader(loader, url, options) {
126
+ if (!loader.preload) {
127
+ return loader;
128
+ }
129
+ const sourceLoader = await loader.preload(typeof url === 'string' ? url : '', options);
130
+ if (!isSourceLoader(sourceLoader)) {
131
+ throw new Error(`${loader.id} source loader preload() did not return a runtime source loader`);
132
+ }
133
+ return sourceLoader;
134
+ }
105
135
  //# 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-file.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse-file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAErB,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAUlC;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,IAAI,EAAE,YAAY,EAClB,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,SAAS,CAC7B,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,IAAI,EAAE,YAAY,EAClB,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,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"parse-file.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse-file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAErB,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAclC;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,IAAI,EAAE,YAAY,EAClB,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,SAAS,CAC7B,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,IAAI,EAAE,YAAY,EAClB,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,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,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 { isSourceLoader, mergeOptions } from '@loaders.gl/loader-utils';
4
+ import { isSourceLoader, mergeOptions, resolveLoaderAuthenticationOptions } 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";
@@ -35,7 +35,11 @@ export async function parseFile(file, loaders, options, context) {
35
35
  throw new Error(`${loader.id} is a SourceLoader. Use load() to create a runtime source object instead of parseFile().`);
36
36
  }
37
37
  // @ts-expect-error candidateLoaders may be a single forced loader
38
- const strictOptions = normalizeOptions(options, loader, candidateLoaders, url);
38
+ const normalizedOptions = normalizeOptions(options, loader, candidateLoaders, url);
39
+ const authenticationLoader = !loader.getAuthentications && normalizedOptions.core?.credentials?.length
40
+ ? await getLoaderImplementation(loader, normalizedOptions, url || context?.url)
41
+ : loader;
42
+ const strictOptions = await resolveLoaderAuthenticationOptions(authenticationLoader, url, normalizedOptions);
39
43
  context = getLoaderContext(
40
44
  // @ts-expect-error candidateLoaders may be a single forced loader
41
45
  { url, _parse: parse, loaders: candidateLoaders }, strictOptions, context || null);