@vertesia/cli 1.3.0 → 1.4.0-dev.20260615.042549Z

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.
Files changed (218) hide show
  1. package/lib/agent-context.d.ts +8 -2
  2. package/lib/agent-context.d.ts.map +1 -1
  3. package/lib/agent-context.js +9 -13
  4. package/lib/agent-context.js.map +1 -1
  5. package/lib/agents/index.d.ts +3 -0
  6. package/lib/agents/index.d.ts.map +1 -0
  7. package/lib/agents/index.js +555 -0
  8. package/lib/agents/index.js.map +1 -0
  9. package/lib/apps/commands.d.ts +25 -10
  10. package/lib/apps/commands.d.ts.map +1 -1
  11. package/lib/apps/commands.js +34 -26
  12. package/lib/apps/commands.js.map +1 -1
  13. package/lib/apps/index.d.ts +1 -1
  14. package/lib/apps/index.d.ts.map +1 -1
  15. package/lib/apps/index.js +40 -41
  16. package/lib/apps/index.js.map +1 -1
  17. package/lib/artifacts/commands.d.ts +13 -5
  18. package/lib/artifacts/commands.d.ts.map +1 -1
  19. package/lib/artifacts/commands.js +10 -10
  20. package/lib/artifacts/commands.js.map +1 -1
  21. package/lib/artifacts/index.d.ts +1 -1
  22. package/lib/artifacts/index.d.ts.map +1 -1
  23. package/lib/artifacts/index.js +22 -17
  24. package/lib/artifacts/index.js.map +1 -1
  25. package/lib/client.d.ts +2 -2
  26. package/lib/client.d.ts.map +1 -1
  27. package/lib/client.js +45 -21
  28. package/lib/client.js.map +1 -1
  29. package/lib/data/commands.d.ts +16 -3
  30. package/lib/data/commands.d.ts.map +1 -1
  31. package/lib/data/commands.js +36 -43
  32. package/lib/data/commands.js.map +1 -1
  33. package/lib/data/index.d.ts +1 -1
  34. package/lib/data/index.d.ts.map +1 -1
  35. package/lib/data/index.js +14 -15
  36. package/lib/data/index.js.map +1 -1
  37. package/lib/envs/index.d.ts +2 -2
  38. package/lib/envs/index.d.ts.map +1 -1
  39. package/lib/envs/index.js +12 -10
  40. package/lib/envs/index.js.map +1 -1
  41. package/lib/iam/commands.d.ts +15 -3
  42. package/lib/iam/commands.d.ts.map +1 -1
  43. package/lib/iam/commands.js +27 -9
  44. package/lib/iam/commands.js.map +1 -1
  45. package/lib/iam/index.d.ts +1 -1
  46. package/lib/iam/index.d.ts.map +1 -1
  47. package/lib/iam/index.js +2 -3
  48. package/lib/iam/index.js.map +1 -1
  49. package/lib/index.js +157 -122
  50. package/lib/index.js.map +1 -1
  51. package/lib/interactions/index.d.ts +2 -2
  52. package/lib/interactions/index.d.ts.map +1 -1
  53. package/lib/interactions/index.js +20 -14
  54. package/lib/interactions/index.js.map +1 -1
  55. package/lib/objects/commands.d.ts +49 -14
  56. package/lib/objects/commands.d.ts.map +1 -1
  57. package/lib/objects/commands.js +185 -32
  58. package/lib/objects/commands.js.map +1 -1
  59. package/lib/objects/index.d.ts +1 -1
  60. package/lib/objects/index.d.ts.map +1 -1
  61. package/lib/objects/index.js +46 -13
  62. package/lib/objects/index.js.map +1 -1
  63. package/lib/package.d.ts +7 -3
  64. package/lib/package.d.ts.map +1 -1
  65. package/lib/package.js +25 -13
  66. package/lib/package.js.map +1 -1
  67. package/lib/profiles/auth.d.ts +14 -0
  68. package/lib/profiles/auth.d.ts.map +1 -0
  69. package/lib/profiles/auth.js +65 -0
  70. package/lib/profiles/auth.js.map +1 -0
  71. package/lib/profiles/commands.d.ts +15 -4
  72. package/lib/profiles/commands.d.ts.map +1 -1
  73. package/lib/profiles/commands.js +384 -57
  74. package/lib/profiles/commands.js.map +1 -1
  75. package/lib/profiles/git.d.ts +9 -0
  76. package/lib/profiles/git.d.ts.map +1 -0
  77. package/lib/profiles/git.js +211 -0
  78. package/lib/profiles/git.js.map +1 -0
  79. package/lib/profiles/index.d.ts +17 -7
  80. package/lib/profiles/index.d.ts.map +1 -1
  81. package/lib/profiles/index.js +215 -66
  82. package/lib/profiles/index.js.map +1 -1
  83. package/lib/profiles/keyring.d.ts +23 -0
  84. package/lib/profiles/keyring.d.ts.map +1 -0
  85. package/lib/profiles/keyring.js +111 -0
  86. package/lib/profiles/keyring.js.map +1 -0
  87. package/lib/profiles/oauth.d.ts +17 -0
  88. package/lib/profiles/oauth.d.ts.map +1 -0
  89. package/lib/profiles/oauth.js +414 -0
  90. package/lib/profiles/oauth.js.map +1 -0
  91. package/lib/profiles/server/cors.d.ts +1 -1
  92. package/lib/profiles/server/cors.d.ts.map +1 -1
  93. package/lib/profiles/server/cors.js +1 -1
  94. package/lib/profiles/server/cors.js.map +1 -1
  95. package/lib/profiles/server/index.d.ts +9 -1
  96. package/lib/profiles/server/index.d.ts.map +1 -1
  97. package/lib/profiles/server/index.js +111 -47
  98. package/lib/profiles/server/index.js.map +1 -1
  99. package/lib/profiles/server/server.d.ts +1 -1
  100. package/lib/profiles/server/server.d.ts.map +1 -1
  101. package/lib/profiles/server/server.js +10 -13
  102. package/lib/profiles/server/server.js.map +1 -1
  103. package/lib/projects/index.d.ts +2 -1
  104. package/lib/projects/index.d.ts.map +1 -1
  105. package/lib/projects/index.js +53 -5
  106. package/lib/projects/index.js.map +1 -1
  107. package/lib/run/executor.d.ts +11 -7
  108. package/lib/run/executor.d.ts.map +1 -1
  109. package/lib/run/executor.js +30 -23
  110. package/lib/run/executor.js.map +1 -1
  111. package/lib/run/index.d.ts +14 -2
  112. package/lib/run/index.d.ts.map +1 -1
  113. package/lib/run/index.js +14 -12
  114. package/lib/run/index.js.map +1 -1
  115. package/lib/runs/index.d.ts +18 -2
  116. package/lib/runs/index.d.ts.map +1 -1
  117. package/lib/runs/index.js +9 -7
  118. package/lib/runs/index.js.map +1 -1
  119. package/lib/utils/console.d.ts +1 -1
  120. package/lib/utils/console.d.ts.map +1 -1
  121. package/lib/utils/console.js +24 -33
  122. package/lib/utils/console.js.map +1 -1
  123. package/lib/utils/options.d.ts +8 -0
  124. package/lib/utils/options.d.ts.map +1 -0
  125. package/lib/utils/options.js +19 -0
  126. package/lib/utils/options.js.map +1 -0
  127. package/lib/utils/stdio.js +3 -2
  128. package/lib/utils/stdio.js.map +1 -1
  129. package/lib/workflows/commands.d.ts +44 -13
  130. package/lib/workflows/commands.d.ts.map +1 -1
  131. package/lib/workflows/commands.js +69 -50
  132. package/lib/workflows/commands.js.map +1 -1
  133. package/lib/workflows/index.d.ts +1 -1
  134. package/lib/workflows/index.d.ts.map +1 -1
  135. package/lib/workflows/index.js +56 -56
  136. package/lib/workflows/index.js.map +1 -1
  137. package/lib/workflows/json-loader.d.ts +1 -1
  138. package/lib/workflows/json-loader.d.ts.map +1 -1
  139. package/lib/workflows/json-loader.js +5 -4
  140. package/lib/workflows/json-loader.js.map +1 -1
  141. package/lib/workflows/streams.d.ts +8 -1
  142. package/lib/workflows/streams.d.ts.map +1 -1
  143. package/lib/workflows/streams.js +107 -84
  144. package/lib/workflows/streams.js.map +1 -1
  145. package/lib/workflows/ts-loader.d.ts +1 -1
  146. package/lib/workflows/ts-loader.d.ts.map +1 -1
  147. package/lib/workflows/ts-loader.js +21 -20
  148. package/lib/workflows/ts-loader.js.map +1 -1
  149. package/lib/workflows/validation.d.ts +1 -1
  150. package/lib/workflows/validation.d.ts.map +1 -1
  151. package/lib/workflows/validation.js +11 -11
  152. package/lib/workflows/validation.js.map +1 -1
  153. package/package.json +21 -24
  154. package/bin/docker-credential-vertesia.js +0 -3
  155. package/lib/codegen/CodeBuilder.d.ts +0 -16
  156. package/lib/codegen/CodeBuilder.d.ts.map +0 -1
  157. package/lib/codegen/CodeBuilder.js +0 -99
  158. package/lib/codegen/CodeBuilder.js.map +0 -1
  159. package/lib/codegen/InteractionVersion.d.ts +0 -29
  160. package/lib/codegen/InteractionVersion.d.ts.map +0 -1
  161. package/lib/codegen/InteractionVersion.js +0 -80
  162. package/lib/codegen/InteractionVersion.js.map +0 -1
  163. package/lib/codegen/index.d.ts +0 -3
  164. package/lib/codegen/index.d.ts.map +0 -1
  165. package/lib/codegen/index.js +0 -30
  166. package/lib/codegen/index.js.map +0 -1
  167. package/lib/codegen/template.d.ts +0 -3
  168. package/lib/codegen/template.d.ts.map +0 -1
  169. package/lib/codegen/template.js +0 -28
  170. package/lib/codegen/template.js.map +0 -1
  171. package/lib/codegen/utils.d.ts +0 -2
  172. package/lib/codegen/utils.d.ts.map +0 -1
  173. package/lib/codegen/utils.js +0 -4
  174. package/lib/codegen/utils.js.map +0 -1
  175. package/lib/datagen/index.d.ts +0 -3
  176. package/lib/datagen/index.d.ts.map +0 -1
  177. package/lib/datagen/index.js +0 -81
  178. package/lib/datagen/index.js.map +0 -1
  179. package/lib/memory/index.d.ts +0 -3
  180. package/lib/memory/index.d.ts.map +0 -1
  181. package/lib/memory/index.js +0 -15
  182. package/lib/memory/index.js.map +0 -1
  183. package/lib/worker/commands.d.ts +0 -11
  184. package/lib/worker/commands.d.ts.map +0 -1
  185. package/lib/worker/commands.js +0 -173
  186. package/lib/worker/commands.js.map +0 -1
  187. package/lib/worker/connect.d.ts +0 -7
  188. package/lib/worker/connect.d.ts.map +0 -1
  189. package/lib/worker/connect.js +0 -68
  190. package/lib/worker/connect.js.map +0 -1
  191. package/lib/worker/docker-credential.d.ts +0 -2
  192. package/lib/worker/docker-credential.d.ts.map +0 -1
  193. package/lib/worker/docker-credential.js +0 -51
  194. package/lib/worker/docker-credential.js.map +0 -1
  195. package/lib/worker/docker.d.ts +0 -10
  196. package/lib/worker/docker.d.ts.map +0 -1
  197. package/lib/worker/docker.js +0 -93
  198. package/lib/worker/docker.js.map +0 -1
  199. package/lib/worker/index.d.ts +0 -3
  200. package/lib/worker/index.d.ts.map +0 -1
  201. package/lib/worker/index.js +0 -90
  202. package/lib/worker/index.js.map +0 -1
  203. package/lib/worker/project.d.ts +0 -58
  204. package/lib/worker/project.d.ts.map +0 -1
  205. package/lib/worker/project.js +0 -125
  206. package/lib/worker/project.js.map +0 -1
  207. package/lib/worker/refresh.d.ts +0 -6
  208. package/lib/worker/refresh.d.ts.map +0 -1
  209. package/lib/worker/refresh.js +0 -47
  210. package/lib/worker/refresh.js.map +0 -1
  211. package/lib/worker/registry.d.ts +0 -7
  212. package/lib/worker/registry.d.ts.map +0 -1
  213. package/lib/worker/registry.js +0 -47
  214. package/lib/worker/registry.js.map +0 -1
  215. package/lib/worker/version.d.ts +0 -2
  216. package/lib/worker/version.d.ts.map +0 -1
  217. package/lib/worker/version.js +0 -4
  218. package/lib/worker/version.js.map +0 -1
@@ -1,9 +1,12 @@
1
- import { existsSync, mkdirSync, statSync } from "fs";
1
+ import { existsSync, mkdirSync, statSync } from 'node:fs';
2
+ import os from 'node:os';
3
+ import { join } from 'node:path';
2
4
  import jwt from 'jsonwebtoken';
3
- import os from "node:os";
4
- import { join } from "path";
5
- import { readJsonFile, writeJsonFile } from "../utils/stdio.js";
6
- import { startConfigSession } from "./server/index.js";
5
+ import { hasErrorCode } from '../utils/options.js';
6
+ import { readJsonFile, writeJsonFile } from '../utils/stdio.js';
7
+ import { deleteAuthBundle, getAccessTokenExpiry, hasStoredAccessToken, isKeyringAvailable, readAuthBundle, readProfileAccessToken, writeAuthBundle, } from './keyring.js';
8
+ import { canUseOAuthProfile, OAuthUnavailableError, startOAuthSession } from './oauth.js';
9
+ import { startConfigSession } from './server/index.js';
7
10
  export function getConfigFile(path) {
8
11
  const dir = join(os.homedir(), '.vertesia');
9
12
  if (!path || path === '/') {
@@ -16,79 +19,108 @@ export function getConfigFile(path) {
16
19
  export const DEFAULT_REGION = 'us1';
17
20
  export const AVAILABLE_REGIONS = ['us1', 'eu1', 'jp1'];
18
21
  export function getConfigUrl(value, region = DEFAULT_REGION) {
22
+ if (isDevDeploymentTarget(value)) {
23
+ return `https://${value}.ui.dev1.vertesia.io/cli`;
24
+ }
19
25
  switch (value) {
20
- case "local":
21
- return "https://localhost:5173/cli";
22
- case "dev-main":
23
- return "https://dev-main.ui.dev1.vertesia.io/cli";
24
- case "dev-preview":
25
- return "https://dev-preview.ui.dev1.vertesia.io/cli";
26
- case "preview":
26
+ case 'local':
27
+ return 'https://localhost:5173/cli';
28
+ case 'dev-main':
29
+ return 'https://dev-main.ui.dev1.vertesia.io/cli';
30
+ case 'dev-preview':
31
+ return 'https://dev-preview.ui.dev1.vertesia.io/cli';
32
+ case 'preview':
27
33
  return `https://preview.cloud.${region}.vertesia.io/cli`;
28
- case "prod":
34
+ case 'prod':
29
35
  return `https://cloud.${region}.vertesia.io/cli`;
30
36
  default:
31
- if (value.startsWith("http://") || value.startsWith("https://")) {
37
+ if (value.startsWith('http://') || value.startsWith('https://')) {
32
38
  return value;
33
39
  }
34
40
  else {
35
- throw new InvalidConfigUrlError("Custom targets must be a valid http or https URL.");
41
+ throw new InvalidConfigUrlError('Custom targets must be a valid http or https URL.');
36
42
  }
37
43
  }
38
44
  }
45
+ function isDevDeploymentTarget(value) {
46
+ return value.startsWith('dev-');
47
+ }
39
48
  export function getServerUrls(value, region = DEFAULT_REGION) {
49
+ if (isDevDeploymentTarget(value)) {
50
+ return {
51
+ studio_server_url: `https://studio-server-${value}.api.dev1.vertesia.io`,
52
+ zeno_server_url: `https://zeno-server-${value}.api.dev1.vertesia.io`,
53
+ oauth_server_url: 'https://sts.dev1.vertesia.io',
54
+ };
55
+ }
40
56
  switch (value) {
41
- case "local":
57
+ case 'local':
42
58
  return {
43
- studio_server_url: "http://localhost:8091",
44
- zeno_server_url: "http://localhost:8092",
59
+ studio_server_url: 'http://localhost:8091',
60
+ zeno_server_url: 'http://localhost:8092',
61
+ // Local CLI dev still authenticates against the shared dev1 STS.
62
+ oauth_server_url: 'https://sts.dev1.vertesia.io',
45
63
  };
46
- case "dev-main":
64
+ case 'dev-main':
47
65
  return {
48
- studio_server_url: "https://studio-server-dev-main.api.dev1.vertesia.io",
49
- zeno_server_url: "https://zeno-server-dev-main.api.dev1.vertesia.io",
66
+ studio_server_url: 'https://studio-server-dev-main.api.dev1.vertesia.io',
67
+ zeno_server_url: 'https://zeno-server-dev-main.api.dev1.vertesia.io',
68
+ oauth_server_url: 'https://sts.dev1.vertesia.io',
50
69
  };
51
- case "dev-preview":
70
+ case 'dev-preview':
52
71
  return {
53
- studio_server_url: "https://studio-server-dev-preview.api.dev1.vertesia.io",
54
- zeno_server_url: "https://zeno-server-dev-preview.api.dev1.vertesia.io",
72
+ studio_server_url: 'https://studio-server-dev-preview.api.dev1.vertesia.io',
73
+ zeno_server_url: 'https://zeno-server-dev-preview.api.dev1.vertesia.io',
74
+ oauth_server_url: 'https://sts.dev1.vertesia.io',
55
75
  };
56
- case "preview":
76
+ case 'preview':
57
77
  return {
58
78
  studio_server_url: `https://api-preview.${region}.vertesia.io`,
59
79
  zeno_server_url: `https://api-preview.${region}.vertesia.io`,
80
+ oauth_server_url: `https://sts-preview.${region}.vertesia.io`,
60
81
  };
61
- case "prod":
82
+ case 'prod':
62
83
  return {
63
84
  studio_server_url: `https://api.${region}.vertesia.io`,
64
85
  zeno_server_url: `https://api.${region}.vertesia.io`,
86
+ oauth_server_url: `https://sts.${region}.vertesia.io`,
65
87
  };
66
88
  default:
67
- throw new Error("Unable to detect server urls from custom target.");
89
+ throw new Error('Unable to detect server urls from custom target.');
68
90
  }
69
91
  }
70
92
  export function getCloudTypeFromConfigUrl(url) {
71
- if (url.startsWith("https://localhost")) {
72
- return "staging";
93
+ let parsedUrl;
94
+ try {
95
+ parsedUrl = new URL(url);
73
96
  }
74
- else if (url.includes(".ui.dev1.vertesia.io")) {
75
- return "staging";
97
+ catch {
98
+ throw new Error('Unknown cloud env type');
76
99
  }
77
- else if (url.startsWith("https://preview.")) {
78
- return "preview";
100
+ const { hostname, protocol } = parsedUrl;
101
+ if ((protocol === 'http:' || protocol === 'https:') && hostname === 'localhost') {
102
+ return 'staging';
79
103
  }
80
- else if (url.startsWith("https://cloud.")) {
81
- return "production";
104
+ else if (hostname.endsWith('.ui.dev1.vertesia.io')) {
105
+ return 'staging';
106
+ }
107
+ else if (protocol === 'https:' && hostname.startsWith('preview.')) {
108
+ return 'preview';
109
+ }
110
+ else if (protocol === 'https:' && hostname.startsWith('cloud.')) {
111
+ return 'production';
82
112
  }
83
113
  else {
84
- throw new Error("Unknown cloud env type");
114
+ throw new Error('Unknown cloud env type');
85
115
  }
86
116
  }
87
117
  export function shouldRefreshProfileToken(profile, thresholdInSeconds = 1) {
88
- if (profile.apikey) {
89
- const token = jwt.decode(profile.apikey, { json: true });
90
- if (token && token.exp) {
91
- return (token.exp - thresholdInSeconds) * 1000 < Date.now();
118
+ const token = readProfileAccessToken(profile);
119
+ if (token) {
120
+ const bundle = readAuthBundle(profile.name);
121
+ const expiresAt = bundle?.accessTokenExpiresAt ?? getAccessTokenExpiry(token);
122
+ if (expiresAt) {
123
+ return expiresAt - thresholdInSeconds * 1000 < Date.now();
92
124
  }
93
125
  }
94
126
  // if no token or no expiration set then refresh auth token
@@ -113,23 +145,45 @@ export class ConfigureProfile {
113
145
  project: this.data.project,
114
146
  };
115
147
  }
116
- async applyConfigResult(result) {
148
+ async persistConfigResult(result) {
117
149
  if (!result) {
118
- // Handle cancellation or no result
119
- console.log('\nAuthentication canceled or failed.');
120
- process.exit(1);
121
150
  return;
122
151
  }
152
+ // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here
123
153
  const oldName = this.data.name;
154
+ const previousBundle = oldName ? readAuthBundle(oldName) : undefined;
124
155
  this.data.name = result.profile;
125
156
  this.data.account = result.account;
126
157
  this.data.project = result.project;
127
158
  this.data.studio_server_url = result.studio_server_url;
128
159
  this.data.zeno_server_url = result.zeno_server_url;
129
- this.data.apikey = result.token;
160
+ if (result.oauth_server_url) {
161
+ this.data.oauth_server_url = result.oauth_server_url;
162
+ }
163
+ try {
164
+ writeAuthBundle(result.profile, {
165
+ accessToken: result.token,
166
+ accessTokenExpiresAt: readResultAccessTokenExpiry(result),
167
+ idToken: result.id_token || previousBundle?.idToken,
168
+ refreshToken: result.refresh_token || previousBundle?.refreshToken,
169
+ refreshTokenExpiresAt: result.refresh_token_expires_at || previousBundle?.refreshTokenExpiresAt,
170
+ oauthClientId: result.oauth_client_id || previousBundle?.oauthClientId,
171
+ oauthResource: result.oauth_resource || previousBundle?.oauthResource,
172
+ });
173
+ delete this.data.apikey;
174
+ }
175
+ catch (error) {
176
+ const message = error instanceof Error ? error.message : String(error);
177
+ console.warn(`Unable to store credentials in the native keychain; falling back to profile file storage: ${message}`);
178
+ this.data.apikey = result.token;
179
+ }
180
+ if (oldName && oldName !== result.profile) {
181
+ deleteAuthBundle(oldName);
182
+ }
130
183
  this.config.remove(oldName);
131
184
  this.config.add(this.data);
132
185
  if (this.isNew) {
186
+ // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here
133
187
  this.config.use(this.data.name);
134
188
  }
135
189
  this.config.save();
@@ -137,42 +191,73 @@ export class ConfigureProfile {
137
191
  await this.onResultCallback(result);
138
192
  this.onResultCallback = undefined;
139
193
  }
140
- // force exit to close last prompt
141
- console.log('\n');
142
- console.log('Authentication completed.');
143
- process.exit(0);
194
+ }
195
+ async applyConfigResult(result, options = {}) {
196
+ if (!result) {
197
+ console.log('\nAuthentication canceled or failed.');
198
+ process.exit(1);
199
+ return;
200
+ }
201
+ await this.persistConfigResult(result);
202
+ if (options.logCompletion) {
203
+ console.log('\n');
204
+ console.log('Authentication completed.');
205
+ }
206
+ if (options.exitOnComplete) {
207
+ process.exit(0);
208
+ }
209
+ }
210
+ async startLegacySession(signal) {
211
+ await startConfigSession(
212
+ // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here
213
+ this.data.config_url, this.getConfigPayload(), (result) => this.applyConfigResult(result, { logCompletion: true, exitOnComplete: true }), signal);
144
214
  }
145
215
  async start(onResult, signal) {
146
216
  this.onResultCallback = onResult;
147
- await startConfigSession(this.data.config_url, this.getConfigPayload(), this.applyConfigResult.bind(this), signal);
217
+ if (canUseOAuthProfile(this.data)) {
218
+ try {
219
+ const result = await startOAuthSession(this.data, signal);
220
+ await this.applyConfigResult(result, { logCompletion: true });
221
+ return;
222
+ }
223
+ catch (error) {
224
+ if (!(error instanceof OAuthUnavailableError)) {
225
+ throw error;
226
+ }
227
+ console.log('OAuth login is not available for this endpoint. Falling back to legacy CLI login.');
228
+ }
229
+ }
230
+ await this.startLegacySession(signal);
148
231
  }
149
232
  }
150
233
  export class Config {
151
234
  current;
152
235
  profiles;
153
236
  isDevMode = false;
237
+ explicitProfile = false;
154
238
  constructor(data) {
155
239
  this.profiles = data?.profiles || [];
156
240
  if (data?.default) {
157
- this.use(data.default);
241
+ this.current = this.profiles.find((p) => p.name === data.default);
158
242
  }
159
243
  }
160
244
  hasProfile(name) {
161
- return !!this.profiles.find(p => p.name === name);
245
+ return !!this.profiles.find((p) => p.name === name);
162
246
  }
163
247
  getProfile(name) {
164
- return this.profiles.find(p => p.name === name);
248
+ return this.profiles.find((p) => p.name === name);
165
249
  }
166
- use(name) {
167
- this.current = this.profiles.find(p => p.name === name);
250
+ use(name, options = {}) {
251
+ this.current = this.profiles.find((p) => p.name === name);
168
252
  if (!this.current) {
169
253
  console.error(`No configuration named ${name} found`);
170
254
  process.exit(1);
171
255
  }
256
+ this.explicitProfile = Boolean(options.explicit);
172
257
  return this;
173
258
  }
174
259
  add(profile) {
175
- if (this.profiles.find(p => p.name === profile.name)) {
260
+ if (this.profiles.find((p) => p.name === profile.name)) {
176
261
  console.error(`A configuration named ${profile.name} already exists`);
177
262
  }
178
263
  else {
@@ -182,7 +267,7 @@ export class Config {
182
267
  return this;
183
268
  }
184
269
  update(profile) {
185
- const existingProfile = this.profiles.find(p => p.name === profile.name);
270
+ const existingProfile = this.profiles.find((p) => p.name === profile.name);
186
271
  if (existingProfile) {
187
272
  Object.assign(existingProfile, profile);
188
273
  }
@@ -199,7 +284,7 @@ export class Config {
199
284
  return this;
200
285
  }
201
286
  remove(name) {
202
- const i = this.profiles.findIndex(p => p.name === name);
287
+ const i = this.profiles.findIndex((p) => p.name === name);
203
288
  if (i > -1) {
204
289
  this.profiles.splice(i, 1);
205
290
  if (this.current?.name === name) {
@@ -210,7 +295,7 @@ export class Config {
210
295
  }
211
296
  createProfile(name, target, region = DEFAULT_REGION) {
212
297
  const config_url = getConfigUrl(target, region);
213
- return new ConfigureProfile(this, { name, config_url, region }, true);
298
+ return new ConfigureProfile(this, { name, config_url, region, ...readKnownServerUrls(target, region) }, true);
214
299
  }
215
300
  updateProfile(name) {
216
301
  const profile = this.getProfile(name);
@@ -221,16 +306,19 @@ export class Config {
221
306
  }
222
307
  createOrUpdateProfile(name, target) {
223
308
  const config_url = target && getConfigUrl(target);
309
+ const knownServerUrls = target ? readKnownServerUrls(target) : {};
224
310
  const data = this.getProfile(name);
225
- if (config_url) { // create a new profile on config_url
311
+ if (config_url) {
312
+ // create a new profile on config_url
226
313
  if (data) {
227
314
  throw new ProfileAlreadyExistsError(`Profile ${name} already exists.`);
228
315
  }
229
316
  else {
230
- return new ConfigureProfile(this, { name, config_url }, true);
317
+ return new ConfigureProfile(this, { name, config_url, ...knownServerUrls }, true);
231
318
  }
232
319
  }
233
- else { // update an existing profile
320
+ else {
321
+ // update an existing profile
234
322
  if (data) {
235
323
  return new ConfigureProfile(this, data, false);
236
324
  }
@@ -247,7 +335,14 @@ export class Config {
247
335
  const file = getConfigFile('profiles.json');
248
336
  writeJsonFile(file, {
249
337
  default: this.current?.name,
250
- profiles: this.profiles,
338
+ profiles: this.profiles.map((profile) => {
339
+ if (profile.apikey && !hasStoredAccessToken(profile.name)) {
340
+ return profile;
341
+ }
342
+ const { apikey, ...safeProfile } = profile;
343
+ void apikey;
344
+ return safeProfile;
345
+ }),
251
346
  });
252
347
  return this;
253
348
  }
@@ -259,22 +354,52 @@ export class Config {
259
354
  }
260
355
  }
261
356
  catch (err) {
262
- if (err.code !== 'ENOENT') {
357
+ if (!hasErrorCode(err, 'ENOENT')) {
263
358
  throw err;
264
359
  }
265
360
  }
266
361
  try {
267
362
  const data = readJsonFile(getConfigFile('profiles.json'));
268
363
  this.profiles = data.profiles;
364
+ let needsSave = false;
365
+ if (isKeyringAvailable()) {
366
+ for (const profile of this.profiles) {
367
+ if (!profile.apikey) {
368
+ continue;
369
+ }
370
+ const existingBundle = readAuthBundle(profile.name);
371
+ if (!existingBundle?.accessToken) {
372
+ try {
373
+ writeAuthBundle(profile.name, {
374
+ accessToken: profile.apikey,
375
+ accessTokenExpiresAt: readInlineTokenExpiry(profile.apikey),
376
+ refreshToken: existingBundle?.refreshToken,
377
+ refreshTokenExpiresAt: existingBundle?.refreshTokenExpiresAt,
378
+ });
379
+ }
380
+ catch {
381
+ continue;
382
+ }
383
+ }
384
+ delete profile.apikey;
385
+ needsSave = true;
386
+ }
387
+ }
269
388
  if (data.default) {
270
- this.use(data.default);
389
+ this.current = this.profiles.find((p) => p.name === data.default);
390
+ if (!this.current) {
391
+ needsSave = true;
392
+ }
271
393
  }
272
394
  else {
273
395
  this.current = undefined;
274
396
  }
397
+ if (needsSave) {
398
+ this.save();
399
+ }
275
400
  }
276
401
  catch (err) {
277
- if (err.code !== 'ENOENT') {
402
+ if (!hasErrorCode(err, 'ENOENT')) {
278
403
  throw err;
279
404
  }
280
405
  }
@@ -301,4 +426,28 @@ export class InvalidConfigUrlError extends Error {
301
426
  }
302
427
  const config = new Config().load();
303
428
  export { config };
429
+ function readInlineTokenExpiry(token) {
430
+ const decoded = jwt.decode(token, { json: true });
431
+ if (!decoded?.exp) {
432
+ return undefined;
433
+ }
434
+ return decoded.exp * 1000;
435
+ }
436
+ function readResultAccessTokenExpiry(result) {
437
+ if (typeof result.access_token_expires_at === 'number') {
438
+ return result.access_token_expires_at;
439
+ }
440
+ if (typeof result.expires_in === 'number') {
441
+ return Date.now() + result.expires_in * 1000;
442
+ }
443
+ return readInlineTokenExpiry(result.token);
444
+ }
445
+ function readKnownServerUrls(target, region = DEFAULT_REGION) {
446
+ try {
447
+ return getServerUrls(target, region);
448
+ }
449
+ catch {
450
+ return {};
451
+ }
452
+ }
304
453
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { Profile } from './index.js';
2
+ export interface StoredAuthBundle {
3
+ version: number;
4
+ accessToken?: string;
5
+ accessTokenExpiresAt?: number;
6
+ idToken?: string;
7
+ refreshToken?: string;
8
+ refreshTokenExpiresAt?: number;
9
+ oauthClientId?: string;
10
+ oauthResource?: string;
11
+ }
12
+ type WritableAuthBundle = Omit<StoredAuthBundle, 'version'>;
13
+ export declare function isKeyringAvailable(): boolean;
14
+ export declare function readAuthBundle(profileName: string): StoredAuthBundle | undefined;
15
+ export declare function writeAuthBundle(profileName: string, bundle: WritableAuthBundle): void;
16
+ export declare function deleteAuthBundle(profileName: string): void;
17
+ export declare function readProfileAccessToken(profile: Pick<Profile, 'name' | 'apikey'>): string | undefined;
18
+ export declare function readProfileRefreshToken(profileName: string): string | undefined;
19
+ export declare function getAccessTokenExpiry(token: string | undefined): number | undefined;
20
+ export declare function hasStoredAccessToken(profileName: string): boolean;
21
+ export declare function hasStoredRefreshToken(profileName: string): boolean;
22
+ export {};
23
+ //# sourceMappingURL=keyring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyring.d.ts","sourceRoot":"","sources":["../../src/profiles/keyring.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAmB1C,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAgB5D,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAyBD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAehF;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,QAY9E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,QAanD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,GAAG,SAAS,CAGpG;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CASlF;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAElE"}
@@ -0,0 +1,111 @@
1
+ import { createRequire } from 'node:module';
2
+ import jwt from 'jsonwebtoken';
3
+ const require = createRequire(import.meta.url);
4
+ const KEYRING_SERVICE = 'vertesia-cli';
5
+ const AUTH_BUNDLE_VERSION = 1;
6
+ const KEYRING_UNAVAILABLE_MESSAGE = 'Native keyring is required for Vertesia CLI profile authentication.';
7
+ let cachedKeyringModule;
8
+ function getKeyringModule() {
9
+ if (cachedKeyringModule !== undefined) {
10
+ return cachedKeyringModule ?? undefined;
11
+ }
12
+ try {
13
+ cachedKeyringModule = require('@napi-rs/keyring');
14
+ }
15
+ catch {
16
+ cachedKeyringModule = null;
17
+ }
18
+ return cachedKeyringModule ?? undefined;
19
+ }
20
+ export function isKeyringAvailable() {
21
+ return !!getKeyringModule();
22
+ }
23
+ function getEntry(profileName) {
24
+ const keyring = getKeyringModule();
25
+ if (!keyring) {
26
+ throw new Error(KEYRING_UNAVAILABLE_MESSAGE);
27
+ }
28
+ return new keyring.Entry(KEYRING_SERVICE, profileName);
29
+ }
30
+ function readRaw(profileName) {
31
+ if (!isKeyringAvailable()) {
32
+ return null;
33
+ }
34
+ try {
35
+ return getEntry(profileName).getPassword();
36
+ }
37
+ catch (error) {
38
+ const message = error instanceof Error ? error.message : String(error);
39
+ if (message.includes('not found') || message.includes('No such') || message.includes('not exist')) {
40
+ return null;
41
+ }
42
+ throw error;
43
+ }
44
+ }
45
+ export function readAuthBundle(profileName) {
46
+ const raw = readRaw(profileName);
47
+ if (!raw) {
48
+ return undefined;
49
+ }
50
+ const parsed = JSON.parse(raw);
51
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
52
+ throw new Error(`Invalid keyring payload for profile "${profileName}"`);
53
+ }
54
+ const bundle = parsed;
55
+ if (bundle.version !== AUTH_BUNDLE_VERSION) {
56
+ throw new Error(`Unsupported auth bundle version for profile "${profileName}"`);
57
+ }
58
+ return bundle;
59
+ }
60
+ export function writeAuthBundle(profileName, bundle) {
61
+ const payload = {
62
+ version: AUTH_BUNDLE_VERSION,
63
+ accessToken: bundle.accessToken,
64
+ accessTokenExpiresAt: bundle.accessTokenExpiresAt,
65
+ idToken: bundle.idToken,
66
+ refreshToken: bundle.refreshToken,
67
+ refreshTokenExpiresAt: bundle.refreshTokenExpiresAt,
68
+ oauthClientId: bundle.oauthClientId,
69
+ oauthResource: bundle.oauthResource,
70
+ };
71
+ getEntry(profileName).setPassword(JSON.stringify(payload));
72
+ }
73
+ export function deleteAuthBundle(profileName) {
74
+ if (!isKeyringAvailable()) {
75
+ return;
76
+ }
77
+ try {
78
+ getEntry(profileName).deletePassword();
79
+ }
80
+ catch (error) {
81
+ const message = error instanceof Error ? error.message : String(error);
82
+ if (message.includes('not found') || message.includes('No such') || message.includes('not exist')) {
83
+ return;
84
+ }
85
+ throw error;
86
+ }
87
+ }
88
+ export function readProfileAccessToken(profile) {
89
+ const bundle = readAuthBundle(profile.name);
90
+ return bundle?.accessToken || profile.apikey;
91
+ }
92
+ export function readProfileRefreshToken(profileName) {
93
+ return readAuthBundle(profileName)?.refreshToken;
94
+ }
95
+ export function getAccessTokenExpiry(token) {
96
+ if (!token) {
97
+ return undefined;
98
+ }
99
+ const decoded = jwt.decode(token, { json: true });
100
+ if (!decoded?.exp) {
101
+ return undefined;
102
+ }
103
+ return decoded.exp * 1000;
104
+ }
105
+ export function hasStoredAccessToken(profileName) {
106
+ return Boolean(readAuthBundle(profileName)?.accessToken);
107
+ }
108
+ export function hasStoredRefreshToken(profileName) {
109
+ return Boolean(readAuthBundle(profileName)?.refreshToken);
110
+ }
111
+ //# sourceMappingURL=keyring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyring.js","sourceRoot":"","sources":["../../src/profiles/keyring.ts"],"names":[],"mappings":"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"}