@deck.gl/carto 8.6.1 → 8.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -10256,7 +10256,7 @@ module.exports = Object.assign(deck, {carto: CartoUtils});
10256
10256
  /*!**************************!*\
10257
10257
  !*** ./src/api/index.js ***!
10258
10258
  \**************************/
10259
- /*! exports provided: FORMATS, MAP_TYPES, API_VERSIONS, getDataV2, CONNECTIONS, getData, mapInstantiation */
10259
+ /*! exports provided: FORMATS, MAP_TYPES, API_VERSIONS, getDataV2, CONNECTIONS, fetchLayerData, getData, mapInstantiation */
10260
10260
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10261
10261
 
10262
10262
  "use strict";
@@ -10274,6 +10274,8 @@ __webpack_require__.r(__webpack_exports__);
10274
10274
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CONNECTIONS", function() { return _maps_client__WEBPACK_IMPORTED_MODULE_1__["CONNECTIONS"]; });
10275
10275
 
10276
10276
  /* harmony import */ var _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./maps-v3-client */ "./src/api/maps-v3-client.js");
10277
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fetchLayerData", function() { return _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__["fetchLayerData"]; });
10278
+
10277
10279
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getData", function() { return _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__["getData"]; });
10278
10280
 
10279
10281
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapInstantiation", function() { return _maps_v3_client__WEBPACK_IMPORTED_MODULE_2__["mapInstantiation"]; });
@@ -10289,7 +10291,7 @@ __webpack_require__.r(__webpack_exports__);
10289
10291
  /*!************************************!*\
10290
10292
  !*** ./src/api/maps-api-common.js ***!
10291
10293
  \************************************/
10292
- /*! exports provided: DEFAULT_USER_COMPONENT_IN_URL, DEFAULT_REGION_COMPONENT_IN_URL, API_VERSIONS, MAP_TYPES, FORMATS, encodeParameter */
10294
+ /*! exports provided: DEFAULT_USER_COMPONENT_IN_URL, DEFAULT_REGION_COMPONENT_IN_URL, API_VERSIONS, DEFAULT_MAPS_URL_FORMAT, MAP_TYPES, FORMATS, encodeParameter */
10293
10295
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10294
10296
 
10295
10297
  "use strict";
@@ -10297,6 +10299,7 @@ __webpack_require__.r(__webpack_exports__);
10297
10299
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_USER_COMPONENT_IN_URL", function() { return DEFAULT_USER_COMPONENT_IN_URL; });
10298
10300
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_REGION_COMPONENT_IN_URL", function() { return DEFAULT_REGION_COMPONENT_IN_URL; });
10299
10301
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "API_VERSIONS", function() { return API_VERSIONS; });
10302
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_MAPS_URL_FORMAT", function() { return DEFAULT_MAPS_URL_FORMAT; });
10300
10303
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAP_TYPES", function() { return MAP_TYPES; });
10301
10304
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FORMATS", function() { return FORMATS; });
10302
10305
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeParameter", function() { return encodeParameter; });
@@ -10309,6 +10312,11 @@ const API_VERSIONS = {
10309
10312
  V3: 'v3'
10310
10313
  };
10311
10314
 
10315
+ const DEFAULT_MAPS_URL_FORMAT = {
10316
+ [API_VERSIONS.V1]: `https://${DEFAULT_USER_COMPONENT_IN_URL}.carto.com/api/v1/map`,
10317
+ [API_VERSIONS.V2]: `https://maps-api-v2.${DEFAULT_REGION_COMPONENT_IN_URL}.carto.com/user/${DEFAULT_USER_COMPONENT_IN_URL}`
10318
+ };
10319
+
10312
10320
  const MAP_TYPES = {
10313
10321
  QUERY: 'query',
10314
10322
  TABLE: 'table',
@@ -10364,8 +10372,20 @@ const TILE_EXTENT = 4096;
10364
10372
  * Obtain a TileJson from Maps API v1 and v2
10365
10373
  */
10366
10374
  async function getDataV2({type, source, credentials}) {
10367
- const localCreds = {...Object(_config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"])(), ...credentials};
10368
- const {apiVersion} = localCreds;
10375
+ const defaultCredentials = Object(_config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"])();
10376
+ const apiVersion = (credentials && credentials.apiVersion) || defaultCredentials.apiVersion;
10377
+ // Only pick up default credentials if they have been defined for
10378
+ // correct API version
10379
+ const localCreds = {
10380
+ ..._config__WEBPACK_IMPORTED_MODULE_0__["defaultClassicCredentials"],
10381
+ ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),
10382
+ ...credentials
10383
+ };
10384
+
10385
+ if (!localCreds.mapsUrl) {
10386
+ localCreds.mapsUrl = _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_MAPS_URL_FORMAT"][apiVersion];
10387
+ }
10388
+
10369
10389
  let url;
10370
10390
 
10371
10391
  const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
@@ -10500,12 +10520,13 @@ function createMapConfig(sql) {
10500
10520
  /*!***********************************!*\
10501
10521
  !*** ./src/api/maps-v3-client.js ***!
10502
10522
  \***********************************/
10503
- /*! exports provided: mapInstantiation, getData */
10523
+ /*! exports provided: mapInstantiation, fetchLayerData, getData */
10504
10524
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10505
10525
 
10506
10526
  "use strict";
10507
10527
  __webpack_require__.r(__webpack_exports__);
10508
10528
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapInstantiation", function() { return mapInstantiation; });
10529
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchLayerData", function() { return fetchLayerData; });
10509
10530
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getData", function() { return getData; });
10510
10531
  /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config */ "./src/config.js");
10511
10532
  /* harmony import */ var _maps_api_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-api-common */ "./src/api/maps-api-common.js");
@@ -10581,9 +10602,11 @@ function dealWithError({response, error}) {
10581
10602
  /**
10582
10603
  * Build a URL with all required parameters
10583
10604
  */
10584
- function getParameters({type, source, geoColumn, columns}) {
10585
- const encodedClient = Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('client', 'deck-gl-carto');
10586
- const parameters = [encodedClient];
10605
+ function getParameters({type, source, geoColumn, columns, schema}) {
10606
+ const parameters = [Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('client', 'deck-gl-carto')];
10607
+ if (schema) {
10608
+ parameters.push(Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('schema', true));
10609
+ }
10587
10610
 
10588
10611
  const sourceName = type === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["MAP_TYPES"].QUERY ? 'q' : 'name';
10589
10612
  parameters.push(Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])(sourceName, source));
@@ -10606,10 +10629,11 @@ async function mapInstantiation({
10606
10629
  connection,
10607
10630
  credentials,
10608
10631
  geoColumn,
10609
- columns
10632
+ columns,
10633
+ schema
10610
10634
  }) {
10611
10635
  const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;
10612
- const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns})}`;
10636
+ const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema})}`;
10613
10637
  const {accessToken} = credentials;
10614
10638
 
10615
10639
  const format = 'json';
@@ -10636,9 +10660,7 @@ function getUrlFromMetadata(metadata, format) {
10636
10660
  return null;
10637
10661
  }
10638
10662
 
10639
- async function getData({type, source, connection, credentials, geoColumn, columns, format}) {
10640
- const localCreds = {...Object(_config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"])(), ...credentials};
10641
-
10663
+ function checkGetLayerDataParameters({type, source, connection, localCreds}) {
10642
10664
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(connection, 'Must define connection');
10643
10665
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(type, 'Must define a type');
10644
10666
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(source, 'Must define a source');
@@ -10646,7 +10668,26 @@ async function getData({type, source, connection, credentials, geoColumn, column
10646
10668
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(localCreds.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3, 'Method only available for v3');
10647
10669
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
10648
10670
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(localCreds.accessToken, 'Must define an accessToken');
10649
- _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__["log"].assert(localCreds.mapsUrl, 'mapsUrl cannot be undefined');
10671
+ }
10672
+
10673
+ async function fetchLayerData({
10674
+ type,
10675
+ source,
10676
+ connection,
10677
+ credentials,
10678
+ geoColumn,
10679
+ columns,
10680
+ format,
10681
+ schema
10682
+ }) {
10683
+ const defaultCredentials = Object(_config__WEBPACK_IMPORTED_MODULE_0__["getDefaultCredentials"])();
10684
+ // Only pick up default credentials if they have been defined for
10685
+ // correct API version
10686
+ const localCreds = {
10687
+ ...(defaultCredentials.apiVersion === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["API_VERSIONS"].V3 && defaultCredentials),
10688
+ ...credentials
10689
+ };
10690
+ checkGetLayerDataParameters({type, source, connection, localCreds});
10650
10691
 
10651
10692
  if (!localCreds.mapsUrl) {
10652
10693
  localCreds.mapsUrl = Object(_config__WEBPACK_IMPORTED_MODULE_0__["buildMapsUrlFromBase"])(localCreds.apiBaseUrl);
@@ -10658,7 +10699,8 @@ async function getData({type, source, connection, credentials, geoColumn, column
10658
10699
  connection,
10659
10700
  credentials: localCreds,
10660
10701
  geoColumn,
10661
- columns
10702
+ columns,
10703
+ schema
10662
10704
  });
10663
10705
  let url;
10664
10706
  let mapFormat;
@@ -10681,7 +10723,27 @@ async function getData({type, source, connection, credentials, geoColumn, column
10681
10723
 
10682
10724
  const {accessToken} = localCreds;
10683
10725
 
10684
- return await request({url, format: mapFormat, accessToken});
10726
+ const data = await request({url, format: mapFormat, accessToken});
10727
+ const result = {data, format: mapFormat};
10728
+ if (schema) {
10729
+ result.schema = metadata.schema;
10730
+ }
10731
+
10732
+ return result;
10733
+ }
10734
+
10735
+ async function getData({type, source, connection, credentials, geoColumn, columns, format}) {
10736
+ const layerData = await fetchLayerData({
10737
+ type,
10738
+ source,
10739
+ connection,
10740
+ credentials,
10741
+ geoColumn,
10742
+ columns,
10743
+ format,
10744
+ schema: false
10745
+ });
10746
+ return layerData.data;
10685
10747
  }
10686
10748
 
10687
10749
 
@@ -10714,11 +10776,12 @@ const base_url = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json
10714
10776
  /*!***********************!*\
10715
10777
  !*** ./src/config.js ***!
10716
10778
  \***********************/
10717
- /*! exports provided: setDefaultCredentials, getDefaultCredentials, buildMapsUrlFromBase */
10779
+ /*! exports provided: defaultClassicCredentials, setDefaultCredentials, getDefaultCredentials, buildMapsUrlFromBase */
10718
10780
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10719
10781
 
10720
10782
  "use strict";
10721
10783
  __webpack_require__.r(__webpack_exports__);
10784
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultClassicCredentials", function() { return defaultClassicCredentials; });
10722
10785
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDefaultCredentials", function() { return setDefaultCredentials; });
10723
10786
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultCredentials", function() { return getDefaultCredentials; });
10724
10787
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildMapsUrlFromBase", function() { return buildMapsUrlFromBase; });
@@ -10747,7 +10810,7 @@ function setDefaultCredentials(opts) {
10747
10810
 
10748
10811
  switch (apiVersion) {
10749
10812
  case _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__["API_VERSIONS"].V1:
10750
- opts.mapsUrl = opts.mapsUrl || 'https://{user}.carto.com/api/v1/map';
10813
+ opts.mapsUrl = opts.mapsUrl || _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_MAPS_URL_FORMAT"][apiVersion];
10751
10814
  credentials = {
10752
10815
  apiVersion,
10753
10816
  ...defaultClassicCredentials,
@@ -10756,7 +10819,7 @@ function setDefaultCredentials(opts) {
10756
10819
  break;
10757
10820
 
10758
10821
  case _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__["API_VERSIONS"].V2:
10759
- opts.mapsUrl = opts.mapsUrl || 'https://maps-api-v2.{region}.carto.com/user/{user}';
10822
+ opts.mapsUrl = opts.mapsUrl || _api_maps_api_common__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_MAPS_URL_FORMAT"][apiVersion];
10760
10823
  credentials = {
10761
10824
  apiVersion,
10762
10825
  ...defaultClassicCredentials,
@@ -10806,7 +10869,7 @@ function buildMapsUrlFromBase(apiBaseUrl) {
10806
10869
  /*!**********************!*\
10807
10870
  !*** ./src/index.js ***!
10808
10871
  \**********************/
10809
- /*! exports provided: getDefaultCredentials, setDefaultCredentials, CartoSQLLayer, CartoBQTilerLayer, CartoLayer, BASEMAP, colorBins, colorCategories, colorContinuous, FORMATS, MAP_TYPES, API_VERSIONS, _getDataV2, getData, _mapInstantiation */
10872
+ /*! exports provided: getDefaultCredentials, setDefaultCredentials, CartoSQLLayer, CartoBQTilerLayer, CartoLayer, BASEMAP, colorBins, colorCategories, colorContinuous, FORMATS, MAP_TYPES, API_VERSIONS, fetchLayerData, _getDataV2, getData, _mapInstantiation */
10810
10873
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10811
10874
 
10812
10875
  "use strict";
@@ -10844,6 +10907,8 @@ __webpack_require__.r(__webpack_exports__);
10844
10907
 
10845
10908
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "API_VERSIONS", function() { return _api__WEBPACK_IMPORTED_MODULE_8__["API_VERSIONS"]; });
10846
10909
 
10910
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fetchLayerData", function() { return _api__WEBPACK_IMPORTED_MODULE_8__["fetchLayerData"]; });
10911
+
10847
10912
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_getDataV2", function() { return _api__WEBPACK_IMPORTED_MODULE_8__["getDataV2"]; });
10848
10913
 
10849
10914
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getData", function() { return _api__WEBPACK_IMPORTED_MODULE_8__["getData"]; });
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "CONNECTIONS", {
33
33
  return _mapsClient.CONNECTIONS;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "fetchLayerData", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _mapsV3Client.fetchLayerData;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "getData", {
37
43
  enumerable: true,
38
44
  get: function get() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA","sourcesContent":["export {FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/api/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA","sourcesContent":["export {FORMATS, MAP_TYPES, API_VERSIONS} from './maps-api-common';\nexport {getDataV2, CONNECTIONS} from './maps-client';\nexport {fetchLayerData, getData, mapInstantiation} from './maps-v3-client';\n"],"file":"index.js"}
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.encodeParameter = encodeParameter;
7
- exports.FORMATS = exports.MAP_TYPES = exports.API_VERSIONS = exports.DEFAULT_REGION_COMPONENT_IN_URL = exports.DEFAULT_USER_COMPONENT_IN_URL = void 0;
9
+ 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
+
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+
13
+ var _DEFAULT_MAPS_URL_FOR;
14
+
8
15
  var DEFAULT_USER_COMPONENT_IN_URL = '{user}';
9
16
  exports.DEFAULT_USER_COMPONENT_IN_URL = DEFAULT_USER_COMPONENT_IN_URL;
10
17
  var DEFAULT_REGION_COMPONENT_IN_URL = '{region}';
@@ -15,6 +22,8 @@ var API_VERSIONS = {
15
22
  V3: 'v3'
16
23
  };
17
24
  exports.API_VERSIONS = API_VERSIONS;
25
+ var DEFAULT_MAPS_URL_FORMAT = (_DEFAULT_MAPS_URL_FOR = {}, (0, _defineProperty2.default)(_DEFAULT_MAPS_URL_FOR, API_VERSIONS.V1, "https://".concat(DEFAULT_USER_COMPONENT_IN_URL, ".carto.com/api/v1/map")), (0, _defineProperty2.default)(_DEFAULT_MAPS_URL_FOR, API_VERSIONS.V2, "https://maps-api-v2.".concat(DEFAULT_REGION_COMPONENT_IN_URL, ".carto.com/user/").concat(DEFAULT_USER_COMPONENT_IN_URL)), _DEFAULT_MAPS_URL_FOR);
26
+ exports.DEFAULT_MAPS_URL_FORMAT = DEFAULT_MAPS_URL_FORMAT;
18
27
  var MAP_TYPES = {
19
28
  QUERY: 'query',
20
29
  TABLE: 'table',
@@ -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","MAP_TYPES","QUERY","TABLE","TILESET","FORMATS","GEOJSON","NDJSON","TILEJSON","JSON","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,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;;;AAUA,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 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/**\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.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","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;;;AAUA,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/**\n * Simple encode parameter\n */\nexport function encodeParameter(name, value) {\n return `${name}=${encodeURIComponent(value)}`;\n}\n"],"file":"maps-api-common.js"}
@@ -36,55 +36,61 @@ function getDataV2(_x) {
36
36
 
37
37
  function _getDataV() {
38
38
  _getDataV = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref) {
39
- var type, source, credentials, localCreds, apiVersion, url, connection, mapConfig, layergroup;
39
+ var type, source, credentials, defaultCredentials, apiVersion, localCreds, url, connection, mapConfig, layergroup;
40
40
  return _regenerator.default.wrap(function _callee$(_context) {
41
41
  while (1) {
42
42
  switch (_context.prev = _context.next) {
43
43
  case 0:
44
44
  type = _ref.type, source = _ref.source, credentials = _ref.credentials;
45
- localCreds = _objectSpread(_objectSpread({}, (0, _config.getDefaultCredentials)()), credentials);
46
- apiVersion = localCreds.apiVersion;
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
+
47
53
  connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
48
54
  _context.t0 = apiVersion;
49
- _context.next = _context.t0 === _mapsApiCommon.API_VERSIONS.V1 ? 7 : _context.t0 === _mapsApiCommon.API_VERSIONS.V2 ? 13 : 17;
55
+ _context.next = _context.t0 === _mapsApiCommon.API_VERSIONS.V1 ? 9 : _context.t0 === _mapsApiCommon.API_VERSIONS.V2 ? 15 : 19;
50
56
  break;
51
57
 
52
- case 7:
58
+ case 9:
53
59
  mapConfig = createMapConfig(source);
54
60
  url = buildURLMapsAPIv1({
55
61
  mapConfig: mapConfig,
56
62
  credentials: localCreds
57
63
  });
58
- _context.next = 11;
64
+ _context.next = 13;
59
65
  return request({
60
66
  url: url,
61
67
  credentials: localCreds
62
68
  });
63
69
 
64
- case 11:
70
+ case 13:
65
71
  layergroup = _context.sent;
66
72
  return _context.abrupt("return", layergroup.metadata.tilejson.vector);
67
73
 
68
- case 13:
74
+ case 15:
69
75
  url = buildURLMapsAPIv2({
70
76
  connection: connection,
71
77
  type: type,
72
78
  source: source,
73
79
  credentials: localCreds
74
80
  });
75
- _context.next = 16;
81
+ _context.next = 18;
76
82
  return request({
77
83
  url: url,
78
84
  credentials: localCreds
79
85
  });
80
86
 
81
- case 16:
87
+ case 18:
82
88
  return _context.abrupt("return", _context.sent);
83
89
 
84
- case 17:
90
+ case 19:
85
91
  throw new Error("Invalid maps API version. It shoud be ".concat(_mapsApiCommon.API_VERSIONS.V1, " or ").concat(_mapsApiCommon.API_VERSIONS.V2));
86
92
 
87
- case 18:
93
+ case 20:
88
94
  case "end":
89
95
  return _context.stop();
90
96
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-client.js"],"names":["CONNECTIONS","BIGQUERY","CARTO","BUFFER_SIZE","TILE_EXTENT","getDataV2","type","source","credentials","localCreds","apiVersion","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","mapsUrl","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 {getDefaultCredentials} from '../config';\nimport {\n API_VERSIONS,\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 localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\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 shoud 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 ('${\n credentials.username\n }') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${\n credentials.apiKey\n }') 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.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 shoud 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 ('${\n credentials.username\n }') and apiKey ('${credentials.apiKey}')`\n );\n case 403:\n throw new Error(\n `Unauthorized access to dataset: the provided apiKey('${\n credentials.apiKey\n }') 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"}