@sfdxy/anypoint-connect 0.12.0 → 0.13.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/README.md CHANGED
@@ -1,196 +1,183 @@
1
1
  <p align="center">
2
- <img src="docs/assets/logo.svg" alt="Anypoint Connect Banner" width="600" />
2
+ <img src="docs/assets/logo.svg" alt="Anypoint Connect — CLI and MCP toolkit for Anypoint Platform" width="640" />
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <a href="https://www.npmjs.com/package/@sfdxy/anypoint-connect"><img src="https://img.shields.io/npm/v/@sfdxy/anypoint-connect?style=flat-square&color=34d399" alt="npm version" /></a>
7
- <a href="https://github.com/Avinava/anypoint-connect/actions"><img src="https://img.shields.io/github/actions/workflow/status/Avinava/anypoint-connect/ci.yml?style=flat-square&color=38bdf8" alt="CI" /></a>
8
- <a href="https://github.com/Avinava/anypoint-connect/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@sfdxy/anypoint-connect?style=flat-square&color=818cf8" alt="License" /></a>
9
- <a href="https://www.npmjs.com/package/@sfdxy/anypoint-connect"><img src="https://img.shields.io/npm/dm/@sfdxy/anypoint-connect?style=flat-square&color=fbbf24" alt="Downloads" /></a>
6
+ <a href="https://www.npmjs.com/package/@sfdxy/anypoint-connect"><img src="https://img.shields.io/npm/v/@sfdxy/anypoint-connect?style=flat-square&color=087ea4" alt="npm version" /></a>
7
+ <a href="https://github.com/Avinava/anypoint-connect/actions"><img src="https://img.shields.io/github/actions/workflow/status/Avinava/anypoint-connect/ci.yml?style=flat-square" alt="CI status" /></a>
8
+ <a href="https://github.com/Avinava/anypoint-connect/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@sfdxy/anypoint-connect?style=flat-square" alt="MIT license" /></a>
10
9
  </p>
11
10
 
12
11
  <p align="center">
13
- <strong>CLI + MCP toolkit for Anypoint Platform — deploy, tail logs, pull metrics, manage API specs, with production safety nets.</strong>
12
+ <strong>Operate Anypoint Platform from a CLI, an MCP client, or JavaScript—with guarded mutations and one shared authentication layer.</strong>
14
13
  </p>
15
14
 
16
15
  <p align="center">
17
- <a href="https://avinava.github.io/anypoint-connect/">Documentation</a> •
18
- <a href="#quick-start">Quick Start</a> •
19
- <a href="#what-it-does">Capabilities</a> •
20
- <a href="#mcp-server">MCP</a> •
21
- <a href="#safety">Safety</a> •
22
- <a href="#ecosystem">Ecosystem</a>
16
+ <a href="https://avinava.github.io/anypoint-connect/">Documentation</a> ·
17
+ <a href="https://avinava.github.io/anypoint-connect/getting-started/">Getting started</a> ·
18
+ <a href="https://avinava.github.io/anypoint-connect/credentials/">Credentials</a> ·
19
+ <a href="https://avinava.github.io/anypoint-connect/recipes/">Recipes</a>
23
20
  </p>
24
21
 
25
22
  ---
26
23
 
27
- ## Quick Start
24
+ ## Start here
25
+
26
+ You need Node.js `>=22`; Node.js 24 LTS is recommended. If Node and npm are unfamiliar, follow the
27
+ [15-minute setup](https://avinava.github.io/anypoint-connect/getting-started/) instead of guessing through
28
+ the commands below.
28
29
 
29
30
  ```bash
30
- # 1. Install
31
- npm install -g @sfdxy/anypoint-connect
31
+ # Install
32
+ npm install --global @sfdxy/anypoint-connect
32
33
 
33
- # 2. Configure (interactive — prompts for Client ID & Secret)
34
+ # Save a Connected App Client ID and Secret
34
35
  anc config init
35
36
 
36
- # 3. Authenticate (opens browser for OAuth)
37
+ # Authorize your Anypoint user in the browser
37
38
  anc auth login
38
39
 
39
- # 4. Verify
40
+ # Verify the local session and one visible environment
40
41
  anc auth status
42
+ anc apps list --env Sandbox
41
43
  ```
42
44
 
43
- No Connected App yet? The four-step setup, including the exact scopes to grant, is in
44
- [Getting started](https://avinava.github.io/anypoint-connect/getting-started/). Requires Node.js
45
- `>=20.0.0`.
45
+ The Connected App must be **App acts on behalf of a user**, use Authorization Code, redirect to
46
+ `http://localhost:3000/api/callback`, and include **Full Access** plus **Background Access**. The
47
+ [credential guide](https://avinava.github.io/anypoint-connect/credentials/) gives the exact UI fields,
48
+ administrator handoff, storage model, rotation steps, and troubleshooting.
46
49
 
47
- ```bash
48
- anc apps list --env Sandbox
49
- anc logs tail my-api --env Sandbox
50
- anc monitor view --env Production
51
- ```
50
+ ## Credential model
51
+
52
+ | Item | Purpose | Storage |
53
+ | --- | --- | --- |
54
+ | Client ID | Identifies the Connected App | Profile `config.json` |
55
+ | Client Secret | Authenticates the local client | Profile `config.json`, restricted to the current OS user |
56
+ | OAuth tokens | Represent the user-authorized session | AES-256-GCM encrypted `tokens.enc` |
52
57
 
53
- Working across several organizations? Use named profiles —
54
- [Profiles and multiple orgs](https://avinava.github.io/anypoint-connect/profiles/).
58
+ The ID and Secret do not provide access without a browser-authorized user session. Environment variables
59
+ can override where app credentials come from, but they do not implement headless CI authentication. This
60
+ release does not support the `client_credentials` grant, and its encrypted token file is machine-bound.
55
61
 
56
62
  ## What it does
57
63
 
58
64
  | Area | Examples |
59
65
  | --- | --- |
60
66
  | Applications | Status, deployment spec, resources, settings, deploy, redeploy, rollback, restart, scale, stop, start, delete |
61
- | Logs | Tail, download, error clustering with context windows, recurring patterns, statistical health |
62
- | Monitoring | Request metrics, percentiles, time series, per-replica, JVM memory and GC, freeform AMQL |
63
- | Exchange | Search, asset detail, spec download, JAR publication, environment comparison |
67
+ | Logs | Tail, download, error clustering with context, recurring patterns, statistical health |
68
+ | Monitoring | Request metrics, percentiles, time series, per-replica metrics, JVM memory and GC, freeform AMQL |
69
+ | Exchange | Search, asset details, spec download, JAR publication, environment comparison |
64
70
  | API Manager | Instances, policies, SLA tiers, alerts |
65
- | Design Center | Projects, branches, safe file sync, governed publication |
66
- | Platform | Environments, entitlements, audit log |
67
- | Anypoint MQ | Queues, depth and throughput, dead-letter browsing, test publishing |
68
- | Object Store v2 | Stores, keys, values |
71
+ | Design Center | Projects, branches, conflict-safe file synchronization, governed publication |
72
+ | Platform services | Environments, entitlements, audit log, Anypoint MQ, Object Store v2 |
69
73
 
70
- Every command is documented in the
71
- [CLI reference](https://avinava.github.io/anypoint-connect/cli-reference/).
74
+ Copyable task flows are in [Common recipes](https://avinava.github.io/anypoint-connect/recipes/); every CLI
75
+ command is in the [CLI reference](https://avinava.github.io/anypoint-connect/cli-reference/).
72
76
 
73
77
  ## MCP server
74
78
 
75
- 65 tools for AI agents. Set up credentials first — the server has nothing to offer an unauthenticated
76
- session.
77
-
78
- ```bash
79
- anc config init
80
- anc auth login
81
- ```
82
-
83
- Every host runs the same command; only the file and the wrapping key differ.
84
-
85
- | Host | Where it goes | Wrapping key |
86
- | --- | --- | --- |
87
- | Claude Code | `.mcp.json`, or `claude mcp add` | `mcpServers` |
88
- | Claude Desktop | `claude_desktop_config.json` | `mcpServers` |
89
- | Codex | `.codex/config.toml`, or `codex mcp add` | `[mcp_servers.anypoint-connect]` |
90
- | VS Code, Copilot Chat | `.vscode/mcp.json` | `servers`, plus `"type": "stdio"` |
91
- | Copilot CLI, Gemini, other MCP clients | `.mcp.json` | `mcpServers` |
79
+ Authenticate in a terminal before starting the server. The MCP host never receives the Client Secret or
80
+ OAuth tokens; it sends tool calls to the local server that owns the session.
92
81
 
93
82
  ```json
94
83
  {
95
84
  "mcpServers": {
96
85
  "anypoint-connect": {
97
86
  "command": "npx",
98
- "args": ["-y", "@sfdxy/anypoint-connect@0.11.0", "mcp"]
87
+ "args": ["-y", "@sfdxy/anypoint-connect@0.13.0", "mcp"]
99
88
  }
100
89
  }
101
90
  }
102
91
  ```
103
92
 
104
- Installed globally, use `"command": "anc", "args": ["mcp"]` and skip the download. No `env` block is
105
- needed: the active profile resolves from the project's `.anypoint-connect.json`, falling back to
106
- `default`. Credentials never pass through the protocol — the server holds the session, the agent calls
107
- tools.
93
+ VS Code uses a `servers` wrapper and Codex uses TOML. See the
94
+ [MCP guide](https://avinava.github.io/anypoint-connect/mcp/) or copy a checked-in configuration from
95
+ [`examples/mcp`](examples/mcp).
108
96
 
109
- Per-host examples, prompts, and resources are in the
110
- [MCP guide](https://avinava.github.io/anypoint-connect/mcp/); the full tool table is in the
111
- [catalog](https://avinava.github.io/anypoint-connect/tools/).
97
+ Example requests use synthetic names:
98
+
99
+ ```text
100
+ What applications are visible in Sandbox? Read only.
101
+ Analyze errors for sample-orders-api in Sandbox over the last two hours.
102
+ Preview a deployment of target/sample-orders-api-1.3.0-mule-application.jar to Sandbox; do not apply it.
103
+ ```
112
104
 
113
105
  ## Safety
114
106
 
115
- Every mutating operation is **dry-run by default**: without `confirm: true` it returns a preview and
116
- changes nothing. Redeploying an existing app changes **only** the artifact reference, so runtime, target,
117
- replicas, and settings are preserved and a version bump cannot silently downgrade a runtime or halve
118
- capacity. `update_app_settings` PATCHes only application properties, merging protected values rather than
119
- blanking them. Deletion requires a deployment-ID-bound confirmation — plus a separate acknowledgement in
120
- production — so it fails closed if the deployment changed since you looked.
107
+ Mutating MCP tools are previews until `confirm: true` is supplied. Artifact updates preserve runtime,
108
+ target, replicas, and settings. Deletion requires the deployment ID returned by the preview, and
109
+ production operations require an additional acknowledgement.
121
110
 
122
111
  ```jsonc
123
- // preview
124
- deploy_jar({ "jarPath": "target/example-api-1.0.0-mule-application.jar", "appName": "example-api", "environment": "Sandbox" })
125
- // apply
126
- deploy_jar({ "jarPath": "target/example-api-1.0.0-mule-application.jar", "appName": "example-api", "environment": "Sandbox", "confirm": true })
112
+ // Preview only
113
+ update_app_artifact({
114
+ "appName": "sample-orders-api",
115
+ "environment": "Sandbox",
116
+ "version": "1.3.0"
117
+ })
118
+
119
+ // Apply the reviewed change
120
+ update_app_artifact({
121
+ "appName": "sample-orders-api",
122
+ "environment": "Sandbox",
123
+ "version": "1.3.0",
124
+ "confirm": true
125
+ })
127
126
  ```
128
127
 
129
- Full model in [Safety](https://avinava.github.io/anypoint-connect/safety/); the build, publish, deploy,
130
- and rollback path in [Deploying a JAR](https://avinava.github.io/anypoint-connect/deployment-tools/).
131
-
132
- ## When something fails
133
-
134
- Access problems come in six distinct states — not configured, not authenticated, environment not visible,
135
- not permitted, transient, and ready — and they have different fixes. The error text names which one you
136
- are in. See [Access readiness](https://avinava.github.io/anypoint-connect/readiness/) and
137
- [Troubleshooting](https://avinava.github.io/anypoint-connect/troubleshooting/).
128
+ The complete contract is in the [safety model](https://avinava.github.io/anypoint-connect/safety/).
138
129
 
139
130
  ## Library
140
131
 
141
- ```typescript
132
+ The library reuses a profile authenticated with `anc auth login`. The Client ID and Secret construct the
133
+ client; the profile selects the encrypted token store.
134
+
135
+ ```javascript
142
136
  import { AnypointClient } from '@sfdxy/anypoint-connect';
143
137
 
144
138
  const client = new AnypointClient({
145
- clientId: process.env.ANYPOINT_CLIENT_ID!,
146
- clientSecret: process.env.ANYPOINT_CLIENT_SECRET!,
139
+ clientId: process.env.ANYPOINT_CLIENT_ID,
140
+ clientSecret: process.env.ANYPOINT_CLIENT_SECRET,
141
+ profileName: process.env.ANYPOINT_PROFILE || 'default',
147
142
  });
148
143
 
149
- const me = await client.whoami();
150
- const envs = await client.accessManagement.getEnvironments(me.organization.id);
144
+ const identity = await client.whoami();
145
+ const environments = await client.accessManagement.getEnvironments(identity.organization.id);
146
+ console.log(`Authenticated; ${environments.length} environment(s) visible.`);
151
147
  ```
152
148
 
153
- The API clients give you token refresh, rate limiting, and caching, but not the confirmation gates — those
154
- live in the CLI and MCP layers. More in the
155
- [library guide](https://avinava.github.io/anypoint-connect/library/).
149
+ Direct API clients include bearer injection, refresh, rate limiting, and caching. They do not include the
150
+ CLI/MCP confirmation gates. Start with the runnable JavaScript example in
151
+ [`examples/library`](examples/library) and read the [library guide](https://avinava.github.io/anypoint-connect/library/).
156
152
 
157
- ## Documentation
153
+ ## Profiles and multiple organizations
158
154
 
159
- Published at **<https://avinava.github.io/anypoint-connect/>** with search.
155
+ Use neutral profile names rather than customer names:
160
156
 
161
- | Page | Contents |
162
- | --- | --- |
163
- | [Getting started](docs/getting-started.md) | Install, Connected App, scopes, credentials, authenticate |
164
- | [Profiles](docs/profiles.md) | Multiple organizations, resolution order, storage layout |
165
- | [Access readiness](docs/readiness.md) | The six access states and their fixes |
166
- | [CLI reference](docs/cli-reference.md) | Every command group |
167
- | [MCP server](docs/mcp.md) | Host setup, prompts, resources |
168
- | [Tool catalog](docs/tools.md) | All 65 tools, and how to choose between overlapping ones |
169
- | [Safety model](docs/safety.md) | Dry runs, narrow updates, bound deletion |
170
- | [Deploying a JAR](docs/deployment-tools.md) | Build, publish, deploy, roll back |
171
- | [Library API](docs/library.md) | Programmatic use |
172
- | [Troubleshooting](docs/troubleshooting.md) | Symptoms and causes |
173
- | [Architecture](docs/architecture.md) | Layers and design notes |
174
-
175
- ## Ecosystem
176
-
177
- The canonical package matrix and supported combination live in the
178
- [`mule-skills` ecosystem hub](https://avinava.github.io/mule-skills/ecosystem/). This is the only tool
179
- in the set that needs Anypoint credentials. A complete release crosses two boundaries: `mule-build`
180
- produces and versions the artifact, while this package puts it in an environment. More detail is on
181
- the local [ecosystem page](docs/ecosystem.md).
157
+ ```bash
158
+ anc config init --profile team-a
159
+ anc auth login --profile team-a
160
+ anc config use team-a
161
+ ```
162
+
163
+ The directory binding contains only a local profile label, but it can still reveal internal context. Add
164
+ `.anypoint-connect.json` to the project's `.gitignore`. Resolution rules and storage layout are in
165
+ [Profiles](https://avinava.github.io/anypoint-connect/profiles/).
182
166
 
183
167
  ## Development
184
168
 
185
169
  ```bash
170
+ nvm use
186
171
  npm install
187
172
  npm run build
188
173
  npm test
189
174
  npm run lint
175
+ npm run docs:check
176
+ mkdocs build --strict
190
177
  ```
191
178
 
192
- Releases are tag-triggered: bump the version, push the tag with `git push --follow-tags`, and GitHub
193
- Actions runs CI, publishes to npm with provenance, and creates the release.
179
+ CI tests Node 22, 24, and 26. Documentation is built with MkDocs Material and published through GitHub
180
+ Pages. Releases are tag-triggered and published to npm with provenance.
194
181
 
195
182
  ## License
196
183
 
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Self-contained HTML shown by the local OAuth callback server.
3
+ *
4
+ * The page intentionally has no external assets or JavaScript: it must render
5
+ * reliably while authentication is in progress and must never leak callback
6
+ * parameters to another origin.
7
+ */
8
+ export type OAuthCallbackPageStatus = 'success' | 'error';
9
+ export interface OAuthCallbackPageOptions {
10
+ status: OAuthCallbackPageStatus;
11
+ title: string;
12
+ message: string;
13
+ detail?: string;
14
+ }
15
+ export declare const OAUTH_CALLBACK_HEADERS: {
16
+ readonly 'Content-Type': "text/html; charset=utf-8";
17
+ readonly 'Cache-Control': "no-store";
18
+ readonly 'Content-Security-Policy': "default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'";
19
+ readonly 'Referrer-Policy': "no-referrer";
20
+ readonly 'X-Content-Type-Options': "nosniff";
21
+ };
22
+ export declare function renderOAuthCallbackPage(options: OAuthCallbackPageOptions): string;
23
+ //# sourceMappingURL=OAuthCallbackPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthCallbackPage.d.ts","sourceRoot":"","sources":["../../src/auth/OAuthCallbackPage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,sBAAsB;;;;;;CAOzB,CAAC;AAeX,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAgIjF"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Self-contained HTML shown by the local OAuth callback server.
3
+ *
4
+ * The page intentionally has no external assets or JavaScript: it must render
5
+ * reliably while authentication is in progress and must never leak callback
6
+ * parameters to another origin.
7
+ */
8
+ export const OAUTH_CALLBACK_HEADERS = {
9
+ 'Content-Type': 'text/html; charset=utf-8',
10
+ 'Cache-Control': 'no-store',
11
+ 'Content-Security-Policy': "default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'",
12
+ 'Referrer-Policy': 'no-referrer',
13
+ 'X-Content-Type-Options': 'nosniff',
14
+ };
15
+ function escapeHtml(value) {
16
+ return value.replace(/[&<>'"]/g, (character) => {
17
+ const entities = {
18
+ '&': '&amp;',
19
+ '<': '&lt;',
20
+ '>': '&gt;',
21
+ "'": '&#39;',
22
+ '"': '&quot;',
23
+ };
24
+ return entities[character];
25
+ });
26
+ }
27
+ export function renderOAuthCallbackPage(options) {
28
+ const isSuccess = options.status === 'success';
29
+ const statusLabel = isSuccess ? 'Connected' : 'Authentication interrupted';
30
+ const safeTitle = escapeHtml(options.title);
31
+ const safeMessage = escapeHtml(options.message);
32
+ const safeDetail = options.detail ? escapeHtml(options.detail) : '';
33
+ return `<!doctype html>
34
+ <html lang="en">
35
+ <head>
36
+ <meta charset="utf-8">
37
+ <meta name="viewport" content="width=device-width, initial-scale=1">
38
+ <meta name="color-scheme" content="light dark">
39
+ <title>${safeTitle} · Anypoint Connect</title>
40
+ <style>
41
+ :root {
42
+ color-scheme: light dark;
43
+ --paper: #f5f7fa;
44
+ --surface: #ffffff;
45
+ --ink: #172033;
46
+ --muted: #536078;
47
+ --rule: rgba(23, 32, 51, 0.14);
48
+ --accent: #087ea4;
49
+ --accent-soft: rgba(8, 126, 164, 0.10);
50
+ --danger: #a63d4b;
51
+ --danger-soft: rgba(166, 61, 75, 0.10);
52
+ }
53
+
54
+ @media (prefers-color-scheme: dark) {
55
+ :root {
56
+ --paper: #111621;
57
+ --surface: #192131;
58
+ --ink: #f2f5fa;
59
+ --muted: #a9b4c7;
60
+ --rule: rgba(242, 245, 250, 0.14);
61
+ --accent: #57c7e8;
62
+ --accent-soft: rgba(87, 199, 232, 0.12);
63
+ --danger: #ff929f;
64
+ --danger-soft: rgba(255, 146, 159, 0.12);
65
+ }
66
+ }
67
+
68
+ * { box-sizing: border-box; }
69
+
70
+ body {
71
+ min-height: 100vh;
72
+ margin: 0;
73
+ display: grid;
74
+ place-items: center;
75
+ padding: 24px;
76
+ background: var(--paper);
77
+ color: var(--ink);
78
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
79
+ line-height: 1.55;
80
+ -webkit-font-smoothing: antialiased;
81
+ }
82
+
83
+ main {
84
+ width: min(100%, 560px);
85
+ padding: clamp(28px, 7vw, 48px);
86
+ background: var(--surface);
87
+ border: 1px solid var(--rule);
88
+ border-radius: 16px;
89
+ }
90
+
91
+ .mark {
92
+ width: 52px;
93
+ height: 52px;
94
+ display: grid;
95
+ place-items: center;
96
+ margin-bottom: 24px;
97
+ border-radius: 12px;
98
+ background: ${isSuccess ? 'var(--accent-soft)' : 'var(--danger-soft)'};
99
+ color: ${isSuccess ? 'var(--accent)' : 'var(--danger)'};
100
+ font-size: 28px;
101
+ font-weight: 700;
102
+ }
103
+
104
+ .eyebrow {
105
+ margin: 0 0 10px;
106
+ color: ${isSuccess ? 'var(--accent)' : 'var(--danger)'};
107
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
108
+ font-size: 12px;
109
+ font-weight: 700;
110
+ letter-spacing: 0.08em;
111
+ text-transform: uppercase;
112
+ }
113
+
114
+ h1 {
115
+ margin: 0 0 14px;
116
+ font-size: clamp(28px, 7vw, 40px);
117
+ line-height: 1.12;
118
+ letter-spacing: -0.025em;
119
+ }
120
+
121
+ p { margin: 0; color: var(--muted); }
122
+
123
+ .detail {
124
+ margin-top: 22px;
125
+ padding: 14px 16px;
126
+ overflow-wrap: anywhere;
127
+ background: ${isSuccess ? 'var(--accent-soft)' : 'var(--danger-soft)'};
128
+ border-left: 3px solid ${isSuccess ? 'var(--accent)' : 'var(--danger)'};
129
+ border-radius: 6px;
130
+ color: var(--ink);
131
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
132
+ font-size: 13px;
133
+ }
134
+
135
+ .next {
136
+ margin-top: 28px;
137
+ padding-top: 20px;
138
+ border-top: 1px solid var(--rule);
139
+ font-size: 14px;
140
+ }
141
+ </style>
142
+ </head>
143
+ <body>
144
+ <main aria-labelledby="page-title">
145
+ <div class="mark" aria-hidden="true">${isSuccess ? '✓' : '!'}</div>
146
+ <p class="eyebrow">${statusLabel}</p>
147
+ <h1 id="page-title">${safeTitle}</h1>
148
+ <p>${safeMessage}</p>
149
+ ${safeDetail ? `<div class="detail" role="alert">${safeDetail}</div>` : ''}
150
+ <p class="next">You can close this tab and return to the terminal.</p>
151
+ </main>
152
+ </body>
153
+ </html>`;
154
+ }
155
+ //# sourceMappingURL=OAuthCallbackPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthCallbackPage.js","sourceRoot":"","sources":["../../src/auth/OAuthCallbackPage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,UAAU;IAC3B,yBAAyB,EACrB,4GAA4G;IAChH,iBAAiB,EAAE,aAAa;IAChC,wBAAwB,EAAE,SAAS;CAC7B,CAAC;AAEX,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA2B;YACrC,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,QAAQ;SAChB,CAAC;QACF,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAiC;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC;IAC3E,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,OAAO;;;;;;aAME,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA2DI,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB;qBAC5D,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;;;;;;;qBAO7C,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;;;;;;;;;;;;;;;;;;;;;0BAqBxC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB;qCAC5C,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;;;;;;;;;;;;;;;;;+CAiBnC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;6BACvC,WAAW;8BACV,SAAS;aAC1B,WAAW;UACd,UAAU,CAAC,CAAC,CAAC,oCAAoC,UAAU,QAAQ,CAAC,CAAC,CAAC,EAAE;;;;QAI1E,CAAC;AACT,CAAC"}
@@ -9,6 +9,12 @@ export interface OAuthConfig {
9
9
  redirectUri: string;
10
10
  baseUrl?: string;
11
11
  }
12
+ export interface OAuthCallbackOptions {
13
+ /** OAuth state generated with the authorization URL. */
14
+ expectedState?: string;
15
+ /** Loopback host to bind. Defaults to localhost for compatibility. */
16
+ hostname?: string;
17
+ }
12
18
  export declare class OAuthFlow {
13
19
  private readonly config;
14
20
  private readonly baseUrl;
@@ -20,7 +26,7 @@ export declare class OAuthFlow {
20
26
  /**
21
27
  * Start local callback server and wait for authorization code
22
28
  */
23
- waitForCallback(port?: number, callbackPath?: string, timeoutMs?: number): Promise<{
29
+ waitForCallback(port?: number, callbackPath?: string, timeoutMs?: number, options?: OAuthCallbackOptions): Promise<{
24
30
  code: string;
25
31
  state: string;
26
32
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthFlow.d.ts","sourceRoot":"","sources":["../../src/auth/OAuthFlow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAYtD,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,WAAW;IAK/B;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAYtC;;OAEG;IACG,eAAe,CACjB,IAAI,GAAE,MAAa,EACnB,YAAY,GAAE,MAAwB,EACtC,SAAS,GAAE,MAAe,GAC3B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAqE3C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BzD;;OAEG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA0BjE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAU3B"}
1
+ {"version":3,"file":"OAuthFlow.d.ts","sourceRoot":"","sources":["../../src/auth/OAuthFlow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAatD,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,WAAW;IAK/B;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAYtC;;OAEG;IACG,eAAe,CACjB,IAAI,GAAE,MAAa,EACnB,YAAY,GAAE,MAAwB,EACtC,SAAS,GAAE,MAAe,EAC1B,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA2F3C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BzD;;OAEG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA0BjE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAU3B"}
@@ -3,6 +3,7 @@
3
3
  * Browser-based OAuth2 authorization code flow for Anypoint Platform
4
4
  */
5
5
  import * as http from 'http';
6
+ import { OAUTH_CALLBACK_HEADERS, renderOAuthCallbackPage } from './OAuthCallbackPage.js';
6
7
  const DEFAULT_BASE_URL = 'https://anypoint.mulesoft.com';
7
8
  export class OAuthFlow {
8
9
  config;
@@ -27,7 +28,7 @@ export class OAuthFlow {
27
28
  /**
28
29
  * Start local callback server and wait for authorization code
29
30
  */
30
- async waitForCallback(port = 3000, callbackPath = '/api/callback', timeoutMs = 120000) {
31
+ async waitForCallback(port = 3000, callbackPath = '/api/callback', timeoutMs = 120000, options = {}) {
31
32
  return new Promise((resolve, reject) => {
32
33
  const server = http.createServer((req, res) => {
33
34
  const parsedUrl = new URL(req.url || '', `http://localhost`);
@@ -37,47 +38,56 @@ export class OAuthFlow {
37
38
  const error = parsedUrl.searchParams.get('error');
38
39
  const error_description = parsedUrl.searchParams.get('error_description');
39
40
  if (error) {
40
- res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
41
- res.end(`
42
- <html>
43
- <head><meta charset="utf-8"></head>
44
- <body style="font-family: system-ui; padding: 40px; text-align: center; background: #1a1a2e; color: #e0e0e0;">
45
- <h1 style="color: #ff6b6b;">❌ Authentication Failed</h1>
46
- <p>${error_description || error}</p>
47
- <p style="color: #888;">You can close this window.</p>
48
- </body>
49
- </html>
50
- `);
41
+ res.writeHead(400, OAUTH_CALLBACK_HEADERS);
42
+ res.end(renderOAuthCallbackPage({
43
+ status: 'error',
44
+ title: 'Authentication was not completed',
45
+ message: 'Anypoint Platform did not authorize this local session.',
46
+ detail: error_description || error,
47
+ }));
51
48
  server.close();
52
49
  reject(new Error(`OAuth error: ${error_description || error}`));
53
50
  return;
54
51
  }
55
- if (code && state) {
56
- res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
57
- res.end(`
58
- <html>
59
- <head><meta charset="utf-8"></head>
60
- <body style="font-family: system-ui; padding: 40px; text-align: center; background: #1a1a2e; color: #e0e0e0;">
61
- <h1 style="color: #4ecdc4;">✅ Authentication Successful!</h1>
62
- <p>You can close this window and return to the terminal.</p>
63
- <script>setTimeout(() => window.close(), 2000);</script>
64
- </body>
65
- </html>
66
- `);
67
- server.close();
68
- resolve({ code: code, state: state });
52
+ if (!code || !state) {
53
+ res.writeHead(400, OAUTH_CALLBACK_HEADERS);
54
+ res.end(renderOAuthCallbackPage({
55
+ status: 'error',
56
+ title: 'The callback was incomplete',
57
+ message: 'The authorization response did not contain both a code and state value.',
58
+ detail: 'Return to the terminal and start the login again if it does not continue.',
59
+ }));
60
+ return;
69
61
  }
70
- else {
71
- res.writeHead(400, { 'Content-Type': 'text/plain' });
72
- res.end('Missing code or state');
62
+ if (options.expectedState && state !== options.expectedState) {
63
+ res.writeHead(400, OAUTH_CALLBACK_HEADERS);
64
+ res.end(renderOAuthCallbackPage({
65
+ status: 'error',
66
+ title: 'The callback could not be verified',
67
+ message: 'This response did not match the login request started by the CLI.',
68
+ detail: 'For your safety, no authorization code was accepted.',
69
+ }));
70
+ return;
73
71
  }
72
+ res.writeHead(200, OAUTH_CALLBACK_HEADERS);
73
+ res.end(renderOAuthCallbackPage({
74
+ status: 'success',
75
+ title: 'Authentication successful',
76
+ message: 'Anypoint Platform returned control to Anypoint Connect securely.',
77
+ }));
78
+ server.close();
79
+ resolve({ code, state });
74
80
  }
75
81
  else {
76
- res.writeHead(404, { 'Content-Type': 'text/plain' });
77
- res.end('Not found');
82
+ res.writeHead(404, OAUTH_CALLBACK_HEADERS);
83
+ res.end(renderOAuthCallbackPage({
84
+ status: 'error',
85
+ title: 'Callback page not found',
86
+ message: 'This local server only accepts the configured OAuth callback path.',
87
+ }));
78
88
  }
79
89
  });
80
- server.listen(port, () => {
90
+ server.listen(port, options.hostname || 'localhost', () => {
81
91
  // Server started, waiting for callback
82
92
  });
83
93
  const timeout = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthFlow.js","sourceRoot":"","sources":["../../src/auth/OAuthFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OAuthFlow.js","sourceRoot":"","sources":["../../src/auth/OAuthFlow.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export declare class TokenManager {
21
21
  private readonly oauthFlow;
22
22
  private store;
23
23
  private cachedTokens;
24
+ private pendingState;
24
25
  constructor(config: TokenManagerConfig);
25
26
  getStatus(): Promise<AuthStatus>;
26
27
  /**
@@ -37,5 +38,6 @@ export declare class TokenManager {
37
38
  setAccessToken(accessToken: string, expiresInSeconds?: number): Promise<void>;
38
39
  private getTokens;
39
40
  private generateState;
41
+ private getLoopbackHostname;
40
42
  }
41
43
  //# sourceMappingURL=TokenManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIlE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,kBAAkB;IAWhC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAmBtC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IA0CvC,eAAe,IAAI,MAAM;IAKzB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAmBvC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAclC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAW3E,SAAS;IASvB,OAAO,CAAC,aAAa;CAGxB"}
1
+ {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIlE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAuB;gBAE/B,MAAM,EAAE,kBAAkB;IAWhC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAmBtC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IA0CvC,eAAe,IAAI,MAAM;IAMzB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAgCvC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAclC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAW3E,SAAS;IASvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,mBAAmB;CAY9B"}
@@ -9,6 +9,7 @@ export class TokenManager {
9
9
  oauthFlow;
10
10
  store;
11
11
  cachedTokens = null;
12
+ pendingState = null;
12
13
  constructor(config) {
13
14
  this.config = config;
14
15
  this.oauthFlow = new OAuthFlow({
@@ -77,24 +78,38 @@ export class TokenManager {
77
78
  }
78
79
  getAuthorizeUrl() {
79
80
  const state = this.generateState();
81
+ this.pendingState = state;
80
82
  return this.oauthFlow.getAuthorizeUrl(state);
81
83
  }
82
84
  /**
83
85
  * Perform full OAuth flow with browser
84
86
  */
85
87
  async authenticate() {
88
+ if (!this.pendingState) {
89
+ throw new Error('Authentication was not initialized. Generate the authorization URL first.');
90
+ }
86
91
  const redirectUrl = new URL(this.config.redirectUri);
92
+ const hostname = this.getLoopbackHostname(redirectUrl);
87
93
  const port = parseInt(redirectUrl.port) || 3000;
88
94
  const callbackPath = redirectUrl.pathname;
89
- // Start callback server first
90
- const callbackPromise = this.oauthFlow.waitForCallback(port, callbackPath);
91
- // Wait for callback and exchange code
92
- const { code } = await callbackPromise;
93
- const tokens = await this.oauthFlow.exchangeCode(code);
94
- // Save tokens
95
- await this.store.save(tokens);
96
- this.cachedTokens = tokens;
97
- return tokens;
95
+ const expectedState = this.pendingState;
96
+ try {
97
+ // Start callback server first
98
+ const callbackPromise = this.oauthFlow.waitForCallback(port, callbackPath, 120000, {
99
+ expectedState,
100
+ hostname,
101
+ });
102
+ // Wait for callback and exchange code
103
+ const { code } = await callbackPromise;
104
+ const tokens = await this.oauthFlow.exchangeCode(code);
105
+ // Save tokens
106
+ await this.store.save(tokens);
107
+ this.cachedTokens = tokens;
108
+ return tokens;
109
+ }
110
+ finally {
111
+ this.pendingState = null;
112
+ }
98
113
  }
99
114
  async refresh() {
100
115
  const tokens = await this.getTokens();
@@ -130,5 +145,15 @@ export class TokenManager {
130
145
  generateState() {
131
146
  return crypto.randomUUID();
132
147
  }
148
+ getLoopbackHostname(redirectUrl) {
149
+ if (redirectUrl.protocol !== 'http:') {
150
+ throw new Error('OAuth callback URL must use HTTP on a loopback host.');
151
+ }
152
+ const hostname = redirectUrl.hostname.replace(/^\[|\]$/g, '');
153
+ if (!['localhost', '127.0.0.1', '::1'].includes(hostname)) {
154
+ throw new Error('OAuth callback URL must use localhost, 127.0.0.1, or ::1.');
155
+ }
156
+ return hostname;
157
+ }
133
158
  }
134
159
  //# sourceMappingURL=TokenManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { OAuthFlow, type OAuthConfig } from './OAuthFlow.js';
1
+ export { OAuthFlow, type OAuthConfig, type OAuthCallbackOptions } from './OAuthFlow.js';
2
2
  export { TokenManager, type TokenManagerConfig, type AuthStatus } from './TokenManager.js';
3
3
  export { FileStore } from './FileStore.js';
4
4
  export type { TokenStore, AnypointTokens } from './TokenStore.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAA4C,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA+C,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,YAAY,EAA4C,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -40,7 +40,7 @@ export function createAuthCommand() {
40
40
  }
41
41
  });
42
42
  auth.command('logout')
43
- .description('Clear stored credentials')
43
+ .description('Clear stored OAuth tokens (keeps the Client ID and Secret)')
44
44
  .option('-p, --profile <name>', 'Profile to log out')
45
45
  .action(async (options) => {
46
46
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,6 @@
3
3
  * anc config init | show | set <key> <value> | path | profiles | use <profile>
4
4
  */
5
5
  import { Command } from 'commander';
6
+ export declare function promptForClientSecret(existingSecret?: string): Promise<string>;
6
7
  export declare function createConfigCommand(): Command;
7
8
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,wBAAgB,mBAAmB,IAAI,OAAO,CAiM7C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,wBAAsB,qBAAqB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASpF;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CA0L7C"}
@@ -5,6 +5,7 @@
5
5
  import { Command } from 'commander';
6
6
  import * as readline from 'readline';
7
7
  import chalk from 'chalk';
8
+ import password from '@inquirer/password';
8
9
  import { log } from '../utils/logger.js';
9
10
  import { errorMessage } from '../utils/errors.js';
10
11
  import { readSavedConfig, writeSavedConfig, updateSavedConfig, hasSavedConfig, getConfigDir, getProfileDir, listProfiles, resolveProfile, writeProjectConfig, DEFAULT_CALLBACK_URL, } from '../utils/config.js';
@@ -16,6 +17,16 @@ function ask(rl, prompt, defaultValue) {
16
17
  });
17
18
  });
18
19
  }
20
+ export async function promptForClientSecret(existingSecret) {
21
+ const existingSecretHint = existingSecret
22
+ ? ` (leave blank to keep the secret ending ${existingSecret.slice(-4)})`
23
+ : '';
24
+ const enteredSecret = await password({
25
+ message: `Client Secret${existingSecretHint}:`,
26
+ mask: true,
27
+ });
28
+ return enteredSecret || existingSecret || '';
29
+ }
19
30
  export function createConfigCommand() {
20
31
  const config = new Command('config').description('Manage Anypoint Connect configuration');
21
32
  // ── config init ──────────────────────────────────
@@ -41,13 +52,11 @@ export function createConfigCommand() {
41
52
  log.dim(` Tokens saved to: ~/.anypoint-connect/profiles/${profileName}/tokens.enc (AES-256-GCM)`);
42
53
  console.log();
43
54
  const clientId = await ask(rl, ' Client ID:', existing?.clientId);
44
- const clientSecret = await ask(rl, ' Client Secret:', existing?.clientSecret ? '••••••' + existing.clientSecret.slice(-4) : undefined);
45
55
  const callbackUrl = await ask(rl, ' Callback URL:', existing?.callbackUrl || DEFAULT_CALLBACK_URL);
46
56
  const baseUrl = await ask(rl, ' Base URL:', existing?.baseUrl || 'https://anypoint.mulesoft.com');
47
57
  const defaultEnv = await ask(rl, ' Default Environment (optional):', existing?.defaultEnv);
48
58
  rl.close();
49
- // If user entered the masked secret, keep the original
50
- const resolvedSecret = clientSecret.startsWith('••••••') && existing?.clientSecret ? existing.clientSecret : clientSecret;
59
+ const resolvedSecret = await promptForClientSecret(existing?.clientSecret);
51
60
  if (!clientId || !resolvedSecret) {
52
61
  log.error('Client ID and Client Secret are required');
53
62
  process.exit(1);
@@ -63,6 +72,7 @@ export function createConfigCommand() {
63
72
  console.log();
64
73
  log.success(`Configuration saved for profile "${profileName}"!`);
65
74
  log.kv('Location', `${getProfileDir(profileName)}/config.json`);
75
+ log.dim(' The Client Secret is stored in this user-only file; OAuth tokens are encrypted separately.');
66
76
  console.log();
67
77
  log.info('Next step: authenticate with Anypoint Platform');
68
78
  log.dim(` anc auth login${profileName !== 'default' ? ` --profile ${profileName}` : ''}`);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export { AnypointClient, type AnypointClientConfig } from './client/AnypointClient.js';
5
5
  export { TokenManager, type TokenManagerConfig, type AuthStatus } from './auth/TokenManager.js';
6
- export { OAuthFlow, type OAuthConfig } from './auth/OAuthFlow.js';
6
+ export { OAuthFlow, type OAuthConfig, type OAuthCallbackOptions } from './auth/OAuthFlow.js';
7
7
  export { FileStore } from './auth/FileStore.js';
8
8
  export type { TokenStore, AnypointTokens } from './auth/TokenStore.js';
9
9
  export { AccessManagementApi, type UserProfile, type Environment, type OrgEntitlements, type OrgSubscription, type OrgDetails, } from './api/AccessManagementApi.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EACH,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,UAAU,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACH,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EACH,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EACH,aAAa,EACb,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,GACpC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EACH,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EACH,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,UAAU,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACH,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EACH,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EACH,aAAa,EACb,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,GACpC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EACH,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,cAAc,EAA6B,MAAM,4BAA4B,CAAC;AAEvF,OAAO;AACP,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAoB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO;AACP,OAAO,EACH,mBAAmB,GAMtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,YAAY,GAUf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACH,aAAa,GAQhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAgD,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAiE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EACH,eAAe,GAMlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAkD,MAAM,+BAA+B,CAAC;AACrH,OAAO,EACH,aAAa,GAGhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,WAAW,GAKd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAoD,MAAM,wBAAwB,CAAC;AACzG,OAAO,EACH,cAAc,GAIjB,MAAM,yBAAyB,CAAC;AAEjC,QAAQ;AACR,OAAO,EAAE,UAAU,EAAyB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAmB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA0B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,cAAc,EAA6B,MAAM,4BAA4B,CAAC;AAEvF,OAAO;AACP,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAA+C,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO;AACP,OAAO,EACH,mBAAmB,GAMtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,YAAY,GAUf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACH,aAAa,GAQhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAgD,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAiE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EACH,eAAe,GAMlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAkD,MAAM,+BAA+B,CAAC;AACrH,OAAO,EACH,aAAa,GAGhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,WAAW,GAKd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAoD,MAAM,wBAAwB,CAAC;AACzG,OAAO,EACH,cAAc,GAIjB,MAAM,yBAAyB,CAAC;AAEjC,QAAQ;AACR,OAAO,EAAE,UAAU,EAAyB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAmB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA0B,MAAM,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sfdxy/anypoint-connect",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "CLI + MCP toolkit for Anypoint Platform — deploy, tail logs, pull metrics, manage API specs, with production safety nets",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,12 +18,14 @@
18
18
  "lint": "tsc --noEmit",
19
19
  "format": "prettier --write .",
20
20
  "format:check": "prettier --check .",
21
- "audit:prod": "npm audit --omit=dev --audit-level=moderate"
21
+ "audit:prod": "npm audit --omit=dev --audit-level=moderate",
22
+ "docs:check": "node scripts/check-docs.mjs"
22
23
  },
23
24
  "engines": {
24
- "node": ">=20.0.0"
25
+ "node": ">=22.0.0"
25
26
  },
26
27
  "dependencies": {
28
+ "@inquirer/password": "^4.0.14",
27
29
  "@modelcontextprotocol/sdk": "^1.12.1",
28
30
  "axios": "^1.6.0",
29
31
  "chalk": "^5.3.0",
@@ -34,7 +36,7 @@
34
36
  "zod": "^3.22.0"
35
37
  },
36
38
  "devDependencies": {
37
- "@types/node": "^20.10.0",
39
+ "@types/node": "^22.0.0",
38
40
  "@vitest/coverage-v8": "^4.1.11",
39
41
  "prettier": "^3.8.1",
40
42
  "typescript": "^5.3.3",