@se-studio/contentful-cms 3.3.0 → 3.4.1
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 +14 -0
- package/README.md +4 -2
- package/dist/commands/add-initial-fields.d.ts +27 -0
- package/dist/commands/add-initial-fields.d.ts.map +1 -0
- package/dist/commands/add-initial-fields.js +42 -0
- package/dist/commands/add-initial-fields.js.map +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +25 -11
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/batch-assignments.d.ts +4 -4
- package/dist/commands/batch-assignments.d.ts.map +1 -1
- package/dist/commands/batch-assignments.js +42 -5
- package/dist/commands/batch-assignments.js.map +1 -1
- package/dist/commands/batch.d.ts.map +1 -1
- package/dist/commands/batch.js +36 -17
- package/dist/commands/batch.js.map +1 -1
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +40 -4
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +8 -5
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/set.d.ts.map +1 -1
- package/dist/commands/set.js +148 -27
- package/dist/commands/set.js.map +1 -1
- package/dist/contentful/set-field-schema.d.ts +5 -0
- package/dist/contentful/set-field-schema.d.ts.map +1 -1
- package/dist/contentful/set-field-schema.js +30 -1
- package/dist/contentful/set-field-schema.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/mcp/tools/cms-edit.d.ts +1 -1
- package/dist/mcp/tools/cms-edit.d.ts.map +1 -1
- package/dist/mcp/tools/cms-edit.js +14 -1
- package/dist/mcp/tools/cms-edit.js.map +1 -1
- package/dist/media-pipeline/actions.d.ts.map +1 -1
- package/dist/media-pipeline/actions.js +76 -9
- package/dist/media-pipeline/actions.js.map +1 -1
- package/dist/output/print.d.ts +2 -2
- package/dist/output/print.d.ts.map +1 -1
- package/dist/output/print.js +3 -3
- package/dist/output/print.js.map +1 -1
- package/dist/session/dirty.d.ts +20 -0
- package/dist/session/dirty.d.ts.map +1 -0
- package/dist/session/dirty.js +44 -0
- package/dist/session/dirty.js.map +1 -0
- package/dist/session/state.d.ts.map +1 -1
- package/dist/session/state.js +1 -0
- package/dist/session/state.js.map +1 -1
- package/docs/help/batch.md +29 -13
- package/docs/help/index.md +5 -1
- package/docs/help/workflow.md +47 -0
- package/package.json +1 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** True when the session has staged field edits or pending deletions. */
|
|
2
|
+
export function isSessionDirty(session) {
|
|
3
|
+
return session.modifiedEntryIds.length > 0 || session.pendingDeletions.length > 0;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Agent-facing hard-fail when `open` would replace a session that still has local work.
|
|
7
|
+
*/
|
|
8
|
+
export function formatDirtyOpenError(session) {
|
|
9
|
+
const unsavedChanges = session.modifiedEntryIds.length;
|
|
10
|
+
const pendingDeletions = session.pendingDeletions.length;
|
|
11
|
+
const rootEntryId = session.rootEntryId;
|
|
12
|
+
const rootEntryType = session.rootEntryType;
|
|
13
|
+
const actions = [
|
|
14
|
+
'cms-edit open --resume',
|
|
15
|
+
'cms-edit diff',
|
|
16
|
+
'cms-edit save',
|
|
17
|
+
'cms-edit discard',
|
|
18
|
+
'cms-edit open --overwrite --id <entryId>',
|
|
19
|
+
];
|
|
20
|
+
const message = [
|
|
21
|
+
`Cannot open: session has ${unsavedChanges} unsaved entry change(s) and ${pendingDeletions} pending deletion(s).`,
|
|
22
|
+
`Root: ${rootEntryId} (${rootEntryType}) — continue this work, or explicitly abandon it.`,
|
|
23
|
+
'',
|
|
24
|
+
' Continue current work: cms-edit open --resume',
|
|
25
|
+
' Review changes: cms-edit diff',
|
|
26
|
+
' Save drafts: cms-edit save',
|
|
27
|
+
' Abandon all staged: cms-edit discard',
|
|
28
|
+
' Abandon and open new: cms-edit open --overwrite --id <entryId>',
|
|
29
|
+
'',
|
|
30
|
+
'Do not re-run open without --overwrite while changes are staged — that previously wiped session field edits.',
|
|
31
|
+
].join('\n');
|
|
32
|
+
return {
|
|
33
|
+
message,
|
|
34
|
+
payload: {
|
|
35
|
+
code: 'SESSION_DIRTY',
|
|
36
|
+
unsavedChanges,
|
|
37
|
+
pendingDeletions,
|
|
38
|
+
rootEntryId,
|
|
39
|
+
rootEntryType,
|
|
40
|
+
actions,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=dirty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dirty.js","sourceRoot":"","sources":["../../src/session/dirty.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,OAAqB;IAClD,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AACpF,CAAC;AAgBD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACvD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAE5C,MAAM,OAAO,GAAG;QACd,wBAAwB;QACxB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,0CAA0C;KAC3C,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,4BAA4B,cAAc,gCAAgC,gBAAgB,uBAAuB;QACjH,SAAS,WAAW,KAAK,aAAa,mDAAmD;QACzF,EAAE;QACF,kDAAkD;QAClD,yCAAyC;QACzC,yCAAyC;QACzC,4CAA4C;QAC5C,oEAAoE;QACpE,EAAE;QACF,8GAA8G;KAC/G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACL,OAAO;QACP,OAAO,EAAE;YACP,IAAI,EAAE,eAAe;YACrB,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,aAAa;YACb,OAAO;SACR;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/session/state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/session/state.ts"],"names":[],"mappings":"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"}
|
package/dist/session/state.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/session/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/session/state.ts"],"names":[],"mappings":"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"}
|
package/docs/help/batch.md
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
# Batch edit by entry ID
|
|
2
2
|
|
|
3
|
-
Edit multiple
|
|
3
|
+
Edit multiple Contentful entries by ID with scalar field updates. Useful for link variant sweeps, media flags (`autoplay`/`loop`), navigation tweaks, and other standalone updates.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Sessions
|
|
6
|
+
|
|
7
|
+
| Context | What happens |
|
|
8
|
+
|---------|----------------|
|
|
9
|
+
| Default CLI (`--session` omitted) | Uses session name **`batch`** (does not touch a separate page session) |
|
|
10
|
+
| Page session already open (e.g. MCP `_mcp`) | `batch set` **stages into that page session** — same `diff` / `save` as article work. Do **not** re-`open`. Do **not** `batch discard` (use `cms-edit discard` only if abandoning everything). |
|
|
11
|
+
| Explicit isolation | `cms-edit --session link-sweep batch set …` |
|
|
12
|
+
|
|
13
|
+
You can also stay on the page session without `batch`:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
cms-edit set <entryId>:autoplay=true <entryId>:loop=true
|
|
17
|
+
# or
|
|
18
|
+
cms-edit set <entryId> autoplay true
|
|
19
|
+
```
|
|
6
20
|
|
|
7
21
|
## Workflow
|
|
8
22
|
|
|
@@ -16,17 +30,25 @@ cms-edit batch diff
|
|
|
16
30
|
# Write all changes as drafts (single save)
|
|
17
31
|
cms-edit batch save
|
|
18
32
|
|
|
19
|
-
# Or discard without saving
|
|
33
|
+
# Or discard without saving (pure batch sessions only)
|
|
20
34
|
cms-edit batch discard
|
|
21
35
|
```
|
|
22
36
|
|
|
37
|
+
Mid-page (MCP / open article session):
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cms-edit batch set 5uMh54rIsJRFRQSXDuJiG:autoplay=true
|
|
41
|
+
cms-edit diff
|
|
42
|
+
cms-edit save
|
|
43
|
+
```
|
|
44
|
+
|
|
23
45
|
## Token format
|
|
24
46
|
|
|
25
47
|
```
|
|
26
48
|
<entryId>:<fieldId>=<value>
|
|
27
49
|
```
|
|
28
50
|
|
|
29
|
-
- **entryId** —
|
|
51
|
+
- **entryId** — Contentful entry ID (alphanumeric, optional `_`/`-`, length 1–64; **not** fixed at 22 characters)
|
|
30
52
|
- **fieldId** — field name on that entry's content type
|
|
31
53
|
- **value** — literal token (no shell quotes needed for simple strings). Coercion follows the field type from Contentful:
|
|
32
54
|
- **Symbol** / **Text** — always stored as strings (e.g. `order=42` stays `"42"`)
|
|
@@ -39,6 +61,7 @@ Examples:
|
|
|
39
61
|
|
|
40
62
|
```bash
|
|
41
63
|
cms-edit batch set abcdefghijklmnopqrstuv:variant=link
|
|
64
|
+
cms-edit batch set 5uMh54rIsJRFRQSXDuJiG:autoplay=true
|
|
42
65
|
cms-edit batch set abcdefghijklmnopqrstuv:cmsLabel=Footer CTA
|
|
43
66
|
```
|
|
44
67
|
|
|
@@ -60,7 +83,7 @@ When a page is already open, prefer `cms-edit links set @cN <index> variant link
|
|
|
60
83
|
|
|
61
84
|
Field types and enum validations are loaded from the Contentful Management API. Results are cached:
|
|
62
85
|
|
|
63
|
-
- In the **
|
|
86
|
+
- In the **session file** (`contentTypes` on the session) so `batch set` → save reuse schema without extra API calls
|
|
64
87
|
- On disk at `~/.contentful-cms/content-types/<spaceId>/<environment>/` (24-hour TTL)
|
|
65
88
|
|
|
66
89
|
## v1 limits
|
|
@@ -68,11 +91,4 @@ Field types and enum validations are loaded from the Contentful Management API.
|
|
|
68
91
|
- **Scalar fields only** — no rich text, entry links, asset links, or link arrays
|
|
69
92
|
- **Draft-only** — same as `cms-edit save`; never publishes
|
|
70
93
|
- **No cross-entry link arrays** — use page session + `cms-edit set --links` for parent arrays
|
|
71
|
-
- **Partial save on failure** — if one entry fails during `batch save`, earlier entries may already be saved; the CLI lists failures and reminds you to run
|
|
72
|
-
|
|
73
|
-
## Named sessions
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
cms-edit --session link-sweep batch set idOne123456789012345678:variant=link
|
|
77
|
-
cms-edit --session link-sweep batch save
|
|
78
|
-
```
|
|
94
|
+
- **Partial save on failure** — if one entry fails during `batch save`, earlier entries may already be saved; the CLI lists failures and reminds you to run diff for remaining changes
|
package/docs/help/index.md
CHANGED
|
@@ -84,6 +84,10 @@ cms-edit batch run --json '[...]'
|
|
|
84
84
|
| Command | Description |
|
|
85
85
|
|---|---|
|
|
86
86
|
| `open --page-slug <slug>` | Load a page into the session (see `help lookup`) |
|
|
87
|
+
| `open --resume` | Re-print active session; **keeps** staged edits (no refetch) |
|
|
88
|
+
| `open --overwrite …` | Replace session even if dirty (discards staged field edits) |
|
|
89
|
+
| `set <ref\|id> <field> <value>` | Set field; bare entry IDs allowed mid-session |
|
|
90
|
+
| `set <id>:field=value …` | Scalar multi-set by entry ID (stays on current session) |
|
|
87
91
|
| `open --id <id>` | Load by Contentful entry ID |
|
|
88
92
|
| `peek --page-slug <slug>` | Print content tree + root field values without creating a session |
|
|
89
93
|
| `peek --id <id>` | Same by Contentful entry ID |
|
|
@@ -137,7 +141,7 @@ cms-edit batch run --json '[...]'
|
|
|
137
141
|
### Batch Operations
|
|
138
142
|
| Command | Description |
|
|
139
143
|
|---|---|
|
|
140
|
-
| `batch set <entryId>:field=value …` | Queue scalar updates
|
|
144
|
+
| `batch set <entryId>:field=value …` | Queue scalar updates by ID (page session OK mid-edit; then `save`) |
|
|
141
145
|
| `batch diff` / `batch save` / `batch discard` | Review and commit batch session |
|
|
142
146
|
| `batch run --json <json> or --json-base64 <encoded>` | Execute a JSON batch of operations |
|
|
143
147
|
|
package/docs/help/workflow.md
CHANGED
|
@@ -26,6 +26,25 @@ cms-edit open --id 4xKpzQ2abc123
|
|
|
26
26
|
|
|
27
27
|
`open` fetches the full entry tree and saves it to a local session file. All subsequent commands operate on this session without re-fetching from Contentful until you `save`.
|
|
28
28
|
|
|
29
|
+
### Critical: do not re-open while edits are staged
|
|
30
|
+
|
|
31
|
+
`set` / `rtf` / parent links from `add` stay in the session until `save`. Calling `open` again **replaces** the session.
|
|
32
|
+
|
|
33
|
+
| Situation | Command |
|
|
34
|
+
|-----------|---------|
|
|
35
|
+
| Session has unsaved changes, need tree again | `cms-edit open --resume` (no refetch; keeps staged edits) |
|
|
36
|
+
| Intentionally abandon staged work and load another entry | `cms-edit open --overwrite --id <id>` (or `discard` then `open`) |
|
|
37
|
+
| Plain `open` while dirty | **Hard fail** with remediation steps |
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cms-edit open --resume
|
|
41
|
+
cms-edit diff
|
|
42
|
+
cms-edit save
|
|
43
|
+
# or abandon:
|
|
44
|
+
cms-edit discard
|
|
45
|
+
cms-edit open --id <other>
|
|
46
|
+
```
|
|
47
|
+
|
|
29
48
|
**Output:**
|
|
30
49
|
```
|
|
31
50
|
✓ Opened /solutions/hepatology (12 entries)
|
|
@@ -72,6 +91,34 @@ cms-edit set @c2 heading "New Heading"
|
|
|
72
91
|
cms-edit set @c2 backgroundColour "Navy"
|
|
73
92
|
```
|
|
74
93
|
|
|
94
|
+
### Mid-session by Contentful entry ID (e.g. media autoplay)
|
|
95
|
+
|
|
96
|
+
You do **not** need to leave the page session:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Bare entry ID (fetched into the session if not in the tree)
|
|
100
|
+
cms-edit set 5uMh54rIsJRFRQSXDuJiG autoplay true
|
|
101
|
+
|
|
102
|
+
# Same shape as batch set — stays on the current page session
|
|
103
|
+
cms-edit set 5uMh54rIsJRFRQSXDuJiG:autoplay=true 5uMh54rIsJRFRQSXDuJiG:loop=true
|
|
104
|
+
# or: cms-edit batch set … (also allowed mid-page; then cms-edit save)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Entry links: `--link` vs `--links` (strict)
|
|
108
|
+
|
|
109
|
+
| Field shape | Flag | Notes |
|
|
110
|
+
|-------------|------|--------|
|
|
111
|
+
| Single Entry link | `--link` | Exactly one id |
|
|
112
|
+
| Array of Entry links | `--links` | Full replace of the array |
|
|
113
|
+
| Append to array | `--links --append` | Add ids |
|
|
114
|
+
| Wrong flag | hard error | Never silently coerces |
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
cms-edit set @c1 visual <mediaEntryId> --link
|
|
118
|
+
cms-edit set @c2 contents <id1>,<id2> --links
|
|
119
|
+
# To change one array item: read the array, edit the list, write all ids back with --links
|
|
120
|
+
```
|
|
121
|
+
|
|
75
122
|
### Rich text fields
|
|
76
123
|
```bash
|
|
77
124
|
# Inline markdown (short content)
|