@lvce-editor/auth-worker 3.16.2 → 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.
@@ -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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/auth-worker",
3
- "version": "3.16.2",
3
+ "version": "3.17.0",
4
4
  "description": "Auth Worker",
5
5
  "repository": {
6
6
  "type": "git",