@deck.gl/carto 8.6.0-beta.1 → 8.6.3

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 (51) hide show
  1. package/dist/dist.dev.js +550 -485
  2. package/dist/es5/api/index.js +13 -7
  3. package/dist/es5/api/index.js.map +1 -1
  4. package/dist/es5/api/maps-api-common.js +11 -6
  5. package/dist/es5/api/maps-api-common.js.map +1 -1
  6. package/dist/es5/api/maps-client.js +98 -151
  7. package/dist/es5/api/maps-client.js.map +1 -1
  8. package/dist/es5/api/maps-v3-client.js +206 -253
  9. package/dist/es5/api/maps-v3-client.js.map +1 -1
  10. package/dist/es5/basemap.js +1 -1
  11. package/dist/es5/basemap.js.map +1 -1
  12. package/dist/es5/config.js +25 -25
  13. package/dist/es5/config.js.map +1 -1
  14. package/dist/es5/index.js +21 -15
  15. package/dist/es5/index.js.map +1 -1
  16. package/dist/es5/layers/carto-bqtiler-layer.js +6 -39
  17. package/dist/es5/layers/carto-bqtiler-layer.js.map +1 -1
  18. package/dist/es5/layers/carto-layer.js +132 -211
  19. package/dist/es5/layers/carto-layer.js.map +1 -1
  20. package/dist/es5/layers/carto-sql-layer.js +6 -39
  21. package/dist/es5/layers/carto-sql-layer.js.map +1 -1
  22. package/dist/es5/style/color-bins-style.js +10 -11
  23. package/dist/es5/style/color-bins-style.js.map +1 -1
  24. package/dist/es5/style/color-categories-style.js +13 -38
  25. package/dist/es5/style/color-categories-style.js.map +1 -1
  26. package/dist/es5/style/color-continuous-style.js +10 -11
  27. package/dist/es5/style/color-continuous-style.js.map +1 -1
  28. package/dist/es5/style/palette.js +11 -19
  29. package/dist/es5/style/palette.js.map +1 -1
  30. package/dist/es5/style/utils.js +6 -13
  31. package/dist/es5/style/utils.js.map +1 -1
  32. package/dist/esm/api/index.js +1 -1
  33. package/dist/esm/api/index.js.map +1 -1
  34. package/dist/esm/api/maps-api-common.js +4 -0
  35. package/dist/esm/api/maps-api-common.js.map +1 -1
  36. package/dist/esm/api/maps-client.js +11 -6
  37. package/dist/esm/api/maps-client.js.map +1 -1
  38. package/dist/esm/api/maps-v3-client.js +70 -16
  39. package/dist/esm/api/maps-v3-client.js.map +1 -1
  40. package/dist/esm/config.js +4 -4
  41. package/dist/esm/config.js.map +1 -1
  42. package/dist/esm/index.js +1 -1
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist.min.js +1 -1
  45. package/package.json +2 -2
  46. package/src/api/index.js +1 -1
  47. package/src/api/maps-api-common.js +5 -0
  48. package/src/api/maps-client.js +16 -3
  49. package/src/api/maps-v3-client.js +52 -11
  50. package/src/config.js +4 -4
  51. package/src/index.js +1 -0
@@ -5,43 +5,49 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "FORMATS", {
7
7
  enumerable: true,
8
- get: function get() {
8
+ get: function () {
9
9
  return _mapsApiCommon.FORMATS;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "MAP_TYPES", {
13
13
  enumerable: true,
14
- get: function get() {
14
+ get: function () {
15
15
  return _mapsApiCommon.MAP_TYPES;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "API_VERSIONS", {
19
19
  enumerable: true,
20
- get: function get() {
20
+ get: function () {
21
21
  return _mapsApiCommon.API_VERSIONS;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "getDataV2", {
25
25
  enumerable: true,
26
- get: function get() {
26
+ get: function () {
27
27
  return _mapsClient.getDataV2;
28
28
  }
29
29
  });
30
30
  Object.defineProperty(exports, "CONNECTIONS", {
31
31
  enumerable: true,
32
- get: function get() {
32
+ get: function () {
33
33
  return _mapsClient.CONNECTIONS;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "fetchLayerData", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _mapsV3Client.fetchLayerData;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "getData", {
37
43
  enumerable: true,
38
- get: function get() {
44
+ get: function () {
39
45
  return _mapsV3Client.getData;
40
46
  }
41
47
  });
42
48
  Object.defineProperty(exports, "mapInstantiation", {
43
49
  enumerable: true,
44
- get: function get() {
50
+ get: function () {
45
51
  return _mapsV3Client.mapInstantiation;
46
52
  }
47
53
  });
@@ -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"}
@@ -4,24 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  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;
8
- var DEFAULT_USER_COMPONENT_IN_URL = '{user}';
7
+ 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;
8
+ const DEFAULT_USER_COMPONENT_IN_URL = '{user}';
9
9
  exports.DEFAULT_USER_COMPONENT_IN_URL = DEFAULT_USER_COMPONENT_IN_URL;
10
- var DEFAULT_REGION_COMPONENT_IN_URL = '{region}';
10
+ const DEFAULT_REGION_COMPONENT_IN_URL = '{region}';
11
11
  exports.DEFAULT_REGION_COMPONENT_IN_URL = DEFAULT_REGION_COMPONENT_IN_URL;
12
- var API_VERSIONS = {
12
+ const API_VERSIONS = {
13
13
  V1: 'v1',
14
14
  V2: 'v2',
15
15
  V3: 'v3'
16
16
  };
17
17
  exports.API_VERSIONS = API_VERSIONS;
18
- var MAP_TYPES = {
18
+ const DEFAULT_MAPS_URL_FORMAT = {
19
+ [API_VERSIONS.V1]: "https://".concat(DEFAULT_USER_COMPONENT_IN_URL, ".carto.com/api/v1/map"),
20
+ [API_VERSIONS.V2]: "https://maps-api-v2.".concat(DEFAULT_REGION_COMPONENT_IN_URL, ".carto.com/user/").concat(DEFAULT_USER_COMPONENT_IN_URL)
21
+ };
22
+ exports.DEFAULT_MAPS_URL_FORMAT = DEFAULT_MAPS_URL_FORMAT;
23
+ const MAP_TYPES = {
19
24
  QUERY: 'query',
20
25
  TABLE: 'table',
21
26
  TILESET: 'tileset'
22
27
  };
23
28
  exports.MAP_TYPES = MAP_TYPES;
24
- var FORMATS = {
29
+ const FORMATS = {
25
30
  GEOJSON: 'geojson',
26
31
  NDJSON: 'ndjson',
27
32
  TILEJSON: 'tilejson',
@@ -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,MAAMA,6BAA6B,GAAG,QAAtC;;AACA,MAAMC,+BAA+B,GAAG,UAAxC;;AAEA,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,IADsB;AAE1BC,EAAAA,EAAE,EAAE,IAFsB;AAG1BC,EAAAA,EAAE,EAAE;AAHsB,CAArB;;AAMA,MAAMC,uBAAuB,GAAG;AACrC,GAACJ,YAAY,CAACC,EAAd,qBAA8BH,6BAA9B,0BADqC;AAErC,GAACE,YAAY,CAACE,EAAd,iCAA0CH,+BAA1C,6BAA4FD,6BAA5F;AAFqC,CAAhC;;AAKA,MAAMO,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,OAAO,EAAE;AAHc,CAAlB;;AAOA,MAAMC,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"}
@@ -1,161 +1,106 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.getDataV2 = getDataV2;
9
7
  exports.CONNECTIONS = void 0;
10
8
 
11
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
-
15
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
9
  var _config = require("../config");
18
10
 
19
11
  var _mapsApiCommon = require("./maps-api-common");
20
12
 
21
- 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; }
22
-
23
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
-
25
- var CONNECTIONS = {
13
+ const CONNECTIONS = {
26
14
  BIGQUERY: 'bigquery',
27
15
  CARTO: 'carto'
28
16
  };
29
17
  exports.CONNECTIONS = CONNECTIONS;
30
- var BUFFER_SIZE = 16;
31
- var TILE_EXTENT = 4096;
18
+ const BUFFER_SIZE = 16;
19
+ const TILE_EXTENT = 4096;
20
+
21
+ async function getDataV2({
22
+ type,
23
+ source,
24
+ credentials
25
+ }) {
26
+ const defaultCredentials = (0, _config.getDefaultCredentials)();
27
+ const apiVersion = credentials && credentials.apiVersion || defaultCredentials.apiVersion;
28
+ const localCreds = { ..._config.defaultClassicCredentials,
29
+ ...(defaultCredentials.apiVersion === apiVersion && defaultCredentials),
30
+ ...credentials
31
+ };
32
32
 
33
- function getDataV2(_x) {
34
- return _getDataV.apply(this, arguments);
35
- }
33
+ if (!localCreds.mapsUrl) {
34
+ localCreds.mapsUrl = _mapsApiCommon.DEFAULT_MAPS_URL_FORMAT[apiVersion];
35
+ }
36
36
 
37
- function _getDataV() {
38
- _getDataV = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref) {
39
- var type, source, credentials, localCreds, apiVersion, url, connection, mapConfig, layergroup;
40
- return _regenerator.default.wrap(function _callee$(_context) {
41
- while (1) {
42
- switch (_context.prev = _context.next) {
43
- case 0:
44
- type = _ref.type, source = _ref.source, credentials = _ref.credentials;
45
- localCreds = _objectSpread(_objectSpread({}, (0, _config.getDefaultCredentials)()), credentials);
46
- apiVersion = localCreds.apiVersion;
47
- connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
48
- _context.t0 = apiVersion;
49
- _context.next = _context.t0 === _mapsApiCommon.API_VERSIONS.V1 ? 7 : _context.t0 === _mapsApiCommon.API_VERSIONS.V2 ? 13 : 17;
50
- break;
51
-
52
- case 7:
53
- mapConfig = createMapConfig(source);
54
- url = buildURLMapsAPIv1({
55
- mapConfig: mapConfig,
56
- credentials: localCreds
57
- });
58
- _context.next = 11;
59
- return request({
60
- url: url,
61
- credentials: localCreds
62
- });
63
-
64
- case 11:
65
- layergroup = _context.sent;
66
- return _context.abrupt("return", layergroup.metadata.tilejson.vector);
67
-
68
- case 13:
69
- url = buildURLMapsAPIv2({
70
- connection: connection,
71
- type: type,
72
- source: source,
73
- credentials: localCreds
74
- });
75
- _context.next = 16;
76
- return request({
77
- url: url,
78
- credentials: localCreds
79
- });
80
-
81
- case 16:
82
- return _context.abrupt("return", _context.sent);
83
-
84
- case 17:
85
- throw new Error("Invalid maps API version. It shoud be ".concat(_mapsApiCommon.API_VERSIONS.V1, " or ").concat(_mapsApiCommon.API_VERSIONS.V2));
86
-
87
- case 18:
88
- case "end":
89
- return _context.stop();
90
- }
91
- }
92
- }, _callee);
93
- }));
94
- return _getDataV.apply(this, arguments);
95
- }
37
+ let url;
38
+ const connection = type === 'tileset' ? CONNECTIONS.BIGQUERY : CONNECTIONS.CARTO;
39
+
40
+ switch (apiVersion) {
41
+ case _mapsApiCommon.API_VERSIONS.V1:
42
+ const mapConfig = createMapConfig(source);
43
+ url = buildURLMapsAPIv1({
44
+ mapConfig,
45
+ credentials: localCreds
46
+ });
47
+ const layergroup = await request({
48
+ url,
49
+ credentials: localCreds
50
+ });
51
+ return layergroup.metadata.tilejson.vector;
52
+
53
+ case _mapsApiCommon.API_VERSIONS.V2:
54
+ url = buildURLMapsAPIv2({
55
+ connection,
56
+ type,
57
+ source,
58
+ credentials: localCreds
59
+ });
60
+ return await request({
61
+ url,
62
+ credentials: localCreds
63
+ });
96
64
 
97
- function request(_x2) {
98
- return _request.apply(this, arguments);
65
+ default:
66
+ throw new Error("Invalid maps API version. It shoud be ".concat(_mapsApiCommon.API_VERSIONS.V1, " or ").concat(_mapsApiCommon.API_VERSIONS.V2));
67
+ }
99
68
  }
100
69
 
101
- function _request() {
102
- _request = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(_ref2) {
103
- var url, credentials, response, json;
104
- return _regenerator.default.wrap(function _callee2$(_context2) {
105
- while (1) {
106
- switch (_context2.prev = _context2.next) {
107
- case 0:
108
- url = _ref2.url, credentials = _ref2.credentials;
109
- _context2.prev = 1;
110
- _context2.next = 4;
111
- return fetch(url, {
112
- headers: {
113
- Accept: 'application/json'
114
- }
115
- });
116
-
117
- case 4:
118
- response = _context2.sent;
119
- _context2.next = 10;
120
- break;
121
-
122
- case 7:
123
- _context2.prev = 7;
124
- _context2.t0 = _context2["catch"](1);
125
- throw new Error("Failed to connect to Maps API: ".concat(_context2.t0));
126
-
127
- case 10:
128
- _context2.next = 12;
129
- return response.json();
130
-
131
- case 12:
132
- json = _context2.sent;
133
-
134
- if (!response.ok) {
135
- dealWithError({
136
- response: response,
137
- json: json,
138
- credentials: credentials
139
- });
140
- }
141
-
142
- return _context2.abrupt("return", json);
143
-
144
- case 15:
145
- case "end":
146
- return _context2.stop();
147
- }
70
+ async function request({
71
+ url,
72
+ credentials
73
+ }) {
74
+ let response;
75
+
76
+ try {
77
+ response = await fetch(url, {
78
+ headers: {
79
+ Accept: 'application/json'
148
80
  }
149
- }, _callee2, null, [[1, 7]]);
150
- }));
151
- return _request.apply(this, arguments);
152
- }
81
+ });
82
+ } catch (error) {
83
+ throw new Error("Failed to connect to Maps API: ".concat(error));
84
+ }
85
+
86
+ const json = await response.json();
153
87
 
154
- function dealWithError(_ref3) {
155
- var response = _ref3.response,
156
- json = _ref3.json,
157
- credentials = _ref3.credentials;
88
+ if (!response.ok) {
89
+ dealWithError({
90
+ response,
91
+ json,
92
+ credentials
93
+ });
94
+ }
95
+
96
+ return json;
97
+ }
158
98
 
99
+ function dealWithError({
100
+ response,
101
+ json,
102
+ credentials
103
+ }) {
159
104
  switch (response.status) {
160
105
  case 401:
161
106
  throw new Error("Unauthorized access to Maps API: invalid combination of user ('".concat(credentials.username, "') and apiKey ('").concat(credentials.apiKey, "')"));
@@ -164,33 +109,35 @@ function dealWithError(_ref3) {
164
109
  throw new Error("Unauthorized access to dataset: the provided apiKey('".concat(credentials.apiKey, "') doesn't provide access to the requested data"));
165
110
 
166
111
  default:
167
- var e = credentials.apiVersion === _mapsApiCommon.API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;
112
+ const e = credentials.apiVersion === _mapsApiCommon.API_VERSIONS.V1 ? JSON.stringify(json.errors) : json.error;
168
113
  throw new Error(e);
169
114
  }
170
115
  }
171
116
 
172
117
  function initURLParameters(credentials) {
173
- var encodedApiKey = (0, _mapsApiCommon.encodeParameter)('api_key', credentials.apiKey);
174
- var encodedClient = (0, _mapsApiCommon.encodeParameter)('client', "deck-gl-carto");
118
+ const encodedApiKey = (0, _mapsApiCommon.encodeParameter)('api_key', credentials.apiKey);
119
+ const encodedClient = (0, _mapsApiCommon.encodeParameter)('client', "deck-gl-carto");
175
120
  return [encodedApiKey, encodedClient];
176
121
  }
177
122
 
178
- function buildURLMapsAPIv1(_ref4) {
179
- var mapConfig = _ref4.mapConfig,
180
- credentials = _ref4.credentials;
181
- var parameters = initURLParameters(credentials);
182
- var cfg = JSON.stringify(mapConfig);
123
+ function buildURLMapsAPIv1({
124
+ mapConfig,
125
+ credentials
126
+ }) {
127
+ const parameters = initURLParameters(credentials);
128
+ const cfg = JSON.stringify(mapConfig);
183
129
  return "".concat(mapsUrl(credentials), "?").concat(parameters.join('&'), "&").concat((0, _mapsApiCommon.encodeParameter)('config', cfg));
184
130
  }
185
131
 
186
- function buildURLMapsAPIv2(_ref5) {
187
- var connection = _ref5.connection,
188
- type = _ref5.type,
189
- source = _ref5.source,
190
- credentials = _ref5.credentials;
191
- var parameters = initURLParameters(credentials);
192
- var mapsApiType = type === _mapsApiCommon.MAP_TYPES.QUERY ? 'sql' : type;
193
- var url = "".concat(mapsUrl(credentials), "/").concat(connection, "/").concat(mapsApiType, "?");
132
+ function buildURLMapsAPIv2({
133
+ connection,
134
+ type,
135
+ source,
136
+ credentials
137
+ }) {
138
+ const parameters = initURLParameters(credentials);
139
+ const mapsApiType = type === _mapsApiCommon.MAP_TYPES.QUERY ? 'sql' : type;
140
+ let url = "".concat(mapsUrl(credentials), "/").concat(connection, "/").concat(mapsApiType, "?");
194
141
  url += "".concat((0, _mapsApiCommon.encodeParameter)('source', source), "&format=tilejson&").concat(parameters.join('&'));
195
142
  return url;
196
143
  }
@@ -208,7 +155,7 @@ function createMapConfig(sql) {
208
155
  layers: [{
209
156
  type: 'mapnik',
210
157
  options: {
211
- sql: sql,
158
+ sql,
212
159
  vector_extent: TILE_EXTENT
213
160
  }
214
161
  }]
@@ -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","url","connection","API_VERSIONS","V1","mapConfig","createMapConfig","buildURLMapsAPIv1","layergroup","request","metadata","tilejson","vector","V2","buildURLMapsAPIv2","Error","response","fetch","headers","Accept","error","json","ok","dealWithError","status","username","apiKey","e","JSON","stringify","errors","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":";;;;;;;;AAGA;;AACA;;AASO,MAAMA,WAAW,GAAG;AACzBC,EAAAA,QAAQ,EAAE,UADe;AAEzBC,EAAAA,KAAK,EAAE;AAFkB,CAApB;;AAKP,MAAMC,WAAW,GAAG,EAApB;AACA,MAAMC,WAAW,GAAG,IAApB;;AAKO,eAAeC,SAAf,CAAyB;AAACC,EAAAA,IAAD;AAAOC,EAAAA,MAAP;AAAeC,EAAAA;AAAf,CAAzB,EAAsD;AAC3D,QAAMC,kBAAkB,GAAG,oCAA3B;AACA,QAAMC,UAAU,GAAIF,WAAW,IAAIA,WAAW,CAACE,UAA5B,IAA2CD,kBAAkB,CAACC,UAAjF;AAGA,QAAMC,UAAU,GAAG,EACjB,GAAGC,iCADc;AAEjB,QAAIH,kBAAkB,CAACC,UAAnB,KAAkCA,UAAlC,IAAgDD,kBAApD,CAFiB;AAGjB,OAAGD;AAHc,GAAnB;;AAMA,MAAI,CAACG,UAAU,CAACE,OAAhB,EAAyB;AACvBF,IAAAA,UAAU,CAACE,OAAX,GAAqBC,uCAAwBJ,UAAxB,CAArB;AACD;;AAED,MAAIK,GAAJ;AAEA,QAAMC,UAAU,GAAGV,IAAI,KAAK,SAAT,GAAqBN,WAAW,CAACC,QAAjC,GAA4CD,WAAW,CAACE,KAA3E;;AAEA,UAAQQ,UAAR;AACE,SAAKO,4BAAaC,EAAlB;AAEE,YAAMC,SAAS,GAAGC,eAAe,CAACb,MAAD,CAAjC;AACAQ,MAAAA,GAAG,GAAGM,iBAAiB,CAAC;AAACF,QAAAA,SAAD;AAAYX,QAAAA,WAAW,EAAEG;AAAzB,OAAD,CAAvB;AACA,YAAMW,UAAU,GAAG,MAAMC,OAAO,CAAC;AAACR,QAAAA,GAAD;AAAMP,QAAAA,WAAW,EAAEG;AAAnB,OAAD,CAAhC;AACA,aAAOW,UAAU,CAACE,QAAX,CAAoBC,QAApB,CAA6BC,MAApC;;AAEF,SAAKT,4BAAaU,EAAlB;AAEEZ,MAAAA,GAAG,GAAGa,iBAAiB,CAAC;AAACZ,QAAAA,UAAD;AAAaV,QAAAA,IAAb;AAAmBC,QAAAA,MAAnB;AAA2BC,QAAAA,WAAW,EAAEG;AAAxC,OAAD,CAAvB;AACA,aAAO,MAAMY,OAAO,CAAC;AAACR,QAAAA,GAAD;AAAMP,QAAAA,WAAW,EAAEG;AAAnB,OAAD,CAApB;;AAEF;AACE,YAAM,IAAIkB,KAAJ,iDACqCZ,4BAAaC,EADlD,iBAC2DD,4BAAaU,EADxE,EAAN;AAdJ;AAkBD;;AAKD,eAAeJ,OAAf,CAAuB;AAACR,EAAAA,GAAD;AAAMP,EAAAA;AAAN,CAAvB,EAA2C;AACzC,MAAIsB,QAAJ;;AAEA,MAAI;AAGFA,IAAAA,QAAQ,GAAG,MAAMC,KAAK,CAAChB,GAAD,EAAM;AAC1BiB,MAAAA,OAAO,EAAE;AACPC,QAAAA,MAAM,EAAE;AADD;AADiB,KAAN,CAAtB;AAKD,GARD,CAQE,OAAOC,KAAP,EAAc;AACd,UAAM,IAAIL,KAAJ,0CAA4CK,KAA5C,EAAN;AACD;;AAED,QAAMC,IAAI,GAAG,MAAML,QAAQ,CAACK,IAAT,EAAnB;;AAEA,MAAI,CAACL,QAAQ,CAACM,EAAd,EAAkB;AAChBC,IAAAA,aAAa,CAAC;AAACP,MAAAA,QAAD;AAAWK,MAAAA,IAAX;AAAiB3B,MAAAA;AAAjB,KAAD,CAAb;AACD;;AAED,SAAO2B,IAAP;AACD;;AAKD,SAASE,aAAT,CAAuB;AAACP,EAAAA,QAAD;AAAWK,EAAAA,IAAX;AAAiB3B,EAAAA;AAAjB,CAAvB,EAAsD;AACpD,UAAQsB,QAAQ,CAACQ,MAAjB;AACE,SAAK,GAAL;AACE,YAAM,IAAIT,KAAJ,0EAEFrB,WAAW,CAAC+B,QAFV,6BAGe/B,WAAW,CAACgC,MAH3B,QAAN;;AAKF,SAAK,GAAL;AACE,YAAM,IAAIX,KAAJ,gEAEFrB,WAAW,CAACgC,MAFV,qDAAN;;AAMF;AACE,YAAMC,CAAC,GACLjC,WAAW,CAACE,UAAZ,KAA2BO,4BAAaC,EAAxC,GAA6CwB,IAAI,CAACC,SAAL,CAAeR,IAAI,CAACS,MAApB,CAA7C,GAA2ET,IAAI,CAACD,KADlF;AAEA,YAAM,IAAIL,KAAJ,CAAUY,CAAV,CAAN;AAjBJ;AAmBD;;AAED,SAASI,iBAAT,CAA2BrC,WAA3B,EAAwC;AACtC,QAAMsC,aAAa,GAAG,oCAAgB,SAAhB,EAA2BtC,WAAW,CAACgC,MAAvC,CAAtB;AACA,QAAMO,aAAa,GAAG,oCAAgB,QAAhB,kBAAtB;AACA,SAAO,CAACD,aAAD,EAAgBC,aAAhB,CAAP;AACD;;AAKD,SAAS1B,iBAAT,CAA2B;AAACF,EAAAA,SAAD;AAAYX,EAAAA;AAAZ,CAA3B,EAAqD;AACnD,QAAMwC,UAAU,GAAGH,iBAAiB,CAACrC,WAAD,CAApC;AACA,QAAMyC,GAAG,GAAGP,IAAI,CAACC,SAAL,CAAexB,SAAf,CAAZ;AACA,mBAAUN,OAAO,CAACL,WAAD,CAAjB,cAAkCwC,UAAU,CAACE,IAAX,CAAgB,GAAhB,CAAlC,cAA0D,oCAAgB,QAAhB,EAA0BD,GAA1B,CAA1D;AACD;;AAED,SAASrB,iBAAT,CAA2B;AAACZ,EAAAA,UAAD;AAAaV,EAAAA,IAAb;AAAmBC,EAAAA,MAAnB;AAA2BC,EAAAA;AAA3B,CAA3B,EAAoE;AAClE,QAAMwC,UAAU,GAAGH,iBAAiB,CAACrC,WAAD,CAApC;AAEA,QAAM2C,WAAW,GAAG7C,IAAI,KAAK8C,yBAAUC,KAAnB,GAA2B,KAA3B,GAAmC/C,IAAvD;AACA,MAAIS,GAAG,aAAMF,OAAO,CAACL,WAAD,CAAb,cAA8BQ,UAA9B,cAA4CmC,WAA5C,MAAP;AACApC,EAAAA,GAAG,cAAO,oCAAgB,QAAhB,EAA0BR,MAA1B,CAAP,8BAA4DyC,UAAU,CAACE,IAAX,CAAgB,GAAhB,CAA5D,CAAH;AACA,SAAOnC,GAAP;AACD;;AAKD,SAASF,OAAT,CAAiBL,WAAjB,EAA8B;AAC5B,SAAOA,WAAW,CAACK,OAAZ,CACJyC,OADI,CACIC,4CADJ,EACmC/C,WAAW,CAAC+B,QAD/C,EAEJe,OAFI,CAEIE,8CAFJ,EAEqChD,WAAW,CAACiD,MAFjD,CAAP;AAGD;;AAED,SAASrC,eAAT,CAAyBsC,GAAzB,EAA8B;AAC5B,SAAO;AACLC,IAAAA,OAAO,EAAE,OADJ;AAELC,IAAAA,UAAU,EAAE;AACVC,MAAAA,GAAG,EAAE1D;AADK,KAFP;AAKL2D,IAAAA,MAAM,EAAE,CACN;AACExD,MAAAA,IAAI,EAAE,QADR;AAEEyD,MAAAA,OAAO,EAAE;AACPL,QAAAA,GADO;AAEPM,QAAAA,aAAa,EAAE5D;AAFR;AAFX,KADM;AALH,GAAP;AAeD","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"}