@mapcreator/api 0.0.0-saga.6 → 0.0.0-saga.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.
Potentially problematic release.
This version of @mapcreator/api might be problematic. Click here for more details.
- package/cjs/api/choropleth.d.ts +97 -8
- package/cjs/api/choropleth.d.ts.map +1 -1
- package/cjs/api/choropleth.js +33 -15
- package/cjs/api/choropleth.js.map +1 -1
- package/cjs/api/font.d.ts.map +1 -1
- package/cjs/api/font.js.map +1 -1
- package/cjs/api/geocode.d.ts +10 -0
- package/cjs/api/geocode.d.ts.map +1 -0
- package/cjs/api/geocode.js +9 -0
- package/cjs/api/geocode.js.map +1 -0
- package/cjs/api/insetMap.d.ts.map +1 -1
- package/cjs/api/insetMap.js +3 -5
- package/cjs/api/insetMap.js.map +1 -1
- package/cjs/api/jobRevision.d.ts +1 -1
- package/cjs/api/jobRevision.d.ts.map +1 -1
- package/cjs/api/jobRevision.js +10 -16
- package/cjs/api/jobRevision.js.map +1 -1
- package/cjs/api/mapstyleSet.d.ts +2 -1
- package/cjs/api/mapstyleSet.d.ts.map +1 -1
- package/cjs/api/mapstyleSet.js +9 -0
- package/cjs/api/mapstyleSet.js.map +1 -1
- package/cjs/api/organisation.d.ts +2 -2
- package/cjs/api/organisation.d.ts.map +1 -1
- package/cjs/api/organisation.js +4 -4
- package/cjs/api/organisation.js.map +1 -1
- package/cjs/api/user.d.ts +2 -1
- package/cjs/api/user.d.ts.map +1 -1
- package/cjs/api/user.js +2 -3
- package/cjs/api/user.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/oauth.d.ts +10 -6
- package/cjs/oauth.d.ts.map +1 -1
- package/cjs/oauth.js +30 -199
- package/cjs/oauth.js.map +1 -1
- package/cjs/utils.d.ts.map +1 -1
- package/cjs/utils.js +3 -3
- package/cjs/utils.js.map +1 -1
- package/esm/api/choropleth.d.ts +97 -8
- package/esm/api/choropleth.d.ts.map +1 -1
- package/esm/api/choropleth.js +28 -13
- package/esm/api/choropleth.js.map +1 -1
- package/esm/api/font.d.ts.map +1 -1
- package/esm/api/font.js +1 -1
- package/esm/api/font.js.map +1 -1
- package/esm/api/geocode.d.ts +10 -0
- package/esm/api/geocode.d.ts.map +1 -0
- package/esm/api/geocode.js +6 -0
- package/esm/api/geocode.js.map +1 -0
- package/esm/api/insetMap.d.ts.map +1 -1
- package/esm/api/insetMap.js +4 -6
- package/esm/api/insetMap.js.map +1 -1
- package/esm/api/jobRevision.d.ts +1 -1
- package/esm/api/jobRevision.d.ts.map +1 -1
- package/esm/api/jobRevision.js +10 -16
- package/esm/api/jobRevision.js.map +1 -1
- package/esm/api/mapstyleSet.d.ts +2 -1
- package/esm/api/mapstyleSet.d.ts.map +1 -1
- package/esm/api/mapstyleSet.js +8 -0
- package/esm/api/mapstyleSet.js.map +1 -1
- package/esm/api/organisation.d.ts +2 -2
- package/esm/api/organisation.d.ts.map +1 -1
- package/esm/api/organisation.js +4 -4
- package/esm/api/organisation.js.map +1 -1
- package/esm/api/user.d.ts +2 -1
- package/esm/api/user.d.ts.map +1 -1
- package/esm/api/user.js +2 -3
- package/esm/api/user.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/oauth.d.ts +10 -6
- package/esm/oauth.d.ts.map +1 -1
- package/esm/oauth.js +29 -198
- package/esm/oauth.js.map +1 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +4 -4
- package/esm/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/api/choropleth.ts +177 -46
- package/src/api/font.ts +9 -1
- package/src/api/geocode.ts +17 -0
- package/src/api/insetMap.ts +4 -5
- package/src/api/jobRevision.ts +9 -7
- package/src/api/mapstyleSet.ts +23 -1
- package/src/api/organisation.ts +5 -4
- package/src/api/user.ts +3 -3
- package/src/index.ts +1 -0
- package/src/oauth.ts +31 -255
- package/src/utils.ts +4 -4
package/esm/oauth.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
export let apiHost = '';
|
|
2
2
|
export let token = null;
|
|
3
|
-
let apiClientId = '';
|
|
4
3
|
let callbackUrl = '';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Cleanup of previously used data. The code part can be removed in a while.
|
|
6
|
+
*/
|
|
7
|
+
for (let i = 0; i < window.localStorage.length; ++i) {
|
|
8
|
+
const key = window.localStorage.key(i);
|
|
9
|
+
if (key === null || key === void 0 ? void 0 : key.startsWith('_m4n_')) {
|
|
10
|
+
window.localStorage.removeItem(key);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
12
13
|
/**
|
|
13
14
|
* Setup internal structures to use dummy authentication flow
|
|
14
15
|
*
|
|
@@ -19,9 +20,9 @@ export function initDummyFlow(apiUrl, oauthToken) {
|
|
|
19
20
|
const parts = oauthToken.includes(' ') ? oauthToken.split(' ', 2) : ['Bearer', oauthToken];
|
|
20
21
|
apiHost = apiUrl.replace(/\/+$/, '');
|
|
21
22
|
token = {
|
|
22
|
-
type:
|
|
23
|
+
type: parts[0].toLowerCase().replace(/\b\w/g, c => c.toUpperCase()),
|
|
23
24
|
token: parts[1],
|
|
24
|
-
expires:
|
|
25
|
+
expires: new Date('2100-01-01T01:00:00'),
|
|
25
26
|
toString() {
|
|
26
27
|
return `${this.type} ${this.token}`;
|
|
27
28
|
},
|
|
@@ -31,207 +32,37 @@ export function initDummyFlow(apiUrl, oauthToken) {
|
|
|
31
32
|
* Setup internal structures to use implicit authentication flow
|
|
32
33
|
*
|
|
33
34
|
* @param {string} apiUrl - Full API URL
|
|
34
|
-
* @param {string} clientId - OAuth client id
|
|
35
35
|
* @param {string} [redirectUrl] - Callback URL
|
|
36
|
-
* @param {string[]} [scopes] - A list of required scopes
|
|
37
36
|
*/
|
|
38
|
-
export function initImplicitFlow(apiUrl,
|
|
37
|
+
export function initImplicitFlow(apiUrl, redirectUrl = '') {
|
|
39
38
|
apiHost = apiUrl.replace(/\/+$/, '');
|
|
40
|
-
apiClientId = String(clientId);
|
|
41
39
|
callbackUrl = String(redirectUrl || window.location.href.split('#')[0]);
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (data) {
|
|
47
|
-
try {
|
|
48
|
-
const obj = JSON.parse(data);
|
|
49
|
-
if (typeof obj.type === 'string' &&
|
|
50
|
-
typeof obj.token === 'string' &&
|
|
51
|
-
typeof obj.expires === 'string' &&
|
|
52
|
-
new Date(obj.expires) > new Date()) {
|
|
53
|
-
token = {
|
|
54
|
-
type: titleCase(obj.type),
|
|
55
|
-
token: obj.token,
|
|
56
|
-
expires: new Date(obj.expires),
|
|
57
|
-
toString() {
|
|
58
|
-
return `${this.type} ${this.token}`;
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
window.localStorage.removeItem(key);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
67
|
-
/* */
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
{
|
|
72
|
-
const obj = getAnchorToken();
|
|
73
|
-
if (isAnchorToken(obj)) {
|
|
74
|
-
// We'll not go there if anchor contains error and/or message
|
|
75
|
-
// This means that anchor parameters will be preserved for the next processing
|
|
76
|
-
cleanAnchorParams();
|
|
77
|
-
const expires = new Date(Date.now() + Number(obj.expires_in) * 1000);
|
|
78
|
-
if (isValidState(obj.state) && expires > new Date()) {
|
|
79
|
-
token = {
|
|
80
|
-
type: titleCase(obj.token_type),
|
|
81
|
-
token: obj.access_token,
|
|
82
|
-
expires,
|
|
83
|
-
toString() {
|
|
84
|
-
return `${this.type} ${this.token}`;
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
const key = `${storagePrefix}${storageName}`;
|
|
88
|
-
const data = { type: token.type, token: token.token, expires: expires.toUTCString() };
|
|
89
|
-
window.localStorage.setItem(key, JSON.stringify(data));
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
// TODO: add some logic to handle this
|
|
93
|
-
// throw Error('Invalid state in url');
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (authenticated()) {
|
|
98
|
-
const href = sessionStorage.getItem('redirect-url');
|
|
99
|
-
if (href) {
|
|
100
|
-
sessionStorage.removeItem('redirect-url');
|
|
101
|
-
window.history.replaceState(null, document.title, href);
|
|
102
|
-
}
|
|
40
|
+
const href = sessionStorage.getItem('redirect-url');
|
|
41
|
+
if (href) {
|
|
42
|
+
sessionStorage.removeItem('redirect-url');
|
|
43
|
+
window.history.replaceState(null, document.title, href);
|
|
103
44
|
}
|
|
104
45
|
}
|
|
105
46
|
export async function authenticate() {
|
|
106
47
|
return new Promise(() => {
|
|
107
|
-
if (anchorContainsError()) {
|
|
108
|
-
console.error(getError());
|
|
109
|
-
cleanAnchorParams();
|
|
110
|
-
}
|
|
111
|
-
forget();
|
|
112
48
|
sessionStorage.setItem('redirect-url', window.location.href);
|
|
113
|
-
window.location.assign(
|
|
49
|
+
window.location.assign(`${apiHost}/login?${new URLSearchParams({ redirect_uri: callbackUrl })}`);
|
|
114
50
|
});
|
|
115
51
|
}
|
|
116
|
-
export function
|
|
117
|
-
|
|
118
|
-
|
|
52
|
+
export function getAuthorizationHeaders(method) {
|
|
53
|
+
var _a;
|
|
54
|
+
const cookie = !token && method !== 'GET' && method !== 'HEAD'
|
|
55
|
+
? (_a = document.cookie.split(/ *; */).find(pair => pair.startsWith('XSRF-TOKEN'))) === null || _a === void 0 ? void 0 : _a.split('=')[1]
|
|
56
|
+
: undefined;
|
|
57
|
+
return token
|
|
58
|
+
? { Authorization: token.toString() }
|
|
59
|
+
: cookie
|
|
60
|
+
? { 'X-XSRF-Token': decodeURIComponent(cookie) }
|
|
61
|
+
: undefined;
|
|
119
62
|
}
|
|
120
63
|
export async function logout() {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
method: 'POST',
|
|
124
|
-
headers: {
|
|
125
|
-
Accept: 'application/json',
|
|
126
|
-
Authorization: token.toString(),
|
|
127
|
-
},
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
forget();
|
|
131
|
-
}
|
|
132
|
-
function forget() {
|
|
133
|
-
for (let i = 0; i < window.localStorage.length; ++i) {
|
|
134
|
-
const key = window.localStorage.key(i);
|
|
135
|
-
if (key === null || key === void 0 ? void 0 : key.startsWith(storagePrefix)) {
|
|
136
|
-
window.localStorage.removeItem(key);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
token = null;
|
|
140
|
-
}
|
|
141
|
-
function buildRedirectUrl() {
|
|
142
|
-
const queryParams = new URLSearchParams({
|
|
143
|
-
client_id: apiClientId,
|
|
144
|
-
redirect_uri: callbackUrl,
|
|
145
|
-
response_type: 'token',
|
|
146
|
-
scope: oauthScopes.join(' '),
|
|
147
|
-
state: generateState(),
|
|
64
|
+
return new Promise(() => {
|
|
65
|
+
window.location.assign(`${apiHost}/logout?${new URLSearchParams({ redirect_uri: callbackUrl })}`);
|
|
148
66
|
});
|
|
149
|
-
return `${apiHost}/oauth/authorize?${queryParams}`;
|
|
150
|
-
}
|
|
151
|
-
function getAnchorQuery() {
|
|
152
|
-
return window.location.hash.replace(/^#\/?/, '');
|
|
153
|
-
}
|
|
154
|
-
function getAnchorParams() {
|
|
155
|
-
const query = getAnchorQuery();
|
|
156
|
-
// eslint-disable-next-line @stylistic/padding-line-between-statements,@typescript-eslint/no-unsafe-return
|
|
157
|
-
return Object.fromEntries(query.split('&').map(pair => pair.split('=').map(decodeURIComponent)));
|
|
158
|
-
}
|
|
159
|
-
function getAnchorToken() {
|
|
160
|
-
const params = getAnchorParams();
|
|
161
|
-
return Object.fromEntries(Object.entries(params).filter(([key]) => anchorParams.includes(key)));
|
|
162
|
-
}
|
|
163
|
-
function isAnchorToken(anchorToken) {
|
|
164
|
-
const queryKeys = Object.keys(anchorToken);
|
|
165
|
-
return anchorParams.every(key => queryKeys.includes(key));
|
|
166
|
-
}
|
|
167
|
-
function cleanAnchorParams() {
|
|
168
|
-
const query = window.location.hash.replace(/^#\/?/, '');
|
|
169
|
-
const targets = [...anchorParams, 'error', 'message'];
|
|
170
|
-
const newHash = query
|
|
171
|
-
.split('&')
|
|
172
|
-
.filter(pair => !targets.includes(decodeURIComponent(pair.split('=')[0])))
|
|
173
|
-
.join('&');
|
|
174
|
-
if (newHash) {
|
|
175
|
-
window.location.hash = newHash;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
const { origin, pathname, search } = window.location;
|
|
179
|
-
window.history.replaceState(null, document.title, `${origin}${pathname}${search}`);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
function isValidState(state) {
|
|
183
|
-
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
184
|
-
const found = window.localStorage.getItem(key) != null;
|
|
185
|
-
if (found) {
|
|
186
|
-
window.localStorage.removeItem(key);
|
|
187
|
-
}
|
|
188
|
-
return found;
|
|
189
|
-
}
|
|
190
|
-
function anchorContainsError() {
|
|
191
|
-
return 'error' in getAnchorParams();
|
|
192
|
-
}
|
|
193
|
-
function generateState() {
|
|
194
|
-
// @ts-expect-error TS2365
|
|
195
|
-
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
196
|
-
const state = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, // @ts-expect-error TS2362
|
|
197
|
-
// @ts-expect-error TS2362
|
|
198
|
-
c => (c ^ ((Math.random() * 256) & (0x0f >>> (c >>> 2)))).toString(16));
|
|
199
|
-
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
200
|
-
window.localStorage.setItem(key, `${Date.now()}`);
|
|
201
|
-
return state;
|
|
202
|
-
}
|
|
203
|
-
class OAuthError extends Error {
|
|
204
|
-
constructor(message, error) {
|
|
205
|
-
super(message);
|
|
206
|
-
this.error = String(error);
|
|
207
|
-
}
|
|
208
|
-
toString() {
|
|
209
|
-
let error = this.error;
|
|
210
|
-
if (error.includes('_')) {
|
|
211
|
-
error = error.replace('_', ' ').replace(/^./, c => c.toUpperCase());
|
|
212
|
-
}
|
|
213
|
-
return this.message ? `${error}: ${this.message}` : error;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
function getError() {
|
|
217
|
-
const params = getAnchorParams();
|
|
218
|
-
return params.message
|
|
219
|
-
? new OAuthError(params.message, params.error)
|
|
220
|
-
: new OAuthError(titleCase(params.error), params.error);
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Our goal is to support even obsolete platforms (ES2017+ / Node.js 8.10+).
|
|
224
|
-
* This is a small polyfill for possibly missing method used in our codebase.
|
|
225
|
-
*/
|
|
226
|
-
if (!Object.fromEntries) { // eslint-disable-next-line arrow-body-style
|
|
227
|
-
Object.fromEntries = (entries) => {
|
|
228
|
-
return Array.from(entries).reduce((object, entry) => {
|
|
229
|
-
if (!Array.isArray(entry)) {
|
|
230
|
-
throw new TypeError(`Iterator value ${entry} is not an entry object.`);
|
|
231
|
-
}
|
|
232
|
-
object[`${entry[0]}`] = entry[1];
|
|
233
|
-
return object;
|
|
234
|
-
}, {});
|
|
235
|
-
};
|
|
236
67
|
}
|
|
237
68
|
//# sourceMappingURL=oauth.js.map
|
package/esm/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAExB,MAAM,CAAC,IAAI,KAAK,GAML,IAAI,CAAC;AAEhB,IAAI,WAAW,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|
package/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/esm/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { apiHost, authenticate, token } from './oauth.js';
|
|
1
|
+
import { apiHost, authenticate, getAuthorizationHeaders, token } from './oauth.js';
|
|
2
2
|
export const myUser = 'me';
|
|
3
3
|
export const myOrganisations = 'mine';
|
|
4
4
|
export const lastJobRevision = 'last';
|
|
@@ -130,7 +130,6 @@ export async function request(path, body, extraHeaders, extraOptions) {
|
|
|
130
130
|
}
|
|
131
131
|
function getRequestInit(body, extraHeaders, extraOptions) {
|
|
132
132
|
var _a;
|
|
133
|
-
const authorization = token ? { Authorization: token.toString() } : null;
|
|
134
133
|
let contentType = null;
|
|
135
134
|
if (body !== undefined) {
|
|
136
135
|
switch (true) {
|
|
@@ -154,9 +153,10 @@ function getRequestInit(body, extraHeaders, extraOptions) {
|
|
|
154
153
|
body = JSON.stringify(body);
|
|
155
154
|
}
|
|
156
155
|
}
|
|
157
|
-
const headers = Object.assign(Object.assign(Object.assign({ Accept: 'application/json' }, authorization), contentType), extraHeaders);
|
|
158
156
|
const method = (_a = extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.method) !== null && _a !== void 0 ? _a : (body != null ? 'POST' : 'GET'); // don't touch `!=` please
|
|
159
|
-
|
|
157
|
+
const authorization = getAuthorizationHeaders(method);
|
|
158
|
+
const headers = Object.assign(Object.assign(Object.assign({ Accept: 'application/json' }, authorization), contentType), extraHeaders);
|
|
159
|
+
return Object.assign({ body, headers, method }, !token && { credentials: 'include' });
|
|
160
160
|
}
|
|
161
161
|
export function getContext(revivers, keys = Object.keys(revivers)) {
|
|
162
162
|
return {
|
package/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/api/choropleth.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { type ApiError, type ApiSuccess, Flatten, Revivers, getSearchParams, request } from '../utils.js';
|
|
1
|
+
import { type ApiError, type ApiSuccess, type Flatten, type Revivers, getSearchParams, request } from '../utils.js';
|
|
2
|
+
|
|
3
|
+
import type { RequireAtLeastOne } from 'type-fest';
|
|
2
4
|
import type { Polygon } from 'geojson';
|
|
3
|
-
|
|
5
|
+
|
|
6
|
+
export const boundingBoxRevivers: Revivers<
|
|
7
|
+
{ data: { bounding_box: string } } & Omit<ApiSuccess, 'data'> | ApiError,
|
|
8
|
+
{ boundingBox: Polygon }
|
|
9
|
+
> = {
|
|
10
|
+
boundingBox: (data: { bounding_box: string }) => JSON.parse(data.bounding_box) as Polygon,
|
|
11
|
+
};
|
|
4
12
|
|
|
5
13
|
export type ApiSearchPoint = {
|
|
6
14
|
lat: number;
|
|
@@ -14,23 +22,6 @@ export type ApiSearchBounds = {
|
|
|
14
22
|
max_lng: number;
|
|
15
23
|
};
|
|
16
24
|
|
|
17
|
-
type ApiSingleOrGroupedArea = {
|
|
18
|
-
id: number;
|
|
19
|
-
title: string;
|
|
20
|
-
subtitle: string;
|
|
21
|
-
svg_preview: string;
|
|
22
|
-
bounding_box: string;
|
|
23
|
-
is_group: boolean;
|
|
24
|
-
vector_source: string | null;
|
|
25
|
-
source_layer: string | null;
|
|
26
|
-
feature_id: number | null;
|
|
27
|
-
properties: Record<string, string> | null;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
type ApiSingleOrGroupedAreaArray = {
|
|
31
|
-
data: ApiSingleOrGroupedArea[];
|
|
32
|
-
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
33
|
-
|
|
34
25
|
type SingleOrGroupedAreaBase = {
|
|
35
26
|
id: number;
|
|
36
27
|
title: string;
|
|
@@ -39,47 +30,112 @@ type SingleOrGroupedAreaBase = {
|
|
|
39
30
|
boundingBox: Polygon;
|
|
40
31
|
};
|
|
41
32
|
|
|
42
|
-
type GroupedArea = SingleOrGroupedAreaBase & {
|
|
33
|
+
export type GroupedArea = SingleOrGroupedAreaBase & {
|
|
43
34
|
isGroup: true;
|
|
44
35
|
};
|
|
45
36
|
|
|
46
|
-
type SingleArea = SingleOrGroupedAreaBase & {
|
|
37
|
+
export type SingleArea = SingleOrGroupedAreaBase & {
|
|
47
38
|
isGroup: false;
|
|
39
|
+
properties: Record<string, string>;
|
|
48
40
|
vectorSource: string;
|
|
49
41
|
sourceLayer: string;
|
|
50
42
|
featureId: number;
|
|
51
|
-
properties: Record<string, string>;
|
|
52
43
|
};
|
|
53
44
|
|
|
54
|
-
|
|
45
|
+
type ApiSingleArea = {
|
|
46
|
+
data: {
|
|
47
|
+
id: number;
|
|
48
|
+
title: string;
|
|
49
|
+
subtitle: string;
|
|
50
|
+
svg_preview: string;
|
|
51
|
+
bounding_box: string;
|
|
52
|
+
is_group: false;
|
|
53
|
+
properties: string;
|
|
54
|
+
vector_source: string;
|
|
55
|
+
source_layer: string;
|
|
56
|
+
feature_id: number;
|
|
57
|
+
};
|
|
58
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
59
|
+
|
|
60
|
+
export type ApiSingleAreaData = Flatten<Exclude<ApiSingleArea, ApiError>['data']>;
|
|
61
|
+
|
|
62
|
+
export type ApiSingleAreaArray = {
|
|
63
|
+
data: ApiSingleAreaData[];
|
|
64
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
65
|
+
|
|
66
|
+
type ApiGroupedArea = {
|
|
67
|
+
data: {
|
|
68
|
+
id: number;
|
|
69
|
+
title: string;
|
|
70
|
+
subtitle: string;
|
|
71
|
+
svg_preview: string;
|
|
72
|
+
bounding_box: string;
|
|
73
|
+
is_group: true;
|
|
74
|
+
properties: null;
|
|
75
|
+
vector_source: null;
|
|
76
|
+
source_layer: null;
|
|
77
|
+
feature_id: null;
|
|
78
|
+
};
|
|
79
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
80
|
+
|
|
81
|
+
export type ApiGroupedAreaData = Flatten<Exclude<ApiGroupedArea, ApiError>['data']>;
|
|
82
|
+
|
|
83
|
+
export type ApiGroupedAreaArray = {
|
|
84
|
+
data: ApiGroupedAreaData[];
|
|
85
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
86
|
+
|
|
87
|
+
export const singleAreaRevivers: Revivers<ApiSingleArea, SingleArea> = {
|
|
88
|
+
...boundingBoxRevivers,
|
|
89
|
+
properties: (data: ApiSingleAreaData) =>
|
|
90
|
+
JSON.parse(data.properties) as Record<string, string>,
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const groupedAreaRevivers: Revivers<ApiGroupedArea, GroupedArea> = {
|
|
94
|
+
...boundingBoxRevivers,
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export async function searchSingleAreas(
|
|
98
|
+
language: string,
|
|
99
|
+
search: RequireAtLeastOne<{
|
|
100
|
+
searchBounds: ApiSearchBounds;
|
|
101
|
+
query?: string;
|
|
102
|
+
searchPoint?: ApiSearchPoint;
|
|
103
|
+
}>,
|
|
104
|
+
): Promise<SingleArea[]> {
|
|
105
|
+
const pathname = '/v1/choropleth/polygons/search';
|
|
106
|
+
const query = getSearchParams({
|
|
107
|
+
language,
|
|
108
|
+
...search.searchBounds,
|
|
109
|
+
...(search.query && { query: search.query }),
|
|
110
|
+
...(search.searchPoint && { point: search.searchPoint }),
|
|
111
|
+
mode: 'polygon',
|
|
112
|
+
});
|
|
113
|
+
const path = `${pathname}?${query}`;
|
|
114
|
+
const options = { revivers: singleAreaRevivers };
|
|
115
|
+
|
|
116
|
+
return request<ApiSingleAreaArray, SingleArea>(path, null, null, options);
|
|
117
|
+
}
|
|
55
118
|
|
|
56
|
-
export async function
|
|
119
|
+
export async function searchGroupedAreas(
|
|
57
120
|
language: string,
|
|
58
121
|
search: RequireAtLeastOne<{
|
|
59
122
|
searchBounds: ApiSearchBounds;
|
|
60
123
|
query?: string;
|
|
61
124
|
searchPoint?: ApiSearchPoint;
|
|
62
125
|
}>,
|
|
63
|
-
): Promise<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
).then(result => {
|
|
72
|
-
result.forEach(
|
|
73
|
-
elem => {
|
|
74
|
-
elem.boundingBox = JSON.parse(elem.boundingBox as unknown as string) as Polygon;
|
|
75
|
-
if (!elem.isGroup) {
|
|
76
|
-
elem.properties = JSON.parse(elem.properties as unknown as string) as Record<string, string>;
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
return result;
|
|
126
|
+
): Promise<GroupedArea[]> {
|
|
127
|
+
const pathname = '/v1/choropleth/polygons/search';
|
|
128
|
+
const query = getSearchParams({
|
|
129
|
+
language,
|
|
130
|
+
...search.searchBounds,
|
|
131
|
+
...(search.query && { query: search.query }),
|
|
132
|
+
...(search.searchPoint && { point: search.searchPoint }),
|
|
133
|
+
mode: 'group',
|
|
82
134
|
});
|
|
135
|
+
const path = `${pathname}?${query}`;
|
|
136
|
+
const options = { revivers: groupedAreaRevivers };
|
|
137
|
+
|
|
138
|
+
return request<ApiGroupedAreaArray, GroupedArea>(path, null, null, options);
|
|
83
139
|
}
|
|
84
140
|
|
|
85
141
|
export type GroupedAreaChild = {
|
|
@@ -107,7 +163,7 @@ type ApiGroupedAreaChild = {
|
|
|
107
163
|
export type ApiGroupedAreaChildData = Flatten<Exclude<ApiGroupedAreaChild, ApiError>['data']>;
|
|
108
164
|
|
|
109
165
|
export const groupedAreaChildRevivers: Revivers<ApiGroupedAreaChild, GroupedAreaChild> = {
|
|
110
|
-
|
|
166
|
+
...boundingBoxRevivers,
|
|
111
167
|
properties: (data: ApiGroupedAreaChildData) => JSON.parse(data.properties) as Record<string, string>,
|
|
112
168
|
};
|
|
113
169
|
|
|
@@ -117,9 +173,84 @@ export async function groupedAreaChildren(groupId: number, language: string): Pr
|
|
|
117
173
|
const path = `${pathname}?${query}`;
|
|
118
174
|
const options = { revivers: groupedAreaChildRevivers };
|
|
119
175
|
|
|
120
|
-
type
|
|
176
|
+
type ApiGroupedAreaChildArray = {
|
|
121
177
|
data: ApiGroupedAreaChildData[];
|
|
122
178
|
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
123
179
|
|
|
124
|
-
return request<
|
|
180
|
+
return request<ApiGroupedAreaChildArray, GroupedAreaChild>(path, null, null, options);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export type MatchedGroup = {
|
|
184
|
+
id: number;
|
|
185
|
+
sml: number;
|
|
186
|
+
childrenCount: number;
|
|
187
|
+
matchField: string;
|
|
188
|
+
boundingBox: Polygon;
|
|
189
|
+
property: string;
|
|
190
|
+
name: string;
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
export type ApiMatchedGroup = {
|
|
194
|
+
data: {
|
|
195
|
+
id: number;
|
|
196
|
+
sml: number;
|
|
197
|
+
children_count: number;
|
|
198
|
+
match_field: string;
|
|
199
|
+
bounding_box: string;
|
|
200
|
+
property: string;
|
|
201
|
+
name: string;
|
|
202
|
+
};
|
|
203
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
204
|
+
|
|
205
|
+
export type ApiMatchedGroupData = Flatten<Exclude<ApiMatchedGroup, ApiError>['data']>;
|
|
206
|
+
|
|
207
|
+
export async function getGroupsByDataSample(
|
|
208
|
+
sample: Record<string, string[]>,
|
|
209
|
+
language: string,
|
|
210
|
+
rowCount: number,
|
|
211
|
+
): Promise<MatchedGroup[]> {
|
|
212
|
+
const path = `/v1/choropleth/groups/sample`;
|
|
213
|
+
const options = { revivers: boundingBoxRevivers };
|
|
214
|
+
|
|
215
|
+
type ApiMatchedGroupArray = {
|
|
216
|
+
data: ApiMatchedGroupData[];
|
|
217
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
218
|
+
|
|
219
|
+
return request<ApiMatchedGroupArray, MatchedGroup>(path, { sample, language, row_count: rowCount }, null, options);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export type BoundPolygon = {
|
|
223
|
+
index: number;
|
|
224
|
+
inputName: string;
|
|
225
|
+
id: number;
|
|
226
|
+
sml: number;
|
|
227
|
+
name: string;
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export type ApiBoundPolygon = {
|
|
231
|
+
data: {
|
|
232
|
+
index: number;
|
|
233
|
+
input_name: string;
|
|
234
|
+
id: number;
|
|
235
|
+
sml: number;
|
|
236
|
+
name: string;
|
|
237
|
+
};
|
|
238
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
239
|
+
|
|
240
|
+
export type ApiBoundPolygonData = Flatten<Exclude<ApiBoundPolygon, ApiError>['data']>;
|
|
241
|
+
|
|
242
|
+
export async function getBoundPolygons(
|
|
243
|
+
groupId: number,
|
|
244
|
+
property: string,
|
|
245
|
+
data: string[],
|
|
246
|
+
language: string,
|
|
247
|
+
): Promise<BoundPolygon[]> {
|
|
248
|
+
const path = `/v1/choropleth/groups/bind`;
|
|
249
|
+
const body = { group_id: groupId, property, data, language };
|
|
250
|
+
|
|
251
|
+
type ApiBoundPolygonArray = {
|
|
252
|
+
data: ApiBoundPolygonData[];
|
|
253
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
254
|
+
|
|
255
|
+
return request<ApiBoundPolygonArray, BoundPolygon>(path, body);
|
|
125
256
|
}
|