ogcopenapis 1.1.1 → 1.2.1

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/CHANGELOG.md CHANGED
@@ -8,6 +8,35 @@ Each pull request adds its changes under Unreleased. A release renames Unrelease
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [1.2.1] - 2026-10-30
12
+
13
+ ### Fixed
14
+ - The `keywords` of a collection are always strings, as declared (`string[]`) and as OGC API Common Part 2 defines
15
+ them. `fromURL` passed the value of the server as it was: PDOK sends each keyword as an object, `{"keyword": "bak"}`,
16
+ which an application showed as `[object Object]`, the demo too. Strings are kept as they are; a keyword object of OGC
17
+ Web Services Common is read as its `keyword`, a shape that is not in the standard; anything else is left out.
18
+ Reported by a user of 1.2.0.
19
+
20
+ ## [1.2.0] - 2026-10-30
21
+
22
+ ### Added
23
+ - `getFilterSupport(capabilities)`: whether, and how, the server filters features, as its conformance classes declare.
24
+ `filter` for the Features Filter class of OGC API Features Part 3 (`FEATURES_FILTER_CONFORMANCE`), and the CQL2 1.0
25
+ `encodings` (`cql2-text`, `cql2-json`) and `levels` (`basic-cql2`, `advanced-comparison-operators`, …) by their
26
+ names. Each as declared: a CQL2 encoding without the Features Filter class gives `filter` false (pygeoapi).
27
+ Requested by a user of 1.1.1.
28
+ - `fetchQueryables(capabilities, collection, options?)`: the queryables of a collection (OGC API Features Part 3), the
29
+ JSON Schema of the properties a filter can use, as the server sends it (`OgcOpenApiQueryables`). It requests the
30
+ queryables link of the collection, or the path of the standard when `/collections` lists none (ldproxy, PDOK).
31
+ Resolves `null` for a collection without features and for a 404, rejects with an `Error` otherwise. Requested by a
32
+ user of 1.1.1.
33
+ - `onQueryResult` option of OgcOpenApiFeatureStore: called once for each query with what its response says about its
34
+ size, `numberMatched` (left out when the server gives none), `numberReturned` and `hasNext` (a next link, in the
35
+ response or its `Link` header), with the `url` and `query` of the request. From JSON and from the root element of
36
+ GML. Not called for `get`, a failed query or an aborted one. Requested by a user of 1.1.1.
37
+ - Demo: a URL that is not the landing page of an OGC API gets a message in plain words: an HTML page ("the server did
38
+ not answer JSON") or JSON without its links ("not the landing page of an OGC API").
39
+
11
40
  ## [1.1.1] - 2026-10-29
12
41
 
13
42
  ### Fixed
@@ -124,7 +153,9 @@ Each pull request adds its changes under Unreleased. A release renames Unrelease
124
153
 
125
154
  See the [git history](https://github.com/felipecarrillo100/ogcopenapis/commits/main).
126
155
 
127
- [Unreleased]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.1.1...HEAD
156
+ [Unreleased]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.2.1...HEAD
157
+ [1.2.1]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.2.0...v1.2.1
158
+ [1.2.0]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.1.1...v1.2.0
128
159
  [1.1.1]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.1.0...v1.1.1
129
160
  [1.1.0]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.0.3...v1.1.0
130
161
  [1.0.3]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.0.2...v1.0.3
package/README.md CHANGED
@@ -4,14 +4,14 @@
4
4
  The ogcopenapis package provides OGC API functionalities to LuciadRIA applications.
5
5
 
6
6
  Implements
7
- * __OGC API - Features__
7
+ * __OGC API - Features__, with the filters and queryables of Part 3
8
8
  * __OGC API - Maps__
9
9
  * __OGC API - Tiles__, map (raster) tiles and vector tiles, of collections and of the dataset
10
10
  * __OGC API - Styles__, for vector tiles
11
11
 
12
12
  The Main Components are:
13
13
 
14
- * __OgcOpenApiGetCapabilities__: a helper to retrieve the capabilities of a server such as available collections, available formats, tilesets and tile matrix sets
14
+ * __OgcOpenApiGetCapabilities__: a helper to retrieve the capabilities of a server such as available collections, available formats, tilesets and tile matrix sets, and the filter support and queryables for features
15
15
  * __OgcOpenApiFeatureStore__: a ready to use LuciadRIA store that retrieves features from an OGC API Features service
16
16
  * __OgcOpenApiMapsModel__: a ready to use model that retrieves images from an OGC API Maps service
17
17
  * __OgcOpenApiTilesModel__: a ready to use model that retrieves map tiles from an OGC API Tiles service
@@ -118,6 +118,10 @@ header, and rejects with an `Error` when the landing page or the collections can
118
118
  with the error of `fetch`, an `AbortError` included, so a request can be cancelled through `proxify`. The API document
119
119
  and the conformance classes are optional.
120
120
 
121
+ The `keywords` of a collection are always strings, as OGC API Common Part 2 defines them, and a server's strings are
122
+ kept as they are. A keyword sent as an object with a string `keyword`, the shape of OGC Web Services Common that PDOK
123
+ sends (`{"keyword": "bak"}`), is read as that string; this is not in the standard. Anything else is left out.
124
+
121
125
  All components accept `credentials` and `requestHeaders` for their requests, and `proxify`, a function that rewrites each
122
126
  request, for instance to send it through a proxy:
123
127
  ```typescript
@@ -168,8 +172,31 @@ function createFeatureLayer(collection: OgcOpenApiCapabilitiesCollection) {
168
172
  return new FeatureLayer(model, {label: collection.title || collection.id, loadingStrategy: new LoadSpatially()});
169
173
  }
170
174
  ```
171
- The store requests the features in view, a query does not follow the `next` links of a response yet (no paging). It
172
- keeps the parameters of the items link, such as `profile` or an api key, and encodes the values of its own.
175
+ The store requests the features in view, and a query does not follow the `next` links of a response: a map layer
176
+ shows the features of its view, up to `limit`, without paging. Paging belongs with a table of the features, it needs
177
+ a UI to move through the pages. The store keeps the parameters of the items link, such as `profile` or an api key, and
178
+ encodes the values of its own.
179
+
180
+ `onQueryResult` tells what the response to each query says about its size, to show for example "3,460 match, 1,000
181
+ shown":
182
+ ```typescript
183
+ const store = new OgcOpenApiFeatureStore({
184
+ // ...the options above
185
+ onQueryResult: ({url, query, numberMatched, numberReturned, hasNext}) => {
186
+ if (hasNext) console.log((numberMatched ?? "More") + " match, " + numberReturned + " shown");
187
+ },
188
+ });
189
+ ```
190
+ * It is called once for each query whose features are decoded, not for `get`, a failed query or an aborted one.
191
+ With `LoadSpatially` every view sends a query of its own: `numberMatched` counts the features in its `bbox`, and
192
+ `url` and `query` tell which request it answers.
193
+ * `numberMatched` is left out when the server gives none, it is optional (PDOK). `numberReturned` can be less than
194
+ `limit`, servers cap it (pygeoapi at 10).
195
+ * `hasNext`: the response links a next page, in its `links` or its `Link` header: not every match is shown. The store
196
+ does not request that page. Left out when the response has no links to tell, such as GML whose `Link` header the
197
+ browser cannot read (CORS).
198
+ * The counts come from the response: the members of JSON, or the attributes of the root element of GML. Reading them
199
+ parses a JSON response a second time, only when `onQueryResult` is set.
173
200
 
174
201
  JSON-FG (OGC Features and Geometries JSON) needs a JSON-FG codec, which LuciadRIA does not have yet. Servers offer it as
175
202
  `application/vnd.ogc.fg+json`, or as `application/geo+json` with the JSON-FG profile (ldproxy); `isJsonFgLink` tells them
@@ -180,6 +207,42 @@ Keep the ids of the server: `generateIDs: false`. Each feature of an OGC API Fea
180
207
  the store requests `items/{id}` with it, and LuciadRIA updates only the features that changed when the ids stay the same
181
208
  between queries. `generateIDs: true` replaces them with ids of its own on every query.
182
209
 
210
+ #### Filters
211
+ The store passes a server-side filter through the query (OGC API Features Part 3): `filter`, `filter-lang` and
212
+ `filter-crs`. `getFilterSupport` says whether, and how, the server filters, as its conformance classes declare:
213
+ ```typescript
214
+ const support = OgcOpenApiGetCapabilities.getFilterSupport(capabilities);
215
+ // {filter: true, encodings: ["cql2-json", "cql2-text"], levels: ["advanced-comparison-operators", "basic-cql2", ...]}
216
+ if (support.filter && support.encodings.indexOf("cql2-text") > -1) {
217
+ // Within the levels the server declares: like, between and in need advanced-comparison-operators
218
+ const cursor = await store.query({filter: "F_CODE='AP030'", "filter-lang": "cql2-text"});
219
+ }
220
+ ```
221
+ * `filter`: the server declares the Features Filter class of Part 3,
222
+ `http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter`.
223
+ * `encodings` and `levels`: the CQL2 1.0 classes the server declares (`http://www.opengis.net/spec/cql2/1.0/conf/…`),
224
+ by their names. The encodings are also the values of `filter-lang`.
225
+ * Each is reported as the server declares it. pygeoapi, for example, declares `cql2-text` and `basic-cql2` without the
226
+ Features Filter class: `filter` is false, and accepting the encoding alone is up to the application.
227
+ * Pre-standard CQL classes, such as `ogcapi-features-3/1.0/conf/cql-text` (CubeWerx), are not CQL2 and are left out.
228
+
229
+ The properties a filter can use are the queryables of the collection, a JSON Schema. `fetchQueryables` returns it as
230
+ the server sends it, to interpret in the application:
231
+ ```typescript
232
+ const queryables = await OgcOpenApiGetCapabilities.fetchQueryables(capabilities, collection);
233
+ if (queryables) {
234
+ for (const [name, schema] of Object.entries(queryables.properties || {})) {
235
+ // F_CODE {type: "string", title: "Feature Type Code", enum: ["AN010", ...], "x-ogc-role": "type"}
236
+ console.log(name, schema.type, schema.format, schema.title, schema.enum);
237
+ }
238
+ }
239
+ ```
240
+ * It requests the queryables link of the collection, JSON Schema or JSON, with `Accept: application/schema+json,
241
+ application/json`. ldproxy and PDOK list that link only in the collection document, not in `/collections`: then
242
+ it requests the path of the standard, `/collections/{collectionId}/queryables`.
243
+ * It resolves `null` for a collection without features, without a request, and when the server answers 404.
244
+ * The geometry is a queryable too, with `"x-ogc-role": "primary-geometry"` and a `format` such as `geometry-point`.
245
+
183
246
  ### Maps
184
247
  OgcOpenApiMapsModel extends WMSTileSetModel, use it with a RasterTileSetLayer. It requests the map as tiles, in the
185
248
  reference of the map when the collection offers it, otherwise in CRS84, which every server supports, and LuciadRIA
@@ -22,6 +22,14 @@ export interface OgcOpenApiFeatureStoreConstructorOptions {
22
22
  };
23
23
  crs: string;
24
24
  proxify?: ProxifyFunction;
25
+ onQueryResult?: (result: OgcOpenApiFeatureQueryResult) => void;
26
+ }
27
+ export interface OgcOpenApiFeatureQueryResult {
28
+ url: string;
29
+ query: OgcOpenApiFeatureStoreQueryOptions;
30
+ numberMatched?: number;
31
+ numberReturned?: number;
32
+ hasNext?: boolean;
25
33
  }
26
34
  export interface OgcOpenApiFeatureStoreQueryOptions {
27
35
  f?: string;
@@ -79,6 +87,7 @@ export declare class OgcOpenApiFeatureStore extends Store {
79
87
  private credentials;
80
88
  private serverOptions;
81
89
  private swapAxes;
90
+ private onQueryResult;
82
91
  constructor(options: OgcOpenApiFeatureStoreConstructorOptions);
83
92
  get bounds(): Bounds;
84
93
  isOperationSupported(methodName: StoreOperationName): boolean;
@@ -87,6 +96,7 @@ export declare class OgcOpenApiFeatureStore extends Store {
87
96
  private withQuery;
88
97
  private fetchFeatures;
89
98
  spatialQuery(bounds?: Bounds, receivedQuery?: OgcOpenApiFeatureStoreQueryOptions, options?: QueryOptions): Promise<Cursor> | Cursor;
99
+ private static getResultSize;
90
100
  private static getCRS84BoundingBox;
91
101
  private static targetBounds;
92
102
  private static cleanUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiFeatureStore.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgcOpenApiFeatureStore.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export class OgcOpenApiFeatureStore extends Store {
15
15
  super();
16
16
  // console.log(options);
17
17
  this.swapAxes = options.swapAxes;
18
+ this.onQueryResult = options.onQueryResult;
18
19
  this.useCrs84Bounds = typeof options.useCrs84Bounds !== "undefined" ? options.useCrs84Bounds : false;
19
20
  this.dataUrl = options.dataUrl;
20
21
  this.outputFormat = options.outputFormat;
@@ -66,7 +67,7 @@ export class OgcOpenApiFeatureStore extends Store {
66
67
  query.f = query.f ? query.f : this.dataFormat;
67
68
  query.crs = query.crs ? query.crs : this.customCrs;
68
69
  query.limit = query.limit ? query.limit : undefined;
69
- return this.fetchFeatures(this.withQuery(this.baseUrl, query), options?.abortSignal);
70
+ return this.fetchFeatures(this.withQuery(this.baseUrl, query), options?.abortSignal, query);
70
71
  }
71
72
  // The parameters of the items link, then those of the request, which replace a link parameter of the same name.
72
73
  // f comes first, every value is encoded
@@ -83,7 +84,8 @@ export class OgcOpenApiFeatureStore extends Store {
83
84
  }
84
85
  // Fetches and decodes features. The promise always settles: it rejects with the reason when the request,
85
86
  // the response or the decoding fails, and when LuciadRIA aborts the request through abortSignal.
86
- fetchFeatures(request, abortSignal) {
87
+ // A query is reported to onQueryResult once its features are decoded, unless it was aborted
88
+ fetchFeatures(request, abortSignal, query) {
87
89
  // Mod starta
88
90
  const itemsAccept = typeof this.requestHeaders.accept !== 'undefined'
89
91
  ? this.requestHeaders.accept.split(';')
@@ -116,10 +118,13 @@ export class OgcOpenApiFeatureStore extends Store {
116
118
  const codecOptions = {
117
119
  content, contentType, contentCrs, contentLength
118
120
  };
119
- if (this.codec instanceof GeoJsonCodec || this.codec instanceof GMLCodec) {
120
- return this.codec.decode({ ...codecOptions, reference: getReference(OgcOpenApiCrsTools.getReferenceName(contentCrs)) });
121
+ const cursor = this.codec instanceof GeoJsonCodec || this.codec instanceof GMLCodec ?
122
+ this.codec.decode({ ...codecOptions, reference: getReference(OgcOpenApiCrsTools.getReferenceName(contentCrs)) }) :
123
+ this.codec.decode(codecOptions);
124
+ if (query && this.onQueryResult && !abortSignal?.aborted) {
125
+ this.onQueryResult({ url: request, query, ...OgcOpenApiFeatureStore.getResultSize(content, contentType, response.headers.get('Link')) });
121
126
  }
122
- return this.codec.decode(codecOptions);
127
+ return cursor;
123
128
  });
124
129
  });
125
130
  }
@@ -159,6 +164,51 @@ export class OgcOpenApiFeatureStore extends Store {
159
164
  }
160
165
  return this.query(query, options);
161
166
  }
167
+ // The size of a response: the members of a JSON response, or the attributes of the root element of GML, and the
168
+ // next link of the response or of its Link header
169
+ static getResultSize(content, contentType, linkHeader) {
170
+ const size = {};
171
+ const count = (value) => {
172
+ const n = typeof value === "string" ? (/^\d+$/.test(value) ? Number(value) : undefined) : value;
173
+ return typeof n === "number" && isFinite(n) && n >= 0 ? n : undefined;
174
+ };
175
+ if (/json/i.test(contentType)) {
176
+ let data;
177
+ try {
178
+ data = JSON.parse(content);
179
+ }
180
+ catch (e) {
181
+ data = undefined;
182
+ }
183
+ if (data && typeof data === "object") {
184
+ size.numberMatched = count(data.numberMatched);
185
+ size.numberReturned = count(data.numberReturned);
186
+ if (Array.isArray(data.links))
187
+ size.hasNext = data.links.some(l => l && l.rel === "next");
188
+ }
189
+ }
190
+ else if (/xml/i.test(contentType)) {
191
+ // WFS 2.0 allows numberMatched="unknown"
192
+ const root = /<(?:[\w.-]+:)?FeatureCollection\b([^>]*)>/.exec(content);
193
+ const attribute = (name) => {
194
+ const match = root ? new RegExp("\\s" + name + "=[\"']([^\"']*)[\"']").exec(root[1]) : null;
195
+ return match ? count(match[1]) : undefined;
196
+ };
197
+ size.numberMatched = attribute("numberMatched");
198
+ size.numberReturned = attribute("numberReturned");
199
+ }
200
+ if (linkHeader) {
201
+ const next = linkHeader.split(/,\s*(?=<)/).some(link => {
202
+ const rel = /;\s*rel\s*=\s*"?([^";]*)"?/i.exec(link);
203
+ return rel !== null && rel[1].split(/\s+/).indexOf("next") > -1;
204
+ });
205
+ size.hasNext = size.hasNext || next;
206
+ }
207
+ for (const key of Object.keys(size))
208
+ if (typeof size[key] === "undefined")
209
+ delete size[key];
210
+ return size;
211
+ }
162
212
  static getCRS84BoundingBox(shape) {
163
213
  const WGS84 = getReference("CRS:84");
164
214
  const bounds = shape.bounds;
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiFeatureStore.js","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgcOpenApiFeatureStore.js","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,26 @@ export declare const JSON_FG_MEDIA_TYPE = "application/vnd.ogc.fg+json";
13
13
  export declare const JSON_FG_PROFILE = "http://www.opengis.net/def/profile/OGC/0/jsonfg";
14
14
  export declare const COLLECTIONS_SELECTION_CONFORMANCE = "http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collections-selection";
15
15
  export declare const COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS: string[];
16
+ export declare const FEATURES_FILTER_CONFORMANCE = "http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter";
17
+ export declare const CQL2_CONFORMANCE_PREFIX = "http://www.opengis.net/spec/cql2/1.0/conf/";
18
+ export declare const CQL2_ENCODINGS: string[];
19
+ export interface OgcOpenApiFilterSupport {
20
+ filter: boolean;
21
+ encodings: string[];
22
+ levels: string[];
23
+ }
24
+ export interface OgcOpenApiQueryables {
25
+ $schema?: string;
26
+ $id?: string;
27
+ type?: string;
28
+ title?: string;
29
+ properties?: {
30
+ [name: string]: {
31
+ [keyword: string]: any;
32
+ };
33
+ };
34
+ [keyword: string]: any;
35
+ }
16
36
  export interface TileMatrix {
17
37
  id: string;
18
38
  scaleDenominator: number;
@@ -141,6 +161,7 @@ export declare class OgcOpenApiGetCapabilities {
141
161
  * optional: without them the capabilities have no version and declare no conformance classes.
142
162
  */
143
163
  static fromURL(inputRequest: string, fromUrlOptions?: OgcOpenApiGetCapabilitiesFromURL): Promise<OgcOpenApiCapabilitiesObject>;
164
+ private static readKeywords;
144
165
  private static toError;
145
166
  static filterCollectionLinks(links: OgcOpenApiCapabilitiesCollectionServiceLinkType[], linkType: CollectionLinkType): OgcOpenApiCapabilitiesCollectionServiceLinkType[];
146
167
  static getDataLink(currentLayer: OgcOpenApiCapabilitiesCollection, preferedFormat: string): string;
@@ -172,6 +193,24 @@ export declare class OgcOpenApiGetCapabilities {
172
193
  * as its conformance classes declare: the class of the standard, or the variant of COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS
173
194
  */
174
195
  static supportsCollectionSelection(capabilities: OgcOpenApiCapabilitiesObject | null): boolean;
196
+ /**
197
+ * Whether, and how, the server filters features, as its conformance classes declare: the Features Filter class of
198
+ * OGC API Features Part 3, and the CQL2 1.0 classes by their names, in the order the server lists them. Each is
199
+ * reported as declared, a CQL2 encoding without the Features Filter class gives filter false. Pre-standard CQL
200
+ * classes (ogcapi-features-3/1.0/conf/cql-text) are not CQL2 and are left out.
201
+ */
202
+ static getFilterSupport(capabilities: OgcOpenApiCapabilitiesObject | null): OgcOpenApiFilterSupport;
203
+ /**
204
+ * Fetches the queryables of a collection (OGC API Features Part 3), the properties a filter can use: a JSON Schema,
205
+ * as the server sends it. Resolves null for a collection that has none: a collection without features, or a
206
+ * queryables request that answers 404. Rejects with an Error otherwise, and with the error of the request as it is
207
+ * when it fails, an AbortError included.
208
+ */
209
+ static fetchQueryables(capabilities: OgcOpenApiCapabilitiesObject | null, collection: OgcOpenApiCapabilitiesCollection, options?: {
210
+ credentials?: boolean;
211
+ requestHeaders?: RequestHeaders;
212
+ }): Promise<OgcOpenApiQueryables | null>;
213
+ private static getQueryablesHref;
175
214
  /**
176
215
  * Whether the server tiles the dataset as a whole, all its collections in each tile, for linkType Tiles or VectorTiles
177
216
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiGetCapabilities.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiGetCapabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgcOpenApiGetCapabilities.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiGetCapabilities.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,14 @@ export const COLLECTIONS_SELECTION_CONFORMANCE = "http://www.opengis.net/spec/og
9
9
  // The same class under another name, also accepted. Not in the standard: ldproxy declares it so, and supports the
10
10
  // collections parameter as the standard requires. To be removed once ldproxy declares the class of the standard
11
11
  export const COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS = ["http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collection-selection"];
12
+ // The conformance class of OGC API Features Part 3 for the filter parameter of the items of a collection
13
+ export const FEATURES_FILTER_CONFORMANCE = "http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter";
14
+ // The conformance classes of CQL2 1.0 (OGC 21-065) share this prefix, the encodings and the levels of the language
15
+ export const CQL2_CONFORMANCE_PREFIX = "http://www.opengis.net/spec/cql2/1.0/conf/";
16
+ // The CQL2 encodings, as conformance classes name them. They are also the values of the filter-lang parameter
17
+ export const CQL2_ENCODINGS = ["cql2-text", "cql2-json"];
18
+ // The media types of a queryables document, in the order they are preferred
19
+ const QUERYABLES_MEDIA_TYPES = ["application/schema+json", "application/json"];
12
20
  export var CollectionLinkType;
13
21
  (function (CollectionLinkType) {
14
22
  CollectionLinkType["Items"] = "items";
@@ -91,7 +99,7 @@ export class OgcOpenApiGetCapabilities {
91
99
  id: name,
92
100
  name,
93
101
  title: collection.title,
94
- keywords: collection.keywords ? collection.keywords : [],
102
+ keywords: OgcOpenApiGetCapabilities.readKeywords(collection.keywords),
95
103
  defaultReference: 'CRS:84',
96
104
  links: collection.links,
97
105
  outputFormats: options.filterCollectionsByLinkType ?
@@ -116,6 +124,17 @@ export class OgcOpenApiGetCapabilities {
116
124
  conformsTo,
117
125
  };
118
126
  }
127
+ // The keywords of a collection, always strings. OGC API Common Part 2 defines keywords as an array of strings, kept
128
+ // as they are. Also accepted, not in the standard: a keyword as an object with a string keyword, the shape of OGC Web
129
+ // Services Common that PDOK sends ({"keyword": "bak"}), read as that string. Anything else is left out, and a value
130
+ // that is not an array gives no keywords
131
+ static readKeywords(keywords) {
132
+ if (!Array.isArray(keywords))
133
+ return [];
134
+ return keywords
135
+ .map(k => typeof k === "string" ? k : k && typeof k === "object" && typeof k.keyword === "string" ? k.keyword : undefined)
136
+ .filter(k => typeof k === "string" && k !== "");
137
+ }
119
138
  // An Error for a failed request of fromURL: the error of fetch as it is, such as an AbortError, otherwise its message
120
139
  // and the URL. An error of fetch can come from another realm (a DOMException of jsdom is not instanceof Error), so
121
140
  // anything with a name and a message is kept; the {error, message} of fetchJson has no name
@@ -263,6 +282,78 @@ export class OgcOpenApiGetCapabilities {
263
282
  return conformsTo.indexOf(COLLECTIONS_SELECTION_CONFORMANCE) > -1 ||
264
283
  COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS.some(variant => conformsTo.indexOf(variant) > -1);
265
284
  }
285
+ /**
286
+ * Whether, and how, the server filters features, as its conformance classes declare: the Features Filter class of
287
+ * OGC API Features Part 3, and the CQL2 1.0 classes by their names, in the order the server lists them. Each is
288
+ * reported as declared, a CQL2 encoding without the Features Filter class gives filter false. Pre-standard CQL
289
+ * classes (ogcapi-features-3/1.0/conf/cql-text) are not CQL2 and are left out.
290
+ */
291
+ static getFilterSupport(capabilities) {
292
+ const conformsTo = capabilities && capabilities.conformsTo ? capabilities.conformsTo : [];
293
+ const cql2 = conformsTo
294
+ .filter(uri => uri.indexOf(CQL2_CONFORMANCE_PREFIX) === 0)
295
+ .map(uri => uri.substring(CQL2_CONFORMANCE_PREFIX.length));
296
+ return {
297
+ filter: conformsTo.indexOf(FEATURES_FILTER_CONFORMANCE) > -1,
298
+ encodings: cql2.filter(name => CQL2_ENCODINGS.indexOf(name) > -1),
299
+ levels: cql2.filter(name => CQL2_ENCODINGS.indexOf(name) === -1),
300
+ };
301
+ }
302
+ /**
303
+ * Fetches the queryables of a collection (OGC API Features Part 3), the properties a filter can use: a JSON Schema,
304
+ * as the server sends it. Resolves null for a collection that has none: a collection without features, or a
305
+ * queryables request that answers 404. Rejects with an Error otherwise, and with the error of the request as it is
306
+ * when it fails, an AbortError included.
307
+ */
308
+ static async fetchQueryables(capabilities, collection, options) {
309
+ if (capabilities === null)
310
+ throw new Error("No capabilities to fetch the queryables of " + collection.id);
311
+ const href = OgcOpenApiGetCapabilities.getQueryablesHref(capabilities, collection);
312
+ if (!href)
313
+ return null;
314
+ let response;
315
+ try {
316
+ response = await OgcOpenApiFetchTools.fetch(href, {
317
+ method: "GET",
318
+ credentials: options?.credentials ? "same-origin" : "omit",
319
+ headers: { Accept: QUERYABLES_MEDIA_TYPES.join(", "), ...(options?.requestHeaders ? options.requestHeaders : {}) }
320
+ }, capabilities.serverOptions);
321
+ }
322
+ catch (e) {
323
+ throw OgcOpenApiGetCapabilities.toError(e, href);
324
+ }
325
+ if (response.status === 404)
326
+ return null;
327
+ if (response.status !== 200)
328
+ throw new Error("Invalid response: " + response.status + " for " + href);
329
+ let data;
330
+ try {
331
+ data = await response.json();
332
+ }
333
+ catch (e) {
334
+ throw new Error("Not JSON data for " + href);
335
+ }
336
+ if (!data || typeof data !== "object" || Array.isArray(data))
337
+ throw new Error("Invalid format: (not a JSON Schema) in " + href);
338
+ return data;
339
+ }
340
+ // The queryables link of the collection, in JSON. Some servers (ldproxy, PDOK) list it only in the collection
341
+ // document, not in /collections: then the path of the standard, /collections/{collectionId}/queryables, for a
342
+ // collection with features. Other collections have no queryables, '' then
343
+ static getQueryablesHref(capabilities, collection) {
344
+ const links = collection.links ? collection.links : [];
345
+ const queryables = links.filter(l => isRel(l, "queryables"));
346
+ const link = QUERYABLES_MEDIA_TYPES.map(type => queryables.find(l => l.type === type)).find(l => l) ||
347
+ queryables.find(l => !l.type);
348
+ if (link)
349
+ return link.href;
350
+ if (OgcOpenApiGetCapabilities.filterCollectionLinks(links, CollectionLinkType.Items).length === 0)
351
+ return '';
352
+ // The self link keeps its query, such as f=json (PDOK)
353
+ const self = links.find(l => l.rel === "self" && (!l.type || l.type === "application/json"));
354
+ const collectionHref = self ? self.href : capabilities.baseUrl + "collections/" + encodeURIComponent(collection.id);
355
+ return OgcOpenApiFetchTools.appendPath(collectionHref, "queryables");
356
+ }
266
357
  /**
267
358
  * Whether the server tiles the dataset as a whole, all its collections in each tile, for linkType Tiles or VectorTiles
268
359
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiGetCapabilities.js","sourceRoot":"","sources":["../src/OgcOpenApiGetCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AACxF,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAYzC,wHAAwH;AACxH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAEjF,8GAA8G;AAC9G,MAAM,CAAC,MAAM,iCAAiC,GAAG,2EAA2E,CAAC;AAC7H,kHAAkH;AAClH,gHAAgH;AAChH,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,0EAA0E,CAAC,CAAC;AAqHvI,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,uCAAiB,CAAA;IACjB,iCAAW,CAAA;IACX,qCAAe,CAAA;IACf,iDAA2B,CAAA;AAC7B,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,8BAA8B,GAAG;IACrC,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC7C,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,+CAA+C,EAAE,QAAQ,CAAC;IACxF,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,4CAA4C,EAAE,KAAK,CAAC;IAC/E,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,qDAAqD,EAAE,cAAc,CAAC;IACnG,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,wDAAwD,EAAE,iBAAiB,CAAC;CAChH,CAAA;AAED,8IAA8I;AAC9I,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAC1D,MAAM,KAAK,GAAG,CAAC,IAAc,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC;AAE9F,MAAM,+BAA+B,GAAG;IACtC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,WAAW;IACrC,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,WAAW;IACvC,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,oCAAoC;CACvE,CAAA;AAwBD,MAAM,OAAO,yBAAyB;IAEpC;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAoB,EAAE,cAAiD;QACjG,MAAM,OAAO,GAAqC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,2FAA2F;QAC3F,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,EAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAC,CAAC,CAAC;QACnH,6CAA6C;QAC7C,MAAM,MAAM,GAAG,EAAC,aAAa,EAAiC,CAAC;QAC/D,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,MAAe,EAAE,EAAE,CAC9C,yBAAyB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC3E,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEP,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,GAAG,UAAU,CAAC,CAAC;QACjI,MAAM,KAAK,GAAsD,OAAO,CAAC,KAAK,CAAC;QAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;QAC1I,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,GAAG,UAAU,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,cAAc,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChJ,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC1E,MAAM,oBAAoB,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpI,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACnE,iGAAiG;QACjG,MAAM,WAAW,GAAG,CAAC,IAAqD,EAAE,WAAmB,EAAE,EAAE,CAC/F,CAAC,EAAC,GAAG,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,EAAC,CAAC,CAAC;QAC9F,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE5D,6GAA6G;QAC7G,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/D,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;YAC7B,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;YAChI,WAAW,CAAC,CAAC;gBACT,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAc,CAAC,CAAC,CAAC;gBAC1J,OAAO,CAAC,OAAO,CAAC,EAAc,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,yDAAyD,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,mBAAmB,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,mBAAmB,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW;aACnD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAC9C,yBAAyB,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aACnH,GAAG,CAAC,CAAC,UAAe,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,OAAO,UAAU,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YACpF,MAAM,mBAAmB,GAAG,EAAS,CAAC;YACtC,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,WAAW;gBAAE,mBAAmB,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YACpF,IAAI,OAAO,UAAU,CAAC,UAAU,KAAK,WAAW;gBAAE,mBAAmB,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACzG,MAAM,KAAK,GAAqC;gBAC9C,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBACxD,gBAAgB,EAAE,QAAQ;gBAC1B,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,aAAa,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBAChD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC5H,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC7D,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,GAAG,mBAAmB;aACvB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACP,OAAO;YACL,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC;YAClJ,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC/B,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACzB,GAAG,QAAQ;YACX,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACjD,OAAO;YACP,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACxG,UAAU;SACX,CAAC;IACJ,CAAC;IAED,sHAAsH;IACtH,mHAAmH;IACnH,4FAA4F;IACpF,MAAM,CAAC,OAAO,CAAC,CAAM,EAAE,IAAY;QACzC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;YAAE,OAAO,CAAC,CAAC;QACvG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,qBAAqB,CAC1B,KAAwD,EACxD,QAA4B;QAE5B,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,kBAAkB,CAAC,KAAK,CAAC;YAC9B,KAAK,kBAAkB,CAAC,GAAG,CAAC;YAC5B,KAAK,kBAAkB,CAAC,MAAM,CAAC;YAC/B,KAAK,kBAAkB,CAAC,KAAK,CAAC;YAC9B,KAAK,kBAAkB,CAAC,WAAW;gBACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,KAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACrG;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,YAA8C,EAC9C,cAAsB;QAEtB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,qBAAqB,CAC9D,YAAY,CAAC,KAAK,EAClB,kBAAkB,CAAC,KAAK,CACzB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,IAAc;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,6GAA6G;IACrG,MAAM,CAAC,gBAAgB,CAAC,IAAqD;QACnF,IAAI,IAAI,CAAC,IAAI,IAAI,yBAAyB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAAE,OAAO,kBAAkB,CAAC;QACxI,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,8BAA8B,EAAE,CAAC;YACjD,IAAI,8BAA8B,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,8BAA8B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,KAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpH,IAAI,+BAA+B,CAAC,GAAG,CAAC;oBAAE,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;gBACtF,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAiD,EAAE,OAAgE;QACzJ,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAC5G,OAAO,CAAC,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,EACxC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,SAAwB,EAAE,KAAK,EAAC,CAAC,CACxD,CAAC,CAAC,CAAC;QACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,gCAAgC,CAAC,aAA0B;QACvE,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE5C,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAE9B,sCAAsC;YACtC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAEpD,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,GAAG,2BAA2B,CAAC;YAC3E,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC;gBAC/F,OAAO,KAAK,GAAG,CAAC,CAAC;YACnB,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,OAAO,KAAK,GAAG,CAAC,CAAC;YACnB,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC7F,OAAO,KAAK,GAAG,CAAC,CAAC;YACnB,CAAC;YAED,IAAI,OAAO,OAAO,CAAC,oBAAoB,KAAG,WAAW,EAAE,CAAC;gBACtD,OAAO,KAAK,GAAG,CAAC,CAAC;YACnB,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,YAAY,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;gBACnI,OAAO,KAAK,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,YAAiD,EAAE,OAAgE;QACpJ,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,gBAAgB,CAAC;QACtH,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,4BAA4B,EAAC,CAAC;QACrF,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,GAAG,GAAG;YACN,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;SAC9E,CAAC,CAAC,CAAC;IACN,CAAC;IAED,kHAAkH;IAClH,oHAAoH;IACpH,kEAAkE;IAC1D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,YAA0C,EAAE,IAAY,EAAE,OAAkE,EAC5H,MAAM,GAAG,kBAAkB;QACxD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE;YACpD,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;YAC1D,OAAO,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC;SACtF,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAC,CAAC;QAC9F,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,kGAAkG;IAC1F,MAAM,CAAC,mBAAmB,CAAC,YAA0C,EAAE,KAAiB,EAAE,WAAmB;QACnH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;QAChE,OAAO,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChI,CAAC;IAEM,MAAM,CAAC,YAAY,CACtB,YAAiD,EACjD,iBAAmD,EACnD,YAAoB,EACpB,OAAkE,EAClE,WAA+B,kBAAkB,CAAC,KAAK;QAEzD,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtI,CAAC;IAED,kFAAkF;IAC1E,MAAM,CAAC,eAAe,CAAC,UAA4C,EAAE,QAA4B;QACvG,MAAM,SAAS,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,4GAA4G;IACpG,MAAM,CAAC,sBAAsB,CAAC,YAA0C,EAAE,QAA4B;QAC5G,MAAM,SAAS,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1H,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QAChI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,2BAA2B,CAAC,YAAiD;QACzF,MAAM,UAAU,GAAG,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,UAAU,CAAC,OAAO,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;YAC7D,0CAA0C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,kBAAkB,CAAC,YAAiD,EAAE,QAA4B;QAC9G,OAAO,YAAY,KAAK,IAAI,IAAI,yBAAyB,CAAC,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAClH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CACvC,YAAiD,EACjD,UAA4C,EAC5C,WAA+B,kBAAkB,CAAC,KAAK,EACvD,OAAkE;QAEpE,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,yBAAyB,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,EAAE;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,EAAC,CAAC;QAC/G,OAAO,yBAAyB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,oBAAoB,CACpC,YAAiD,EACjD,WAA+B,kBAAkB,CAAC,KAAK,EACvD,OAAkE;QAEpE,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,yBAAyB,CAAC,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACtF,IAAI,IAAI,KAAK,EAAE;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ,GAAG,OAAO,EAAC,CAAC;QAC1F,OAAO,yBAAyB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAA0C,EAAE,IAAY,EAAE,OAAkE;QAChK,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAC,CAAC;QAC5F,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,KAAK,GAAe,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;gBAC9D,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC;gBAClF,gBAAgB,EAAE,yBAAyB,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;gBAC1F,aAAa,EAAE,yBAAyB,CAAC,sBAAsB,CAAC,OAAO,CAAC;aACzE,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,kBAAkB,CAAC,OAA8B,EAAE,cAA6B;QAC5F,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3F,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClJ,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe;YAClC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5E,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnG,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,sGAAsG;IAC9F,MAAM,CAAC,OAAO,CAAC,CAAqB,EAAE,CAAqB;QACjE,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAC3D,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAC3C,YAAiD,EACjD,OAA8B,EAC9B,cAA6B,EAC7B,OAAkE;QAEpE,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC,aAAa,CAAC;QACxD,IAAI,UAAU,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACvF,UAAU,GAAG,EAAC,GAAG,OAAO,EAAE,GAAG,MAAM,yBAAyB,CAAC,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAC,CAAC;YACxH,IAAI,UAAU,CAAC,aAAa;gBAAE,OAAO,UAAU,CAAC,aAAa,CAAC;QAChE,CAAC;QACD,MAAM,KAAK,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACvF,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,GAAG,CAAC,UAAU,CAAC,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAC,CAAC;QAC7G,CAAC;QACD,OAAO,yBAAyB,CAAC,YAAY,CAAC,YAAY,EAAE,EAAC,EAAE,EAAE,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,gBAAgB,EAAC,CAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IACpN,CAAC;IAED,8FAA8F;IACtF,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,YAA0C,EAAE,IAAY,EAAE,OAAkE;QACpK,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpF,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,gBAAsC;YAC7D,eAAe,EAAE,IAAI,CAAC,eAAqC;YAC3D,gBAAgB,EAAE,yBAAyB,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC;YACjH,aAAa,EAAE,yBAAyB,CAAC,sBAAsB,CAAC,IAAI,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,oFAAoF;IAC5E,MAAM,CAAC,sBAAsB,CAAC,OAAY;QAChD,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,OAAO,aAAa,IAAI,OAAO,aAAa,CAAC,EAAE,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;YAC/H,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACtC,YAAiD;IACjD,oCAAoC;IACpC,iBAA0D;IAC1D,mGAAmG;IACnG,UAA0C,EAC1C,OAAkE,EAClE,WAA+B,kBAAkB,CAAC,KAAK;QAEzD,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC;YACpC,yBAAyB,CAAC,eAAe,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;YACxE,yBAAyB,CAAC,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QACjI,0DAA0D;QAC1D,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;QAChE,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACtC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SACxJ,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY,CAC5B,YAAiD,EACjD,OAAoB,EACpB,OAAkE;QAEpE,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChI,IAAI,CAAC,QAAQ;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,EAAE,GAAG,cAAc,EAAC,CAAC;QAC9F,MAAM,IAAI,GAAgB,MAAM,yBAAyB,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1G,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAC,CAAC;QAChI,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"OgcOpenApiGetCapabilities.js","sourceRoot":"","sources":["../src/OgcOpenApiGetCapabilities.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ogcopenapis",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "description": "OGC API Features, Maps, Tiles and Styles for LuciadRIA",
5
5
  "type": "module",
6
6
  "exports": {
@@ -25,6 +25,22 @@ export interface OgcOpenApiFeatureStoreConstructorOptions {
25
25
  extent?: { spatial: { bbox: any[] } };
26
26
  crs: string;
27
27
  proxify?: ProxifyFunction
28
+ // Called once for each query that succeeds, with what the response says about its size
29
+ onQueryResult?: (result: OgcOpenApiFeatureQueryResult) => void;
30
+ }
31
+
32
+ // What the response to a query says about its size (OGC API Features Part 1)
33
+ export interface OgcOpenApiFeatureQueryResult {
34
+ // The request, and the query it was made from
35
+ url: string;
36
+ query: OgcOpenApiFeatureStoreQueryOptions;
37
+ // The number of features that match the query, left out when the server gives none (it is optional, PDOK)
38
+ numberMatched?: number;
39
+ // The number of features in the response. Servers cap limit: it can be less than limit (pygeoapi gives 10)
40
+ numberReturned?: number;
41
+ // The response links a next page. Left out when the response has no links to tell: a GML response whose Link
42
+ // header the browser may not read (CORS)
43
+ hasNext?: boolean;
28
44
  }
29
45
 
30
46
  export interface OgcOpenApiFeatureStoreQueryOptions {
@@ -86,11 +102,13 @@ export class OgcOpenApiFeatureStore extends Store {
86
102
  private credentials: boolean;
87
103
  private serverOptions: { proxy: (url: string, fetchOptions) => { fetchOptions: any; url: string }; hostname: string; complete: (url: string) => string };
88
104
  private swapAxes: string[] | undefined;
105
+ private onQueryResult: ((result: OgcOpenApiFeatureQueryResult) => void) | undefined;
89
106
 
90
107
  constructor(options: OgcOpenApiFeatureStoreConstructorOptions) {
91
108
  super();
92
109
  // console.log(options);
93
110
  this.swapAxes = options.swapAxes;
111
+ this.onQueryResult = options.onQueryResult;
94
112
  this.useCrs84Bounds = typeof options.useCrs84Bounds !== "undefined" ? options.useCrs84Bounds : false;
95
113
  this.dataUrl = options.dataUrl;
96
114
  this.outputFormat = options.outputFormat;
@@ -152,7 +170,7 @@ export class OgcOpenApiFeatureStore extends Store {
152
170
  query.f = query.f ? query.f : this.dataFormat;
153
171
  query.crs = query.crs ? query.crs : this.customCrs;
154
172
  query.limit = query.limit ? query.limit : undefined;
155
- return this.fetchFeatures(this.withQuery(this.baseUrl, query), options?.abortSignal);
173
+ return this.fetchFeatures(this.withQuery(this.baseUrl, query), options?.abortSignal, query);
156
174
  }
157
175
 
158
176
  // The parameters of the items link, then those of the request, which replace a link parameter of the same name.
@@ -169,7 +187,8 @@ export class OgcOpenApiFeatureStore extends Store {
169
187
 
170
188
  // Fetches and decodes features. The promise always settles: it rejects with the reason when the request,
171
189
  // the response or the decoding fails, and when LuciadRIA aborts the request through abortSignal.
172
- private fetchFeatures(request: string, abortSignal?: AbortSignal): Promise<Cursor> {
190
+ // A query is reported to onQueryResult once its features are decoded, unless it was aborted
191
+ private fetchFeatures(request: string, abortSignal?: AbortSignal, query?: OgcOpenApiFeatureStoreQueryOptions): Promise<Cursor> {
173
192
  // Mod starta
174
193
  const itemsAccept =
175
194
  typeof this.requestHeaders.accept !== 'undefined'
@@ -203,10 +222,13 @@ export class OgcOpenApiFeatureStore extends Store {
203
222
  const codecOptions: OgcOpenApiFeaturesCodecDecodeOptions = {
204
223
  content, contentType, contentCrs, contentLength
205
224
  };
206
- if (this.codec instanceof GeoJsonCodec || this.codec instanceof GMLCodec) {
207
- return this.codec.decode({...codecOptions, reference: getReference(OgcOpenApiCrsTools.getReferenceName(contentCrs))});
225
+ const cursor = this.codec instanceof GeoJsonCodec || this.codec instanceof GMLCodec ?
226
+ this.codec.decode({...codecOptions, reference: getReference(OgcOpenApiCrsTools.getReferenceName(contentCrs))}) :
227
+ this.codec.decode(codecOptions);
228
+ if (query && this.onQueryResult && !abortSignal?.aborted) {
229
+ this.onQueryResult({url: request, query, ...OgcOpenApiFeatureStore.getResultSize(content, contentType, response.headers.get('Link'))});
208
230
  }
209
- return this.codec.decode(codecOptions);
231
+ return cursor;
210
232
  });
211
233
  });
212
234
  }
@@ -251,6 +273,47 @@ export class OgcOpenApiFeatureStore extends Store {
251
273
  return this.query(query, options);
252
274
  }
253
275
 
276
+ // The size of a response: the members of a JSON response, or the attributes of the root element of GML, and the
277
+ // next link of the response or of its Link header
278
+ private static getResultSize(content: string, contentType: string, linkHeader: string | null) {
279
+ const size: { numberMatched?: number, numberReturned?: number, hasNext?: boolean } = {};
280
+ const count = (value: any) => {
281
+ const n = typeof value === "string" ? (/^\d+$/.test(value) ? Number(value) : undefined) : value;
282
+ return typeof n === "number" && isFinite(n) && n >= 0 ? n : undefined;
283
+ };
284
+ if (/json/i.test(contentType)) {
285
+ let data: any;
286
+ try {
287
+ data = JSON.parse(content);
288
+ } catch (e) {
289
+ data = undefined;
290
+ }
291
+ if (data && typeof data === "object") {
292
+ size.numberMatched = count(data.numberMatched);
293
+ size.numberReturned = count(data.numberReturned);
294
+ if (Array.isArray(data.links)) size.hasNext = data.links.some(l => l && l.rel === "next");
295
+ }
296
+ } else if (/xml/i.test(contentType)) {
297
+ // WFS 2.0 allows numberMatched="unknown"
298
+ const root = /<(?:[\w.-]+:)?FeatureCollection\b([^>]*)>/.exec(content);
299
+ const attribute = (name: string) => {
300
+ const match = root ? new RegExp("\\s" + name + "=[\"']([^\"']*)[\"']").exec(root[1]) : null;
301
+ return match ? count(match[1]) : undefined;
302
+ };
303
+ size.numberMatched = attribute("numberMatched");
304
+ size.numberReturned = attribute("numberReturned");
305
+ }
306
+ if (linkHeader) {
307
+ const next = linkHeader.split(/,\s*(?=<)/).some(link => {
308
+ const rel = /;\s*rel\s*=\s*"?([^";]*)"?/i.exec(link);
309
+ return rel !== null && rel[1].split(/\s+/).indexOf("next") > -1;
310
+ });
311
+ size.hasNext = size.hasNext || next;
312
+ }
313
+ for (const key of Object.keys(size)) if (typeof size[key] === "undefined") delete size[key];
314
+ return size;
315
+ }
316
+
254
317
  private static getCRS84BoundingBox(shape: Bounds) {
255
318
  const WGS84 = getReference("CRS:84");
256
319
  const bounds = shape.bounds;
@@ -22,6 +22,36 @@ export const COLLECTIONS_SELECTION_CONFORMANCE = "http://www.opengis.net/spec/og
22
22
  // collections parameter as the standard requires. To be removed once ldproxy declares the class of the standard
23
23
  export const COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS = ["http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collection-selection"];
24
24
 
25
+ // The conformance class of OGC API Features Part 3 for the filter parameter of the items of a collection
26
+ export const FEATURES_FILTER_CONFORMANCE = "http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter";
27
+ // The conformance classes of CQL2 1.0 (OGC 21-065) share this prefix, the encodings and the levels of the language
28
+ export const CQL2_CONFORMANCE_PREFIX = "http://www.opengis.net/spec/cql2/1.0/conf/";
29
+ // The CQL2 encodings, as conformance classes name them. They are also the values of the filter-lang parameter
30
+ export const CQL2_ENCODINGS = ["cql2-text", "cql2-json"];
31
+
32
+ export interface OgcOpenApiFilterSupport {
33
+ // The server declares the Features Filter class of OGC API Features Part 3: the items of its collections take a filter
34
+ filter: boolean;
35
+ // The CQL2 encodings the server declares, cql2-text or cql2-json
36
+ encodings: string[];
37
+ // The other CQL2 classes the server declares, such as basic-cql2, advanced-comparison-operators or spatial-functions
38
+ levels: string[];
39
+ }
40
+
41
+ // The queryables of a collection (OGC API Features Part 3): a JSON Schema, as the server sends it. Each property has
42
+ // a JSON Schema of its own, with type, format, title, enum or x-ogc-role among others
43
+ export interface OgcOpenApiQueryables {
44
+ $schema?: string;
45
+ $id?: string;
46
+ type?: string;
47
+ title?: string;
48
+ properties?: { [name: string]: { [keyword: string]: any } };
49
+ [keyword: string]: any;
50
+ }
51
+
52
+ // The media types of a queryables document, in the order they are preferred
53
+ const QUERYABLES_MEDIA_TYPES = ["application/schema+json", "application/json"];
54
+
25
55
  export interface TileMatrix {
26
56
  id: string,
27
57
  scaleDenominator: number;
@@ -246,7 +276,7 @@ export class OgcOpenApiGetCapabilities {
246
276
  id: name,
247
277
  name,
248
278
  title: collection.title,
249
- keywords: collection.keywords ? collection.keywords : [],
279
+ keywords: OgcOpenApiGetCapabilities.readKeywords(collection.keywords),
250
280
  defaultReference: 'CRS:84',
251
281
  links: collection.links,
252
282
  outputFormats: options.filterCollectionsByLinkType ?
@@ -272,6 +302,17 @@ export class OgcOpenApiGetCapabilities {
272
302
  };
273
303
  }
274
304
 
305
+ // The keywords of a collection, always strings. OGC API Common Part 2 defines keywords as an array of strings, kept
306
+ // as they are. Also accepted, not in the standard: a keyword as an object with a string keyword, the shape of OGC Web
307
+ // Services Common that PDOK sends ({"keyword": "bak"}), read as that string. Anything else is left out, and a value
308
+ // that is not an array gives no keywords
309
+ private static readKeywords(keywords: any): string[] {
310
+ if (!Array.isArray(keywords)) return [];
311
+ return keywords
312
+ .map(k => typeof k === "string" ? k : k && typeof k === "object" && typeof k.keyword === "string" ? k.keyword : undefined)
313
+ .filter(k => typeof k === "string" && k !== "");
314
+ }
315
+
275
316
  // An Error for a failed request of fromURL: the error of fetch as it is, such as an AbortError, otherwise its message
276
317
  // and the URL. An error of fetch can come from another realm (a DOMException of jsdom is not instanceof Error), so
277
318
  // anything with a name and a message is kept; the {error, message} of fetchJson has no name
@@ -450,6 +491,76 @@ export class OgcOpenApiGetCapabilities {
450
491
  COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS.some(variant => conformsTo.indexOf(variant) > -1);
451
492
  }
452
493
 
494
+ /**
495
+ * Whether, and how, the server filters features, as its conformance classes declare: the Features Filter class of
496
+ * OGC API Features Part 3, and the CQL2 1.0 classes by their names, in the order the server lists them. Each is
497
+ * reported as declared, a CQL2 encoding without the Features Filter class gives filter false. Pre-standard CQL
498
+ * classes (ogcapi-features-3/1.0/conf/cql-text) are not CQL2 and are left out.
499
+ */
500
+ public static getFilterSupport(capabilities: OgcOpenApiCapabilitiesObject | null): OgcOpenApiFilterSupport {
501
+ const conformsTo = capabilities && capabilities.conformsTo ? capabilities.conformsTo : [];
502
+ const cql2 = conformsTo
503
+ .filter(uri => uri.indexOf(CQL2_CONFORMANCE_PREFIX) === 0)
504
+ .map(uri => uri.substring(CQL2_CONFORMANCE_PREFIX.length));
505
+ return {
506
+ filter: conformsTo.indexOf(FEATURES_FILTER_CONFORMANCE) > -1,
507
+ encodings: cql2.filter(name => CQL2_ENCODINGS.indexOf(name) > -1),
508
+ levels: cql2.filter(name => CQL2_ENCODINGS.indexOf(name) === -1),
509
+ };
510
+ }
511
+
512
+ /**
513
+ * Fetches the queryables of a collection (OGC API Features Part 3), the properties a filter can use: a JSON Schema,
514
+ * as the server sends it. Resolves null for a collection that has none: a collection without features, or a
515
+ * queryables request that answers 404. Rejects with an Error otherwise, and with the error of the request as it is
516
+ * when it fails, an AbortError included.
517
+ */
518
+ public static async fetchQueryables(
519
+ capabilities: OgcOpenApiCapabilitiesObject | null,
520
+ collection: OgcOpenApiCapabilitiesCollection,
521
+ options?: {credentials?: boolean, requestHeaders?: RequestHeaders}
522
+ ): Promise<OgcOpenApiQueryables | null> {
523
+ if (capabilities === null) throw new Error("No capabilities to fetch the queryables of " + collection.id);
524
+ const href = OgcOpenApiGetCapabilities.getQueryablesHref(capabilities, collection);
525
+ if (!href) return null;
526
+ let response: Response;
527
+ try {
528
+ response = await OgcOpenApiFetchTools.fetch(href, {
529
+ method: "GET",
530
+ credentials: options?.credentials ? "same-origin" : "omit",
531
+ headers: {Accept: QUERYABLES_MEDIA_TYPES.join(", "), ...(options?.requestHeaders ? options.requestHeaders : {})}
532
+ }, capabilities.serverOptions);
533
+ } catch (e) {
534
+ throw OgcOpenApiGetCapabilities.toError(e, href);
535
+ }
536
+ if (response.status === 404) return null;
537
+ if (response.status !== 200) throw new Error("Invalid response: " + response.status + " for " + href);
538
+ let data: any;
539
+ try {
540
+ data = await response.json();
541
+ } catch (e) {
542
+ throw new Error("Not JSON data for " + href);
543
+ }
544
+ if (!data || typeof data !== "object" || Array.isArray(data)) throw new Error("Invalid format: (not a JSON Schema) in " + href);
545
+ return data;
546
+ }
547
+
548
+ // The queryables link of the collection, in JSON. Some servers (ldproxy, PDOK) list it only in the collection
549
+ // document, not in /collections: then the path of the standard, /collections/{collectionId}/queryables, for a
550
+ // collection with features. Other collections have no queryables, '' then
551
+ private static getQueryablesHref(capabilities: OgcOpenApiCapabilitiesObject, collection: OgcOpenApiCapabilitiesCollection) {
552
+ const links = collection.links ? collection.links : [];
553
+ const queryables = links.filter(l => isRel(l, "queryables"));
554
+ const link = QUERYABLES_MEDIA_TYPES.map(type => queryables.find(l => l.type === type)).find(l => l) ||
555
+ queryables.find(l => !l.type);
556
+ if (link) return link.href;
557
+ if (OgcOpenApiGetCapabilities.filterCollectionLinks(links, CollectionLinkType.Items).length === 0) return '';
558
+ // The self link keeps its query, such as f=json (PDOK)
559
+ const self = links.find(l => l.rel === "self" && (!l.type || l.type === "application/json"));
560
+ const collectionHref = self ? self.href : capabilities.baseUrl + "collections/" + encodeURIComponent(collection.id);
561
+ return OgcOpenApiFetchTools.appendPath(collectionHref, "queryables");
562
+ }
563
+
453
564
  /**
454
565
  * Whether the server tiles the dataset as a whole, all its collections in each tile, for linkType Tiles or VectorTiles
455
566
  */