@carto/api-client 0.4.2-alpha.0 → 0.4.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/CHANGELOG.md +9 -1
- package/build/api/query.d.ts +1 -1
- package/build/api-client.cjs +990 -1163
- package/build/api-client.cjs.map +1 -1
- package/build/api-client.modern.js +876 -1044
- package/build/api-client.modern.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/models/model.d.ts +1 -7
- package/build/sources/boundary-query-source.d.ts +2 -1
- package/build/sources/boundary-table-source.d.ts +2 -1
- package/build/sources/h3-query-source.d.ts +2 -1
- package/build/sources/h3-table-source.d.ts +2 -1
- package/build/sources/h3-tileset-source.d.ts +2 -1
- package/build/sources/index.d.ts +13 -14
- package/build/sources/quadbin-query-source.d.ts +2 -1
- package/build/sources/quadbin-table-source.d.ts +2 -1
- package/build/sources/quadbin-tileset-source.d.ts +2 -1
- package/build/sources/raster-source.d.ts +2 -1
- package/build/sources/types.d.ts +57 -36
- package/build/sources/vector-query-source.d.ts +2 -1
- package/build/sources/vector-table-source.d.ts +2 -1
- package/build/sources/vector-tileset-source.d.ts +2 -1
- package/build/utils.d.ts +1 -1
- package/build/widget-sources/types.d.ts +1 -8
- package/build/widget-sources/widget-base-source.d.ts +1 -0
- package/package.json +1 -1
- package/src/api/query.ts +2 -1
- package/src/index.ts +1 -36
- package/src/models/model.ts +24 -47
- package/src/sources/boundary-query-source.ts +4 -2
- package/src/sources/boundary-table-source.ts +4 -2
- package/src/sources/h3-query-source.ts +4 -8
- package/src/sources/h3-table-source.ts +4 -7
- package/src/sources/h3-tileset-source.ts +4 -2
- package/src/sources/index.ts +54 -24
- package/src/sources/quadbin-query-source.ts +5 -7
- package/src/sources/quadbin-table-source.ts +5 -7
- package/src/sources/quadbin-tileset-source.ts +4 -2
- package/src/sources/raster-source.ts +4 -2
- package/src/sources/types.ts +63 -41
- package/src/sources/vector-query-source.ts +10 -5
- package/src/sources/vector-table-source.ts +10 -5
- package/src/sources/vector-tileset-source.ts +4 -2
- package/src/utils.ts +1 -1
- package/src/widget-sources/types.ts +1 -9
- package/src/widget-sources/widget-base-source.ts +21 -190
- package/build/spatial-index.d.ts +0 -11
- package/src/spatial-index.ts +0 -119
package/build/index.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ export * from './client.js';
|
|
|
2
2
|
export * from './constants.js';
|
|
3
3
|
export * from './filters.js';
|
|
4
4
|
export * from './geo.js';
|
|
5
|
+
export * from './sources/index.js';
|
|
5
6
|
export * from './widget-sources/index.js';
|
|
6
7
|
export * from './types.js';
|
|
7
8
|
export { APIErrorContext, APIRequestType, CartoAPIError, QueryOptions, buildPublicMapUrl, // Internal, but required for fetchMap().
|
|
8
9
|
buildStatsUrl, // Internal, but required for fetchMap().
|
|
9
10
|
query, requestWithParameters, } from './api/index.js';
|
|
10
|
-
export { BoundaryQuerySourceOptions, BoundaryTableSourceOptions, GeojsonResult, H3QuerySourceOptions, H3TableSourceOptions, H3TilesetSourceOptions, JsonResult, QuadbinQuerySourceOptions, QuadbinTableSourceOptions, QuadbinTilesetSourceOptions, QueryResult, QuerySourceOptions, RasterSourceOptions, SOURCE_DEFAULTS, SourceOptions, TableSourceOptions, TilejsonResult, TilesetSourceOptions, VectorQuerySourceOptions, VectorTableSourceOptions, VectorTilesetSourceOptions, boundaryQuerySource, boundaryTableSource, h3QuerySource, h3TableSource, h3TilesetSource, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, rasterSource, vectorQuerySource, vectorTableSource, vectorTilesetSource, } from './sources/index.js';
|
package/build/models/model.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Filter, FilterLogicalOperator, MapType, QueryParameters, SpatialFilter } from '../types.js';
|
|
2
2
|
import { ModelRequestOptions } from './common.js';
|
|
3
3
|
import { ApiVersion } from '../constants.js';
|
|
4
|
-
import { SpatialDataType, SpatialFilterPolyfillMode } from '../sources/types.js';
|
|
5
4
|
/** @internalRemarks Source: @carto/react-api */
|
|
6
5
|
declare const AVAILABLE_MODELS: readonly ["category", "histogram", "formula", "pick", "timeseries", "range", "scatterplot", "table"];
|
|
7
6
|
export type Model = (typeof AVAILABLE_MODELS)[number];
|
|
@@ -15,14 +14,9 @@ export interface ModelSource {
|
|
|
15
14
|
data: string;
|
|
16
15
|
filters?: Record<string, Filter>;
|
|
17
16
|
filtersLogicalOperator?: FilterLogicalOperator;
|
|
17
|
+
geoColumn?: string;
|
|
18
18
|
spatialFilter?: SpatialFilter;
|
|
19
19
|
queryParameters?: QueryParameters;
|
|
20
|
-
spatialDataColumn?: string;
|
|
21
|
-
spatialDataType?: SpatialDataType;
|
|
22
|
-
spatialFiltersResolution?: number;
|
|
23
|
-
spatialFiltersMode?: SpatialFilterPolyfillMode;
|
|
24
|
-
/** original resolution of the spatial index data as stored in the DW */
|
|
25
|
-
dataResolution?: number;
|
|
26
20
|
}
|
|
27
21
|
/**
|
|
28
22
|
* Execute a SQL model request.
|
|
@@ -6,4 +6,5 @@ export type BoundaryQuerySourceOptions = SourceOptions & FilterOptions & {
|
|
|
6
6
|
propertiesSqlQuery: string;
|
|
7
7
|
queryParameters?: QueryParameters;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
9
|
+
export type BoundaryQuerySourceResponse = TilejsonResult;
|
|
10
|
+
export declare const boundaryQuerySource: (options: BoundaryQuerySourceOptions) => Promise<BoundaryQuerySourceResponse>;
|
|
@@ -4,4 +4,5 @@ export type BoundaryTableSourceOptions = SourceOptions & FilterOptions & {
|
|
|
4
4
|
columns?: string[];
|
|
5
5
|
propertiesTableName: string;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type BoundaryTableSourceResponse = TilejsonResult;
|
|
8
|
+
export declare const boundaryTableSource: (options: BoundaryTableSourceOptions) => Promise<BoundaryTableSourceResponse>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WidgetQuerySourceResult } from '../widget-sources';
|
|
2
2
|
import type { AggregationOptions, FilterOptions, QuerySourceOptions, SourceOptions, TilejsonResult } from './types';
|
|
3
3
|
export type H3QuerySourceOptions = SourceOptions & QuerySourceOptions & AggregationOptions & FilterOptions;
|
|
4
|
-
export
|
|
4
|
+
export type H3QuerySourceResponse = TilejsonResult & WidgetQuerySourceResult;
|
|
5
|
+
export declare const h3QuerySource: (options: H3QuerySourceOptions) => Promise<H3QuerySourceResponse>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WidgetTableSourceResult } from '../widget-sources';
|
|
2
2
|
import type { AggregationOptions, FilterOptions, SourceOptions, TableSourceOptions, TilejsonResult } from './types';
|
|
3
3
|
export type H3TableSourceOptions = SourceOptions & TableSourceOptions & AggregationOptions & FilterOptions;
|
|
4
|
-
export
|
|
4
|
+
export type H3TableSourceResponse = TilejsonResult & WidgetTableSourceResult;
|
|
5
|
+
export declare const h3TableSource: (options: H3TableSourceOptions) => Promise<H3TableSourceResponse>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { SourceOptions, TilejsonResult, TilesetSourceOptions } from './types';
|
|
2
2
|
export type H3TilesetSourceOptions = SourceOptions & TilesetSourceOptions;
|
|
3
|
-
export
|
|
3
|
+
export type H3TilesetSourceResponse = TilejsonResult;
|
|
4
|
+
export declare const h3TilesetSource: (options: H3TilesetSourceOptions) => Promise<H3TilesetSourceResponse>;
|
package/build/sources/index.d.ts
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
export { SOURCE_DEFAULTS } from './base-source';
|
|
2
|
-
export type {
|
|
2
|
+
export type { GeojsonResult, JsonResult, QueryResult, QuerySourceOptions, RasterBandColorinterp, RasterMetadata, RasterMetadataBand, RasterMetadataBandStats, SourceOptions, TableSourceOptions, TilejsonResult, TilesetSourceOptions, VectorLayer, } from './types';
|
|
3
3
|
export { boundaryQuerySource } from './boundary-query-source';
|
|
4
|
-
export type { BoundaryQuerySourceOptions } from './boundary-query-source';
|
|
4
|
+
export type { BoundaryQuerySourceOptions, BoundaryQuerySourceResponse, } from './boundary-query-source';
|
|
5
5
|
export { boundaryTableSource } from './boundary-table-source';
|
|
6
|
-
export type { BoundaryTableSourceOptions } from './boundary-table-source';
|
|
6
|
+
export type { BoundaryTableSourceOptions, BoundaryTableSourceResponse, } from './boundary-table-source';
|
|
7
7
|
export { h3QuerySource } from './h3-query-source';
|
|
8
|
-
export type { H3QuerySourceOptions } from './h3-query-source';
|
|
8
|
+
export type { H3QuerySourceOptions, H3QuerySourceResponse, } from './h3-query-source';
|
|
9
9
|
export { h3TableSource } from './h3-table-source';
|
|
10
|
-
export type { H3TableSourceOptions } from './h3-table-source';
|
|
10
|
+
export type { H3TableSourceOptions, H3TableSourceResponse, } from './h3-table-source';
|
|
11
11
|
export { h3TilesetSource } from './h3-tileset-source';
|
|
12
|
-
export type { H3TilesetSourceOptions } from './h3-tileset-source';
|
|
12
|
+
export type { H3TilesetSourceOptions, H3TilesetSourceResponse, } from './h3-tileset-source';
|
|
13
13
|
export { rasterSource } from './raster-source';
|
|
14
|
-
export type { RasterSourceOptions } from './raster-source';
|
|
14
|
+
export type { RasterSourceOptions, RasterSourceResponse } from './raster-source';
|
|
15
15
|
export { quadbinQuerySource } from './quadbin-query-source';
|
|
16
|
-
export type { QuadbinQuerySourceOptions } from './quadbin-query-source';
|
|
16
|
+
export type { QuadbinQuerySourceOptions, QuadbinQuerySourceResponse, } from './quadbin-query-source';
|
|
17
17
|
export { quadbinTableSource } from './quadbin-table-source';
|
|
18
|
-
export type { QuadbinTableSourceOptions } from './quadbin-table-source';
|
|
18
|
+
export type { QuadbinTableSourceOptions, QuadbinTableSourceResponse, } from './quadbin-table-source';
|
|
19
19
|
export { quadbinTilesetSource } from './quadbin-tileset-source';
|
|
20
|
-
export type { QuadbinTilesetSourceOptions } from './quadbin-tileset-source';
|
|
20
|
+
export type { QuadbinTilesetSourceOptions, QuadbinTilesetSourceResponse, } from './quadbin-tileset-source';
|
|
21
21
|
export { vectorQuerySource } from './vector-query-source';
|
|
22
|
-
export type { VectorQuerySourceOptions } from './vector-query-source';
|
|
22
|
+
export type { VectorQuerySourceOptions, VectorQuerySourceResponse, } from './vector-query-source';
|
|
23
23
|
export { vectorTableSource } from './vector-table-source';
|
|
24
|
-
export type { VectorTableSourceOptions } from './vector-table-source';
|
|
24
|
+
export type { VectorTableSourceOptions, VectorTableSourceResponse, } from './vector-table-source';
|
|
25
25
|
export { vectorTilesetSource } from './vector-tileset-source';
|
|
26
|
-
export type { VectorTilesetSourceOptions } from './vector-tileset-source';
|
|
27
|
-
export type { SourceOptions, QuerySourceOptions, TableSourceOptions, TilesetSourceOptions, } from './types';
|
|
26
|
+
export type { VectorTilesetSourceOptions, VectorTilesetSourceResponse, } from './vector-tileset-source';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WidgetQuerySourceResult } from '../widget-sources';
|
|
2
2
|
import type { AggregationOptions, FilterOptions, QuerySourceOptions, SourceOptions, TilejsonResult } from './types';
|
|
3
3
|
export type QuadbinQuerySourceOptions = SourceOptions & QuerySourceOptions & AggregationOptions & FilterOptions;
|
|
4
|
-
export
|
|
4
|
+
export type QuadbinQuerySourceResponse = TilejsonResult & WidgetQuerySourceResult;
|
|
5
|
+
export declare const quadbinQuerySource: (options: QuadbinQuerySourceOptions) => Promise<QuadbinQuerySourceResponse>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WidgetTableSourceResult } from '../widget-sources';
|
|
2
2
|
import type { AggregationOptions, FilterOptions, SourceOptions, TableSourceOptions, TilejsonResult } from './types';
|
|
3
3
|
export type QuadbinTableSourceOptions = SourceOptions & TableSourceOptions & AggregationOptions & FilterOptions;
|
|
4
|
-
export
|
|
4
|
+
export type QuadbinTableSourceResponse = TilejsonResult & WidgetTableSourceResult;
|
|
5
|
+
export declare const quadbinTableSource: (options: QuadbinTableSourceOptions) => Promise<QuadbinTableSourceResponse>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { SourceOptions, TilejsonResult, TilesetSourceOptions } from './types';
|
|
2
2
|
export type QuadbinTilesetSourceOptions = SourceOptions & TilesetSourceOptions;
|
|
3
|
-
export
|
|
3
|
+
export type QuadbinTilesetSourceResponse = TilejsonResult;
|
|
4
|
+
export declare const quadbinTilesetSource: (options: QuadbinTilesetSourceOptions) => Promise<QuadbinTilesetSourceResponse>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { FilterOptions, SourceOptions, TilejsonResult, TilesetSourceOptions } from './types';
|
|
2
2
|
export type RasterSourceOptions = SourceOptions & TilesetSourceOptions & FilterOptions;
|
|
3
|
-
export
|
|
3
|
+
export type RasterSourceResponse = TilejsonResult;
|
|
4
|
+
export declare const rasterSource: (options: RasterSourceOptions) => Promise<RasterSourceResponse>;
|
package/build/sources/types.d.ts
CHANGED
|
@@ -38,30 +38,6 @@ export type SourceOptionalOptions = {
|
|
|
38
38
|
* @default {@link DEFAULT_MAX_LENGTH_URL}
|
|
39
39
|
*/
|
|
40
40
|
maxLengthURL?: number;
|
|
41
|
-
/**
|
|
42
|
-
* The column name and the type of geospatial support.
|
|
43
|
-
*
|
|
44
|
-
* If not present, defaults to `'geom'` for generic queries, `'quadbin'` for Quadbin sources and `'h3'` for H3 sources.
|
|
45
|
-
*/
|
|
46
|
-
spatialDataColumn?: string;
|
|
47
|
-
/**
|
|
48
|
-
* The type of geospatial support. Defaults to `'geo'`.
|
|
49
|
-
*/
|
|
50
|
-
spatialDataType?: SpatialDataType;
|
|
51
|
-
/**
|
|
52
|
-
* Relative resolution of a tile. Higher values increase density and data size. At `tileResolution = 1`, tile geometry is
|
|
53
|
-
* quantized to a 1024x1024 grid. Increasing or decreasing the resolution will increase or decrease the dimensions of
|
|
54
|
-
* the quantization grid proportionately.
|
|
55
|
-
*
|
|
56
|
-
* Supported `tileResolution` values, with corresponding grid sizes:
|
|
57
|
-
*
|
|
58
|
-
* - 0.25: 256x256
|
|
59
|
-
* - 0.5: 512x512
|
|
60
|
-
* - 1: 1024x1024
|
|
61
|
-
* - 2: 2048x2048
|
|
62
|
-
* - 4: 4096x4096
|
|
63
|
-
*/
|
|
64
|
-
tileResolution?: TileResolution;
|
|
65
41
|
/**
|
|
66
42
|
* By default, local in-memory caching is enabled.
|
|
67
43
|
*/
|
|
@@ -97,10 +73,6 @@ export type AggregationOptions = {
|
|
|
97
73
|
* @default 6 for quadbin and 4 for h3 sources
|
|
98
74
|
*/
|
|
99
75
|
aggregationResLevel?: number;
|
|
100
|
-
/**
|
|
101
|
-
* Original resolution of the spatial index data as stored in the DW
|
|
102
|
-
*/
|
|
103
|
-
dataResolution?: number;
|
|
104
76
|
};
|
|
105
77
|
export type FilterOptions = {
|
|
106
78
|
/**
|
|
@@ -109,8 +81,28 @@ export type FilterOptions = {
|
|
|
109
81
|
filters?: Filters;
|
|
110
82
|
};
|
|
111
83
|
export type QuerySourceOptions = {
|
|
112
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* The column name and the type of geospatial support.
|
|
86
|
+
*
|
|
87
|
+
* If not present, defaults to `'geom'` for generic queries, `'quadbin'` for Quadbin sources and `'h3'` for H3 sources.
|
|
88
|
+
*/
|
|
89
|
+
spatialDataColumn?: string;
|
|
90
|
+
/** SQL query. */
|
|
113
91
|
sqlQuery: string;
|
|
92
|
+
/**
|
|
93
|
+
* Relative resolution of a tile. Higher values increase density and data size. At `tileResolution = 1`, tile geometry is
|
|
94
|
+
* quantized to a 1024x1024 grid. Increasing or decreasing the resolution will increase or decrease the dimensions of
|
|
95
|
+
* the quantization grid proportionately.
|
|
96
|
+
*
|
|
97
|
+
* Supported `tileResolution` values, with corresponding grid sizes:
|
|
98
|
+
*
|
|
99
|
+
* - 0.25: 256x256
|
|
100
|
+
* - 0.5: 512x512
|
|
101
|
+
* - 1: 1024x1024
|
|
102
|
+
* - 2: 2048x2048
|
|
103
|
+
* - 4: 4096x4096
|
|
104
|
+
*/
|
|
105
|
+
tileResolution?: TileResolution;
|
|
114
106
|
/**
|
|
115
107
|
* Values for named or positional paramteres in the query.
|
|
116
108
|
*
|
|
@@ -136,12 +128,48 @@ export type QuerySourceOptions = {
|
|
|
136
128
|
* ```
|
|
137
129
|
*/
|
|
138
130
|
queryParameters?: QueryParameters;
|
|
131
|
+
/**
|
|
132
|
+
* Comma-separated aggregation expressions. If assigned on a vector source, source is grouped by geometry and then aggregated.
|
|
133
|
+
*
|
|
134
|
+
* Example:
|
|
135
|
+
*
|
|
136
|
+
* 1 as value, avg(rev) as average_revenue
|
|
137
|
+
*/
|
|
138
|
+
aggregationExp?: string;
|
|
139
139
|
};
|
|
140
140
|
export type TableSourceOptions = {
|
|
141
141
|
/**
|
|
142
142
|
* Fully qualified name of table.
|
|
143
143
|
*/
|
|
144
144
|
tableName: string;
|
|
145
|
+
/**
|
|
146
|
+
* The column name and the type of geospatial support.
|
|
147
|
+
*
|
|
148
|
+
* If not present, defaults to `'geom'` for generic tables, `'quadbin'` for Quadbin sources and `'h3'` for H3 sources.
|
|
149
|
+
*/
|
|
150
|
+
spatialDataColumn?: string;
|
|
151
|
+
/**
|
|
152
|
+
* Relative resolution of a tile. Higher values increase density and data size. At `tileResolution = 1`, tile geometry is
|
|
153
|
+
* quantized to a 1024x1024 grid. Increasing or decreasing the resolution will increase or decrease the dimensions of
|
|
154
|
+
* the quantization grid proportionately.
|
|
155
|
+
*
|
|
156
|
+
* Supported `tileResolution` values, with corresponding grid sizes:
|
|
157
|
+
*
|
|
158
|
+
* - 0.25: 256x256
|
|
159
|
+
* - 0.5: 512x512
|
|
160
|
+
* - 1: 1024x1024
|
|
161
|
+
* - 2: 2048x2048
|
|
162
|
+
* - 4: 4096x4096
|
|
163
|
+
*/
|
|
164
|
+
tileResolution?: TileResolution;
|
|
165
|
+
/**
|
|
166
|
+
* Comma-separated aggregation expressions. If assigned on a vector source, source is grouped by geometry and then aggregated.
|
|
167
|
+
*
|
|
168
|
+
* Example:
|
|
169
|
+
*
|
|
170
|
+
* 1 as value, avg(rev) as average_revenue
|
|
171
|
+
*/
|
|
172
|
+
aggregationExp?: string;
|
|
145
173
|
};
|
|
146
174
|
export type TilesetSourceOptions = {
|
|
147
175
|
/**
|
|
@@ -158,13 +186,6 @@ export type ColumnsOption = {
|
|
|
158
186
|
columns?: string[];
|
|
159
187
|
};
|
|
160
188
|
export type SpatialDataType = 'geo' | 'h3' | 'quadbin';
|
|
161
|
-
/**
|
|
162
|
-
* Strategy used for covering spatial filter geometry with spatial indexes.
|
|
163
|
-
* See https://docs.carto.com/data-and-analysis/analytics-toolbox-for-bigquery/sql-reference/quadbin#quadbin_polyfill_mode
|
|
164
|
-
* or https://docs.carto.com/data-and-analysis/analytics-toolbox-for-bigquery/sql-reference/h3#h3_polyfill_mode for more information.
|
|
165
|
-
* @internalRemarks Source: cloud-native maps-api
|
|
166
|
-
* */
|
|
167
|
-
export type SpatialFilterPolyfillMode = 'center' | 'intersects' | 'contains';
|
|
168
189
|
export type TilejsonMapInstantiation = MapInstantiation & {
|
|
169
190
|
tilejson: {
|
|
170
191
|
url: string[];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WidgetQuerySourceResult } from '../widget-sources/index.js';
|
|
2
2
|
import type { FilterOptions, SourceOptions, QuerySourceOptions, TilejsonResult, ColumnsOption } from './types';
|
|
3
3
|
export type VectorQuerySourceOptions = SourceOptions & QuerySourceOptions & FilterOptions & ColumnsOption;
|
|
4
|
-
export
|
|
4
|
+
export type VectorQuerySourceResponse = TilejsonResult & WidgetQuerySourceResult;
|
|
5
|
+
export declare const vectorQuerySource: (options: VectorQuerySourceOptions) => Promise<VectorQuerySourceResponse>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WidgetTableSourceResult } from '../widget-sources/index.js';
|
|
2
2
|
import type { FilterOptions, ColumnsOption, SourceOptions, TableSourceOptions, TilejsonResult } from './types';
|
|
3
3
|
export type VectorTableSourceOptions = SourceOptions & TableSourceOptions & FilterOptions & ColumnsOption;
|
|
4
|
-
export
|
|
4
|
+
export type VectorTableSourceResponse = TilejsonResult & WidgetTableSourceResult;
|
|
5
|
+
export declare const vectorTableSource: (options: VectorTableSourceOptions) => Promise<VectorTableSourceResponse>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { SourceOptions, TilesetSourceOptions, TilejsonResult } from './types';
|
|
2
2
|
export type VectorTilesetSourceOptions = SourceOptions & TilesetSourceOptions;
|
|
3
|
-
export
|
|
3
|
+
export type VectorTilesetSourceResponse = TilejsonResult;
|
|
4
|
+
export declare const vectorTilesetSource: (options: VectorTilesetSourceOptions) => Promise<VectorTilesetSourceResponse>;
|
package/build/utils.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ type Row<T> = Record<string, T> | Record<string, T>[] | T[] | T;
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function normalizeObjectKeys<T, R extends Row<T>>(el: R): R;
|
|
16
16
|
/** @internalRemarks Source: @carto/react-core */
|
|
17
|
-
export declare function assert(condition: unknown, message: string):
|
|
17
|
+
export declare function assert(condition: unknown, message: string): void;
|
|
18
18
|
/**
|
|
19
19
|
* @internalRemarks Source: @carto/react-core
|
|
20
20
|
* @internal
|
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TileResolution } from '../sources/types';
|
|
2
2
|
import { GroupDateType, SortColumnType, SortDirection, SpatialFilter } from '../types';
|
|
3
3
|
/******************************************************************************
|
|
4
4
|
* WIDGET API REQUESTS
|
|
5
5
|
*/
|
|
6
|
-
export interface ViewState {
|
|
7
|
-
zoom: number;
|
|
8
|
-
latitude: number;
|
|
9
|
-
longitude: number;
|
|
10
|
-
}
|
|
11
6
|
/** Common options for {@link WidgetBaseSource} requests. */
|
|
12
7
|
interface BaseRequestOptions {
|
|
13
8
|
spatialFilter?: SpatialFilter;
|
|
14
|
-
spatialFiltersMode?: SpatialFilterPolyfillMode;
|
|
15
9
|
abortController?: AbortController;
|
|
16
10
|
filterOwner?: string;
|
|
17
|
-
viewState?: ViewState;
|
|
18
11
|
}
|
|
19
12
|
/** Options for {@link WidgetBaseSource#getCategories}. */
|
|
20
13
|
export interface CategoryRequestOptions extends BaseRequestOptions {
|
|
@@ -5,6 +5,7 @@ import { SourceOptions } from '../sources/index.js';
|
|
|
5
5
|
import { ApiVersion } from '../constants.js';
|
|
6
6
|
export interface WidgetBaseSourceProps extends Omit<SourceOptions, 'filters'> {
|
|
7
7
|
apiVersion?: ApiVersion;
|
|
8
|
+
geoColumn?: string;
|
|
8
9
|
filters?: Record<string, Filter>;
|
|
9
10
|
filtersLogicalOperator?: FilterLogicalOperator;
|
|
10
11
|
}
|
package/package.json
CHANGED
package/src/api/query.ts
CHANGED
|
@@ -12,7 +12,8 @@ import {buildQueryUrl} from './endpoints';
|
|
|
12
12
|
import {requestWithParameters} from './request-with-parameters';
|
|
13
13
|
import {APIErrorContext} from './carto-api-error';
|
|
14
14
|
|
|
15
|
-
export type QueryOptions = SourceOptions &
|
|
15
|
+
export type QueryOptions = SourceOptions &
|
|
16
|
+
Omit<QuerySourceOptions, 'spatialDataColumn'>;
|
|
16
17
|
type UrlParameters = {q: string; queryParameters?: string};
|
|
17
18
|
|
|
18
19
|
export const query = async function (
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './client.js';
|
|
|
2
2
|
export * from './constants.js';
|
|
3
3
|
export * from './filters.js';
|
|
4
4
|
export * from './geo.js';
|
|
5
|
+
export * from './sources/index.js';
|
|
5
6
|
export * from './widget-sources/index.js';
|
|
6
7
|
export * from './types.js';
|
|
7
8
|
|
|
@@ -15,39 +16,3 @@ export {
|
|
|
15
16
|
query,
|
|
16
17
|
requestWithParameters,
|
|
17
18
|
} from './api/index.js';
|
|
18
|
-
|
|
19
|
-
export {
|
|
20
|
-
BoundaryQuerySourceOptions,
|
|
21
|
-
BoundaryTableSourceOptions,
|
|
22
|
-
GeojsonResult,
|
|
23
|
-
H3QuerySourceOptions,
|
|
24
|
-
H3TableSourceOptions,
|
|
25
|
-
H3TilesetSourceOptions,
|
|
26
|
-
JsonResult,
|
|
27
|
-
QuadbinQuerySourceOptions,
|
|
28
|
-
QuadbinTableSourceOptions,
|
|
29
|
-
QuadbinTilesetSourceOptions,
|
|
30
|
-
QueryResult,
|
|
31
|
-
QuerySourceOptions,
|
|
32
|
-
RasterSourceOptions,
|
|
33
|
-
SOURCE_DEFAULTS,
|
|
34
|
-
SourceOptions,
|
|
35
|
-
TableSourceOptions,
|
|
36
|
-
TilejsonResult,
|
|
37
|
-
TilesetSourceOptions,
|
|
38
|
-
VectorQuerySourceOptions,
|
|
39
|
-
VectorTableSourceOptions,
|
|
40
|
-
VectorTilesetSourceOptions,
|
|
41
|
-
boundaryQuerySource,
|
|
42
|
-
boundaryTableSource,
|
|
43
|
-
h3QuerySource,
|
|
44
|
-
h3TableSource,
|
|
45
|
-
h3TilesetSource,
|
|
46
|
-
quadbinQuerySource,
|
|
47
|
-
quadbinTableSource,
|
|
48
|
-
quadbinTilesetSource,
|
|
49
|
-
rasterSource,
|
|
50
|
-
vectorQuerySource,
|
|
51
|
-
vectorTableSource,
|
|
52
|
-
vectorTilesetSource,
|
|
53
|
-
} from './sources/index.js';
|
package/src/models/model.ts
CHANGED
|
@@ -7,10 +7,9 @@ import {
|
|
|
7
7
|
SpatialFilter,
|
|
8
8
|
} from '../types.js';
|
|
9
9
|
import {$TODO} from '../types-internal.js';
|
|
10
|
-
import {assert
|
|
10
|
+
import {assert} from '../utils.js';
|
|
11
11
|
import {ModelRequestOptions, makeCall} from './common.js';
|
|
12
12
|
import {ApiVersion} from '../constants.js';
|
|
13
|
-
import {SpatialDataType, SpatialFilterPolyfillMode} from '../sources/types.js';
|
|
14
13
|
|
|
15
14
|
/** @internalRemarks Source: @carto/react-api */
|
|
16
15
|
const AVAILABLE_MODELS = [
|
|
@@ -36,14 +35,9 @@ export interface ModelSource {
|
|
|
36
35
|
data: string;
|
|
37
36
|
filters?: Record<string, Filter>;
|
|
38
37
|
filtersLogicalOperator?: FilterLogicalOperator;
|
|
38
|
+
geoColumn?: string;
|
|
39
39
|
spatialFilter?: SpatialFilter;
|
|
40
40
|
queryParameters?: QueryParameters;
|
|
41
|
-
spatialDataColumn?: string;
|
|
42
|
-
spatialDataType?: SpatialDataType;
|
|
43
|
-
spatialFiltersResolution?: number;
|
|
44
|
-
spatialFiltersMode?: SpatialFilterPolyfillMode;
|
|
45
|
-
/** original resolution of the spatial index data as stored in the DW */
|
|
46
|
-
dataResolution?: number;
|
|
47
41
|
}
|
|
48
42
|
|
|
49
43
|
const {V3} = ApiVersion;
|
|
@@ -85,51 +79,50 @@ export function executeModel(props: {
|
|
|
85
79
|
data,
|
|
86
80
|
filters,
|
|
87
81
|
filtersLogicalOperator = 'and',
|
|
88
|
-
|
|
89
|
-
spatialFiltersMode = 'intersects',
|
|
90
|
-
spatialFiltersResolution = 0,
|
|
82
|
+
geoColumn = DEFAULT_GEO_COLUMN,
|
|
91
83
|
} = source;
|
|
92
84
|
|
|
93
|
-
const
|
|
85
|
+
const queryParameters = source.queryParameters
|
|
86
|
+
? JSON.stringify(source.queryParameters)
|
|
87
|
+
: '';
|
|
88
|
+
|
|
89
|
+
const queryParams: Record<string, string> = {
|
|
94
90
|
type,
|
|
95
91
|
client: clientId,
|
|
96
92
|
source: data,
|
|
97
|
-
params,
|
|
98
|
-
queryParameters
|
|
99
|
-
filters,
|
|
93
|
+
params: JSON.stringify(params),
|
|
94
|
+
queryParameters,
|
|
95
|
+
filters: JSON.stringify(filters),
|
|
100
96
|
filtersLogicalOperator,
|
|
101
97
|
};
|
|
102
98
|
|
|
103
|
-
const spatialDataColumn = source.spatialDataColumn || DEFAULT_GEO_COLUMN;
|
|
104
|
-
|
|
105
99
|
// Picking Model API requires 'spatialDataColumn'.
|
|
106
100
|
if (model === 'pick') {
|
|
107
|
-
queryParams.spatialDataColumn =
|
|
101
|
+
queryParams.spatialDataColumn = geoColumn;
|
|
108
102
|
}
|
|
109
103
|
|
|
110
|
-
// API supports multiple filters, we apply it only to
|
|
104
|
+
// API supports multiple filters, we apply it only to geoColumn
|
|
111
105
|
const spatialFilters = source.spatialFilter
|
|
112
|
-
? {[
|
|
106
|
+
? {[geoColumn]: source.spatialFilter}
|
|
113
107
|
: undefined;
|
|
114
108
|
|
|
115
109
|
if (spatialFilters) {
|
|
116
|
-
queryParams.spatialFilters =
|
|
117
|
-
queryParams.spatialDataColumn = spatialDataColumn;
|
|
118
|
-
queryParams.spatialDataType = spatialDataType;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
if (spatialDataType !== 'geo') {
|
|
122
|
-
if (spatialFiltersResolution > 0) {
|
|
123
|
-
queryParams.spatialFiltersResolution = spatialFiltersResolution;
|
|
124
|
-
}
|
|
125
|
-
queryParams.spatialFiltersMode = spatialFiltersMode;
|
|
110
|
+
queryParams.spatialFilters = JSON.stringify(spatialFilters);
|
|
126
111
|
}
|
|
127
112
|
|
|
128
113
|
const urlWithSearchParams =
|
|
129
|
-
url + '?' +
|
|
114
|
+
url + '?' + new URLSearchParams(queryParams).toString();
|
|
130
115
|
const isGet = urlWithSearchParams.length <= REQUEST_GET_MAX_URL_LENGTH;
|
|
131
116
|
if (isGet) {
|
|
132
117
|
url = urlWithSearchParams;
|
|
118
|
+
} else {
|
|
119
|
+
// undo the JSON.stringify, @TODO find a better pattern
|
|
120
|
+
queryParams.params = params as $TODO;
|
|
121
|
+
queryParams.filters = filters as $TODO;
|
|
122
|
+
queryParams.queryParameters = source.queryParameters as $TODO;
|
|
123
|
+
if (spatialFilters) {
|
|
124
|
+
queryParams.spatialFilters = spatialFilters as $TODO;
|
|
125
|
+
}
|
|
133
126
|
}
|
|
134
127
|
return makeCall({
|
|
135
128
|
url,
|
|
@@ -141,19 +134,3 @@ export function executeModel(props: {
|
|
|
141
134
|
},
|
|
142
135
|
});
|
|
143
136
|
}
|
|
144
|
-
|
|
145
|
-
function objectToURLSearchParams(object: Record<string, unknown>) {
|
|
146
|
-
const params = new URLSearchParams();
|
|
147
|
-
for (const key in object) {
|
|
148
|
-
if (isPureObject(object[key])) {
|
|
149
|
-
params.append(key, JSON.stringify(object[key]));
|
|
150
|
-
} else if (Array.isArray(object[key])) {
|
|
151
|
-
params.append(key, JSON.stringify(object[key]));
|
|
152
|
-
} else if (object[key] === null) {
|
|
153
|
-
params.append(key, 'null');
|
|
154
|
-
} else if (object[key] !== undefined) {
|
|
155
|
-
params.append(key, String(object[key]));
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return params;
|
|
159
|
-
}
|
|
@@ -21,9 +21,11 @@ type UrlParameters = {
|
|
|
21
21
|
queryParameters?: Record<string, unknown> | unknown[];
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
export type BoundaryQuerySourceResponse = TilejsonResult;
|
|
25
|
+
|
|
24
26
|
export const boundaryQuerySource = async function (
|
|
25
27
|
options: BoundaryQuerySourceOptions
|
|
26
|
-
): Promise<
|
|
28
|
+
): Promise<BoundaryQuerySourceResponse> {
|
|
27
29
|
const {
|
|
28
30
|
columns,
|
|
29
31
|
filters,
|
|
@@ -49,5 +51,5 @@ export const boundaryQuerySource = async function (
|
|
|
49
51
|
'boundary',
|
|
50
52
|
options,
|
|
51
53
|
urlParameters
|
|
52
|
-
) as Promise<
|
|
54
|
+
) as Promise<BoundaryQuerySourceResponse>;
|
|
53
55
|
};
|
|
@@ -18,9 +18,11 @@ type UrlParameters = {
|
|
|
18
18
|
propertiesTableName: string;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
+
export type BoundaryTableSourceResponse = TilejsonResult;
|
|
22
|
+
|
|
21
23
|
export const boundaryTableSource = async function (
|
|
22
24
|
options: BoundaryTableSourceOptions
|
|
23
|
-
): Promise<
|
|
25
|
+
): Promise<BoundaryTableSourceResponse> {
|
|
24
26
|
const {filters, tilesetTableName, columns, propertiesTableName} = options;
|
|
25
27
|
const urlParameters: UrlParameters = {
|
|
26
28
|
tilesetTableName,
|
|
@@ -37,5 +39,5 @@ export const boundaryTableSource = async function (
|
|
|
37
39
|
'boundary',
|
|
38
40
|
options,
|
|
39
41
|
urlParameters
|
|
40
|
-
) as Promise<
|
|
42
|
+
) as Promise<BoundaryTableSourceResponse>;
|
|
41
43
|
};
|
|
@@ -19,7 +19,6 @@ export type H3QuerySourceOptions = SourceOptions &
|
|
|
19
19
|
QuerySourceOptions &
|
|
20
20
|
AggregationOptions &
|
|
21
21
|
FilterOptions;
|
|
22
|
-
|
|
23
22
|
type UrlParameters = {
|
|
24
23
|
aggregationExp: string;
|
|
25
24
|
aggregationResLevel?: string;
|
|
@@ -30,9 +29,11 @@ type UrlParameters = {
|
|
|
30
29
|
filters?: Record<string, unknown>;
|
|
31
30
|
};
|
|
32
31
|
|
|
32
|
+
export type H3QuerySourceResponse = TilejsonResult & WidgetQuerySourceResult;
|
|
33
|
+
|
|
33
34
|
export const h3QuerySource = async function (
|
|
34
35
|
options: H3QuerySourceOptions
|
|
35
|
-
): Promise<
|
|
36
|
+
): Promise<H3QuerySourceResponse> {
|
|
36
37
|
const {
|
|
37
38
|
aggregationExp,
|
|
38
39
|
aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3,
|
|
@@ -60,12 +61,7 @@ export const h3QuerySource = async function (
|
|
|
60
61
|
return baseSource<UrlParameters>('query', options, urlParameters).then(
|
|
61
62
|
(result) => ({
|
|
62
63
|
...(result as TilejsonResult),
|
|
63
|
-
widgetSource: new WidgetQuerySource(
|
|
64
|
-
...options,
|
|
65
|
-
// NOTE: passing redundant spatialDataColumn here to apply the default value 'h3'
|
|
66
|
-
spatialDataColumn,
|
|
67
|
-
spatialDataType: 'h3',
|
|
68
|
-
}),
|
|
64
|
+
widgetSource: new WidgetQuerySource(options),
|
|
69
65
|
})
|
|
70
66
|
);
|
|
71
67
|
};
|
|
@@ -29,9 +29,11 @@ type UrlParameters = {
|
|
|
29
29
|
filters?: Record<string, unknown>;
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
+
export type H3TableSourceResponse = TilejsonResult & WidgetTableSourceResult;
|
|
33
|
+
|
|
32
34
|
export const h3TableSource = async function (
|
|
33
35
|
options: H3TableSourceOptions
|
|
34
|
-
): Promise<
|
|
36
|
+
): Promise<H3TableSourceResponse> {
|
|
35
37
|
const {
|
|
36
38
|
aggregationExp,
|
|
37
39
|
aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3,
|
|
@@ -55,12 +57,7 @@ export const h3TableSource = async function (
|
|
|
55
57
|
return baseSource<UrlParameters>('table', options, urlParameters).then(
|
|
56
58
|
(result) => ({
|
|
57
59
|
...(result as TilejsonResult),
|
|
58
|
-
widgetSource: new WidgetTableSource(
|
|
59
|
-
...options,
|
|
60
|
-
// NOTE: passing redundant spatialDataColumn here to apply the default value 'h3'
|
|
61
|
-
spatialDataColumn,
|
|
62
|
-
spatialDataType: 'h3',
|
|
63
|
-
}),
|
|
60
|
+
widgetSource: new WidgetTableSource(options),
|
|
64
61
|
})
|
|
65
62
|
);
|
|
66
63
|
};
|