@se-studio/project-build 1.0.127 → 1.0.129

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @se-studio/project-build
2
2
 
3
+ ## 1.0.129
4
+
5
+ ### Patch Changes
6
+
7
+ - Version bump: patch for changed packages
8
+
9
+ ## 1.0.128
10
+
11
+ ### Patch Changes
12
+
13
+ - Version bump: patch for changed packages
14
+
3
15
  ## 1.0.127
4
16
 
5
17
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/project-build",
3
- "version": "1.0.127",
3
+ "version": "1.0.129",
4
4
  "description": "Build tools and management scripts for SE Studio projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -72,7 +72,7 @@
72
72
  "devDependencies": {
73
73
  "@types/chroma-js": "^3.1.2",
74
74
  "@types/node": "^22.19.17",
75
- "typescript": "^6.0.2",
75
+ "typescript": "^6.0.3",
76
76
  "vitest": "^4.1.4"
77
77
  },
78
78
  "scripts": {
@@ -96,6 +96,13 @@ cms-edit set @c0 preHeading "Featured"
96
96
  cms-edit set @c0 anchor "hero-section"
97
97
  ```
98
98
 
99
+ **Bulk scalar updates** — set a field on multiple entries in one command:
100
+ ```bash
101
+ cms-edit set @c1:cmsLabel="Hero — School avoidance" @c2:cmsLabel="What is school avoidance?" @c3:cmsLabel="Signs of school avoidance"
102
+ cms-edit set @c1:heading="Title A" @c2:heading="Title B"
103
+ ```
104
+ Each token is `@ref:fieldName=value`. All values are scalar (string, boolean, number). Flags like `--link`, `--links`, `--file` do not apply in multi mode.
105
+
99
106
  **Entry link fields** (template, articleType, etc. — value is the linked entry ID):
100
107
  ```bash
101
108
  cms-edit set @c0 template 3I0HxGKbUd173wIpFCsbVr --link
@@ -659,6 +666,7 @@ cat page.json | cms-edit create from-json # Pipe from stdin
659
666
  {
660
667
  "contentType": "component",
661
668
  "type": "HeroSimple",
669
+ "cmsLabel": "Hero — Protecting Your Child from Cyberbullying",
662
670
  "target": "content",
663
671
  "fields": {
664
672
  "heading": "Protecting Your Child from Cyberbullying",
@@ -673,11 +681,13 @@ cat page.json | cms-edit create from-json # Pipe from stdin
673
681
  {
674
682
  "contentType": "collection",
675
683
  "type": "CardGrid",
684
+ "cmsLabel": "Related topics grid",
676
685
  "fields": { "heading": "Related topics" },
677
686
  "items": [
678
687
  {
679
688
  "contentType": "component",
680
689
  "type": "Card",
690
+ "cmsLabel": "Card — Screen Time",
681
691
  "fields": { "heading": "Screen Time" }
682
692
  },
683
693
  {
@@ -731,8 +741,10 @@ cat page.json | cms-edit create from-json # Pipe from stdin
731
741
  **Key points:**
732
742
  - Any component entry in `components` or `items` may use `{ existingId }` to link an existing entry instead of creating a new one.
733
743
  - The same applies to `links` entries — use `{ existingId }` to attach an existing link entry.
734
- - `fields.body` (and any value containing newlines or Markdown syntax) is automatically converted to Contentful rich text.
744
+ - `cmsLabel` sets the human-readable label shown in Contentful's entry list. Defaults to `type` or `contentType` if omitted. **Always set `cmsLabel` on components when a page has multiple instances of the same type** (e.g. three CTAs) editors need to distinguish them.
745
+ - String `fields` values are converted to Contentful rich text when they match the Markdown heuristic: contains `\n\n` or `**` or `_`, starts with `#`, starts with `- `, or starts with `> ` (blockquote with a space). **Plain single-line text with none of those patterns is not converted** — for RichText fields, add `\n\n` or a heading line, or use `cms-edit rtf` afterwards.
735
746
  - `target` sets which content array to use: `topContent`, `content` (default), or `bottomContent`.
747
+ - Slugs must not have a trailing slash — `from-json` strips it with a warning, but avoid it in source JSON.
736
748
  - All entries are created as **drafts**. A human must publish in Contentful.
737
749
  - `--dry-run` prints the full plan without writing anything.
738
750