@oml/cli 0.14.2 → 0.14.4
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/out/auth/auth.d.ts +3 -3
- package/out/auth/auth.js +254 -97
- package/out/auth/auth.js.map +1 -1
- package/out/auth/platform.d.ts +1 -1
- package/out/auth/platform.js +4 -26
- package/out/auth/platform.js.map +1 -1
- package/out/cli.js +59 -81
- package/out/cli.js.map +1 -1
- package/out/commands/server/actions.d.ts +3 -3
- package/out/commands/server/actions.js +88 -25
- package/out/commands/server/actions.js.map +1 -1
- package/out/commands/server/require.js +1 -1
- package/out/commands/server/require.js.map +1 -1
- package/out/commands/server/rest.js +103 -28
- package/out/commands/server/rest.js.map +1 -1
- package/package.json +4 -3
- package/src/auth/auth.ts +292 -115
- package/src/auth/platform.ts +4 -30
- package/src/cli.ts +62 -87
- package/src/commands/server/actions.ts +108 -29
- package/src/commands/server/require.ts +1 -1
- package/src/commands/server/rest.ts +119 -29
package/out/auth/auth.d.ts
CHANGED
|
@@ -5,14 +5,14 @@ export type OmlCliServerAuthSnapshot = {
|
|
|
5
5
|
expiresAtMs?: number;
|
|
6
6
|
};
|
|
7
7
|
export declare class OmlCliAuthService {
|
|
8
|
-
login(
|
|
8
|
+
login(_options: LoginOptions): Promise<void>;
|
|
9
9
|
logout(): Promise<void>;
|
|
10
10
|
whoami(): Promise<void>;
|
|
11
11
|
ensureAuthenticated(operationName: string): Promise<void>;
|
|
12
12
|
getAccessToken(): Promise<string>;
|
|
13
13
|
refreshAccessToken(): Promise<string>;
|
|
14
14
|
getServerAuthSnapshot(): Promise<OmlCliServerAuthSnapshot>;
|
|
15
|
-
|
|
16
|
-
private
|
|
15
|
+
private tryGetValidSnapshot;
|
|
16
|
+
private refreshCredential;
|
|
17
17
|
}
|
|
18
18
|
export {};
|
package/out/auth/auth.js
CHANGED
|
@@ -12,119 +12,213 @@ const DEFAULT_GITHUB_CLIENT_ID = 'Ov23liQkHYczdOAvHp5P';
|
|
|
12
12
|
const API_BASE_URL_ENV = 'OML_PLATFORM_API_URL';
|
|
13
13
|
const SUPABASE_URL_ENV = 'OML_SUPABASE_URL';
|
|
14
14
|
const SUPABASE_ANON_KEY_ENV = 'OML_SUPABASE_ANON_KEY';
|
|
15
|
+
const API_KEY_ENV = 'OML_PLATFORM_API_KEY';
|
|
16
|
+
const KEYCHAIN_SERVICE = 'oml-code';
|
|
17
|
+
const ACCESS_TOKEN_KEY = 'oml.cli.access_token';
|
|
18
|
+
const REFRESH_TOKEN_KEY = 'oml.cli.refresh_token';
|
|
19
|
+
const EXPIRES_AT_KEY = 'oml.cli.expires_at';
|
|
20
|
+
const PROFILE_PATH = path.join(os.homedir(), '.oml', 'cli-profile.json');
|
|
21
|
+
const LOCK_PATH = path.join(os.homedir(), '.oml', 'credentials.lock');
|
|
22
|
+
const SESSION_EXPIRATION_LEEWAY_MS = 20000;
|
|
23
|
+
const LOCK_TIMEOUT_MS = 5000;
|
|
24
|
+
const LOCK_POLL_INTERVAL_MS = 200;
|
|
25
|
+
let keytarModulePromise;
|
|
15
26
|
export class OmlCliAuthService {
|
|
16
|
-
async login(
|
|
17
|
-
const
|
|
18
|
-
|
|
27
|
+
async login(_options) {
|
|
28
|
+
const apiKey = process.env[API_KEY_ENV]?.trim();
|
|
29
|
+
if (apiKey) {
|
|
30
|
+
console.error(chalk.yellow('OML_PLATFORM_API_KEY is set and will take precedence over stored OAuth credentials. ' +
|
|
31
|
+
'Unset it to use interactive CLI login.'));
|
|
32
|
+
console.error('Run `oml whoami` to inspect the currently effective authentication mode.');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const existing = await this.tryGetValidSnapshot();
|
|
36
|
+
if (existing) {
|
|
37
|
+
const profile = await readProfile();
|
|
38
|
+
console.error(chalk.green(`Already signed in as ${profile?.userLabel ?? profile?.email ?? profile?.userId ?? 'current user'}.`));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const session = await authenticateWithGitHub();
|
|
42
|
+
await writeCredential({
|
|
43
|
+
accessToken: session.accessToken,
|
|
44
|
+
refreshToken: session.refreshToken,
|
|
45
|
+
expiresAtMs: session.expiresAtMs,
|
|
46
|
+
});
|
|
47
|
+
await writeProfile({
|
|
48
|
+
provider: session.provider,
|
|
49
|
+
userId: session.userId,
|
|
50
|
+
userLabel: session.userLabel,
|
|
51
|
+
email: session.email,
|
|
52
|
+
tier: session.tier,
|
|
53
|
+
signedInAt: new Date().toISOString(),
|
|
54
|
+
});
|
|
19
55
|
const summary = session.userLabel ?? session.email ?? 'signed-in user';
|
|
20
56
|
console.error(chalk.green(`Signed in as ${summary} via ${session.provider}.`));
|
|
21
57
|
}
|
|
22
58
|
async logout() {
|
|
23
|
-
await
|
|
24
|
-
|
|
59
|
+
const activeServers = await listActiveServers();
|
|
60
|
+
await deleteCredential();
|
|
61
|
+
await deleteProfile();
|
|
62
|
+
if (activeServers.length > 0) {
|
|
63
|
+
console.error(chalk.yellow('Stored OAuth credentials were cleared. Running servers were not stopped:'));
|
|
64
|
+
for (const server of activeServers) {
|
|
65
|
+
console.error(`- ${server.workspaceRoot ?? '(unknown workspace)'} on port ${server.port} (pid ${server.pid})`);
|
|
66
|
+
}
|
|
67
|
+
if (process.env[API_KEY_ENV]?.trim()) {
|
|
68
|
+
console.error(chalk.yellow('OML_PLATFORM_API_KEY is still set, so future starts may use API-key auth.'));
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
console.error(chalk.green('Stored OAuth credentials were cleared.'));
|
|
73
|
+
if (process.env[API_KEY_ENV]?.trim()) {
|
|
74
|
+
console.error(chalk.yellow('OML_PLATFORM_API_KEY is still set, so future starts may use API-key auth.'));
|
|
75
|
+
}
|
|
25
76
|
}
|
|
26
77
|
async whoami() {
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
78
|
+
const apiKey = process.env[API_KEY_ENV]?.trim();
|
|
79
|
+
if (apiKey) {
|
|
80
|
+
console.error('Auth mode: api_key');
|
|
81
|
+
console.error('Account: resolved by OML Platform from OML_PLATFORM_API_KEY');
|
|
82
|
+
const profile = await readProfile();
|
|
83
|
+
if (profile) {
|
|
84
|
+
console.error(`Stored OAuth user: ${profile.userLabel ?? profile.email ?? profile.userId}`);
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const credential = await readCredential();
|
|
89
|
+
const profile = await readProfile();
|
|
90
|
+
if (!credential || !profile) {
|
|
29
91
|
console.error(chalk.yellow('Not signed in.'));
|
|
30
92
|
return;
|
|
31
93
|
}
|
|
32
|
-
console.error(
|
|
33
|
-
console.error(`
|
|
34
|
-
console.error(`User
|
|
35
|
-
console.error(`
|
|
36
|
-
console.error(`
|
|
37
|
-
console.error(`
|
|
94
|
+
console.error('Auth mode: oauth');
|
|
95
|
+
console.error(`Provider: ${profile.provider}`);
|
|
96
|
+
console.error(`User ID: ${profile.userId}`);
|
|
97
|
+
console.error(`User label: ${profile.userLabel ?? '(not set)'}`);
|
|
98
|
+
console.error(`Email: ${profile.email ?? '(not set)'}`);
|
|
99
|
+
console.error(`Tier: ${profile.tier ?? '(not set)'}`);
|
|
100
|
+
console.error(`Signed in at: ${profile.signedInAt}`);
|
|
101
|
+
console.error(`Access token expires at: ${new Date(credential.expiresAtMs).toISOString()}`);
|
|
38
102
|
}
|
|
39
103
|
async ensureAuthenticated(operationName) {
|
|
40
|
-
|
|
104
|
+
if (process.env[API_KEY_ENV]?.trim()) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const session = await readCredential();
|
|
41
108
|
if (!session) {
|
|
42
109
|
throw new Error(`${operationName} requires authentication. Run 'oml login' first.`);
|
|
43
110
|
}
|
|
44
111
|
}
|
|
45
112
|
async getAccessToken() {
|
|
46
|
-
const session = await
|
|
47
|
-
if (!session?.accessToken) {
|
|
48
|
-
throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
|
|
49
|
-
}
|
|
113
|
+
const session = await this.getServerAuthSnapshot();
|
|
50
114
|
return session.accessToken;
|
|
51
115
|
}
|
|
52
116
|
async refreshAccessToken() {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
|
|
56
|
-
}
|
|
57
|
-
let refreshed;
|
|
58
|
-
try {
|
|
59
|
-
refreshed = await refreshSupabaseAccessToken(resolveSupabaseUrl(), resolveSupabaseAnonKey(), session.refreshToken);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
throw new Error('Authentication refresh failed. Check your network connection or sign in again with \'oml login\'.');
|
|
63
|
-
}
|
|
64
|
-
const updatedSession = {
|
|
65
|
-
...session,
|
|
66
|
-
accessToken: refreshed.access_token,
|
|
67
|
-
refreshToken: refreshed.refresh_token,
|
|
68
|
-
tokenType: refreshed.token_type,
|
|
69
|
-
expiresIn: refreshed.expires_in,
|
|
70
|
-
email: refreshed.email ?? session.email,
|
|
71
|
-
signedInAt: new Date().toISOString(),
|
|
72
|
-
};
|
|
73
|
-
await writeSession(updatedSession);
|
|
74
|
-
return updatedSession.accessToken;
|
|
117
|
+
const refreshed = await this.refreshCredential();
|
|
118
|
+
return refreshed.accessToken;
|
|
75
119
|
}
|
|
76
120
|
async getServerAuthSnapshot() {
|
|
77
|
-
const session = await
|
|
121
|
+
const session = await readCredential();
|
|
78
122
|
if (!session?.accessToken) {
|
|
79
123
|
throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
|
|
80
124
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
125
|
+
if (Date.now() + SESSION_EXPIRATION_LEEWAY_MS >= session.expiresAtMs) {
|
|
126
|
+
const refreshed = await this.refreshCredential();
|
|
127
|
+
return {
|
|
128
|
+
accessToken: refreshed.accessToken,
|
|
129
|
+
refreshToken: refreshed.refreshToken,
|
|
130
|
+
expiresAtMs: refreshed.expiresAtMs,
|
|
131
|
+
};
|
|
88
132
|
}
|
|
89
133
|
return {
|
|
90
134
|
accessToken: session.accessToken,
|
|
91
135
|
refreshToken: session.refreshToken,
|
|
92
|
-
expiresAtMs,
|
|
136
|
+
expiresAtMs: session.expiresAtMs,
|
|
93
137
|
};
|
|
94
138
|
}
|
|
95
|
-
async
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
139
|
+
async tryGetValidSnapshot() {
|
|
140
|
+
try {
|
|
141
|
+
return await this.getServerAuthSnapshot();
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return null;
|
|
99
145
|
}
|
|
100
|
-
const expiresIn = Math.max(0, Math.round((expiresAtMs - Date.now()) / 1000));
|
|
101
|
-
const updatedSession = {
|
|
102
|
-
...session,
|
|
103
|
-
accessToken,
|
|
104
|
-
refreshToken,
|
|
105
|
-
expiresIn,
|
|
106
|
-
signedInAt: new Date().toISOString(),
|
|
107
|
-
};
|
|
108
|
-
await writeSession(updatedSession);
|
|
109
146
|
}
|
|
110
|
-
async
|
|
111
|
-
|
|
147
|
+
async refreshCredential() {
|
|
148
|
+
const session = await readCredential();
|
|
149
|
+
if (!session?.refreshToken) {
|
|
150
|
+
throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
|
|
151
|
+
}
|
|
152
|
+
const lock = await acquireCredentialLock();
|
|
153
|
+
try {
|
|
154
|
+
const latest = await readCredential();
|
|
155
|
+
if (latest && Date.now() + SESSION_EXPIRATION_LEEWAY_MS < latest.expiresAtMs) {
|
|
156
|
+
return latest;
|
|
157
|
+
}
|
|
158
|
+
const source = latest ?? session;
|
|
159
|
+
const refreshed = await refreshSupabaseAccessToken(resolveSupabaseUrl(), resolveSupabaseAnonKey(), source.refreshToken);
|
|
160
|
+
const updatedSession = {
|
|
161
|
+
accessToken: refreshed.access_token,
|
|
162
|
+
refreshToken: refreshed.refresh_token,
|
|
163
|
+
expiresAtMs: Date.now() + (refreshed.expires_in * 1000),
|
|
164
|
+
};
|
|
165
|
+
await writeCredential(updatedSession);
|
|
166
|
+
const profile = await readProfile();
|
|
167
|
+
if (profile) {
|
|
168
|
+
await writeProfile({
|
|
169
|
+
...profile,
|
|
170
|
+
email: refreshed.email ?? profile.email,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
return updatedSession;
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
if (isUnauthorizedError(error)) {
|
|
177
|
+
await deleteCredential();
|
|
178
|
+
await deleteProfile();
|
|
179
|
+
throw new Error('Authentication refresh failed because the stored credential was revoked. Run \'oml login\' again.');
|
|
180
|
+
}
|
|
181
|
+
throw new Error('Authentication refresh failed. Check your network connection or sign in again with \'oml login\'.');
|
|
182
|
+
}
|
|
183
|
+
finally {
|
|
184
|
+
await lock.release();
|
|
185
|
+
}
|
|
112
186
|
}
|
|
113
187
|
}
|
|
114
|
-
async function
|
|
188
|
+
async function readCredential() {
|
|
189
|
+
const keytar = await getKeytarModule();
|
|
190
|
+
const [accessToken, refreshToken, expiresAtRaw] = await Promise.all([
|
|
191
|
+
keytar.getPassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY),
|
|
192
|
+
keytar.getPassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY),
|
|
193
|
+
keytar.getPassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY),
|
|
194
|
+
]);
|
|
195
|
+
const expiresAtMs = Number(expiresAtRaw ?? NaN);
|
|
196
|
+
if (!accessToken || !refreshToken || !Number.isFinite(expiresAtMs)) {
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
return { accessToken, refreshToken, expiresAtMs };
|
|
200
|
+
}
|
|
201
|
+
async function writeCredential(credential) {
|
|
202
|
+
const keytar = await getKeytarModule();
|
|
203
|
+
await Promise.all([
|
|
204
|
+
keytar.setPassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY, credential.accessToken),
|
|
205
|
+
keytar.setPassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY, credential.refreshToken),
|
|
206
|
+
keytar.setPassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY, String(credential.expiresAtMs)),
|
|
207
|
+
]);
|
|
208
|
+
}
|
|
209
|
+
async function deleteCredential() {
|
|
210
|
+
const keytar = await getKeytarModule();
|
|
211
|
+
await Promise.all([
|
|
212
|
+
keytar.deletePassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY),
|
|
213
|
+
keytar.deletePassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY),
|
|
214
|
+
keytar.deletePassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY),
|
|
215
|
+
]);
|
|
216
|
+
}
|
|
217
|
+
async function readProfile() {
|
|
115
218
|
try {
|
|
116
|
-
const content = await fs.readFile(
|
|
219
|
+
const content = await fs.readFile(PROFILE_PATH, 'utf-8');
|
|
117
220
|
const data = JSON.parse(content);
|
|
118
|
-
if (!data.
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
if (!data.accessToken) {
|
|
122
|
-
return undefined;
|
|
123
|
-
}
|
|
124
|
-
if (!data.refreshToken || !data.tokenType || typeof data.expiresIn !== 'number') {
|
|
125
|
-
return undefined;
|
|
126
|
-
}
|
|
127
|
-
if (data.provider !== 'github') {
|
|
221
|
+
if (!data.provider || !data.userId || !data.signedInAt) {
|
|
128
222
|
return undefined;
|
|
129
223
|
}
|
|
130
224
|
return {
|
|
@@ -133,29 +227,20 @@ async function readSession() {
|
|
|
133
227
|
userLabel: data.userLabel,
|
|
134
228
|
email: data.email ?? null,
|
|
135
229
|
tier: data.tier,
|
|
136
|
-
|
|
137
|
-
refreshToken: data.refreshToken,
|
|
138
|
-
tokenType: data.tokenType,
|
|
139
|
-
expiresIn: data.expiresIn,
|
|
140
|
-
signedInAt: data.signedInAt
|
|
230
|
+
signedInAt: data.signedInAt,
|
|
141
231
|
};
|
|
142
232
|
}
|
|
143
233
|
catch {
|
|
144
234
|
return undefined;
|
|
145
235
|
}
|
|
146
236
|
}
|
|
147
|
-
async function
|
|
148
|
-
|
|
149
|
-
await fs.
|
|
150
|
-
await fs.writeFile(sessionPath, `${JSON.stringify(session, null, 2)}\n`, 'utf-8');
|
|
151
|
-
if (warnAboutPlaintext) {
|
|
152
|
-
process.stderr.write(chalk.yellow(`[oml] Warning: credentials stored in plaintext at ${sessionPath}. ` +
|
|
153
|
-
`A system keychain is not available in this environment.\n`));
|
|
154
|
-
}
|
|
237
|
+
async function writeProfile(profile) {
|
|
238
|
+
await fs.mkdir(path.dirname(PROFILE_PATH), { recursive: true });
|
|
239
|
+
await fs.writeFile(PROFILE_PATH, `${JSON.stringify(profile, null, 2)}\n`, 'utf-8');
|
|
155
240
|
}
|
|
156
|
-
async function
|
|
241
|
+
async function deleteProfile() {
|
|
157
242
|
try {
|
|
158
|
-
await fs.unlink(
|
|
243
|
+
await fs.unlink(PROFILE_PATH);
|
|
159
244
|
}
|
|
160
245
|
catch (error) {
|
|
161
246
|
if (error.code !== 'ENOENT') {
|
|
@@ -163,9 +248,6 @@ async function deleteSession() {
|
|
|
163
248
|
}
|
|
164
249
|
}
|
|
165
250
|
}
|
|
166
|
-
function getSessionPath() {
|
|
167
|
-
return path.join(os.homedir(), '.oml', 'auth.json');
|
|
168
|
-
}
|
|
169
251
|
async function authenticateWithGitHub() {
|
|
170
252
|
const clientId = resolveClientId();
|
|
171
253
|
const params = new URLSearchParams({
|
|
@@ -211,9 +293,7 @@ async function authenticateWithGitHub() {
|
|
|
211
293
|
tier: platformSession.tier,
|
|
212
294
|
accessToken: platformSession.access_token,
|
|
213
295
|
refreshToken: platformSession.refresh_token,
|
|
214
|
-
|
|
215
|
-
expiresIn: platformSession.expires_in,
|
|
216
|
-
signedInAt: new Date().toISOString()
|
|
296
|
+
expiresAtMs: Date.now() + platformSession.expires_in * 1000,
|
|
217
297
|
};
|
|
218
298
|
}
|
|
219
299
|
function printDeviceFlowInstructions(providerName, verificationUri, userCode) {
|
|
@@ -265,6 +345,60 @@ async function pollForGitHubAccessToken(clientId, device) {
|
|
|
265
345
|
throw new Error(token.error_description ?? token.error ?? 'GitHub sign-in failed.');
|
|
266
346
|
}
|
|
267
347
|
}
|
|
348
|
+
async function acquireCredentialLock() {
|
|
349
|
+
await fs.mkdir(path.dirname(LOCK_PATH), { recursive: true });
|
|
350
|
+
const startedAt = Date.now();
|
|
351
|
+
while (Date.now() - startedAt < LOCK_TIMEOUT_MS) {
|
|
352
|
+
try {
|
|
353
|
+
const handle = await fs.open(LOCK_PATH, 'wx');
|
|
354
|
+
return {
|
|
355
|
+
release: async () => {
|
|
356
|
+
await handle.close();
|
|
357
|
+
await fs.rm(LOCK_PATH, { force: true });
|
|
358
|
+
},
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
catch (error) {
|
|
362
|
+
if (error.code !== 'EEXIST') {
|
|
363
|
+
throw error;
|
|
364
|
+
}
|
|
365
|
+
await delay(LOCK_POLL_INTERVAL_MS);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
throw new Error('Timed out waiting for the CLI credential lock.');
|
|
369
|
+
}
|
|
370
|
+
async function listActiveServers() {
|
|
371
|
+
const baseDir = path.join(os.homedir(), '.oml', 'workspaces');
|
|
372
|
+
try {
|
|
373
|
+
const workspaceDirs = await fs.readdir(baseDir);
|
|
374
|
+
const active = [];
|
|
375
|
+
for (const workspaceDir of workspaceDirs) {
|
|
376
|
+
const lockFile = path.join(baseDir, workspaceDir, 'server.lock');
|
|
377
|
+
try {
|
|
378
|
+
const raw = await fs.readFile(lockFile, 'utf-8');
|
|
379
|
+
const parsed = JSON.parse(raw);
|
|
380
|
+
const pid = Number(parsed.pid);
|
|
381
|
+
const port = Number(parsed.port);
|
|
382
|
+
if (!Number.isFinite(pid) || !Number.isFinite(port)) {
|
|
383
|
+
continue;
|
|
384
|
+
}
|
|
385
|
+
process.kill(Math.trunc(pid), 0);
|
|
386
|
+
active.push({
|
|
387
|
+
pid: Math.trunc(pid),
|
|
388
|
+
port: Math.trunc(port),
|
|
389
|
+
workspaceRoot: typeof parsed.workspaceRoot === 'string' ? parsed.workspaceRoot : undefined,
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
catch {
|
|
393
|
+
// ignore malformed or stale lock entries
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
return active;
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
return [];
|
|
400
|
+
}
|
|
401
|
+
}
|
|
268
402
|
function resolveClientId() {
|
|
269
403
|
const configured = process.env.OML_AUTH_GITHUB_CLIENT_ID?.trim() || DEFAULT_GITHUB_CLIENT_ID;
|
|
270
404
|
if (configured) {
|
|
@@ -284,4 +418,27 @@ function resolveSupabaseAnonKey() {
|
|
|
284
418
|
function delay(ms) {
|
|
285
419
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
286
420
|
}
|
|
421
|
+
function isUnauthorizedError(error) {
|
|
422
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
423
|
+
return /\b401\b/.test(message);
|
|
424
|
+
}
|
|
425
|
+
async function getKeytarModule() {
|
|
426
|
+
if (!keytarModulePromise) {
|
|
427
|
+
keytarModulePromise = import('keytar')
|
|
428
|
+
.then((loaded) => loaded.default)
|
|
429
|
+
.catch((error) => {
|
|
430
|
+
keytarModulePromise = undefined;
|
|
431
|
+
throw new Error(formatKeytarLoadError(error));
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
return keytarModulePromise;
|
|
435
|
+
}
|
|
436
|
+
function formatKeytarLoadError(error) {
|
|
437
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
438
|
+
if (/libsecret|dlopen|ERR_DLOPEN_FAILED/i.test(message)) {
|
|
439
|
+
return 'Secure credential storage is unavailable (missing system keychain runtime, e.g. libsecret on Linux). ' +
|
|
440
|
+
'Install the OS keychain runtime or set OML_PLATFORM_API_KEY for non-interactive mode.';
|
|
441
|
+
}
|
|
442
|
+
return `Secure credential storage is unavailable: ${message}`;
|
|
443
|
+
}
|
|
287
444
|
//# sourceMappingURL=auth.js.map
|
package/out/auth/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACH,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACvB,MAAM,gBAAgB,CAAC;AAExB,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;AACtE,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AACvE,MAAM,eAAe,GAAG,6BAA6B,CAAC;AACtD,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAChD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAC3C,MAAM,gBAAgB,GAAG,UAAU,CAAC;AACpC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAChD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACzE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACtE,MAAM,4BAA4B,GAAG,KAAM,CAAC;AAC5C,MAAM,eAAe,GAAG,IAAK,CAAC;AAC9B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAQlC,IAAI,mBAAsD,CAAC;AA4B3D,MAAM,OAAO,iBAAiB;IAC1B,KAAK,CAAC,KAAK,CAAC,QAAsB;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CACtB,sFAAsF;gBACtF,wCAAwC,CAC3C,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC1F,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CACrB,wBAAwB,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,cAAc,GAAG,CACvG,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC/C,MAAM,eAAe,CAAC;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC;YACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,QAAQ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAChD,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,aAAa,EAAE,CAAC;QACtB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0EAA0E,CAAC,CAAC,CAAC;YACxG,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,aAAa,IAAI,qBAAqB,YAAY,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;YACnH,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,2EAA2E,CAAC,CAAC,CAAC;YAC7G,CAAC;YACD,OAAO;QACX,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,2EAA2E,CAAC,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YACpC,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,SAAS,IAAI,WAAW,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,iBAAiB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,aAAqB;QAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YACnC,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,kDAAkD,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,WAAW,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACvB,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,4BAA4B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjD,OAAO;gBACH,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,WAAW,EAAE,SAAS,CAAC,WAAW;aACrC,CAAC;QACN,CAAC;QACD,OAAO;YACH,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC7B,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC3B,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC3C,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,4BAA4B,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAC9C,kBAAkB,EAAE,EACpB,sBAAsB,EAAE,EACxB,MAAM,CAAC,YAAY,CACtB,CAAC;YACF,MAAM,cAAc,GAAqB;gBACrC,WAAW,EAAE,SAAS,CAAC,YAAY;gBACnC,YAAY,EAAE,SAAS,CAAC,aAAa;gBACrC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1D,CAAC;YACF,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YACpC,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,YAAY,CAAC;oBACf,GAAG,OAAO;oBACV,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;iBAC1C,CAAC,CAAC;YACP,CAAC;YACD,OAAO,cAAc,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,gBAAgB,EAAE,CAAC;gBACzB,MAAM,aAAa,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;YACzH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;QACzH,CAAC;gBAAS,CAAC;YACP,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;CACJ;AAED,KAAK,UAAU,cAAc;IACzB,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChE,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QACtD,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;QACvD,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC;KACvD,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,UAA4B;IACvD,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,OAAO,CAAC,GAAG,CAAC;QACd,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC,WAAW,CAAC;QAC9E,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,CAAC,YAAY,CAAC;QAChF,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;KACvF,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC3B,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,OAAO,CAAC,GAAG,CAAC;QACd,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QACzD,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;QAC1D,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC;KAC1D,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,WAAW;IACtB,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA2B,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAsB;IAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,aAAa;IACxB,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,sBAAsB;IAUjC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,sBAAsB;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,mCAAmC;SACtD;QACD,IAAI,EAAE,MAAM;KACf,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA8B,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IAED,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;QAC9C,OAAO,EAAE;YACL,MAAM,EAAE,6BAA6B;YACrC,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAwB,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;IAE9E,OAAO;QACH,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,eAAe,CAAC,OAAO;QAC/B,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,WAAW,EAAE,eAAe,CAAC,YAAY;QACzC,YAAY,EAAE,eAAe,CAAC,aAAa;QAC3C,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,UAAU,GAAG,IAAI;KAC9D,CAAC;AACN,CAAC;AAED,SAAS,2BAA2B,CAAC,YAAoB,EAAE,eAAuB,EAAE,QAAgB;IAChG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,oBAAoB,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,QAAgB,EAAE,MAAgC;IACtF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,eAAe,GAAG,IAAK,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAC/B,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,8CAA8C;SAC7D,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,mCAAmC;aACtD;YACD,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyB,CAAC;QAC3D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,YAAY,CAAC;QAC9B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,uBAAuB,EAAE,CAAC;YAC1C,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC9B,eAAe,IAAI,CAAC,CAAC;YACrB,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;IACxF,CAAC;AACL,CAAC;AAED,KAAK,UAAU,qBAAqB;IAChC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO;gBACH,OAAO,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;oBACrB,MAAM,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5C,CAAC;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAiE,EAAE,CAAC;QAChF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;YACjE,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+D,CAAC;gBAC7F,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,SAAS;gBACb,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC;oBACR,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBACpB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBACtB,aAAa,EAAE,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;iBAC7F,CAAC,CAAC;YACP,CAAC;YAAC,MAAM,CAAC;gBACL,yCAAyC;YAC7C,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,SAAS,eAAe;IACpB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAC7F,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CACX,8HAA8H,CACjI,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC;AACzE,CAAC;AAED,SAAS,kBAAkB;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC;AACzE,CAAC;AAED,SAAS,sBAAsB;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAC;AACnF,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACvC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,eAAe;IAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC;aACjC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAuB,CAAC;aAChD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtB,mBAAmB,GAAG,SAAS,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACX,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IACzC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO,uGAAuG;YAC1G,uFAAuF,CAAC;IAChG,CAAC;IACD,OAAO,6CAA6C,OAAO,EAAE,CAAC;AAClE,CAAC"}
|
package/out/auth/platform.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export type CommandInvocationTracker = ReturnType<OmlClient['trackInvocation']>;
|
|
|
16
16
|
export declare function initializePlatform(authService: OmlCliAuthService, apiBaseUrl?: string): Promise<void>;
|
|
17
17
|
/**
|
|
18
18
|
* Dispose the platform client. Flushes any buffered telemetry
|
|
19
|
-
* and
|
|
19
|
+
* and flushes buffered telemetry. Call at the end of CLI execution.
|
|
20
20
|
*/
|
|
21
21
|
export declare function disposePlatform(): Promise<void>;
|
|
22
22
|
/**
|
package/out/auth/platform.js
CHANGED
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
* authenticated via oml login and the platform must be reachable for
|
|
7
7
|
* commands to execute.
|
|
8
8
|
*/
|
|
9
|
-
import { OmlClient, FileStorageAdapter, installNodeShutdownHandlers
|
|
9
|
+
import { OmlClient, FileStorageAdapter, installNodeShutdownHandlers } from '@oml/platform';
|
|
10
10
|
import chalk from 'chalk';
|
|
11
11
|
import { DEFAULT_API_BASE_URL } from './constants.js';
|
|
12
12
|
const API_BASE_URL_ENV = 'OML_PLATFORM_API_URL';
|
|
13
13
|
const API_KEY_ENV = 'OML_PLATFORM_API_KEY';
|
|
14
|
-
const OIDC_TOKEN_ENV = 'OML_CI_TOKEN';
|
|
15
14
|
let client = null;
|
|
16
15
|
let shutdownHandle = null;
|
|
17
16
|
/**
|
|
@@ -23,22 +22,6 @@ export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_B
|
|
|
23
22
|
await disposePlatform();
|
|
24
23
|
const resolvedApiBaseUrl = process.env[API_BASE_URL_ENV]?.trim() || apiBaseUrl;
|
|
25
24
|
const apiKey = process.env[API_KEY_ENV]?.trim();
|
|
26
|
-
let apiKeyAccessToken;
|
|
27
|
-
let apiKeyAccessTokenExpiresAtMs = 0;
|
|
28
|
-
const getApiKeyAccessToken = async () => {
|
|
29
|
-
const refreshLeewayMs = 20000;
|
|
30
|
-
if (apiKeyAccessToken && Date.now() + refreshLeewayMs < apiKeyAccessTokenExpiresAtMs) {
|
|
31
|
-
return apiKeyAccessToken;
|
|
32
|
-
}
|
|
33
|
-
if (!apiKey) {
|
|
34
|
-
throw new Error('OML API key is missing.');
|
|
35
|
-
}
|
|
36
|
-
const oidcToken = process.env[OIDC_TOKEN_ENV]?.trim() || undefined;
|
|
37
|
-
const exchanged = await exchangeApiToken(resolvedApiBaseUrl, apiKey, oidcToken);
|
|
38
|
-
apiKeyAccessToken = exchanged.accessToken;
|
|
39
|
-
apiKeyAccessTokenExpiresAtMs = Date.now() + (Math.max(1, exchanged.expiresIn) * 1000);
|
|
40
|
-
return apiKeyAccessToken;
|
|
41
|
-
};
|
|
42
25
|
const config = {
|
|
43
26
|
apiBaseUrl: resolvedApiBaseUrl,
|
|
44
27
|
tool: 'oml-cli',
|
|
@@ -46,19 +29,14 @@ export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_B
|
|
|
46
29
|
auth: apiKey
|
|
47
30
|
? {
|
|
48
31
|
method: 'oauth',
|
|
49
|
-
getToken: () =>
|
|
50
|
-
refreshToken: () =>
|
|
32
|
+
getToken: async () => apiKey,
|
|
33
|
+
refreshToken: async () => apiKey,
|
|
51
34
|
}
|
|
52
35
|
: {
|
|
53
36
|
method: 'oauth',
|
|
54
37
|
getToken: () => authService.getAccessToken(),
|
|
55
38
|
refreshToken: () => authService.refreshAccessToken(),
|
|
56
39
|
},
|
|
57
|
-
onConcurrencyLimit: (info) => {
|
|
58
|
-
console.error(chalk.yellow(`OML Platform: concurrent session limit reached `
|
|
59
|
-
+ `(${info.active_sessions}/${info.max_sessions}). `
|
|
60
|
-
+ `Close another instance or upgrade your plan.`));
|
|
61
|
-
},
|
|
62
40
|
onAuthError: (error) => {
|
|
63
41
|
console.error(chalk.red(`OML Platform: authentication error — ${toGenericPlatformErrorMessage(error)}`));
|
|
64
42
|
},
|
|
@@ -76,7 +54,7 @@ export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_B
|
|
|
76
54
|
}
|
|
77
55
|
/**
|
|
78
56
|
* Dispose the platform client. Flushes any buffered telemetry
|
|
79
|
-
* and
|
|
57
|
+
* and flushes buffered telemetry. Call at the end of CLI execution.
|
|
80
58
|
*/
|
|
81
59
|
export async function disposePlatform() {
|
|
82
60
|
if (shutdownHandle) {
|
package/out/auth/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/auth/platform.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/auth/platform.ts"],"names":[],"mappings":"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"}
|