aem-eds-kit 0.4.4 → 0.4.9

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
@@ -6,6 +6,54 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.4.9] - 2026-10-08
10
+
11
+ ### Added
12
+ - `eds migrate component` now pulls the component's **clientlib CSS** off disk
13
+ into the block's CSS (auto-detected, or `--clientlib <dir>`): honours
14
+ `css.txt` ordering + `#base=`, concatenates the `.css`, and flags any
15
+ LESS/SCSS that needs a build. A starting point to review and scope under
16
+ `.<block>` (the faithful, rendered-CSS path comes in a later phase).
17
+
18
+ ## [0.4.8] - 2026-10-07
19
+
20
+ ### Added
21
+ - **`eds migrate component <dir>`** - start migrating a classic AEM component to
22
+ EDS. Phase 1 (deterministic, no agent/network): parses the Touch UI dialog
23
+ (`_cq_dialog/.content.xml`) and maps its Granite/Coral fields onto the 17
24
+ Universal Editor field types - selects keep their options, multifields become
25
+ repeatable containers, tabs are preserved - then writes `blocks/<name>/` with
26
+ a UE model, a decorator stub, and a scoped CSS file to fill from the clientlib
27
+ or rendered page. Also in the `eds` menu.
28
+
29
+ ## [0.4.7] - 2026-10-07
30
+
31
+ ### Changed
32
+ - Consistent "no EDS project markers found" message across every command.
33
+
34
+ ## [0.4.6] - 2026-10-07
35
+
36
+ ### Added
37
+ - **`eds init`** - adapt a freshly cloned EDS boilerplate to your authoring model
38
+ in one interactive wizard: pick Universal Editor (crosswalk), DA (da.live),
39
+ Google Drive or SharePoint; set the project name (package.json + boilerplate
40
+ placeholders); generate `fstab.yaml` only when the model needs it; scaffold the
41
+ crosswalk config + `paths.json` for UE; optionally add the CI workflow; then
42
+ walk the external steps (code-sync, content share, Sidekick) as a clickable
43
+ checklist. Also in the `eds` menu. Flags: `--name`, `--authoring`,
44
+ `--mountpoint`, `--org`, `--site`, `--no-ci`, `--yes`.
45
+
46
+ ## [0.4.5] - 2026-10-07
47
+
48
+ ### Fixed
49
+ - Project-root detection no longer requires `fstab.yaml`. Universal Editor /
50
+ crosswalk and Document Authoring projects often don't have one, which made
51
+ every command (and the generated CI) fail with "Not inside an EDS project".
52
+ A root is now any ancestor with `fstab.yaml`, `head.html`, `scripts/scripts.js`,
53
+ `scripts/aem.js`, `component-definition.json`, `paths.json` or `helix-query.yaml`.
54
+ - `eds doctor` treats a missing `fstab.yaml` as a warning, not a hard failure,
55
+ so `scaffold ci`'s doctor step doesn't break CI for fstab-less projects.
56
+
9
57
  ## [0.4.4] - 2026-10-07
10
58
 
11
59
  ### Added
@@ -132,7 +180,12 @@ harness, gradient ANSI logo. Not published (superseded by 0.3.0).
132
180
  Initial CLI scaffold: `block create`, `block from-figma`, `block list`,
133
181
  `figma setup`, `doctor`, `preview`, `publish`. Not published.
134
182
 
135
- [Unreleased]: https://github.com/piotrgodycki/aem-eds-kit/compare/v0.4.4...HEAD
183
+ [Unreleased]: https://github.com/piotrgodycki/aem-eds-kit/compare/v0.4.9...HEAD
184
+ [0.4.9]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.9
185
+ [0.4.8]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.8
186
+ [0.4.7]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.7
187
+ [0.4.6]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.6
188
+ [0.4.5]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.5
136
189
  [0.4.4]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.4
137
190
  [0.4.3]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.3
138
191
  [0.4.2]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.2
package/README.md CHANGED
@@ -41,6 +41,9 @@ A full A-Z reference of every command lives on the docs page: **https://piotrgod
41
41
  ```bash
42
42
  eds # interactive menu
43
43
 
44
+ # Just cloned an EDS boilerplate? Set it up for your authoring model
45
+ eds init
46
+
44
47
  # One-time: configure Figma MCP for your AI agent
45
48
  eds figma setup
46
49
 
@@ -60,6 +63,37 @@ eds doctor
60
63
 
61
64
  ## Commands
62
65
 
66
+ ### `eds init`
67
+
68
+ Adapt a freshly cloned EDS boilerplate to your setup in one interactive wizard. Pick the authoring model - **Universal Editor (crosswalk), DA (da.live), Google Drive or SharePoint** - and `eds` sets the project name (`package.json` + boilerplate placeholders), writes `fstab.yaml` **only when the model needs it** (UE/crosswalk doesn't), scaffolds the crosswalk config + `paths.json` for UE, optionally adds the CI workflow, then walks the **external steps** (AEM Code Sync app, content-source share, Sidekick) as a clickable checklist.
69
+
70
+ ```bash
71
+ eds init # interactive
72
+ eds init --name my-site --authoring da --org my-org --site my-site --yes
73
+ ```
74
+
75
+ | Flag | Description |
76
+ |---|---|
77
+ | `--name <name>` | Project name (kebab-case) |
78
+ | `--authoring <model>` | `ue` \| `da` \| `gdrive` \| `sharepoint` |
79
+ | `--mountpoint <url>` | Content source URL (document models) |
80
+ | `--org <org>` / `--site <site>` | DA org / site (`--authoring da`) |
81
+ | `--no-ci` | Skip the GitHub Actions workflow |
82
+ | `--yes` | Skip prompts; apply with flags/defaults |
83
+
84
+ ### `eds migrate component [dir]`
85
+
86
+ Start migrating a **classic AEM component** to EDS. Phase 1 is deterministic (no agent, no network): it parses the component's Touch UI dialog (`_cq_dialog/.content.xml`) and maps its Granite/Coral fields onto the **17 Universal Editor field types** - selects keep their options, multifields become repeatable containers, tabs are preserved - then writes `blocks/<name>/` with a UE model (`_<name>.json`), a `decorate()` stub (port the HTL logic), and a scoped CSS file to fill from the component's clientlib or its rendered page.
87
+
88
+ It also pulls the component's **clientlib CSS** off disk into the block's CSS when it can find one (auto-detected, or `--clientlib <dir>`): it honours `css.txt` ordering (and `#base=`), concatenates the `.css`, and flags any LESS/SCSS that needs a build. Treat it as a starting point - review the selectors and scope them under `.<block>`.
89
+
90
+ ```bash
91
+ eds migrate component /path/to/apps/myproject/components/hero
92
+ eds migrate component ./components/hero --name hero --clientlib ./ui.apps/.../hero/clientlib --yes
93
+ ```
94
+
95
+ Dialogs map cleanly because Granite's `sling:resourceType` set is finite. The most faithful CSS actually comes from the **rendered page** (resolves LESS vars + cascade) - that capture lands in a later phase; for now the clientlib source gets you most of the way.
96
+
63
97
  ### `eds block create <name>`
64
98
 
65
99
  Scaffolds `blocks/<name>/` with `<name>.js`, `<name>.css`, **and a Universal Editor model `_<name>.json` by default** - so the block is authorable in UE the moment it's created. Validates kebab-case naming and checks for collisions.