@lvce-editor/auth-worker 3.16.2 → 3.18.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 +46 -0
- package/package.json +1 -1
package/dist/authWorkerMain.js
CHANGED
|
@@ -3376,6 +3376,50 @@ const refresh = async account => {
|
|
|
3376
3376
|
refreshes.delete(key);
|
|
3377
3377
|
}
|
|
3378
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
|
+
};
|
|
3379
3423
|
const getAccounts = async () => {
|
|
3380
3424
|
const backendUrl = await ensureMigrated();
|
|
3381
3425
|
const registry = await accounts.read();
|
|
@@ -3498,8 +3542,10 @@ const commandMap = {
|
|
|
3498
3542
|
'Auth.configure': configure,
|
|
3499
3543
|
'Auth.consumeNextLoginResponse': consumeNextLoginResponse,
|
|
3500
3544
|
'Auth.consumeNextRefreshResponse': consumeNextRefreshResponse,
|
|
3545
|
+
'Auth.disconnectConnectedAccount': disconnectConnectedAccount,
|
|
3501
3546
|
'Auth.getAccessToken': getAccessToken,
|
|
3502
3547
|
'Auth.getAccounts': getAccounts,
|
|
3548
|
+
'Auth.getConnectedAccounts': getConnectedAccounts,
|
|
3503
3549
|
'Auth.hasPendingMockLoginResponse': hasPendingMockLoginResponse,
|
|
3504
3550
|
'Auth.hasPendingMockRefreshResponse': hasPendingMockRefreshResponse,
|
|
3505
3551
|
'Auth.initialize': initialize,
|