@deck.gl/carto 8.6.4 → 8.6.8

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 (49) hide show
  1. package/dist/dist.dev.js +396 -207
  2. package/dist/es5/api/index.js +21 -21
  3. package/dist/es5/api/maps-api-common.js +14 -10
  4. package/dist/es5/api/maps-api-common.js.map +1 -1
  5. package/dist/es5/api/maps-client.js +158 -99
  6. package/dist/es5/api/maps-client.js.map +1 -1
  7. package/dist/es5/api/maps-v3-client.js +308 -193
  8. package/dist/es5/api/maps-v3-client.js.map +1 -1
  9. package/dist/es5/basemap.js +1 -1
  10. package/dist/es5/basemap.js.map +1 -1
  11. package/dist/es5/config.js +25 -23
  12. package/dist/es5/config.js.map +1 -1
  13. package/dist/es5/index.js +45 -45
  14. package/dist/es5/layers/carto-bqtiler-layer.js +41 -6
  15. package/dist/es5/layers/carto-bqtiler-layer.js.map +1 -1
  16. package/dist/es5/layers/carto-layer.js +211 -132
  17. package/dist/es5/layers/carto-layer.js.map +1 -1
  18. package/dist/es5/layers/carto-sql-layer.js +41 -6
  19. package/dist/es5/layers/carto-sql-layer.js.map +1 -1
  20. package/dist/es5/style/color-bins-style.js +16 -11
  21. package/dist/es5/style/color-bins-style.js.map +1 -1
  22. package/dist/es5/style/color-categories-style.js +43 -14
  23. package/dist/es5/style/color-categories-style.js.map +1 -1
  24. package/dist/es5/style/color-continuous-style.js +16 -11
  25. package/dist/es5/style/color-continuous-style.js.map +1 -1
  26. package/dist/es5/style/palette.js +25 -13
  27. package/dist/es5/style/palette.js.map +1 -1
  28. package/dist/es5/style/utils.js +14 -7
  29. package/dist/es5/style/utils.js.map +1 -1
  30. package/dist/esm/api/maps-client.js +30 -24
  31. package/dist/esm/api/maps-client.js.map +1 -1
  32. package/dist/esm/api/maps-v3-client.js +60 -52
  33. package/dist/esm/api/maps-v3-client.js.map +1 -1
  34. package/dist/esm/layers/carto-bqtiler-layer.js +2 -2
  35. package/dist/esm/layers/carto-bqtiler-layer.js.map +1 -1
  36. package/dist/esm/layers/carto-layer.js +7 -5
  37. package/dist/esm/layers/carto-layer.js.map +1 -1
  38. package/dist/esm/layers/carto-sql-layer.js +2 -2
  39. package/dist/esm/layers/carto-sql-layer.js.map +1 -1
  40. package/dist/esm/style/color-bins-style.js +7 -6
  41. package/dist/esm/style/color-bins-style.js.map +1 -1
  42. package/dist/esm/style/color-categories-style.js +8 -7
  43. package/dist/esm/style/color-categories-style.js.map +1 -1
  44. package/dist/esm/style/color-continuous-style.js +7 -6
  45. package/dist/esm/style/color-continuous-style.js.map +1 -1
  46. package/dist/esm/style/utils.js +3 -1
  47. package/dist/esm/style/utils.js.map +1 -1
  48. package/dist.min.js +1 -1
  49. package/package.json +7 -7
@@ -1,11 +1,19 @@
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
- exports.mapInstantiation = mapInstantiation;
7
8
  exports.fetchLayerData = fetchLayerData;
8
9
  exports.getData = getData;
10
+ exports.mapInstantiation = mapInstantiation;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
17
 
10
18
  var _config = require("../config");
11
19
 
@@ -13,58 +21,92 @@ var _mapsApiCommon = require("./maps-api-common");
13
21
 
14
22
  var _core = require("@deck.gl/core");
15
23
 
16
- const MAX_GET_LENGTH = 2048;
17
-
18
- async function request({
19
- method,
20
- url,
21
- format,
22
- accessToken,
23
- body
24
- }) {
25
- let response;
26
- const headers = {
27
- Accept: 'application/json'
28
- };
29
-
30
- if (accessToken) {
31
- headers.Authorization = "Bearer ".concat(accessToken);
32
- }
33
-
34
- if (method === 'POST') {
35
- headers['Content-Type'] = 'application/json';
36
- }
37
-
38
- try {
39
- response = await fetch(url, {
40
- method,
41
- headers,
42
- body
43
- });
44
- } catch (error) {
45
- throw new Error("Failed to connect to Maps API: ".concat(error));
46
- }
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
25
 
48
- if (format === _mapsApiCommon.FORMATS.NDJSON) {
49
- return response;
50
- }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
27
 
52
- const json = await response.json();
28
+ var MAX_GET_LENGTH = 2048;
53
29
 
54
- if (!response.ok) {
55
- dealWithError({
56
- response,
57
- error: json.error
58
- });
59
- }
30
+ function request(_x) {
31
+ return _request.apply(this, arguments);
32
+ }
60
33
 
61
- return json.rows ? json.rows : json;
34
+ function _request() {
35
+ _request = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref) {
36
+ var method, url, format, accessToken, body, response, headers, json;
37
+ return _regenerator.default.wrap(function _callee$(_context) {
38
+ while (1) {
39
+ switch (_context.prev = _context.next) {
40
+ case 0:
41
+ method = _ref.method, url = _ref.url, format = _ref.format, accessToken = _ref.accessToken, body = _ref.body;
42
+ headers = {
43
+ Accept: 'application/json'
44
+ };
45
+
46
+ if (accessToken) {
47
+ headers.Authorization = "Bearer ".concat(accessToken);
48
+ }
49
+
50
+ if (method === 'POST') {
51
+ headers['Content-Type'] = 'application/json';
52
+ }
53
+
54
+ _context.prev = 4;
55
+ _context.next = 7;
56
+ return fetch(url, {
57
+ method: method,
58
+ headers: headers,
59
+ body: body
60
+ });
61
+
62
+ case 7:
63
+ response = _context.sent;
64
+ _context.next = 13;
65
+ break;
66
+
67
+ case 10:
68
+ _context.prev = 10;
69
+ _context.t0 = _context["catch"](4);
70
+ throw new Error("Failed to connect to Maps API: ".concat(_context.t0));
71
+
72
+ case 13:
73
+ if (!(format === _mapsApiCommon.FORMATS.NDJSON)) {
74
+ _context.next = 15;
75
+ break;
76
+ }
77
+
78
+ return _context.abrupt("return", response);
79
+
80
+ case 15:
81
+ _context.next = 17;
82
+ return response.json();
83
+
84
+ case 17:
85
+ json = _context.sent;
86
+
87
+ if (!response.ok) {
88
+ dealWithError({
89
+ response: response,
90
+ error: json.error
91
+ });
92
+ }
93
+
94
+ return _context.abrupt("return", json.rows ? json.rows : json);
95
+
96
+ case 20:
97
+ case "end":
98
+ return _context.stop();
99
+ }
100
+ }
101
+ }, _callee, null, [[4, 10]]);
102
+ }));
103
+ return _request.apply(this, arguments);
62
104
  }
63
105
 
64
- function dealWithError({
65
- response,
66
- error
67
- }) {
106
+ function dealWithError(_ref2) {
107
+ var response = _ref2.response,
108
+ error = _ref2.error;
109
+
68
110
  switch (response.status) {
69
111
  case 400:
70
112
  throw new Error("Bad request. ".concat(error));
@@ -78,20 +120,19 @@ function dealWithError({
78
120
  }
79
121
  }
80
122
 
81
- function getParameters({
82
- type,
83
- source,
84
- geoColumn,
85
- columns,
86
- schema
87
- }) {
88
- const parameters = [(0, _mapsApiCommon.encodeParameter)('client', 'deck-gl-carto')];
123
+ function getParameters(_ref3) {
124
+ var type = _ref3.type,
125
+ source = _ref3.source,
126
+ geoColumn = _ref3.geoColumn,
127
+ columns = _ref3.columns,
128
+ schema = _ref3.schema;
129
+ var parameters = [(0, _mapsApiCommon.encodeParameter)('client', 'deck-gl-carto')];
89
130
 
90
131
  if (schema) {
91
132
  parameters.push((0, _mapsApiCommon.encodeParameter)('schema', true));
92
133
  }
93
134
 
94
- const sourceName = type === _mapsApiCommon.MAP_TYPES.QUERY ? 'q' : 'name';
135
+ var sourceName = type === _mapsApiCommon.MAP_TYPES.QUERY ? 'q' : 'name';
95
136
  parameters.push((0, _mapsApiCommon.encodeParameter)(sourceName, source));
96
137
 
97
138
  if (type === _mapsApiCommon.MAP_TYPES.TABLE) {
@@ -107,51 +148,73 @@ function getParameters({
107
148
  return parameters.join('&');
108
149
  }
109
150
 
110
- async function mapInstantiation({
111
- type,
112
- source,
113
- connection,
114
- credentials,
115
- geoColumn,
116
- columns,
117
- schema
118
- }) {
119
- const baseUrl = "".concat(credentials.mapsUrl, "/").concat(connection, "/").concat(type);
120
- const url = "".concat(baseUrl, "?").concat(getParameters({
121
- type,
122
- source,
123
- geoColumn,
124
- columns,
125
- schema
126
- }));
127
- const {
128
- accessToken
129
- } = credentials;
130
- const format = 'json';
131
-
132
- if (url.length > MAX_GET_LENGTH && type === _mapsApiCommon.MAP_TYPES.QUERY) {
133
- const body = JSON.stringify({
134
- q: source,
135
- client: 'deck-gl-carto'
136
- });
137
- return await request({
138
- method: 'POST',
139
- url: baseUrl,
140
- format,
141
- accessToken,
142
- body
143
- });
144
- }
151
+ function mapInstantiation(_x2) {
152
+ return _mapInstantiation.apply(this, arguments);
153
+ }
145
154
 
146
- return await request({
147
- url,
148
- format,
149
- accessToken
150
- });
155
+ function _mapInstantiation() {
156
+ _mapInstantiation = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(_ref4) {
157
+ var type, source, connection, credentials, geoColumn, columns, schema, baseUrl, url, accessToken, format, body;
158
+ return _regenerator.default.wrap(function _callee2$(_context2) {
159
+ while (1) {
160
+ switch (_context2.prev = _context2.next) {
161
+ case 0:
162
+ type = _ref4.type, source = _ref4.source, connection = _ref4.connection, credentials = _ref4.credentials, geoColumn = _ref4.geoColumn, columns = _ref4.columns, schema = _ref4.schema;
163
+ baseUrl = "".concat(credentials.mapsUrl, "/").concat(connection, "/").concat(type);
164
+ url = "".concat(baseUrl, "?").concat(getParameters({
165
+ type: type,
166
+ source: source,
167
+ geoColumn: geoColumn,
168
+ columns: columns,
169
+ schema: schema
170
+ }));
171
+ accessToken = credentials.accessToken;
172
+ format = 'json';
173
+
174
+ if (!(url.length > MAX_GET_LENGTH && type === _mapsApiCommon.MAP_TYPES.QUERY)) {
175
+ _context2.next = 10;
176
+ break;
177
+ }
178
+
179
+ body = JSON.stringify({
180
+ q: source,
181
+ client: 'deck-gl-carto'
182
+ });
183
+ _context2.next = 9;
184
+ return request({
185
+ method: 'POST',
186
+ url: baseUrl,
187
+ format: format,
188
+ accessToken: accessToken,
189
+ body: body
190
+ });
191
+
192
+ case 9:
193
+ return _context2.abrupt("return", _context2.sent);
194
+
195
+ case 10:
196
+ _context2.next = 12;
197
+ return request({
198
+ url: url,
199
+ format: format,
200
+ accessToken: accessToken
201
+ });
202
+
203
+ case 12:
204
+ return _context2.abrupt("return", _context2.sent);
205
+
206
+ case 13:
207
+ case "end":
208
+ return _context2.stop();
209
+ }
210
+ }
211
+ }, _callee2);
212
+ }));
213
+ return _mapInstantiation.apply(this, arguments);
151
214
  }
152
215
 
153
216
  function getUrlFromMetadata(metadata, format) {
154
- const m = metadata[format];
217
+ var m = metadata[format];
155
218
 
156
219
  if (m && !m.error && m.url) {
157
220
  return m.url[0];
@@ -160,12 +223,12 @@ function getUrlFromMetadata(metadata, format) {
160
223
  return null;
161
224
  }
162
225
 
163
- function checkGetLayerDataParameters({
164
- type,
165
- source,
166
- connection,
167
- localCreds
168
- }) {
226
+ function checkGetLayerDataParameters(_ref5) {
227
+ var type = _ref5.type,
228
+ source = _ref5.source,
229
+ connection = _ref5.connection,
230
+ localCreds = _ref5.localCreds;
231
+
169
232
  _core.log.assert(connection, 'Must define connection');
170
233
 
171
234
  _core.log.assert(type, 'Must define a type');
@@ -179,100 +242,152 @@ function checkGetLayerDataParameters({
179
242
  _core.log.assert(localCreds.accessToken, 'Must define an accessToken');
180
243
  }
181
244
 
182
- async function fetchLayerData({
183
- type,
184
- source,
185
- connection,
186
- credentials,
187
- geoColumn,
188
- columns,
189
- format,
190
- schema
191
- }) {
192
- const defaultCredentials = (0, _config.getDefaultCredentials)();
193
- const localCreds = { ...(defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials),
194
- ...credentials
195
- };
196
- checkGetLayerDataParameters({
197
- type,
198
- source,
199
- connection,
200
- localCreds
201
- });
202
-
203
- if (!localCreds.mapsUrl) {
204
- localCreds.mapsUrl = (0, _config.buildMapsUrlFromBase)(localCreds.apiBaseUrl);
205
- }
245
+ function fetchLayerData(_x3) {
246
+ return _fetchLayerData.apply(this, arguments);
247
+ }
206
248
 
207
- const metadata = await mapInstantiation({
208
- type,
209
- source,
210
- connection,
211
- credentials: localCreds,
212
- geoColumn,
213
- columns,
214
- schema
215
- });
216
- let url;
217
- let mapFormat;
218
-
219
- if (format) {
220
- mapFormat = format;
221
- url = getUrlFromMetadata(metadata, format);
222
-
223
- _core.log.assert(url, "Format ".concat(format, " not available"));
224
- } else {
225
- const prioritizedFormats = [_mapsApiCommon.FORMATS.GEOJSON, _mapsApiCommon.FORMATS.NDJSON, _mapsApiCommon.FORMATS.TILEJSON];
226
-
227
- for (const f of prioritizedFormats) {
228
- url = getUrlFromMetadata(metadata, f);
229
-
230
- if (url) {
231
- mapFormat = f;
232
- break;
249
+ function _fetchLayerData() {
250
+ _fetchLayerData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(_ref6) {
251
+ var type, source, connection, credentials, geoColumn, columns, format, schema, defaultCredentials, localCreds, metadata, url, mapFormat, prioritizedFormats, _i, _prioritizedFormats, f, accessToken, data, result;
252
+
253
+ return _regenerator.default.wrap(function _callee3$(_context3) {
254
+ while (1) {
255
+ switch (_context3.prev = _context3.next) {
256
+ case 0:
257
+ type = _ref6.type, source = _ref6.source, connection = _ref6.connection, credentials = _ref6.credentials, geoColumn = _ref6.geoColumn, columns = _ref6.columns, format = _ref6.format, schema = _ref6.schema;
258
+ defaultCredentials = (0, _config.getDefaultCredentials)();
259
+ localCreds = _objectSpread(_objectSpread({}, defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials), credentials);
260
+ checkGetLayerDataParameters({
261
+ type: type,
262
+ source: source,
263
+ connection: connection,
264
+ localCreds: localCreds
265
+ });
266
+
267
+ if (!localCreds.mapsUrl) {
268
+ localCreds.mapsUrl = (0, _config.buildMapsUrlFromBase)(localCreds.apiBaseUrl);
269
+ }
270
+
271
+ _context3.next = 7;
272
+ return mapInstantiation({
273
+ type: type,
274
+ source: source,
275
+ connection: connection,
276
+ credentials: localCreds,
277
+ geoColumn: geoColumn,
278
+ columns: columns,
279
+ schema: schema
280
+ });
281
+
282
+ case 7:
283
+ metadata = _context3.sent;
284
+
285
+ if (!format) {
286
+ _context3.next = 14;
287
+ break;
288
+ }
289
+
290
+ mapFormat = format;
291
+ url = getUrlFromMetadata(metadata, format);
292
+
293
+ _core.log.assert(url, "Format ".concat(format, " not available"));
294
+
295
+ _context3.next = 25;
296
+ break;
297
+
298
+ case 14:
299
+ prioritizedFormats = [_mapsApiCommon.FORMATS.GEOJSON, _mapsApiCommon.FORMATS.NDJSON, _mapsApiCommon.FORMATS.TILEJSON];
300
+ _i = 0, _prioritizedFormats = prioritizedFormats;
301
+
302
+ case 16:
303
+ if (!(_i < _prioritizedFormats.length)) {
304
+ _context3.next = 25;
305
+ break;
306
+ }
307
+
308
+ f = _prioritizedFormats[_i];
309
+ url = getUrlFromMetadata(metadata, f);
310
+
311
+ if (!url) {
312
+ _context3.next = 22;
313
+ break;
314
+ }
315
+
316
+ mapFormat = f;
317
+ return _context3.abrupt("break", 25);
318
+
319
+ case 22:
320
+ _i++;
321
+ _context3.next = 16;
322
+ break;
323
+
324
+ case 25:
325
+ accessToken = localCreds.accessToken;
326
+ _context3.next = 28;
327
+ return request({
328
+ url: url,
329
+ format: mapFormat,
330
+ accessToken: accessToken
331
+ });
332
+
333
+ case 28:
334
+ data = _context3.sent;
335
+ result = {
336
+ data: data,
337
+ format: mapFormat
338
+ };
339
+
340
+ if (schema) {
341
+ result.schema = metadata.schema;
342
+ }
343
+
344
+ return _context3.abrupt("return", result);
345
+
346
+ case 32:
347
+ case "end":
348
+ return _context3.stop();
349
+ }
233
350
  }
234
- }
235
- }
236
-
237
- const {
238
- accessToken
239
- } = localCreds;
240
- const data = await request({
241
- url,
242
- format: mapFormat,
243
- accessToken
244
- });
245
- const result = {
246
- data,
247
- format: mapFormat
248
- };
249
-
250
- if (schema) {
251
- result.schema = metadata.schema;
252
- }
351
+ }, _callee3);
352
+ }));
353
+ return _fetchLayerData.apply(this, arguments);
354
+ }
253
355
 
254
- return result;
356
+ function getData(_x4) {
357
+ return _getData.apply(this, arguments);
255
358
  }
256
359
 
257
- async function getData({
258
- type,
259
- source,
260
- connection,
261
- credentials,
262
- geoColumn,
263
- columns,
264
- format
265
- }) {
266
- const layerData = await fetchLayerData({
267
- type,
268
- source,
269
- connection,
270
- credentials,
271
- geoColumn,
272
- columns,
273
- format,
274
- schema: false
275
- });
276
- return layerData.data;
360
+ function _getData() {
361
+ _getData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(_ref7) {
362
+ var type, source, connection, credentials, geoColumn, columns, format, layerData;
363
+ return _regenerator.default.wrap(function _callee4$(_context4) {
364
+ while (1) {
365
+ switch (_context4.prev = _context4.next) {
366
+ case 0:
367
+ type = _ref7.type, source = _ref7.source, connection = _ref7.connection, credentials = _ref7.credentials, geoColumn = _ref7.geoColumn, columns = _ref7.columns, format = _ref7.format;
368
+ _context4.next = 3;
369
+ return fetchLayerData({
370
+ type: type,
371
+ source: source,
372
+ connection: connection,
373
+ credentials: credentials,
374
+ geoColumn: geoColumn,
375
+ columns: columns,
376
+ format: format,
377
+ schema: false
378
+ });
379
+
380
+ case 3:
381
+ layerData = _context4.sent;
382
+ return _context4.abrupt("return", layerData.data);
383
+
384
+ case 5:
385
+ case "end":
386
+ return _context4.stop();
387
+ }
388
+ }
389
+ }, _callee4);
390
+ }));
391
+ return _getData.apply(this, arguments);
277
392
  }
278
393
  //# sourceMappingURL=maps-v3-client.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/maps-v3-client.js"],"names":["MAX_GET_LENGTH","request","method","url","format","accessToken","body","response","headers","Accept","Authorization","fetch","error","Error","FORMATS","NDJSON","json","ok","dealWithError","rows","status","getParameters","type","source","geoColumn","columns","schema","parameters","push","sourceName","MAP_TYPES","QUERY","TABLE","join","mapInstantiation","connection","credentials","baseUrl","mapsUrl","length","JSON","stringify","q","client","getUrlFromMetadata","metadata","m","checkGetLayerDataParameters","localCreds","log","assert","apiVersion","API_VERSIONS","V3","apiBaseUrl","fetchLayerData","defaultCredentials","mapFormat","prioritizedFormats","GEOJSON","TILEJSON","f","data","result","getData","layerData"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {getDefaultCredentials, buildMapsUrlFromBase} from '../config';\nimport {API_VERSIONS, encodeParameter, FORMATS, MAP_TYPES} from './maps-api-common';\nimport {log} from '@deck.gl/core';\n\nconst MAX_GET_LENGTH = 2048;\n\n/**\n * Request against Maps API\n */\nasync function request({method, url, format, accessToken, body}) {\n let response;\n\n const headers = {\n Accept: 'application/json'\n };\n\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n\n if (method === 'POST') {\n headers['Content-Type'] = 'application/json';\n }\n\n try {\n /* global fetch */\n /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n if (format === FORMATS.NDJSON) {\n return response;\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, error: json.error});\n }\n\n return json.rows ? json.rows : json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, error}) {\n switch (response.status) {\n case 400:\n throw new Error(`Bad request. ${error}`);\n case 401:\n case 403:\n throw new Error(`Unauthorized access. ${error}`);\n default:\n throw new Error(error);\n }\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({type, source, geoColumn, columns, schema}) {\n const parameters = [encodeParameter('client', 'deck-gl-carto')];\n if (schema) {\n parameters.push(encodeParameter('schema', true));\n }\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters.push(encodeParameter(sourceName, source));\n\n if (type === MAP_TYPES.TABLE) {\n if (geoColumn) {\n parameters.push(encodeParameter('geo_column', geoColumn));\n }\n if (columns) {\n parameters.push(encodeParameter('columns', columns.join(',')));\n }\n }\n\n return parameters.join('&');\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n schema\n}) {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema})}`;\n const {accessToken} = credentials;\n\n const format = 'json';\n\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n // need to be a POST request\n const body = JSON.stringify({\n q: source,\n client: 'deck-gl-carto'\n });\n return await request({method: 'POST', url: baseUrl, format, accessToken, body});\n }\n\n return await request({url, format, accessToken});\n}\n\nfunction getUrlFromMetadata(metadata, format) {\n const m = metadata[format];\n\n if (m && !m.error && m.url) {\n return m.url[0];\n }\n\n return null;\n}\n\nfunction checkGetLayerDataParameters({type, source, connection, localCreds}) {\n log.assert(connection, 'Must define connection');\n log.assert(type, 'Must define a type');\n log.assert(source, 'Must define a source');\n\n log.assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n log.assert(localCreds.accessToken, 'Must define an accessToken');\n}\n\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema\n}) {\n const defaultCredentials = getDefaultCredentials();\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n checkGetLayerDataParameters({type, source, connection, localCreds});\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n const metadata = await mapInstantiation({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n schema\n });\n let url;\n let mapFormat;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n log.assert(url, `Format ${format} not available`);\n } else {\n // guess map format\n const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.NDJSON, FORMATS.TILEJSON];\n for (const f of prioritizedFormats) {\n url = getUrlFromMetadata(metadata, f);\n if (url) {\n mapFormat = f;\n break;\n }\n }\n }\n\n const {accessToken} = localCreds;\n\n const data = await request({url, format: mapFormat, accessToken});\n const result = {data, format: mapFormat};\n if (schema) {\n result.schema = metadata.schema;\n }\n\n return result;\n}\n\nexport async function getData({type, source, connection, credentials, geoColumn, columns, format}) {\n const layerData = await fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema: false\n });\n return layerData.data;\n}\n"],"file":"maps-v3-client.js"}
1
+ {"version":3,"sources":["../../../src/api/maps-v3-client.js"],"names":["MAX_GET_LENGTH","request","method","url","format","accessToken","body","headers","Accept","Authorization","fetch","response","Error","FORMATS","NDJSON","json","ok","dealWithError","error","rows","status","getParameters","type","source","geoColumn","columns","schema","parameters","push","sourceName","MAP_TYPES","QUERY","TABLE","join","mapInstantiation","connection","credentials","baseUrl","mapsUrl","length","JSON","stringify","q","client","getUrlFromMetadata","metadata","m","checkGetLayerDataParameters","localCreds","log","assert","apiVersion","API_VERSIONS","V3","apiBaseUrl","fetchLayerData","defaultCredentials","mapFormat","prioritizedFormats","GEOJSON","TILEJSON","f","data","result","getData","layerData"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {getDefaultCredentials, buildMapsUrlFromBase} from '../config';\nimport {API_VERSIONS, encodeParameter, FORMATS, MAP_TYPES} from './maps-api-common';\nimport {log} from '@deck.gl/core';\n\nconst MAX_GET_LENGTH = 2048;\n\n/**\n * Request against Maps API\n */\nasync function request({method, url, format, accessToken, body}) {\n let response;\n\n const headers = {\n Accept: 'application/json'\n };\n\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n\n if (method === 'POST') {\n headers['Content-Type'] = 'application/json';\n }\n\n try {\n /* global fetch */\n /* eslint no-undef: \"error\" */\n response = await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n\n if (format === FORMATS.NDJSON) {\n return response;\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, error: json.error});\n }\n\n return json.rows ? json.rows : json;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, error}) {\n switch (response.status) {\n case 400:\n throw new Error(`Bad request. ${error}`);\n case 401:\n case 403:\n throw new Error(`Unauthorized access. ${error}`);\n default:\n throw new Error(error);\n }\n}\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({type, source, geoColumn, columns, schema}) {\n const parameters = [encodeParameter('client', 'deck-gl-carto')];\n if (schema) {\n parameters.push(encodeParameter('schema', true));\n }\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters.push(encodeParameter(sourceName, source));\n\n if (type === MAP_TYPES.TABLE) {\n if (geoColumn) {\n parameters.push(encodeParameter('geo_column', geoColumn));\n }\n if (columns) {\n parameters.push(encodeParameter('columns', columns.join(',')));\n }\n }\n\n return parameters.join('&');\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n schema\n}) {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema})}`;\n const {accessToken} = credentials;\n\n const format = 'json';\n\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n // need to be a POST request\n const body = JSON.stringify({\n q: source,\n client: 'deck-gl-carto'\n });\n return await request({method: 'POST', url: baseUrl, format, accessToken, body});\n }\n\n return await request({url, format, accessToken});\n}\n\nfunction getUrlFromMetadata(metadata, format) {\n const m = metadata[format];\n\n if (m && !m.error && m.url) {\n return m.url[0];\n }\n\n return null;\n}\n\nfunction checkGetLayerDataParameters({type, source, connection, localCreds}) {\n log.assert(connection, 'Must define connection');\n log.assert(type, 'Must define a type');\n log.assert(source, 'Must define a source');\n\n log.assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n log.assert(localCreds.accessToken, 'Must define an accessToken');\n}\n\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema\n}) {\n const defaultCredentials = getDefaultCredentials();\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n checkGetLayerDataParameters({type, source, connection, localCreds});\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n const metadata = await mapInstantiation({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n schema\n });\n let url;\n let mapFormat;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n log.assert(url, `Format ${format} not available`);\n } else {\n // guess map format\n const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.NDJSON, FORMATS.TILEJSON];\n for (const f of prioritizedFormats) {\n url = getUrlFromMetadata(metadata, f);\n if (url) {\n mapFormat = f;\n break;\n }\n }\n }\n\n const {accessToken} = localCreds;\n\n const data = await request({url, format: mapFormat, accessToken});\n const result = {data, format: mapFormat};\n if (schema) {\n result.schema = metadata.schema;\n }\n\n return result;\n}\n\nexport async function getData({type, source, connection, credentials, geoColumn, columns, format}) {\n const layerData = await fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema: false\n });\n return layerData.data;\n}\n"],"file":"maps-v3-client.js"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- const base_url = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';
7
+ var base_url = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';
8
8
  var _default = {
9
9
  VOYAGER: base_url.replace('{basemap}', 'voyager'),
10
10
  POSITRON: base_url.replace('{basemap}', 'positron'),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/basemap.js"],"names":["base_url","VOYAGER","replace","POSITRON","DARK_MATTER","VOYAGER_NOLABELS","POSITRON_NOLABELS","DARK_MATTER_NOLABELS"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAG,gEAAjB;eAEe;AACbC,EAAAA,OAAO,EAAED,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,SAA9B,CADI;AAEbC,EAAAA,QAAQ,EAAEH,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,UAA9B,CAFG;AAGbE,EAAAA,WAAW,EAAEJ,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,aAA9B,CAHA;AAIbG,EAAAA,gBAAgB,EAAEL,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,kBAA9B,CAJL;AAKbI,EAAAA,iBAAiB,EAAEN,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,mBAA9B,CALN;AAMbK,EAAAA,oBAAoB,EAAEP,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,sBAA9B;AANT,C","sourcesContent":["const base_url = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';\n\nexport default {\n VOYAGER: base_url.replace('{basemap}', 'voyager'),\n POSITRON: base_url.replace('{basemap}', 'positron'),\n DARK_MATTER: base_url.replace('{basemap}', 'dark-matter'),\n VOYAGER_NOLABELS: base_url.replace('{basemap}', 'voyager-nolabels'),\n POSITRON_NOLABELS: base_url.replace('{basemap}', 'positron-nolabels'),\n DARK_MATTER_NOLABELS: base_url.replace('{basemap}', 'dark-matter-nolabels')\n};\n"],"file":"basemap.js"}
1
+ {"version":3,"sources":["../../src/basemap.js"],"names":["base_url","VOYAGER","replace","POSITRON","DARK_MATTER","VOYAGER_NOLABELS","POSITRON_NOLABELS","DARK_MATTER_NOLABELS"],"mappings":";;;;;;AAAA,IAAMA,QAAQ,GAAG,gEAAjB;eAEe;AACbC,EAAAA,OAAO,EAAED,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,SAA9B,CADI;AAEbC,EAAAA,QAAQ,EAAEH,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,UAA9B,CAFG;AAGbE,EAAAA,WAAW,EAAEJ,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,aAA9B,CAHA;AAIbG,EAAAA,gBAAgB,EAAEL,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,kBAA9B,CAJL;AAKbI,EAAAA,iBAAiB,EAAEN,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,mBAA9B,CALN;AAMbK,EAAAA,oBAAoB,EAAEP,QAAQ,CAACE,OAAT,CAAiB,WAAjB,EAA8B,sBAA9B;AANT,C","sourcesContent":["const base_url = 'https://basemaps.cartocdn.com/gl/{basemap}-gl-style/style.json';\n\nexport default {\n VOYAGER: base_url.replace('{basemap}', 'voyager'),\n POSITRON: base_url.replace('{basemap}', 'positron'),\n DARK_MATTER: base_url.replace('{basemap}', 'dark-matter'),\n VOYAGER_NOLABELS: base_url.replace('{basemap}', 'voyager-nolabels'),\n POSITRON_NOLABELS: base_url.replace('{basemap}', 'positron-nolabels'),\n DARK_MATTER_NOLABELS: base_url.replace('{basemap}', 'dark-matter-nolabels')\n};\n"],"file":"basemap.js"}