@adobe/aem-cli 16.18.1 → 16.18.3

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,3 +1,17 @@
1
+ ## [16.18.3](https://github.com/adobe/helix-cli/compare/v16.18.2...v16.18.3) (2026-04-21)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **deps:** update external fixes ([#2712](https://github.com/adobe/helix-cli/issues/2712)) ([3cb40a0](https://github.com/adobe/helix-cli/commit/3cb40a07ead3949a29cc12c4ab3c7b595e9941fc))
7
+
8
+ ## [16.18.2](https://github.com/adobe/helix-cli/compare/v16.18.1...v16.18.2) (2026-04-20)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * remove if-modified-since from proxy request to ensure that content-type is included ([#2711](https://github.com/adobe/helix-cli/issues/2711)) ([482a618](https://github.com/adobe/helix-cli/commit/482a618deeacfffb4d14d41ce828bd2650c9dc3e))
14
+
1
15
  ## [16.18.1](https://github.com/adobe/helix-cli/compare/v16.18.0...v16.18.1) (2026-04-16)
2
16
 
3
17
 
package/README.md CHANGED
@@ -26,8 +26,9 @@ $ aem --help
26
26
  Usage: aem <command> [options]
27
27
 
28
28
  Commands:
29
- aem up Run a AEM development server
30
- aem import Run the AEM import server
29
+ aem up Run a AEM development server
30
+ aem import Run the AEM import server
31
+ aem content Manage local da.live content
31
32
 
32
33
  Options:
33
34
  --version Show version number [boolean]
@@ -203,6 +204,24 @@ $ aem import
203
204
 
204
205
  Read the full AEM Importer [documentation](https://github.com/adobe/helix-importer-ui).
205
206
 
207
+ ## Managing content
208
+
209
+ The `aem content` commands let you check out content from da.live locally, make bulk edits, and push changes back. The local content lives in a `content/` folder in your project.
210
+
211
+ | Command | Description |
212
+ |---------|-------------|
213
+ | `aem content clone` | Clone da.live content locally into `content/` |
214
+ | `aem content status` | Show locally added, modified, and deleted content files |
215
+ | `aem content diff` | Show diff between local and remote content |
216
+ | `aem content merge` | Merge remote content into local files |
217
+ | `aem content add` | Stage changes in `content/` (like `git add`) |
218
+ | `aem content commit` | Commit staged changes in `content/` (like `git commit`) |
219
+ | `aem content push` | Push committed `content/` changes to da.live (use `content add` & `content commit` first) |
220
+
221
+ ### Local content serving
222
+
223
+ When a `content/` folder is present, `aem up` automatically serves content from it first, falling back to the proxy for any files not found locally. HTML files in `content/` are wrapped with `head.html` and have their metadata blocks processed, so pages render the same way they would when served from da.live.
224
+
206
225
  # Developing AEM CLI
207
226
 
208
227
  ## Testing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/aem-cli",
3
- "version": "16.18.1",
3
+ "version": "16.18.3",
4
4
  "description": "AEM CLI",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -55,8 +55,8 @@
55
55
  "compression": "1.8.1",
56
56
  "cookie": "1.1.1",
57
57
  "cookie-parser": "1.4.7",
58
- "diff": "8.0.3",
59
- "dotenv": "17.3.1",
58
+ "diff": "8.0.4",
59
+ "dotenv": "17.4.1",
60
60
  "express": "5.2.1",
61
61
  "faye-websocket": "0.11.4",
62
62
  "fs-extra": "11.3.4",
@@ -68,7 +68,7 @@
68
68
  "https-proxy-agent": "8.0.0",
69
69
  "ignore": "7.0.5",
70
70
  "ini": "6.0.0",
71
- "isomorphic-git": "1.37.4",
71
+ "isomorphic-git": "1.37.5",
72
72
  "jose": "6.2.2",
73
73
  "mime": "4.1.0",
74
74
  "livereload-js": "4.0.2",
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "devDependencies": {
90
90
  "@adobe/eslint-config-helix": "3.0.24",
91
- "@eslint/config-helpers": "0.5.3",
91
+ "@eslint/config-helpers": "0.5.4",
92
92
  "@semantic-release/changelog": "6.0.3",
93
93
  "@semantic-release/git": "10.0.1",
94
94
  "c8": "11.0.0",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "devDependencies": {
15
15
  "@adobe/eslint-config-helix": "^3.0.9",
16
- "@eslint/config-helpers": "0.5.3",
16
+ "@eslint/config-helpers": "0.5.4",
17
17
  "@esm-bundle/chai": "4.3.4-fix.0",
18
18
  "@web/test-runner": "0.20.2",
19
19
  "@web/test-runner-junit-reporter": "0.8.0",
@@ -39,6 +39,32 @@
39
39
  "eslint": "^9.0.0"
40
40
  }
41
41
  },
42
+ "node_modules/@adobe/eslint-config-helix/node_modules/@eslint/config-helpers": {
43
+ "version": "0.5.3",
44
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz",
45
+ "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==",
46
+ "dev": true,
47
+ "license": "Apache-2.0",
48
+ "dependencies": {
49
+ "@eslint/core": "^1.1.1"
50
+ },
51
+ "engines": {
52
+ "node": "^20.19.0 || ^22.13.0 || >=24"
53
+ }
54
+ },
55
+ "node_modules/@adobe/eslint-config-helix/node_modules/@eslint/core": {
56
+ "version": "1.2.1",
57
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
58
+ "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
59
+ "dev": true,
60
+ "license": "Apache-2.0",
61
+ "dependencies": {
62
+ "@types/json-schema": "^7.0.15"
63
+ },
64
+ "engines": {
65
+ "node": "^20.19.0 || ^22.13.0 || >=24"
66
+ }
67
+ },
42
68
  "node_modules/@babel/code-frame": {
43
69
  "version": "7.27.1",
44
70
  "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
@@ -126,22 +152,22 @@
126
152
  }
127
153
  },
128
154
  "node_modules/@eslint/config-helpers": {
129
- "version": "0.5.3",
130
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz",
131
- "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==",
155
+ "version": "0.5.4",
156
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.4.tgz",
157
+ "integrity": "sha512-jJhqiY3wPMlWWO3370M86CPJ7pt8GmEwSLglMfQhjXal07RCvhmU0as4IuUEW5SJeunfItiEetHmSxCCe9lDBg==",
132
158
  "dev": true,
133
159
  "license": "Apache-2.0",
134
160
  "dependencies": {
135
- "@eslint/core": "^1.1.1"
161
+ "@eslint/core": "^1.2.0"
136
162
  },
137
163
  "engines": {
138
164
  "node": "^20.19.0 || ^22.13.0 || >=24"
139
165
  }
140
166
  },
141
167
  "node_modules/@eslint/config-helpers/node_modules/@eslint/core": {
142
- "version": "1.1.1",
143
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz",
144
- "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==",
168
+ "version": "1.2.1",
169
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
170
+ "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
145
171
  "dev": true,
146
172
  "license": "Apache-2.0",
147
173
  "dependencies": {
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "devDependencies": {
15
15
  "@adobe/eslint-config-helix": "^3.0.9",
16
- "@eslint/config-helpers": "0.5.3",
16
+ "@eslint/config-helpers": "0.5.4",
17
17
  "@esm-bundle/chai": "4.3.4-fix.0",
18
18
  "@web/test-runner": "0.20.2",
19
19
  "@web/test-runner-playwright": "0.11.1",
@@ -287,6 +287,7 @@ window.LiveReloadOptions = {
287
287
  delete headers.connection;
288
288
  delete headers['proxy-connection'];
289
289
  delete headers.host;
290
+ delete headers['if-modified-since'];
290
291
  const ret = await getFetch(ctx.config.allowInsecure)(url, {
291
292
  method: req.method,
292
293
  headers,