@loaders.gl/services 5.0.0-alpha.7 → 5.0.0-alpha.9
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/README.md +7 -46
- package/dist/authentication.d.ts +22 -9
- package/dist/authentication.d.ts.map +1 -1
- package/dist/authentication.js +28 -11
- package/dist/authentication.js.map +1 -1
- package/dist/index.cjs +301 -23886
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +2 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -20
- package/dist/index.js.map +1 -1
- package/package.json +6 -16
- package/src/authentication.ts +31 -19
- package/src/index.ts +3 -84
- package/dist/arcgis/arcgis-capability-graph.d.ts +0 -48
- package/dist/arcgis/arcgis-capability-graph.d.ts.map +0 -1
- package/dist/arcgis/arcgis-capability-graph.js +0 -220
- package/dist/arcgis/arcgis-capability-graph.js.map +0 -1
- package/dist/arcgis/arcgis-feature-server-source-loader.d.ts +0 -94
- package/dist/arcgis/arcgis-feature-server-source-loader.d.ts.map +0 -1
- package/dist/arcgis/arcgis-feature-server-source-loader.js +0 -231
- package/dist/arcgis/arcgis-feature-server-source-loader.js.map +0 -1
- package/dist/arcgis/arcgis-image-server-source-loader.d.ts +0 -96
- package/dist/arcgis/arcgis-image-server-source-loader.d.ts.map +0 -1
- package/dist/arcgis/arcgis-image-server-source-loader.js +0 -143
- package/dist/arcgis/arcgis-image-server-source-loader.js.map +0 -1
- package/dist/arcgis/arcgis-image-tile-source-loader.d.ts +0 -71
- package/dist/arcgis/arcgis-image-tile-source-loader.d.ts.map +0 -1
- package/dist/arcgis/arcgis-image-tile-source-loader.js +0 -153
- package/dist/arcgis/arcgis-image-tile-source-loader.js.map +0 -1
- package/dist/arcgis/arcgis-map-tile-source-loader.d.ts +0 -106
- package/dist/arcgis/arcgis-map-tile-source-loader.d.ts.map +0 -1
- package/dist/arcgis/arcgis-map-tile-source-loader.js +0 -202
- package/dist/arcgis/arcgis-map-tile-source-loader.js.map +0 -1
- package/dist/arcgis/arcgis-scene-aggregation.d.ts +0 -34
- package/dist/arcgis/arcgis-scene-aggregation.d.ts.map +0 -1
- package/dist/arcgis/arcgis-scene-aggregation.js +0 -57
- package/dist/arcgis/arcgis-scene-aggregation.js.map +0 -1
- package/dist/arcgis/arcgis-scene-server-source-loader.d.ts +0 -112
- package/dist/arcgis/arcgis-scene-server-source-loader.d.ts.map +0 -1
- package/dist/arcgis/arcgis-scene-server-source-loader.js +0 -157
- package/dist/arcgis/arcgis-scene-server-source-loader.js.map +0 -1
- package/dist/arcgis/arcgis-server.d.ts +0 -15
- package/dist/arcgis/arcgis-server.d.ts.map +0 -1
- package/dist/arcgis/arcgis-server.js +0 -41
- package/dist/arcgis/arcgis-server.js.map +0 -1
- package/dist/arcgis/arcgis-url-utils.d.ts +0 -3
- package/dist/arcgis/arcgis-url-utils.d.ts.map +0 -1
- package/dist/arcgis/arcgis-url-utils.js +0 -23
- package/dist/arcgis/arcgis-url-utils.js.map +0 -1
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.d.ts +0 -115
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.d.ts.map +0 -1
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.js +0 -156
- package/dist/arcgis/arcgis-vector-tile-server-source-loader.js.map +0 -1
- package/dist/service-registry.d.ts +0 -18
- package/dist/service-registry.d.ts.map +0 -1
- package/dist/service-registry.js +0 -29
- package/dist/service-registry.js.map +0 -1
- package/src/arcgis/arcgis-capability-graph.ts +0 -295
- package/src/arcgis/arcgis-feature-server-source-loader.ts +0 -346
- package/src/arcgis/arcgis-image-server-source-loader.ts +0 -242
- package/src/arcgis/arcgis-image-tile-source-loader.ts +0 -206
- package/src/arcgis/arcgis-map-tile-source-loader.ts +0 -286
- package/src/arcgis/arcgis-scene-aggregation.ts +0 -90
- package/src/arcgis/arcgis-scene-server-source-loader.ts +0 -258
- package/src/arcgis/arcgis-server.ts +0 -61
- package/src/arcgis/arcgis-url-utils.ts +0 -26
- package/src/arcgis/arcgis-vector-tile-server-source-loader.ts +0 -233
- package/src/service-registry.ts +0 -43
package/README.md
CHANGED
|
@@ -1,51 +1,12 @@
|
|
|
1
1
|
# @loaders.gl/services
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Authentication presets for Mapbox, Google Maps and Cesium ion.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Use `MapboxAuthentication`, `GoogleMapsAuthentication`, `CesiumIonAuthentication`, or their
|
|
6
|
+
`create*Credential` helpers with the shared loaders.gl credential pipeline. Sign-in and token
|
|
7
|
+
issuance remain application responsibilities.
|
|
7
8
|
|
|
8
|
-
ArcGIS sources
|
|
9
|
+
ArcGIS sources and credentials live in [@loaders.gl/arcgis](https://loaders.gl/docs/modules/arcgis).
|
|
10
|
+
OGC protocol sources live in [@loaders.gl/wms](https://loaders.gl/docs/modules/wms).
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
import {createDataSource, load} from '@loaders.gl/core';
|
|
12
|
-
import {SERVICE_LOADERS} from '@loaders.gl/services';
|
|
13
|
-
|
|
14
|
-
const featureSource = createDataSource(
|
|
15
|
-
'https://example.com/arcgis/rest/services/Roads/FeatureServer/0',
|
|
16
|
-
SERVICE_LOADERS,
|
|
17
|
-
{}
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
const imageSource = createDataSource(
|
|
21
|
-
'https://example.com/arcgis/rest/services/Elevation/ImageServer',
|
|
22
|
-
SERVICE_LOADERS,
|
|
23
|
-
{}
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
const mapTileSource = createDataSource(
|
|
27
|
-
'https://example.com/arcgis/rest/services/World/MapServer',
|
|
28
|
-
SERVICE_LOADERS,
|
|
29
|
-
{}
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
// `load` accepts the same registry and returns the selected runtime source.
|
|
33
|
-
const source = await load(serviceUrl, SERVICE_LOADERS, {
|
|
34
|
-
core: {type: 'arcgis-feature-server'}
|
|
35
|
-
});
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
| Service | Generic contract | Output |
|
|
39
|
-
| --- | --- | --- |
|
|
40
|
-
| FeatureServer | `VectorSource` | GeoJSON, binary, or Arrow features |
|
|
41
|
-
| ImageServer | `ImageSource` | Rendered images or decoded LERC rasters |
|
|
42
|
-
| ImageServer tiles | `TileSource` | Image or LERC tiles |
|
|
43
|
-
| MapServer | `TileSource` | Cached or dynamically exported image tiles |
|
|
44
|
-
| VectorTileServer | `VectorTileSource` | Raw MVT or decoded WGS84 features |
|
|
45
|
-
|
|
46
|
-
The same source adapters provide normalized metadata and the generic vector, image, and tile APIs
|
|
47
|
-
used by loaders.gl and deck.gl integrations. `SourceLayer` from `@loaders.gl/deck-layers` accepts
|
|
48
|
-
`SERVICE_LOADERS` directly.
|
|
49
|
-
|
|
50
|
-
See the [complete service guide](https://loaders.gl/docs/modules/services) and the feature table on
|
|
51
|
-
each service page.
|
|
12
|
+
See the [authentication guide](https://loaders.gl/docs/developer-guide/authentication).
|
package/dist/authentication.d.ts
CHANGED
|
@@ -1,16 +1,31 @@
|
|
|
1
1
|
import type { FetchLike, RequestCredential, TokenValue } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { TokenAuthentication } from '@loaders.gl/loader-utils';
|
|
3
|
+
/** Declarative Mapbox access-token authentication. */
|
|
4
|
+
export declare class MapboxAuthentication extends TokenAuthentication {
|
|
5
|
+
/** Discriminator used in `core.credentials`. */
|
|
6
|
+
static readonly type = "mapbox";
|
|
7
|
+
/** Creates a Mapbox credential with the existing provider defaults. */
|
|
8
|
+
constructor(options: MapboxCredentialOptions);
|
|
9
|
+
}
|
|
10
|
+
/** Declarative Google Maps API-key authentication. */
|
|
11
|
+
export declare class GoogleMapsAuthentication extends TokenAuthentication {
|
|
12
|
+
/** Discriminator used in `core.credentials`. */
|
|
13
|
+
static readonly type = "google-maps";
|
|
14
|
+
/** Creates a Google Maps credential with the existing provider defaults. */
|
|
15
|
+
constructor(options: GoogleMapsCredentialOptions);
|
|
16
|
+
}
|
|
17
|
+
/** Declarative Cesium ion authentication, including lazy asset-token exchange. */
|
|
18
|
+
export declare class CesiumIonAuthentication extends TokenAuthentication {
|
|
19
|
+
/** Discriminator used in `core.credentials`. */
|
|
20
|
+
static readonly type = "cesium-ion";
|
|
21
|
+
/** Creates an ion credential with the existing provider lifecycle. */
|
|
22
|
+
constructor(options: CesiumIonCredentialOptions);
|
|
23
|
+
}
|
|
2
24
|
/** Shared options for provider credential presets with known public API origins. */
|
|
3
25
|
export type ServiceCredentialOptions = {
|
|
4
26
|
/** Replaces the provider's default exact-origin allowlist. */
|
|
5
27
|
origins?: readonly string[];
|
|
6
28
|
};
|
|
7
|
-
/** Options for an ArcGIS REST service credential. */
|
|
8
|
-
export type ArcGISCredentialOptions = {
|
|
9
|
-
/** ArcGIS token or application-managed token callback. */
|
|
10
|
-
token: TokenValue;
|
|
11
|
-
/** Exact ArcGIS Online or Enterprise origins authorized to receive the token. */
|
|
12
|
-
origins: readonly string[];
|
|
13
|
-
};
|
|
14
29
|
/** Options for a Mapbox API credential. */
|
|
15
30
|
export type MapboxCredentialOptions = ServiceCredentialOptions & {
|
|
16
31
|
/** Mapbox public access token or application-managed token callback. */
|
|
@@ -32,8 +47,6 @@ export type CesiumIonCredentialOptions = ServiceCredentialOptions & {
|
|
|
32
47
|
/** Whether the supplied token is account-scoped or already asset-scoped. */
|
|
33
48
|
tokenType?: 'account' | 'asset' | 'auto';
|
|
34
49
|
};
|
|
35
|
-
/** Creates an exact-origin ArcGIS `token` query credential. */
|
|
36
|
-
export declare function createArcGISCredential(options: ArcGISCredentialOptions): RequestCredential;
|
|
37
50
|
/** Creates a Mapbox `access_token` query credential. */
|
|
38
51
|
export declare function createMapboxCredential(options: MapboxCredentialOptions): RequestCredential;
|
|
39
52
|
/** Creates a Google Maps Platform `key` query credential. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,UAAU,EACX,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,UAAU,EACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,mBAAmB,EAGpB,MAAM,0BAA0B,CAAC;AAIlC,sDAAsD;AACtD,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D,gDAAgD;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAY;IAChC,uEAAuE;gBAC3D,OAAO,EAAE,uBAAuB;CAG7C;AAED,sDAAsD;AACtD,qBAAa,wBAAyB,SAAQ,mBAAmB;IAC/D,gDAAgD;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,iBAAiB;IACrC,4EAA4E;gBAChE,OAAO,EAAE,2BAA2B;CAGjD;AAED,kFAAkF;AAClF,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D,gDAAgD;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB;IACpC,sEAAsE;gBAC1D,OAAO,EAAE,0BAA0B;CAGhD;AAMD,oFAAoF;AACpF,MAAM,MAAM,wBAAwB,GAAG;IACrC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG;IAC/D,wEAAwE;IACxE,WAAW,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,GAAG;IACnE,wEAAwE;IACxE,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,GAAG;IAClE,qEAAqE;IACrE,WAAW,EAAE,UAAU,CAAC;IACxB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,wEAAwE;IACxE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;CAC1C,CAAC;AAEF,wDAAwD;AACxD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,iBAAiB,CAO1F;AAED,6DAA6D;AAC7D,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,iBAAiB,CAOnB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,iBAAiB,CAwBhG"}
|
package/dist/authentication.js
CHANGED
|
@@ -1,22 +1,39 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { createAuthenticatedFetch, createBearerTokenCredential, createQueryParameterCredential } from '@loaders.gl/loader-utils';
|
|
4
|
+
import { createAuthenticatedFetch, TokenAuthentication, createBearerTokenCredential, createQueryParameterCredential } from '@loaders.gl/loader-utils';
|
|
5
5
|
const CESIUM_ION_API_ORIGIN = 'https://api.cesium.com';
|
|
6
|
+
/** Declarative Mapbox access-token authentication. */
|
|
7
|
+
export class MapboxAuthentication extends TokenAuthentication {
|
|
8
|
+
/** Discriminator used in `core.credentials`. */
|
|
9
|
+
static type = 'mapbox';
|
|
10
|
+
/** Creates a Mapbox credential with the existing provider defaults. */
|
|
11
|
+
constructor(options) {
|
|
12
|
+
super(createMapboxCredential(options));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** Declarative Google Maps API-key authentication. */
|
|
16
|
+
export class GoogleMapsAuthentication extends TokenAuthentication {
|
|
17
|
+
/** Discriminator used in `core.credentials`. */
|
|
18
|
+
static type = 'google-maps';
|
|
19
|
+
/** Creates a Google Maps credential with the existing provider defaults. */
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(createGoogleMapsCredential(options));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Declarative Cesium ion authentication, including lazy asset-token exchange. */
|
|
25
|
+
export class CesiumIonAuthentication extends TokenAuthentication {
|
|
26
|
+
/** Discriminator used in `core.credentials`. */
|
|
27
|
+
static type = 'cesium-ion';
|
|
28
|
+
/** Creates an ion credential with the existing provider lifecycle. */
|
|
29
|
+
constructor(options) {
|
|
30
|
+
super(createCesiumIonCredential(options));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
6
33
|
const CESIUM_ION_ASSET_ORIGINS = [
|
|
7
34
|
'https://assets.ion.cesium.com',
|
|
8
35
|
'https://assets.cesium.com'
|
|
9
36
|
];
|
|
10
|
-
/** Creates an exact-origin ArcGIS `token` query credential. */
|
|
11
|
-
export function createArcGISCredential(options) {
|
|
12
|
-
return createQueryParameterCredential({
|
|
13
|
-
id: 'arcgis-token',
|
|
14
|
-
origins: options.origins,
|
|
15
|
-
parameterName: 'token',
|
|
16
|
-
token: options.token,
|
|
17
|
-
refreshStatusCodes: [401, 403, 498, 499]
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
37
|
/** Creates a Mapbox `access_token` query credential. */
|
|
21
38
|
export function createMapboxCredential(options) {
|
|
22
39
|
return createQueryParameterCredential({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAQpC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,EAC/B,MAAM,0BAA0B,CAAC;AAElC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"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"}
|