@depup/angular__cli 21.2.6-depup.1 → 22.0.7-depup.0
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/README.md +12 -9
- package/bin/ng.js +10 -7
- package/changes.json +28 -16
- package/lib/cli/index.js +3 -5
- package/lib/cli/index.js.map +1 -1
- package/lib/config/schema.json +18 -392
- package/lib/config/workspace-schema.d.ts +5 -1
- package/lib/config/workspace-schema.js +1 -1
- package/lib/config/workspace-schema.js.map +1 -1
- package/package.json +64 -53
- package/src/command-builder/command-module.js +23 -8
- package/src/command-builder/command-module.js.map +1 -1
- package/src/commands/add/cli.d.ts +3 -0
- package/src/commands/add/cli.js +121 -50
- package/src/commands/add/cli.js.map +1 -1
- package/src/commands/mcp/cli.js +0 -4
- package/src/commands/mcp/cli.js.map +1 -1
- package/src/commands/mcp/devserver.d.ts +1 -1
- package/src/commands/mcp/devserver.js +5 -8
- package/src/commands/mcp/devserver.js.map +1 -1
- package/src/commands/mcp/host.d.ts +14 -12
- package/src/commands/mcp/host.js +139 -9
- package/src/commands/mcp/host.js.map +1 -1
- package/src/commands/mcp/mcp-server.d.ts +2 -160
- package/src/commands/mcp/mcp-server.js +56 -36
- package/src/commands/mcp/mcp-server.js.map +1 -1
- package/src/commands/mcp/resources/ai-tutor.md +5 -7
- package/src/commands/mcp/resources/best-practices.md +4 -2
- package/src/commands/mcp/tools/best-practices.js +9 -17
- package/src/commands/mcp/tools/best-practices.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-start.js +1 -0
- package/src/commands/mcp/tools/devserver/devserver-start.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-stop.js +1 -0
- package/src/commands/mcp/tools/devserver/devserver-stop.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js +1 -0
- package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js.map +1 -1
- package/src/commands/mcp/tools/doc-search.js +11 -33
- package/src/commands/mcp/tools/doc-search.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.d.ts +2 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.js +5 -8
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.d.ts +3 -2
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.js +8 -8
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/prompts.js +4 -4
- package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.d.ts +2 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.js +2 -3
- package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.d.ts +2 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.js +31 -44
- package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.js.map +1 -1
- package/src/commands/mcp/tools/projects.d.ts +1 -0
- package/src/commands/mcp/tools/projects.js +37 -19
- package/src/commands/mcp/tools/projects.js.map +1 -1
- package/src/commands/mcp/tools/run-target/build-target-strategy.d.ts +14 -0
- package/src/commands/mcp/tools/run-target/build-target-strategy.js +53 -0
- package/src/commands/mcp/tools/run-target/build-target-strategy.js.map +1 -0
- package/src/commands/mcp/tools/run-target/generic-target-strategy.d.ts +14 -0
- package/src/commands/mcp/tools/run-target/generic-target-strategy.js +63 -0
- package/src/commands/mcp/tools/run-target/generic-target-strategy.js.map +1 -0
- package/src/commands/mcp/tools/run-target/options-serializer.d.ts +13 -0
- package/src/commands/mcp/tools/run-target/options-serializer.js +41 -0
- package/src/commands/mcp/tools/run-target/options-serializer.js.map +1 -0
- package/src/commands/mcp/tools/run-target/run-target.d.ts +34 -0
- package/src/commands/mcp/tools/run-target/run-target.js +69 -0
- package/src/commands/mcp/tools/run-target/run-target.js.map +1 -0
- package/src/commands/mcp/tools/run-target/strategy.d.ts +15 -0
- package/src/commands/mcp/tools/run-target/strategy.js +10 -0
- package/src/commands/mcp/tools/run-target/strategy.js.map +1 -0
- package/src/commands/mcp/tools/run-target/types.d.ts +39 -0
- package/src/commands/mcp/tools/run-target/types.js +41 -0
- package/src/commands/mcp/tools/run-target/types.js.map +1 -0
- package/src/commands/mcp/tools/run-target/unit-test-strategy.d.ts +14 -0
- package/src/commands/mcp/tools/run-target/unit-test-strategy.js +56 -0
- package/src/commands/mcp/tools/run-target/unit-test-strategy.js.map +1 -0
- package/src/commands/mcp/workspace-utils.d.ts +2 -1
- package/src/commands/mcp/workspace-utils.js +45 -3
- package/src/commands/mcp/workspace-utils.js.map +1 -1
- package/src/commands/update/cli.js +4 -3
- package/src/commands/update/cli.js.map +1 -1
- package/src/commands/update/schematic/index.js +262 -92
- package/src/commands/update/schematic/index.js.map +1 -1
- package/src/commands/update/schematic/schema.d.ts +4 -0
- package/src/commands/update/schematic/schema.js.map +1 -1
- package/src/commands/update/schematic/schema.json +4 -0
- package/src/commands/update/utilities/cli-version.js +1 -1
- package/src/commands/update/utilities/cli-version.js.map +1 -1
- package/src/commands/update/utilities/migration.js +5 -2
- package/src/commands/update/utilities/migration.js.map +1 -1
- package/src/commands/version/version-info.js +2 -8
- package/src/commands/version/version-info.js.map +1 -1
- package/src/package-managers/package-manager-descriptor.d.ts +15 -1
- package/src/package-managers/package-manager-descriptor.js +29 -0
- package/src/package-managers/package-manager-descriptor.js.map +1 -1
- package/src/package-managers/package-manager.d.ts +4 -0
- package/src/package-managers/package-manager.js +218 -36
- package/src/package-managers/package-manager.js.map +1 -1
- package/src/package-managers/parsers.d.ts +3 -21
- package/src/package-managers/parsers.js +83 -33
- package/src/package-managers/parsers.js.map +1 -1
- package/src/utilities/completion.js +1 -1
- package/src/utilities/completion.js.map +1 -1
- package/src/utilities/config.js +1 -2
- package/src/utilities/config.js.map +1 -1
- package/src/utilities/node-version.d.ts +21 -0
- package/src/utilities/node-version.js +65 -0
- package/src/utilities/node-version.js.map +1 -0
- package/src/utilities/package-metadata.d.ts +0 -10
- package/src/utilities/package-metadata.js +0 -62
- package/src/utilities/package-metadata.js.map +1 -1
- package/src/utilities/prompt.js +1 -1
- package/src/utilities/prompt.js.map +1 -1
- package/src/utilities/version.js +1 -1
- package/lib/code-examples.db +0 -0
- package/src/commands/mcp/tools/build.d.ts +0 -37
- package/src/commands/mcp/tools/build.js +0 -89
- package/src/commands/mcp/tools/build.js.map +0 -1
- package/src/commands/mcp/tools/e2e.d.ts +0 -44
- package/src/commands/mcp/tools/e2e.js +0 -87
- package/src/commands/mcp/tools/e2e.js.map +0 -1
- package/src/commands/mcp/tools/examples/database-discovery.d.ts +0 -34
- package/src/commands/mcp/tools/examples/database-discovery.js +0 -87
- package/src/commands/mcp/tools/examples/database-discovery.js.map +0 -1
- package/src/commands/mcp/tools/examples/database.d.ts +0 -35
- package/src/commands/mcp/tools/examples/database.js +0 -125
- package/src/commands/mcp/tools/examples/database.js.map +0 -1
- package/src/commands/mcp/tools/examples/index.d.ts +0 -26
- package/src/commands/mcp/tools/examples/index.js +0 -149
- package/src/commands/mcp/tools/examples/index.js.map +0 -1
- package/src/commands/mcp/tools/examples/query-escaper.d.ts +0 -20
- package/src/commands/mcp/tools/examples/query-escaper.js +0 -68
- package/src/commands/mcp/tools/examples/query-escaper.js.map +0 -1
- package/src/commands/mcp/tools/examples/runtime-database.d.ts +0 -10
- package/src/commands/mcp/tools/examples/runtime-database.js +0 -192
- package/src/commands/mcp/tools/examples/runtime-database.js.map +0 -1
- package/src/commands/mcp/tools/examples/schemas.d.ts +0 -29
- package/src/commands/mcp/tools/examples/schemas.js +0 -101
- package/src/commands/mcp/tools/examples/schemas.js.map +0 -1
- package/src/commands/mcp/tools/examples/utils.d.ts +0 -14
- package/src/commands/mcp/tools/examples/utils.js +0 -31
- package/src/commands/mcp/tools/examples/utils.js.map +0 -1
- package/src/commands/mcp/tools/modernize.d.ts +0 -43
- package/src/commands/mcp/tools/modernize.js +0 -165
- package/src/commands/mcp/tools/modernize.js.map +0 -1
- package/src/commands/mcp/tools/test.d.ts +0 -35
- package/src/commands/mcp/tools/test.js +0 -79
- package/src/commands/mcp/tools/test.js.map +0 -1
|
@@ -79,7 +79,7 @@ var ViewEncapsulation;
|
|
|
79
79
|
*/
|
|
80
80
|
var ChangeDetection;
|
|
81
81
|
(function (ChangeDetection) {
|
|
82
|
-
ChangeDetection["
|
|
82
|
+
ChangeDetection["Eager"] = "Eager";
|
|
83
83
|
ChangeDetection["OnPush"] = "OnPush";
|
|
84
84
|
})(ChangeDetection || (exports.ChangeDetection = ChangeDetection = {}));
|
|
85
85
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-schema.js","sourceRoot":"","sources":["workspace-schema.ts"],"names":[],"mappings":";AACA,mFAAmF;AACnF,oFAAoF;;;AA4DpF;;GAEG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,0BAAW,CAAA;IACX,wBAAS,CAAA;IACT,8BAAe,CAAA;AACnB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED;;;;GAIG;AACH,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACjB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB;AAqID;;;;;GAKG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,sCAAgB,CAAA;IAChB,sCAAgB,CAAA;AACpB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED;;;;GAIG;AACH,IAAY,iCAMX;AAND,WAAY,iCAAiC;IACzC,gDAAW,CAAA;IACX,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,0DAAqB,CAAA;AACzB,CAAC,EANW,iCAAiC,iDAAjC,iCAAiC,QAM5C;AAED;;GAEG;AACH,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACrB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED;;;;;;;;;;;GAWG;AACH,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,0CAAqB,CAAA;IACrB,kCAAa,CAAA;IACb,4CAAuB,CAAA;AAC3B,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAsJD;;GAEG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,
|
|
1
|
+
{"version":3,"file":"workspace-schema.js","sourceRoot":"","sources":["workspace-schema.ts"],"names":[],"mappings":";AACA,mFAAmF;AACnF,oFAAoF;;;AA4DpF;;GAEG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,0BAAW,CAAA;IACX,wBAAS,CAAA;IACT,8BAAe,CAAA;AACnB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED;;;;GAIG;AACH,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACjB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB;AAqID;;;;;GAKG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,sCAAgB,CAAA;IAChB,sCAAgB,CAAA;AACpB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED;;;;GAIG;AACH,IAAY,iCAMX;AAND,WAAY,iCAAiC;IACzC,gDAAW,CAAA;IACX,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,0DAAqB,CAAA;AACzB,CAAC,EANW,iCAAiC,iDAAjC,iCAAiC,QAM5C;AAED;;GAEG;AACH,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACrB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED;;;;;;;;;;;GAWG;AACH,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,0CAAqB,CAAA;IACrB,kCAAa,CAAA;IACb,4CAAuB,CAAA;AAC3B,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAsJD;;GAEG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,oCAAiB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED;;;GAGG;AACH,IAAY,+BAMX;AAND,WAAY,+BAA+B;IACvC,8CAAW,CAAA;IACX,gDAAa,CAAA;IACb,gDAAa,CAAA;IACb,gDAAa,CAAA;IACb,gDAAa,CAAA;AACjB,CAAC,EANW,+BAA+B,+CAA/B,+BAA+B,QAM1C;AAwJD,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,wCAA2B,CAAA;IAC3B,kDAAqC,CAAA;IACrC,4CAA+B,CAAA;IAC/B,kCAAqB,CAAA;AACzB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED;;;;;;;;;;;;GAYG;AACH,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,oCAAmB,CAAA;AACvB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAuQD,IAAY,QASX;AATD,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;IACvB,yBAAa,CAAA;IACb,iCAAqB,CAAA;AACzB,CAAC,EATW,QAAQ,wBAAR,QAAQ,QASnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@depup/angular__cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "22.0.7-depup.0",
|
|
4
4
|
"description": "CLI tool for Angular (with updated dependencies)",
|
|
5
5
|
"main": "lib/cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -20,86 +20,97 @@
|
|
|
20
20
|
"devkit",
|
|
21
21
|
"sdk"
|
|
22
22
|
],
|
|
23
|
-
"repository": {
|
|
24
|
-
"type": "git",
|
|
25
|
-
"url": "git+https://github.com/angular/angular-cli.git"
|
|
26
|
-
},
|
|
27
|
-
"author": "Angular Authors",
|
|
28
|
-
"license": "MIT",
|
|
29
|
-
"bugs": {
|
|
30
|
-
"url": "https://github.com/angular/angular-cli/issues"
|
|
31
|
-
},
|
|
32
|
-
"homepage": "https://github.com/angular/angular-cli",
|
|
33
23
|
"dependencies": {
|
|
34
|
-
"@angular-devkit/architect": "0.
|
|
35
|
-
"@angular-devkit/core": "
|
|
36
|
-
"@angular-devkit/schematics": "
|
|
37
|
-
"@inquirer/prompts": "^8.
|
|
38
|
-
"@listr2/prompt-adapter-inquirer": "^4.2.
|
|
39
|
-
"@modelcontextprotocol/sdk": "
|
|
40
|
-
"@schematics/angular": "
|
|
24
|
+
"@angular-devkit/architect": "0.2200.7",
|
|
25
|
+
"@angular-devkit/core": "22.0.7",
|
|
26
|
+
"@angular-devkit/schematics": "22.0.7",
|
|
27
|
+
"@inquirer/prompts": "^8.5.2",
|
|
28
|
+
"@listr2/prompt-adapter-inquirer": "^4.2.4",
|
|
29
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
30
|
+
"@schematics/angular": "22.0.7",
|
|
41
31
|
"@yarnpkg/lockfile": "1.1.0",
|
|
42
|
-
"algoliasearch": "^5.
|
|
43
|
-
"ini": "
|
|
32
|
+
"algoliasearch": "^5.56.0",
|
|
33
|
+
"ini": "^7.0.0",
|
|
44
34
|
"jsonc-parser": "3.3.1",
|
|
45
|
-
"listr2": "^10.2.
|
|
46
|
-
"npm-package-arg": "
|
|
47
|
-
"pacote": "^
|
|
48
|
-
"parse5-html-rewriting-stream": "8.0.
|
|
49
|
-
"semver": "7.
|
|
35
|
+
"listr2": "^10.2.2",
|
|
36
|
+
"npm-package-arg": "^14.0.0",
|
|
37
|
+
"pacote": "^22.0.0",
|
|
38
|
+
"parse5-html-rewriting-stream": "8.0.1",
|
|
39
|
+
"semver": "^7.8.5",
|
|
50
40
|
"yargs": "18.0.0",
|
|
51
|
-
"zod": "4.3
|
|
41
|
+
"zod": "^4.4.3"
|
|
52
42
|
},
|
|
53
43
|
"ng-update": {
|
|
54
44
|
"migrations": "@schematics/angular/migrations/migration-collection.json",
|
|
55
45
|
"packageGroup": {
|
|
56
|
-
"@angular/cli": "
|
|
57
|
-
"@angular/build": "
|
|
58
|
-
"@angular/ssr": "
|
|
59
|
-
"@angular-devkit/architect": "0.
|
|
60
|
-
"@angular-devkit/build-angular": "
|
|
61
|
-
"@angular-devkit/build-webpack": "0.
|
|
62
|
-
"@angular-devkit/core": "
|
|
63
|
-
"@angular-devkit/schematics": "
|
|
46
|
+
"@angular/cli": "22.0.7",
|
|
47
|
+
"@angular/build": "22.0.7",
|
|
48
|
+
"@angular/ssr": "22.0.7",
|
|
49
|
+
"@angular-devkit/architect": "0.2200.7",
|
|
50
|
+
"@angular-devkit/build-angular": "22.0.7",
|
|
51
|
+
"@angular-devkit/build-webpack": "0.2200.7",
|
|
52
|
+
"@angular-devkit/core": "22.0.7",
|
|
53
|
+
"@angular-devkit/schematics": "22.0.7"
|
|
64
54
|
}
|
|
65
55
|
},
|
|
66
|
-
"
|
|
56
|
+
"repository": {
|
|
57
|
+
"type": "git",
|
|
58
|
+
"url": "git+https://github.com/angular/angular-cli.git"
|
|
59
|
+
},
|
|
67
60
|
"engines": {
|
|
68
|
-
"node": "^
|
|
61
|
+
"node": "^22.22.3 || ^24.15.0 || >=26.0.0",
|
|
69
62
|
"npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
|
|
70
63
|
"yarn": ">= 1.13.0"
|
|
71
64
|
},
|
|
65
|
+
"author": "Angular Authors",
|
|
66
|
+
"license": "MIT",
|
|
67
|
+
"bugs": {
|
|
68
|
+
"url": "https://github.com/angular/angular-cli/issues"
|
|
69
|
+
},
|
|
70
|
+
"homepage": "https://github.com/angular/angular-cli",
|
|
72
71
|
"depup": {
|
|
73
72
|
"changes": {
|
|
74
73
|
"@inquirer/prompts": {
|
|
75
|
-
"from": "
|
|
76
|
-
"to": "^8.
|
|
74
|
+
"from": "8.4.2",
|
|
75
|
+
"to": "^8.5.2"
|
|
77
76
|
},
|
|
78
77
|
"@listr2/prompt-adapter-inquirer": {
|
|
79
|
-
"from": "
|
|
80
|
-
"to": "^4.2.
|
|
81
|
-
},
|
|
82
|
-
"@modelcontextprotocol/sdk": {
|
|
83
|
-
"from": "1.26.0",
|
|
84
|
-
"to": "^1.29.0"
|
|
78
|
+
"from": "4.2.3",
|
|
79
|
+
"to": "^4.2.4"
|
|
85
80
|
},
|
|
86
81
|
"algoliasearch": {
|
|
87
|
-
"from": "5.
|
|
88
|
-
"to": "^5.
|
|
82
|
+
"from": "5.52.0",
|
|
83
|
+
"to": "^5.56.0"
|
|
84
|
+
},
|
|
85
|
+
"ini": {
|
|
86
|
+
"from": "6.0.0",
|
|
87
|
+
"to": "^7.0.0"
|
|
89
88
|
},
|
|
90
89
|
"listr2": {
|
|
91
|
-
"from": "
|
|
92
|
-
"to": "^10.2.
|
|
90
|
+
"from": "10.2.1",
|
|
91
|
+
"to": "^10.2.2"
|
|
92
|
+
},
|
|
93
|
+
"npm-package-arg": {
|
|
94
|
+
"from": "13.0.2",
|
|
95
|
+
"to": "^14.0.0"
|
|
93
96
|
},
|
|
94
97
|
"pacote": {
|
|
95
|
-
"from": "21.
|
|
96
|
-
"to": "^
|
|
98
|
+
"from": "21.5.1",
|
|
99
|
+
"to": "^22.0.0"
|
|
100
|
+
},
|
|
101
|
+
"semver": {
|
|
102
|
+
"from": "7.7.4",
|
|
103
|
+
"to": "^7.8.5"
|
|
104
|
+
},
|
|
105
|
+
"zod": {
|
|
106
|
+
"from": "4.4.2",
|
|
107
|
+
"to": "^4.4.3"
|
|
97
108
|
}
|
|
98
109
|
},
|
|
99
|
-
"depsUpdated":
|
|
110
|
+
"depsUpdated": 9,
|
|
100
111
|
"originalPackage": "@angular/cli",
|
|
101
|
-
"originalVersion": "
|
|
102
|
-
"processedAt": "2026-
|
|
112
|
+
"originalVersion": "22.0.7",
|
|
113
|
+
"processedAt": "2026-07-21T16:01:34.859Z",
|
|
103
114
|
"smokeTest": "passed"
|
|
104
115
|
}
|
|
105
116
|
}
|
|
@@ -49,6 +49,7 @@ const helpers_1 = require("yargs/helpers");
|
|
|
49
49
|
const analytics_1 = require("../analytics/analytics");
|
|
50
50
|
const analytics_collector_1 = require("../analytics/analytics-collector");
|
|
51
51
|
const analytics_parameters_1 = require("../analytics/analytics-parameters");
|
|
52
|
+
const package_managers_1 = require("../package-managers");
|
|
52
53
|
const completion_1 = require("../utilities/completion");
|
|
53
54
|
const memoize_1 = require("../utilities/memoize");
|
|
54
55
|
const definitions_1 = require("./definitions");
|
|
@@ -95,13 +96,14 @@ let CommandModule = (() => {
|
|
|
95
96
|
}
|
|
96
97
|
async handler(args) {
|
|
97
98
|
const { _, $0, ...options } = args;
|
|
99
|
+
const { logger } = this.context;
|
|
98
100
|
// Camelize options as yargs will return the object in kebab-case when camel casing is disabled.
|
|
99
101
|
const camelCasedOptions = {};
|
|
100
102
|
for (const [key, value] of Object.entries(options)) {
|
|
101
103
|
camelCasedOptions[helpers_1.Parser.camelCase(key)] = value;
|
|
102
104
|
}
|
|
103
105
|
// Set up autocompletion if appropriate.
|
|
104
|
-
const autocompletionExitCode = await (0, completion_1.considerSettingUpAutocompletion)(this.commandName,
|
|
106
|
+
const autocompletionExitCode = await (0, completion_1.considerSettingUpAutocompletion)(this.commandName, logger);
|
|
105
107
|
if (autocompletionExitCode !== undefined) {
|
|
106
108
|
process.exitCode = autocompletionExitCode;
|
|
107
109
|
return;
|
|
@@ -119,7 +121,12 @@ let CommandModule = (() => {
|
|
|
119
121
|
}
|
|
120
122
|
catch (e) {
|
|
121
123
|
if (e instanceof core_1.schema.SchemaValidationException) {
|
|
122
|
-
|
|
124
|
+
logger.fatal(`Error: ${e.message}`);
|
|
125
|
+
exitCode = 1;
|
|
126
|
+
}
|
|
127
|
+
else if (e instanceof package_managers_1.PackageManagerError) {
|
|
128
|
+
const output = e.stderr || e.stdout;
|
|
129
|
+
logger.fatal(`Error: Package installation failed: ${e.message}${output ? `\nOutput: ${output}` : ''}`);
|
|
123
130
|
exitCode = 1;
|
|
124
131
|
}
|
|
125
132
|
else {
|
|
@@ -140,12 +147,20 @@ let CommandModule = (() => {
|
|
|
140
147
|
const userId = await (0, analytics_1.getAnalyticsUserId)(this.context,
|
|
141
148
|
// Don't prompt on `ng update`, 'ng version' or `ng analytics`.
|
|
142
149
|
['version', 'update', 'analytics'].includes(this.commandName));
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
if (!userId) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
let version;
|
|
154
|
+
try {
|
|
155
|
+
version = await this.context.packageManager.getVersion();
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// Ignore errors if the package manager is not available.
|
|
159
|
+
}
|
|
160
|
+
return new analytics_collector_1.AnalyticsCollector(this.context.logger, userId, {
|
|
161
|
+
name: this.context.packageManager.name,
|
|
162
|
+
version,
|
|
163
|
+
});
|
|
149
164
|
}
|
|
150
165
|
/**
|
|
151
166
|
* Adds schema options to a command also this keeps track of options that are required for analytics.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-module.js","sourceRoot":"","sources":["command-module.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAA8C;AAC9C,qCAAuC;AACvC,yCAAkD;AAElD,2CAAsD;AACtD,sDAA4D;AAC5D,0EAAsE;AACtE,4EAA4F;AAC5F,wDAA0E;AAE1E,kDAA+C;AAC/C,+CAAoF;AAG3E,6FAHgB,0BAAY,OAGhB;AAFrB,yDAA4E;IA4BtD,aAAa;;;iBAAb,aAAa;;;
|
|
1
|
+
{"version":3,"file":"command-module.js","sourceRoot":"","sources":["command-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,12 +27,15 @@ export default class AddCommandModule extends SchematicsCommandModule implements
|
|
|
27
27
|
private findCompatiblePackageVersionTask;
|
|
28
28
|
private loadPackageInfoTask;
|
|
29
29
|
private confirmInstallationTask;
|
|
30
|
+
private cleanUpTemporaryDependency;
|
|
30
31
|
private installPackageTask;
|
|
31
32
|
private isProjectVersionValid;
|
|
32
33
|
private getCollectionName;
|
|
33
34
|
private isPackageInstalled;
|
|
34
35
|
private executeSchematic;
|
|
35
36
|
private findProjectVersion;
|
|
37
|
+
private getProjectManifest;
|
|
38
|
+
private resolvePackageJson;
|
|
36
39
|
private getPeerDependencyConflicts;
|
|
37
40
|
}
|
|
38
41
|
export {};
|
package/src/commands/add/cli.js
CHANGED
|
@@ -45,13 +45,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
46
|
const listr2_1 = require("listr2");
|
|
47
47
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
48
|
+
const node_fs_1 = require("node:fs");
|
|
48
49
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
49
50
|
const node_module_1 = require("node:module");
|
|
50
51
|
const node_path_1 = require("node:path");
|
|
51
52
|
const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
|
|
52
53
|
const semver_1 = __importStar(require("semver"));
|
|
54
|
+
const command_module_1 = require("../../command-builder/command-module");
|
|
53
55
|
const schematics_command_module_1 = require("../../command-builder/schematics-command-module");
|
|
54
|
-
const package_managers_1 = require("../../package-managers");
|
|
55
56
|
const error_1 = require("../../utilities/error");
|
|
56
57
|
const tty_1 = require("../../utilities/tty");
|
|
57
58
|
const version_1 = require("../../utilities/version");
|
|
@@ -99,6 +100,7 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
99
100
|
schematicName = 'ng-add';
|
|
100
101
|
rootRequire = (0, node_module_1.createRequire)(this.context.root + '/');
|
|
101
102
|
#projectVersionCache = new Map();
|
|
103
|
+
#rootManifestCache = null;
|
|
102
104
|
async builder(argv) {
|
|
103
105
|
const localYargs = (await super.builder(argv))
|
|
104
106
|
.positional('collection', {
|
|
@@ -117,6 +119,15 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
117
119
|
'Ensure package name is correct prior to using this option.',
|
|
118
120
|
type: 'boolean',
|
|
119
121
|
default: false,
|
|
122
|
+
})
|
|
123
|
+
.check(({ registry }) => {
|
|
124
|
+
if (registry === undefined) {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
if (typeof registry === 'string' && URL.canParse(registry)) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
throw new command_module_1.CommandModuleError('Option --registry must be a valid URL.');
|
|
120
131
|
})
|
|
121
132
|
// Prior to downloading we don't know the full schema and therefore we cannot be strict on the options.
|
|
122
133
|
// Possibly in the future update the logic to use the following syntax:
|
|
@@ -141,6 +152,7 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
141
152
|
}
|
|
142
153
|
async run(options) {
|
|
143
154
|
this.#projectVersionCache.clear();
|
|
155
|
+
this.#rootManifestCache = null;
|
|
144
156
|
const { logger } = this.context;
|
|
145
157
|
const { collection, skipConfirmation } = options;
|
|
146
158
|
let packageIdentifier;
|
|
@@ -210,6 +222,22 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
210
222
|
try {
|
|
211
223
|
const result = await tasks.run(taskContext);
|
|
212
224
|
(0, node_assert_1.default)(result.collectionName, 'Collection name should always be available');
|
|
225
|
+
let shouldCleanUp = false;
|
|
226
|
+
if (!result.hasSchematics && !options.dryRun) {
|
|
227
|
+
const packageJsonPath = this.resolvePackageJson(result.collectionName);
|
|
228
|
+
if (packageJsonPath && (0, node_fs_1.existsSync)(packageJsonPath)) {
|
|
229
|
+
try {
|
|
230
|
+
const localManifest = JSON.parse(await promises_1.default.readFile(packageJsonPath, 'utf-8'));
|
|
231
|
+
if (localManifest.schematics) {
|
|
232
|
+
result.hasSchematics = true;
|
|
233
|
+
if (localManifest['ng-add']?.save === false) {
|
|
234
|
+
shouldCleanUp = true;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch { }
|
|
239
|
+
}
|
|
240
|
+
}
|
|
213
241
|
// Check if the installed package has actual add actions and not just schematic support
|
|
214
242
|
if (result.hasSchematics && !options.dryRun) {
|
|
215
243
|
const workflow = this.getOrCreateWorkflowForBuilder(result.collectionName);
|
|
@@ -253,7 +281,14 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
253
281
|
logger.info("The package's `ng add` actions would be executed next.");
|
|
254
282
|
return;
|
|
255
283
|
}
|
|
256
|
-
|
|
284
|
+
const schematicExitCode = await this.executeSchematic({
|
|
285
|
+
...options,
|
|
286
|
+
collection: result.collectionName,
|
|
287
|
+
});
|
|
288
|
+
if (shouldCleanUp) {
|
|
289
|
+
await this.cleanUpTemporaryDependency(result.collectionName);
|
|
290
|
+
}
|
|
291
|
+
return schematicExitCode;
|
|
257
292
|
}
|
|
258
293
|
catch (e) {
|
|
259
294
|
if (e instanceof CommandError) {
|
|
@@ -450,39 +485,50 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
450
485
|
throw new CommandError('Command aborted');
|
|
451
486
|
}
|
|
452
487
|
}
|
|
488
|
+
async cleanUpTemporaryDependency(packageName) {
|
|
489
|
+
try {
|
|
490
|
+
this.context.logger.info(`Cleaning up temporary dependency '${packageName}'...`);
|
|
491
|
+
// 1. Remove from root package.json
|
|
492
|
+
const projectManifest = await this.getProjectManifest();
|
|
493
|
+
if (projectManifest) {
|
|
494
|
+
if (projectManifest.dependencies) {
|
|
495
|
+
delete projectManifest.dependencies[packageName];
|
|
496
|
+
}
|
|
497
|
+
if (projectManifest.devDependencies) {
|
|
498
|
+
delete projectManifest.devDependencies[packageName];
|
|
499
|
+
}
|
|
500
|
+
await promises_1.default.writeFile((0, node_path_1.join)(this.context.root, 'package.json'), JSON.stringify(projectManifest, null, 2) + '\n');
|
|
501
|
+
}
|
|
502
|
+
// 2. Silent install pass to prune files from node_modules and update the lockfile
|
|
503
|
+
await this.context.packageManager.install({ ignoreScripts: true });
|
|
504
|
+
}
|
|
505
|
+
catch (error) {
|
|
506
|
+
this.context.logger.warn(`Failed to clean up temporary dependency '${packageName}': ` +
|
|
507
|
+
`${error instanceof Error ? error.message : error}`);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
453
510
|
async installPackageTask(context, task, options) {
|
|
454
511
|
const { registry } = options;
|
|
455
512
|
const { packageIdentifier, savePackage } = context;
|
|
456
513
|
const { packageManager } = this.context;
|
|
457
514
|
// Only show if installation will actually occur
|
|
458
515
|
task.title = 'Installing package';
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
context.collectionName = (0, node_path_1.dirname)(resolvedCollectionPath);
|
|
471
|
-
}
|
|
472
|
-
else {
|
|
473
|
-
await packageManager.add(packageIdentifier.toString(), 'none', savePackage === 'devDependencies', false, true, {
|
|
474
|
-
registry,
|
|
475
|
-
});
|
|
476
|
-
}
|
|
516
|
+
if (context.savePackage === false) {
|
|
517
|
+
task.title += ' in temporary location';
|
|
518
|
+
// Temporary packages are located in a different directory
|
|
519
|
+
// Hence we need to resolve them using the temp path
|
|
520
|
+
const { workingDirectory } = await packageManager.acquireTempPackage(packageIdentifier.toString(), {
|
|
521
|
+
registry,
|
|
522
|
+
});
|
|
523
|
+
const tempRequire = (0, node_module_1.createRequire)(workingDirectory + '/');
|
|
524
|
+
(0, node_assert_1.default)(context.collectionName, 'Collection name should always be available');
|
|
525
|
+
const resolvedCollectionPath = tempRequire.resolve((0, node_path_1.join)(context.collectionName, 'package.json'));
|
|
526
|
+
context.collectionName = (0, node_path_1.dirname)(resolvedCollectionPath);
|
|
477
527
|
}
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
throw new CommandError(`Package installation failed: ${e.message}\nOutput: ${output}`);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
throw e;
|
|
528
|
+
else {
|
|
529
|
+
await packageManager.add(packageIdentifier.toString(), 'none', savePackage === 'devDependencies', false, true, {
|
|
530
|
+
registry,
|
|
531
|
+
});
|
|
486
532
|
}
|
|
487
533
|
}
|
|
488
534
|
async isProjectVersionValid(packageIdentifier) {
|
|
@@ -528,17 +574,7 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
528
574
|
return collectionName;
|
|
529
575
|
}
|
|
530
576
|
isPackageInstalled(name) {
|
|
531
|
-
|
|
532
|
-
this.rootRequire.resolve((0, node_path_1.join)(name, 'package.json'));
|
|
533
|
-
return true;
|
|
534
|
-
}
|
|
535
|
-
catch (e) {
|
|
536
|
-
(0, error_1.assertIsError)(e);
|
|
537
|
-
if (e.code !== 'MODULE_NOT_FOUND') {
|
|
538
|
-
throw e;
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
return false;
|
|
577
|
+
return !!this.resolvePackageJson(name);
|
|
542
578
|
}
|
|
543
579
|
executeSchematic(options) {
|
|
544
580
|
const { verbose, skipConfirmation, interactive, force, dryRun, registry, defaults, collection: collectionName, schematicName, ...schematicOptions } = options;
|
|
@@ -560,12 +596,7 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
560
596
|
if (cachedVersion !== undefined) {
|
|
561
597
|
return cachedVersion;
|
|
562
598
|
}
|
|
563
|
-
const
|
|
564
|
-
let installedPackagePath;
|
|
565
|
-
try {
|
|
566
|
-
installedPackagePath = this.rootRequire.resolve((0, node_path_1.join)(name, 'package.json'));
|
|
567
|
-
}
|
|
568
|
-
catch { }
|
|
599
|
+
const installedPackagePath = this.resolvePackageJson(name);
|
|
569
600
|
if (installedPackagePath) {
|
|
570
601
|
try {
|
|
571
602
|
const installedPackage = JSON.parse(await promises_1.default.readFile(installedPackagePath, 'utf-8'));
|
|
@@ -574,11 +605,7 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
574
605
|
}
|
|
575
606
|
catch { }
|
|
576
607
|
}
|
|
577
|
-
|
|
578
|
-
try {
|
|
579
|
-
projectManifest = JSON.parse(await promises_1.default.readFile((0, node_path_1.join)(root, 'package.json'), 'utf-8'));
|
|
580
|
-
}
|
|
581
|
-
catch { }
|
|
608
|
+
const projectManifest = await this.getProjectManifest();
|
|
582
609
|
if (projectManifest) {
|
|
583
610
|
const version = projectManifest.dependencies?.[name] || projectManifest.devDependencies?.[name];
|
|
584
611
|
if (version) {
|
|
@@ -589,6 +616,50 @@ class AddCommandModule extends schematics_command_module_1.SchematicsCommandModu
|
|
|
589
616
|
this.#projectVersionCache.set(name, null);
|
|
590
617
|
return null;
|
|
591
618
|
}
|
|
619
|
+
async getProjectManifest() {
|
|
620
|
+
if (this.#rootManifestCache) {
|
|
621
|
+
return this.#rootManifestCache;
|
|
622
|
+
}
|
|
623
|
+
const { root } = this.context;
|
|
624
|
+
try {
|
|
625
|
+
this.#rootManifestCache = JSON.parse(await promises_1.default.readFile((0, node_path_1.join)(root, 'package.json'), 'utf-8'));
|
|
626
|
+
return this.#rootManifestCache;
|
|
627
|
+
}
|
|
628
|
+
catch {
|
|
629
|
+
return null;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
resolvePackageJson(name) {
|
|
633
|
+
try {
|
|
634
|
+
return this.rootRequire.resolve((0, node_path_1.join)(name, 'package.json'));
|
|
635
|
+
}
|
|
636
|
+
catch (e) {
|
|
637
|
+
(0, error_1.assertIsError)(e);
|
|
638
|
+
if (e.code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') {
|
|
639
|
+
try {
|
|
640
|
+
const mainPath = this.rootRequire.resolve(name);
|
|
641
|
+
let directory = (0, node_path_1.dirname)(mainPath);
|
|
642
|
+
// Stop at the node_modules boundary or the root of the file system
|
|
643
|
+
while (directory && (0, node_path_1.basename)(directory) !== 'node_modules') {
|
|
644
|
+
const packageJsonPath = (0, node_path_1.join)(directory, 'package.json');
|
|
645
|
+
if ((0, node_fs_1.existsSync)(packageJsonPath)) {
|
|
646
|
+
return packageJsonPath;
|
|
647
|
+
}
|
|
648
|
+
const parent = (0, node_path_1.dirname)(directory);
|
|
649
|
+
if (parent === directory) {
|
|
650
|
+
break;
|
|
651
|
+
}
|
|
652
|
+
directory = parent;
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
catch (e) {
|
|
656
|
+
(0, error_1.assertIsError)(e);
|
|
657
|
+
this.context.logger.debug(`Failed to resolve package '${name}' during fallback: ${e.message}`);
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
return undefined;
|
|
662
|
+
}
|
|
592
663
|
async getPeerDependencyConflicts(manifest) {
|
|
593
664
|
if (!manifest.peerDependencies) {
|
|
594
665
|
return false;
|