@loaders.gl/arcgis 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.
- package/LICENSE +52 -0
- package/README.md +28 -0
- package/dist/arcgis/arcgis-capability-graph.d.ts +50 -0
- package/dist/arcgis/arcgis-capability-graph.d.ts.map +1 -0
- package/dist/arcgis/arcgis-capability-graph.js +221 -0
- package/dist/arcgis/arcgis-capability-graph.js.map +1 -0
- package/dist/arcgis/arcgis-feature-query.d.ts +53 -0
- package/dist/arcgis/arcgis-feature-query.d.ts.map +1 -0
- package/dist/arcgis/arcgis-feature-query.js +381 -0
- package/dist/arcgis/arcgis-feature-query.js.map +1 -0
- package/dist/arcgis/arcgis-feature-server-source-loader-types.d.ts +33 -0
- package/dist/arcgis/arcgis-feature-server-source-loader-types.d.ts.map +1 -0
- package/dist/arcgis/arcgis-feature-server-source-loader-types.js +21 -0
- package/dist/arcgis/arcgis-feature-server-source-loader-types.js.map +1 -0
- package/dist/arcgis/arcgis-feature-server-source-loader.d.ts +84 -0
- package/dist/arcgis/arcgis-feature-server-source-loader.d.ts.map +1 -0
- package/dist/arcgis/arcgis-feature-server-source-loader.js +280 -0
- package/dist/arcgis/arcgis-feature-server-source-loader.js.map +1 -0
- package/dist/arcgis/arcgis-image-server-source-loader-types.d.ts +31 -0
- package/dist/arcgis/arcgis-image-server-source-loader-types.d.ts.map +1 -0
- package/dist/arcgis/arcgis-image-server-source-loader-types.js +21 -0
- package/dist/arcgis/arcgis-image-server-source-loader-types.js.map +1 -0
- package/dist/arcgis/arcgis-image-server-source-loader.d.ts +60 -0
- package/dist/arcgis/arcgis-image-server-source-loader.d.ts.map +1 -0
- package/dist/arcgis/arcgis-image-server-source-loader.js +130 -0
- package/dist/arcgis/arcgis-image-server-source-loader.js.map +1 -0
- package/dist/arcgis/arcgis-image-tile-source-loader-types.d.ts +31 -0
- package/dist/arcgis/arcgis-image-tile-source-loader-types.d.ts.map +1 -0
- package/dist/arcgis/arcgis-image-tile-source-loader-types.js +21 -0
- package/dist/arcgis/arcgis-image-tile-source-loader-types.js.map +1 -0
- package/dist/arcgis/arcgis-image-tile-source-loader.d.ts +63 -0
- package/dist/arcgis/arcgis-image-tile-source-loader.d.ts.map +1 -0
- package/dist/arcgis/arcgis-image-tile-source-loader.js +147 -0
- package/dist/arcgis/arcgis-image-tile-source-loader.js.map +1 -0
- package/dist/arcgis/arcgis-map-tile-source-loader-types.d.ts +31 -0
- package/dist/arcgis/arcgis-map-tile-source-loader-types.d.ts.map +1 -0
- package/dist/arcgis/arcgis-map-tile-source-loader-types.js +21 -0
- package/dist/arcgis/arcgis-map-tile-source-loader-types.js.map +1 -0
- package/dist/arcgis/arcgis-map-tile-source-loader.d.ts +62 -0
- package/dist/arcgis/arcgis-map-tile-source-loader.d.ts.map +1 -0
- package/dist/arcgis/arcgis-map-tile-source-loader.js +196 -0
- package/dist/arcgis/arcgis-map-tile-source-loader.js.map +1 -0
- package/dist/arcgis/arcgis-scene-aggregation.d.ts +34 -0
- package/dist/arcgis/arcgis-scene-aggregation.d.ts.map +1 -0
- package/dist/arcgis/arcgis-scene-aggregation.js +57 -0
- package/dist/arcgis/arcgis-scene-aggregation.js.map +1 -0
- package/dist/arcgis/arcgis-scene-server-source-loader-types.d.ts +31 -0
- package/dist/arcgis/arcgis-scene-server-source-loader-types.d.ts.map +1 -0
- package/dist/arcgis/arcgis-scene-server-source-loader-types.js +21 -0
- package/dist/arcgis/arcgis-scene-server-source-loader-types.js.map +1 -0
- package/dist/arcgis/arcgis-scene-server-source-loader.d.ts +64 -0
- package/dist/arcgis/arcgis-scene-server-source-loader.d.ts.map +1 -0
- package/dist/arcgis/arcgis-scene-server-source-loader.js +159 -0
- package/dist/arcgis/arcgis-scene-server-source-loader.js.map +1 -0
- package/dist/arcgis/arcgis-server.d.ts +15 -0
- package/dist/arcgis/arcgis-server.d.ts.map +1 -0
- package/dist/arcgis/arcgis-server.js +41 -0
- package/dist/arcgis/arcgis-server.js.map +1 -0
- package/dist/arcgis/arcgis-url-utils.d.ts +3 -0
- package/dist/arcgis/arcgis-url-utils.d.ts.map +1 -0
- package/dist/arcgis/arcgis-url-utils.js +23 -0
- package/dist/arcgis/arcgis-url-utils.js.map +1 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.d.ts +31 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.d.ts.map +1 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.js +21 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.js.map +1 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.d.ts +66 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.d.ts.map +1 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.js +150 -0
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.js.map +1 -0
- package/dist/arcgis-feature-query-types.d.ts +77 -0
- package/dist/arcgis-feature-query-types.d.ts.map +1 -0
- package/dist/arcgis-feature-query-types.js +5 -0
- package/dist/arcgis-feature-query-types.js.map +1 -0
- package/dist/arcgis-items.d.ts +64 -0
- package/dist/arcgis-items.d.ts.map +1 -0
- package/dist/arcgis-items.js +137 -0
- package/dist/arcgis-items.js.map +1 -0
- package/dist/arcgis-source-types.d.ts +372 -0
- package/dist/arcgis-source-types.d.ts.map +1 -0
- package/dist/arcgis-source-types.js +108 -0
- package/dist/arcgis-source-types.js.map +1 -0
- package/dist/authentication.d.ts +25 -0
- package/dist/authentication.d.ts.map +1 -0
- package/dist/authentication.js +94 -0
- package/dist/authentication.js.map +1 -0
- package/dist/bundled.d.ts +152 -0
- package/dist/bundled.d.ts.map +1 -0
- package/dist/bundled.js +34 -0
- package/dist/bundled.js.map +1 -0
- package/dist/index.cjs +25620 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/service-registry.d.ts +18 -0
- package/dist/service-registry.d.ts.map +1 -0
- package/dist/service-registry.js +29 -0
- package/dist/service-registry.js.map +1 -0
- package/package.json +96 -0
- package/src/arcgis/arcgis-capability-graph.ts +297 -0
- package/src/arcgis/arcgis-feature-query.ts +442 -0
- package/src/arcgis/arcgis-feature-server-source-loader-types.ts +34 -0
- package/src/arcgis/arcgis-feature-server-source-loader.ts +373 -0
- package/src/arcgis/arcgis-image-server-source-loader-types.ts +34 -0
- package/src/arcgis/arcgis-image-server-source-loader.ts +186 -0
- package/src/arcgis/arcgis-image-tile-source-loader-types.ts +34 -0
- package/src/arcgis/arcgis-image-tile-source-loader.ts +192 -0
- package/src/arcgis/arcgis-map-tile-source-loader-types.ts +34 -0
- package/src/arcgis/arcgis-map-tile-source-loader.ts +248 -0
- package/src/arcgis/arcgis-scene-aggregation.ts +90 -0
- package/src/arcgis/arcgis-scene-server-source-loader-types.ts +36 -0
- package/src/arcgis/arcgis-scene-server-source-loader.ts +216 -0
- package/src/arcgis/arcgis-server.ts +61 -0
- package/src/arcgis/arcgis-url-utils.ts +26 -0
- package/src/arcgis/arcgis-vector-tile-server-source-loader-types.ts +36 -0
- package/src/arcgis/arcgis-vector-tile-server-source-loader.ts +196 -0
- package/src/arcgis-feature-query-types.ts +89 -0
- package/src/arcgis-items.ts +233 -0
- package/src/arcgis-source-types.ts +372 -0
- package/src/authentication.ts +118 -0
- package/src/bundled.ts +68 -0
- package/src/index.ts +70 -0
- package/src/service-registry.ts +43 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import type {
|
|
6
|
+
AuthenticatedFetchOptions,
|
|
7
|
+
FetchLike,
|
|
8
|
+
RequestCredential,
|
|
9
|
+
TokenValue
|
|
10
|
+
} from '@loaders.gl/loader-utils';
|
|
11
|
+
import {
|
|
12
|
+
TokenAuthentication,
|
|
13
|
+
createAuthenticatedFetch,
|
|
14
|
+
createQueryParameterCredential
|
|
15
|
+
} from '@loaders.gl/loader-utils';
|
|
16
|
+
|
|
17
|
+
/** Maximum JSON error bytes retained by the authentication detector. */
|
|
18
|
+
const MAXIMUM_AUTHENTICATION_ERROR_BYTES = 16384;
|
|
19
|
+
|
|
20
|
+
/** ArcGIS token authentication independent of the application's sign-in SDK. */
|
|
21
|
+
export class ArcGISAuthentication extends TokenAuthentication {
|
|
22
|
+
/** Discriminator used in `core.credentials`. */
|
|
23
|
+
static readonly type = 'arcgis';
|
|
24
|
+
/** Creates an exact-origin ArcGIS credential. */
|
|
25
|
+
constructor(options: ArcGISCredentialOptions) {
|
|
26
|
+
super(createArcGISCredential(options));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Creates a fetch transport for discovery and service requests.
|
|
31
|
+
* Refreshes are isolated by trusted origin so server-specific tokens cannot cross hosts.
|
|
32
|
+
* Reuse the returned transport to deduplicate concurrent refreshes within each origin.
|
|
33
|
+
*/
|
|
34
|
+
createFetch(options: Pick<AuthenticatedFetchOptions, 'fetch' | 'fetchOptions'> = {}): FetchLike {
|
|
35
|
+
return createAuthenticatedFetch({
|
|
36
|
+
...options,
|
|
37
|
+
credentials: this.origins.map(origin =>
|
|
38
|
+
createArcGISCredential({
|
|
39
|
+
origins: [origin],
|
|
40
|
+
token: this.token
|
|
41
|
+
})
|
|
42
|
+
)
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Options for an ArcGIS REST service credential. */
|
|
48
|
+
export type ArcGISCredentialOptions = {
|
|
49
|
+
/** ArcGIS token or application-managed token callback. */
|
|
50
|
+
token: TokenValue;
|
|
51
|
+
/** Exact ArcGIS Online or Enterprise origins authorized to receive the token. */
|
|
52
|
+
origins: readonly string[];
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/** Creates an exact-origin ArcGIS `token` query credential. */
|
|
56
|
+
export function createArcGISCredential(options: ArcGISCredentialOptions): RequestCredential {
|
|
57
|
+
return {
|
|
58
|
+
...createQueryParameterCredential({
|
|
59
|
+
id: 'arcgis-token',
|
|
60
|
+
origins: options.origins,
|
|
61
|
+
parameterName: 'token',
|
|
62
|
+
token: options.token,
|
|
63
|
+
refreshStatusCodes: [401, 403, 498, 499]
|
|
64
|
+
}),
|
|
65
|
+
shouldRefresh: isArcGISAuthenticationError,
|
|
66
|
+
canReplayRequest: canReplayArcGISRequest
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Detects small JSON authentication errors without buffering successful feature/tile bodies.
|
|
72
|
+
* Only 498/499 envelopes trigger renewal; permission and query errors remain visible.
|
|
73
|
+
*/
|
|
74
|
+
async function isArcGISAuthenticationError(response: Response): Promise<boolean> {
|
|
75
|
+
if (response.status !== 200 || !response.headers.get('content-type')?.includes('json'))
|
|
76
|
+
return false;
|
|
77
|
+
if (Number(response.headers.get('content-length')) > MAXIMUM_AUTHENTICATION_ERROR_BYTES)
|
|
78
|
+
return false;
|
|
79
|
+
const reader = response.clone().body?.getReader();
|
|
80
|
+
if (!reader) return false;
|
|
81
|
+
const chunks: Uint8Array[] = [];
|
|
82
|
+
let length = 0;
|
|
83
|
+
try {
|
|
84
|
+
while (true) {
|
|
85
|
+
const {value, done} = await reader.read();
|
|
86
|
+
if (done) {
|
|
87
|
+
const bytes = new Uint8Array(length);
|
|
88
|
+
let offset = 0;
|
|
89
|
+
for (const chunk of chunks) {
|
|
90
|
+
bytes.set(chunk, offset);
|
|
91
|
+
offset += chunk.length;
|
|
92
|
+
}
|
|
93
|
+
const json = JSON.parse(new TextDecoder().decode(bytes));
|
|
94
|
+
return json?.error?.code === 498 || json?.error?.code === 499;
|
|
95
|
+
}
|
|
96
|
+
if (value.byteLength > MAXIMUM_AUTHENTICATION_ERROR_BYTES - length) return false;
|
|
97
|
+
length += value.byteLength;
|
|
98
|
+
// Copy only accepted bytes so small views cannot retain oversized backing buffers.
|
|
99
|
+
chunks.push(value.slice());
|
|
100
|
+
}
|
|
101
|
+
} catch {
|
|
102
|
+
return false;
|
|
103
|
+
} finally {
|
|
104
|
+
// A tee cancellation can wait for the original consumer; do not await it here.
|
|
105
|
+
void reader.cancel().catch(() => {});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** Permits string or URLSearchParams form POST queries on numbered feature or map layers. */
|
|
110
|
+
function canReplayArcGISRequest(url: string, request: RequestInit): boolean {
|
|
111
|
+
return (
|
|
112
|
+
request.method?.toUpperCase() === 'POST' &&
|
|
113
|
+
/\/(FeatureServer|MapServer)\/\d+\/query\/?$/i.test(new URL(url).pathname) &&
|
|
114
|
+
new Headers(request.headers).get('content-type')?.split(';')[0] ===
|
|
115
|
+
'application/x-www-form-urlencoded' &&
|
|
116
|
+
(typeof request.body === 'string' || request.body instanceof URLSearchParams)
|
|
117
|
+
);
|
|
118
|
+
}
|
package/src/bundled.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {ArcGISFeatureServerSourceLoaderWithParser as ArcGISFeatureServerSourceLoader} from './arcgis/arcgis-feature-server-source-loader';
|
|
6
|
+
export {
|
|
7
|
+
ArcGISFeatureServerSourceLoaderWithParser as ArcGISFeatureServerSourceLoader,
|
|
8
|
+
ArcGISVectorSource,
|
|
9
|
+
ArcGISFeatureQueryError
|
|
10
|
+
} from './arcgis/arcgis-feature-server-source-loader';
|
|
11
|
+
import {ArcGISImageServerSourceLoaderWithParser as ArcGISImageServerSourceLoader} from './arcgis/arcgis-image-server-source-loader';
|
|
12
|
+
export {
|
|
13
|
+
ArcGISImageServerSourceLoaderWithParser as ArcGISImageServerSourceLoader,
|
|
14
|
+
ArcGISImageSource
|
|
15
|
+
} from './arcgis/arcgis-image-server-source-loader';
|
|
16
|
+
import {ArcGISImageTileSourceLoaderWithParser as ArcGISImageTileSourceLoader} from './arcgis/arcgis-image-tile-source-loader';
|
|
17
|
+
export {
|
|
18
|
+
ArcGISImageTileSourceLoaderWithParser as ArcGISImageTileSourceLoader,
|
|
19
|
+
ArcGISImageTileSource
|
|
20
|
+
} from './arcgis/arcgis-image-tile-source-loader';
|
|
21
|
+
import {ArcGISMapTileSourceLoaderWithParser as ArcGISMapTileSourceLoader} from './arcgis/arcgis-map-tile-source-loader';
|
|
22
|
+
export {
|
|
23
|
+
ArcGISMapTileSourceLoaderWithParser as ArcGISMapTileSourceLoader,
|
|
24
|
+
ArcGISMapTileSource
|
|
25
|
+
} from './arcgis/arcgis-map-tile-source-loader';
|
|
26
|
+
import {ArcGISSceneServerSourceLoaderWithParser as ArcGISSceneServerSourceLoader} from './arcgis/arcgis-scene-server-source-loader';
|
|
27
|
+
export {
|
|
28
|
+
ArcGISSceneServerSourceLoaderWithParser as ArcGISSceneServerSourceLoader,
|
|
29
|
+
ArcGISSceneServerSource,
|
|
30
|
+
ArcGISSceneServerQueryError
|
|
31
|
+
} from './arcgis/arcgis-scene-server-source-loader';
|
|
32
|
+
import {ArcGISVectorTileServerSourceLoaderWithParser as ArcGISVectorTileServerSourceLoader} from './arcgis/arcgis-vector-tile-server-source-loader';
|
|
33
|
+
export {
|
|
34
|
+
ArcGISVectorTileServerSourceLoaderWithParser as ArcGISVectorTileServerSourceLoader,
|
|
35
|
+
ArcGISVectorTileServerSource
|
|
36
|
+
} from './arcgis/arcgis-vector-tile-server-source-loader';
|
|
37
|
+
|
|
38
|
+
export type * from './index';
|
|
39
|
+
export {
|
|
40
|
+
getArcGISServices,
|
|
41
|
+
discoverArcGISCapabilities,
|
|
42
|
+
selectArcGISService
|
|
43
|
+
} from './arcgis/arcgis-capability-graph';
|
|
44
|
+
export {aggregateArcGISSceneFeatures} from './arcgis/arcgis-scene-aggregation';
|
|
45
|
+
export {ArcGISAuthentication, createArcGISCredential} from './authentication';
|
|
46
|
+
|
|
47
|
+
/** A synchronous ArcGIS source loader, including its runtime implementation. */
|
|
48
|
+
export type ArcGISLoader = (typeof ARCGIS_LOADERS)[number];
|
|
49
|
+
|
|
50
|
+
/** All runtime ArcGIS loaders, in the same selection order as the package root. */
|
|
51
|
+
export const ARCGIS_LOADERS = [
|
|
52
|
+
ArcGISFeatureServerSourceLoader,
|
|
53
|
+
ArcGISImageServerSourceLoader,
|
|
54
|
+
ArcGISImageTileSourceLoader,
|
|
55
|
+
ArcGISMapTileSourceLoader,
|
|
56
|
+
ArcGISVectorTileServerSourceLoader,
|
|
57
|
+
ArcGISSceneServerSourceLoader
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
/** Finds a runtime source loader by its canonical identifier or service type. */
|
|
61
|
+
export function getArcGISLoader(serviceType: string): ArcGISLoader | undefined {
|
|
62
|
+
const normalizedServiceType = serviceType.toLowerCase();
|
|
63
|
+
return ARCGIS_LOADERS.find(
|
|
64
|
+
loader => loader.id === normalizedServiceType || loader.type === normalizedServiceType
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export {resolveArcGISItem} from './arcgis-items';
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
export type {Service as ArcGISService} from './arcgis/arcgis-server';
|
|
6
|
+
export type {
|
|
7
|
+
ArcGISCapabilityGraph,
|
|
8
|
+
ArcGISCapabilityGraphOptions,
|
|
9
|
+
ArcGISServiceCapabilities,
|
|
10
|
+
ArcGISServiceSelection
|
|
11
|
+
} from './arcgis/arcgis-capability-graph';
|
|
12
|
+
|
|
13
|
+
export {ArcGISFeatureServerSourceLoader} from './arcgis/arcgis-feature-server-source-loader-types';
|
|
14
|
+
export type {ArcGISVectorSource} from './arcgis/arcgis-feature-server-source-loader';
|
|
15
|
+
export {ArcGISImageServerSourceLoader} from './arcgis/arcgis-image-server-source-loader-types';
|
|
16
|
+
export type {ArcGISImageSource} from './arcgis/arcgis-image-server-source-loader';
|
|
17
|
+
export {ArcGISImageTileSourceLoader} from './arcgis/arcgis-image-tile-source-loader-types';
|
|
18
|
+
export type {ArcGISImageTileSource} from './arcgis/arcgis-image-tile-source-loader';
|
|
19
|
+
export {ArcGISMapTileSourceLoader} from './arcgis/arcgis-map-tile-source-loader-types';
|
|
20
|
+
export type {ArcGISMapTileSource} from './arcgis/arcgis-map-tile-source-loader';
|
|
21
|
+
export {ArcGISSceneServerSourceLoader} from './arcgis/arcgis-scene-server-source-loader-types';
|
|
22
|
+
export type {
|
|
23
|
+
ArcGISSceneServerSource,
|
|
24
|
+
ArcGISSceneServerQueryError
|
|
25
|
+
} from './arcgis/arcgis-scene-server-source-loader';
|
|
26
|
+
export {ArcGISVectorTileServerSourceLoader} from './arcgis/arcgis-vector-tile-server-source-loader-types';
|
|
27
|
+
export type {ArcGISVectorTileServerSource} from './arcgis/arcgis-vector-tile-server-source-loader';
|
|
28
|
+
export type {
|
|
29
|
+
ArcGISFeatureServiceQueryOptions,
|
|
30
|
+
ArcGISFeatureServerSourceLoaderOptions,
|
|
31
|
+
ArcGISExportImageParameters,
|
|
32
|
+
ArcGISImageSourceLoaderProps,
|
|
33
|
+
ArcGISImageTileSourceLoaderOptions,
|
|
34
|
+
ArcGISMapTileSourceLoaderOptions,
|
|
35
|
+
ArcGISVectorTileServiceMetadata,
|
|
36
|
+
ArcGISVectorTileServerSourceLoaderOptions,
|
|
37
|
+
ArcGISSceneServerSourceOptions,
|
|
38
|
+
ArcGISSceneQueryOptions,
|
|
39
|
+
ArcGISSceneQueryResult
|
|
40
|
+
} from './arcgis-source-types';
|
|
41
|
+
|
|
42
|
+
export type {
|
|
43
|
+
ArcGISSceneAggregationOperation,
|
|
44
|
+
ArcGISSceneAggregationSpec,
|
|
45
|
+
ArcGISSceneAggregationOptions,
|
|
46
|
+
ArcGISSceneAggregationGroup
|
|
47
|
+
} from './arcgis/arcgis-scene-aggregation';
|
|
48
|
+
|
|
49
|
+
export type {ArcGISLoader} from './service-registry';
|
|
50
|
+
export {ARCGIS_LOADERS, getArcGISLoader} from './service-registry';
|
|
51
|
+
|
|
52
|
+
export type {ArcGISAuthentication} from './authentication';
|
|
53
|
+
export type {ArcGISCredentialOptions} from './authentication';
|
|
54
|
+
|
|
55
|
+
export type {
|
|
56
|
+
ArcGISFeatureQueryParameters,
|
|
57
|
+
ArcGISFeatureQueryOptions,
|
|
58
|
+
ArcGISFeatureQueryProgress,
|
|
59
|
+
ArcGISFeatureQueryResult,
|
|
60
|
+
ArcGISFeatureObjectIds,
|
|
61
|
+
ArcGISFeatureExtent
|
|
62
|
+
} from './arcgis-feature-query-types';
|
|
63
|
+
export type {ArcGISFeatureQueryError} from './arcgis/arcgis-feature-query';
|
|
64
|
+
|
|
65
|
+
export type {
|
|
66
|
+
ArcGISItem,
|
|
67
|
+
ArcGISItemLayer,
|
|
68
|
+
ArcGISItemResolution,
|
|
69
|
+
ArcGISItemOptions
|
|
70
|
+
} from './arcgis-items';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {ArcGISFeatureServerSourceLoader} from './arcgis/arcgis-feature-server-source-loader-types';
|
|
6
|
+
import {ArcGISImageServerSourceLoader} from './arcgis/arcgis-image-server-source-loader-types';
|
|
7
|
+
import {ArcGISImageTileSourceLoader} from './arcgis/arcgis-image-tile-source-loader-types';
|
|
8
|
+
import {ArcGISMapTileSourceLoader} from './arcgis/arcgis-map-tile-source-loader-types';
|
|
9
|
+
import {ArcGISSceneServerSourceLoader} from './arcgis/arcgis-scene-server-source-loader-types';
|
|
10
|
+
import {ArcGISVectorTileServerSourceLoader} from './arcgis/arcgis-vector-tile-server-source-loader-types';
|
|
11
|
+
|
|
12
|
+
/** A source loader currently exposed through the ArcGIS package. */
|
|
13
|
+
export type ArcGISLoader =
|
|
14
|
+
| typeof ArcGISFeatureServerSourceLoader
|
|
15
|
+
| typeof ArcGISImageServerSourceLoader
|
|
16
|
+
| typeof ArcGISImageTileSourceLoader
|
|
17
|
+
| typeof ArcGISMapTileSourceLoader
|
|
18
|
+
| typeof ArcGISVectorTileServerSourceLoader
|
|
19
|
+
| typeof ArcGISSceneServerSourceLoader;
|
|
20
|
+
|
|
21
|
+
/** All source loaders owned by `@loaders.gl/arcgis`, in URL-selection order. */
|
|
22
|
+
export const ARCGIS_LOADERS: ArcGISLoader[] = [
|
|
23
|
+
ArcGISFeatureServerSourceLoader,
|
|
24
|
+
ArcGISImageServerSourceLoader,
|
|
25
|
+
ArcGISImageTileSourceLoader,
|
|
26
|
+
ArcGISMapTileSourceLoader,
|
|
27
|
+
ArcGISVectorTileServerSourceLoader,
|
|
28
|
+
ArcGISSceneServerSourceLoader
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Finds a service loader by its canonical loader id or service type.
|
|
33
|
+
*
|
|
34
|
+
* The lookup is intentionally small and explicit. It provides discovery without
|
|
35
|
+
* introducing a second request lifecycle or hiding provider-specific options.
|
|
36
|
+
*/
|
|
37
|
+
export function getArcGISLoader(serviceType: string): ArcGISLoader | undefined {
|
|
38
|
+
const normalizedServiceType = serviceType.toLowerCase();
|
|
39
|
+
return ARCGIS_LOADERS.find(
|
|
40
|
+
serviceLoader =>
|
|
41
|
+
serviceLoader.id === normalizedServiceType || serviceLoader.type === normalizedServiceType
|
|
42
|
+
);
|
|
43
|
+
}
|