@getbrevo/cli 1.0.0 → 1.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 (131) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +26 -51
  3. package/agent-context/AGENTS.md +70 -10
  4. package/agent-context/SKILL.md +51 -3
  5. package/dist/api/client.d.ts +1 -1
  6. package/dist/api/client.d.ts.map +1 -1
  7. package/dist/api/client.js +4 -2
  8. package/dist/api/client.js.map +1 -1
  9. package/dist/bin/index.js +31 -19
  10. package/dist/bin/index.js.map +1 -1
  11. package/dist/commands/app/create.d.ts +1 -0
  12. package/dist/commands/app/create.d.ts.map +1 -1
  13. package/dist/commands/app/create.js +57 -20
  14. package/dist/commands/app/create.js.map +1 -1
  15. package/dist/commands/app/credentials.d.ts.map +1 -1
  16. package/dist/commands/app/credentials.js +73 -71
  17. package/dist/commands/app/credentials.js.map +1 -1
  18. package/dist/commands/app/delete.d.ts.map +1 -1
  19. package/dist/commands/app/delete.js +9 -8
  20. package/dist/commands/app/delete.js.map +1 -1
  21. package/dist/commands/app/list.d.ts.map +1 -1
  22. package/dist/commands/app/list.js +1 -0
  23. package/dist/commands/app/list.js.map +1 -1
  24. package/dist/commands/app/scaffold.d.ts.map +1 -1
  25. package/dist/commands/app/scaffold.js +71 -71
  26. package/dist/commands/app/scaffold.js.map +1 -1
  27. package/dist/commands/app/scopes.d.ts +2 -0
  28. package/dist/commands/app/scopes.d.ts.map +1 -0
  29. package/dist/commands/app/scopes.js +79 -0
  30. package/dist/commands/app/scopes.js.map +1 -0
  31. package/dist/commands/app/start.d.ts.map +1 -1
  32. package/dist/commands/app/start.js +38 -48
  33. package/dist/commands/app/start.js.map +1 -1
  34. package/dist/commands/app/update.d.ts.map +1 -1
  35. package/dist/commands/app/update.js +90 -5
  36. package/dist/commands/app/update.js.map +1 -1
  37. package/dist/commands/definitions.d.ts +1 -0
  38. package/dist/commands/definitions.d.ts.map +1 -1
  39. package/dist/commands/definitions.js +67 -2
  40. package/dist/commands/definitions.js.map +1 -1
  41. package/dist/commands/init.d.ts.map +1 -1
  42. package/dist/commands/init.js +73 -57
  43. package/dist/commands/init.js.map +1 -1
  44. package/dist/commands/login.d.ts.map +1 -1
  45. package/dist/commands/login.js +50 -38
  46. package/dist/commands/login.js.map +1 -1
  47. package/dist/commands/skill/install.d.ts +4 -0
  48. package/dist/commands/skill/install.d.ts.map +1 -0
  49. package/dist/commands/skill/install.js +29 -0
  50. package/dist/commands/skill/install.js.map +1 -0
  51. package/dist/commands/skill/uninstall.d.ts +4 -0
  52. package/dist/commands/skill/uninstall.d.ts.map +1 -0
  53. package/dist/commands/skill/uninstall.js +23 -0
  54. package/dist/commands/skill/uninstall.js.map +1 -0
  55. package/dist/commands/whoami.d.ts.map +1 -1
  56. package/dist/commands/whoami.js +5 -1
  57. package/dist/commands/whoami.js.map +1 -1
  58. package/dist/lang/en.d.ts +30 -2
  59. package/dist/lang/en.d.ts.map +1 -1
  60. package/dist/lang/en.js +32 -2
  61. package/dist/lang/en.js.map +1 -1
  62. package/dist/lib/auth-guard.d.ts.map +1 -1
  63. package/dist/lib/auth-guard.js +8 -2
  64. package/dist/lib/auth-guard.js.map +1 -1
  65. package/dist/lib/browser.js +4 -4
  66. package/dist/lib/browser.js.map +1 -1
  67. package/dist/lib/cli-version.d.ts +2 -0
  68. package/dist/lib/cli-version.d.ts.map +1 -0
  69. package/dist/lib/cli-version.js +59 -0
  70. package/dist/lib/cli-version.js.map +1 -0
  71. package/dist/lib/command-registry.js +1 -1
  72. package/dist/lib/command-registry.js.map +1 -1
  73. package/dist/lib/config.d.ts +3 -1
  74. package/dist/lib/config.d.ts.map +1 -1
  75. package/dist/lib/config.js +41 -7
  76. package/dist/lib/config.js.map +1 -1
  77. package/dist/lib/constants.d.ts +6 -1
  78. package/dist/lib/constants.d.ts.map +1 -1
  79. package/dist/lib/constants.js +16 -8
  80. package/dist/lib/constants.js.map +1 -1
  81. package/dist/lib/hidden-input.js +1 -1
  82. package/dist/lib/hidden-input.js.map +1 -1
  83. package/dist/lib/logger.d.ts.map +1 -1
  84. package/dist/lib/logger.js +14 -4
  85. package/dist/lib/logger.js.map +1 -1
  86. package/dist/lib/update-notifier.d.ts.map +1 -1
  87. package/dist/lib/update-notifier.js +11 -11
  88. package/dist/lib/update-notifier.js.map +1 -1
  89. package/dist/lib/validators.d.ts +17 -0
  90. package/dist/lib/validators.d.ts.map +1 -1
  91. package/dist/lib/validators.js +65 -0
  92. package/dist/lib/validators.js.map +1 -1
  93. package/dist/services/app.d.ts +3 -0
  94. package/dist/services/app.d.ts.map +1 -1
  95. package/dist/services/app.js +6 -1
  96. package/dist/services/app.js.map +1 -1
  97. package/dist/services/browser-auth.js +9 -8
  98. package/dist/services/browser-auth.js.map +1 -1
  99. package/dist/services/oauth-metadata.d.ts +7 -0
  100. package/dist/services/oauth-metadata.d.ts.map +1 -0
  101. package/dist/services/oauth-metadata.js +43 -0
  102. package/dist/services/oauth-metadata.js.map +1 -0
  103. package/dist/services/scopes-html.d.ts +3 -0
  104. package/dist/services/scopes-html.d.ts.map +1 -0
  105. package/dist/services/scopes-html.js +337 -0
  106. package/dist/services/scopes-html.js.map +1 -0
  107. package/dist/services/scopes-web.d.ts +12 -0
  108. package/dist/services/scopes-web.d.ts.map +1 -0
  109. package/dist/services/scopes-web.js +95 -0
  110. package/dist/services/scopes-web.js.map +1 -0
  111. package/dist/services/skill.d.ts +48 -0
  112. package/dist/services/skill.d.ts.map +1 -0
  113. package/dist/services/skill.js +223 -0
  114. package/dist/services/skill.js.map +1 -0
  115. package/dist/skills/index.d.ts +47 -0
  116. package/dist/skills/index.d.ts.map +1 -0
  117. package/dist/skills/index.js +61 -0
  118. package/dist/skills/index.js.map +1 -0
  119. package/dist/templates/files/AGENTS.md.tmpl +6 -1
  120. package/dist/templates/files/CLAUDE.md.tmpl +2 -2
  121. package/dist/templates/files/README.md.tmpl +3 -1
  122. package/dist/templates/files/app-config.json.tmpl +1 -1
  123. package/dist/templates/index.js +2 -2
  124. package/dist/templates/index.js.map +1 -1
  125. package/dist/types.d.ts +2 -0
  126. package/dist/types.d.ts.map +1 -1
  127. package/package.json +4 -3
  128. package/dist/lib/min-version-check.d.ts +0 -15
  129. package/dist/lib/min-version-check.d.ts.map +0 -1
  130. package/dist/lib/min-version-check.js +0 -33
  131. package/dist/lib/min-version-check.js.map +0 -1
@@ -84,20 +84,8 @@ function formatFileTree(filePaths) {
84
84
  render(tree, ' ');
85
85
  return lines.join('\n');
86
86
  }
87
- exports.scaffoldCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
88
- // Refuse to scaffold inside an existing project app-config.json in cwd
89
- // means the user is already in a scaffolded project and likely meant to
90
- // run `brevo app update` instead.
91
- if (fs.existsSync(path.join(process.cwd(), 'app-config.json'))) {
92
- throw new errors_1.CliError(en_1.messages.APP_SCAFFOLD_ALREADY_IN_PROJECT);
93
- }
94
- let appId = options.appId;
95
- // Pick app if not specified
96
- if (!appId) {
97
- appId = await container_1.appService.pickApp('Select an app:');
98
- }
99
- // Fetch app details from API and sync local cache
100
- const spinner = (0, ui_1.createSpinner)('Fetching app details...', { silent: options.json });
87
+ async function fetchAppContext(appId, silent) {
88
+ const spinner = (0, ui_1.createSpinner)('Fetching app details...', { silent });
101
89
  const result = await container_1.appService.resolveAppCredentials(appId);
102
90
  spinner.stop();
103
91
  const appDetails = result?.app ?? null;
@@ -107,22 +95,18 @@ exports.scaffoldCommand = (0, command_handler_1.withCommandHandler)(async (optio
107
95
  }
108
96
  container_1.appService.syncAppCredentials(appId, result.app);
109
97
  }
110
- const clientId = appDetails?.client_id || constants_1.PLACEHOLDER_CLIENT_ID;
111
- const clientSecret = appDetails?.client_secret || 'YOUR_CLIENT_SECRET';
112
- // Use redirect URLs from the app (set during app create).
113
- // For the local test server, prefer a localhost URL from the registered
114
- // list. Fall back to DEFAULT_REDIRECT_URI so the scaffold works out of
115
- // the box even when only production URLs are registered.
116
98
  const serverRedirectUrls = appDetails?.redirect_uris ?? [];
117
99
  const redirectUrls = serverRedirectUrls.length > 0 ? serverRedirectUrls : [constants_1.DEFAULT_REDIRECT_URI];
118
100
  const localhostUri = redirectUrls.find((url) => url.startsWith('http://localhost') || url.startsWith('http://127.0.0.1'));
119
- const redirectUri = localhostUri || constants_1.DEFAULT_REDIRECT_URI;
120
- // Prompt for output directory — default to app name slugified for filesystem
121
- const slug = (appDetails?.name || 'my-app')
122
- .toLowerCase()
123
- .replaceAll(/[^a-z0-9]+/g, '-')
124
- .replace(/^-|-$/g, '') || 'my-app';
125
- const defaultDir = `./${slug}`;
101
+ return {
102
+ appDetails: appDetails,
103
+ clientId: appDetails?.client_id || constants_1.PLACEHOLDER_CLIENT_ID,
104
+ clientSecret: appDetails?.client_secret || 'YOUR_CLIENT_SECRET',
105
+ redirectUrls,
106
+ redirectUri: localhostUri || constants_1.DEFAULT_REDIRECT_URI,
107
+ };
108
+ }
109
+ async function resolveTargetDir(defaultDir) {
126
110
  const { outputDir } = await inquirer_1.default.prompt([
127
111
  {
128
112
  type: 'input',
@@ -132,72 +116,88 @@ exports.scaffoldCommand = (0, command_handler_1.withCommandHandler)(async (optio
132
116
  },
133
117
  ]);
134
118
  const targetDir = path.resolve(outputDir);
135
- // Handle existing directory
136
- let mergeOnly = false;
137
- if (fs.existsSync(targetDir)) {
138
- const { action } = await inquirer_1.default.prompt([
139
- {
140
- type: 'list',
141
- name: 'action',
142
- message: en_1.messages.APP_SCAFFOLD_DIR_EXISTS,
143
- choices: [
144
- { name: 'Overwrite existing files', value: 'overwrite' },
145
- { name: 'Merge (keep existing, add missing)', value: 'merge' },
146
- { name: 'Choose a different path', value: 'new' },
147
- ],
148
- },
149
- ]);
150
- if (action === 'new') {
151
- return (0, exports.scaffoldCommand)({ ...options, appId });
152
- }
153
- if (action === 'merge') {
154
- mergeOnly = true;
155
- }
119
+ if (!fs.existsSync(targetDir)) {
120
+ return { targetDir, mergeOnly: false, chooseAgain: false };
121
+ }
122
+ const { action } = await inquirer_1.default.prompt([
123
+ {
124
+ type: 'list',
125
+ name: 'action',
126
+ message: en_1.messages.APP_SCAFFOLD_DIR_EXISTS,
127
+ choices: [
128
+ { name: 'Overwrite existing files', value: 'overwrite' },
129
+ { name: 'Merge (keep existing, add missing)', value: 'merge' },
130
+ { name: 'Choose a different path', value: 'new' },
131
+ ],
132
+ },
133
+ ]);
134
+ return {
135
+ targetDir,
136
+ mergeOnly: action === 'merge',
137
+ chooseAgain: action === 'new',
138
+ };
139
+ }
140
+ function writeScaffoldFiles(files, targetDir, mergeOnly) {
141
+ let written = 0;
142
+ for (const file of files) {
143
+ const filePath = path.join(targetDir, file.name);
144
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
145
+ if (mergeOnly && fs.existsSync(filePath))
146
+ continue;
147
+ // Write .env.local with restricted permissions to protect secrets
148
+ const writeOptions = file.name.endsWith('.env.local') ? { mode: 0o600 } : {};
149
+ fs.writeFileSync(filePath, file.content, { encoding: 'utf-8', ...writeOptions });
150
+ written++;
151
+ }
152
+ return written;
153
+ }
154
+ exports.scaffoldCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
155
+ // Refuse to scaffold inside an existing project — app-config.json in cwd
156
+ // means the user is already in a scaffolded project and likely meant to
157
+ // run `brevo app update` instead.
158
+ if (fs.existsSync(path.join(process.cwd(), 'app-config.json'))) {
159
+ throw new errors_1.CliError(en_1.messages.APP_SCAFFOLD_ALREADY_IN_PROJECT);
156
160
  }
157
- const rawAppName = appDetails?.name || path.basename(targetDir);
158
- // Sanitize app name: strip characters that could break JSON or template injection
161
+ const appId = options.appId ?? (await container_1.appService.pickApp('Select an app:'));
162
+ const ctx = await fetchAppContext(appId, options.json);
163
+ const slug = (ctx.appDetails?.name || 'my-app')
164
+ .toLowerCase()
165
+ .replaceAll(/[^a-z0-9]+/g, '-')
166
+ .replace(/^-|-$/g, '') || 'my-app';
167
+ const { targetDir, mergeOnly, chooseAgain } = await resolveTargetDir(`./${slug}`);
168
+ if (chooseAgain) {
169
+ return (0, exports.scaffoldCommand)({ ...options, appId });
170
+ }
171
+ const rawAppName = ctx.appDetails?.name || path.basename(targetDir);
159
172
  const appName = rawAppName.replaceAll(/["\\\n\r\t]/g, '').trim() || 'my-app';
160
- const scopes = appDetails?.scopes ?? ['all'];
173
+ const scopes = ctx.appDetails?.scopes ?? [...constants_1.DEFAULT_SCOPES];
161
174
  const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../../../package.json'), 'utf-8'));
162
175
  const cliVersion = pkg.version;
163
176
  const vars = {
164
177
  '{{APP_NAME}}': appName,
165
178
  '{{APP_SLUG}}': slug,
166
179
  '{{APP_ID}}': String(appId),
167
- '{{CLIENT_ID}}': clientId,
168
- '{{CLIENT_SECRET}}': clientSecret,
169
- '{{REDIRECT_URI}}': redirectUri,
170
- '{{REDIRECT_URLS_JSON}}': JSON.stringify(redirectUrls),
180
+ '{{CLIENT_ID}}': ctx.clientId,
181
+ '{{CLIENT_SECRET}}': ctx.clientSecret,
182
+ '{{REDIRECT_URI}}': ctx.redirectUri,
183
+ '{{REDIRECT_URLS_JSON}}': JSON.stringify(ctx.redirectUrls),
171
184
  '{{SCOPES_JSON}}': JSON.stringify(scopes),
185
+ '{{LOGO_URI}}': ctx.appDetails?.logo_uri ?? '',
172
186
  '{{OAUTH_BASE}}': constants_1.OAUTH_BASE,
173
187
  '{{OAUTH_REALM}}': constants_1.OAUTH_REALM,
174
188
  '{{CLI_VERSION}}': cliVersion,
175
- '{{MIN_CLI_VERSION}}': constants_1.MIN_CLI_VERSION,
176
189
  };
177
- // Create directory structure
178
190
  fs.mkdirSync(path.join(targetDir, 'src', 'oauth'), { recursive: true });
179
- // Load all templates from .tmpl files with variable substitution
180
191
  const files = (0, templates_1.loadAllTemplates)(vars);
181
- let written = 0;
182
- for (const file of files) {
183
- const filePath = path.join(targetDir, file.name);
184
- // Ensure parent directory exists for nested files
185
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
186
- if (mergeOnly && fs.existsSync(filePath))
187
- continue;
188
- // Write .env.local with restricted permissions to protect secrets
189
- const writeOptions = file.name.endsWith('.env.local') ? { mode: 0o600 } : {};
190
- fs.writeFileSync(filePath, file.content, { encoding: 'utf-8', ...writeOptions });
191
- written++;
192
- }
192
+ const written = writeScaffoldFiles(files, targetDir, mergeOnly);
193
193
  if (options.json) {
194
194
  (0, json_output_1.jsonOutput)({ scaffolded: written, directory: targetDir });
195
195
  return;
196
196
  }
197
197
  (0, logger_1.logSuccess)(en_1.messages.APP_SCAFFOLD_SUCCESS(written));
198
198
  (0, logger_1.logInfo)(formatFileTree(files.map((f) => f.name)));
199
- // Show next steps
200
199
  const relativeDir = path.relative(process.cwd(), targetDir) || '.';
201
200
  (0, ui_1.printBox)(en_1.messages.APP_SCAFFOLD_NEXT_STEPS_TITLE, en_1.messages.APP_SCAFFOLD_NEXT_STEPS_LINES(relativeDir));
201
+ (0, logger_1.logInfo)(en_1.messages.APP_SCAFFOLD_SCOPES_TIP);
202
202
  });
203
203
  //# sourceMappingURL=scaffold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/commands/app/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/commands/app/scaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const scopesCommand: (opts: Record<string, unknown>) => Promise<void>;
2
+ //# sourceMappingURL=scopes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../../src/commands/app/scopes.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,aAAa,kDAiBxB,CAAC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scopesCommand = void 0;
4
+ const command_handler_1 = require("../../lib/command-handler");
5
+ const json_output_1 = require("../../lib/json-output");
6
+ const logger_1 = require("../../lib/logger");
7
+ const en_1 = require("../../lang/en");
8
+ const oauth_metadata_1 = require("../../services/oauth-metadata");
9
+ const scopes_web_1 = require("../../services/scopes-web");
10
+ const browser_1 = require("../../lib/browser");
11
+ function waitForShutdownSignal() {
12
+ return new Promise((resolve) => {
13
+ const handler = () => {
14
+ process.off('SIGINT', handler);
15
+ process.off('SIGTERM', handler);
16
+ resolve();
17
+ };
18
+ process.once('SIGINT', handler);
19
+ process.once('SIGTERM', handler);
20
+ });
21
+ }
22
+ function groupByCategory(entries) {
23
+ const byCategory = new Map();
24
+ for (const entry of entries) {
25
+ const list = byCategory.get(entry.category);
26
+ if (list) {
27
+ list.push(entry.name);
28
+ }
29
+ else {
30
+ byCategory.set(entry.category, [entry.name]);
31
+ }
32
+ }
33
+ return byCategory;
34
+ }
35
+ function printScopesByCategory(entries) {
36
+ const byCategory = groupByCategory(entries);
37
+ let first = true;
38
+ for (const [category, names] of byCategory) {
39
+ if (!first)
40
+ (0, logger_1.logInfo)('');
41
+ first = false;
42
+ (0, logger_1.logInfo)(`${category}:`);
43
+ for (const name of names) {
44
+ (0, logger_1.logInfo)(` ${name}`);
45
+ }
46
+ }
47
+ (0, logger_1.logInfo)('');
48
+ (0, logger_1.logInfo)(en_1.messages.APP_SCOPES_USAGE_HINT);
49
+ }
50
+ async function runWebMode(entries) {
51
+ const server = await (0, scopes_web_1.startScopesWebServer)(entries, { refetch: oauth_metadata_1.fetchSupportedScopes });
52
+ (0, logger_1.logInfo)('');
53
+ (0, logger_1.logInfo)(en_1.messages.APP_SCOPES_WEB_LISTENING(server.url));
54
+ try {
55
+ (0, browser_1.openBrowser)(server.url);
56
+ }
57
+ catch (err) {
58
+ (0, logger_1.logDebug)('openBrowser failed', { message: err.message });
59
+ }
60
+ await waitForShutdownSignal();
61
+ await server.close();
62
+ }
63
+ exports.scopesCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
64
+ const entries = await (0, oauth_metadata_1.fetchSupportedScopes)();
65
+ if (options.json) {
66
+ (0, json_output_1.jsonOutput)({ scopes: entries.map((e) => e.name) });
67
+ return;
68
+ }
69
+ if (entries.length === 0) {
70
+ (0, logger_1.logInfo)(en_1.messages.APP_SCOPES_EMPTY);
71
+ }
72
+ else {
73
+ printScopesByCategory(entries);
74
+ }
75
+ if (options.web) {
76
+ await runWebMode(entries);
77
+ }
78
+ });
79
+ //# sourceMappingURL=scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../src/commands/app/scopes.ts"],"names":[],"mappings":";;;AAAA,+DAA+D;AAC/D,uDAAmD;AACnD,6CAAqD;AACrD,sCAAyC;AACzC,kEAAiF;AACjF,0DAAiE;AACjE,+CAAgD;AAOhD,SAAS,qBAAqB;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB;IAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAqB;IAClD,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,IAAA,gBAAO,EAAC,EAAE,CAAC,CAAC;QACxB,KAAK,GAAG,KAAK,CAAC;QACd,IAAA,gBAAO,EAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAA,gBAAO,EAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAA,gBAAO,EAAC,EAAE,CAAC,CAAC;IACZ,IAAA,gBAAO,EAAC,aAAQ,CAAC,qBAAqB,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAAqB;IAC7C,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAoB,EAAC,OAAO,EAAE,EAAE,OAAO,EAAE,qCAAoB,EAAE,CAAC,CAAC;IACtF,IAAA,gBAAO,EAAC,EAAE,CAAC,CAAC;IACZ,IAAA,gBAAO,EAAC,aAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,IAAA,qBAAW,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,qBAAqB,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAEY,QAAA,aAAa,GAAG,IAAA,oCAAkB,EAAC,KAAK,EAAE,OAAsB,EAAiB,EAAE;IAC9F,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAoB,GAAE,CAAC;IAE7C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAA,wBAAU,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAA,gBAAO,EAAC,aAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/commands/app/start.ts"],"names":[],"mappings":"AAiGA,eAAO,MAAM,YAAY;cACK,MAAM;WAAS,MAAM;mBA0GlD,CAAC"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/commands/app/start.ts"],"names":[],"mappings":"AA0KA,eAAO,MAAM,YAAY;cACK,MAAM;WAAS,MAAM;mBA4BlD,CAAC"}
@@ -124,8 +124,7 @@ async function ensureRedirectRegistered(config, port) {
124
124
  (0, logger_1.logSuccess)(en_1.messages.APP_START_REDIRECT_REGISTERED(newRedirectUrl));
125
125
  return newRedirectUrl;
126
126
  }
127
- exports.startCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
128
- const { feature } = options;
127
+ function resolveFeatureEntry(feature) {
129
128
  if (!feature) {
130
129
  const available = Object.entries(FEATURES)
131
130
  .map(([name, f]) => ` ${name} ${f.description}`)
@@ -141,67 +140,37 @@ exports.startCommand = (0, command_handler_1.withCommandHandler)(async (options)
141
140
  if (!fs.existsSync(entryFile)) {
142
141
  throw new errors_1.CliError(en_1.messages.APP_START_FEATURE_NOT_FOUND(featureConfig.entry));
143
142
  }
144
- // Check for node_modules inside the feature directory — package.json
145
- // is scoped per feature, so dependencies are installed alongside the entry.
146
143
  const featureDir = path.dirname(featureConfig.entry);
147
144
  if (!fs.existsSync(path.resolve(featureDir, 'node_modules'))) {
148
145
  throw new errors_1.CliError(en_1.messages.APP_START_NO_DEPS(featureDir));
149
146
  }
150
- // Derive port: explicit --port flag > redirect URI from app-config.json > DEFAULT_PORT
151
- const config = (0, config_1.readProjectConfig)();
152
- let port = constants_1.DEFAULT_PORT;
153
- if (options.port) {
154
- port = options.port;
155
- }
156
- else {
157
- const redirectUrl = config?.auth?.redirectUrls?.[0];
158
- if (redirectUrl) {
159
- try {
160
- const parsed = new URL(redirectUrl);
161
- if (parsed.port)
162
- port = Number(parsed.port);
163
- }
164
- catch {
165
- // invalid redirect URL — fall back to default
166
- }
167
- }
168
- }
169
- // Check port availability before spawning
170
- if (!(await (0, port_1.isPortAvailable)(port))) {
171
- throw new errors_1.CliError(options.port
172
- ? en_1.messages.APP_START_CUSTOM_PORT_IN_USE(port)
173
- : en_1.messages.APP_START_PORT_IN_USE(port));
147
+ return entryFile;
148
+ }
149
+ function resolvePort(config, optionsPort) {
150
+ if (optionsPort)
151
+ return optionsPort;
152
+ const redirectUrl = config?.auth?.redirectUrls?.[0];
153
+ if (!redirectUrl)
154
+ return constants_1.DEFAULT_PORT;
155
+ try {
156
+ const parsed = new URL(redirectUrl);
157
+ return parsed.port ? Number(parsed.port) : constants_1.DEFAULT_PORT;
174
158
  }
175
- // If the app is linked locally, make sure the resolved port is one of
176
- // its registered redirect URLs — otherwise the OAuth callback will be
177
- // rejected by Brevo at runtime. Skipped when there's no linked app
178
- // (no appId means we'd have nowhere to push the update).
179
- let redirectUri;
180
- if (config?.appId) {
181
- redirectUri = await ensureRedirectRegistered(config, port);
159
+ catch {
160
+ return constants_1.DEFAULT_PORT;
182
161
  }
183
- (0, logger_1.logInfo)(`\n Starting ${feature}...`);
184
- // Spawn the feature server using the current Node.js executable.
185
- // REDIRECT_URI is propagated whenever we have a registered localhost URL
186
- // on the resolved port — otherwise the child reads the (possibly stale)
187
- // value from .env.local, which would mismatch when --port overrides the
188
- // scaffold-time port.
189
- const childEnv = { ...process.env, PORT: String(port) };
190
- if (redirectUri)
191
- childEnv.REDIRECT_URI = redirectUri;
162
+ }
163
+ function runChildProcess(entryFile, childEnv, feature) {
192
164
  const child = (0, node_child_process_1.spawn)(process.execPath, [entryFile], {
193
165
  stdio: 'inherit',
194
166
  env: childEnv,
195
167
  });
196
- // Forward signals for clean shutdown — use prependListener so child
197
- // is killed before the global SIGINT/SIGTERM handlers in bin/index.ts
198
- // call process.exit().
199
168
  const onSignal = (signal) => {
200
169
  child.kill(signal);
201
170
  };
202
171
  process.prependListener('SIGINT', onSignal);
203
172
  process.prependListener('SIGTERM', onSignal);
204
- await new Promise((resolve, reject) => {
173
+ return new Promise((resolve, reject) => {
205
174
  child.on('close', (code) => {
206
175
  process.removeListener('SIGINT', onSignal);
207
176
  process.removeListener('SIGTERM', onSignal);
@@ -219,5 +188,26 @@ exports.startCommand = (0, command_handler_1.withCommandHandler)(async (options)
219
188
  reject(new errors_1.CliError(en_1.messages.APP_START_FAILED(feature, err.message)));
220
189
  });
221
190
  });
191
+ }
192
+ exports.startCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
193
+ const { feature } = options;
194
+ const entryFile = resolveFeatureEntry(feature);
195
+ const config = (0, config_1.readProjectConfig)();
196
+ const port = resolvePort(config, options.port);
197
+ if (!(await (0, port_1.isPortAvailable)(port))) {
198
+ throw new errors_1.CliError(options.port
199
+ ? en_1.messages.APP_START_CUSTOM_PORT_IN_USE(port)
200
+ : en_1.messages.APP_START_PORT_IN_USE(port));
201
+ }
202
+ // If the app is linked locally, make sure the resolved port is one of
203
+ // its registered redirect URLs — otherwise the OAuth callback will be
204
+ // rejected by Brevo at runtime. Skipped when there's no linked app
205
+ // (no appId means we'd have nowhere to push the update).
206
+ const redirectUri = config?.appId ? await ensureRedirectRegistered(config, port) : undefined;
207
+ (0, logger_1.logInfo)(`\n Starting ${feature}...`);
208
+ const childEnv = { ...process.env, PORT: String(port) };
209
+ if (redirectUri)
210
+ childEnv.REDIRECT_URI = redirectUri;
211
+ await runChildProcess(entryFile, childEnv, feature);
222
212
  });
223
213
  //# sourceMappingURL=start.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/app/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/app/start.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/app/update.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,aAAa,kDAyPxB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/app/update.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,aAAa,kDAqTxB,CAAC"}