@nextgis/ngw-connector 1.18.21 → 2.0.0-alpha.0

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/lib/index.d.ts CHANGED
@@ -1,1181 +1,1100 @@
1
- /**
2
- * A lightweight HTTP client optimized for use with {@link http://docs.nextgis.ru/docs_ngweb_dev/doc/developer/toc.html | NextGIS Web} API
3
- *
4
- * @remarks
5
- * Make sure CORS is registered in the {@link https://docs.nextgis.com/docs_ngcom/source/CORS.html | NextGIS Web settings } to be able to send requests.
6
- *
7
- * @packageDocumentation
8
- * @module ngw-connector
9
- */
10
-
11
- /// <reference types="node" />
12
-
13
- import { default as Cache_2 } from '@nextgis/cache';
14
- import CancelablePromise from '@nextgis/cancelable-promise';
15
- import type { DeepPartial } from '@nextgis/utils';
16
- import { EventEmitter } from 'events';
17
- import type { FeatureProperties } from '@nextgis/utils';
18
- import type { GeoJsonObject } from 'geojson';
19
- import type { Geometry } from 'geojson';
20
-
21
- export declare interface BasemapResource {
22
- url: string;
23
- /**
24
- * Parse to qms-kit.BasemapQms
25
- */
26
- qms: string;
27
- }
28
-
29
- export declare interface BasemapWebmap {
30
- basemaps: BasemapWebmapItem[];
31
- }
32
-
33
- export declare interface BasemapWebmapItem {
34
- resource_id: number;
35
- display_name: string;
36
- position?: number;
37
- enabled?: boolean;
38
- opacity?: number;
39
- }
40
-
41
- export declare interface BookmarkProperties {
42
- name: string;
43
- place: string;
44
- }
45
-
46
- declare type cbParams = (params: Params) => simple;
47
-
48
- export declare interface CreatedResource extends IdOnly {
49
- parent: IdOnly;
50
- }
51
-
52
- export declare interface Credentials {
53
- login: string;
54
- password: string;
55
- }
56
-
57
- export declare interface DeleteRequestItemsResponseMap extends RequestItemKeys {
58
- 'feature_layer.feature.item': any;
59
- }
60
-
61
- export declare interface FeatureItem<F = FeatureProperties, G extends Geometry | string = Geometry> {
62
- id: number;
63
- geom: G;
64
- fields: F;
65
- extensions: FeatureItemExtensions;
66
- }
67
-
68
- export declare interface FeatureItemAttachment {
69
- id: number;
70
- name: string;
71
- size: number;
72
- mime_type: string;
73
- description: null;
74
- is_image: boolean;
75
- }
76
-
77
- export declare interface FeatureItemExtensions {
78
- description?: string;
79
- attachment?: FeatureItemAttachment[];
80
- }
81
-
82
- export declare type FeatureItemToNgw<F = FeatureProperties, G extends Geometry | string = Geometry> = FeatureItem<F, G>;
83
-
84
- export declare interface FeatureLayerCount {
85
- total_count: number;
86
- }
87
-
88
- export declare interface FeatureLayerField {
89
- datatype: VectorFieldDatatype;
90
- display_name: string;
91
- grid_visibility: boolean;
92
- id: number;
93
- keyname: string;
94
- label_field: boolean;
95
- typemod?: unknown;
96
- }
97
-
98
- export declare interface FeatureLayersIdentify {
99
- [layerId: number]: FeatureLayersIdentifyItems | NgwLayerIdentifyError;
100
- featureCount: number;
101
- }
102
-
103
- export declare interface FeatureLayersIdentifyItems {
104
- featureCount: number;
105
- features: LayerFeature[];
106
- }
107
-
108
- export declare interface FeatureResource {
109
- fields: FeatureLayerField[];
110
- }
111
-
112
- export declare interface FileBucket {
113
- files: NgwFile[];
114
- tstamp?: any;
115
- main_tileset?: string;
116
- }
117
-
118
- export declare interface FileMeta {
119
- id: string;
120
- mime_type: string;
121
- name: string;
122
- size: number;
123
- }
124
-
125
- export declare interface FileUploadResp {
126
- upload_meta: FileMeta[];
127
- }
128
-
129
- export declare type GeometryType = 'POINT' | 'LINESTRING' | 'POLYGON' | 'MULTIPOINT' | 'MULTILINESTRING' | 'MULTIPOLYGON' | 'POINTZ' | 'LINESTRINGZ' | 'POLYGONZ' | 'MULTIPOINTZ' | 'MULTILINESTRINGZ' | 'MULTIPOLYGONZ';
130
-
131
- export declare interface GetChildrenOfOptions extends Pick<RequestOptions, 'cache'> {
132
- recursive?: boolean;
133
- }
134
-
135
- export declare interface GetRequestItemsResponseMap extends RequestItemKeys {
136
- 'pyramid.route': PyramidRoute;
137
- 'pyramid.settings': PyramidSettings;
138
- 'resource.item': ResourceItem;
139
- 'resource.search': ResourceItem[];
140
- 'resource.child': any;
141
- 'resource.collection': ResourceItem[];
142
- 'file_upload.upload': FileUploadResp;
143
- 'layer.extent': NgwExtent;
144
- 'feature_layer.feature.item': FeatureItem;
145
- 'feature_layer.feature.collection': FeatureItem[];
146
- 'feature_layer.store': ResourceStoreItem[];
147
- 'feature_layer.field': FeatureLayerField[];
148
- 'feature_layer.feature.item_extent': NgwExtent;
149
- 'feature_layer.feature.count': FeatureLayerCount;
150
- 'pyramid.company_logo': string;
151
- 'spatial_ref_sys.collection': SrsItem[];
152
- }
153
-
154
- export declare interface IdOnly {
155
- id: number;
156
- }
157
-
158
- export declare interface LayerFeature {
159
- id: number;
160
- label: string;
161
- layerId: number;
162
- parent: string;
163
- fields: FeatureProperties;
164
- geom?: GeoJsonObject;
165
- }
166
-
167
- export declare interface LoadingQueue {
168
- name: string;
169
- waiting: Array<{
170
- resolve: (...args: any[]) => Promise<any>;
171
- reject: (...args: any[]) => Promise<Error>;
172
- timestamp: Date;
173
- }>;
174
- }
175
-
176
- export declare interface LookupTableResource {
177
- items: Record<string, string>;
178
- }
179
-
180
- declare class NgwConnector {
181
- options: NgwConnectorOptions;
182
- static errors: {
183
- NgwError: typeof NgwError;
184
- ResourceNotFoundError: typeof ResourceNotFoundError;
185
- };
186
- id: number;
187
- emitter: EventEmitter;
188
- user?: UserInfo;
189
- resources: ResourcesControl;
190
- private routeStr;
191
- private activeRequests;
192
- private requestTransform?;
193
- constructor(options: NgwConnectorOptions);
194
- static create(options: NgwConnectorOptions): NgwConnector;
195
- setRequestTransform(requestTransform: RequestTransformFunction | undefined | null): void;
196
- /**
197
- * Fast way to specify the connection address to NextGIS Web.
198
- * The current connection will be severed.
199
- * @param baseUrl - NGW url
200
- */
201
- setNgw(baseUrl: string): void;
202
- /**
203
- * Establishing a connection with NextGIS Web to fulfill all other requests.
204
- * @remarks
205
- * This method need not be called manually as it is used when forming a request in {@link apiRequest | apiRequest}.
206
- * Can be used to check connection.
207
- * @example
208
- * ```javascript
209
- * const connector = new NgwConnector({baseUrl: 'https://demo.nextgis.com'});
210
- * connector.connect()
211
- * .then(() => console.log('Ok'))
212
- * .catch((er) => console.log('Connection problem', er));
213
- * ```
214
- */
215
- connect(): CancelablePromise<PyramidRoute>;
216
- /**
217
- * Quick way to change NextGIS Web user.
218
- * @param credentials - New user credentials
219
- */
220
- login(credentials: Credentials, options?: RequestOptions): CancelablePromise<UserInfo>;
221
- /**
222
- * Disconnecting a user. Aborting all current requests
223
- */
224
- logout(): void;
225
- getUserInfo(credentials?: Credentials, options?: RequestOptions): CancelablePromise<UserInfo>;
226
- /**
227
- * Obtaining the required Headers for authentication of requests in the NGW.
228
- */
229
- getAuthorizationHeaders(credentials?: Credentials): RequestHeaders | undefined;
230
- makeClientId(credentials?: Credentials): string | undefined;
231
- /** Stop all api requests */
232
- abort(): void;
233
- getActiveApiRequests(): CancelablePromise<any>[];
234
- /**
235
- * Send request to NGW api router.
236
- * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
237
- * @param params - Request item params or query params
238
- * @param requestOptions - Request options
239
- *
240
- * @example
241
- * ```javascript
242
- *
243
- * // there is such an NGW route item
244
- * // "feature_layer.feature.item": [
245
- * // "/api/resource/{0}/feature/{1}",
246
- * // "id",
247
- * // "fid"
248
- * // ],
249
- *
250
- * const connector = new NgwConnector({ baseUrl: 'https://example.nextgis.com' });
251
- * connector.apiRequest('feature_layer.feature.item', {
252
- * // request params for {0} and {1}
253
- * 'id': 2011,
254
- * 'fid': 101,
255
- * // query params
256
- * 'srs': 4326,
257
- * 'geom_format': 'geojson',
258
- * }, { method: 'GET' });
259
- * // send get-request to 'https://example.nextgis.com/api/resource/2011/feature/101?srs=4326&geom_format=geojson'
260
- *
261
- * ```
262
- */
263
- apiRequest<K extends keyof RequestItemsParamsMap, P extends RequestItemKeys = RequestItemKeys>(name: K, params_?: RequestItemsParams<K>, requestOptions?: RequestOptions): CancelablePromise<P[K]>;
264
- /**
265
- * Shortcut method for send POST request to NGW.
266
- * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
267
- * @param options - Request options
268
- * @param params - Request item params or query params
269
- *
270
- * @example
271
- * ```javascript
272
- * connector.post('resource.collection', { data: POST_PAYLOAD })
273
- * .then((newResource) => console.log(newResource))
274
- * .catch((error) => console.warn(error));
275
- * ```
276
- */
277
- post<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'POST', K>, params?: RequestItemsParams<K>): CancelablePromise<PostRequestItemsResponseMap[K]>;
278
- /**
279
- * Shortcut method for send GET request to NGW.
280
- * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
281
- * @param options - Request options
282
- * @param params - Request item params or query params
283
- */
284
- get<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'GET', K> | undefined | null, params?: RequestItemsParams<K>): CancelablePromise<GetRequestItemsResponseMap[K]>;
285
- /**
286
- * Shortcut method for send PATCH request to NGW.
287
- * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
288
- * @param options - Request options
289
- * @param params - Request item params or query params
290
- */
291
- patch<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'PATCH', K>, params?: RequestItemsParams<K>): CancelablePromise<PatchRequestItemsResponseMap[K]>;
292
- /**
293
- * Shortcut method for send PUT request to NGW.
294
- * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
295
- * @param options - Request options
296
- * @param params - Request item params or query params
297
- */
298
- put<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'PUT', K>, params?: RequestItemsParams<K>): CancelablePromise<PutRequestItemsResponseMap[K]>;
299
- /**
300
- * Shortcut method for send DELETE request to NGW.
301
- * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
302
- * @param options - Request options
303
- * @param params - Request item params or query params
304
- */
305
- delete<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'DELETE', K> | undefined | null, params?: RequestItemsParams<K>): CancelablePromise<DeleteRequestItemsResponseMap[K]>;
306
- /**
307
- * Send request to NGW.
308
- * @param url - URL address to NGW
309
- * @param params - Query params
310
- * @param options - Request options
311
- */
312
- makeQuery<R = unknown>(url: string, params?: Params | null, options?: RequestOptions): CancelablePromise<R>;
313
- /**
314
- * {@link ResourcesControl.getOne}
315
- */
316
- getResource(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
317
- /**
318
- * {@link ResourcesControl.getOneOrFail}
319
- */
320
- getResourceOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem>;
321
- /**
322
- * @deprecated - use {@link getResource}
323
- */
324
- getResourceBy(resource: DeepPartial<Resource>): CancelablePromise<ResourceItem | undefined>;
325
- /**
326
- * @deprecated - use {@link getResource}
327
- */
328
- getResourceByKeyname(keyname: string): CancelablePromise<ResourceItem | undefined>;
329
- /**
330
- * @deprecated - use {@link getResource}
331
- */
332
- getResourceById(id: number): CancelablePromise<ResourceItem | undefined>;
333
- /**
334
- * {@link ResourcesControl.getId}
335
- */
336
- getResourceId(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number | undefined>;
337
- /**
338
- * {@link ResourcesControl.getIdOrFail}
339
- */
340
- getResourceIdOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number>;
341
- /**
342
- * {@link ResourcesControl.getMany}
343
- */
344
- getResourcesBy(resource: DeepPartial<Resource>, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem[]>;
345
- /**
346
- * {@link ResourcesControl.getParent}
347
- */
348
- getResourceParent(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
349
- /**
350
- * {@link ResourcesControl.getChildrenOf}
351
- */
352
- getResourceChildren(resource: ResourceDefinition, requestOptions?: GetChildrenOfOptions): CancelablePromise<ResourceItem[]>;
353
- /**
354
- * {@link ResourcesControl.update}
355
- */
356
- updateResource(resource: ResourceIdKeynameDef, data: DeepPartial<ResourceItem>): CancelablePromise<ResourceItem | undefined>;
357
- /**
358
- * {@link ResourcesControl.delete}
359
- */
360
- deleteResource(resource: ResourceIdKeynameDef): CancelablePromise<void>;
361
- /* Excluded from this release type: _loadData */
362
- private _login;
363
- private _cleanActiveRequests;
364
- private _handleHttpError;
365
- }
366
- export default NgwConnector;
367
-
368
- export declare interface NgwConnectorOptions {
369
- baseUrl?: string;
370
- route?: string;
371
- auth?: Credentials;
372
- requestTransform?: RequestTransformFunction;
373
- }
374
-
375
- export declare interface NgwDateFormat {
376
- year: number;
377
- month: number;
378
- day: number;
379
- }
380
-
381
- export declare type NgwDateTimeFormat = NgwDateFormat & NgwTimeFormat;
382
-
383
- /**
384
- * Thrown when...
385
- */
386
- declare class NgwError extends Error {
387
- name: string;
388
- title: string;
389
- message: string;
390
- detail: string;
391
- exception: NgwExceptions;
392
- status_code: number | 404 | 500;
393
- data?: Record<string, any>;
394
- guru_meditation: string;
395
- constructor(er?: Partial<NgwError>);
396
- }
397
-
398
- export declare type NgwExceptions = 'nextgisweb.resource.exception.ResourceNotFound' | 'nextgisweb.core.exception.InsufficientPermissions';
399
-
400
- export declare interface NgwExtent {
401
- extent: {
402
- minLon: number;
403
- minLat: number;
404
- maxLon: number;
405
- maxLat: number;
406
- };
407
- }
408
-
409
- export declare interface NgwFile {
410
- name: string;
411
- mime_type: string;
412
- size: number;
413
- }
414
-
415
- export declare interface NgwLayerIdentifyError {
416
- error: 'Not implemented';
417
- }
418
-
419
- export declare interface NgwTimeFormat {
420
- hour: number;
421
- minute: number;
422
- second: number;
423
- }
424
-
425
- export declare interface Params {
426
- [name: string]: simple | cbParams;
427
- }
428
-
429
- export declare interface PatchRequestItemsResponseMap extends RequestItemKeys {
430
- 'feature_layer.feature.collection': IdOnly[];
431
- }
432
-
433
- export declare interface Permission {
434
- action: string;
435
- principal: {
436
- id: number;
437
- };
438
- identity: string;
439
- scope: string;
440
- permission: string;
441
- propagate: boolean;
442
- }
443
-
444
- export declare interface PostRequestItemsResponseMap extends RequestItemKeys {
445
- 'resource.collection': CreatedResource;
446
- 'feature_layer.identify': FeatureLayersIdentify;
447
- 'file_upload.upload': FileUploadResp;
448
- 'feature_attachment.collection': IdOnly;
449
- }
450
-
451
- export declare interface PutRequestItemsResponseMap extends RequestItemKeys {
452
- 'feature_layer.feature.item': IdOnly;
453
- }
454
-
455
- export declare interface PyramidRoute {
456
- [requestItemName: string]: [url: string, ...params: string[]];
457
- }
458
-
459
- export declare type PyramidSettings = PyramidSettingsPyramid | Record<string, any>;
460
-
461
- export declare interface PyramidSettingsPyramid {
462
- support_url?: string;
463
- units: 'metric';
464
- degree_format: 'dd';
465
- measurement_srid: 4326;
466
- company_logo?: PyramidSettingsPyramidCompanyLogo;
467
- }
468
-
469
- export declare interface PyramidSettingsPyramidCompanyLogo {
470
- link?: 'string';
471
- enabled: boolean;
472
- }
473
-
474
- export declare interface RequestHeaders {
475
- [header: string]: string | undefined;
476
- Authorization?: string;
477
- Accept?: string;
478
- 'Access-Control-Allow-Origin'?: string;
479
- 'Access-Control-Allow-Headers'?: string;
480
- }
481
-
482
- export declare type RequestItemAdditionalParams = {
483
- [name: string]: any;
484
- } & {
485
- paramList?: [string, any][];
486
- };
487
-
488
- export declare type RequestItemKeys = {
489
- readonly [T in keyof RequestItemsParamsMap]?: any;
490
- };
491
-
492
- export declare type RequestItemsParams<K extends keyof RequestItemsParamsMap> = (RequestItemsParamsMap[K] | Record<string, unknown>) & RequestItemAdditionalParams;
493
-
494
- export declare interface RequestItemsParamsMap {
495
- 'pyramid.static': {
496
- skey: number;
497
- };
498
- 'pyramid.openapi_json': null;
499
- 'pyramid.openapi_json_test': null;
500
- 'pyramid.swagger': null;
501
- 'pyramid.control_panel': null;
502
- 'pyramid.control_panel.sysinfo': null;
503
- 'pyramid.control_panel.storage': null;
504
- 'pyramid.control_panel.backup.browse': null;
505
- 'pyramid.control_panel.backup.download': {
506
- filename: number;
507
- };
508
- 'pyramid.control_panel.cors': null;
509
- 'pyramid.control_panel.custom_css': null;
510
- 'pyramid.control_panel.logo': null;
511
- 'pyramid.control_panel.system_name': null;
512
- 'pyramid.control_panel.home_path': null;
513
- 'pyramid.locale': {
514
- locale: number;
515
- };
516
- 'pyramid.test_request': null;
517
- 'pyramid.test_exception_handled': null;
518
- 'pyramid.test_exception_unhandled': null;
519
- 'pyramid.test_exception_transaction': null;
520
- 'pyramid.test_timeout': null;
521
- 'pyramid.cors': null;
522
- 'pyramid.system_name': null;
523
- 'pyramid.settings': null;
524
- 'pyramid.route': null;
525
- 'pyramid.pkg_version': null;
526
- 'pyramid.healthcheck': null;
527
- 'pyramid.statistics': null;
528
- 'pyramid.estimate_storage': null;
529
- 'pyramid.storage_status': null;
530
- 'pyramid.storage': null;
531
- 'pyramid.kind_of_data': null;
532
- 'pyramid.custom_css': null;
533
- 'pyramid.logo': null;
534
- 'pyramid.company_logo': null;
535
- 'pyramid.home_path': null;
536
- 'pyramid.uacompat': null;
537
- 'lunkwill.summary': null;
538
- 'lunkwill.response': null;
539
- 'jsrealm.testentry': null;
540
- 'auth.login': null;
541
- 'auth.session_invite': null;
542
- 'auth.alink': {
543
- token: number;
544
- };
545
- 'auth.logout': null;
546
- 'auth.oauth': null;
547
- 'auth.settings': null;
548
- 'auth.user.browse': null;
549
- 'auth.user.create': null;
550
- 'auth.user.edit': {
551
- id: number;
552
- };
553
- 'auth.group.browse': null;
554
- 'auth.group.create': null;
555
- 'auth.group.edit': {
556
- id: number;
557
- };
558
- 'auth.user.collection': null;
559
- 'auth.user.item': {
560
- id: number;
561
- };
562
- 'auth.profile': null;
563
- 'auth.group.collection': null;
564
- 'auth.group.item': {
565
- id: number;
566
- };
567
- 'auth.current_user': null;
568
- 'auth.register': null;
569
- 'auth.login_cookies': null;
570
- 'auth.logout_cookies': null;
571
- 'resource.schema': null;
572
- 'resource.root': null;
573
- 'resource.show': {
574
- id: number;
575
- };
576
- 'resource.json': {
577
- id: number;
578
- };
579
- 'resource.effective_permissions': {
580
- id: number;
581
- };
582
- 'resource.export.page': {
583
- id: number;
584
- };
585
- 'resource.widget': null;
586
- 'resource.create': {
587
- id: number;
588
- };
589
- 'resource.update': {
590
- id: number;
591
- };
592
- 'resource.delete': {
593
- id: number;
594
- };
595
- 'resource.control_panel.resource_export': null;
596
- 'resource.blueprint': null;
597
- 'resource.item': {
598
- id: number;
599
- };
600
- 'resource.collection': null;
601
- 'resource.permission': {
602
- id: number;
603
- };
604
- 'resource.permission.explain': {
605
- id: number;
606
- };
607
- 'resource.volume': {
608
- id: number;
609
- };
610
- 'resource.quota': null;
611
- 'resource.search': null;
612
- 'resource.quota_check': null;
613
- 'resource.resource_export': null;
614
- 'resource.export': {
615
- id: number;
616
- };
617
- 'resource.file_download': {
618
- id: number;
619
- name: number;
620
- };
621
- 'resource.preview': {
622
- id: number;
623
- };
624
- 'srs.browse': null;
625
- 'srs.create': null;
626
- 'srs.edit': {
627
- id: number;
628
- };
629
- 'srs.catalog': null;
630
- 'srs.catalog.import': {
631
- id: number;
632
- };
633
- 'spatial_ref_sys.collection': null;
634
- 'spatial_ref_sys.convert': null;
635
- 'spatial_ref_sys.geom_transform.batch': null;
636
- 'spatial_ref_sys.geom_transform': {
637
- id: number;
638
- };
639
- 'spatial_ref_sys.geom_length': {
640
- id: number;
641
- };
642
- 'spatial_ref_sys.geom_area': {
643
- id: number;
644
- };
645
- 'spatial_ref_sys.item': {
646
- id: number;
647
- };
648
- 'spatial_ref_sys.catalog.collection': null;
649
- 'spatial_ref_sys.catalog.item': {
650
- id: number;
651
- };
652
- 'spatial_ref_sys.catalog.import': null;
653
- 'layer.extent': {
654
- id: number;
655
- };
656
- 'layer_preview.map': {
657
- id: number;
658
- };
659
- 'feature_layer.export_multiple': null;
660
- 'feature_layer.feature.browse': {
661
- id: number;
662
- };
663
- 'feature_layer.feature.show': {
664
- id: number;
665
- feature_id: number;
666
- };
667
- 'feature_layer.feature.update': {
668
- id: number;
669
- feature_id: number;
670
- };
671
- 'feature_layer.field': {
672
- id: number;
673
- };
674
- 'feature_layer.test_mvt': null;
675
- 'feature_layer.geojson': {
676
- id: number;
677
- };
678
- 'feature_layer.export': null;
679
- 'feature_layer.mvt': null;
680
- 'feature_layer.feature.item': {
681
- id: number;
682
- fid: number;
683
- };
684
- 'feature_layer.feature.item_extent': {
685
- id: number;
686
- fid: number;
687
- };
688
- 'feature_layer.feature.geometry_info': {
689
- id: number;
690
- fid: number;
691
- };
692
- 'feature_layer.feature.collection': {
693
- id: number;
694
- };
695
- 'feature_layer.feature.count': {
696
- id: number;
697
- };
698
- 'feature_layer.feature.extent': {
699
- id: number;
700
- };
701
- 'feature_layer.store': {
702
- id: number;
703
- };
704
- 'feature_layer.identify': null;
705
- 'feature_description.export': {
706
- id: number;
707
- };
708
- 'feature_attachment.download': {
709
- id: number;
710
- fid: number;
711
- aid: number;
712
- };
713
- 'feature_attachment.image': {
714
- id: number;
715
- fid: number;
716
- aid: number;
717
- };
718
- 'feature_attachment.item': {
719
- id: number;
720
- fid: number;
721
- aid: number;
722
- };
723
- 'feature_attachment.collection': {
724
- id: number;
725
- fid: number;
726
- };
727
- 'feature_attachment.export': {
728
- id: number;
729
- };
730
- 'feature_attachment.import': {
731
- id: number;
732
- };
733
- 'feature_attachment.page': {
734
- id: number;
735
- };
736
- 'render.tile': null;
737
- 'render.image': null;
738
- 'render.tile_cache.seed_status': {
739
- id: number;
740
- };
741
- 'render.legend': {
742
- id: number;
743
- };
744
- 'render.legend_symbols': {
745
- id: number;
746
- };
747
- 'webmap.annotation.collection': {
748
- id: number;
749
- };
750
- 'webmap.annotation.item': {
751
- id: number;
752
- annotation_id: number;
753
- };
754
- 'webmap.print': null;
755
- 'webmap.settings': null;
756
- 'webmap.extent': {
757
- id: number;
758
- };
759
- 'webmap.display': {
760
- id: number;
761
- };
762
- 'webmap.display.tiny': {
763
- id: number;
764
- };
765
- 'webmap.preview_embedded': null;
766
- 'webmap.clone': {
767
- id: number;
768
- };
769
- 'webmap.control_panel.settings': null;
770
- 'vector_layer.dataset': null;
771
- 'postgis.connection.inspect': {
772
- id: number;
773
- };
774
- 'postgis.connection.inspect.table': {
775
- id: number;
776
- table_name: number;
777
- };
778
- 'postgis.diagnostics': null;
779
- 'postgis.diagnostics_page': {
780
- id: number;
781
- };
782
- 'raster_layer.cog': {
783
- id: number;
784
- };
785
- 'raster_layer.download': {
786
- id: number;
787
- };
788
- 'wfsserver.wfs': {
789
- id: number;
790
- };
791
- 'wmsserver.wms': {
792
- id: number;
793
- };
794
- 'ogcfserver.landing_page': {
795
- id: number;
796
- };
797
- 'ogcfserver.openapi': {
798
- id: number;
799
- };
800
- 'ogcfserver.conformance': {
801
- id: number;
802
- };
803
- 'ogcfserver.collections': {
804
- id: number;
805
- };
806
- 'ogcfserver.collection': {
807
- id: number;
808
- collection_id: number;
809
- };
810
- 'ogcfserver.items': {
811
- id: number;
812
- collection_id: number;
813
- };
814
- 'ogcfserver.item': {
815
- id: number;
816
- collection_id: number;
817
- item_id: number;
818
- };
819
- 'tmsclient.connection.layers': {
820
- id: number;
821
- };
822
- 'file_upload.upload': null;
823
- 'file_upload.collection': null;
824
- 'file_upload.item': {
825
- id: number;
826
- };
827
- 'cadaster.settings': null;
828
- 'cadaster.enabled': null;
829
- 'cadaster.pkk_by_position': null;
830
- 'cadaster.pkk_by_id': null;
831
- 'pyramid.control_panel.cadaster': null;
832
- 'collector.user.browse': null;
833
- 'collector.user.create': null;
834
- 'collector.user.edit': {
835
- id: number;
836
- };
837
- 'collector.resource.users': {
838
- id: number;
839
- };
840
- 'collector.resource.read': {
841
- id: number;
842
- };
843
- 'collector.settings': null;
844
- 'collector.user.collection': null;
845
- 'collector.user.item': {
846
- user_id: number;
847
- };
848
- 'collector.user.limit': null;
849
- 'old.collector.user': {
850
- user_id: number;
851
- };
852
- 'collector.settings.users': null;
853
- 'demo.project': null;
854
- 'demo.project.preview': {
855
- identity: number;
856
- lang: number;
857
- };
858
- 'demo.select': null;
859
- 'demo.redirect': {
860
- project: number;
861
- };
862
- 'formbuilder.formbuilder_form_ngfp': {
863
- id: number;
864
- };
865
- 'nimbo.config': null;
866
- 'ngwcluster.schema': null;
867
- 'ngwcluster.config': null;
868
- 'ngwcluster.usage': null;
869
- 'ngwcluster.qgis_banner': null;
870
- 'ngwcluster.plan_and_features': null;
871
- 'qgis.style_qml': {
872
- id: number;
873
- };
874
- 'pyramid.control_panel.tracker': null;
875
- 'tracker.reports': null;
876
- 'tracker.reports.build': null;
877
- 'tracker.settings': null;
878
- 'tracker.receive_packet': {
879
- unique_id: number;
880
- };
881
- 'tracker.get_trackers': null;
882
- 'tracker.get_tracker_points': null;
883
- 'tracker.get_short_tracks': null;
884
- 'tracker.get_full_tracks': null;
885
- 'tracker.get_tracker_last_points': null;
886
- 'tracker.get_tracker_lines': null;
887
- 'tracker.get_last_activity_tracker': null;
888
- 'tracker.get_stops': null;
889
- 'tracker.get_device_types': null;
890
- 'tracker.export_to_gpx': null;
891
- }
892
-
893
- export declare interface RequestItemsResponseMap {
894
- GET: GetRequestItemsResponseMap;
895
- POST: PostRequestItemsResponseMap;
896
- }
897
-
898
- export declare type RequestMethods = 'POST' | 'GET' | 'PATCH' | 'DELETE' | 'PUT';
899
-
900
- export declare interface RequestOptions<M extends RequestMethods = RequestMethods, K extends keyof RequestItemsParamsMap = keyof RequestItemsParamsMap> {
901
- data?: any;
902
- file?: File;
903
- method?: M;
904
- headers?: RequestHeaders;
905
- withCredentials?: boolean;
906
- responseType?: 'json' | 'blob';
907
- cache?: boolean;
908
- signal?: AbortSignal;
909
- params?: RequestItemsParams<K>;
910
- onProgress?: (percentComplete: number, event: ProgressEvent) => void;
911
- }
912
-
913
- export declare type RequestTransformFunction = (url: string, options: RequestOptions) => [url: string, options: RequestOptions];
914
-
915
- export declare interface Resmeta {
916
- items: Record<string, any>;
917
- }
918
-
919
- export declare interface Resource {
920
- cls: ResourceCls;
921
- id: number;
922
- parent: {
923
- id: number;
924
- };
925
- owner_user: {
926
- id: number;
927
- };
928
- permissions: Permission[];
929
- keyname?: string | null;
930
- display_name: string;
931
- description?: string | null;
932
- children: boolean;
933
- interfaces: any[];
934
- scopes: string[];
935
- }
936
-
937
- export declare type ResourceCls = 'resource_group' | 'postgis_layer' | 'wmsserver_service' | 'basemap_layer' | 'postgis_connection' | 'webmap' | 'wfsserver_service' | 'vector_layer' | 'raster_layer' | 'mapserver_style' | 'qgis_vector_style' | 'qgis_raster_style' | 'raster_style' | 'file_bucket' | 'lookup_table' | 'wmsclient_layer' | 'wmsclient_connection' | 'formbuilder_form' | 'file_bucket' | 'svg_marker_library' | 'ogcfserver_service' | 'tmsclient_connection' | 'tileset' | 'collector_project' | 'demo_project' | 'trackers_group' | 'tracker' | 'terrain_provider' | 'model_3d' | 'tmsclient_layer';
938
-
939
- export declare type ResourceDefinition = ResourceIdKeynameDef | DeepPartial<Resource>;
940
-
941
- export declare interface ResourceHierarchy {
942
- id: number;
943
- parent: {
944
- id: any;
945
- };
946
- }
947
-
948
- export declare type ResourceIdKeynameDef = string | number;
949
-
950
- export declare interface ResourceItem extends ResourceItemMain {
951
- [cls: string]: any;
952
- webmap?: WebmapResource;
953
- feature_layer?: FeatureResource;
954
- vector_layer?: VectorLayer;
955
- basemap_layer?: BasemapResource;
956
- basemap_webmap?: BasemapWebmap;
957
- lookup_table?: LookupTableResource;
958
- file_bucket?: FileBucket;
959
- wmsserver_service?: WmsServerService;
960
- wmsclient_layer?: WmsClientLayer;
961
- wmsclient_connection?: WmsClientConnection;
962
- }
963
-
964
- /** @deprecated - use {@link VectorFieldDatatype} instead */
965
- export declare type ResourceItemDatatype = VectorFieldDatatype;
966
-
967
- export declare interface ResourceItemMain {
968
- resource: Resource;
969
- resmeta: Resmeta;
970
- }
971
-
972
- /**
973
- * Thrown when ...
974
- */
975
- declare class ResourceNotFoundError extends NgwError {
976
- name: string;
977
- exception: NgwExceptions;
978
- constructor(obj?: ResourceNotFoundError);
979
- }
980
-
981
- declare class ResourcesControl {
982
- private connector;
983
- cache: Cache_2<CancelablePromise<ResourceItem | undefined>, {
984
- id?: string | number | undefined;
985
- }>;
986
- constructor(connector: NgwConnector);
987
- /**
988
- * Receive resource from NGW by id, keyname or search-object parameter.
989
- * @param resource - Resource id, keyname or search-object
990
- *
991
- * @remarks
992
- * Fetching resource would be cached to speed up next call
993
- */
994
- getOne(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
995
- getOneOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem>;
996
- /**
997
- * A fast way to retrieve resource ID for any resource definition.
998
- * @param resource - Any available resource definition
999
- *
1000
- * @remarks
1001
- * There are situations when exactly the resource id is needed
1002
- * (for example, to compose the correct request to the api)
1003
- * then this method will come in handy to facilitate the extraction of the identifier
1004
- * if the resource is specified through a keyname or other parameters.
1005
- */
1006
- getId(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number | undefined>;
1007
- /**
1008
- * A fast way to retrieve resource ID for any resource definition.
1009
- * @param resource - Any available resource definition
1010
- *
1011
- * @remarks
1012
- * Similar with {@link NgwConnector.getResourceId | getResourceId} but rise error if resource is not exist.
1013
- * To not make one more checks if the resource is definitely exists
1014
- */
1015
- getIdOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number>;
1016
- getMany(resource: DeepPartial<Resource>, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem[]>;
1017
- getParent(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
1018
- getChildrenOf(resource: ResourceDefinition, requestOptions?: GetChildrenOfOptions): CancelablePromise<ResourceItem[]>;
1019
- update(resource: ResourceDefinition, data: DeepPartial<ResourceItem>): CancelablePromise<ResourceItem | undefined>;
1020
- /**
1021
- * Fast way to delete resource from NGW and clean cache.
1022
- * @param resource - Resource definition
1023
- */
1024
- delete(resource: ResourceDefinition): CancelablePromise<void>;
1025
- private _getChildrenOf;
1026
- private _cleanResourceItemCache;
1027
- private _fetchResourceById;
1028
- private _fetchResourceBy;
1029
- private _resourceCacheFilter;
1030
- }
1031
-
1032
- export declare type ResourceStoreItem<P extends ResourceStoreItemProperties = ResourceStoreItemProperties> = ResourceStoreItemDefault & {
1033
- data?: string;
1034
- } & P;
1035
-
1036
- export declare interface ResourceStoreItemDefault {
1037
- [field: string]: string | number | boolean | null | Date;
1038
- id: number;
1039
- label: string;
1040
- }
1041
-
1042
- export declare type ResourceStoreItemProperties = {
1043
- [name: string]: any;
1044
- } | null;
1045
-
1046
- export declare type Router = PyramidRoute;
1047
-
1048
- declare type simple = string | number | boolean;
1049
-
1050
- export declare interface SrsItem {
1051
- auth_name: string;
1052
- auth_srid: number;
1053
- display_name: string;
1054
- id: number;
1055
- wkt: string;
1056
- }
1057
-
1058
- export declare interface TreeGroup extends TreeItem {
1059
- item_type: 'root' | 'group';
1060
- group_expanded?: boolean;
1061
- children: Array<TreeLayer | TreeGroup>;
1062
- }
1063
-
1064
- export declare interface TreeItem {
1065
- item_type: 'root' | 'group' | 'layer';
1066
- display_name?: string;
1067
- id?: number;
1068
- _layer?: any;
1069
- _parent?: TreeGroup;
1070
- }
1071
-
1072
- export declare interface TreeLayer extends TreeItem {
1073
- item_type: 'layer';
1074
- layer_adapter: string;
1075
- layer_enabled: boolean;
1076
- draw_order_position: number;
1077
- layer_max_scale_denom?: number;
1078
- layer_min_scale_denom?: number;
1079
- layer_style_id: number;
1080
- style_parent_id: number;
1081
- layer_transparency: number;
1082
- layer_identifiable: boolean;
1083
- }
1084
-
1085
- export declare interface UserInfo {
1086
- display_name: string;
1087
- id: number;
1088
- /** @defaultValue 'guest' */
1089
- keyname: 'guest' | string;
1090
- clientId?: string;
1091
- }
1092
-
1093
- export declare type VectorFieldDatatype = 'STRING' | 'REAL' | 'DATE' | 'TIME' | 'DATETIME' | 'BIGINT' | 'INTEGER' | 'BOOLEAN';
1094
-
1095
- export declare interface VectorLayer {
1096
- srs: {
1097
- id: number;
1098
- };
1099
- geometry_type: GeometryType;
1100
- }
1101
-
1102
- export declare interface VectorLayerResourceItem extends ResourceItemMain {
1103
- vector_layer: VectorLayer;
1104
- feature_layer: FeatureResource;
1105
- }
1106
-
1107
- export declare interface WebmapResource {
1108
- extent_left: number;
1109
- extent_right: number;
1110
- extent_bottom: number;
1111
- extent_top: number;
1112
- extent_constrained: boolean;
1113
- draw_order_enabled: boolean;
1114
- bookmark_resource: ResourceHierarchy;
1115
- root_item: TreeGroup;
1116
- }
1117
-
1118
- export declare interface WmsClientConnection {
1119
- /** WMS service url */
1120
- url: string;
1121
- /** User name to connect to service */
1122
- username?: string;
1123
- /** Password to connect to service */
1124
- password?: string;
1125
- /** WMS version */
1126
- version?: string;
1127
- /** If equal query - query capabilities from service */
1128
- capcache?: string;
1129
- }
1130
-
1131
- export declare interface WmsClientLayer {
1132
- /** WMS connection. */
1133
- connection: {
1134
- id: number;
1135
- };
1136
- srs: {
1137
- id: number;
1138
- };
1139
- /**
1140
- * Image format. Available values can fetched from WMS connection ('image/png').
1141
- */
1142
- imgformat: string;
1143
- /**
1144
- * String with layer identifiers separated with comma. Available layers can fetched from WMS connection.
1145
- */
1146
- wmslayers: string;
1147
- /** Additional parameters added to each request. This is key and value list. */
1148
- vendor_params: Record<string, string>;
1149
- }
1150
-
1151
- export declare interface WmsServerService {
1152
- /**
1153
- * Array or WMS service layers. keyname, display_name and resource_id are mandatory.
1154
- */
1155
- layers: WmsServerServiceLayer[];
1156
- }
1157
-
1158
- export declare interface WmsServerServiceLayer {
1159
- /**
1160
- * Key name for WMS service item. Name may be only ASCII symbols without spaces.
1161
- * */
1162
- keyname: string;
1163
- /**
1164
- * Service item name.
1165
- * */
1166
- display_name: string;
1167
- /**
1168
- * Resource identifier which will be WMS layer datasource. Supported types are: vector layer style, raster style, WMS layer.
1169
- * */
1170
- resource_id: number;
1171
- /**
1172
- * Minimum scale to show WMS layer. String in form of `1 : 100000`.
1173
- */
1174
- min_scale_denom?: string | null;
1175
- /**
1176
- * Maximum scale to show WMS layer. String in form of `1 : 100000`.
1177
- */
1178
- max_scale_denom?: string | null;
1179
- }
1180
-
1181
- export { }
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import CancelablePromise from '@nextgis/cancelable-promise';
4
+ import Cache from '@nextgis/cache';
5
+ import { FeatureProperties, DeepPartial } from '@nextgis/utils';
6
+ import { GeoJsonObject, Geometry } from 'geojson';
7
+
8
+ interface NgwLayerIdentifyError {
9
+ error: 'Not implemented';
10
+ }
11
+ interface LayerFeature {
12
+ id: number;
13
+ label: string;
14
+ layerId: number;
15
+ parent: string;
16
+ fields: FeatureProperties;
17
+ geom?: GeoJsonObject;
18
+ }
19
+ interface FeatureLayersIdentifyItems {
20
+ featureCount: number;
21
+ features: LayerFeature[];
22
+ }
23
+ interface FeatureLayersIdentify {
24
+ [layerId: number]: FeatureLayersIdentifyItems | NgwLayerIdentifyError;
25
+ featureCount: number;
26
+ }
27
+ interface FeatureItemAttachment {
28
+ id: number;
29
+ name: string;
30
+ size: number;
31
+ mime_type: string;
32
+ description: null;
33
+ is_image: boolean;
34
+ }
35
+ interface FeatureItemExtensions {
36
+ description?: string;
37
+ attachment?: FeatureItemAttachment[];
38
+ }
39
+ interface FeatureItem<F = FeatureProperties, G extends Geometry | string = Geometry> {
40
+ id: number;
41
+ geom: G;
42
+ fields: F;
43
+ extensions: FeatureItemExtensions;
44
+ }
45
+ type FeatureItemToNgw<F = FeatureProperties, G extends Geometry | string = Geometry> = FeatureItem<F, G>;
46
+
47
+ interface RequestItemsParamsMap {
48
+ 'pyramid.static': {
49
+ skey: number;
50
+ };
51
+ 'pyramid.openapi_json': null;
52
+ 'pyramid.openapi_json_test': null;
53
+ 'pyramid.swagger': null;
54
+ 'pyramid.control_panel': null;
55
+ 'pyramid.control_panel.sysinfo': null;
56
+ 'pyramid.control_panel.storage': null;
57
+ 'pyramid.control_panel.backup.browse': null;
58
+ 'pyramid.control_panel.backup.download': {
59
+ filename: number;
60
+ };
61
+ 'pyramid.control_panel.cors': null;
62
+ 'pyramid.control_panel.custom_css': null;
63
+ 'pyramid.control_panel.logo': null;
64
+ 'pyramid.control_panel.system_name': null;
65
+ 'pyramid.control_panel.home_path': null;
66
+ 'pyramid.locale': {
67
+ locale: number;
68
+ };
69
+ 'pyramid.test_request': null;
70
+ 'pyramid.test_exception_handled': null;
71
+ 'pyramid.test_exception_unhandled': null;
72
+ 'pyramid.test_exception_transaction': null;
73
+ 'pyramid.test_timeout': null;
74
+ 'pyramid.cors': null;
75
+ 'pyramid.system_name': null;
76
+ 'pyramid.settings': null;
77
+ 'pyramid.route': null;
78
+ 'pyramid.pkg_version': null;
79
+ 'pyramid.healthcheck': null;
80
+ 'pyramid.statistics': null;
81
+ 'pyramid.estimate_storage': null;
82
+ 'pyramid.storage_status': null;
83
+ 'pyramid.storage': null;
84
+ 'pyramid.kind_of_data': null;
85
+ 'pyramid.custom_css': null;
86
+ 'pyramid.logo': null;
87
+ 'pyramid.company_logo': null;
88
+ 'pyramid.home_path': null;
89
+ 'pyramid.uacompat': null;
90
+ 'lunkwill.summary': null;
91
+ 'lunkwill.response': null;
92
+ 'jsrealm.testentry': null;
93
+ 'auth.login': null;
94
+ 'auth.session_invite': null;
95
+ 'auth.alink': {
96
+ token: number;
97
+ };
98
+ 'auth.logout': null;
99
+ 'auth.oauth': null;
100
+ 'auth.settings': null;
101
+ 'auth.user.browse': null;
102
+ 'auth.user.create': null;
103
+ 'auth.user.edit': {
104
+ id: number;
105
+ };
106
+ 'auth.group.browse': null;
107
+ 'auth.group.create': null;
108
+ 'auth.group.edit': {
109
+ id: number;
110
+ };
111
+ 'auth.user.collection': null;
112
+ 'auth.user.item': {
113
+ id: number;
114
+ };
115
+ 'auth.profile': null;
116
+ 'auth.group.collection': null;
117
+ 'auth.group.item': {
118
+ id: number;
119
+ };
120
+ 'auth.current_user': null;
121
+ 'auth.register': null;
122
+ 'auth.login_cookies': null;
123
+ 'auth.logout_cookies': null;
124
+ 'resource.schema': null;
125
+ 'resource.root': null;
126
+ 'resource.show': {
127
+ id: number;
128
+ };
129
+ 'resource.json': {
130
+ id: number;
131
+ };
132
+ 'resource.effective_permissions': {
133
+ id: number;
134
+ };
135
+ 'resource.export.page': {
136
+ id: number;
137
+ };
138
+ 'resource.widget': null;
139
+ 'resource.create': {
140
+ id: number;
141
+ };
142
+ 'resource.update': {
143
+ id: number;
144
+ };
145
+ 'resource.delete': {
146
+ id: number;
147
+ };
148
+ 'resource.control_panel.resource_export': null;
149
+ 'resource.blueprint': null;
150
+ 'resource.item': {
151
+ id: number;
152
+ };
153
+ 'resource.collection': null;
154
+ 'resource.permission': {
155
+ id: number;
156
+ };
157
+ 'resource.permission.explain': {
158
+ id: number;
159
+ };
160
+ 'resource.volume': {
161
+ id: number;
162
+ };
163
+ 'resource.quota': null;
164
+ 'resource.search': null;
165
+ 'resource.quota_check': null;
166
+ 'resource.resource_export': null;
167
+ 'resource.export': {
168
+ id: number;
169
+ };
170
+ 'resource.file_download': {
171
+ id: number;
172
+ name: number;
173
+ };
174
+ 'resource.preview': {
175
+ id: number;
176
+ };
177
+ 'srs.browse': null;
178
+ 'srs.create': null;
179
+ 'srs.edit': {
180
+ id: number;
181
+ };
182
+ 'srs.catalog': null;
183
+ 'srs.catalog.import': {
184
+ id: number;
185
+ };
186
+ 'spatial_ref_sys.collection': null;
187
+ 'spatial_ref_sys.convert': null;
188
+ 'spatial_ref_sys.geom_transform.batch': null;
189
+ 'spatial_ref_sys.geom_transform': {
190
+ id: number;
191
+ };
192
+ 'spatial_ref_sys.geom_length': {
193
+ id: number;
194
+ };
195
+ 'spatial_ref_sys.geom_area': {
196
+ id: number;
197
+ };
198
+ 'spatial_ref_sys.item': {
199
+ id: number;
200
+ };
201
+ 'spatial_ref_sys.catalog.collection': null;
202
+ 'spatial_ref_sys.catalog.item': {
203
+ id: number;
204
+ };
205
+ 'spatial_ref_sys.catalog.import': null;
206
+ 'layer.extent': {
207
+ id: number;
208
+ };
209
+ 'layer_preview.map': {
210
+ id: number;
211
+ };
212
+ 'feature_layer.export_multiple': null;
213
+ 'feature_layer.feature.browse': {
214
+ id: number;
215
+ };
216
+ 'feature_layer.feature.show': {
217
+ id: number;
218
+ feature_id: number;
219
+ };
220
+ 'feature_layer.feature.update': {
221
+ id: number;
222
+ feature_id: number;
223
+ };
224
+ 'feature_layer.field': {
225
+ id: number;
226
+ };
227
+ 'feature_layer.test_mvt': null;
228
+ 'feature_layer.geojson': {
229
+ id: number;
230
+ };
231
+ 'feature_layer.export': null;
232
+ 'feature_layer.mvt': null;
233
+ 'feature_layer.feature.item': {
234
+ id: number;
235
+ fid: number;
236
+ };
237
+ 'feature_layer.feature.item_extent': {
238
+ id: number;
239
+ fid: number;
240
+ };
241
+ 'feature_layer.feature.geometry_info': {
242
+ id: number;
243
+ fid: number;
244
+ };
245
+ 'feature_layer.feature.collection': {
246
+ id: number;
247
+ };
248
+ 'feature_layer.feature.count': {
249
+ id: number;
250
+ };
251
+ 'feature_layer.feature.extent': {
252
+ id: number;
253
+ };
254
+ 'feature_layer.store': {
255
+ id: number;
256
+ };
257
+ 'feature_layer.identify': null;
258
+ 'feature_description.export': {
259
+ id: number;
260
+ };
261
+ 'feature_attachment.download': {
262
+ id: number;
263
+ fid: number;
264
+ aid: number;
265
+ };
266
+ 'feature_attachment.image': {
267
+ id: number;
268
+ fid: number;
269
+ aid: number;
270
+ };
271
+ 'feature_attachment.item': {
272
+ id: number;
273
+ fid: number;
274
+ aid: number;
275
+ };
276
+ 'feature_attachment.collection': {
277
+ id: number;
278
+ fid: number;
279
+ };
280
+ 'feature_attachment.export': {
281
+ id: number;
282
+ };
283
+ 'feature_attachment.import': {
284
+ id: number;
285
+ };
286
+ 'feature_attachment.page': {
287
+ id: number;
288
+ };
289
+ 'render.tile': null;
290
+ 'render.image': null;
291
+ 'render.tile_cache.seed_status': {
292
+ id: number;
293
+ };
294
+ 'render.legend': {
295
+ id: number;
296
+ };
297
+ 'render.legend_symbols': {
298
+ id: number;
299
+ };
300
+ 'webmap.annotation.collection': {
301
+ id: number;
302
+ };
303
+ 'webmap.annotation.item': {
304
+ id: number;
305
+ annotation_id: number;
306
+ };
307
+ 'webmap.print': null;
308
+ 'webmap.settings': null;
309
+ 'webmap.extent': {
310
+ id: number;
311
+ };
312
+ 'webmap.display': {
313
+ id: number;
314
+ };
315
+ 'webmap.display.tiny': {
316
+ id: number;
317
+ };
318
+ 'webmap.preview_embedded': null;
319
+ 'webmap.clone': {
320
+ id: number;
321
+ };
322
+ 'webmap.control_panel.settings': null;
323
+ 'vector_layer.dataset': null;
324
+ 'postgis.connection.inspect': {
325
+ id: number;
326
+ };
327
+ 'postgis.connection.inspect.table': {
328
+ id: number;
329
+ table_name: number;
330
+ };
331
+ 'postgis.diagnostics': null;
332
+ 'postgis.diagnostics_page': {
333
+ id: number;
334
+ };
335
+ 'raster_layer.cog': {
336
+ id: number;
337
+ };
338
+ 'raster_layer.download': {
339
+ id: number;
340
+ };
341
+ 'wfsserver.wfs': {
342
+ id: number;
343
+ };
344
+ 'wmsserver.wms': {
345
+ id: number;
346
+ };
347
+ 'ogcfserver.landing_page': {
348
+ id: number;
349
+ };
350
+ 'ogcfserver.openapi': {
351
+ id: number;
352
+ };
353
+ 'ogcfserver.conformance': {
354
+ id: number;
355
+ };
356
+ 'ogcfserver.collections': {
357
+ id: number;
358
+ };
359
+ 'ogcfserver.collection': {
360
+ id: number;
361
+ collection_id: number;
362
+ };
363
+ 'ogcfserver.items': {
364
+ id: number;
365
+ collection_id: number;
366
+ };
367
+ 'ogcfserver.item': {
368
+ id: number;
369
+ collection_id: number;
370
+ item_id: number;
371
+ };
372
+ 'tmsclient.connection.layers': {
373
+ id: number;
374
+ };
375
+ 'file_upload.upload': null;
376
+ 'file_upload.collection': null;
377
+ 'file_upload.item': {
378
+ id: number;
379
+ };
380
+ 'cadaster.settings': null;
381
+ 'cadaster.enabled': null;
382
+ 'cadaster.pkk_by_position': null;
383
+ 'cadaster.pkk_by_id': null;
384
+ 'pyramid.control_panel.cadaster': null;
385
+ 'collector.user.browse': null;
386
+ 'collector.user.create': null;
387
+ 'collector.user.edit': {
388
+ id: number;
389
+ };
390
+ 'collector.resource.users': {
391
+ id: number;
392
+ };
393
+ 'collector.resource.read': {
394
+ id: number;
395
+ };
396
+ 'collector.settings': null;
397
+ 'collector.user.collection': null;
398
+ 'collector.user.item': {
399
+ user_id: number;
400
+ };
401
+ 'collector.user.limit': null;
402
+ 'old.collector.user': {
403
+ user_id: number;
404
+ };
405
+ 'collector.settings.users': null;
406
+ 'demo.project': null;
407
+ 'demo.project.preview': {
408
+ identity: number;
409
+ lang: number;
410
+ };
411
+ 'demo.select': null;
412
+ 'demo.redirect': {
413
+ project: number;
414
+ };
415
+ 'formbuilder.formbuilder_form_ngfp': {
416
+ id: number;
417
+ };
418
+ 'nimbo.config': null;
419
+ 'ngwcluster.schema': null;
420
+ 'ngwcluster.config': null;
421
+ 'ngwcluster.usage': null;
422
+ 'ngwcluster.qgis_banner': null;
423
+ 'ngwcluster.plan_and_features': null;
424
+ 'qgis.style_qml': {
425
+ id: number;
426
+ };
427
+ 'pyramid.control_panel.tracker': null;
428
+ 'tracker.reports': null;
429
+ 'tracker.reports.build': null;
430
+ 'tracker.settings': null;
431
+ 'tracker.receive_packet': {
432
+ unique_id: number;
433
+ };
434
+ 'tracker.get_trackers': null;
435
+ 'tracker.get_tracker_points': null;
436
+ 'tracker.get_short_tracks': null;
437
+ 'tracker.get_full_tracks': null;
438
+ 'tracker.get_tracker_last_points': null;
439
+ 'tracker.get_tracker_lines': null;
440
+ 'tracker.get_last_activity_tracker': null;
441
+ 'tracker.get_stops': null;
442
+ 'tracker.get_device_types': null;
443
+ 'tracker.export_to_gpx': null;
444
+ }
445
+
446
+ interface TreeItem {
447
+ item_type: 'root' | 'group' | 'layer';
448
+ display_name?: string;
449
+ id?: number;
450
+ _layer?: any;
451
+ _parent?: TreeGroup;
452
+ }
453
+ interface TreeGroup extends TreeItem {
454
+ item_type: 'root' | 'group';
455
+ group_expanded?: boolean;
456
+ children: Array<TreeLayer | TreeGroup>;
457
+ }
458
+ interface TreeLayer extends TreeItem {
459
+ item_type: 'layer';
460
+ layer_adapter: string;
461
+ layer_enabled: boolean;
462
+ draw_order_position: number;
463
+ layer_max_scale_denom?: number;
464
+ layer_min_scale_denom?: number;
465
+ layer_style_id: number;
466
+ style_parent_id: number;
467
+ layer_transparency: number;
468
+ layer_identifiable: boolean;
469
+ }
470
+ interface Permission {
471
+ action: string;
472
+ principal: {
473
+ id: number;
474
+ };
475
+ identity: string;
476
+ scope: string;
477
+ permission: string;
478
+ propagate: boolean;
479
+ }
480
+ type ResourceCls = 'resource_group' | 'postgis_layer' | 'wmsserver_service' | 'basemap_layer' | 'postgis_connection' | 'webmap' | 'wfsserver_service' | 'vector_layer' | 'raster_layer' | 'mapserver_style' | 'qgis_vector_style' | 'qgis_raster_style' | 'raster_style' | 'file_bucket' | 'lookup_table' | 'wmsclient_layer' | 'wmsclient_connection' | 'formbuilder_form' | 'file_bucket' | 'svg_marker_library' | 'ogcfserver_service' | 'tmsclient_connection' | 'tileset' | 'collector_project' | 'demo_project' | 'trackers_group' | 'tracker' | 'terrain_provider' | 'model_3d' | 'tmsclient_layer';
481
+ interface ResourceHierarchy {
482
+ id: number;
483
+ parent: {
484
+ id: any;
485
+ };
486
+ }
487
+ interface Resource {
488
+ cls: ResourceCls;
489
+ id: number;
490
+ parent: {
491
+ id: number;
492
+ };
493
+ owner_user: {
494
+ id: number;
495
+ };
496
+ permissions: Permission[];
497
+ keyname?: string | null;
498
+ display_name: string;
499
+ description?: string | null;
500
+ children: boolean;
501
+ interfaces: any[];
502
+ scopes: string[];
503
+ }
504
+ interface BookmarkProperties {
505
+ name: string;
506
+ place: string;
507
+ }
508
+ interface NgwDateFormat {
509
+ year: number;
510
+ month: number;
511
+ day: number;
512
+ }
513
+ interface NgwTimeFormat {
514
+ hour: number;
515
+ minute: number;
516
+ second: number;
517
+ }
518
+ type NgwDateTimeFormat = NgwDateFormat & NgwTimeFormat;
519
+ interface WebmapResource {
520
+ extent_left: number;
521
+ extent_right: number;
522
+ extent_bottom: number;
523
+ extent_top: number;
524
+ extent_constrained: boolean;
525
+ draw_order_enabled: boolean;
526
+ bookmark_resource: ResourceHierarchy;
527
+ root_item: TreeGroup;
528
+ }
529
+ interface BasemapResource {
530
+ url: string;
531
+ /**
532
+ * Parse to qms-kit.BasemapQms
533
+ */
534
+ qms: string;
535
+ }
536
+ interface BasemapWebmapItem {
537
+ resource_id: number;
538
+ display_name: string;
539
+ position?: number;
540
+ enabled?: boolean;
541
+ opacity?: number;
542
+ }
543
+ interface BasemapWebmap {
544
+ basemaps: BasemapWebmapItem[];
545
+ }
546
+ interface LookupTableResource {
547
+ items: Record<string, string>;
548
+ }
549
+ type VectorFieldDatatype = 'STRING' | 'REAL' | 'DATE' | 'TIME' | 'DATETIME' | 'BIGINT' | 'INTEGER' | 'BOOLEAN';
550
+ /** @deprecated - use {@link VectorFieldDatatype} instead */
551
+ type ResourceItemDatatype = VectorFieldDatatype;
552
+ interface FeatureLayerField {
553
+ datatype: VectorFieldDatatype;
554
+ display_name: string;
555
+ grid_visibility: boolean;
556
+ id: number;
557
+ keyname: string;
558
+ label_field: boolean;
559
+ typemod?: unknown;
560
+ }
561
+ interface FeatureResource {
562
+ fields: FeatureLayerField[];
563
+ }
564
+ type GeometryType = 'POINT' | 'LINESTRING' | 'POLYGON' | 'MULTIPOINT' | 'MULTILINESTRING' | 'MULTIPOLYGON' | 'POINTZ' | 'LINESTRINGZ' | 'POLYGONZ' | 'MULTIPOINTZ' | 'MULTILINESTRINGZ' | 'MULTIPOLYGONZ';
565
+ interface VectorLayer {
566
+ srs: {
567
+ id: number;
568
+ };
569
+ geometry_type: GeometryType;
570
+ }
571
+ interface FileBucket {
572
+ files: NgwFile[];
573
+ tstamp?: any;
574
+ main_tileset?: string;
575
+ }
576
+ interface WmsServerService {
577
+ /**
578
+ * Array or WMS service layers. keyname, display_name and resource_id are mandatory.
579
+ */
580
+ layers: WmsServerServiceLayer[];
581
+ }
582
+ interface WmsClientLayer {
583
+ /** WMS connection. */
584
+ connection: {
585
+ id: number;
586
+ };
587
+ srs: {
588
+ id: number;
589
+ };
590
+ /**
591
+ * Image format. Available values can fetched from WMS connection ('image/png').
592
+ */
593
+ imgformat: string;
594
+ /**
595
+ * String with layer identifiers separated with comma. Available layers can fetched from WMS connection.
596
+ */
597
+ wmslayers: string;
598
+ /** Additional parameters added to each request. This is key and value list. */
599
+ vendor_params: Record<string, string>;
600
+ }
601
+ interface WmsClientConnection {
602
+ /** WMS service url */
603
+ url: string;
604
+ /** User name to connect to service */
605
+ username?: string;
606
+ /** Password to connect to service */
607
+ password?: string;
608
+ /** WMS version */
609
+ version?: string;
610
+ /** If equal query - query capabilities from service */
611
+ capcache?: string;
612
+ }
613
+ interface WmsServerServiceLayer {
614
+ /**
615
+ * Key name for WMS service item. Name may be only ASCII symbols without spaces.
616
+ * */
617
+ keyname: string;
618
+ /**
619
+ * Service item name.
620
+ * */
621
+ display_name: string;
622
+ /**
623
+ * Resource identifier which will be WMS layer datasource. Supported types are: vector layer style, raster style, WMS layer.
624
+ * */
625
+ resource_id: number;
626
+ /**
627
+ * Minimum scale to show WMS layer. String in form of `1 : 100000`.
628
+ */
629
+ min_scale_denom?: string | null;
630
+ /**
631
+ * Maximum scale to show WMS layer. String in form of `1 : 100000`.
632
+ */
633
+ max_scale_denom?: string | null;
634
+ }
635
+ interface NgwFile {
636
+ name: string;
637
+ mime_type: string;
638
+ size: number;
639
+ }
640
+ interface Resmeta {
641
+ items: Record<string, any>;
642
+ }
643
+ interface ResourceItemMain {
644
+ resource: Resource;
645
+ resmeta: Resmeta;
646
+ }
647
+ interface ResourceItem extends ResourceItemMain {
648
+ [cls: string]: any;
649
+ webmap?: WebmapResource;
650
+ feature_layer?: FeatureResource;
651
+ vector_layer?: VectorLayer;
652
+ basemap_layer?: BasemapResource;
653
+ basemap_webmap?: BasemapWebmap;
654
+ lookup_table?: LookupTableResource;
655
+ file_bucket?: FileBucket;
656
+ wmsserver_service?: WmsServerService;
657
+ wmsclient_layer?: WmsClientLayer;
658
+ wmsclient_connection?: WmsClientConnection;
659
+ }
660
+ interface VectorLayerResourceItem extends ResourceItemMain {
661
+ vector_layer: VectorLayer;
662
+ feature_layer: FeatureResource;
663
+ }
664
+
665
+ type ResourceStoreItemProperties = {
666
+ [name: string]: any;
667
+ } | null;
668
+ type ResourceStoreItem<P extends ResourceStoreItemProperties = ResourceStoreItemProperties> = ResourceStoreItemDefault & {
669
+ data?: string;
670
+ } & P;
671
+ interface ResourceStoreItemDefault {
672
+ [field: string]: string | number | boolean | null | Date;
673
+ id: number;
674
+ label: string;
675
+ }
676
+
677
+ interface FileMeta {
678
+ id: string;
679
+ mime_type: string;
680
+ name: string;
681
+ size: number;
682
+ }
683
+ interface NgwExtent {
684
+ extent: {
685
+ minLon: number;
686
+ minLat: number;
687
+ maxLon: number;
688
+ maxLat: number;
689
+ };
690
+ }
691
+ interface SrsItem {
692
+ auth_name: string;
693
+ auth_srid: number;
694
+ display_name: string;
695
+ id: number;
696
+ wkt: string;
697
+ }
698
+ interface Icon {
699
+ format: string;
700
+ data: string;
701
+ }
702
+ interface RenderLegendSymbol {
703
+ display_name: string;
704
+ icon: Icon;
705
+ }
706
+ interface FeatureLayerCount {
707
+ total_count: number;
708
+ }
709
+ type ResourceIdKeynameDef = string | number;
710
+ type ResourceDefinition = ResourceIdKeynameDef | DeepPartial<Resource>;
711
+ interface FileUploadResp {
712
+ upload_meta: FileMeta[];
713
+ }
714
+ interface PyramidSettingsPyramidCompanyLogo {
715
+ link?: 'string';
716
+ enabled: boolean;
717
+ }
718
+ interface PyramidSettingsPyramid {
719
+ support_url?: string;
720
+ units: 'metric';
721
+ degree_format: 'dd';
722
+ measurement_srid: 4326;
723
+ company_logo?: PyramidSettingsPyramidCompanyLogo;
724
+ }
725
+ type PyramidSettings = PyramidSettingsPyramid | Record<string, any>;
726
+ interface PyramidRoute {
727
+ [requestItemName: string]: [url: string, ...params: string[]];
728
+ }
729
+ type Router = PyramidRoute;
730
+ type simple = string | number | boolean;
731
+ type cbParams = (params: Params) => simple;
732
+ interface Params {
733
+ [name: string]: simple | cbParams;
734
+ }
735
+ type RequestItemKeys = {
736
+ readonly [T in keyof RequestItemsParamsMap]?: any;
737
+ };
738
+ interface RequestItemsResponseMap {
739
+ GET: GetRequestItemsResponseMap;
740
+ POST: PostRequestItemsResponseMap;
741
+ }
742
+ interface GetRequestItemsResponseMap extends RequestItemKeys {
743
+ 'pyramid.route': PyramidRoute;
744
+ 'pyramid.settings': PyramidSettings;
745
+ 'resource.item': ResourceItem;
746
+ 'resource.search': ResourceItem[];
747
+ 'resource.child': any;
748
+ 'resource.collection': ResourceItem[];
749
+ 'file_upload.upload': FileUploadResp;
750
+ 'layer.extent': NgwExtent;
751
+ 'feature_layer.feature.item': FeatureItem;
752
+ 'feature_layer.feature.collection': FeatureItem[];
753
+ 'feature_layer.store': ResourceStoreItem[];
754
+ 'feature_layer.field': FeatureLayerField[];
755
+ 'feature_layer.feature.item_extent': NgwExtent;
756
+ 'feature_layer.feature.count': FeatureLayerCount;
757
+ 'pyramid.company_logo': string;
758
+ 'spatial_ref_sys.collection': SrsItem[];
759
+ 'render.legend_symbols': RenderLegendSymbol[];
760
+ }
761
+ interface IdOnly {
762
+ id: number;
763
+ }
764
+ interface CreatedResource extends IdOnly {
765
+ parent: IdOnly;
766
+ }
767
+ interface PostRequestItemsResponseMap extends RequestItemKeys {
768
+ 'resource.collection': CreatedResource;
769
+ 'feature_layer.identify': FeatureLayersIdentify;
770
+ 'file_upload.upload': FileUploadResp;
771
+ 'feature_attachment.collection': IdOnly;
772
+ }
773
+ interface PatchRequestItemsResponseMap extends RequestItemKeys {
774
+ 'feature_layer.feature.collection': IdOnly[];
775
+ }
776
+ interface PutRequestItemsResponseMap extends RequestItemKeys {
777
+ 'feature_layer.feature.item': IdOnly;
778
+ }
779
+ interface DeleteRequestItemsResponseMap extends RequestItemKeys {
780
+ 'feature_layer.feature.item': any;
781
+ }
782
+ interface Credentials {
783
+ login: string;
784
+ password: string;
785
+ }
786
+ type RequestTransformFunction = (url: string, options: RequestOptions) => [url: string, options: RequestOptions];
787
+ interface NgwConnectorOptions {
788
+ baseUrl?: string;
789
+ route?: string;
790
+ auth?: Credentials;
791
+ requestTransform?: RequestTransformFunction;
792
+ }
793
+ interface RequestHeaders {
794
+ [header: string]: string | undefined;
795
+ Authorization?: string;
796
+ Accept?: string;
797
+ 'Access-Control-Allow-Origin'?: string;
798
+ 'Access-Control-Allow-Headers'?: string;
799
+ }
800
+ type RequestMethods = 'POST' | 'GET' | 'PATCH' | 'DELETE' | 'PUT';
801
+ type NgwExceptions = 'nextgisweb.resource.exception.ResourceNotFound' | 'nextgisweb.core.exception.InsufficientPermissions';
802
+ interface RequestOptions<M extends RequestMethods = RequestMethods, K extends keyof RequestItemsParamsMap = keyof RequestItemsParamsMap> {
803
+ data?: any;
804
+ file?: File;
805
+ method?: M;
806
+ headers?: RequestHeaders;
807
+ withCredentials?: boolean;
808
+ responseType?: 'json' | 'blob';
809
+ cache?: boolean;
810
+ signal?: AbortSignal;
811
+ params?: RequestItemsParams<K>;
812
+ onProgress?: (percentComplete: number, event: ProgressEvent) => void;
813
+ }
814
+ type RequestItemAdditionalParams = {
815
+ [name: string]: any;
816
+ } & {
817
+ paramList?: [string, any][];
818
+ };
819
+ type RequestItemsParams<K extends keyof RequestItemsParamsMap> = (RequestItemsParamsMap[K] | Record<string, unknown>) & RequestItemAdditionalParams;
820
+ interface LoadingQueue {
821
+ name: string;
822
+ waiting: Array<{
823
+ resolve: (...args: any[]) => Promise<any>;
824
+ reject: (...args: any[]) => Promise<Error>;
825
+ timestamp: Date;
826
+ }>;
827
+ }
828
+ interface UserInfo {
829
+ display_name: string;
830
+ id: number;
831
+ /** @defaultValue 'guest' */
832
+ keyname: 'guest' | string;
833
+ clientId?: string;
834
+ }
835
+ interface GetChildrenOfOptions extends Pick<RequestOptions, 'cache'> {
836
+ recursive?: boolean;
837
+ }
838
+
839
+ declare class ResourcesControl {
840
+ private connector;
841
+ cache: Cache<CancelablePromise<ResourceItem | undefined>, {
842
+ id?: string | number | undefined;
843
+ }>;
844
+ constructor(connector: NgwConnector);
845
+ /**
846
+ * Receive resource from NGW by id, keyname or search-object parameter.
847
+ * @param resource - Resource id, keyname or search-object
848
+ *
849
+ * @remarks
850
+ * Fetching resource would be cached to speed up next call
851
+ */
852
+ getOne(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
853
+ getOneOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem>;
854
+ /**
855
+ * A fast way to retrieve resource ID for any resource definition.
856
+ * @param resource - Any available resource definition
857
+ *
858
+ * @remarks
859
+ * There are situations when exactly the resource id is needed
860
+ * (for example, to compose the correct request to the api)
861
+ * then this method will come in handy to facilitate the extraction of the identifier
862
+ * if the resource is specified through a keyname or other parameters.
863
+ */
864
+ getId(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number | undefined>;
865
+ /**
866
+ * A fast way to retrieve resource ID for any resource definition.
867
+ * @param resource - Any available resource definition
868
+ *
869
+ * @remarks
870
+ * Similar with {@link NgwConnector.getResourceId | getResourceId} but rise error if resource is not exist.
871
+ * To not make one more checks if the resource is definitely exists
872
+ */
873
+ getIdOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number>;
874
+ getMany(resource: DeepPartial<Resource>, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem[]>;
875
+ getParent(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
876
+ getChildrenOf(resource: ResourceDefinition, requestOptions?: GetChildrenOfOptions): CancelablePromise<ResourceItem[]>;
877
+ update(resource: ResourceDefinition, data: DeepPartial<ResourceItem>): CancelablePromise<ResourceItem | undefined>;
878
+ /**
879
+ * Fast way to delete resource from NGW and clean cache.
880
+ * @param resource - Resource definition
881
+ */
882
+ delete(resource: ResourceDefinition): CancelablePromise<void>;
883
+ private _getChildrenOf;
884
+ private _cleanResourceItemCache;
885
+ private _fetchResourceById;
886
+ private _fetchResourceBy;
887
+ private _resourceCacheFilter;
888
+ }
889
+
890
+ /**
891
+ * Thrown when...
892
+ */
893
+ declare class NgwError extends Error {
894
+ name: string;
895
+ title: string;
896
+ message: string;
897
+ detail: string;
898
+ exception: NgwExceptions;
899
+ status_code: number | 404 | 500;
900
+ data?: Record<string, any>;
901
+ guru_meditation: string;
902
+ constructor(er?: Partial<NgwError>);
903
+ }
904
+
905
+ /**
906
+ * Thrown when ...
907
+ */
908
+ declare class ResourceNotFoundError extends NgwError {
909
+ name: string;
910
+ exception: NgwExceptions;
911
+ constructor(obj?: ResourceNotFoundError);
912
+ }
913
+
914
+ declare class NgwConnector {
915
+ options: NgwConnectorOptions;
916
+ static errors: {
917
+ NgwError: typeof NgwError;
918
+ ResourceNotFoundError: typeof ResourceNotFoundError;
919
+ };
920
+ id: number;
921
+ emitter: EventEmitter<[never]>;
922
+ user?: UserInfo;
923
+ resources: ResourcesControl;
924
+ private routeStr;
925
+ private activeRequests;
926
+ private requestTransform?;
927
+ constructor(options: NgwConnectorOptions);
928
+ static create(options: NgwConnectorOptions): NgwConnector;
929
+ setRequestTransform(requestTransform: RequestTransformFunction | undefined | null): void;
930
+ /**
931
+ * Fast way to specify the connection address to NextGIS Web.
932
+ * The current connection will be severed.
933
+ * @param baseUrl - NGW url
934
+ */
935
+ setNgw(baseUrl: string): void;
936
+ /**
937
+ * Establishing a connection with NextGIS Web to fulfill all other requests.
938
+ * @remarks
939
+ * This method need not be called manually as it is used when forming a request in {@link apiRequest | apiRequest}.
940
+ * Can be used to check connection.
941
+ * @example
942
+ * ```javascript
943
+ * const connector = new NgwConnector({baseUrl: 'https://demo.nextgis.com'});
944
+ * connector.connect()
945
+ * .then(() => console.log('Ok'))
946
+ * .catch((er) => console.log('Connection problem', er));
947
+ * ```
948
+ */
949
+ connect(): CancelablePromise<PyramidRoute>;
950
+ /**
951
+ * Quick way to change NextGIS Web user.
952
+ * @param credentials - New user credentials
953
+ */
954
+ login(credentials: Credentials, options?: RequestOptions): CancelablePromise<UserInfo>;
955
+ /**
956
+ * Disconnecting a user. Aborting all current requests
957
+ */
958
+ logout(): void;
959
+ getUserInfo(credentials?: Credentials, options?: RequestOptions): CancelablePromise<UserInfo>;
960
+ /**
961
+ * Obtaining the required Headers for authentication of requests in the NGW.
962
+ */
963
+ getAuthorizationHeaders(credentials?: Credentials): RequestHeaders | undefined;
964
+ makeClientId(credentials?: Credentials): string | undefined;
965
+ /** Stop all api requests */
966
+ abort(): void;
967
+ getActiveApiRequests(): CancelablePromise<any>[];
968
+ /**
969
+ * Send request to NGW api router.
970
+ * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
971
+ * @param params - Request item params or query params
972
+ * @param requestOptions - Request options
973
+ *
974
+ * @example
975
+ * ```javascript
976
+ *
977
+ * // there is such an NGW route item
978
+ * // "feature_layer.feature.item": [
979
+ * // "/api/resource/{0}/feature/{1}",
980
+ * // "id",
981
+ * // "fid"
982
+ * // ],
983
+ *
984
+ * const connector = new NgwConnector({ baseUrl: 'https://example.nextgis.com' });
985
+ * connector.apiRequest('feature_layer.feature.item', {
986
+ * // request params for {0} and {1}
987
+ * 'id': 2011,
988
+ * 'fid': 101,
989
+ * // query params
990
+ * 'srs': 4326,
991
+ * 'geom_format': 'geojson',
992
+ * }, { method: 'GET' });
993
+ * // send get-request to 'https://example.nextgis.com/api/resource/2011/feature/101?srs=4326&geom_format=geojson'
994
+ *
995
+ * ```
996
+ */
997
+ apiRequest<K extends keyof RequestItemsParamsMap, P extends RequestItemKeys = RequestItemKeys>(name: K, params_?: RequestItemsParams<K>, requestOptions?: RequestOptions): CancelablePromise<P[K]>;
998
+ /**
999
+ * Shortcut method for send POST request to NGW.
1000
+ * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
1001
+ * @param options - Request options
1002
+ * @param params - Request item params or query params
1003
+ *
1004
+ * @example
1005
+ * ```javascript
1006
+ * connector.post('resource.collection', { data: POST_PAYLOAD })
1007
+ * .then((newResource) => console.log(newResource))
1008
+ * .catch((error) => console.warn(error));
1009
+ * ```
1010
+ */
1011
+ post<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'POST', K>, params?: RequestItemsParams<K>): CancelablePromise<PostRequestItemsResponseMap[K]>;
1012
+ /**
1013
+ * Shortcut method for send GET request to NGW.
1014
+ * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
1015
+ * @param options - Request options
1016
+ * @param params - Request item params or query params
1017
+ */
1018
+ get<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'GET', K> | undefined | null, params?: RequestItemsParams<K>): CancelablePromise<GetRequestItemsResponseMap[K]>;
1019
+ /**
1020
+ * Shortcut method for send PATCH request to NGW.
1021
+ * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
1022
+ * @param options - Request options
1023
+ * @param params - Request item params or query params
1024
+ */
1025
+ patch<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'PATCH', K>, params?: RequestItemsParams<K>): CancelablePromise<PatchRequestItemsResponseMap[K]>;
1026
+ /**
1027
+ * Shortcut method for send PUT request to NGW.
1028
+ * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
1029
+ * @param options - Request options
1030
+ * @param params - Request item params or query params
1031
+ */
1032
+ put<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'PUT', K>, params?: RequestItemsParams<K>): CancelablePromise<PutRequestItemsResponseMap[K]>;
1033
+ /**
1034
+ * Shortcut method for send DELETE request to NGW.
1035
+ * @param name - NGW route name from {@link https://docs.nextgis.com/docs_ngweb_dev/doc/developer/resource.html#routes | routes}
1036
+ * @param options - Request options
1037
+ * @param params - Request item params or query params
1038
+ */
1039
+ delete<K extends keyof RequestItemsParamsMap>(name: K, options?: RequestOptions<'DELETE', K> | undefined | null, params?: RequestItemsParams<K>): CancelablePromise<DeleteRequestItemsResponseMap[K]>;
1040
+ /**
1041
+ * Send request to NGW.
1042
+ * @param url - URL address to NGW
1043
+ * @param params - Query params
1044
+ * @param options - Request options
1045
+ */
1046
+ makeQuery<R = unknown>(url: string, params?: Params | null, options?: RequestOptions): CancelablePromise<R>;
1047
+ /**
1048
+ * {@link ResourcesControl.getOne}
1049
+ */
1050
+ getResource(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
1051
+ /**
1052
+ * {@link ResourcesControl.getOneOrFail}
1053
+ */
1054
+ getResourceOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem>;
1055
+ /**
1056
+ * @deprecated - use {@link getResource}
1057
+ */
1058
+ getResourceBy(resource: DeepPartial<Resource>): CancelablePromise<ResourceItem | undefined>;
1059
+ /**
1060
+ * @deprecated - use {@link getResource}
1061
+ */
1062
+ getResourceByKeyname(keyname: string): CancelablePromise<ResourceItem | undefined>;
1063
+ /**
1064
+ * @deprecated - use {@link getResource}
1065
+ */
1066
+ getResourceById(id: number): CancelablePromise<ResourceItem | undefined>;
1067
+ /**
1068
+ * {@link ResourcesControl.getId}
1069
+ */
1070
+ getResourceId(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number | undefined>;
1071
+ /**
1072
+ * {@link ResourcesControl.getIdOrFail}
1073
+ */
1074
+ getResourceIdOrFail(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<number>;
1075
+ /**
1076
+ * {@link ResourcesControl.getMany}
1077
+ */
1078
+ getResourcesBy(resource: DeepPartial<Resource>, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem[]>;
1079
+ /**
1080
+ * {@link ResourcesControl.getParent}
1081
+ */
1082
+ getResourceParent(resource: ResourceDefinition, requestOptions?: RequestOptions<'GET'>): CancelablePromise<ResourceItem | undefined>;
1083
+ /**
1084
+ * {@link ResourcesControl.getChildrenOf}
1085
+ */
1086
+ getResourceChildren(resource: ResourceDefinition, requestOptions?: GetChildrenOfOptions): CancelablePromise<ResourceItem[]>;
1087
+ /**
1088
+ * {@link ResourcesControl.update}
1089
+ */
1090
+ updateResource(resource: ResourceIdKeynameDef, data: DeepPartial<ResourceItem>): CancelablePromise<ResourceItem | undefined>;
1091
+ /**
1092
+ * {@link ResourcesControl.delete}
1093
+ */
1094
+ deleteResource(resource: ResourceIdKeynameDef): CancelablePromise<void>;
1095
+ private _login;
1096
+ private _cleanActiveRequests;
1097
+ private _handleHttpError;
1098
+ }
1099
+
1100
+ export { type BasemapResource, type BasemapWebmap, type BasemapWebmapItem, type BookmarkProperties, type CreatedResource, type Credentials, type DeleteRequestItemsResponseMap, type FeatureItem, type FeatureItemAttachment, type FeatureItemExtensions, type FeatureItemToNgw, type FeatureLayerCount, type FeatureLayerField, type FeatureLayersIdentify, type FeatureLayersIdentifyItems, type FeatureResource, type FileBucket, type FileMeta, type FileUploadResp, type GeometryType, type GetChildrenOfOptions, type GetRequestItemsResponseMap, type IdOnly, type LayerFeature, type LoadingQueue, type LookupTableResource, type NgwConnectorOptions, type NgwDateFormat, type NgwDateTimeFormat, type NgwExceptions, type NgwExtent, type NgwFile, type NgwLayerIdentifyError, type NgwTimeFormat, type Params, type PatchRequestItemsResponseMap, type Permission, type PostRequestItemsResponseMap, type PutRequestItemsResponseMap, type PyramidRoute, type PyramidSettings, type PyramidSettingsPyramid, type PyramidSettingsPyramidCompanyLogo, type RenderLegendSymbol, type RequestHeaders, type RequestItemAdditionalParams, type RequestItemKeys, type RequestItemsParams, type RequestItemsParamsMap, type RequestItemsResponseMap, type RequestMethods, type RequestOptions, type RequestTransformFunction, type Resmeta, type Resource, type ResourceCls, type ResourceDefinition, type ResourceHierarchy, type ResourceIdKeynameDef, type ResourceItem, type ResourceItemDatatype, type ResourceItemMain, type ResourceStoreItem, type ResourceStoreItemDefault, type ResourceStoreItemProperties, type Router, type SrsItem, type TreeGroup, type TreeItem, type TreeLayer, type UserInfo, type VectorFieldDatatype, type VectorLayer, type VectorLayerResourceItem, type WebmapResource, type WmsClientConnection, type WmsClientLayer, type WmsServerService, type WmsServerServiceLayer, NgwConnector as default };