@deck.gl/carto 8.7.0-beta.5 → 8.7.0-beta.6

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 (97) hide show
  1. package/dist/dist.dev.js +379 -326
  2. package/dist/es5/api/index.js.map +1 -1
  3. package/dist/es5/api/layer-map.js +8 -8
  4. package/dist/es5/api/layer-map.js.map +1 -1
  5. package/dist/es5/api/maps-api-common.js +15 -1
  6. package/dist/es5/api/maps-api-common.js.map +1 -1
  7. package/dist/es5/api/maps-client.js +15 -18
  8. package/dist/es5/api/maps-client.js.map +1 -1
  9. package/dist/es5/api/maps-v3-client.js +234 -176
  10. package/dist/es5/api/maps-v3-client.js.map +1 -1
  11. package/dist/es5/api/parseMap.js +5 -8
  12. package/dist/es5/api/parseMap.js.map +1 -1
  13. package/dist/es5/basemap.js +7 -7
  14. package/dist/es5/basemap.js.map +1 -1
  15. package/dist/es5/config.js.map +1 -1
  16. package/dist/es5/index.js +4 -4
  17. package/dist/es5/index.js.map +1 -1
  18. package/dist/es5/layers/carto-layer.js +2 -2
  19. package/dist/es5/layers/carto-layer.js.map +1 -1
  20. package/dist/es5/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +23 -23
  21. package/dist/es5/layers/carto-tile-layer.js.map +1 -0
  22. package/dist/es5/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +1 -1
  23. package/dist/es5/layers/schema/carto-tile.js.map +1 -0
  24. package/dist/es5/style/color-bins-style.js +1 -1
  25. package/dist/es5/style/color-bins-style.js.map +1 -1
  26. package/dist/es5/style/color-categories-style.js +1 -1
  27. package/dist/es5/style/color-categories-style.js.map +1 -1
  28. package/dist/es5/style/color-continuous-style.js +1 -1
  29. package/dist/es5/style/color-continuous-style.js.map +1 -1
  30. package/dist/es5/style/palette.js +1 -6
  31. package/dist/es5/style/palette.js.map +1 -1
  32. package/dist/es5/style/utils.js +2 -6
  33. package/dist/es5/style/utils.js.map +1 -1
  34. package/dist/es5/utils.js +13 -0
  35. package/dist/es5/utils.js.map +1 -0
  36. package/dist/esm/api/index.js.map +1 -1
  37. package/dist/esm/api/layer-map.js +5 -4
  38. package/dist/esm/api/layer-map.js.map +1 -1
  39. package/dist/esm/api/maps-api-common.js +14 -0
  40. package/dist/esm/api/maps-api-common.js.map +1 -1
  41. package/dist/esm/api/maps-client.js +6 -10
  42. package/dist/esm/api/maps-client.js.map +1 -1
  43. package/dist/esm/api/maps-v3-client.js +68 -37
  44. package/dist/esm/api/maps-v3-client.js.map +1 -1
  45. package/dist/esm/api/parseMap.js +4 -3
  46. package/dist/esm/api/parseMap.js.map +1 -1
  47. package/dist/esm/basemap.js +7 -7
  48. package/dist/esm/basemap.js.map +1 -1
  49. package/dist/esm/config.js.map +1 -1
  50. package/dist/esm/index.js +2 -2
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/layers/carto-layer.js +2 -2
  53. package/dist/esm/layers/carto-layer.js.map +1 -1
  54. package/dist/esm/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +15 -15
  55. package/dist/esm/layers/carto-tile-layer.js.map +1 -0
  56. package/dist/esm/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +1 -1
  57. package/dist/esm/layers/schema/carto-tile.js.map +1 -0
  58. package/dist/esm/style/color-bins-style.js +1 -1
  59. package/dist/esm/style/color-bins-style.js.map +1 -1
  60. package/dist/esm/style/color-categories-style.js +1 -1
  61. package/dist/esm/style/color-categories-style.js.map +1 -1
  62. package/dist/esm/style/color-continuous-style.js +1 -1
  63. package/dist/esm/style/color-continuous-style.js.map +1 -1
  64. package/dist/esm/style/palette.js +1 -6
  65. package/dist/esm/style/palette.js.map +1 -1
  66. package/dist/esm/style/utils.js +2 -6
  67. package/dist/esm/style/utils.js.map +1 -1
  68. package/dist/esm/utils.js +5 -0
  69. package/dist/esm/utils.js.map +1 -0
  70. package/dist.min.js +2 -2
  71. package/package.json +8 -2
  72. package/src/api/{index.js → index.ts} +0 -0
  73. package/src/api/{layer-map.js → layer-map.ts} +25 -14
  74. package/src/api/maps-api-common.ts +76 -0
  75. package/src/api/{maps-client.js → maps-client.ts} +55 -20
  76. package/src/api/{maps-v3-client.js → maps-v3-client.ts} +143 -56
  77. package/src/api/{parseMap.js → parseMap.ts} +7 -6
  78. package/src/basemap.ts +10 -0
  79. package/src/{config.js → config.ts} +22 -6
  80. package/src/{index.js → index.ts} +2 -2
  81. package/src/layers/carto-layer.js +2 -2
  82. package/src/layers/{carto-dynamic-tile-layer.js → carto-tile-layer.js} +13 -13
  83. package/src/layers/schema/{carto-dynamic-tile.js → carto-tile.js} +0 -0
  84. package/src/style/color-bins-style.ts +26 -0
  85. package/src/style/{color-categories-style.js → color-categories-style.ts} +10 -4
  86. package/src/style/color-continuous-style.ts +25 -0
  87. package/src/style/{palette.js → palette.ts} +18 -15
  88. package/src/style/{utils.js → utils.ts} +7 -10
  89. package/src/utils.ts +5 -0
  90. package/dist/es5/layers/carto-dynamic-tile-layer.js.map +0 -1
  91. package/dist/es5/layers/schema/carto-dynamic-tile.js.map +0 -1
  92. package/dist/esm/layers/carto-dynamic-tile-layer.js.map +0 -1
  93. package/dist/esm/layers/schema/carto-dynamic-tile.js.map +0 -1
  94. package/src/api/maps-api-common.js +0 -41
  95. package/src/basemap.js +0 -10
  96. package/src/style/color-bins-style.js +0 -21
  97. package/src/style/color-continuous-style.js +0 -20
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA","sourcesContent":["export {FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {fetchLayerData, fetchMap, getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA","sourcesContent":["export {FORMATS, TILE_FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {fetchLayerData, fetchMap, getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
@@ -28,13 +28,15 @@ var _d3Format = require("d3-format");
28
28
 
29
29
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
30
30
 
31
- var _core = require("@deck.gl/core");
32
-
33
31
  var _geoLayers = require("@deck.gl/geo-layers");
34
32
 
35
33
  var _layers = require("@deck.gl/layers");
36
34
 
37
- var _carto = require("@deck.gl/carto");
35
+ var _cartoTileLayer = _interopRequireDefault(require("../layers/carto-tile-layer"));
36
+
37
+ var _mapsApiCommon = require("./maps-api-common");
38
+
39
+ var _utils = require("../utils");
38
40
 
39
41
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
40
42
 
@@ -126,9 +128,7 @@ function getLayer(type, config, dataset) {
126
128
  })
127
129
  }
128
130
  }[type];
129
-
130
- _core.log.assert(layer, "Unsupported layer type: ".concat(type));
131
-
131
+ (0, _utils.assert)(layer, "Unsupported layer type: ".concat(type));
132
132
  return layer;
133
133
  }
134
134
 
@@ -136,10 +136,10 @@ function getTileLayer(dataset) {
136
136
  var _dataset$data$tiles = (0, _slicedToArray2.default)(dataset.data.tiles, 1),
137
137
  tileUrl = _dataset$data$tiles[0];
138
138
 
139
- var formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || _carto.TILE_FORMATS.MVT;
139
+ var formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || _mapsApiCommon.TILE_FORMATS.MVT;
140
140
 
141
141
  return {
142
- Layer: formatTiles === _carto.TILE_FORMATS.MVT ? _geoLayers.MVTLayer : _carto._CartoDynamicTileLayer,
142
+ Layer: formatTiles === _mapsApiCommon.TILE_FORMATS.MVT ? _geoLayers.MVTLayer : _cartoTileLayer.default,
143
143
  propMap: sharedPropMap,
144
144
  defaultProps: _objectSpread(_objectSpread({}, defaultProps), {}, {
145
145
  pointRadiusScale: 0.3,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/layer-map.js"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","filled","opacity","strokeColor","stroked","thickness","radius","wireframe","RADIUS_DOWNSCALE","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusScale","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","b","getLayer","type","config","dataset","getTileLayer","hexagonId","columns","hex_id","layer","Layer","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","H3HexagonLayer","coverage","elevationScale","getHexagon","d","assert","data","tiles","tileUrl","formatTiles","URL","searchParams","get","TILE_FORMATS","MVT","MVTLayer","_CartoDynamicTileLayer","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset"],"mappings":"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","sourcesContent":["import {extent} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\nimport {log} from '@deck.gl/core';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {_CartoDynamicTileLayer, TILE_FORMATS} from '@deck.gl/carto';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt\n};\n\n// Kepler -> Deck.gl\nconst sharedPropMap = {\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n filled: 'filled',\n opacity: 'opacity',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst RADIUS_DOWNSCALE = 0.2;\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusScale: RADIUS_DOWNSCALE,\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a, b) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(type, config, dataset) {\n if (type === 'mvt' || type === 'tileset') {\n return getTileLayer(dataset);\n }\n\n const hexagonId = config.columns?.hex_id;\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {outline: 'stroked'}\n }),\n defaultProps\n },\n geojson: {\n Layer: GeoJsonLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, lineWidthScale: 2}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}\n }),\n defaultProps: {...defaultProps, getHexagon: d => d[hexagonId]}\n }\n }[type];\n\n log.assert(layer, `Unsupported layer type: ${type}`);\n\n return layer;\n}\n\nfunction getTileLayer(dataset) {\n const {\n data: {\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || TILE_FORMATS.MVT;\n\n return {\n Layer: formatTiles === TILE_FORMATS.MVT ? MVTLayer : _CartoDynamicTileLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n pointRadiusScale: 0.3,\n lineWidthScale: 2,\n uniqueIdProperty: 'geoid',\n formatTiles\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType) {\n if (scaleType === 'ordinal') {\n return [...new Set(values)].sort();\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return ({properties}) => {\n return accessor(properties);\n };\n }\n return accessor;\n}\n\nexport function getColorAccessor({name}, scaleType, {colors}, opacity, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(colors);\n const alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n\n const accessor = properties => {\n const rgba = rgb(scale(properties[name]));\n return [rgba.r, rgba.g, rgba.b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType, range, data) {\n const scale = SCALE_FUNCS[scaleType]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n\n const accessor = properties => {\n return scale(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getTextPixelOffsetAccessor({alignment, anchor, size}, radius) {\n const padding = 20;\n const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n const sizeOffset = alignment === 'center' ? 0 : size;\n\n const calculateOffset = r => {\n r = RADIUS_DOWNSCALE * r;\n return [signX * (r + padding), signY * (r + padding + sizeOffset)];\n };\n\n return typeof radius === 'function'\n ? d => {\n return calculateOffset(radius(d));\n }\n : calculateOffset(radius);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
1
+ {"version":3,"sources":["../../../src/api/layer-map.ts"],"names":["SCALE_FUNCS","linear","scaleLinear","ordinal","scaleOrdinal","log","scaleLog","point","scalePoint","quantile","scaleQuantile","quantize","scaleQuantize","sqrt","scaleSqrt","sharedPropMap","color","isVisible","label","textLabel","alignment","anchor","size","visConfig","enable3d","filled","opacity","strokeColor","stroked","thickness","radius","wireframe","RADIUS_DOWNSCALE","defaultProps","lineMiterLimit","lineWidthUnits","pointRadiusScale","pointRadiusUnits","rounded","wrapLongitude","mergePropMaps","a","b","getLayer","type","config","dataset","getTileLayer","hexagonId","columns","hex_id","layer","Layer","GeoJsonLayer","propMap","outline","geojson","lineWidthScale","H3HexagonLayer","coverage","elevationScale","getHexagon","d","data","tiles","tileUrl","formatTiles","URL","searchParams","get","TILE_FORMATS","MVT","MVTLayer","CartoTileLayer","uniqueIdProperty","domainFromAttribute","attribute","scaleType","categories","map","c","category","filter","undefined","min","max","domainFromValues","values","Set","sort","d0","d1","calculateDomain","name","tilestats","attributes","layers","find","features","properties","Array","isArray","normalizeAccessor","accessor","getColorAccessor","colors","scale","domain","range","alpha","Math","round","pow","rgba","r","g","getSizeAccessor","FORMATS","date","s","moment","utc","format","integer","float","timestamp","default","String","getTextAccessor","getTextPixelOffsetAccessor","padding","signX","signY","sizeOffset","calculateOffset"],"mappings":"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","sourcesContent":["import {extent} from 'd3-array';\nimport {rgb} from 'd3-color';\nimport {\n scaleLinear,\n scaleOrdinal,\n scaleLog,\n scalePoint,\n scaleQuantile,\n scaleQuantize,\n scaleSqrt\n} from 'd3-scale';\nimport {format as d3Format} from 'd3-format';\nimport moment from 'moment-timezone';\nimport {H3HexagonLayer, MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport CartoTileLayer from '../layers/carto-tile-layer';\nimport {TILE_FORMATS} from './maps-api-common';\nimport {assert} from '../utils';\n\nconst SCALE_FUNCS = {\n linear: scaleLinear,\n ordinal: scaleOrdinal,\n log: scaleLog,\n point: scalePoint,\n quantile: scaleQuantile,\n quantize: scaleQuantize,\n sqrt: scaleSqrt\n};\nexport type SCALE_TYPE = keyof typeof SCALE_FUNCS;\n\n// Kepler -> Deck.gl\nconst sharedPropMap = {\n color: 'getFillColor',\n isVisible: 'visible',\n label: 'cartoLabel',\n textLabel: {\n alignment: 'getTextAlignmentBaseline',\n anchor: 'getTextAnchor',\n color: 'getTextColor',\n size: 'getTextSize'\n },\n visConfig: {\n enable3d: 'extruded',\n filled: 'filled',\n opacity: 'opacity',\n strokeColor: 'getLineColor',\n stroked: 'stroked',\n thickness: 'getLineWidth',\n radius: 'getPointRadius',\n wireframe: 'wireframe'\n }\n};\n\nconst RADIUS_DOWNSCALE = 0.2;\n\nconst defaultProps = {\n lineMiterLimit: 2,\n lineWidthUnits: 'pixels',\n pointRadiusScale: RADIUS_DOWNSCALE,\n pointRadiusUnits: 'pixels',\n rounded: true,\n wrapLongitude: false\n};\n\nfunction mergePropMaps(a, b) {\n return {...a, ...b, visConfig: {...a.visConfig, ...b.visConfig}};\n}\n\nexport function getLayer(\n type: string,\n config,\n dataset\n): {Layer: any; propMap: any; defaultProps: any} {\n if (type === 'mvt' || type === 'tileset') {\n return getTileLayer(dataset);\n }\n\n const hexagonId = config.columns?.hex_id;\n const layer = {\n point: {\n Layer: GeoJsonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {outline: 'stroked'}\n }),\n defaultProps\n },\n geojson: {\n Layer: GeoJsonLayer,\n propMap: sharedPropMap,\n defaultProps: {...defaultProps, lineWidthScale: 2}\n },\n hexagonId: {\n Layer: H3HexagonLayer,\n propMap: mergePropMaps(sharedPropMap, {\n visConfig: {coverage: 'coverage', elevationScale: 'elevationScale'}\n }),\n defaultProps: {...defaultProps, getHexagon: d => d[hexagonId]}\n }\n }[type];\n\n assert(layer, `Unsupported layer type: ${type}`);\n return layer;\n}\n\nfunction getTileLayer(dataset) {\n const {\n data: {\n tiles: [tileUrl]\n }\n } = dataset;\n /* global URL */\n const formatTiles = new URL(tileUrl).searchParams.get('formatTiles') || TILE_FORMATS.MVT;\n\n return {\n Layer: formatTiles === TILE_FORMATS.MVT ? MVTLayer : CartoTileLayer,\n propMap: sharedPropMap,\n defaultProps: {\n ...defaultProps,\n pointRadiusScale: 0.3,\n lineWidthScale: 2,\n uniqueIdProperty: 'geoid',\n formatTiles\n }\n };\n}\n\nfunction domainFromAttribute(attribute, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal' || scaleType === 'point') {\n return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);\n }\n\n let {min} = attribute;\n if (scaleType === 'log' && min === 0) {\n min = 1e-5;\n }\n return [min, attribute.max];\n}\n\nfunction domainFromValues(values, scaleType: SCALE_TYPE) {\n if (scaleType === 'ordinal') {\n return [...new Set(values)].sort();\n } else if (scaleType === 'quantile') {\n return values.sort((a, b) => a - b);\n } else if (scaleType === 'log') {\n const [d0, d1] = extent(values as number[]);\n return [d0 === 0 ? 1e-5 : d0, d1];\n }\n return extent(values);\n}\n\nfunction calculateDomain(data, name, scaleType) {\n if (data.tilestats) {\n // Tileset data type\n const {attributes} = data.tilestats.layers[0];\n const attribute = attributes.find(a => a.attribute === name);\n return domainFromAttribute(attribute, scaleType);\n } else if (data.features) {\n // GeoJSON data type\n const values = data.features.map(({properties}) => properties[name]);\n return domainFromValues(values, scaleType);\n } else if (Array.isArray(data) && data[0][name] !== undefined) {\n // JSON data type\n const values = data.map(properties => properties[name]);\n return domainFromValues(values, scaleType);\n }\n\n return [0, 1];\n}\n\nfunction normalizeAccessor(accessor, data) {\n if (data.features || data.tilestats) {\n return ({properties}) => {\n return accessor(properties);\n };\n }\n return accessor;\n}\n\nexport function getColorAccessor(\n {name},\n scaleType: SCALE_TYPE,\n {colors},\n opacity: number | undefined,\n data: any\n) {\n const scale = SCALE_FUNCS[scaleType as any]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(colors);\n const alpha = opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;\n\n const accessor = properties => {\n const rgba = rgb(scale(properties[name]));\n return [rgba.r, rgba.g, rgba.b, alpha];\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getSizeAccessor({name}, scaleType: SCALE_TYPE, range: Iterable<Range>, data: any) {\n const scale = SCALE_FUNCS[scaleType as any]();\n scale.domain(calculateDomain(data, name, scaleType));\n scale.range(range);\n\n const accessor = properties => {\n return scale(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nconst FORMATS: Record<string, (value: any) => string> = {\n date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),\n integer: d3Format('i'),\n float: d3Format('.5f'),\n timestamp: s => moment.utc(s).format('X'),\n default: String\n};\n\nexport function getTextAccessor({name, type}, data) {\n const format = FORMATS[type] || FORMATS.default;\n const accessor = properties => {\n return format(properties[name]);\n };\n return normalizeAccessor(accessor, data);\n}\n\nexport function getTextPixelOffsetAccessor({alignment, anchor, size}, radius) {\n const padding = 20;\n const signX = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const signY = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n const sizeOffset = alignment === 'center' ? 0 : size;\n\n const calculateOffset = r => {\n r = RADIUS_DOWNSCALE * r;\n return [signX * (r + padding), signY * (r + padding + sizeOffset)];\n };\n\n return typeof radius === 'function'\n ? d => {\n return calculateOffset(radius(d));\n }\n : calculateOffset(radius);\n}\n\nexport {domainFromValues as _domainFromValues};\n"],"file":"layer-map.js"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.encodeParameter = encodeParameter;
9
- exports.TILE_FORMATS = exports.FORMATS = exports.MAP_TYPES = exports.DEFAULT_MAPS_URL_FORMAT = exports.API_VERSIONS = exports.DEFAULT_REGION_COMPONENT_IN_URL = exports.DEFAULT_USER_COMPONENT_IN_URL = void 0;
9
+ exports.SchemaFieldType = exports.TILE_FORMATS = exports.FORMATS = exports.MAP_TYPES = exports.DEFAULT_MAPS_URL_FORMAT = exports.API_VERSIONS = exports.DEFAULT_REGION_COMPONENT_IN_URL = exports.DEFAULT_USER_COMPONENT_IN_URL = void 0;
10
10
 
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
 
@@ -43,6 +43,20 @@ var TILE_FORMATS = {
43
43
  BINARY: 'binary'
44
44
  };
45
45
  exports.TILE_FORMATS = TILE_FORMATS;
46
+ var SchemaFieldType;
47
+ exports.SchemaFieldType = SchemaFieldType;
48
+
49
+ (function (SchemaFieldType) {
50
+ SchemaFieldType["Number"] = "number";
51
+ SchemaFieldType["Bigint"] = "bigint";
52
+ SchemaFieldType["String"] = "string";
53
+ SchemaFieldType["Geometry"] = "geometry";
54
+ SchemaFieldType["Timestamp"] = "timestamp";
55
+ SchemaFieldType["Object"] = "object";
56
+ SchemaFieldType["Boolean"] = "boolean";
57
+ SchemaFieldType["Variant"] = "variant";
58
+ SchemaFieldType["Unknown"] = "unknown";
59
+ })(SchemaFieldType || (exports.SchemaFieldType = SchemaFieldType = {}));
46
60
 
47
61
  function encodeParameter(name, value) {
48
62
  return "".concat(name, "=").concat(encodeURIComponent(value));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-api-common.js"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","encodeParameter","name","value","encodeURIComponent"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAEA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAMA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE;AAHc,CAAlB;;AAOA,IAAMC,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;;AAQA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BL,EAAAA,OAAO,EAAE,SAFiB;AAG1BM,EAAAA,MAAM,EAAE;AAHkB,CAArB;;;AASA,SAASC,eAAT,CAAyBC,IAAzB,EAA+BC,KAA/B,EAAsC;AAC3C,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n};\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n};\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset'\n};\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n};\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n};\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name, value) {\n return `${name}=${encodeURIComponent(value)}`;\n}\n"],"file":"maps-api-common.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-api-common.ts"],"names":["DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","API_VERSIONS","V1","V2","V3","DEFAULT_MAPS_URL_FORMAT","MAP_TYPES","QUERY","TABLE","TILESET","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","TILE_FORMATS","MVT","BINARY","SchemaFieldType","encodeParameter","name","value","encodeURIComponent"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,6BAA6B,GAAG,QAAtC;;AACA,IAAMC,+BAA+B,GAAG,UAAxC;;AAGA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAOA,IAAMC,uBAAuB,qFACjCJ,YAAY,CAACC,EADoB,oBACJH,6BADI,kFAEjCE,YAAY,CAACE,EAFoB,gCAEQH,+BAFR,6BAE0DD,6BAF1D,0BAA7B;;AAKA,IAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE;AAHc,CAAlB;;AAQA,IAAMC,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,MAAM,EAAE,QAFa;AAGrBC,EAAAA,QAAQ,EAAE,UAHW;AAIrBC,EAAAA,IAAI,EAAE;AAJe,CAAhB;;AASA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BL,EAAAA,OAAO,EAAE,SAFiB;AAG1BM,EAAAA,MAAM,EAAE;AAHkB,CAArB;;IAOKC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;AAiCL,SAASC,eAAT,CAAyBC,IAAzB,EAAuCC,KAAvC,EAAiF;AACtF,mBAAUD,IAAV,cAAkBE,kBAAkB,CAACD,KAAD,CAApC;AACD","sourcesContent":["export const DEFAULT_USER_COMPONENT_IN_URL = '{user}';\nexport const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';\n\nexport type ValuesOf<T extends {}> = T[keyof T];\nexport const API_VERSIONS = {\n V1: 'v1',\n V2: 'v2',\n V3: 'v3'\n} as const;\nexport type ApiVersion = ValuesOf<typeof API_VERSIONS>;\n\nexport const DEFAULT_MAPS_URL_FORMAT = {\n [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,\n [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`\n} as const;\n\nexport const MAP_TYPES = {\n QUERY: 'query',\n TABLE: 'table',\n TILESET: 'tileset'\n} as const;\nexport type MapType = ValuesOf<typeof MAP_TYPES>;\n\n// AVAILABLE FORMATS\nexport const FORMATS = {\n GEOJSON: 'geojson',\n NDJSON: 'ndjson',\n TILEJSON: 'tilejson',\n JSON: 'json'\n} as const;\nexport type Format = ValuesOf<typeof FORMATS>;\n\n// AVAILABLE FORMATS FOR TILES\nexport const TILE_FORMATS = {\n MVT: 'mvt',\n GEOJSON: 'geojson',\n BINARY: 'binary'\n} as const;\nexport type TileFormat = ValuesOf<typeof TILE_FORMATS>;\n\nexport enum SchemaFieldType {\n Number = 'number',\n Bigint = 'bigint',\n String = 'string',\n Geometry = 'geometry',\n Timestamp = 'timestamp',\n Object = 'object',\n Boolean = 'boolean',\n Variant = 'variant',\n Unknown = 'unknown'\n}\nexport interface SchemaField {\n name: string;\n type: SchemaFieldType; // Field type in the CARTO stack, common for all providers\n}\n\nexport interface MapInstantiation extends MapInstantiationFormats {\n nrows: number;\n size?: number;\n schema?: SchemaField[];\n}\n\ntype MapInstantiationFormats = Record<\n Format,\n {\n url: string[];\n error?: any;\n }\n>;\n\n/**\n * Simple encode parameter\n */\nexport function encodeParameter(name: string, value: string | boolean | number): string {\n return `${name}=${encodeURIComponent(value)}`;\n}\n"],"file":"maps-api-common.js"}
@@ -43,54 +43,51 @@ function _getDataV() {
43
43
  case 0:
44
44
  type = _ref.type, source = _ref.source, credentials = _ref.credentials;
45
45
  defaultCredentials = (0, _config.getDefaultCredentials)();
46
- apiVersion = credentials && credentials.apiVersion || defaultCredentials.apiVersion;
47
- localCreds = _objectSpread(_objectSpread(_objectSpread({}, _config.defaultClassicCredentials), defaultCredentials.apiVersion === apiVersion && defaultCredentials), credentials);
48
-
49
- if (!localCreds.mapsUrl) {
50
- localCreds.mapsUrl = _mapsApiCommon.DEFAULT_MAPS_URL_FORMAT[apiVersion];
51
- }
52
-
53
- connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
46
+ apiVersion = (credentials === null || credentials === void 0 ? void 0 : credentials.apiVersion) || defaultCredentials.apiVersion;
47
+ localCreds = _objectSpread(_objectSpread(_objectSpread({}, apiVersion === _mapsApiCommon.API_VERSIONS.V3 ? _config.defaultCloudNativeCredentials : _config.defaultClassicCredentials), {}, {
48
+ mapsUrl: _mapsApiCommon.DEFAULT_MAPS_URL_FORMAT[apiVersion]
49
+ }, defaultCredentials.apiVersion === apiVersion && defaultCredentials), credentials);
50
+ connection = type === _mapsApiCommon.MAP_TYPES.TILESET ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
54
51
  _context.t0 = apiVersion;
55
- _context.next = _context.t0 === _mapsApiCommon.API_VERSIONS.V1 ? 9 : _context.t0 === _mapsApiCommon.API_VERSIONS.V2 ? 15 : 19;
52
+ _context.next = _context.t0 === _mapsApiCommon.API_VERSIONS.V1 ? 8 : _context.t0 === _mapsApiCommon.API_VERSIONS.V2 ? 14 : 18;
56
53
  break;
57
54
 
58
- case 9:
55
+ case 8:
59
56
  mapConfig = createMapConfig(source);
60
57
  url = buildURLMapsAPIv1({
61
58
  mapConfig: mapConfig,
62
59
  credentials: localCreds
63
60
  });
64
- _context.next = 13;
61
+ _context.next = 12;
65
62
  return request({
66
63
  url: url,
67
64
  credentials: localCreds
68
65
  });
69
66
 
70
- case 13:
67
+ case 12:
71
68
  layergroup = _context.sent;
72
69
  return _context.abrupt("return", layergroup.metadata.tilejson.vector);
73
70
 
74
- case 15:
71
+ case 14:
75
72
  url = buildURLMapsAPIv2({
76
73
  connection: connection,
77
74
  type: type,
78
75
  source: source,
79
76
  credentials: localCreds
80
77
  });
81
- _context.next = 18;
78
+ _context.next = 17;
82
79
  return request({
83
80
  url: url,
84
81
  credentials: localCreds
85
82
  });
86
83
 
87
- case 18:
84
+ case 17:
88
85
  return _context.abrupt("return", _context.sent);
89
86
 
90
- case 19:
87
+ case 18:
91
88
  throw new Error("Invalid maps API version. It should be ".concat(_mapsApiCommon.API_VERSIONS.V1, " or ").concat(_mapsApiCommon.API_VERSIONS.V2));
92
89
 
93
- case 20:
90
+ case 19:
94
91
  case "end":
95
92
  return _context.stop();
96
93
  }
@@ -177,7 +174,7 @@ function dealWithError(_ref3) {
177
174
 
178
175
  function initURLParameters(credentials) {
179
176
  var encodedApiKey = (0, _mapsApiCommon.encodeParameter)('api_key', credentials.apiKey);
180
- var encodedClient = (0, _mapsApiCommon.encodeParameter)('client', "deck-gl-carto");
177
+ var encodedClient = (0, _mapsApiCommon.encodeParameter)('client', 'deck-gl-carto');
181
178
  return [encodedApiKey, encodedClient];
182
179
  }
183
180
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-client.js"],"names":["CONNECTIONS","BIGQUERY","CARTO","BUFFER_SIZE","TILE_EXTENT","getDataV2","type","source","credentials","defaultCredentials","apiVersion","localCreds","defaultClassicCredentials","mapsUrl","DEFAULT_MAPS_URL_FORMAT","connection","API_VERSIONS","V1","V2","mapConfig","createMapConfig","url","buildURLMapsAPIv1","request","layergroup","metadata","tilejson","vector","buildURLMapsAPIv2","Error","fetch","headers","Accept","response","json","ok","dealWithError","status","username","apiKey","e","JSON","stringify","errors","error","initURLParameters","encodedApiKey","encodedClient","parameters","cfg","join","mapsApiType","MAP_TYPES","QUERY","replace","DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","region","sql","version","buffersize","mvt","layers","options","vector_extent"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Maps API v1 and Maps API v2\n */\nimport {defaultClassicCredentials, getDefaultCredentials} from '../config';\nimport {\n API_VERSIONS,\n DEFAULT_MAPS_URL_FORMAT,\n DEFAULT_REGION_COMPONENT_IN_URL,\n DEFAULT_USER_COMPONENT_IN_URL,\n encodeParameter,\n MAP_TYPES\n} from './maps-api-common';\n\nexport const CONNECTIONS = {\n BIGQUERY: 'bigquery',\n CARTO: 'carto'\n};\n\nconst BUFFER_SIZE = 16;\nconst TILE_EXTENT = 4096;\n\n/**\n * Obtain a TileJson from Maps API v1 and v2\n */\nexport async function getDataV2({type, source, credentials}) {\n const defaultCredentials = getDefaultCredentials();\n const apiVersion = (credentials && credentials.apiVersion) || defaultCredentials.apiVersion;\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...defaultClassicCredentials,\n ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),\n ...credentials\n };\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = DEFAULT_MAPS_URL_FORMAT[apiVersion];\n }\n\n let url;\n\n const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n // Maps API v1\n const mapConfig = createMapConfig(source);\n url = buildURLMapsAPIv1({mapConfig, credentials: localCreds});\n const layergroup = await request({url, credentials: localCreds});\n return layergroup.metadata.tilejson.vector;\n\n case API_VERSIONS.V2:\n // Maps API v2\n url = buildURLMapsAPIv2({connection, type, source, credentials: localCreds});\n return await request({url, credentials: localCreds});\n\n default:\n throw new Error(\n `Invalid maps API version. It should be ${API_VERSIONS.V1} or ${API_VERSIONS.V2}`\n );\n }\n}\n\n/**\n * Request against Maps API\n */\nasync function request({url, credentials}) {\n let response;\n\n try {\n /* global fetch */\n /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n headers: {\n Accept: 'application/json'\n }\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, json, credentials});\n }\n\n return json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, json, credentials}) {\n switch (response.status) {\n case 401:\n throw new Error(\n `Unauthorized access to Maps API: invalid combination of user ('${credentials.username}') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${credentials.apiKey}') doesn't provide access to the requested data`\n );\n\n default:\n const e =\n credentials.apiVersion === API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;\n throw new Error(e);\n }\n}\n\nfunction initURLParameters(credentials) {\n const encodedApiKey = encodeParameter('api_key', credentials.apiKey);\n const encodedClient = encodeParameter('client', `deck-gl-carto`);\n return [encodedApiKey, encodedClient];\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction buildURLMapsAPIv1({mapConfig, credentials}) {\n const parameters = initURLParameters(credentials);\n const cfg = JSON.stringify(mapConfig);\n return `${mapsUrl(credentials)}?${parameters.join('&')}&${encodeParameter('config', cfg)}`;\n}\n\nfunction buildURLMapsAPIv2({connection, type, source, credentials}) {\n const parameters = initURLParameters(credentials);\n // Query type is mapped to 'sql' at maps api v1\n const mapsApiType = type === MAP_TYPES.QUERY ? 'sql' : type;\n let url = `${mapsUrl(credentials)}/${connection}/${mapsApiType}?`;\n url += `${encodeParameter('source', source)}&format=tilejson&${parameters.join('&')}`;\n return url;\n}\n\n/**\n * Prepare a url valid for the specified user\n */\nfunction mapsUrl(credentials) {\n return credentials.mapsUrl\n .replace(DEFAULT_USER_COMPONENT_IN_URL, credentials.username)\n .replace(DEFAULT_REGION_COMPONENT_IN_URL, credentials.region);\n}\n\nfunction createMapConfig(sql) {\n return {\n version: '1.3.1',\n buffersize: {\n mvt: BUFFER_SIZE\n },\n layers: [\n {\n type: 'mapnik',\n options: {\n sql,\n vector_extent: TILE_EXTENT\n }\n }\n ]\n };\n}\n"],"file":"maps-client.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-client.ts"],"names":["CONNECTIONS","BIGQUERY","CARTO","BUFFER_SIZE","TILE_EXTENT","getDataV2","type","source","credentials","defaultCredentials","apiVersion","localCreds","API_VERSIONS","V3","defaultCloudNativeCredentials","defaultClassicCredentials","mapsUrl","DEFAULT_MAPS_URL_FORMAT","connection","MAP_TYPES","TILESET","V1","V2","mapConfig","createMapConfig","url","buildURLMapsAPIv1","request","layergroup","metadata","tilejson","vector","buildURLMapsAPIv2","Error","fetch","headers","Accept","response","json","ok","dealWithError","status","username","apiKey","e","JSON","stringify","errors","error","initURLParameters","encodedApiKey","encodedClient","parameters","cfg","join","mapsApiType","QUERY","replace","DEFAULT_USER_COMPONENT_IN_URL","DEFAULT_REGION_COMPONENT_IN_URL","region","sql","version","buffersize","mvt","layers","options","vector_extent"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Maps API v1 and Maps API v2\n */\nimport {\n ClassicCredentials,\n defaultClassicCredentials,\n defaultCloudNativeCredentials,\n getDefaultCredentials\n} from '../config';\nimport {\n API_VERSIONS,\n DEFAULT_MAPS_URL_FORMAT,\n DEFAULT_REGION_COMPONENT_IN_URL,\n DEFAULT_USER_COMPONENT_IN_URL,\n encodeParameter,\n MapType,\n MAP_TYPES\n} from './maps-api-common';\n\nexport const CONNECTIONS = {\n BIGQUERY: 'bigquery',\n CARTO: 'carto'\n};\n\nconst BUFFER_SIZE = 16;\nconst TILE_EXTENT = 4096;\n\n/**\n * Obtain a TileJson from Maps API v1 and v2\n */\nexport async function getDataV2({\n type,\n source,\n credentials\n}: {\n type: MapType;\n source: string;\n credentials?: Partial<ClassicCredentials>;\n}) {\n const defaultCredentials = getDefaultCredentials();\n const apiVersion = credentials?.apiVersion || defaultCredentials.apiVersion;\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(apiVersion === API_VERSIONS.V3 ? defaultCloudNativeCredentials : defaultClassicCredentials),\n mapsUrl: DEFAULT_MAPS_URL_FORMAT[apiVersion],\n ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),\n ...credentials\n } as unknown as Required<ClassicCredentials>;\n\n let url: string;\n\n const connection = type === MAP_TYPES.TILESET ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;\n\n switch (apiVersion) {\n case API_VERSIONS.V1:\n // Maps API v1\n const mapConfig = createMapConfig(source);\n url = buildURLMapsAPIv1({mapConfig, credentials: localCreds});\n const layergroup = await request({url, credentials: localCreds});\n return layergroup.metadata.tilejson.vector;\n\n case API_VERSIONS.V2:\n // Maps API v2\n url = buildURLMapsAPIv2({connection, type, source, credentials: localCreds});\n return await request({url, credentials: localCreds});\n\n default:\n throw new Error(\n `Invalid maps API version. It should be ${API_VERSIONS.V1} or ${API_VERSIONS.V2}`\n );\n }\n}\n\n/**\n * Request against Maps API\n */\nasync function request({url, credentials}: {url: string; credentials: ClassicCredentials}) {\n let response;\n\n try {\n /* global fetch */\n response = await fetch(url, {\n headers: {\n Accept: 'application/json'\n }\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, json, credentials});\n }\n\n return json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({\n response,\n json,\n credentials\n}: {\n response: Response;\n json: any;\n credentials: ClassicCredentials;\n}) {\n switch (response.status) {\n case 401:\n throw new Error(\n `Unauthorized access to Maps API: invalid combination of user ('${credentials.username}') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${credentials.apiKey}') doesn't provide access to the requested data`\n );\n\n default:\n const e =\n credentials.apiVersion === API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;\n throw new Error(e);\n }\n}\n\nfunction initURLParameters(credentials: ClassicCredentials): string[] {\n const encodedApiKey = encodeParameter('api_key', credentials.apiKey);\n const encodedClient = encodeParameter('client', 'deck-gl-carto');\n return [encodedApiKey, encodedClient];\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction buildURLMapsAPIv1({\n mapConfig,\n credentials\n}: {\n mapConfig: unknown;\n credentials: Required<ClassicCredentials>;\n}): string {\n const parameters = initURLParameters(credentials);\n const cfg = JSON.stringify(mapConfig);\n return `${mapsUrl(credentials)}?${parameters.join('&')}&${encodeParameter('config', cfg)}`;\n}\n\nfunction buildURLMapsAPIv2({\n connection,\n type,\n source,\n credentials\n}: {\n connection: string;\n type: MapType;\n source: string;\n credentials: Required<ClassicCredentials>;\n}): string {\n const parameters = initURLParameters(credentials);\n // Query type is mapped to 'sql' at maps api v1\n const mapsApiType = type === MAP_TYPES.QUERY ? 'sql' : type;\n let url = `${mapsUrl(credentials)}/${connection}/${mapsApiType}?`;\n url += `${encodeParameter('source', source)}&format=tilejson&${parameters.join('&')}`;\n return url;\n}\n\n/**\n * Prepare a url valid for the specified user\n */\nfunction mapsUrl(credentials: Required<ClassicCredentials>) {\n return credentials.mapsUrl\n .replace(DEFAULT_USER_COMPONENT_IN_URL, credentials.username)\n .replace(DEFAULT_REGION_COMPONENT_IN_URL, credentials.region);\n}\n\nfunction createMapConfig(sql: string) {\n return {\n version: '1.3.1',\n buffersize: {\n mvt: BUFFER_SIZE\n },\n layers: [\n {\n type: 'mapnik',\n options: {\n sql,\n // eslint-disable-next-line camelcase\n vector_extent: TILE_EXTENT\n }\n }\n ]\n };\n}\n"],"file":"maps-client.js"}