@geolens/sdk 1.0.0 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/sdk.gen.d.ts +328 -6
- package/dist/client/sdk.gen.d.ts.map +1 -1
- package/dist/client/sdk.gen.js +470 -15
- package/dist/client/sdk.gen.js.map +1 -1
- package/dist/client/types.gen.d.ts +3778 -1498
- package/dist/client/types.gen.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/client/sdk.gen.js
CHANGED
|
@@ -434,6 +434,29 @@ export const generateMetadataSummaryAiMetadataSummaryPost = (options) => (option
|
|
|
434
434
|
...options.headers
|
|
435
435
|
}
|
|
436
436
|
});
|
|
437
|
+
/**
|
|
438
|
+
* Get Column Ddl Feed
|
|
439
|
+
*
|
|
440
|
+
* Return the column-DDL audit history for a dataset.
|
|
441
|
+
*
|
|
442
|
+
* SEC-FU-08: Surfaces the column-DDL events written by SEC-S03 (Phase 1061)
|
|
443
|
+
* to dataset owners so they can detect editor-initiated schema changes.
|
|
444
|
+
*
|
|
445
|
+
* Access control (AGENTS.md Pre-Commit Checklist Rule 1):
|
|
446
|
+
* - Owner + granted roles: 200 with their own dataset's DDL history
|
|
447
|
+
* - Non-owner editor (no grant): 404 (check_dataset_access raises 404 for
|
|
448
|
+
* private datasets)
|
|
449
|
+
* - Admin: 200 (admin access is always allowed)
|
|
450
|
+
* - Anonymous: 401 (get_current_active_user dependency)
|
|
451
|
+
*
|
|
452
|
+
* The dataset 404-before-auth-query ordering ensures non-existent datasets
|
|
453
|
+
* return 404 without leaking audit log details.
|
|
454
|
+
*/
|
|
455
|
+
export const getColumnDdlFeedAuditDatasetsDatasetIdColumnDdlGet = (options) => (options.client ?? client).get({
|
|
456
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
457
|
+
url: '/audit/datasets/{dataset_id}/column-ddl',
|
|
458
|
+
...options
|
|
459
|
+
});
|
|
437
460
|
/**
|
|
438
461
|
* List My Api Keys
|
|
439
462
|
*
|
|
@@ -490,6 +513,24 @@ export const changePasswordAuthChangePasswordPost = (options) => (options.client
|
|
|
490
513
|
* Return public auth configuration (no authentication required).
|
|
491
514
|
*/
|
|
492
515
|
export const configAuthConfigGet = (options) => (options?.client ?? client).get({ url: '/auth/config/', ...options });
|
|
516
|
+
/**
|
|
517
|
+
* Create Download Token Endpoint
|
|
518
|
+
*
|
|
519
|
+
* Mint a short-lived download-scoped JWT for a single dataset.
|
|
520
|
+
*
|
|
521
|
+
* IA-P0-01 / SEC-04: the existing COG download URL path requires a
|
|
522
|
+
* ``typ='download'`` JWT on the ``?token=`` query parameter — session JWTs
|
|
523
|
+
* are rejected. This endpoint issues that token after verifying the caller
|
|
524
|
+
* has read access to the dataset.
|
|
525
|
+
*
|
|
526
|
+
* Anonymous callers are allowed for public datasets. The returned token has
|
|
527
|
+
* ``typ='download'``, ``scope='dataset:{dataset_id}'``, and a TTL of 120s.
|
|
528
|
+
*/
|
|
529
|
+
export const createDownloadTokenEndpointAuthDownloadTokenDatasetIdPost = (options) => (options.client ?? client).post({
|
|
530
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
531
|
+
url: '/auth/download-token/{dataset_id}',
|
|
532
|
+
...options
|
|
533
|
+
});
|
|
493
534
|
/**
|
|
494
535
|
* Login
|
|
495
536
|
*
|
|
@@ -497,7 +538,7 @@ export const configAuthConfigGet = (options) => (options?.client ?? client).get(
|
|
|
497
538
|
*/
|
|
498
539
|
export const loginAuthLoginPost = (options) => (options.client ?? client).post({
|
|
499
540
|
...urlSearchParamsBodySerializer,
|
|
500
|
-
url: '/auth/login
|
|
541
|
+
url: '/auth/login',
|
|
501
542
|
...options,
|
|
502
543
|
headers: {
|
|
503
544
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
@@ -507,7 +548,12 @@ export const loginAuthLoginPost = (options) => (options.client ?? client).post({
|
|
|
507
548
|
/**
|
|
508
549
|
* Logout
|
|
509
550
|
*
|
|
510
|
-
* Revoke all refresh tokens for the current user.
|
|
551
|
+
* Revoke all refresh tokens and bump token_version for the current user.
|
|
552
|
+
*
|
|
553
|
+
* SEC-S15 (Phase 1062-01): revoke_all_tokens bumps User.token_version so the
|
|
554
|
+
* access JWT used for this logout call (and any other outstanding access JWTs)
|
|
555
|
+
* are rejected on the next authenticated request — closing the
|
|
556
|
+
* "logout doesn't invalidate the access JWT" gap.
|
|
511
557
|
*/
|
|
512
558
|
export const logoutAuthLogoutPost = (options) => (options?.client ?? client).post({
|
|
513
559
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
@@ -544,12 +590,24 @@ export const listPublicProvidersAuthOauthProvidersGet = (options) => (options?.c
|
|
|
544
590
|
* Oauth Callback
|
|
545
591
|
*
|
|
546
592
|
* Handle IdP callback: exchange code, find/create user, issue JWT, redirect to frontend.
|
|
593
|
+
*
|
|
594
|
+
* Phase 268 H-27: the frontend redirect carries access tokens in the URL
|
|
595
|
+
* fragment. Without explicit-config resolution, an attacker controlling
|
|
596
|
+
* ``X-Forwarded-Host`` could steer the post-callback redirect to
|
|
597
|
+
* attacker.com and capture the tokens. Force explicit-config resolution
|
|
598
|
+
* by passing ``for_external_use=True``.
|
|
547
599
|
*/
|
|
548
600
|
export const oauthCallbackAuthOauthProviderSlugCallbackGet = (options) => (options.client ?? client).get({ url: '/auth/oauth/{provider_slug}/callback', ...options });
|
|
549
601
|
/**
|
|
550
602
|
* Oauth Login
|
|
551
603
|
*
|
|
552
604
|
* Redirect user to the IdP authorization URL with PKCE parameters.
|
|
605
|
+
*
|
|
606
|
+
* Phase 268 H-27: the redirect_uri is handed to the IdP, where an
|
|
607
|
+
* attacker-controlled origin (via ``X-Forwarded-Host``) would otherwise
|
|
608
|
+
* enable auth-code theft. We force explicit-config resolution by
|
|
609
|
+
* passing ``for_external_use=True``; falling back to the request-origin
|
|
610
|
+
* is refused.
|
|
553
611
|
*/
|
|
554
612
|
export const oauthLoginAuthOauthProviderSlugLoginGet = (options) => (options.client ?? client).get({ url: '/auth/oauth/{provider_slug}/login', ...options });
|
|
555
613
|
/**
|
|
@@ -873,6 +931,26 @@ export const createEmptyDatasetEndpointDatasetsCreatePost = (options) => (option
|
|
|
873
931
|
...options.headers
|
|
874
932
|
}
|
|
875
933
|
});
|
|
934
|
+
/**
|
|
935
|
+
* Get Dcat Us3 Catalog
|
|
936
|
+
*
|
|
937
|
+
* DCAT-US Schema v3.0 catalog feed. Respects dataset visibility.
|
|
938
|
+
*/
|
|
939
|
+
export const getDcatUs3CatalogDatasetsDcatUs30Get = (options) => (options?.client ?? client).get({
|
|
940
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
941
|
+
url: '/datasets/dcat-us/3.0/',
|
|
942
|
+
...options
|
|
943
|
+
});
|
|
944
|
+
/**
|
|
945
|
+
* Validate Dcat Us3 Catalog
|
|
946
|
+
*
|
|
947
|
+
* Validate the visible DCAT-US Schema v3.0 catalog feed.
|
|
948
|
+
*/
|
|
949
|
+
export const validateDcatUs3CatalogDatasetsDcatUs30ValidationGet = (options) => (options?.client ?? client).get({
|
|
950
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
951
|
+
url: '/datasets/dcat-us/3.0/validation/',
|
|
952
|
+
...options
|
|
953
|
+
});
|
|
876
954
|
/**
|
|
877
955
|
* Get Dcat Catalog
|
|
878
956
|
*
|
|
@@ -896,7 +974,7 @@ export const deleteDatasetRelationshipDatasetsRelationshipsRelationshipIdDelete
|
|
|
896
974
|
/**
|
|
897
975
|
* Delete Dataset Endpoint
|
|
898
976
|
*
|
|
899
|
-
* Delete a dataset with cascade cleanup.
|
|
977
|
+
* Delete a dataset with cascade cleanup. Owner or admin only, requires confirm_title.
|
|
900
978
|
*/
|
|
901
979
|
export const deleteDatasetEndpointDatasetsDatasetIdDelete = (options) => (options.client ?? client).delete({
|
|
902
980
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
@@ -995,6 +1073,26 @@ export const getColumnValuesDatasetsDatasetIdColumnsColumnNameValuesGet = (optio
|
|
|
995
1073
|
url: '/datasets/{dataset_id}/columns/{column_name}/values/',
|
|
996
1074
|
...options
|
|
997
1075
|
});
|
|
1076
|
+
/**
|
|
1077
|
+
* Get Dcat Us3 Record
|
|
1078
|
+
*
|
|
1079
|
+
* DCAT-US Schema v3.0 JSON-LD for a single dataset.
|
|
1080
|
+
*/
|
|
1081
|
+
export const getDcatUs3RecordDatasetsDatasetIdDcatUs30Get = (options) => (options.client ?? client).get({
|
|
1082
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1083
|
+
url: '/datasets/{dataset_id}/dcat-us/3.0/',
|
|
1084
|
+
...options
|
|
1085
|
+
});
|
|
1086
|
+
/**
|
|
1087
|
+
* Validate Dcat Us3 Record
|
|
1088
|
+
*
|
|
1089
|
+
* Validate a single dataset as DCAT-US Schema v3.0.
|
|
1090
|
+
*/
|
|
1091
|
+
export const validateDcatUs3RecordDatasetsDatasetIdDcatUs30ValidationGet = (options) => (options.client ?? client).get({
|
|
1092
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1093
|
+
url: '/datasets/{dataset_id}/dcat-us/3.0/validation/',
|
|
1094
|
+
...options
|
|
1095
|
+
});
|
|
998
1096
|
/**
|
|
999
1097
|
* Get Dcat Record
|
|
1000
1098
|
*
|
|
@@ -1013,6 +1111,12 @@ export const getDcatRecordDatasetsDatasetIdDcatGet = (options) => (options.clien
|
|
|
1013
1111
|
* Local storage: streams the COG file with Content-Type image/tiff.
|
|
1014
1112
|
* S3 storage: returns a 302 redirect to a presigned GET URL (1-hour expiry).
|
|
1015
1113
|
* Accepts standard auth or ?token= JWT query parameter for browser downloads.
|
|
1114
|
+
*
|
|
1115
|
+
* KNOWN-01 (Phase 1071): ``user`` may be None when a no-sub anonymous
|
|
1116
|
+
* download token (issued by POST /auth/download-token/{id} for a public
|
|
1117
|
+
* dataset) is presented on ``?token=``. The function branches on
|
|
1118
|
+
* user-None to enforce public visibility and emit the audit row with
|
|
1119
|
+
* user_id=NULL.
|
|
1016
1120
|
*/
|
|
1017
1121
|
export const downloadCogDatasetsDatasetIdDownloadCogGet = (options) => (options.client ?? client).get({
|
|
1018
1122
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
@@ -1266,11 +1370,21 @@ export const reuploadCommitDatasetsDatasetIdReuploadJobIdCommitPost = (options)
|
|
|
1266
1370
|
* Reupload Preview
|
|
1267
1371
|
*
|
|
1268
1372
|
* Preview the schema diff between old dataset and new upload.
|
|
1373
|
+
*
|
|
1374
|
+
* When the uploaded file contains multiple layers, the response includes
|
|
1375
|
+
* ``all_layers`` (for frontend layer-select UI) and ``previous_source_layer``
|
|
1376
|
+
* (pre-selection hint from the most-recent completed IngestJob for this
|
|
1377
|
+
* dataset). Pass ``layer_name`` in the request body to target a specific
|
|
1378
|
+
* layer; omit it to get the default first-layer metadata.
|
|
1269
1379
|
*/
|
|
1270
1380
|
export const reuploadPreviewDatasetsDatasetIdReuploadJobIdPreviewPost = (options) => (options.client ?? client).post({
|
|
1271
1381
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1272
1382
|
url: '/datasets/{dataset_id}/reupload/{job_id}/preview',
|
|
1273
|
-
...options
|
|
1383
|
+
...options,
|
|
1384
|
+
headers: {
|
|
1385
|
+
'Content-Type': 'application/json',
|
|
1386
|
+
...options.headers
|
|
1387
|
+
}
|
|
1274
1388
|
});
|
|
1275
1389
|
/**
|
|
1276
1390
|
* Get Dataset Rows Endpoint
|
|
@@ -1390,6 +1504,35 @@ export const getVrtStatusDatasetsDatasetIdVrtStatusGet = (options) => (options.c
|
|
|
1390
1504
|
* Health check endpoint for ALB, Docker, and Nginx.
|
|
1391
1505
|
*/
|
|
1392
1506
|
export const healthHealthGet = (options) => (options?.client ?? client).get({ url: '/health', ...options });
|
|
1507
|
+
/**
|
|
1508
|
+
* Commit Fan Out
|
|
1509
|
+
*
|
|
1510
|
+
* Convert a single pending IngestJob into N independent per-layer ingest tasks.
|
|
1511
|
+
*
|
|
1512
|
+
* For multi-layer sources (e.g. GeoPackage with 2+ layers), this endpoint
|
|
1513
|
+
* fans out the original upload into one Procrastinate task per requested
|
|
1514
|
+
* layer, each becoming a separate dataset. The original job is marked
|
|
1515
|
+
* 'fanned_out' (a terminal state).
|
|
1516
|
+
*
|
|
1517
|
+
* Required: original job must be in status='pending'. Each layer_name in
|
|
1518
|
+
* the request body must appear in job.user_metadata['all_layers']. Unknown
|
|
1519
|
+
* layer names return HTTP 422 with the list of unrecognized names.
|
|
1520
|
+
*
|
|
1521
|
+
* Returns HTTP 202 with per-layer outcomes. Partial success is possible:
|
|
1522
|
+
* each layer result carries status='queued' or status='failed' with a
|
|
1523
|
+
* user-safe error message.
|
|
1524
|
+
*
|
|
1525
|
+
* Permission: same as POST /ingest/commit/{job_id} — 'upload' capability.
|
|
1526
|
+
*/
|
|
1527
|
+
export const commitFanOutIngestCommitFanOutJobIdPost = (options) => (options.client ?? client).post({
|
|
1528
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1529
|
+
url: '/ingest/commit-fan-out/{job_id}',
|
|
1530
|
+
...options,
|
|
1531
|
+
headers: {
|
|
1532
|
+
'Content-Type': 'application/json',
|
|
1533
|
+
...options.headers
|
|
1534
|
+
}
|
|
1535
|
+
});
|
|
1393
1536
|
/**
|
|
1394
1537
|
* Commit Import
|
|
1395
1538
|
*
|
|
@@ -1422,6 +1565,20 @@ export const discoverTablesIngestDiscoverGet = (options) => (options?.client ??
|
|
|
1422
1565
|
url: '/ingest/discover/',
|
|
1423
1566
|
...options
|
|
1424
1567
|
});
|
|
1568
|
+
/**
|
|
1569
|
+
* Apply Manifest Endpoint
|
|
1570
|
+
*
|
|
1571
|
+
* Apply a versioned manifest through the ingest service layer.
|
|
1572
|
+
*/
|
|
1573
|
+
export const applyManifestEndpointIngestManifestApplyPost = (options) => (options.client ?? client).post({
|
|
1574
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1575
|
+
url: '/ingest/manifest/apply',
|
|
1576
|
+
...options,
|
|
1577
|
+
headers: {
|
|
1578
|
+
'Content-Type': 'application/json',
|
|
1579
|
+
...options.headers
|
|
1580
|
+
}
|
|
1581
|
+
});
|
|
1425
1582
|
/**
|
|
1426
1583
|
* Preview File
|
|
1427
1584
|
*
|
|
@@ -1742,16 +1899,93 @@ export const createMapEndpointMapsPost = (options) => (options.client ?? client)
|
|
|
1742
1899
|
...options.headers
|
|
1743
1900
|
}
|
|
1744
1901
|
});
|
|
1902
|
+
/**
|
|
1903
|
+
* List Map Icons Endpoint
|
|
1904
|
+
*
|
|
1905
|
+
* List reusable default and uploaded map icons.
|
|
1906
|
+
*/
|
|
1907
|
+
export const listMapIconsEndpointMapsIconsGet = (options) => (options?.client ?? client).get({
|
|
1908
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1909
|
+
url: '/maps/icons',
|
|
1910
|
+
...options
|
|
1911
|
+
});
|
|
1912
|
+
/**
|
|
1913
|
+
* Upload Map Icon Endpoint
|
|
1914
|
+
*
|
|
1915
|
+
* Upload a reusable SVG or PNG icon for symbol layers.
|
|
1916
|
+
*/
|
|
1917
|
+
export const uploadMapIconEndpointMapsIconsPost = (options) => (options.client ?? client).post({
|
|
1918
|
+
...formDataBodySerializer,
|
|
1919
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1920
|
+
url: '/maps/icons',
|
|
1921
|
+
...options,
|
|
1922
|
+
headers: {
|
|
1923
|
+
'Content-Type': null,
|
|
1924
|
+
...options.headers
|
|
1925
|
+
}
|
|
1926
|
+
});
|
|
1927
|
+
/**
|
|
1928
|
+
* Get Map Icon Asset Endpoint
|
|
1929
|
+
*
|
|
1930
|
+
* Serve an uploaded or bundled icon asset by stable icon ID.
|
|
1931
|
+
*
|
|
1932
|
+
* SEC-01 / M-63: SVG responses carry Content-Security-Policy
|
|
1933
|
+
* ``default-src 'none'; sandbox`` so an uploaded SVG cannot fetch other
|
|
1934
|
+
* origins, run scripts, or read auth cookies even if validation is bypassed
|
|
1935
|
+
* in the future. Browsers (Chromium, Firefox) honor the sandbox directive on
|
|
1936
|
+
* image/svg+xml responses. PNG responses use the global SecurityHeadersMiddleware
|
|
1937
|
+
* default ``frame-ancestors 'self'``.
|
|
1938
|
+
*/
|
|
1939
|
+
export const getMapIconAssetEndpointMapsIconsIconIdAssetGet = (options) => (options.client ?? client).get({ url: '/maps/icons/{icon_id}/asset', ...options });
|
|
1940
|
+
/**
|
|
1941
|
+
* Import Map Style Endpoint
|
|
1942
|
+
*
|
|
1943
|
+
* Import a MapLibre style JSON document into a new GeoLens map.
|
|
1944
|
+
*
|
|
1945
|
+
* API-01 (M-05): the request body is now a typed Pydantic model instead of
|
|
1946
|
+
* a bare ``dict``. ``MapStyleImportRequest`` mirrors the MapLibre style
|
|
1947
|
+
* spec top-level keys with ``extra="allow"``, so existing payloads keep
|
|
1948
|
+
* working byte-identically while the OpenAPI schema gains a named class
|
|
1949
|
+
* and the auto-generated SDKs stop emitting an opaque ``Mapping[str, Any]``
|
|
1950
|
+
* request type.
|
|
1951
|
+
*/
|
|
1952
|
+
export const importMapStyleEndpointMapsImportPost = (options) => (options.client ?? client).post({
|
|
1953
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1954
|
+
url: '/maps/import',
|
|
1955
|
+
...options,
|
|
1956
|
+
headers: {
|
|
1957
|
+
'Content-Type': 'application/json',
|
|
1958
|
+
...options.headers
|
|
1959
|
+
}
|
|
1960
|
+
});
|
|
1745
1961
|
/**
|
|
1746
1962
|
* Get Shared Map Endpoint
|
|
1747
1963
|
*
|
|
1748
1964
|
* Get a shared map by token. Optionally authenticated for non-public layers.
|
|
1965
|
+
*
|
|
1966
|
+
* SEC-S08 (Phase 1062-05): emits ``Content-Security-Policy: frame-ancestors
|
|
1967
|
+
* 'self' [<allowed_origins>...]`` on the response, derived from the active
|
|
1968
|
+
* EmbedToken for this map. When no EmbedToken exists or allowed_origins is
|
|
1969
|
+
* empty, defaults to ``frame-ancestors 'self'``. The SecurityHeadersMiddleware
|
|
1970
|
+
* respects this route-level CSP and skips emitting X-Frame-Options: DENY.
|
|
1749
1971
|
*/
|
|
1750
1972
|
export const getSharedMapEndpointMapsSharedTokenGet = (options) => (options.client ?? client).get({
|
|
1751
1973
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1752
1974
|
url: '/maps/shared/{token}',
|
|
1753
1975
|
...options
|
|
1754
1976
|
});
|
|
1977
|
+
/**
|
|
1978
|
+
* Get Geolens Sprite Index Endpoint
|
|
1979
|
+
*
|
|
1980
|
+
* Serve the stable GeoLens sprite JSON index.
|
|
1981
|
+
*/
|
|
1982
|
+
export const getGeolensSpriteIndexEndpointMapsSpritesGeolensJsonGet = (options) => (options?.client ?? client).get({ url: '/maps/sprites/geolens.json', ...options });
|
|
1983
|
+
/**
|
|
1984
|
+
* Get Geolens Sprite Png Endpoint
|
|
1985
|
+
*
|
|
1986
|
+
* Serve the generated GeoLens sprite sheet for stable icon IDs.
|
|
1987
|
+
*/
|
|
1988
|
+
export const getGeolensSpritePngEndpointMapsSpritesGeolensPngGet = (options) => (options?.client ?? client).get({ url: '/maps/sprites/geolens.png', ...options });
|
|
1755
1989
|
/**
|
|
1756
1990
|
* Delete Map Endpoint
|
|
1757
1991
|
*
|
|
@@ -1786,6 +2020,16 @@ export const updateMapEndpointMapsMapIdPut = (options) => (options.client ?? cli
|
|
|
1786
2020
|
...options.headers
|
|
1787
2021
|
}
|
|
1788
2022
|
});
|
|
2023
|
+
/**
|
|
2024
|
+
* Get Map Access Endpoint
|
|
2025
|
+
*
|
|
2026
|
+
* Return server-confirmed route access for the map viewer gate.
|
|
2027
|
+
*/
|
|
2028
|
+
export const getMapAccessEndpointMapsMapIdAccessGet = (options) => (options.client ?? client).get({
|
|
2029
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2030
|
+
url: '/maps/{map_id}/access/',
|
|
2031
|
+
...options
|
|
2032
|
+
});
|
|
1789
2033
|
/**
|
|
1790
2034
|
* Duplicate Map Endpoint
|
|
1791
2035
|
*
|
|
@@ -1810,6 +2054,9 @@ export const listEmbedTokensEndpointMapsMapIdEmbedTokensGet = (options) => (opti
|
|
|
1810
2054
|
* Create Embed Token Endpoint
|
|
1811
2055
|
*
|
|
1812
2056
|
* Create an embed token scoped to a map's current layers.
|
|
2057
|
+
*
|
|
2058
|
+
* Community supports the default 30-day unrestricted token. Custom lifetimes
|
|
2059
|
+
* and non-empty origin restrictions require the enterprise edition.
|
|
1813
2060
|
*/
|
|
1814
2061
|
export const createEmbedTokenEndpointMapsMapIdEmbedTokensPost = (options) => (options.client ?? client).post({
|
|
1815
2062
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
@@ -1834,6 +2081,8 @@ export const revokeEmbedTokenEndpointMapsMapIdEmbedTokensTokenIdDelete = (option
|
|
|
1834
2081
|
* Update Embed Token Endpoint
|
|
1835
2082
|
*
|
|
1836
2083
|
* Update embed token allowed_origins.
|
|
2084
|
+
*
|
|
2085
|
+
* Null clears restrictions. Non-empty origin restrictions require the enterprise edition.
|
|
1837
2086
|
*/
|
|
1838
2087
|
export const updateEmbedTokenEndpointMapsMapIdEmbedTokensTokenIdPatch = (options) => (options.client ?? client).patch({
|
|
1839
2088
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
@@ -1844,14 +2093,78 @@ export const updateEmbedTokenEndpointMapsMapIdEmbedTokensTokenIdPatch = (options
|
|
|
1844
2093
|
...options.headers
|
|
1845
2094
|
}
|
|
1846
2095
|
});
|
|
2096
|
+
/**
|
|
2097
|
+
* Get Map History Endpoint
|
|
2098
|
+
*
|
|
2099
|
+
* Return recent builder edit history for a map.
|
|
2100
|
+
*/
|
|
2101
|
+
export const getMapHistoryEndpointMapsMapIdHistoryGet = (options) => (options.client ?? client).get({
|
|
2102
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2103
|
+
url: '/maps/{map_id}/history',
|
|
2104
|
+
...options
|
|
2105
|
+
});
|
|
2106
|
+
/**
|
|
2107
|
+
* Patch Map Layers Endpoint
|
|
2108
|
+
*
|
|
2109
|
+
* Apply incremental layer additions, patches, removals, and ordering.
|
|
2110
|
+
*
|
|
2111
|
+
* v13.14 fixup: declared on both slash variants directly (mirrors the
|
|
2112
|
+
* Phase 280 fix on POST). FastAPI's default redirect_slashes builds a
|
|
2113
|
+
* relative Location header that resolves against the request's Host
|
|
2114
|
+
* header, which would leak the in-container ``api:8000`` hostname
|
|
2115
|
+
* through Vite's dev proxy on a 307 redirect. The canonical
|
|
2116
|
+
* (OpenAPI-published) form is the no-slash sub-collection convention
|
|
2117
|
+
* documented in the GeoLens API guide (https://docs.getgeolens.com/guides/api/);
|
|
2118
|
+
* the trailing-slash form is a hidden alias.
|
|
2119
|
+
*/
|
|
2120
|
+
export const patchMapLayersEndpointMapsMapIdLayersPatch = (options) => (options.client ?? client).patch({
|
|
2121
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2122
|
+
url: '/maps/{map_id}/layers',
|
|
2123
|
+
...options,
|
|
2124
|
+
headers: {
|
|
2125
|
+
'Content-Type': 'application/json',
|
|
2126
|
+
...options.headers
|
|
2127
|
+
}
|
|
2128
|
+
});
|
|
1847
2129
|
/**
|
|
1848
2130
|
* Add Layer Endpoint
|
|
1849
2131
|
*
|
|
1850
2132
|
* Add a layer to a map.
|
|
2133
|
+
*
|
|
2134
|
+
* Phase 280: declared on both slash variants directly so neither emits a
|
|
2135
|
+
* 307. FastAPI's default redirect_slashes builds a relative Location
|
|
2136
|
+
* header that resolves against the request's Host header, leaking the
|
|
2137
|
+
* in-container ``api:8000`` hostname through Vite's dev proxy. The
|
|
2138
|
+
* canonical (OpenAPI-published) form is the no-slash sub-collection
|
|
2139
|
+
* convention documented in the GeoLens API guide
|
|
2140
|
+
* (https://docs.getgeolens.com/guides/api/); the trailing-slash form is a
|
|
2141
|
+
* hidden alias for callers that send the slash.
|
|
1851
2142
|
*/
|
|
1852
2143
|
export const addLayerEndpointMapsMapIdLayersPost = (options) => (options.client ?? client).post({
|
|
1853
2144
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1854
|
-
url: '/maps/{map_id}/layers
|
|
2145
|
+
url: '/maps/{map_id}/layers',
|
|
2146
|
+
...options,
|
|
2147
|
+
headers: {
|
|
2148
|
+
'Content-Type': 'application/json',
|
|
2149
|
+
...options.headers
|
|
2150
|
+
}
|
|
2151
|
+
});
|
|
2152
|
+
/**
|
|
2153
|
+
* Bulk Delete Layers Endpoint
|
|
2154
|
+
*
|
|
2155
|
+
* Batch-delete multiple layers from a map in a single request.
|
|
2156
|
+
*
|
|
2157
|
+
* Milestone exception (v1010 Phase 1047): one additive endpoint permitted
|
|
2158
|
+
* per REQUIREMENTS.md Out-of-Scope to reduce N sequential DELETEs to one
|
|
2159
|
+
* batched call for bulk-delete UX (PB-03 / PERF-03).
|
|
2160
|
+
*
|
|
2161
|
+
* Returns 200 with deleted/failed arrays in all cases (partial failures
|
|
2162
|
+
* surface inline, not as HTTP errors). Full rollback is the caller's
|
|
2163
|
+
* responsibility if all ids fail.
|
|
2164
|
+
*/
|
|
2165
|
+
export const bulkDeleteLayersEndpointMapsMapIdLayersBulkDeletePost = (options) => (options.client ?? client).post({
|
|
2166
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2167
|
+
url: '/maps/{map_id}/layers/bulk-delete',
|
|
1855
2168
|
...options,
|
|
1856
2169
|
headers: {
|
|
1857
2170
|
'Content-Type': 'application/json',
|
|
@@ -1868,6 +2181,45 @@ export const removeLayerEndpointMapsMapIdLayersLayerIdDelete = (options) => (opt
|
|
|
1868
2181
|
url: '/maps/{map_id}/layers/{layer_id}',
|
|
1869
2182
|
...options
|
|
1870
2183
|
});
|
|
2184
|
+
/**
|
|
2185
|
+
* Get Og Image
|
|
2186
|
+
*
|
|
2187
|
+
* Serve the OG social-card image from storage (visibility-checked).
|
|
2188
|
+
*
|
|
2189
|
+
* Uses ``public, max-age=86400`` for public maps — OG images change
|
|
2190
|
+
* less often than thumbnails (which use 3600s). Mirrors get_thumbnail
|
|
2191
|
+
* but reads ``og_image_uri`` and uses the ``maps/og-images/`` key space.
|
|
2192
|
+
*/
|
|
2193
|
+
export const getOgImageMapsMapIdOgImageGet = (options) => (options.client ?? client).get({
|
|
2194
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2195
|
+
url: '/maps/{map_id}/og-image/',
|
|
2196
|
+
...options
|
|
2197
|
+
});
|
|
2198
|
+
/**
|
|
2199
|
+
* Upload Og Image
|
|
2200
|
+
*
|
|
2201
|
+
* Upload a base64 OG social-card image (up to 750KB) for a map.
|
|
2202
|
+
*
|
|
2203
|
+
* Accepts a data:image/ URI, decodes the base64 payload, validates the
|
|
2204
|
+
* bytes are a real image (PIL verify), writes to storage under
|
|
2205
|
+
* ``maps/og-images/{map_id}.{ext}``, and persists the storage key to
|
|
2206
|
+
* ``catalog.maps.og_image_uri``.
|
|
2207
|
+
*
|
|
2208
|
+
* Intended for 1200x630 JPEG captures (SHARE-08). The payload cap
|
|
2209
|
+
* (750KB) is larger than the thumbnail cap (100KB) to accommodate the
|
|
2210
|
+
* larger canvas export — they are separate schemas (OgImageUploadRequest
|
|
2211
|
+
* vs ThumbnailUploadRequest) to avoid relaxing the locked thumbnail
|
|
2212
|
+
* contract. Auth and PIL-verify rules are identical to upload_thumbnail.
|
|
2213
|
+
*/
|
|
2214
|
+
export const uploadOgImageMapsMapIdOgImagePut = (options) => (options.client ?? client).put({
|
|
2215
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2216
|
+
url: '/maps/{map_id}/og-image/',
|
|
2217
|
+
...options,
|
|
2218
|
+
headers: {
|
|
2219
|
+
'Content-Type': 'application/json',
|
|
2220
|
+
...options.headers
|
|
2221
|
+
}
|
|
2222
|
+
});
|
|
1871
2223
|
/**
|
|
1872
2224
|
* Revoke Map Share Endpoint
|
|
1873
2225
|
*
|
|
@@ -1892,6 +2244,8 @@ export const getMapShareTokenEndpointMapsMapIdShareGet = (options) => (options.c
|
|
|
1892
2244
|
* Update Map Share Token Endpoint
|
|
1893
2245
|
*
|
|
1894
2246
|
* Update expiration on an existing share token. Owner or admin only.
|
|
2247
|
+
*
|
|
2248
|
+
* Null clears expiration.
|
|
1895
2249
|
*/
|
|
1896
2250
|
export const updateMapShareTokenEndpointMapsMapIdSharePatch = (options) => (options.client ?? client).patch({
|
|
1897
2251
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
@@ -1916,6 +2270,16 @@ export const shareMapEndpointMapsMapIdSharePost = (options) => (options.client ?
|
|
|
1916
2270
|
...options.headers
|
|
1917
2271
|
}
|
|
1918
2272
|
});
|
|
2273
|
+
/**
|
|
2274
|
+
* Export Map Style Endpoint
|
|
2275
|
+
*
|
|
2276
|
+
* Export a saved map as a complete MapLibre style JSON document.
|
|
2277
|
+
*/
|
|
2278
|
+
export const exportMapStyleEndpointMapsMapIdStyleJsonGet = (options) => (options.client ?? client).get({
|
|
2279
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2280
|
+
url: '/maps/{map_id}/style.json',
|
|
2281
|
+
...options
|
|
2282
|
+
});
|
|
1919
2283
|
/**
|
|
1920
2284
|
* Get Thumbnail
|
|
1921
2285
|
*
|
|
@@ -1935,12 +2299,11 @@ export const getThumbnailMapsMapIdThumbnailGet = (options) => (options.client ??
|
|
|
1935
2299
|
* bytes to the configured storage provider, and stores the storage key.
|
|
1936
2300
|
*/
|
|
1937
2301
|
export const uploadThumbnailMapsMapIdThumbnailPut = (options) => (options.client ?? client).put({
|
|
1938
|
-
bodySerializer: null,
|
|
1939
2302
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1940
2303
|
url: '/maps/{map_id}/thumbnail/',
|
|
1941
2304
|
...options,
|
|
1942
2305
|
headers: {
|
|
1943
|
-
'Content-Type': '
|
|
2306
|
+
'Content-Type': 'application/json',
|
|
1944
2307
|
...options.headers
|
|
1945
2308
|
}
|
|
1946
2309
|
});
|
|
@@ -2289,6 +2652,14 @@ export const getApiKeyStatusSettingsApiKeyStatusGet = (options) => (options?.cli
|
|
|
2289
2652
|
* Basemaps with ``{api_key}`` in the URL are filtered out when no key is
|
|
2290
2653
|
* configured. When a key IS set the placeholder is resolved server-side.
|
|
2291
2654
|
* The response uses ``BasemapPublicResponse`` which excludes ``api_key``.
|
|
2655
|
+
*
|
|
2656
|
+
* SEC-S10 (2026-05-20 audit): the resolved ``url`` field intentionally
|
|
2657
|
+
* includes the substituted ``api_key`` value when configured. Client-side
|
|
2658
|
+
* tile-provider keys (Mapbox, Stadia, MapTiler) are designed for browser
|
|
2659
|
+
* exposure and the frontend MUST receive them to load tiles. Do NOT put a
|
|
2660
|
+
* backend-only commercial-tier key in this field — rotate the key in the
|
|
2661
|
+
* provider dashboard if it is misused. Rate-limited via
|
|
2662
|
+
* ``_basemap_proxy_rate_limit`` to cap replay-cost from anonymous clients.
|
|
2292
2663
|
*/
|
|
2293
2664
|
export const getBasemapsSettingsBasemapsGet = (options) => (options?.client ?? client).get({ url: '/settings/basemaps/', ...options });
|
|
2294
2665
|
/**
|
|
@@ -2325,11 +2696,32 @@ export const detectEmbeddingDimsSettingsDetectEmbeddingDimsPost = (options) => (
|
|
|
2325
2696
|
*/
|
|
2326
2697
|
export const editionInfoSettingsEditionGet = (options) => (options?.client ?? client).get({ url: '/settings/edition/', ...options });
|
|
2327
2698
|
/**
|
|
2328
|
-
* Get Enabled
|
|
2699
|
+
* Get Enabled Plugins
|
|
2329
2700
|
*
|
|
2330
|
-
* Return enabled
|
|
2701
|
+
* Return enabled plugin IDs. null = no restriction (all shown), [] = none, [...ids] = only those.
|
|
2331
2702
|
*/
|
|
2332
|
-
export const
|
|
2703
|
+
export const getEnabledPluginsSettingsEnabledPluginsGet = (options) => (options?.client ?? client).get({ url: '/settings/enabled-plugins/', ...options });
|
|
2704
|
+
/**
|
|
2705
|
+
* Get Enterprise Only Tabs
|
|
2706
|
+
*
|
|
2707
|
+
* Return the canonical list of Settings tab keys that are enterprise-only.
|
|
2708
|
+
*
|
|
2709
|
+
* Phase 279 ADMIN-03 (M-03): single source of truth for enterprise-only
|
|
2710
|
+
* Settings tabs. The frontend AdminSidebar uses this to conditionally render
|
|
2711
|
+
* the tabs in community vs enterprise editions. The backend
|
|
2712
|
+
* ``_require_enterprise_for_key`` gate uses the same set to 404 community
|
|
2713
|
+
* attempts at writing enterprise-tab settings — keeping these aligned
|
|
2714
|
+
* prevents silent UX drift.
|
|
2715
|
+
*
|
|
2716
|
+
* Note: not gated by ``require_enterprise``. Community callers must be able
|
|
2717
|
+
* to read the list to render their own sidebar correctly (the response tells
|
|
2718
|
+
* them which tabs to HIDE).
|
|
2719
|
+
*/
|
|
2720
|
+
export const getEnterpriseOnlyTabsSettingsEnterpriseTabsGet = (options) => (options?.client ?? client).get({
|
|
2721
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2722
|
+
url: '/settings/enterprise-tabs/',
|
|
2723
|
+
...options
|
|
2724
|
+
});
|
|
2333
2725
|
/**
|
|
2334
2726
|
* Get Feature Flags
|
|
2335
2727
|
*
|
|
@@ -2448,13 +2840,21 @@ export const getCollectionStacCollectionsCollectionIdGet = (options) => (options
|
|
|
2448
2840
|
*
|
|
2449
2841
|
* List STAC Items within a collection.
|
|
2450
2842
|
*/
|
|
2451
|
-
export const getCollectionItemsStacCollectionsCollectionIdItemsGet = (options) => (options.client ?? client).get({
|
|
2843
|
+
export const getCollectionItemsStacCollectionsCollectionIdItemsGet = (options) => (options.client ?? client).get({
|
|
2844
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2845
|
+
url: '/stac/collections/{collection_id}/items',
|
|
2846
|
+
...options
|
|
2847
|
+
});
|
|
2452
2848
|
/**
|
|
2453
2849
|
* Get Collection Item
|
|
2454
2850
|
*
|
|
2455
2851
|
* Get a single STAC Item within a collection.
|
|
2456
2852
|
*/
|
|
2457
|
-
export const getCollectionItemStacCollectionsCollectionIdItemsItemIdGet = (options) => (options.client ?? client).get({
|
|
2853
|
+
export const getCollectionItemStacCollectionsCollectionIdItemsItemIdGet = (options) => (options.client ?? client).get({
|
|
2854
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2855
|
+
url: '/stac/collections/{collection_id}/items/{item_id}',
|
|
2856
|
+
...options
|
|
2857
|
+
});
|
|
2458
2858
|
/**
|
|
2459
2859
|
* Conformance
|
|
2460
2860
|
*
|
|
@@ -2466,19 +2866,28 @@ export const conformanceStacConformanceGet = (options) => (options?.client ?? cl
|
|
|
2466
2866
|
*
|
|
2467
2867
|
* Get a single STAC Item by dataset ID.
|
|
2468
2868
|
*/
|
|
2469
|
-
export const getItemStacItemsItemIdGet = (options) => (options.client ?? client).get({
|
|
2869
|
+
export const getItemStacItemsItemIdGet = (options) => (options.client ?? client).get({
|
|
2870
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2871
|
+
url: '/stac/items/{item_id}',
|
|
2872
|
+
...options
|
|
2873
|
+
});
|
|
2470
2874
|
/**
|
|
2471
2875
|
* Search Get
|
|
2472
2876
|
*
|
|
2473
2877
|
* STAC Item Search (GET).
|
|
2474
2878
|
*/
|
|
2475
|
-
export const searchGetStacSearchGet = (options) => (options?.client ?? client).get({
|
|
2879
|
+
export const searchGetStacSearchGet = (options) => (options?.client ?? client).get({
|
|
2880
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2881
|
+
url: '/stac/search',
|
|
2882
|
+
...options
|
|
2883
|
+
});
|
|
2476
2884
|
/**
|
|
2477
2885
|
* Search Post
|
|
2478
2886
|
*
|
|
2479
2887
|
* STAC Item Search (POST with JSON body).
|
|
2480
2888
|
*/
|
|
2481
2889
|
export const searchPostStacSearchPost = (options) => (options.client ?? client).post({
|
|
2890
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2482
2891
|
url: '/stac/search',
|
|
2483
2892
|
...options,
|
|
2484
2893
|
headers: {
|
|
@@ -2486,6 +2895,22 @@ export const searchPostStacSearchPost = (options) => (options.client ?? client).
|
|
|
2486
2895
|
...options.headers
|
|
2487
2896
|
}
|
|
2488
2897
|
});
|
|
2898
|
+
/**
|
|
2899
|
+
* Cluster Tile Endpoint
|
|
2900
|
+
*
|
|
2901
|
+
* Serve a server-side clustered vector tile for point datasets.
|
|
2902
|
+
*
|
|
2903
|
+
* URL pattern: /tiles/clusters/data.{table_name}/{z}/{x}/{y}.pbf
|
|
2904
|
+
*
|
|
2905
|
+
* This route deliberately reuses the normal vector tile auth model:
|
|
2906
|
+
* public datasets are readable directly, non-public datasets require either
|
|
2907
|
+
* valid HMAC tile params or a valid embed token scoped to the dataset.
|
|
2908
|
+
*/
|
|
2909
|
+
export const clusterTileEndpointTilesClustersTablePathZXYPbfGet = (options) => (options.client ?? client).get({
|
|
2910
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
2911
|
+
url: '/tiles/clusters/{table_path}/{z}/{x}/{y}.pbf',
|
|
2912
|
+
...options
|
|
2913
|
+
});
|
|
2489
2914
|
/**
|
|
2490
2915
|
* Raster Auth Check
|
|
2491
2916
|
*
|
|
@@ -2513,6 +2938,23 @@ export const rasterAuthCheckTilesRasterAuthCheckGet = (options) => (options.clie
|
|
|
2513
2938
|
* Used by Vite dev proxy and as a fallback for deployments without nginx.
|
|
2514
2939
|
* Production deployments with nginx should use the nginx raster-tiles path
|
|
2515
2940
|
* for better caching and performance.
|
|
2941
|
+
*
|
|
2942
|
+
* colormap_name: Optional Titiler colormap for single-band display. Validated
|
|
2943
|
+
* against _ALLOWED_COLORMAPS (T-1140-01). Gray is the Titiler default for
|
|
2944
|
+
* single-band — passing gray is a no-op (not forwarded). colormap_name is not
|
|
2945
|
+
* forwarded for DEM layers (render_params starts with 'algorithm=').
|
|
2946
|
+
*
|
|
2947
|
+
* stretch: Optional stretch strategy. percentile/stddev compute a stats-based
|
|
2948
|
+
* rescale from Titiler band statistics. Multi-band rasters produce one rescale=
|
|
2949
|
+
* fragment per band (up to 3, RASTER-STRETCH-03).
|
|
2950
|
+
*
|
|
2951
|
+
* pmin/pmax: Configurable percentile clip bounds (default 2/98). Must satisfy
|
|
2952
|
+
* 0 <= pmin < pmax <= 100. Forwarded as repeated p= params to /cog/statistics.
|
|
2953
|
+
* The _band_stats_cache key includes pmin/pmax so different bounds never serve
|
|
2954
|
+
* stale cached stats (RASTER-STRETCH-UI-01 / Phase 1153 cache-key isolation).
|
|
2955
|
+
*
|
|
2956
|
+
* sigma: Standard-deviation multiplier for stretch=stddev (default 2.0).
|
|
2957
|
+
* Must be > 0.
|
|
2516
2958
|
*/
|
|
2517
2959
|
export const rasterTileProxyTilesRasterProxyDatasetIdZXYFmtGet = (options) => (options.client ?? client).get({
|
|
2518
2960
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
@@ -2569,6 +3011,19 @@ export const getTileTokensBatchTilesTokensPost = (options) => (options.client ??
|
|
|
2569
3011
|
*
|
|
2570
3012
|
* Non-public datasets require valid HMAC signature params (sig, exp, scope).
|
|
2571
3013
|
* Public datasets can be accessed without any signature.
|
|
3014
|
+
*
|
|
3015
|
+
* `cols` is a runtime opt-in for additional attribute columns the client
|
|
3016
|
+
* needs at all zooms (e.g. data-driven styling columns referenced by
|
|
3017
|
+
* MapLibre paint expressions). Format: comma-separated column names.
|
|
3018
|
+
* Each name is validated against the dataset column list before it
|
|
3019
|
+
* flows into the MVT projection; invalid names are silently dropped.
|
|
3020
|
+
* Does not need to be signed — `sig` already authorizes dataset
|
|
3021
|
+
* access and `cols` can only project columns the caller already has
|
|
3022
|
+
* REST access to.
|
|
2572
3023
|
*/
|
|
2573
|
-
export const tileEndpointTilesTablePathZXYPbfGet = (options) => (options.client ?? client).get({
|
|
3024
|
+
export const tileEndpointTilesTablePathZXYPbfGet = (options) => (options.client ?? client).get({
|
|
3025
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
3026
|
+
url: '/tiles/{table_path}/{z}/{x}/{y}.pbf',
|
|
3027
|
+
...options
|
|
3028
|
+
});
|
|
2574
3029
|
//# sourceMappingURL=sdk.gen.js.map
|