nx 19.5.2 → 19.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. package/bin/nx-cloud.d.ts +2 -1
  2. package/bin/nx-cloud.js +9 -17
  3. package/package.json +13 -13
  4. package/release/changelog-renderer/index.js +5 -4
  5. package/src/command-line/connect/connect-to-nx-cloud.d.ts +2 -0
  6. package/src/command-line/connect/connect-to-nx-cloud.js +33 -6
  7. package/src/command-line/connect/view-logs.js +5 -3
  8. package/src/command-line/examples.js +4 -0
  9. package/src/command-line/init/implementation/add-nx-to-monorepo.js +1 -1
  10. package/src/command-line/init/implementation/add-nx-to-nest.js +1 -1
  11. package/src/command-line/init/implementation/add-nx-to-npm-repo.js +1 -1
  12. package/src/command-line/init/implementation/angular/index.js +1 -1
  13. package/src/command-line/init/implementation/angular/legacy-angular-versions.js +1 -1
  14. package/src/command-line/init/implementation/utils.d.ts +1 -1
  15. package/src/command-line/init/implementation/utils.js +7 -5
  16. package/src/command-line/init/init-v2.js +1 -4
  17. package/src/command-line/list/list.js +10 -14
  18. package/src/command-line/migrate/migrate.js +19 -7
  19. package/src/command-line/release/changelog.js +1 -0
  20. package/src/command-line/release/command-object.js +5 -21
  21. package/src/command-line/release/config/config.js +4 -0
  22. package/src/command-line/release/plan.js +2 -12
  23. package/src/command-line/release/utils/generate-version-plan-content.d.ts +1 -0
  24. package/src/command-line/release/utils/generate-version-plan-content.js +21 -0
  25. package/src/command-line/release/utils/shared.js +8 -5
  26. package/src/command-line/release/version.js +4 -2
  27. package/src/command-line/report/report.d.ts +1 -0
  28. package/src/command-line/report/report.js +14 -9
  29. package/src/command-line/reset/command-object.d.ts +1 -0
  30. package/src/command-line/reset/command-object.js +4 -0
  31. package/src/command-line/reset/reset.js +13 -0
  32. package/src/command-line/run/run.js +2 -14
  33. package/src/command-line/watch/watch.js +1 -1
  34. package/src/daemon/socket-utils.js +1 -1
  35. package/src/daemon/tmp-dir.d.ts +1 -1
  36. package/src/daemon/tmp-dir.js +3 -2
  37. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +6 -0
  38. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +15 -5
  39. package/src/migrations/update-16-0-0/update-nx-cloud-runner.js +2 -0
  40. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +1 -1
  41. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +3 -1
  42. package/src/native/index.d.ts +2 -0
  43. package/src/native/native-bindings.js +1 -0
  44. package/src/native/nx.wasi.cjs +35 -33
  45. package/src/native/nx.wasm32-wasi.wasm +0 -0
  46. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +3 -2
  47. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +19 -66
  48. package/src/nx-cloud/utilities/client.d.ts +10 -0
  49. package/src/nx-cloud/utilities/client.js +35 -0
  50. package/src/nx-cloud/utilities/url-shorten.d.ts +3 -3
  51. package/src/nx-cloud/utilities/url-shorten.js +18 -13
  52. package/src/project-graph/plugins/internal-api.js +4 -1
  53. package/src/tasks-runner/run-command.d.ts +4 -4
  54. package/src/tasks-runner/run-command.js +22 -17
  55. package/src/tasks-runner/task-env.js +3 -2
  56. package/src/tasks-runner/task-graph-utils.d.ts +3 -0
  57. package/src/tasks-runner/task-graph-utils.js +34 -0
  58. package/src/tasks-runner/utils.js +9 -5
  59. package/src/utils/chunkify.d.ts +10 -0
  60. package/src/utils/chunkify.js +19 -12
  61. package/src/utils/command-line-utils.d.ts +3 -0
  62. package/src/utils/command-line-utils.js +11 -7
  63. package/src/utils/git-utils.js +14 -4
  64. package/src/utils/plugins/core-plugins.d.ts +6 -3
  65. package/src/utils/plugins/core-plugins.js +107 -115
  66. package/src/utils/plugins/index.d.ts +4 -4
  67. package/src/utils/plugins/index.js +7 -8
  68. package/src/utils/plugins/installed-plugins.d.ts +2 -3
  69. package/src/utils/plugins/installed-plugins.js +4 -31
  70. package/src/utils/plugins/local-plugins.d.ts +2 -3
  71. package/src/utils/plugins/local-plugins.js +2 -29
  72. package/src/utils/plugins/output.d.ts +5 -0
  73. package/src/utils/plugins/output.js +104 -0
  74. package/src/utils/plugins/plugin-capabilities.d.ts +12 -2
  75. package/src/utils/plugins/plugin-capabilities.js +2 -87
  76. package/src/utils/plugins/community-plugins.d.ts +0 -2
  77. package/src/utils/plugins/community-plugins.js +0 -28
  78. package/src/utils/plugins/models.d.ts +0 -22
  79. package/src/utils/plugins/models.js +0 -2
  80. package/src/utils/plugins/shared.d.ts +0 -1
  81. package/src/utils/plugins/shared.js +0 -7
@@ -1,117 +1,109 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchCorePlugins = fetchCorePlugins;
4
- exports.listCorePlugins = listCorePlugins;
5
- const chalk = require("chalk");
6
- const output_1 = require("../output");
7
- function fetchCorePlugins() {
8
- return [
9
- {
10
- name: '@nx/angular',
11
- capabilities: 'executors,generators',
12
- },
13
- {
14
- name: '@nx/cypress',
15
- capabilities: 'executors,generators',
16
- },
17
- {
18
- name: '@nx/detox',
19
- capabilities: 'executors,generators',
20
- },
21
- {
22
- name: '@nx/esbuild',
23
- capabilities: 'executors,generators',
24
- },
25
- {
26
- name: '@nx/expo',
27
- capabilities: 'executors,generators',
28
- },
29
- {
30
- name: '@nx/express',
31
- capabilities: 'generators',
32
- },
33
- {
34
- name: '@nx/jest',
35
- capabilities: 'executors,generators',
36
- },
37
- {
38
- name: '@nx/js',
39
- capabilities: 'executors,generators',
40
- },
41
- {
42
- name: '@nx/eslint',
43
- capabilities: 'executors,generators',
44
- },
45
- {
46
- name: '@nx/nest',
47
- capabilities: 'generators',
48
- },
49
- {
50
- name: '@nx/next',
51
- capabilities: 'executors,generators',
52
- },
53
- {
54
- name: '@nx/node',
55
- capabilities: 'executors,generators',
56
- },
57
- {
58
- name: '@nx/nuxt',
59
- capabilities: 'generators',
60
- },
61
- {
62
- name: 'nx',
63
- capabilities: 'executors',
64
- },
65
- {
66
- name: '@nx/plugin',
67
- capabilities: 'executors,generators',
68
- },
69
- {
70
- name: '@nx/react',
71
- capabilities: 'executors,generators',
72
- },
73
- {
74
- name: '@nx/react-native',
75
- capabilities: 'executors,generators',
76
- },
77
- {
78
- name: '@nx/remix',
79
- capabilities: 'executors,generators',
80
- },
81
- {
82
- name: '@nx/rollup',
83
- capabilities: 'executors,generators',
84
- },
85
- {
86
- name: '@nx/storybook',
87
- capabilities: 'executors,generators',
88
- },
89
- {
90
- name: '@nx/vite',
91
- capabilities: 'executors,generators',
92
- },
93
- {
94
- name: '@nx/web',
95
- capabilities: 'executors,generators',
96
- },
97
- {
98
- name: '@nx/webpack',
99
- capabilities: 'executors,generators',
100
- },
101
- {
102
- name: '@nx/workspace',
103
- capabilities: 'executors,generators',
104
- },
105
- ];
106
- }
107
- function listCorePlugins(installedPlugins, corePlugins) {
108
- const alsoAvailable = corePlugins.filter((p) => !installedPlugins.has(p.name));
109
- if (alsoAvailable.length) {
110
- output_1.output.log({
111
- title: `Also available:`,
112
- bodyLines: alsoAvailable.map((p) => {
113
- return `${chalk.bold(p.name)} (${p.capabilities})`;
114
- }),
115
- });
116
- }
117
- }
3
+ exports.CORE_PLUGINS = void 0;
4
+ exports.CORE_PLUGINS = [
5
+ {
6
+ name: '@nx/angular',
7
+ capabilities: 'executors,generators',
8
+ },
9
+ {
10
+ name: '@nx/cypress',
11
+ capabilities: 'executors,generators',
12
+ },
13
+ {
14
+ name: '@nx/detox',
15
+ capabilities: 'executors,generators',
16
+ },
17
+ {
18
+ name: '@nx/esbuild',
19
+ capabilities: 'executors,generators',
20
+ },
21
+ {
22
+ name: '@nx/expo',
23
+ capabilities: 'executors,generators',
24
+ },
25
+ {
26
+ name: '@nx/express',
27
+ capabilities: 'generators',
28
+ },
29
+ {
30
+ name: '@nx/gradle',
31
+ capabilities: 'graph',
32
+ },
33
+ {
34
+ name: '@nx/jest',
35
+ capabilities: 'executors,generators',
36
+ },
37
+ {
38
+ name: '@nx/js',
39
+ capabilities: 'executors,generators',
40
+ },
41
+ {
42
+ name: '@nx/eslint',
43
+ capabilities: 'executors,generators',
44
+ },
45
+ {
46
+ name: '@nx/nest',
47
+ capabilities: 'generators',
48
+ },
49
+ {
50
+ name: '@nx/next',
51
+ capabilities: 'executors,generators',
52
+ },
53
+ {
54
+ name: '@nx/node',
55
+ capabilities: 'executors,generators',
56
+ },
57
+ {
58
+ name: '@nx/nuxt',
59
+ capabilities: 'generators',
60
+ },
61
+ {
62
+ name: 'nx',
63
+ capabilities: 'executors',
64
+ },
65
+ {
66
+ name: '@nx/plugin',
67
+ capabilities: 'executors,generators',
68
+ },
69
+ {
70
+ name: '@nx/react',
71
+ capabilities: 'executors,generators',
72
+ },
73
+ {
74
+ name: '@nx/react-native',
75
+ capabilities: 'executors,generators',
76
+ },
77
+ {
78
+ name: '@nx/remix',
79
+ capabilities: 'executors,generators',
80
+ },
81
+ {
82
+ name: '@nx/rollup',
83
+ capabilities: 'executors,generators',
84
+ },
85
+ {
86
+ name: '@nx/storybook',
87
+ capabilities: 'executors,generators',
88
+ },
89
+ {
90
+ name: '@nx/vite',
91
+ capabilities: 'executors,generators',
92
+ },
93
+ {
94
+ name: '@nx/vue',
95
+ capabilities: 'generators',
96
+ },
97
+ {
98
+ name: '@nx/web',
99
+ capabilities: 'executors,generators',
100
+ },
101
+ {
102
+ name: '@nx/webpack',
103
+ capabilities: 'executors,generators',
104
+ },
105
+ {
106
+ name: '@nx/workspace',
107
+ capabilities: 'executors,generators',
108
+ },
109
+ ];
@@ -1,4 +1,4 @@
1
- export { fetchCommunityPlugins } from './community-plugins';
2
- export { fetchCorePlugins, listCorePlugins } from './core-plugins';
3
- export { getInstalledPluginsAndCapabilities, listInstalledPlugins, } from './installed-plugins';
4
- export { getPluginCapabilities, listPluginCapabilities, } from './plugin-capabilities';
1
+ export { getInstalledPluginsAndCapabilities } from './installed-plugins';
2
+ export { getLocalWorkspacePlugins } from './local-plugins';
3
+ export { listPlugins, listAlsoAvailableCorePlugins, listPluginCapabilities, } from './output';
4
+ export { getPluginCapabilities } from './plugin-capabilities';
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listPluginCapabilities = exports.getPluginCapabilities = exports.listInstalledPlugins = exports.getInstalledPluginsAndCapabilities = exports.listCorePlugins = exports.fetchCorePlugins = exports.fetchCommunityPlugins = void 0;
4
- var community_plugins_1 = require("./community-plugins");
5
- Object.defineProperty(exports, "fetchCommunityPlugins", { enumerable: true, get: function () { return community_plugins_1.fetchCommunityPlugins; } });
6
- var core_plugins_1 = require("./core-plugins");
7
- Object.defineProperty(exports, "fetchCorePlugins", { enumerable: true, get: function () { return core_plugins_1.fetchCorePlugins; } });
8
- Object.defineProperty(exports, "listCorePlugins", { enumerable: true, get: function () { return core_plugins_1.listCorePlugins; } });
3
+ exports.getPluginCapabilities = exports.listPluginCapabilities = exports.listAlsoAvailableCorePlugins = exports.listPlugins = exports.getLocalWorkspacePlugins = exports.getInstalledPluginsAndCapabilities = void 0;
9
4
  var installed_plugins_1 = require("./installed-plugins");
10
5
  Object.defineProperty(exports, "getInstalledPluginsAndCapabilities", { enumerable: true, get: function () { return installed_plugins_1.getInstalledPluginsAndCapabilities; } });
11
- Object.defineProperty(exports, "listInstalledPlugins", { enumerable: true, get: function () { return installed_plugins_1.listInstalledPlugins; } });
6
+ var local_plugins_1 = require("./local-plugins");
7
+ Object.defineProperty(exports, "getLocalWorkspacePlugins", { enumerable: true, get: function () { return local_plugins_1.getLocalWorkspacePlugins; } });
8
+ var output_1 = require("./output");
9
+ Object.defineProperty(exports, "listPlugins", { enumerable: true, get: function () { return output_1.listPlugins; } });
10
+ Object.defineProperty(exports, "listAlsoAvailableCorePlugins", { enumerable: true, get: function () { return output_1.listAlsoAvailableCorePlugins; } });
11
+ Object.defineProperty(exports, "listPluginCapabilities", { enumerable: true, get: function () { return output_1.listPluginCapabilities; } });
12
12
  var plugin_capabilities_1 = require("./plugin-capabilities");
13
13
  Object.defineProperty(exports, "getPluginCapabilities", { enumerable: true, get: function () { return plugin_capabilities_1.getPluginCapabilities; } });
14
- Object.defineProperty(exports, "listPluginCapabilities", { enumerable: true, get: function () { return plugin_capabilities_1.listPluginCapabilities; } });
@@ -1,6 +1,5 @@
1
- import type { PluginCapabilities } from './models';
2
- import { PackageJson } from '../package-json';
3
1
  import { ProjectConfiguration } from '../../config/workspace-json-project-json';
2
+ import { PackageJson } from '../package-json';
3
+ import { PluginCapabilities } from './plugin-capabilities';
4
4
  export declare function findInstalledPlugins(): PackageJson[];
5
5
  export declare function getInstalledPluginsAndCapabilities(workspaceRoot: string, projects: Record<string, ProjectConfiguration>): Promise<Map<string, PluginCapabilities>>;
6
- export declare function listInstalledPlugins(installedPlugins: Map<string, PluginCapabilities>): void;
@@ -2,17 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findInstalledPlugins = findInstalledPlugins;
4
4
  exports.getInstalledPluginsAndCapabilities = getInstalledPluginsAndCapabilities;
5
- exports.listInstalledPlugins = listInstalledPlugins;
6
- const chalk = require("chalk");
7
- const output_1 = require("../output");
8
- const plugin_capabilities_1 = require("./plugin-capabilities");
9
- const shared_1 = require("./shared");
10
- const fileutils_1 = require("../fileutils");
11
- const package_json_1 = require("../package-json");
12
- const workspace_root_1 = require("../workspace-root");
13
5
  const path_1 = require("path");
14
6
  const nx_json_1 = require("../../config/nx-json");
7
+ const fileutils_1 = require("../fileutils");
15
8
  const installation_directory_1 = require("../installation-directory");
9
+ const package_json_1 = require("../package-json");
10
+ const workspace_root_1 = require("../workspace-root");
11
+ const plugin_capabilities_1 = require("./plugin-capabilities");
16
12
  function findInstalledPlugins() {
17
13
  const packageJsonDeps = getDependenciesFromPackageJson();
18
14
  const nxJsonDeps = getDependenciesFromNxJson();
@@ -78,26 +74,3 @@ async function getInstalledPluginsAndCapabilities(workspaceRoot, projects) {
78
74
  }
79
75
  return result;
80
76
  }
81
- function listInstalledPlugins(installedPlugins) {
82
- const bodyLines = [];
83
- for (const [, p] of installedPlugins) {
84
- const capabilities = [];
85
- if ((0, shared_1.hasElements)(p.executors)) {
86
- capabilities.push('executors');
87
- }
88
- if ((0, shared_1.hasElements)(p.generators)) {
89
- capabilities.push('generators');
90
- }
91
- if (p.projectGraphExtension) {
92
- capabilities.push('graph-extensions');
93
- }
94
- if (p.projectInference) {
95
- capabilities.push('project-inference');
96
- }
97
- bodyLines.push(`${chalk.bold(p.name)} (${capabilities.join()})`);
98
- }
99
- output_1.output.log({
100
- title: `Installed plugins:`,
101
- bodyLines: bodyLines,
102
- });
103
- }
@@ -1,5 +1,4 @@
1
- import type { PluginCapabilities } from './models';
2
- import { ProjectsConfigurations } from '../../config/workspace-json-project-json';
3
1
  import { NxJsonConfiguration } from '../../config/nx-json';
2
+ import { ProjectsConfigurations } from '../../config/workspace-json-project-json';
3
+ import { PluginCapabilities } from './plugin-capabilities';
4
4
  export declare function getLocalWorkspacePlugins(projectsConfiguration: ProjectsConfigurations, nxJson: NxJsonConfiguration): Promise<Map<string, PluginCapabilities>>;
5
- export declare function listLocalWorkspacePlugins(installedPlugins: Map<string, PluginCapabilities>): void;
@@ -1,14 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getLocalWorkspacePlugins = getLocalWorkspacePlugins;
4
- exports.listLocalWorkspacePlugins = listLocalWorkspacePlugins;
5
- const chalk = require("chalk");
6
- const output_1 = require("../output");
7
- const shared_1 = require("./shared");
8
- const fileutils_1 = require("../fileutils");
4
+ const fs_1 = require("fs");
9
5
  const path_1 = require("path");
6
+ const fileutils_1 = require("../fileutils");
10
7
  const workspace_root_1 = require("../workspace-root");
11
- const fs_1 = require("fs");
12
8
  const plugin_capabilities_1 = require("./plugin-capabilities");
13
9
  async function getLocalWorkspacePlugins(projectsConfiguration, nxJson) {
14
10
  const plugins = new Map();
@@ -32,26 +28,3 @@ async function getLocalWorkspacePlugins(projectsConfiguration, nxJson) {
32
28
  }
33
29
  return plugins;
34
30
  }
35
- function listLocalWorkspacePlugins(installedPlugins) {
36
- const bodyLines = [];
37
- for (const [, p] of installedPlugins) {
38
- const capabilities = [];
39
- if ((0, shared_1.hasElements)(p.executors)) {
40
- capabilities.push('executors');
41
- }
42
- if ((0, shared_1.hasElements)(p.generators)) {
43
- capabilities.push('generators');
44
- }
45
- if (p.projectGraphExtension) {
46
- capabilities.push('graph-extension');
47
- }
48
- if (p.projectInference) {
49
- capabilities.push('project-inference');
50
- }
51
- bodyLines.push(`${chalk.bold(p.name)} (${capabilities.join()})`);
52
- }
53
- output_1.output.log({
54
- title: `Local workspace plugins:`,
55
- bodyLines: bodyLines,
56
- });
57
- }
@@ -0,0 +1,5 @@
1
+ import { ProjectConfiguration } from '../../config/workspace-json-project-json';
2
+ import { PluginCapabilities } from './plugin-capabilities';
3
+ export declare function listPlugins(plugins: Map<string, PluginCapabilities>, title: string): void;
4
+ export declare function listAlsoAvailableCorePlugins(installedPlugins: Map<string, PluginCapabilities>): void;
5
+ export declare function listPluginCapabilities(pluginName: string, projects: Record<string, ProjectConfiguration>): Promise<void>;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listPlugins = listPlugins;
4
+ exports.listAlsoAvailableCorePlugins = listAlsoAvailableCorePlugins;
5
+ exports.listPluginCapabilities = listPluginCapabilities;
6
+ const chalk = require("chalk");
7
+ const output_1 = require("../output");
8
+ const package_manager_1 = require("../package-manager");
9
+ const workspace_root_1 = require("../workspace-root");
10
+ const core_plugins_1 = require("./core-plugins");
11
+ const plugin_capabilities_1 = require("./plugin-capabilities");
12
+ const package_json_1 = require("../package-json");
13
+ function listPlugins(plugins, title) {
14
+ package_json_1.readModulePackageJson;
15
+ const bodyLines = [];
16
+ for (const [, p] of plugins) {
17
+ const capabilities = [];
18
+ if (hasElements(p.executors)) {
19
+ capabilities.push('executors');
20
+ }
21
+ if (hasElements(p.generators)) {
22
+ capabilities.push('generators');
23
+ }
24
+ if (p.projectGraphExtension) {
25
+ capabilities.push('graph-extension');
26
+ }
27
+ if (p.projectInference) {
28
+ capabilities.push('project-inference');
29
+ }
30
+ bodyLines.push(`${chalk.bold(p.name)} (${capabilities.join()})`);
31
+ }
32
+ output_1.output.log({
33
+ title: title,
34
+ bodyLines: bodyLines,
35
+ });
36
+ }
37
+ function listAlsoAvailableCorePlugins(installedPlugins) {
38
+ const alsoAvailable = core_plugins_1.CORE_PLUGINS.filter((p) => !installedPlugins.has(p.name));
39
+ if (alsoAvailable.length) {
40
+ output_1.output.log({
41
+ title: `Also available:`,
42
+ bodyLines: alsoAvailable.map((p) => {
43
+ return `${chalk.bold(p.name)} (${p.capabilities})`;
44
+ }),
45
+ });
46
+ }
47
+ }
48
+ async function listPluginCapabilities(pluginName, projects) {
49
+ const plugin = await (0, plugin_capabilities_1.getPluginCapabilities)(workspace_root_1.workspaceRoot, pluginName, projects);
50
+ if (!plugin) {
51
+ const pmc = (0, package_manager_1.getPackageManagerCommand)();
52
+ output_1.output.note({
53
+ title: `${pluginName} is not currently installed`,
54
+ bodyLines: [
55
+ `Use "${pmc.addDev} ${pluginName}" to install the plugin.`,
56
+ `After that, use "${pmc.exec} nx g ${pluginName}:init" to add the required peer deps and initialize the plugin.`,
57
+ ],
58
+ });
59
+ return;
60
+ }
61
+ const hasBuilders = hasElements(plugin.executors);
62
+ const hasGenerators = hasElements(plugin.generators);
63
+ const hasProjectGraphExtension = !!plugin.projectGraphExtension;
64
+ const hasProjectInference = !!plugin.projectInference;
65
+ if (!hasBuilders &&
66
+ !hasGenerators &&
67
+ !hasProjectGraphExtension &&
68
+ !hasProjectInference) {
69
+ output_1.output.warn({ title: `No capabilities found in ${pluginName}` });
70
+ return;
71
+ }
72
+ const bodyLines = [];
73
+ if (hasGenerators) {
74
+ bodyLines.push(chalk.bold(chalk.green('GENERATORS')));
75
+ bodyLines.push('');
76
+ bodyLines.push(...Object.keys(plugin.generators).map((name) => `${chalk.bold(name)} : ${plugin.generators[name].description}`));
77
+ if (hasBuilders) {
78
+ bodyLines.push('');
79
+ }
80
+ }
81
+ if (hasBuilders) {
82
+ bodyLines.push(chalk.bold(chalk.green('EXECUTORS/BUILDERS')));
83
+ bodyLines.push('');
84
+ bodyLines.push(...Object.keys(plugin.executors).map((name) => {
85
+ const definition = plugin.executors[name];
86
+ return typeof definition === 'string'
87
+ ? chalk.bold(name)
88
+ : `${chalk.bold(name)} : ${definition.description}`;
89
+ }));
90
+ }
91
+ if (hasProjectGraphExtension) {
92
+ bodyLines.push(`✔️ Project Graph Extension`);
93
+ }
94
+ if (hasProjectInference) {
95
+ bodyLines.push(`✔️ Project Inference`);
96
+ }
97
+ output_1.output.log({
98
+ title: `Capabilities in ${plugin.name}:`,
99
+ bodyLines,
100
+ });
101
+ }
102
+ function hasElements(obj) {
103
+ return obj && Object.values(obj).length > 0;
104
+ }
@@ -1,4 +1,14 @@
1
+ import { ExecutorsJsonEntry, GeneratorsJsonEntry } from '../../config/misc-interfaces';
1
2
  import { ProjectConfiguration } from '../../config/workspace-json-project-json';
2
- import type { PluginCapabilities } from './models';
3
+ export interface PluginCapabilities {
4
+ name: string;
5
+ executors?: {
6
+ [name: string]: ExecutorsJsonEntry;
7
+ };
8
+ generators?: {
9
+ [name: string]: GeneratorsJsonEntry;
10
+ };
11
+ projectInference?: boolean;
12
+ projectGraphExtension?: boolean;
13
+ }
3
14
  export declare function getPluginCapabilities(workspaceRoot: string, pluginName: string, projects: Record<string, ProjectConfiguration>, includeRuntimeCapabilities?: boolean): Promise<PluginCapabilities | null>;
4
- export declare function listPluginCapabilities(pluginName: string, projects: Record<string, ProjectConfiguration>): Promise<void>;
@@ -1,17 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPluginCapabilities = getPluginCapabilities;
4
- exports.listPluginCapabilities = listPluginCapabilities;
5
- const chalk = require("chalk");
6
4
  const path_1 = require("path");
7
- const plugins_1 = require("../../project-graph/plugins");
8
- const loader_1 = require("../../project-graph/plugins/loader");
9
5
  const fileutils_1 = require("../fileutils");
10
6
  const installation_directory_1 = require("../installation-directory");
11
- const output_1 = require("../output");
12
- const package_manager_1 = require("../package-manager");
13
- const workspace_root_1 = require("../workspace-root");
14
- const shared_1 = require("./shared");
7
+ const plugins_1 = require("../../project-graph/plugins");
8
+ const loader_1 = require("../../project-graph/plugins/loader");
15
9
  function tryGetCollection(packageJsonPath, collectionFile, propName) {
16
10
  if (!collectionFile) {
17
11
  return null;
@@ -78,82 +72,3 @@ async function tryGetModule(packageJson, workspaceRoot) {
78
72
  return null;
79
73
  }
80
74
  }
81
- async function listPluginCapabilities(pluginName, projects) {
82
- const plugin = await getPluginCapabilities(workspace_root_1.workspaceRoot, pluginName, projects);
83
- if (!plugin) {
84
- const pmc = (0, package_manager_1.getPackageManagerCommand)();
85
- output_1.output.note({
86
- title: `${pluginName} is not currently installed`,
87
- bodyLines: [
88
- `Use "${pmc.addDev} ${pluginName}" to install the plugin.`,
89
- `After that, use "${pmc.exec} nx g ${pluginName}:init" to add the required peer deps and initialize the plugin.`,
90
- ],
91
- });
92
- return;
93
- }
94
- const hasBuilders = (0, shared_1.hasElements)(plugin.executors);
95
- const hasGenerators = (0, shared_1.hasElements)(plugin.generators);
96
- const hasProjectGraphExtension = !!plugin.projectGraphExtension;
97
- const hasProjectInference = !!plugin.projectInference;
98
- if (!hasBuilders &&
99
- !hasGenerators &&
100
- !hasProjectGraphExtension &&
101
- !hasProjectInference) {
102
- output_1.output.warn({ title: `No capabilities found in ${pluginName}` });
103
- return;
104
- }
105
- const bodyLines = [];
106
- if (hasGenerators) {
107
- bodyLines.push(chalk.bold(chalk.green('GENERATORS')));
108
- bodyLines.push('');
109
- bodyLines.push(...Object.keys(plugin.generators).map((name) => `${chalk.bold(name)} : ${plugin.generators[name].description}`));
110
- if (hasBuilders) {
111
- bodyLines.push('');
112
- }
113
- }
114
- if (hasBuilders) {
115
- bodyLines.push(chalk.bold(chalk.green('EXECUTORS/BUILDERS')));
116
- bodyLines.push('');
117
- bodyLines.push(...Object.keys(plugin.executors).map((name) => `${chalk.bold(name)} : ${resolveExecutorDescription(pluginName, plugin.executors[name], projects)}`));
118
- }
119
- if (hasProjectGraphExtension) {
120
- bodyLines.push(`✔️ Project Graph Extension`);
121
- }
122
- if (hasProjectInference) {
123
- bodyLines.push(`✔️ Project Inference`);
124
- }
125
- output_1.output.log({
126
- title: `Capabilities in ${plugin.name}:`,
127
- bodyLines,
128
- });
129
- }
130
- function resolveExecutorDescription(pluginName, executorJsonEntry, projects, requirePaths = (0, installation_directory_1.getNxRequirePaths)(workspace_root_1.workspaceRoot)) {
131
- try {
132
- if (typeof executorJsonEntry === 'string') {
133
- // it points to another executor, resolve it
134
- const [pkgName, executor] = executorJsonEntry.split(':');
135
- // read the package.json of the parent plugin
136
- const { path: packageJsonPath } = (0, plugins_1.readPluginPackageJson)(pluginName, projects, requirePaths);
137
- // accumulate the require paths to resolve nested packages
138
- const cummulativeRequirePaths = [
139
- ...requirePaths,
140
- (0, path_1.dirname)(packageJsonPath),
141
- ];
142
- const collection = loadExecutorsCollection(pkgName, projects, cummulativeRequirePaths);
143
- return resolveExecutorDescription(pkgName, collection[executor], projects, cummulativeRequirePaths);
144
- }
145
- return executorJsonEntry.description;
146
- }
147
- catch {
148
- return 'No description available';
149
- }
150
- }
151
- function loadExecutorsCollection(pluginName, projects, requirePaths) {
152
- const { json: packageJson, path: packageJsonPath } = (0, plugins_1.readPluginPackageJson)(pluginName, projects, requirePaths);
153
- return {
154
- ...tryGetCollection(packageJsonPath, packageJson.builders, 'builders'),
155
- ...tryGetCollection(packageJsonPath, packageJson.executors, 'builders'),
156
- ...tryGetCollection(packageJsonPath, packageJson.builders, 'executors'),
157
- ...tryGetCollection(packageJsonPath, packageJson.executors, 'executors'),
158
- };
159
- }
@@ -1,2 +0,0 @@
1
- import type { CommunityPlugin } from './models';
2
- export declare function fetchCommunityPlugins(): Promise<CommunityPlugin[]>;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchCommunityPlugins = fetchCommunityPlugins;
4
- const https_1 = require("https");
5
- const COMMUNITY_PLUGINS_JSON_URL = 'https://raw.githubusercontent.com/nrwl/nx/master/community/approved-plugins.json';
6
- async function fetchCommunityPlugins() {
7
- return new Promise((resolve, reject) => {
8
- const req = (0, https_1.get)(COMMUNITY_PLUGINS_JSON_URL, (res) => {
9
- if (res.statusCode < 200 || res.statusCode >= 300) {
10
- reject(new Error(`Request failed with status code ${res.statusCode}`));
11
- }
12
- const data = [];
13
- res.on('data', (chunk) => {
14
- data.push(chunk);
15
- });
16
- res.on('end', () => {
17
- try {
18
- resolve(JSON.parse(Buffer.concat(data).toString('utf-8')));
19
- }
20
- catch (e) {
21
- reject(e);
22
- }
23
- });
24
- });
25
- req.on('error', reject);
26
- req.end();
27
- });
28
- }
@@ -1,22 +0,0 @@
1
- import { ExecutorsJsonEntry, GeneratorsJsonEntry } from '../../config/misc-interfaces';
2
- export interface PluginCapabilities {
3
- name: string;
4
- executors?: {
5
- [name: string]: ExecutorsJsonEntry;
6
- };
7
- generators?: {
8
- [name: string]: GeneratorsJsonEntry;
9
- };
10
- projectInference?: boolean;
11
- projectGraphExtension?: boolean;
12
- }
13
- export interface CorePlugin {
14
- name: string;
15
- capabilities: 'executors' | 'generators' | 'executors,generators';
16
- link?: string;
17
- }
18
- export interface CommunityPlugin {
19
- name: string;
20
- url: string;
21
- description: string;
22
- }