@deck.gl/carto 9.0.0-alpha.6 → 9.0.0-alpha.7

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.
Files changed (107) hide show
  1. package/dist/cartoRasterTile-worker.js +4 -14
  2. package/dist/cartoSpatialTile-worker.js +4 -14
  3. package/dist/cartoVectorTile-worker.js +4 -14
  4. package/dist/dist.dev.js +49 -34
  5. package/dist/es5/api/endpoints.js +41 -20
  6. package/dist/es5/api/endpoints.js.map +1 -1
  7. package/dist/es5/api/fetch-map.js +16 -18
  8. package/dist/es5/api/fetch-map.js.map +1 -1
  9. package/dist/es5/api/layer-map.js +1 -1
  10. package/dist/es5/api/layer-map.js.map +1 -1
  11. package/dist/es5/api/query.js +10 -7
  12. package/dist/es5/api/query.js.map +1 -1
  13. package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
  14. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
  15. package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
  16. package/dist/es5/layers/utils.js +1 -1
  17. package/dist/es5/layers/utils.js.map +1 -1
  18. package/dist/es5/sources/base-source.js.map +1 -1
  19. package/dist/esm/api/endpoints.js +30 -17
  20. package/dist/esm/api/endpoints.js.map +1 -1
  21. package/dist/esm/api/fetch-map.js +12 -14
  22. package/dist/esm/api/fetch-map.js.map +1 -1
  23. package/dist/esm/api/layer-map.js +1 -1
  24. package/dist/esm/api/layer-map.js.map +1 -1
  25. package/dist/esm/api/query.js +6 -4
  26. package/dist/esm/api/query.js.map +1 -1
  27. package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
  28. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
  29. package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -1
  30. package/dist/esm/layers/utils.js +1 -1
  31. package/dist/esm/layers/utils.js.map +1 -1
  32. package/dist/esm/sources/base-source.js.map +1 -1
  33. package/dist.min.js +39 -39
  34. package/package.json +10 -10
  35. package/src/.DS_Store +0 -0
  36. package/src/api/endpoints.ts +48 -17
  37. package/src/api/fetch-map.ts +13 -18
  38. package/src/api/layer-map.ts +3 -1
  39. package/src/api/query.ts +8 -4
  40. package/src/layers/utils.ts +1 -1
  41. package/src/sources/base-source.ts +0 -1
  42. package/src/sources/types.ts +87 -3
  43. package/typed/api/endpoints.d.ts +17 -6
  44. package/typed/api/endpoints.d.ts.map +1 -1
  45. package/typed/api/fetch-map.d.ts +2 -3
  46. package/typed/api/fetch-map.d.ts.map +1 -1
  47. package/typed/api/layer-map.d.ts +1 -1
  48. package/typed/api/layer-map.d.ts.map +1 -1
  49. package/typed/api/query.d.ts +1 -1
  50. package/typed/api/query.d.ts.map +1 -1
  51. package/typed/api/types.d.ts +19 -19
  52. package/typed/api/types.d.ts.map +1 -1
  53. package/typed/layers/h3-tile-layer.d.ts +2 -2
  54. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  55. package/typed/layers/h3-tileset-2d.d.ts +1 -1
  56. package/typed/layers/h3-tileset-2d.d.ts.map +1 -1
  57. package/typed/layers/point-label-layer.d.ts +2 -2
  58. package/typed/layers/point-label-layer.d.ts.map +1 -1
  59. package/typed/layers/quadbin-layer.d.ts +2 -2
  60. package/typed/layers/quadbin-layer.d.ts.map +1 -1
  61. package/typed/layers/quadbin-tile-layer.d.ts +2 -2
  62. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  63. package/typed/layers/quadbin-tileset-2d.d.ts +1 -1
  64. package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -1
  65. package/typed/layers/raster-layer.d.ts +2 -2
  66. package/typed/layers/raster-layer.d.ts.map +1 -1
  67. package/typed/layers/raster-tile-layer.d.ts +2 -2
  68. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  69. package/typed/layers/schema/carto-raster-tile-loader.d.ts +1 -1
  70. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  71. package/typed/layers/schema/spatialjson-utils.d.ts +8 -8
  72. package/typed/layers/schema/spatialjson-utils.d.ts.map +1 -1
  73. package/typed/layers/spatial-index-tile-layer.d.ts +2 -2
  74. package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
  75. package/typed/layers/vector-tile-layer.d.ts +3 -3
  76. package/typed/layers/vector-tile-layer.d.ts.map +1 -1
  77. package/typed/sources/base-source.d.ts.map +1 -1
  78. package/typed/sources/boundary-query-source.d.ts +1 -1
  79. package/typed/sources/boundary-query-source.d.ts.map +1 -1
  80. package/typed/sources/boundary-table-source.d.ts +1 -1
  81. package/typed/sources/boundary-table-source.d.ts.map +1 -1
  82. package/typed/sources/h3-query-source.d.ts +1 -1
  83. package/typed/sources/h3-query-source.d.ts.map +1 -1
  84. package/typed/sources/h3-table-source.d.ts +1 -1
  85. package/typed/sources/h3-table-source.d.ts.map +1 -1
  86. package/typed/sources/h3-tileset-source.d.ts +1 -1
  87. package/typed/sources/h3-tileset-source.d.ts.map +1 -1
  88. package/typed/sources/quadbin-query-source.d.ts +1 -1
  89. package/typed/sources/quadbin-query-source.d.ts.map +1 -1
  90. package/typed/sources/quadbin-table-source.d.ts +1 -1
  91. package/typed/sources/quadbin-table-source.d.ts.map +1 -1
  92. package/typed/sources/quadbin-tileset-source.d.ts +1 -1
  93. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -1
  94. package/typed/sources/raster-source.d.ts +1 -1
  95. package/typed/sources/raster-source.d.ts.map +1 -1
  96. package/typed/sources/types.d.ts +91 -16
  97. package/typed/sources/types.d.ts.map +1 -1
  98. package/typed/sources/vector-query-source.d.ts +1 -1
  99. package/typed/sources/vector-query-source.d.ts.map +1 -1
  100. package/typed/sources/vector-table-source.d.ts +1 -1
  101. package/typed/sources/vector-table-source.d.ts.map +1 -1
  102. package/typed/sources/vector-tileset-source.d.ts +1 -1
  103. package/typed/sources/vector-tileset-source.d.ts.map +1 -1
  104. package/typed/style/palette.d.ts +1 -1
  105. package/typed/style/palette.d.ts.map +1 -1
  106. package/typed/style/utils.d.ts +1 -1
  107. 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-alpha.6" : "latest";
1046
+ var VERSION = true ? "9.0.0-alpha.7" : "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-alpha.6" : "latest";
1433
+ var VERSION = true ? "9.0.0-alpha.7" : "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-alpha.6" : "latest";
1661
+ var VERSION = true ? "9.0.0-alpha.7" : "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-alpha.6" : "latest";
9370
+ var VERSION = true ? "9.0.0-alpha.7" : "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-alpha.6" : "latest";
9769
+ var VERSION2 = true ? "9.0.0-alpha.7" : "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(`Duplicate geoid key in boundary mapping, using first occurance`)();
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-alpha.6" : "latest";
10646
+ var VERSION3 = true ? "9.0.0-alpha.7" : "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 buildUrlFromBase(apiBaseUrl, endpoint) {
13096
- let suffix = `/v3/${endpoint}`;
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 buildMapsUrlFromBase(apiBaseUrl) {
13103
- return buildUrlFromBase(apiBaseUrl, "maps");
13098
+ function buildV3Path(apiBaseUrl, version, endpoint, ...rest) {
13099
+ return joinPath(apiBaseUrl, version, endpoint, ...rest);
13104
13100
  }
13105
- function buildStatsUrlFromBase(apiBaseUrl) {
13106
- return buildUrlFromBase(apiBaseUrl, "stats");
13101
+ function buildPublicMapUrl({
13102
+ apiBaseUrl,
13103
+ cartoMapId
13104
+ }) {
13105
+ return buildV3Path(apiBaseUrl, "v3", "maps", "public", cartoMapId);
13107
13106
  }
13108
- function buildQueryUrlFromBase(apiBaseUrl) {
13109
- return buildUrlFromBase(apiBaseUrl, "sql");
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
- mapsUrl
13122
+ endpoint
13123
+ }) {
13124
+ return buildV3Path(apiBaseUrl, "v3", "maps", connectionName, endpoint);
13125
+ }
13126
+ function buildQueryUrl({
13127
+ apiBaseUrl,
13128
+ connectionName
13116
13129
  }) {
13117
- return `${mapsUrl || buildMapsUrlFromBase(apiBaseUrl)}/${connectionName}/${endpoint}`;
13130
+ return buildV3Path(apiBaseUrl, "v3", "sql", connectionName, "query");
13118
13131
  }
13119
13132
 
13120
13133
  // src/api/request-with-parameters.ts
@@ -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: connection,
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 statsUrl = buildStatsUrlFromBase(apiBaseUrl);
14353
- let baseUrl2 = `${statsUrl}/${connection}/`;
14354
- if (type === "query") {
14355
- baseUrl2 += attribute;
14356
- } else {
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 = `${mapsUrl || buildMapsUrlFromBase(apiBaseUrl)}/public/${cartoMapId}`;
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 queryUrl = buildQueryUrlFromBase(apiBaseUrl || SOURCE_DEFAULTS.apiBaseUrl);
14521
- const baseUrl2 = `${queryUrl}/${connectionName}/query`;
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.buildMapsUrlFromBase = buildMapsUrlFromBase;
7
- exports.buildStatsUrlFromBase = buildStatsUrlFromBase;
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 buildUrlFromBase(apiBaseUrl, endpoint) {
12
- var suffix = "/v3/".concat(endpoint);
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
- if (apiBaseUrl.endsWith('/')) {
15
- suffix = suffix.substring(1);
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 "".concat(apiBaseUrl).concat(suffix);
26
+ return joinPath.apply(void 0, [apiBaseUrl, version, endpoint].concat(rest));
19
27
  }
20
28
 
21
- function buildMapsUrlFromBase(apiBaseUrl) {
22
- return buildUrlFromBase(apiBaseUrl, 'maps');
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 buildStatsUrlFromBase(apiBaseUrl) {
26
- return buildUrlFromBase(apiBaseUrl, 'stats');
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 buildQueryUrlFromBase(apiBaseUrl) {
30
- return buildUrlFromBase(apiBaseUrl, 'sql');
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 buildSourceUrl(_ref) {
34
- var apiBaseUrl = _ref.apiBaseUrl,
35
- connectionName = _ref.connectionName,
36
- endpoint = _ref.endpoint,
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":["buildUrlFromBase","apiBaseUrl","endpoint","suffix","endsWith","substring","buildMapsUrlFromBase","buildStatsUrlFromBase","buildQueryUrlFromBase","buildSourceUrl","connectionName","mapsUrl"],"mappings":";;;;;;;;;;AAIA,SAASA,gBAAT,CAA0BC,UAA1B,EAA8CC,QAA9C,EAAoE;AAClE,MAAIC,MAAM,iBAAUD,QAAV,CAAV;;AACA,MAAID,UAAU,CAACG,QAAX,CAAoB,GAApB,CAAJ,EAA8B;AAC5BD,IAAAA,MAAM,GAAGA,MAAM,CAACE,SAAP,CAAiB,CAAjB,CAAT;AACD;;AAED,mBAAUJ,UAAV,SAAuBE,MAAvB;AACD;;AAEM,SAASG,oBAAT,CAA8BL,UAA9B,EAA0D;AAC/D,SAAOD,gBAAgB,CAACC,UAAD,EAAa,MAAb,CAAvB;AACD;;AAEM,SAASM,qBAAT,CAA+BN,UAA/B,EAA2D;AAChE,SAAOD,gBAAgB,CAACC,UAAD,EAAa,OAAb,CAAvB;AACD;;AAEM,SAASO,qBAAT,CAA+BP,UAA/B,EAA2D;AAChE,SAAOD,gBAAgB,CAACC,UAAD,EAAa,KAAb,CAAvB;AACD;;AAEM,SAASQ,cAAT,OAUI;AAAA,MATTR,UASS,QATTA,UASS;AAAA,MARTS,cAQS,QARTA,cAQS;AAAA,MAPTR,QAOS,QAPTA,QAOS;AAAA,MANTS,OAMS,QANTA,OAMS;AACT,mBAAUA,OAAO,IAAIL,oBAAoB,CAACL,UAAD,CAAzC,cAAyDS,cAAzD,cAA2ER,QAA3E;AACD","sourcesContent":["import {MapType} from './types';\n\nexport type V3Endpoint = 'maps' | 'stats' | 'sql';\n\nfunction buildUrlFromBase(apiBaseUrl: string, endpoint: V3Endpoint) {\n let suffix = `/v3/${endpoint}`;\n if (apiBaseUrl.endsWith('/')) {\n suffix = suffix.substring(1);\n }\n\n return `${apiBaseUrl}${suffix}`;\n}\n\nexport function buildMapsUrlFromBase(apiBaseUrl: string): string {\n return buildUrlFromBase(apiBaseUrl, 'maps');\n}\n\nexport function buildStatsUrlFromBase(apiBaseUrl: string): string {\n return buildUrlFromBase(apiBaseUrl, 'stats');\n}\n\nexport function buildQueryUrlFromBase(apiBaseUrl: string): string {\n return buildUrlFromBase(apiBaseUrl, 'sql');\n}\n\nexport function buildSourceUrl({\n apiBaseUrl,\n connectionName,\n endpoint,\n mapsUrl\n}: {\n apiBaseUrl: string;\n connectionName: string;\n endpoint: MapType;\n mapsUrl?: string;\n}): string {\n return `${mapsUrl || buildMapsUrlFromBase(apiBaseUrl)}/${connectionName}/${endpoint}`;\n}\n"],"file":"endpoints.js"}
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 connection, data, id, source, type, queryParameters, errorContext, statsUrl, baseUrl, headers, parameters, stats, attributes, index;
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
- connection = dataset.connectionName, data = dataset.data, id = dataset.id, source = dataset.source, type = dataset.type, queryParameters = dataset.queryParameters;
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: 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
- statsUrl = (0, _endpoints.buildStatsUrlFromBase)(apiBaseUrl);
266
- baseUrl = "".concat(statsUrl, "/").concat(connection, "/");
267
-
268
- if (type === 'query') {
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 = 12;
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 12:
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 17:
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, mapsUrl, autoRefresh, onNewData, baseUrl, errorContext, map, stopAutoRefresh, intervalId, geojsonLayers, geojsonDatasetIds, out, textLayers, font;
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, mapsUrl = _ref3.mapsUrl, autoRefresh = _ref3.autoRefresh, onNewData = _ref3.onNewData;
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 = "".concat(mapsUrl || (0, _endpoints.buildMapsUrlFromBase)(apiBaseUrl), "/public/").concat(cartoMapId);
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;