@adobe/aem-cli 16.18.7 → 16.19.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
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [16.19.1](https://github.com/adobe/helix-cli/compare/v16.19.0...v16.19.1) (2026-04-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **deps:** update adobe fixes ([#2718](https://github.com/adobe/helix-cli/issues/2718)) ([487bd65](https://github.com/adobe/helix-cli/commit/487bd65e26a38707050f4605f45f515bf59bf9e3))
|
|
7
|
+
|
|
8
|
+
# [16.19.0](https://github.com/adobe/helix-cli/compare/v16.18.7...v16.19.0) (2026-04-27)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* extend --html-folder to serve local JSON form definitions on-the-fly ([3f0623a](https://github.com/adobe/helix-cli/commit/3f0623aa497c0f7aab4618808d8110ac460a14fb))
|
|
14
|
+
|
|
1
15
|
## [16.18.7](https://github.com/adobe/helix-cli/compare/v16.18.6...v16.18.7) (2026-04-27)
|
|
2
16
|
|
|
3
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/aem-cli",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.19.1",
|
|
4
4
|
"description": "AEM CLI",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@adobe/fetch": "4.3.0",
|
|
47
47
|
"@adobe/helix-log": "7.0.0",
|
|
48
|
-
"@adobe/helix-shared-config": "11.1.
|
|
48
|
+
"@adobe/helix-shared-config": "11.1.22",
|
|
49
49
|
"@adobe/helix-shared-git": "3.0.23",
|
|
50
50
|
"@adobe/helix-shared-indexer": "2.2.7",
|
|
51
|
-
"@adobe/helix-shared-process-queue": "3.1.
|
|
51
|
+
"@adobe/helix-shared-process-queue": "3.1.9",
|
|
52
52
|
"camelcase": "9.0.0",
|
|
53
53
|
"chalk-template": "1.1.2",
|
|
54
54
|
"chokidar": "5.0.0",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"yargs": "18.0.0"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"@adobe/eslint-config-helix": "3.0.
|
|
90
|
+
"@adobe/eslint-config-helix": "3.0.26",
|
|
91
91
|
"@eslint/config-helpers": "0.5.5",
|
|
92
92
|
"@semantic-release/changelog": "6.0.3",
|
|
93
93
|
"@semantic-release/git": "10.0.1",
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"node_modules/@adobe/eslint-config-helix": {
|
|
25
|
-
"version": "3.0.
|
|
26
|
-
"resolved": "https://registry.npmjs.org/@adobe/eslint-config-helix/-/eslint-config-helix-3.0.
|
|
27
|
-
"integrity": "sha512-
|
|
25
|
+
"version": "3.0.26",
|
|
26
|
+
"resolved": "https://registry.npmjs.org/@adobe/eslint-config-helix/-/eslint-config-helix-3.0.26.tgz",
|
|
27
|
+
"integrity": "sha512-fF+yS57VSRd7ydKSgY170Q412dqwAB9euugEHDNBv3+qNvKByqiLvgfcAtodY6cwN9aUa6K8z1Yuezi3Q2+RyQ==",
|
|
28
28
|
"dev": true,
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@eslint/config-helpers": "0.5.
|
|
31
|
+
"@eslint/config-helpers": "0.5.5",
|
|
32
32
|
"eslint-plugin-import": "2.32.0",
|
|
33
|
-
"globals": "17.
|
|
33
|
+
"globals": "17.5.0"
|
|
34
34
|
},
|
|
35
35
|
"engines": {
|
|
36
36
|
"node": ">= 12"
|
|
@@ -39,32 +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.5.4",
|
|
44
|
-
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.4.tgz",
|
|
45
|
-
"integrity": "sha512-jJhqiY3wPMlWWO3370M86CPJ7pt8GmEwSLglMfQhjXal07RCvhmU0as4IuUEW5SJeunfItiEetHmSxCCe9lDBg==",
|
|
46
|
-
"dev": true,
|
|
47
|
-
"license": "Apache-2.0",
|
|
48
|
-
"dependencies": {
|
|
49
|
-
"@eslint/core": "^1.2.0"
|
|
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
|
-
},
|
|
68
42
|
"node_modules/@babel/code-frame": {
|
|
69
43
|
"version": "7.27.1",
|
|
70
44
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
|
|
@@ -3595,9 +3569,9 @@
|
|
|
3595
3569
|
}
|
|
3596
3570
|
},
|
|
3597
3571
|
"node_modules/globals": {
|
|
3598
|
-
"version": "17.
|
|
3599
|
-
"resolved": "https://registry.npmjs.org/globals/-/globals-17.
|
|
3600
|
-
"integrity": "sha512-
|
|
3572
|
+
"version": "17.5.0",
|
|
3573
|
+
"resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz",
|
|
3574
|
+
"integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==",
|
|
3601
3575
|
"dev": true,
|
|
3602
3576
|
"license": "MIT",
|
|
3603
3577
|
"engines": {
|
|
@@ -228,7 +228,10 @@ export class HelixProject extends BaseProject {
|
|
|
228
228
|
await lstat(htmlFolderPath);
|
|
229
229
|
this.log.debug(`Registered HTML folder for live-reload: ${this._htmlFolder}`);
|
|
230
230
|
// Watch all HTML files in the folder - only .html extension
|
|
231
|
-
this.liveReload.registerFiles([
|
|
231
|
+
this.liveReload.registerFiles([
|
|
232
|
+
`${htmlFolderPath}/**/*.html`,
|
|
233
|
+
`${htmlFolderPath}/**/*.json`,
|
|
234
|
+
], this._server.mountPrefix);
|
|
232
235
|
} catch (e) {
|
|
233
236
|
this.log.error(`HTML folder '${this._htmlFolder}' does not exist`);
|
|
234
237
|
throw new Error(`HTML folder '${this._htmlFolder}' does not exist`);
|
|
@@ -307,6 +307,10 @@ export class HelixServer extends BaseServer {
|
|
|
307
307
|
// Resolve which file to serve (.html or .plain.html)
|
|
308
308
|
const resolvedFile = await this.resolveHtmlFolderFile(relativePath);
|
|
309
309
|
if (!resolvedFile) {
|
|
310
|
+
// Serve static assets (e.g. .json) from the html-folder as-is
|
|
311
|
+
if (relativePath.includes('.')) {
|
|
312
|
+
return this.serveHtmlFolderStaticFile(req, res, next, relativePath);
|
|
313
|
+
}
|
|
310
314
|
return next();
|
|
311
315
|
}
|
|
312
316
|
|
|
@@ -348,6 +352,55 @@ export class HelixServer extends BaseServer {
|
|
|
348
352
|
return undefined;
|
|
349
353
|
}
|
|
350
354
|
|
|
355
|
+
/**
|
|
356
|
+
* Serves static files from the HTML folder as-is
|
|
357
|
+
* @param {Express.Request} req request
|
|
358
|
+
* @param {Express.Response} res response
|
|
359
|
+
* @param {Function} next next middleware
|
|
360
|
+
* @param {string} relativePath path relative to HTML folder
|
|
361
|
+
*/
|
|
362
|
+
async serveHtmlFolderStaticFile(req, res, next, relativePath) {
|
|
363
|
+
if (relativePath.includes('/../') || relativePath.includes('..')) {
|
|
364
|
+
return next();
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
const filePath = path.resolve(
|
|
368
|
+
this._project.directory,
|
|
369
|
+
this._htmlFolder,
|
|
370
|
+
relativePath,
|
|
371
|
+
);
|
|
372
|
+
|
|
373
|
+
if (!utils.validatePathSecurity(
|
|
374
|
+
filePath,
|
|
375
|
+
this._project.directory,
|
|
376
|
+
)) {
|
|
377
|
+
return next();
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
try {
|
|
381
|
+
const stats = await lstat(filePath);
|
|
382
|
+
if (!stats.isFile()) {
|
|
383
|
+
return next();
|
|
384
|
+
}
|
|
385
|
+
} catch (e) {
|
|
386
|
+
return next();
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
const sendFile = promisify(res.sendFile).bind(res);
|
|
390
|
+
try {
|
|
391
|
+
await sendFile(filePath, {
|
|
392
|
+
dotfiles: 'allow',
|
|
393
|
+
headers: { 'access-control-allow-origin': '*' },
|
|
394
|
+
});
|
|
395
|
+
this.log.debug(
|
|
396
|
+
`served static file ${filePath} for ${req.url}`,
|
|
397
|
+
);
|
|
398
|
+
} catch (e) {
|
|
399
|
+
return next();
|
|
400
|
+
}
|
|
401
|
+
return undefined;
|
|
402
|
+
}
|
|
403
|
+
|
|
351
404
|
/**
|
|
352
405
|
* Proxy Mode route handler
|
|
353
406
|
* @param {Express.Request} req request
|