@deck.gl/carto 9.0.34 → 9.1.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.
Files changed (242) hide show
  1. package/dist/api/basemap.d.ts +2 -1
  2. package/dist/api/basemap.d.ts.map +1 -1
  3. package/dist/api/basemap.js +3 -0
  4. package/dist/api/fetch-map.d.ts.map +1 -1
  5. package/dist/api/fetch-map.js +9 -11
  6. package/dist/api/index.d.ts +1 -4
  7. package/dist/api/index.d.ts.map +1 -1
  8. package/dist/api/index.js +3 -2
  9. package/dist/api/layer-map.d.ts.map +1 -1
  10. package/dist/api/layer-map.js +5 -2
  11. package/dist/api/parse-map.d.ts.map +1 -1
  12. package/dist/api/parse-map.js +3 -0
  13. package/dist/api/types.d.ts +0 -56
  14. package/dist/api/types.d.ts.map +1 -1
  15. package/dist/api/types.js +4 -20
  16. package/dist/basemap.d.ts +2 -1
  17. package/dist/basemap.d.ts.map +1 -1
  18. package/dist/basemap.js +4 -1
  19. package/dist/cartoRasterTile-worker.js +25 -2
  20. package/dist/cartoSpatialTile-worker.js +28 -3
  21. package/dist/cartoVectorTile-worker.js +29 -3
  22. package/dist/constants.d.ts +0 -3
  23. package/dist/constants.d.ts.map +1 -1
  24. package/dist/constants.js +3 -3
  25. package/dist/dist.dev.js +4512 -3855
  26. package/dist/index.cjs +328 -630
  27. package/dist/index.cjs.map +4 -4
  28. package/dist/index.d.ts +29 -16
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +12 -2
  31. package/dist/layers/cluster-tile-layer.d.ts +1 -1
  32. package/dist/layers/cluster-tile-layer.d.ts.map +1 -1
  33. package/dist/layers/cluster-tile-layer.js +4 -0
  34. package/dist/layers/cluster-utils.d.ts.map +1 -1
  35. package/dist/layers/cluster-utils.js +3 -0
  36. package/dist/layers/h3-tile-layer.d.ts +4 -4
  37. package/dist/layers/h3-tile-layer.d.ts.map +1 -1
  38. package/dist/layers/h3-tile-layer.js +15 -14
  39. package/dist/layers/h3-tileset-2d.d.ts.map +1 -1
  40. package/dist/layers/h3-tileset-2d.js +3 -0
  41. package/dist/layers/heatmap-tile-layer.d.ts +12 -2
  42. package/dist/layers/heatmap-tile-layer.d.ts.map +1 -1
  43. package/dist/layers/heatmap-tile-layer.js +85 -9
  44. package/dist/layers/heatmap.d.ts +69 -22
  45. package/dist/layers/heatmap.d.ts.map +1 -1
  46. package/dist/layers/heatmap.js +86 -102
  47. package/dist/layers/point-label-layer.d.ts.map +1 -1
  48. package/dist/layers/point-label-layer.js +5 -2
  49. package/dist/layers/post-process-utils.d.ts.map +1 -1
  50. package/dist/layers/post-process-utils.js +9 -5
  51. package/dist/layers/quadbin-layer.d.ts.map +1 -1
  52. package/dist/layers/quadbin-layer.js +3 -0
  53. package/dist/layers/quadbin-tile-layer.d.ts +4 -4
  54. package/dist/layers/quadbin-tile-layer.d.ts.map +1 -1
  55. package/dist/layers/quadbin-tile-layer.js +13 -12
  56. package/dist/layers/quadbin-tileset-2d.d.ts.map +1 -1
  57. package/dist/layers/quadbin-tileset-2d.js +3 -0
  58. package/dist/layers/quadbin-utils.d.ts.map +1 -1
  59. package/dist/layers/quadbin-utils.js +3 -0
  60. package/dist/layers/raster-layer-vertex.glsl.d.ts +1 -1
  61. package/dist/layers/raster-layer-vertex.glsl.d.ts.map +1 -1
  62. package/dist/layers/raster-layer-vertex.glsl.js +20 -25
  63. package/dist/layers/raster-layer.d.ts +6 -6
  64. package/dist/layers/raster-layer.d.ts.map +1 -1
  65. package/dist/layers/raster-layer.js +6 -1
  66. package/dist/layers/raster-tile-layer.d.ts +1 -1
  67. package/dist/layers/raster-tile-layer.d.ts.map +1 -1
  68. package/dist/layers/raster-tile-layer.js +14 -13
  69. package/dist/layers/schema/carto-properties-tile-loader.d.ts.map +1 -1
  70. package/dist/layers/schema/carto-properties-tile-loader.js +3 -0
  71. package/dist/layers/schema/carto-properties-tile.d.ts.map +1 -1
  72. package/dist/layers/schema/carto-properties-tile.js +3 -0
  73. package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  74. package/dist/layers/schema/carto-raster-tile-loader.js +4 -1
  75. package/dist/layers/schema/carto-raster-tile.d.ts.map +1 -1
  76. package/dist/layers/schema/carto-raster-tile.js +3 -0
  77. package/dist/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  78. package/dist/layers/schema/carto-spatial-tile-loader.js +4 -1
  79. package/dist/layers/schema/carto-spatial-tile.d.ts.map +1 -1
  80. package/dist/layers/schema/carto-spatial-tile.js +3 -0
  81. package/dist/layers/schema/carto-tile.d.ts.map +1 -1
  82. package/dist/layers/schema/carto-tile.js +3 -0
  83. package/dist/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  84. package/dist/layers/schema/carto-vector-tile-loader.js +4 -1
  85. package/dist/layers/schema/fast-pbf.d.ts.map +1 -1
  86. package/dist/layers/schema/fast-pbf.js +3 -0
  87. package/dist/layers/schema/spatialjson-utils.d.ts.map +1 -1
  88. package/dist/layers/schema/spatialjson-utils.js +3 -0
  89. package/dist/layers/schema/tile-loader-utils.d.ts.map +1 -1
  90. package/dist/layers/schema/tile-loader-utils.js +3 -0
  91. package/dist/layers/spatial-index-tile-layer.d.ts.map +1 -1
  92. package/dist/layers/spatial-index-tile-layer.js +3 -0
  93. package/dist/layers/utils.d.ts +2 -2
  94. package/dist/layers/utils.d.ts.map +1 -1
  95. package/dist/layers/utils.js +3 -0
  96. package/dist/layers/vector-tile-layer.d.ts +1 -1
  97. package/dist/layers/vector-tile-layer.d.ts.map +1 -1
  98. package/dist/layers/vector-tile-layer.js +3 -0
  99. package/dist/style/color-bins-style.d.ts.map +1 -1
  100. package/dist/style/color-bins-style.js +3 -0
  101. package/dist/style/color-categories-style.d.ts.map +1 -1
  102. package/dist/style/color-categories-style.js +3 -0
  103. package/dist/style/color-continuous-style.d.ts.map +1 -1
  104. package/dist/style/color-continuous-style.js +3 -0
  105. package/dist/style/palette.d.ts.map +1 -1
  106. package/dist/style/palette.js +3 -0
  107. package/dist/style/utils.d.ts.map +1 -1
  108. package/dist/style/utils.js +3 -0
  109. package/dist/utils.d.ts.map +1 -1
  110. package/dist/utils.js +3 -0
  111. package/dist/workers/cartoRasterTile.js +3 -0
  112. package/dist/workers/cartoSpatialTile.js +3 -0
  113. package/dist/workers/cartoVectorTile.js +3 -0
  114. package/dist.min.js +115 -101
  115. package/package.json +13 -11
  116. package/src/api/basemap.ts +6 -1
  117. package/src/api/fetch-map.ts +23 -15
  118. package/src/api/index.ts +5 -13
  119. package/src/api/layer-map.ts +6 -2
  120. package/src/api/parse-map.ts +4 -0
  121. package/src/api/types.ts +4 -75
  122. package/src/basemap.ts +6 -2
  123. package/src/constants.ts +4 -4
  124. package/src/index.ts +28 -9
  125. package/src/layers/cluster-tile-layer.ts +6 -1
  126. package/src/layers/cluster-utils.ts +4 -0
  127. package/src/layers/h3-tile-layer.ts +18 -16
  128. package/src/layers/h3-tileset-2d.ts +4 -0
  129. package/src/layers/heatmap-tile-layer.ts +115 -11
  130. package/src/layers/heatmap.ts +41 -99
  131. package/src/layers/point-label-layer.ts +6 -2
  132. package/src/layers/post-process-utils.ts +10 -5
  133. package/src/layers/quadbin-layer.ts +4 -0
  134. package/src/layers/quadbin-tile-layer.ts +16 -14
  135. package/src/layers/quadbin-tileset-2d.ts +4 -0
  136. package/src/layers/quadbin-utils.ts +4 -0
  137. package/src/layers/raster-layer-vertex.glsl.ts +21 -27
  138. package/src/layers/raster-layer.ts +7 -1
  139. package/src/layers/raster-tile-layer.ts +16 -14
  140. package/src/layers/schema/carto-properties-tile-loader.ts +4 -0
  141. package/src/layers/schema/carto-properties-tile.ts +4 -0
  142. package/src/layers/schema/carto-raster-tile-loader.ts +4 -0
  143. package/src/layers/schema/carto-raster-tile.ts +4 -0
  144. package/src/layers/schema/carto-spatial-tile-loader.ts +4 -0
  145. package/src/layers/schema/carto-spatial-tile.ts +4 -0
  146. package/src/layers/schema/carto-tile.ts +4 -0
  147. package/src/layers/schema/carto-vector-tile-loader.ts +4 -0
  148. package/src/layers/schema/fast-pbf.ts +4 -0
  149. package/src/layers/schema/spatialjson-utils.ts +4 -0
  150. package/src/layers/schema/tile-loader-utils.ts +4 -0
  151. package/src/layers/spatial-index-tile-layer.ts +4 -0
  152. package/src/layers/utils.ts +5 -1
  153. package/src/layers/vector-tile-layer.ts +5 -1
  154. package/src/style/color-bins-style.ts +4 -0
  155. package/src/style/color-categories-style.ts +4 -0
  156. package/src/style/color-continuous-style.ts +4 -0
  157. package/src/style/palette.ts +4 -0
  158. package/src/style/utils.ts +4 -0
  159. package/src/utils.ts +4 -0
  160. package/src/workers/cartoRasterTile.ts +4 -0
  161. package/src/workers/cartoSpatialTile.ts +4 -0
  162. package/src/workers/cartoVectorTile.ts +4 -0
  163. package/dist/api/carto-api-error.d.ts +0 -19
  164. package/dist/api/carto-api-error.d.ts.map +0 -1
  165. package/dist/api/carto-api-error.js +0 -48
  166. package/dist/api/common.d.ts +0 -5
  167. package/dist/api/common.d.ts.map +0 -1
  168. package/dist/api/common.js +0 -5
  169. package/dist/api/endpoints.d.ts +0 -23
  170. package/dist/api/endpoints.d.ts.map +0 -1
  171. package/dist/api/endpoints.js +0 -22
  172. package/dist/api/query.d.ts +0 -4
  173. package/dist/api/query.d.ts.map +0 -1
  174. package/dist/api/query.js +0 -26
  175. package/dist/api/request-with-parameters.d.ts +0 -9
  176. package/dist/api/request-with-parameters.d.ts.map +0 -1
  177. package/dist/api/request-with-parameters.js +0 -86
  178. package/dist/sources/base-source.d.ts +0 -5
  179. package/dist/sources/base-source.d.ts.map +0 -1
  180. package/dist/sources/base-source.js +0 -60
  181. package/dist/sources/boundary-query-source.d.ts +0 -10
  182. package/dist/sources/boundary-query-source.d.ts.map +0 -1
  183. package/dist/sources/boundary-query-source.js +0 -18
  184. package/dist/sources/boundary-table-source.d.ts +0 -8
  185. package/dist/sources/boundary-table-source.d.ts.map +0 -1
  186. package/dist/sources/boundary-table-source.js +0 -15
  187. package/dist/sources/h3-query-source.d.ts +0 -4
  188. package/dist/sources/h3-query-source.d.ts.map +0 -1
  189. package/dist/sources/h3-query-source.js +0 -22
  190. package/dist/sources/h3-table-source.d.ts +0 -4
  191. package/dist/sources/h3-table-source.d.ts.map +0 -1
  192. package/dist/sources/h3-table-source.js +0 -19
  193. package/dist/sources/h3-tileset-source.d.ts +0 -4
  194. package/dist/sources/h3-tileset-source.d.ts.map +0 -1
  195. package/dist/sources/h3-tileset-source.js +0 -6
  196. package/dist/sources/index.d.ts +0 -28
  197. package/dist/sources/index.d.ts.map +0 -1
  198. package/dist/sources/index.js +0 -13
  199. package/dist/sources/quadbin-query-source.d.ts +0 -4
  200. package/dist/sources/quadbin-query-source.d.ts.map +0 -1
  201. package/dist/sources/quadbin-query-source.js +0 -22
  202. package/dist/sources/quadbin-table-source.d.ts +0 -4
  203. package/dist/sources/quadbin-table-source.d.ts.map +0 -1
  204. package/dist/sources/quadbin-table-source.js +0 -19
  205. package/dist/sources/quadbin-tileset-source.d.ts +0 -4
  206. package/dist/sources/quadbin-tileset-source.d.ts.map +0 -1
  207. package/dist/sources/quadbin-tileset-source.js +0 -6
  208. package/dist/sources/raster-source.d.ts +0 -4
  209. package/dist/sources/raster-source.d.ts.map +0 -1
  210. package/dist/sources/raster-source.js +0 -9
  211. package/dist/sources/types.d.ts +0 -219
  212. package/dist/sources/types.d.ts.map +0 -1
  213. package/dist/sources/types.js +0 -1
  214. package/dist/sources/vector-query-source.d.ts +0 -4
  215. package/dist/sources/vector-query-source.d.ts.map +0 -1
  216. package/dist/sources/vector-query-source.js +0 -22
  217. package/dist/sources/vector-table-source.d.ts +0 -4
  218. package/dist/sources/vector-table-source.d.ts.map +0 -1
  219. package/dist/sources/vector-table-source.js +0 -19
  220. package/dist/sources/vector-tileset-source.d.ts +0 -4
  221. package/dist/sources/vector-tileset-source.d.ts.map +0 -1
  222. package/dist/sources/vector-tileset-source.js +0 -6
  223. package/src/api/carto-api-error.ts +0 -68
  224. package/src/api/common.ts +0 -6
  225. package/src/api/endpoints.ts +0 -69
  226. package/src/api/query.ts +0 -42
  227. package/src/api/request-with-parameters.ts +0 -117
  228. package/src/sources/base-source.ts +0 -79
  229. package/src/sources/boundary-query-source.ts +0 -39
  230. package/src/sources/boundary-table-source.ts +0 -33
  231. package/src/sources/h3-query-source.ts +0 -55
  232. package/src/sources/h3-table-source.ts +0 -51
  233. package/src/sources/h3-tileset-source.ts +0 -14
  234. package/src/sources/index.ts +0 -45
  235. package/src/sources/quadbin-query-source.ts +0 -56
  236. package/src/sources/quadbin-table-source.ts +0 -52
  237. package/src/sources/quadbin-tileset-source.ts +0 -14
  238. package/src/sources/raster-source.ts +0 -17
  239. package/src/sources/types.ts +0 -231
  240. package/src/sources/vector-query-source.ts +0 -57
  241. package/src/sources/vector-table-source.ts +0 -51
  242. package/src/sources/vector-tileset-source.ts +0 -14
@@ -1,7 +1,11 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';
2
6
  import RasterLayer, {RasterLayerProps} from './raster-layer';
3
7
  import QuadbinTileset2D from './quadbin-tileset-2d';
4
- import type {TilejsonResult} from '../sources/types';
8
+ import type {TilejsonResult} from '@carto/api-client';
5
9
  import {injectAccessToken, TilejsonPropType} from './utils';
6
10
  import {DEFAULT_TILE_SIZE} from '../constants';
7
11
  import {TileLayer, TileLayerProps} from '@deck.gl/geo-layers';
@@ -46,18 +50,16 @@ export default class RasterTileLayer<
46
50
  if (!tileJSON) return null;
47
51
 
48
52
  const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;
49
- return [
50
- // @ts-ignore
51
- new TileLayer(this.props, {
52
- id: `raster-tile-layer-${this.props.id}`,
53
- data,
54
- // TODO: Tileset2D should be generic over TileIndex type
55
- TilesetClass: QuadbinTileset2D as any,
56
- renderSubLayers,
57
- minZoom,
58
- maxZoom,
59
- loadOptions: this.getLoadOptions()
60
- })
61
- ];
53
+ const SubLayerClass = this.getSubLayerClass('tile', TileLayer);
54
+ return new SubLayerClass(this.props, {
55
+ id: `raster-tile-layer-${this.props.id}`,
56
+ data,
57
+ // TODO: Tileset2D should be generic over TileIndex type
58
+ TilesetClass: QuadbinTileset2D as any,
59
+ renderSubLayers,
60
+ minZoom,
61
+ maxZoom,
62
+ loadOptions: this.getLoadOptions()
63
+ });
62
64
  }
63
65
  }
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
2
6
 
3
7
  import {Tile, TileReader} from './carto-properties-tile';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {NumericProp, NumericPropKeyValueReader, PropertiesReader} from './carto-tile';
2
6
 
3
7
  // Tile ========================================
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
2
6
 
3
7
  import {TileReader} from './carto-raster-tile';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {readPackedTypedArray} from './fast-pbf';
2
6
 
3
7
  const ARRAY_TYPES = {
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
2
6
 
3
7
  import {Tile, TileReader} from './carto-spatial-tile';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {readPackedTypedArray} from './fast-pbf';
2
6
  import {Indices, IndexScheme} from './spatialjson-utils';
3
7
  import {NumericProp, NumericPropKeyValueReader, PropertiesReader} from './carto-tile';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {readPackedTypedArray} from './fast-pbf';
2
6
 
3
7
  // KeyValueObject ========================================
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import earcut from 'earcut';
2
6
  import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
3
7
  import type {BinaryFeatureCollection, BinaryPolygonFeature, TypedArray} from '@loaders.gl/schema';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  // Optimized (100X speed improvement) reading function for binary data
2
6
  export function readPackedTypedArray(TypedArray, pbf, obj) {
3
7
  const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {bigIntToHex} from 'quadbin';
2
6
 
3
7
  export type IndexScheme = 'h3' | 'quadbin';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import Protobuf from 'pbf';
2
6
 
3
7
  export function parsePbf(buffer: ArrayBuffer, TileReader) {
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {registerLoaders} from '@loaders.gl/core';
2
6
  import {DefaultProps, LayerProps} from '@deck.gl/core';
3
7
  import CartoRasterTileLoader from './schema/carto-raster-tile-loader';
@@ -1,8 +1,12 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {log} from '@deck.gl/core';
2
6
  import {Tile as PropertiesTile} from './schema/carto-properties-tile';
3
7
  import {Tile as VectorTile} from './schema/carto-tile';
4
8
  import {_deepEqual as deepEqual} from '@deck.gl/core';
5
- import type {TilejsonResult} from '../sources/types';
9
+ import type {TilejsonResult} from '@carto/api-client';
6
10
 
7
11
  /**
8
12
  * Adds access token to Authorization header in loadOptions
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {registerLoaders} from '@loaders.gl/core';
2
6
  import CartoPropertiesTileLoader from './schema/carto-properties-tile-loader';
3
7
  import CartoVectorTileLoader from './schema/carto-vector-tile-loader';
@@ -15,7 +19,7 @@ import {
15
19
  } from '@deck.gl/geo-layers';
16
20
  import {GeoJsonLayer} from '@deck.gl/layers';
17
21
 
18
- import type {TilejsonResult} from '../sources/types';
22
+ import type {TilejsonResult} from '@carto/api-client';
19
23
  import {TilejsonPropType, injectAccessToken, mergeBoundaryData} from './utils';
20
24
  import {DEFAULT_TILE_SIZE} from '../constants';
21
25
 
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {scaleThreshold} from 'd3-scale';
2
6
  import {AccessorFunction, Color} from '@deck.gl/core';
3
7
  import {Feature} from 'geojson';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {AccessorFunction, Color} from '@deck.gl/core';
2
6
  import {Feature} from 'geojson';
3
7
  import getPalette, {DEFAULT_PALETTE, NULL_COLOR, OTHERS_COLOR} from './palette';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {AccessorFunction, Color} from '@deck.gl/core';
2
6
  import {scaleLinear} from 'd3-scale';
3
7
  import {Feature} from 'geojson';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import * as cartoColors from 'cartocolor';
2
6
  import {assert} from '../utils';
3
7
  import {Color} from '@deck.gl/core';
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {Feature} from 'geojson';
2
6
  import {assert} from '../utils';
3
7
 
package/src/utils.ts CHANGED
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {log} from '@deck.gl/core';
2
6
  import type {Properties, NumericProps} from './layers/schema/spatialjson-utils';
3
7
 
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {createLoaderWorker} from '@loaders.gl/loader-utils';
2
6
  import CartoRasterTileLoader from '../layers/schema/carto-raster-tile-loader';
3
7
 
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {createLoaderWorker} from '@loaders.gl/loader-utils';
2
6
  import CartoSpatialTileLoader from '../layers/schema/carto-spatial-tile-loader';
3
7
 
@@ -1,3 +1,7 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {createLoaderWorker} from '@loaders.gl/loader-utils';
2
6
  import CartoVectorTileLoader from '../layers/schema/carto-vector-tile-loader';
3
7
 
@@ -1,19 +0,0 @@
1
- import type { APIErrorContext } from "./types.js";
2
- /**
3
- *
4
- * Custom error for reported errors in CARTO Maps API.
5
- * Provides useful debugging information in console and context for applications.
6
- *
7
- */
8
- export declare class CartoAPIError extends Error {
9
- /** Source error from server */
10
- error: Error;
11
- /** Context (API call & parameters) in which error occured */
12
- errorContext: APIErrorContext;
13
- /** Response from server */
14
- response?: Response;
15
- /** JSON Response from server */
16
- responseJson?: any;
17
- constructor(error: Error, errorContext: APIErrorContext, response?: Response, responseJson?: any);
18
- }
19
- //# sourceMappingURL=carto-api-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carto-api-error.d.ts","sourceRoot":"","sources":["../../src/api/carto-api-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,mBAAgB;AAE7C;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,+BAA+B;IAC/B,KAAK,EAAE,KAAK,CAAC;IAEb,6DAA6D;IAC7D,YAAY,EAAE,eAAe,CAAC;IAE9B,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,gCAAgC;IAChC,YAAY,CAAC,EAAE,GAAG,CAAC;gBAGjB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,eAAe,EAC7B,QAAQ,CAAC,EAAE,QAAQ,EACnB,YAAY,CAAC,EAAE,GAAG;CAmCrB"}
@@ -1,48 +0,0 @@
1
- /**
2
- *
3
- * Custom error for reported errors in CARTO Maps API.
4
- * Provides useful debugging information in console and context for applications.
5
- *
6
- */
7
- export class CartoAPIError extends Error {
8
- constructor(error, errorContext, response, responseJson) {
9
- let responseString = 'Failed to connect';
10
- if (response) {
11
- responseString = 'Server returned: ';
12
- if (response.status === 400) {
13
- responseString += 'Bad request';
14
- }
15
- else if (response.status === 401 || response.status === 403) {
16
- responseString += 'Unauthorized access';
17
- }
18
- else if (response.status === 404) {
19
- responseString += 'Not found';
20
- }
21
- else {
22
- responseString += 'Error';
23
- }
24
- responseString += ` (${response.status}):`;
25
- }
26
- responseString += ` ${error.message || error}`;
27
- let message = `${errorContext.requestType} API request failed`;
28
- message += `\n${responseString}`;
29
- for (const key of Object.keys(errorContext)) {
30
- if (key === 'requestType')
31
- continue; // eslint-disable-line no-continue
32
- message += `\n${formatErrorKey(key)}: ${errorContext[key]}`;
33
- }
34
- message += '\n';
35
- super(message);
36
- this.name = 'CartoAPIError';
37
- this.response = response;
38
- this.responseJson = responseJson;
39
- this.error = error;
40
- this.errorContext = errorContext;
41
- }
42
- }
43
- /**
44
- * Converts camelCase to Camel Case
45
- */
46
- function formatErrorKey(key) {
47
- return key.replace(/([A-Z])/g, ' $1').replace(/^./, s => s.toUpperCase());
48
- }
@@ -1,5 +0,0 @@
1
- export declare const DEFAULT_API_BASE_URL = "https://gcp-us-east1.api.carto.com";
2
- export declare const DEFAULT_CLIENT = "deck-gl-carto";
3
- export declare const V3_MINOR_VERSION = "3.4";
4
- export declare const DEFAULT_MAX_LENGTH_URL = 7000;
5
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,uCAAuC,CAAC;AACzE,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAGtC,eAAO,MAAM,sBAAsB,OAAO,CAAC"}
@@ -1,5 +0,0 @@
1
- export const DEFAULT_API_BASE_URL = 'https://gcp-us-east1.api.carto.com';
2
- export const DEFAULT_CLIENT = 'deck-gl-carto';
3
- export const V3_MINOR_VERSION = '3.4';
4
- // Fastly default limit is 8192; leave some padding.
5
- export const DEFAULT_MAX_LENGTH_URL = 7000;
@@ -1,23 +0,0 @@
1
- import { MapType } from "./types.js";
2
- export type V3Endpoint = 'maps' | 'stats' | 'sql';
3
- export declare function buildPublicMapUrl({ apiBaseUrl, cartoMapId }: {
4
- apiBaseUrl: string;
5
- cartoMapId: string;
6
- }): string;
7
- export declare function buildStatsUrl({ attribute, apiBaseUrl, connectionName, source, type }: {
8
- attribute: string;
9
- apiBaseUrl: string;
10
- connectionName: string;
11
- source: string;
12
- type: MapType;
13
- }): string;
14
- export declare function buildSourceUrl({ apiBaseUrl, connectionName, endpoint }: {
15
- apiBaseUrl: string;
16
- connectionName: string;
17
- endpoint: MapType;
18
- }): string;
19
- export declare function buildQueryUrl({ apiBaseUrl, connectionName }: {
20
- apiBaseUrl: string;
21
- connectionName: string;
22
- }): string;
23
- //# sourceMappingURL=endpoints.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/api/endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,mBAAgB;AAEhC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAelD,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,UAAU,EACX,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAET;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,UAAU,EACV,cAAc,EACd,MAAM,EACN,IAAI,EACL,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,MAAM,CAOT;AAED,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,cAAc,EACd,QAAQ,EACT,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,MAAM,CAET;AAED,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,cAAc,EACf,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAET"}
@@ -1,22 +0,0 @@
1
- function joinPath(...args) {
2
- return args.map(part => (part.endsWith('/') ? part.slice(0, -1) : part)).join('/');
3
- }
4
- function buildV3Path(apiBaseUrl, version, endpoint, ...rest) {
5
- return joinPath(apiBaseUrl, version, endpoint, ...rest);
6
- }
7
- export function buildPublicMapUrl({ apiBaseUrl, cartoMapId }) {
8
- return buildV3Path(apiBaseUrl, 'v3', 'maps', 'public', cartoMapId);
9
- }
10
- export function buildStatsUrl({ attribute, apiBaseUrl, connectionName, source, type }) {
11
- if (type === 'query') {
12
- return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, attribute);
13
- }
14
- // type === 'table'
15
- return buildV3Path(apiBaseUrl, 'v3', 'stats', connectionName, source, attribute);
16
- }
17
- export function buildSourceUrl({ apiBaseUrl, connectionName, endpoint }) {
18
- return buildV3Path(apiBaseUrl, 'v3', 'maps', connectionName, endpoint);
19
- }
20
- export function buildQueryUrl({ apiBaseUrl, connectionName }) {
21
- return buildV3Path(apiBaseUrl, 'v3', 'sql', connectionName, 'query');
22
- }
@@ -1,4 +0,0 @@
1
- import type { SourceOptions, QuerySourceOptions, QueryResult } from "../sources/types.js";
2
- export type QueryOptions = SourceOptions & Omit<QuerySourceOptions, 'spatialDataColumn'>;
3
- export declare const query: (options: QueryOptions) => Promise<QueryResult>;
4
- //# sourceMappingURL=query.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/api/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAC,4BAAyB;AAKrF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AAGzF,eAAO,MAAM,KAAK,YAA4B,YAAY,KAAG,QAAQ,WAAW,CAgC/E,CAAC"}
package/dist/api/query.js DELETED
@@ -1,26 +0,0 @@
1
- import { SOURCE_DEFAULTS } from "../sources/index.js";
2
- import { buildQueryUrl } from "./endpoints.js";
3
- import { requestWithParameters } from "./request-with-parameters.js";
4
- export const query = async function (options) {
5
- const { apiBaseUrl = SOURCE_DEFAULTS.apiBaseUrl, clientId = SOURCE_DEFAULTS.clientId, maxLengthURL = SOURCE_DEFAULTS.maxLengthURL, connectionName, sqlQuery, queryParameters } = options;
6
- const urlParameters = { q: sqlQuery };
7
- if (queryParameters) {
8
- urlParameters.queryParameters = JSON.stringify(queryParameters);
9
- }
10
- const baseUrl = buildQueryUrl({ apiBaseUrl, connectionName });
11
- const headers = { Authorization: `Bearer ${options.accessToken}`, ...options.headers };
12
- const parameters = { client: clientId, ...urlParameters };
13
- const errorContext = {
14
- requestType: 'SQL',
15
- connection: options.connectionName,
16
- type: 'query',
17
- source: JSON.stringify(parameters, undefined, 2)
18
- };
19
- return await requestWithParameters({
20
- baseUrl,
21
- parameters,
22
- headers,
23
- errorContext,
24
- maxLengthURL
25
- });
26
- };
@@ -1,9 +0,0 @@
1
- import type { APIErrorContext } from "./types.js";
2
- export declare function requestWithParameters<T = any>({ baseUrl, parameters, headers: customHeaders, errorContext, maxLengthURL }: {
3
- baseUrl: string;
4
- parameters?: Record<string, unknown>;
5
- headers?: Record<string, string>;
6
- errorContext: APIErrorContext;
7
- maxLengthURL?: number;
8
- }): Promise<T>;
9
- //# sourceMappingURL=request-with-parameters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-with-parameters.d.ts","sourceRoot":"","sources":["../../src/api/request-with-parameters.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,mBAAgB;AAmB7C,wBAAsB,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAAE,EACnD,OAAO,EACP,UAAe,EACf,OAAO,EAAE,aAAkB,EAC3B,YAAY,EACZ,YAAqC,EACtC,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,CAAC,CAAC,CAsCb"}
@@ -1,86 +0,0 @@
1
- import { VERSION } from '@deck.gl/core';
2
- import { isPureObject } from "../utils.js";
3
- import { CartoAPIError } from "./carto-api-error.js";
4
- import { DEFAULT_MAX_LENGTH_URL, V3_MINOR_VERSION } from "./common.js";
5
- /**
6
- * Parameters added to all requests issued with `requestWithParameters()`.
7
- * These parameters override parameters already in the base URL, but not
8
- * user-provided parameters.
9
- */
10
- const DEFAULT_PARAMETERS = {
11
- v: V3_MINOR_VERSION,
12
- deckglVersion: VERSION
13
- };
14
- const DEFAULT_HEADERS = {
15
- Accept: 'application/json',
16
- 'Content-Type': 'application/json'
17
- };
18
- const REQUEST_CACHE = new Map();
19
- export async function requestWithParameters({ baseUrl, parameters = {}, headers: customHeaders = {}, errorContext, maxLengthURL = DEFAULT_MAX_LENGTH_URL }) {
20
- parameters = { ...DEFAULT_PARAMETERS, ...parameters };
21
- baseUrl = excludeURLParameters(baseUrl, Object.keys(parameters));
22
- const key = createCacheKey(baseUrl, parameters, customHeaders);
23
- if (REQUEST_CACHE.has(key)) {
24
- return REQUEST_CACHE.get(key);
25
- }
26
- const url = createURLWithParameters(baseUrl, parameters);
27
- const headers = { ...DEFAULT_HEADERS, ...customHeaders };
28
- /* global fetch */
29
- const fetchPromise = url.length > maxLengthURL
30
- ? fetch(baseUrl, { method: 'POST', body: JSON.stringify(parameters), headers })
31
- : fetch(url, { headers });
32
- let response;
33
- let responseJson;
34
- const jsonPromise = fetchPromise
35
- .then((_response) => {
36
- response = _response;
37
- return response.json();
38
- })
39
- .then((json) => {
40
- responseJson = json;
41
- if (!response || !response.ok) {
42
- throw new Error(json.error);
43
- }
44
- return json;
45
- })
46
- .catch((error) => {
47
- REQUEST_CACHE.delete(key);
48
- throw new CartoAPIError(error, errorContext, response, responseJson);
49
- });
50
- REQUEST_CACHE.set(key, jsonPromise);
51
- return jsonPromise;
52
- }
53
- function createCacheKey(baseUrl, parameters, headers) {
54
- const parameterEntries = Object.entries(parameters).sort(([a], [b]) => (a > b ? 1 : -1));
55
- const headerEntries = Object.entries(headers).sort(([a], [b]) => (a > b ? 1 : -1));
56
- return JSON.stringify({ baseUrl, parameters: parameterEntries, headers: headerEntries });
57
- }
58
- /**
59
- * Appends query string parameters to a URL. Existing URL parameters are kept,
60
- * unless there is a conflict, in which case the new parameters override
61
- * those already in the URL.
62
- */
63
- function createURLWithParameters(baseUrlString, parameters) {
64
- const baseUrl = new URL(baseUrlString);
65
- for (const [key, value] of Object.entries(parameters)) {
66
- if (isPureObject(value) || Array.isArray(value)) {
67
- baseUrl.searchParams.set(key, JSON.stringify(value));
68
- }
69
- else {
70
- baseUrl.searchParams.set(key, value.toString());
71
- }
72
- }
73
- return baseUrl.toString();
74
- }
75
- /**
76
- * Deletes query string parameters from a URL.
77
- */
78
- function excludeURLParameters(baseUrlString, parameters) {
79
- const baseUrl = new URL(baseUrlString);
80
- for (const param of parameters) {
81
- if (baseUrl.searchParams.has(param)) {
82
- baseUrl.searchParams.delete(param);
83
- }
84
- }
85
- return baseUrl.toString();
86
- }
@@ -1,5 +0,0 @@
1
- import type { MapType } from "../api/types.js";
2
- import type { GeojsonResult, JsonResult, SourceOptionalOptions, SourceRequiredOptions, TilejsonResult } from "./types.js";
3
- export declare const SOURCE_DEFAULTS: SourceOptionalOptions;
4
- export declare function baseSource<UrlParameters extends Record<string, unknown>>(endpoint: MapType, options: Partial<SourceOptionalOptions> & SourceRequiredOptions, urlParameters: UrlParameters): Promise<TilejsonResult | GeojsonResult | JsonResult>;
5
- //# sourceMappingURL=base-source.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-source.d.ts","sourceRoot":"","sources":["../../src/sources/base-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,OAAO,EAAC,wBAAqB;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EAErB,cAAc,EACf,mBAAgB;AAEjB,eAAO,MAAM,eAAe,EAAE,qBAM7B,CAAC;AAEF,wBAAsB,UAAU,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5E,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,EAC/D,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC,CAoDtD"}
@@ -1,60 +0,0 @@
1
- /* eslint-disable camelcase */
2
- import { DEFAULT_API_BASE_URL, DEFAULT_CLIENT, DEFAULT_MAX_LENGTH_URL } from "../api/common.js";
3
- import { buildSourceUrl } from "../api/endpoints.js";
4
- import { requestWithParameters } from "../api/request-with-parameters.js";
5
- export const SOURCE_DEFAULTS = {
6
- apiBaseUrl: DEFAULT_API_BASE_URL,
7
- clientId: DEFAULT_CLIENT,
8
- format: 'tilejson',
9
- headers: {},
10
- maxLengthURL: DEFAULT_MAX_LENGTH_URL
11
- };
12
- export async function baseSource(endpoint, options, urlParameters) {
13
- const { accessToken, connectionName, cache, ...optionalOptions } = options;
14
- const mergedOptions = { ...SOURCE_DEFAULTS, accessToken, connectionName, endpoint };
15
- for (const key in optionalOptions) {
16
- if (optionalOptions[key]) {
17
- mergedOptions[key] = optionalOptions[key];
18
- }
19
- }
20
- const baseUrl = buildSourceUrl(mergedOptions);
21
- const { clientId, maxLengthURL, format } = mergedOptions;
22
- const headers = { Authorization: `Bearer ${options.accessToken}`, ...options.headers };
23
- const parameters = { client: clientId, ...urlParameters };
24
- const errorContext = {
25
- requestType: 'Map instantiation',
26
- connection: options.connectionName,
27
- type: endpoint,
28
- source: JSON.stringify(parameters, undefined, 2)
29
- };
30
- const mapInstantiation = await requestWithParameters({
31
- baseUrl,
32
- parameters,
33
- headers,
34
- errorContext,
35
- maxLengthURL
36
- });
37
- const dataUrl = mapInstantiation[format].url[0];
38
- if (cache) {
39
- cache.value = parseInt(new URL(dataUrl).searchParams.get('cache') || '', 10);
40
- }
41
- errorContext.requestType = 'Map data';
42
- if (format === 'tilejson') {
43
- const json = await requestWithParameters({
44
- baseUrl: dataUrl,
45
- headers,
46
- errorContext,
47
- maxLengthURL
48
- });
49
- if (accessToken) {
50
- json.accessToken = accessToken;
51
- }
52
- return json;
53
- }
54
- return await requestWithParameters({
55
- baseUrl: dataUrl,
56
- headers,
57
- errorContext,
58
- maxLengthURL
59
- });
60
- }
@@ -1,10 +0,0 @@
1
- import { QueryParameters } from "../api/index.js";
2
- import type { FilterOptions, SourceOptions, TilejsonResult } from "./types.js";
3
- export type BoundaryQuerySourceOptions = SourceOptions & FilterOptions & {
4
- columns?: string[];
5
- tilesetTableName: string;
6
- propertiesSqlQuery: string;
7
- queryParameters?: QueryParameters;
8
- };
9
- export declare const boundaryQuerySource: (options: BoundaryQuerySourceOptions) => Promise<TilejsonResult>;
10
- //# sourceMappingURL=boundary-query-source.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boundary-query-source.d.ts","sourceRoot":"","sources":["../../src/sources/boundary-query-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,wBAAqB;AAE7C,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAC,mBAAgB;AAE1E,MAAM,MAAM,0BAA0B,GAAG,aAAa,GACpD,aAAa,GAAG;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AASJ,eAAO,MAAM,mBAAmB,YACrB,0BAA0B,KAClC,QAAQ,cAAc,CAiBxB,CAAC"}