@se-studio/contentful-cms 1.0.48 → 1.0.50
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 +6 -0
- package/INSTALL.md +32 -55
- package/README.md +10 -6
- package/dist/bin/cms-edit-setup.d.ts +3 -0
- package/dist/bin/cms-edit-setup.d.ts.map +1 -0
- package/dist/bin/cms-edit-setup.js +7 -0
- package/dist/bin/cms-edit-setup.js.map +1 -0
- package/dist/bin/cms-edit.js +7 -0
- package/dist/bin/cms-edit.js.map +1 -1
- package/dist/setup/wizard.d.ts +4 -0
- package/dist/setup/wizard.d.ts.map +1 -0
- package/dist/setup/wizard.js +238 -0
- package/dist/setup/wizard.js.map +1 -0
- package/package.json +3 -1
package/CHANGELOG.md
CHANGED
package/INSTALL.md
CHANGED
|
@@ -6,74 +6,37 @@ This guide sets up Claude Desktop so it can read and edit your Contentful conten
|
|
|
6
6
|
|
|
7
7
|
## What you'll need
|
|
8
8
|
|
|
9
|
-
- **Contentful
|
|
10
|
-
- **
|
|
11
|
-
- **Staging site URL** — the Vercel preview URL for your project (e.g. `https://my-project.vercel.app`)
|
|
12
|
-
- **Vercel bypass token** *(optional)* — only needed if your staging site has deployment protection enabled
|
|
13
|
-
- **Node.js** — required for screenshot support. Download the LTS version from [nodejs.org](https://nodejs.org) if you don't have it
|
|
9
|
+
- **Contentful Management Token** — a secret key that gives Claude permission to edit content (the setup wizard will discover your Space ID and environments automatically)
|
|
10
|
+
- **Node.js** — required to run the setup wizard and for screenshot support. Download the LTS version from [nodejs.org](https://nodejs.org) if you don't have it
|
|
14
11
|
|
|
15
12
|
---
|
|
16
13
|
|
|
17
|
-
## Step 1 — Get your Contentful
|
|
18
|
-
|
|
19
|
-
### Space ID
|
|
14
|
+
## Step 1 — Get your Contentful Management Token
|
|
20
15
|
|
|
21
16
|
1. Log in to [contentful.com](https://app.contentful.com)
|
|
22
|
-
2. Click **Settings** in the top menu
|
|
23
|
-
3.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
1. Click **Settings** → **API keys**
|
|
28
|
-
2. Click the **Content management tokens** tab
|
|
29
|
-
3. Click **Generate personal token**
|
|
30
|
-
4. Give it a name (e.g. `Claude Desktop`) and click **Generate**
|
|
31
|
-
5. **Copy the token now** — you won't be able to see it again
|
|
17
|
+
2. Click **Settings** in the top menu → **API keys**
|
|
18
|
+
3. Click the **Content management tokens** tab
|
|
19
|
+
4. Click **Generate personal token**
|
|
20
|
+
5. Give it a name (e.g. `Claude Desktop`) and click **Generate**
|
|
21
|
+
6. **Copy the token now** — you won't be able to see it again
|
|
32
22
|
|
|
33
23
|
---
|
|
34
24
|
|
|
35
|
-
## Step 2 — Run the setup
|
|
36
|
-
|
|
37
|
-
The setup script will ask for your details and configure everything automatically.
|
|
38
|
-
|
|
39
|
-
### Windows
|
|
40
|
-
|
|
41
|
-
Open **PowerShell** (search for it in the Start menu) and paste this command:
|
|
42
|
-
|
|
43
|
-
```powershell
|
|
44
|
-
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\Downloads\install.ps1"
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
> First, download [install.ps1](./install.ps1) and save it to your Downloads folder.
|
|
48
|
-
|
|
49
|
-
### Mac
|
|
50
|
-
|
|
51
|
-
Open **Terminal** (search for it in Spotlight) and paste this command:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
bash ~/Downloads/install.sh
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
> First, download [install.sh](./install.sh) and save it to your Downloads folder.
|
|
58
|
-
|
|
59
|
-
### Linux
|
|
25
|
+
## Step 2 — Run the setup wizard
|
|
60
26
|
|
|
61
|
-
Open a terminal and
|
|
27
|
+
Open a terminal and run:
|
|
62
28
|
|
|
63
29
|
```bash
|
|
64
|
-
|
|
30
|
+
npx @se-studio/contentful-cms@latest setup
|
|
65
31
|
```
|
|
66
32
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
33
|
+
The wizard will:
|
|
34
|
+
1. Ask for your management token (input is hidden)
|
|
35
|
+
2. Automatically discover which Contentful spaces and environments your token has access to
|
|
36
|
+
3. Ask for a short project name and an optional staging URL
|
|
37
|
+
4. Write your config file and update Claude Desktop automatically
|
|
70
38
|
|
|
71
|
-
|
|
72
|
-
1. A short name for your project (e.g. `my-project`) — no spaces
|
|
73
|
-
2. Your Contentful Space ID
|
|
74
|
-
3. Your Contentful Management Token
|
|
75
|
-
|
|
76
|
-
It will then create your config file and update Claude Desktop automatically.
|
|
39
|
+
That's it — no need to find your Space ID manually.
|
|
77
40
|
|
|
78
41
|
---
|
|
79
42
|
|
|
@@ -96,7 +59,19 @@ Claude should respond with the space name you chose. If it does, you're all set.
|
|
|
96
59
|
|
|
97
60
|
---
|
|
98
61
|
|
|
99
|
-
##
|
|
62
|
+
## Adding more spaces later
|
|
63
|
+
|
|
64
|
+
Run the wizard again for each additional space:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npx @se-studio/contentful-cms@latest setup
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Each run merges a new space into your existing config — it won't overwrite spaces you've already set up.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Manual setup (if you'd prefer not to use the wizard)
|
|
100
75
|
|
|
101
76
|
<details>
|
|
102
77
|
<summary>Click to expand manual instructions</summary>
|
|
@@ -123,6 +98,8 @@ Create a file called `.contentful-cms.json` in your home folder:
|
|
|
123
98
|
|
|
124
99
|
Replace `my-project` (both places), `YOUR_SPACE_ID`, and `YOUR_MANAGEMENT_TOKEN` with your values.
|
|
125
100
|
|
|
101
|
+
Your Space ID is in Contentful under **Settings → General settings**.
|
|
102
|
+
|
|
126
103
|
**Windows tip:** In Notepad's Save dialog, set "Save as type" to **All Files** so it doesn't add `.txt`.
|
|
127
104
|
|
|
128
105
|
### Configure Claude Desktop
|
package/README.md
CHANGED
|
@@ -23,7 +23,15 @@ pnpm build
|
|
|
23
23
|
|
|
24
24
|
### Claude Desktop
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
The quickest way to set up Claude Desktop is the interactive setup wizard:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx @se-studio/contentful-cms@latest setup
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
It discovers your Contentful spaces and environments automatically from your management token, writes `~/.contentful-cms.json`, and updates the Claude Desktop config. See [INSTALL.md](./INSTALL.md) for a full walkthrough.
|
|
33
|
+
|
|
34
|
+
**Manual config** — if you'd prefer to configure by hand, add this to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
|
|
27
35
|
|
|
28
36
|
```json
|
|
29
37
|
{
|
|
@@ -31,17 +39,13 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
|
|
|
31
39
|
"cms-edit": {
|
|
32
40
|
"command": "npx",
|
|
33
41
|
"args": ["-y", "@se-studio/contentful-cms"],
|
|
34
|
-
"cwd": "/path/to/your/project"
|
|
35
|
-
"env": {
|
|
36
|
-
"CMS_EDIT_TOKEN_OM1": "your-management-token"
|
|
37
|
-
}
|
|
42
|
+
"cwd": "/path/to/your/project"
|
|
38
43
|
}
|
|
39
44
|
}
|
|
40
45
|
}
|
|
41
46
|
```
|
|
42
47
|
|
|
43
48
|
- `cwd` must point to the directory containing your `.contentful-cms.json` (or omit `cwd` and place the file in your home directory — `~/.contentful-cms.json` on macOS/Linux, `C:\Users\<you>\.contentful-cms.json` on Windows).
|
|
44
|
-
- Add one `CMS_EDIT_TOKEN_<SPACE>` env var per space defined in your config. Alternatively, set `CMS_EDIT_CONFIG` to the absolute path of your config file if you need to point at a specific location.
|
|
45
49
|
- `npx -y @se-studio/contentful-cms` always pulls the latest published version — no global install needed.
|
|
46
50
|
|
|
47
51
|
If you have the package installed globally, you can use `"command": "cms-edit-mcp"` (no `args`) instead.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-edit-setup.d.ts","sourceRoot":"","sources":["../../src/bin/cms-edit-setup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-edit-setup.js","sourceRoot":"","sources":["../../src/bin/cms-edit-setup.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/bin/cms-edit.js
CHANGED
|
@@ -36,6 +36,7 @@ import { registerSkillCommand } from '../commands/skill.js';
|
|
|
36
36
|
import { registerSnapshotCommand } from '../commands/snapshot.js';
|
|
37
37
|
import { registerTypesCommand } from '../commands/types.js';
|
|
38
38
|
import { setJsonMode } from '../output/mode.js';
|
|
39
|
+
import { runSetupWizard } from '../setup/wizard.js';
|
|
39
40
|
import { createTelemetryWriter } from '../telemetry/index.js';
|
|
40
41
|
const program = new Command('cms-edit');
|
|
41
42
|
const LLM_INTRO = 'Opinionated CLI for editing Contentful draft content (pages, articles, templates, navigation). No publish — all saves create drafts.\n' +
|
|
@@ -134,6 +135,12 @@ registerScreenshotCommand(program);
|
|
|
134
135
|
registerRunCommand(program);
|
|
135
136
|
registerSitemapCommand(program);
|
|
136
137
|
registerSkillCommand(program);
|
|
138
|
+
program
|
|
139
|
+
.command('setup')
|
|
140
|
+
.description('Interactive wizard to configure Claude Desktop with your Contentful credentials')
|
|
141
|
+
.action(async () => {
|
|
142
|
+
await runSetupWizard();
|
|
143
|
+
});
|
|
137
144
|
if (process.argv.includes('--docs')) {
|
|
138
145
|
const dir = path.dirname(fileURLToPath(import.meta.url));
|
|
139
146
|
const packageRoot = path.resolve(dir, '..', '..');
|
package/dist/bin/cms-edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cms-edit.js","sourceRoot":"","sources":["../../src/bin/cms-edit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cms-edit.js","sourceRoot":"","sources":["../../src/bin/cms-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/setup/wizard.ts"],"names":[],"mappings":";AACA,uFAAuF;AAuIvF,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAqKpD"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** biome-ignore-all lint/suspicious/noConsole: Console output is intentional in CLI */
|
|
3
|
+
import * as fs from 'node:fs';
|
|
4
|
+
import * as os from 'node:os';
|
|
5
|
+
import * as path from 'node:path';
|
|
6
|
+
import { cancel, intro, isCancel, log, outro, password, select, spinner, text, } from '@clack/prompts';
|
|
7
|
+
async function fetchSpaces(token) {
|
|
8
|
+
const res = await fetch('https://api.contentful.com/spaces?limit=100', {
|
|
9
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
10
|
+
});
|
|
11
|
+
if (res.status === 401)
|
|
12
|
+
throw new Error('Invalid management token — please check and try again.');
|
|
13
|
+
if (!res.ok)
|
|
14
|
+
throw new Error(`Contentful API error: ${res.status} ${res.statusText}`);
|
|
15
|
+
const data = (await res.json());
|
|
16
|
+
return data.items;
|
|
17
|
+
}
|
|
18
|
+
async function fetchEnvironments(token, spaceId) {
|
|
19
|
+
const res = await fetch(`https://api.contentful.com/spaces/${spaceId}/environments?limit=100`, {
|
|
20
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
21
|
+
});
|
|
22
|
+
if (!res.ok)
|
|
23
|
+
throw new Error(`Contentful API error: ${res.status} ${res.statusText}`);
|
|
24
|
+
const data = (await res.json());
|
|
25
|
+
return data.items;
|
|
26
|
+
}
|
|
27
|
+
function readCmsConfig(configPath) {
|
|
28
|
+
if (!fs.existsSync(configPath)) {
|
|
29
|
+
return { defaultSpace: '', spaces: {} };
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return { defaultSpace: '', spaces: {} };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function writeCmsConfig(configPath, config) {
|
|
39
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
40
|
+
}
|
|
41
|
+
function getClaudeDesktopConfigPath() {
|
|
42
|
+
const platform = process.platform;
|
|
43
|
+
if (platform === 'darwin') {
|
|
44
|
+
return path.join(os.homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json');
|
|
45
|
+
}
|
|
46
|
+
if (platform === 'win32') {
|
|
47
|
+
const appData = process.env['APPDATA'] ?? path.join(os.homedir(), 'AppData', 'Roaming');
|
|
48
|
+
return path.join(appData, 'Claude', 'claude_desktop_config.json');
|
|
49
|
+
}
|
|
50
|
+
return path.join(os.homedir(), '.config', 'Claude', 'claude_desktop_config.json');
|
|
51
|
+
}
|
|
52
|
+
function readClaudeDesktopConfig(configPath) {
|
|
53
|
+
if (!fs.existsSync(configPath))
|
|
54
|
+
return {};
|
|
55
|
+
try {
|
|
56
|
+
return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return {};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function writeClaudeDesktopConfig(configPath, config) {
|
|
63
|
+
const dir = path.dirname(configPath);
|
|
64
|
+
if (!fs.existsSync(dir))
|
|
65
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
66
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
67
|
+
}
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
// Slug helper
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
function slugify(name) {
|
|
72
|
+
return name
|
|
73
|
+
.toLowerCase()
|
|
74
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
75
|
+
.replace(/^-|-$/g, '');
|
|
76
|
+
}
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
// Main wizard
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
export async function runSetupWizard() {
|
|
81
|
+
intro('Contentful CMS Editor — Setup');
|
|
82
|
+
// 1. Management token
|
|
83
|
+
const tokenValue = await password({
|
|
84
|
+
message: 'Contentful Management Token',
|
|
85
|
+
mask: '•',
|
|
86
|
+
validate: (v) => (v.trim().length === 0 ? 'Token is required' : undefined),
|
|
87
|
+
});
|
|
88
|
+
if (isCancel(tokenValue)) {
|
|
89
|
+
cancel('Setup cancelled.');
|
|
90
|
+
process.exit(0);
|
|
91
|
+
}
|
|
92
|
+
const token = tokenValue.trim();
|
|
93
|
+
// 2. Discover spaces
|
|
94
|
+
const s = spinner();
|
|
95
|
+
s.start('Looking up spaces for this token…');
|
|
96
|
+
let spaces;
|
|
97
|
+
try {
|
|
98
|
+
spaces = await fetchSpaces(token);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
s.stop('Failed to fetch spaces.');
|
|
102
|
+
log.error(err instanceof Error ? err.message : String(err));
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
if (spaces.length === 0) {
|
|
106
|
+
s.stop('No spaces found.');
|
|
107
|
+
log.error('This token has no spaces. Check it has the correct permissions in Contentful.');
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
s.stop(`Found ${spaces.length} space${spaces.length === 1 ? '' : 's'}.`);
|
|
111
|
+
// 3. Pick a space
|
|
112
|
+
let spaceId;
|
|
113
|
+
let spaceName;
|
|
114
|
+
if (spaces.length === 1 && spaces[0]) {
|
|
115
|
+
spaceId = spaces[0].sys.id;
|
|
116
|
+
spaceName = spaces[0].name;
|
|
117
|
+
log.info(`Using space: ${spaceName}`);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const spaceChoice = await select({
|
|
121
|
+
message: 'Which Contentful space?',
|
|
122
|
+
options: spaces.map((sp) => ({ value: sp.sys.id, label: sp.name })),
|
|
123
|
+
});
|
|
124
|
+
if (isCancel(spaceChoice)) {
|
|
125
|
+
cancel('Setup cancelled.');
|
|
126
|
+
process.exit(0);
|
|
127
|
+
}
|
|
128
|
+
spaceId = spaceChoice;
|
|
129
|
+
spaceName = spaces.find((sp) => sp.sys.id === spaceId)?.name ?? spaceId;
|
|
130
|
+
}
|
|
131
|
+
// 4. Discover environments
|
|
132
|
+
s.start('Looking up environments…');
|
|
133
|
+
let environments;
|
|
134
|
+
try {
|
|
135
|
+
environments = await fetchEnvironments(token, spaceId);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
s.stop('Failed to fetch environments.');
|
|
139
|
+
log.error(err instanceof Error ? err.message : String(err));
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
s.stop(`Found ${environments.length} environment${environments.length === 1 ? '' : 's'}.`);
|
|
143
|
+
// 5. Pick an environment (auto-select master if present)
|
|
144
|
+
let environmentId;
|
|
145
|
+
const masterEnv = environments.find((e) => e.sys.id === 'master');
|
|
146
|
+
if (masterEnv || environments.length === 1) {
|
|
147
|
+
environmentId = masterEnv?.sys.id ?? environments[0]?.sys.id ?? 'master';
|
|
148
|
+
log.info(`Using environment: ${environmentId}`);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
const envChoice = await select({
|
|
152
|
+
message: 'Which environment?',
|
|
153
|
+
options: environments.map((e) => ({ value: e.sys.id, label: e.sys.id })),
|
|
154
|
+
});
|
|
155
|
+
if (isCancel(envChoice)) {
|
|
156
|
+
cancel('Setup cancelled.');
|
|
157
|
+
process.exit(0);
|
|
158
|
+
}
|
|
159
|
+
environmentId = envChoice;
|
|
160
|
+
}
|
|
161
|
+
// 6. Project name
|
|
162
|
+
const suggestedName = slugify(spaceName) || 'my-project';
|
|
163
|
+
const projectNameValue = await text({
|
|
164
|
+
message: 'Short name for this project (used as a key in the config)',
|
|
165
|
+
placeholder: suggestedName,
|
|
166
|
+
defaultValue: suggestedName,
|
|
167
|
+
validate: (v) => {
|
|
168
|
+
const val = v.trim() || suggestedName;
|
|
169
|
+
if (!/^[a-z0-9-]+$/.test(val))
|
|
170
|
+
return 'Use lowercase letters, numbers, and hyphens only';
|
|
171
|
+
return undefined;
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
if (isCancel(projectNameValue)) {
|
|
175
|
+
cancel('Setup cancelled.');
|
|
176
|
+
process.exit(0);
|
|
177
|
+
}
|
|
178
|
+
const projectName = projectNameValue.trim() || suggestedName;
|
|
179
|
+
// 7. Staging URL (optional)
|
|
180
|
+
const stagingUrlValue = await text({
|
|
181
|
+
message: 'Staging site URL (optional — used for previewing pages)',
|
|
182
|
+
placeholder: 'https://my-project.vercel.app',
|
|
183
|
+
});
|
|
184
|
+
if (isCancel(stagingUrlValue)) {
|
|
185
|
+
cancel('Setup cancelled.');
|
|
186
|
+
process.exit(0);
|
|
187
|
+
}
|
|
188
|
+
const stagingUrl = stagingUrlValue.trim();
|
|
189
|
+
// 8. Vercel bypass token (optional, only if staging URL provided)
|
|
190
|
+
let vercelBypass = '';
|
|
191
|
+
if (stagingUrl) {
|
|
192
|
+
const bypassValue = await text({
|
|
193
|
+
message: 'Vercel deployment protection bypass token (optional)',
|
|
194
|
+
placeholder: 'Leave blank if not needed',
|
|
195
|
+
});
|
|
196
|
+
if (isCancel(bypassValue)) {
|
|
197
|
+
cancel('Setup cancelled.');
|
|
198
|
+
process.exit(0);
|
|
199
|
+
}
|
|
200
|
+
vercelBypass = bypassValue.trim();
|
|
201
|
+
}
|
|
202
|
+
// 9. Write ~/.contentful-cms.json
|
|
203
|
+
const cmsConfigPath = path.join(os.homedir(), '.contentful-cms.json');
|
|
204
|
+
const cmsConfig = readCmsConfig(cmsConfigPath);
|
|
205
|
+
const spaceEntry = {
|
|
206
|
+
spaceId,
|
|
207
|
+
environment: environmentId,
|
|
208
|
+
managementToken: token,
|
|
209
|
+
defaultLocale: 'en-US',
|
|
210
|
+
};
|
|
211
|
+
if (stagingUrl)
|
|
212
|
+
spaceEntry.devBaseUrl = stagingUrl;
|
|
213
|
+
if (vercelBypass)
|
|
214
|
+
spaceEntry.requestParams = { 'x-vercel-protection-bypass': vercelBypass };
|
|
215
|
+
cmsConfig.defaultSpace = projectName;
|
|
216
|
+
cmsConfig.spaces[projectName] = spaceEntry;
|
|
217
|
+
writeCmsConfig(cmsConfigPath, cmsConfig);
|
|
218
|
+
log.success(`Written: ${cmsConfigPath}`);
|
|
219
|
+
// 10. Update Claude Desktop config
|
|
220
|
+
const claudeConfigPath = getClaudeDesktopConfigPath();
|
|
221
|
+
const claudeConfig = readClaudeDesktopConfig(claudeConfigPath);
|
|
222
|
+
if (!claudeConfig.mcpServers)
|
|
223
|
+
claudeConfig.mcpServers = {};
|
|
224
|
+
claudeConfig.mcpServers['cms-edit'] = {
|
|
225
|
+
command: 'npx',
|
|
226
|
+
args: ['-y', '@se-studio/contentful-cms'],
|
|
227
|
+
cwd: os.homedir(),
|
|
228
|
+
};
|
|
229
|
+
writeClaudeDesktopConfig(claudeConfigPath, claudeConfig);
|
|
230
|
+
log.success(`Updated: ${claudeConfigPath}`);
|
|
231
|
+
outro('All done!\n\n' +
|
|
232
|
+
'Next steps:\n' +
|
|
233
|
+
' 1. Fully quit Claude Desktop and reopen it\n' +
|
|
234
|
+
' (Mac: right-click the Dock icon → Quit)\n' +
|
|
235
|
+
' 2. Ask Claude: "What Contentful spaces do you have access to?"\n' +
|
|
236
|
+
` Claude should respond with: ${projectName}`);
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/setup/wizard.ts"],"names":[],"mappings":";AACA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,GAAG,EACH,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,IAAI,GACL,MAAM,gBAAgB,CAAC;AAgBxB,KAAK,UAAU,WAAW,CAAC,KAAa;IACtC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,6CAA6C,EAAE;QACrE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAC9C,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAClG,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAC;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,OAAe;IAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,qCAAqC,OAAO,yBAAyB,EAAE;QAC7F,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAC9C,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuC,CAAC;IACtE,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAoBD,SAAS,aAAa,CAAC,UAAkB;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAc,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,MAAiB;IAC3D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAChF,CAAC;AAMD,SAAS,0BAA0B;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,IAAI,CACd,EAAE,CAAC,OAAO,EAAE,EACZ,SAAS,EACT,qBAAqB,EACrB,QAAQ,EACR,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAwB,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB,EAAE,MAA2B;IAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAEvC,sBAAsB;IACtB,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC;QAChC,OAAO,EAAE,6BAA6B;QACtC,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;KAC3E,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAI,UAAqB,CAAC,IAAI,EAAE,CAAC;IAE5C,qBAAqB;IACrB,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC7C,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAClC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAEzE,kBAAkB;IAClB,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;YAC/B,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;SACpE,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,WAAqB,CAAC;QAChC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC;IAC1E,CAAC;IAED,2BAA2B;IAC3B,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACpC,IAAI,YAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACxC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,eAAe,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAE3F,yDAAyD;IACzD,IAAI,aAAqB,CAAC;IAC1B,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAClE,IAAI,SAAS,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,aAAa,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,sBAAsB,aAAa,EAAE,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC;YAC7B,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,aAAa,GAAG,SAAmB,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;IACzD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC;QAClC,OAAO,EAAE,2DAA2D;QACpE,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,aAAa;QAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,kDAAkD,CAAC;YACzF,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,WAAW,GAAI,gBAA2B,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC;IAEzE,4BAA4B;IAC5B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;QACjC,OAAO,EAAE,yDAAyD;QAClE,WAAW,EAAE,+BAA+B;KAC7C,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAI,eAA0B,CAAC,IAAI,EAAE,CAAC;IAEtD,kEAAkE;IAClE,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;YAC7B,OAAO,EAAE,sDAAsD;YAC/D,WAAW,EAAE,2BAA2B;SACzC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,YAAY,GAAI,WAAsB,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,kCAAkC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAgB;QAC9B,OAAO;QACP,WAAW,EAAE,aAAa;QAC1B,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,OAAO;KACvB,CAAC;IACF,IAAI,UAAU;QAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;IACnD,IAAI,YAAY;QAAE,UAAU,CAAC,aAAa,GAAG,EAAE,4BAA4B,EAAE,YAAY,EAAE,CAAC;IAE5F,SAAS,CAAC,YAAY,GAAG,WAAW,CAAC;IACrC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;IAC3C,cAAc,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzC,GAAG,CAAC,OAAO,CAAC,YAAY,aAAa,EAAE,CAAC,CAAC;IAEzC,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,0BAA0B,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,CAAC,UAAU;QAAE,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC;IAC3D,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG;QACpC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;QACzC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE;KAClB,CAAC;IACF,wBAAwB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACzD,GAAG,CAAC,OAAO,CAAC,YAAY,gBAAgB,EAAE,CAAC,CAAC;IAE5C,KAAK,CACH,eAAe;QACb,eAAe;QACf,gDAAgD;QAChD,gDAAgD;QAChD,oEAAoE;QACpE,oCAAoC,WAAW,EAAE,CACpD,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/contentful-cms",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.50",
|
|
4
4
|
"description": "CLI tool for AI agents to read and edit Contentful draft content without publish permissions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"bin": {
|
|
21
21
|
"cms-edit": "./dist/bin/cms-edit.js",
|
|
22
22
|
"cms-edit-mcp": "./dist/bin/cms-edit-mcp.js",
|
|
23
|
+
"cms-edit-setup": "./dist/bin/cms-edit-setup.js",
|
|
23
24
|
"contentful-cms": "./dist/bin/cms-edit-mcp.js"
|
|
24
25
|
},
|
|
25
26
|
"files": [
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
"*.md"
|
|
29
30
|
],
|
|
30
31
|
"dependencies": {
|
|
32
|
+
"@clack/prompts": "^0.9.1",
|
|
31
33
|
"@contentful/rich-text-types": "^17.2.7",
|
|
32
34
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
33
35
|
"commander": "^14.0.3",
|