@angular/cli 14.0.0-next.4 → 14.0.0-next.7

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.
Files changed (231) hide show
  1. package/bin/ng.js +3 -5
  2. package/lib/cli/index.d.ts +1 -2
  3. package/lib/cli/index.js +16 -45
  4. package/lib/config/schema.json +30 -15
  5. package/lib/config/workspace-schema.d.ts +6 -1
  6. package/lib/init.js +10 -9
  7. package/package.json +18 -20
  8. package/{models → src/analytics}/analytics-collector.d.ts +0 -0
  9. package/{models → src/analytics}/analytics-collector.js +8 -2
  10. package/src/analytics/analytics.d.ts +47 -0
  11. package/src/analytics/analytics.js +304 -0
  12. package/src/command-builder/architect-base-command-module.d.ts +23 -0
  13. package/src/command-builder/architect-base-command-module.js +103 -0
  14. package/src/command-builder/architect-command-module.d.ts +22 -0
  15. package/src/command-builder/architect-command-module.js +108 -0
  16. package/src/command-builder/command-module.d.ts +89 -0
  17. package/src/command-builder/command-module.js +191 -0
  18. package/{utilities/package-json.js → src/command-builder/command-runner.d.ts} +2 -2
  19. package/src/command-builder/command-runner.js +152 -0
  20. package/src/command-builder/schematics-command-module.d.ts +46 -0
  21. package/src/command-builder/schematics-command-module.js +335 -0
  22. package/src/command-builder/utilities/command.d.ts +13 -0
  23. package/src/command-builder/utilities/command.js +27 -0
  24. package/src/command-builder/utilities/json-help.d.ts +36 -0
  25. package/src/command-builder/utilities/json-help.js +94 -0
  26. package/src/command-builder/utilities/json-schema.d.ts +40 -0
  27. package/{utilities → src/command-builder/utilities}/json-schema.js +20 -121
  28. package/{models → src/command-builder/utilities}/schematic-engine-host.d.ts +0 -0
  29. package/{models → src/command-builder/utilities}/schematic-engine-host.js +0 -0
  30. package/src/command-builder/utilities/schematic-workflow.d.ts +14 -0
  31. package/src/command-builder/utilities/schematic-workflow.js +68 -0
  32. package/src/commands/add/cli.d.ts +33 -0
  33. package/{commands/add-impl.js → src/commands/add/cli.js} +108 -80
  34. package/src/commands/add/long-description.md +7 -0
  35. package/src/commands/analytics/cli.d.ts +16 -0
  36. package/src/commands/analytics/cli.js +35 -0
  37. package/src/commands/analytics/info/cli.d.ts +16 -0
  38. package/src/commands/analytics/info/cli.js +26 -0
  39. package/src/commands/analytics/settings/cli.d.ts +35 -0
  40. package/src/commands/analytics/settings/cli.js +61 -0
  41. package/src/commands/build/cli.d.ts +16 -0
  42. package/src/commands/build/cli.js +23 -0
  43. package/{commands/build-long.md → src/commands/build/long-description.md} +0 -0
  44. package/src/commands/cache/clean/cli.d.ts +17 -0
  45. package/src/commands/cache/clean/cli.js +32 -0
  46. package/src/commands/cache/cli.d.ts +17 -0
  47. package/src/commands/cache/cli.js +38 -0
  48. package/src/commands/cache/info/cli.d.ts +20 -0
  49. package/src/commands/cache/info/cli.js +82 -0
  50. package/src/commands/cache/long-description.md +53 -0
  51. package/src/commands/cache/settings/cli.d.ts +27 -0
  52. package/src/commands/cache/settings/cli.js +42 -0
  53. package/src/commands/cache/utilities.d.ts +11 -0
  54. package/src/commands/cache/utilities.js +50 -0
  55. package/src/commands/config/cli.d.ts +24 -0
  56. package/{commands/config-impl.js → src/commands/config/cli.js} +102 -89
  57. package/{commands/config-long.md → src/commands/config/long-description.md} +2 -2
  58. package/src/commands/deploy/cli.d.ts +16 -0
  59. package/src/commands/deploy/cli.js +35 -0
  60. package/{commands/deploy-long.md → src/commands/deploy/long-description.md} +0 -0
  61. package/src/commands/doc/cli.d.ts +23 -0
  62. package/{commands/doc-impl.js → src/commands/doc/cli.js} +41 -12
  63. package/src/commands/e2e/cli.d.ts +17 -0
  64. package/src/commands/e2e/cli.js +34 -0
  65. package/src/commands/extract-i18n/cli.d.ts +15 -0
  66. package/src/commands/extract-i18n/cli.js +20 -0
  67. package/src/commands/generate/cli.d.ts +39 -0
  68. package/src/commands/generate/cli.js +145 -0
  69. package/src/commands/lint/cli.d.ts +16 -0
  70. package/src/commands/lint/cli.js +31 -0
  71. package/{commands/lint-long.md → src/commands/lint/long-description.md} +0 -0
  72. package/src/commands/make-this-awesome/cli.d.ts +17 -0
  73. package/{commands/easter-egg-impl.js → src/commands/make-this-awesome/cli.js} +17 -10
  74. package/src/commands/new/cli.d.ts +27 -0
  75. package/src/commands/new/cli.js +77 -0
  76. package/src/commands/run/cli.d.ts +23 -0
  77. package/src/commands/run/cli.js +59 -0
  78. package/{commands/run-long.md → src/commands/run/long-description.md} +0 -0
  79. package/src/commands/serve/cli.d.ts +16 -0
  80. package/src/commands/serve/cli.js +21 -0
  81. package/src/commands/test/cli.d.ts +16 -0
  82. package/src/commands/test/cli.js +23 -0
  83. package/{commands/test-long.md → src/commands/test/long-description.md} +0 -0
  84. package/{commands/update-impl.d.ts → src/commands/update/cli.d.ts} +26 -9
  85. package/{commands/update-impl.js → src/commands/update/cli.js} +362 -316
  86. package/{commands/update-long.md → src/commands/update/long-description.md} +0 -0
  87. package/src/commands/update/schematic/index.js +33 -20
  88. package/src/commands/version/cli.d.ts +18 -0
  89. package/{commands/version-impl.js → src/commands/version/cli.js} +56 -74
  90. package/src/typings-bazel.d.ts +14 -0
  91. package/src/typings.d.ts +1 -14
  92. package/{utilities → src/utilities}/color.d.ts +0 -0
  93. package/{utilities → src/utilities}/color.js +5 -1
  94. package/{utilities → src/utilities}/config.d.ts +2 -2
  95. package/{utilities → src/utilities}/config.js +24 -16
  96. package/src/utilities/environment-options.d.ts +12 -0
  97. package/src/utilities/environment-options.js +24 -0
  98. package/{utilities → src/utilities}/find-up.d.ts +0 -0
  99. package/{utilities → src/utilities}/find-up.js +5 -1
  100. package/{utilities → src/utilities}/json-file.d.ts +0 -0
  101. package/{utilities → src/utilities}/json-file.js +0 -0
  102. package/{utilities → src/utilities}/log-file.d.ts +0 -0
  103. package/{utilities → src/utilities}/log-file.js +0 -0
  104. package/src/utilities/package-manager.d.ts +41 -0
  105. package/src/utilities/package-manager.js +276 -0
  106. package/{utilities → src/utilities}/package-metadata.d.ts +15 -37
  107. package/{utilities → src/utilities}/package-metadata.js +15 -27
  108. package/{utilities → src/utilities}/package-tree.d.ts +2 -2
  109. package/{utilities → src/utilities}/package-tree.js +5 -1
  110. package/{utilities → src/utilities}/project.d.ts +0 -0
  111. package/{utilities → src/utilities}/project.js +5 -1
  112. package/{utilities → src/utilities}/prompt.d.ts +0 -0
  113. package/{utilities → src/utilities}/prompt.js +7 -3
  114. package/{utilities → src/utilities}/spinner.d.ts +0 -0
  115. package/{utilities → src/utilities}/spinner.js +0 -0
  116. package/{utilities → src/utilities}/tty.d.ts +0 -0
  117. package/{utilities → src/utilities}/tty.js +0 -0
  118. package/{models → src/utilities}/version.d.ts +2 -1
  119. package/{models → src/utilities}/version.js +6 -6
  120. package/bin/postinstall/analytics-prompt.js +0 -27
  121. package/bin/postinstall/script.js +0 -16
  122. package/commands/add-impl.d.ts +0 -21
  123. package/commands/add.d.ts +0 -42
  124. package/commands/add.js +0 -10
  125. package/commands/add.json +0 -54
  126. package/commands/add.md +0 -10
  127. package/commands/analytics-impl.d.ts +0 -13
  128. package/commands/analytics-impl.js +0 -80
  129. package/commands/analytics-long.md +0 -8
  130. package/commands/analytics.d.ts +0 -46
  131. package/commands/analytics.js +0 -31
  132. package/commands/analytics.json +0 -37
  133. package/commands/build-impl.d.ts +0 -14
  134. package/commands/build-impl.js +0 -21
  135. package/commands/build.d.ts +0 -30
  136. package/commands/build.js +0 -10
  137. package/commands/build.json +0 -16
  138. package/commands/config-impl.d.ts +0 -15
  139. package/commands/config.d.ts +0 -34
  140. package/commands/config.js +0 -10
  141. package/commands/config.json +0 -43
  142. package/commands/definitions.json +0 -66
  143. package/commands/deploy-impl.d.ts +0 -15
  144. package/commands/deploy-impl.js +0 -36
  145. package/commands/deploy.d.ts +0 -30
  146. package/commands/deploy.js +0 -10
  147. package/commands/deploy.json +0 -34
  148. package/commands/doc-impl.d.ts +0 -13
  149. package/commands/doc.d.ts +0 -39
  150. package/commands/doc.js +0 -14
  151. package/commands/doc.json +0 -46
  152. package/commands/e2e-impl.d.ts +0 -16
  153. package/commands/e2e-impl.js +0 -36
  154. package/commands/e2e-long.md +0 -4
  155. package/commands/e2e.d.ts +0 -29
  156. package/commands/e2e.js +0 -10
  157. package/commands/e2e.json +0 -17
  158. package/commands/easter-egg-impl.d.ts +0 -12
  159. package/commands/easter-egg.d.ts +0 -14
  160. package/commands/easter-egg.js +0 -10
  161. package/commands/easter-egg.json +0 -12
  162. package/commands/extract-i18n-impl.d.ts +0 -14
  163. package/commands/extract-i18n-impl.js +0 -21
  164. package/commands/extract-i18n.d.ts +0 -29
  165. package/commands/extract-i18n.js +0 -10
  166. package/commands/extract-i18n.json +0 -15
  167. package/commands/generate-impl.d.ts +0 -18
  168. package/commands/generate-impl.js +0 -89
  169. package/commands/generate.d.ts +0 -37
  170. package/commands/generate.js +0 -10
  171. package/commands/generate.json +0 -31
  172. package/commands/help-impl.d.ts +0 -12
  173. package/commands/help-impl.js +0 -26
  174. package/commands/help-long.md +0 -7
  175. package/commands/help.d.ts +0 -17
  176. package/commands/help.js +0 -10
  177. package/commands/help.json +0 -13
  178. package/commands/lint-impl.d.ts +0 -16
  179. package/commands/lint-impl.js +0 -69
  180. package/commands/lint.d.ts +0 -29
  181. package/commands/lint.js +0 -10
  182. package/commands/lint.json +0 -36
  183. package/commands/new-impl.d.ts +0 -16
  184. package/commands/new-impl.js +0 -37
  185. package/commands/new.d.ts +0 -41
  186. package/commands/new.js +0 -10
  187. package/commands/new.json +0 -34
  188. package/commands/new.md +0 -16
  189. package/commands/run-impl.d.ts +0 -13
  190. package/commands/run-impl.js +0 -22
  191. package/commands/run.d.ts +0 -30
  192. package/commands/run.js +0 -10
  193. package/commands/run.json +0 -36
  194. package/commands/serve-impl.d.ts +0 -15
  195. package/commands/serve-impl.js +0 -24
  196. package/commands/serve.d.ts +0 -29
  197. package/commands/serve.js +0 -10
  198. package/commands/serve.json +0 -17
  199. package/commands/test-impl.d.ts +0 -15
  200. package/commands/test-impl.js +0 -22
  201. package/commands/test.d.ts +0 -29
  202. package/commands/test.js +0 -10
  203. package/commands/test.json +0 -17
  204. package/commands/update.d.ts +0 -61
  205. package/commands/update.js +0 -10
  206. package/commands/update.json +0 -78
  207. package/commands/version-impl.d.ts +0 -17
  208. package/commands/version.d.ts +0 -17
  209. package/commands/version.js +0 -10
  210. package/commands/version.json +0 -13
  211. package/commands.json +0 -20
  212. package/models/analytics.d.ts +0 -58
  213. package/models/analytics.js +0 -358
  214. package/models/architect-command.d.ts +0 -35
  215. package/models/architect-command.js +0 -364
  216. package/models/command-runner.d.ts +0 -24
  217. package/models/command-runner.js +0 -241
  218. package/models/command.d.ts +0 -34
  219. package/models/command.js +0 -143
  220. package/models/interface.d.ts +0 -196
  221. package/models/interface.js +0 -31
  222. package/models/parser.d.ts +0 -39
  223. package/models/parser.js +0 -349
  224. package/models/schematic-command.d.ts +0 -55
  225. package/models/schematic-command.js +0 -485
  226. package/utilities/install-package.d.ts +0 -16
  227. package/utilities/install-package.js +0 -193
  228. package/utilities/json-schema.d.ts +0 -17
  229. package/utilities/package-json.d.ts +0 -249
  230. package/utilities/package-manager.d.ts +0 -13
  231. package/utilities/package-manager.js +0 -106
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.GenerateCommandModule = void 0;
11
+ const core_1 = require("@angular-devkit/core");
12
+ const command_module_1 = require("../../command-builder/command-module");
13
+ const schematics_command_module_1 = require("../../command-builder/schematics-command-module");
14
+ const command_1 = require("../../command-builder/utilities/command");
15
+ class GenerateCommandModule extends schematics_command_module_1.SchematicsCommandModule {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.command = 'generate';
19
+ this.aliases = 'g';
20
+ this.describe = 'Generates and/or modifies files based on a schematic.';
21
+ }
22
+ async builder(argv) {
23
+ let localYargs = (await super.builder(argv)).command({
24
+ command: '$0 <schematic>',
25
+ describe: 'Run the provided schematic.',
26
+ builder: (localYargs) => localYargs
27
+ .positional('schematic', {
28
+ describe: 'The [collection:schematic] to run.',
29
+ type: 'string',
30
+ demandOption: true,
31
+ })
32
+ .strict(),
33
+ handler: (options) => this.handler(options),
34
+ });
35
+ for (const [schematicName, collectionName] of await this.getSchematicsToRegister()) {
36
+ const workflow = this.getOrCreateWorkflowForBuilder(collectionName);
37
+ const collection = workflow.engine.createCollection(collectionName);
38
+ const { description: { schemaJson, aliases: schematicAliases, hidden: schematicHidden, description: schematicDescription, }, } = collection.createSchematic(schematicName, true);
39
+ if (!schemaJson) {
40
+ continue;
41
+ }
42
+ const { 'x-deprecated': xDeprecated, description = schematicDescription, aliases = schematicAliases, hidden = schematicHidden, } = schemaJson;
43
+ const options = await this.getSchematicOptions(collection, schematicName, workflow);
44
+ localYargs = localYargs.command({
45
+ command: await this.generateCommandString(collectionName, schematicName, options),
46
+ // When 'describe' is set to false, it results in a hidden command.
47
+ describe: hidden === true ? false : typeof description === 'string' ? description : '',
48
+ deprecated: xDeprecated === true || typeof xDeprecated === 'string' ? xDeprecated : false,
49
+ aliases: Array.isArray(aliases) ? aliases : undefined,
50
+ builder: (localYargs) => this.addSchemaOptionsToCommand(localYargs, options).strict(),
51
+ handler: (options) => this.handler({ ...options, schematic: `${collectionName}:${schematicName}` }),
52
+ });
53
+ }
54
+ return localYargs.demandCommand(1, command_1.demandCommandFailureMessage);
55
+ }
56
+ async run(options) {
57
+ const { dryRun, schematic, defaults, force, interactive, ...schematicOptions } = options;
58
+ const [collectionName, schematicName] = this.parseSchematicInfo(schematic);
59
+ if (!collectionName || !schematicName) {
60
+ throw new command_module_1.CommandModuleError('A collection and schematic is required during execution.');
61
+ }
62
+ return this.runSchematic({
63
+ collectionName,
64
+ schematicName,
65
+ schematicOptions,
66
+ executionOptions: {
67
+ dryRun,
68
+ defaults,
69
+ force,
70
+ interactive,
71
+ },
72
+ });
73
+ }
74
+ async getCollectionNames() {
75
+ const [collectionName] = this.parseSchematicInfo(
76
+ // positional = [generate, component] or [generate]
77
+ this.context.args.positional[1]);
78
+ return collectionName ? [collectionName] : [...(await this.getSchematicCollections())];
79
+ }
80
+ /**
81
+ * Generate a command string to be passed to the command builder.
82
+ *
83
+ * @example `component [name]` or `@schematics/angular:component [name]`.
84
+ */
85
+ async generateCommandString(collectionName, schematicName, options) {
86
+ const [collectionNameFromArgs] = this.parseSchematicInfo(
87
+ // positional = [generate, component] or [generate]
88
+ this.context.args.positional[1]);
89
+ const dasherizedSchematicName = core_1.strings.dasherize(schematicName);
90
+ const schematicCollectionsFromConfig = await this.getSchematicCollections();
91
+ const collectionNames = await this.getCollectionNames();
92
+ // Only add the collection name as part of the command when it's not a known
93
+ // schematics collection or when it has been provided via the CLI.
94
+ // Ex:`ng generate @schematics/angular:component`
95
+ const commandName = !!collectionNameFromArgs ||
96
+ !collectionNames.some((c) => schematicCollectionsFromConfig.has(c))
97
+ ? collectionName + ':' + dasherizedSchematicName
98
+ : dasherizedSchematicName;
99
+ const positionalArgs = options
100
+ .filter((o) => o.positional !== undefined)
101
+ .map((o) => {
102
+ const label = `${core_1.strings.dasherize(o.name)}${o.type === 'array' ? ' ..' : ''}`;
103
+ return o.required ? `<${label}>` : `[${label}]`;
104
+ })
105
+ .join(' ');
106
+ return `${commandName}${positionalArgs ? ' ' + positionalArgs : ''}`;
107
+ }
108
+ /**
109
+ * Get schematics that can to be registered as subcommands.
110
+ */
111
+ async *getSchematics() {
112
+ const seenNames = new Set();
113
+ for (const collectionName of await this.getCollectionNames()) {
114
+ const workflow = this.getOrCreateWorkflowForBuilder(collectionName);
115
+ const collection = workflow.engine.createCollection(collectionName);
116
+ for (const schematicName of collection.listSchematicNames(true /** includeHidden */)) {
117
+ // If a schematic with this same name is already registered skip.
118
+ if (!seenNames.has(schematicName)) {
119
+ seenNames.add(schematicName);
120
+ yield { schematicName, collectionName };
121
+ }
122
+ }
123
+ }
124
+ }
125
+ /**
126
+ * Get schematics that should to be registered as subcommands.
127
+ *
128
+ * @returns a sorted list of schematic that needs to be registered as subcommands.
129
+ */
130
+ async getSchematicsToRegister() {
131
+ const schematicsToRegister = [];
132
+ const [, schematicNameFromArgs] = this.parseSchematicInfo(
133
+ // positional = [generate, component] or [generate]
134
+ this.context.args.positional[1]);
135
+ for await (const { schematicName, collectionName } of this.getSchematics()) {
136
+ if (schematicName === schematicNameFromArgs) {
137
+ return [[schematicName, collectionName]];
138
+ }
139
+ schematicsToRegister.push([schematicName, collectionName]);
140
+ }
141
+ // Didn't find the schematic or no schematic name was provided Ex: `ng generate --help`.
142
+ return schematicsToRegister.sort(([nameA], [nameB]) => nameA.localeCompare(nameB, undefined, { sensitivity: 'accent' }));
143
+ }
144
+ }
145
+ exports.GenerateCommandModule = GenerateCommandModule;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { ArchitectCommandModule } from '../../command-builder/architect-command-module';
9
+ import { CommandModuleImplementation } from '../../command-builder/command-module';
10
+ export declare class LintCommandModule extends ArchitectCommandModule implements CommandModuleImplementation {
11
+ missingErrorTarget: string;
12
+ multiTarget: boolean;
13
+ command: string;
14
+ longDescriptionPath: string;
15
+ describe: string;
16
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.LintCommandModule = void 0;
11
+ const core_1 = require("@angular-devkit/core");
12
+ const path_1 = require("path");
13
+ const architect_command_module_1 = require("../../command-builder/architect-command-module");
14
+ class LintCommandModule extends architect_command_module_1.ArchitectCommandModule {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.missingErrorTarget = core_1.tags.stripIndents `
18
+ Cannot find "lint" target for the specified project.
19
+
20
+ You should add a package that implements linting capabilities.
21
+
22
+ For example:
23
+ ng add @angular-eslint/schematics
24
+ `;
25
+ this.multiTarget = true;
26
+ this.command = 'lint [project]';
27
+ this.longDescriptionPath = (0, path_1.join)(__dirname, 'long-description.md');
28
+ this.describe = 'Runs linting tools on Angular application code in a given project folder.';
29
+ }
30
+ }
31
+ exports.LintCommandModule = LintCommandModule;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Argv } from 'yargs';
9
+ import { CommandModule, CommandModuleImplementation } from '../../command-builder/command-module';
10
+ export declare class AwesomeCommandModule extends CommandModule implements CommandModuleImplementation {
11
+ command: string;
12
+ describe: false;
13
+ deprecated: boolean;
14
+ longDescriptionPath?: string | undefined;
15
+ builder(localYargs: Argv): Argv;
16
+ run(): void;
17
+ }
@@ -7,14 +7,21 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.AwesomeCommand = void 0;
11
- const command_1 = require("../models/command");
12
- const color_1 = require("../utilities/color");
13
- function pickOne(of) {
14
- return of[Math.floor(Math.random() * of.length)];
15
- }
16
- class AwesomeCommand extends command_1.Command {
17
- async run() {
10
+ exports.AwesomeCommandModule = void 0;
11
+ const command_module_1 = require("../../command-builder/command-module");
12
+ const color_1 = require("../../utilities/color");
13
+ class AwesomeCommandModule extends command_module_1.CommandModule {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.command = 'make-this-awesome';
17
+ this.describe = false;
18
+ this.deprecated = false;
19
+ }
20
+ builder(localYargs) {
21
+ return localYargs;
22
+ }
23
+ run() {
24
+ const pickOne = (of) => of[Math.floor(Math.random() * of.length)];
18
25
  const phrase = pickOne([
19
26
  `You're on it, there's nothing for me to do!`,
20
27
  `Let's take a look... nope, it's all good!`,
@@ -25,7 +32,7 @@ class AwesomeCommand extends command_1.Command {
25
32
  `I spy with my little eye a great developer!`,
26
33
  `Noop... already awesome.`,
27
34
  ]);
28
- this.logger.info(color_1.colors.green(phrase));
35
+ this.context.logger.info(color_1.colors.green(phrase));
29
36
  }
30
37
  }
31
- exports.AwesomeCommand = AwesomeCommand;
38
+ exports.AwesomeCommandModule = AwesomeCommandModule;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Argv } from 'yargs';
9
+ import { CommandModuleImplementation, CommandScope, Options, OtherOptions } from '../../command-builder/command-module';
10
+ import { SchematicsCommandArgs, SchematicsCommandModule } from '../../command-builder/schematics-command-module';
11
+ interface NewCommandArgs extends SchematicsCommandArgs {
12
+ collection?: string;
13
+ }
14
+ export declare class NewCommandModule extends SchematicsCommandModule implements CommandModuleImplementation<NewCommandArgs> {
15
+ private readonly schematicName;
16
+ static scope: CommandScope;
17
+ protected allowPrivateSchematics: boolean;
18
+ command: string;
19
+ aliases: string;
20
+ describe: string;
21
+ longDescriptionPath?: string | undefined;
22
+ builder(argv: Argv): Promise<Argv<NewCommandArgs>>;
23
+ run(options: Options<NewCommandArgs> & OtherOptions): Promise<number | void>;
24
+ /** Find a collection from config that has an `ng-new` schematic. */
25
+ private getCollectionFromConfig;
26
+ }
27
+ export {};
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NewCommandModule = void 0;
11
+ const command_module_1 = require("../../command-builder/command-module");
12
+ const schematics_command_module_1 = require("../../command-builder/schematics-command-module");
13
+ const version_1 = require("../../utilities/version");
14
+ class NewCommandModule extends schematics_command_module_1.SchematicsCommandModule {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.schematicName = 'ng-new';
18
+ this.allowPrivateSchematics = true;
19
+ this.command = 'new [name]';
20
+ this.aliases = 'n';
21
+ this.describe = 'Creates a new Angular workspace.';
22
+ }
23
+ async builder(argv) {
24
+ const localYargs = (await super.builder(argv)).option('collection', {
25
+ alias: 'c',
26
+ describe: 'A collection of schematics to use in generating the initial application.',
27
+ type: 'string',
28
+ });
29
+ const { options: { collectionNameFromArgs }, } = this.context.args;
30
+ const collectionName = typeof collectionNameFromArgs === 'string'
31
+ ? collectionNameFromArgs
32
+ : await this.getCollectionFromConfig();
33
+ const workflow = await this.getOrCreateWorkflowForBuilder(collectionName);
34
+ const collection = workflow.engine.createCollection(collectionName);
35
+ const options = await this.getSchematicOptions(collection, this.schematicName, workflow);
36
+ return this.addSchemaOptionsToCommand(localYargs, options);
37
+ }
38
+ async run(options) {
39
+ var _a;
40
+ // Register the version of the CLI in the registry.
41
+ const collectionName = (_a = options.collection) !== null && _a !== void 0 ? _a : (await this.getCollectionFromConfig());
42
+ const workflow = await this.getOrCreateWorkflowForExecution(collectionName, options);
43
+ workflow.registry.addSmartDefaultProvider('ng-cli-version', () => version_1.VERSION.full);
44
+ const { dryRun, force, interactive, defaults, collection, ...schematicOptions } = options;
45
+ // Compatibility check for NPM 7
46
+ if (collectionName === '@schematics/angular' &&
47
+ !schematicOptions.skipInstall &&
48
+ (schematicOptions.packageManager === undefined || schematicOptions.packageManager === 'npm')) {
49
+ this.context.packageManager.ensureCompatibility();
50
+ }
51
+ return this.runSchematic({
52
+ collectionName,
53
+ schematicName: this.schematicName,
54
+ schematicOptions,
55
+ executionOptions: {
56
+ dryRun,
57
+ force,
58
+ interactive,
59
+ defaults,
60
+ },
61
+ });
62
+ }
63
+ /** Find a collection from config that has an `ng-new` schematic. */
64
+ async getCollectionFromConfig() {
65
+ for (const collectionName of await this.getSchematicCollections()) {
66
+ const workflow = this.getOrCreateWorkflowForBuilder(collectionName);
67
+ const collection = workflow.engine.createCollection(collectionName);
68
+ const schematicsInCollection = collection.description.schematics;
69
+ if (Object.keys(schematicsInCollection).includes(this.schematicName)) {
70
+ return collectionName;
71
+ }
72
+ }
73
+ return schematics_command_module_1.DEFAULT_SCHEMATICS_COLLECTION;
74
+ }
75
+ }
76
+ exports.NewCommandModule = NewCommandModule;
77
+ NewCommandModule.scope = command_module_1.CommandScope.Out;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Target } from '@angular-devkit/architect';
9
+ import { Argv } from 'yargs';
10
+ import { ArchitectBaseCommandModule } from '../../command-builder/architect-base-command-module';
11
+ import { CommandModuleImplementation, CommandScope, Options, OtherOptions } from '../../command-builder/command-module';
12
+ export interface RunCommandArgs {
13
+ target: string;
14
+ }
15
+ export declare class RunCommandModule extends ArchitectBaseCommandModule<RunCommandArgs> implements CommandModuleImplementation<RunCommandArgs> {
16
+ static scope: CommandScope;
17
+ command: string;
18
+ describe: string;
19
+ longDescriptionPath: string;
20
+ builder(argv: Argv): Promise<Argv<RunCommandArgs>>;
21
+ run(options: Options<RunCommandArgs> & OtherOptions): Promise<number>;
22
+ protected makeTargetSpecifier(options?: Options<RunCommandArgs>): Target | undefined;
23
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RunCommandModule = void 0;
11
+ const path_1 = require("path");
12
+ const architect_base_command_module_1 = require("../../command-builder/architect-base-command-module");
13
+ const command_module_1 = require("../../command-builder/command-module");
14
+ class RunCommandModule extends architect_base_command_module_1.ArchitectBaseCommandModule {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.command = 'run <target>';
18
+ this.describe = 'Runs an Architect target with an optional custom builder configuration defined in your project.';
19
+ this.longDescriptionPath = (0, path_1.join)(__dirname, 'long-description.md');
20
+ }
21
+ async builder(argv) {
22
+ const localYargs = argv
23
+ .positional('target', {
24
+ describe: 'The Architect target to run.',
25
+ type: 'string',
26
+ demandOption: true,
27
+ })
28
+ .strict();
29
+ const target = this.makeTargetSpecifier();
30
+ if (!target) {
31
+ return localYargs;
32
+ }
33
+ const schemaOptions = await this.getArchitectTargetOptions(target);
34
+ return this.addSchemaOptionsToCommand(localYargs, schemaOptions);
35
+ }
36
+ async run(options) {
37
+ const target = this.makeTargetSpecifier(options);
38
+ const { target: _target, ...extraOptions } = options;
39
+ if (!target) {
40
+ throw new command_module_1.CommandModuleError('Cannot determine project or target.');
41
+ }
42
+ return this.runSingleTarget(target, extraOptions);
43
+ }
44
+ makeTargetSpecifier(options) {
45
+ var _a;
46
+ const architectTarget = (_a = options === null || options === void 0 ? void 0 : options.target) !== null && _a !== void 0 ? _a : this.context.args.positional[1];
47
+ if (!architectTarget) {
48
+ return undefined;
49
+ }
50
+ const [project = '', target = '', configuration] = architectTarget.split(':');
51
+ return {
52
+ project,
53
+ target,
54
+ configuration,
55
+ };
56
+ }
57
+ }
58
+ exports.RunCommandModule = RunCommandModule;
59
+ RunCommandModule.scope = command_module_1.CommandScope.In;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { ArchitectCommandModule } from '../../command-builder/architect-command-module';
9
+ import { CommandModuleImplementation } from '../../command-builder/command-module';
10
+ export declare class ServeCommandModule extends ArchitectCommandModule implements CommandModuleImplementation {
11
+ multiTarget: boolean;
12
+ command: string;
13
+ aliases: string[];
14
+ describe: string;
15
+ longDescriptionPath?: string | undefined;
16
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ServeCommandModule = void 0;
11
+ const architect_command_module_1 = require("../../command-builder/architect-command-module");
12
+ class ServeCommandModule extends architect_command_module_1.ArchitectCommandModule {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.multiTarget = false;
16
+ this.command = 'serve [project]';
17
+ this.aliases = ['s'];
18
+ this.describe = 'Builds and serves your application, rebuilding on file changes.';
19
+ }
20
+ }
21
+ exports.ServeCommandModule = ServeCommandModule;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { ArchitectCommandModule } from '../../command-builder/architect-command-module';
9
+ import { CommandModuleImplementation } from '../../command-builder/command-module';
10
+ export declare class TestCommandModule extends ArchitectCommandModule implements CommandModuleImplementation {
11
+ multiTarget: boolean;
12
+ command: string;
13
+ aliases: string[];
14
+ describe: string;
15
+ longDescriptionPath: string;
16
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.TestCommandModule = void 0;
11
+ const path_1 = require("path");
12
+ const architect_command_module_1 = require("../../command-builder/architect-command-module");
13
+ class TestCommandModule extends architect_command_module_1.ArchitectCommandModule {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.multiTarget = true;
17
+ this.command = 'test [project]';
18
+ this.aliases = ['t'];
19
+ this.describe = 'Runs unit tests in a project.';
20
+ this.longDescriptionPath = (0, path_1.join)(__dirname, 'long-description.md');
21
+ }
22
+ }
23
+ exports.TestCommandModule = TestCommandModule;
@@ -5,14 +5,28 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { Command } from '../models/command';
9
- import { Arguments } from '../models/interface';
10
- import { Schema as UpdateCommandSchema } from './update';
11
- export declare class UpdateCommand extends Command<UpdateCommandSchema> {
12
- readonly allowMissingWorkspace = true;
13
- private workflow;
14
- private packageManager;
15
- initialize(options: UpdateCommandSchema & Arguments): Promise<void>;
8
+ import { Argv } from 'yargs';
9
+ import { CommandModule, CommandScope, Options } from '../../command-builder/command-module';
10
+ interface UpdateCommandArgs {
11
+ packages?: string[];
12
+ force: boolean;
13
+ next: boolean;
14
+ 'migrate-only'?: boolean;
15
+ name?: string;
16
+ from?: string;
17
+ to?: string;
18
+ 'allow-dirty': boolean;
19
+ verbose: boolean;
20
+ 'create-commits': boolean;
21
+ }
22
+ export declare class UpdateCommandModule extends CommandModule<UpdateCommandArgs> {
23
+ static scope: CommandScope;
24
+ protected shouldReportAnalytics: boolean;
25
+ command: string;
26
+ describe: string;
27
+ longDescriptionPath: string;
28
+ builder(localYargs: Argv): Argv<UpdateCommandArgs>;
29
+ run(options: Options<UpdateCommandArgs>): Promise<number | void>;
16
30
  private executeSchematic;
17
31
  /**
18
32
  * @return Whether or not the migration was performed successfully.
@@ -23,7 +37,8 @@ export declare class UpdateCommand extends Command<UpdateCommandSchema> {
23
37
  */
24
38
  private executeMigrations;
25
39
  private executePackageMigrations;
26
- run(options: UpdateCommandSchema & Arguments): Promise<number>;
40
+ private migrateOnly;
41
+ private updatePackagesAndMigrate;
27
42
  /**
28
43
  * @return Whether or not the commit was successful.
29
44
  */
@@ -35,4 +50,6 @@ export declare class UpdateCommand extends Command<UpdateCommandSchema> {
35
50
  */
36
51
  private checkCLIVersion;
37
52
  private getCLIUpdateRunnerVersion;
53
+ private runTempBinary;
38
54
  }
55
+ export {};