@adobe/aem-cli 16.15.1 → 16.15.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,18 @@
|
|
|
1
|
+
## [16.15.3](https://github.com/adobe/helix-cli/compare/v16.15.2...v16.15.3) (2025-09-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **deps:** update external fixes ([f850d11](https://github.com/adobe/helix-cli/commit/f850d11fe8b2c4f3b35f515a2f7ce1abbc79f951))
|
|
7
|
+
* update package-lock.json to sync with package.json dependencies ([e8b5276](https://github.com/adobe/helix-cli/commit/e8b52767954d016fe9527222b3ca9a36724a6af1))
|
|
8
|
+
|
|
9
|
+
## [16.15.2](https://github.com/adobe/helix-cli/compare/v16.15.1...v16.15.2) (2025-09-24)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* hlx proxy now respects .hlxignore and warns for ignored files ([#2086](https://github.com/adobe/helix-cli/issues/2086)) ([a413938](https://github.com/adobe/helix-cli/commit/a413938bdcbdc8987306c82f90242d110979ea51))
|
|
15
|
+
|
|
1
16
|
## [16.15.1](https://github.com/adobe/helix-cli/compare/v16.15.0...v16.15.1) (2025-09-22)
|
|
2
17
|
|
|
3
18
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/aem-cli",
|
|
3
|
-
"version": "16.15.
|
|
3
|
+
"version": "16.15.3",
|
|
4
4
|
"description": "AEM CLI",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@adobe/helix-shared-git": "3.0.20",
|
|
50
50
|
"@adobe/helix-shared-indexer": "2.2.5",
|
|
51
51
|
"camelcase": "8.0.0",
|
|
52
|
-
"chalk-template": "1.1.
|
|
52
|
+
"chalk-template": "1.1.2",
|
|
53
53
|
"chokidar": "4.0.3",
|
|
54
54
|
"compression": "1.8.1",
|
|
55
55
|
"cookie": "1.0.2",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"https-proxy-agent": "7.0.6",
|
|
66
66
|
"ignore": "7.0.5",
|
|
67
67
|
"ini": "5.0.0",
|
|
68
|
-
"isomorphic-git": "1.
|
|
68
|
+
"isomorphic-git": "1.33.1",
|
|
69
69
|
"jose": "6.1.0",
|
|
70
70
|
"livereload-js": "4.0.2",
|
|
71
71
|
"node-fetch": "3.3.2",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@adobe/eslint-config-helix": "^3.0.9",
|
|
16
|
-
"@eslint/config-helpers": "0.3.
|
|
16
|
+
"@eslint/config-helpers": "0.3.1",
|
|
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,16 +39,6 @@
|
|
|
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.3.1",
|
|
44
|
-
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
|
|
45
|
-
"integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
|
|
46
|
-
"dev": true,
|
|
47
|
-
"license": "Apache-2.0",
|
|
48
|
-
"engines": {
|
|
49
|
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
42
|
"node_modules/@babel/code-frame": {
|
|
53
43
|
"version": "7.27.1",
|
|
54
44
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
|
|
@@ -136,9 +126,9 @@
|
|
|
136
126
|
}
|
|
137
127
|
},
|
|
138
128
|
"node_modules/@eslint/config-helpers": {
|
|
139
|
-
"version": "0.3.
|
|
140
|
-
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.
|
|
141
|
-
"integrity": "sha512-
|
|
129
|
+
"version": "0.3.1",
|
|
130
|
+
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
|
|
131
|
+
"integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
|
|
142
132
|
"dev": true,
|
|
143
133
|
"license": "Apache-2.0",
|
|
144
134
|
"engines": {
|
|
@@ -2977,17 +2967,6 @@
|
|
|
2977
2967
|
"url": "https://opencollective.com/eslint"
|
|
2978
2968
|
}
|
|
2979
2969
|
},
|
|
2980
|
-
"node_modules/eslint/node_modules/@eslint/config-helpers": {
|
|
2981
|
-
"version": "0.3.1",
|
|
2982
|
-
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
|
|
2983
|
-
"integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
|
|
2984
|
-
"dev": true,
|
|
2985
|
-
"license": "Apache-2.0",
|
|
2986
|
-
"peer": true,
|
|
2987
|
-
"engines": {
|
|
2988
|
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
|
2989
|
-
}
|
|
2990
|
-
},
|
|
2991
2970
|
"node_modules/eslint/node_modules/glob-parent": {
|
|
2992
2971
|
"version": "6.0.2",
|
|
2993
2972
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@adobe/eslint-config-helix": "^3.0.9",
|
|
16
|
-
"@eslint/config-helpers": "0.3.
|
|
16
|
+
"@eslint/config-helpers": "0.3.1",
|
|
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",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import path, { resolve } from 'path';
|
|
13
13
|
import { lstat } from 'fs/promises';
|
|
14
|
+
import { IgnoreConfig } from '@adobe/helix-shared-config';
|
|
14
15
|
import { HelixServer } from './HelixServer.js';
|
|
15
16
|
import { BaseProject } from './BaseProject.js';
|
|
16
17
|
import HeadHtmlSupport from './HeadHtmlSupport.js';
|
|
@@ -25,6 +26,7 @@ export class HelixProject extends BaseProject {
|
|
|
25
26
|
this._printIndex = false;
|
|
26
27
|
this._allowInsecure = false;
|
|
27
28
|
this._file404html = null;
|
|
29
|
+
this._hlxIgnore = null;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
withLiveReload(value) {
|
|
@@ -135,12 +137,28 @@ export class HelixProject extends BaseProject {
|
|
|
135
137
|
return this._htmlFolder;
|
|
136
138
|
}
|
|
137
139
|
|
|
140
|
+
get hlxIgnore() {
|
|
141
|
+
return this._hlxIgnore;
|
|
142
|
+
}
|
|
143
|
+
|
|
138
144
|
async init() {
|
|
139
145
|
await super.init();
|
|
140
146
|
this._indexer = new Indexer()
|
|
141
147
|
.withLogger(this._logger)
|
|
142
148
|
.withCwd(this._cwd)
|
|
143
149
|
.withPrintIndex(this._printIndex);
|
|
150
|
+
|
|
151
|
+
// Initialize IgnoreConfig for .hlxignore support
|
|
152
|
+
this._hlxIgnore = new IgnoreConfig()
|
|
153
|
+
.withDirectory(this._cwd);
|
|
154
|
+
|
|
155
|
+
try {
|
|
156
|
+
await this._hlxIgnore.init();
|
|
157
|
+
} catch (e) {
|
|
158
|
+
// .hlxignore file doesn't exist or couldn't be loaded, which is fine
|
|
159
|
+
this._hlxIgnore = null;
|
|
160
|
+
}
|
|
161
|
+
|
|
144
162
|
return this;
|
|
145
163
|
}
|
|
146
164
|
|
|
@@ -196,12 +214,40 @@ export class HelixProject extends BaseProject {
|
|
|
196
214
|
}
|
|
197
215
|
}
|
|
198
216
|
|
|
217
|
+
async initHlxIgnore() {
|
|
218
|
+
if (this._hlxIgnore && this.liveReload) {
|
|
219
|
+
const hlxIgnorePath = resolve(this.directory, '.hlxignore');
|
|
220
|
+
try {
|
|
221
|
+
await lstat(hlxIgnorePath);
|
|
222
|
+
this.log.debug('detected .hlxignore file');
|
|
223
|
+
if (this.liveReload) {
|
|
224
|
+
this.liveReload.registerFiles([hlxIgnorePath], '/');
|
|
225
|
+
this.liveReload.on('modified', async (modified) => {
|
|
226
|
+
if (modified.includes('.hlxignore')) {
|
|
227
|
+
this.log.debug('Reloading .hlxignore file');
|
|
228
|
+
// Re-initialize the IgnoreConfig to reload the file
|
|
229
|
+
try {
|
|
230
|
+
await this._hlxIgnore.init();
|
|
231
|
+
} catch (e) {
|
|
232
|
+
// If reload fails, just continue without ignore support
|
|
233
|
+
this._hlxIgnore = null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
} catch (e) {
|
|
239
|
+
// .hlxignore doesn't exist, which is fine
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
199
244
|
async start() {
|
|
200
245
|
this.log.debug('Launching AEM dev server...');
|
|
201
246
|
await super.start();
|
|
202
247
|
await this.initHeadHtml();
|
|
203
248
|
await this.init404Html();
|
|
204
249
|
await this.initHtmlFolder();
|
|
250
|
+
await this.initHlxIgnore();
|
|
205
251
|
if (this._indexer) {
|
|
206
252
|
await this._indexer.init();
|
|
207
253
|
}
|
|
@@ -253,6 +253,16 @@ export class HelixServer extends BaseServer {
|
|
|
253
253
|
return;
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
+
// Check if the file is ignored by .hlxignore
|
|
257
|
+
if (this._project.hlxIgnore) {
|
|
258
|
+
// IgnoreConfig expects relative paths from project root
|
|
259
|
+
const relativePath = path.relative(this._project.directory, filePath);
|
|
260
|
+
const isIgnored = this._project.hlxIgnore.ignores(relativePath);
|
|
261
|
+
if (isIgnored) {
|
|
262
|
+
log.warn(`Warning: Proxying ignored file: ${ctx.path} (matched by .hlxignore)`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
256
266
|
const liveReload = this._liveReload;
|
|
257
267
|
if (liveReload) {
|
|
258
268
|
liveReload.startRequest(ctx.requestId, ctx.path);
|