@getbrevo/cli 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/CHANGELOG.md +209 -0
  2. package/README.md +8 -5
  3. package/agent-context/AGENTS.md +59 -15
  4. package/agent-context/SKILL.md +70 -14
  5. package/dist/{templates → bin}/files/AGENTS.md.tmpl +11 -1
  6. package/dist/{templates → bin}/files/CLAUDE.md.tmpl +8 -0
  7. package/dist/{templates → bin}/files/README.md.tmpl +11 -14
  8. package/dist/bin/files/app-config.json.tmpl +16 -0
  9. package/dist/{templates → bin}/files/src/oauth/.env.example.tmpl +8 -0
  10. package/dist/{templates → bin}/files/src/oauth/.env.local.tmpl +2 -0
  11. package/dist/{templates → bin}/files/src/oauth/handler.js.tmpl +49 -7
  12. package/dist/{templates → bin}/files/src/oauth/server.js.tmpl +20 -14
  13. package/dist/{templates → bin}/files/src/oauth/token-store.js.tmpl +19 -0
  14. package/dist/bin/index.js +660 -235
  15. package/dist/bin/index.js.map +7 -1
  16. package/package.json +6 -4
  17. package/dist/api/client.d.ts +0 -25
  18. package/dist/api/client.d.ts.map +0 -1
  19. package/dist/api/client.js +0 -205
  20. package/dist/api/client.js.map +0 -1
  21. package/dist/bin/index.d.ts +0 -3
  22. package/dist/bin/index.d.ts.map +0 -1
  23. package/dist/commands/app/create.d.ts +0 -8
  24. package/dist/commands/app/create.d.ts.map +0 -1
  25. package/dist/commands/app/create.js +0 -325
  26. package/dist/commands/app/create.js.map +0 -1
  27. package/dist/commands/app/credentials.d.ts +0 -6
  28. package/dist/commands/app/credentials.d.ts.map +0 -1
  29. package/dist/commands/app/credentials.js +0 -114
  30. package/dist/commands/app/credentials.js.map +0 -1
  31. package/dist/commands/app/delete.d.ts +0 -6
  32. package/dist/commands/app/delete.d.ts.map +0 -1
  33. package/dist/commands/app/delete.js +0 -167
  34. package/dist/commands/app/delete.js.map +0 -1
  35. package/dist/commands/app/list.d.ts +0 -4
  36. package/dist/commands/app/list.d.ts.map +0 -1
  37. package/dist/commands/app/list.js +0 -71
  38. package/dist/commands/app/list.js.map +0 -1
  39. package/dist/commands/app/scaffold.d.ts +0 -5
  40. package/dist/commands/app/scaffold.d.ts.map +0 -1
  41. package/dist/commands/app/scaffold.js +0 -213
  42. package/dist/commands/app/scaffold.js.map +0 -1
  43. package/dist/commands/app/scopes.d.ts +0 -2
  44. package/dist/commands/app/scopes.d.ts.map +0 -1
  45. package/dist/commands/app/scopes.js +0 -81
  46. package/dist/commands/app/scopes.js.map +0 -1
  47. package/dist/commands/app/start.d.ts +0 -5
  48. package/dist/commands/app/start.d.ts.map +0 -1
  49. package/dist/commands/app/start.js +0 -220
  50. package/dist/commands/app/start.js.map +0 -1
  51. package/dist/commands/app/update.d.ts +0 -2
  52. package/dist/commands/app/update.d.ts.map +0 -1
  53. package/dist/commands/app/update.js +0 -444
  54. package/dist/commands/app/update.js.map +0 -1
  55. package/dist/commands/definitions.d.ts +0 -5
  56. package/dist/commands/definitions.d.ts.map +0 -1
  57. package/dist/commands/definitions.js +0 -262
  58. package/dist/commands/definitions.js.map +0 -1
  59. package/dist/commands/init.d.ts +0 -2
  60. package/dist/commands/init.d.ts.map +0 -1
  61. package/dist/commands/init.js +0 -138
  62. package/dist/commands/init.js.map +0 -1
  63. package/dist/commands/login.d.ts +0 -6
  64. package/dist/commands/login.d.ts.map +0 -1
  65. package/dist/commands/login.js +0 -251
  66. package/dist/commands/login.js.map +0 -1
  67. package/dist/commands/logout.d.ts +0 -5
  68. package/dist/commands/logout.d.ts.map +0 -1
  69. package/dist/commands/logout.js +0 -54
  70. package/dist/commands/logout.js.map +0 -1
  71. package/dist/commands/skill/install.d.ts +0 -4
  72. package/dist/commands/skill/install.d.ts.map +0 -1
  73. package/dist/commands/skill/install.js +0 -29
  74. package/dist/commands/skill/install.js.map +0 -1
  75. package/dist/commands/skill/uninstall.d.ts +0 -4
  76. package/dist/commands/skill/uninstall.d.ts.map +0 -1
  77. package/dist/commands/skill/uninstall.js +0 -23
  78. package/dist/commands/skill/uninstall.js.map +0 -1
  79. package/dist/commands/whoami.d.ts +0 -4
  80. package/dist/commands/whoami.d.ts.map +0 -1
  81. package/dist/commands/whoami.js +0 -85
  82. package/dist/commands/whoami.js.map +0 -1
  83. package/dist/container.d.ts +0 -7
  84. package/dist/container.d.ts.map +0 -1
  85. package/dist/container.js +0 -28
  86. package/dist/container.js.map +0 -1
  87. package/dist/lang/en.d.ts +0 -162
  88. package/dist/lang/en.d.ts.map +0 -1
  89. package/dist/lang/en.js +0 -189
  90. package/dist/lang/en.js.map +0 -1
  91. package/dist/lib/abort.d.ts +0 -3
  92. package/dist/lib/abort.d.ts.map +0 -1
  93. package/dist/lib/abort.js +0 -30
  94. package/dist/lib/abort.js.map +0 -1
  95. package/dist/lib/auth-guard.d.ts +0 -13
  96. package/dist/lib/auth-guard.d.ts.map +0 -1
  97. package/dist/lib/auth-guard.js +0 -60
  98. package/dist/lib/auth-guard.js.map +0 -1
  99. package/dist/lib/browser.d.ts +0 -2
  100. package/dist/lib/browser.d.ts.map +0 -1
  101. package/dist/lib/browser.js +0 -16
  102. package/dist/lib/browser.js.map +0 -1
  103. package/dist/lib/cli-version.d.ts +0 -2
  104. package/dist/lib/cli-version.d.ts.map +0 -1
  105. package/dist/lib/cli-version.js +0 -59
  106. package/dist/lib/cli-version.js.map +0 -1
  107. package/dist/lib/command-handler.d.ts +0 -10
  108. package/dist/lib/command-handler.d.ts.map +0 -1
  109. package/dist/lib/command-handler.js +0 -16
  110. package/dist/lib/command-handler.js.map +0 -1
  111. package/dist/lib/command-registry.d.ts +0 -28
  112. package/dist/lib/command-registry.d.ts.map +0 -1
  113. package/dist/lib/command-registry.js +0 -54
  114. package/dist/lib/command-registry.js.map +0 -1
  115. package/dist/lib/config.d.ts +0 -83
  116. package/dist/lib/config.d.ts.map +0 -1
  117. package/dist/lib/config.js +0 -430
  118. package/dist/lib/config.js.map +0 -1
  119. package/dist/lib/constants.d.ts +0 -48
  120. package/dist/lib/constants.d.ts.map +0 -1
  121. package/dist/lib/constants.js +0 -121
  122. package/dist/lib/constants.js.map +0 -1
  123. package/dist/lib/errors.d.ts +0 -30
  124. package/dist/lib/errors.d.ts.map +0 -1
  125. package/dist/lib/errors.js +0 -66
  126. package/dist/lib/errors.js.map +0 -1
  127. package/dist/lib/exit-codes.d.ts +0 -9
  128. package/dist/lib/exit-codes.d.ts.map +0 -1
  129. package/dist/lib/exit-codes.js +0 -12
  130. package/dist/lib/exit-codes.js.map +0 -1
  131. package/dist/lib/hidden-input.d.ts +0 -2
  132. package/dist/lib/hidden-input.d.ts.map +0 -1
  133. package/dist/lib/hidden-input.js +0 -78
  134. package/dist/lib/hidden-input.js.map +0 -1
  135. package/dist/lib/json-output.d.ts +0 -6
  136. package/dist/lib/json-output.d.ts.map +0 -1
  137. package/dist/lib/json-output.js +0 -11
  138. package/dist/lib/json-output.js.map +0 -1
  139. package/dist/lib/logger.d.ts +0 -11
  140. package/dist/lib/logger.d.ts.map +0 -1
  141. package/dist/lib/logger.js +0 -110
  142. package/dist/lib/logger.js.map +0 -1
  143. package/dist/lib/oauth-freshness.d.ts +0 -30
  144. package/dist/lib/oauth-freshness.d.ts.map +0 -1
  145. package/dist/lib/oauth-freshness.js +0 -61
  146. package/dist/lib/oauth-freshness.js.map +0 -1
  147. package/dist/lib/port.d.ts +0 -25
  148. package/dist/lib/port.d.ts.map +0 -1
  149. package/dist/lib/port.js +0 -103
  150. package/dist/lib/port.js.map +0 -1
  151. package/dist/lib/telemetry.d.ts +0 -9
  152. package/dist/lib/telemetry.d.ts.map +0 -1
  153. package/dist/lib/telemetry.js +0 -57
  154. package/dist/lib/telemetry.js.map +0 -1
  155. package/dist/lib/ui.d.ts +0 -14
  156. package/dist/lib/ui.d.ts.map +0 -1
  157. package/dist/lib/ui.js +0 -75
  158. package/dist/lib/ui.js.map +0 -1
  159. package/dist/lib/update-notifier.d.ts +0 -37
  160. package/dist/lib/update-notifier.d.ts.map +0 -1
  161. package/dist/lib/update-notifier.js +0 -298
  162. package/dist/lib/update-notifier.js.map +0 -1
  163. package/dist/lib/validators.d.ts +0 -55
  164. package/dist/lib/validators.d.ts.map +0 -1
  165. package/dist/lib/validators.js +0 -166
  166. package/dist/lib/validators.js.map +0 -1
  167. package/dist/services/account.d.ts +0 -8
  168. package/dist/services/account.d.ts.map +0 -1
  169. package/dist/services/account.js +0 -15
  170. package/dist/services/account.js.map +0 -1
  171. package/dist/services/app.d.ts +0 -38
  172. package/dist/services/app.d.ts.map +0 -1
  173. package/dist/services/app.js +0 -145
  174. package/dist/services/app.js.map +0 -1
  175. package/dist/services/browser-auth.d.ts +0 -15
  176. package/dist/services/browser-auth.d.ts.map +0 -1
  177. package/dist/services/browser-auth.js +0 -188
  178. package/dist/services/browser-auth.js.map +0 -1
  179. package/dist/services/normalize-app-id.d.ts +0 -12
  180. package/dist/services/normalize-app-id.d.ts.map +0 -1
  181. package/dist/services/normalize-app-id.js +0 -38
  182. package/dist/services/normalize-app-id.js.map +0 -1
  183. package/dist/services/oauth-metadata.d.ts +0 -7
  184. package/dist/services/oauth-metadata.d.ts.map +0 -1
  185. package/dist/services/oauth-metadata.js +0 -43
  186. package/dist/services/oauth-metadata.js.map +0 -1
  187. package/dist/services/oauth-refresh.d.ts +0 -14
  188. package/dist/services/oauth-refresh.d.ts.map +0 -1
  189. package/dist/services/oauth-refresh.js +0 -70
  190. package/dist/services/oauth-refresh.js.map +0 -1
  191. package/dist/services/scopes-html.d.ts +0 -3
  192. package/dist/services/scopes-html.d.ts.map +0 -1
  193. package/dist/services/scopes-html.js +0 -516
  194. package/dist/services/scopes-html.js.map +0 -1
  195. package/dist/services/scopes-web.d.ts +0 -12
  196. package/dist/services/scopes-web.d.ts.map +0 -1
  197. package/dist/services/scopes-web.js +0 -95
  198. package/dist/services/scopes-web.js.map +0 -1
  199. package/dist/services/skill.d.ts +0 -48
  200. package/dist/services/skill.d.ts.map +0 -1
  201. package/dist/services/skill.js +0 -223
  202. package/dist/services/skill.js.map +0 -1
  203. package/dist/skills/index.d.ts +0 -47
  204. package/dist/skills/index.d.ts.map +0 -1
  205. package/dist/skills/index.js +0 -61
  206. package/dist/skills/index.js.map +0 -1
  207. package/dist/templates/files/app-config.json.tmpl +0 -25
  208. package/dist/templates/index.d.ts +0 -36
  209. package/dist/templates/index.d.ts.map +0 -1
  210. package/dist/templates/index.js +0 -105
  211. package/dist/templates/index.js.map +0 -1
  212. package/dist/types.d.ts +0 -32
  213. package/dist/types.d.ts.map +0 -1
  214. package/dist/types.js +0 -3
  215. package/dist/types.js.map +0 -1
  216. /package/dist/{templates → bin}/files/gitignore.tmpl +0 -0
  217. /package/dist/{templates → bin}/files/src/oauth/package.json.tmpl +0 -0
@@ -1,444 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.updateCommand = void 0;
40
- const fs = __importStar(require("node:fs"));
41
- const path = __importStar(require("node:path"));
42
- const logger_1 = require("../../lib/logger");
43
- const en_1 = require("../../lang/en");
44
- const command_handler_1 = require("../../lib/command-handler");
45
- const json_output_1 = require("../../lib/json-output");
46
- const errors_1 = require("../../lib/errors");
47
- const container_1 = require("../../container");
48
- const ui_1 = require("../../lib/ui");
49
- const config_1 = require("../../lib/config");
50
- const validators_1 = require("../../lib/validators");
51
- const constants_1 = require("../../lib/constants");
52
- const inquirer_1 = __importDefault(require("inquirer"));
53
- const NON_INTERACTIVE_CONFIRM_ERROR = 'Cannot prompt for confirmation in non-interactive mode. Use --yes or --json to skip.';
54
- // File exists but readProjectConfig returned null — invalid JSON or missing appId
55
- function assertConfigFileUsable() {
56
- const configPath = path.resolve(process.cwd(), 'app-config.json');
57
- if (!fs.existsSync(configPath))
58
- return;
59
- let raw;
60
- try {
61
- raw = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
62
- }
63
- catch {
64
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_INVALID_JSON);
65
- }
66
- if (!raw ||
67
- typeof raw !== 'object' ||
68
- !('appId' in raw) ||
69
- !raw.appId) {
70
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_MISSING_APP_ID);
71
- }
72
- }
73
- // No flags and no usable config: emit a specific error.
74
- function throwNoUpdateSource(config, configAppIdValid, configAppId, flagAppId) {
75
- // File exists but appId is empty/invalid — surface that over a
76
- // mismatch error, which would otherwise quote a garbage configAppId.
77
- if (config != null && !configAppIdValid) {
78
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_INVALID_APP_ID);
79
- }
80
- if (config != null && flagAppId && flagAppId !== configAppId) {
81
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_APP_ID_MISMATCH(flagAppId, configAppId));
82
- }
83
- assertConfigFileUsable();
84
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_NOTHING_TO_UPDATE);
85
- }
86
- // Resolve appId: flag > config
87
- function resolveAppId(flagAppId, configAppId, config) {
88
- if (flagAppId)
89
- return flagAppId;
90
- if (configAppId)
91
- return configAppId;
92
- if (config)
93
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_INVALID_APP_ID);
94
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_NO_APP_RESOLVED);
95
- }
96
- async function confirmUpdate() {
97
- const { confirmed } = await inquirer_1.default.prompt([
98
- {
99
- type: 'confirm',
100
- name: 'confirmed',
101
- message: en_1.messages.APP_UPDATE_CONFIRM,
102
- default: true,
103
- },
104
- ]);
105
- if (!confirmed) {
106
- (0, logger_1.logInfo)(`\n ${en_1.messages.APP_UPDATE_CANCELLED}\n`);
107
- return false;
108
- }
109
- return true;
110
- }
111
- function reportUpdateResult(params, jsonMode) {
112
- if (jsonMode) {
113
- (0, json_output_1.jsonOutput)({
114
- app_id: params.appId,
115
- name: params.name,
116
- redirect_uris: params.redirectUris,
117
- scopes: params.scopes,
118
- ...(params.logoUri ? { logo_uri: params.logoUri } : {}),
119
- });
120
- return;
121
- }
122
- (0, logger_1.logSuccess)(en_1.messages.APP_UPDATE_SUCCESS);
123
- if (params.name) {
124
- (0, logger_1.logInfo)(` Name: ${params.name}`);
125
- }
126
- (0, logger_1.logInfo)(` Redirect URLs: ${params.redirectUris.length > 0 ? params.redirectUris.join(', ') : '(none)'}`);
127
- (0, logger_1.logInfo)(` Scopes: ${params.scopes.length > 0 ? params.scopes.join(', ') : '(none)'}`);
128
- if (params.logoUri) {
129
- (0, logger_1.logInfo)(` Logo URL: ${params.logoUri}`);
130
- }
131
- if (params.configWrittenBack) {
132
- (0, logger_1.logInfo)(' app-config.json updated.');
133
- }
134
- process.stdout.write('\n');
135
- }
136
- // No flags provided: push full config from app-config.json.
137
- async function pushFullConfig(appId, config, options) {
138
- const redirectUrls = config.auth?.redirectUrls;
139
- if (!redirectUrls || redirectUrls.length === 0) {
140
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_NO_REDIRECT_URLS);
141
- }
142
- validateRedirectUrls(redirectUrls);
143
- const nextScopes = config.auth?.scopes ?? [];
144
- (0, validators_1.validateScopes)(nextScopes);
145
- // The legacy 'all' scope is deprecated — block the push and point at the
146
- // migration path (--scope). No silent rewrite, no escape hatch (BEX-214).
147
- if ((0, validators_1.containsLegacyAllScope)(nextScopes)) {
148
- throw new errors_1.CliError(en_1.messages.LEGACY_ALL_SCOPE_DEPRECATED_BLOCK);
149
- }
150
- if (!options.json) {
151
- // Fail fast before the network fetch when we'd have nowhere to show the diff.
152
- if (!options.yes && !process.stdin.isTTY) {
153
- throw new errors_1.CliError(NON_INTERACTIVE_CONFIRM_ERROR);
154
- }
155
- // Fetch current remote state so the summary can show deltas vs. what the
156
- // push will apply. Hard-fail on fetch error — the user asked for a diff.
157
- const remote = await fetchExistingApp(appId, options.json);
158
- renderUpdateSummary({
159
- appId,
160
- currentName: remote.name,
161
- nextName: config.appName,
162
- currentUrls: remote.redirect_uris ?? [],
163
- nextUrls: redirectUrls,
164
- currentLogoUri: remote.logo_uri,
165
- nextLogoUri: config.logoUri,
166
- currentScopes: remote.scopes ?? [],
167
- nextScopes,
168
- });
169
- }
170
- if (!options.json && !options.yes && !(await confirmUpdate())) {
171
- return;
172
- }
173
- const spinner = (0, ui_1.createSpinner)('Updating app...', { silent: options.json });
174
- await container_1.appService.updateApp(appId, {
175
- name: config.appName,
176
- redirect_uris: redirectUrls,
177
- scopes: nextScopes,
178
- ...(config.logoUri ? { logo_uri: config.logoUri } : {}),
179
- });
180
- spinner.stop();
181
- if (config.appName)
182
- (0, config_1.saveAppName)(appId, config.appName);
183
- reportUpdateResult({
184
- appId,
185
- name: config.appName,
186
- redirectUris: redirectUrls,
187
- scopes: nextScopes,
188
- logoUri: config.logoUri,
189
- }, options.json);
190
- }
191
- async function resolveExistingState(appId, config, shouldWriteBack, silent) {
192
- const configRedirectUrls = config?.auth?.redirectUrls;
193
- const hasUsableConfigRedirectUrls = Array.isArray(configRedirectUrls) && configRedirectUrls.length > 0;
194
- if (config && shouldWriteBack && hasUsableConfigRedirectUrls) {
195
- // Use config as baseline only when it can safely preserve redirect URLs
196
- return {
197
- name: config.appName,
198
- redirectUrls: configRedirectUrls,
199
- logoUri: config.logoUri,
200
- scopes: config.auth?.scopes ?? [],
201
- };
202
- }
203
- if (config && shouldWriteBack) {
204
- // Config matches the app, but missing/empty redirect URLs would otherwise clear
205
- // remote redirect URIs on a name-only update. Fall back to the API for preservation.
206
- const app = await fetchExistingApp(appId, silent);
207
- return {
208
- name: config.appName ?? app.name,
209
- redirectUrls: app.redirect_uris ?? [],
210
- logoUri: config.logoUri ?? app.logo_uri,
211
- scopes: config.auth?.scopes ?? app.scopes ?? [],
212
- };
213
- }
214
- const app = await fetchExistingApp(appId, silent);
215
- return {
216
- name: app.name,
217
- redirectUrls: app.redirect_uris ?? [],
218
- logoUri: app.logo_uri,
219
- scopes: app.scopes ?? [],
220
- };
221
- }
222
- function appendUnique(existing, additions) {
223
- const merged = [...existing];
224
- for (const item of additions) {
225
- if (!merged.includes(item)) {
226
- merged.push(item);
227
- }
228
- }
229
- return merged;
230
- }
231
- // Passing --scope signals migration intent: drop the deprecated legacy 'all'
232
- // scope from the merge baseline so the outgoing payload is clean (BEX-214).
233
- function mergeScopes(existingScopes, appendedScopes) {
234
- const hasScopeFlag = appendedScopes.length > 0;
235
- const migratingLegacyScopes = hasScopeFlag && (0, validators_1.containsLegacyAllScope)(existingScopes);
236
- const baseline = migratingLegacyScopes
237
- ? existingScopes.filter((s) => s !== constants_1.LEGACY_ALL_SCOPE)
238
- : existingScopes;
239
- const mergedScopes = appendUnique(baseline, appendedScopes);
240
- // Block any outgoing payload that still carries 'all' — either no --scope
241
- // was passed (no migration intent), or 'all' was explicitly re-added.
242
- if ((0, validators_1.containsLegacyAllScope)(mergedScopes)) {
243
- throw new errors_1.CliError(en_1.messages.LEGACY_ALL_SCOPE_DEPRECATED_BLOCK);
244
- }
245
- return { mergedScopes, migratingLegacyScopes };
246
- }
247
- // Write back to app-config.json if appropriate
248
- function writeBackProjectConfig(config, shouldWriteBack, options, mergedUrls, mergedScopes) {
249
- if (!shouldWriteBack || !config) {
250
- return false;
251
- }
252
- const updatedConfig = { ...config };
253
- if (options.name) {
254
- updatedConfig.appName = options.name;
255
- }
256
- if (options.logoUri) {
257
- updatedConfig.logoUri = options.logoUri;
258
- }
259
- updatedConfig.auth = {
260
- ...updatedConfig.auth,
261
- redirectUrls: mergedUrls,
262
- scopes: mergedScopes,
263
- };
264
- (0, config_1.writeProjectConfig)(updatedConfig);
265
- return true;
266
- }
267
- // Flags provided: merge with existing values
268
- async function updateWithFlags(appId, config, shouldWriteBack, options) {
269
- const existing = await resolveExistingState(appId, config, shouldWriteBack, options.json);
270
- // Merge: --name wins, --redirect-uri appends (deduplicated), --logo-uri wins
271
- const finalName = options.name ?? existing.name;
272
- const mergedUrls = appendUnique(existing.redirectUrls, options.redirectUri ?? []);
273
- const finalLogoUri = options.logoUri ?? existing.logoUri;
274
- const { mergedScopes, migratingLegacyScopes } = mergeScopes(existing.scopes, options.scope ?? []);
275
- const hasRedirectUriFlag = options.redirectUri !== undefined;
276
- if (hasRedirectUriFlag && mergedUrls.length === 0) {
277
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_NO_REDIRECT_URLS);
278
- }
279
- if (mergedUrls.length > 0) {
280
- validateRedirectUrls(mergedUrls);
281
- }
282
- (0, validators_1.validateScopes)(mergedScopes);
283
- if (!options.json) {
284
- renderUpdateSummary({
285
- appId,
286
- currentName: existing.name,
287
- nextName: finalName,
288
- currentUrls: existing.redirectUrls,
289
- nextUrls: mergedUrls,
290
- currentLogoUri: existing.logoUri,
291
- nextLogoUri: finalLogoUri,
292
- currentScopes: existing.scopes,
293
- nextScopes: mergedScopes,
294
- migratingLegacyScopes,
295
- });
296
- }
297
- if (!options.json && !options.yes) {
298
- if (!process.stdin.isTTY) {
299
- throw new errors_1.CliError(NON_INTERACTIVE_CONFIRM_ERROR);
300
- }
301
- if (!(await confirmUpdate())) {
302
- return;
303
- }
304
- }
305
- const spinner = (0, ui_1.createSpinner)('Updating app...', { silent: options.json });
306
- await container_1.appService.updateApp(appId, {
307
- name: finalName,
308
- redirect_uris: mergedUrls,
309
- scopes: mergedScopes,
310
- ...(finalLogoUri ? { logo_uri: finalLogoUri } : {}),
311
- });
312
- spinner.stop();
313
- if (finalName)
314
- (0, config_1.saveAppName)(appId, finalName);
315
- const configWrittenBack = writeBackProjectConfig(config, shouldWriteBack, options, mergedUrls, mergedScopes);
316
- reportUpdateResult({
317
- appId,
318
- name: finalName,
319
- redirectUris: mergedUrls,
320
- scopes: mergedScopes,
321
- logoUri: finalLogoUri,
322
- configWrittenBack,
323
- }, options.json);
324
- }
325
- exports.updateCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
326
- const config = (0, config_1.readProjectConfig)();
327
- const hasFlags = !!(options.name !== undefined ||
328
- (options.redirectUri && options.redirectUri.length > 0) ||
329
- options.logoUri !== undefined ||
330
- (options.scope && options.scope.length > 0));
331
- // Validate --name if provided (even empty strings)
332
- if (options.name !== undefined) {
333
- const nameCheck = (0, validators_1.validateAppName)(options.name);
334
- if (nameCheck !== true)
335
- throw new errors_1.CliError(nameCheck);
336
- }
337
- // readProjectConfig normalizes appId (trim + coerce finite numbers, reject
338
- // empty) so `config.appId` is a guaranteed non-empty string whenever `config`
339
- // is non-null.
340
- const configAppId = config?.appId;
341
- const configAppIdValid = !!configAppId;
342
- // app-config.json is only usable when it describes the app being updated.
343
- // When --app-id differs from config.appId, the local file belongs to a
344
- // different app and must not be used as the update payload or merge base.
345
- const configMatches = configAppIdValid && (!options.appId || options.appId === configAppId);
346
- if (!hasFlags && !configMatches) {
347
- throwNoUpdateSource(config, configAppIdValid, configAppId, options.appId);
348
- }
349
- const appId = resolveAppId(options.appId, configAppId, config);
350
- // Write back only when config describes the app being updated.
351
- const shouldWriteBack = configMatches;
352
- if (!hasFlags) {
353
- // config is guaranteed non-null here — the !hasFlags && !configMatches case throws above
354
- await pushFullConfig(appId, config, options);
355
- return;
356
- }
357
- await updateWithFlags(appId, config, shouldWriteBack, options);
358
- });
359
- async function fetchExistingApp(appId, silent) {
360
- const spinner = (0, ui_1.createSpinner)('Fetching app...', { silent });
361
- let app;
362
- try {
363
- app = await container_1.appService.fetchApp(appId);
364
- }
365
- finally {
366
- spinner.stop();
367
- }
368
- if (!app) {
369
- throw new errors_1.CliError(`App ${appId} not found.`);
370
- }
371
- return app;
372
- }
373
- // Diff `current` vs `next`: next values keep their order (tagged `(new)` when
374
- // absent from current), values dropped from current trail with `(removed)`.
375
- function diffLines(current, next) {
376
- const currentSet = new Set(current);
377
- const nextSet = new Set(next);
378
- return [
379
- ...next.map((v) => (currentSet.has(v) ? v : `${v} (new)`)),
380
- ...current.filter((v) => !nextSet.has(v)).map((v) => `${v} (removed)`),
381
- ];
382
- }
383
- // Print a labelled block; continuation lines are indented to align under the
384
- // first value.
385
- function logAligned(label, lines) {
386
- lines.forEach((line, i) => {
387
- (0, logger_1.logInfo)(`${i === 0 ? label : ' '}${line}`);
388
- });
389
- }
390
- function renderNameLine(currentName, nextName) {
391
- if (!nextName) {
392
- return;
393
- }
394
- const renamePrefix = currentName && currentName !== nextName ? `${currentName} → ` : '';
395
- (0, logger_1.logInfo)(` Name: ${renamePrefix}${nextName}`);
396
- }
397
- function renderScopeLines(currentScopes, nextScopes) {
398
- if (nextScopes === undefined) {
399
- return;
400
- }
401
- const lines = diffLines(currentScopes ?? [], nextScopes);
402
- logAligned(' Scopes: ', lines.length > 0 ? lines : ['(none)']);
403
- }
404
- function renderLogoLine(currentLogoUri, nextLogoUri) {
405
- const label = ' Logo URL: ';
406
- if (currentLogoUri && nextLogoUri && currentLogoUri !== nextLogoUri) {
407
- (0, logger_1.logInfo)(`${label}${currentLogoUri} → ${nextLogoUri}`);
408
- }
409
- else if (nextLogoUri) {
410
- (0, logger_1.logInfo)(`${label}${nextLogoUri}`);
411
- }
412
- else if (currentLogoUri) {
413
- (0, logger_1.logInfo)(`${label}${currentLogoUri} (unchanged)`);
414
- }
415
- }
416
- function renderUpdateSummary(params) {
417
- (0, logger_1.logInfo)('');
418
- (0, logger_1.logInfo)(` ${en_1.messages.APP_UPDATE_SUMMARY}`);
419
- (0, logger_1.logInfo)(` App ID: ${params.appId}`);
420
- renderNameLine(params.currentName, params.nextName);
421
- logAligned(' Redirect URLs: ', diffLines(params.currentUrls, params.nextUrls));
422
- if (params.migratingLegacyScopes) {
423
- (0, logger_1.logInfo)(` ${en_1.messages.LEGACY_ALL_SCOPE_UPDATE_MIGRATING}`);
424
- }
425
- renderScopeLines(params.currentScopes, params.nextScopes);
426
- renderLogoLine(params.currentLogoUri, params.nextLogoUri);
427
- (0, logger_1.logInfo)('');
428
- }
429
- function validateRedirectUrls(urls) {
430
- for (const url of urls) {
431
- try {
432
- const parsed = new URL(url);
433
- if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
434
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_INVALID_REDIRECT_PROTOCOL(url));
435
- }
436
- }
437
- catch (err) {
438
- if (err instanceof errors_1.CliError)
439
- throw err;
440
- throw new errors_1.CliError(en_1.messages.APP_UPDATE_INVALID_REDIRECT_URL(url));
441
- }
442
- }
443
- }
444
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/app/update.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { CommandDefinition, SubcommandGroupDefinition } from '../lib/command-registry';
2
- export declare const topLevelCommands: CommandDefinition[];
3
- export declare const appCommandGroup: SubcommandGroupDefinition;
4
- export declare const skillCommandGroup: SubcommandGroupDefinition;
5
- //# sourceMappingURL=definitions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/commands/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAwBvF,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,EA8B/C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,yBAuM7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,yBAoB/B,CAAC"}