@getbrevo/cli 0.0.1-alpha.2 → 1.0.0-alpha.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.
- package/CHANGELOG.md +24 -38
- package/README.md +51 -5
- package/agent-context/AGENTS.md +59 -0
- package/agent-context/SKILL.md +44 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +8 -5
- package/dist/api/client.js.map +1 -1
- package/dist/bin/index.js +13 -1
- package/dist/bin/index.js.map +1 -1
- package/dist/commands/app/create.d.ts.map +1 -1
- package/dist/commands/app/create.js +8 -3
- package/dist/commands/app/create.js.map +1 -1
- package/dist/commands/app/credentials.d.ts.map +1 -1
- package/dist/commands/app/credentials.js +9 -3
- package/dist/commands/app/credentials.js.map +1 -1
- package/dist/commands/app/delete.d.ts.map +1 -1
- package/dist/commands/app/delete.js +1 -0
- package/dist/commands/app/delete.js.map +1 -1
- package/dist/commands/app/list.d.ts.map +1 -1
- package/dist/commands/app/list.js +18 -1
- package/dist/commands/app/list.js.map +1 -1
- package/dist/commands/app/start.d.ts.map +1 -1
- package/dist/commands/app/start.js +24 -11
- package/dist/commands/app/start.js.map +1 -1
- package/dist/commands/app/update.d.ts.map +1 -1
- package/dist/commands/app/update.js +9 -5
- package/dist/commands/app/update.js.map +1 -1
- package/dist/commands/definitions.js +8 -8
- package/dist/commands/definitions.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +4 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/lang/en.d.ts +4 -15
- package/dist/lang/en.d.ts.map +1 -1
- package/dist/lang/en.js +10 -22
- package/dist/lang/en.js.map +1 -1
- package/dist/lib/auth-guard.d.ts.map +1 -1
- package/dist/lib/auth-guard.js +7 -0
- package/dist/lib/auth-guard.js.map +1 -1
- package/dist/lib/config.d.ts +3 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +82 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/validators.d.ts +1 -1
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +8 -13
- package/dist/lib/validators.js.map +1 -1
- package/dist/services/app.d.ts.map +1 -1
- package/dist/services/app.js +26 -3
- package/dist/services/app.js.map +1 -1
- package/dist/templates/files/AGENTS.md.tmpl +18 -12
- package/dist/templates/files/CLAUDE.md.tmpl +22 -13
- package/dist/templates/files/README.md.tmpl +10 -4
- package/dist/templates/files/src/oauth/handler.js.tmpl +3 -0
- package/dist/templates/files/src/oauth/server.js.tmpl +1 -1
- package/package.json +2 -1
- package/dist/commands/app/test.d.ts +0 -6
- package/dist/commands/app/test.d.ts.map +0 -1
- package/dist/commands/app/test.js +0 -496
- package/dist/commands/app/test.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,47 +1,33 @@
|
|
|
1
1
|
# @getbrevo/cli
|
|
2
2
|
|
|
3
|
-
## 0.0
|
|
3
|
+
## 1.0.0-alpha.0
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
### Major Changes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- 5507fe1: Initial release of `@getbrevo/cli` — the Brevo Developer CLI for creating, managing, and testing OAuth integrations from the terminal. Published to the public npm registry (`registry.npmjs.org`) under `@getbrevo/cli`.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**Authentication & setup**
|
|
10
|
+
- `brevo login` / `brevo logout` / `brevo whoami` — authenticate with a Brevo API key, stored at `~/.brevo/credentials.json`. Invalid keys surface a single, consistent `Invalid API key. Please check and try again.` message on first attempt and on retry.
|
|
11
|
+
- `brevo init` — link a local project to a Brevo app via `app-config.json`.
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
- `brevo
|
|
13
|
-
- `brevo
|
|
13
|
+
**App management**
|
|
14
|
+
- `brevo app create` — interactive and flag-driven app creation. Probes both `0.0.0.0` and `127.0.0.1` to detect wildcard listeners before suggesting a default redirect port. Prints a one-line tip pointing at `brevo app start oauth` for local testing (suppressed under `--json` and skipped when `--redirect-uri` is passed). `--help` examples use `http://localhost:3009/auth/callback` to match the scaffolded handler.
|
|
15
|
+
- `brevo app list` — lists apps; locally caches names updated via `brevo app update` so renames reflect immediately despite server-side eventual consistency. Cache refreshes on `app credentials` and clears on `app delete`.
|
|
16
|
+
- `brevo app update` — supports `--name`, `--redirect-uri` (repeatable, appends), and `--app-id` flags. Without flags, pushes the full `app-config.json`. With flags, merges values over `app-config.json` or the API. Writes back to `app-config.json` after a successful update when the app ID matches.
|
|
17
|
+
- `brevo app credentials` — reveals client credentials. `--json` includes `redirectUris`. Consistent placeholders: human output uses `[hidden — run \`brevo app credentials --reveal-secret\`]`, `--json`uses`[hidden]`, missing values use `[not available]`.
|
|
18
|
+
- `brevo app delete` — deletes an app; reports `App <id> not found.` instead of generic `Request failed with status 404`.
|
|
14
19
|
|
|
15
|
-
|
|
20
|
+
**Scaffolding & local OAuth testing**
|
|
21
|
+
- `brevo app scaffold` — generates a working OAuth project with templates referencing both `npm` and `yarn`. Stamps `cliVersion` and `minCliVersion` into `app-config.json` so projects can warn at startup when run with an older CLI (suppressed under `--json` and for unpublished local builds). `brevo app update` does not touch these fields.
|
|
22
|
+
- `brevo app start oauth` — runs the scaffolded local OAuth server. Self-registers the local redirect URL when the resolved port has no matching `http://localhost:<port>/...` (or `127.0.0.1`) entry on the app: interactively prompts (default Yes) to add `http://localhost:<port>/auth/callback`, pushes to the remote app, and writes back to `app-config.json`. Decline continues with a warning. In non-TTY mode, hard-fails with a structured error suggesting `brevo app update --redirect-uri` rather than silently mutating the remote app.
|
|
23
|
+
- `--port <port>` propagation — `REDIRECT_URI` is forwarded to the child process whenever a registered localhost redirect URL exists on the resolved port (preserving `localhost` vs `127.0.0.1` for Brevo's exact-string match), so the authorization URL and the listener agree on the port. Declined registrations leave `.env.local` untouched.
|
|
24
|
+
- After a successful flow, both the CLI and the scaffolded handler print a next-steps hint (`/auth/refresh` URL, pointers to call the Brevo API or open `src/oauth/handler.js`). The Authorization URL preview renders `state=[random]` instead of `<random>` so the browser doesn't strip it as an unknown HTML tag.
|
|
16
25
|
|
|
17
|
-
|
|
18
|
-
- `
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- `brevo app credentials` — show client ID and secret (`--app-id`, `--reveal-secret`, `--json`)
|
|
26
|
+
**General CLI behaviour**
|
|
27
|
+
- Unknown top-level commands report `error: unknown command '<x>'` and exit 1 instead of being intercepted by the auth guard.
|
|
28
|
+
- Validation errors (`--distribution invalid`, malformed URLs, etc.) print once. The top-level error handler renders messages; `validateEnum` / `validateUrl` no longer log before throwing.
|
|
29
|
+
- Every command supports `--json` via `jsonOutput()`. Diagnostic log lines (`APP_CREATE_PORT_IN_USE`, `APP_CREATE_PORT_SCAN_FAILED`, etc.) are gated under `!--json` to keep machine output clean.
|
|
30
|
+
- All user-facing strings live in `src/lang/en.ts`; CLI command references live in `src/lib/constants.ts` as `CLI.*`.
|
|
23
31
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- `brevo app scaffold` — generate a starter OAuth project (Node + Express, `npm` and `yarn`)
|
|
27
|
-
- `brevo app start oauth` — run the scaffolded OAuth feature locally (`--port`, default `3009`)
|
|
28
|
-
|
|
29
|
-
#### Global flags & environment
|
|
30
|
-
|
|
31
|
-
- `--json` — machine-readable output on every command
|
|
32
|
-
- `--no-update-notifier` / `BREVO_NO_UPDATE_NOTIFIER=1` — suppress the npm update banner
|
|
33
|
-
- `BREVO_API_URL`, `BREVO_OAUTH_PROXY_URL`, `BREVO_API_KEY` — override API endpoints and auth for non-interactive use
|
|
34
|
-
|
|
35
|
-
### Highlights
|
|
36
|
-
|
|
37
|
-
- **Self-registering redirect URL.** `brevo app start oauth` detects when the local port has no matching `http://localhost:<port>/...` entry on the app and offers to add `http://localhost:<port>/auth/callback`, pushing it to the remote app and writing it back into `app-config.json`. Non-interactive runs fail with a clear error instead of silently mutating the remote app.
|
|
38
|
-
- **Reliable port-busy detection.** Port checks now catch servers bound to the wildcard interface, so `brevo app create` and `brevo app start oauth` won't suggest a port that's already in use.
|
|
39
|
-
- **OAuth flow next-steps hint.** After `brevo app start oauth` completes, the CLI points to two follow-ups: use the access token to call the Brevo API, or open `src/oauth` to see how the flow is wired.
|
|
40
|
-
- **CLI version stamp + minimum-version warning.** `brevo app create` writes `cliVersion` / `minCliVersion` into `app-config.json`; the CLI warns at startup when older than the declared `minCliVersion`.
|
|
41
|
-
- **npm update notifier.** Every command checks for a newer release and shows a non-intrusive banner. Cached for 24h; skipped in CI, non-TTY sessions, or when disabled via flag/env.
|
|
42
|
-
|
|
43
|
-
### Authentication
|
|
44
|
-
|
|
45
|
-
- **Browser-based sign-in by default.** `brevo login` opens the Brevo CLI OAuth proxy in a browser. `--browser` f
|
|
46
|
-
- **Token storage and refresh.** OAuth tokens live in `~/.brevo/credentials.json` and are refreshed automatically on 401 with a one-shot retry. If refresh itself returns 401, credentials are cleared and the user is prompted to log in again.
|
|
47
|
-
- **5-minute browser-login timeout** — long enough for 2FA. Retrying after a timeout opens a fresh flow rather than focusing the previous browser tab.
|
|
32
|
+
**Update notifier**
|
|
33
|
+
- After every command, the CLI checks the npm registry for a newer release and shows a non-intrusive banner if one is available. The check runs asynchronously, caches at `~/.brevo/update-check.json` with a 24h TTL, and is skipped in CI, non-TTY sessions, when `--no-update-notifier` is passed, or when `BREVO_NO_UPDATE_NOTIFIER=1` / `NO_UPDATE_NOTIFIER=1` is set. Implemented in-tree (no `simple-update-notifier` dependency).
|
package/README.md
CHANGED
|
@@ -79,7 +79,7 @@ Run `brevo --help` or `brevo <command> --help` for full command and option lists
|
|
|
79
79
|
| `brevo app create` | Create an OAuth app (`--name`, `--distribution private\|public`, repeatable `--redirect-uri`) |
|
|
80
80
|
| `brevo app list` | List OAuth apps in your account |
|
|
81
81
|
| `brevo app credentials` | Show client ID and secret (`--app-id`, `--reveal-secret`) |
|
|
82
|
-
| `brevo app update` | Update app name or redirect URLs (`--app-id`, `--name`, repeatable `--redirect-
|
|
82
|
+
| `brevo app update` | Update app name or redirect URLs (`--app-id`, `--name`, repeatable `--redirect-uri`, `--yes`) |
|
|
83
83
|
| `brevo app delete` | Delete an app (`--app-id`, `--force`) |
|
|
84
84
|
| `brevo app scaffold` | Generate starter code for an app (`--app-id`) |
|
|
85
85
|
| `brevo app start` | Run a scaffolded feature locally (e.g. `brevo app start oauth --port 3000`) |
|
|
@@ -125,6 +125,26 @@ Environment overrides:
|
|
|
125
125
|
|
|
126
126
|
Credentials are stored at `~/.brevo/credentials.json`; per-app client secrets are cached under an `apps` key. Linked project config lives in `./.brevo.json` (gitignored).
|
|
127
127
|
|
|
128
|
+
## AI agent integration
|
|
129
|
+
|
|
130
|
+
If you use Claude Code, Cursor, Aider, Copilot CLI, or another agent that reads project context, the package ships ready-to-use context files so agents know how to call `brevo` correctly:
|
|
131
|
+
|
|
132
|
+
- `node_modules/@getbrevo/cli/agent-context/AGENTS.md` — overview, command list, conventions, and safety rules. Compatible with the [agents.md](https://agents.md) format.
|
|
133
|
+
- `node_modules/@getbrevo/cli/agent-context/SKILL.md` — Claude Code skill (with YAML frontmatter and trigger keywords) for auto-activation when a conversation touches the Brevo CLI.
|
|
134
|
+
|
|
135
|
+
Most agents only read context from your project root, so copy or symlink the files in once:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# AGENTS.md — append into your existing AGENTS.md, or copy if you don't have one
|
|
139
|
+
cat node_modules/@getbrevo/cli/agent-context/AGENTS.md >> AGENTS.md
|
|
140
|
+
|
|
141
|
+
# Claude Code skill
|
|
142
|
+
mkdir -p .claude/skills/brevo
|
|
143
|
+
cp node_modules/@getbrevo/cli/agent-context/SKILL.md .claude/skills/brevo/SKILL.md
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
The `AGENTS.md` content is wrapped in `<!-- BREVO_CLI_AGENTS_BEGIN -->` / `<!-- BREVO_CLI_AGENTS_END -->` markers — when you upgrade the CLI, delete the existing block (markers included) before re-running the append so the section isn't duplicated.
|
|
147
|
+
|
|
128
148
|
## Development
|
|
129
149
|
|
|
130
150
|
```bash
|
|
@@ -143,15 +163,41 @@ yarn clean # remove dist/
|
|
|
143
163
|
|
|
144
164
|
A husky pre-commit hook runs prettier and eslint on staged `.ts` files and then runs the full test suite.
|
|
145
165
|
|
|
146
|
-
###
|
|
166
|
+
### Publishing
|
|
147
167
|
|
|
148
|
-
|
|
168
|
+
Releases use [changesets](https://github.com/changesets/changesets) and ship to the public npm registry under `@getbrevo`. **Prefer the CI flow** — pushing changesets to `main` opens a "Version Packages" PR (`.github/workflows/release.yaml`); pushing to a `release-*` branch publishes alpha prereleases (`.github/workflows/pre-release.yaml`). CI provides npm provenance via OIDC. Publish locally only when CI is unavailable.
|
|
169
|
+
|
|
170
|
+
Prerequisites for any local publish:
|
|
171
|
+
|
|
172
|
+
- `npm whoami` shows an account with `publish` permission on `@getbrevo`
|
|
173
|
+
- A clean working tree on the branch you intend to release from
|
|
174
|
+
- If your `~/.npmrc` maps `@getbrevo` to a non-public registry (e.g. GitHub Packages), the scope override wins over `publishConfig.registry` in `package.json`. Either pass `--registry=https://registry.npmjs.org/` explicitly, or comment out the `@getbrevo:registry=...` line for the duration of the publish. Confirm the `npm notice Publishing to <url>` line before continuing.
|
|
175
|
+
|
|
176
|
+
#### Stable release
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
yarn changeset # describe the change (interactive)
|
|
180
|
+
yarn version:packages # consume changesets, bump version, update CHANGELOG
|
|
181
|
+
git commit -am "chore(release): version packages"
|
|
182
|
+
yarn publish:packages # runs prepublishOnly (clean + build + test) then publishes
|
|
183
|
+
git push --follow-tags
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
#### Prerelease (alpha)
|
|
149
187
|
|
|
150
188
|
```bash
|
|
151
|
-
yarn
|
|
152
|
-
|
|
189
|
+
yarn changeset pre enter alpha # enter prerelease mode (creates .changeset/pre.json)
|
|
190
|
+
yarn changeset # describe the change
|
|
191
|
+
yarn version:packages # bumps to e.g. 0.1.0-alpha.0
|
|
192
|
+
git commit -am "chore(release): version packages (alpha)"
|
|
193
|
+
yarn publish:packages # publishes under the `alpha` dist-tag
|
|
194
|
+
git push --follow-tags
|
|
195
|
+
yarn changeset pre exit # exit prerelease mode when the alpha cycle ends
|
|
196
|
+
git commit -am "chore: exit prerelease mode"
|
|
153
197
|
```
|
|
154
198
|
|
|
199
|
+
Verify the result with `npm view @getbrevo/cli versions --json` (stable) or `npm view @getbrevo/cli dist-tags` (prerelease). Install an alpha for smoke-testing with `npm install -g @getbrevo/cli@alpha`.
|
|
200
|
+
|
|
155
201
|
## Reporting issues
|
|
156
202
|
|
|
157
203
|
Found a bug or have a feature request? Please [open an issue](https://github.com/getbrevo/brevo-cli/issues/new/choose) on GitHub.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<!-- BREVO_CLI_AGENTS_BEGIN -->
|
|
2
|
+
# Brevo CLI
|
|
3
|
+
|
|
4
|
+
This project uses the [Brevo Developer CLI](https://www.npmjs.com/package/@getbrevo/cli) (`brevo` binary) to manage Brevo OAuth applications.
|
|
5
|
+
|
|
6
|
+
## When to use it
|
|
7
|
+
|
|
8
|
+
- Create, list, update, or delete Brevo OAuth apps
|
|
9
|
+
- Scaffold a starter OAuth integration
|
|
10
|
+
- Run a local OAuth test server (`brevo app start oauth`)
|
|
11
|
+
- Inspect or rotate app credentials
|
|
12
|
+
|
|
13
|
+
## Common commands
|
|
14
|
+
|
|
15
|
+
| Command | Purpose |
|
|
16
|
+
|---|---|
|
|
17
|
+
| `brevo login` | Authenticate (browser by default; set `BREVO_API_KEY` for non-interactive) |
|
|
18
|
+
| `brevo whoami` | Show the authenticated account |
|
|
19
|
+
| `brevo app init` | Guided setup (login, create, scaffold) |
|
|
20
|
+
| `brevo app list` | List OAuth apps |
|
|
21
|
+
| `brevo app create` | Create an app (`--name`, `--distribution`, `--redirect-uri`) |
|
|
22
|
+
| `brevo app update` | Update name / redirect URLs (`--app-id`, `--name`, `--redirect-url`) |
|
|
23
|
+
| `brevo app credentials` | Show client ID / secret (`--app-id`, `--reveal-secret`) |
|
|
24
|
+
| `brevo app delete` | Delete an app (`--app-id`, `--force`) |
|
|
25
|
+
| `brevo app scaffold` | Generate starter OAuth code (`--app-id`) |
|
|
26
|
+
| `brevo app start oauth` | Run the scaffolded OAuth test server (`--port`) |
|
|
27
|
+
|
|
28
|
+
Run `brevo --help` or `brevo <command> --help` for the full set.
|
|
29
|
+
|
|
30
|
+
## Conventions
|
|
31
|
+
|
|
32
|
+
- **Every command supports `--json`** — prefer this when parsing output programmatically.
|
|
33
|
+
- **`app-config.json`** in the working directory pins the linked app — `brevo app update` and `brevo app start` read from it.
|
|
34
|
+
- **Credentials** live at `~/.brevo/credentials.json`. Never commit this file or any `.env.local`.
|
|
35
|
+
- **Non-interactive auth:** `BREVO_API_KEY=xkeysib-... brevo login`. The legacy `--api-key` flag was removed because it leaks into shell history.
|
|
36
|
+
- **Skip prompts:** `--force` for delete/logout; `--yes` for `app update`.
|
|
37
|
+
- **Exit codes:** `0` success · `1` general error · `2` aborted · `3` auth · `4` network · `5` not found.
|
|
38
|
+
|
|
39
|
+
## Environment variables
|
|
40
|
+
|
|
41
|
+
| Variable | Purpose |
|
|
42
|
+
|---|---|
|
|
43
|
+
| `BREVO_API_KEY` | Non-interactive login |
|
|
44
|
+
| `BREVO_API_URL` | Override API base (HTTPS required, except `localhost`) |
|
|
45
|
+
| `BREVO_OAUTH_PROXY_URL` | Override OAuth proxy used by browser login |
|
|
46
|
+
| `BREVO_CONFIG_HOME` | Override credentials directory (default `~/.brevo/`) |
|
|
47
|
+
| `DEBUG=1` or `--debug` | Verbose HTTP and error logging |
|
|
48
|
+
|
|
49
|
+
## Safety
|
|
50
|
+
|
|
51
|
+
- Never echo, log, or commit API keys (`xkeysib-…`), client secrets, refresh tokens, or contents of `~/.brevo/credentials.json` / `.env.local`.
|
|
52
|
+
- For destructive operations (`app delete`, `logout`), prefer the interactive flow unless running in CI; pass `--force` only when intentional.
|
|
53
|
+
|
|
54
|
+
## Reference
|
|
55
|
+
|
|
56
|
+
- npm: <https://www.npmjs.com/package/@getbrevo/cli>
|
|
57
|
+
- Repo: <https://github.com/getbrevo/brevo-cli>
|
|
58
|
+
- Brevo developer docs: <https://developers.brevo.com>
|
|
59
|
+
<!-- BREVO_CLI_AGENTS_END -->
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brevo-cli
|
|
3
|
+
description: Use when working in a project that uses the Brevo Developer CLI (the `brevo` binary from `@getbrevo/cli`) — managing OAuth apps, scaffolding integrations, running the local OAuth test server, or invoking any `brevo …` command. Trigger keywords - brevo, brevo cli, brevo app, app-config.json, OAuth Brevo, BREVO_API_KEY, getbrevo.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brevo CLI
|
|
7
|
+
|
|
8
|
+
This project uses the Brevo Developer CLI to create and manage Brevo OAuth applications. Treat the `brevo` binary as the canonical entry point — don't shell out to `curl https://api.brevo.com/...` for things the CLI already covers.
|
|
9
|
+
|
|
10
|
+
## Decision tree
|
|
11
|
+
|
|
12
|
+
- "Set me up from scratch" → `brevo app init`
|
|
13
|
+
- "Authenticate" → `brevo login` (or `BREVO_API_KEY=xkeysib-... brevo login` for CI)
|
|
14
|
+
- "Show / pick an app" → `brevo app list --json`
|
|
15
|
+
- "Create an app" → `brevo app create --name "<name>" --distribution private --redirect-uri <url> --json`
|
|
16
|
+
- "Update app metadata" → `brevo app update --app-id <id> --name "<name>"` and/or `--redirect-url <url>` (repeatable)
|
|
17
|
+
- "Get client credentials" → `brevo app credentials --app-id <id> --json` (add `--reveal-secret` to print the secret)
|
|
18
|
+
- "Generate starter OAuth code" → `brevo app scaffold --app-id <id>`
|
|
19
|
+
- "Run the OAuth test server" → `brevo app start oauth --port 3009` (must be inside the scaffolded directory)
|
|
20
|
+
- "Delete an app" → `brevo app delete --app-id <id> --force`
|
|
21
|
+
- "Sign out" → `brevo logout --force`
|
|
22
|
+
|
|
23
|
+
## Hard rules
|
|
24
|
+
|
|
25
|
+
1. **Always pass `--json`** when you intend to parse output. Every command supports it.
|
|
26
|
+
2. **Never print, log, or commit** API keys (`xkeysib-…`), client secrets, refresh tokens, or contents of `~/.brevo/credentials.json` / `.env.local`. Redact before sharing diagnostics.
|
|
27
|
+
3. **Don't use `--api-key`** — the flag was removed. Use the `BREVO_API_KEY` env var.
|
|
28
|
+
4. **Don't run `brevo app scaffold` inside an existing scaffolded project** — it refuses if `app-config.json` exists in cwd. Use `brevo app update` to push config changes.
|
|
29
|
+
5. **Prefer flag-driven over interactive** in agent contexts: `--name`, `--app-id`, `--force`, `--yes` so the command doesn't block on prompts.
|
|
30
|
+
|
|
31
|
+
## Locating the linked app
|
|
32
|
+
|
|
33
|
+
If `app-config.json` exists in the working directory, it pins the app — `brevo app update` and `brevo app start` use it automatically. To target a different app, pass `--app-id`.
|
|
34
|
+
|
|
35
|
+
## Exit codes
|
|
36
|
+
|
|
37
|
+
`0` success · `1` general error · `2` aborted · `3` auth failure · `4` network · `5` not found.
|
|
38
|
+
|
|
39
|
+
## More
|
|
40
|
+
|
|
41
|
+
- Help: `brevo --help`, `brevo <command> --help`
|
|
42
|
+
- npm: <https://www.npmjs.com/package/@getbrevo/cli>
|
|
43
|
+
- Repo: <https://github.com/getbrevo/brevo-cli>
|
|
44
|
+
- Brevo developer docs: <https://developers.brevo.com>
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAaA,KAAK,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACzD;AAqBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAK7D;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAcxD;AAoBD,qBAAa,SAAS;IAGR,OAAO,CAAC,IAAI;IAFxB,OAAO,CAAC,aAAa,CAAC,CAAqB;gBAEvB,IAAI,EAAE,aAAa;IAEvC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAInD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAInC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IASvD,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,SAAW,GAAG,OAAO,CAAC,CAAC,CAAC;YASvE,OAAO;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAaA,KAAK,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACzD;AAqBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAK7D;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAcxD;AAoBD,qBAAa,SAAS;IAGR,OAAO,CAAC,IAAI;IAFxB,OAAO,CAAC,aAAa,CAAC,CAAqB;gBAEvB,IAAI,EAAE,aAAa;IAEvC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAInD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAInC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IASvD,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,SAAW,GAAG,OAAO,CAAC,CAAC,CAAC;YASvE,OAAO;CA6FtB"}
|
package/dist/api/client.js
CHANGED
|
@@ -156,9 +156,12 @@ class ApiClient {
|
|
|
156
156
|
const lower = s.toLowerCase();
|
|
157
157
|
return lower.includes('<!doctype html') || lower.includes('<html');
|
|
158
158
|
};
|
|
159
|
-
let data;
|
|
159
|
+
let data = {};
|
|
160
160
|
try {
|
|
161
|
-
|
|
161
|
+
const parsed = text ? JSON.parse(text) : {};
|
|
162
|
+
if (parsed !== null && typeof parsed === 'object') {
|
|
163
|
+
data = parsed;
|
|
164
|
+
}
|
|
162
165
|
}
|
|
163
166
|
catch {
|
|
164
167
|
if (looksLikeHtml(text)) {
|
|
@@ -166,13 +169,13 @@ class ApiClient {
|
|
|
166
169
|
}
|
|
167
170
|
data = { message: text };
|
|
168
171
|
}
|
|
169
|
-
if (typeof data
|
|
172
|
+
if (typeof data.message === 'string' && looksLikeHtml(data.message)) {
|
|
170
173
|
throw new errors_1.ApiError(en_1.messages.ERR_AUTH_GATEWAY, response.status, errors_1.ErrorCode.AUTH_GATEWAY);
|
|
171
174
|
}
|
|
172
175
|
(0, logger_1.logDebug)(`response ${opts.path}`, data);
|
|
173
176
|
if (!response.ok) {
|
|
174
|
-
const apiCode = data
|
|
175
|
-
const rawFallback = typeof data
|
|
177
|
+
const apiCode = typeof data.code === 'string' ? data.code : undefined;
|
|
178
|
+
const rawFallback = typeof data.message === 'string' && data.message
|
|
176
179
|
? data.message
|
|
177
180
|
: `Request failed with status ${response.status}`;
|
|
178
181
|
const fallback = sanitizeErrorMessage(rawFallback);
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/index.js
CHANGED
|
@@ -111,7 +111,19 @@ program
|
|
|
111
111
|
].join('\n');
|
|
112
112
|
},
|
|
113
113
|
})
|
|
114
|
-
.action(() =>
|
|
114
|
+
.action((_options, cmd) => {
|
|
115
|
+
const stray = cmd.args;
|
|
116
|
+
if (stray.length === 0) {
|
|
117
|
+
cmd.outputHelp();
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
// Unknown top-level command — Commander dispatches stray args to the
|
|
121
|
+
// root action when no subcommand matches. Surface a clear error so the
|
|
122
|
+
// user knows they typed a command that doesn't exist.
|
|
123
|
+
process.stderr.write(`error: unknown command '${stray[0]}'\n`);
|
|
124
|
+
process.stderr.write(`See \`brevo --help\` for available commands.\n`);
|
|
125
|
+
process.exit(exit_codes_1.EXIT_CODES.ERROR);
|
|
126
|
+
});
|
|
115
127
|
// Auth guard — blocks unauthenticated access (except login, logout, help)
|
|
116
128
|
(0, auth_guard_1.installAuthGuard)(program);
|
|
117
129
|
// ──────────────── Register all commands ────────────────
|
package/dist/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,yCAAoC;AACpC,kDAAqD;AACrD,0CAAuE;AACvE,kDAA+C;AAC/C,0CAAqD;AACrD,mCAAsC;AACtC,sDAAsD;AACtD,0CAAkG;AAClG,gDAAkF;AAClF,6DAA6E;AAC7E,0CAAiD;AACjD,kCAA8C;AAE9C,4CAAsC;AACtC,8DAAsD;AACtD,yDAA4E;AAC5E,4DAAgG;AAChG,gEAAoE;AAEpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAChG,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC;AAEpC,8FAA8F;AAC9F,4FAA4F;AAC5F,MAAM,WAAW,GAAG,IAAA,kCAAgB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAClE,4EAA4E;AAC5E,0EAA0E;AAC1E,yBAAyB;AACzB,MAAM,eAAe,GAAG,IAAA,wCAAsB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7D,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,GAAG,EAAE,CAAC;IACrD,IAAA,gBAAO,EAAC,aAAQ,CAAC,yBAAyB,CAAC,CAAC;AAC9C,CAAC;AAED,0EAA0E;AAC1E,IAAA,4CAAwB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAE1E,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,mEAAmE,CAAC;KAChF,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;KACzC,aAAa,CAAC;IACb,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO;YACL,kCAAkC;YAClC,EAAE;YACF,OAAO;YACP,EAAE;YACF,UAAU;YACV,8CAA8C;YAC9C,6CAA6C;YAC7C,EAAE;YACF,WAAW;YACX,iFAAiF;YACjF,oEAAoE;YACpE,2EAA2E;YAC3E,yFAAyF;YACzF,qEAAqE;YACrE,4BAA4B;YAC5B,8DAA8D;YAC9D,4BAA4B;YAC5B,sDAAsD;YACtD,4CAA4C;YAC5C,6CAA6C;YAC7C,EAAE;YACF,mEAAmE;YACnE,EAAE;YACF,WAAW;YACX,gFAAgF;YAChF,kEAAkE;YAClE,6EAA6E;YAC7E,uEAAuE;YACvE,2EAA2E;YAC3E,6EAA6E;YAC7E,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF,CAAC;KACD,MAAM,CAAC,GAAG,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/app/create.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa;WAEf,MAAM;mBACE,MAAM;kBACP,MAAM,EAAE;WACf,OAAO;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/app/create.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa;WAEf,MAAM;mBACE,MAAM;kBACP,MAAM,EAAE;WACf,OAAO;mBAiQjB,CAAC"}
|
|
@@ -141,8 +141,9 @@ exports.createCommand = (0, command_handler_1.withCommandHandler)(async (options
|
|
|
141
141
|
default: 'n',
|
|
142
142
|
validate: (input) => {
|
|
143
143
|
const val = String(input).toLowerCase().trim();
|
|
144
|
-
if (val === 'y' || val === 'yes' || val === 'n' || val === 'no' || val === '')
|
|
144
|
+
if (val === 'y' || val === 'yes' || val === 'n' || val === 'no' || val === '') {
|
|
145
145
|
return true;
|
|
146
|
+
}
|
|
146
147
|
return 'Please enter y or n';
|
|
147
148
|
},
|
|
148
149
|
},
|
|
@@ -205,6 +206,8 @@ exports.createCommand = (0, command_handler_1.withCommandHandler)(async (options
|
|
|
205
206
|
scopes: ['all'],
|
|
206
207
|
});
|
|
207
208
|
retrySpinner.stop();
|
|
209
|
+
// Use the retried name for cache, JSON output, display, and scaffold prompt
|
|
210
|
+
appName = retry.name;
|
|
208
211
|
}
|
|
209
212
|
catch (retryErr) {
|
|
210
213
|
retrySpinner.stop();
|
|
@@ -220,13 +223,15 @@ exports.createCommand = (0, command_handler_1.withCommandHandler)(async (options
|
|
|
220
223
|
clientId: result.client_id,
|
|
221
224
|
clientSecret: result.client_secret,
|
|
222
225
|
});
|
|
226
|
+
if (appName)
|
|
227
|
+
(0, config_1.saveAppName)(result.app_id, appName);
|
|
223
228
|
const resultRedirectUris = result.redirect_uris;
|
|
224
229
|
if (options.json) {
|
|
225
230
|
(0, json_output_1.jsonOutput)({
|
|
226
231
|
appId: result.app_id,
|
|
227
232
|
appName,
|
|
228
233
|
clientId: result.client_id,
|
|
229
|
-
clientSecret:
|
|
234
|
+
clientSecret: en_1.messages.CLIENT_SECRET_HIDDEN_JSON,
|
|
230
235
|
redirectUri: resultRedirectUris,
|
|
231
236
|
});
|
|
232
237
|
return;
|
|
@@ -235,7 +240,7 @@ exports.createCommand = (0, command_handler_1.withCommandHandler)(async (options
|
|
|
235
240
|
(0, logger_1.logInfo)(` App name: ${appName}`);
|
|
236
241
|
(0, logger_1.logInfo)(` App ID: ${result.app_id}`);
|
|
237
242
|
(0, logger_1.logInfo)(` Client ID: ${result.client_id}`);
|
|
238
|
-
(0, logger_1.logInfo)(` Client secret:
|
|
243
|
+
(0, logger_1.logInfo)(` Client secret: ${en_1.messages.CLIENT_SECRET_HIDDEN_HUMAN}`);
|
|
239
244
|
resultRedirectUris.forEach((uri, i) => {
|
|
240
245
|
(0, logger_1.logInfo)(` Redirect URL ${i + 1}: ${uri}`);
|
|
241
246
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/app/create.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,mDAA8E;AAC9E,yCAAmD;AACnD,6CAAiE;AACjE,sCAAyC;AACzC,6CAAiE;AACjE,+DAA+D;AAC/D,uDAAmD;AACnD,qDAAqE;AACrE,qCAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/app/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/commands/app/credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/commands/app/credentials.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,kBAAkB;YACH,MAAM;mBAAiB,OAAO;WAAS,OAAO;mBAqGzE,CAAC"}
|
|
@@ -12,6 +12,7 @@ const command_handler_1 = require("../../lib/command-handler");
|
|
|
12
12
|
const json_output_1 = require("../../lib/json-output");
|
|
13
13
|
const container_1 = require("../../container");
|
|
14
14
|
const ui_1 = require("../../lib/ui");
|
|
15
|
+
const config_1 = require("../../lib/config");
|
|
15
16
|
exports.credentialsCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
|
|
16
17
|
let appId = options.appId;
|
|
17
18
|
if (!appId) {
|
|
@@ -24,7 +25,9 @@ exports.credentialsCommand = (0, command_handler_1.withCommandHandler)(async (op
|
|
|
24
25
|
throw new errors_1.CliError(`App ${appId} not found.`);
|
|
25
26
|
}
|
|
26
27
|
const { app, diffs } = result;
|
|
27
|
-
|
|
28
|
+
if (app.name)
|
|
29
|
+
(0, config_1.saveAppName)(appId, app.name);
|
|
30
|
+
let secretDisplay = en_1.messages.CLIENT_SECRET_HIDDEN_HUMAN;
|
|
28
31
|
let revealConfirmed = false;
|
|
29
32
|
if (options.revealSecret) {
|
|
30
33
|
if (!process.stdin.isTTY) {
|
|
@@ -42,7 +45,7 @@ exports.credentialsCommand = (0, command_handler_1.withCommandHandler)(async (op
|
|
|
42
45
|
]);
|
|
43
46
|
if (confirmed) {
|
|
44
47
|
revealConfirmed = true;
|
|
45
|
-
secretDisplay = app.client_secret ||
|
|
48
|
+
secretDisplay = app.client_secret || en_1.messages.CLIENT_SECRET_NOT_AVAILABLE;
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
}
|
|
@@ -51,8 +54,11 @@ exports.credentialsCommand = (0, command_handler_1.withCommandHandler)(async (op
|
|
|
51
54
|
appName: app.name || null,
|
|
52
55
|
appId,
|
|
53
56
|
clientId: app.client_id,
|
|
54
|
-
clientSecret: revealConfirmed
|
|
57
|
+
clientSecret: revealConfirmed
|
|
58
|
+
? (app.client_secret ?? en_1.messages.CLIENT_SECRET_NOT_AVAILABLE)
|
|
59
|
+
: en_1.messages.CLIENT_SECRET_HIDDEN_JSON,
|
|
55
60
|
scopes: app.scopes || [],
|
|
61
|
+
redirectUris: app.redirect_uris ?? [],
|
|
56
62
|
});
|
|
57
63
|
}
|
|
58
64
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/commands/app/credentials.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,6CAAoD;AACpD,sCAAyC;AACzC,6CAA4C;AAC5C,+DAA+D;AAC/D,uDAAmD;AACnD,+CAA6C;AAC7C,qCAA6C;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/commands/app/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/app/delete.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,aAAa;YACE,MAAM;YAAU,OAAO;WAAS,OAAO;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/app/delete.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,aAAa;YACE,MAAM;YAAU,OAAO;WAAS,OAAO;mBAwFlE,CAAC"}
|
|
@@ -108,6 +108,7 @@ exports.deleteCommand = (0, command_handler_1.withCommandHandler)(async (options
|
|
|
108
108
|
const deleteSpinner = (0, ui_1.createSpinner)('Deleting app...', { silent: options.json });
|
|
109
109
|
await container_1.appService.deleteApp(appId);
|
|
110
110
|
deleteSpinner.stop();
|
|
111
|
+
(0, config_1.deleteAppName)(appId);
|
|
111
112
|
if (options.json) {
|
|
112
113
|
(0, json_output_1.jsonOutput)({ deleted: true, appId });
|
|
113
114
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/app/delete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,wDAAgC;AAChC,6CAAgE;AAChE,sCAAyC;AACzC,6CAA4C;AAC5C,+DAA+D;AAC/D,uDAAmD;AACnD,+CAA6C;AAC7C,qCAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/app/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/app/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/app/list.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,WAAW;WACG,OAAO;mBAwDjC,CAAC"}
|
|
@@ -7,6 +7,7 @@ const container_1 = require("../../container");
|
|
|
7
7
|
const command_handler_1 = require("../../lib/command-handler");
|
|
8
8
|
const json_output_1 = require("../../lib/json-output");
|
|
9
9
|
const ui_1 = require("../../lib/ui");
|
|
10
|
+
const config_1 = require("../../lib/config");
|
|
10
11
|
exports.listCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
|
|
11
12
|
const spinner = (0, ui_1.createSpinner)('Fetching apps...', { silent: options.json });
|
|
12
13
|
let apps;
|
|
@@ -16,8 +17,24 @@ exports.listCommand = (0, command_handler_1.withCommandHandler)(async (options)
|
|
|
16
17
|
finally {
|
|
17
18
|
spinner.stop();
|
|
18
19
|
}
|
|
20
|
+
// The /v3/oauth/apps list endpoint lags behind /v3/app-store updates,
|
|
21
|
+
// so a name set via `brevo app update` may not appear here for a while.
|
|
22
|
+
// Merge locally cached names to mask the propagation delay. Once the server
|
|
23
|
+
// catches up (cache equals server), drop the entry so any subsequent
|
|
24
|
+
// out-of-band rename (e.g. dashboard) is visible on the next list.
|
|
25
|
+
const cachedNames = (0, config_1.getAppNames)();
|
|
26
|
+
apps = (apps || []).map((app) => {
|
|
27
|
+
const cached = cachedNames[app.app_id];
|
|
28
|
+
if (!cached)
|
|
29
|
+
return app;
|
|
30
|
+
if (cached === app.name) {
|
|
31
|
+
(0, config_1.deleteAppName)(app.app_id);
|
|
32
|
+
return app;
|
|
33
|
+
}
|
|
34
|
+
return { ...app, name: cached };
|
|
35
|
+
});
|
|
19
36
|
if (options.json) {
|
|
20
|
-
const safeApps =
|
|
37
|
+
const safeApps = apps.map(({ client_secret: _secret, ...rest }) => rest);
|
|
21
38
|
(0, json_output_1.jsonOutput)(safeApps);
|
|
22
39
|
return;
|
|
23
40
|
}
|