nx 18.1.0-canary.20240222-5d6abe4 → 18.1.0-canary.20240224-26b266f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/migrations.json +5 -0
- package/package.json +12 -12
- package/schemas/nx-schema.json +6 -1
- package/src/adapter/angular-json.d.ts +2 -1
- package/src/adapter/angular-json.js +1 -0
- package/src/adapter/compat.d.ts +1 -1
- package/src/adapter/compat.js +1 -0
- package/src/adapter/ngcli-adapter.js +3 -3
- package/src/command-line/generate/generator-utils.js +2 -2
- package/src/command-line/init/implementation/utils.js +1 -2
- package/src/command-line/init/init-v2.js +17 -11
- package/src/command-line/migrate/migrate.js +3 -1
- package/src/command-line/run/executor-utils.js +2 -2
- package/src/config/nx-json.d.ts +8 -0
- package/src/config/schema-utils.js +2 -2
- package/src/devkit-exports.d.ts +2 -1
- package/src/devkit-internals.d.ts +1 -0
- package/src/devkit-internals.js +3 -1
- package/src/generators/utils/project-configuration.js +2 -2
- package/src/migrations/update-15-1-0/set-project-names.js +2 -2
- package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +3 -3
- package/src/migrations/update-17-2-0/move-default-base.d.ts +5 -0
- package/src/migrations/update-17-2-0/move-default-base.js +19 -0
- package/src/plugins/js/index.d.ts +1 -1
- package/src/plugins/js/lock-file/lock-file.d.ts +1 -1
- package/src/plugins/js/lock-file/npm-parser.d.ts +1 -1
- package/src/plugins/js/lock-file/pnpm-parser.d.ts +1 -1
- package/src/plugins/js/lock-file/yarn-parser.d.ts +1 -1
- package/src/plugins/js/project-graph/build-dependencies/build-dependencies.d.ts +1 -1
- package/src/plugins/js/project-graph/build-dependencies/explicit-package-json-dependencies.d.ts +1 -1
- package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.d.ts +1 -1
- package/src/plugins/package-json-workspaces/create-nodes.d.ts +2 -2
- package/src/plugins/package-json-workspaces/create-nodes.js +24 -31
- package/src/plugins/package-json-workspaces/index.d.ts +1 -0
- package/src/plugins/package-json-workspaces/index.js +2 -0
- package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.d.ts +2 -1
- package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.js +1 -0
- package/src/plugins/project-json/build-nodes/project-json.d.ts +2 -1
- package/src/plugins/project-json/build-nodes/project-json.js +1 -0
- package/src/plugins/target-defaults/target-defaults-plugin.d.ts +4 -4
- package/src/plugins/target-defaults/target-defaults-plugin.js +24 -27
- package/src/project-graph/affected/locators/project-glob-changes.js +2 -3
- package/src/project-graph/build-project-graph.js +10 -8
- package/src/project-graph/file-utils.js +3 -3
- package/src/project-graph/plugins/index.d.ts +2 -0
- package/src/project-graph/plugins/index.js +8 -0
- package/src/project-graph/plugins/internal-api.d.ts +21 -0
- package/src/project-graph/plugins/internal-api.js +84 -0
- package/src/project-graph/plugins/messaging.d.ts +89 -0
- package/src/project-graph/plugins/messaging.js +23 -0
- package/src/project-graph/plugins/plugin-pool.d.ts +4 -0
- package/src/project-graph/plugins/plugin-pool.js +188 -0
- package/src/project-graph/plugins/plugin-worker.d.ts +1 -0
- package/src/project-graph/plugins/plugin-worker.js +122 -0
- package/src/{utils/nx-plugin.d.ts → project-graph/plugins/public-api.d.ts} +6 -40
- package/src/project-graph/plugins/public-api.js +4 -0
- package/src/project-graph/plugins/worker-api.d.ts +26 -0
- package/src/project-graph/plugins/worker-api.js +177 -0
- package/src/project-graph/project-graph-builder.d.ts +1 -1
- package/src/project-graph/project-graph.js +0 -2
- package/src/project-graph/utils/normalize-project-nodes.d.ts +1 -1
- package/src/project-graph/utils/project-configuration-utils.d.ts +2 -2
- package/src/project-graph/utils/project-configuration-utils.js +27 -47
- package/src/project-graph/utils/retrieve-workspace-files.d.ts +8 -4
- package/src/project-graph/utils/retrieve-workspace-files.js +11 -14
- package/src/utils/command-line-utils.js +2 -1
- package/src/utils/json.js +3 -1
- package/src/utils/logger.d.ts +1 -0
- package/src/utils/logger.js +5 -0
- package/src/utils/nx-plugin.deprecated.d.ts +4 -2
- package/src/utils/nx-plugin.deprecated.js +4 -4
- package/src/utils/package-json.js +2 -2
- package/src/utils/plugins/plugin-capabilities.d.ts +1 -1
- package/src/utils/plugins/plugin-capabilities.js +8 -7
- package/src/utils/nx-plugin.js +0 -293
package/migrations.json
CHANGED
@@ -89,6 +89,11 @@
|
|
89
89
|
"description": "Updates .env to disabled adding plugins when generating projects in an existing Nx workspace",
|
90
90
|
"implementation": "./src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces",
|
91
91
|
"x-repair-skip": true
|
92
|
+
},
|
93
|
+
"move-default-base-to-nx-json-root": {
|
94
|
+
"version": "18.1.0-beta.3",
|
95
|
+
"description": "Moves affected.defaultBase to defaultBase in `nx.json`",
|
96
|
+
"implementation": "./src/migrations/update-17-2-0/move-default-base"
|
92
97
|
}
|
93
98
|
}
|
94
99
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "nx",
|
3
|
-
"version": "18.1.0-canary.
|
3
|
+
"version": "18.1.0-canary.20240224-26b266f",
|
4
4
|
"private": false,
|
5
5
|
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
|
6
6
|
"repository": {
|
@@ -66,7 +66,7 @@
|
|
66
66
|
"yargs-parser": "21.1.1",
|
67
67
|
"node-machine-id": "1.1.12",
|
68
68
|
"ora": "5.3.0",
|
69
|
-
"@nrwl/tao": "18.1.0-canary.
|
69
|
+
"@nrwl/tao": "18.1.0-canary.20240224-26b266f"
|
70
70
|
},
|
71
71
|
"peerDependencies": {
|
72
72
|
"@swc-node/register": "^1.8.0",
|
@@ -81,16 +81,16 @@
|
|
81
81
|
}
|
82
82
|
},
|
83
83
|
"optionalDependencies": {
|
84
|
-
"@nx/nx-darwin-x64": "18.1.0-canary.
|
85
|
-
"@nx/nx-darwin-arm64": "18.1.0-canary.
|
86
|
-
"@nx/nx-linux-x64-gnu": "18.1.0-canary.
|
87
|
-
"@nx/nx-linux-x64-musl": "18.1.0-canary.
|
88
|
-
"@nx/nx-win32-x64-msvc": "18.1.0-canary.
|
89
|
-
"@nx/nx-linux-arm64-gnu": "18.1.0-canary.
|
90
|
-
"@nx/nx-linux-arm64-musl": "18.1.0-canary.
|
91
|
-
"@nx/nx-linux-arm-gnueabihf": "18.1.0-canary.
|
92
|
-
"@nx/nx-win32-arm64-msvc": "18.1.0-canary.
|
93
|
-
"@nx/nx-freebsd-x64": "18.1.0-canary.
|
84
|
+
"@nx/nx-darwin-x64": "18.1.0-canary.20240224-26b266f",
|
85
|
+
"@nx/nx-darwin-arm64": "18.1.0-canary.20240224-26b266f",
|
86
|
+
"@nx/nx-linux-x64-gnu": "18.1.0-canary.20240224-26b266f",
|
87
|
+
"@nx/nx-linux-x64-musl": "18.1.0-canary.20240224-26b266f",
|
88
|
+
"@nx/nx-win32-x64-msvc": "18.1.0-canary.20240224-26b266f",
|
89
|
+
"@nx/nx-linux-arm64-gnu": "18.1.0-canary.20240224-26b266f",
|
90
|
+
"@nx/nx-linux-arm64-musl": "18.1.0-canary.20240224-26b266f",
|
91
|
+
"@nx/nx-linux-arm-gnueabihf": "18.1.0-canary.20240224-26b266f",
|
92
|
+
"@nx/nx-win32-arm64-msvc": "18.1.0-canary.20240224-26b266f",
|
93
|
+
"@nx/nx-freebsd-x64": "18.1.0-canary.20240224-26b266f"
|
94
94
|
},
|
95
95
|
"nx-migrations": {
|
96
96
|
"migrations": "./migrations.json",
|
package/schemas/nx-schema.json
CHANGED
@@ -18,7 +18,12 @@
|
|
18
18
|
"description": "Default based branch used by affected commands."
|
19
19
|
}
|
20
20
|
},
|
21
|
-
"additionalProperties": false
|
21
|
+
"additionalProperties": false,
|
22
|
+
"deprecated": "Use `defaultBase` instead. Support for setting `defaultBase` in `affected` will be removed in Nx 19."
|
23
|
+
},
|
24
|
+
"defaultBase": {
|
25
|
+
"type": "string",
|
26
|
+
"description": "Default --base used by affected logic."
|
22
27
|
},
|
23
28
|
"tasksRunnerOptions": {
|
24
29
|
"type": "object",
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { ProjectsConfigurations } from '../config/workspace-json-project-json';
|
2
|
-
import { NxPluginV2 } from '../
|
2
|
+
import { NxPluginV2 } from '../project-graph/plugins';
|
3
3
|
export declare const NX_ANGULAR_JSON_PLUGIN_NAME = "nx-angular-json-plugin";
|
4
4
|
export declare const NxAngularJsonPlugin: NxPluginV2;
|
5
|
+
export default NxAngularJsonPlugin;
|
5
6
|
export declare function shouldMergeAngularProjects(root: string, includeProjectsFromAngularJson: boolean): boolean;
|
6
7
|
export declare function isAngularPluginInstalled(): boolean;
|
7
8
|
export declare function toNewFormat(w: any): ProjectsConfigurations;
|
@@ -14,6 +14,7 @@ exports.NxAngularJsonPlugin = {
|
|
14
14
|
}),
|
15
15
|
],
|
16
16
|
};
|
17
|
+
exports.default = exports.NxAngularJsonPlugin;
|
17
18
|
function shouldMergeAngularProjects(root, includeProjectsFromAngularJson) {
|
18
19
|
if ((0, fs_1.existsSync)(path.join(root, 'angular.json')) &&
|
19
20
|
// Include projects from angular.json if explicitly required.
|
package/src/adapter/compat.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
export declare const allowedProjectExtensions: readonly ["tags", "implicitDependencies", "configFilePath", "$schema", "generators", "namedInputs", "name", "files", "root", "sourceRoot", "projectType", "release", "includedScripts"];
|
2
|
-
export declare const allowedWorkspaceExtensions: readonly ["implicitDependencies", "affected", "tasksRunnerOptions", "workspaceLayout", "plugins", "targetDefaults", "files", "generators", "namedInputs", "extends", "cli", "pluginsConfig", "defaultProject", "installation", "release", "nxCloudAccessToken", "nxCloudUrl", "nxCloudEncryptionKey", "parallel", "cacheDirectory", "useDaemonProcess"];
|
2
|
+
export declare const allowedWorkspaceExtensions: readonly ["implicitDependencies", "affected", "defaultBase", "tasksRunnerOptions", "workspaceLayout", "plugins", "targetDefaults", "files", "generators", "namedInputs", "extends", "cli", "pluginsConfig", "defaultProject", "installation", "release", "nxCloudAccessToken", "nxCloudUrl", "nxCloudEncryptionKey", "parallel", "cacheDirectory", "useDaemonProcess"];
|
package/src/adapter/compat.js
CHANGED
@@ -19,7 +19,7 @@ const package_json_1 = require("../utils/package-json");
|
|
19
19
|
const package_manager_1 = require("../utils/package-manager");
|
20
20
|
const angular_json_1 = require("./angular-json");
|
21
21
|
const executor_utils_1 = require("../command-line/run/executor-utils");
|
22
|
-
const
|
22
|
+
const plugins_1 = require("../project-graph/plugins");
|
23
23
|
const schema_utils_1 = require("../config/schema-utils");
|
24
24
|
async function createBuilderContext(builderInfo, context) {
|
25
25
|
require('./compat');
|
@@ -146,7 +146,7 @@ function createNodeModulesEngineHost(resolvePaths, projects) {
|
|
146
146
|
collectionFilePath = require.resolve(name, { paths });
|
147
147
|
}
|
148
148
|
else {
|
149
|
-
const { json: { generators, schematics }, path: packageJsonPath, } = (0,
|
149
|
+
const { json: { generators, schematics }, path: packageJsonPath, } = (0, plugins_1.readPluginPackageJson)(name, projects, paths);
|
150
150
|
if (!schematics && !generators) {
|
151
151
|
throw new Error(`The "${name}" package does not support Nx generators or Angular Devkit schematics.`);
|
152
152
|
}
|
@@ -802,7 +802,7 @@ async function getWrappedWorkspaceNodeModulesArchitectHost(workspace, root, proj
|
|
802
802
|
};
|
803
803
|
}
|
804
804
|
readExecutorsJson(nodeModule, builder) {
|
805
|
-
const { json: packageJson, path: packageJsonPath } = (0,
|
805
|
+
const { json: packageJson, path: packageJsonPath } = (0, plugins_1.readPluginPackageJson)(nodeModule, this.projects, this.root ? [this.root, __dirname] : [__dirname]);
|
806
806
|
const executorsFile = packageJson.executors ?? packageJson.builders;
|
807
807
|
if (!executorsFile) {
|
808
808
|
throw new Error(`The "${nodeModule}" package does not support Nx executors or Angular Devkit Builders.`);
|
@@ -4,7 +4,7 @@ exports.readGeneratorsJson = exports.getGeneratorInformation = void 0;
|
|
4
4
|
const path_1 = require("path");
|
5
5
|
const schema_utils_1 = require("../../config/schema-utils");
|
6
6
|
const fileutils_1 = require("../../utils/fileutils");
|
7
|
-
const
|
7
|
+
const plugins_1 = require("../../project-graph/plugins");
|
8
8
|
function getGeneratorInformation(collectionName, generatorName, root, projects) {
|
9
9
|
try {
|
10
10
|
const { generatorsFilePath, generatorsJson, resolvedCollectionName, normalizedGeneratorName, } = readGeneratorsJson(collectionName, generatorName, root, projects);
|
@@ -48,7 +48,7 @@ function readGeneratorsJson(collectionName, generator, root, projects) {
|
|
48
48
|
});
|
49
49
|
}
|
50
50
|
else {
|
51
|
-
const { json: packageJson, path: packageJsonPath } = (0,
|
51
|
+
const { json: packageJson, path: packageJsonPath } = (0, plugins_1.readPluginPackageJson)(collectionName, projects, root ? [root, __dirname] : [__dirname]);
|
52
52
|
const generatorsFile = packageJson.generators ?? packageJson.schematics;
|
53
53
|
if (!generatorsFile) {
|
54
54
|
throw new Error(`The "${collectionName}" package does not support Nx generators.`);
|
@@ -41,8 +41,7 @@ function createNxJsonFile(repoRoot, topologicalTargets, cacheableOperations, scr
|
|
41
41
|
if (Object.keys(nxJson.targetDefaults).length === 0) {
|
42
42
|
delete nxJson.targetDefaults;
|
43
43
|
}
|
44
|
-
nxJson.
|
45
|
-
nxJson.affected.defaultBase ??= deduceDefaultBase();
|
44
|
+
nxJson.defaultBase ??= deduceDefaultBase();
|
46
45
|
(0, fileutils_1.writeJsonFile)(nxJsonPath, nxJson);
|
47
46
|
}
|
48
47
|
exports.createNxJsonFile = createNxJsonFile;
|
@@ -17,6 +17,7 @@ const workspace_context_1 = require("../../utils/workspace-context");
|
|
17
17
|
const connect_to_nx_cloud_1 = require("../connect/connect-to-nx-cloud");
|
18
18
|
const add_nx_to_npm_repo_1 = require("./implementation/add-nx-to-npm-repo");
|
19
19
|
const add_nx_to_monorepo_1 = require("./implementation/add-nx-to-monorepo");
|
20
|
+
const path_1 = require("path");
|
20
21
|
async function initHandler(options) {
|
21
22
|
const version = process.env.NX_VERSION ?? ((0, semver_1.prerelease)(versions_1.nxVersion) ? 'next' : 'latest');
|
22
23
|
if (process.env.NX_VERSION) {
|
@@ -42,6 +43,7 @@ async function initHandler(options) {
|
|
42
43
|
});
|
43
44
|
return;
|
44
45
|
}
|
46
|
+
output_1.output.log({ title: '🧐 Checking dependencies' });
|
45
47
|
const detectPluginsResponse = await detectPlugins();
|
46
48
|
if (!detectPluginsResponse?.plugins.length) {
|
47
49
|
// If no plugins are detected/chosen, guide users to setup
|
@@ -63,19 +65,23 @@ async function initHandler(options) {
|
|
63
65
|
const pmc = (0, package_manager_1.getPackageManagerCommand)();
|
64
66
|
(0, utils_1.createNxJsonFile)(repoRoot, [], [], {});
|
65
67
|
(0, utils_1.updateGitIgnore)(repoRoot);
|
66
|
-
(0, utils_1.addDepsToPackageJson)(repoRoot, detectPluginsResponse
|
68
|
+
(0, utils_1.addDepsToPackageJson)(repoRoot, detectPluginsResponse.plugins);
|
67
69
|
output_1.output.log({ title: '📦 Installing Nx' });
|
68
70
|
(0, utils_1.runInstall)(repoRoot, pmc);
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
71
|
+
output_1.output.log({ title: '🔨 Configuring plugins' });
|
72
|
+
for (const plugin of detectPluginsResponse.plugins) {
|
73
|
+
(0, child_process_2.execSync)(`${pmc.exec} nx g ${plugin}:init --keepExistingVersions ${detectPluginsResponse.updatePackageScripts
|
74
|
+
? '--updatePackageScripts'
|
75
|
+
: ''} --no-interactive`, {
|
76
|
+
stdio: [0, 1, 2],
|
77
|
+
cwd: repoRoot,
|
78
|
+
});
|
79
|
+
}
|
80
|
+
if (!detectPluginsResponse.updatePackageScripts) {
|
81
|
+
const rootPackageJsonPath = (0, path_1.join)(repoRoot, 'package.json');
|
82
|
+
const json = (0, fileutils_1.readJsonFile)(rootPackageJsonPath);
|
83
|
+
json.nx = {};
|
84
|
+
(0, fileutils_1.writeJsonFile)(rootPackageJsonPath, json);
|
79
85
|
}
|
80
86
|
if (useNxCloud) {
|
81
87
|
output_1.output.log({ title: '🛠️ Setting up Nx Cloud' });
|
@@ -872,7 +872,9 @@ async function executeMigrations(root, migrations, isVerbose, shouldCreateCommit
|
|
872
872
|
if (b.name === '15-7-0-split-configuration-into-project-json-files') {
|
873
873
|
return 1;
|
874
874
|
}
|
875
|
-
return (0, semver_1.lt)(a.version, b.version)
|
875
|
+
return (0, semver_1.lt)(normalizeVersion(a.version), normalizeVersion(b.version))
|
876
|
+
? -1
|
877
|
+
: 1;
|
876
878
|
});
|
877
879
|
for (const m of sortedMigrations) {
|
878
880
|
try {
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getExecutorInformation = exports.normalizeExecutorSchema = void 0;
|
4
4
|
const path_1 = require("path");
|
5
|
-
const
|
5
|
+
const plugins_1 = require("../../project-graph/plugins");
|
6
6
|
const fileutils_1 = require("../../utils/fileutils");
|
7
7
|
const schema_utils_1 = require("../../config/schema-utils");
|
8
8
|
const installation_directory_1 = require("../../utils/installation-directory");
|
@@ -55,7 +55,7 @@ function getExecutorInformation(nodeModule, executor, root, projects) {
|
|
55
55
|
}
|
56
56
|
exports.getExecutorInformation = getExecutorInformation;
|
57
57
|
function readExecutorJson(nodeModule, executor, root, projects) {
|
58
|
-
const { json: packageJson, path: packageJsonPath } = (0,
|
58
|
+
const { json: packageJson, path: packageJsonPath } = (0, plugins_1.readPluginPackageJson)(nodeModule, projects, root
|
59
59
|
? [root, __dirname, process.cwd(), ...(0, installation_directory_1.getNxRequirePaths)()]
|
60
60
|
: [__dirname, process.cwd(), ...(0, installation_directory_1.getNxRequirePaths)()]);
|
61
61
|
const executorsFile = packageJson.executors ?? packageJson.builders;
|
package/src/config/nx-json.d.ts
CHANGED
@@ -7,6 +7,9 @@ export type ImplicitDependencyEntry<T = '*' | string[]> = {
|
|
7
7
|
export interface ImplicitJsonSubsetDependency<T = '*' | string[]> {
|
8
8
|
[key: string]: T | ImplicitJsonSubsetDependency<T>;
|
9
9
|
}
|
10
|
+
/**
|
11
|
+
* @deprecated Use {@link NxJsonConfiguration#defaultBase } instead
|
12
|
+
*/
|
10
13
|
export interface NxAffectedConfig {
|
11
14
|
/**
|
12
15
|
* Default based branch used by affected commands.
|
@@ -248,8 +251,13 @@ export interface NxJsonConfiguration<T = '*' | string[]> {
|
|
248
251
|
targetDefaults?: TargetDefaults;
|
249
252
|
/**
|
250
253
|
* Default options for `nx affected`
|
254
|
+
* @deprecated use {@link defaultBase} instead. For more information see https://nx.dev/deprecated/affected-config#affected-config
|
251
255
|
*/
|
252
256
|
affected?: NxAffectedConfig;
|
257
|
+
/**
|
258
|
+
* Default value for --base used by `nx affected` and `nx format`.
|
259
|
+
*/
|
260
|
+
defaultBase?: string;
|
253
261
|
/**
|
254
262
|
* Where new apps + libs should be placed
|
255
263
|
*/
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveSchema = exports.resolveImplementation = exports.getImplementationFactory = void 0;
|
4
4
|
const fs_1 = require("fs");
|
5
5
|
const path_1 = require("path");
|
6
|
-
const
|
6
|
+
const plugins_1 = require("../project-graph/plugins");
|
7
7
|
/**
|
8
8
|
* This function is used to get the implementation factory of an executor or generator.
|
9
9
|
* @param implementation path to the implementation
|
@@ -15,7 +15,7 @@ function getImplementationFactory(implementation, directory) {
|
|
15
15
|
return () => {
|
16
16
|
const modulePath = resolveImplementation(implementationModulePath, directory);
|
17
17
|
if ((0, path_1.extname)(modulePath) === '.ts') {
|
18
|
-
(0,
|
18
|
+
(0, plugins_1.registerPluginTSTranspiler)();
|
19
19
|
}
|
20
20
|
const module = require(modulePath);
|
21
21
|
return implementationExportName
|
package/src/devkit-exports.d.ts
CHANGED
@@ -19,7 +19,8 @@ export type { Generator, GeneratorCallback, Executor, ExecutorContext, TaskGraph
|
|
19
19
|
*/
|
20
20
|
export { Workspaces } from './config/workspaces';
|
21
21
|
export { workspaceLayout } from './config/configuration';
|
22
|
-
export type { NxPlugin,
|
22
|
+
export type { NxPlugin, NxPluginV2, CreateNodes, CreateNodesFunction, CreateNodesResult, CreateNodesContext, CreateDependencies, CreateDependenciesContext, } from './project-graph/plugins';
|
23
|
+
export type { NxPluginV1, ProjectTargetConfigurator, } from './utils/nx-plugin.deprecated';
|
23
24
|
/**
|
24
25
|
* @category Workspace
|
25
26
|
*/
|
@@ -18,3 +18,4 @@ export { hashObject } from './hasher/file-hasher';
|
|
18
18
|
export { hashWithWorkspaceContext } from './utils/workspace-context';
|
19
19
|
export { createProjectRootMappingsFromProjectConfigurations, findProjectForPath, } from './project-graph/utils/find-project-for-path';
|
20
20
|
export { registerTsProject } from './plugins/js/utils/register';
|
21
|
+
export { shutdownPluginWorkers } from './project-graph/plugins/plugin-pool';
|
package/src/devkit-internals.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.registerTsProject = exports.findProjectForPath = exports.createProjectRootMappingsFromProjectConfigurations = exports.hashWithWorkspaceContext = exports.hashObject = exports.splitByColons = exports.readModulePackageJson = exports.stripIndent = exports.sortObjectByKeys = exports.combineOptionsForExecutor = exports.splitTarget = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.getExecutorInformation = exports.createTempNpmDirectory = void 0;
|
3
|
+
exports.shutdownPluginWorkers = exports.registerTsProject = exports.findProjectForPath = exports.createProjectRootMappingsFromProjectConfigurations = exports.hashWithWorkspaceContext = exports.hashObject = exports.splitByColons = exports.readModulePackageJson = exports.stripIndent = exports.sortObjectByKeys = exports.combineOptionsForExecutor = exports.splitTarget = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.getExecutorInformation = exports.createTempNpmDirectory = void 0;
|
4
4
|
/**
|
5
5
|
* Note to developers: STOP! These exports are available via requireNx in @nx/devkit.
|
6
6
|
*
|
@@ -37,3 +37,5 @@ Object.defineProperty(exports, "createProjectRootMappingsFromProjectConfiguratio
|
|
37
37
|
Object.defineProperty(exports, "findProjectForPath", { enumerable: true, get: function () { return find_project_for_path_1.findProjectForPath; } });
|
38
38
|
var register_1 = require("./plugins/js/utils/register");
|
39
39
|
Object.defineProperty(exports, "registerTsProject", { enumerable: true, get: function () { return register_1.registerTsProject; } });
|
40
|
+
var plugin_pool_1 = require("./project-graph/plugins/plugin-pool");
|
41
|
+
Object.defineProperty(exports, "shutdownPluginWorkers", { enumerable: true, get: function () { return plugin_pool_1.shutdownPluginWorkers; } });
|
@@ -134,8 +134,8 @@ function readAndCombineAllProjectConfigurations(tree) {
|
|
134
134
|
...(0, package_json_workspaces_1.getGlobPatternsFromPackageManagerWorkspaces)(tree.root, (p) => (0, json_1.readJson)(tree, p)),
|
135
135
|
];
|
136
136
|
const projectGlobPatterns = (0, retrieve_workspace_files_1.configurationGlobs)([
|
137
|
-
|
138
|
-
{
|
137
|
+
project_json_1.ProjectJsonProjectsPlugin,
|
138
|
+
{ createNodes: package_json_workspaces_1.createNodes },
|
139
139
|
]);
|
140
140
|
const globbedFiles = (0, workspace_context_1.globWithWorkspaceContext)(tree.root, projectGlobPatterns);
|
141
141
|
const createdFiles = findCreatedProjectFiles(tree, patterns);
|
@@ -5,10 +5,10 @@ const path_1 = require("path");
|
|
5
5
|
const json_1 = require("../../generators/utils/json");
|
6
6
|
const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
|
7
7
|
const retrieve_workspace_files_1 = require("../../project-graph/utils/retrieve-workspace-files");
|
8
|
-
const
|
8
|
+
const internal_api_1 = require("../../project-graph/plugins/internal-api");
|
9
9
|
async function default_1(tree) {
|
10
10
|
const nxJson = (0, nx_json_1.readNxJson)(tree);
|
11
|
-
const projectFiles = await (0, retrieve_workspace_files_1.retrieveProjectConfigurationPaths)(tree.root, await (0,
|
11
|
+
const projectFiles = await (0, retrieve_workspace_files_1.retrieveProjectConfigurationPaths)(tree.root, await (0, internal_api_1.loadNxPlugins)(nxJson?.plugins));
|
12
12
|
const projectJsons = projectFiles.filter((f) => f.endsWith('project.json'));
|
13
13
|
for (let f of projectJsons) {
|
14
14
|
const projectJson = (0, json_1.readJson)(tree, f);
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
|
4
4
|
const nx_json_1 = require("../../generators/utils/nx-json");
|
5
5
|
const json_1 = require("../../generators/utils/json");
|
6
|
-
const
|
6
|
+
const output_1 = require("../../utils/output");
|
7
7
|
const path_1 = require("../../utils/path");
|
8
8
|
async function update(tree) {
|
9
9
|
if (!tree.exists('nx.json')) {
|
@@ -37,7 +37,7 @@ function warnNpmScopeHasChanged(tree, nxJson) {
|
|
37
37
|
}
|
38
38
|
const packageJsonName = (0, json_1.readJson)(tree, 'package.json').name;
|
39
39
|
if (newScope) {
|
40
|
-
|
40
|
+
output_1.output.warn({
|
41
41
|
title: 'npmScope has been removed from nx.json',
|
42
42
|
bodyLines: [
|
43
43
|
'This will now be read from package.json',
|
@@ -50,7 +50,7 @@ function warnNpmScopeHasChanged(tree, nxJson) {
|
|
50
50
|
}
|
51
51
|
else {
|
52
52
|
// There is no scope in package.json
|
53
|
-
|
53
|
+
output_1.output.warn({
|
54
54
|
title: 'npmScope has been removed from nx.json',
|
55
55
|
bodyLines: [
|
56
56
|
'This will now be read from package.json',
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
4
|
+
const nx_json_1 = require("../../generators/utils/nx-json");
|
5
|
+
/**
|
6
|
+
* Updates existing workspaces to move nx.json's affected.defaultBase to nx.json's base.
|
7
|
+
*/
|
8
|
+
function update(host) {
|
9
|
+
const nxJson = (0, nx_json_1.readNxJson)(host);
|
10
|
+
if (nxJson?.affected?.defaultBase) {
|
11
|
+
nxJson.defaultBase = nxJson.affected.defaultBase;
|
12
|
+
delete nxJson.affected.defaultBase;
|
13
|
+
if (Object.keys(nxJson.affected).length === 0) {
|
14
|
+
delete nxJson.affected;
|
15
|
+
}
|
16
|
+
(0, nx_json_1.updateNxJson)(host, nxJson);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
exports.default = update;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { CreateDependencies, CreateNodes } from '../../
|
1
|
+
import { CreateDependencies, CreateNodes } from '../../project-graph/plugins';
|
2
2
|
export declare const name = "nx/js/dependencies-and-lockfile";
|
3
3
|
export declare const createNodes: CreateNodes;
|
4
4
|
export declare const createDependencies: CreateDependencies;
|
@@ -6,7 +6,7 @@ import { PackageManager } from '../../../utils/package-manager';
|
|
6
6
|
import { ProjectGraph, ProjectGraphExternalNode } from '../../../config/project-graph';
|
7
7
|
import { RawProjectGraphDependency } from '../../../project-graph/project-graph-builder';
|
8
8
|
import { PackageJson } from '../../../utils/package-json';
|
9
|
-
import { CreateDependenciesContext } from '../../../
|
9
|
+
import { CreateDependenciesContext } from '../../../project-graph/plugins';
|
10
10
|
export declare const LOCKFILES: string[];
|
11
11
|
/**
|
12
12
|
* Parses lock file and maps dependencies and metadata to {@link LockFileGraph}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { NormalizedPackageJson } from './utils/package-json';
|
2
2
|
import { RawProjectGraphDependency } from '../../../project-graph/project-graph-builder';
|
3
3
|
import { ProjectGraph, ProjectGraphExternalNode } from '../../../config/project-graph';
|
4
|
-
import { CreateDependenciesContext } from '../../../
|
4
|
+
import { CreateDependenciesContext } from '../../../project-graph/plugins';
|
5
5
|
export declare function getNpmLockfileNodes(lockFileContent: string, lockFileHash: string): Record<string, ProjectGraphExternalNode>;
|
6
6
|
export declare function getNpmLockfileDependencies(lockFileContent: string, lockFileHash: string, ctx: CreateDependenciesContext): RawProjectGraphDependency[];
|
7
7
|
export declare function stringifyNpmLockfile(graph: ProjectGraph, rootLockFileContent: string, packageJson: NormalizedPackageJson): string;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { NormalizedPackageJson } from './utils/package-json';
|
2
2
|
import { RawProjectGraphDependency } from '../../../project-graph/project-graph-builder';
|
3
3
|
import { ProjectGraph, ProjectGraphExternalNode } from '../../../config/project-graph';
|
4
|
-
import { CreateDependenciesContext } from '../../../
|
4
|
+
import { CreateDependenciesContext } from '../../../project-graph/plugins';
|
5
5
|
export declare function getPnpmLockfileNodes(lockFileContent: string, lockFileHash: string): Record<string, ProjectGraphExternalNode>;
|
6
6
|
export declare function getPnpmLockfileDependencies(lockFileContent: string, lockFileHash: string, ctx: CreateDependenciesContext): RawProjectGraphDependency[];
|
7
7
|
export declare function stringifyPnpmLockfile(graph: ProjectGraph, rootLockFileContent: string, packageJson: NormalizedPackageJson): string;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { NormalizedPackageJson } from './utils/package-json';
|
2
2
|
import { RawProjectGraphDependency } from '../../../project-graph/project-graph-builder';
|
3
3
|
import { ProjectGraph, ProjectGraphExternalNode } from '../../../config/project-graph';
|
4
|
-
import { CreateDependenciesContext } from '../../../
|
4
|
+
import { CreateDependenciesContext } from '../../../project-graph/plugins';
|
5
5
|
export declare function getYarnLockfileNodes(lockFileContent: string, lockFileHash: string, packageJson: NormalizedPackageJson): Record<string, ProjectGraphExternalNode>;
|
6
6
|
export declare function getYarnLockfileDependencies(lockFileContent: string, lockFileHash: string, ctx: CreateDependenciesContext): RawProjectGraphDependency[];
|
7
7
|
export declare function stringifyYarnLockfile(graph: ProjectGraph, rootLockFileContent: string, packageJson: NormalizedPackageJson): string;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { CreateDependenciesContext } from '../../../../
|
1
|
+
import { CreateDependenciesContext } from '../../../../project-graph/plugins';
|
2
2
|
import { RawProjectGraphDependency } from '../../../../project-graph/project-graph-builder';
|
3
3
|
export declare function buildExplicitDependencies(jsPluginConfig: {
|
4
4
|
analyzeSourceFiles?: boolean;
|
package/src/plugins/js/project-graph/build-dependencies/explicit-package-json-dependencies.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
import { CreateDependenciesContext } from '../../../../
|
1
|
+
import { CreateDependenciesContext } from '../../../../project-graph/plugins';
|
2
2
|
import { RawProjectGraphDependency } from '../../../../project-graph/project-graph-builder';
|
3
3
|
export declare function buildExplicitPackageJsonDependencies(ctx: CreateDependenciesContext): RawProjectGraphDependency[];
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { CreateDependenciesContext } from '../../../../
|
1
|
+
import { CreateDependenciesContext } from '../../../../project-graph/plugins';
|
2
2
|
import { RawProjectGraphDependency } from '../../../../project-graph/project-graph-builder';
|
3
3
|
export declare function buildExplicitTypeScriptDependencies(ctx: CreateDependenciesContext): RawProjectGraphDependency[];
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { NxJsonConfiguration } from '../../config/nx-json';
|
2
2
|
import { ProjectConfiguration } from '../../config/workspace-json-project-json';
|
3
|
-
import { NxPluginV2 } from '../../utils/nx-plugin';
|
4
3
|
import { PackageJson } from '../../utils/package-json';
|
5
|
-
|
4
|
+
import { CreateNodes } from '../../project-graph/plugins';
|
5
|
+
export declare const createNodes: CreateNodes;
|
6
6
|
export declare function createNodeFromPackageJson(pkgJsonPath: string, root: string): {
|
7
7
|
projects: {
|
8
8
|
[x: string]: ProjectConfiguration & {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getGlobPatternsFromPackageManagerWorkspaces = exports.buildProjectConfigurationFromPackageJson = exports.createNodeFromPackageJson = exports.
|
3
|
+
exports.getGlobPatternsFromPackageManagerWorkspaces = exports.buildProjectConfigurationFromPackageJson = exports.createNodeFromPackageJson = exports.createNodes = void 0;
|
4
4
|
const minimatch_1 = require("minimatch");
|
5
5
|
const node_fs_1 = require("node:fs");
|
6
6
|
const node_path_1 = require("node:path");
|
@@ -12,37 +12,30 @@ const logger_1 = require("../../utils/logger");
|
|
12
12
|
const output_1 = require("../../utils/output");
|
13
13
|
const package_json_1 = require("../../utils/package-json");
|
14
14
|
const path_1 = require("../../utils/path");
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
//
|
24
|
-
|
25
|
-
//
|
26
|
-
(positivePatterns.length === 0
|
27
|
-
|
28
|
-
(positivePatterns.length === 1 && positivePatterns[0] === 'package.json'))) {
|
29
|
-
positivePatterns.push('**/package.json');
|
30
|
-
}
|
31
|
-
return {
|
32
|
-
name: 'nx/core/package-json-workspaces',
|
33
|
-
createNodes: [
|
34
|
-
(0, globs_1.combineGlobPatterns)(positivePatterns),
|
35
|
-
(p) => {
|
36
|
-
if (!negativePatterns.some((negative) => (0, minimatch_1.minimatch)(p, negative))) {
|
37
|
-
return createNodeFromPackageJson(p, root);
|
38
|
-
}
|
39
|
-
// A negative pattern matched, so we should not create a node for this package.json
|
40
|
-
return {};
|
41
|
-
},
|
42
|
-
],
|
43
|
-
};
|
15
|
+
const workspace_root_1 = require("../../utils/workspace-root");
|
16
|
+
const readJson = (f) => (0, fileutils_1.readJsonFile)((0, node_path_1.join)(workspace_root_1.workspaceRoot, f));
|
17
|
+
const patterns = getGlobPatternsFromPackageManagerWorkspaces(workspace_root_1.workspaceRoot, readJson);
|
18
|
+
const negativePatterns = patterns.filter((p) => p.startsWith('!'));
|
19
|
+
const positivePatterns = patterns.filter((p) => !p.startsWith('!'));
|
20
|
+
if (
|
21
|
+
// There are some negative patterns
|
22
|
+
negativePatterns.length > 0 &&
|
23
|
+
// No positive patterns
|
24
|
+
(positivePatterns.length === 0 ||
|
25
|
+
// Or only a single positive pattern that is the default coming from root package
|
26
|
+
(positivePatterns.length === 1 && positivePatterns[0] === 'package.json'))) {
|
27
|
+
positivePatterns.push('**/package.json');
|
44
28
|
}
|
45
|
-
exports.
|
29
|
+
exports.createNodes = [
|
30
|
+
(0, globs_1.combineGlobPatterns)(positivePatterns),
|
31
|
+
(p, _, { workspaceRoot }) => {
|
32
|
+
if (!negativePatterns.some((negative) => (0, minimatch_1.minimatch)(p, negative))) {
|
33
|
+
return createNodeFromPackageJson(p, workspaceRoot);
|
34
|
+
}
|
35
|
+
// A negative pattern matched, so we should not create a node for this package.json
|
36
|
+
return {};
|
37
|
+
},
|
38
|
+
];
|
46
39
|
function createNodeFromPackageJson(pkgJsonPath, root) {
|
47
40
|
const json = (0, fileutils_1.readJsonFile)((0, node_path_1.join)(root, pkgJsonPath));
|
48
41
|
const project = buildProjectConfigurationFromPackageJson(json, pkgJsonPath, (0, nx_json_1.readNxJson)(root));
|
@@ -24,6 +24,7 @@ exports.PackageJsonProjectsNextToProjectJsonPlugin = {
|
|
24
24
|
},
|
25
25
|
],
|
26
26
|
};
|
27
|
+
exports.default = exports.PackageJsonProjectsNextToProjectJsonPlugin;
|
27
28
|
function createProjectFromPackageJsonNextToProjectJson(projectJsonPath, workspaceRoot) {
|
28
29
|
const root = (0, path_1.dirname)(projectJsonPath);
|
29
30
|
const packageJsonPath = (0, path_1.join)(workspaceRoot, root, 'package.json');
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ProjectConfiguration } from '../../../config/workspace-json-project-json';
|
2
|
-
import { NxPluginV2 } from '../../../
|
2
|
+
import { NxPluginV2 } from '../../../project-graph/plugins';
|
3
3
|
export declare const ProjectJsonProjectsPlugin: NxPluginV2;
|
4
|
+
export default ProjectJsonProjectsPlugin;
|
4
5
|
export declare function buildProjectFromProjectJson(json: Partial<ProjectConfiguration>, path: string): ProjectConfiguration;
|