@carto/api-client 0.0.1-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.modern.js","sources":["../src/constants.ts","../src/client.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":["export const CLIENT_ID = 'carto-api-client';\n\n/** @internalRemarks Source: @carto/constants */\nexport enum MapType {\n TABLE = 'table',\n QUERY = 'query',\n TILESET = 'tileset',\n}\n\n/** @internalRemarks Source: @carto/constants */\nexport enum ApiVersion {\n V1 = 'v1',\n V2 = 'v2',\n V3 = 'v3',\n}\n\n/** @internalRemarks Source: @carto/react-core */\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/** @internalRemarks Source: @carto/react-api, @deck.gl/carto */\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","import {CLIENT_ID} from './constants.js';\n\n/**\n * Default client\n * @internalRemarks Source: @carto/react-core\n */\nlet client = CLIENT_ID;\n\n/** @internalRemarks Source: @carto/react-core */\nexport function getClient() {\n return client;\n}\n\n/** @internalRemarks Source: @carto/react-core */\nexport function setClient(c: string) {\n client = c;\n}\n","/**\n * Threshold to use GET requests, vs POST\n * @internalRemarks Source: @carto/constants\n * @internal\n */\nexport const REQUEST_GET_MAX_URL_LENGTH = 2048;\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","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 {Credentials} from '../types.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 function checkCredentials(credentials: Credentials) {\n if (!credentials || !credentials.apiBaseUrl || !credentials.accessToken) {\n throw new Error('Missing or bad credentials provided');\n }\n}\n\n/** @internalRemarks Source: @carto/react-api */\nexport async function makeCall({\n url,\n credentials,\n opts,\n}: {\n url: string;\n credentials: Credentials;\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 ${credentials.accessToken}`,\n ...(isPost ? {'Content-Type': 'application/json'} : {}),\n },\n ...(isPost\n ? {\n method: opts?.method,\n body: opts?.body,\n }\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';\nimport {ApiVersion, MapType} from '../constants';\nimport {\n DEFAULT_GEO_COLUMN,\n REQUEST_GET_MAX_URL_LENGTH,\n} from '../constants-internal';\nimport {Source, SpatialFilter} from '../types';\nimport {$TODO} from '../types-internal';\nimport {assert} from '../utils';\nimport {ModelRequestOptions, checkCredentials, makeCall} from './common';\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\n/**\n * Execute a SQL model request.\n * @internalRemarks Source: @carto/react-api\n */\nexport function executeModel(props: {\n model: Model;\n source: Source;\n params: Record<string, unknown>;\n spatialFilter?: SpatialFilter;\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.indexOf(props.model) !== -1,\n `executeModel: model provided isn't valid. Available models: ${AVAILABLE_MODELS.join(\n ', '\n )}`\n );\n\n const {source, model, params, spatialFilter, opts} = props;\n\n checkCredentials(source.credentials);\n\n assert(\n source.credentials.apiVersion === ApiVersion.V3,\n 'SQL Model API is a feature only available in CARTO 3.'\n );\n assert(\n source.type !== MapType.TILESET,\n 'executeModel: Tileset not supported'\n );\n\n let url = `${source.credentials.apiBaseUrl}/v3/sql/${source.connection}/model/${model}`;\n\n const {filters, filtersLogicalOperator = 'and', data, type} = 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 = spatialFilter\n ? {\n [source.geoColumn ? source.geoColumn : DEFAULT_GEO_COLUMN]:\n 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 credentials: source.credentials,\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 {Source, FilterLogicalOperator, Credentials, Filter} from '../types.js';\nimport {SourceOptions} from '@deck.gl/carto';\nimport {getApplicableFilters, normalizeObjectKeys} from '../utils.js';\nimport {ApiVersion, MapType} from '../constants.js';\nimport {\n DEFAULT_API_BASE_URL,\n DEFAULT_GEO_COLUMN,\n} from '../constants-internal.js';\nimport {getClient} from '../client.js';\nimport {$TODO} from '../types-internal.js';\n\n/**\n * TODO(cleanup): Consolidate {@link SourceOptions} and {@link Source}.\n */\nexport interface WidgetBaseSourceProps extends SourceOptions, Credentials {\n type?: MapType;\n filters?: Record<string, Filter>;\n filtersLogicalOperator?: FilterLogicalOperator;\n queryParameters?: unknown[];\n provider?: string;\n}\n\nexport type WidgetSource = WidgetBaseSource<WidgetBaseSourceProps>;\n\nexport class WidgetBaseSource<Props extends WidgetBaseSourceProps> {\n readonly props: Props;\n readonly credentials: Required<Credentials> & {clientId: string};\n readonly connectionName: string;\n\n static defaultProps: Partial<WidgetBaseSourceProps> = {\n filters: {},\n filtersLogicalOperator: 'and',\n };\n\n constructor(props: Props) {\n this.props = {...WidgetBaseSource.defaultProps, ...props};\n this.connectionName = props.connectionName;\n this.credentials = {\n apiVersion: props.apiVersion || ApiVersion.V3,\n apiBaseUrl: props.apiBaseUrl || DEFAULT_API_BASE_URL,\n clientId: props.clientId || getClient(),\n accessToken: props.accessToken,\n geoColumn: props.geoColumn || DEFAULT_GEO_COLUMN,\n };\n }\n\n protected getSource(owner?: string): Source {\n return {\n ...(this.props as $TODO),\n credentials: this.credentials,\n connection: this.connectionName,\n filters: getApplicableFilters(owner, this.props.filters),\n };\n }\n\n async getFormula(props: FormulaRequestOptions): Promise<FormulaResponse> {\n const {\n filterOwner,\n spatialFilter,\n abortController,\n operationExp,\n ...params\n } = props;\n const {column, operation} = params;\n\n type FormulaModelResponse = {rows: {value: number}[]};\n\n return executeModel({\n model: 'formula',\n source: this.getSource(filterOwner),\n spatialFilter,\n params: {column: column ?? '*', operation, operationExp},\n opts: {abortController},\n }).then((res: FormulaModelResponse) => normalizeObjectKeys(res.rows[0]));\n }\n\n async getCategories(\n props: CategoryRequestOptions\n ): Promise<CategoryResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = props;\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.getSource(filterOwner),\n 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 async getRange(props: RangeRequestOptions): Promise<RangeResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = props;\n const {column} = params;\n\n type RangeModelResponse = {rows: {min: number; max: number}[]};\n\n return executeModel({\n model: 'range',\n source: this.getSource(filterOwner),\n spatialFilter,\n params: {column},\n opts: {abortController},\n }).then((res: RangeModelResponse) => normalizeObjectKeys(res.rows[0]));\n }\n\n async getTable(props: TableRequestOptions): Promise<TableResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = props;\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.getSource(filterOwner),\n 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 async getScatter(props: ScatterRequestOptions): Promise<ScatterResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = props;\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.getSource(filterOwner),\n 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 async getTimeSeries(\n props: TimeSeriesRequestOptions\n ): Promise<TimeSeriesResponse> {\n const {filterOwner, abortController, spatialFilter, ...params} = props;\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.getSource(filterOwner),\n 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 async getHistogram(\n props: HistogramRequestOptions\n ): Promise<HistogramResponse> {\n const {filterOwner, spatialFilter, abortController, ...params} = props;\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.getSource(filterOwner),\n 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","import {\n H3QuerySourceOptions,\n QuadbinQuerySourceOptions,\n VectorQuerySourceOptions,\n} from '@deck.gl/carto';\nimport {MapType} from '../constants.js';\nimport {WidgetBaseSource, WidgetBaseSourceProps} from './widget-base-source.js';\nimport {Source} from '../types.js';\n\ntype LayerQuerySourceOptions =\n | VectorQuerySourceOptions\n | H3QuerySourceOptions\n | QuadbinQuerySourceOptions;\n\nexport class WidgetQuerySource extends WidgetBaseSource<\n LayerQuerySourceOptions & WidgetBaseSourceProps\n> {\n protected override getSource(owner: string): Source {\n return {\n ...super.getSource(owner),\n type: MapType.QUERY,\n data: this.props.sqlQuery,\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.js';\nimport {Source} from '../types.js';\n\ntype LayerTableSourceOptions =\n | VectorTableSourceOptions\n | H3TableSourceOptions\n | QuadbinTableSourceOptions;\n\nexport class WidgetTableSource extends WidgetBaseSource<\n LayerTableSourceOptions & WidgetBaseSourceProps\n> {\n protected override getSource(owner: string): Source {\n return {\n ...super.getSource(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,\n VectorQuerySourceOptions,\n H3TableSourceOptions,\n H3QuerySourceOptions,\n QuadbinQuerySourceOptions,\n QuadbinTableSourceOptions,\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\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\n/** Wrapper adding widget support to {@link _vectorTableSource}. */\nexport async function vectorTableSource(\n props: VectorTableSourceOptions & WidgetBaseSourceProps\n): Promise<VectorTableSourceResponse> {\n const response = await _vectorTableSource(props);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding widget support to {@link _vectorQuerySource}. */\nexport async function vectorQuerySource(\n props: VectorQuerySourceOptions & WidgetBaseSourceProps\n): Promise<VectorQuerySourceResponse> {\n const response = await _vectorQuerySource(props);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/** Wrapper adding widget support to {@link _vectorTilesetSource}. */\nexport async function vectorTilesetSource() {\n throw new Error('not implemented');\n}\n\n/******************************************************************************\n * H3 SOURCES\n */\n\n/** Wrapper adding widget support to {@link _h3TableSource}. */\nexport async function h3TableSource(\n props: H3TableSourceOptions & WidgetBaseSourceProps\n): Promise<H3TableSourceResponse> {\n const response = await _h3TableSource(props);\n return {...response, widgetSource: new WidgetTableSource(props)};\n}\n\n/** Wrapper adding widget support to {@link _h3QuerySource}. */\nexport async function h3QuerySource(\n props: H3QuerySourceOptions & WidgetBaseSourceProps\n): Promise<H3QuerySourceResponse> {\n const response = await _h3QuerySource(props);\n return {...response, widgetSource: new WidgetQuerySource(props)};\n}\n\n/** Wrapper adding widget support to {@link _h3TilesetSource}. */\nexport async function h3TilesetSource() {\n throw new Error('not implemented');\n}\n\n/******************************************************************************\n * QUADBIN SOURCES\n */\n\n/** Wrapper adding widget support to {@link _quadbinTableSource}. */\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 support to {@link _quadbinQuerySource}. */\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 support to {@link _quadbinTilesetSource}. */\nexport async function quadbinTilesetSource() {\n throw new Error('not implemented');\n}\n"],"names":["CLIENT_ID","MapType","ApiVersion","GroupDateType","FilterType","client","getClient","setClient","c","REQUEST_GET_MAX_URL_LENGTH","DEFAULT_API_BASE_URL","DEFAULT_GEO_COLUMN","FILTER_TYPES","Set","Object","values","isFilterType","type","has","getApplicableFilters","owner","filters","applicableFilters","column","filter","normalizeObjectKeys","el","Array","isArray","map","value","entries","reduce","acc","key","toLowerCase","assert","condition","message","Error","InvalidColumnError","constructor","NAME","name","is","error","_error$message","includes","dealWithApiError","response","data","_data$error","_data$error2","column_name","status","msg","JSON","stringify","hint","checkCredentials","credentials","apiBaseUrl","accessToken","makeCall","url","opts","isPost","method","_opts$abortController","fetch","toString","_extends","headers","Authorization","body","signal","abortController","otherOptions","json","ok","AVAILABLE_MODELS","executeModel","props","source","model","params","indexOf","join","spatialFilter","apiVersion","V3","TILESET","connection","filtersLogicalOperator","queryParameters","queryParams","spatialFilters","geoColumn","undefined","urlWithSearchParams","URLSearchParams","isGet","length","WidgetBaseSource","connectionName","defaultProps","clientId","getSource","getFormula","filterOwner","operationExp","_objectWithoutPropertiesLoose","_excluded","operation","then","res","rows","getCategories","_excluded2","operationColumn","getRange","_excluded3","getTable","_excluded4","columns","sortBy","sortDirection","page","rowsPerPage","limit","offset","totalCount","metadata","total","getScatter","_excluded5","xAxisColumn","xAxisJoinOperation","yAxisColumn","yAxisJoinOperation","HARD_LIMIT","x","y","getTimeSeries","_excluded6","joinOperation","stepSize","stepMultiplier","splitByCategory","splitByCategoryLimit","splitByCategoryValues","_res$metadata","categories","getHistogram","_excluded7","ticks","result","fill","forEach","tick","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","options","urlParameters","cache","optionalOptions","mergedOptions","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","_vectorTableSource","widgetSource","_vectorQuerySource","_h3TableSource","_h3QuerySource","_quadbinTableSource","_quadbinQuerySource"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** @internalRemarks Source: @carto/react-core */
2
+ export declare function getClient(): string;
3
+ /** @internalRemarks Source: @carto/react-core */
4
+ export declare function setClient(c: string): void;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Threshold to use GET requests, vs POST
3
+ * @internalRemarks Source: @carto/constants
4
+ * @internal
5
+ */
6
+ export declare const REQUEST_GET_MAX_URL_LENGTH = 2048;
7
+ /**
8
+ * @internalRemarks Source: @carto/constants
9
+ * @internal
10
+ */
11
+ export declare const DEFAULT_API_BASE_URL = "https://gcp-us-east1.api.carto.com";
12
+ /**
13
+ * @internalRemarks Source: @carto/constants
14
+ * @internal
15
+ */
16
+ export declare const DEFAULT_CLIENT = "deck-gl-carto";
17
+ /**
18
+ * @internalRemarks Source: @carto/react-api
19
+ * @internal
20
+ */
21
+ export declare const DEFAULT_GEO_COLUMN = "geom";
@@ -0,0 +1,33 @@
1
+ export declare const CLIENT_ID = "carto-api-client";
2
+ /** @internalRemarks Source: @carto/constants */
3
+ export declare enum MapType {
4
+ TABLE = "table",
5
+ QUERY = "query",
6
+ TILESET = "tileset"
7
+ }
8
+ /** @internalRemarks Source: @carto/constants */
9
+ export declare enum ApiVersion {
10
+ V1 = "v1",
11
+ V2 = "v2",
12
+ V3 = "v3"
13
+ }
14
+ /** @internalRemarks Source: @carto/react-core */
15
+ export declare enum GroupDateType {
16
+ YEARS = "year",
17
+ MONTHS = "month",
18
+ WEEKS = "week",
19
+ DAYS = "day",
20
+ HOURS = "hour",
21
+ MINUTES = "minute",
22
+ SECONDS = "second"
23
+ }
24
+ /** @internalRemarks Source: @carto/react-api, @deck.gl/carto */
25
+ export declare enum FilterType {
26
+ IN = "in",
27
+ /** [a, b] both are included. */
28
+ BETWEEN = "between",
29
+ /** [a, b) a is included, b is not. */
30
+ CLOSED_OPEN = "closed_open",
31
+ TIME = "time",
32
+ STRING_SEARCH = "stringSearch"
33
+ }
@@ -0,0 +1,5 @@
1
+ export * from './client.js';
2
+ export * from './constants.js';
3
+ export * from './models/index.js';
4
+ export * from './sources/index.js';
5
+ export * from './types.js';
@@ -0,0 +1,25 @@
1
+ import { $TODO } from '../types-internal.js';
2
+ import { Credentials } from '../types.js';
3
+ /** @internalRemarks Source: @carto/react-api */
4
+ export interface ModelRequestOptions {
5
+ method: 'GET' | 'POST';
6
+ abortController?: AbortController;
7
+ otherOptions?: Record<string, unknown>;
8
+ body?: string;
9
+ }
10
+ /**
11
+ * Return more descriptive error from API
12
+ * @internalRemarks Source: @carto/react-api
13
+ */
14
+ export declare function dealWithApiError({ response, data, }: {
15
+ response: Response;
16
+ data: $TODO;
17
+ }): void;
18
+ /** @internalRemarks Source: @carto/react-api */
19
+ export declare function checkCredentials(credentials: Credentials): void;
20
+ /** @internalRemarks Source: @carto/react-api */
21
+ export declare function makeCall({ url, credentials, opts, }: {
22
+ url: string;
23
+ credentials: Credentials;
24
+ opts: ModelRequestOptions;
25
+ }): Promise<any>;
@@ -0,0 +1,3 @@
1
+ export { executeModel } from './model.js';
2
+ export type { Model } from './model.js';
3
+ export type { ModelRequestOptions } from './common.js';
@@ -0,0 +1,17 @@
1
+ import { Source, SpatialFilter } from '../types';
2
+ import { ModelRequestOptions } from './common';
3
+ /** @internalRemarks Source: @carto/react-api */
4
+ declare const AVAILABLE_MODELS: readonly ["category", "histogram", "formula", "timeseries", "range", "scatterplot", "table"];
5
+ export type Model = (typeof AVAILABLE_MODELS)[number];
6
+ /**
7
+ * Execute a SQL model request.
8
+ * @internalRemarks Source: @carto/react-api
9
+ */
10
+ export declare function executeModel(props: {
11
+ model: Model;
12
+ source: Source;
13
+ params: Record<string, unknown>;
14
+ spatialFilter?: SpatialFilter;
15
+ opts?: Partial<ModelRequestOptions>;
16
+ }): Promise<any>;
17
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from './widget-base-source.js';
2
+ export * from './widget-query-source.js';
3
+ export * from './widget-table-source.js';
4
+ export * from './wrappers.js';
5
+ export * from './types.js';
@@ -0,0 +1,80 @@
1
+ import { AggregationType, SortColumnType, SortDirection, SpatialFilter } from '../types';
2
+ /******************************************************************************
3
+ * WIDGET API REQUESTS
4
+ */
5
+ interface BaseRequestOptions {
6
+ spatialFilter?: SpatialFilter;
7
+ abortController?: AbortController;
8
+ filterOwner?: string;
9
+ }
10
+ export interface FormulaRequestOptions extends BaseRequestOptions {
11
+ column: string;
12
+ operation?: AggregationType;
13
+ operationExp?: string;
14
+ }
15
+ export interface CategoryRequestOptions extends BaseRequestOptions {
16
+ column: string;
17
+ operation?: AggregationType;
18
+ operationColumn?: string;
19
+ }
20
+ export interface RangeRequestOptions extends BaseRequestOptions {
21
+ column: string;
22
+ }
23
+ export interface TableRequestOptions extends BaseRequestOptions {
24
+ columns: string[];
25
+ sortBy?: string;
26
+ sortDirection?: SortDirection;
27
+ sortByColumnType?: SortColumnType;
28
+ page?: number;
29
+ rowsPerPage?: number;
30
+ }
31
+ export interface ScatterRequestOptions extends BaseRequestOptions {
32
+ xAxisColumn: string;
33
+ xAxisJoinOperation?: AggregationType;
34
+ yAxisColumn: string;
35
+ yAxisJoinOperation?: AggregationType;
36
+ }
37
+ export interface TimeSeriesRequestOptions extends BaseRequestOptions {
38
+ column: string;
39
+ stepSize?: number;
40
+ stepMultiplier?: number;
41
+ operation?: AggregationType;
42
+ operationColumn?: string;
43
+ joinOperation?: AggregationType;
44
+ splitByCategory?: string;
45
+ splitByCategoryLimit?: number;
46
+ splitByCategoryValues?: string[];
47
+ }
48
+ export interface HistogramRequestOptions extends BaseRequestOptions {
49
+ column: string;
50
+ ticks: number[];
51
+ operation?: AggregationType;
52
+ }
53
+ /******************************************************************************
54
+ * WIDGET API RESPONSES
55
+ */
56
+ export type FormulaResponse = {
57
+ value: number;
58
+ };
59
+ export type CategoryResponse = {
60
+ name: string;
61
+ value: number;
62
+ }[];
63
+ export type RangeResponse = {
64
+ min: number;
65
+ max: number;
66
+ };
67
+ export type TableResponse = {
68
+ totalCount: number;
69
+ rows: Record<string, number | string>[];
70
+ };
71
+ export type ScatterResponse = [number, number][];
72
+ export type TimeSeriesResponse = {
73
+ rows: {
74
+ name: string;
75
+ value: number;
76
+ }[];
77
+ categories: string[];
78
+ };
79
+ export type HistogramResponse = number[];
80
+ export {};
@@ -0,0 +1,32 @@
1
+ import { CategoryRequestOptions, CategoryResponse, FormulaRequestOptions, FormulaResponse, HistogramRequestOptions, HistogramResponse, RangeRequestOptions, RangeResponse, ScatterRequestOptions, ScatterResponse, TableRequestOptions, TableResponse, TimeSeriesRequestOptions, TimeSeriesResponse } from './types.js';
2
+ import { Source, FilterLogicalOperator, Credentials, Filter } from '../types.js';
3
+ import { SourceOptions } from '@deck.gl/carto';
4
+ import { MapType } from '../constants.js';
5
+ /**
6
+ * TODO(cleanup): Consolidate {@link SourceOptions} and {@link Source}.
7
+ */
8
+ export interface WidgetBaseSourceProps extends SourceOptions, Credentials {
9
+ type?: MapType;
10
+ filters?: Record<string, Filter>;
11
+ filtersLogicalOperator?: FilterLogicalOperator;
12
+ queryParameters?: unknown[];
13
+ provider?: string;
14
+ }
15
+ export type WidgetSource = WidgetBaseSource<WidgetBaseSourceProps>;
16
+ export declare class WidgetBaseSource<Props extends WidgetBaseSourceProps> {
17
+ readonly props: Props;
18
+ readonly credentials: Required<Credentials> & {
19
+ clientId: string;
20
+ };
21
+ readonly connectionName: string;
22
+ static defaultProps: Partial<WidgetBaseSourceProps>;
23
+ constructor(props: Props);
24
+ protected getSource(owner?: string): Source;
25
+ getFormula(props: FormulaRequestOptions): Promise<FormulaResponse>;
26
+ getCategories(props: CategoryRequestOptions): Promise<CategoryResponse>;
27
+ getRange(props: RangeRequestOptions): Promise<RangeResponse>;
28
+ getTable(props: TableRequestOptions): Promise<TableResponse>;
29
+ getScatter(props: ScatterRequestOptions): Promise<ScatterResponse>;
30
+ getTimeSeries(props: TimeSeriesRequestOptions): Promise<TimeSeriesResponse>;
31
+ getHistogram(props: HistogramRequestOptions): Promise<HistogramResponse>;
32
+ }
@@ -0,0 +1,8 @@
1
+ import { H3QuerySourceOptions, QuadbinQuerySourceOptions, VectorQuerySourceOptions } from '@deck.gl/carto';
2
+ import { WidgetBaseSource, WidgetBaseSourceProps } from './widget-base-source.js';
3
+ import { Source } from '../types.js';
4
+ type LayerQuerySourceOptions = VectorQuerySourceOptions | H3QuerySourceOptions | QuadbinQuerySourceOptions;
5
+ export declare class WidgetQuerySource extends WidgetBaseSource<LayerQuerySourceOptions & WidgetBaseSourceProps> {
6
+ protected getSource(owner: string): Source;
7
+ }
8
+ export {};
@@ -0,0 +1,8 @@
1
+ import { H3TableSourceOptions, QuadbinTableSourceOptions, VectorTableSourceOptions } from '@deck.gl/carto';
2
+ import { WidgetBaseSource, WidgetBaseSourceProps } from './widget-base-source.js';
3
+ import { Source } from '../types.js';
4
+ type LayerTableSourceOptions = VectorTableSourceOptions | H3TableSourceOptions | QuadbinTableSourceOptions;
5
+ export declare class WidgetTableSource extends WidgetBaseSource<LayerTableSourceOptions & WidgetBaseSourceProps> {
6
+ protected getSource(owner: string): Source;
7
+ }
8
+ export {};
@@ -0,0 +1,47 @@
1
+ import { h3TableSource as _h3TableSource, h3QuerySource as _h3QuerySource, vectorTableSource as _vectorTableSource, vectorQuerySource as _vectorQuerySource, quadbinTableSource as _quadbinTableSource, quadbinQuerySource as _quadbinQuerySource, VectorTableSourceOptions, VectorQuerySourceOptions, H3TableSourceOptions, H3QuerySourceOptions, QuadbinQuerySourceOptions, QuadbinTableSourceOptions } from '@deck.gl/carto';
2
+ import { WidgetBaseSourceProps } from './widget-base-source.js';
3
+ import { WidgetQuerySource } from './widget-query-source.js';
4
+ import { WidgetTableSource } from './widget-table-source.js';
5
+ /******************************************************************************
6
+ * RESPONSE OBJECTS
7
+ */
8
+ type WidgetTableSourceResponse = {
9
+ widgetSource: WidgetTableSource;
10
+ };
11
+ type WidgetQuerySourceResponse = {
12
+ widgetSource: WidgetQuerySource;
13
+ };
14
+ export type VectorTableSourceResponse = WidgetTableSourceResponse & Awaited<ReturnType<typeof _vectorTableSource>>;
15
+ export type VectorQuerySourceResponse = WidgetQuerySourceResponse & Awaited<ReturnType<typeof _vectorQuerySource>>;
16
+ export type H3TableSourceResponse = WidgetTableSourceResponse & Awaited<ReturnType<typeof _h3TableSource>>;
17
+ export type H3QuerySourceResponse = WidgetQuerySourceResponse & Awaited<ReturnType<typeof _h3QuerySource>>;
18
+ export type QuadbinTableSourceResponse = WidgetTableSourceResponse & Awaited<ReturnType<typeof _quadbinTableSource>>;
19
+ export type QuadbinQuerySourceResponse = WidgetQuerySourceResponse & Awaited<ReturnType<typeof _quadbinQuerySource>>;
20
+ /******************************************************************************
21
+ * VECTOR SOURCES
22
+ */
23
+ /** Wrapper adding widget support to {@link _vectorTableSource}. */
24
+ export declare function vectorTableSource(props: VectorTableSourceOptions & WidgetBaseSourceProps): Promise<VectorTableSourceResponse>;
25
+ /** Wrapper adding widget support to {@link _vectorQuerySource}. */
26
+ export declare function vectorQuerySource(props: VectorQuerySourceOptions & WidgetBaseSourceProps): Promise<VectorQuerySourceResponse>;
27
+ /** Wrapper adding widget support to {@link _vectorTilesetSource}. */
28
+ export declare function vectorTilesetSource(): Promise<void>;
29
+ /******************************************************************************
30
+ * H3 SOURCES
31
+ */
32
+ /** Wrapper adding widget support to {@link _h3TableSource}. */
33
+ export declare function h3TableSource(props: H3TableSourceOptions & WidgetBaseSourceProps): Promise<H3TableSourceResponse>;
34
+ /** Wrapper adding widget support to {@link _h3QuerySource}. */
35
+ export declare function h3QuerySource(props: H3QuerySourceOptions & WidgetBaseSourceProps): Promise<H3QuerySourceResponse>;
36
+ /** Wrapper adding widget support to {@link _h3TilesetSource}. */
37
+ export declare function h3TilesetSource(): Promise<void>;
38
+ /******************************************************************************
39
+ * QUADBIN SOURCES
40
+ */
41
+ /** Wrapper adding widget support to {@link _quadbinTableSource}. */
42
+ export declare function quadbinTableSource(props: QuadbinTableSourceOptions & WidgetBaseSourceProps): Promise<QuadbinTableSourceResponse>;
43
+ /** Wrapper adding widget support to {@link _quadbinQuerySource}. */
44
+ export declare function quadbinQuerySource(props: QuadbinQuerySourceOptions & WidgetBaseSourceProps): Promise<QuadbinQuerySourceResponse>;
45
+ /** Wrapper adding widget support to {@link _quadbinTilesetSource}. */
46
+ export declare function quadbinTilesetSource(): Promise<void>;
47
+ export {};
@@ -0,0 +1,7 @@
1
+ /******************************************************************************
2
+ * INTERNAL
3
+ */
4
+ /** @internal */
5
+ export type $TODO = any;
6
+ /** @internal */
7
+ export type $IntentionalAny = any;
@@ -0,0 +1,73 @@
1
+ import type { ApiVersion, MapType, FilterType } from './constants';
2
+ /******************************************************************************
3
+ * AUTHENTICATION
4
+ */
5
+ /** @internalRemarks Source: @carto/react-api */
6
+ export type Credentials = {
7
+ apiVersion?: ApiVersion;
8
+ apiBaseUrl?: string;
9
+ geoColumn?: string;
10
+ accessToken: string;
11
+ };
12
+ /******************************************************************************
13
+ * SOURCES
14
+ */
15
+ /** @internalRemarks Source: @carto/react-api */
16
+ export type Source = {
17
+ type: MapType;
18
+ connection: string;
19
+ credentials: Credentials;
20
+ data: string;
21
+ geoColumn?: string;
22
+ queryParameters?: unknown[];
23
+ filters?: Record<string, Filter>;
24
+ filtersLogicalOperator?: 'and' | 'or';
25
+ };
26
+ /******************************************************************************
27
+ * AGGREGATION
28
+ */
29
+ /**
30
+ * Enum for the different types of aggregations available for widgets
31
+ * @enum {string}
32
+ * @readonly
33
+ * @internalRemarks Source: @carto/constants
34
+ * @internalRemarks Converted from enum to type union, for improved declarative API.
35
+ */
36
+ export type AggregationType = 'count' | 'avg' | 'min' | 'max' | 'sum' | 'custom';
37
+ /******************************************************************************
38
+ * FILTERS
39
+ */
40
+ /** @internalRemarks Source: @carto/react-api */
41
+ export type SpatialFilter = GeoJSON.Polygon | GeoJSON.MultiPolygon;
42
+ /** @internalRemarks Source: @carto/react-api, @deck.gl/carto */
43
+ export interface Filter {
44
+ [FilterType.IN]?: {
45
+ owner?: string;
46
+ values: number[];
47
+ };
48
+ /** [a, b] both are included. */
49
+ [FilterType.BETWEEN]?: {
50
+ owner?: string;
51
+ values: number[][];
52
+ };
53
+ /** [a, b) a is included, b is not. */
54
+ [FilterType.CLOSED_OPEN]?: {
55
+ owner?: string;
56
+ values: number[][];
57
+ };
58
+ [FilterType.TIME]?: {
59
+ owner?: string;
60
+ values: number[][];
61
+ };
62
+ [FilterType.STRING_SEARCH]?: {
63
+ owner?: string;
64
+ values: string[];
65
+ };
66
+ }
67
+ /** @internalRemarks Source: @carto/react-core */
68
+ export type FilterLogicalOperator = 'and' | 'or';
69
+ /******************************************************************************
70
+ * SORTING
71
+ */
72
+ export type SortDirection = 'asc' | 'desc';
73
+ export type SortColumnType = 'number' | 'string' | 'date';
@@ -0,0 +1,27 @@
1
+ import { Filter } from './types.js';
2
+ /**
3
+ * @privateRemarks Source: @carto/react-widgets
4
+ * @internal
5
+ */
6
+ export declare function getApplicableFilters(owner?: string, filters?: Record<string, Filter>): Record<string, Filter>;
7
+ type Row<T> = Record<string, T> | Record<string, T>[] | T[] | T;
8
+ /**
9
+ * Due to each data warehouse having its own behavior with columns,
10
+ * we need to normalize them and transform every key to lowercase.
11
+ *
12
+ * @internalRemarks Source: @carto/react-widgets
13
+ * @internal
14
+ */
15
+ export declare function normalizeObjectKeys<T, R extends Row<T>>(el: R): R;
16
+ /** @internalRemarks Source: @carto/react-core */
17
+ export declare function assert(condition: unknown, message: string): void;
18
+ /**
19
+ * @internalRemarks Source: @carto/react-core
20
+ * @internal
21
+ */
22
+ export declare class InvalidColumnError extends Error {
23
+ protected static readonly NAME = "InvalidColumnError";
24
+ constructor(message: string);
25
+ static is(error: unknown): boolean;
26
+ }
27
+ export {};