@loaders.gl/arcgis 5.0.0-alpha.8

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 (119) hide show
  1. package/README.md +26 -0
  2. package/dist/arcgis/arcgis-capability-graph.d.ts +50 -0
  3. package/dist/arcgis/arcgis-capability-graph.d.ts.map +1 -0
  4. package/dist/arcgis/arcgis-capability-graph.js +221 -0
  5. package/dist/arcgis/arcgis-capability-graph.js.map +1 -0
  6. package/dist/arcgis/arcgis-feature-query.d.ts +53 -0
  7. package/dist/arcgis/arcgis-feature-query.d.ts.map +1 -0
  8. package/dist/arcgis/arcgis-feature-query.js +381 -0
  9. package/dist/arcgis/arcgis-feature-query.js.map +1 -0
  10. package/dist/arcgis/arcgis-feature-server-source-loader-types.d.ts +33 -0
  11. package/dist/arcgis/arcgis-feature-server-source-loader-types.d.ts.map +1 -0
  12. package/dist/arcgis/arcgis-feature-server-source-loader-types.js +21 -0
  13. package/dist/arcgis/arcgis-feature-server-source-loader-types.js.map +1 -0
  14. package/dist/arcgis/arcgis-feature-server-source-loader.d.ts +84 -0
  15. package/dist/arcgis/arcgis-feature-server-source-loader.d.ts.map +1 -0
  16. package/dist/arcgis/arcgis-feature-server-source-loader.js +280 -0
  17. package/dist/arcgis/arcgis-feature-server-source-loader.js.map +1 -0
  18. package/dist/arcgis/arcgis-image-server-source-loader-types.d.ts +31 -0
  19. package/dist/arcgis/arcgis-image-server-source-loader-types.d.ts.map +1 -0
  20. package/dist/arcgis/arcgis-image-server-source-loader-types.js +21 -0
  21. package/dist/arcgis/arcgis-image-server-source-loader-types.js.map +1 -0
  22. package/dist/arcgis/arcgis-image-server-source-loader.d.ts +60 -0
  23. package/dist/arcgis/arcgis-image-server-source-loader.d.ts.map +1 -0
  24. package/dist/arcgis/arcgis-image-server-source-loader.js +130 -0
  25. package/dist/arcgis/arcgis-image-server-source-loader.js.map +1 -0
  26. package/dist/arcgis/arcgis-image-tile-source-loader-types.d.ts +31 -0
  27. package/dist/arcgis/arcgis-image-tile-source-loader-types.d.ts.map +1 -0
  28. package/dist/arcgis/arcgis-image-tile-source-loader-types.js +21 -0
  29. package/dist/arcgis/arcgis-image-tile-source-loader-types.js.map +1 -0
  30. package/dist/arcgis/arcgis-image-tile-source-loader.d.ts +63 -0
  31. package/dist/arcgis/arcgis-image-tile-source-loader.d.ts.map +1 -0
  32. package/dist/arcgis/arcgis-image-tile-source-loader.js +147 -0
  33. package/dist/arcgis/arcgis-image-tile-source-loader.js.map +1 -0
  34. package/dist/arcgis/arcgis-map-tile-source-loader-types.d.ts +31 -0
  35. package/dist/arcgis/arcgis-map-tile-source-loader-types.d.ts.map +1 -0
  36. package/dist/arcgis/arcgis-map-tile-source-loader-types.js +21 -0
  37. package/dist/arcgis/arcgis-map-tile-source-loader-types.js.map +1 -0
  38. package/dist/arcgis/arcgis-map-tile-source-loader.d.ts +62 -0
  39. package/dist/arcgis/arcgis-map-tile-source-loader.d.ts.map +1 -0
  40. package/dist/arcgis/arcgis-map-tile-source-loader.js +196 -0
  41. package/dist/arcgis/arcgis-map-tile-source-loader.js.map +1 -0
  42. package/dist/arcgis/arcgis-scene-aggregation.d.ts +34 -0
  43. package/dist/arcgis/arcgis-scene-aggregation.d.ts.map +1 -0
  44. package/dist/arcgis/arcgis-scene-aggregation.js +57 -0
  45. package/dist/arcgis/arcgis-scene-aggregation.js.map +1 -0
  46. package/dist/arcgis/arcgis-scene-server-source-loader-types.d.ts +31 -0
  47. package/dist/arcgis/arcgis-scene-server-source-loader-types.d.ts.map +1 -0
  48. package/dist/arcgis/arcgis-scene-server-source-loader-types.js +21 -0
  49. package/dist/arcgis/arcgis-scene-server-source-loader-types.js.map +1 -0
  50. package/dist/arcgis/arcgis-scene-server-source-loader.d.ts +64 -0
  51. package/dist/arcgis/arcgis-scene-server-source-loader.d.ts.map +1 -0
  52. package/dist/arcgis/arcgis-scene-server-source-loader.js +159 -0
  53. package/dist/arcgis/arcgis-scene-server-source-loader.js.map +1 -0
  54. package/dist/arcgis/arcgis-server.d.ts +15 -0
  55. package/dist/arcgis/arcgis-server.d.ts.map +1 -0
  56. package/dist/arcgis/arcgis-server.js +41 -0
  57. package/dist/arcgis/arcgis-server.js.map +1 -0
  58. package/dist/arcgis/arcgis-url-utils.d.ts +3 -0
  59. package/dist/arcgis/arcgis-url-utils.d.ts.map +1 -0
  60. package/dist/arcgis/arcgis-url-utils.js +23 -0
  61. package/dist/arcgis/arcgis-url-utils.js.map +1 -0
  62. package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.d.ts +31 -0
  63. package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.d.ts.map +1 -0
  64. package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.js +21 -0
  65. package/dist/arcgis/arcgis-vector-tile-server-source-loader-types.js.map +1 -0
  66. package/dist/arcgis/arcgis-vector-tile-server-source-loader.d.ts +66 -0
  67. package/dist/arcgis/arcgis-vector-tile-server-source-loader.d.ts.map +1 -0
  68. package/dist/arcgis/arcgis-vector-tile-server-source-loader.js +150 -0
  69. package/dist/arcgis/arcgis-vector-tile-server-source-loader.js.map +1 -0
  70. package/dist/arcgis-feature-query-types.d.ts +77 -0
  71. package/dist/arcgis-feature-query-types.d.ts.map +1 -0
  72. package/dist/arcgis-feature-query-types.js +5 -0
  73. package/dist/arcgis-feature-query-types.js.map +1 -0
  74. package/dist/arcgis-source-types.d.ts +372 -0
  75. package/dist/arcgis-source-types.d.ts.map +1 -0
  76. package/dist/arcgis-source-types.js +108 -0
  77. package/dist/arcgis-source-types.js.map +1 -0
  78. package/dist/authentication.d.ts +19 -0
  79. package/dist/authentication.d.ts.map +1 -0
  80. package/dist/authentication.js +24 -0
  81. package/dist/authentication.js.map +1 -0
  82. package/dist/bundled.d.ts +151 -0
  83. package/dist/bundled.d.ts.map +1 -0
  84. package/dist/bundled.js +33 -0
  85. package/dist/bundled.js.map +1 -0
  86. package/dist/index.cjs +24932 -0
  87. package/dist/index.cjs.map +6 -0
  88. package/dist/index.d.ts +23 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/index.js +11 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/service-registry.d.ts +18 -0
  93. package/dist/service-registry.d.ts.map +1 -0
  94. package/dist/service-registry.js +29 -0
  95. package/dist/service-registry.js.map +1 -0
  96. package/package.json +91 -0
  97. package/src/arcgis/arcgis-capability-graph.ts +297 -0
  98. package/src/arcgis/arcgis-feature-query.ts +442 -0
  99. package/src/arcgis/arcgis-feature-server-source-loader-types.ts +34 -0
  100. package/src/arcgis/arcgis-feature-server-source-loader.ts +373 -0
  101. package/src/arcgis/arcgis-image-server-source-loader-types.ts +34 -0
  102. package/src/arcgis/arcgis-image-server-source-loader.ts +186 -0
  103. package/src/arcgis/arcgis-image-tile-source-loader-types.ts +34 -0
  104. package/src/arcgis/arcgis-image-tile-source-loader.ts +192 -0
  105. package/src/arcgis/arcgis-map-tile-source-loader-types.ts +34 -0
  106. package/src/arcgis/arcgis-map-tile-source-loader.ts +248 -0
  107. package/src/arcgis/arcgis-scene-aggregation.ts +90 -0
  108. package/src/arcgis/arcgis-scene-server-source-loader-types.ts +36 -0
  109. package/src/arcgis/arcgis-scene-server-source-loader.ts +216 -0
  110. package/src/arcgis/arcgis-server.ts +61 -0
  111. package/src/arcgis/arcgis-url-utils.ts +26 -0
  112. package/src/arcgis/arcgis-vector-tile-server-source-loader-types.ts +36 -0
  113. package/src/arcgis/arcgis-vector-tile-server-source-loader.ts +196 -0
  114. package/src/arcgis-feature-query-types.ts +89 -0
  115. package/src/arcgis-source-types.ts +372 -0
  116. package/src/authentication.ts +35 -0
  117. package/src/bundled.ts +66 -0
  118. package/src/index.ts +63 -0
  119. package/src/service-registry.ts +43 -0
@@ -0,0 +1,372 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {DataSourceOptions, SourceLoader} from '@loaders.gl/loader-utils';
6
+ import type {ImageLoaderOptions} from '@loaders.gl/images';
7
+ import type {MVTLoaderOptions} from '@loaders.gl/mvt';
8
+
9
+ /** Static source metadata shared by lazy descriptors and runtime loaders. */
10
+ type ArcGISSourceMetadata = Omit<SourceLoader, 'dataType' | 'batchType' | 'createDataSource'>;
11
+
12
+ /** Parameters for ArcGIS FeatureServer query requests. */
13
+ export type ArcGISFeatureServiceQueryOptions = {
14
+ /** Include feature geometries in the response. */
15
+ returnGeometry?: boolean;
16
+ /** SQL where clause. */
17
+ where?: string;
18
+ /** Output spatial reference. */
19
+ outSR?: string | number;
20
+ /** Output fields. */
21
+ outFields?: string | string[];
22
+ /** Input spatial reference for supplied geometry. */
23
+ inSR?: string | number;
24
+ /** Filter geometry as an ArcGIS REST geometry string. */
25
+ geometry?: string;
26
+ /** Filter geometry type. */
27
+ geometryType?:
28
+ | 'esriGeometryEnvelope'
29
+ | 'esriGeometryPoint'
30
+ | 'esriGeometryPolyline'
31
+ | 'esriGeometryPolygon';
32
+ /** Spatial relationship for geometry filters. */
33
+ spatialRel?:
34
+ | 'esriSpatialRelIntersects'
35
+ | 'esriSpatialRelContains'
36
+ | 'esriSpatialRelCrosses'
37
+ | 'esriSpatialRelEnvelopeIntersects'
38
+ | 'esriSpatialRelIndexIntersects'
39
+ | 'esriSpatialRelOverlaps'
40
+ | 'esriSpatialRelTouches'
41
+ | 'esriSpatialRelWithin';
42
+ /** Geometry precision. */
43
+ geometryPrecision?: number;
44
+ /** Query result type. */
45
+ resultType?: 'none' | 'standard' | 'tile';
46
+ /** Restrict retrieval to these object IDs. */
47
+ objectIds?: (number | string)[] | string;
48
+ /** Time instant or extent in ArcGIS REST syntax. */
49
+ time?: string | number;
50
+ /** Explicit offset for queryFeaturePage(); complete queries manage this themselves. */
51
+ resultOffset?: number;
52
+ /** Explicit page limit for queryFeaturePage(). */
53
+ resultRecordCount?: number;
54
+ /** Explicit ordering for queryFeaturePage(); complete queries order by object ID. */
55
+ orderByFields?: string;
56
+ /** Response format hint; spatial reads use GeoJSON and nonspatial tables use JSON. */
57
+ f?: 'geojson' | 'json' | 'pjson';
58
+ };
59
+
60
+ /** Options for the ArcGIS FeatureServer source. */
61
+ export type ArcGISFeatureServerSourceLoaderOptions = DataSourceOptions & {
62
+ 'arcgis-feature-server'?: {
63
+ /** Default ArcGIS query request parameters. */
64
+ queryParameters?: Partial<ArcGISFeatureServiceQueryOptions>;
65
+ };
66
+ };
67
+
68
+ /** Options for the ArcGIS ImageServer source. */
69
+ export type ArcGISImageSourceLoaderProps = DataSourceOptions &
70
+ ImageLoaderOptions & {
71
+ 'arcgis-image-server'?: {
72
+ /** Default ArcGIS exportImage request parameters. */
73
+ exportImageParameters?: Partial<ArcGISExportImageParameters>;
74
+ };
75
+ };
76
+
77
+ /** Parameters for ArcGIS ImageServer exportImage requests. */
78
+ export type ArcGISExportImageParameters = {
79
+ /** Bounding box of the requested image. */
80
+ bbox: [number, number, number, number];
81
+ /** Spatial reference of the supplied bbox. */
82
+ bboxSR?: string | number;
83
+ /** Pixel width of returned image. */
84
+ width: number;
85
+ /** Pixel height of returned image. */
86
+ height: number;
87
+ /** Spatial reference of the returned image. */
88
+ imageSR?: string | number;
89
+ /** Requested image format. */
90
+ format?: 'jpgpng' | 'png' | 'png8' | 'png24' | 'jpg' | 'bmp' | 'gif' | 'tiff' | 'png32' | 'lerc';
91
+ /** Requested pixel type. */
92
+ pixelType?: 'U1' | 'U2' | 'U4' | 'U8' | 'S8' | 'U16' | 'S16' | 'U32' | 'S32' | 'F32' | 'F64';
93
+ /** NoData pixel value. */
94
+ noData?: string | number;
95
+ /** NoData interpretation mode. */
96
+ noDataInterpretation?: 'esriNoDataMatchAny' | 'esriNoDataMatchAll';
97
+ /** Resampling interpolation. */
98
+ interpolation?: string;
99
+ /** Compression type. */
100
+ compression?: string;
101
+ /** Compression quality. */
102
+ compressionQuality?: number;
103
+ /** Band ids to export. */
104
+ bandIds?: string | number[];
105
+ /** Mosaic rule JSON string or object. */
106
+ mosaicRule?: string | Record<string, unknown>;
107
+ /** Rendering rule JSON string or object. */
108
+ renderingRule?: string | Record<string, unknown>;
109
+ /** ArcGIS response format. */
110
+ f?: 'image' | 'json' | 'pjson';
111
+ };
112
+
113
+ /** Options for the ArcGIS ImageServer tile source. */
114
+ export type ArcGISImageTileSourceLoaderOptions = DataSourceOptions &
115
+ ImageLoaderOptions & {
116
+ 'arcgis-image-server-tiles'?: {
117
+ /** Tile size used for exportImage requests. */
118
+ tileSize?: number;
119
+ /** Optional service URL pool for simple request distribution. */
120
+ urls?: string[];
121
+ /** Additional exportImage parameters. */
122
+ parameters?: Record<string, string | number | boolean>;
123
+ /** Response format, using LERC for analytical raster tiles. */
124
+ format?: 'png32' | 'lerc';
125
+ };
126
+ };
127
+
128
+ /** Options for an ArcGIS cached MapServer tile source. */
129
+ export type ArcGISMapTileSourceLoaderOptions = DataSourceOptions &
130
+ ImageLoaderOptions & {
131
+ 'arcgis-map-server'?: {
132
+ /** Select cached tiles, dynamic export tiles, or automatic metadata-based selection. */
133
+ mode?: 'cached' | 'dynamic' | 'auto';
134
+ /** Tile size used for dynamic export requests. */
135
+ tileSize?: number;
136
+ /** Optional custom tile URL template. */
137
+ urlTemplate?: string;
138
+ /** Optional service URL pool for simple request distribution. */
139
+ urls?: string[];
140
+ /** Additional query parameters sent to the metadata endpoint. */
141
+ parameters?: Record<string, string>;
142
+ /** Metadata document supplied by the application. */
143
+ metadata?: ArcGISMapServerMetadata;
144
+ /** Default parameters forwarded to MapServer `export` requests. */
145
+ exportParameters?: Record<string, string | number | boolean>;
146
+ };
147
+ };
148
+
149
+ /** Relevant normalized fields from an ArcGIS MapServer metadata document. */
150
+ export type ArcGISMapServerMetadata = {
151
+ name?: string;
152
+ description?: string;
153
+ serviceDescription?: string;
154
+ copyrightText?: string;
155
+ fullExtent?: {xmin: number; ymin: number; xmax: number; ymax: number; spatialReference?: unknown};
156
+ spatialReference?: unknown;
157
+ tileInfo?: {
158
+ lods?: {level: number}[];
159
+ rows?: number;
160
+ cols?: number;
161
+ format?: string;
162
+ spatialReference?: unknown;
163
+ origin?: {x: number; y: number};
164
+ };
165
+ };
166
+
167
+ /** Parameters that can be changed between ArcGIS map tile requests. */
168
+ export type ArcGISMapTileParameters = Record<string, string | number | boolean>;
169
+
170
+ /** Parameters accepted by the ArcGIS SceneServer query endpoint. */
171
+ export type ArcGISSceneQueryOptions = {
172
+ /** SQL where clause. */
173
+ where?: string;
174
+ /** Object IDs to include. */
175
+ objectIds?: number[] | string;
176
+ /** Geometry filter encoded using ArcGIS REST geometry syntax. */
177
+ geometry?: unknown;
178
+ /** Geometry type for the geometry filter. */
179
+ geometryType?: string;
180
+ /** Spatial relationship for the geometry filter. */
181
+ spatialRel?: string;
182
+ /** Fields to return. */
183
+ outFields?: string | string[];
184
+ /** Whether feature geometry should be included. */
185
+ returnGeometry?: boolean;
186
+ /** Input spatial reference. */
187
+ inSR?: string | number | object;
188
+ /** Output spatial reference. */
189
+ outSR?: string | number | object;
190
+ /** ArcGIS result type. */
191
+ resultType?: string;
192
+ /** Result page offset. */
193
+ resultOffset?: number;
194
+ /** Maximum records in one page. */
195
+ resultRecordCount?: number;
196
+ /** Response format. */
197
+ f?: 'json' | 'pjson';
198
+ /** Abort signal for the request. */
199
+ signal?: AbortSignal;
200
+ };
201
+
202
+ /** Normalized result returned by a SceneServer query. */
203
+ export type ArcGISSceneQueryResult = {
204
+ /** Returned SceneServer features. */
205
+ features: unknown[];
206
+ /** Field metadata advertised by the layer. */
207
+ fields?: unknown[];
208
+ /** Whether another page is available. */
209
+ exceededTransferLimit?: boolean;
210
+ /** Original response metadata for advanced consumers. */
211
+ rawMetadata?: unknown;
212
+ };
213
+
214
+ /** Options for an ArcGIS SceneServer source. */
215
+ export type ArcGISSceneServerSourceOptions = DataSourceOptions & {
216
+ 'arcgis-scene-server'?: {
217
+ /** Layer identifier used when the input URL ends at `/SceneServer`. */
218
+ layerId?: number | string;
219
+ /** ArcGIS token applied to metadata and tile-resource requests. */
220
+ token?: string;
221
+ /** Optional metadata document for offline or preloaded use. */
222
+ metadata?: unknown;
223
+ };
224
+ };
225
+
226
+ /** ArcGIS vector tile service metadata. */
227
+ export type ArcGISVectorTileServiceMetadata = {
228
+ /** Human-readable service description. */
229
+ serviceDescription?: string;
230
+ /** Map name exposed by the service. */
231
+ mapName?: string;
232
+ /** Tile grid information. */
233
+ tileInfo?: {
234
+ /** Tile width in pixels. */
235
+ cols?: number;
236
+ /** Tile height in pixels. */
237
+ rows?: number;
238
+ /** Tile format, normally pbf. */
239
+ format?: string;
240
+ /** Tile origin. */
241
+ origin?: {x: number; y: number};
242
+ /** Tile grid spatial reference. */
243
+ spatialReference?: {wkid?: number; latestWkid?: number};
244
+ /** Levels of detail. */
245
+ lods?: Array<{level: number; resolution: number; scale?: number}>;
246
+ };
247
+ /** Full service extent. */
248
+ fullExtent?: {xmin: number; ymin: number; xmax: number; ymax: number};
249
+ /** Initial service extent. */
250
+ initialExtent?: {xmin: number; ymin: number; xmax: number; ymax: number};
251
+ };
252
+
253
+ /** Options for the ArcGIS VectorTileServer source. */
254
+ export type ArcGISVectorTileServerSourceLoaderOptions = DataSourceOptions &
255
+ MVTLoaderOptions & {
256
+ 'arcgis-vector-tile-server'?: {
257
+ /** Optional MVT parser options. */
258
+ mvt?: MVTLoaderOptions['mvt'];
259
+ };
260
+ };
261
+
262
+ /** Shared ArcGISFeatureServerSourceLoader metadata, without runtime or lazy-loading dependencies. */
263
+ export const ARCGIS_FEATURE_SERVER_SOURCE_LOADER_METADATA = {
264
+ name: 'ArcGISFeatureServer',
265
+ id: 'arcgis-feature-server',
266
+ module: 'arcgis',
267
+ version: '0.0.0',
268
+ extensions: [],
269
+ mimeTypes: [],
270
+ type: 'arcgis-feature-server',
271
+ fromUrl: true,
272
+ fromBlob: false,
273
+ options: {
274
+ url: undefined!,
275
+ 'arcgis-feature-server': {}
276
+ },
277
+ defaultOptions: {
278
+ url: undefined!,
279
+ 'arcgis-feature-server': {}
280
+ },
281
+ testURL: (url: string): boolean =>
282
+ /\/featureserver(?:[/?#]|$)/i.test(url) || /\/mapserver\/\d+(?:[/?#]|$)/i.test(url)
283
+ } as const satisfies ArcGISSourceMetadata;
284
+
285
+ /** Shared ArcGISImageServerSourceLoader metadata, without runtime or lazy-loading dependencies. */
286
+ export const ARCGIS_IMAGE_SERVER_SOURCE_LOADER_METADATA = {
287
+ name: 'ArcGISImageServer',
288
+ id: 'arcgis-image-server',
289
+ module: 'arcgis',
290
+ version: '0.0.0',
291
+ extensions: [],
292
+ mimeTypes: [],
293
+ type: 'arcgis-image-server',
294
+ fromUrl: true,
295
+ fromBlob: false,
296
+ options: {
297
+ 'arcgis-image-server': {
298
+ // TODO - add options here
299
+ }
300
+ },
301
+ defaultOptions: {
302
+ 'arcgis-image-server': {
303
+ // TODO - add options here
304
+ }
305
+ },
306
+ testURL: (url: string): boolean => url.toLowerCase().includes('imageserver')
307
+ } as const satisfies ArcGISSourceMetadata;
308
+
309
+ /** Shared ArcGISImageTileSourceLoader metadata, without runtime or lazy-loading dependencies. */
310
+ export const ARCGIS_IMAGE_TILE_SOURCE_LOADER_METADATA = {
311
+ name: 'ArcGIS ImageServer tiles',
312
+ id: 'arcgis-image-server-tiles',
313
+ module: 'arcgis',
314
+ version: '0.0.0',
315
+ extensions: [],
316
+ mimeTypes: [],
317
+ type: 'arcgis-image-server-tiles',
318
+ fromUrl: true,
319
+ fromBlob: false,
320
+ options: {'arcgis-image-server-tiles': {}},
321
+ defaultOptions: {'arcgis-image-server-tiles': {}},
322
+ testURL: (url: string): boolean => /imageserver/i.test(url)
323
+ } as const satisfies ArcGISSourceMetadata;
324
+
325
+ /** Shared ArcGISMapTileSourceLoader metadata, without runtime or lazy-loading dependencies. */
326
+ export const ARCGIS_MAP_TILE_SOURCE_LOADER_METADATA = {
327
+ name: 'ArcGIS MapServer tiles',
328
+ id: 'arcgis-map-server',
329
+ module: 'arcgis',
330
+ version: '0.0.0',
331
+ extensions: [],
332
+ mimeTypes: [],
333
+ type: 'arcgis-map-server',
334
+ fromUrl: true,
335
+ fromBlob: false,
336
+ options: {'arcgis-map-server': {}},
337
+ defaultOptions: {'arcgis-map-server': {}},
338
+ testURL: (url: string): boolean =>
339
+ /mapserver/i.test(url) && !/imageserver|featureserver/i.test(url)
340
+ } as const satisfies ArcGISSourceMetadata;
341
+
342
+ /** Shared ArcGISSceneServerSourceLoader metadata, without runtime or lazy-loading dependencies. */
343
+ export const ARCGIS_SCENE_SERVER_SOURCE_LOADER_METADATA = {
344
+ name: 'ArcGIS SceneServer',
345
+ id: 'arcgis-scene-server',
346
+ module: 'arcgis',
347
+ version: '0.0.0',
348
+ extensions: [],
349
+ mimeTypes: ['application/json'],
350
+ type: 'arcgis-scene-server',
351
+ fromUrl: true,
352
+ fromBlob: false,
353
+ options: {'arcgis-scene-server': {}},
354
+ defaultOptions: {'arcgis-scene-server': {}},
355
+ testURL: (url: string): boolean => /\/SceneServer(?:[\/?#]|$)/i.test(url)
356
+ } as const satisfies ArcGISSourceMetadata;
357
+
358
+ /** Shared ArcGISVectorTileServerSourceLoader metadata, without runtime or lazy-loading dependencies. */
359
+ export const ARCGIS_VECTOR_TILE_SERVER_SOURCE_LOADER_METADATA = {
360
+ name: 'ArcGIS VectorTileServer',
361
+ id: 'arcgis-vector-tile-server',
362
+ module: 'arcgis',
363
+ version: '0.0.0',
364
+ extensions: [],
365
+ mimeTypes: ['application/vnd.mapbox-vector-tile', 'application/x-protobuf'],
366
+ type: 'arcgis-vector-tile-server',
367
+ fromUrl: true,
368
+ fromBlob: false,
369
+ options: {'arcgis-vector-tile-server': {}},
370
+ defaultOptions: {'arcgis-vector-tile-server': {}},
371
+ testURL: (url: string): boolean => /\/vectortileserver(?:[\/?#]|$)/i.test(url)
372
+ } as const satisfies ArcGISSourceMetadata;
@@ -0,0 +1,35 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {RequestCredential, TokenValue} from '@loaders.gl/loader-utils';
6
+ import {TokenAuthentication, createQueryParameterCredential} from '@loaders.gl/loader-utils';
7
+
8
+ /** Declarative ArcGIS token authentication. */
9
+ export class ArcGISAuthentication extends TokenAuthentication {
10
+ /** Discriminator used in `core.credentials`. */
11
+ static readonly type = 'arcgis';
12
+ /** Creates an exact-origin ArcGIS credential. */
13
+ constructor(options: ArcGISCredentialOptions) {
14
+ super(createArcGISCredential(options));
15
+ }
16
+ }
17
+
18
+ /** Options for an ArcGIS REST service credential. */
19
+ export type ArcGISCredentialOptions = {
20
+ /** ArcGIS token or application-managed token callback. */
21
+ token: TokenValue;
22
+ /** Exact ArcGIS Online or Enterprise origins authorized to receive the token. */
23
+ origins: readonly string[];
24
+ };
25
+
26
+ /** Creates an exact-origin ArcGIS `token` query credential. */
27
+ export function createArcGISCredential(options: ArcGISCredentialOptions): RequestCredential {
28
+ return createQueryParameterCredential({
29
+ id: 'arcgis-token',
30
+ origins: options.origins,
31
+ parameterName: 'token',
32
+ token: options.token,
33
+ refreshStatusCodes: [401, 403, 498, 499]
34
+ });
35
+ }
package/src/bundled.ts ADDED
@@ -0,0 +1,66 @@
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
+ }
package/src/index.ts ADDED
@@ -0,0 +1,63 @@
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';
@@ -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
+ }