@deck.gl/carto 8.6.0 → 8.7.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +24459 -726
- package/dist/es5/api/index.js +12 -0
- package/dist/es5/api/index.js.map +1 -1
- package/dist/es5/api/layer-map.js +255 -0
- package/dist/es5/api/layer-map.js.map +1 -0
- package/dist/es5/api/maps-api-common.js +10 -1
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-client.js +18 -12
- package/dist/es5/api/maps-client.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +340 -42
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +211 -0
- package/dist/es5/api/parseMap.js.map +1 -0
- package/dist/es5/config.js +4 -2
- package/dist/es5/config.js.map +1 -1
- package/dist/es5/index.js +12 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/esm/api/index.js +1 -1
- package/dist/esm/api/index.js.map +1 -1
- package/dist/esm/api/layer-map.js +219 -0
- package/dist/esm/api/layer-map.js.map +1 -0
- package/dist/esm/api/maps-api-common.js +4 -0
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-client.js +11 -6
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +190 -17
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +202 -0
- package/dist/esm/api/parseMap.js.map +1 -0
- package/dist/esm/config.js +4 -4
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist.min.js +278 -1
- package/package.json +7 -3
- package/src/api/index.js +1 -1
- package/src/api/layer-map.js +194 -0
- package/src/api/maps-api-common.js +5 -0
- package/src/api/maps-client.js +16 -3
- package/src/api/maps-v3-client.js +145 -12
- package/src/api/parseMap.js +192 -0
- package/src/config.js +4 -4
- package/src/index.js +2 -0
|
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.mapInstantiation = mapInstantiation;
|
|
9
|
+
exports.fetchLayerData = fetchLayerData;
|
|
9
10
|
exports.getData = getData;
|
|
11
|
+
exports.fetchMap = fetchMap;
|
|
10
12
|
|
|
11
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
14
|
|
|
@@ -18,6 +20,8 @@ var _config = require("../config");
|
|
|
18
20
|
|
|
19
21
|
var _mapsApiCommon = require("./maps-api-common");
|
|
20
22
|
|
|
23
|
+
var _parseMap = require("./parseMap");
|
|
24
|
+
|
|
21
25
|
var _core = require("@deck.gl/core");
|
|
22
26
|
|
|
23
27
|
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; }
|
|
@@ -123,9 +127,14 @@ function getParameters(_ref3) {
|
|
|
123
127
|
var type = _ref3.type,
|
|
124
128
|
source = _ref3.source,
|
|
125
129
|
geoColumn = _ref3.geoColumn,
|
|
126
|
-
columns = _ref3.columns
|
|
127
|
-
|
|
128
|
-
var parameters = [
|
|
130
|
+
columns = _ref3.columns,
|
|
131
|
+
schema = _ref3.schema;
|
|
132
|
+
var parameters = [(0, _mapsApiCommon.encodeParameter)('client', 'deck-gl-carto')];
|
|
133
|
+
|
|
134
|
+
if (schema) {
|
|
135
|
+
parameters.push((0, _mapsApiCommon.encodeParameter)('schema', true));
|
|
136
|
+
}
|
|
137
|
+
|
|
129
138
|
var sourceName = type === _mapsApiCommon.MAP_TYPES.QUERY ? 'q' : 'name';
|
|
130
139
|
parameters.push((0, _mapsApiCommon.encodeParameter)(sourceName, source));
|
|
131
140
|
|
|
@@ -148,18 +157,19 @@ function mapInstantiation(_x2) {
|
|
|
148
157
|
|
|
149
158
|
function _mapInstantiation() {
|
|
150
159
|
_mapInstantiation = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(_ref4) {
|
|
151
|
-
var type, source, connection, credentials, geoColumn, columns, baseUrl, url, accessToken, format, body;
|
|
160
|
+
var type, source, connection, credentials, geoColumn, columns, schema, baseUrl, url, accessToken, format, body;
|
|
152
161
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
153
162
|
while (1) {
|
|
154
163
|
switch (_context2.prev = _context2.next) {
|
|
155
164
|
case 0:
|
|
156
|
-
type = _ref4.type, source = _ref4.source, connection = _ref4.connection, credentials = _ref4.credentials, geoColumn = _ref4.geoColumn, columns = _ref4.columns;
|
|
165
|
+
type = _ref4.type, source = _ref4.source, connection = _ref4.connection, credentials = _ref4.credentials, geoColumn = _ref4.geoColumn, columns = _ref4.columns, schema = _ref4.schema;
|
|
157
166
|
baseUrl = "".concat(credentials.mapsUrl, "/").concat(connection, "/").concat(type);
|
|
158
167
|
url = "".concat(baseUrl, "?").concat(getParameters({
|
|
159
168
|
type: type,
|
|
160
169
|
source: source,
|
|
161
170
|
geoColumn: geoColumn,
|
|
162
|
-
columns: columns
|
|
171
|
+
columns: columns,
|
|
172
|
+
schema: schema
|
|
163
173
|
}));
|
|
164
174
|
accessToken = credentials.accessToken;
|
|
165
175
|
format = 'json';
|
|
@@ -216,54 +226,128 @@ function getUrlFromMetadata(metadata, format) {
|
|
|
216
226
|
return null;
|
|
217
227
|
}
|
|
218
228
|
|
|
219
|
-
function
|
|
220
|
-
|
|
229
|
+
function checkFetchLayerDataParameters(_ref5) {
|
|
230
|
+
var type = _ref5.type,
|
|
231
|
+
source = _ref5.source,
|
|
232
|
+
connection = _ref5.connection,
|
|
233
|
+
localCreds = _ref5.localCreds;
|
|
234
|
+
|
|
235
|
+
_core.log.assert(connection, 'Must define connection');
|
|
236
|
+
|
|
237
|
+
_core.log.assert(type, 'Must define a type');
|
|
238
|
+
|
|
239
|
+
_core.log.assert(source, 'Must define a source');
|
|
240
|
+
|
|
241
|
+
_core.log.assert(localCreds.apiVersion === _mapsApiCommon.API_VERSIONS.V3, 'Method only available for v3');
|
|
242
|
+
|
|
243
|
+
_core.log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
|
|
244
|
+
|
|
245
|
+
_core.log.assert(localCreds.accessToken, 'Must define an accessToken');
|
|
221
246
|
}
|
|
222
247
|
|
|
223
|
-
function
|
|
224
|
-
|
|
225
|
-
|
|
248
|
+
function fetchLayerData(_x3) {
|
|
249
|
+
return _fetchLayerData.apply(this, arguments);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
function _fetchLayerData() {
|
|
253
|
+
_fetchLayerData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(_ref6) {
|
|
254
|
+
var type, source, connection, credentials, geoColumn, columns, format, schema, _yield$_fetchDataUrl, url, accessToken, mapFormat, metadata, data, result;
|
|
226
255
|
|
|
227
256
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
228
257
|
while (1) {
|
|
229
258
|
switch (_context3.prev = _context3.next) {
|
|
230
259
|
case 0:
|
|
231
|
-
type =
|
|
232
|
-
|
|
260
|
+
type = _ref6.type, source = _ref6.source, connection = _ref6.connection, credentials = _ref6.credentials, geoColumn = _ref6.geoColumn, columns = _ref6.columns, format = _ref6.format, schema = _ref6.schema;
|
|
261
|
+
_context3.next = 3;
|
|
262
|
+
return _fetchDataUrl({
|
|
263
|
+
type: type,
|
|
264
|
+
source: source,
|
|
265
|
+
connection: connection,
|
|
266
|
+
credentials: credentials,
|
|
267
|
+
geoColumn: geoColumn,
|
|
268
|
+
columns: columns,
|
|
269
|
+
format: format,
|
|
270
|
+
schema: schema
|
|
271
|
+
});
|
|
233
272
|
|
|
234
|
-
|
|
273
|
+
case 3:
|
|
274
|
+
_yield$_fetchDataUrl = _context3.sent;
|
|
275
|
+
url = _yield$_fetchDataUrl.url;
|
|
276
|
+
accessToken = _yield$_fetchDataUrl.accessToken;
|
|
277
|
+
mapFormat = _yield$_fetchDataUrl.mapFormat;
|
|
278
|
+
metadata = _yield$_fetchDataUrl.metadata;
|
|
279
|
+
_context3.next = 10;
|
|
280
|
+
return request({
|
|
281
|
+
url: url,
|
|
282
|
+
format: mapFormat,
|
|
283
|
+
accessToken: accessToken
|
|
284
|
+
});
|
|
235
285
|
|
|
236
|
-
|
|
286
|
+
case 10:
|
|
287
|
+
data = _context3.sent;
|
|
288
|
+
result = {
|
|
289
|
+
data: data,
|
|
290
|
+
format: mapFormat
|
|
291
|
+
};
|
|
237
292
|
|
|
238
|
-
|
|
293
|
+
if (schema) {
|
|
294
|
+
result.schema = metadata.schema;
|
|
295
|
+
}
|
|
239
296
|
|
|
240
|
-
|
|
297
|
+
return _context3.abrupt("return", result);
|
|
241
298
|
|
|
242
|
-
|
|
299
|
+
case 14:
|
|
300
|
+
case "end":
|
|
301
|
+
return _context3.stop();
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}, _callee3);
|
|
305
|
+
}));
|
|
306
|
+
return _fetchLayerData.apply(this, arguments);
|
|
307
|
+
}
|
|
243
308
|
|
|
244
|
-
|
|
309
|
+
function _fetchDataUrl(_x4) {
|
|
310
|
+
return _fetchDataUrl2.apply(this, arguments);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
function _fetchDataUrl2() {
|
|
314
|
+
_fetchDataUrl2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(_ref7) {
|
|
315
|
+
var type, source, connection, credentials, geoColumn, columns, format, schema, defaultCredentials, localCreds, metadata, url, mapFormat, prioritizedFormats, _i, _prioritizedFormats, f, accessToken;
|
|
245
316
|
|
|
246
|
-
|
|
317
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
318
|
+
while (1) {
|
|
319
|
+
switch (_context4.prev = _context4.next) {
|
|
320
|
+
case 0:
|
|
321
|
+
type = _ref7.type, source = _ref7.source, connection = _ref7.connection, credentials = _ref7.credentials, geoColumn = _ref7.geoColumn, columns = _ref7.columns, format = _ref7.format, schema = _ref7.schema;
|
|
322
|
+
defaultCredentials = (0, _config.getDefaultCredentials)();
|
|
323
|
+
localCreds = _objectSpread(_objectSpread({}, defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials), credentials);
|
|
324
|
+
checkFetchLayerDataParameters({
|
|
325
|
+
type: type,
|
|
326
|
+
source: source,
|
|
327
|
+
connection: connection,
|
|
328
|
+
localCreds: localCreds
|
|
329
|
+
});
|
|
247
330
|
|
|
248
331
|
if (!localCreds.mapsUrl) {
|
|
249
332
|
localCreds.mapsUrl = (0, _config.buildMapsUrlFromBase)(localCreds.apiBaseUrl);
|
|
250
333
|
}
|
|
251
334
|
|
|
252
|
-
|
|
335
|
+
_context4.next = 7;
|
|
253
336
|
return mapInstantiation({
|
|
254
337
|
type: type,
|
|
255
338
|
source: source,
|
|
256
339
|
connection: connection,
|
|
257
340
|
credentials: localCreds,
|
|
258
341
|
geoColumn: geoColumn,
|
|
259
|
-
columns: columns
|
|
342
|
+
columns: columns,
|
|
343
|
+
schema: schema
|
|
260
344
|
});
|
|
261
345
|
|
|
262
|
-
case
|
|
263
|
-
metadata =
|
|
346
|
+
case 7:
|
|
347
|
+
metadata = _context4.sent;
|
|
264
348
|
|
|
265
349
|
if (!format) {
|
|
266
|
-
|
|
350
|
+
_context4.next = 14;
|
|
267
351
|
break;
|
|
268
352
|
}
|
|
269
353
|
|
|
@@ -272,16 +356,16 @@ function _getData() {
|
|
|
272
356
|
|
|
273
357
|
_core.log.assert(url, "Format ".concat(format, " not available"));
|
|
274
358
|
|
|
275
|
-
|
|
359
|
+
_context4.next = 25;
|
|
276
360
|
break;
|
|
277
361
|
|
|
278
|
-
case
|
|
279
|
-
prioritizedFormats = [_mapsApiCommon.FORMATS.GEOJSON, _mapsApiCommon.FORMATS.NDJSON, _mapsApiCommon.FORMATS.TILEJSON];
|
|
362
|
+
case 14:
|
|
363
|
+
prioritizedFormats = [_mapsApiCommon.FORMATS.GEOJSON, _mapsApiCommon.FORMATS.JSON, _mapsApiCommon.FORMATS.NDJSON, _mapsApiCommon.FORMATS.TILEJSON];
|
|
280
364
|
_i = 0, _prioritizedFormats = prioritizedFormats;
|
|
281
365
|
|
|
282
|
-
case
|
|
366
|
+
case 16:
|
|
283
367
|
if (!(_i < _prioritizedFormats.length)) {
|
|
284
|
-
|
|
368
|
+
_context4.next = 25;
|
|
285
369
|
break;
|
|
286
370
|
}
|
|
287
371
|
|
|
@@ -289,37 +373,251 @@ function _getData() {
|
|
|
289
373
|
url = getUrlFromMetadata(metadata, f);
|
|
290
374
|
|
|
291
375
|
if (!url) {
|
|
292
|
-
|
|
376
|
+
_context4.next = 22;
|
|
293
377
|
break;
|
|
294
378
|
}
|
|
295
379
|
|
|
296
380
|
mapFormat = f;
|
|
297
|
-
return
|
|
381
|
+
return _context4.abrupt("break", 25);
|
|
298
382
|
|
|
299
|
-
case
|
|
383
|
+
case 22:
|
|
300
384
|
_i++;
|
|
301
|
-
|
|
385
|
+
_context4.next = 16;
|
|
302
386
|
break;
|
|
303
387
|
|
|
304
|
-
case
|
|
388
|
+
case 25:
|
|
305
389
|
accessToken = localCreds.accessToken;
|
|
306
|
-
|
|
390
|
+
return _context4.abrupt("return", {
|
|
391
|
+
url: url,
|
|
392
|
+
accessToken: accessToken,
|
|
393
|
+
mapFormat: mapFormat,
|
|
394
|
+
metadata: metadata
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
case 27:
|
|
398
|
+
case "end":
|
|
399
|
+
return _context4.stop();
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}, _callee4);
|
|
403
|
+
}));
|
|
404
|
+
return _fetchDataUrl2.apply(this, arguments);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
function getData(_x5) {
|
|
408
|
+
return _getData.apply(this, arguments);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
function _getData() {
|
|
412
|
+
_getData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(_ref8) {
|
|
413
|
+
var type, source, connection, credentials, geoColumn, columns, format, layerData;
|
|
414
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
415
|
+
while (1) {
|
|
416
|
+
switch (_context5.prev = _context5.next) {
|
|
417
|
+
case 0:
|
|
418
|
+
type = _ref8.type, source = _ref8.source, connection = _ref8.connection, credentials = _ref8.credentials, geoColumn = _ref8.geoColumn, columns = _ref8.columns, format = _ref8.format;
|
|
419
|
+
|
|
420
|
+
_core.log.deprecated('getData', 'fetchLayerData')();
|
|
421
|
+
|
|
422
|
+
_context5.next = 4;
|
|
423
|
+
return fetchLayerData({
|
|
424
|
+
type: type,
|
|
425
|
+
source: source,
|
|
426
|
+
connection: connection,
|
|
427
|
+
credentials: credentials,
|
|
428
|
+
geoColumn: geoColumn,
|
|
429
|
+
columns: columns,
|
|
430
|
+
format: format,
|
|
431
|
+
schema: false
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
case 4:
|
|
435
|
+
layerData = _context5.sent;
|
|
436
|
+
return _context5.abrupt("return", layerData.data);
|
|
437
|
+
|
|
438
|
+
case 6:
|
|
439
|
+
case "end":
|
|
440
|
+
return _context5.stop();
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}, _callee5);
|
|
444
|
+
}));
|
|
445
|
+
return _getData.apply(this, arguments);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
function _fetchMapDataset(_x6, _x7) {
|
|
449
|
+
return _fetchMapDataset2.apply(this, arguments);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
function _fetchMapDataset2() {
|
|
453
|
+
_fetchMapDataset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(dataset, accessToken) {
|
|
454
|
+
var connection, source, type, _yield$_fetchDataUrl2, url, mapFormat, cache, data;
|
|
455
|
+
|
|
456
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
457
|
+
while (1) {
|
|
458
|
+
switch (_context6.prev = _context6.next) {
|
|
459
|
+
case 0:
|
|
460
|
+
connection = dataset.connectionName, source = dataset.source, type = dataset.type;
|
|
461
|
+
_context6.next = 3;
|
|
462
|
+
return _fetchDataUrl({
|
|
463
|
+
credentials: {
|
|
464
|
+
accessToken: accessToken
|
|
465
|
+
},
|
|
466
|
+
connection: connection,
|
|
467
|
+
source: source,
|
|
468
|
+
type: type
|
|
469
|
+
});
|
|
470
|
+
|
|
471
|
+
case 3:
|
|
472
|
+
_yield$_fetchDataUrl2 = _context6.sent;
|
|
473
|
+
url = _yield$_fetchDataUrl2.url;
|
|
474
|
+
mapFormat = _yield$_fetchDataUrl2.mapFormat;
|
|
475
|
+
cache = parseInt(new URLSearchParams(url).get('cache'), 10);
|
|
476
|
+
|
|
477
|
+
if (!(cache && dataset.cache === cache)) {
|
|
478
|
+
_context6.next = 9;
|
|
479
|
+
break;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
return _context6.abrupt("return", false);
|
|
483
|
+
|
|
484
|
+
case 9:
|
|
485
|
+
dataset.cache = cache;
|
|
486
|
+
_context6.next = 12;
|
|
307
487
|
return request({
|
|
308
488
|
url: url,
|
|
309
489
|
format: mapFormat,
|
|
310
490
|
accessToken: accessToken
|
|
311
491
|
});
|
|
312
492
|
|
|
313
|
-
case
|
|
314
|
-
|
|
493
|
+
case 12:
|
|
494
|
+
data = _context6.sent;
|
|
495
|
+
dataset.data = data;
|
|
496
|
+
return _context6.abrupt("return", true);
|
|
315
497
|
|
|
316
|
-
case
|
|
498
|
+
case 15:
|
|
317
499
|
case "end":
|
|
318
|
-
return
|
|
500
|
+
return _context6.stop();
|
|
319
501
|
}
|
|
320
502
|
}
|
|
321
|
-
},
|
|
503
|
+
}, _callee6);
|
|
322
504
|
}));
|
|
323
|
-
return
|
|
505
|
+
return _fetchMapDataset2.apply(this, arguments);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
function fillInMapDatasets(_x8) {
|
|
509
|
+
return _fillInMapDatasets.apply(this, arguments);
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
function _fillInMapDatasets() {
|
|
513
|
+
_fillInMapDatasets = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(_ref9) {
|
|
514
|
+
var datasets, publicToken, promises;
|
|
515
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
516
|
+
while (1) {
|
|
517
|
+
switch (_context7.prev = _context7.next) {
|
|
518
|
+
case 0:
|
|
519
|
+
datasets = _ref9.datasets, publicToken = _ref9.publicToken;
|
|
520
|
+
promises = datasets.map(function (dataset) {
|
|
521
|
+
return _fetchMapDataset(dataset, publicToken);
|
|
522
|
+
});
|
|
523
|
+
_context7.next = 4;
|
|
524
|
+
return Promise.all(promises);
|
|
525
|
+
|
|
526
|
+
case 4:
|
|
527
|
+
return _context7.abrupt("return", _context7.sent);
|
|
528
|
+
|
|
529
|
+
case 5:
|
|
530
|
+
case "end":
|
|
531
|
+
return _context7.stop();
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}, _callee7);
|
|
535
|
+
}));
|
|
536
|
+
return _fillInMapDatasets.apply(this, arguments);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
function fetchMap(_x9) {
|
|
540
|
+
return _fetchMap.apply(this, arguments);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
function _fetchMap() {
|
|
544
|
+
_fetchMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(_ref10) {
|
|
545
|
+
var mapId, credentials, autoRefresh, onNewData, localCreds, url, map;
|
|
546
|
+
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
547
|
+
while (1) {
|
|
548
|
+
switch (_context9.prev = _context9.next) {
|
|
549
|
+
case 0:
|
|
550
|
+
mapId = _ref10.mapId, credentials = _ref10.credentials, autoRefresh = _ref10.autoRefresh, onNewData = _ref10.onNewData;
|
|
551
|
+
localCreds = _objectSpread(_objectSpread({}, (0, _config.getDefaultCredentials)()), credentials);
|
|
552
|
+
|
|
553
|
+
_core.log.assert(mapId, 'Must define map id');
|
|
554
|
+
|
|
555
|
+
_core.log.assert(localCreds.apiVersion === _mapsApiCommon.API_VERSIONS.V3, 'Method only available for v3');
|
|
556
|
+
|
|
557
|
+
_core.log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
|
|
558
|
+
|
|
559
|
+
if (!localCreds.mapsUrl) {
|
|
560
|
+
localCreds.mapsUrl = (0, _config.buildMapsUrlFromBase)(localCreds.apiBaseUrl);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
if (autoRefresh || onNewData) {
|
|
564
|
+
_core.log.assert(onNewData, 'Must define `onNewData` when using autoRefresh');
|
|
565
|
+
|
|
566
|
+
_core.log.assert(typeof onNewData === 'function', '`onNewData` must be a function');
|
|
567
|
+
|
|
568
|
+
_core.log.assert(autoRefresh > 0, '`autoRefresh` must be a positive number');
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
url = "".concat(localCreds.mapsUrl, "/public/").concat(mapId);
|
|
572
|
+
_context9.next = 10;
|
|
573
|
+
return request({
|
|
574
|
+
url: url
|
|
575
|
+
});
|
|
576
|
+
|
|
577
|
+
case 10:
|
|
578
|
+
map = _context9.sent;
|
|
579
|
+
|
|
580
|
+
if (autoRefresh) {
|
|
581
|
+
setInterval((0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8() {
|
|
582
|
+
var changed;
|
|
583
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
584
|
+
while (1) {
|
|
585
|
+
switch (_context8.prev = _context8.next) {
|
|
586
|
+
case 0:
|
|
587
|
+
_context8.next = 2;
|
|
588
|
+
return fillInMapDatasets(map);
|
|
589
|
+
|
|
590
|
+
case 2:
|
|
591
|
+
changed = _context8.sent;
|
|
592
|
+
|
|
593
|
+
if (changed.some(function (v) {
|
|
594
|
+
return v === true;
|
|
595
|
+
})) {
|
|
596
|
+
onNewData((0, _parseMap.parseMap)(map));
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
case 4:
|
|
600
|
+
case "end":
|
|
601
|
+
return _context8.stop();
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}, _callee8);
|
|
605
|
+
})), autoRefresh * 1000);
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
_context9.next = 14;
|
|
609
|
+
return fillInMapDatasets(map);
|
|
610
|
+
|
|
611
|
+
case 14:
|
|
612
|
+
return _context9.abrupt("return", (0, _parseMap.parseMap)(map));
|
|
613
|
+
|
|
614
|
+
case 15:
|
|
615
|
+
case "end":
|
|
616
|
+
return _context9.stop();
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}, _callee9);
|
|
620
|
+
}));
|
|
621
|
+
return _fetchMap.apply(this, arguments);
|
|
324
622
|
}
|
|
325
623
|
//# 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","headers","Accept","Authorization","fetch","response","Error","FORMATS","NDJSON","json","ok","dealWithError","error","rows","status","getParameters","type","source","geoColumn","columns","encodedClient","parameters","sourceName","MAP_TYPES","QUERY","push","TABLE","join","mapInstantiation","connection","credentials","baseUrl","mapsUrl","length","JSON","stringify","q","client","getUrlFromMetadata","metadata","m","getData","localCreds","log","assert","apiVersion","API_VERSIONS","V3","apiBaseUrl","mapFormat","prioritizedFormats","GEOJSON","TILEJSON","f"],"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}) {\n const encodedClient = encodeParameter('client', 'deck-gl-carto');\n const parameters = [encodedClient];\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}) {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns})}`;\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\nexport async function getData({type, source, connection, credentials, geoColumn, columns, format}) {\n const localCreds = {...getDefaultCredentials(), ...credentials};\n\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 log.assert(localCreds.mapsUrl, 'mapsUrl cannot be undefined');\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 });\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 return await request({url, format: mapFormat, accessToken});\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","checkFetchLayerDataParameters","localCreds","log","assert","apiVersion","API_VERSIONS","V3","apiBaseUrl","fetchLayerData","_fetchDataUrl","mapFormat","data","result","defaultCredentials","prioritizedFormats","GEOJSON","TILEJSON","f","getData","deprecated","layerData","_fetchMapDataset","dataset","connectionName","cache","parseInt","URLSearchParams","get","fillInMapDatasets","datasets","publicToken","promises","map","Promise","all","fetchMap","mapId","autoRefresh","onNewData","setInterval","changed","some","v"],"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 {parseMap} from './parseMap';\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 checkFetchLayerDataParameters({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 // Internally we split data fetching into two parts to allow us to\n // conditionally fetch the actual data, depending on the metadata state\n const {url, accessToken, mapFormat, metadata} = await _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema\n });\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\nasync function _fetchDataUrl({\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 checkFetchLayerDataParameters({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.JSON, 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 return {url, accessToken, mapFormat, metadata};\n}\n\nexport async function getData({type, source, connection, credentials, geoColumn, columns, format}) {\n log.deprecated('getData', 'fetchLayerData')();\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\n/* global setInterval, URLSearchParams */\nasync function _fetchMapDataset(dataset, accessToken) {\n // First fetch metadata\n const {connectionName: connection, source, type} = dataset;\n const {url, mapFormat} = await _fetchDataUrl({\n credentials: {accessToken},\n connection,\n source,\n type\n });\n\n // Extract the last time the data changed\n const cache = parseInt(new URLSearchParams(url).get('cache'), 10);\n if (cache && dataset.cache === cache) {\n return false;\n }\n dataset.cache = cache;\n\n // Only fetch if the data has changed\n const data = await request({url, format: mapFormat, accessToken});\n dataset.data = data;\n return true;\n}\n\nasync function fillInMapDatasets({datasets, publicToken}) {\n const promises = datasets.map(dataset => _fetchMapDataset(dataset, publicToken));\n return await Promise.all(promises);\n}\n\nexport async function fetchMap({mapId, credentials, autoRefresh, onNewData}) {\n const localCreds = {...getDefaultCredentials(), ...credentials};\n\n log.assert(mapId, 'Must define map id');\n\n log.assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n if (autoRefresh || onNewData) {\n log.assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n log.assert(typeof onNewData === 'function', '`onNewData` must be a function');\n log.assert(autoRefresh > 0, '`autoRefresh` must be a positive number');\n }\n\n const url = `${localCreds.mapsUrl}/public/${mapId}`;\n const map = await request({url});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n if (autoRefresh) {\n setInterval(async () => {\n const changed = await fillInMapDatasets(map);\n if (changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n }\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map);\n return parseMap(map);\n}\n"],"file":"maps-v3-client.js"}
|