nx 19.5.6 → 19.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +12 -12
 - package/release/index.d.ts +1 -1
 - package/release/index.js +2 -1
 - package/schemas/nx-schema.json +3 -0
 - package/src/adapter/compat.d.ts +1 -1
 - package/src/adapter/compat.js +2 -0
 - package/src/command-line/affected/affected.js +1 -1
 - package/src/command-line/connect/connect-to-nx-cloud.js +7 -3
 - package/src/command-line/release/changelog.d.ts +2 -7
 - package/src/command-line/release/changelog.js +361 -347
 - package/src/command-line/release/command-object.d.ts +1 -0
 - package/src/command-line/release/command-object.js +14 -0
 - package/src/command-line/release/config/deep-merge-json.d.ts +1 -0
 - package/src/command-line/release/config/deep-merge-json.js +28 -0
 - package/src/command-line/release/index.d.ts +16 -4
 - package/src/command-line/release/index.js +23 -9
 - package/src/command-line/release/plan.d.ts +2 -1
 - package/src/command-line/release/plan.js +90 -77
 - package/src/command-line/release/publish.d.ts +2 -6
 - package/src/command-line/release/publish.js +67 -52
 - package/src/command-line/release/release.d.ts +2 -1
 - package/src/command-line/release/release.js +181 -165
 - package/src/command-line/release/utils/print-config.d.ts +7 -0
 - package/src/command-line/release/utils/print-config.js +36 -0
 - package/src/command-line/release/version.d.ts +2 -6
 - package/src/command-line/release/version.js +179 -165
 - package/src/command-line/run/run-one.js +1 -1
 - package/src/command-line/run-many/run-many.js +1 -1
 - package/src/command-line/yargs-utils/shared-options.d.ts +1 -0
 - package/src/command-line/yargs-utils/shared-options.js +5 -0
 - package/src/commands-runner/create-command-graph.js +4 -2
 - package/src/config/nx-json.d.ts +10 -1
 - package/src/devkit-internals.d.ts +1 -1
 - package/src/devkit-internals.js +2 -1
 - package/src/generators/utils/project-configuration.js +41 -11
 - package/src/native/nx.wasm32-wasi.wasm +0 -0
 - package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +4 -2
 - package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +61 -20
 - package/src/nx-cloud/nx-cloud-tasks-runner-shell.d.ts +1 -0
 - package/src/nx-cloud/utilities/axios.js +9 -2
 - package/src/nx-cloud/utilities/get-cloud-options.d.ts +1 -1
 - package/src/nx-cloud/utilities/get-cloud-options.js +3 -2
 - package/src/plugins/package-json/create-nodes.js +9 -1
 - package/src/project-graph/plugins/isolation/plugin-pool.js +32 -10
 - package/src/project-graph/utils/project-configuration-utils.d.ts +1 -0
 - package/src/project-graph/utils/project-configuration-utils.js +1 -0
 - package/src/tasks-runner/cache.js +1 -1
 - package/src/tasks-runner/run-command.js +6 -1
 - package/src/tasks-runner/utils.js +14 -10
 - package/src/utils/command-line-utils.d.ts +1 -0
 - package/src/utils/nx-cloud-utils.js +3 -1
 - package/src/utils/package-json.d.ts +2 -9
 
| 
         @@ -9,6 +9,7 @@ const nx_json_1 = require("../../../generators/utils/nx-json"); 
     | 
|
| 
       9 
9 
     | 
    
         
             
            const format_changed_files_with_prettier_if_available_1 = require("../../../generators/internal-utils/format-changed-files-with-prettier-if-available");
         
     | 
| 
       10 
10 
     | 
    
         
             
            const url_shorten_1 = require("../../utilities/url-shorten");
         
     | 
| 
       11 
11 
     | 
    
         
             
            const get_cloud_options_1 = require("../../utilities/get-cloud-options");
         
     | 
| 
      
 12 
     | 
    
         
            +
            const path_1 = require("path");
         
     | 
| 
       12 
13 
     | 
    
         
             
            function printCloudConnectionDisabledMessage() {
         
     | 
| 
       13 
14 
     | 
    
         
             
                output_1.output.error({
         
     | 
| 
       14 
15 
     | 
    
         
             
                    title: `Connections to Nx Cloud are disabled for this workspace`,
         
     | 
| 
         @@ -41,7 +42,7 @@ function getNxInitDate() { 
     | 
|
| 
       41 
42 
     | 
    
         
             
                    return null;
         
     | 
| 
       42 
43 
     | 
    
         
             
                }
         
     | 
| 
       43 
44 
     | 
    
         
             
            }
         
     | 
| 
       44 
     | 
    
         
            -
            async function  
     | 
| 
      
 45 
     | 
    
         
            +
            async function createNxCloudWorkspaceV1(workspaceName, installationSource, nxInitDate) {
         
     | 
| 
       45 
46 
     | 
    
         
             
                const apiUrl = (0, get_cloud_options_1.getCloudUrl)();
         
     | 
| 
       46 
47 
     | 
    
         
             
                const response = await require('axios').post(`${apiUrl}/nx-cloud/create-org-and-workspace`, {
         
     | 
| 
       47 
48 
     | 
    
         
             
                    workspaceName,
         
     | 
| 
         @@ -53,6 +54,18 @@ async function createNxCloudWorkspace(workspaceName, installationSource, nxInitD 
     | 
|
| 
       53 
54 
     | 
    
         
             
                }
         
     | 
| 
       54 
55 
     | 
    
         
             
                return response.data;
         
     | 
| 
       55 
56 
     | 
    
         
             
            }
         
     | 
| 
      
 57 
     | 
    
         
            +
            async function createNxCloudWorkspaceV2(workspaceName, installationSource, nxInitDate) {
         
     | 
| 
      
 58 
     | 
    
         
            +
                const apiUrl = (0, get_cloud_options_1.getCloudUrl)();
         
     | 
| 
      
 59 
     | 
    
         
            +
                const response = await require('axios').post(`${apiUrl}/nx-cloud/v2/create-org-and-workspace`, {
         
     | 
| 
      
 60 
     | 
    
         
            +
                    workspaceName,
         
     | 
| 
      
 61 
     | 
    
         
            +
                    installationSource,
         
     | 
| 
      
 62 
     | 
    
         
            +
                    nxInitDate,
         
     | 
| 
      
 63 
     | 
    
         
            +
                });
         
     | 
| 
      
 64 
     | 
    
         
            +
                if (response.data.message) {
         
     | 
| 
      
 65 
     | 
    
         
            +
                    throw new Error(response.data.message);
         
     | 
| 
      
 66 
     | 
    
         
            +
                }
         
     | 
| 
      
 67 
     | 
    
         
            +
                return response.data;
         
     | 
| 
      
 68 
     | 
    
         
            +
            }
         
     | 
| 
       56 
69 
     | 
    
         
             
            async function printSuccessMessage(token, installationSource, usesGithub) {
         
     | 
| 
       57 
70 
     | 
    
         
             
                const connectCloudUrl = await (0, url_shorten_1.createNxCloudOnboardingURL)(installationSource, token, usesGithub);
         
     | 
| 
       58 
71 
     | 
    
         
             
                output_1.output.note({
         
     | 
| 
         @@ -68,37 +81,65 @@ async function printSuccessMessage(token, installationSource, usesGithub) { 
     | 
|
| 
       68 
81 
     | 
    
         
             
                });
         
     | 
| 
       69 
82 
     | 
    
         
             
                return connectCloudUrl;
         
     | 
| 
       70 
83 
     | 
    
         
             
            }
         
     | 
| 
       71 
     | 
    
         
            -
            function addNxCloudOptionsToNxJson(tree,  
     | 
| 
       72 
     | 
    
         
            -
                 
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
      
 84 
     | 
    
         
            +
            function addNxCloudOptionsToNxJson(tree, token, directory = '') {
         
     | 
| 
      
 85 
     | 
    
         
            +
                const nxJsonPath = (0, path_1.join)(directory, 'nx.json');
         
     | 
| 
      
 86 
     | 
    
         
            +
                if (tree.exists(nxJsonPath)) {
         
     | 
| 
      
 87 
     | 
    
         
            +
                    (0, json_1.updateJson)(tree, (0, path_1.join)(directory, 'nx.json'), (nxJson) => {
         
     | 
| 
      
 88 
     | 
    
         
            +
                        const overrideUrl = process.env.NX_CLOUD_API || process.env.NRWL_API;
         
     | 
| 
      
 89 
     | 
    
         
            +
                        if (overrideUrl) {
         
     | 
| 
      
 90 
     | 
    
         
            +
                            nxJson.nxCloudUrl = overrideUrl;
         
     | 
| 
      
 91 
     | 
    
         
            +
                        }
         
     | 
| 
      
 92 
     | 
    
         
            +
                        nxJson.nxCloudAccessToken = token;
         
     | 
| 
      
 93 
     | 
    
         
            +
                        return nxJson;
         
     | 
| 
      
 94 
     | 
    
         
            +
                    });
         
     | 
| 
       79 
95 
     | 
    
         
             
                }
         
     | 
| 
       80 
     | 
    
         
            -
                (0, nx_json_1.updateNxJson)(tree, nxJson);
         
     | 
| 
       81 
96 
     | 
    
         
             
            }
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
      
 97 
     | 
    
         
            +
            function addNxCloudIdToNxJson(tree, nxCloudId, directory = tree.root) {
         
     | 
| 
      
 98 
     | 
    
         
            +
                const nxJsonPath = (0, path_1.join)(directory, 'nx.json');
         
     | 
| 
      
 99 
     | 
    
         
            +
                if (tree.exists(nxJsonPath)) {
         
     | 
| 
      
 100 
     | 
    
         
            +
                    (0, json_1.updateJson)(tree, (0, path_1.join)(directory, 'nx.json'), (nxJson) => {
         
     | 
| 
      
 101 
     | 
    
         
            +
                        const overrideUrl = process.env.NX_CLOUD_API || process.env.NRWL_API;
         
     | 
| 
      
 102 
     | 
    
         
            +
                        if (overrideUrl) {
         
     | 
| 
      
 103 
     | 
    
         
            +
                            nxJson.nxCloudUrl = overrideUrl;
         
     | 
| 
      
 104 
     | 
    
         
            +
                        }
         
     | 
| 
      
 105 
     | 
    
         
            +
                        nxJson.nxCloudId = nxCloudId;
         
     | 
| 
      
 106 
     | 
    
         
            +
                        return nxJson;
         
     | 
| 
      
 107 
     | 
    
         
            +
                    });
         
     | 
| 
      
 108 
     | 
    
         
            +
                }
         
     | 
| 
      
 109 
     | 
    
         
            +
            }
         
     | 
| 
      
 110 
     | 
    
         
            +
            async function connectToNxCloud(tree, schema, nxJson = (0, nx_json_1.readNxJson)(tree)) {
         
     | 
| 
       83 
111 
     | 
    
         
             
                schema.installationSource ??= 'user';
         
     | 
| 
       84 
     | 
    
         
            -
                const nxJson = (0, nx_json_1.readNxJson)(tree);
         
     | 
| 
       85 
112 
     | 
    
         
             
                if (nxJson?.neverConnectToCloud) {
         
     | 
| 
       86 
113 
     | 
    
         
             
                    printCloudConnectionDisabledMessage();
         
     | 
| 
       87 
114 
     | 
    
         
             
                    return null;
         
     | 
| 
       88 
115 
     | 
    
         
             
                }
         
     | 
| 
       89 
116 
     | 
    
         
             
                else {
         
     | 
| 
       90 
117 
     | 
    
         
             
                    const usesGithub = schema.github ?? (await (0, url_shorten_1.repoUsesGithub)(schema.github));
         
     | 
| 
       91 
     | 
    
         
            -
                    let  
     | 
| 
      
 118 
     | 
    
         
            +
                    let responseFromCreateNxCloudWorkspaceV1;
         
     | 
| 
      
 119 
     | 
    
         
            +
                    let responseFromCreateNxCloudWorkspaceV2;
         
     | 
| 
       92 
120 
     | 
    
         
             
                    // do NOT create Nx Cloud token (createNxCloudWorkspace)
         
     | 
| 
       93 
121 
     | 
    
         
             
                    // if user is using github and is running nx-connect
         
     | 
| 
       94 
122 
     | 
    
         
             
                    if (!(usesGithub && schema.installationSource === 'nx-connect')) {
         
     | 
| 
       95 
     | 
    
         
            -
                         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                             
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
      
 123 
     | 
    
         
            +
                        if (process.env.NX_ENABLE_LOGIN === 'true') {
         
     | 
| 
      
 124 
     | 
    
         
            +
                            responseFromCreateNxCloudWorkspaceV2 = await createNxCloudWorkspaceV2(getRootPackageName(tree), schema.installationSource, getNxInitDate());
         
     | 
| 
      
 125 
     | 
    
         
            +
                            addNxCloudIdToNxJson(tree, responseFromCreateNxCloudWorkspaceV2?.nxCloudId, schema.directory);
         
     | 
| 
      
 126 
     | 
    
         
            +
                            await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree, {
         
     | 
| 
      
 127 
     | 
    
         
            +
                                silent: schema.hideFormatLogs,
         
     | 
| 
      
 128 
     | 
    
         
            +
                            });
         
     | 
| 
      
 129 
     | 
    
         
            +
                            return responseFromCreateNxCloudWorkspaceV2.nxCloudId;
         
     | 
| 
      
 130 
     | 
    
         
            +
                        }
         
     | 
| 
      
 131 
     | 
    
         
            +
                        else {
         
     | 
| 
      
 132 
     | 
    
         
            +
                            responseFromCreateNxCloudWorkspaceV1 = await createNxCloudWorkspaceV1(getRootPackageName(tree), schema.installationSource, getNxInitDate());
         
     | 
| 
      
 133 
     | 
    
         
            +
                            addNxCloudOptionsToNxJson(tree, responseFromCreateNxCloudWorkspaceV1?.token, schema.directory);
         
     | 
| 
      
 134 
     | 
    
         
            +
                            await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree, {
         
     | 
| 
      
 135 
     | 
    
         
            +
                                silent: schema.hideFormatLogs,
         
     | 
| 
      
 136 
     | 
    
         
            +
                            });
         
     | 
| 
      
 137 
     | 
    
         
            +
                            return responseFromCreateNxCloudWorkspaceV1.token;
         
     | 
| 
      
 138 
     | 
    
         
            +
                        }
         
     | 
| 
       101 
139 
     | 
    
         
             
                    }
         
     | 
| 
       102 
140 
     | 
    
         
             
                }
         
     | 
| 
       103 
141 
     | 
    
         
             
            }
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
      
 142 
     | 
    
         
            +
            async function connectToNxCloudGenerator(tree, options) {
         
     | 
| 
      
 143 
     | 
    
         
            +
                await connectToNxCloud(tree, options);
         
     | 
| 
      
 144 
     | 
    
         
            +
            }
         
     | 
| 
      
 145 
     | 
    
         
            +
            exports.default = connectToNxCloudGenerator;
         
     | 
| 
         @@ -8,8 +8,15 @@ function createApiAxiosInstance(options) { 
     | 
|
| 
       8 
8 
     | 
    
         
             
                let axiosConfigBuilder = (axiosConfig) => axiosConfig;
         
     | 
| 
       9 
9 
     | 
    
         
             
                const baseUrl = process.env.NX_CLOUD_API || options.url || 'https://cloud.nx.app';
         
     | 
| 
       10 
10 
     | 
    
         
             
                const accessToken = environment_1.ACCESS_TOKEN ? environment_1.ACCESS_TOKEN : options.accessToken;
         
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
                const nxCloudId = options.nxCloudId;
         
     | 
| 
      
 12 
     | 
    
         
            +
                // TODO(lourw): Update message with NxCloudId once it is supported
         
     | 
| 
      
 13 
     | 
    
         
            +
                if (!accessToken && !nxCloudId) {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    if (process.env.NX_ENABLE_LOGIN === 'true' && !nxCloudId) {
         
     | 
| 
      
 15 
     | 
    
         
            +
                        throw new Error(`Unable to authenticate. Please connect your workspace to Nx Cloud to define a valid Nx Cloud Id. If you are in a CI context, please set the NX_CLOUD_ACCESS_TOKEN environment variable or define an access token in your nx.json.`);
         
     | 
| 
      
 16 
     | 
    
         
            +
                    }
         
     | 
| 
      
 17 
     | 
    
         
            +
                    else {
         
     | 
| 
      
 18 
     | 
    
         
            +
                        throw new Error(`Unable to authenticate. Either define accessToken in nx.json or set the NX_CLOUD_ACCESS_TOKEN env variable. If you do not want to use Nx Cloud for this command, either set NX_NO_CLOUD=true, or pass the --no-cloud flag.`);
         
     | 
| 
      
 19 
     | 
    
         
            +
                    }
         
     | 
| 
       13 
20 
     | 
    
         
             
                }
         
     | 
| 
       14 
21 
     | 
    
         
             
                if (options.customProxyConfigPath) {
         
     | 
| 
       15 
22 
     | 
    
         
             
                    const { nxCloudProxyConfig } = require((0, path_1.join)(process.cwd(), options.customProxyConfigPath));
         
     | 
| 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import { CloudTaskRunnerOptions } from '../nx-cloud-tasks-runner-shell';
         
     | 
| 
       2 
     | 
    
         
            -
            export declare function getCloudOptions(): CloudTaskRunnerOptions;
         
     | 
| 
      
 2 
     | 
    
         
            +
            export declare function getCloudOptions(directory?: string): CloudTaskRunnerOptions;
         
     | 
| 
       3 
3 
     | 
    
         
             
            export declare function getCloudUrl(): string;
         
     | 
| 
       4 
4 
     | 
    
         
             
            export declare function removeTrailingSlash(apiUrl: string): string;
         
     | 
| 
         @@ -5,8 +5,9 @@ exports.getCloudUrl = getCloudUrl; 
     | 
|
| 
       5 
5 
     | 
    
         
             
            exports.removeTrailingSlash = removeTrailingSlash;
         
     | 
| 
       6 
6 
     | 
    
         
             
            const nx_json_1 = require("../../config/nx-json");
         
     | 
| 
       7 
7 
     | 
    
         
             
            const run_command_1 = require("../../tasks-runner/run-command");
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
            const workspace_root_1 = require("../../utils/workspace-root");
         
     | 
| 
      
 9 
     | 
    
         
            +
            function getCloudOptions(directory = workspace_root_1.workspaceRoot) {
         
     | 
| 
      
 10 
     | 
    
         
            +
                const nxJson = (0, nx_json_1.readNxJson)(directory);
         
     | 
| 
       10 
11 
     | 
    
         
             
                // TODO: The default is not always cloud? But it's not handled at the moment
         
     | 
| 
       11 
12 
     | 
    
         
             
                return (0, run_command_1.getRunnerOptions)('default', nxJson, {}, true);
         
     | 
| 
       12 
13 
     | 
    
         
             
            }
         
     | 
| 
         @@ -90,7 +90,15 @@ function buildProjectConfigurationFromPackageJson(packageJson, workspaceRoot, pa 
     | 
|
| 
       90 
90 
     | 
    
         
             
                const siblingProjectJson = tryReadJson((0, node_path_1.join)(workspaceRoot, projectRoot, 'project.json'));
         
     | 
| 
       91 
91 
     | 
    
         
             
                if (siblingProjectJson) {
         
     | 
| 
       92 
92 
     | 
    
         
             
                    for (const target of Object.keys(siblingProjectJson?.targets ?? {})) {
         
     | 
| 
       93 
     | 
    
         
            -
                         
     | 
| 
      
 93 
     | 
    
         
            +
                        const { executor, command, options } = siblingProjectJson.targets[target];
         
     | 
| 
      
 94 
     | 
    
         
            +
                        if (
         
     | 
| 
      
 95 
     | 
    
         
            +
                        // will use run-commands, different target
         
     | 
| 
      
 96 
     | 
    
         
            +
                        command ||
         
     | 
| 
      
 97 
     | 
    
         
            +
                            // Either uses a different executor or runs a different script
         
     | 
| 
      
 98 
     | 
    
         
            +
                            (executor &&
         
     | 
| 
      
 99 
     | 
    
         
            +
                                (executor !== 'nx:run-script' || options?.script !== target))) {
         
     | 
| 
      
 100 
     | 
    
         
            +
                            delete packageJson.scripts?.[target];
         
     | 
| 
      
 101 
     | 
    
         
            +
                        }
         
     | 
| 
       94 
102 
     | 
    
         
             
                    }
         
     | 
| 
       95 
103 
     | 
    
         
             
                }
         
     | 
| 
       96 
104 
     | 
    
         
             
                if (!packageJson.name && projectRoot === '.') {
         
     | 
| 
         @@ -13,7 +13,11 @@ const exit_codes_1 = require("../../../utils/exit-codes"); 
     | 
|
| 
       13 
13 
     | 
    
         
             
            const messaging_1 = require("./messaging");
         
     | 
| 
       14 
14 
     | 
    
         
             
            const cleanupFunctions = new Set();
         
     | 
| 
       15 
15 
     | 
    
         
             
            const pluginNames = new Map();
         
     | 
| 
       16 
     | 
    
         
            -
            const  
     | 
| 
      
 16 
     | 
    
         
            +
            const PLUGIN_TIMEOUT_HINT_TEXT = 'As a last resort, you can set NX_PLUGIN_NO_TIMEOUTS=true to bypass this timeout.';
         
     | 
| 
      
 17 
     | 
    
         
            +
            const MINUTES = 10;
         
     | 
| 
      
 18 
     | 
    
         
            +
            const MAX_MESSAGE_WAIT = process.env.NX_PLUGIN_NO_TIMEOUTS === 'true'
         
     | 
| 
      
 19 
     | 
    
         
            +
                ? undefined
         
     | 
| 
      
 20 
     | 
    
         
            +
                : 1000 * 60 * MINUTES; // 10 minutes
         
     | 
| 
       17 
21 
     | 
    
         
             
            const nxPluginWorkerCache = (global['nxPluginWorkerCache'] ??= new Map());
         
     | 
| 
       18 
22 
     | 
    
         
             
            async function loadRemoteNxPlugin(plugin, root) {
         
     | 
| 
       19 
23 
     | 
    
         
             
                const cacheKey = JSON.stringify({ plugin, root });
         
     | 
| 
         @@ -36,11 +40,14 @@ async function loadRemoteNxPlugin(plugin, root) { 
     | 
|
| 
       36 
40 
     | 
    
         
             
                        payload: { plugin, root },
         
     | 
| 
       37 
41 
     | 
    
         
             
                    });
         
     | 
| 
       38 
42 
     | 
    
         
             
                    // logger.verbose(`[plugin-worker] started worker: ${worker.pid}`);
         
     | 
| 
       39 
     | 
    
         
            -
                    const loadTimeout =  
     | 
| 
       40 
     | 
    
         
            -
                         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
      
 43 
     | 
    
         
            +
                    const loadTimeout = MAX_MESSAGE_WAIT
         
     | 
| 
      
 44 
     | 
    
         
            +
                        ? setTimeout(() => {
         
     | 
| 
      
 45 
     | 
    
         
            +
                            rej(new Error(`Loading "${plugin}" timed out after ${MINUTES} minutes. ${PLUGIN_TIMEOUT_HINT_TEXT}`));
         
     | 
| 
      
 46 
     | 
    
         
            +
                        }, MAX_MESSAGE_WAIT)
         
     | 
| 
      
 47 
     | 
    
         
            +
                        : undefined;
         
     | 
| 
       42 
48 
     | 
    
         
             
                    socket.on('data', (0, consume_messages_from_socket_1.consumeMessagesFromSocket)(createWorkerHandler(worker, pendingPromises, (val) => {
         
     | 
| 
       43 
     | 
    
         
            -
                         
     | 
| 
      
 49 
     | 
    
         
            +
                        if (loadTimeout)
         
     | 
| 
      
 50 
     | 
    
         
            +
                            clearTimeout(loadTimeout);
         
     | 
| 
       44 
51 
     | 
    
         
             
                        res(val);
         
     | 
| 
       45 
52 
     | 
    
         
             
                    }, rej, socket)));
         
     | 
| 
       46 
53 
     | 
    
         
             
                    worker.on('exit', exitHandler);
         
     | 
| 
         @@ -90,6 +97,9 @@ function createWorkerHandler(worker, pending, onload, onloadError, socket) { 
     | 
|
| 
       90 
97 
     | 
    
         
             
                                                        type: 'createNodes',
         
     | 
| 
       91 
98 
     | 
    
         
             
                                                        payload: { configFiles, context: ctx, tx },
         
     | 
| 
       92 
99 
     | 
    
         
             
                                                    });
         
     | 
| 
      
 100 
     | 
    
         
            +
                                                }, {
         
     | 
| 
      
 101 
     | 
    
         
            +
                                                    plugin: pluginName,
         
     | 
| 
      
 102 
     | 
    
         
            +
                                                    operation: 'createNodes',
         
     | 
| 
       93 
103 
     | 
    
         
             
                                                });
         
     | 
| 
       94 
104 
     | 
    
         
             
                                            },
         
     | 
| 
       95 
105 
     | 
    
         
             
                                        ]
         
     | 
| 
         @@ -102,6 +112,9 @@ function createWorkerHandler(worker, pending, onload, onloadError, socket) { 
     | 
|
| 
       102 
112 
     | 
    
         
             
                                                    type: 'createDependencies',
         
     | 
| 
       103 
113 
     | 
    
         
             
                                                    payload: { context: ctx, tx },
         
     | 
| 
       104 
114 
     | 
    
         
             
                                                });
         
     | 
| 
      
 115 
     | 
    
         
            +
                                            }, {
         
     | 
| 
      
 116 
     | 
    
         
            +
                                                plugin: pluginName,
         
     | 
| 
      
 117 
     | 
    
         
            +
                                                operation: 'createDependencies',
         
     | 
| 
       105 
118 
     | 
    
         
             
                                            });
         
     | 
| 
       106 
119 
     | 
    
         
             
                                        }
         
     | 
| 
       107 
120 
     | 
    
         
             
                                        : undefined,
         
     | 
| 
         @@ -113,6 +126,9 @@ function createWorkerHandler(worker, pending, onload, onloadError, socket) { 
     | 
|
| 
       113 
126 
     | 
    
         
             
                                                    type: 'processProjectGraph',
         
     | 
| 
       114 
127 
     | 
    
         
             
                                                    payload: { graph, ctx, tx },
         
     | 
| 
       115 
128 
     | 
    
         
             
                                                });
         
     | 
| 
      
 129 
     | 
    
         
            +
                                            }, {
         
     | 
| 
      
 130 
     | 
    
         
            +
                                                operation: 'processProjectGraph',
         
     | 
| 
      
 131 
     | 
    
         
            +
                                                plugin: pluginName,
         
     | 
| 
       116 
132 
     | 
    
         
             
                                            });
         
     | 
| 
       117 
133 
     | 
    
         
             
                                        }
         
     | 
| 
       118 
134 
     | 
    
         
             
                                        : undefined,
         
     | 
| 
         @@ -124,6 +140,9 @@ function createWorkerHandler(worker, pending, onload, onloadError, socket) { 
     | 
|
| 
       124 
140 
     | 
    
         
             
                                                    type: 'createMetadata',
         
     | 
| 
       125 
141 
     | 
    
         
             
                                                    payload: { graph, context: ctx, tx },
         
     | 
| 
       126 
142 
     | 
    
         
             
                                                });
         
     | 
| 
      
 143 
     | 
    
         
            +
                                            }, {
         
     | 
| 
      
 144 
     | 
    
         
            +
                                                plugin: pluginName,
         
     | 
| 
      
 145 
     | 
    
         
            +
                                                operation: 'createMetadata',
         
     | 
| 
       127 
146 
     | 
    
         
             
                                            });
         
     | 
| 
       128 
147 
     | 
    
         
             
                                        }
         
     | 
| 
       129 
148 
     | 
    
         
             
                                        : undefined,
         
     | 
| 
         @@ -192,18 +211,21 @@ process.on('SIGINT', () => { 
     | 
|
| 
       192 
211 
     | 
    
         
             
                process.exit((0, exit_codes_1.signalToCode)('SIGINT'));
         
     | 
| 
       193 
212 
     | 
    
         
             
            });
         
     | 
| 
       194 
213 
     | 
    
         
             
            process.on('SIGTERM', exitHandler);
         
     | 
| 
       195 
     | 
    
         
            -
            function registerPendingPromise(tx, pending, callback) {
         
     | 
| 
      
 214 
     | 
    
         
            +
            function registerPendingPromise(tx, pending, callback, context) {
         
     | 
| 
       196 
215 
     | 
    
         
             
                let resolver, rejector, timeout;
         
     | 
| 
       197 
216 
     | 
    
         
             
                const promise = new Promise((res, rej) => {
         
     | 
| 
       198 
217 
     | 
    
         
             
                    rejector = rej;
         
     | 
| 
       199 
218 
     | 
    
         
             
                    resolver = res;
         
     | 
| 
       200 
     | 
    
         
            -
                    timeout =  
     | 
| 
       201 
     | 
    
         
            -
                         
     | 
| 
       202 
     | 
    
         
            -
             
     | 
| 
      
 219 
     | 
    
         
            +
                    timeout = MAX_MESSAGE_WAIT
         
     | 
| 
      
 220 
     | 
    
         
            +
                        ? setTimeout(() => {
         
     | 
| 
      
 221 
     | 
    
         
            +
                            rej(new Error(`${context.plugin} timed out after ${MINUTES} minutes during ${context.operation}. ${PLUGIN_TIMEOUT_HINT_TEXT}`));
         
     | 
| 
      
 222 
     | 
    
         
            +
                        }, MAX_MESSAGE_WAIT)
         
     | 
| 
      
 223 
     | 
    
         
            +
                        : undefined;
         
     | 
| 
       203 
224 
     | 
    
         
             
                    callback();
         
     | 
| 
       204 
225 
     | 
    
         
             
                }).finally(() => {
         
     | 
| 
       205 
226 
     | 
    
         
             
                    pending.delete(tx);
         
     | 
| 
       206 
     | 
    
         
            -
                     
     | 
| 
      
 227 
     | 
    
         
            +
                    if (timeout)
         
     | 
| 
      
 228 
     | 
    
         
            +
                        clearTimeout(timeout);
         
     | 
| 
       207 
229 
     | 
    
         
             
                });
         
     | 
| 
       208 
230 
     | 
    
         
             
                pending.set(tx, {
         
     | 
| 
       209 
231 
     | 
    
         
             
                    promise,
         
     | 
| 
         @@ -37,6 +37,7 @@ export type ConfigurationResult = { 
     | 
|
| 
       37 
37 
     | 
    
         
             
             */
         
     | 
| 
       38 
38 
     | 
    
         
             
            export declare function createProjectConfigurations(root: string, nxJson: NxJsonConfiguration, projectFiles: string[], // making this parameter allows devkit to pick up newly created projects
         
     | 
| 
       39 
39 
     | 
    
         
             
            plugins: LoadedNxPlugin[]): Promise<ConfigurationResult>;
         
     | 
| 
      
 40 
     | 
    
         
            +
            export declare function findMatchingConfigFiles(projectFiles: string[], pattern: string, include: string[], exclude: string[]): string[];
         
     | 
| 
       40 
41 
     | 
    
         
             
            export declare function readProjectConfigurationsFromRootMap(projectRootMap: Record<string, ProjectConfiguration>): Record<string, ProjectConfiguration>;
         
     | 
| 
       41 
42 
     | 
    
         
             
            export declare function validateProject(project: ProjectConfiguration, knownProjects: Record<string, ProjectConfiguration>): void;
         
     | 
| 
       42 
43 
     | 
    
         
             
            export declare function mergeTargetDefaultWithTargetDefinition(targetName: string, project: ProjectConfiguration, targetDefault: Partial<TargetConfiguration>, sourceMap: Record<string, SourceInformation>): TargetConfiguration;
         
     | 
| 
         @@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); 
     | 
|
| 
       3 
3 
     | 
    
         
             
            exports.mergeProjectConfigurationIntoRootMap = mergeProjectConfigurationIntoRootMap;
         
     | 
| 
       4 
4 
     | 
    
         
             
            exports.mergeMetadata = mergeMetadata;
         
     | 
| 
       5 
5 
     | 
    
         
             
            exports.createProjectConfigurations = createProjectConfigurations;
         
     | 
| 
      
 6 
     | 
    
         
            +
            exports.findMatchingConfigFiles = findMatchingConfigFiles;
         
     | 
| 
       6 
7 
     | 
    
         
             
            exports.readProjectConfigurationsFromRootMap = readProjectConfigurationsFromRootMap;
         
     | 
| 
       7 
8 
     | 
    
         
             
            exports.validateProject = validateProject;
         
     | 
| 
       8 
9 
     | 
    
         
             
            exports.mergeTargetDefaultWithTargetDefinition = mergeTargetDefaultWithTargetDefinition;
         
     | 
| 
         @@ -25,7 +25,7 @@ class Cache { 
     | 
|
| 
       25 
25 
     | 
    
         
             
                    if (shouldSpawnProcess) {
         
     | 
| 
       26 
26 
     | 
    
         
             
                        const scriptPath = require.resolve('./remove-old-cache-records.js');
         
     | 
| 
       27 
27 
     | 
    
         
             
                        try {
         
     | 
| 
       28 
     | 
    
         
            -
                            const p = (0, child_process_1.spawn)('node', [scriptPath,  
     | 
| 
      
 28 
     | 
    
         
            +
                            const p = (0, child_process_1.spawn)('node', [scriptPath, `${this.cachePath}`], {
         
     | 
| 
       29 
29 
     | 
    
         
             
                                stdio: 'ignore',
         
     | 
| 
       30 
30 
     | 
    
         
             
                                detached: true,
         
     | 
| 
       31 
31 
     | 
    
         
             
                                shell: false,
         
     | 
| 
         @@ -318,7 +318,9 @@ function getTasksRunnerPath(runner, nxJson) { 
     | 
|
| 
       318 
318 
     | 
    
         
             
                    // No runner prop in tasks runner options, check if access token is set.
         
     | 
| 
       319 
319 
     | 
    
         
             
                    nxJson.tasksRunnerOptions?.[runner]?.options?.accessToken ||
         
     | 
| 
       320 
320 
     | 
    
         
             
                    // Cloud access token specified in env var.
         
     | 
| 
       321 
     | 
    
         
            -
                    process.env.NX_CLOUD_ACCESS_TOKEN 
     | 
| 
      
 321 
     | 
    
         
            +
                    process.env.NX_CLOUD_ACCESS_TOKEN ||
         
     | 
| 
      
 322 
     | 
    
         
            +
                    // Nx Cloud Id specified in nxJson
         
     | 
| 
      
 323 
     | 
    
         
            +
                    nxJson.nxCloudId;
         
     | 
| 
       322 
324 
     | 
    
         
             
                return isCloudRunner ? 'nx-cloud' : require.resolve('./default-tasks-runner');
         
     | 
| 
       323 
325 
     | 
    
         
             
            }
         
     | 
| 
       324 
326 
     | 
    
         
             
            function getRunnerOptions(runner, nxJson, nxArgs, isCloudDefault) {
         
     | 
| 
         @@ -339,6 +341,9 @@ function getRunnerOptions(runner, nxJson, nxArgs, isCloudDefault) { 
     | 
|
| 
       339 
341 
     | 
    
         
             
                if (nxJson.nxCloudAccessToken && isCloudDefault) {
         
     | 
| 
       340 
342 
     | 
    
         
             
                    result.accessToken ??= nxJson.nxCloudAccessToken;
         
     | 
| 
       341 
343 
     | 
    
         
             
                }
         
     | 
| 
      
 344 
     | 
    
         
            +
                if (nxJson.nxCloudId && isCloudDefault) {
         
     | 
| 
      
 345 
     | 
    
         
            +
                    result.nxCloudId ??= nxJson.nxCloudId;
         
     | 
| 
      
 346 
     | 
    
         
            +
                }
         
     | 
| 
       342 
347 
     | 
    
         
             
                if (nxJson.nxCloudUrl && isCloudDefault) {
         
     | 
| 
       343 
348 
     | 
    
         
             
                    result.url ??= nxJson.nxCloudUrl;
         
     | 
| 
       344 
349 
     | 
    
         
             
                }
         
     | 
| 
         @@ -77,27 +77,31 @@ function expandDependencyConfigSyntaxSugar(dependencyConfigString, graph) { 
     | 
|
| 
       77 
77 
     | 
    
         
             
            }
         
     | 
| 
       78 
78 
     | 
    
         
             
            // Weakmap let's the cache get cleared by garbage collector if allTargetNames is no longer used
         
     | 
| 
       79 
79 
     | 
    
         
             
            const patternResultCache = new WeakMap();
         
     | 
| 
       80 
     | 
    
         
            -
            function  
     | 
| 
       81 
     | 
    
         
            -
                if (!(0, globs_1.isGlobPattern)(dependencyConfig.target)) {
         
     | 
| 
       82 
     | 
    
         
            -
                    return [dependencyConfig];
         
     | 
| 
       83 
     | 
    
         
            -
                }
         
     | 
| 
      
 80 
     | 
    
         
            +
            function findMatchingTargets(pattern, allTargetNames) {
         
     | 
| 
       84 
81 
     | 
    
         
             
                let cache = patternResultCache.get(allTargetNames);
         
     | 
| 
       85 
82 
     | 
    
         
             
                if (!cache) {
         
     | 
| 
       86 
83 
     | 
    
         
             
                    cache = new Map();
         
     | 
| 
       87 
84 
     | 
    
         
             
                    patternResultCache.set(allTargetNames, cache);
         
     | 
| 
       88 
85 
     | 
    
         
             
                }
         
     | 
| 
       89 
     | 
    
         
            -
                const cachedResult = cache.get( 
     | 
| 
      
 86 
     | 
    
         
            +
                const cachedResult = cache.get(pattern);
         
     | 
| 
       90 
87 
     | 
    
         
             
                if (cachedResult) {
         
     | 
| 
       91 
88 
     | 
    
         
             
                    return cachedResult;
         
     | 
| 
       92 
89 
     | 
    
         
             
                }
         
     | 
| 
       93 
     | 
    
         
            -
                const matcher = minimatch_1.minimatch.filter( 
     | 
| 
      
 90 
     | 
    
         
            +
                const matcher = minimatch_1.minimatch.filter(pattern);
         
     | 
| 
       94 
91 
     | 
    
         
             
                const matchingTargets = allTargetNames.filter((t) => matcher(t));
         
     | 
| 
       95 
     | 
    
         
            -
                 
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
      
 92 
     | 
    
         
            +
                cache.set(pattern, matchingTargets);
         
     | 
| 
      
 93 
     | 
    
         
            +
                return matchingTargets;
         
     | 
| 
      
 94 
     | 
    
         
            +
            }
         
     | 
| 
      
 95 
     | 
    
         
            +
            function expandWildcardTargetConfiguration(dependencyConfig, allTargetNames) {
         
     | 
| 
      
 96 
     | 
    
         
            +
                if (!(0, globs_1.isGlobPattern)(dependencyConfig.target)) {
         
     | 
| 
      
 97 
     | 
    
         
            +
                    return [dependencyConfig];
         
     | 
| 
      
 98 
     | 
    
         
            +
                }
         
     | 
| 
      
 99 
     | 
    
         
            +
                const matchingTargets = findMatchingTargets(dependencyConfig.target, allTargetNames);
         
     | 
| 
      
 100 
     | 
    
         
            +
                return matchingTargets.map((t) => ({
         
     | 
| 
       97 
101 
     | 
    
         
             
                    target: t,
         
     | 
| 
      
 102 
     | 
    
         
            +
                    projects: dependencyConfig.projects,
         
     | 
| 
      
 103 
     | 
    
         
            +
                    dependencies: dependencyConfig.dependencies,
         
     | 
| 
       98 
104 
     | 
    
         
             
                }));
         
     | 
| 
       99 
     | 
    
         
            -
                cache.set(dependencyConfig.target, result);
         
     | 
| 
       100 
     | 
    
         
            -
                return result;
         
     | 
| 
       101 
105 
     | 
    
         
             
            }
         
     | 
| 
       102 
106 
     | 
    
         
             
            function readProjectAndTargetFromTargetString(targetString, projects) {
         
     | 
| 
       103 
107 
     | 
    
         
             
                // Support for both `project:target` and `target:with:colons` syntax
         
     | 
| 
         @@ -29,6 +29,7 @@ export interface NxArgs { 
     | 
|
| 
       29 
29 
     | 
    
         
             
                nxIgnoreCycles?: boolean;
         
     | 
| 
       30 
30 
     | 
    
         
             
                type?: string;
         
     | 
| 
       31 
31 
     | 
    
         
             
                batch?: boolean;
         
     | 
| 
      
 32 
     | 
    
         
            +
                excludeTaskDependencies?: boolean;
         
     | 
| 
       32 
33 
     | 
    
         
             
            }
         
     | 
| 
       33 
34 
     | 
    
         
             
            export declare function createOverrides(__overrides_unparsed__?: string[]): Record<string, any>;
         
     | 
| 
       34 
35 
     | 
    
         
             
            export declare function splitArgsIntoNxArgsAndOverrides(args: {
         
     | 
| 
         @@ -6,12 +6,14 @@ exports.getNxCloudToken = getNxCloudToken; 
     | 
|
| 
       6 
6 
     | 
    
         
             
            function isNxCloudUsed(nxJson) {
         
     | 
| 
       7 
7 
     | 
    
         
             
                return (!!process.env.NX_CLOUD_ACCESS_TOKEN ||
         
     | 
| 
       8 
8 
     | 
    
         
             
                    !!nxJson.nxCloudAccessToken ||
         
     | 
| 
      
 9 
     | 
    
         
            +
                    !!nxJson.nxCloudId ||
         
     | 
| 
       9 
10 
     | 
    
         
             
                    !!Object.values(nxJson.tasksRunnerOptions ?? {}).find((r) => r.runner == '@nrwl/nx-cloud' || r.runner == 'nx-cloud'));
         
     | 
| 
       10 
11 
     | 
    
         
             
            }
         
     | 
| 
       11 
12 
     | 
    
         
             
            function getNxCloudUrl(nxJson) {
         
     | 
| 
       12 
13 
     | 
    
         
             
                const cloudRunner = Object.values(nxJson.tasksRunnerOptions ?? {}).find((r) => r.runner == '@nrwl/nx-cloud' || r.runner == 'nx-cloud');
         
     | 
| 
       13 
14 
     | 
    
         
             
                if (!cloudRunner &&
         
     | 
| 
       14 
     | 
    
         
            -
                    !(nxJson.nxCloudAccessToken || process.env.NX_CLOUD_ACCESS_TOKEN) 
     | 
| 
      
 15 
     | 
    
         
            +
                    !(nxJson.nxCloudAccessToken || process.env.NX_CLOUD_ACCESS_TOKEN) &&
         
     | 
| 
      
 16 
     | 
    
         
            +
                    !nxJson.nxCloudId)
         
     | 
| 
       15 
17 
     | 
    
         
             
                    throw new Error('nx-cloud runner not found in nx.json');
         
     | 
| 
       16 
18 
     | 
    
         
             
                return cloudRunner?.options?.url ?? nxJson.nxCloudUrl ?? 'https://nx.app';
         
     | 
| 
       17 
19 
     | 
    
         
             
            }
         
     | 
| 
         @@ -1,13 +1,6 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import {  
     | 
| 
      
 1 
     | 
    
         
            +
            import { ProjectConfiguration, ProjectMetadata, TargetConfiguration } from '../config/workspace-json-project-json';
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { PackageManagerCommands } from './package-manager';
         
     | 
| 
       3 
     | 
    
         
            -
            export interface NxProjectPackageJsonConfiguration {
         
     | 
| 
       4 
     | 
    
         
            -
                name?: string;
         
     | 
| 
       5 
     | 
    
         
            -
                implicitDependencies?: string[];
         
     | 
| 
       6 
     | 
    
         
            -
                tags?: string[];
         
     | 
| 
       7 
     | 
    
         
            -
                namedInputs?: {
         
     | 
| 
       8 
     | 
    
         
            -
                    [inputName: string]: (string | InputDefinition)[];
         
     | 
| 
       9 
     | 
    
         
            -
                };
         
     | 
| 
       10 
     | 
    
         
            -
                targets?: Record<string, TargetConfiguration>;
         
     | 
| 
      
 3 
     | 
    
         
            +
            export interface NxProjectPackageJsonConfiguration extends Partial<ProjectConfiguration> {
         
     | 
| 
       11 
4 
     | 
    
         
             
                includedScripts?: string[];
         
     | 
| 
       12 
5 
     | 
    
         
             
            }
         
     | 
| 
       13 
6 
     | 
    
         
             
            export type ArrayPackageGroup = {
         
     |