@mapcreator/api 5.0.0-alpha.37 → 5.0.0-alpha.38
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/cjs/oauth.d.ts +1 -8
- package/cjs/oauth.d.ts.map +1 -1
- package/cjs/oauth.js +4 -210
- package/cjs/oauth.js.map +1 -1
- package/cjs/utils.d.ts.map +1 -1
- package/cjs/utils.js +1 -2
- package/cjs/utils.js.map +1 -1
- package/esm/oauth.d.ts +1 -8
- package/esm/oauth.d.ts.map +1 -1
- package/esm/oauth.js +5 -210
- package/esm/oauth.js.map +1 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +2 -3
- package/esm/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/oauth.ts +5 -275
- package/src/utils.ts +2 -3
package/cjs/oauth.d.ts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
export declare let apiHost: string;
|
|
2
|
-
export declare
|
|
2
|
+
export declare const token: {
|
|
3
3
|
type: string;
|
|
4
4
|
token: string;
|
|
5
5
|
expires: Date;
|
|
6
6
|
toString: () => string;
|
|
7
7
|
} | null;
|
|
8
|
-
/**
|
|
9
|
-
* Setup internal structures to use dummy authentication flow
|
|
10
|
-
*
|
|
11
|
-
* @param {string} apiUrl - Full API URL
|
|
12
|
-
* @param {string} oauthToken - OAuth Token
|
|
13
|
-
*/
|
|
14
|
-
export declare function initDummyFlow(apiUrl: string, oauthToken: string): void;
|
|
15
8
|
/**
|
|
16
9
|
* Setup internal structures to use implicit authentication flow
|
|
17
10
|
*
|
package/cjs/oauth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AACA,eAAO,IAAI,OAAO,QAAK,CAAC;AAExB,eAAO,MAAM,KAAK,EAAE;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;IAEd,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB,GAAG,IAAW,CAAC;AAMhB;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,SAAK,EAAE,MAAM,WAAQ,GAAG,IAAI,CAMzG;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAI5D;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5C"}
|
package/cjs/oauth.js
CHANGED
|
@@ -1,40 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.token = exports.apiHost = void 0;
|
|
4
|
-
exports.initDummyFlow = initDummyFlow;
|
|
5
4
|
exports.initImplicitFlow = initImplicitFlow;
|
|
6
5
|
exports.authenticate = authenticate;
|
|
7
6
|
exports.authenticated = authenticated;
|
|
8
7
|
exports.logout = logout;
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
9
9
|
exports.apiHost = '';
|
|
10
10
|
exports.token = null;
|
|
11
11
|
let apiClientId = '';
|
|
12
12
|
let callbackUrl = '';
|
|
13
13
|
let oauthScopes = ['*'];
|
|
14
|
-
const anchorParams = ['access_token', 'token_type', 'expires_in', 'state'];
|
|
15
|
-
const storagePrefix = '_m4n_';
|
|
16
|
-
const statePrefix = 'oauth_state_';
|
|
17
|
-
const storageName = 'api_token';
|
|
18
|
-
const dummyTokenExpires = new Date('2100-01-01T01:00:00');
|
|
19
|
-
const titleCase = (str) => String(str).toLowerCase().replace(/\b\w/g, c => c.toUpperCase());
|
|
20
|
-
/**
|
|
21
|
-
* Setup internal structures to use dummy authentication flow
|
|
22
|
-
*
|
|
23
|
-
* @param {string} apiUrl - Full API URL
|
|
24
|
-
* @param {string} oauthToken - OAuth Token
|
|
25
|
-
*/
|
|
26
|
-
function initDummyFlow(apiUrl, oauthToken) {
|
|
27
|
-
const parts = oauthToken.includes(' ') ? oauthToken.split(' ', 2) : ['Bearer', oauthToken];
|
|
28
|
-
exports.apiHost = apiUrl.replace(/\/+$/, '');
|
|
29
|
-
exports.token = {
|
|
30
|
-
type: titleCase(parts[0]),
|
|
31
|
-
token: parts[1],
|
|
32
|
-
expires: dummyTokenExpires,
|
|
33
|
-
toString() {
|
|
34
|
-
return `${this.type} ${this.token}`;
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
14
|
/**
|
|
39
15
|
* Setup internal structures to use implicit authentication flow
|
|
40
16
|
*
|
|
@@ -48,198 +24,16 @@ function initImplicitFlow(apiUrl, clientId, redirectUrl = '', scopes = ['*']) {
|
|
|
48
24
|
apiClientId = String(clientId);
|
|
49
25
|
callbackUrl = String(redirectUrl || window.location.href.split('#')[0]);
|
|
50
26
|
oauthScopes = scopes;
|
|
51
|
-
{
|
|
52
|
-
const key = `${storagePrefix}${storageName}`;
|
|
53
|
-
const data = window.localStorage.getItem(key);
|
|
54
|
-
if (data) {
|
|
55
|
-
try {
|
|
56
|
-
const obj = JSON.parse(data);
|
|
57
|
-
if (typeof obj.type === 'string' &&
|
|
58
|
-
typeof obj.token === 'string' &&
|
|
59
|
-
typeof obj.expires === 'string' &&
|
|
60
|
-
new Date(obj.expires) > new Date()) {
|
|
61
|
-
exports.token = {
|
|
62
|
-
type: titleCase(obj.type),
|
|
63
|
-
token: obj.token,
|
|
64
|
-
expires: new Date(obj.expires),
|
|
65
|
-
toString() {
|
|
66
|
-
return `${this.type} ${this.token}`;
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
window.localStorage.removeItem(key);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
/* */
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
{
|
|
80
|
-
const obj = getAnchorToken();
|
|
81
|
-
if (isAnchorToken(obj)) {
|
|
82
|
-
// We'll not go there if anchor contains error and/or message
|
|
83
|
-
// This means that anchor parameters will be preserved for the next processing
|
|
84
|
-
cleanAnchorParams();
|
|
85
|
-
const expires = new Date(Date.now() + Number(obj.expires_in) * 1000);
|
|
86
|
-
if (isValidState(obj.state) && expires > new Date()) {
|
|
87
|
-
exports.token = {
|
|
88
|
-
type: titleCase(obj.token_type),
|
|
89
|
-
token: obj.access_token,
|
|
90
|
-
expires,
|
|
91
|
-
toString() {
|
|
92
|
-
return `${this.type} ${this.token}`;
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
const key = `${storagePrefix}${storageName}`;
|
|
96
|
-
const data = { type: exports.token.type, token: exports.token.token, expires: expires.toUTCString() };
|
|
97
|
-
window.localStorage.setItem(key, JSON.stringify(data));
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
// TODO: add some logic to handle this
|
|
101
|
-
// throw Error('Invalid state in url');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
if (authenticated()) {
|
|
106
|
-
const href = sessionStorage.getItem('redirect-url');
|
|
107
|
-
if (href) {
|
|
108
|
-
sessionStorage.removeItem('redirect-url');
|
|
109
|
-
window.history.replaceState(null, document.title, href);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
27
|
}
|
|
113
28
|
async function authenticate() {
|
|
114
29
|
return new Promise(() => {
|
|
115
|
-
|
|
116
|
-
console.error(getError());
|
|
117
|
-
cleanAnchorParams();
|
|
118
|
-
}
|
|
119
|
-
forget();
|
|
120
|
-
sessionStorage.setItem('redirect-url', window.location.href);
|
|
121
|
-
window.location.assign(buildRedirectUrl());
|
|
30
|
+
window.location.assign(`${exports.apiHost}/login`);
|
|
122
31
|
});
|
|
123
32
|
}
|
|
124
33
|
function authenticated() {
|
|
125
|
-
return
|
|
126
|
-
!!window.localStorage.getItem(`${storagePrefix}${storageName}`));
|
|
34
|
+
return true;
|
|
127
35
|
}
|
|
128
36
|
async function logout() {
|
|
129
|
-
|
|
130
|
-
await fetch(`${exports.apiHost}/oauth/logout`, {
|
|
131
|
-
method: 'POST',
|
|
132
|
-
headers: {
|
|
133
|
-
Accept: 'application/json',
|
|
134
|
-
Authorization: exports.token.toString(),
|
|
135
|
-
},
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
forget();
|
|
139
|
-
}
|
|
140
|
-
function forget() {
|
|
141
|
-
for (let i = 0; i < window.localStorage.length; ++i) {
|
|
142
|
-
const key = window.localStorage.key(i);
|
|
143
|
-
if (key === null || key === void 0 ? void 0 : key.startsWith(storagePrefix)) {
|
|
144
|
-
window.localStorage.removeItem(key);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
exports.token = null;
|
|
148
|
-
}
|
|
149
|
-
function buildRedirectUrl() {
|
|
150
|
-
const queryParams = new URLSearchParams({
|
|
151
|
-
client_id: apiClientId,
|
|
152
|
-
redirect_uri: callbackUrl,
|
|
153
|
-
response_type: 'token',
|
|
154
|
-
scope: oauthScopes.join(' '),
|
|
155
|
-
state: generateState(),
|
|
156
|
-
});
|
|
157
|
-
return `${exports.apiHost}/oauth/authorize?${queryParams}`;
|
|
158
|
-
}
|
|
159
|
-
function getAnchorQuery() {
|
|
160
|
-
return window.location.hash.replace(/^#\/?/, '');
|
|
161
|
-
}
|
|
162
|
-
function getAnchorParams() {
|
|
163
|
-
const query = getAnchorQuery();
|
|
164
|
-
// eslint-disable-next-line @stylistic/padding-line-between-statements,@typescript-eslint/no-unsafe-return
|
|
165
|
-
return Object.fromEntries(query.split('&').map(pair => pair.split('=').map(decodeURIComponent)));
|
|
166
|
-
}
|
|
167
|
-
function getAnchorToken() {
|
|
168
|
-
const params = getAnchorParams();
|
|
169
|
-
return Object.fromEntries(Object.entries(params).filter(([key]) => anchorParams.includes(key)));
|
|
170
|
-
}
|
|
171
|
-
function isAnchorToken(anchorToken) {
|
|
172
|
-
const queryKeys = Object.keys(anchorToken);
|
|
173
|
-
return anchorParams.every(key => queryKeys.includes(key));
|
|
174
|
-
}
|
|
175
|
-
function cleanAnchorParams() {
|
|
176
|
-
const query = window.location.hash.replace(/^#\/?/, '');
|
|
177
|
-
const targets = [...anchorParams, 'error', 'message'];
|
|
178
|
-
const newHash = query
|
|
179
|
-
.split('&')
|
|
180
|
-
.filter(pair => !targets.includes(decodeURIComponent(pair.split('=')[0])))
|
|
181
|
-
.join('&');
|
|
182
|
-
if (newHash) {
|
|
183
|
-
window.location.hash = newHash;
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
const { origin, pathname, search } = window.location;
|
|
187
|
-
window.history.replaceState(null, document.title, `${origin}${pathname}${search}`);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
function isValidState(state) {
|
|
191
|
-
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
192
|
-
const found = window.localStorage.getItem(key) != null;
|
|
193
|
-
if (found) {
|
|
194
|
-
window.localStorage.removeItem(key);
|
|
195
|
-
}
|
|
196
|
-
return found;
|
|
197
|
-
}
|
|
198
|
-
function anchorContainsError() {
|
|
199
|
-
return 'error' in getAnchorParams();
|
|
200
|
-
}
|
|
201
|
-
function generateState() {
|
|
202
|
-
// @ts-expect-error TS2365
|
|
203
|
-
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
204
|
-
const state = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, // @ts-expect-error TS2362
|
|
205
|
-
// @ts-expect-error TS2362
|
|
206
|
-
c => (c ^ ((Math.random() * 256) & (0x0f >>> (c >>> 2)))).toString(16));
|
|
207
|
-
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
208
|
-
window.localStorage.setItem(key, `${Date.now()}`);
|
|
209
|
-
return state;
|
|
210
|
-
}
|
|
211
|
-
class OAuthError extends Error {
|
|
212
|
-
constructor(message, error) {
|
|
213
|
-
super(message);
|
|
214
|
-
this.error = String(error);
|
|
215
|
-
}
|
|
216
|
-
toString() {
|
|
217
|
-
let error = this.error;
|
|
218
|
-
if (error.includes('_')) {
|
|
219
|
-
error = error.replace('_', ' ').replace(/^./, c => c.toUpperCase());
|
|
220
|
-
}
|
|
221
|
-
return this.message ? `${error}: ${this.message}` : error;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
function getError() {
|
|
225
|
-
const params = getAnchorParams();
|
|
226
|
-
return params.message
|
|
227
|
-
? new OAuthError(params.message, params.error)
|
|
228
|
-
: new OAuthError(titleCase(params.error), params.error);
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Our goal is to support even obsolete platforms (ES2017+ / Node.js 8.10+).
|
|
232
|
-
* This is a small polyfill for possibly missing method used in our codebase.
|
|
233
|
-
*/
|
|
234
|
-
if (!Object.fromEntries) { // eslint-disable-next-line arrow-body-style
|
|
235
|
-
Object.fromEntries = (entries) => {
|
|
236
|
-
return Array.from(entries).reduce((object, entry) => {
|
|
237
|
-
if (!Array.isArray(entry)) {
|
|
238
|
-
throw new TypeError(`Iterator value ${entry} is not an entry object.`);
|
|
239
|
-
}
|
|
240
|
-
object[`${entry[0]}`] = entry[1];
|
|
241
|
-
return object;
|
|
242
|
-
}, {});
|
|
243
|
-
};
|
|
37
|
+
//
|
|
244
38
|
}
|
|
245
39
|
//# sourceMappingURL=oauth.js.map
|
package/cjs/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":";;;AAuBA,4CAMC;AAED,oCAIC;AAED,sCAEC;AAED,wBAEC;AA3CD,sDAAsD;AAC3C,QAAA,OAAO,GAAG,EAAE,CAAC;AAEX,QAAA,KAAK,GAMP,IAAI,CAAC;AAEhB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AAExB;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,MAAc,EAAE,QAAgB,EAAE,WAAW,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;IACjG,eAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAErC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,eAAO,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,MAAM;IAC1B,EAAE;AACJ,CAAC"}
|
package/cjs/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/cjs/utils.js
CHANGED
|
@@ -144,7 +144,6 @@ async function request(path, body, extraHeaders, extraOptions) {
|
|
|
144
144
|
}
|
|
145
145
|
function getRequestInit(body, extraHeaders, extraOptions) {
|
|
146
146
|
var _a;
|
|
147
|
-
const authorization = oauth_js_1.token ? { Authorization: oauth_js_1.token.toString() } : null;
|
|
148
147
|
let contentType = null;
|
|
149
148
|
if (body !== undefined) {
|
|
150
149
|
switch (true) {
|
|
@@ -168,7 +167,7 @@ function getRequestInit(body, extraHeaders, extraOptions) {
|
|
|
168
167
|
body = JSON.stringify(body);
|
|
169
168
|
}
|
|
170
169
|
}
|
|
171
|
-
const headers = Object.assign(Object.assign(
|
|
170
|
+
const headers = Object.assign(Object.assign({ Accept: 'application/json' }, contentType), extraHeaders);
|
|
172
171
|
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
|
|
173
172
|
return { body, headers, method };
|
|
174
173
|
}
|
package/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAyDA,0CAuBC;AAwCD,0BA4GC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/esm/oauth.d.ts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
export declare let apiHost: string;
|
|
2
|
-
export declare
|
|
2
|
+
export declare const token: {
|
|
3
3
|
type: string;
|
|
4
4
|
token: string;
|
|
5
5
|
expires: Date;
|
|
6
6
|
toString: () => string;
|
|
7
7
|
} | null;
|
|
8
|
-
/**
|
|
9
|
-
* Setup internal structures to use dummy authentication flow
|
|
10
|
-
*
|
|
11
|
-
* @param {string} apiUrl - Full API URL
|
|
12
|
-
* @param {string} oauthToken - OAuth Token
|
|
13
|
-
*/
|
|
14
|
-
export declare function initDummyFlow(apiUrl: string, oauthToken: string): void;
|
|
15
8
|
/**
|
|
16
9
|
* Setup internal structures to use implicit authentication flow
|
|
17
10
|
*
|
package/esm/oauth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AACA,eAAO,IAAI,OAAO,QAAK,CAAC;AAExB,eAAO,MAAM,KAAK,EAAE;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;IAEd,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB,GAAG,IAAW,CAAC;AAMhB;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,SAAK,EAAE,MAAM,WAAQ,GAAG,IAAI,CAMzG;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAI5D;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5C"}
|
package/esm/oauth.js
CHANGED
|
@@ -1,32 +1,9 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
1
2
|
export let apiHost = '';
|
|
2
|
-
export
|
|
3
|
+
export const token = null;
|
|
3
4
|
let apiClientId = '';
|
|
4
5
|
let callbackUrl = '';
|
|
5
6
|
let oauthScopes = ['*'];
|
|
6
|
-
const anchorParams = ['access_token', 'token_type', 'expires_in', 'state'];
|
|
7
|
-
const storagePrefix = '_m4n_';
|
|
8
|
-
const statePrefix = 'oauth_state_';
|
|
9
|
-
const storageName = 'api_token';
|
|
10
|
-
const dummyTokenExpires = new Date('2100-01-01T01:00:00');
|
|
11
|
-
const titleCase = (str) => String(str).toLowerCase().replace(/\b\w/g, c => c.toUpperCase());
|
|
12
|
-
/**
|
|
13
|
-
* Setup internal structures to use dummy authentication flow
|
|
14
|
-
*
|
|
15
|
-
* @param {string} apiUrl - Full API URL
|
|
16
|
-
* @param {string} oauthToken - OAuth Token
|
|
17
|
-
*/
|
|
18
|
-
export function initDummyFlow(apiUrl, oauthToken) {
|
|
19
|
-
const parts = oauthToken.includes(' ') ? oauthToken.split(' ', 2) : ['Bearer', oauthToken];
|
|
20
|
-
apiHost = apiUrl.replace(/\/+$/, '');
|
|
21
|
-
token = {
|
|
22
|
-
type: titleCase(parts[0]),
|
|
23
|
-
token: parts[1],
|
|
24
|
-
expires: dummyTokenExpires,
|
|
25
|
-
toString() {
|
|
26
|
-
return `${this.type} ${this.token}`;
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
7
|
/**
|
|
31
8
|
* Setup internal structures to use implicit authentication flow
|
|
32
9
|
*
|
|
@@ -40,198 +17,16 @@ export function initImplicitFlow(apiUrl, clientId, redirectUrl = '', scopes = ['
|
|
|
40
17
|
apiClientId = String(clientId);
|
|
41
18
|
callbackUrl = String(redirectUrl || window.location.href.split('#')[0]);
|
|
42
19
|
oauthScopes = scopes;
|
|
43
|
-
{
|
|
44
|
-
const key = `${storagePrefix}${storageName}`;
|
|
45
|
-
const data = window.localStorage.getItem(key);
|
|
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
|
-
}
|
|
103
|
-
}
|
|
104
20
|
}
|
|
105
21
|
export async function authenticate() {
|
|
106
22
|
return new Promise(() => {
|
|
107
|
-
|
|
108
|
-
console.error(getError());
|
|
109
|
-
cleanAnchorParams();
|
|
110
|
-
}
|
|
111
|
-
forget();
|
|
112
|
-
sessionStorage.setItem('redirect-url', window.location.href);
|
|
113
|
-
window.location.assign(buildRedirectUrl());
|
|
23
|
+
window.location.assign(`${apiHost}/login`);
|
|
114
24
|
});
|
|
115
25
|
}
|
|
116
26
|
export function authenticated() {
|
|
117
|
-
return
|
|
118
|
-
!!window.localStorage.getItem(`${storagePrefix}${storageName}`));
|
|
27
|
+
return true;
|
|
119
28
|
}
|
|
120
29
|
export async function logout() {
|
|
121
|
-
|
|
122
|
-
await fetch(`${apiHost}/oauth/logout`, {
|
|
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(),
|
|
148
|
-
});
|
|
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
|
-
};
|
|
30
|
+
//
|
|
236
31
|
}
|
|
237
32
|
//# 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,
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAExB,MAAM,CAAC,MAAM,KAAK,GAMP,IAAI,CAAC;AAEhB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAgB,EAAE,WAAW,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;IACjG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAErC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,EAAE;AACJ,CAAC"}
|
package/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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
|
|
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
|
|
1
|
+
import { apiHost, authenticate } 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,7 +153,7 @@ function getRequestInit(body, extraHeaders, extraOptions) {
|
|
|
154
153
|
body = JSON.stringify(body);
|
|
155
154
|
}
|
|
156
155
|
}
|
|
157
|
-
const headers = Object.assign(Object.assign(
|
|
156
|
+
const headers = Object.assign(Object.assign({ Accept: 'application/json' }, contentType), extraHeaders);
|
|
158
157
|
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
158
|
return { body, headers, method };
|
|
160
159
|
}
|
package/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/oauth.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
1
2
|
export let apiHost = '';
|
|
2
3
|
|
|
3
|
-
export
|
|
4
|
+
export const token: {
|
|
4
5
|
type: string;
|
|
5
6
|
token: string;
|
|
6
7
|
expires: Date;
|
|
@@ -12,44 +13,6 @@ let apiClientId = '';
|
|
|
12
13
|
let callbackUrl = '';
|
|
13
14
|
let oauthScopes = ['*'];
|
|
14
15
|
|
|
15
|
-
const anchorParams = ['access_token', 'token_type', 'expires_in', 'state'];
|
|
16
|
-
|
|
17
|
-
const storagePrefix = '_m4n_';
|
|
18
|
-
const statePrefix = 'oauth_state_';
|
|
19
|
-
const storageName = 'api_token';
|
|
20
|
-
|
|
21
|
-
const dummyTokenExpires = new Date('2100-01-01T01:00:00');
|
|
22
|
-
|
|
23
|
-
interface AnchorToken {
|
|
24
|
-
access_token: string;
|
|
25
|
-
token_type: string;
|
|
26
|
-
expires_in: string;
|
|
27
|
-
state: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const titleCase = (str: unknown): string => String(str).toLowerCase().replace(/\b\w/g, c => c.toUpperCase());
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Setup internal structures to use dummy authentication flow
|
|
34
|
-
*
|
|
35
|
-
* @param {string} apiUrl - Full API URL
|
|
36
|
-
* @param {string} oauthToken - OAuth Token
|
|
37
|
-
*/
|
|
38
|
-
export function initDummyFlow(apiUrl: string, oauthToken: string): void {
|
|
39
|
-
const parts = oauthToken.includes(' ') ? oauthToken.split(' ', 2) : ['Bearer', oauthToken];
|
|
40
|
-
|
|
41
|
-
apiHost = apiUrl.replace(/\/+$/, '');
|
|
42
|
-
token = {
|
|
43
|
-
type: titleCase(parts[0]),
|
|
44
|
-
token: parts[1],
|
|
45
|
-
expires: dummyTokenExpires,
|
|
46
|
-
|
|
47
|
-
toString(): string {
|
|
48
|
-
return `${this.type} ${this.token}`;
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
16
|
/**
|
|
54
17
|
* Setup internal structures to use implicit authentication flow
|
|
55
18
|
*
|
|
@@ -64,251 +27,18 @@ export function initImplicitFlow(apiUrl: string, clientId: string, redirectUrl =
|
|
|
64
27
|
apiClientId = String(clientId);
|
|
65
28
|
callbackUrl = String(redirectUrl || window.location.href.split('#')[0]);
|
|
66
29
|
oauthScopes = scopes;
|
|
67
|
-
|
|
68
|
-
{
|
|
69
|
-
const key = `${storagePrefix}${storageName}`;
|
|
70
|
-
const data = window.localStorage.getItem(key);
|
|
71
|
-
|
|
72
|
-
if (data) {
|
|
73
|
-
try {
|
|
74
|
-
const obj = JSON.parse(data) as { type?: unknown; token?: unknown; expires?: unknown };
|
|
75
|
-
|
|
76
|
-
if (
|
|
77
|
-
typeof obj.type === 'string' &&
|
|
78
|
-
typeof obj.token === 'string' &&
|
|
79
|
-
typeof obj.expires === 'string' &&
|
|
80
|
-
new Date(obj.expires) > new Date()
|
|
81
|
-
) {
|
|
82
|
-
token = {
|
|
83
|
-
type: titleCase(obj.type),
|
|
84
|
-
token: obj.token,
|
|
85
|
-
expires: new Date(obj.expires),
|
|
86
|
-
|
|
87
|
-
toString(): string {
|
|
88
|
-
return `${this.type} ${this.token}`;
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
} else {
|
|
92
|
-
window.localStorage.removeItem(key);
|
|
93
|
-
}
|
|
94
|
-
} catch (e) {
|
|
95
|
-
/* */
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
{
|
|
101
|
-
const obj = getAnchorToken();
|
|
102
|
-
|
|
103
|
-
if (isAnchorToken(obj)) {
|
|
104
|
-
// We'll not go there if anchor contains error and/or message
|
|
105
|
-
// This means that anchor parameters will be preserved for the next processing
|
|
106
|
-
cleanAnchorParams();
|
|
107
|
-
|
|
108
|
-
const expires = new Date(Date.now() + Number(obj.expires_in) * 1000);
|
|
109
|
-
|
|
110
|
-
if (isValidState(obj.state) && expires > new Date()) {
|
|
111
|
-
token = {
|
|
112
|
-
type: titleCase(obj.token_type),
|
|
113
|
-
token: obj.access_token,
|
|
114
|
-
expires,
|
|
115
|
-
|
|
116
|
-
toString(): string {
|
|
117
|
-
return `${this.type} ${this.token}`;
|
|
118
|
-
},
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
const key = `${storagePrefix}${storageName}`;
|
|
122
|
-
const data = { type: token.type, token: token.token, expires: expires.toUTCString() };
|
|
123
|
-
|
|
124
|
-
window.localStorage.setItem(key, JSON.stringify(data));
|
|
125
|
-
} else {
|
|
126
|
-
// TODO: add some logic to handle this
|
|
127
|
-
// throw Error('Invalid state in url');
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (authenticated()) {
|
|
133
|
-
const href = sessionStorage.getItem('redirect-url');
|
|
134
|
-
|
|
135
|
-
if (href) {
|
|
136
|
-
sessionStorage.removeItem('redirect-url');
|
|
137
|
-
window.history.replaceState(null, document.title, href);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
30
|
}
|
|
141
31
|
|
|
142
32
|
export async function authenticate(): Promise<string> | never {
|
|
143
33
|
return new Promise(() => {
|
|
144
|
-
|
|
145
|
-
console.error(getError());
|
|
146
|
-
cleanAnchorParams();
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
forget();
|
|
150
|
-
|
|
151
|
-
sessionStorage.setItem('redirect-url', window.location.href);
|
|
152
|
-
window.location.assign(buildRedirectUrl());
|
|
34
|
+
window.location.assign(`${apiHost}/login`);
|
|
153
35
|
});
|
|
154
36
|
}
|
|
155
37
|
|
|
156
38
|
export function authenticated(): boolean {
|
|
157
|
-
return
|
|
158
|
-
token.expires.valueOf() === dummyTokenExpires.valueOf() ||
|
|
159
|
-
!!window.localStorage.getItem(`${storagePrefix}${storageName}`)
|
|
160
|
-
);
|
|
39
|
+
return true;
|
|
161
40
|
}
|
|
162
41
|
|
|
163
42
|
export async function logout(): Promise<void> {
|
|
164
|
-
|
|
165
|
-
await fetch(`${apiHost}/oauth/logout`, {
|
|
166
|
-
method: 'POST',
|
|
167
|
-
headers: {
|
|
168
|
-
Accept: 'application/json',
|
|
169
|
-
Authorization: token.toString(),
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
forget();
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
function forget(): void {
|
|
178
|
-
for (let i = 0; i < window.localStorage.length; ++i) {
|
|
179
|
-
const key = window.localStorage.key(i);
|
|
180
|
-
|
|
181
|
-
if (key?.startsWith(storagePrefix)) {
|
|
182
|
-
window.localStorage.removeItem(key);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
token = null;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
function buildRedirectUrl(): string {
|
|
190
|
-
const queryParams = new URLSearchParams({
|
|
191
|
-
client_id: apiClientId,
|
|
192
|
-
redirect_uri: callbackUrl,
|
|
193
|
-
response_type: 'token',
|
|
194
|
-
scope: oauthScopes.join(' '),
|
|
195
|
-
state: generateState(),
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
return `${apiHost}/oauth/authorize?${queryParams}`;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
function getAnchorQuery(): string {
|
|
202
|
-
return window.location.hash.replace(/^#\/?/, '');
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
function getAnchorParams(): Record<string, unknown> {
|
|
206
|
-
const query = getAnchorQuery();
|
|
207
|
-
// eslint-disable-next-line @stylistic/padding-line-between-statements,@typescript-eslint/no-unsafe-return
|
|
208
|
-
return Object.fromEntries(query.split('&').map(pair => pair.split('=').map(decodeURIComponent)));
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
function getAnchorToken(): Partial<AnchorToken> {
|
|
212
|
-
const params = getAnchorParams();
|
|
213
|
-
|
|
214
|
-
return Object.fromEntries(Object.entries(params).filter(([key]) => anchorParams.includes(key)));
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
function isAnchorToken(anchorToken: Partial<AnchorToken>): anchorToken is AnchorToken {
|
|
218
|
-
const queryKeys = Object.keys(anchorToken);
|
|
219
|
-
|
|
220
|
-
return anchorParams.every(key => queryKeys.includes(key));
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
function cleanAnchorParams(): void {
|
|
224
|
-
const query = window.location.hash.replace(/^#\/?/, '');
|
|
225
|
-
const targets = [...anchorParams, 'error', 'message'];
|
|
226
|
-
const newHash = query
|
|
227
|
-
.split('&')
|
|
228
|
-
.filter(pair => !targets.includes(decodeURIComponent(pair.split('=')[0])))
|
|
229
|
-
.join('&');
|
|
230
|
-
|
|
231
|
-
if (newHash) {
|
|
232
|
-
window.location.hash = newHash;
|
|
233
|
-
} else {
|
|
234
|
-
const { origin, pathname, search } = window.location;
|
|
235
|
-
|
|
236
|
-
window.history.replaceState(null, document.title, `${origin}${pathname}${search}`);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
function isValidState(state: string): boolean {
|
|
241
|
-
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
242
|
-
const found = window.localStorage.getItem(key) != null;
|
|
243
|
-
|
|
244
|
-
if (found) {
|
|
245
|
-
window.localStorage.removeItem(key);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
return found;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function anchorContainsError(): boolean {
|
|
252
|
-
return 'error' in getAnchorParams();
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
function generateState(): string {
|
|
256
|
-
// @ts-expect-error TS2365
|
|
257
|
-
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
258
|
-
const state = (([1e7] + -1e3 + -4e3 + -8e3 + -1e11) as string).replace(
|
|
259
|
-
/[018]/g, // @ts-expect-error TS2362
|
|
260
|
-
c => (c ^ ((Math.random() * 256) & (0x0f >>> (c >>> 2)))).toString(16),
|
|
261
|
-
);
|
|
262
|
-
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
263
|
-
|
|
264
|
-
window.localStorage.setItem(key, `${Date.now()}`);
|
|
265
|
-
|
|
266
|
-
return state;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
class OAuthError extends Error {
|
|
270
|
-
error: string;
|
|
271
|
-
|
|
272
|
-
constructor(message: string, error: unknown) {
|
|
273
|
-
super(message);
|
|
274
|
-
|
|
275
|
-
this.error = String(error);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
toString(): string {
|
|
279
|
-
let error = this.error;
|
|
280
|
-
|
|
281
|
-
if (error.includes('_')) {
|
|
282
|
-
error = error.replace('_', ' ').replace(/^./, c => c.toUpperCase());
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
return this.message ? `${error}: ${this.message}` : error;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
function getError(): OAuthError {
|
|
290
|
-
const params = getAnchorParams();
|
|
291
|
-
|
|
292
|
-
return params.message
|
|
293
|
-
? new OAuthError(params.message as string, params.error)
|
|
294
|
-
: new OAuthError(titleCase(params.error), params.error);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Our goal is to support even obsolete platforms (ES2017+ / Node.js 8.10+).
|
|
299
|
-
* This is a small polyfill for possibly missing method used in our codebase.
|
|
300
|
-
*/
|
|
301
|
-
if (!Object.fromEntries) { // eslint-disable-next-line arrow-body-style
|
|
302
|
-
Object.fromEntries = <T = never>(entries: Iterable<readonly [string | number, T]>): { [k: string]: T } => {
|
|
303
|
-
return Array.from(entries).reduce<{ [k: string]: T }>(
|
|
304
|
-
(object, entry) => {
|
|
305
|
-
if (!Array.isArray(entry)) {
|
|
306
|
-
throw new TypeError(`Iterator value ${entry as unknown as string} is not an entry object.`);
|
|
307
|
-
}
|
|
308
|
-
object[`${entry[0]}`] = entry[1];
|
|
309
|
-
|
|
310
|
-
return object;
|
|
311
|
-
}, {}
|
|
312
|
-
);
|
|
313
|
-
};
|
|
43
|
+
//
|
|
314
44
|
}
|
package/src/utils.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CamelCasedProperties, SnakeCasedProperties } from 'type-fest';
|
|
2
|
-
import { apiHost, authenticate
|
|
2
|
+
import { apiHost, authenticate } from './oauth.js';
|
|
3
3
|
|
|
4
4
|
export type Flatten<Type> = Type extends Array<infer Item> ? Item : Type;
|
|
5
5
|
|
|
@@ -233,7 +233,6 @@ function getRequestInit<I extends ApiCommon, O extends Record<string, unknown>>(
|
|
|
233
233
|
extraHeaders?: Record<string, string> | null,
|
|
234
234
|
extraOptions?: ExtraOptions<I, O>,
|
|
235
235
|
): RequestInit {
|
|
236
|
-
const authorization = token ? { Authorization: token.toString() } : null;
|
|
237
236
|
let contentType = null as { 'Content-Type': string } | null;
|
|
238
237
|
|
|
239
238
|
if (body !== undefined) {
|
|
@@ -259,7 +258,7 @@ function getRequestInit<I extends ApiCommon, O extends Record<string, unknown>>(
|
|
|
259
258
|
}
|
|
260
259
|
}
|
|
261
260
|
|
|
262
|
-
const headers = { Accept: 'application/json', ...
|
|
261
|
+
const headers = { Accept: 'application/json', ...contentType, ...extraHeaders };
|
|
263
262
|
const method = extraOptions?.method ?? (body != null ? 'POST' : 'GET'); // don't touch `!=` please
|
|
264
263
|
|
|
265
264
|
return { body, headers, method } as RequestInit;
|