@agentworkforce/deploy 3.0.3 → 3.0.5

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/login.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { DeployIO } from './types.js';
2
2
  /**
3
3
  * Workspace authentication primitives. The CLI layer plugs in real
4
- * implementations that talk to relayauth + the workforce cloud API; the
5
- * deploy package itself stays SDK-free so the contract is easy to mock.
4
+ * implementations that talk to relayauth + the workforce cloud API; this
5
+ * module only resolves the workspace-scoped token needed by deploy modes.
6
6
  */
7
7
  export interface WorkspaceAuth {
8
8
  /** Resolve the active workspace, prompting the user to pick one if needed. */
@@ -20,6 +20,8 @@ export interface WorkspaceAuthToken {
20
20
  }
21
21
  export interface StoredWorkspaceLogin {
22
22
  workspace?: string;
23
+ workspaceSlug?: string;
24
+ workspaceId?: string;
23
25
  token: string;
24
26
  refreshToken?: string;
25
27
  expiresAt?: string;
@@ -39,16 +41,23 @@ export declare function envWorkspaceAuth(): WorkspaceAuth;
39
41
  */
40
42
  export declare function resolveWorkspaceTokenFromEnv(workspace: string): WorkspaceAuthToken;
41
43
  export declare function resolveWorkspaceToken(args: {
42
- workspace: string;
44
+ workspace?: string;
43
45
  cloudUrl: string;
44
46
  io: DeployIO;
45
47
  noPrompt?: boolean;
46
- }): Promise<WorkspaceAuthToken>;
47
- export declare function loadWorkspaceToken(workspace: string): Promise<StoredWorkspaceLogin | null>;
48
+ }): Promise<WorkspaceAuthToken & {
49
+ workspace?: string;
50
+ }>;
51
+ export declare function loadWorkspaceToken(workspace?: string, cloudUrl?: string): Promise<StoredWorkspaceLogin | null>;
52
+ export declare function loadActiveWorkspaceToken(): Promise<StoredWorkspaceLogin | null>;
48
53
  export declare function storeWorkspaceToken(login: StoredWorkspaceLogin): Promise<void>;
49
- export declare function loginWithBrowser(args: {
50
- cloudUrl: string;
51
- workspace: string;
52
- io: DeployIO;
53
- }): Promise<StoredWorkspaceLogin>;
54
+ export declare function writeStoredWorkspaceToken(login: {
55
+ workspaceSlug?: string;
56
+ workspaceId?: string;
57
+ workspace?: string;
58
+ token: string;
59
+ cloudUrl?: string;
60
+ expiresAt?: string;
61
+ }): Promise<void>;
62
+ export declare function clearStoredWorkspaceToken(workspace?: string): Promise<void>;
54
63
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,gBAAgB,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;QACnE,SAAS,EAAE,MAAM,CAAC;QAClB,mEAAmE;QACnE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAwBhD;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,CAQlF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoB9B;AAED,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAYhG;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;CACd,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoFhC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,gBAAgB,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;QACnE,SAAS,EAAE,MAAM,CAAC;QAClB,mEAAmE;QACnE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmBD;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAgChD;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,CAQlF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BvD;AAED,wBAAsB,kBAAkB,CACtC,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAiBtC;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAErF;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;AAED,wBAAsB,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF"}
package/dist/login.js CHANGED
@@ -1,10 +1,11 @@
1
- import { spawn } from 'node:child_process';
2
- import { randomUUID } from 'node:crypto';
3
- import { readFile, mkdir, writeFile } from 'node:fs/promises';
4
- import { createServer } from 'node:http';
5
- import { homedir, platform } from 'node:os';
1
+ import { readFile, mkdir, rm, writeFile } from 'node:fs/promises';
2
+ import { homedir } from 'node:os';
6
3
  import path from 'node:path';
7
- const LOGIN_FILE = path.join(homedir(), '.agentworkforce', 'login.json');
4
+ import { readStoredAuth, refreshStoredAuth, writeStoredAuth } from '@agent-relay/cloud';
5
+ function loginFile() {
6
+ return process.env.WORKFORCE_LOGIN_FILE?.trim()
7
+ || path.join(homedir(), '.agentworkforce', 'login.json');
8
+ }
8
9
  /**
9
10
  * Environment-backed fallback resolver: reads `WORKFORCE_WORKSPACE_ID`
10
11
  * and `WORKFORCE_WORKSPACE_TOKEN` from `process.env`. Useful in CI and as
@@ -19,15 +20,21 @@ export function envWorkspaceAuth() {
19
20
  // error here.
20
21
  const workspace = (override ?? process.env.WORKFORCE_WORKSPACE_ID ?? '').trim();
21
22
  const token = (process.env.WORKFORCE_WORKSPACE_TOKEN ?? '').trim();
23
+ if (workspace && token) {
24
+ return { workspace, token };
25
+ }
26
+ const stored = await loadWorkspaceToken(workspace || undefined);
27
+ if (stored) {
28
+ const storedWorkspace = storedWorkspaceName(stored);
29
+ if (storedWorkspace)
30
+ return { workspace: storedWorkspace, token: stored.token };
31
+ }
22
32
  if (!workspace) {
23
- io.error('no workspace resolved: pass --workspace, set WORKFORCE_WORKSPACE_ID, or run `workforce login`');
33
+ io.error('no workspace resolved: pass --workspace, set WORKFORCE_WORKSPACE_ID + WORKFORCE_WORKSPACE_TOKEN, or run `agentworkforce login`');
24
34
  throw new Error('workspace is required for deploy');
25
35
  }
26
- if (!token) {
27
- io.error('no workspace token resolved: set WORKFORCE_WORKSPACE_TOKEN, or run `workforce login` to mint one');
28
- throw new Error('workspace token is required for deploy');
29
- }
30
- return { workspace, token };
36
+ io.error(`no workspace token resolved for ${workspace}: set WORKFORCE_WORKSPACE_TOKEN, or run \`agentworkforce login\``);
37
+ throw new Error('workspace token is required for deploy');
31
38
  }
32
39
  };
33
40
  }
@@ -45,184 +52,154 @@ export function resolveWorkspaceTokenFromEnv(workspace) {
45
52
  return { token };
46
53
  }
47
54
  export async function resolveWorkspaceToken(args) {
55
+ const envWorkspace = (process.env.WORKFORCE_WORKSPACE_ID ?? '').trim();
48
56
  const fromEnv = (process.env.WORKFORCE_WORKSPACE_TOKEN ?? '').trim();
49
- if (fromEnv)
50
- return { token: fromEnv };
51
- const stored = await loadWorkspaceToken(args.workspace);
52
- if (stored)
53
- return { token: stored.token };
57
+ const requestedWorkspace = (args.workspace ?? '').trim();
58
+ if (fromEnv && (requestedWorkspace || envWorkspace)) {
59
+ return {
60
+ token: fromEnv,
61
+ workspace: requestedWorkspace || envWorkspace
62
+ };
63
+ }
64
+ const stored = await loadWorkspaceToken(requestedWorkspace || undefined, args.cloudUrl);
65
+ if (stored) {
66
+ return {
67
+ token: stored.token,
68
+ ...(storedWorkspaceName(stored) ? { workspace: storedWorkspaceName(stored) } : {})
69
+ };
70
+ }
54
71
  if (args.noPrompt) {
55
- throw new Error(`no workspace token resolved for ${args.workspace}: run \`workforce login\` or set WORKFORCE_WORKSPACE_TOKEN`);
72
+ throw new Error(`no workspace token resolved${requestedWorkspace ? ` for ${requestedWorkspace}` : ''}: run \`agentworkforce login\` or set WORKFORCE_WORKSPACE_ID + WORKFORCE_WORKSPACE_TOKEN`);
56
73
  }
57
- args.io.info('cloud: no workspace token found; opening workforce login');
58
- const login = await loginWithBrowser({
59
- cloudUrl: args.cloudUrl,
60
- workspace: args.workspace,
61
- io: args.io
62
- });
63
- return { token: login.token };
74
+ args.io.info('cloud: no workspace token found; run `agentworkforce login` to connect this machine');
75
+ throw new Error(`no workspace token resolved${requestedWorkspace ? ` for ${requestedWorkspace}` : ''}: run \`agentworkforce login\` or set WORKFORCE_WORKSPACE_ID + WORKFORCE_WORKSPACE_TOKEN`);
64
76
  }
65
- export async function loadWorkspaceToken(workspace) {
66
- const fromKeychain = await readMacKeychainLogin(workspace);
67
- if (fromKeychain && !isExpired(fromKeychain.expiresAt)) {
68
- return fromKeychain;
77
+ export async function loadWorkspaceToken(workspace, cloudUrl) {
78
+ const fromCloudAuth = await readWorkspaceTokenFromCloudAuth(workspace, cloudUrl);
79
+ if (fromCloudAuth && !isExpired(fromCloudAuth.expiresAt)) {
80
+ return fromCloudAuth;
69
81
  }
70
82
  const fromFile = await readLoginFile();
71
- if (fromFile && workspaceMatches(fromFile, workspace) && !isExpired(fromFile.expiresAt)) {
83
+ if (fromFile
84
+ && workspaceMatches(fromFile, workspace)
85
+ && cloudUrlMatches(fromFile, cloudUrl)
86
+ && !isExpired(fromFile.expiresAt)) {
72
87
  return fromFile;
73
88
  }
74
89
  return null;
75
90
  }
91
+ export async function loadActiveWorkspaceToken() {
92
+ return loadWorkspaceToken(undefined);
93
+ }
76
94
  export async function storeWorkspaceToken(login) {
77
- if (await writeMacKeychainLogin(login))
95
+ if (await writeWorkspaceTokenToCloudAuth(login))
78
96
  return;
79
- await mkdir(path.dirname(LOGIN_FILE), { recursive: true, mode: 0o700 });
80
- await writeFile(LOGIN_FILE, `${JSON.stringify(login, null, 2)}\n`, {
97
+ const file = loginFile();
98
+ await mkdir(path.dirname(file), { recursive: true, mode: 0o700 });
99
+ await writeFile(file, `${JSON.stringify(login, null, 2)}\n`, {
81
100
  encoding: 'utf8',
82
101
  mode: 0o600
83
102
  });
84
103
  }
85
- export async function loginWithBrowser(args) {
86
- const state = randomUUID();
87
- return await new Promise((resolve, reject) => {
88
- let settled = false;
89
- const server = createServer((request, response) => {
90
- const requestUrl = new URL(request.url ?? '/', 'http://127.0.0.1');
91
- if (requestUrl.pathname !== '/callback') {
92
- response.statusCode = 404;
93
- response.end('not found');
94
- return;
95
- }
96
- if (requestUrl.searchParams.get('state') !== state) {
97
- response.statusCode = 400;
98
- response.end('invalid state');
99
- settleError(new Error('login callback returned an invalid state'));
100
- return;
101
- }
102
- const error = requestUrl.searchParams.get('error');
103
- if (error) {
104
- response.statusCode = 400;
105
- response.end('login failed');
106
- settleError(new Error(error));
107
- return;
108
- }
109
- const token = requestUrl.searchParams.get('access_token')?.trim();
110
- const refreshToken = requestUrl.searchParams.get('refresh_token')?.trim() || undefined;
111
- const expiresAt = requestUrl.searchParams.get('access_token_expires_at')?.trim() || undefined;
112
- const cloudUrl = requestUrl.searchParams.get('api_url')?.trim() || args.cloudUrl;
113
- if (!token) {
114
- response.statusCode = 400;
115
- response.end('missing token');
116
- settleError(new Error('login callback did not include a workspace token'));
117
- return;
118
- }
119
- response.statusCode = 200;
120
- response.end('workforce login complete; you can close this tab');
121
- const login = {
122
- workspace: args.workspace,
123
- token,
124
- cloudUrl,
125
- ...(refreshToken ? { refreshToken } : {}),
126
- ...(expiresAt ? { expiresAt } : {})
127
- };
128
- void storeWorkspaceToken(login).finally(() => settle(login));
129
- });
130
- function settle(login) {
131
- if (settled)
132
- return;
133
- settled = true;
134
- server.close();
135
- resolve(login);
136
- }
137
- function settleError(error) {
138
- if (settled)
139
- return;
140
- settled = true;
141
- server.close();
142
- reject(error);
143
- }
144
- server.on('error', settleError);
145
- server.listen(0, '127.0.0.1', () => {
146
- const address = server.address();
147
- if (!address || typeof address === 'string') {
148
- settleError(new Error('failed to start local login callback server'));
149
- return;
150
- }
151
- const callback = new URL('/callback', `http://127.0.0.1:${address.port}`);
152
- const loginUrl = new URL('/cli-auth', args.cloudUrl);
153
- loginUrl.searchParams.set('redirect_uri', callback.toString());
154
- loginUrl.searchParams.set('state', state);
155
- args.io.info(`cloud: login URL ${loginUrl.toString()}`);
156
- tryOpenBrowser(loginUrl.toString());
157
- });
158
- setTimeout(() => settleError(new Error('timed out waiting for workforce login')), 5 * 60_000).unref();
104
+ export async function writeStoredWorkspaceToken(login) {
105
+ const workspace = login.workspace ?? login.workspaceSlug ?? login.workspaceId;
106
+ await storeWorkspaceToken({
107
+ token: login.token,
108
+ ...(workspace ? { workspace } : {}),
109
+ ...(login.workspaceSlug ? { workspaceSlug: login.workspaceSlug } : {}),
110
+ ...(login.workspaceId ? { workspaceId: login.workspaceId } : {}),
111
+ ...(login.cloudUrl ? { cloudUrl: login.cloudUrl } : {}),
112
+ ...(login.expiresAt ? { expiresAt: login.expiresAt } : {})
159
113
  });
160
114
  }
115
+ export async function clearStoredWorkspaceToken(workspace) {
116
+ await clearWorkspaceTokenFromCloudAuth(workspace);
117
+ await rm(loginFile(), { force: true });
118
+ }
161
119
  async function readLoginFile() {
162
- const raw = await readFile(LOGIN_FILE, 'utf8').catch(() => '');
120
+ const raw = await readFile(loginFile(), 'utf8').catch(() => '');
163
121
  if (!raw.trim())
164
122
  return null;
165
123
  return parseStoredLogin(raw);
166
124
  }
167
- async function readMacKeychainLogin(workspace) {
168
- if (platform() !== 'darwin')
125
+ async function readWorkspaceTokenFromCloudAuth(workspace, cloudUrl) {
126
+ if (usesWorkspaceLoginFileOverride())
169
127
  return null;
170
- const serviceNames = [
171
- `agentworkforce:${workspace}`,
172
- `workforce:${workspace}`,
173
- 'agentworkforce',
174
- 'workforce'
175
- ];
176
- for (const service of serviceNames) {
177
- const stdout = await execSecurity(['find-generic-password', '-s', service, '-w']);
178
- const parsed = parseStoredLogin(stdout.trim());
179
- if (parsed && workspaceMatches(parsed, workspace))
180
- return parsed;
181
- if (parsed)
182
- continue;
183
- if (stdout.trim()) {
184
- return {
185
- workspace,
186
- token: stdout.trim()
187
- };
128
+ let auth = await readStoredAuth().catch(() => null);
129
+ if (!auth)
130
+ return null;
131
+ if (isExpired(auth.accessTokenExpiresAt)) {
132
+ try {
133
+ auth = await refreshStoredAuth(auth);
134
+ }
135
+ catch {
136
+ return null;
188
137
  }
189
138
  }
190
- return null;
139
+ const stored = auth;
140
+ const tokens = stored.workforce?.workspaceTokens ?? {};
141
+ const active = stored.workforce?.activeWorkspace;
142
+ const candidates = workspace
143
+ ? [tokens[workspace], ...Object.values(tokens).filter((login) => workspaceMatches(login, workspace))]
144
+ : [active ? tokens[active] : undefined, stored.workforceWorkspaceToken, legacyWorkspaceToken(stored)];
145
+ return candidates.find((login) => Boolean(login)
146
+ && cloudUrlMatches(login, cloudUrl)
147
+ && !isExpired(login.expiresAt)) ?? null;
191
148
  }
192
- async function writeMacKeychainLogin(login) {
193
- if (platform() !== 'darwin')
149
+ async function writeWorkspaceTokenToCloudAuth(login) {
150
+ if (usesWorkspaceLoginFileOverride())
194
151
  return false;
195
- const workspace = login.workspace ?? 'default';
196
- const payload = JSON.stringify(login);
197
- return await execSecurityOk([
198
- 'add-generic-password',
199
- '-U',
200
- '-s',
201
- `agentworkforce:${workspace}`,
202
- '-a',
203
- workspace,
204
- '-w',
205
- payload
206
- ]);
207
- }
208
- function execSecurity(args) {
209
- return new Promise((resolve) => {
210
- const child = spawn('security', args, { stdio: ['ignore', 'pipe', 'ignore'] });
211
- let stdout = '';
212
- child.stdout.setEncoding('utf8');
213
- child.stdout.on('data', (chunk) => {
214
- stdout += chunk;
215
- });
216
- child.on('error', () => resolve(''));
217
- child.on('close', (code) => resolve(code === 0 ? stdout : ''));
152
+ const auth = await readStoredAuth().catch(() => null);
153
+ if (!auth)
154
+ return false;
155
+ const current = auth;
156
+ const tokens = { ...(current.workforce?.workspaceTokens ?? {}) };
157
+ const workspace = storedWorkspaceName(login);
158
+ if (!workspace)
159
+ return false;
160
+ const nextLogin = { ...login, workspace };
161
+ for (const key of [workspace, login.workspaceSlug, login.workspaceId]) {
162
+ if (key)
163
+ tokens[key] = nextLogin;
164
+ }
165
+ await writeStoredAuth({
166
+ ...current,
167
+ workforce: {
168
+ ...(current.workforce ?? {}),
169
+ activeWorkspace: workspace,
170
+ workspaceTokens: tokens
171
+ },
172
+ workforceWorkspaceToken: nextLogin
218
173
  });
174
+ return true;
219
175
  }
220
- function execSecurityOk(args) {
221
- return new Promise((resolve) => {
222
- const child = spawn('security', args, { stdio: 'ignore' });
223
- child.on('error', () => resolve(false));
224
- child.on('close', (code) => resolve(code === 0));
225
- });
176
+ async function clearWorkspaceTokenFromCloudAuth(workspace) {
177
+ if (usesWorkspaceLoginFileOverride())
178
+ return;
179
+ const auth = await readStoredAuth().catch(() => null);
180
+ if (!auth)
181
+ return;
182
+ const current = auth;
183
+ let tokens = { ...(current.workforce?.workspaceTokens ?? {}) };
184
+ const target = workspace?.trim();
185
+ if (target) {
186
+ tokens = Object.fromEntries(Object.entries(tokens).filter(([key, login]) => key !== target && !workspaceMatches(login, target)));
187
+ }
188
+ else {
189
+ tokens = {};
190
+ }
191
+ const next = {
192
+ ...current,
193
+ workforce: {
194
+ ...(current.workforce ?? {}),
195
+ workspaceTokens: tokens
196
+ }
197
+ };
198
+ if (!target || current.workforce?.activeWorkspace === target) {
199
+ delete next.workforce?.activeWorkspace;
200
+ delete next.workforceWorkspaceToken;
201
+ }
202
+ await writeStoredAuth(next);
226
203
  }
227
204
  function parseStoredLogin(raw) {
228
205
  const trimmed = raw.trim();
@@ -245,9 +222,11 @@ function parseStoredLogin(raw) {
245
222
  return null;
246
223
  const workspace = typeof record.workspace === 'string'
247
224
  ? record.workspace
248
- : typeof record.workspaceId === 'string'
249
- ? record.workspaceId
250
- : undefined;
225
+ : typeof record.workspaceSlug === 'string'
226
+ ? record.workspaceSlug
227
+ : typeof record.workspaceId === 'string'
228
+ ? record.workspaceId
229
+ : undefined;
251
230
  const expiresAt = typeof record.expiresAt === 'string'
252
231
  ? record.expiresAt
253
232
  : typeof record.accessTokenExpiresAt === 'string'
@@ -256,6 +235,8 @@ function parseStoredLogin(raw) {
256
235
  return {
257
236
  token: token.trim(),
258
237
  ...(workspace ? { workspace } : {}),
238
+ ...(typeof record.workspaceSlug === 'string' ? { workspaceSlug: record.workspaceSlug } : {}),
239
+ ...(typeof record.workspaceId === 'string' ? { workspaceId: record.workspaceId } : {}),
259
240
  ...(typeof record.refreshToken === 'string' ? { refreshToken: record.refreshToken } : {}),
260
241
  ...(expiresAt ? { expiresAt } : {}),
261
242
  ...(typeof record.cloudUrl === 'string' ? { cloudUrl: record.cloudUrl } : {})
@@ -265,8 +246,30 @@ function parseStoredLogin(raw) {
265
246
  return null;
266
247
  }
267
248
  }
249
+ function legacyWorkspaceToken(auth) {
250
+ const token = auth.workspaceToken;
251
+ if (!token)
252
+ return undefined;
253
+ return {
254
+ token,
255
+ ...(auth.workspace ? { workspace: auth.workspace } : {}),
256
+ ...(auth.workspaceSlug ? { workspaceSlug: auth.workspaceSlug } : {}),
257
+ ...(auth.workspaceId ? { workspaceId: auth.workspaceId } : {}),
258
+ cloudUrl: auth.apiUrl
259
+ };
260
+ }
268
261
  function workspaceMatches(login, workspace) {
269
- return !login.workspace || login.workspace === workspace;
262
+ if (!workspace)
263
+ return true;
264
+ return [login.workspace, login.workspaceSlug, login.workspaceId].some((value) => value === workspace);
265
+ }
266
+ function cloudUrlMatches(login, cloudUrl) {
267
+ if (!cloudUrl || !login.cloudUrl)
268
+ return true;
269
+ return normalizeUrl(login.cloudUrl) === normalizeUrl(cloudUrl);
270
+ }
271
+ function storedWorkspaceName(login) {
272
+ return login.workspaceSlug ?? login.workspace ?? login.workspaceId;
270
273
  }
271
274
  function isExpired(expiresAt) {
272
275
  if (!expiresAt)
@@ -274,17 +277,10 @@ function isExpired(expiresAt) {
274
277
  const millis = Date.parse(expiresAt);
275
278
  return Number.isNaN(millis) ? false : millis <= Date.now();
276
279
  }
277
- function tryOpenBrowser(url) {
278
- const command = platform() === 'darwin'
279
- ? 'open'
280
- : platform() === 'win32'
281
- ? 'cmd'
282
- : 'xdg-open';
283
- const args = platform() === 'win32' ? ['/c', 'start', '', url] : [url];
284
- const child = spawn(command, args, { stdio: 'ignore', detached: true });
285
- child.on('error', () => {
286
- // The login URL was already printed; browser launch is best-effort.
287
- });
288
- child.unref();
280
+ function normalizeUrl(url) {
281
+ return url.trim().replace(/\/+$/, '');
282
+ }
283
+ function usesWorkspaceLoginFileOverride() {
284
+ return Boolean(process.env.WORKFORCE_LOGIN_FILE?.trim());
289
285
  }
290
286
  //# sourceMappingURL=login.js.map
package/dist/login.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=login.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.test.d.ts","sourceRoot":"","sources":["../src/login.test.ts"],"names":[],"mappings":""}