@loaders.gl/core 4.5.3 → 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 (127) hide show
  1. package/LICENSE +14 -3
  2. package/dist/dist.dev.js +1789 -352
  3. package/dist/dist.min.js +4 -3
  4. package/dist/index.cjs +3087 -311
  5. package/dist/index.cjs.map +3 -4
  6. package/dist/index.d.ts +8 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/iterators/make-iterator/make-stream-iterator.js +48 -9
  11. package/dist/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  12. package/dist/lib/api/core-api.d.ts +6 -0
  13. package/dist/lib/api/core-api.d.ts.map +1 -0
  14. package/dist/lib/api/core-api.js +23 -0
  15. package/dist/lib/api/core-api.js.map +1 -0
  16. package/dist/lib/api/create-data-source.d.ts +2 -2
  17. package/dist/lib/api/create-data-source.d.ts.map +1 -1
  18. package/dist/lib/api/create-data-source.js +36 -14
  19. package/dist/lib/api/create-data-source.js.map +1 -1
  20. package/dist/lib/api/load-in-batches.d.ts +4 -4
  21. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  22. package/dist/lib/api/load-in-batches.js +17 -6
  23. package/dist/lib/api/load-in-batches.js.map +1 -1
  24. package/dist/lib/api/load-loader.d.ts +10 -0
  25. package/dist/lib/api/load-loader.d.ts.map +1 -0
  26. package/dist/lib/api/load-loader.js +222 -0
  27. package/dist/lib/api/load-loader.js.map +1 -0
  28. package/dist/lib/api/load.d.ts +3 -3
  29. package/dist/lib/api/load.d.ts.map +1 -1
  30. package/dist/lib/api/load.js +84 -5
  31. package/dist/lib/api/load.js.map +1 -1
  32. package/dist/lib/api/parse-file.d.ts +15 -0
  33. package/dist/lib/api/parse-file.d.ts.map +1 -0
  34. package/dist/lib/api/parse-file.js +74 -0
  35. package/dist/lib/api/parse-file.js.map +1 -0
  36. package/dist/lib/api/parse-in-batches.d.ts +2 -2
  37. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  38. package/dist/lib/api/parse-in-batches.js +18 -7
  39. package/dist/lib/api/parse-in-batches.js.map +1 -1
  40. package/dist/lib/api/parse-sync.d.ts +2 -2
  41. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  42. package/dist/lib/api/parse-sync.js +10 -1
  43. package/dist/lib/api/parse-sync.js.map +1 -1
  44. package/dist/lib/api/parse.d.ts +2 -2
  45. package/dist/lib/api/parse.d.ts.map +1 -1
  46. package/dist/lib/api/parse.js +34 -17
  47. package/dist/lib/api/parse.js.map +1 -1
  48. package/dist/lib/api/preload.d.ts +14 -0
  49. package/dist/lib/api/preload.d.ts.map +1 -0
  50. package/dist/lib/api/preload.js +13 -0
  51. package/dist/lib/api/preload.js.map +1 -0
  52. package/dist/lib/api/register-loaders.js +1 -1
  53. package/dist/lib/api/register-loaders.js.map +1 -1
  54. package/dist/lib/api/select-loader.d.ts.map +1 -1
  55. package/dist/lib/api/select-loader.js +48 -5
  56. package/dist/lib/api/select-loader.js.map +1 -1
  57. package/dist/lib/api/select-source.d.ts +3 -3
  58. package/dist/lib/api/select-source.d.ts.map +1 -1
  59. package/dist/lib/api/select-source.js +2 -5
  60. package/dist/lib/api/select-source.js.map +1 -1
  61. package/dist/lib/fetch/fetch-error-message.js +1 -1
  62. package/dist/lib/fetch/fetch-error-message.js.map +1 -1
  63. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
  64. package/dist/lib/filesystems/browser-filesystem.js +25 -11
  65. package/dist/lib/filesystems/browser-filesystem.js.map +1 -1
  66. package/dist/lib/init.js +1 -1
  67. package/dist/lib/init.js.map +1 -1
  68. package/dist/lib/loader-utils/check-errors.js +1 -1
  69. package/dist/lib/loader-utils/check-errors.js.map +1 -1
  70. package/dist/lib/loader-utils/get-data.d.ts +4 -0
  71. package/dist/lib/loader-utils/get-data.d.ts.map +1 -1
  72. package/dist/lib/loader-utils/get-data.js +26 -0
  73. package/dist/lib/loader-utils/get-data.js.map +1 -1
  74. package/dist/lib/loader-utils/get-fetch-function.d.ts +1 -1
  75. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  76. package/dist/lib/loader-utils/get-fetch-function.js +16 -10
  77. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
  78. package/dist/lib/loader-utils/loader-context.d.ts +2 -2
  79. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  80. package/dist/lib/loader-utils/loader-context.js +11 -4
  81. package/dist/lib/loader-utils/loader-context.js.map +1 -1
  82. package/dist/lib/loader-utils/loggers.d.ts +19 -0
  83. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  84. package/dist/lib/loader-utils/loggers.js +28 -2
  85. package/dist/lib/loader-utils/loggers.js.map +1 -1
  86. package/dist/lib/loader-utils/option-defaults.d.ts +1 -0
  87. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  88. package/dist/lib/loader-utils/option-defaults.js +5 -0
  89. package/dist/lib/loader-utils/option-defaults.js.map +1 -1
  90. package/dist/lib/loader-utils/option-utils.d.ts +7 -0
  91. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  92. package/dist/lib/loader-utils/option-utils.js +91 -3
  93. package/dist/lib/loader-utils/option-utils.js.map +1 -1
  94. package/dist/lib/utils/response-utils.js +5 -14
  95. package/dist/lib/utils/response-utils.js.map +1 -1
  96. package/dist/null-loader.d.ts.map +1 -1
  97. package/dist/null-loader.js +1 -1
  98. package/dist/null-loader.js.map +1 -1
  99. package/dist/null-worker-node.js +270 -42
  100. package/dist/null-worker.js +270 -42
  101. package/package.json +6 -6
  102. package/src/index.ts +10 -1
  103. package/src/iterators/make-iterator/make-stream-iterator.ts +47 -9
  104. package/src/lib/api/core-api.ts +25 -0
  105. package/src/lib/api/create-data-source.ts +53 -24
  106. package/src/lib/api/load-in-batches.ts +33 -21
  107. package/src/lib/api/load-loader.ts +306 -0
  108. package/src/lib/api/load.ts +160 -9
  109. package/src/lib/api/parse-file.ts +156 -0
  110. package/src/lib/api/parse-in-batches.ts +35 -8
  111. package/src/lib/api/parse-sync.ts +27 -2
  112. package/src/lib/api/parse.ts +61 -20
  113. package/src/lib/api/preload.ts +46 -0
  114. package/src/lib/api/register-loaders.ts +1 -1
  115. package/src/lib/api/select-loader.ts +57 -5
  116. package/src/lib/api/select-source.ts +7 -10
  117. package/src/lib/fetch/fetch-error-message.ts +1 -1
  118. package/src/lib/filesystems/browser-filesystem.ts +25 -11
  119. package/src/lib/loader-utils/check-errors.ts +1 -1
  120. package/src/lib/loader-utils/get-data.ts +36 -0
  121. package/src/lib/loader-utils/get-fetch-function.ts +17 -15
  122. package/src/lib/loader-utils/loader-context.ts +13 -5
  123. package/src/lib/loader-utils/loggers.ts +28 -2
  124. package/src/lib/loader-utils/option-defaults.ts +5 -0
  125. package/src/lib/loader-utils/option-utils.ts +106 -3
  126. package/src/lib/utils/response-utils.ts +5 -15
  127. package/src/null-loader.ts +3 -3
@@ -0,0 +1,222 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { isSourceLoader, mergeOptions } from '@loaders.gl/loader-utils';
5
+ const loaderImplementationPromises = new Map();
6
+ const loaderImplementations = new Map();
7
+ /** Gets a parser-bearing implementation for a loader, loading it if needed. */
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
+ }
16
+ if (isLoaderWithParser(loader)) {
17
+ return loader;
18
+ }
19
+ const implementationCacheKey = getLoaderImplementationCacheKey(loader, options);
20
+ const loaderImplementation = loaderImplementations.get(loader)?.get(implementationCacheKey);
21
+ if (loaderImplementation) {
22
+ return loaderImplementation;
23
+ }
24
+ let loaderImplementationPromisesForLoader = loaderImplementationPromises.get(loader);
25
+ if (!loaderImplementationPromisesForLoader) {
26
+ loaderImplementationPromisesForLoader = new Map();
27
+ loaderImplementationPromises.set(loader, loaderImplementationPromisesForLoader);
28
+ }
29
+ let loaderImplementationPromise = loaderImplementationPromisesForLoader.get(implementationCacheKey);
30
+ if (!loaderImplementationPromise) {
31
+ loaderImplementationPromise = resolveLoaderImplementation(loader, options, url)
32
+ .then(implementation => {
33
+ let loaderImplementationsForLoader = loaderImplementations.get(loader);
34
+ if (!loaderImplementationsForLoader) {
35
+ loaderImplementationsForLoader = new Map();
36
+ loaderImplementations.set(loader, loaderImplementationsForLoader);
37
+ }
38
+ loaderImplementationsForLoader.set(implementationCacheKey, implementation);
39
+ return implementation;
40
+ })
41
+ .catch(error => {
42
+ loaderImplementationPromisesForLoader.delete(implementationCacheKey);
43
+ if (loaderImplementationPromisesForLoader.size === 0) {
44
+ loaderImplementationPromises.delete(loader);
45
+ }
46
+ throw error;
47
+ });
48
+ loaderImplementationPromisesForLoader.set(implementationCacheKey, loaderImplementationPromise);
49
+ }
50
+ return await loaderImplementationPromise;
51
+ }
52
+ /** Gets a cached parser-bearing implementation for a loader without loading it. */
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
+ }
61
+ if (isLoaderWithParser(loader)) {
62
+ return loader;
63
+ }
64
+ const implementationCacheKey = getLoaderImplementationCacheKey(loader);
65
+ return loaderImplementations.get(loader)?.get(implementationCacheKey) || null;
66
+ }
67
+ /** Returns true when a loader object already includes parser methods. */
68
+ export function isLoaderWithParser(loader) {
69
+ const candidate = loader;
70
+ return Boolean(candidate.parse ||
71
+ candidate.parseSync ||
72
+ candidate.parseInBatches ||
73
+ candidate.parseText ||
74
+ candidate.parseTextSync ||
75
+ candidate.parseFile ||
76
+ candidate.parseFileInBatches);
77
+ }
78
+ /** Resolves a parser-bearing implementation through loader preload or the test import fallback. */
79
+ async function resolveLoaderImplementation(loader, options, url) {
80
+ if (loader.preload) {
81
+ const preloadedLoader = await loader.preload(url || '', options);
82
+ if (isLoaderWithParser(preloadedLoader)) {
83
+ return preloadedLoader;
84
+ }
85
+ throw new Error(`${loader.id} loader preload() did not return a parser-bearing loader`);
86
+ }
87
+ const implementationSpecifier = getLoaderImplementationSpecifier(loader, options);
88
+ return await importLoaderImplementation(implementationSpecifier, loader.id);
89
+ }
90
+ /** Gets the dynamic implementation specifier for the test worker fallback path. */
91
+ function getLoaderImplementationSpecifier(loader, options) {
92
+ const workerType = options?._workerType || options?.core?._workerType;
93
+ if (workerType === 'test') {
94
+ const sourcePath = `modules/${loader.module}/src/${loader.id}-loader.ts`;
95
+ if (typeof window !== 'undefined') {
96
+ return `/${sourcePath}`;
97
+ }
98
+ if (typeof process !== 'undefined' && process.cwd) {
99
+ return new URL(sourcePath, `file://${process.cwd()}/`).toString();
100
+ }
101
+ return sourcePath;
102
+ }
103
+ throw new Error(`${loader.id} loader does not provide a parser implementation. Import a parser-bearing loader directly, or use preload() before parse/load.`);
104
+ }
105
+ /** Gets the cache key for option-selected parser implementations. */
106
+ function getLoaderImplementationCacheKey(loader, options) {
107
+ const loaderOptions = options?.[loader.id];
108
+ const defaultLoaderOptions = loader.options?.[loader.id];
109
+ return String(loaderOptions?.backend || defaultLoaderOptions?.backend || '');
110
+ }
111
+ /** Imports a module and finds the parser-bearing loader implementation with the requested id. */
112
+ async function importLoaderImplementation(implementationSpecifier, loaderId) {
113
+ const moduleExports = await import(
114
+ /* webpackIgnore: true */ /* @vite-ignore */ implementationSpecifier);
115
+ for (const exportValue of Object.values(moduleExports)) {
116
+ if (exportValue &&
117
+ typeof exportValue === 'object' &&
118
+ exportValue.id === loaderId &&
119
+ isLoaderWithParser(exportValue)) {
120
+ return exportValue;
121
+ }
122
+ }
123
+ throw new Error(`Could not find parser implementation for ${loaderId} in ${implementationSpecifier}`);
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
+ }
222
+ //# sourceMappingURL=load-loader.js.map
@@ -0,0 +1 @@
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, LoaderOptionsType, 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, LoaderOptionsType,
8
8
  * @param options
9
9
  * @param context
10
10
  */
11
- export declare function load<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsType<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,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAQlC;;;;;;;;GAQG;AAEH,wBAAsB,IAAI,CACxB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAE3D,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,11 +1,18 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { isBlob } 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
+ import { fetchFile } from "../fetch/fetch-file.js";
8
9
  import { parse } from "./parse.js";
10
+ import { parseFile } from "./parse-file.js";
11
+ import { parseSync } from "./parse-sync.js";
12
+ import { parseInBatches } from "./parse-in-batches.js";
13
+ import { loadInBatches } from "./load-in-batches.js";
14
+ import { selectLoader } from "./select-loader.js";
15
+ import { getLoaderImplementation } from "./load-loader.js";
9
16
  // export async function load(url: string | DataType, loaders: LoaderOptions): Promise<any>;
10
17
  // implementation signature
11
18
  export async function load(url, loaders, options, context) {
@@ -21,13 +28,74 @@ export async function load(url, loaders, options, context) {
21
28
  resolvedLoaders = loaders;
22
29
  resolvedOptions = options;
23
30
  }
31
+ resolvedOptions ||= getGlobalLoaderOptions();
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 || {});
35
+ const runtimeCoreApi = {
36
+ fetchFile,
37
+ parse,
38
+ parseFile,
39
+ parseSync,
40
+ parseInBatches,
41
+ load,
42
+ loadInBatches
43
+ };
44
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
45
+ }
46
+ if (Array.isArray(resolvedLoaders) &&
47
+ resolvedLoaders.length === 1 &&
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 || {});
51
+ const runtimeCoreApi = {
52
+ fetchFile,
53
+ parse,
54
+ parseFile,
55
+ parseSync,
56
+ parseInBatches,
57
+ load,
58
+ loadInBatches
59
+ };
60
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
61
+ }
62
+ if (typeof url === 'string' || isBlob(url)) {
63
+ const selectedLoader = await selectLoader(url, resolvedLoaders, {
64
+ ...resolvedOptions,
65
+ core: { ...resolvedOptions?.core, nothrow: true }
66
+ });
67
+ if (selectedLoader && isSourceLoader(selectedLoader)) {
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 || {}), {
71
+ fetchFile,
72
+ parse,
73
+ parseFile,
74
+ parseSync,
75
+ parseInBatches,
76
+ load,
77
+ loadInBatches
78
+ });
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
+ }
89
+ }
24
90
  // Select fetch function
91
+ if (resolvedOptions)
92
+ resolvedOptions = resolveAuthenticationOptions(resolvedOptions);
25
93
  const fetch = getFetchFunction(resolvedOptions);
26
94
  // at this point, `url` could be already loaded binary data
27
95
  let data = url;
28
96
  // url is a string, fetch the url
29
97
  if (typeof url === 'string') {
30
- data = await fetch(url);
98
+ data = await fetch(applySearchParamsToUrl(url, resolvedOptions));
31
99
  // URL is Blob or File, fetchFile handles it (alt: we could generate ObjectURL here)
32
100
  }
33
101
  if (isBlob(url)) {
@@ -50,7 +118,18 @@ export async function load(url, loaders, options, context) {
50
118
  // Data is loaded (at least we have a `Response` object) so time to hand over to `parse`
51
119
  // return await parse(data, loaders as Loader[], options);
52
120
  return Array.isArray(resolvedLoaders)
53
- ? await parse(data, resolvedLoaders, resolvedOptions) // loader array overload
54
- : await parse(data, resolvedLoaders, resolvedOptions); // single loader overload
121
+ ? await parse(data, resolvedLoaders, resolvedOptions, context) // loader array overload
122
+ : await parse(data, resolvedLoaders, resolvedOptions, context); // single loader overload
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;
55
134
  }
56
135
  //# sourceMappingURL=load.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAYpC,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,4CAAyC;AAChE,OAAO,EAAC,gBAAgB,EAAC,8CAA2C;AACpE,OAAO,EAAC,sBAAsB,EAAC,wCAAqC;AAEpE,OAAO,EAAC,KAAK,EAAC,mBAAgB;AA0C9B,4FAA4F;AAE5F,2BAA2B;AAC3B,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,GAAsB,EACtB,OAAkC,EAClC,OAAuC,EACvC,OAAuB;IAEvB,IAAI,eAAkC,CAAC;IACvC,IAAI,eAA0C,CAAC;IAE/C,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,eAAe,GAAG,EAAE,CAAC;QACrB,eAAe,GAAG,OAAwB,CAAC;QAC3C,OAAO,GAAG,SAAS,CAAC,CAAC,2CAA2C;IAClE,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,OAA4B,CAAC;QAC/C,eAAe,GAAG,OAAwB,CAAC;IAC7C,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAEhD,2DAA2D;IAC3D,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,iCAAiC;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,oFAAoF;IACtF,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,mDAAmD;QACnD,2EAA2E;QAC3E,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YACrC,eAAe,GAAG;gBAChB,GAAG,eAAe;gBAClB,IAAI,EAAE;oBACJ,GAAG,eAAe,EAAE,IAAI;oBACxB,OAAO,EAAE,GAAG;iBACb;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,0DAA0D;IAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QACnC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,wBAAwB;QAC9E,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,yBAAyB;AACpF,CAAC"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Loader, LoaderContext, LoaderOptions, LoaderOptionsWithShape, LoaderOptionsType, LoaderShapeType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType, ReadableFile } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Parses a random access readable file asynchronously using the supplied loader.
4
+ */
5
+ export declare function parseFile<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(file: ReadableFile, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<LoaderReturnType<LoaderT>>;
6
+ /**
7
+ * Parses a random access readable file asynchronously by matching one of the supplied loaders.
8
+ */
9
+ export declare function parseFile<LoaderArrayT extends Loader[], OptionsT extends LoaderOptions = LoaderArrayOptionsType<LoaderArrayT>>(file: ReadableFile, loaders: LoaderArrayT, options?: OptionsT, context?: LoaderContext): Promise<LoaderArrayReturnType<LoaderArrayT>>;
10
+ /**
11
+ * Parses a random access readable file asynchronously by matching a pre-registered loader.
12
+ * @deprecated Loader registration is deprecated, use parseFile(file, loaders, options) instead.
13
+ */
14
+ export declare function parseFile(file: ReadableFile, options?: LoaderOptions): Promise<unknown>;
15
+ //# sourceMappingURL=parse-file.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,74 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { isSourceLoader, mergeOptions, resolveLoaderAuthenticationOptions } from '@loaders.gl/loader-utils';
5
+ import { validateWorkerVersion } from '@loaders.gl/worker-utils';
6
+ import { isLoaderObject } from "../loader-utils/normalize-loader.js";
7
+ import { normalizeOptions } from "../loader-utils/option-utils.js";
8
+ import { getLoaderContext, getLoadersFromContext } from "../loader-utils/loader-context.js";
9
+ import { getLoaderImplementation } from "./load-loader.js";
10
+ import { parse } from "./parse.js";
11
+ import { selectLoader } from "./select-loader.js";
12
+ /**
13
+ * Parses a random access readable file using a specified loader.
14
+ * @param file readable file
15
+ * @param loaders loader or loaders to use
16
+ * @param options loader options
17
+ * @param context loader context
18
+ * @returns parsed data
19
+ */
20
+ export async function parseFile(file, loaders, options, context) {
21
+ if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {
22
+ context = undefined;
23
+ options = loaders;
24
+ loaders = undefined;
25
+ }
26
+ options = options || {};
27
+ const url = file.url || '';
28
+ const typedLoaders = loaders;
29
+ const candidateLoaders = getLoadersFromContext(typedLoaders, context);
30
+ const loader = await selectLoader(url, candidateLoaders, options);
31
+ if (!loader) {
32
+ return null;
33
+ }
34
+ if (isSourceLoader(loader)) {
35
+ throw new Error(`${loader.id} is a SourceLoader. Use load() to create a runtime source object instead of parseFile().`);
36
+ }
37
+ // @ts-expect-error candidateLoaders may be a single forced loader
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);
43
+ context = getLoaderContext(
44
+ // @ts-expect-error candidateLoaders may be a single forced loader
45
+ { url, _parse: parse, loaders: candidateLoaders }, strictOptions, context || null);
46
+ return await parseFileWithLoader(loader, file, strictOptions, context);
47
+ }
48
+ /**
49
+ * Parses a readable file after a loader has been selected.
50
+ * @param loader selected loader
51
+ * @param file readable file
52
+ * @param options strict loader options
53
+ * @param context loader context
54
+ * @returns parsed data
55
+ */
56
+ async function parseFileWithLoader(loader, file, options, context) {
57
+ validateWorkerVersion(loader);
58
+ options = mergeOptions(loader.options, options);
59
+ const loaderWithParser = await getLoaderImplementation(loader, options, context.url);
60
+ if (loaderWithParser.parseFile) {
61
+ return await loaderWithParser.parseFile(file, options, context);
62
+ }
63
+ const parseFunction = loaderWithParser.parse;
64
+ if (parseFunction) {
65
+ const length = file.bigsize > 0n ? Number(file.bigsize) : file.size;
66
+ if (!length) {
67
+ throw new Error(`${loader.id} loader - cannot fall back to parse without a file size`);
68
+ }
69
+ const data = await file.read(0n, length);
70
+ return await parse(data, loaderWithParser, options, context);
71
+ }
72
+ throw new Error(`${loader.id} loader - no file parser found`);
73
+ }
74
+ //# sourceMappingURL=parse-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-file.js","sourceRoot":"","sources":["../../../src/lib/api/parse-file.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { Loader, LoaderOptions, LoaderContext, BatchableDataType, LoaderOptionsType, LoaderBatchType, LoaderArrayOptionsType, LoaderArrayBatchType } from '@loaders.gl/loader-utils';
1
+ import type { Loader, LoaderOptions, LoaderContext, LoaderOptionsWithShape, BatchableDataType, LoaderOptionsType, LoaderShapeType, LoaderBatchType, LoaderArrayOptionsType, LoaderArrayBatchType } from '@loaders.gl/loader-utils';
2
2
  /**
3
3
  * Parses `data` synchronously using a specified loader
4
4
  */
5
- export declare function parseInBatches<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>>(data: BatchableDataType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<AsyncIterable<LoaderBatchType<LoaderT>>>;
5
+ export declare function parseInBatches<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(data: BatchableDataType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<AsyncIterable<LoaderBatchType<LoaderT>>>;
6
6
  /**
7
7
  * Parses `data` using one of the supplied loaders
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"parse-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse-in-batches.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,MAAM,EAGN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAYlC;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAE3D,IAAI,EAAE,iBAAiB,EACvB,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;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;AAE/C;;;GAGG;AAEH,wBAAsB,cAAc,CAClC,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"parse-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse-in-batches.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,MAAM,EAGN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAkBlC;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,IAAI,EAAE,iBAAiB,EACvB,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;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;AAE/C;;;GAGG;AAEH,wBAAsB,cAAc,CAClC,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -2,12 +2,14 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { isTable, makeBatchFromTable } from '@loaders.gl/schema-utils';
5
- import { concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils';
5
+ import { resolveLoaderAuthenticationOptions } from '@loaders.gl/loader-utils';
6
+ import { canParseWithWorker, concatenateArrayBuffersAsync, isBrowser, parseWithWorkerInBatches } from '@loaders.gl/loader-utils';
6
7
  import { isLoaderObject } from "../loader-utils/normalize-loader.js";
7
8
  import { normalizeOptions } from "../loader-utils/option-utils.js";
8
9
  import { getLoaderContext } from "../loader-utils/loader-context.js";
9
10
  import { getAsyncIterableFromData } from "../loader-utils/get-data.js";
10
11
  import { getResourceUrl } from "../utils/resource-utils.js";
12
+ import { getLoaderImplementation } from "./load-loader.js";
11
13
  import { selectLoader } from "./select-loader.js";
12
14
  // Ensure `parse` is available in context if loader falls back to `parse`
13
15
  import { parse } from "./parse.js";
@@ -40,14 +42,19 @@ context) {
40
42
  return [];
41
43
  }
42
44
  // Normalize options
43
- const strictOptions = normalizeOptions(options, loader, loaderArray, url);
45
+ const normalizedOptions = normalizeOptions(options, loader, loaderArray, url);
46
+ const authenticationLoader = !loader.getAuthentications && normalizedOptions.core?.credentials?.length
47
+ ? await getLoaderImplementation(loader, normalizedOptions, url || context?.url)
48
+ : loader;
49
+ const strictOptions = await resolveLoaderAuthenticationOptions(authenticationLoader, url || '', normalizedOptions);
44
50
  context = getLoaderContext({ url, _parseInBatches: parseInBatches, _parse: parse, loaders: loaderArray }, strictOptions, context || null);
45
- return await parseWithLoaderInBatches(loader, data, strictOptions, context);
51
+ const loaderWithParser = await getLoaderImplementation(loader, strictOptions, context.url);
52
+ return await parseWithLoaderInBatches(loader, loaderWithParser, data, strictOptions, context);
46
53
  }
47
54
  /**
48
55
  * Loader has been selected and context has been prepared, see if we need to emit a metadata batch
49
56
  */
50
- async function parseWithLoaderInBatches(loader, data, options, context) {
57
+ async function parseWithLoaderInBatches(originalLoader, loader, data, options, context) {
51
58
  const outputIterator = await parseToOutputIterator(loader, data, options, context);
52
59
  // Generate metadata batch if requested
53
60
  if (!options?.core?.metadata) {
@@ -57,7 +64,7 @@ async function parseWithLoaderInBatches(loader, data, options, context) {
57
64
  shape: 'metadata',
58
65
  batchType: 'metadata',
59
66
  metadata: {
60
- _loader: loader,
67
+ _loader: originalLoader,
61
68
  _context: context
62
69
  },
63
70
  // Populate with some default fields to avoid crashing
@@ -80,8 +87,12 @@ async function parseToOutputIterator(loader, data, options, context) {
80
87
  const inputIterator = await getAsyncIterableFromData(data, options);
81
88
  // Apply any iterator transforms (options.transforms)
82
89
  const transformedIterator = await applyInputTransforms(inputIterator, options?.core?.transforms || []);
83
- // If loader supports parseInBatches, we are done
90
+ // Stream supported browser batch parsers through one stateful worker session.
84
91
  if (loader.parseInBatches) {
92
+ // The loader-level adapter is intentionally piloted with CSV Arrow batches first.
93
+ if (loader.id === 'csv' && isBrowser && canParseWithWorker(loader, options)) {
94
+ return parseWithWorkerInBatches(loader, transformedIterator, options, context, parse);
95
+ }
85
96
  return loader.parseInBatches(transformedIterator, options, context);
86
97
  }
87
98
  return parseChunkInBatches(transformedIterator, loader, options, context);
@@ -102,7 +113,7 @@ async function* parseChunkInBatches(transformedIterator, loader, options, contex
102
113
  * @todo run through batch builder to apply options etc...
103
114
  */
104
115
  function convertDataToBatch(parsedData, loader) {
105
- // prettier-ignore
116
+ // biome-ignore format: preserve intentional fixture layout
106
117
  const batch = isTable(parsedData)
107
118
  ? makeBatchFromTable(parsedData)
108
119
  : {
@@ -1 +1 @@
1
- {"version":3,"file":"parse-in-batches.js","sourceRoot":"","sources":["../../../src/lib/api/parse-in-batches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-in-batches.js","sourceRoot":"","sources":["../../../src/lib/api/parse-in-batches.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { Loader, LoaderOptions, LoaderContext, SyncDataType, LoaderOptionsType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType } from '@loaders.gl/loader-utils';
1
+ import type { Loader, LoaderOptions, LoaderContext, LoaderOptionsWithShape, SyncDataType, LoaderOptionsType, LoaderShapeType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType } from '@loaders.gl/loader-utils';
2
2
  /**
3
3
  * Parses `data` synchronously using the specified loader
4
4
  */
5
- export declare function parseSync<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>>(data: SyncDataType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): LoaderReturnType<LoaderT>;
5
+ export declare function parseSync<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(data: SyncDataType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): LoaderReturnType<LoaderT>;
6
6
  /**
7
7
  * Parses `data` synchronously by matching one of the supplied loaders
8
8
  */