nx 14.2.0-beta.0 → 14.2.0-beta.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 (149) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/bin/{init.d.ts → compute-project-graph.d.ts} +0 -0
  3. package/bin/compute-project-graph.js +18 -0
  4. package/bin/compute-project-graph.js.map +1 -0
  5. package/bin/nx.js +9 -1
  6. package/bin/nx.js.map +1 -1
  7. package/package.json +5 -5
  8. package/presets/core.json +13 -8
  9. package/presets/npm.json +13 -7
  10. package/src/adapter/compat.js +4 -4
  11. package/src/adapter/compat.js.map +1 -1
  12. package/src/adapter/ngcli-adapter.d.ts +4 -4
  13. package/src/adapter/ngcli-adapter.js.map +1 -1
  14. package/src/command-line/affected.js +8 -2
  15. package/src/command-line/affected.js.map +1 -1
  16. package/src/command-line/connect-to-nx-cloud.js +3 -3
  17. package/src/command-line/connect-to-nx-cloud.js.map +1 -1
  18. package/src/command-line/dep-graph.js +7 -7
  19. package/src/command-line/dep-graph.js.map +1 -1
  20. package/src/command-line/format.d.ts +2 -2
  21. package/src/command-line/format.js +4 -3
  22. package/src/command-line/format.js.map +1 -1
  23. package/src/command-line/generate.js +6 -6
  24. package/src/command-line/generate.js.map +1 -1
  25. package/src/command-line/init.d.ts +1 -0
  26. package/src/command-line/init.js +39 -0
  27. package/src/command-line/init.js.map +1 -0
  28. package/src/command-line/lint.js +2 -2
  29. package/src/command-line/lint.js.map +1 -1
  30. package/src/command-line/list.js +2 -2
  31. package/src/command-line/list.js.map +1 -1
  32. package/src/command-line/nx-commands.js +33 -5
  33. package/src/command-line/nx-commands.js.map +1 -1
  34. package/src/command-line/print-affected.js +10 -10
  35. package/src/command-line/print-affected.js.map +1 -1
  36. package/src/command-line/read-environment.js +3 -3
  37. package/src/command-line/read-environment.js.map +1 -1
  38. package/src/command-line/report.js +3 -3
  39. package/src/command-line/report.js.map +1 -1
  40. package/src/command-line/run-many.js +2 -2
  41. package/src/command-line/run-many.js.map +1 -1
  42. package/src/command-line/run-one.js +4 -4
  43. package/src/command-line/run-one.js.map +1 -1
  44. package/src/command-line/run.d.ts +2 -2
  45. package/src/command-line/run.js.map +1 -1
  46. package/src/command-line/workspace-generators.js +2 -2
  47. package/src/command-line/workspace-generators.js.map +1 -1
  48. package/src/config/configuration.d.ts +11 -0
  49. package/src/config/configuration.js +26 -0
  50. package/src/config/configuration.js.map +1 -0
  51. package/src/config/misc-interfaces.d.ts +3 -3
  52. package/src/config/workspace-json-project-json.d.ts +8 -4
  53. package/src/config/workspaces.d.ts +11 -7
  54. package/src/config/workspaces.js +29 -23
  55. package/src/config/workspaces.js.map +1 -1
  56. package/src/core/dep-graph/main.esm.js +1 -1
  57. package/src/daemon/client/client.js +3 -3
  58. package/src/daemon/client/client.js.map +1 -1
  59. package/src/daemon/server/project-graph-incremental-recomputation.js +3 -3
  60. package/src/daemon/server/project-graph-incremental-recomputation.js.map +1 -1
  61. package/src/daemon/server/server.js +7 -7
  62. package/src/daemon/server/server.js.map +1 -1
  63. package/src/daemon/server/shutdown-utils.js +2 -2
  64. package/src/daemon/server/shutdown-utils.js.map +1 -1
  65. package/src/daemon/server/watcher.js +10 -10
  66. package/src/daemon/server/watcher.js.map +1 -1
  67. package/src/generators/utils/project-configuration.d.ts +3 -3
  68. package/src/generators/utils/project-configuration.js.map +1 -1
  69. package/src/hasher/file-hasher-base.js +4 -4
  70. package/src/hasher/file-hasher-base.js.map +1 -1
  71. package/src/hasher/file-hasher.js +2 -2
  72. package/src/hasher/file-hasher.js.map +1 -1
  73. package/src/hasher/git-based-file-hasher.js +5 -5
  74. package/src/hasher/git-based-file-hasher.js.map +1 -1
  75. package/src/hasher/hasher.js +4 -4
  76. package/src/hasher/hasher.js.map +1 -1
  77. package/src/hasher/node-based-file-hasher.js +6 -6
  78. package/src/hasher/node-based-file-hasher.js.map +1 -1
  79. package/src/project-graph/affected/affected-project-graph.d.ts +2 -2
  80. package/src/project-graph/affected/affected-project-graph.js +2 -1
  81. package/src/project-graph/affected/affected-project-graph.js.map +1 -1
  82. package/src/project-graph/build-nodes/npm-packages.js +2 -2
  83. package/src/project-graph/build-nodes/npm-packages.js.map +1 -1
  84. package/src/project-graph/build-nodes/workspace-projects.js +2 -2
  85. package/src/project-graph/build-nodes/workspace-projects.js.map +1 -1
  86. package/src/project-graph/build-project-graph.d.ts +2 -2
  87. package/src/project-graph/build-project-graph.js +5 -5
  88. package/src/project-graph/build-project-graph.js.map +1 -1
  89. package/src/project-graph/file-utils.d.ts +1 -17
  90. package/src/project-graph/file-utils.js +8 -48
  91. package/src/project-graph/file-utils.js.map +1 -1
  92. package/src/project-graph/nx-deps-cache.d.ts +2 -2
  93. package/src/project-graph/nx-deps-cache.js.map +1 -1
  94. package/src/project-graph/project-graph.js +2 -1
  95. package/src/project-graph/project-graph.js.map +1 -1
  96. package/src/tasks-runner/batch/run-batch.js +6 -6
  97. package/src/tasks-runner/batch/run-batch.js.map +1 -1
  98. package/src/tasks-runner/cache.js +2 -2
  99. package/src/tasks-runner/cache.js.map +1 -1
  100. package/src/tasks-runner/create-task-graph.d.ts +21 -0
  101. package/src/tasks-runner/create-task-graph.js +138 -0
  102. package/src/tasks-runner/create-task-graph.js.map +1 -0
  103. package/src/tasks-runner/default-tasks-runner.js +3 -6
  104. package/src/tasks-runner/default-tasks-runner.js.map +1 -1
  105. package/src/tasks-runner/forked-process-task-runner.js +4 -2
  106. package/src/tasks-runner/forked-process-task-runner.js.map +1 -1
  107. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +12 -12
  108. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js.map +1 -1
  109. package/src/tasks-runner/run-command.d.ts +0 -12
  110. package/src/tasks-runner/run-command.js +25 -193
  111. package/src/tasks-runner/run-command.js.map +1 -1
  112. package/src/tasks-runner/task-graph-utils.d.ts +3 -0
  113. package/src/tasks-runner/task-graph-utils.js +56 -0
  114. package/src/tasks-runner/task-graph-utils.js.map +1 -0
  115. package/src/tasks-runner/task-orchestrator.js +2 -2
  116. package/src/tasks-runner/task-orchestrator.js.map +1 -1
  117. package/src/tasks-runner/tasks-runner.d.ts +2 -1
  118. package/src/tasks-runner/utils.js +2 -2
  119. package/src/tasks-runner/utils.js.map +1 -1
  120. package/src/utils/cache-directory.js +2 -2
  121. package/src/utils/cache-directory.js.map +1 -1
  122. package/src/utils/command-line-utils.d.ts +5 -4
  123. package/src/utils/command-line-utils.js +8 -13
  124. package/src/utils/command-line-utils.js.map +1 -1
  125. package/src/utils/find-workspace-root.js +9 -7
  126. package/src/utils/find-workspace-root.js.map +1 -1
  127. package/src/utils/nx-plugin.js +10 -10
  128. package/src/utils/nx-plugin.js.map +1 -1
  129. package/src/utils/output.d.ts +1 -1
  130. package/src/utils/output.js +2 -2
  131. package/src/utils/output.js.map +1 -1
  132. package/src/utils/params.d.ts +2 -2
  133. package/src/utils/params.js.map +1 -1
  134. package/src/utils/plugins/plugin-capabilities.js +2 -2
  135. package/src/utils/plugins/plugin-capabilities.js.map +1 -1
  136. package/src/utils/target-project-locator.js +2 -2
  137. package/src/utils/target-project-locator.js.map +1 -1
  138. package/src/utils/typescript.js +5 -5
  139. package/src/utils/typescript.js.map +1 -1
  140. package/src/utils/{app-root.d.ts → workspace-root.d.ts} +5 -4
  141. package/src/utils/workspace-root.js +41 -0
  142. package/src/utils/workspace-root.js.map +1 -0
  143. package/bin/init.js +0 -13
  144. package/bin/init.js.map +0 -1
  145. package/src/tasks-runner/task-graph-creator.d.ts +0 -13
  146. package/src/tasks-runner/task-graph-creator.js +0 -71
  147. package/src/tasks-runner/task-graph-creator.js.map +0 -1
  148. package/src/utils/app-root.js +0 -39
  149. package/src/utils/app-root.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-root.js","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/workspace-root.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,2BAA8B;AAE9B;;GAEG;AACU,QAAA,aAAa,GAAG,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEjE;;;;GAIG;AACU,QAAA,WAAW,GAAG,qBAAa,CAAC;AAEzC,SAAgB,kBAAkB,CAChC,GAAW,EACX,aAA4B;IAE5B,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG;QAAE,OAAO,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACrE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;QACzC,OAAO,GAAG,CAAC;KACZ;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE;QAC3E,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;KAC7D;AACH,CAAC;AAdD,gDAcC;AAED,SAAgB,UAAU,CAAC,QAAgB;IACzC,IAAI;QACF,OAAO,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;KACpC;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC"}
package/bin/init.js DELETED
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const project_graph_1 = require("../src/project-graph/project-graph");
5
- (() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
6
- try {
7
- yield (0, project_graph_1.createProjectGraphAsync)();
8
- }
9
- catch (e) {
10
- // Do not error since this runs in a postinstall
11
- }
12
- }))();
13
- //# sourceMappingURL=init.js.map
package/bin/init.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../packages/nx/bin/init.ts"],"names":[],"mappings":";;;AAAA,sEAA6E;AAE7E,CAAC,GAAS,EAAE;IACV,IAAI;QACF,MAAM,IAAA,uCAAuB,GAAE,CAAC;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,gDAAgD;KACjD;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -1,13 +0,0 @@
1
- import { ProjectGraph } from '../config/project-graph';
2
- import { Task, TaskGraph } from '../config/task-graph';
3
- import { TargetDependencyConfig } from '../config/workspace-json-project-json';
4
- export declare class TaskGraphCreator {
5
- private readonly projectGraph;
6
- private readonly defaultTargetDependencies;
7
- constructor(projectGraph: ProjectGraph, defaultTargetDependencies: Record<string, (TargetDependencyConfig | string)[]>);
8
- createTaskGraph(tasks: Task[]): TaskGraph;
9
- private addTaskDependencies;
10
- private addDependencies;
11
- private findTask;
12
- private addTaskToGraph;
13
- }
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TaskGraphCreator = void 0;
4
- const utils_1 = require("./utils");
5
- class TaskGraphCreator {
6
- constructor(projectGraph, defaultTargetDependencies) {
7
- this.projectGraph = projectGraph;
8
- this.defaultTargetDependencies = defaultTargetDependencies;
9
- }
10
- createTaskGraph(tasks) {
11
- const graph = {
12
- roots: [],
13
- tasks: {},
14
- dependencies: {},
15
- };
16
- for (const task of tasks) {
17
- this.addTaskToGraph(task, graph);
18
- const dependencyConfigs = (0, utils_1.getDependencyConfigs)(task.target, this.defaultTargetDependencies, this.projectGraph);
19
- if (!dependencyConfigs) {
20
- continue;
21
- }
22
- this.addTaskDependencies(task, dependencyConfigs, tasks, graph);
23
- }
24
- graph.roots = Object.keys(graph.dependencies).filter((k) => graph.dependencies[k].length === 0);
25
- return graph;
26
- }
27
- addTaskDependencies(task, dependencyConfigs, tasks, graph) {
28
- for (const dependencyConfig of dependencyConfigs) {
29
- if (dependencyConfig.projects === 'self') {
30
- for (const t of tasks) {
31
- if (t.target.project === task.target.project &&
32
- t.target.target === dependencyConfig.target) {
33
- graph.dependencies[task.id].push(t.id);
34
- }
35
- }
36
- }
37
- else if (dependencyConfig.projects === 'dependencies') {
38
- const seen = new Set();
39
- this.addDependencies(task.target.project, dependencyConfig.target, tasks, graph, task.id, seen);
40
- }
41
- }
42
- }
43
- addDependencies(project, target, tasks, graph, taskId, seen) {
44
- seen.add(project);
45
- const dependencies = this.projectGraph.dependencies[project];
46
- if (dependencies) {
47
- const projectDependencies = dependencies.map((dependency) => dependency.target);
48
- for (const projectDependency of projectDependencies) {
49
- if (seen.has(projectDependency)) {
50
- continue;
51
- }
52
- const dependency = this.findTask({ project: projectDependency, target }, tasks);
53
- if (dependency) {
54
- graph.dependencies[taskId].push(dependency.id);
55
- }
56
- else {
57
- this.addDependencies(projectDependency, target, tasks, graph, taskId, seen);
58
- }
59
- }
60
- }
61
- }
62
- findTask({ project, target }, tasks) {
63
- return tasks.find((t) => t.target.project === project && t.target.target === target);
64
- }
65
- addTaskToGraph(task, graph) {
66
- graph.tasks[task.id] = task;
67
- graph.dependencies[task.id] = [];
68
- }
69
- }
70
- exports.TaskGraphCreator = TaskGraphCreator;
71
- //# sourceMappingURL=task-graph-creator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-graph-creator.js","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-graph-creator.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fileExists = exports.workspaceRoot = exports.appRootPath = void 0;
4
- const path = require("path");
5
- const fs_1 = require("fs");
6
- /**
7
- * The root of the workspace.
8
- *
9
- * @deprecated use workspaceRoot instead
10
- */
11
- exports.appRootPath = pathInner(__dirname);
12
- /**
13
- * The root of the workspace
14
- */
15
- exports.workspaceRoot = exports.appRootPath;
16
- function pathInner(dir) {
17
- if (process.env.NX_WORKSPACE_ROOT_PATH)
18
- return process.env.NX_WORKSPACE_ROOT_PATH;
19
- if (path.dirname(dir) === dir)
20
- return process.cwd();
21
- if (fileExists(path.join(dir, 'workspace.json')) ||
22
- fileExists(path.join(dir, 'nx.json')) ||
23
- fileExists(path.join(dir, 'angular.json'))) {
24
- return dir;
25
- }
26
- else {
27
- return pathInner(path.dirname(dir));
28
- }
29
- }
30
- function fileExists(filePath) {
31
- try {
32
- return (0, fs_1.statSync)(filePath).isFile();
33
- }
34
- catch (err) {
35
- return false;
36
- }
37
- }
38
- exports.fileExists = fileExists;
39
- //# sourceMappingURL=app-root.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-root.js","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/app-root.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,2BAA8B;AAE9B;;;;GAIG;AACU,QAAA,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAEhD;;GAEG;AACU,QAAA,aAAa,GAAG,mBAAW,CAAC;AAEzC,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACpD,IACE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAC1C;QACA,OAAO,GAAG,CAAC;KACZ;SAAM;QACL,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,QAAgB;IACzC,IAAI;QACF,OAAO,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;KACpC;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC"}