nx 19.5.1 → 19.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/bin/nx-cloud.d.ts +2 -1
  2. package/bin/nx-cloud.js +9 -17
  3. package/bin/nx.js +1 -1
  4. package/package.json +12 -12
  5. package/src/adapter/ngcli-adapter.js +7 -4
  6. package/src/command-line/connect/command-object.js +6 -0
  7. package/src/command-line/connect/connect-to-nx-cloud.d.ts +1 -1
  8. package/src/command-line/connect/connect-to-nx-cloud.js +11 -4
  9. package/src/command-line/connect/view-logs.js +1 -1
  10. package/src/command-line/list/list.js +10 -14
  11. package/src/command-line/migrate/command-object.js +1 -0
  12. package/src/command-line/release/command-object.js +5 -21
  13. package/src/command-line/reset/command-object.d.ts +1 -0
  14. package/src/command-line/reset/command-object.js +4 -0
  15. package/src/command-line/reset/reset.js +13 -0
  16. package/src/command-line/run/executor-utils.js +14 -5
  17. package/src/command-line/run/run.js +2 -14
  18. package/src/command-line/watch/watch.js +1 -1
  19. package/src/core/graph/main.js +1 -1
  20. package/src/daemon/socket-utils.js +1 -1
  21. package/src/daemon/tmp-dir.d.ts +1 -1
  22. package/src/daemon/tmp-dir.js +3 -2
  23. package/src/migrations/update-16-0-0/update-nx-cloud-runner.js +2 -0
  24. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +1 -1
  25. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +3 -1
  26. package/src/native/nx.wasm32-wasi.wasm +0 -0
  27. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +4 -16
  28. package/src/nx-cloud/utilities/client.d.ts +10 -0
  29. package/src/nx-cloud/utilities/client.js +35 -0
  30. package/src/nx-cloud/utilities/get-cloud-options.d.ts +2 -0
  31. package/src/nx-cloud/utilities/get-cloud-options.js +8 -0
  32. package/src/nx-cloud/utilities/url-shorten.d.ts +2 -3
  33. package/src/nx-cloud/utilities/url-shorten.js +15 -11
  34. package/src/tasks-runner/run-command.d.ts +4 -4
  35. package/src/tasks-runner/run-command.js +22 -17
  36. package/src/tasks-runner/task-graph-utils.d.ts +3 -0
  37. package/src/tasks-runner/task-graph-utils.js +34 -0
  38. package/src/tasks-runner/utils.js +9 -6
  39. package/src/utils/ab-testing.d.ts +1 -1
  40. package/src/utils/ab-testing.js +2 -1
  41. package/src/utils/chunkify.d.ts +10 -0
  42. package/src/utils/chunkify.js +19 -12
  43. package/src/utils/command-line-utils.d.ts +3 -0
  44. package/src/utils/command-line-utils.js +11 -7
  45. package/src/utils/git-utils.js +14 -4
  46. package/src/utils/plugins/core-plugins.d.ts +6 -3
  47. package/src/utils/plugins/core-plugins.js +107 -115
  48. package/src/utils/plugins/index.d.ts +4 -4
  49. package/src/utils/plugins/index.js +7 -8
  50. package/src/utils/plugins/installed-plugins.d.ts +2 -3
  51. package/src/utils/plugins/installed-plugins.js +4 -31
  52. package/src/utils/plugins/local-plugins.d.ts +2 -3
  53. package/src/utils/plugins/local-plugins.js +2 -29
  54. package/src/utils/plugins/output.d.ts +5 -0
  55. package/src/utils/plugins/output.js +104 -0
  56. package/src/utils/plugins/plugin-capabilities.d.ts +12 -2
  57. package/src/utils/plugins/plugin-capabilities.js +2 -80
  58. package/src/utils/plugins/community-plugins.d.ts +0 -2
  59. package/src/utils/plugins/community-plugins.js +0 -28
  60. package/src/utils/plugins/models.d.ts +0 -22
  61. package/src/utils/plugins/models.js +0 -2
  62. package/src/utils/plugins/shared.d.ts +0 -1
  63. package/src/utils/plugins/shared.js +0 -7
@@ -1,3 +1,6 @@
1
- import type { CorePlugin, PluginCapabilities } from './models';
2
- export declare function fetchCorePlugins(): CorePlugin[];
3
- export declare function listCorePlugins(installedPlugins: Map<string, PluginCapabilities>, corePlugins: CorePlugin[]): void;
1
+ export interface CorePlugin {
2
+ name: string;
3
+ capabilities: 'executors' | 'generators' | 'executors,generators' | 'graph';
4
+ link?: string;
5
+ }
6
+ export declare const CORE_PLUGINS: CorePlugin[];
@@ -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,75 +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(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(executorJsonEntry, projects) {
131
- try {
132
- if (typeof executorJsonEntry === 'string') {
133
- // it points to another executor, resolve it
134
- const [pkgName, executor] = executorJsonEntry.split(':');
135
- const collection = loadExecutorsCollection(workspace_root_1.workspaceRoot, pkgName, projects);
136
- return resolveExecutorDescription(collection[executor], projects);
137
- }
138
- return executorJsonEntry.description;
139
- }
140
- catch {
141
- return 'No description available';
142
- }
143
- }
144
- function loadExecutorsCollection(workspaceRoot, pluginName, projects) {
145
- const { json: packageJson, path: packageJsonPath } = (0, plugins_1.readPluginPackageJson)(pluginName, projects, (0, installation_directory_1.getNxRequirePaths)(workspaceRoot));
146
- return {
147
- ...tryGetCollection(packageJsonPath, packageJson.builders, 'builders'),
148
- ...tryGetCollection(packageJsonPath, packageJson.executors, 'builders'),
149
- ...tryGetCollection(packageJsonPath, packageJson.builders, 'executors'),
150
- ...tryGetCollection(packageJsonPath, packageJson.executors, 'executors'),
151
- };
152
- }
@@ -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
- }