@deck.gl/carto 9.0.0-alpha.6 → 9.0.0-beta.1
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/dist/cartoRasterTile-worker.js +4 -14
- package/dist/cartoSpatialTile-worker.js +4 -14
- package/dist/cartoVectorTile-worker.js +4 -14
- package/dist/dist.dev.js +50 -35
- package/dist/es5/api/endpoints.js +41 -20
- package/dist/es5/api/endpoints.js.map +1 -1
- package/dist/es5/api/fetch-map.js +16 -18
- package/dist/es5/api/fetch-map.js.map +1 -1
- package/dist/es5/api/layer-map.js +1 -1
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/query.js +10 -7
- package/dist/es5/api/query.js.map +1 -1
- package/dist/es5/api/request-with-parameters.js +1 -1
- package/dist/es5/api/request-with-parameters.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/es5/layers/utils.js +1 -1
- package/dist/es5/layers/utils.js.map +1 -1
- package/dist/es5/sources/base-source.js.map +1 -1
- package/dist/esm/api/endpoints.js +30 -17
- package/dist/esm/api/endpoints.js.map +1 -1
- package/dist/esm/api/fetch-map.js +12 -14
- package/dist/esm/api/fetch-map.js.map +1 -1
- package/dist/esm/api/layer-map.js +1 -1
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/query.js +6 -4
- package/dist/esm/api/query.js.map +1 -1
- package/dist/esm/api/request-with-parameters.js +1 -1
- package/dist/esm/api/request-with-parameters.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/esm/layers/utils.js +1 -1
- package/dist/esm/layers/utils.js.map +1 -1
- package/dist/esm/sources/base-source.js.map +1 -1
- package/dist.min.js +39 -39
- package/package.json +10 -10
- package/src/.DS_Store +0 -0
- package/src/api/endpoints.ts +48 -17
- package/src/api/fetch-map.ts +13 -18
- package/src/api/layer-map.ts +3 -1
- package/src/api/query.ts +8 -4
- package/src/api/request-with-parameters.ts +1 -1
- package/src/layers/utils.ts +1 -1
- package/src/sources/base-source.ts +0 -1
- package/src/sources/types.ts +87 -3
- package/typed/api/endpoints.d.ts +17 -6
- package/typed/api/endpoints.d.ts.map +1 -1
- package/typed/api/fetch-map.d.ts +2 -3
- package/typed/api/fetch-map.d.ts.map +1 -1
- package/typed/api/layer-map.d.ts +1 -1
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/query.d.ts +1 -1
- package/typed/api/query.d.ts.map +1 -1
- package/typed/api/types.d.ts +19 -19
- package/typed/api/types.d.ts.map +1 -1
- package/typed/layers/h3-tile-layer.d.ts +2 -2
- package/typed/layers/h3-tile-layer.d.ts.map +1 -1
- package/typed/layers/h3-tileset-2d.d.ts +1 -1
- package/typed/layers/h3-tileset-2d.d.ts.map +1 -1
- package/typed/layers/point-label-layer.d.ts +2 -2
- package/typed/layers/point-label-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-layer.d.ts +2 -2
- package/typed/layers/quadbin-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-tile-layer.d.ts +2 -2
- package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-tileset-2d.d.ts +1 -1
- package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -1
- package/typed/layers/raster-layer.d.ts +2 -2
- package/typed/layers/raster-layer.d.ts.map +1 -1
- package/typed/layers/raster-tile-layer.d.ts +2 -2
- package/typed/layers/raster-tile-layer.d.ts.map +1 -1
- package/typed/layers/schema/carto-raster-tile-loader.d.ts +1 -1
- package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/spatialjson-utils.d.ts +8 -8
- package/typed/layers/schema/spatialjson-utils.d.ts.map +1 -1
- package/typed/layers/spatial-index-tile-layer.d.ts +2 -2
- package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
- package/typed/layers/vector-tile-layer.d.ts +3 -3
- package/typed/layers/vector-tile-layer.d.ts.map +1 -1
- package/typed/sources/base-source.d.ts.map +1 -1
- package/typed/sources/boundary-query-source.d.ts +1 -1
- package/typed/sources/boundary-query-source.d.ts.map +1 -1
- package/typed/sources/boundary-table-source.d.ts +1 -1
- package/typed/sources/boundary-table-source.d.ts.map +1 -1
- package/typed/sources/h3-query-source.d.ts +1 -1
- package/typed/sources/h3-query-source.d.ts.map +1 -1
- package/typed/sources/h3-table-source.d.ts +1 -1
- package/typed/sources/h3-table-source.d.ts.map +1 -1
- package/typed/sources/h3-tileset-source.d.ts +1 -1
- package/typed/sources/h3-tileset-source.d.ts.map +1 -1
- package/typed/sources/quadbin-query-source.d.ts +1 -1
- package/typed/sources/quadbin-query-source.d.ts.map +1 -1
- package/typed/sources/quadbin-table-source.d.ts +1 -1
- package/typed/sources/quadbin-table-source.d.ts.map +1 -1
- package/typed/sources/quadbin-tileset-source.d.ts +1 -1
- package/typed/sources/quadbin-tileset-source.d.ts.map +1 -1
- package/typed/sources/raster-source.d.ts +1 -1
- package/typed/sources/raster-source.d.ts.map +1 -1
- package/typed/sources/types.d.ts +91 -16
- package/typed/sources/types.d.ts.map +1 -1
- package/typed/sources/vector-query-source.d.ts +1 -1
- package/typed/sources/vector-query-source.d.ts.map +1 -1
- package/typed/sources/vector-table-source.d.ts +1 -1
- package/typed/sources/vector-table-source.d.ts.map +1 -1
- package/typed/sources/vector-tileset-source.d.ts +1 -1
- package/typed/sources/vector-tileset-source.d.ts.map +1 -1
- package/typed/style/palette.d.ts +1 -1
- package/typed/style/palette.d.ts.map +1 -1
- package/typed/style/utils.d.ts +1 -1
- package/typed/style/utils.d.ts.map +1 -1
|
@@ -758,6 +758,9 @@
|
|
|
758
758
|
}
|
|
759
759
|
});
|
|
760
760
|
|
|
761
|
+
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/node/worker_threads-browser.js
|
|
762
|
+
var parentPort = null;
|
|
763
|
+
|
|
761
764
|
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/worker-utils/get-transfer-list.js
|
|
762
765
|
function getTransferList(object) {
|
|
763
766
|
let recursive = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
@@ -797,19 +800,6 @@
|
|
|
797
800
|
|
|
798
801
|
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/worker-farm/worker-body.js
|
|
799
802
|
async function getParentPort() {
|
|
800
|
-
let parentPort;
|
|
801
|
-
try {
|
|
802
|
-
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
803
|
-
parentPort = globalThis.parentPort;
|
|
804
|
-
} catch {
|
|
805
|
-
try {
|
|
806
|
-
eval("globalThis.workerThreadsPromise = import('worker_threads')");
|
|
807
|
-
const workerThreads = await globalThis.workerThreadsPromise;
|
|
808
|
-
parentPort = workerThreads.parentPort;
|
|
809
|
-
} catch (error) {
|
|
810
|
-
console.error(error.message);
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
803
|
return parentPort;
|
|
814
804
|
}
|
|
815
805
|
var onMessageWrapperMap = /* @__PURE__ */ new Map();
|
|
@@ -1053,7 +1043,7 @@
|
|
|
1053
1043
|
}
|
|
1054
1044
|
|
|
1055
1045
|
// src/layers/schema/carto-raster-tile-loader.ts
|
|
1056
|
-
var VERSION = true ? "9.0.0-
|
|
1046
|
+
var VERSION = true ? "9.0.0-beta.1" : "latest";
|
|
1057
1047
|
var id = "cartoRasterTile";
|
|
1058
1048
|
var DEFAULT_OPTIONS = {
|
|
1059
1049
|
cartoRasterTile: {
|
|
@@ -1084,6 +1084,9 @@
|
|
|
1084
1084
|
}
|
|
1085
1085
|
});
|
|
1086
1086
|
|
|
1087
|
+
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/node/worker_threads-browser.js
|
|
1088
|
+
var parentPort = null;
|
|
1089
|
+
|
|
1087
1090
|
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/worker-utils/get-transfer-list.js
|
|
1088
1091
|
function getTransferList(object) {
|
|
1089
1092
|
let recursive = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
@@ -1123,19 +1126,6 @@
|
|
|
1123
1126
|
|
|
1124
1127
|
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/worker-farm/worker-body.js
|
|
1125
1128
|
async function getParentPort() {
|
|
1126
|
-
let parentPort;
|
|
1127
|
-
try {
|
|
1128
|
-
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
1129
|
-
parentPort = globalThis.parentPort;
|
|
1130
|
-
} catch {
|
|
1131
|
-
try {
|
|
1132
|
-
eval("globalThis.workerThreadsPromise = import('worker_threads')");
|
|
1133
|
-
const workerThreads = await globalThis.workerThreadsPromise;
|
|
1134
|
-
parentPort = workerThreads.parentPort;
|
|
1135
|
-
} catch (error) {
|
|
1136
|
-
console.error(error.message);
|
|
1137
|
-
}
|
|
1138
|
-
}
|
|
1139
1129
|
return parentPort;
|
|
1140
1130
|
}
|
|
1141
1131
|
var onMessageWrapperMap = /* @__PURE__ */ new Map();
|
|
@@ -1440,7 +1430,7 @@
|
|
|
1440
1430
|
}
|
|
1441
1431
|
|
|
1442
1432
|
// src/layers/schema/carto-spatial-tile-loader.ts
|
|
1443
|
-
var VERSION = true ? "9.0.0-
|
|
1433
|
+
var VERSION = true ? "9.0.0-beta.1" : "latest";
|
|
1444
1434
|
var id = "cartoSpatialTile";
|
|
1445
1435
|
var DEFAULT_OPTIONS = {
|
|
1446
1436
|
cartoSpatialTile: {
|
|
@@ -1221,6 +1221,9 @@
|
|
|
1221
1221
|
}
|
|
1222
1222
|
});
|
|
1223
1223
|
|
|
1224
|
+
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/node/worker_threads-browser.js
|
|
1225
|
+
var parentPort = null;
|
|
1226
|
+
|
|
1224
1227
|
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/worker-utils/get-transfer-list.js
|
|
1225
1228
|
function getTransferList(object) {
|
|
1226
1229
|
let recursive = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
@@ -1260,19 +1263,6 @@
|
|
|
1260
1263
|
|
|
1261
1264
|
// ../../node_modules/@loaders.gl/worker-utils/dist/lib/worker-farm/worker-body.js
|
|
1262
1265
|
async function getParentPort() {
|
|
1263
|
-
let parentPort;
|
|
1264
|
-
try {
|
|
1265
|
-
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
1266
|
-
parentPort = globalThis.parentPort;
|
|
1267
|
-
} catch {
|
|
1268
|
-
try {
|
|
1269
|
-
eval("globalThis.workerThreadsPromise = import('worker_threads')");
|
|
1270
|
-
const workerThreads = await globalThis.workerThreadsPromise;
|
|
1271
|
-
parentPort = workerThreads.parentPort;
|
|
1272
|
-
} catch (error) {
|
|
1273
|
-
console.error(error.message);
|
|
1274
|
-
}
|
|
1275
|
-
}
|
|
1276
1266
|
return parentPort;
|
|
1277
1267
|
}
|
|
1278
1268
|
var onMessageWrapperMap = /* @__PURE__ */ new Map();
|
|
@@ -1668,7 +1658,7 @@
|
|
|
1668
1658
|
}
|
|
1669
1659
|
|
|
1670
1660
|
// src/layers/schema/carto-vector-tile-loader.ts
|
|
1671
|
-
var VERSION = true ? "9.0.0-
|
|
1661
|
+
var VERSION = true ? "9.0.0-beta.1" : "latest";
|
|
1672
1662
|
var id = "cartoVectorTile";
|
|
1673
1663
|
var DEFAULT_OPTIONS = {
|
|
1674
1664
|
cartoVectorTile: {
|
package/dist/dist.dev.js
CHANGED
|
@@ -9367,7 +9367,7 @@ var __exports__ = (() => {
|
|
|
9367
9367
|
}
|
|
9368
9368
|
|
|
9369
9369
|
// src/layers/schema/carto-raster-tile-loader.ts
|
|
9370
|
-
var VERSION = true ? "9.0.0-
|
|
9370
|
+
var VERSION = true ? "9.0.0-beta.1" : "latest";
|
|
9371
9371
|
var id = "cartoRasterTile";
|
|
9372
9372
|
var DEFAULT_OPTIONS = {
|
|
9373
9373
|
cartoRasterTile: {
|
|
@@ -9766,7 +9766,7 @@ var __exports__ = (() => {
|
|
|
9766
9766
|
}
|
|
9767
9767
|
|
|
9768
9768
|
// src/layers/schema/carto-spatial-tile-loader.ts
|
|
9769
|
-
var VERSION2 = true ? "9.0.0-
|
|
9769
|
+
var VERSION2 = true ? "9.0.0-beta.1" : "latest";
|
|
9770
9770
|
var id2 = "cartoSpatialTile";
|
|
9771
9771
|
var DEFAULT_OPTIONS2 = {
|
|
9772
9772
|
cartoSpatialTile: {
|
|
@@ -9889,7 +9889,7 @@ var __exports__ = (() => {
|
|
|
9889
9889
|
...rest
|
|
9890
9890
|
} of properties.properties) {
|
|
9891
9891
|
if (geoid in mapping) {
|
|
9892
|
-
import_core3.log.warn(
|
|
9892
|
+
import_core3.log.warn("Duplicate geoid key in boundary mapping, using first occurance")();
|
|
9893
9893
|
} else {
|
|
9894
9894
|
mapping[geoid] = rest;
|
|
9895
9895
|
}
|
|
@@ -10643,7 +10643,7 @@ void main(void) {
|
|
|
10643
10643
|
|
|
10644
10644
|
// src/layers/schema/carto-vector-tile-loader.ts
|
|
10645
10645
|
var import_earcut = __toESM(require_earcut());
|
|
10646
|
-
var VERSION3 = true ? "9.0.0-
|
|
10646
|
+
var VERSION3 = true ? "9.0.0-beta.1" : "latest";
|
|
10647
10647
|
var id3 = "cartoVectorTile";
|
|
10648
10648
|
var DEFAULT_OPTIONS3 = {
|
|
10649
10649
|
cartoVectorTile: {
|
|
@@ -13092,29 +13092,42 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
13092
13092
|
};
|
|
13093
13093
|
|
|
13094
13094
|
// src/api/endpoints.ts
|
|
13095
|
-
function
|
|
13096
|
-
|
|
13097
|
-
if (apiBaseUrl.endsWith("/")) {
|
|
13098
|
-
suffix = suffix.substring(1);
|
|
13099
|
-
}
|
|
13100
|
-
return `${apiBaseUrl}${suffix}`;
|
|
13095
|
+
function joinPath(...args) {
|
|
13096
|
+
return args.map((part) => part.endsWith("/") ? part.slice(0, -1) : part).join("/");
|
|
13101
13097
|
}
|
|
13102
|
-
function
|
|
13103
|
-
return
|
|
13098
|
+
function buildV3Path(apiBaseUrl, version, endpoint, ...rest) {
|
|
13099
|
+
return joinPath(apiBaseUrl, version, endpoint, ...rest);
|
|
13104
13100
|
}
|
|
13105
|
-
function
|
|
13106
|
-
|
|
13101
|
+
function buildPublicMapUrl({
|
|
13102
|
+
apiBaseUrl,
|
|
13103
|
+
cartoMapId
|
|
13104
|
+
}) {
|
|
13105
|
+
return buildV3Path(apiBaseUrl, "v3", "maps", "public", cartoMapId);
|
|
13107
13106
|
}
|
|
13108
|
-
function
|
|
13109
|
-
|
|
13107
|
+
function buildStatsUrl({
|
|
13108
|
+
attribute,
|
|
13109
|
+
apiBaseUrl,
|
|
13110
|
+
connectionName,
|
|
13111
|
+
source,
|
|
13112
|
+
type
|
|
13113
|
+
}) {
|
|
13114
|
+
if (type === "query") {
|
|
13115
|
+
return buildV3Path(apiBaseUrl, "v3", "stats", connectionName, attribute);
|
|
13116
|
+
}
|
|
13117
|
+
return buildV3Path(apiBaseUrl, "v3", "stats", connectionName, source, attribute);
|
|
13110
13118
|
}
|
|
13111
13119
|
function buildSourceUrl({
|
|
13112
13120
|
apiBaseUrl,
|
|
13113
13121
|
connectionName,
|
|
13114
|
-
endpoint
|
|
13115
|
-
|
|
13122
|
+
endpoint
|
|
13123
|
+
}) {
|
|
13124
|
+
return buildV3Path(apiBaseUrl, "v3", "maps", connectionName, endpoint);
|
|
13125
|
+
}
|
|
13126
|
+
function buildQueryUrl({
|
|
13127
|
+
apiBaseUrl,
|
|
13128
|
+
connectionName
|
|
13116
13129
|
}) {
|
|
13117
|
-
return
|
|
13130
|
+
return buildV3Path(apiBaseUrl, "v3", "sql", connectionName, "query");
|
|
13118
13131
|
}
|
|
13119
13132
|
|
|
13120
13133
|
// src/api/request-with-parameters.ts
|
|
@@ -13155,7 +13168,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
13155
13168
|
try {
|
|
13156
13169
|
let response;
|
|
13157
13170
|
if (url.length > MAX_GET_LENGTH) {
|
|
13158
|
-
response = await fetch(
|
|
13171
|
+
response = await fetch(baseUrl2, {
|
|
13159
13172
|
method: "POST",
|
|
13160
13173
|
body: JSON.stringify(parameters),
|
|
13161
13174
|
headers
|
|
@@ -13705,7 +13718,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
13705
13718
|
return attribute.categories.map((c) => c.category).filter((c) => c !== void 0 && c !== null);
|
|
13706
13719
|
}
|
|
13707
13720
|
if (scaleType === "quantile" && attribute.quantiles) {
|
|
13708
|
-
return attribute.quantiles[scaleLength];
|
|
13721
|
+
return attribute.quantiles.global ? attribute.quantiles.global[scaleLength] : attribute.quantiles[scaleLength];
|
|
13709
13722
|
}
|
|
13710
13723
|
let {
|
|
13711
13724
|
min: min2
|
|
@@ -14333,7 +14346,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14333
14346
|
}
|
|
14334
14347
|
async function _fetchTilestats(attribute, dataset, accessToken, apiBaseUrl) {
|
|
14335
14348
|
const {
|
|
14336
|
-
connectionName
|
|
14349
|
+
connectionName,
|
|
14337
14350
|
data,
|
|
14338
14351
|
id: id4,
|
|
14339
14352
|
source,
|
|
@@ -14342,20 +14355,18 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14342
14355
|
} = dataset;
|
|
14343
14356
|
const errorContext = {
|
|
14344
14357
|
requestType: "Tile stats",
|
|
14345
|
-
connection,
|
|
14358
|
+
connection: connectionName,
|
|
14346
14359
|
type,
|
|
14347
14360
|
source
|
|
14348
14361
|
};
|
|
14349
14362
|
if (!("tilestats" in data)) {
|
|
14350
14363
|
throw new CartoAPIError(new Error(`Invalid dataset for tilestats: ${id4}`), errorContext);
|
|
14351
14364
|
}
|
|
14352
|
-
const
|
|
14353
|
-
|
|
14354
|
-
|
|
14355
|
-
|
|
14356
|
-
}
|
|
14357
|
-
baseUrl2 += `${source}/${attribute}`;
|
|
14358
|
-
}
|
|
14365
|
+
const baseUrl2 = buildStatsUrl({
|
|
14366
|
+
attribute,
|
|
14367
|
+
apiBaseUrl,
|
|
14368
|
+
...dataset
|
|
14369
|
+
});
|
|
14359
14370
|
const headers = {
|
|
14360
14371
|
Authorization: `Bearer ${accessToken}`
|
|
14361
14372
|
};
|
|
@@ -14429,7 +14440,6 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14429
14440
|
cartoMapId,
|
|
14430
14441
|
clientId = DEFAULT_CLIENT,
|
|
14431
14442
|
headers = {},
|
|
14432
|
-
mapsUrl,
|
|
14433
14443
|
autoRefresh,
|
|
14434
14444
|
onNewData
|
|
14435
14445
|
}) {
|
|
@@ -14440,7 +14450,10 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14440
14450
|
assert(typeof onNewData === "function", "`onNewData` must be a function");
|
|
14441
14451
|
assert(typeof autoRefresh === "number" && autoRefresh > 0, "`autoRefresh` must be a positive number");
|
|
14442
14452
|
}
|
|
14443
|
-
const baseUrl2 =
|
|
14453
|
+
const baseUrl2 = buildPublicMapUrl({
|
|
14454
|
+
apiBaseUrl,
|
|
14455
|
+
cartoMapId
|
|
14456
|
+
});
|
|
14444
14457
|
const errorContext = {
|
|
14445
14458
|
requestType: "Public map",
|
|
14446
14459
|
mapId: cartoMapId
|
|
@@ -14506,7 +14519,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14506
14519
|
// src/api/query.ts
|
|
14507
14520
|
var query = async function(options) {
|
|
14508
14521
|
const {
|
|
14509
|
-
apiBaseUrl,
|
|
14522
|
+
apiBaseUrl = SOURCE_DEFAULTS.apiBaseUrl,
|
|
14510
14523
|
connectionName,
|
|
14511
14524
|
sqlQuery,
|
|
14512
14525
|
queryParameters
|
|
@@ -14517,8 +14530,10 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14517
14530
|
if (queryParameters) {
|
|
14518
14531
|
urlParameters.queryParameters = JSON.stringify(queryParameters);
|
|
14519
14532
|
}
|
|
14520
|
-
const
|
|
14521
|
-
|
|
14533
|
+
const baseUrl2 = buildQueryUrl({
|
|
14534
|
+
apiBaseUrl,
|
|
14535
|
+
connectionName
|
|
14536
|
+
});
|
|
14522
14537
|
const headers = {
|
|
14523
14538
|
Authorization: `Bearer ${options.accessToken}`,
|
|
14524
14539
|
...options.headers
|
|
@@ -3,38 +3,59 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.buildQueryUrlFromBase = buildQueryUrlFromBase;
|
|
6
|
+
exports.buildPublicMapUrl = buildPublicMapUrl;
|
|
7
|
+
exports.buildStatsUrl = buildStatsUrl;
|
|
9
8
|
exports.buildSourceUrl = buildSourceUrl;
|
|
9
|
+
exports.buildQueryUrl = buildQueryUrl;
|
|
10
10
|
|
|
11
|
-
function
|
|
12
|
-
var
|
|
11
|
+
function joinPath() {
|
|
12
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
13
|
+
args[_key] = arguments[_key];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return args.map(function (part) {
|
|
17
|
+
return part.endsWith('/') ? part.slice(0, -1) : part;
|
|
18
|
+
}).join('/');
|
|
19
|
+
}
|
|
13
20
|
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
function buildV3Path(apiBaseUrl, version, endpoint) {
|
|
22
|
+
for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
|
|
23
|
+
rest[_key2 - 3] = arguments[_key2];
|
|
16
24
|
}
|
|
17
25
|
|
|
18
|
-
return
|
|
26
|
+
return joinPath.apply(void 0, [apiBaseUrl, version, endpoint].concat(rest));
|
|
19
27
|
}
|
|
20
28
|
|
|
21
|
-
function
|
|
22
|
-
|
|
29
|
+
function buildPublicMapUrl(_ref) {
|
|
30
|
+
var apiBaseUrl = _ref.apiBaseUrl,
|
|
31
|
+
cartoMapId = _ref.cartoMapId;
|
|
32
|
+
return buildV3Path(apiBaseUrl, 'v3', 'maps', 'public', cartoMapId);
|
|
23
33
|
}
|
|
24
34
|
|
|
25
|
-
function
|
|
26
|
-
|
|
35
|
+
function buildStatsUrl(_ref2) {
|
|
36
|
+
var attribute = _ref2.attribute,
|
|
37
|
+
apiBaseUrl = _ref2.apiBaseUrl,
|
|
38
|
+
connectionName = _ref2.connectionName,
|
|
39
|
+
source = _ref2.source,
|
|
40
|
+
type = _ref2.type;
|
|
41
|
+
|
|
42
|
+
if (type === 'query') {
|
|
43
|
+
return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, attribute);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, source, attribute);
|
|
27
47
|
}
|
|
28
48
|
|
|
29
|
-
function
|
|
30
|
-
|
|
49
|
+
function buildSourceUrl(_ref3) {
|
|
50
|
+
var apiBaseUrl = _ref3.apiBaseUrl,
|
|
51
|
+
connectionName = _ref3.connectionName,
|
|
52
|
+
endpoint = _ref3.endpoint;
|
|
53
|
+
return buildV3Path(apiBaseUrl, 'v3', 'maps', connectionName, endpoint);
|
|
31
54
|
}
|
|
32
55
|
|
|
33
|
-
function
|
|
34
|
-
var apiBaseUrl =
|
|
35
|
-
connectionName =
|
|
36
|
-
|
|
37
|
-
mapsUrl = _ref.mapsUrl;
|
|
38
|
-
return "".concat(mapsUrl || buildMapsUrlFromBase(apiBaseUrl), "/").concat(connectionName, "/").concat(endpoint);
|
|
56
|
+
function buildQueryUrl(_ref4) {
|
|
57
|
+
var apiBaseUrl = _ref4.apiBaseUrl,
|
|
58
|
+
connectionName = _ref4.connectionName;
|
|
59
|
+
return buildV3Path(apiBaseUrl, 'v3', 'sql', connectionName, 'query');
|
|
39
60
|
}
|
|
40
61
|
//# sourceMappingURL=endpoints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/endpoints.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/api/endpoints.ts"],"names":["joinPath","args","map","part","endsWith","slice","join","buildV3Path","apiBaseUrl","version","endpoint","rest","buildPublicMapUrl","cartoMapId","buildStatsUrl","attribute","connectionName","source","type","buildSourceUrl","buildQueryUrl"],"mappings":";;;;;;;;;;AAIA,SAASA,QAAT,GAA6C;AAAA,oCAAxBC,IAAwB;AAAxBA,IAAAA,IAAwB;AAAA;;AAC3C,SAAOA,IAAI,CAACC,GAAL,CAAS,UAAAC,IAAI;AAAA,WAAKA,IAAI,CAACC,QAAL,CAAc,GAAd,IAAqBD,IAAI,CAACE,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf,CAArB,GAAyCF,IAA9C;AAAA,GAAb,EAAkEG,IAAlE,CAAuE,GAAvE,CAAP;AACD;;AAED,SAASC,WAAT,CACEC,UADF,EAEEC,OAFF,EAGEC,QAHF,EAKU;AAAA,qCADLC,IACK;AADLA,IAAAA,IACK;AAAA;;AACR,SAAOX,QAAQ,MAAR,UAASQ,UAAT,EAAqBC,OAArB,EAA8BC,QAA9B,SAA2CC,IAA3C,EAAP;AACD;;AAEM,SAASC,iBAAT,OAMI;AAAA,MALTJ,UAKS,QALTA,UAKS;AAAA,MAJTK,UAIS,QAJTA,UAIS;AACT,SAAON,WAAW,CAACC,UAAD,EAAa,IAAb,EAAmB,MAAnB,EAA2B,QAA3B,EAAqCK,UAArC,CAAlB;AACD;;AAEM,SAASC,aAAT,QAYI;AAAA,MAXTC,SAWS,SAXTA,SAWS;AAAA,MAVTP,UAUS,SAVTA,UAUS;AAAA,MATTQ,cASS,SATTA,cASS;AAAA,MARTC,MAQS,SARTA,MAQS;AAAA,MAPTC,IAOS,SAPTA,IAOS;;AACT,MAAIA,IAAI,KAAK,OAAb,EAAsB;AACpB,WAAOX,WAAW,CAACC,UAAD,EAAa,IAAb,EAAmB,OAAnB,EAA4BQ,cAA5B,EAA4CD,SAA5C,CAAlB;AACD;;AAGD,SAAOR,WAAW,CAACC,UAAD,EAAa,IAAb,EAAmB,OAAnB,EAA4BQ,cAA5B,EAA4CC,MAA5C,EAAoDF,SAApD,CAAlB;AACD;;AAEM,SAASI,cAAT,QAQI;AAAA,MAPTX,UAOS,SAPTA,UAOS;AAAA,MANTQ,cAMS,SANTA,cAMS;AAAA,MALTN,QAKS,SALTA,QAKS;AACT,SAAOH,WAAW,CAACC,UAAD,EAAa,IAAb,EAAmB,MAAnB,EAA2BQ,cAA3B,EAA2CN,QAA3C,CAAlB;AACD;;AAEM,SAASU,aAAT,QAMI;AAAA,MALTZ,UAKS,SALTA,UAKS;AAAA,MAJTQ,cAIS,SAJTA,cAIS;AACT,SAAOT,WAAW,CAACC,UAAD,EAAa,IAAb,EAAmB,KAAnB,EAA0BQ,cAA1B,EAA0C,OAA1C,CAAlB;AACD","sourcesContent":["import {MapType} from './types';\n\nexport type V3Endpoint = 'maps' | 'stats' | 'sql';\n\nfunction joinPath(...args: string[]): string {\n return args.map(part => (part.endsWith('/') ? part.slice(0, -1) : part)).join('/');\n}\n\nfunction buildV3Path(\n apiBaseUrl: string,\n version: 'v3',\n endpoint: V3Endpoint,\n ...rest: string[]\n): string {\n return joinPath(apiBaseUrl, version, endpoint, ...rest);\n}\n\nexport function buildPublicMapUrl({\n apiBaseUrl,\n cartoMapId\n}: {\n apiBaseUrl: string;\n cartoMapId: string;\n}): string {\n return buildV3Path(apiBaseUrl, 'v3', 'maps', 'public', cartoMapId);\n}\n\nexport function buildStatsUrl({\n attribute,\n apiBaseUrl,\n connectionName,\n source,\n type\n}: {\n attribute: string;\n apiBaseUrl: string;\n connectionName: string;\n source: string;\n type: MapType;\n}): string {\n if (type === 'query') {\n return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, attribute);\n }\n\n // type === 'table'\n return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, source, attribute);\n}\n\nexport function buildSourceUrl({\n apiBaseUrl,\n connectionName,\n endpoint\n}: {\n apiBaseUrl: string;\n connectionName: string;\n endpoint: MapType;\n}): string {\n return buildV3Path(apiBaseUrl, 'v3', 'maps', connectionName, endpoint);\n}\n\nexport function buildQueryUrl({\n apiBaseUrl,\n connectionName\n}: {\n apiBaseUrl: string;\n connectionName: string;\n}): string {\n return buildV3Path(apiBaseUrl, 'v3', 'sql', connectionName, 'query');\n}\n"],"file":"endpoints.js"}
|
|
@@ -241,15 +241,15 @@ function _fetchTilestats(_x6, _x7, _x8, _x9) {
|
|
|
241
241
|
|
|
242
242
|
function _fetchTilestats2() {
|
|
243
243
|
_fetchTilestats2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(attribute, dataset, accessToken, apiBaseUrl) {
|
|
244
|
-
var
|
|
244
|
+
var connectionName, data, id, source, type, queryParameters, errorContext, baseUrl, headers, parameters, stats, attributes, index;
|
|
245
245
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
246
246
|
while (1) {
|
|
247
247
|
switch (_context2.prev = _context2.next) {
|
|
248
248
|
case 0:
|
|
249
|
-
|
|
249
|
+
connectionName = dataset.connectionName, data = dataset.data, id = dataset.id, source = dataset.source, type = dataset.type, queryParameters = dataset.queryParameters;
|
|
250
250
|
errorContext = {
|
|
251
251
|
requestType: 'Tile stats',
|
|
252
|
-
connection:
|
|
252
|
+
connection: connectionName,
|
|
253
253
|
type: type,
|
|
254
254
|
source: source
|
|
255
255
|
};
|
|
@@ -262,15 +262,10 @@ function _fetchTilestats2() {
|
|
|
262
262
|
throw new _cartoApiError.CartoAPIError(new Error("Invalid dataset for tilestats: ".concat(id)), errorContext);
|
|
263
263
|
|
|
264
264
|
case 4:
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
baseUrl += attribute;
|
|
270
|
-
} else {
|
|
271
|
-
baseUrl += "".concat(source, "/").concat(attribute);
|
|
272
|
-
}
|
|
273
|
-
|
|
265
|
+
baseUrl = (0, _endpoints.buildStatsUrl)(_objectSpread({
|
|
266
|
+
attribute: attribute,
|
|
267
|
+
apiBaseUrl: apiBaseUrl
|
|
268
|
+
}, dataset));
|
|
274
269
|
headers = {
|
|
275
270
|
Authorization: "Bearer ".concat(accessToken)
|
|
276
271
|
};
|
|
@@ -284,7 +279,7 @@ function _fetchTilestats2() {
|
|
|
284
279
|
}
|
|
285
280
|
}
|
|
286
281
|
|
|
287
|
-
_context2.next =
|
|
282
|
+
_context2.next = 10;
|
|
288
283
|
return (0, _requestWithParameters.requestWithParameters)({
|
|
289
284
|
baseUrl: baseUrl,
|
|
290
285
|
headers: headers,
|
|
@@ -292,7 +287,7 @@ function _fetchTilestats2() {
|
|
|
292
287
|
errorContext: errorContext
|
|
293
288
|
});
|
|
294
289
|
|
|
295
|
-
case
|
|
290
|
+
case 10:
|
|
296
291
|
stats = _context2.sent;
|
|
297
292
|
attributes = data.tilestats.layers[0].attributes;
|
|
298
293
|
index = attributes.findIndex(function (d) {
|
|
@@ -301,7 +296,7 @@ function _fetchTilestats2() {
|
|
|
301
296
|
attributes[index] = stats;
|
|
302
297
|
return _context2.abrupt("return", true);
|
|
303
298
|
|
|
304
|
-
case
|
|
299
|
+
case 15:
|
|
305
300
|
case "end":
|
|
306
301
|
return _context2.stop();
|
|
307
302
|
}
|
|
@@ -438,13 +433,13 @@ function fetchMap(_x16) {
|
|
|
438
433
|
|
|
439
434
|
function _fetchMap() {
|
|
440
435
|
_fetchMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(_ref3) {
|
|
441
|
-
var _ref3$apiBaseUrl, apiBaseUrl, cartoMapId, _ref3$clientId, clientId, _ref3$headers, headers,
|
|
436
|
+
var _ref3$apiBaseUrl, apiBaseUrl, cartoMapId, _ref3$clientId, clientId, _ref3$headers, headers, autoRefresh, onNewData, baseUrl, errorContext, map, stopAutoRefresh, intervalId, geojsonLayers, geojsonDatasetIds, out, textLayers, font;
|
|
442
437
|
|
|
443
438
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
444
439
|
while (1) {
|
|
445
440
|
switch (_context6.prev = _context6.next) {
|
|
446
441
|
case 0:
|
|
447
|
-
_ref3$apiBaseUrl = _ref3.apiBaseUrl, apiBaseUrl = _ref3$apiBaseUrl === void 0 ? _common.DEFAULT_API_BASE_URL : _ref3$apiBaseUrl, cartoMapId = _ref3.cartoMapId, _ref3$clientId = _ref3.clientId, clientId = _ref3$clientId === void 0 ? _common.DEFAULT_CLIENT : _ref3$clientId, _ref3$headers = _ref3.headers, headers = _ref3$headers === void 0 ? {} : _ref3$headers,
|
|
442
|
+
_ref3$apiBaseUrl = _ref3.apiBaseUrl, apiBaseUrl = _ref3$apiBaseUrl === void 0 ? _common.DEFAULT_API_BASE_URL : _ref3$apiBaseUrl, cartoMapId = _ref3.cartoMapId, _ref3$clientId = _ref3.clientId, clientId = _ref3$clientId === void 0 ? _common.DEFAULT_CLIENT : _ref3$clientId, _ref3$headers = _ref3.headers, headers = _ref3$headers === void 0 ? {} : _ref3$headers, autoRefresh = _ref3.autoRefresh, onNewData = _ref3.onNewData;
|
|
448
443
|
(0, _utils.assert)(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: "XXXX-XXXX-XXXX"})');
|
|
449
444
|
(0, _utils.assert)(apiBaseUrl, 'Must define apiBaseUrl');
|
|
450
445
|
|
|
@@ -454,7 +449,10 @@ function _fetchMap() {
|
|
|
454
449
|
(0, _utils.assert)(typeof autoRefresh === 'number' && autoRefresh > 0, '`autoRefresh` must be a positive number');
|
|
455
450
|
}
|
|
456
451
|
|
|
457
|
-
baseUrl =
|
|
452
|
+
baseUrl = (0, _endpoints.buildPublicMapUrl)({
|
|
453
|
+
apiBaseUrl: apiBaseUrl,
|
|
454
|
+
cartoMapId: cartoMapId
|
|
455
|
+
});
|
|
458
456
|
errorContext = {
|
|
459
457
|
requestType: 'Public map',
|
|
460
458
|
mapId: cartoMapId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/fetch-map.ts"],"names":["_fetchMapDataset","dataset","accessToken","apiBaseUrl","clientId","headers","aggregationExp","aggregationResLevel","connectionName","columns","format","geoColumn","source","type","queryParameters","cache","globalOptions","tableName","data","split","spatialDataType","spatialDataColumn","options","sqlQuery","cacheChanged","value","_fetchTilestats","attribute","connection","id","errorContext","requestType","CartoAPIError","Error","statsUrl","baseUrl","Authorization","parameters","q","JSON","stringify","stats","attributes","tilestats","layers","index","findIndex","d","fillInMapDatasets","datasets","token","promises","map","Promise","all","fillInTileStats","keplerMapConfig","config","visState","layer","Object","keys","visualChannels","channel","name","find","dataId","push","filteredAttributes","a","fetchMap","DEFAULT_API_BASE_URL","cartoMapId","DEFAULT_CLIENT","mapsUrl","autoRefresh","onNewData","mapId","intervalId","setInterval","Date","toUTCString","changed","some","v","stopAutoRefresh","clearInterval","geojsonLayers","filter","geojsonDatasetIds","forEach","includes","geojson","out","textLayers","pointType","props","length","window","FontFace","document","fonts","check","font","load","then","f","add"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase */\n/**\n * Maps API Client for Carto 3\n */\nimport {CartoAPIError} from './carto-api-error';\nimport {DEFAULT_API_BASE_URL, DEFAULT_CLIENT} from './common';\nimport {buildMapsUrlFromBase, buildStatsUrlFromBase} from './endpoints';\nimport {\n GeojsonResult,\n JsonResult,\n TilejsonResult,\n h3QuerySource,\n h3TableSource,\n quadbinQuerySource,\n quadbinTableSource,\n vectorQuerySource,\n vectorTableSource,\n vectorTilesetSource\n} from '../sources';\nimport {parseMap} from './parse-map';\nimport {requestWithParameters} from './request-with-parameters';\nimport {assert} from '../utils';\nimport type {APIErrorContext, Format, MapType, QueryParameters} from './types';\n\ntype Dataset = {\n id: string;\n type: MapType;\n source: string;\n cache?: number;\n connectionName: string;\n geoColumn: string;\n data: TilejsonResult | GeojsonResult | JsonResult;\n columns: string[];\n format: Format;\n aggregationExp: string;\n aggregationResLevel: number;\n queryParameters: QueryParameters;\n};\n\n/* global clearInterval, setInterval, URL */\n/* eslint-disable complexity, max-statements */\nasync function _fetchMapDataset(\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string,\n clientId?: string,\n headers?: Record<string, string>\n) {\n const {\n aggregationExp,\n aggregationResLevel,\n connectionName,\n columns,\n format,\n geoColumn,\n source,\n type,\n queryParameters\n } = dataset;\n\n const cache: {value?: number} = {};\n const globalOptions: any = {\n accessToken,\n apiBaseUrl,\n cache,\n clientId,\n connectionName,\n format,\n headers\n };\n\n if (type === 'tileset') {\n // TODO do we want a generic tilesetSource?\n // @ts-ignore\n dataset.data = await vectorTilesetSource({...globalOptions, tableName: source});\n } else {\n const [spatialDataType, spatialDataColumn] = geoColumn ? geoColumn.split(':') : ['geom'];\n if (spatialDataType === 'geom') {\n const options = {...globalOptions, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await vectorTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await vectorQuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'h3') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await h3TableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await h3QuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'quadbin') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await quadbinTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await quadbinQuerySource({...options, sqlQuery: source, queryParameters});\n }\n }\n }\n let cacheChanged = true;\n if (cache.value) {\n cacheChanged = dataset.cache !== cache.value;\n dataset.cache = cache.value;\n }\n\n return cacheChanged;\n}\n\nasync function _fetchTilestats(\n attribute,\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string\n) {\n const {connectionName: connection, data, id, source, type, queryParameters} = dataset;\n const errorContext: APIErrorContext = {requestType: 'Tile stats', connection, type, source};\n if (!('tilestats' in data)) {\n throw new CartoAPIError(new Error(`Invalid dataset for tilestats: ${id}`), errorContext);\n }\n\n const statsUrl = buildStatsUrlFromBase(apiBaseUrl);\n let baseUrl = `${statsUrl}/${connection}/`;\n if (type === 'query') {\n baseUrl += attribute;\n } else {\n // MAP_TYPE.TABLE\n baseUrl += `${source}/${attribute}`;\n }\n\n const headers = {Authorization: `Bearer ${accessToken}`};\n const parameters: Record<string, string> = {};\n if (type === 'query') {\n parameters.q = source;\n if (queryParameters) {\n parameters.queryParameters = JSON.stringify(queryParameters);\n }\n }\n const stats = await requestWithParameters({\n baseUrl,\n headers,\n parameters,\n errorContext\n });\n\n // Replace tilestats for attribute with value from API\n const {attributes} = data.tilestats.layers[0];\n const index = attributes.findIndex(d => d.attribute === attribute);\n attributes[index] = stats;\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token}: {datasets: Dataset[]; token: string},\n clientId: string,\n apiBaseUrl: string,\n headers?: Record<string, string>\n) {\n const promises = datasets.map(dataset =>\n _fetchMapDataset(dataset, token, apiBaseUrl, clientId, headers)\n );\n return await Promise.all(promises);\n}\n\nasync function fillInTileStats(\n {datasets, keplerMapConfig, token}: {datasets: Dataset[]; keplerMapConfig: any; token: string},\n apiBaseUrl: string\n) {\n const attributes: {attribute?: string; dataset?: any}[] = [];\n const {layers} = keplerMapConfig.config.visState;\n for (const layer of layers) {\n for (const channel of Object.keys(layer.visualChannels)) {\n const attribute = layer.visualChannels[channel]?.name;\n if (attribute) {\n const dataset = datasets.find(d => d.id === layer.config.dataId);\n if (dataset && dataset.type !== 'tileset' && (dataset.data as TilejsonResult).tilestats) {\n // Only fetch stats for QUERY & TABLE map types\n attributes.push({attribute, dataset});\n }\n }\n }\n }\n // Remove duplicates to avoid repeated requests\n const filteredAttributes: {attribute?: string; dataset?: any}[] = [];\n for (const a of attributes) {\n if (\n !filteredAttributes.find(\n ({attribute, dataset}) => attribute === a.attribute && dataset === a.dataset\n )\n ) {\n filteredAttributes.push(a);\n }\n }\n\n const promises = filteredAttributes.map(({attribute, dataset}) =>\n _fetchTilestats(attribute, dataset, token, apiBaseUrl)\n );\n return await Promise.all(promises);\n}\n\nexport type FetchMapOptions = {\n apiBaseUrl?: string;\n cartoMapId: string;\n clientId?: string;\n headers?: Record<string, string>;\n mapsUrl?: string;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n};\n\n/* eslint-disable max-statements */\nexport async function fetchMap({\n apiBaseUrl = DEFAULT_API_BASE_URL,\n cartoMapId,\n clientId = DEFAULT_CLIENT,\n headers = {},\n mapsUrl,\n autoRefresh,\n onNewData\n}: FetchMapOptions) {\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n assert(apiBaseUrl, 'Must define apiBaseUrl');\n\n if (autoRefresh || onNewData) {\n assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n assert(typeof onNewData === 'function', '`onNewData` must be a function');\n assert(\n typeof autoRefresh === 'number' && autoRefresh > 0,\n '`autoRefresh` must be a positive number'\n );\n }\n\n const baseUrl = `${mapsUrl || buildMapsUrlFromBase(apiBaseUrl)}/public/${cartoMapId}`;\n const errorContext: APIErrorContext = {requestType: 'Public map', mapId: cartoMapId};\n const map = await requestWithParameters({baseUrl, headers, errorContext});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh: (() => void) | undefined;\n if (autoRefresh) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, apiBaseUrl, {\n ...headers,\n 'If-Modified-Since': new Date().toUTCString()\n });\n if (onNewData && changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n const geojsonLayers = map.keplerMapConfig.config.visState.layers.filter(\n ({type}) => type === 'geojson' || type === 'point'\n );\n const geojsonDatasetIds = geojsonLayers.map(({config}) => config.dataId);\n map.datasets.forEach(dataset => {\n if (geojsonDatasetIds.includes(dataset.id)) {\n const {config} = geojsonLayers.find(({config}) => config.dataId === dataset.id);\n dataset.format = 'geojson';\n // Support for very old maps. geoColumn was not stored in the past\n if (!dataset.geoColumn && config.columns.geojson) {\n dataset.geoColumn = config.columns.geojson;\n }\n }\n });\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, apiBaseUrl, headers);\n\n // Mutates attributes in visualChannels to contain tile stats\n await fillInTileStats(map, apiBaseUrl);\n const out = {...parseMap(map), ...{stopAutoRefresh}};\n\n const textLayers = out.layers.filter(layer => {\n const pointType = layer.props.pointType || '';\n return pointType.includes('text');\n });\n\n /* global FontFace, window, document */\n if (textLayers.length && window.FontFace && !document.fonts.check('12px Inter')) {\n // Fetch font needed for labels\n const font = new FontFace(\n 'Inter',\n 'url(https://fonts.gstatic.com/s/inter/v12/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7W0Q5nw.woff2)'\n );\n await font.load().then(f => document.fonts.add(f));\n }\n\n return out;\n}\n"],"file":"fetch-map.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/fetch-map.ts"],"names":["_fetchMapDataset","dataset","accessToken","apiBaseUrl","clientId","headers","aggregationExp","aggregationResLevel","connectionName","columns","format","geoColumn","source","type","queryParameters","cache","globalOptions","tableName","data","split","spatialDataType","spatialDataColumn","options","sqlQuery","cacheChanged","value","_fetchTilestats","attribute","id","errorContext","requestType","connection","CartoAPIError","Error","baseUrl","Authorization","parameters","q","JSON","stringify","stats","attributes","tilestats","layers","index","findIndex","d","fillInMapDatasets","datasets","token","promises","map","Promise","all","fillInTileStats","keplerMapConfig","config","visState","layer","Object","keys","visualChannels","channel","name","find","dataId","push","filteredAttributes","a","fetchMap","DEFAULT_API_BASE_URL","cartoMapId","DEFAULT_CLIENT","autoRefresh","onNewData","mapId","intervalId","setInterval","Date","toUTCString","changed","some","v","stopAutoRefresh","clearInterval","geojsonLayers","filter","geojsonDatasetIds","forEach","includes","geojson","out","textLayers","pointType","props","length","window","FontFace","document","fonts","check","font","load","then","f","add"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase */\n/**\n * Maps API Client for Carto 3\n */\nimport {CartoAPIError} from './carto-api-error';\nimport {DEFAULT_API_BASE_URL, DEFAULT_CLIENT} from './common';\nimport {buildPublicMapUrl, buildStatsUrl} from './endpoints';\nimport {\n GeojsonResult,\n JsonResult,\n TilejsonResult,\n h3QuerySource,\n h3TableSource,\n quadbinQuerySource,\n quadbinTableSource,\n vectorQuerySource,\n vectorTableSource,\n vectorTilesetSource\n} from '../sources';\nimport {parseMap} from './parse-map';\nimport {requestWithParameters} from './request-with-parameters';\nimport {assert} from '../utils';\nimport type {APIErrorContext, Format, MapType, QueryParameters} from './types';\n\ntype Dataset = {\n id: string;\n type: MapType;\n source: string;\n cache?: number;\n connectionName: string;\n geoColumn: string;\n data: TilejsonResult | GeojsonResult | JsonResult;\n columns: string[];\n format: Format;\n aggregationExp: string;\n aggregationResLevel: number;\n queryParameters: QueryParameters;\n};\n\n/* global clearInterval, setInterval, URL */\n/* eslint-disable complexity, max-statements */\nasync function _fetchMapDataset(\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string,\n clientId?: string,\n headers?: Record<string, string>\n) {\n const {\n aggregationExp,\n aggregationResLevel,\n connectionName,\n columns,\n format,\n geoColumn,\n source,\n type,\n queryParameters\n } = dataset;\n\n const cache: {value?: number} = {};\n const globalOptions: any = {\n accessToken,\n apiBaseUrl,\n cache,\n clientId,\n connectionName,\n format,\n headers\n };\n\n if (type === 'tileset') {\n // TODO do we want a generic tilesetSource?\n // @ts-ignore\n dataset.data = await vectorTilesetSource({...globalOptions, tableName: source});\n } else {\n const [spatialDataType, spatialDataColumn] = geoColumn ? geoColumn.split(':') : ['geom'];\n if (spatialDataType === 'geom') {\n const options = {...globalOptions, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await vectorTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await vectorQuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'h3') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await h3TableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await h3QuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'quadbin') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await quadbinTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await quadbinQuerySource({...options, sqlQuery: source, queryParameters});\n }\n }\n }\n let cacheChanged = true;\n if (cache.value) {\n cacheChanged = dataset.cache !== cache.value;\n dataset.cache = cache.value;\n }\n\n return cacheChanged;\n}\n\nasync function _fetchTilestats(\n attribute: string,\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string\n) {\n const {connectionName, data, id, source, type, queryParameters} = dataset;\n const errorContext: APIErrorContext = {\n requestType: 'Tile stats',\n connection: connectionName,\n type,\n source\n };\n if (!('tilestats' in data)) {\n throw new CartoAPIError(new Error(`Invalid dataset for tilestats: ${id}`), errorContext);\n }\n\n const baseUrl = buildStatsUrl({attribute, apiBaseUrl, ...dataset});\n const headers = {Authorization: `Bearer ${accessToken}`};\n const parameters: Record<string, string> = {};\n if (type === 'query') {\n parameters.q = source;\n if (queryParameters) {\n parameters.queryParameters = JSON.stringify(queryParameters);\n }\n }\n const stats = await requestWithParameters({\n baseUrl,\n headers,\n parameters,\n errorContext\n });\n\n // Replace tilestats for attribute with value from API\n const {attributes} = data.tilestats.layers[0];\n const index = attributes.findIndex(d => d.attribute === attribute);\n attributes[index] = stats;\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token}: {datasets: Dataset[]; token: string},\n clientId: string,\n apiBaseUrl: string,\n headers?: Record<string, string>\n) {\n const promises = datasets.map(dataset =>\n _fetchMapDataset(dataset, token, apiBaseUrl, clientId, headers)\n );\n return await Promise.all(promises);\n}\n\nasync function fillInTileStats(\n {datasets, keplerMapConfig, token}: {datasets: Dataset[]; keplerMapConfig: any; token: string},\n apiBaseUrl: string\n) {\n const attributes: {attribute: string; dataset: any}[] = [];\n const {layers} = keplerMapConfig.config.visState;\n for (const layer of layers) {\n for (const channel of Object.keys(layer.visualChannels)) {\n const attribute = layer.visualChannels[channel]?.name;\n if (attribute) {\n const dataset = datasets.find(d => d.id === layer.config.dataId);\n if (dataset && dataset.type !== 'tileset' && (dataset.data as TilejsonResult).tilestats) {\n // Only fetch stats for QUERY & TABLE map types\n attributes.push({attribute, dataset});\n }\n }\n }\n }\n // Remove duplicates to avoid repeated requests\n const filteredAttributes: {attribute: string; dataset: any}[] = [];\n for (const a of attributes) {\n if (\n !filteredAttributes.find(\n ({attribute, dataset}) => attribute === a.attribute && dataset === a.dataset\n )\n ) {\n filteredAttributes.push(a);\n }\n }\n\n const promises = filteredAttributes.map(({attribute, dataset}) =>\n _fetchTilestats(attribute, dataset, token, apiBaseUrl)\n );\n return await Promise.all(promises);\n}\n\nexport type FetchMapOptions = {\n apiBaseUrl?: string;\n cartoMapId: string;\n clientId?: string;\n headers?: Record<string, string>;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n};\n\n/* eslint-disable max-statements */\nexport async function fetchMap({\n apiBaseUrl = DEFAULT_API_BASE_URL,\n cartoMapId,\n clientId = DEFAULT_CLIENT,\n headers = {},\n autoRefresh,\n onNewData\n}: FetchMapOptions) {\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n assert(apiBaseUrl, 'Must define apiBaseUrl');\n\n if (autoRefresh || onNewData) {\n assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n assert(typeof onNewData === 'function', '`onNewData` must be a function');\n assert(\n typeof autoRefresh === 'number' && autoRefresh > 0,\n '`autoRefresh` must be a positive number'\n );\n }\n\n const baseUrl = buildPublicMapUrl({apiBaseUrl, cartoMapId});\n const errorContext: APIErrorContext = {requestType: 'Public map', mapId: cartoMapId};\n const map = await requestWithParameters({baseUrl, headers, errorContext});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh: (() => void) | undefined;\n if (autoRefresh) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, apiBaseUrl, {\n ...headers,\n 'If-Modified-Since': new Date().toUTCString()\n });\n if (onNewData && changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n const geojsonLayers = map.keplerMapConfig.config.visState.layers.filter(\n ({type}) => type === 'geojson' || type === 'point'\n );\n const geojsonDatasetIds = geojsonLayers.map(({config}) => config.dataId);\n map.datasets.forEach(dataset => {\n if (geojsonDatasetIds.includes(dataset.id)) {\n const {config} = geojsonLayers.find(({config}) => config.dataId === dataset.id);\n dataset.format = 'geojson';\n // Support for very old maps. geoColumn was not stored in the past\n if (!dataset.geoColumn && config.columns.geojson) {\n dataset.geoColumn = config.columns.geojson;\n }\n }\n });\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, apiBaseUrl, headers);\n\n // Mutates attributes in visualChannels to contain tile stats\n await fillInTileStats(map, apiBaseUrl);\n const out = {...parseMap(map), ...{stopAutoRefresh}};\n\n const textLayers = out.layers.filter(layer => {\n const pointType = layer.props.pointType || '';\n return pointType.includes('text');\n });\n\n /* global FontFace, window, document */\n if (textLayers.length && window.FontFace && !document.fonts.check('12px Inter')) {\n // Fetch font needed for labels\n const font = new FontFace(\n 'Inter',\n 'url(https://fonts.gstatic.com/s/inter/v12/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7W0Q5nw.woff2)'\n );\n await font.load().then(f => document.fonts.add(f));\n }\n\n return out;\n}\n"],"file":"fetch-map.js"}
|
|
@@ -320,7 +320,7 @@ function domainFromAttribute(attribute, scaleType, scaleLength) {
|
|
|
320
320
|
}
|
|
321
321
|
|
|
322
322
|
if (scaleType === 'quantile' && attribute.quantiles) {
|
|
323
|
-
return attribute.quantiles[scaleLength];
|
|
323
|
+
return attribute.quantiles.global ? attribute.quantiles.global[scaleLength] : attribute.quantiles[scaleLength];
|
|
324
324
|
}
|
|
325
325
|
|
|
326
326
|
var min = attribute.min;
|