@carto/api-client 0.0.35 → 0.0.39
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/LICENSE.md +21 -0
- package/README.md +21 -2
- package/build/api-client.cjs +24 -36
- package/build/api-client.cjs.map +1 -1
- package/build/api-client.modern.js +24 -21
- package/build/api-client.modern.js.map +1 -1
- package/build/sources/wrappers.d.ts +0 -6
- package/package.json +13 -7
- package/src/models/model.ts +3 -2
- package/src/sources/wrappers.ts +19 -13
package/build/api-client.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.cjs","sources":["../src/client.ts","../src/constants.ts","../src/constants-internal.ts","../src/utils.ts","../src/models/common.ts","../src/models/model.ts","../src/sources/widget-base-source.ts","../src/sources/widget-query-source.ts","../src/sources/widget-table-source.ts","../node_modules/@loaders.gl/core/dist/javascript-utils/is-type.js","../node_modules/@deck.gl/carto/dist/constants.js","../node_modules/@deck.gl/carto/dist/api/carto-api-error.js","../node_modules/@deck.gl/carto/dist/api/common.js","../node_modules/@deck.gl/carto/dist/api/endpoints.js","../node_modules/@deck.gl/carto/dist/api/request-with-parameters.js","../node_modules/@deck.gl/carto/dist/sources/base-source.js","../node_modules/@deck.gl/carto/dist/sources/boundary-query-source.js","../node_modules/@deck.gl/carto/dist/sources/boundary-table-source.js","../node_modules/@deck.gl/carto/dist/sources/h3-query-source.js","../node_modules/@deck.gl/carto/dist/sources/h3-table-source.js","../node_modules/@deck.gl/carto/dist/sources/h3-tileset-source.js","../node_modules/@deck.gl/carto/dist/sources/raster-source.js","../node_modules/@deck.gl/carto/dist/sources/quadbin-query-source.js","../node_modules/@deck.gl/carto/dist/sources/quadbin-table-source.js","../node_modules/@deck.gl/carto/dist/sources/quadbin-tileset-source.js","../node_modules/@deck.gl/carto/dist/sources/vector-query-source.js","../node_modules/@deck.gl/carto/dist/sources/vector-table-source.js","../node_modules/@deck.gl/carto/dist/sources/vector-tileset-source.js","../node_modules/@deck.gl/carto/dist/index.js","../src/sources/wrappers.ts"],"sourcesContent":["/**\n * @internal\n * @internalRemarks Source: @carto/react-core\n */\nlet client = 'carto-api-client';\n\n/**\n * Returns current client ID, used to categorize API requests. For internal use only.\n *\n * @internal\n * @internalRemarks Source: @carto/react-core\n */\nexport function getClient() {\n return client;\n}\n\n/**\n * Sets current client ID, used to categorize API requests. For internal use only.\n *\n * @internal\n * @internalRemarks Source: @carto/react-core\n */\nexport function setClient(c: string) {\n client = c;\n}\n","/**\n * Defines a step size increment for use with {@link TimeSeriesRequestOptions}.\n *\n * @internalRemarks Source: @carto/react-core\n */\nexport enum GroupDateType {\n YEARS = 'year',\n MONTHS = 'month',\n WEEKS = 'week',\n DAYS = 'day',\n HOURS = 'hour',\n MINUTES = 'minute',\n SECONDS = 'second',\n}\n\n/**\n * Defines a comparator used when matching a column's values against given filter values.\n *\n * Example:\n *\n * ```javascript\n * import { FilterType } from '@carto/api-client';\n * const filters = {\n * column_name: { [FilterType.IN]: { values: ['a', 'b', 'c'] } }\n * };\n * ```\n *\n * @internalRemarks Source: @carto/react-api, @deck.gl/carto\n */\nexport enum FilterType {\n IN = 'in',\n /** [a, b] both are included. */\n BETWEEN = 'between',\n /** [a, b) a is included, b is not. */\n CLOSED_OPEN = 'closed_open',\n TIME = 'time',\n STRING_SEARCH = 'stringSearch',\n}\n","/******************************************************************************\n * DEFAULTS\n */\n\n/**\n * @internalRemarks Source: @carto/constants\n * @internal\n */\nexport const DEFAULT_API_BASE_URL = 'https://gcp-us-east1.api.carto.com';\n\n/**\n * @internalRemarks Source: @carto/constants\n * @internal\n */\nexport const DEFAULT_CLIENT = 'deck-gl-carto';\n\n/**\n * @internalRemarks Source: @carto/react-api\n * @internal\n */\nexport const DEFAULT_GEO_COLUMN = 'geom';\n\n/******************************************************************************\n * ENUMS\n */\n\n/**\n * @internal\n * @internalRemarks Source: @carto/constants\n */\nexport enum MapType {\n TABLE = 'table',\n QUERY = 'query',\n TILESET = 'tileset',\n}\n\n/**\n * @internal\n * @internalRemarks Source: @carto/constants\n */\nexport enum ApiVersion {\n V1 = 'v1',\n V2 = 'v2',\n V3 = 'v3',\n}\n","import {Filter} from './types.js';\nimport {FilterType} from './constants.js';\nimport {$TODO} from './types-internal.js';\n\nconst FILTER_TYPES = new Set(Object.values(FilterType));\nconst isFilterType = (type: string): type is FilterType =>\n FILTER_TYPES.has(type as FilterType);\n\n/**\n * @privateRemarks Source: @carto/react-widgets\n * @internal\n */\nexport function getApplicableFilters(\n owner?: string,\n filters?: Record<string, Filter>\n): Record<string, Filter> {\n if (!filters) return {};\n\n const applicableFilters: Record<string, Filter> = {};\n\n for (const column in filters) {\n for (const type in filters[column]) {\n if (!isFilterType(type)) continue;\n\n const filter = filters[column][type];\n if (filter && filter.owner !== owner) {\n applicableFilters[column] ||= {};\n applicableFilters[column][type] = filter as $TODO;\n }\n }\n }\n\n return applicableFilters;\n}\n\ntype Row<T> = Record<string, T> | Record<string, T>[] | T[] | T;\n\n/**\n * Due to each data warehouse having its own behavior with columns,\n * we need to normalize them and transform every key to lowercase.\n *\n * @internalRemarks Source: @carto/react-widgets\n * @internal\n */\nexport function normalizeObjectKeys<T, R extends Row<T>>(el: R): R {\n if (Array.isArray(el)) {\n return el.map((value) => normalizeObjectKeys(value)) as R;\n } else if (typeof el !== 'object') {\n return el;\n }\n\n return Object.entries(el as Record<string, T>).reduce((acc, [key, value]) => {\n acc[key.toLowerCase()] =\n typeof value === 'object' && value ? normalizeObjectKeys(value) : value;\n return acc;\n }, {} as Record<string, T>) as R;\n}\n\n/** @internalRemarks Source: @carto/react-core */\nexport function assert(condition: unknown, message: string) {\n if (!condition) {\n throw new Error(message);\n }\n}\n\n/**\n * @internalRemarks Source: @carto/react-core\n * @internal\n */\nexport class InvalidColumnError extends Error {\n protected static readonly NAME = 'InvalidColumnError';\n\n constructor(message: string) {\n super(`${InvalidColumnError.NAME}: ${message}`);\n this.name = InvalidColumnError.NAME;\n }\n\n static is(error: unknown) {\n return (\n error instanceof InvalidColumnError ||\n (error as Error).message?.includes(InvalidColumnError.NAME)\n );\n }\n}\n","import {$TODO} from '../types-internal.js';\nimport {InvalidColumnError} from '../utils.js';\n\n/** @internalRemarks Source: @carto/react-api */\nexport interface ModelRequestOptions {\n method: 'GET' | 'POST';\n abortController?: AbortController;\n otherOptions?: Record<string, unknown>;\n body?: string;\n}\n\n/**\n * Return more descriptive error from API\n * @internalRemarks Source: @carto/react-api\n */\nexport function dealWithApiError({\n response,\n data,\n}: {\n response: Response;\n data: $TODO;\n}) {\n if (data.error === 'Column not found') {\n throw new InvalidColumnError(`${data.error} ${data.column_name}`);\n }\n\n if (data.error?.includes('Missing columns')) {\n throw new InvalidColumnError(data.error);\n }\n\n switch (response.status) {\n case 401:\n throw new Error('Unauthorized access. Invalid credentials');\n case 403:\n throw new Error('Forbidden access to the requested data');\n default:\n const msg =\n data && data.error && typeof data.error === 'string'\n ? data.error\n : JSON.stringify(data?.hint || data.error?.[0]);\n throw new Error(msg);\n }\n}\n\n/** @internalRemarks Source: @carto/react-api */\nexport async function makeCall({\n url,\n accessToken,\n opts,\n}: {\n url: string;\n accessToken: string;\n opts: ModelRequestOptions;\n}) {\n let response;\n let data;\n const isPost = opts?.method === 'POST';\n try {\n response = await fetch(url.toString(), {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n ...(isPost && {'Content-Type': 'application/json'}),\n },\n ...(isPost && {\n method: opts?.method,\n body: opts?.body,\n }),\n signal: opts?.abortController?.signal,\n ...opts?.otherOptions,\n });\n data = await response.json();\n } catch (error) {\n if ((error as Error).name === 'AbortError') throw error;\n\n throw new Error(`Failed request: ${error}`);\n }\n\n if (!response.ok) {\n dealWithApiError({response, data});\n }\n\n return data;\n}\n","import {getClient} from '../client.js';\nimport {\n ApiVersion,\n DEFAULT_GEO_COLUMN,\n MapType,\n} from '../constants-internal.js';\nimport {\n Filter,\n FilterLogicalOperator,\n QueryParameters,\n SpatialFilter,\n} from '../types.js';\nimport {$TODO} from '../types-internal.js';\nimport {assert} from '../utils.js';\nimport {ModelRequestOptions, makeCall} from './common.js';\n\n/** @internalRemarks Source: @carto/react-api */\nconst AVAILABLE_MODELS = [\n 'category',\n 'histogram',\n 'formula',\n 'timeseries',\n 'range',\n 'scatterplot',\n 'table',\n] as const;\n\nexport type Model = (typeof AVAILABLE_MODELS)[number];\n\nexport interface ModelSource {\n type: MapType;\n apiVersion: ApiVersion;\n apiBaseUrl: string;\n accessToken: string;\n clientId: string;\n connectionName: string;\n data: string;\n filters?: Record<string, Filter>;\n filtersLogicalOperator?: FilterLogicalOperator;\n geoColumn?: string;\n spatialFilter?: SpatialFilter;\n queryParameters?: QueryParameters;\n}\n\nconst {V3} = ApiVersion;\nconst REQUEST_GET_MAX_URL_LENGTH = 2048;\n\n/**\n * Execute a SQL model request.\n * @internalRemarks Source: @carto/react-api\n */\nexport function executeModel(props: {\n model: Model;\n source: ModelSource;\n params: Record<string, unknown>;\n opts?: Partial<ModelRequestOptions>;\n}) {\n assert(props.source, 'executeModel: missing source');\n assert(props.model, 'executeModel: missing model');\n assert(props.params, 'executeModel: missing params');\n\n assert(\n AVAILABLE_MODELS.includes(props.model),\n `executeModel: model provided isn't valid. Available models: ${AVAILABLE_MODELS.join(\n ', '\n )}`\n );\n\n const {model, source, params, opts} = props;\n const {type, apiVersion, apiBaseUrl, accessToken, connectionName} = source;\n\n assert(apiBaseUrl, 'executeModel: missing apiBaseUrl');\n assert(accessToken, 'executeModel: missing accessToken');\n assert(apiVersion === V3, 'executeModel: SQL Model API requires CARTO 3+');\n assert(type !== MapType.TILESET, 'executeModel: Tilesets not supported');\n\n let url = `${apiBaseUrl}/v3/sql/${connectionName}/model/${model}`;\n\n const {filters, filtersLogicalOperator = 'and', data} = source;\n const queryParameters = source.queryParameters\n ? JSON.stringify(source.queryParameters)\n : '';\n\n const queryParams: Record<string, string> = {\n type,\n client: getClient(),\n source: data,\n params: JSON.stringify(params),\n queryParameters,\n filters: JSON.stringify(filters),\n filtersLogicalOperator,\n };\n\n // API supports multiple filters, we apply it only to geoColumn\n const spatialFilters = source.spatialFilter\n ? {\n [source.geoColumn ? source.geoColumn : DEFAULT_GEO_COLUMN]:\n source.spatialFilter,\n }\n : undefined;\n\n if (spatialFilters) {\n queryParams.spatialFilters = JSON.stringify(spatialFilters);\n }\n\n const urlWithSearchParams =\n url + '?' + new URLSearchParams(queryParams).toString();\n const isGet = urlWithSearchParams.length <= REQUEST_GET_MAX_URL_LENGTH;\n if (isGet) {\n url = urlWithSearchParams;\n } else {\n // undo the JSON.stringify, @TODO find a better pattern\n queryParams.params = params as $TODO;\n queryParams.filters = filters as $TODO;\n queryParams.queryParameters = source.queryParameters as $TODO;\n if (spatialFilters) {\n queryParams.spatialFilters = spatialFilters as $TODO;\n }\n }\n return makeCall({\n url,\n accessToken: source.accessToken,\n opts: {\n ...opts,\n method: isGet ? 'GET' : 'POST',\n ...(!isGet && {body: JSON.stringify(queryParams)}),\n },\n });\n}\n","import {executeModel} from '../models/index.js';\nimport {\n CategoryRequestOptions,\n CategoryResponse,\n FormulaRequestOptions,\n FormulaResponse,\n HistogramRequestOptions,\n HistogramResponse,\n RangeRequestOptions,\n RangeResponse,\n ScatterRequestOptions,\n ScatterResponse,\n TableRequestOptions,\n TableResponse,\n TimeSeriesRequestOptions,\n TimeSeriesResponse,\n} from './types.js';\nimport {FilterLogicalOperator, Filter} from '../types.js';\nimport {SourceOptions} from '@deck.gl/carto';\nimport {getApplicableFilters, normalizeObjectKeys} from '../utils.js';\nimport {\n DEFAULT_API_BASE_URL,\n DEFAULT_GEO_COLUMN,\n ApiVersion,\n} from '../constants-internal.js';\nimport {getClient} from '../client.js';\nimport {ModelSource} from '../models/model.js';\n\nexport interface WidgetBaseSourceProps extends Omit<SourceOptions, 'filters'> {\n apiVersion?: ApiVersion;\n geoColumn?: string;\n filters?: Record<string, Filter>;\n filtersLogicalOperator?: FilterLogicalOperator;\n}\n\nexport type WidgetSource = WidgetBaseSource<WidgetBaseSourceProps>;\n\n/**\n * Source for Widget API requests on a data source defined by a SQL query.\n *\n * Abstract class. Use {@link WidgetQuerySource} or {@link WidgetTableSource}.\n */\nexport abstract class WidgetBaseSource<Props extends WidgetBaseSourceProps> {\n readonly props: Props;\n\n static defaultProps: Partial<WidgetBaseSourceProps> = {\n apiVersion: ApiVersion.V3,\n apiBaseUrl: DEFAULT_API_BASE_URL,\n clientId: getClient(),\n filters: {},\n filtersLogicalOperator: 'and',\n geoColumn: DEFAULT_GEO_COLUMN,\n };\n\n constructor(props: Props) {\n this.props = {...WidgetBaseSource.defaultProps, ...props};\n }\n\n /**\n * Subclasses of {@link WidgetBaseSource} must implement this method, calling\n * {@link WidgetBaseSource.prototype._getModelSource} for common source\n * properties, and adding additional required properties including 'type' and\n * 'data'.\n */\n protected abstract getModelSource(owner: string | undefined): ModelSource;\n\n protected _getModelSource(\n owner?: string\n ): Omit<ModelSource, 'type' | 'data'> {\n const props = this.props;\n return {\n apiVersion: props.apiVersion as ApiVersion,\n apiBaseUrl: props.apiBaseUrl as string,\n clientId: props.clientId as string,\n accessToken: props.accessToken,\n connectionName: props.connectionName,\n filters: getApplicableFilters(owner, props.filters),\n filtersLogicalOperator: props.filtersLogicalOperator,\n geoColumn: props.geoColumn,\n };\n }\n\n /****************************************************************************\n * CATEGORIES\n */\n\n /**\n * Returns a list of labeled datapoints for categorical data. Suitable for\n * charts including grouped bar charts, pie charts, and tree charts.\n */\n async getCategories(\n options: CategoryRequestOptions\n ): Promise<CategoryResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {column, operation, operationColumn} = params;\n\n type CategoriesModelResponse = {rows: {name: string; value: number}[]};\n\n return executeModel({\n model: 'category',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n column,\n operation,\n operationColumn: operationColumn || column,\n },\n opts: {abortController},\n }).then((res: CategoriesModelResponse) => normalizeObjectKeys(res.rows));\n }\n\n /****************************************************************************\n * FORMULA\n */\n\n /**\n * Returns a scalar numerical statistic over all matching data. Suitable\n * for 'headline' or 'scorecard' figures such as counts and sums.\n */\n async getFormula(options: FormulaRequestOptions): Promise<FormulaResponse> {\n const {\n filterOwner,\n spatialFilter,\n abortController,\n operationExp,\n ...params\n } = options;\n const {column, operation} = params;\n\n type FormulaModelResponse = {rows: {value: number}[]};\n\n return executeModel({\n model: 'formula',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {column: column ?? '*', operation, operationExp},\n opts: {abortController},\n }).then((res: FormulaModelResponse) => normalizeObjectKeys(res.rows[0]));\n }\n\n /****************************************************************************\n * HISTOGRAM\n */\n\n /**\n * Returns a list of labeled datapoints for 'bins' of data defined as ticks\n * over a numerical range. Suitable for histogram charts.\n */\n async getHistogram(\n options: HistogramRequestOptions\n ): Promise<HistogramResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {column, operation, ticks} = params;\n\n type HistogramModelResponse = {rows: {tick: number; value: number}[]};\n\n const data = await executeModel({\n model: 'histogram',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {column, operation, ticks},\n opts: {abortController},\n }).then((res: HistogramModelResponse) => normalizeObjectKeys(res.rows));\n\n if (data.length) {\n // Given N ticks the API returns up to N+1 bins, omitting any empty bins. Bins\n // include 1 bin below the lowest tick, N-1 between ticks, and 1 bin above the highest tick.\n const result = Array(ticks.length + 1).fill(0);\n data.forEach(\n ({tick, value}: {tick: number; value: number}) => (result[tick] = value)\n );\n return result;\n }\n\n return [];\n }\n\n /****************************************************************************\n * RANGE\n */\n\n /**\n * Returns a range (min and max) for a numerical column of matching rows.\n * Suitable for displaying certain 'headline' or 'scorecard' statistics,\n * or rendering a range slider UI for filtering.\n */\n async getRange(options: RangeRequestOptions): Promise<RangeResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {column} = params;\n\n type RangeModelResponse = {rows: {min: number; max: number}[]};\n\n return executeModel({\n model: 'range',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {column},\n opts: {abortController},\n }).then((res: RangeModelResponse) => normalizeObjectKeys(res.rows[0]));\n }\n\n /****************************************************************************\n * SCATTER\n */\n\n /**\n * Returns a list of bivariate datapoints defined as numerical 'x' and 'y'\n * values. Suitable for rendering scatter plots.\n */\n async getScatter(options: ScatterRequestOptions): Promise<ScatterResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {xAxisColumn, xAxisJoinOperation, yAxisColumn, yAxisJoinOperation} =\n params;\n\n // Make sure this is sync with the same constant in cloud-native/maps-api\n const HARD_LIMIT = 500;\n\n type ScatterModelResponse = {rows: {x: number; y: number}[]};\n\n return executeModel({\n model: 'scatterplot',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n xAxisColumn,\n xAxisJoinOperation,\n yAxisColumn,\n yAxisJoinOperation,\n limit: HARD_LIMIT,\n },\n opts: {abortController},\n })\n .then((res: ScatterModelResponse) => normalizeObjectKeys(res.rows))\n .then((res) => res.map(({x, y}: {x: number; y: number}) => [x, y]));\n }\n\n /****************************************************************************\n * TABLE\n */\n\n /**\n * Returns a list of arbitrary data rows, with support for pagination and\n * sorting. Suitable for displaying tables and lists.\n */\n async getTable(options: TableRequestOptions): Promise<TableResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {columns, sortBy, sortDirection, page = 0, rowsPerPage = 10} = params;\n\n type TableModelResponse = {\n rows: Record<string, number | string>[];\n metadata: {total: number};\n };\n\n return executeModel({\n model: 'table',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n column: columns,\n sortBy,\n sortDirection,\n limit: rowsPerPage,\n offset: page * rowsPerPage,\n },\n opts: {abortController},\n }).then((res: TableModelResponse) => ({\n rows: normalizeObjectKeys(res.rows),\n totalCount: res.metadata.total,\n }));\n }\n\n /****************************************************************************\n * TIME SERIES\n */\n\n /**\n * Returns a series of labeled numerical values, grouped into equally-sized\n * time intervals. Suitable for rendering time series charts.\n */\n async getTimeSeries(\n options: TimeSeriesRequestOptions\n ): Promise<TimeSeriesResponse> {\n const {filterOwner, abortController, spatialFilter, ...params} = options;\n const {\n column,\n operationColumn,\n joinOperation,\n operation,\n stepSize,\n stepMultiplier,\n splitByCategory,\n splitByCategoryLimit,\n splitByCategoryValues,\n } = params;\n\n type TimeSeriesModelResponse = {\n rows: {name: string; value: number}[];\n metadata: {categories: string[]};\n };\n\n return executeModel({\n model: 'timeseries',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n column,\n stepSize,\n stepMultiplier,\n operationColumn: operationColumn || column,\n joinOperation,\n operation,\n splitByCategory,\n splitByCategoryLimit,\n splitByCategoryValues,\n },\n opts: {abortController},\n }).then((res: TimeSeriesModelResponse) => ({\n rows: normalizeObjectKeys(res.rows),\n categories: res.metadata?.categories,\n }));\n }\n}\n","import {\n H3QuerySourceOptions,\n QuadbinQuerySourceOptions,\n VectorQuerySourceOptions,\n} from '@deck.gl/carto';\nimport {MapType} from '../constants-internal.js';\nimport {WidgetBaseSource, WidgetBaseSourceProps} from './widget-base-source.js';\nimport {ModelSource} from '../models/model.js';\n\ntype LayerQuerySourceOptions =\n | Omit<VectorQuerySourceOptions, 'filters'>\n | Omit<H3QuerySourceOptions, 'filters'>\n | Omit<QuadbinQuerySourceOptions, 'filters'>;\n\n/**\n * Source for Widget API requests on a data source defined by a SQL query.\n *\n * Generally not intended to be constructed directly. Instead, call\n * {@link vectorQuerySource}, {@link h3QuerySource}, or {@link quadbinQuerySource},\n * which can be shared with map layers. Sources contain a `widgetSource` property,\n * for use by widget implementations.\n *\n * Example:\n *\n * ```javascript\n * import { vectorQuerySource } from '@carto/api-client';\n *\n * const data = vectorQuerySource({\n * accessToken: '••••',\n * connectionName: 'carto_dw',\n * sqlQuery: 'SELECT * FROM carto-demo-data.demo_tables.retail_stores'\n * });\n *\n * const { widgetSource } = await data;\n * ```\n */\nexport class WidgetQuerySource extends WidgetBaseSource<\n LayerQuerySourceOptions & WidgetBaseSourceProps\n> {\n protected override getModelSource(owner: string): ModelSource {\n return {\n ...super._getModelSource(owner),\n type: MapType.QUERY,\n data: this.props.sqlQuery,\n queryParameters: this.props.queryParameters,\n };\n }\n}\n","import {\n H3TableSourceOptions,\n QuadbinTableSourceOptions,\n VectorTableSourceOptions,\n} from '@deck.gl/carto';\nimport {WidgetBaseSource, WidgetBaseSourceProps} from './widget-base-source.js';\nimport {MapType} from '../constants-internal.js';\nimport {ModelSource} from '../models/model.js';\n\ntype LayerTableSourceOptions =\n | Omit<VectorTableSourceOptions, 'filters'>\n | Omit<H3TableSourceOptions, 'filters'>\n | Omit<QuadbinTableSourceOptions, 'filters'>;\n\n/**\n * Source for Widget API requests on a data source defined as a table.\n *\n * Generally not intended to be constructed directly. Instead, call\n * {@link vectorTableSource}, {@link h3TableSource}, or {@link quadbinTableSource},\n * which can be shared with map layers. Sources contain a `widgetSource` property,\n * for use by widget implementations.\n *\n * Example:\n *\n * ```javascript\n * import { vectorTableSource } from '@carto/api-client';\n *\n * const data = vectorTableSource({\n * accessToken: '••••',\n * connectionName: 'carto_dw',\n * tableName: 'carto-demo-data.demo_tables.retail_stores'\n * });\n *\n * const { widgetSource } = await data;\n * ```\n */\nexport class WidgetTableSource extends WidgetBaseSource<\n LayerTableSourceOptions & WidgetBaseSourceProps\n> {\n protected override getModelSource(owner: string): ModelSource {\n return {\n ...super._getModelSource(owner),\n type: MapType.TABLE,\n data: this.props.tableName,\n };\n }\n}\n","// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst isBoolean = (x) => typeof x === 'boolean';\nconst isFunction = (x) => typeof x === 'function';\nexport const isObject = (x) => x !== null && typeof x === 'object';\nexport const isPureObject = (x) => isObject(x) && x.constructor === {}.constructor;\nexport const isPromise = (x) => isObject(x) && isFunction(x.then);\nexport const isIterable = (x) => Boolean(x) && typeof x[Symbol.iterator] === 'function';\nexport const isAsyncIterable = (x) => x && typeof x[Symbol.asyncIterator] === 'function';\nexport const isIterator = (x) => x && isFunction(x.next);\nexport const isResponse = (x) => (typeof Response !== 'undefined' && x instanceof Response) ||\n (x && x.arrayBuffer && x.text && x.json);\nexport const isFile = (x) => typeof File !== 'undefined' && x instanceof File;\nexport const isBlob = (x) => typeof Blob !== 'undefined' && x instanceof Blob;\n/** Check for Node.js `Buffer` without triggering bundler to include buffer polyfill */\nexport const isBuffer = (x) => x && typeof x === 'object' && x.isBuffer;\nexport const isWritableDOMStream = (x) => isObject(x) && isFunction(x.abort) && isFunction(x.getWriter);\nexport const isReadableDOMStream = (x) => (typeof ReadableStream !== 'undefined' && x instanceof ReadableStream) ||\n (isObject(x) && isFunction(x.tee) && isFunction(x.cancel) && isFunction(x.getReader));\n// Not implemented in Firefox: && isFunction(x.pipeTo)\nexport const isWritableNodeStream = (x) => isObject(x) && isFunction(x.end) && isFunction(x.write) && isBoolean(x.writable);\nexport const isReadableNodeStream = (x) => isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\nexport const isReadableStream = (x) => isReadableDOMStream(x) || isReadableNodeStream(x);\nexport const isWritableStream = (x) => isWritableDOMStream(x) || isWritableNodeStream(x);\n","export const DEFAULT_TILE_SIZE = 512;\nexport const DEFAULT_TILE_RESOLUTION = 0.5;\nexport const DEFAULT_AGGREGATION_RES_LEVEL_H3 = 4;\nexport const DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN = 6;\n","/**\n *\n * Custom error for reported errors in CARTO Maps API.\n * Provides useful debugging information in console and context for applications.\n *\n */\nexport class CartoAPIError extends Error {\n constructor(error, errorContext, response) {\n let responseString = 'Failed to connect';\n if (response) {\n responseString = 'Server returned: ';\n if (response.status === 400) {\n responseString += 'Bad request';\n }\n else if (response.status === 401 || response.status === 403) {\n responseString += 'Unauthorized access';\n }\n else if (response.status === 404) {\n responseString += 'Not found';\n }\n else {\n responseString += 'Error';\n }\n responseString += ` (${response.status}):`;\n }\n responseString += ` ${error.message || error}`;\n let message = `${errorContext.requestType} API request failed`;\n message += `\\n${responseString}`;\n for (const key of Object.keys(errorContext)) {\n if (key === 'requestType')\n continue; // eslint-disable-line no-continue\n message += `\\n${formatErrorKey(key)}: ${errorContext[key]}`;\n }\n message += '\\n';\n super(message);\n this.name = 'CartoAPIError';\n this.response = response;\n this.error = error;\n this.errorContext = errorContext;\n }\n}\n/**\n * Converts camelCase to Camel Case\n */\nfunction formatErrorKey(key) {\n return key.replace(/([A-Z])/g, ' $1').replace(/^./, s => s.toUpperCase());\n}\n","import { VERSION } from '@deck.gl/core';\nexport const DEFAULT_API_BASE_URL = 'https://gcp-us-east1.api.carto.com';\nexport const DEFAULT_CLIENT = 'deck-gl-carto';\nexport const V3_MINOR_VERSION = '3.4';\nexport const MAX_GET_LENGTH = 8192;\nexport const DEFAULT_PARAMETERS = {\n v: V3_MINOR_VERSION,\n deckglVersion: VERSION\n};\nexport const DEFAULT_HEADERS = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n};\n","function joinPath(...args) {\n return args.map(part => (part.endsWith('/') ? part.slice(0, -1) : part)).join('/');\n}\nfunction buildV3Path(apiBaseUrl, version, endpoint, ...rest) {\n return joinPath(apiBaseUrl, version, endpoint, ...rest);\n}\nexport function buildPublicMapUrl({ apiBaseUrl, cartoMapId }) {\n return buildV3Path(apiBaseUrl, 'v3', 'maps', 'public', cartoMapId);\n}\nexport function buildStatsUrl({ attribute, apiBaseUrl, connectionName, source, type }) {\n if (type === 'query') {\n return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, attribute);\n }\n // type === 'table'\n return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, source, attribute);\n}\nexport function buildSourceUrl({ apiBaseUrl, connectionName, endpoint }) {\n return buildV3Path(apiBaseUrl, 'v3', 'maps', connectionName, endpoint);\n}\nexport function buildQueryUrl({ apiBaseUrl, connectionName }) {\n return buildV3Path(apiBaseUrl, 'v3', 'sql', connectionName, 'query');\n}\n","import { isPureObject } from '@loaders.gl/core';\nimport { CartoAPIError } from \"./carto-api-error.js\";\nimport { DEFAULT_HEADERS, DEFAULT_PARAMETERS, MAX_GET_LENGTH } from \"./common.js\";\n/**\n * Simple encode parameter\n */\nfunction encodeParameter(name, value) {\n if (isPureObject(value) || Array.isArray(value)) {\n return `${name}=${encodeURIComponent(JSON.stringify(value))}`;\n }\n return `${name}=${encodeURIComponent(value)}`;\n}\nconst REQUEST_CACHE = new Map();\nexport async function requestWithParameters({ baseUrl, parameters, headers: customHeaders, errorContext }) {\n parameters = { ...DEFAULT_PARAMETERS, ...parameters };\n const key = createCacheKey(baseUrl, parameters || {}, customHeaders || {});\n if (REQUEST_CACHE.has(key)) {\n return REQUEST_CACHE.get(key);\n }\n const url = parameters ? createURLWithParameters(baseUrl, parameters) : baseUrl;\n const headers = { ...DEFAULT_HEADERS, ...customHeaders };\n /* global fetch */\n const fetchPromise = url.length > MAX_GET_LENGTH\n ? fetch(baseUrl, { method: 'POST', body: JSON.stringify(parameters), headers })\n : fetch(url, { headers });\n let response;\n const jsonPromise = fetchPromise\n .then((_response) => {\n response = _response;\n return response.json();\n })\n .then((json) => {\n if (!response || !response.ok) {\n throw new Error(json.error);\n }\n return json;\n })\n .catch((error) => {\n REQUEST_CACHE.delete(key);\n throw new CartoAPIError(error, errorContext, response);\n });\n REQUEST_CACHE.set(key, jsonPromise);\n return jsonPromise;\n}\nfunction createCacheKey(baseUrl, parameters, headers) {\n const parameterEntries = Object.entries(parameters).sort(([a], [b]) => (a > b ? 1 : -1));\n const headerEntries = Object.entries(headers).sort(([a], [b]) => (a > b ? 1 : -1));\n return JSON.stringify({ baseUrl, parameters: parameterEntries, headers: headerEntries });\n}\nfunction createURLWithParameters(baseUrl, parameters) {\n const encodedParameters = Object.entries(parameters).map(([key, value]) => encodeParameter(key, value));\n return `${baseUrl}?${encodedParameters.join('&')}`;\n}\n","/* eslint-disable camelcase */\nimport { DEFAULT_API_BASE_URL, DEFAULT_CLIENT } from \"../api/common.js\";\nimport { buildSourceUrl } from \"../api/endpoints.js\";\nimport { requestWithParameters } from \"../api/request-with-parameters.js\";\nexport const SOURCE_DEFAULTS = {\n apiBaseUrl: DEFAULT_API_BASE_URL,\n clientId: DEFAULT_CLIENT,\n format: 'tilejson',\n headers: {}\n};\nexport async function baseSource(endpoint, options, urlParameters) {\n const { accessToken, connectionName, cache, ...optionalOptions } = options;\n const mergedOptions = { ...SOURCE_DEFAULTS, accessToken, connectionName, endpoint };\n for (const key in optionalOptions) {\n if (optionalOptions[key]) {\n mergedOptions[key] = optionalOptions[key];\n }\n }\n const baseUrl = buildSourceUrl(mergedOptions);\n const { clientId, format } = mergedOptions;\n const headers = { Authorization: `Bearer ${options.accessToken}`, ...options.headers };\n const parameters = { client: clientId, ...urlParameters };\n const errorContext = {\n requestType: 'Map instantiation',\n connection: options.connectionName,\n type: endpoint,\n source: JSON.stringify(parameters, undefined, 2)\n };\n const mapInstantiation = await requestWithParameters({\n baseUrl,\n parameters,\n headers,\n errorContext\n });\n const dataUrl = mapInstantiation[format].url[0];\n if (cache) {\n cache.value = parseInt(new URL(dataUrl).searchParams.get('cache') || '', 10);\n }\n errorContext.requestType = 'Map data';\n if (format === 'tilejson') {\n const json = await requestWithParameters({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n if (accessToken) {\n json.accessToken = accessToken;\n }\n return json;\n }\n return await requestWithParameters({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n}\n","import { baseSource } from \"./base-source.js\";\nexport const boundaryQuerySource = async function (options) {\n const { columns, filters, tilesetTableName, matchingColumn = 'id', propertiesSqlQuery, queryParameters } = options;\n const urlParameters = {\n tilesetTableName,\n matchingColumn,\n propertiesSqlQuery\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('boundary', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const boundaryTableSource = async function (options) {\n const { filters, tilesetTableName, columns, matchingColumn = 'id', propertiesTableName } = options;\n const urlParameters = {\n tilesetTableName,\n matchingColumn,\n propertiesTableName\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n return baseSource('boundary', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_H3 } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const h3QuerySource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3, sqlQuery, spatialDataColumn = 'h3', queryParameters } = options;\n const urlParameters = {\n aggregationExp,\n spatialDataColumn,\n spatialDataType: 'h3',\n q: sqlQuery\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('query', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_H3 } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const h3TableSource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3, spatialDataColumn = 'h3', tableName } = options;\n const urlParameters = {\n aggregationExp,\n name: tableName,\n spatialDataColumn,\n spatialDataType: 'h3'\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n return baseSource('table', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const h3TilesetSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('tileset', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const rasterSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('raster', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const quadbinQuerySource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN, sqlQuery, spatialDataColumn = 'quadbin', queryParameters } = options;\n const urlParameters = {\n aggregationExp,\n q: sqlQuery,\n spatialDataColumn,\n spatialDataType: 'quadbin'\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('query', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const quadbinTableSource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN, spatialDataColumn = 'quadbin', tableName } = options;\n const urlParameters = {\n aggregationExp,\n name: tableName,\n spatialDataColumn,\n spatialDataType: 'quadbin'\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n return baseSource('table', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const quadbinTilesetSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('tileset', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_TILE_RESOLUTION } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const vectorQuerySource = async function (options) {\n const { columns, filters, spatialDataColumn = 'geom', sqlQuery, tileResolution = DEFAULT_TILE_RESOLUTION, queryParameters } = options;\n const urlParameters = {\n spatialDataColumn,\n spatialDataType: 'geo',\n tileResolution: tileResolution.toString(),\n q: sqlQuery\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('query', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_TILE_RESOLUTION } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const vectorTableSource = async function (options) {\n const { columns, filters, spatialDataColumn = 'geom', tableName, tileResolution = DEFAULT_TILE_RESOLUTION } = options;\n const urlParameters = {\n name: tableName,\n spatialDataColumn,\n spatialDataType: 'geo',\n tileResolution: tileResolution.toString()\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n return baseSource('table', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const vectorTilesetSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('tileset', options, urlParameters);\n};\n","import { default as H3TileLayer } from \"./layers/h3-tile-layer.js\";\nimport { default as _PointLabelLayer } from \"./layers/point-label-layer.js\";\nimport { default as QuadbinTileLayer } from \"./layers/quadbin-tile-layer.js\";\nimport { default as QuadbinHeatmapTileLayer } from \"./layers/quadbin-heatmap-tile-layer.js\";\nimport { default as RasterTileLayer } from \"./layers/raster-tile-layer.js\";\nimport { default as VectorTileLayer } from \"./layers/vector-tile-layer.js\";\nconst CARTO_LAYERS = {\n H3TileLayer,\n _PointLabelLayer,\n QuadbinTileLayer,\n QuadbinHeatmapTileLayer,\n RasterTileLayer,\n VectorTileLayer\n};\nexport { CARTO_LAYERS, H3TileLayer, _PointLabelLayer, QuadbinTileLayer, QuadbinHeatmapTileLayer, RasterTileLayer, VectorTileLayer };\nexport { default as BASEMAP } from \"./basemap.js\";\nexport { default as colorBins } from \"./style/color-bins-style.js\";\nexport { default as colorCategories } from \"./style/color-categories-style.js\";\nexport { default as colorContinuous } from \"./style/color-continuous-style.js\";\nexport { CartoAPIError, fetchMap, query } from \"./api/index.js\";\nimport { boundaryQuerySource, boundaryTableSource, h3QuerySource, h3TableSource, h3TilesetSource, rasterSource, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, vectorQuerySource, vectorTableSource, vectorTilesetSource, SOURCE_DEFAULTS } from \"./sources/index.js\";\nconst CARTO_SOURCES = {\n boundaryQuerySource,\n boundaryTableSource,\n h3QuerySource,\n h3TableSource,\n h3TilesetSource,\n rasterSource,\n quadbinQuerySource,\n quadbinTableSource,\n quadbinTilesetSource,\n vectorQuerySource,\n vectorTableSource,\n vectorTilesetSource\n};\nexport { boundaryQuerySource, boundaryTableSource, h3QuerySource, h3TableSource, h3TilesetSource, rasterSource, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, vectorQuerySource, vectorTableSource, vectorTilesetSource, CARTO_SOURCES, SOURCE_DEFAULTS };\n","import {\n h3TableSource as _h3TableSource,\n h3QuerySource as _h3QuerySource,\n vectorTableSource as _vectorTableSource,\n vectorQuerySource as _vectorQuerySource,\n quadbinTableSource as _quadbinTableSource,\n quadbinQuerySource as _quadbinQuerySource,\n VectorTableSourceOptions as _VectorTableSourceOptions,\n VectorQuerySourceOptions as _VectorQuerySourceOptions,\n H3TableSourceOptions as _H3TableSourceOptions,\n H3QuerySourceOptions as _H3QuerySourceOptions,\n QuadbinTableSourceOptions as _QuadbinTableSourceOptions,\n QuadbinQuerySourceOptions as _QuadbinQuerySourceOptions,\n} from '@deck.gl/carto';\nimport {WidgetBaseSourceProps} from './widget-base-source.js';\nimport {WidgetQuerySource} from './widget-query-source.js';\nimport {WidgetTableSource} from './widget-table-source.js';\n\ntype WrappedSourceOptions<T> = Omit<T, 'filters'> & WidgetBaseSourceProps;\n\n/******************************************************************************\n * RESPONSE OBJECTS\n */\n\ntype WidgetTableSourceResponse = {widgetSource: WidgetTableSource};\ntype WidgetQuerySourceResponse = {widgetSource: WidgetQuerySource};\n\nexport type VectorTableSourceResponse = WidgetTableSourceResponse &\n Awaited<ReturnType<typeof _vectorTableSource>>;\nexport type VectorQuerySourceResponse = WidgetQuerySourceResponse &\n Awaited<ReturnType<typeof _vectorQuerySource>>;\n\nexport type H3TableSourceResponse = WidgetTableSourceResponse &\n Awaited<ReturnType<typeof _h3TableSource>>;\nexport type H3QuerySourceResponse = WidgetQuerySourceResponse &\n Awaited<ReturnType<typeof _h3QuerySource>>;\n\nexport type QuadbinTableSourceResponse = WidgetTableSourceResponse &\n Awaited<ReturnType<typeof _quadbinTableSource>>;\nexport type QuadbinQuerySourceResponse = WidgetQuerySourceResponse &\n Awaited<ReturnType<typeof _quadbinQuerySource>>;\n\n/******************************************************************************\n * VECTOR SOURCES\n */\n\nexport type VectorTableSourceOptions =\n WrappedSourceOptions<_VectorTableSourceOptions>;\n\nexport type VectorQuerySourceOptions =\n WrappedSourceOptions<_VectorQuerySourceOptions>;\n\n/** Wrapper adding Widget API support to [vectorTableSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function vectorTableSource(\n props: VectorTableSourceOptions\n): Promise<VectorTableSourceResponse> {\n const response = await _vectorTableSource(props as _VectorTableSourceOptions);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding Widget API support to [vectorQuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function vectorQuerySource(\n props: VectorQuerySourceOptions\n): Promise<VectorQuerySourceResponse> {\n const response = await _vectorQuerySource(props as _VectorQuerySourceOptions);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/** Wrapper adding Widget API support to [vectorTilesetSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function vectorTilesetSource() {\n throw new Error('not implemented');\n}\n\n/******************************************************************************\n * H3 SOURCES\n */\n\nexport type H3TableSourceOptions = WrappedSourceOptions<_H3TableSourceOptions>;\nexport type H3QuerySourceOptions = WrappedSourceOptions<_H3QuerySourceOptions>;\n\n/** Wrapper adding Widget API support to [h3TableSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function h3TableSource(\n props: H3TableSourceOptions\n): Promise<H3TableSourceResponse> {\n const response = await _h3TableSource(props);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding Widget API support to [h3QuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function h3QuerySource(\n props: H3QuerySourceOptions\n): Promise<H3QuerySourceResponse> {\n const response = await _h3QuerySource(props);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/** Wrapper adding Widget API support to [h3TilesetSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function h3TilesetSource() {\n throw new Error('not implemented');\n}\n\n/******************************************************************************\n * QUADBIN SOURCES\n */\n\nexport type QuadbinTableSourceOptions =\n WrappedSourceOptions<_QuadbinTableSourceOptions>;\n\nexport type QuadbinQuerySourceOptions =\n WrappedSourceOptions<_QuadbinQuerySourceOptions>;\n\n/** Wrapper adding Widget API support to [quadbinTableSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function quadbinTableSource(\n props: QuadbinTableSourceOptions & WidgetBaseSourceProps\n): Promise<QuadbinTableSourceResponse> {\n const response = await _quadbinTableSource(props);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding Widget API support to [quadbinQuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function quadbinQuerySource(\n props: QuadbinQuerySourceOptions & WidgetBaseSourceProps\n): Promise<QuadbinQuerySourceResponse> {\n const response = await _quadbinQuerySource(props);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/** Wrapper adding Widget API support to [quadbinTilesetSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function quadbinTilesetSource() {\n throw new Error('not implemented');\n}\n"],"names":["client","getClient","setClient","c","GroupDateType","FilterType","DEFAULT_API_BASE_URL","DEFAULT_GEO_COLUMN","MapType","ApiVersion","FILTER_TYPES","Set","Object","values","isFilterType","type","has","getApplicableFilters","owner","filters","applicableFilters","column","filter","normalizeObjectKeys","el","Array","isArray","map","value","entries","reduce","acc","_ref","key","toLowerCase","assert","condition","message","Error","InvalidColumnError","constructor","NAME","name","is","error","includes","makeCall","_ref2","url","accessToken","opts","_exit","_temp2","_result","response","ok","dealWithApiError","data","isPost","method","_temp","_catch","Promise","resolve","fetch","toString","headers","Authorization","body","signal","abortController","otherOptions","then","_fetch","json","_response$json","e","reject","column_name","status","msg","JSON","stringify","hint","AVAILABLE_MODELS","V3","REQUEST_GET_MAX_URL_LENGTH","executeModel","props","source","model","params","join","apiVersion","apiBaseUrl","connectionName","TILESET","filtersLogicalOperator","queryParameters","queryParams","spatialFilters","spatialFilter","geoColumn","undefined","urlWithSearchParams","URLSearchParams","isGet","length","WidgetBaseSource","defaultProps","_getModelSource","clientId","getCategories","options","_this","filterOwner","operation","operationColumn","getModelSource","res","rows","getFormula","_this2","operationExp","getHistogram","_this3","ticks","result","fill","forEach","tick","getRange","_this4","getScatter","_this5","xAxisColumn","xAxisJoinOperation","yAxisColumn","yAxisJoinOperation","HARD_LIMIT","limit","x","y","getTable","_this6","columns","sortBy","sortDirection","page","rowsPerPage","offset","totalCount","metadata","total","getTimeSeries","_this7","joinOperation","stepSize","stepMultiplier","splitByCategory","splitByCategoryLimit","splitByCategoryValues","categories","WidgetQuerySource","QUERY","sqlQuery","WidgetTableSource","TABLE","tableName","isObject","isPureObject","DEFAULT_TILE_RESOLUTION","DEFAULT_AGGREGATION_RES_LEVEL_H3","DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN","CartoAPIError","errorContext","responseString","requestType","keys","formatErrorKey","replace","s","toUpperCase","DEFAULT_CLIENT","V3_MINOR_VERSION","MAX_GET_LENGTH","DEFAULT_PARAMETERS","v","deckglVersion","DEFAULT_HEADERS","Accept","joinPath","args","part","endsWith","slice","buildV3Path","version","endpoint","rest","buildSourceUrl","encodeParameter","encodeURIComponent","REQUEST_CACHE","Map","requestWithParameters","baseUrl","parameters","customHeaders","createCacheKey","get","createURLWithParameters","fetchPromise","jsonPromise","_response","catch","delete","set","parameterEntries","sort","a","b","headerEntries","encodedParameters","SOURCE_DEFAULTS","format","baseSource","urlParameters","cache","optionalOptions","mergedOptions","connection","mapInstantiation","dataUrl","parseInt","URL","searchParams","boundaryQuerySource","tilesetTableName","matchingColumn","propertiesSqlQuery","boundaryTableSource","propertiesTableName","h3QuerySource","aggregationExp","aggregationResLevel","spatialDataColumn","spatialDataType","q","String","h3TableSource","h3TilesetSource","rasterSource","quadbinQuerySource","quadbinTableSource","quadbinTilesetSource","vectorQuerySource","tileResolution","vectorTableSource","vectorTilesetSource","_quadbinQuerySource","widgetSource","_quadbinTableSource","_h3QuerySource","_h3TableSource","_vectorQuerySource","_vectorTableSource"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.cjs","sources":["../src/client.ts","../src/constants.ts","../src/constants-internal.ts","../src/utils.ts","../src/models/common.ts","../src/models/model.ts","../src/sources/widget-base-source.ts","../src/sources/widget-query-source.ts","../src/sources/widget-table-source.ts","../node_modules/@loaders.gl/core/dist/javascript-utils/is-type.js","../node_modules/@deck.gl/carto/dist/constants.js","../node_modules/@deck.gl/carto/dist/api/carto-api-error.js","../node_modules/@deck.gl/carto/dist/api/common.js","../node_modules/@deck.gl/carto/dist/api/endpoints.js","../node_modules/@deck.gl/carto/dist/api/request-with-parameters.js","../node_modules/@deck.gl/carto/dist/sources/base-source.js","../node_modules/@deck.gl/carto/dist/sources/boundary-query-source.js","../node_modules/@deck.gl/carto/dist/sources/boundary-table-source.js","../node_modules/@deck.gl/carto/dist/sources/h3-query-source.js","../node_modules/@deck.gl/carto/dist/sources/h3-table-source.js","../node_modules/@deck.gl/carto/dist/sources/h3-tileset-source.js","../node_modules/@deck.gl/carto/dist/sources/raster-source.js","../node_modules/@deck.gl/carto/dist/sources/quadbin-query-source.js","../node_modules/@deck.gl/carto/dist/sources/quadbin-table-source.js","../node_modules/@deck.gl/carto/dist/sources/quadbin-tileset-source.js","../node_modules/@deck.gl/carto/dist/sources/vector-query-source.js","../node_modules/@deck.gl/carto/dist/sources/vector-table-source.js","../node_modules/@deck.gl/carto/dist/sources/vector-tileset-source.js","../node_modules/@deck.gl/carto/dist/index.js","../src/sources/wrappers.ts"],"sourcesContent":["/**\n * @internal\n * @internalRemarks Source: @carto/react-core\n */\nlet client = 'carto-api-client';\n\n/**\n * Returns current client ID, used to categorize API requests. For internal use only.\n *\n * @internal\n * @internalRemarks Source: @carto/react-core\n */\nexport function getClient() {\n return client;\n}\n\n/**\n * Sets current client ID, used to categorize API requests. For internal use only.\n *\n * @internal\n * @internalRemarks Source: @carto/react-core\n */\nexport function setClient(c: string) {\n client = c;\n}\n","/**\n * Defines a step size increment for use with {@link TimeSeriesRequestOptions}.\n *\n * @internalRemarks Source: @carto/react-core\n */\nexport enum GroupDateType {\n YEARS = 'year',\n MONTHS = 'month',\n WEEKS = 'week',\n DAYS = 'day',\n HOURS = 'hour',\n MINUTES = 'minute',\n SECONDS = 'second',\n}\n\n/**\n * Defines a comparator used when matching a column's values against given filter values.\n *\n * Example:\n *\n * ```javascript\n * import { FilterType } from '@carto/api-client';\n * const filters = {\n * column_name: { [FilterType.IN]: { values: ['a', 'b', 'c'] } }\n * };\n * ```\n *\n * @internalRemarks Source: @carto/react-api, @deck.gl/carto\n */\nexport enum FilterType {\n IN = 'in',\n /** [a, b] both are included. */\n BETWEEN = 'between',\n /** [a, b) a is included, b is not. */\n CLOSED_OPEN = 'closed_open',\n TIME = 'time',\n STRING_SEARCH = 'stringSearch',\n}\n","/******************************************************************************\n * DEFAULTS\n */\n\n/**\n * @internalRemarks Source: @carto/constants\n * @internal\n */\nexport const DEFAULT_API_BASE_URL = 'https://gcp-us-east1.api.carto.com';\n\n/**\n * @internalRemarks Source: @carto/constants\n * @internal\n */\nexport const DEFAULT_CLIENT = 'deck-gl-carto';\n\n/**\n * @internalRemarks Source: @carto/react-api\n * @internal\n */\nexport const DEFAULT_GEO_COLUMN = 'geom';\n\n/******************************************************************************\n * ENUMS\n */\n\n/**\n * @internal\n * @internalRemarks Source: @carto/constants\n */\nexport enum MapType {\n TABLE = 'table',\n QUERY = 'query',\n TILESET = 'tileset',\n}\n\n/**\n * @internal\n * @internalRemarks Source: @carto/constants\n */\nexport enum ApiVersion {\n V1 = 'v1',\n V2 = 'v2',\n V3 = 'v3',\n}\n","import {Filter} from './types.js';\nimport {FilterType} from './constants.js';\nimport {$TODO} from './types-internal.js';\n\nconst FILTER_TYPES = new Set(Object.values(FilterType));\nconst isFilterType = (type: string): type is FilterType =>\n FILTER_TYPES.has(type as FilterType);\n\n/**\n * @privateRemarks Source: @carto/react-widgets\n * @internal\n */\nexport function getApplicableFilters(\n owner?: string,\n filters?: Record<string, Filter>\n): Record<string, Filter> {\n if (!filters) return {};\n\n const applicableFilters: Record<string, Filter> = {};\n\n for (const column in filters) {\n for (const type in filters[column]) {\n if (!isFilterType(type)) continue;\n\n const filter = filters[column][type];\n if (filter && filter.owner !== owner) {\n applicableFilters[column] ||= {};\n applicableFilters[column][type] = filter as $TODO;\n }\n }\n }\n\n return applicableFilters;\n}\n\ntype Row<T> = Record<string, T> | Record<string, T>[] | T[] | T;\n\n/**\n * Due to each data warehouse having its own behavior with columns,\n * we need to normalize them and transform every key to lowercase.\n *\n * @internalRemarks Source: @carto/react-widgets\n * @internal\n */\nexport function normalizeObjectKeys<T, R extends Row<T>>(el: R): R {\n if (Array.isArray(el)) {\n return el.map((value) => normalizeObjectKeys(value)) as R;\n } else if (typeof el !== 'object') {\n return el;\n }\n\n return Object.entries(el as Record<string, T>).reduce((acc, [key, value]) => {\n acc[key.toLowerCase()] =\n typeof value === 'object' && value ? normalizeObjectKeys(value) : value;\n return acc;\n }, {} as Record<string, T>) as R;\n}\n\n/** @internalRemarks Source: @carto/react-core */\nexport function assert(condition: unknown, message: string) {\n if (!condition) {\n throw new Error(message);\n }\n}\n\n/**\n * @internalRemarks Source: @carto/react-core\n * @internal\n */\nexport class InvalidColumnError extends Error {\n protected static readonly NAME = 'InvalidColumnError';\n\n constructor(message: string) {\n super(`${InvalidColumnError.NAME}: ${message}`);\n this.name = InvalidColumnError.NAME;\n }\n\n static is(error: unknown) {\n return (\n error instanceof InvalidColumnError ||\n (error as Error).message?.includes(InvalidColumnError.NAME)\n );\n }\n}\n","import {$TODO} from '../types-internal.js';\nimport {InvalidColumnError} from '../utils.js';\n\n/** @internalRemarks Source: @carto/react-api */\nexport interface ModelRequestOptions {\n method: 'GET' | 'POST';\n abortController?: AbortController;\n otherOptions?: Record<string, unknown>;\n body?: string;\n}\n\n/**\n * Return more descriptive error from API\n * @internalRemarks Source: @carto/react-api\n */\nexport function dealWithApiError({\n response,\n data,\n}: {\n response: Response;\n data: $TODO;\n}) {\n if (data.error === 'Column not found') {\n throw new InvalidColumnError(`${data.error} ${data.column_name}`);\n }\n\n if (data.error?.includes('Missing columns')) {\n throw new InvalidColumnError(data.error);\n }\n\n switch (response.status) {\n case 401:\n throw new Error('Unauthorized access. Invalid credentials');\n case 403:\n throw new Error('Forbidden access to the requested data');\n default:\n const msg =\n data && data.error && typeof data.error === 'string'\n ? data.error\n : JSON.stringify(data?.hint || data.error?.[0]);\n throw new Error(msg);\n }\n}\n\n/** @internalRemarks Source: @carto/react-api */\nexport async function makeCall({\n url,\n accessToken,\n opts,\n}: {\n url: string;\n accessToken: string;\n opts: ModelRequestOptions;\n}) {\n let response;\n let data;\n const isPost = opts?.method === 'POST';\n try {\n response = await fetch(url.toString(), {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n ...(isPost && {'Content-Type': 'application/json'}),\n },\n ...(isPost && {\n method: opts?.method,\n body: opts?.body,\n }),\n signal: opts?.abortController?.signal,\n ...opts?.otherOptions,\n });\n data = await response.json();\n } catch (error) {\n if ((error as Error).name === 'AbortError') throw error;\n\n throw new Error(`Failed request: ${error}`);\n }\n\n if (!response.ok) {\n dealWithApiError({response, data});\n }\n\n return data;\n}\n","import {getClient} from '../client.js';\nimport {\n ApiVersion,\n DEFAULT_GEO_COLUMN,\n MapType,\n} from '../constants-internal.js';\nimport {\n Filter,\n FilterLogicalOperator,\n QueryParameters,\n SpatialFilter,\n} from '../types.js';\nimport {$TODO} from '../types-internal.js';\nimport {assert} from '../utils.js';\nimport {ModelRequestOptions, makeCall} from './common.js';\n\n/** @internalRemarks Source: @carto/react-api */\nconst AVAILABLE_MODELS = [\n 'category',\n 'histogram',\n 'formula',\n 'timeseries',\n 'range',\n 'scatterplot',\n 'table',\n] as const;\n\nexport type Model = (typeof AVAILABLE_MODELS)[number];\n\nexport interface ModelSource {\n type: MapType;\n apiVersion: ApiVersion;\n apiBaseUrl: string;\n accessToken: string;\n clientId: string;\n connectionName: string;\n data: string;\n filters?: Record<string, Filter>;\n filtersLogicalOperator?: FilterLogicalOperator;\n geoColumn?: string;\n spatialFilter?: SpatialFilter;\n queryParameters?: QueryParameters;\n}\n\nconst {V3} = ApiVersion;\nconst REQUEST_GET_MAX_URL_LENGTH = 2048;\n\n/**\n * Execute a SQL model request.\n * @internalRemarks Source: @carto/react-api\n */\nexport function executeModel(props: {\n model: Model;\n source: ModelSource;\n params: Record<string, unknown>;\n opts?: Partial<ModelRequestOptions>;\n}) {\n assert(props.source, 'executeModel: missing source');\n assert(props.model, 'executeModel: missing model');\n assert(props.params, 'executeModel: missing params');\n\n assert(\n AVAILABLE_MODELS.includes(props.model),\n `executeModel: model provided isn't valid. Available models: ${AVAILABLE_MODELS.join(\n ', '\n )}`\n );\n\n const {model, source, params, opts} = props;\n const {type, apiVersion, apiBaseUrl, accessToken, connectionName, clientId} =\n source;\n\n assert(apiBaseUrl, 'executeModel: missing apiBaseUrl');\n assert(accessToken, 'executeModel: missing accessToken');\n assert(apiVersion === V3, 'executeModel: SQL Model API requires CARTO 3+');\n assert(type !== MapType.TILESET, 'executeModel: Tilesets not supported');\n\n let url = `${apiBaseUrl}/v3/sql/${connectionName}/model/${model}`;\n\n const {filters, filtersLogicalOperator = 'and', data} = source;\n const queryParameters = source.queryParameters\n ? JSON.stringify(source.queryParameters)\n : '';\n\n const queryParams: Record<string, string> = {\n type,\n client: clientId,\n source: data,\n params: JSON.stringify(params),\n queryParameters,\n filters: JSON.stringify(filters),\n filtersLogicalOperator,\n };\n\n // API supports multiple filters, we apply it only to geoColumn\n const spatialFilters = source.spatialFilter\n ? {\n [source.geoColumn ? source.geoColumn : DEFAULT_GEO_COLUMN]:\n source.spatialFilter,\n }\n : undefined;\n\n if (spatialFilters) {\n queryParams.spatialFilters = JSON.stringify(spatialFilters);\n }\n\n const urlWithSearchParams =\n url + '?' + new URLSearchParams(queryParams).toString();\n const isGet = urlWithSearchParams.length <= REQUEST_GET_MAX_URL_LENGTH;\n if (isGet) {\n url = urlWithSearchParams;\n } else {\n // undo the JSON.stringify, @TODO find a better pattern\n queryParams.params = params as $TODO;\n queryParams.filters = filters as $TODO;\n queryParams.queryParameters = source.queryParameters as $TODO;\n if (spatialFilters) {\n queryParams.spatialFilters = spatialFilters as $TODO;\n }\n }\n return makeCall({\n url,\n accessToken: source.accessToken,\n opts: {\n ...opts,\n method: isGet ? 'GET' : 'POST',\n ...(!isGet && {body: JSON.stringify(queryParams)}),\n },\n });\n}\n","import {executeModel} from '../models/index.js';\nimport {\n CategoryRequestOptions,\n CategoryResponse,\n FormulaRequestOptions,\n FormulaResponse,\n HistogramRequestOptions,\n HistogramResponse,\n RangeRequestOptions,\n RangeResponse,\n ScatterRequestOptions,\n ScatterResponse,\n TableRequestOptions,\n TableResponse,\n TimeSeriesRequestOptions,\n TimeSeriesResponse,\n} from './types.js';\nimport {FilterLogicalOperator, Filter} from '../types.js';\nimport {SourceOptions} from '@deck.gl/carto';\nimport {getApplicableFilters, normalizeObjectKeys} from '../utils.js';\nimport {\n DEFAULT_API_BASE_URL,\n DEFAULT_GEO_COLUMN,\n ApiVersion,\n} from '../constants-internal.js';\nimport {getClient} from '../client.js';\nimport {ModelSource} from '../models/model.js';\n\nexport interface WidgetBaseSourceProps extends Omit<SourceOptions, 'filters'> {\n apiVersion?: ApiVersion;\n geoColumn?: string;\n filters?: Record<string, Filter>;\n filtersLogicalOperator?: FilterLogicalOperator;\n}\n\nexport type WidgetSource = WidgetBaseSource<WidgetBaseSourceProps>;\n\n/**\n * Source for Widget API requests on a data source defined by a SQL query.\n *\n * Abstract class. Use {@link WidgetQuerySource} or {@link WidgetTableSource}.\n */\nexport abstract class WidgetBaseSource<Props extends WidgetBaseSourceProps> {\n readonly props: Props;\n\n static defaultProps: Partial<WidgetBaseSourceProps> = {\n apiVersion: ApiVersion.V3,\n apiBaseUrl: DEFAULT_API_BASE_URL,\n clientId: getClient(),\n filters: {},\n filtersLogicalOperator: 'and',\n geoColumn: DEFAULT_GEO_COLUMN,\n };\n\n constructor(props: Props) {\n this.props = {...WidgetBaseSource.defaultProps, ...props};\n }\n\n /**\n * Subclasses of {@link WidgetBaseSource} must implement this method, calling\n * {@link WidgetBaseSource.prototype._getModelSource} for common source\n * properties, and adding additional required properties including 'type' and\n * 'data'.\n */\n protected abstract getModelSource(owner: string | undefined): ModelSource;\n\n protected _getModelSource(\n owner?: string\n ): Omit<ModelSource, 'type' | 'data'> {\n const props = this.props;\n return {\n apiVersion: props.apiVersion as ApiVersion,\n apiBaseUrl: props.apiBaseUrl as string,\n clientId: props.clientId as string,\n accessToken: props.accessToken,\n connectionName: props.connectionName,\n filters: getApplicableFilters(owner, props.filters),\n filtersLogicalOperator: props.filtersLogicalOperator,\n geoColumn: props.geoColumn,\n };\n }\n\n /****************************************************************************\n * CATEGORIES\n */\n\n /**\n * Returns a list of labeled datapoints for categorical data. Suitable for\n * charts including grouped bar charts, pie charts, and tree charts.\n */\n async getCategories(\n options: CategoryRequestOptions\n ): Promise<CategoryResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {column, operation, operationColumn} = params;\n\n type CategoriesModelResponse = {rows: {name: string; value: number}[]};\n\n return executeModel({\n model: 'category',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n column,\n operation,\n operationColumn: operationColumn || column,\n },\n opts: {abortController},\n }).then((res: CategoriesModelResponse) => normalizeObjectKeys(res.rows));\n }\n\n /****************************************************************************\n * FORMULA\n */\n\n /**\n * Returns a scalar numerical statistic over all matching data. Suitable\n * for 'headline' or 'scorecard' figures such as counts and sums.\n */\n async getFormula(options: FormulaRequestOptions): Promise<FormulaResponse> {\n const {\n filterOwner,\n spatialFilter,\n abortController,\n operationExp,\n ...params\n } = options;\n const {column, operation} = params;\n\n type FormulaModelResponse = {rows: {value: number}[]};\n\n return executeModel({\n model: 'formula',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {column: column ?? '*', operation, operationExp},\n opts: {abortController},\n }).then((res: FormulaModelResponse) => normalizeObjectKeys(res.rows[0]));\n }\n\n /****************************************************************************\n * HISTOGRAM\n */\n\n /**\n * Returns a list of labeled datapoints for 'bins' of data defined as ticks\n * over a numerical range. Suitable for histogram charts.\n */\n async getHistogram(\n options: HistogramRequestOptions\n ): Promise<HistogramResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {column, operation, ticks} = params;\n\n type HistogramModelResponse = {rows: {tick: number; value: number}[]};\n\n const data = await executeModel({\n model: 'histogram',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {column, operation, ticks},\n opts: {abortController},\n }).then((res: HistogramModelResponse) => normalizeObjectKeys(res.rows));\n\n if (data.length) {\n // Given N ticks the API returns up to N+1 bins, omitting any empty bins. Bins\n // include 1 bin below the lowest tick, N-1 between ticks, and 1 bin above the highest tick.\n const result = Array(ticks.length + 1).fill(0);\n data.forEach(\n ({tick, value}: {tick: number; value: number}) => (result[tick] = value)\n );\n return result;\n }\n\n return [];\n }\n\n /****************************************************************************\n * RANGE\n */\n\n /**\n * Returns a range (min and max) for a numerical column of matching rows.\n * Suitable for displaying certain 'headline' or 'scorecard' statistics,\n * or rendering a range slider UI for filtering.\n */\n async getRange(options: RangeRequestOptions): Promise<RangeResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {column} = params;\n\n type RangeModelResponse = {rows: {min: number; max: number}[]};\n\n return executeModel({\n model: 'range',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {column},\n opts: {abortController},\n }).then((res: RangeModelResponse) => normalizeObjectKeys(res.rows[0]));\n }\n\n /****************************************************************************\n * SCATTER\n */\n\n /**\n * Returns a list of bivariate datapoints defined as numerical 'x' and 'y'\n * values. Suitable for rendering scatter plots.\n */\n async getScatter(options: ScatterRequestOptions): Promise<ScatterResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {xAxisColumn, xAxisJoinOperation, yAxisColumn, yAxisJoinOperation} =\n params;\n\n // Make sure this is sync with the same constant in cloud-native/maps-api\n const HARD_LIMIT = 500;\n\n type ScatterModelResponse = {rows: {x: number; y: number}[]};\n\n return executeModel({\n model: 'scatterplot',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n xAxisColumn,\n xAxisJoinOperation,\n yAxisColumn,\n yAxisJoinOperation,\n limit: HARD_LIMIT,\n },\n opts: {abortController},\n })\n .then((res: ScatterModelResponse) => normalizeObjectKeys(res.rows))\n .then((res) => res.map(({x, y}: {x: number; y: number}) => [x, y]));\n }\n\n /****************************************************************************\n * TABLE\n */\n\n /**\n * Returns a list of arbitrary data rows, with support for pagination and\n * sorting. Suitable for displaying tables and lists.\n */\n async getTable(options: TableRequestOptions): Promise<TableResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = options;\n const {columns, sortBy, sortDirection, page = 0, rowsPerPage = 10} = params;\n\n type TableModelResponse = {\n rows: Record<string, number | string>[];\n metadata: {total: number};\n };\n\n return executeModel({\n model: 'table',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n column: columns,\n sortBy,\n sortDirection,\n limit: rowsPerPage,\n offset: page * rowsPerPage,\n },\n opts: {abortController},\n }).then((res: TableModelResponse) => ({\n rows: normalizeObjectKeys(res.rows),\n totalCount: res.metadata.total,\n }));\n }\n\n /****************************************************************************\n * TIME SERIES\n */\n\n /**\n * Returns a series of labeled numerical values, grouped into equally-sized\n * time intervals. Suitable for rendering time series charts.\n */\n async getTimeSeries(\n options: TimeSeriesRequestOptions\n ): Promise<TimeSeriesResponse> {\n const {filterOwner, abortController, spatialFilter, ...params} = options;\n const {\n column,\n operationColumn,\n joinOperation,\n operation,\n stepSize,\n stepMultiplier,\n splitByCategory,\n splitByCategoryLimit,\n splitByCategoryValues,\n } = params;\n\n type TimeSeriesModelResponse = {\n rows: {name: string; value: number}[];\n metadata: {categories: string[]};\n };\n\n return executeModel({\n model: 'timeseries',\n source: {...this.getModelSource(filterOwner), spatialFilter},\n params: {\n column,\n stepSize,\n stepMultiplier,\n operationColumn: operationColumn || column,\n joinOperation,\n operation,\n splitByCategory,\n splitByCategoryLimit,\n splitByCategoryValues,\n },\n opts: {abortController},\n }).then((res: TimeSeriesModelResponse) => ({\n rows: normalizeObjectKeys(res.rows),\n categories: res.metadata?.categories,\n }));\n }\n}\n","import {\n H3QuerySourceOptions,\n QuadbinQuerySourceOptions,\n VectorQuerySourceOptions,\n} from '@deck.gl/carto';\nimport {MapType} from '../constants-internal.js';\nimport {WidgetBaseSource, WidgetBaseSourceProps} from './widget-base-source.js';\nimport {ModelSource} from '../models/model.js';\n\ntype LayerQuerySourceOptions =\n | Omit<VectorQuerySourceOptions, 'filters'>\n | Omit<H3QuerySourceOptions, 'filters'>\n | Omit<QuadbinQuerySourceOptions, 'filters'>;\n\n/**\n * Source for Widget API requests on a data source defined by a SQL query.\n *\n * Generally not intended to be constructed directly. Instead, call\n * {@link vectorQuerySource}, {@link h3QuerySource}, or {@link quadbinQuerySource},\n * which can be shared with map layers. Sources contain a `widgetSource` property,\n * for use by widget implementations.\n *\n * Example:\n *\n * ```javascript\n * import { vectorQuerySource } from '@carto/api-client';\n *\n * const data = vectorQuerySource({\n * accessToken: '••••',\n * connectionName: 'carto_dw',\n * sqlQuery: 'SELECT * FROM carto-demo-data.demo_tables.retail_stores'\n * });\n *\n * const { widgetSource } = await data;\n * ```\n */\nexport class WidgetQuerySource extends WidgetBaseSource<\n LayerQuerySourceOptions & WidgetBaseSourceProps\n> {\n protected override getModelSource(owner: string): ModelSource {\n return {\n ...super._getModelSource(owner),\n type: MapType.QUERY,\n data: this.props.sqlQuery,\n queryParameters: this.props.queryParameters,\n };\n }\n}\n","import {\n H3TableSourceOptions,\n QuadbinTableSourceOptions,\n VectorTableSourceOptions,\n} from '@deck.gl/carto';\nimport {WidgetBaseSource, WidgetBaseSourceProps} from './widget-base-source.js';\nimport {MapType} from '../constants-internal.js';\nimport {ModelSource} from '../models/model.js';\n\ntype LayerTableSourceOptions =\n | Omit<VectorTableSourceOptions, 'filters'>\n | Omit<H3TableSourceOptions, 'filters'>\n | Omit<QuadbinTableSourceOptions, 'filters'>;\n\n/**\n * Source for Widget API requests on a data source defined as a table.\n *\n * Generally not intended to be constructed directly. Instead, call\n * {@link vectorTableSource}, {@link h3TableSource}, or {@link quadbinTableSource},\n * which can be shared with map layers. Sources contain a `widgetSource` property,\n * for use by widget implementations.\n *\n * Example:\n *\n * ```javascript\n * import { vectorTableSource } from '@carto/api-client';\n *\n * const data = vectorTableSource({\n * accessToken: '••••',\n * connectionName: 'carto_dw',\n * tableName: 'carto-demo-data.demo_tables.retail_stores'\n * });\n *\n * const { widgetSource } = await data;\n * ```\n */\nexport class WidgetTableSource extends WidgetBaseSource<\n LayerTableSourceOptions & WidgetBaseSourceProps\n> {\n protected override getModelSource(owner: string): ModelSource {\n return {\n ...super._getModelSource(owner),\n type: MapType.TABLE,\n data: this.props.tableName,\n };\n }\n}\n","// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst isBoolean = (x) => typeof x === 'boolean';\nconst isFunction = (x) => typeof x === 'function';\nexport const isObject = (x) => x !== null && typeof x === 'object';\nexport const isPureObject = (x) => isObject(x) && x.constructor === {}.constructor;\nexport const isPromise = (x) => isObject(x) && isFunction(x.then);\nexport const isIterable = (x) => Boolean(x) && typeof x[Symbol.iterator] === 'function';\nexport const isAsyncIterable = (x) => x && typeof x[Symbol.asyncIterator] === 'function';\nexport const isIterator = (x) => x && isFunction(x.next);\nexport const isResponse = (x) => (typeof Response !== 'undefined' && x instanceof Response) ||\n (x && x.arrayBuffer && x.text && x.json);\nexport const isFile = (x) => typeof File !== 'undefined' && x instanceof File;\nexport const isBlob = (x) => typeof Blob !== 'undefined' && x instanceof Blob;\n/** Check for Node.js `Buffer` without triggering bundler to include buffer polyfill */\nexport const isBuffer = (x) => x && typeof x === 'object' && x.isBuffer;\nexport const isWritableDOMStream = (x) => isObject(x) && isFunction(x.abort) && isFunction(x.getWriter);\nexport const isReadableDOMStream = (x) => (typeof ReadableStream !== 'undefined' && x instanceof ReadableStream) ||\n (isObject(x) && isFunction(x.tee) && isFunction(x.cancel) && isFunction(x.getReader));\n// Not implemented in Firefox: && isFunction(x.pipeTo)\nexport const isWritableNodeStream = (x) => isObject(x) && isFunction(x.end) && isFunction(x.write) && isBoolean(x.writable);\nexport const isReadableNodeStream = (x) => isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\nexport const isReadableStream = (x) => isReadableDOMStream(x) || isReadableNodeStream(x);\nexport const isWritableStream = (x) => isWritableDOMStream(x) || isWritableNodeStream(x);\n","export const DEFAULT_TILE_SIZE = 512;\nexport const DEFAULT_TILE_RESOLUTION = 0.5;\nexport const DEFAULT_AGGREGATION_RES_LEVEL_H3 = 4;\nexport const DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN = 6;\n","/**\n *\n * Custom error for reported errors in CARTO Maps API.\n * Provides useful debugging information in console and context for applications.\n *\n */\nexport class CartoAPIError extends Error {\n constructor(error, errorContext, response) {\n let responseString = 'Failed to connect';\n if (response) {\n responseString = 'Server returned: ';\n if (response.status === 400) {\n responseString += 'Bad request';\n }\n else if (response.status === 401 || response.status === 403) {\n responseString += 'Unauthorized access';\n }\n else if (response.status === 404) {\n responseString += 'Not found';\n }\n else {\n responseString += 'Error';\n }\n responseString += ` (${response.status}):`;\n }\n responseString += ` ${error.message || error}`;\n let message = `${errorContext.requestType} API request failed`;\n message += `\\n${responseString}`;\n for (const key of Object.keys(errorContext)) {\n if (key === 'requestType')\n continue; // eslint-disable-line no-continue\n message += `\\n${formatErrorKey(key)}: ${errorContext[key]}`;\n }\n message += '\\n';\n super(message);\n this.name = 'CartoAPIError';\n this.response = response;\n this.error = error;\n this.errorContext = errorContext;\n }\n}\n/**\n * Converts camelCase to Camel Case\n */\nfunction formatErrorKey(key) {\n return key.replace(/([A-Z])/g, ' $1').replace(/^./, s => s.toUpperCase());\n}\n","import { VERSION } from '@deck.gl/core';\nexport const DEFAULT_API_BASE_URL = 'https://gcp-us-east1.api.carto.com';\nexport const DEFAULT_CLIENT = 'deck-gl-carto';\nexport const V3_MINOR_VERSION = '3.4';\nexport const MAX_GET_LENGTH = 8192;\nexport const DEFAULT_PARAMETERS = {\n v: V3_MINOR_VERSION,\n deckglVersion: VERSION\n};\nexport const DEFAULT_HEADERS = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n};\n","function joinPath(...args) {\n return args.map(part => (part.endsWith('/') ? part.slice(0, -1) : part)).join('/');\n}\nfunction buildV3Path(apiBaseUrl, version, endpoint, ...rest) {\n return joinPath(apiBaseUrl, version, endpoint, ...rest);\n}\nexport function buildPublicMapUrl({ apiBaseUrl, cartoMapId }) {\n return buildV3Path(apiBaseUrl, 'v3', 'maps', 'public', cartoMapId);\n}\nexport function buildStatsUrl({ attribute, apiBaseUrl, connectionName, source, type }) {\n if (type === 'query') {\n return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, attribute);\n }\n // type === 'table'\n return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, source, attribute);\n}\nexport function buildSourceUrl({ apiBaseUrl, connectionName, endpoint }) {\n return buildV3Path(apiBaseUrl, 'v3', 'maps', connectionName, endpoint);\n}\nexport function buildQueryUrl({ apiBaseUrl, connectionName }) {\n return buildV3Path(apiBaseUrl, 'v3', 'sql', connectionName, 'query');\n}\n","import { isPureObject } from '@loaders.gl/core';\nimport { CartoAPIError } from \"./carto-api-error.js\";\nimport { DEFAULT_HEADERS, DEFAULT_PARAMETERS, MAX_GET_LENGTH } from \"./common.js\";\n/**\n * Simple encode parameter\n */\nfunction encodeParameter(name, value) {\n if (isPureObject(value) || Array.isArray(value)) {\n return `${name}=${encodeURIComponent(JSON.stringify(value))}`;\n }\n return `${name}=${encodeURIComponent(value)}`;\n}\nconst REQUEST_CACHE = new Map();\nexport async function requestWithParameters({ baseUrl, parameters, headers: customHeaders, errorContext }) {\n parameters = { ...DEFAULT_PARAMETERS, ...parameters };\n const key = createCacheKey(baseUrl, parameters || {}, customHeaders || {});\n if (REQUEST_CACHE.has(key)) {\n return REQUEST_CACHE.get(key);\n }\n const url = parameters ? createURLWithParameters(baseUrl, parameters) : baseUrl;\n const headers = { ...DEFAULT_HEADERS, ...customHeaders };\n /* global fetch */\n const fetchPromise = url.length > MAX_GET_LENGTH\n ? fetch(baseUrl, { method: 'POST', body: JSON.stringify(parameters), headers })\n : fetch(url, { headers });\n let response;\n const jsonPromise = fetchPromise\n .then((_response) => {\n response = _response;\n return response.json();\n })\n .then((json) => {\n if (!response || !response.ok) {\n throw new Error(json.error);\n }\n return json;\n })\n .catch((error) => {\n REQUEST_CACHE.delete(key);\n throw new CartoAPIError(error, errorContext, response);\n });\n REQUEST_CACHE.set(key, jsonPromise);\n return jsonPromise;\n}\nfunction createCacheKey(baseUrl, parameters, headers) {\n const parameterEntries = Object.entries(parameters).sort(([a], [b]) => (a > b ? 1 : -1));\n const headerEntries = Object.entries(headers).sort(([a], [b]) => (a > b ? 1 : -1));\n return JSON.stringify({ baseUrl, parameters: parameterEntries, headers: headerEntries });\n}\nfunction createURLWithParameters(baseUrl, parameters) {\n const encodedParameters = Object.entries(parameters).map(([key, value]) => encodeParameter(key, value));\n return `${baseUrl}?${encodedParameters.join('&')}`;\n}\n","/* eslint-disable camelcase */\nimport { DEFAULT_API_BASE_URL, DEFAULT_CLIENT } from \"../api/common.js\";\nimport { buildSourceUrl } from \"../api/endpoints.js\";\nimport { requestWithParameters } from \"../api/request-with-parameters.js\";\nexport const SOURCE_DEFAULTS = {\n apiBaseUrl: DEFAULT_API_BASE_URL,\n clientId: DEFAULT_CLIENT,\n format: 'tilejson',\n headers: {}\n};\nexport async function baseSource(endpoint, options, urlParameters) {\n const { accessToken, connectionName, cache, ...optionalOptions } = options;\n const mergedOptions = { ...SOURCE_DEFAULTS, accessToken, connectionName, endpoint };\n for (const key in optionalOptions) {\n if (optionalOptions[key]) {\n mergedOptions[key] = optionalOptions[key];\n }\n }\n const baseUrl = buildSourceUrl(mergedOptions);\n const { clientId, format } = mergedOptions;\n const headers = { Authorization: `Bearer ${options.accessToken}`, ...options.headers };\n const parameters = { client: clientId, ...urlParameters };\n const errorContext = {\n requestType: 'Map instantiation',\n connection: options.connectionName,\n type: endpoint,\n source: JSON.stringify(parameters, undefined, 2)\n };\n const mapInstantiation = await requestWithParameters({\n baseUrl,\n parameters,\n headers,\n errorContext\n });\n const dataUrl = mapInstantiation[format].url[0];\n if (cache) {\n cache.value = parseInt(new URL(dataUrl).searchParams.get('cache') || '', 10);\n }\n errorContext.requestType = 'Map data';\n if (format === 'tilejson') {\n const json = await requestWithParameters({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n if (accessToken) {\n json.accessToken = accessToken;\n }\n return json;\n }\n return await requestWithParameters({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n}\n","import { baseSource } from \"./base-source.js\";\nexport const boundaryQuerySource = async function (options) {\n const { columns, filters, tilesetTableName, matchingColumn = 'id', propertiesSqlQuery, queryParameters } = options;\n const urlParameters = {\n tilesetTableName,\n matchingColumn,\n propertiesSqlQuery\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('boundary', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const boundaryTableSource = async function (options) {\n const { filters, tilesetTableName, columns, matchingColumn = 'id', propertiesTableName } = options;\n const urlParameters = {\n tilesetTableName,\n matchingColumn,\n propertiesTableName\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n return baseSource('boundary', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_H3 } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const h3QuerySource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3, sqlQuery, spatialDataColumn = 'h3', queryParameters } = options;\n const urlParameters = {\n aggregationExp,\n spatialDataColumn,\n spatialDataType: 'h3',\n q: sqlQuery\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('query', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_H3 } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const h3TableSource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3, spatialDataColumn = 'h3', tableName } = options;\n const urlParameters = {\n aggregationExp,\n name: tableName,\n spatialDataColumn,\n spatialDataType: 'h3'\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n return baseSource('table', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const h3TilesetSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('tileset', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const rasterSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('raster', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const quadbinQuerySource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN, sqlQuery, spatialDataColumn = 'quadbin', queryParameters } = options;\n const urlParameters = {\n aggregationExp,\n q: sqlQuery,\n spatialDataColumn,\n spatialDataType: 'quadbin'\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('query', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const quadbinTableSource = async function (options) {\n const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN, spatialDataColumn = 'quadbin', tableName } = options;\n const urlParameters = {\n aggregationExp,\n name: tableName,\n spatialDataColumn,\n spatialDataType: 'quadbin'\n };\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n return baseSource('table', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const quadbinTilesetSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('tileset', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_TILE_RESOLUTION } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const vectorQuerySource = async function (options) {\n const { columns, filters, spatialDataColumn = 'geom', sqlQuery, tileResolution = DEFAULT_TILE_RESOLUTION, queryParameters } = options;\n const urlParameters = {\n spatialDataColumn,\n spatialDataType: 'geo',\n tileResolution: tileResolution.toString(),\n q: sqlQuery\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n if (queryParameters) {\n urlParameters.queryParameters = queryParameters;\n }\n return baseSource('query', options, urlParameters);\n};\n","/* eslint-disable camelcase */\nimport { DEFAULT_TILE_RESOLUTION } from \"../constants.js\";\nimport { baseSource } from \"./base-source.js\";\nexport const vectorTableSource = async function (options) {\n const { columns, filters, spatialDataColumn = 'geom', tableName, tileResolution = DEFAULT_TILE_RESOLUTION } = options;\n const urlParameters = {\n name: tableName,\n spatialDataColumn,\n spatialDataType: 'geo',\n tileResolution: tileResolution.toString()\n };\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (filters) {\n urlParameters.filters = filters;\n }\n return baseSource('table', options, urlParameters);\n};\n","import { baseSource } from \"./base-source.js\";\nexport const vectorTilesetSource = async function (options) {\n const { tableName } = options;\n const urlParameters = { name: tableName };\n return baseSource('tileset', options, urlParameters);\n};\n","import { default as H3TileLayer } from \"./layers/h3-tile-layer.js\";\nimport { default as _PointLabelLayer } from \"./layers/point-label-layer.js\";\nimport { default as QuadbinTileLayer } from \"./layers/quadbin-tile-layer.js\";\nimport { default as QuadbinHeatmapTileLayer } from \"./layers/quadbin-heatmap-tile-layer.js\";\nimport { default as RasterTileLayer } from \"./layers/raster-tile-layer.js\";\nimport { default as VectorTileLayer } from \"./layers/vector-tile-layer.js\";\nconst CARTO_LAYERS = {\n H3TileLayer,\n _PointLabelLayer,\n QuadbinTileLayer,\n QuadbinHeatmapTileLayer,\n RasterTileLayer,\n VectorTileLayer\n};\nexport { CARTO_LAYERS, H3TileLayer, _PointLabelLayer, QuadbinTileLayer, QuadbinHeatmapTileLayer, RasterTileLayer, VectorTileLayer };\nexport { default as BASEMAP } from \"./basemap.js\";\nexport { default as colorBins } from \"./style/color-bins-style.js\";\nexport { default as colorCategories } from \"./style/color-categories-style.js\";\nexport { default as colorContinuous } from \"./style/color-continuous-style.js\";\nexport { CartoAPIError, fetchMap, query } from \"./api/index.js\";\nimport { boundaryQuerySource, boundaryTableSource, h3QuerySource, h3TableSource, h3TilesetSource, rasterSource, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, vectorQuerySource, vectorTableSource, vectorTilesetSource, SOURCE_DEFAULTS } from \"./sources/index.js\";\nconst CARTO_SOURCES = {\n boundaryQuerySource,\n boundaryTableSource,\n h3QuerySource,\n h3TableSource,\n h3TilesetSource,\n rasterSource,\n quadbinQuerySource,\n quadbinTableSource,\n quadbinTilesetSource,\n vectorQuerySource,\n vectorTableSource,\n vectorTilesetSource\n};\nexport { boundaryQuerySource, boundaryTableSource, h3QuerySource, h3TableSource, h3TilesetSource, rasterSource, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, vectorQuerySource, vectorTableSource, vectorTilesetSource, CARTO_SOURCES, SOURCE_DEFAULTS };\n","import {\n h3TableSource as _h3TableSource,\n h3QuerySource as _h3QuerySource,\n vectorTableSource as _vectorTableSource,\n vectorQuerySource as _vectorQuerySource,\n quadbinTableSource as _quadbinTableSource,\n quadbinQuerySource as _quadbinQuerySource,\n VectorTableSourceOptions as _VectorTableSourceOptions,\n VectorQuerySourceOptions as _VectorQuerySourceOptions,\n H3TableSourceOptions as _H3TableSourceOptions,\n H3QuerySourceOptions as _H3QuerySourceOptions,\n QuadbinTableSourceOptions as _QuadbinTableSourceOptions,\n QuadbinQuerySourceOptions as _QuadbinQuerySourceOptions,\n SourceOptions,\n} from '@deck.gl/carto';\nimport {WidgetBaseSourceProps} from './widget-base-source.js';\nimport {WidgetQuerySource} from './widget-query-source.js';\nimport {WidgetTableSource} from './widget-table-source.js';\n\ntype WrappedSourceOptions<T> = Omit<T, 'filters'> & WidgetBaseSourceProps;\n\n/******************************************************************************\n * RESPONSE OBJECTS\n */\n\ntype WidgetTableSourceResponse = {widgetSource: WidgetTableSource};\ntype WidgetQuerySourceResponse = {widgetSource: WidgetQuerySource};\n\nexport type VectorTableSourceResponse = WidgetTableSourceResponse &\n Awaited<ReturnType<typeof _vectorTableSource>>;\nexport type VectorQuerySourceResponse = WidgetQuerySourceResponse &\n Awaited<ReturnType<typeof _vectorQuerySource>>;\n\nexport type H3TableSourceResponse = WidgetTableSourceResponse &\n Awaited<ReturnType<typeof _h3TableSource>>;\nexport type H3QuerySourceResponse = WidgetQuerySourceResponse &\n Awaited<ReturnType<typeof _h3QuerySource>>;\n\nexport type QuadbinTableSourceResponse = WidgetTableSourceResponse &\n Awaited<ReturnType<typeof _quadbinTableSource>>;\nexport type QuadbinQuerySourceResponse = WidgetQuerySourceResponse &\n Awaited<ReturnType<typeof _quadbinQuerySource>>;\n\n/******************************************************************************\n * VECTOR SOURCES\n */\n\nexport type VectorTableSourceOptions =\n WrappedSourceOptions<_VectorTableSourceOptions>;\n\nexport type VectorQuerySourceOptions =\n WrappedSourceOptions<_VectorQuerySourceOptions>;\n\n/** Wrapper adding Widget API support to [vectorTableSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function vectorTableSource(\n props: VectorTableSourceOptions\n): Promise<VectorTableSourceResponse> {\n assignDefaultProps(props);\n const response = await _vectorTableSource(props as _VectorTableSourceOptions);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding Widget API support to [vectorQuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function vectorQuerySource(\n props: VectorQuerySourceOptions\n): Promise<VectorQuerySourceResponse> {\n assignDefaultProps(props);\n const response = await _vectorQuerySource(props as _VectorQuerySourceOptions);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/******************************************************************************\n * H3 SOURCES\n */\n\nexport type H3TableSourceOptions = WrappedSourceOptions<_H3TableSourceOptions>;\nexport type H3QuerySourceOptions = WrappedSourceOptions<_H3QuerySourceOptions>;\n\n/** Wrapper adding Widget API support to [h3TableSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function h3TableSource(\n props: H3TableSourceOptions\n): Promise<H3TableSourceResponse> {\n assignDefaultProps(props);\n const response = await _h3TableSource(props);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding Widget API support to [h3QuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function h3QuerySource(\n props: H3QuerySourceOptions\n): Promise<H3QuerySourceResponse> {\n assignDefaultProps(props);\n const response = await _h3QuerySource(props);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/******************************************************************************\n * QUADBIN SOURCES\n */\n\nexport type QuadbinTableSourceOptions =\n WrappedSourceOptions<_QuadbinTableSourceOptions>;\n\nexport type QuadbinQuerySourceOptions =\n WrappedSourceOptions<_QuadbinQuerySourceOptions>;\n\n/** Wrapper adding Widget API support to [quadbinTableSource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function quadbinTableSource(\n props: QuadbinTableSourceOptions & WidgetBaseSourceProps\n): Promise<QuadbinTableSourceResponse> {\n assignDefaultProps(props);\n const response = await _quadbinTableSource(props);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding Widget API support to [quadbinQuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */\nexport async function quadbinQuerySource(\n props: QuadbinQuerySourceOptions & WidgetBaseSourceProps\n): Promise<QuadbinQuerySourceResponse> {\n assignDefaultProps(props);\n const response = await _quadbinQuerySource(props);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/******************************************************************************\n * DEFAULT PROPS\n */\n\ndeclare const deck: {VERSION?: string} | undefined;\nfunction assignDefaultProps<T extends SourceOptions>(props: T): void {\n if (typeof deck !== 'undefined' && deck && deck.VERSION) {\n props.clientId ||= 'deck-gl-carto';\n // TODO: Uncomment if/when `@deck.gl/carto` devDependency is removed,\n // and source functions are moved here rather than wrapped.\n // props.deckglVersion ||= deck.VERSION;\n }\n}\n"],"names":["client","getClient","setClient","c","GroupDateType","FilterType","DEFAULT_API_BASE_URL","DEFAULT_GEO_COLUMN","MapType","ApiVersion","FILTER_TYPES","Set","Object","values","isFilterType","type","has","getApplicableFilters","owner","filters","applicableFilters","column","filter","normalizeObjectKeys","el","Array","isArray","map","value","entries","reduce","acc","_ref","key","toLowerCase","assert","condition","message","Error","InvalidColumnError","constructor","NAME","name","is","error","includes","makeCall","_ref2","url","accessToken","opts","_exit","_temp2","_result","response","ok","dealWithApiError","data","isPost","method","_temp","_catch","Promise","resolve","fetch","toString","headers","Authorization","body","signal","abortController","otherOptions","then","_fetch","json","_response$json","e","reject","column_name","status","msg","JSON","stringify","hint","AVAILABLE_MODELS","V3","REQUEST_GET_MAX_URL_LENGTH","executeModel","props","source","model","params","join","apiVersion","apiBaseUrl","connectionName","clientId","TILESET","filtersLogicalOperator","queryParameters","queryParams","spatialFilters","spatialFilter","geoColumn","undefined","urlWithSearchParams","URLSearchParams","isGet","length","WidgetBaseSource","defaultProps","_getModelSource","getCategories","options","_this","filterOwner","operation","operationColumn","getModelSource","res","rows","getFormula","_this2","operationExp","getHistogram","_this3","ticks","result","fill","forEach","tick","getRange","_this4","getScatter","_this5","xAxisColumn","xAxisJoinOperation","yAxisColumn","yAxisJoinOperation","HARD_LIMIT","limit","x","y","getTable","_this6","columns","sortBy","sortDirection","page","rowsPerPage","offset","totalCount","metadata","total","getTimeSeries","_this7","joinOperation","stepSize","stepMultiplier","splitByCategory","splitByCategoryLimit","splitByCategoryValues","categories","WidgetQuerySource","QUERY","sqlQuery","WidgetTableSource","TABLE","tableName","isObject","isPureObject","DEFAULT_TILE_RESOLUTION","DEFAULT_AGGREGATION_RES_LEVEL_H3","DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN","CartoAPIError","errorContext","responseString","requestType","keys","formatErrorKey","replace","s","toUpperCase","DEFAULT_CLIENT","V3_MINOR_VERSION","MAX_GET_LENGTH","DEFAULT_PARAMETERS","v","deckglVersion","DEFAULT_HEADERS","Accept","joinPath","args","part","endsWith","slice","buildV3Path","version","endpoint","rest","buildSourceUrl","encodeParameter","encodeURIComponent","REQUEST_CACHE","Map","requestWithParameters","baseUrl","parameters","customHeaders","createCacheKey","get","createURLWithParameters","fetchPromise","jsonPromise","_response","catch","delete","set","parameterEntries","sort","a","b","headerEntries","encodedParameters","SOURCE_DEFAULTS","format","baseSource","urlParameters","cache","optionalOptions","mergedOptions","connection","mapInstantiation","dataUrl","parseInt","URL","searchParams","boundaryQuerySource","tilesetTableName","matchingColumn","propertiesSqlQuery","boundaryTableSource","propertiesTableName","h3QuerySource","aggregationExp","aggregationResLevel","spatialDataColumn","spatialDataType","q","String","h3TableSource","h3TilesetSource","rasterSource","quadbinQuerySource","quadbinTableSource","quadbinTilesetSource","vectorQuerySource","tileResolution","vectorTableSource","vectorTilesetSource","assignDefaultProps","_quadbinQuerySource","widgetSource","_quadbinTableSource","_h3QuerySource","_h3TableSource","_vectorQuerySource","_vectorTableSource","deck","VERSION"],"mappings":"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"}
|
|
@@ -267,7 +267,8 @@ function executeModel(props) {
|
|
|
267
267
|
apiVersion,
|
|
268
268
|
apiBaseUrl,
|
|
269
269
|
accessToken,
|
|
270
|
-
connectionName
|
|
270
|
+
connectionName,
|
|
271
|
+
clientId
|
|
271
272
|
} = source;
|
|
272
273
|
assert(apiBaseUrl, 'executeModel: missing apiBaseUrl');
|
|
273
274
|
assert(accessToken, 'executeModel: missing accessToken');
|
|
@@ -282,7 +283,7 @@ function executeModel(props) {
|
|
|
282
283
|
const queryParameters = source.queryParameters ? JSON.stringify(source.queryParameters) : '';
|
|
283
284
|
const queryParams = {
|
|
284
285
|
type,
|
|
285
|
-
client:
|
|
286
|
+
client: clientId,
|
|
286
287
|
source: data,
|
|
287
288
|
params: JSON.stringify(params),
|
|
288
289
|
queryParameters,
|
|
@@ -760,7 +761,7 @@ const V3_MINOR_VERSION = '3.4';
|
|
|
760
761
|
const MAX_GET_LENGTH = 8192;
|
|
761
762
|
const DEFAULT_PARAMETERS = {
|
|
762
763
|
v: V3_MINOR_VERSION,
|
|
763
|
-
deckglVersion: "0.0.
|
|
764
|
+
deckglVersion: "0.0.39"
|
|
764
765
|
};
|
|
765
766
|
const DEFAULT_HEADERS = {
|
|
766
767
|
Accept: 'application/json',
|
|
@@ -1013,7 +1014,7 @@ const h3TableSource$1 = async function (options) {
|
|
|
1013
1014
|
return baseSource('table', options, urlParameters);
|
|
1014
1015
|
};
|
|
1015
1016
|
|
|
1016
|
-
const h3TilesetSource
|
|
1017
|
+
const h3TilesetSource = async function (options) {
|
|
1017
1018
|
const {
|
|
1018
1019
|
tableName
|
|
1019
1020
|
} = options;
|
|
@@ -1077,7 +1078,7 @@ const quadbinTableSource$1 = async function (options) {
|
|
|
1077
1078
|
return baseSource('table', options, urlParameters);
|
|
1078
1079
|
};
|
|
1079
1080
|
|
|
1080
|
-
const quadbinTilesetSource
|
|
1081
|
+
const quadbinTilesetSource = async function (options) {
|
|
1081
1082
|
const {
|
|
1082
1083
|
tableName
|
|
1083
1084
|
} = options;
|
|
@@ -1139,7 +1140,7 @@ const vectorTableSource$1 = async function (options) {
|
|
|
1139
1140
|
return baseSource('table', options, urlParameters);
|
|
1140
1141
|
};
|
|
1141
1142
|
|
|
1142
|
-
const vectorTilesetSource
|
|
1143
|
+
const vectorTilesetSource = async function (options) {
|
|
1143
1144
|
const {
|
|
1144
1145
|
tableName
|
|
1145
1146
|
} = options;
|
|
@@ -1154,18 +1155,19 @@ const vectorTilesetSource$1 = async function (options) {
|
|
|
1154
1155
|
boundaryTableSource,
|
|
1155
1156
|
h3QuerySource: h3QuerySource$1,
|
|
1156
1157
|
h3TableSource: h3TableSource$1,
|
|
1157
|
-
h3TilesetSource
|
|
1158
|
+
h3TilesetSource,
|
|
1158
1159
|
rasterSource,
|
|
1159
1160
|
quadbinQuerySource: quadbinQuerySource$1,
|
|
1160
1161
|
quadbinTableSource: quadbinTableSource$1,
|
|
1161
|
-
quadbinTilesetSource
|
|
1162
|
+
quadbinTilesetSource,
|
|
1162
1163
|
vectorQuerySource: vectorQuerySource$1,
|
|
1163
1164
|
vectorTableSource: vectorTableSource$1,
|
|
1164
|
-
vectorTilesetSource
|
|
1165
|
+
vectorTilesetSource
|
|
1165
1166
|
});
|
|
1166
1167
|
|
|
1167
1168
|
/** Wrapper adding Widget API support to [vectorTableSource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1168
1169
|
async function vectorTableSource(props) {
|
|
1170
|
+
assignDefaultProps(props);
|
|
1169
1171
|
const response = await vectorTableSource$1(props);
|
|
1170
1172
|
return _extends({}, response, {
|
|
1171
1173
|
widgetSource: new WidgetTableSource(props)
|
|
@@ -1173,17 +1175,15 @@ async function vectorTableSource(props) {
|
|
|
1173
1175
|
}
|
|
1174
1176
|
/** Wrapper adding Widget API support to [vectorQuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1175
1177
|
async function vectorQuerySource(props) {
|
|
1178
|
+
assignDefaultProps(props);
|
|
1176
1179
|
const response = await vectorQuerySource$1(props);
|
|
1177
1180
|
return _extends({}, response, {
|
|
1178
1181
|
widgetSource: new WidgetQuerySource(props)
|
|
1179
1182
|
});
|
|
1180
1183
|
}
|
|
1181
|
-
/** Wrapper adding Widget API support to [vectorTilesetSource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1182
|
-
async function vectorTilesetSource() {
|
|
1183
|
-
throw new Error('not implemented');
|
|
1184
|
-
}
|
|
1185
1184
|
/** Wrapper adding Widget API support to [h3TableSource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1186
1185
|
async function h3TableSource(props) {
|
|
1186
|
+
assignDefaultProps(props);
|
|
1187
1187
|
const response = await h3TableSource$1(props);
|
|
1188
1188
|
return _extends({}, response, {
|
|
1189
1189
|
widgetSource: new WidgetTableSource(props)
|
|
@@ -1191,17 +1191,15 @@ async function h3TableSource(props) {
|
|
|
1191
1191
|
}
|
|
1192
1192
|
/** Wrapper adding Widget API support to [h3QuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1193
1193
|
async function h3QuerySource(props) {
|
|
1194
|
+
assignDefaultProps(props);
|
|
1194
1195
|
const response = await h3QuerySource$1(props);
|
|
1195
1196
|
return _extends({}, response, {
|
|
1196
1197
|
widgetSource: new WidgetQuerySource(props)
|
|
1197
1198
|
});
|
|
1198
1199
|
}
|
|
1199
|
-
/** Wrapper adding Widget API support to [h3TilesetSource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1200
|
-
async function h3TilesetSource() {
|
|
1201
|
-
throw new Error('not implemented');
|
|
1202
|
-
}
|
|
1203
1200
|
/** Wrapper adding Widget API support to [quadbinTableSource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1204
1201
|
async function quadbinTableSource(props) {
|
|
1202
|
+
assignDefaultProps(props);
|
|
1205
1203
|
const response = await quadbinTableSource$1(props);
|
|
1206
1204
|
return _extends({}, response, {
|
|
1207
1205
|
widgetSource: new WidgetTableSource(props)
|
|
@@ -1209,15 +1207,20 @@ async function quadbinTableSource(props) {
|
|
|
1209
1207
|
}
|
|
1210
1208
|
/** Wrapper adding Widget API support to [quadbinQuerySource](https://deck.gl/docs/api-reference/carto/data-sources). */
|
|
1211
1209
|
async function quadbinQuerySource(props) {
|
|
1210
|
+
assignDefaultProps(props);
|
|
1212
1211
|
const response = await quadbinQuerySource$1(props);
|
|
1213
1212
|
return _extends({}, response, {
|
|
1214
1213
|
widgetSource: new WidgetQuerySource(props)
|
|
1215
1214
|
});
|
|
1216
1215
|
}
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1216
|
+
function assignDefaultProps(props) {
|
|
1217
|
+
if (typeof deck !== 'undefined' && deck && deck.VERSION) {
|
|
1218
|
+
props.clientId || (props.clientId = 'deck-gl-carto');
|
|
1219
|
+
// TODO: Uncomment if/when `@deck.gl/carto` devDependency is removed,
|
|
1220
|
+
// and source functions are moved here rather than wrapped.
|
|
1221
|
+
// props.deckglVersion ||= deck.VERSION;
|
|
1222
|
+
}
|
|
1220
1223
|
}
|
|
1221
1224
|
|
|
1222
|
-
export { FilterType, GroupDateType, WidgetBaseSource, WidgetQuerySource, WidgetTableSource, getClient, h3QuerySource, h3TableSource,
|
|
1225
|
+
export { FilterType, GroupDateType, WidgetBaseSource, WidgetQuerySource, WidgetTableSource, getClient, h3QuerySource, h3TableSource, quadbinQuerySource, quadbinTableSource, setClient, vectorQuerySource, vectorTableSource };
|
|
1223
1226
|
//# sourceMappingURL=api-client.modern.js.map
|