@deck.gl/carto 9.0.0-beta.8 → 9.0.0-beta.9

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 (75) hide show
  1. package/dist/api/common.d.ts +1 -1
  2. package/dist/api/common.js +1 -1
  3. package/dist/api/fetch-map.d.ts.map +1 -1
  4. package/dist/api/fetch-map.js +8 -3
  5. package/dist/api/request-with-parameters.d.ts.map +1 -1
  6. package/dist/api/request-with-parameters.js +7 -3
  7. package/dist/cartoRasterTile-worker.js +5 -8
  8. package/dist/cartoSpatialTile-worker.js +1 -1
  9. package/dist/cartoVectorTile-worker.js +1 -1
  10. package/dist/constants.d.ts +5 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +4 -0
  13. package/dist/dist.dev.js +83 -46
  14. package/dist/index.cjs +70 -43
  15. package/dist/index.cjs.map +4 -4
  16. package/dist/layers/h3-tile-layer.d.ts.map +1 -1
  17. package/dist/layers/h3-tile-layer.js +3 -1
  18. package/dist/layers/quadbin-tile-layer.d.ts.map +1 -1
  19. package/dist/layers/quadbin-tile-layer.js +3 -1
  20. package/dist/layers/raster-layer.d.ts.map +1 -1
  21. package/dist/layers/raster-layer.js +5 -6
  22. package/dist/layers/raster-tile-layer.d.ts.map +1 -1
  23. package/dist/layers/raster-tile-layer.js +3 -1
  24. package/dist/layers/schema/carto-raster-tile-loader.d.ts +2 -2
  25. package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  26. package/dist/layers/schema/carto-raster-tile-loader.js +3 -4
  27. package/dist/layers/schema/carto-raster-tile.d.ts.map +1 -1
  28. package/dist/layers/schema/carto-raster-tile.js +2 -4
  29. package/dist/layers/schema/carto-spatial-tile-loader.js +1 -1
  30. package/dist/layers/schema/carto-vector-tile-loader.js +1 -1
  31. package/dist/layers/spatial-index-tile-layer.d.ts.map +1 -1
  32. package/dist/layers/spatial-index-tile-layer.js +4 -1
  33. package/dist/layers/vector-tile-layer.d.ts +4 -4
  34. package/dist/layers/vector-tile-layer.d.ts.map +1 -1
  35. package/dist/layers/vector-tile-layer.js +3 -1
  36. package/dist/sources/h3-query-source.d.ts.map +1 -1
  37. package/dist/sources/h3-query-source.js +2 -1
  38. package/dist/sources/h3-table-source.d.ts.map +1 -1
  39. package/dist/sources/h3-table-source.js +2 -4
  40. package/dist/sources/quadbin-query-source.d.ts.map +1 -1
  41. package/dist/sources/quadbin-query-source.js +2 -1
  42. package/dist/sources/quadbin-table-source.d.ts.map +1 -1
  43. package/dist/sources/quadbin-table-source.js +2 -4
  44. package/dist/sources/types.d.ts +38 -6
  45. package/dist/sources/types.d.ts.map +1 -1
  46. package/dist/sources/vector-query-source.d.ts +2 -4
  47. package/dist/sources/vector-query-source.d.ts.map +1 -1
  48. package/dist/sources/vector-query-source.js +8 -2
  49. package/dist/sources/vector-table-source.d.ts +2 -2
  50. package/dist/sources/vector-table-source.d.ts.map +1 -1
  51. package/dist/sources/vector-table-source.js +8 -2
  52. package/dist/utils.d.ts.map +1 -1
  53. package/dist/utils.js +5 -1
  54. package/dist.min.js +7 -7
  55. package/package.json +4 -4
  56. package/src/api/common.ts +1 -1
  57. package/src/api/fetch-map.ts +8 -3
  58. package/src/api/request-with-parameters.ts +16 -5
  59. package/src/constants.ts +5 -0
  60. package/src/layers/h3-tile-layer.ts +3 -1
  61. package/src/layers/quadbin-tile-layer.ts +3 -1
  62. package/src/layers/raster-layer.ts +7 -12
  63. package/src/layers/raster-tile-layer.ts +3 -1
  64. package/src/layers/schema/carto-raster-tile-loader.ts +5 -5
  65. package/src/layers/schema/carto-raster-tile.ts +3 -4
  66. package/src/layers/spatial-index-tile-layer.ts +4 -1
  67. package/src/layers/vector-tile-layer.ts +10 -6
  68. package/src/sources/h3-query-source.ts +2 -1
  69. package/src/sources/h3-table-source.ts +2 -6
  70. package/src/sources/quadbin-query-source.ts +2 -1
  71. package/src/sources/quadbin-table-source.ts +2 -6
  72. package/src/sources/types.ts +41 -6
  73. package/src/sources/vector-query-source.ts +22 -6
  74. package/src/sources/vector-table-source.ts +21 -3
  75. package/src/utils.ts +5 -1
package/dist/index.cjs CHANGED
@@ -183,14 +183,12 @@ var BandReader = class {
183
183
  };
184
184
  var TileReader = class {
185
185
  static read(pbf, end) {
186
- return pbf.readFields(TileReader._readField, { blockWidth: 0, blockHeight: 0, bands: [] }, end);
186
+ return pbf.readFields(TileReader._readField, { blockSize: 0, bands: [] }, end);
187
187
  }
188
188
  static _readField(tag, obj, pbf) {
189
189
  if (tag === 1)
190
- obj.blockWidth = pbf.readVarint();
190
+ obj.blockSize = pbf.readVarint();
191
191
  else if (tag === 2)
192
- obj.blockHeight = pbf.readVarint();
193
- else if (tag === 3)
194
192
  obj.bands.push(BandReader.read(pbf, pbf.readVarint() + pbf.pos));
195
193
  }
196
194
  };
@@ -238,12 +236,16 @@ function scaleIdentity() {
238
236
  }
239
237
  return unknown;
240
238
  };
241
- scale.copy = () => scaleIdentity().unknown(unknown);
239
+ scale.copy = () => {
240
+ const scaleCopy = scaleIdentity();
241
+ scaleCopy.unknown(unknown);
242
+ return scaleCopy;
243
+ };
242
244
  return scale;
243
245
  }
244
246
 
245
247
  // dist/layers/schema/carto-raster-tile-loader.js
246
- var VERSION = true ? "9.0.0-beta.7" : "latest";
248
+ var VERSION = true ? "9.0.0-beta.8" : "latest";
247
249
  var id = "cartoRasterTile";
248
250
  var DEFAULT_OPTIONS = {
249
251
  cartoRasterTile: {
@@ -266,14 +268,13 @@ var CartoRasterTileLoader = {
266
268
  function parseCartoRasterTile(arrayBuffer, options) {
267
269
  if (!arrayBuffer)
268
270
  return null;
269
- const tile = parsePbf(arrayBuffer, TileReader);
270
- const { bands, blockHeight, blockWidth } = tile;
271
+ const { bands, blockSize } = parsePbf(arrayBuffer, TileReader);
271
272
  const numericProps = {};
272
273
  for (let i = 0; i < bands.length; i++) {
273
274
  const { name, data } = bands[i];
274
275
  numericProps[name] = data;
275
276
  }
276
- return { blockWidth, blockHeight, cells: { numericProps, properties: [] } };
277
+ return { blockSize, cells: { numericProps, properties: [] } };
277
278
  }
278
279
  var carto_raster_tile_loader_default = CartoRasterTileLoader;
279
280
 
@@ -515,7 +516,7 @@ function binaryToSpatialjson(binary) {
515
516
  }
516
517
 
517
518
  // dist/layers/schema/carto-spatial-tile-loader.js
518
- var VERSION2 = true ? "9.0.0-beta.7" : "latest";
519
+ var VERSION2 = true ? "9.0.0-beta.8" : "latest";
519
520
  var id2 = "cartoSpatialTile";
520
521
  var DEFAULT_OPTIONS2 = {
521
522
  cartoSpatialTile: {
@@ -550,11 +551,21 @@ var carto_spatial_tile_loader_default = CartoSpatialTileLoader;
550
551
 
551
552
  // dist/layers/spatial-index-tile-layer.js
552
553
  var import_geo_layers2 = require("@deck.gl/geo-layers");
554
+
555
+ // dist/constants.js
556
+ var DEFAULT_TILE_SIZE = 512;
557
+ var DEFAULT_TILE_RESOLUTION = 0.5;
558
+ var DEFAULT_AGGREGATION_RES_LEVEL_H3 = 4;
559
+ var DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN = 6;
560
+
561
+ // dist/layers/spatial-index-tile-layer.js
553
562
  (0, import_core2.registerLoaders)([carto_raster_tile_loader_default, carto_spatial_tile_loader_default]);
554
563
  function isFeatureIdDefined(value) {
555
564
  return value !== void 0 && value !== null && value !== "";
556
565
  }
557
- var defaultProps = {};
566
+ var defaultProps = {
567
+ tileSize: DEFAULT_TILE_SIZE
568
+ };
558
569
  var _SpatialIndexTileLayer = class extends import_geo_layers2.TileLayer {
559
570
  _updateAutoHighlight(info) {
560
571
  const { hoveredFeatureId } = this.state;
@@ -689,7 +700,8 @@ var renderSubLayers = (props) => {
689
700
  });
690
701
  };
691
702
  var defaultProps2 = {
692
- data: TilejsonPropType
703
+ data: TilejsonPropType,
704
+ tileSize: DEFAULT_TILE_SIZE
693
705
  };
694
706
  var _H3TileLayer = class extends import_core5.CompositeLayer {
695
707
  initializeState() {
@@ -966,7 +978,8 @@ var renderSubLayers2 = (props) => {
966
978
  });
967
979
  };
968
980
  var defaultProps5 = {
969
- data: TilejsonPropType
981
+ data: TilejsonPropType,
982
+ tileSize: DEFAULT_TILE_SIZE
970
983
  };
971
984
  var _QuadbinTileLayer = class extends import_core7.CompositeLayer {
972
985
  getLoadOptions() {
@@ -1093,7 +1106,7 @@ var _RasterColumnLayer = class extends import_layers2.ColumnLayer {
1093
1106
  getShaders() {
1094
1107
  const shaders = super.getShaders();
1095
1108
  const data = this.props.data;
1096
- const BLOCK_WIDTH = data.blockWidth || Math.sqrt(data.length);
1109
+ const BLOCK_WIDTH = data.data.blockSize ?? Math.sqrt(data.length);
1097
1110
  return { ...shaders, defines: { ...shaders.defines, BLOCK_WIDTH }, vs: raster_layer_vertex_glsl_default };
1098
1111
  }
1099
1112
  initializeState() {
@@ -1130,10 +1143,9 @@ var _RasterLayer = class extends import_core8.CompositeLayer {
1130
1143
  const { data, getElevation, getFillColor, getLineColor, getLineWidth, tileIndex, updateTriggers } = this.props;
1131
1144
  if (!data || !tileIndex)
1132
1145
  return null;
1133
- const { blockWidth, blockHeight } = data;
1134
- assert(blockWidth === blockHeight, `blockWidth (${blockWidth}) must equal blockHeight (${blockHeight})`);
1146
+ const blockSize = data.blockSize ?? 0;
1135
1147
  const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);
1136
- const offset = [xOffset, yOffset, scale / blockWidth];
1148
+ const offset = [xOffset, yOffset, scale / blockSize];
1137
1149
  const CellLayer = this.getSubLayerClass("column", RasterColumnLayer);
1138
1150
  return new CellLayer(this.props, this.getSubLayerProps({
1139
1151
  id: "cell",
@@ -1145,7 +1157,7 @@ var _RasterLayer = class extends import_core8.CompositeLayer {
1145
1157
  }), {
1146
1158
  data: {
1147
1159
  data,
1148
- length: blockWidth * blockHeight
1160
+ length: blockSize * blockSize
1149
1161
  },
1150
1162
  offset
1151
1163
  });
@@ -1179,7 +1191,8 @@ var renderSubLayers3 = (props) => {
1179
1191
  return new RasterLayer(props, { tileIndex });
1180
1192
  };
1181
1193
  var defaultProps7 = {
1182
- data: TilejsonPropType
1194
+ data: TilejsonPropType,
1195
+ tileSize: DEFAULT_TILE_SIZE
1183
1196
  };
1184
1197
  var _RasterTileLayer = class extends import_core9.CompositeLayer {
1185
1198
  getLoadOptions() {
@@ -1255,7 +1268,7 @@ var carto_properties_tile_loader_default = CartoPropertiesTileLoader;
1255
1268
 
1256
1269
  // dist/layers/schema/carto-vector-tile-loader.js
1257
1270
  var import_earcut = __toESM(require("earcut"), 1);
1258
- var VERSION3 = true ? "9.0.0-beta.7" : "latest";
1271
+ var VERSION3 = true ? "9.0.0-beta.8" : "latest";
1259
1272
  var id3 = "cartoVectorTile";
1260
1273
  var DEFAULT_OPTIONS3 = {
1261
1274
  cartoVectorTile: {
@@ -1320,7 +1333,8 @@ var import_gis = require("@loaders.gl/gis");
1320
1333
  var defaultProps8 = {
1321
1334
  ...import_geo_layers6.MVTLayer.defaultProps,
1322
1335
  data: TilejsonPropType,
1323
- dataComparator: TilejsonPropType.equal
1336
+ dataComparator: TilejsonPropType.equal,
1337
+ tileSize: DEFAULT_TILE_SIZE
1324
1338
  };
1325
1339
  var _VectorTileLayer = class extends import_geo_layers6.MVTLayer {
1326
1340
  constructor(...propObjects) {
@@ -1573,7 +1587,7 @@ function formatErrorKey(key) {
1573
1587
  // dist/api/common.js
1574
1588
  var DEFAULT_API_BASE_URL = "https://gcp-us-east1.api.carto.com";
1575
1589
  var DEFAULT_CLIENT = "deck-gl-carto";
1576
- var V3_MINOR_VERSION = "3.3";
1590
+ var V3_MINOR_VERSION = "3.4";
1577
1591
  var MAX_GET_LENGTH = 8192;
1578
1592
  var DEFAULT_PARAMETERS = {
1579
1593
  v: V3_MINOR_VERSION
@@ -1612,14 +1626,13 @@ function encodeParameter(name, value) {
1612
1626
  }
1613
1627
  var REQUEST_CACHE = /* @__PURE__ */ new Map();
1614
1628
  async function requestWithParameters({ accessToken, baseUrl: baseUrl2, parameters, headers: customHeaders, errorContext }) {
1615
- const key = JSON.stringify({ baseUrl: baseUrl2, parameters, customHeaders });
1629
+ const key = createCacheKey(baseUrl2, parameters || {}, customHeaders || {});
1616
1630
  if (REQUEST_CACHE.has(key)) {
1617
1631
  return REQUEST_CACHE.get(key);
1618
1632
  }
1619
1633
  let url = baseUrl2;
1620
1634
  if (parameters) {
1621
- const allParameters = { ...DEFAULT_PARAMETERS, ...parameters };
1622
- const encodedParameters = Object.entries(allParameters).map(([key2, value]) => {
1635
+ const encodedParameters = Object.entries({ ...DEFAULT_PARAMETERS, ...parameters }).map(([key2, value]) => {
1623
1636
  return encodeParameter(key2, value);
1624
1637
  });
1625
1638
  url += `?${encodedParameters.join("&")}`;
@@ -1651,6 +1664,11 @@ async function requestWithParameters({ accessToken, baseUrl: baseUrl2, parameter
1651
1664
  throw new CartoAPIError(error, errorContext);
1652
1665
  }
1653
1666
  }
1667
+ function createCacheKey(baseUrl2, parameters, headers) {
1668
+ const parameterEntries = Object.entries(parameters).sort(([a], [b]) => a > b ? 1 : -1);
1669
+ const headerEntries = Object.entries(headers).sort(([a], [b]) => a > b ? 1 : -1);
1670
+ return JSON.stringify({ baseUrl: baseUrl2, parameters: parameterEntries, headers: headerEntries });
1671
+ }
1654
1672
 
1655
1673
  // dist/sources/base-source.js
1656
1674
  var SOURCE_DEFAULTS = {
@@ -1742,7 +1760,7 @@ var boundaryTableSource = async function(options) {
1742
1760
 
1743
1761
  // dist/sources/h3-query-source.js
1744
1762
  var h3QuerySource = async function(options) {
1745
- const { aggregationExp, aggregationResLevel = 4, sqlQuery, spatialDataColumn = "h3", queryParameters } = options;
1763
+ const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3, sqlQuery, spatialDataColumn = "h3", queryParameters } = options;
1746
1764
  const urlParameters = {
1747
1765
  aggregationExp,
1748
1766
  spatialDataColumn,
@@ -1760,7 +1778,7 @@ var h3QuerySource = async function(options) {
1760
1778
 
1761
1779
  // dist/sources/h3-table-source.js
1762
1780
  var h3TableSource = async function(options) {
1763
- const { aggregationExp, aggregationResLevel = 4, columns, spatialDataColumn = "h3", tableName } = options;
1781
+ const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_H3, spatialDataColumn = "h3", tableName } = options;
1764
1782
  const urlParameters = {
1765
1783
  aggregationExp,
1766
1784
  name: tableName,
@@ -1770,9 +1788,6 @@ var h3TableSource = async function(options) {
1770
1788
  if (aggregationResLevel) {
1771
1789
  urlParameters.aggregationResLevel = String(aggregationResLevel);
1772
1790
  }
1773
- if (columns) {
1774
- urlParameters.columns = columns.join(",");
1775
- }
1776
1791
  return baseSource("table", options, urlParameters);
1777
1792
  };
1778
1793
 
@@ -1792,7 +1807,7 @@ var rasterSource = async function(options) {
1792
1807
 
1793
1808
  // dist/sources/quadbin-query-source.js
1794
1809
  var quadbinQuerySource = async function(options) {
1795
- const { aggregationExp, aggregationResLevel = 6, sqlQuery, spatialDataColumn = "quadbin", queryParameters } = options;
1810
+ const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN, sqlQuery, spatialDataColumn = "quadbin", queryParameters } = options;
1796
1811
  const urlParameters = {
1797
1812
  aggregationExp,
1798
1813
  q: sqlQuery,
@@ -1810,7 +1825,7 @@ var quadbinQuerySource = async function(options) {
1810
1825
 
1811
1826
  // dist/sources/quadbin-table-source.js
1812
1827
  var quadbinTableSource = async function(options) {
1813
- const { aggregationExp, aggregationResLevel = 6, columns, spatialDataColumn = "quadbin", tableName } = options;
1828
+ const { aggregationExp, aggregationResLevel = DEFAULT_AGGREGATION_RES_LEVEL_QUADBIN, spatialDataColumn = "quadbin", tableName } = options;
1814
1829
  const urlParameters = {
1815
1830
  aggregationExp,
1816
1831
  name: tableName,
@@ -1820,9 +1835,6 @@ var quadbinTableSource = async function(options) {
1820
1835
  if (aggregationResLevel) {
1821
1836
  urlParameters.aggregationResLevel = String(aggregationResLevel);
1822
1837
  }
1823
- if (columns) {
1824
- urlParameters.columns = columns.join(",");
1825
- }
1826
1838
  return baseSource("table", options, urlParameters);
1827
1839
  };
1828
1840
 
@@ -1835,8 +1847,13 @@ var quadbinTilesetSource = async function(options) {
1835
1847
 
1836
1848
  // dist/sources/vector-query-source.js
1837
1849
  var vectorQuerySource = async function(options) {
1838
- const { columns, filters, spatialDataColumn = "geom", sqlQuery, queryParameters } = options;
1839
- const urlParameters = { spatialDataColumn, spatialDataType: "geo", q: sqlQuery };
1850
+ const { columns, filters, spatialDataColumn = "geom", sqlQuery, tileResolution = DEFAULT_TILE_RESOLUTION, queryParameters } = options;
1851
+ const urlParameters = {
1852
+ spatialDataColumn,
1853
+ spatialDataType: "geo",
1854
+ tileResolution: tileResolution.toString(),
1855
+ q: sqlQuery
1856
+ };
1840
1857
  if (columns) {
1841
1858
  urlParameters.columns = columns.join(",");
1842
1859
  }
@@ -1851,8 +1868,13 @@ var vectorQuerySource = async function(options) {
1851
1868
 
1852
1869
  // dist/sources/vector-table-source.js
1853
1870
  var vectorTableSource = async function(options) {
1854
- const { columns, filters, spatialDataColumn = "geom", tableName } = options;
1855
- const urlParameters = { name: tableName, spatialDataColumn, spatialDataType: "geo" };
1871
+ const { columns, filters, spatialDataColumn = "geom", tableName, tileResolution = DEFAULT_TILE_RESOLUTION } = options;
1872
+ const urlParameters = {
1873
+ name: tableName,
1874
+ spatialDataColumn,
1875
+ spatialDataType: "geo",
1876
+ tileResolution: tileResolution.toString()
1877
+ };
1856
1878
  if (columns) {
1857
1879
  urlParameters.columns = columns.join(",");
1858
1880
  }
@@ -1870,7 +1892,7 @@ var vectorTilesetSource = async function(options) {
1870
1892
  };
1871
1893
 
1872
1894
  // dist/api/parse-map.js
1873
- var import_constants = require("@luma.gl/constants");
1895
+ var import_constants12 = require("@luma.gl/constants");
1874
1896
  var import_core11 = require("@deck.gl/core");
1875
1897
 
1876
1898
  // dist/api/layer-map.js
@@ -2492,19 +2514,24 @@ async function _fetchMapDataset(dataset, accessToken, apiBaseUrl, clientId, head
2492
2514
  if (type === "table") {
2493
2515
  dataset.data = await vectorTableSource({ ...options, columns, tableName: source });
2494
2516
  } else if (type === "query") {
2495
- dataset.data = await vectorQuerySource({ ...options, sqlQuery: source, queryParameters });
2517
+ dataset.data = await vectorQuerySource({
2518
+ ...options,
2519
+ columns,
2520
+ sqlQuery: source,
2521
+ queryParameters
2522
+ });
2496
2523
  }
2497
2524
  } else if (spatialDataType === "h3") {
2498
2525
  const options = { ...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn };
2499
2526
  if (type === "table") {
2500
- dataset.data = await h3TableSource({ ...options, columns, tableName: source });
2527
+ dataset.data = await h3TableSource({ ...options, tableName: source });
2501
2528
  } else if (type === "query") {
2502
2529
  dataset.data = await h3QuerySource({ ...options, sqlQuery: source, queryParameters });
2503
2530
  }
2504
2531
  } else if (spatialDataType === "quadbin") {
2505
2532
  const options = { ...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn };
2506
2533
  if (type === "table") {
2507
- dataset.data = await quadbinTableSource({ ...options, columns, tableName: source });
2534
+ dataset.data = await quadbinTableSource({ ...options, tableName: source });
2508
2535
  } else if (type === "query") {
2509
2536
  dataset.data = await quadbinQuerySource({ ...options, sqlQuery: source, queryParameters });
2510
2537
  }