@lvce-editor/auth-worker 3.16.1 → 3.17.0
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/authWorkerMain.js +49 -0
- package/package.json +1 -1
package/dist/authWorkerMain.js
CHANGED
|
@@ -2449,6 +2449,9 @@ const getAccountProfile = async (backendUrl, accessToken, fetchFn = fetch) => {
|
|
|
2449
2449
|
throw new Error('The backend did not return an account identity.');
|
|
2450
2450
|
}
|
|
2451
2451
|
return {
|
|
2452
|
+
...(typeof value.avatarUrl === 'string' && {
|
|
2453
|
+
avatarUrl: value.avatarUrl
|
|
2454
|
+
}),
|
|
2452
2455
|
displayName: typeof value.displayName === 'string' ? value.displayName : '',
|
|
2453
2456
|
email: typeof value.email === 'string' ? value.email : '',
|
|
2454
2457
|
id: value.id,
|
|
@@ -3373,6 +3376,50 @@ const refresh = async account => {
|
|
|
3373
3376
|
refreshes.delete(key);
|
|
3374
3377
|
}
|
|
3375
3378
|
};
|
|
3379
|
+
const getConnectedAccountsUrl = backendUrl => new URL('/account/connections', backendUrl);
|
|
3380
|
+
const getConnectedAccountDisconnectUrl = (backendUrl, provider) => new URL(`/account/connections/${encodeURIComponent(provider)}/disconnect`, backendUrl);
|
|
3381
|
+
const getConnectionRequestHeaders = accessToken => {
|
|
3382
|
+
return {
|
|
3383
|
+
Accept: 'application/json',
|
|
3384
|
+
Authorization: `Bearer ${accessToken}`
|
|
3385
|
+
};
|
|
3386
|
+
};
|
|
3387
|
+
const getConnectedAccounts = async () => {
|
|
3388
|
+
const backendUrl = await ensureMigrated();
|
|
3389
|
+
const accessToken = await getAccessToken({
|
|
3390
|
+
refresh: 'if-needed'
|
|
3391
|
+
});
|
|
3392
|
+
if (!accessToken) {
|
|
3393
|
+
return [];
|
|
3394
|
+
}
|
|
3395
|
+
const response = await fetch(getConnectedAccountsUrl(backendUrl), {
|
|
3396
|
+
headers: getConnectionRequestHeaders(accessToken)
|
|
3397
|
+
});
|
|
3398
|
+
if (!response.ok) {
|
|
3399
|
+
throw new Error(`Unable to load connected accounts (${response.status}).`);
|
|
3400
|
+
}
|
|
3401
|
+
const payload = await response.json();
|
|
3402
|
+
if (!payload || typeof payload !== 'object' || !Array.isArray(payload.connections)) {
|
|
3403
|
+
throw new Error('Backend returned invalid connected accounts.');
|
|
3404
|
+
}
|
|
3405
|
+
return payload.connections;
|
|
3406
|
+
};
|
|
3407
|
+
const disconnectConnectedAccount = async provider => {
|
|
3408
|
+
const backendUrl = await ensureMigrated();
|
|
3409
|
+
const accessToken = await getAccessToken({
|
|
3410
|
+
refresh: 'if-needed'
|
|
3411
|
+
});
|
|
3412
|
+
if (!accessToken) {
|
|
3413
|
+
throw new Error('Sign in to disconnect connected accounts.');
|
|
3414
|
+
}
|
|
3415
|
+
const response = await fetch(getConnectedAccountDisconnectUrl(backendUrl, provider), {
|
|
3416
|
+
headers: getConnectionRequestHeaders(accessToken),
|
|
3417
|
+
method: 'POST'
|
|
3418
|
+
});
|
|
3419
|
+
if (!response.ok) {
|
|
3420
|
+
throw new Error(`Unable to disconnect ${provider} (${response.status}).`);
|
|
3421
|
+
}
|
|
3422
|
+
};
|
|
3376
3423
|
const getAccounts = async () => {
|
|
3377
3424
|
const backendUrl = await ensureMigrated();
|
|
3378
3425
|
const registry = await accounts.read();
|
|
@@ -3495,8 +3542,10 @@ const commandMap = {
|
|
|
3495
3542
|
'Auth.configure': configure,
|
|
3496
3543
|
'Auth.consumeNextLoginResponse': consumeNextLoginResponse,
|
|
3497
3544
|
'Auth.consumeNextRefreshResponse': consumeNextRefreshResponse,
|
|
3545
|
+
'Auth.disconnectConnectedAccount': disconnectConnectedAccount,
|
|
3498
3546
|
'Auth.getAccessToken': getAccessToken,
|
|
3499
3547
|
'Auth.getAccounts': getAccounts,
|
|
3548
|
+
'Auth.getConnectedAccounts': getConnectedAccounts,
|
|
3500
3549
|
'Auth.hasPendingMockLoginResponse': hasPendingMockLoginResponse,
|
|
3501
3550
|
'Auth.hasPendingMockRefreshResponse': hasPendingMockRefreshResponse,
|
|
3502
3551
|
'Auth.initialize': initialize,
|