@deck.gl/carto 8.6.2 → 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.
- package/dist/dist.dev.js +465 -465
- package/dist/es5/api/index.js +8 -8
- package/dist/es5/api/maps-api-common.js +9 -13
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-client.js +98 -157
- package/dist/es5/api/maps-client.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +192 -307
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/basemap.js +1 -1
- package/dist/es5/basemap.js.map +1 -1
- package/dist/es5/config.js +21 -23
- package/dist/es5/config.js.map +1 -1
- package/dist/es5/index.js +16 -16
- package/dist/es5/layers/carto-bqtiler-layer.js +6 -39
- package/dist/es5/layers/carto-bqtiler-layer.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +132 -211
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/carto-sql-layer.js +6 -39
- package/dist/es5/layers/carto-sql-layer.js.map +1 -1
- package/dist/es5/style/color-bins-style.js +10 -11
- package/dist/es5/style/color-bins-style.js.map +1 -1
- package/dist/es5/style/color-categories-style.js +13 -38
- package/dist/es5/style/color-categories-style.js.map +1 -1
- package/dist/es5/style/color-continuous-style.js +10 -11
- package/dist/es5/style/color-continuous-style.js.map +1 -1
- package/dist/es5/style/palette.js +11 -19
- package/dist/es5/style/palette.js.map +1 -1
- package/dist/es5/style/utils.js +6 -13
- package/dist/es5/style/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,5 @@
|
|
|
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
|
});
|
|
@@ -9,104 +7,64 @@ exports.mapInstantiation = mapInstantiation;
|
|
|
9
7
|
exports.fetchLayerData = fetchLayerData;
|
|
10
8
|
exports.getData = getData;
|
|
11
9
|
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
-
|
|
16
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
-
|
|
18
10
|
var _config = require("../config");
|
|
19
11
|
|
|
20
12
|
var _mapsApiCommon = require("./maps-api-common");
|
|
21
13
|
|
|
22
14
|
var _core = require("@deck.gl/core");
|
|
23
15
|
|
|
24
|
-
|
|
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
|
+
}
|
|
25
33
|
|
|
26
|
-
|
|
34
|
+
if (method === 'POST') {
|
|
35
|
+
headers['Content-Type'] = 'application/json';
|
|
36
|
+
}
|
|
27
37
|
|
|
28
|
-
|
|
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
|
+
}
|
|
29
47
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
48
|
+
if (format === _mapsApiCommon.FORMATS.NDJSON) {
|
|
49
|
+
return response;
|
|
50
|
+
}
|
|
33
51
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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);
|
|
104
|
-
}
|
|
52
|
+
const json = await response.json();
|
|
53
|
+
|
|
54
|
+
if (!response.ok) {
|
|
55
|
+
dealWithError({
|
|
56
|
+
response,
|
|
57
|
+
error: json.error
|
|
58
|
+
});
|
|
59
|
+
}
|
|
105
60
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
error = _ref2.error;
|
|
61
|
+
return json.rows ? json.rows : json;
|
|
62
|
+
}
|
|
109
63
|
|
|
64
|
+
function dealWithError({
|
|
65
|
+
response,
|
|
66
|
+
error
|
|
67
|
+
}) {
|
|
110
68
|
switch (response.status) {
|
|
111
69
|
case 400:
|
|
112
70
|
throw new Error("Bad request. ".concat(error));
|
|
@@ -120,19 +78,20 @@ function dealWithError(_ref2) {
|
|
|
120
78
|
}
|
|
121
79
|
}
|
|
122
80
|
|
|
123
|
-
function getParameters(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
81
|
+
function getParameters({
|
|
82
|
+
type,
|
|
83
|
+
source,
|
|
84
|
+
geoColumn,
|
|
85
|
+
columns,
|
|
86
|
+
schema
|
|
87
|
+
}) {
|
|
88
|
+
const parameters = [(0, _mapsApiCommon.encodeParameter)('client', 'deck-gl-carto')];
|
|
130
89
|
|
|
131
90
|
if (schema) {
|
|
132
91
|
parameters.push((0, _mapsApiCommon.encodeParameter)('schema', true));
|
|
133
92
|
}
|
|
134
93
|
|
|
135
|
-
|
|
94
|
+
const sourceName = type === _mapsApiCommon.MAP_TYPES.QUERY ? 'q' : 'name';
|
|
136
95
|
parameters.push((0, _mapsApiCommon.encodeParameter)(sourceName, source));
|
|
137
96
|
|
|
138
97
|
if (type === _mapsApiCommon.MAP_TYPES.TABLE) {
|
|
@@ -148,73 +107,51 @@ function getParameters(_ref3) {
|
|
|
148
107
|
return parameters.join('&');
|
|
149
108
|
}
|
|
150
109
|
|
|
151
|
-
function mapInstantiation(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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);
|
|
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
|
|
212
126
|
}));
|
|
213
|
-
|
|
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
|
+
}
|
|
145
|
+
|
|
146
|
+
return await request({
|
|
147
|
+
url,
|
|
148
|
+
format,
|
|
149
|
+
accessToken
|
|
150
|
+
});
|
|
214
151
|
}
|
|
215
152
|
|
|
216
153
|
function getUrlFromMetadata(metadata, format) {
|
|
217
|
-
|
|
154
|
+
const m = metadata[format];
|
|
218
155
|
|
|
219
156
|
if (m && !m.error && m.url) {
|
|
220
157
|
return m.url[0];
|
|
@@ -223,12 +160,12 @@ function getUrlFromMetadata(metadata, format) {
|
|
|
223
160
|
return null;
|
|
224
161
|
}
|
|
225
162
|
|
|
226
|
-
function checkGetLayerDataParameters(
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
163
|
+
function checkGetLayerDataParameters({
|
|
164
|
+
type,
|
|
165
|
+
source,
|
|
166
|
+
connection,
|
|
167
|
+
localCreds
|
|
168
|
+
}) {
|
|
232
169
|
_core.log.assert(connection, 'Must define connection');
|
|
233
170
|
|
|
234
171
|
_core.log.assert(type, 'Must define a type');
|
|
@@ -242,152 +179,100 @@ function checkGetLayerDataParameters(_ref5) {
|
|
|
242
179
|
_core.log.assert(localCreds.accessToken, 'Must define an accessToken');
|
|
243
180
|
}
|
|
244
181
|
|
|
245
|
-
function fetchLayerData(
|
|
246
|
-
|
|
247
|
-
|
|
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
|
+
}
|
|
248
206
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
-
}
|
|
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;
|
|
350
233
|
}
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
|
|
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
|
+
}
|
|
355
253
|
|
|
356
|
-
|
|
357
|
-
return _getData.apply(this, arguments);
|
|
254
|
+
return result;
|
|
358
255
|
}
|
|
359
256
|
|
|
360
|
-
function
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
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);
|
|
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;
|
|
392
277
|
}
|
|
393
278
|
//# 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","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":";;;;;;;;;;;;;;;;;AAGA;;AACA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,IAAvB;;SAKeC,O;;;;;uEAAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwBC,YAAAA,MAAxB,QAAwBA,MAAxB,EAAgCC,GAAhC,QAAgCA,GAAhC,EAAqCC,MAArC,QAAqCA,MAArC,EAA6CC,WAA7C,QAA6CA,WAA7C,EAA0DC,IAA1D,QAA0DA,IAA1D;AAGQC,YAAAA,OAHR,GAGkB;AACdC,cAAAA,MAAM,EAAE;AADM,aAHlB;;AAOE,gBAAIH,WAAJ,EAAiB;AACfE,cAAAA,OAAO,CAACE,aAAR,oBAAkCJ,WAAlC;AACD;;AAED,gBAAIH,MAAM,KAAK,MAAf,EAAuB;AACrBK,cAAAA,OAAO,CAAC,cAAD,CAAP,GAA0B,kBAA1B;AACD;;AAbH;AAAA;AAAA,mBAkBqBG,KAAK,CAACP,GAAD,EAAM;AAC1BD,cAAAA,MAAM,EAANA,MAD0B;AAE1BK,cAAAA,OAAO,EAAPA,OAF0B;AAG1BD,cAAAA,IAAI,EAAJA;AAH0B,aAAN,CAlB1B;;AAAA;AAkBIK,YAAAA,QAlBJ;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,kBAwBU,IAAIC,KAAJ,uDAxBV;;AAAA;AAAA,kBA2BMR,MAAM,KAAKS,uBAAQC,MA3BzB;AAAA;AAAA;AAAA;;AAAA,6CA4BWH,QA5BX;;AAAA;AAAA;AAAA,mBA+BqBA,QAAQ,CAACI,IAAT,EA/BrB;;AAAA;AA+BQA,YAAAA,IA/BR;;AAiCE,gBAAI,CAACJ,QAAQ,CAACK,EAAd,EAAkB;AAChBC,cAAAA,aAAa,CAAC;AAACN,gBAAAA,QAAQ,EAARA,QAAD;AAAWO,gBAAAA,KAAK,EAAEH,IAAI,CAACG;AAAvB,eAAD,CAAb;AACD;;AAnCH,6CAqCSH,IAAI,CAACI,IAAL,GAAYJ,IAAI,CAACI,IAAjB,GAAwBJ,IArCjC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AA2CA,SAASE,aAAT,QAA0C;AAAA,MAAlBN,QAAkB,SAAlBA,QAAkB;AAAA,MAARO,KAAQ,SAARA,KAAQ;;AACxC,UAAQP,QAAQ,CAACS,MAAjB;AACE,SAAK,GAAL;AACE,YAAM,IAAIR,KAAJ,wBAA0BM,KAA1B,EAAN;;AACF,SAAK,GAAL;AACA,SAAK,GAAL;AACE,YAAM,IAAIN,KAAJ,gCAAkCM,KAAlC,EAAN;;AACF;AACE,YAAM,IAAIN,KAAJ,CAAUM,KAAV,CAAN;AAPJ;AASD;;AAKD,SAASG,aAAT,QAAmE;AAAA,MAA3CC,IAA2C,SAA3CA,IAA2C;AAAA,MAArCC,MAAqC,SAArCA,MAAqC;AAAA,MAA7BC,SAA6B,SAA7BA,SAA6B;AAAA,MAAlBC,OAAkB,SAAlBA,OAAkB;AAAA,MAATC,MAAS,SAATA,MAAS;AACjE,MAAMC,UAAU,GAAG,CAAC,oCAAgB,QAAhB,EAA0B,eAA1B,CAAD,CAAnB;;AACA,MAAID,MAAJ,EAAY;AACVC,IAAAA,UAAU,CAACC,IAAX,CAAgB,oCAAgB,QAAhB,EAA0B,IAA1B,CAAhB;AACD;;AAED,MAAMC,UAAU,GAAGP,IAAI,KAAKQ,yBAAUC,KAAnB,GAA2B,GAA3B,GAAiC,MAApD;AACAJ,EAAAA,UAAU,CAACC,IAAX,CAAgB,oCAAgBC,UAAhB,EAA4BN,MAA5B,CAAhB;;AAEA,MAAID,IAAI,KAAKQ,yBAAUE,KAAvB,EAA8B;AAC5B,QAAIR,SAAJ,EAAe;AACbG,MAAAA,UAAU,CAACC,IAAX,CAAgB,oCAAgB,YAAhB,EAA8BJ,SAA9B,CAAhB;AACD;;AACD,QAAIC,OAAJ,EAAa;AACXE,MAAAA,UAAU,CAACC,IAAX,CAAgB,oCAAgB,SAAhB,EAA2BH,OAAO,CAACQ,IAAR,CAAa,GAAb,CAA3B,CAAhB;AACD;AACF;;AAED,SAAON,UAAU,CAACM,IAAX,CAAgB,GAAhB,CAAP;AACD;;SAEqBC,gB;;;;;gFAAf;AAAA;AAAA;AAAA;AAAA;AAAA;AACLZ,YAAAA,IADK,SACLA,IADK,EAELC,MAFK,SAELA,MAFK,EAGLY,UAHK,SAGLA,UAHK,EAILC,WAJK,SAILA,WAJK,EAKLZ,SALK,SAKLA,SALK,EAMLC,OANK,SAMLA,OANK,EAOLC,MAPK,SAOLA,MAPK;AASCW,YAAAA,OATD,aAScD,WAAW,CAACE,OAT1B,cASqCH,UATrC,cASmDb,IATnD;AAUCnB,YAAAA,GAVD,aAUUkC,OAVV,cAUqBhB,aAAa,CAAC;AAACC,cAAAA,IAAI,EAAJA,IAAD;AAAOC,cAAAA,MAAM,EAANA,MAAP;AAAeC,cAAAA,SAAS,EAATA,SAAf;AAA0BC,cAAAA,OAAO,EAAPA,OAA1B;AAAmCC,cAAAA,MAAM,EAANA;AAAnC,aAAD,CAVlC;AAWErB,YAAAA,WAXF,GAWiB+B,WAXjB,CAWE/B,WAXF;AAaCD,YAAAA,MAbD,GAaU,MAbV;;AAAA,kBAeDD,GAAG,CAACoC,MAAJ,GAAavC,cAAb,IAA+BsB,IAAI,KAAKQ,yBAAUC,KAfjD;AAAA;AAAA;AAAA;;AAiBGzB,YAAAA,IAjBH,GAiBUkC,IAAI,CAACC,SAAL,CAAe;AAC1BC,cAAAA,CAAC,EAAEnB,MADuB;AAE1BoB,cAAAA,MAAM,EAAE;AAFkB,aAAf,CAjBV;AAAA;AAAA,mBAqBU1C,OAAO,CAAC;AAACC,cAAAA,MAAM,EAAE,MAAT;AAAiBC,cAAAA,GAAG,EAAEkC,OAAtB;AAA+BjC,cAAAA,MAAM,EAANA,MAA/B;AAAuCC,cAAAA,WAAW,EAAXA,WAAvC;AAAoDC,cAAAA,IAAI,EAAJA;AAApD,aAAD,CArBjB;;AAAA;AAAA;;AAAA;AAAA;AAAA,mBAwBQL,OAAO,CAAC;AAACE,cAAAA,GAAG,EAAHA,GAAD;AAAMC,cAAAA,MAAM,EAANA,MAAN;AAAcC,cAAAA,WAAW,EAAXA;AAAd,aAAD,CAxBf;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AA2BP,SAASuC,kBAAT,CAA4BC,QAA5B,EAAsCzC,MAAtC,EAA8C;AAC5C,MAAM0C,CAAC,GAAGD,QAAQ,CAACzC,MAAD,CAAlB;;AAEA,MAAI0C,CAAC,IAAI,CAACA,CAAC,CAAC5B,KAAR,IAAiB4B,CAAC,CAAC3C,GAAvB,EAA4B;AAC1B,WAAO2C,CAAC,CAAC3C,GAAF,CAAM,CAAN,CAAP;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAAS4C,2BAAT,QAA6E;AAAA,MAAvCzB,IAAuC,SAAvCA,IAAuC;AAAA,MAAjCC,MAAiC,SAAjCA,MAAiC;AAAA,MAAzBY,UAAyB,SAAzBA,UAAyB;AAAA,MAAba,UAAa,SAAbA,UAAa;;AAC3EC,YAAIC,MAAJ,CAAWf,UAAX,EAAuB,wBAAvB;;AACAc,YAAIC,MAAJ,CAAW5B,IAAX,EAAiB,oBAAjB;;AACA2B,YAAIC,MAAJ,CAAW3B,MAAX,EAAmB,sBAAnB;;AAEA0B,YAAIC,MAAJ,CAAWF,UAAU,CAACG,UAAX,KAA0BC,4BAAaC,EAAlD,EAAsD,8BAAtD;;AACAJ,YAAIC,MAAJ,CAAWF,UAAU,CAACM,UAAtB,EAAkC,wBAAlC;;AACAL,YAAIC,MAAJ,CAAWF,UAAU,CAAC3C,WAAtB,EAAmC,4BAAnC;AACD;;SAEqBkD,c;;;;;8EAAf;AAAA;;AAAA;AAAA;AAAA;AAAA;AACLjC,YAAAA,IADK,SACLA,IADK,EAELC,MAFK,SAELA,MAFK,EAGLY,UAHK,SAGLA,UAHK,EAILC,WAJK,SAILA,WAJK,EAKLZ,SALK,SAKLA,SALK,EAMLC,OANK,SAMLA,OANK,EAOLrB,MAPK,SAOLA,MAPK,EAQLsB,MARK,SAQLA,MARK;AAUC8B,YAAAA,kBAVD,GAUsB,oCAVtB;AAaCR,YAAAA,UAbD,mCAcCQ,kBAAkB,CAACL,UAAnB,KAAkCC,4BAAaC,EAA/C,IAAqDG,kBAdtD,GAeApB,WAfA;AAiBLW,YAAAA,2BAA2B,CAAC;AAACzB,cAAAA,IAAI,EAAJA,IAAD;AAAOC,cAAAA,MAAM,EAANA,MAAP;AAAeY,cAAAA,UAAU,EAAVA,UAAf;AAA2Ba,cAAAA,UAAU,EAAVA;AAA3B,aAAD,CAA3B;;AAEA,gBAAI,CAACA,UAAU,CAACV,OAAhB,EAAyB;AACvBU,cAAAA,UAAU,CAACV,OAAX,GAAqB,kCAAqBU,UAAU,CAACM,UAAhC,CAArB;AACD;;AArBI;AAAA,mBAuBkBpB,gBAAgB,CAAC;AACtCZ,cAAAA,IAAI,EAAJA,IADsC;AAEtCC,cAAAA,MAAM,EAANA,MAFsC;AAGtCY,cAAAA,UAAU,EAAVA,UAHsC;AAItCC,cAAAA,WAAW,EAAEY,UAJyB;AAKtCxB,cAAAA,SAAS,EAATA,SALsC;AAMtCC,cAAAA,OAAO,EAAPA,OANsC;AAOtCC,cAAAA,MAAM,EAANA;AAPsC,aAAD,CAvBlC;;AAAA;AAuBCmB,YAAAA,QAvBD;;AAAA,iBAmCDzC,MAnCC;AAAA;AAAA;AAAA;;AAoCHqD,YAAAA,SAAS,GAAGrD,MAAZ;AACAD,YAAAA,GAAG,GAAGyC,kBAAkB,CAACC,QAAD,EAAWzC,MAAX,CAAxB;;AACA6C,sBAAIC,MAAJ,CAAW/C,GAAX,mBAA0BC,MAA1B;;AAtCG;AAAA;;AAAA;AAyCGsD,YAAAA,kBAzCH,GAyCwB,CAAC7C,uBAAQ8C,OAAT,EAAkB9C,uBAAQC,MAA1B,EAAkCD,uBAAQ+C,QAA1C,CAzCxB;AAAA,0CA0CaF,kBA1Cb;;AAAA;AAAA;AAAA;AAAA;AAAA;;AA0CQG,YAAAA,CA1CR;AA2CD1D,YAAAA,GAAG,GAAGyC,kBAAkB,CAACC,QAAD,EAAWgB,CAAX,CAAxB;;AA3CC,iBA4CG1D,GA5CH;AAAA;AAAA;AAAA;;AA6CCsD,YAAAA,SAAS,GAAGI,CAAZ;AA7CD;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAmDExD,YAAAA,WAnDF,GAmDiB2C,UAnDjB,CAmDE3C,WAnDF;AAAA;AAAA,mBAqDcJ,OAAO,CAAC;AAACE,cAAAA,GAAG,EAAHA,GAAD;AAAMC,cAAAA,MAAM,EAAEqD,SAAd;AAAyBpD,cAAAA,WAAW,EAAXA;AAAzB,aAAD,CArDrB;;AAAA;AAqDCyD,YAAAA,IArDD;AAsDCC,YAAAA,MAtDD,GAsDU;AAACD,cAAAA,IAAI,EAAJA,IAAD;AAAO1D,cAAAA,MAAM,EAAEqD;AAAf,aAtDV;;AAuDL,gBAAI/B,MAAJ,EAAY;AACVqC,cAAAA,MAAM,CAACrC,MAAP,GAAgBmB,QAAQ,CAACnB,MAAzB;AACD;;AAzDI,8CA2DEqC,MA3DF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SA8DeC,O;;;;;uEAAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwB1C,YAAAA,IAAxB,SAAwBA,IAAxB,EAA8BC,MAA9B,SAA8BA,MAA9B,EAAsCY,UAAtC,SAAsCA,UAAtC,EAAkDC,WAAlD,SAAkDA,WAAlD,EAA+DZ,SAA/D,SAA+DA,SAA/D,EAA0EC,OAA1E,SAA0EA,OAA1E,EAAmFrB,MAAnF,SAAmFA,MAAnF;AAAA;AAAA,mBACmBmD,cAAc,CAAC;AACrCjC,cAAAA,IAAI,EAAJA,IADqC;AAErCC,cAAAA,MAAM,EAANA,MAFqC;AAGrCY,cAAAA,UAAU,EAAVA,UAHqC;AAIrCC,cAAAA,WAAW,EAAXA,WAJqC;AAKrCZ,cAAAA,SAAS,EAATA,SALqC;AAMrCC,cAAAA,OAAO,EAAPA,OANqC;AAOrCrB,cAAAA,MAAM,EAANA,MAPqC;AAQrCsB,cAAAA,MAAM,EAAE;AAR6B,aAAD,CADjC;;AAAA;AACCuC,YAAAA,SADD;AAAA,8CAWEA,SAAS,CAACH,IAXZ;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","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","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"}
|
package/dist/es5/basemap.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
7
|
+
const 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'),
|
package/dist/es5/basemap.js.map
CHANGED
|
@@ -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,
|
|
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"}
|