nx 22.0.1 → 22.0.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 (112) hide show
  1. package/migrations.json +6 -0
  2. package/package.json +12 -12
  3. package/project.json +5 -1
  4. package/src/ai/set-up-ai-agents/get-agent-rules.d.ts.map +1 -1
  5. package/src/ai/set-up-ai-agents/get-agent-rules.js +0 -11
  6. package/src/ai/utils.d.ts.map +1 -1
  7. package/src/ai/utils.js +3 -1
  8. package/src/command-line/init/ai-agent-prompts.d.ts.map +1 -1
  9. package/src/command-line/init/ai-agent-prompts.js +12 -11
  10. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.d.ts +2 -0
  11. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.d.ts.map +1 -1
  12. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.js +11 -1
  13. package/src/command-line/init/init-v2.d.ts.map +1 -1
  14. package/src/command-line/init/init-v2.js +4 -0
  15. package/src/command-line/release/config/config.d.ts +1 -1
  16. package/src/command-line/release/config/config.d.ts.map +1 -1
  17. package/src/command-line/release/config/config.js +39 -0
  18. package/src/command-line/release/utils/release-graph.d.ts +1 -1
  19. package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
  20. package/src/command-line/release/version/release-group-processor.js +3 -2
  21. package/src/config/nx-json.d.ts +2 -0
  22. package/src/config/nx-json.d.ts.map +1 -1
  23. package/src/config/nx-json.js +2 -1
  24. package/src/core/graph/main.js +1 -1
  25. package/src/daemon/client/client.d.ts.map +1 -1
  26. package/src/daemon/client/client.js +25 -19
  27. package/src/daemon/client/daemon-socket-messenger.d.ts +1 -1
  28. package/src/daemon/client/daemon-socket-messenger.d.ts.map +1 -1
  29. package/src/daemon/client/daemon-socket-messenger.js +5 -3
  30. package/src/daemon/is-v8-serializer-enabled.d.ts +6 -0
  31. package/src/daemon/is-v8-serializer-enabled.d.ts.map +1 -0
  32. package/src/daemon/is-v8-serializer-enabled.js +10 -0
  33. package/src/daemon/server/file-watching/file-watcher-sockets.d.ts.map +1 -1
  34. package/src/daemon/server/file-watching/file-watcher-sockets.js +1 -1
  35. package/src/daemon/server/handle-context-file-data.js +1 -1
  36. package/src/daemon/server/handle-flush-sync-generator-changes-to-disk.js +1 -1
  37. package/src/daemon/server/handle-get-files-in-directory.js +1 -1
  38. package/src/daemon/server/handle-get-registered-sync-generators.js +1 -1
  39. package/src/daemon/server/handle-get-sync-generator-changes.js +1 -1
  40. package/src/daemon/server/handle-glob.js +2 -2
  41. package/src/daemon/server/handle-hash-tasks.d.ts +1 -1
  42. package/src/daemon/server/handle-hash-tasks.d.ts.map +1 -1
  43. package/src/daemon/server/handle-hash-tasks.js +1 -1
  44. package/src/daemon/server/handle-nx-workspace-files.js +1 -1
  45. package/src/daemon/server/handle-outputs-tracking.js +1 -1
  46. package/src/daemon/server/handle-task-history.d.ts +2 -2
  47. package/src/daemon/server/handle-task-history.js +2 -2
  48. package/src/daemon/server/handle-tasks-execution-hooks.d.ts +1 -1
  49. package/src/daemon/server/handle-tasks-execution-hooks.js +1 -1
  50. package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
  51. package/src/daemon/server/project-graph-incremental-recomputation.js +14 -1
  52. package/src/daemon/server/project-graph-listener-sockets.d.ts.map +1 -1
  53. package/src/daemon/server/project-graph-listener-sockets.js +3 -2
  54. package/src/daemon/server/server.d.ts +2 -2
  55. package/src/daemon/server/server.d.ts.map +1 -1
  56. package/src/daemon/server/server.js +49 -28
  57. package/src/daemon/server/shutdown-utils.d.ts.map +1 -1
  58. package/src/daemon/server/shutdown-utils.js +2 -1
  59. package/src/daemon/socket-utils.d.ts +11 -0
  60. package/src/daemon/socket-utils.d.ts.map +1 -1
  61. package/src/daemon/socket-utils.js +41 -0
  62. package/src/devkit-internals.d.ts +2 -1
  63. package/src/devkit-internals.d.ts.map +1 -1
  64. package/src/devkit-internals.js +4 -1
  65. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts.map +1 -1
  66. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +5 -1
  67. package/src/hasher/hash-task.d.ts +1 -0
  68. package/src/hasher/hash-task.d.ts.map +1 -1
  69. package/src/hasher/hash-task.js +57 -0
  70. package/src/migrations/update-22-1-0/update-nx-wrapper.d.ts +3 -0
  71. package/src/migrations/update-22-1-0/update-nx-wrapper.d.ts.map +1 -0
  72. package/src/migrations/update-22-1-0/update-nx-wrapper.js +7 -0
  73. package/src/native/nx.wasi-browser.js +53 -45
  74. package/src/native/nx.wasm32-wasi.wasm +0 -0
  75. package/src/plugins/js/index.d.ts.map +1 -1
  76. package/src/plugins/js/index.js +34 -20
  77. package/src/plugins/js/lock-file/pnpm-parser.d.ts.map +1 -1
  78. package/src/plugins/js/lock-file/pnpm-parser.js +5 -3
  79. package/src/plugins/js/lock-file/project-graph-pruning.js +1 -1
  80. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +1 -1
  81. package/src/project-graph/plugins/isolation/messaging.d.ts.map +1 -1
  82. package/src/project-graph/plugins/isolation/messaging.js +2 -1
  83. package/src/project-graph/plugins/isolation/plugin-pool.js +19 -5
  84. package/src/project-graph/plugins/loaded-nx-plugin.d.ts.map +1 -1
  85. package/src/project-graph/plugins/loaded-nx-plugin.js +2 -0
  86. package/src/project-graph/plugins/resolve-plugin.d.ts.map +1 -1
  87. package/src/project-graph/plugins/resolve-plugin.js +4 -2
  88. package/src/project-graph/utils/project-configuration-utils.d.ts +1 -1
  89. package/src/project-graph/utils/project-configuration-utils.d.ts.map +1 -1
  90. package/src/project-graph/utils/project-configuration-utils.js +7 -4
  91. package/src/tasks-runner/cache.d.ts.map +1 -1
  92. package/src/tasks-runner/cache.js +27 -14
  93. package/src/tasks-runner/fork.js +3 -1
  94. package/src/tasks-runner/is-tui-enabled.d.ts.map +1 -1
  95. package/src/tasks-runner/is-tui-enabled.js +1 -1
  96. package/src/tasks-runner/pseudo-ipc.d.ts.map +1 -1
  97. package/src/tasks-runner/pseudo-ipc.js +4 -4
  98. package/src/tasks-runner/run-command.d.ts.map +1 -1
  99. package/src/tasks-runner/run-command.js +4 -1
  100. package/src/tasks-runner/task-orchestrator.d.ts +1 -1
  101. package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
  102. package/src/tasks-runner/task-orchestrator.js +2 -6
  103. package/src/utils/consume-messages-from-socket.d.ts +2 -0
  104. package/src/utils/consume-messages-from-socket.d.ts.map +1 -1
  105. package/src/utils/consume-messages-from-socket.js +27 -8
  106. package/src/utils/exit-codes.d.ts +1 -1
  107. package/src/utils/exit-codes.d.ts.map +1 -1
  108. package/src/utils/git-utils.js +1 -1
  109. package/src/utils/package-json.js +1 -1
  110. package/src/utils/package-manager.js +2 -2
  111. package/src/utils/update-nxw.d.ts.map +1 -1
  112. package/src/utils/update-nxw.js +11 -0
@@ -54,6 +54,7 @@ const handle_flush_sync_generator_changes_to_disk_1 = require("./handle-flush-sy
54
54
  const run_tasks_execution_hooks_1 = require("../message-types/run-tasks-execution-hooks");
55
55
  const handle_tasks_execution_hooks_1 = require("./handle-tasks-execution-hooks");
56
56
  const register_project_graph_listener_1 = require("../message-types/register-project-graph-listener");
57
+ const v8_1 = require("v8");
57
58
  let performanceObserver;
58
59
  let workspaceWatcherError;
59
60
  let outputsWatcherError;
@@ -99,32 +100,41 @@ async function handleMessage(socket, data) {
99
100
  (0, shutdown_utils_1.resetInactivityTimeout)(handleInactivityTimeout);
100
101
  const unparsedPayload = data;
101
102
  let payload;
103
+ let mode = 'json';
102
104
  try {
103
- payload = JSON.parse(unparsedPayload);
105
+ // JSON Message
106
+ if ((0, consume_messages_from_socket_1.isJsonMessage)(unparsedPayload)) {
107
+ payload = JSON.parse(unparsedPayload);
108
+ }
109
+ else {
110
+ // V8 Serialized Message
111
+ payload = (0, v8_1.deserialize)(Buffer.from(unparsedPayload, 'binary'));
112
+ mode = 'v8';
113
+ }
104
114
  }
105
115
  catch (e) {
106
116
  await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Invalid payload from the client`, new Error(`Unsupported payload sent to daemon server: ${unparsedPayload}`));
107
117
  }
108
118
  if (payload.type === 'PING') {
109
- await handleResult(socket, 'PING', () => Promise.resolve({ response: JSON.stringify(true), description: 'ping' }));
119
+ await handleResult(socket, 'PING', () => Promise.resolve({ response: true, description: 'ping' }), mode);
110
120
  }
111
121
  else if (payload.type === 'REQUEST_PROJECT_GRAPH') {
112
- await handleResult(socket, 'REQUEST_PROJECT_GRAPH', () => (0, handle_request_project_graph_1.handleRequestProjectGraph)());
122
+ await handleResult(socket, 'REQUEST_PROJECT_GRAPH', () => (0, handle_request_project_graph_1.handleRequestProjectGraph)(), mode);
113
123
  }
114
124
  else if (payload.type === 'HASH_TASKS') {
115
- await handleResult(socket, 'HASH_TASKS', () => (0, handle_hash_tasks_1.handleHashTasks)(payload));
125
+ await handleResult(socket, 'HASH_TASKS', () => (0, handle_hash_tasks_1.handleHashTasks)(payload), mode);
116
126
  }
117
127
  else if (payload.type === 'PROCESS_IN_BACKGROUND') {
118
- await handleResult(socket, 'PROCESS_IN_BACKGROUND', () => (0, handle_process_in_background_1.handleProcessInBackground)(payload));
128
+ await handleResult(socket, 'PROCESS_IN_BACKGROUND', () => (0, handle_process_in_background_1.handleProcessInBackground)(payload), mode);
119
129
  }
120
130
  else if (payload.type === 'RECORD_OUTPUTS_HASH') {
121
- await handleResult(socket, 'RECORD_OUTPUTS_HASH', () => (0, handle_outputs_tracking_1.handleRecordOutputsHash)(payload));
131
+ await handleResult(socket, 'RECORD_OUTPUTS_HASH', () => (0, handle_outputs_tracking_1.handleRecordOutputsHash)(payload), mode);
122
132
  }
123
133
  else if (payload.type === 'OUTPUTS_HASHES_MATCH') {
124
- await handleResult(socket, 'OUTPUTS_HASHES_MATCH', () => (0, handle_outputs_tracking_1.handleOutputsHashesMatch)(payload));
134
+ await handleResult(socket, 'OUTPUTS_HASHES_MATCH', () => (0, handle_outputs_tracking_1.handleOutputsHashesMatch)(payload), mode);
125
135
  }
126
136
  else if (payload.type === 'REQUEST_SHUTDOWN') {
127
- await handleResult(socket, 'REQUEST_SHUTDOWN', () => (0, handle_request_shutdown_1.handleRequestShutdown)(server, numberOfOpenConnections));
137
+ await handleResult(socket, 'REQUEST_SHUTDOWN', () => (0, handle_request_shutdown_1.handleRequestShutdown)(server, numberOfOpenConnections), mode);
128
138
  }
129
139
  else if (payload.type === 'REGISTER_FILE_WATCHER') {
130
140
  file_watcher_sockets_1.registeredFileWatcherSockets.push({ socket, config: payload.config });
@@ -133,61 +143,61 @@ async function handleMessage(socket, data) {
133
143
  project_graph_listener_sockets_1.registeredProjectGraphListenerSockets.push(socket);
134
144
  }
135
145
  else if ((0, glob_1.isHandleGlobMessage)(payload)) {
136
- await handleResult(socket, glob_1.GLOB, () => (0, handle_glob_1.handleGlob)(payload.globs, payload.exclude));
146
+ await handleResult(socket, glob_1.GLOB, () => (0, handle_glob_1.handleGlob)(payload.globs, payload.exclude), mode);
137
147
  }
138
148
  else if ((0, glob_1.isHandleMultiGlobMessage)(payload)) {
139
- await handleResult(socket, glob_1.MULTI_GLOB, () => (0, handle_glob_1.handleMultiGlob)(payload.globs, payload.exclude));
149
+ await handleResult(socket, glob_1.MULTI_GLOB, () => (0, handle_glob_1.handleMultiGlob)(payload.globs, payload.exclude), mode);
140
150
  }
141
151
  else if ((0, get_nx_workspace_files_1.isHandleNxWorkspaceFilesMessage)(payload)) {
142
- await handleResult(socket, get_nx_workspace_files_1.GET_NX_WORKSPACE_FILES, () => (0, handle_nx_workspace_files_1.handleNxWorkspaceFiles)(payload.projectRootMap));
152
+ await handleResult(socket, get_nx_workspace_files_1.GET_NX_WORKSPACE_FILES, () => (0, handle_nx_workspace_files_1.handleNxWorkspaceFiles)(payload.projectRootMap), mode);
143
153
  }
144
154
  else if ((0, get_files_in_directory_1.isHandleGetFilesInDirectoryMessage)(payload)) {
145
- await handleResult(socket, get_files_in_directory_1.GET_FILES_IN_DIRECTORY, () => (0, handle_get_files_in_directory_1.handleGetFilesInDirectory)(payload.dir));
155
+ await handleResult(socket, get_files_in_directory_1.GET_FILES_IN_DIRECTORY, () => (0, handle_get_files_in_directory_1.handleGetFilesInDirectory)(payload.dir), mode);
146
156
  }
147
157
  else if ((0, get_context_file_data_1.isHandleContextFileDataMessage)(payload)) {
148
- await handleResult(socket, get_context_file_data_1.GET_CONTEXT_FILE_DATA, () => (0, handle_context_file_data_1.handleContextFileData)());
158
+ await handleResult(socket, get_context_file_data_1.GET_CONTEXT_FILE_DATA, () => (0, handle_context_file_data_1.handleContextFileData)(), mode);
149
159
  }
150
160
  else if ((0, hash_glob_1.isHandleHashGlobMessage)(payload)) {
151
- await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashGlob)(payload.globs, payload.exclude));
161
+ await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashGlob)(payload.globs, payload.exclude), mode);
152
162
  }
153
163
  else if ((0, hash_glob_1.isHandleHashMultiGlobMessage)(payload)) {
154
- await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashMultiGlob)(payload.globGroups));
164
+ await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashMultiGlob)(payload.globGroups), mode);
155
165
  }
156
166
  else if ((0, task_history_1.isHandleGetFlakyTasksMessage)(payload)) {
157
- await handleResult(socket, task_history_1.GET_FLAKY_TASKS, () => (0, handle_task_history_1.handleGetFlakyTasks)(payload.hashes));
167
+ await handleResult(socket, task_history_1.GET_FLAKY_TASKS, () => (0, handle_task_history_1.handleGetFlakyTasks)(payload.hashes), mode);
158
168
  }
159
169
  else if ((0, task_history_1.isHandleGetEstimatedTaskTimings)(payload)) {
160
- await handleResult(socket, task_history_1.GET_ESTIMATED_TASK_TIMINGS, () => (0, handle_task_history_1.handleGetEstimatedTaskTimings)(payload.targets));
170
+ await handleResult(socket, task_history_1.GET_ESTIMATED_TASK_TIMINGS, () => (0, handle_task_history_1.handleGetEstimatedTaskTimings)(payload.targets), mode);
161
171
  }
162
172
  else if ((0, task_history_1.isHandleWriteTaskRunsToHistoryMessage)(payload)) {
163
- await handleResult(socket, task_history_1.RECORD_TASK_RUNS, () => (0, handle_task_history_1.handleRecordTaskRuns)(payload.taskRuns));
173
+ await handleResult(socket, task_history_1.RECORD_TASK_RUNS, () => (0, handle_task_history_1.handleRecordTaskRuns)(payload.taskRuns), mode);
164
174
  }
165
175
  else if ((0, force_shutdown_1.isHandleForceShutdownMessage)(payload)) {
166
- await handleResult(socket, 'FORCE_SHUTDOWN', () => (0, handle_force_shutdown_1.handleForceShutdown)(server));
176
+ await handleResult(socket, 'FORCE_SHUTDOWN', () => (0, handle_force_shutdown_1.handleForceShutdown)(server), mode);
167
177
  }
168
178
  else if ((0, get_sync_generator_changes_1.isHandleGetSyncGeneratorChangesMessage)(payload)) {
169
- await handleResult(socket, get_sync_generator_changes_1.GET_SYNC_GENERATOR_CHANGES, () => (0, handle_get_sync_generator_changes_1.handleGetSyncGeneratorChanges)(payload.generators));
179
+ await handleResult(socket, get_sync_generator_changes_1.GET_SYNC_GENERATOR_CHANGES, () => (0, handle_get_sync_generator_changes_1.handleGetSyncGeneratorChanges)(payload.generators), mode);
170
180
  }
171
181
  else if ((0, flush_sync_generator_changes_to_disk_1.isHandleFlushSyncGeneratorChangesToDiskMessage)(payload)) {
172
- await handleResult(socket, flush_sync_generator_changes_to_disk_1.FLUSH_SYNC_GENERATOR_CHANGES_TO_DISK, () => (0, handle_flush_sync_generator_changes_to_disk_1.handleFlushSyncGeneratorChangesToDisk)(payload.generators));
182
+ await handleResult(socket, flush_sync_generator_changes_to_disk_1.FLUSH_SYNC_GENERATOR_CHANGES_TO_DISK, () => (0, handle_flush_sync_generator_changes_to_disk_1.handleFlushSyncGeneratorChangesToDisk)(payload.generators), mode);
173
183
  }
174
184
  else if ((0, get_registered_sync_generators_1.isHandleGetRegisteredSyncGeneratorsMessage)(payload)) {
175
- await handleResult(socket, get_registered_sync_generators_1.GET_REGISTERED_SYNC_GENERATORS, () => (0, handle_get_registered_sync_generators_1.handleGetRegisteredSyncGenerators)());
185
+ await handleResult(socket, get_registered_sync_generators_1.GET_REGISTERED_SYNC_GENERATORS, () => (0, handle_get_registered_sync_generators_1.handleGetRegisteredSyncGenerators)(), mode);
176
186
  }
177
187
  else if ((0, update_workspace_context_1.isHandleUpdateWorkspaceContextMessage)(payload)) {
178
- await handleResult(socket, update_workspace_context_1.UPDATE_WORKSPACE_CONTEXT, () => (0, handle_update_workspace_context_1.handleUpdateWorkspaceContext)(payload.createdFiles, payload.updatedFiles, payload.deletedFiles));
188
+ await handleResult(socket, update_workspace_context_1.UPDATE_WORKSPACE_CONTEXT, () => (0, handle_update_workspace_context_1.handleUpdateWorkspaceContext)(payload.createdFiles, payload.updatedFiles, payload.deletedFiles), mode);
179
189
  }
180
190
  else if ((0, run_tasks_execution_hooks_1.isHandlePreTasksExecutionMessage)(payload)) {
181
- await handleResult(socket, run_tasks_execution_hooks_1.PRE_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPreTasksExecution)(payload.context));
191
+ await handleResult(socket, run_tasks_execution_hooks_1.PRE_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPreTasksExecution)(payload.context), mode);
182
192
  }
183
193
  else if ((0, run_tasks_execution_hooks_1.isHandlePostTasksExecutionMessage)(payload)) {
184
- await handleResult(socket, run_tasks_execution_hooks_1.POST_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPostTasksExecution)(payload.context));
194
+ await handleResult(socket, run_tasks_execution_hooks_1.POST_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPostTasksExecution)(payload.context), mode);
185
195
  }
186
196
  else {
187
197
  await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Invalid payload from the client`, new Error(`Unsupported payload sent to daemon server: ${unparsedPayload}`));
188
198
  }
189
199
  }
190
- async function handleResult(socket, type, hrFn) {
200
+ async function handleResult(socket, type, hrFn, mode) {
191
201
  let hr;
192
202
  const startMark = new Date();
193
203
  try {
@@ -201,10 +211,13 @@ async function handleResult(socket, type, hrFn) {
201
211
  await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, hr.description, hr.error);
202
212
  }
203
213
  else {
204
- await (0, shutdown_utils_1.respondToClient)(socket, hr.response, hr.description);
214
+ const response = typeof hr.response === 'string'
215
+ ? hr.response
216
+ : serializeUnserializedResult(hr.response, mode);
217
+ await (0, shutdown_utils_1.respondToClient)(socket, response, hr.description);
205
218
  }
206
219
  const endMark = new Date();
207
- logger_1.serverLogger.log(`Handled ${type}. Handling time: ${doneHandlingMark.getTime() - startMark.getTime()}. Response time: ${endMark.getTime() - doneHandlingMark.getTime()}.`);
220
+ logger_1.serverLogger.log(`Handled ${mode} message ${type}. Handling time: ${doneHandlingMark.getTime() - startMark.getTime()}. Response time: ${endMark.getTime() - doneHandlingMark.getTime()}.`);
208
221
  }
209
222
  function handleInactivityTimeout() {
210
223
  if ((0, file_watcher_sockets_1.hasRegisteredFileWatcherSockets)() ||
@@ -415,3 +428,11 @@ async function startServer() {
415
428
  }
416
429
  });
417
430
  }
431
+ function serializeUnserializedResult(response, mode) {
432
+ if (mode === 'json') {
433
+ return JSON.stringify(response);
434
+ }
435
+ else {
436
+ return (0, v8_1.serialize)(response).toString('binary');
437
+ }
438
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"shutdown-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/shutdown-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AAI9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAErD;AAED,wBAAgB,kBAAkB,YAEjC;AAID,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,QAE3D;AAED,wBAAgB,wBAAwB,YAEvC;AAED,UAAU,oCAAoC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,wBAAsB,8BAA8B,CAAC,EACnD,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAmCtC;AAID,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,oBAcpB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,iBAsBb"}
1
+ {"version":3,"file":"shutdown-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/shutdown-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAS5C,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AAI9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAErD;AAED,wBAAgB,kBAAkB,YAEjC;AAID,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,QAE3D;AAED,wBAAgB,wBAAwB,YAEvC;AAED,UAAU,oCAAoC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,wBAAsB,8BAA8B,CAAC,EACnD,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAmCtC;AAID,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,oBAcpB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,iBAsBb"}
@@ -16,6 +16,7 @@ const cache_1 = require("../cache");
16
16
  const error_types_1 = require("../../project-graph/error-types");
17
17
  const db_connection_1 = require("../../utils/db-connection");
18
18
  const get_plugins_1 = require("../../project-graph/plugins/get-plugins");
19
+ const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
19
20
  exports.SERVER_INACTIVITY_TIMEOUT_MS = 10800000; // 10800000 ms = 3 hours
20
21
  let watcherInstance;
21
22
  function storeWatcherInstance(instance) {
@@ -70,7 +71,7 @@ function respondToClient(socket, response, description) {
70
71
  if (description) {
71
72
  logger_1.serverLogger.requestLog(`Responding to the client.`, description);
72
73
  }
73
- socket.write(`${response}${String.fromCodePoint(4)}`, (err) => {
74
+ socket.write(response + consume_messages_from_socket_1.MESSAGE_END_SEQ, (err) => {
74
75
  if (err) {
75
76
  console.error(err);
76
77
  }
@@ -10,4 +10,15 @@ export declare const getForkedProcessOsSocketPath: (id: string) => string;
10
10
  export declare const getPluginOsSocketPath: (id: string) => string;
11
11
  export declare function killSocketOrPath(): void;
12
12
  export declare function serializeResult(error: Error | null, serializedProjectGraph: string | null, serializedSourceMaps: string | null): string | null;
13
+ /**
14
+ * Helper to serialize data either using v8 serialization or JSON serialization, based on
15
+ * the user's preference and the success of each method. Should only be used by "client" side
16
+ * connections, daemon or other servers should respond based on the type of serialization used
17
+ * by the client it is communicating with.
18
+ *
19
+ * @param data Data to serialize
20
+ * @param force Forces one serialization method over the other
21
+ * @returns Serialized data as a string
22
+ */
23
+ export declare function serialize(data: any, force?: 'v8' | 'json'): string;
13
24
  //# sourceMappingURL=socket-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/socket-utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS,SAAyB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,cAM/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,IAAI,MAAM,WAMtD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,IAAI,MAAM,WAM/C,CAAC;AAgBF,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAGD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,sBAAsB,EAAE,MAAM,GAAG,IAAI,EACrC,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI,CAKf"}
1
+ {"version":3,"file":"socket-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/socket-utils.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS,SAAyB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,cAM/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,IAAI,MAAM,WAMtD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,IAAI,MAAM,WAM/C,CAAC;AAgBF,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAGD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,sBAAsB,EAAE,MAAM,GAAG,IAAI,EACrC,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CA4BlE"}
@@ -3,11 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPluginOsSocketPath = exports.getForkedProcessOsSocketPath = exports.getFullOsSocketPath = exports.isWindows = void 0;
4
4
  exports.killSocketOrPath = killSocketOrPath;
5
5
  exports.serializeResult = serializeResult;
6
+ exports.serialize = serialize;
6
7
  const fs_1 = require("fs");
7
8
  const os_1 = require("os");
8
9
  const path_1 = require("path");
9
10
  const tmp_dir_1 = require("./tmp-dir");
10
11
  const serializable_error_1 = require("../utils/serializable-error");
12
+ const is_v8_serializer_enabled_1 = require("./is-v8-serializer-enabled");
13
+ const v8_1 = require("v8");
11
14
  exports.isWindows = (0, os_1.platform)() === 'win32';
12
15
  /**
13
16
  * For IPC with the daemon server we use unix sockets or windows named pipes, depending on the user's operating system.
@@ -53,3 +56,41 @@ function serializeResult(error, serializedProjectGraph, serializedSourceMaps) {
53
56
  // We do not want to repeat work `JSON.stringify`ing an object containing the potentially large project graph so merge as strings
54
57
  return `{ "error": ${JSON.stringify(error ? (0, serializable_error_1.createSerializableError)(error) : error)}, "projectGraph": ${serializedProjectGraph}, "sourceMaps": ${serializedSourceMaps} }`;
55
58
  }
59
+ /**
60
+ * Helper to serialize data either using v8 serialization or JSON serialization, based on
61
+ * the user's preference and the success of each method. Should only be used by "client" side
62
+ * connections, daemon or other servers should respond based on the type of serialization used
63
+ * by the client it is communicating with.
64
+ *
65
+ * @param data Data to serialize
66
+ * @param force Forces one serialization method over the other
67
+ * @returns Serialized data as a string
68
+ */
69
+ function serialize(data, force) {
70
+ if (force === 'v8' || (0, is_v8_serializer_enabled_1.isV8SerializerEnabled)()) {
71
+ try {
72
+ return (0, v8_1.serialize)(data).toString('binary');
73
+ }
74
+ catch (e) {
75
+ if (force !== 'v8') {
76
+ console.warn(`Data could not be serialized using v8 serialization: ${e}. Falling back to JSON serialization.`);
77
+ // Fall back to JSON serialization
78
+ return JSON.stringify(data);
79
+ }
80
+ throw e;
81
+ }
82
+ }
83
+ else {
84
+ try {
85
+ return JSON.stringify(data);
86
+ }
87
+ catch (e) {
88
+ if (force !== 'json') {
89
+ // Fall back to v8 serialization
90
+ console.warn(`Data could not be serialized using JSON.stringify: ${e}. Falling back to v8 serialization.`);
91
+ return (0, v8_1.serialize)(data).toString('binary');
92
+ }
93
+ throw e;
94
+ }
95
+ }
96
+ }
@@ -19,7 +19,7 @@ export { readModulePackageJson, installPackageToTmp, } from './utils/package-jso
19
19
  export { splitByColons } from './utils/split-target';
20
20
  export { hashObject } from './hasher/file-hasher';
21
21
  export { hashWithWorkspaceContext, hashMultiGlobWithWorkspaceContext, } from './utils/workspace-context';
22
- export { createProjectRootMappingsFromProjectConfigurations, findProjectForPath, } from './project-graph/utils/find-project-for-path';
22
+ export { createProjectRootMappingsFromProjectConfigurations, createProjectRootMappings, findProjectForPath, } from './project-graph/utils/find-project-for-path';
23
23
  export { retrieveProjectConfigurations } from './project-graph/utils/retrieve-workspace-files';
24
24
  export { LoadedNxPlugin } from './project-graph/plugins/loaded-nx-plugin';
25
25
  export * from './project-graph/error-types';
@@ -29,4 +29,5 @@ export { isCI } from './utils/is-ci';
29
29
  export { isUsingPrettierInTree } from './utils/is-using-prettier';
30
30
  export { readYamlFile } from './utils/fileutils';
31
31
  export { globalSpinner } from './utils/spinner';
32
+ export { signalToCode } from './utils/exit-codes';
32
33
  //# sourceMappingURL=devkit-internals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"devkit-internals.d.ts","sourceRoot":"","sources":["../../../../packages/nx/src/devkit-internals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,gDAAgD,EAAE,MAAM,gDAAgD,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AAC9F,OAAO,EACL,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kDAAkD,EAClD,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"devkit-internals.d.ts","sourceRoot":"","sources":["../../../../packages/nx/src/devkit-internals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,gDAAgD,EAAE,MAAM,gDAAgD,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AAC9F,OAAO,EACL,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kDAAkD,EAClD,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.globalSpinner = exports.readYamlFile = exports.isUsingPrettierInTree = exports.isCI = exports.interpolate = exports.registerTsProject = exports.LoadedNxPlugin = exports.retrieveProjectConfigurations = exports.findProjectForPath = exports.createProjectRootMappingsFromProjectConfigurations = exports.hashMultiGlobWithWorkspaceContext = exports.hashWithWorkspaceContext = exports.hashObject = exports.splitByColons = exports.installPackageToTmp = exports.readModulePackageJson = exports.stripIndent = exports.sortObjectByKeys = exports.combineOptionsForExecutor = exports.splitTarget = exports.getIgnoreObjectForTree = exports.findMatchingConfigFiles = exports.readProjectConfigurationsFromRootMap = exports.mergeTargetConfigurations = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.parseExecutor = exports.getExecutorInformation = exports.createTempNpmDirectory = void 0;
3
+ exports.signalToCode = exports.globalSpinner = exports.readYamlFile = exports.isUsingPrettierInTree = exports.isCI = exports.interpolate = exports.registerTsProject = exports.LoadedNxPlugin = exports.retrieveProjectConfigurations = exports.findProjectForPath = exports.createProjectRootMappings = exports.createProjectRootMappingsFromProjectConfigurations = exports.hashMultiGlobWithWorkspaceContext = exports.hashWithWorkspaceContext = exports.hashObject = exports.splitByColons = exports.installPackageToTmp = exports.readModulePackageJson = exports.stripIndent = exports.sortObjectByKeys = exports.combineOptionsForExecutor = exports.splitTarget = exports.getIgnoreObjectForTree = exports.findMatchingConfigFiles = exports.readProjectConfigurationsFromRootMap = exports.mergeTargetConfigurations = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.parseExecutor = exports.getExecutorInformation = exports.createTempNpmDirectory = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  /**
6
6
  * Note to developers: STOP! These exports are available via requireNx in @nx/devkit.
@@ -45,6 +45,7 @@ Object.defineProperty(exports, "hashWithWorkspaceContext", { enumerable: true, g
45
45
  Object.defineProperty(exports, "hashMultiGlobWithWorkspaceContext", { enumerable: true, get: function () { return workspace_context_1.hashMultiGlobWithWorkspaceContext; } });
46
46
  var find_project_for_path_1 = require("./project-graph/utils/find-project-for-path");
47
47
  Object.defineProperty(exports, "createProjectRootMappingsFromProjectConfigurations", { enumerable: true, get: function () { return find_project_for_path_1.createProjectRootMappingsFromProjectConfigurations; } });
48
+ Object.defineProperty(exports, "createProjectRootMappings", { enumerable: true, get: function () { return find_project_for_path_1.createProjectRootMappings; } });
48
49
  Object.defineProperty(exports, "findProjectForPath", { enumerable: true, get: function () { return find_project_for_path_1.findProjectForPath; } });
49
50
  var retrieve_workspace_files_2 = require("./project-graph/utils/retrieve-workspace-files");
50
51
  Object.defineProperty(exports, "retrieveProjectConfigurations", { enumerable: true, get: function () { return retrieve_workspace_files_2.retrieveProjectConfigurations; } });
@@ -63,3 +64,5 @@ var fileutils_1 = require("./utils/fileutils");
63
64
  Object.defineProperty(exports, "readYamlFile", { enumerable: true, get: function () { return fileutils_1.readYamlFile; } });
64
65
  var spinner_1 = require("./utils/spinner");
65
66
  Object.defineProperty(exports, "globalSpinner", { enumerable: true, get: function () { return spinner_1.globalSpinner; } });
67
+ var exit_codes_1 = require("./utils/exit-codes");
68
+ Object.defineProperty(exports, "signalToCode", { enumerable: true, get: function () { return exit_codes_1.signalToCode; } });
@@ -1 +1 @@
1
- {"version":3,"file":"format-changed-files-with-prettier-if-available.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/internal-utils/format-changed-files-with-prettier-if-available.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC;;;GAGG;AACH,wBAAsB,yCAAyC,CAC7D,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,kCAAkC,CACtD,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA2D9B"}
1
+ {"version":3,"file":"format-changed-files-with-prettier-if-available.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/internal-utils/format-changed-files-with-prettier-if-available.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAGpC;;;GAGG;AACH,wBAAsB,yCAAyC,CAC7D,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,kCAAkC,CACtD,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8D9B"}
@@ -4,6 +4,7 @@ exports.formatChangedFilesWithPrettierIfAvailable = formatChangedFilesWithPretti
4
4
  exports.formatFilesWithPrettierIfAvailable = formatFilesWithPrettierIfAvailable;
5
5
  const path = require("path");
6
6
  const is_using_prettier_1 = require("../../utils/is-using-prettier");
7
+ const installation_directory_1 = require("../../utils/installation-directory");
7
8
  /**
8
9
  * Formats all the created or updated files using Prettier
9
10
  * @param tree - the file system tree
@@ -19,7 +20,10 @@ async function formatFilesWithPrettierIfAvailable(files, root, options) {
19
20
  const results = new Map();
20
21
  let prettier;
21
22
  try {
22
- prettier = await Promise.resolve().then(() => require('prettier'));
23
+ const prettierPath = require.resolve('prettier', {
24
+ paths: [...(0, installation_directory_1.getNxRequirePaths)(root), __dirname],
25
+ });
26
+ prettier = require(prettierPath);
23
27
  /**
24
28
  * Even after we discovered prettier in node_modules, we need to be sure that the user is intentionally using prettier
25
29
  * before proceeding to format with it.
@@ -6,4 +6,5 @@ import { TaskDetails } from '../native';
6
6
  export declare function getTaskDetails(): TaskDetails | null;
7
7
  export declare function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, nxJson: NxJsonConfiguration, tasksDetails: TaskDetails | null): Promise<void>;
8
8
  export declare function hashTask(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, task: Task, env: NodeJS.ProcessEnv, taskDetails: TaskDetails | null): Promise<void>;
9
+ export declare function hashTasks(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, taskDetails: TaskDetails | null): Promise<void>;
9
10
  //# sourceMappingURL=hash-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash-task.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/hash-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAuB,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7D,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CASnD;AAED,wBAAsB,6CAA6C,CACjE,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,WAAW,GAAG,IAAI,iBAgDjC;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,WAAW,GAAG,IAAI,iBAuChC"}
1
+ {"version":3,"file":"hash-task.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/hash-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAuB,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7D,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CASnD;AAED,wBAAsB,6CAA6C,CACjE,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,WAAW,GAAG,IAAI,iBAgDjC;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,WAAW,GAAG,IAAI,iBAuChC;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,WAAW,GAAG,IAAI,iBAuEhC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTaskDetails = getTaskDetails;
4
4
  exports.hashTasksThatDoNotDependOnOutputsOfOtherTasks = hashTasksThatDoNotDependOnOutputsOfOtherTasks;
5
5
  exports.hashTask = hashTask;
6
+ exports.hashTasks = hashTasks;
6
7
  const utils_1 = require("../tasks-runner/utils");
7
8
  const project_graph_1 = require("../project-graph/project-graph");
8
9
  const task_hasher_1 = require("./task-hasher");
@@ -83,3 +84,59 @@ async function hashTask(hasher, projectGraph, taskGraph, task, env, taskDetails)
83
84
  performance.mark('hashSingleTask:end');
84
85
  performance.measure('hashSingleTask', 'hashSingleTask:start', 'hashSingleTask:end');
85
86
  }
87
+ async function hashTasks(hasher, projectGraph, taskGraph, env, taskDetails) {
88
+ performance.mark('hashMultipleTasks:start');
89
+ const projectsConfigurations = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
90
+ const nxJson = (0, nx_json_1.readNxJson)();
91
+ const tasks = Object.values(taskGraph.tasks).filter((task) => !task.hash);
92
+ // Separate tasks with custom hashers from those without
93
+ const tasksWithCustomHashers = [];
94
+ const tasksWithoutCustomHashers = [];
95
+ for (const task of tasks) {
96
+ const customHasher = (0, utils_1.getCustomHasher)(task, projectGraph);
97
+ if (customHasher) {
98
+ tasksWithCustomHashers.push(task);
99
+ }
100
+ else {
101
+ tasksWithoutCustomHashers.push(task);
102
+ }
103
+ }
104
+ // Hash tasks with custom hashers individually
105
+ const customHasherPromises = tasksWithCustomHashers.map(async (task) => {
106
+ const customHasher = (0, utils_1.getCustomHasher)(task, projectGraph);
107
+ const { value, details } = await customHasher(task, {
108
+ hasher,
109
+ projectGraph,
110
+ taskGraph,
111
+ workspaceConfig: projectsConfigurations,
112
+ projectsConfigurations,
113
+ nxJsonConfiguration: nxJson,
114
+ env,
115
+ });
116
+ task.hash = value;
117
+ task.hashDetails = details;
118
+ });
119
+ // Hash tasks without custom hashers in batch
120
+ let batchHashPromise = Promise.resolve();
121
+ if (tasksWithoutCustomHashers.length > 0) {
122
+ batchHashPromise = hasher
123
+ .hashTasks(tasksWithoutCustomHashers, taskGraph, env)
124
+ .then((hashes) => {
125
+ for (let i = 0; i < tasksWithoutCustomHashers.length; i++) {
126
+ tasksWithoutCustomHashers[i].hash = hashes[i].value;
127
+ tasksWithoutCustomHashers[i].hashDetails = hashes[i].details;
128
+ }
129
+ });
130
+ }
131
+ await Promise.all([...customHasherPromises, batchHashPromise]);
132
+ if (taskDetails?.recordTaskDetails) {
133
+ taskDetails.recordTaskDetails(tasks.map((task) => ({
134
+ hash: task.hash,
135
+ project: task.target.project,
136
+ target: task.target.target,
137
+ configuration: task.target.configuration,
138
+ })));
139
+ }
140
+ performance.mark('hashMultipleTasks:end');
141
+ performance.measure('hashMultipleTasks', 'hashMultipleTasks:start', 'hashMultipleTasks:end');
142
+ }
@@ -0,0 +1,3 @@
1
+ import type { Tree } from '../../generators/tree';
2
+ export default function (tree: Tree): Promise<void>;
3
+ //# sourceMappingURL=update-nx-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-nx-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/migrations/update-22-1-0/update-nx-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAGlD,yBAA+B,IAAI,EAAE,IAAI,iBAExC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const update_nxw_1 = require("../../utils/update-nxw");
5
+ async function default_1(tree) {
6
+ (0, update_nxw_1.updateNxw)(tree);
7
+ }
@@ -59,51 +59,55 @@ function __napi_rs_initialize_modules(__napiInstance) {
59
59
  __napiInstance.exports['__napi_register__get_transformable_outputs_5']?.()
60
60
  __napiInstance.exports['__napi_register__hash_array_6']?.()
61
61
  __napiInstance.exports['__napi_register__hash_file_7']?.()
62
- __napiInstance.exports['__napi_register__can_install_nx_console_8']?.()
63
- __napiInstance.exports['__napi_register__install_nx_console_9']?.()
64
- __napiInstance.exports['__napi_register__NxConsolePreferences_struct_10']?.()
65
- __napiInstance.exports['__napi_register__NxConsolePreferences_impl_14']?.()
66
- __napiInstance.exports['__napi_register__log_debug_15']?.()
67
- __napiInstance.exports['__napi_register__IS_WASM_16']?.()
68
- __napiInstance.exports['__napi_register__get_binary_target_17']?.()
69
- __napiInstance.exports['__napi_register__ImportResult_struct_18']?.()
70
- __napiInstance.exports['__napi_register__find_imports_19']?.()
71
- __napiInstance.exports['__napi_register__transfer_project_graph_20']?.()
72
- __napiInstance.exports['__napi_register__ExternalNode_struct_21']?.()
73
- __napiInstance.exports['__napi_register__Target_struct_22']?.()
74
- __napiInstance.exports['__napi_register__Project_struct_23']?.()
75
- __napiInstance.exports['__napi_register__ProjectGraph_struct_24']?.()
76
- __napiInstance.exports['__napi_register__HashPlanInspector_struct_25']?.()
77
- __napiInstance.exports['__napi_register__HashPlanInspector_impl_28']?.()
78
- __napiInstance.exports['__napi_register__HashPlanner_struct_29']?.()
79
- __napiInstance.exports['__napi_register__HashPlanner_impl_33']?.()
80
- __napiInstance.exports['__napi_register__HashDetails_struct_34']?.()
81
- __napiInstance.exports['__napi_register__HasherOptions_struct_35']?.()
82
- __napiInstance.exports['__napi_register__TaskHasher_struct_36']?.()
83
- __napiInstance.exports['__napi_register__TaskHasher_impl_39']?.()
84
- __napiInstance.exports['__napi_register__Task_struct_40']?.()
85
- __napiInstance.exports['__napi_register__TaskTarget_struct_41']?.()
86
- __napiInstance.exports['__napi_register__TaskResult_struct_42']?.()
87
- __napiInstance.exports['__napi_register__TaskGraph_struct_43']?.()
88
- __napiInstance.exports['__napi_register__FileData_struct_44']?.()
89
- __napiInstance.exports['__napi_register__InputsInput_struct_45']?.()
90
- __napiInstance.exports['__napi_register__FileSetInput_struct_46']?.()
91
- __napiInstance.exports['__napi_register__RuntimeInput_struct_47']?.()
92
- __napiInstance.exports['__napi_register__EnvironmentInput_struct_48']?.()
93
- __napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_49']?.()
94
- __napiInstance.exports['__napi_register__DepsOutputsInput_struct_50']?.()
95
- __napiInstance.exports['__napi_register__NxJson_struct_51']?.()
96
- __napiInstance.exports['__napi_register__is_ai_agent_52']?.()
97
- __napiInstance.exports['__napi_register__FileLock_struct_53']?.()
98
- __napiInstance.exports['__napi_register__FileLock_impl_55']?.()
99
- __napiInstance.exports['__napi_register__WorkspaceContext_struct_56']?.()
100
- __napiInstance.exports['__napi_register__WorkspaceContext_impl_67']?.()
101
- __napiInstance.exports['__napi_register__WorkspaceErrors_68']?.()
102
- __napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_69']?.()
103
- __napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_70']?.()
104
- __napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_71']?.()
105
- __napiInstance.exports['__napi_register__FileMap_struct_72']?.()
106
- __napiInstance.exports['__napi_register____test_only_transfer_file_map_73']?.()
62
+ __napiInstance.exports['__napi_register__SupportedEditor_8']?.()
63
+ __napiInstance.exports['__napi_register__can_install_nx_console_9']?.()
64
+ __napiInstance.exports['__napi_register__can_install_nx_console_for_editor_10']?.()
65
+ __napiInstance.exports['__napi_register__install_nx_console_11']?.()
66
+ __napiInstance.exports['__napi_register__install_nx_console_for_editor_12']?.()
67
+ __napiInstance.exports['__napi_register__is_editor_installed_13']?.()
68
+ __napiInstance.exports['__napi_register__NxConsolePreferences_struct_14']?.()
69
+ __napiInstance.exports['__napi_register__NxConsolePreferences_impl_18']?.()
70
+ __napiInstance.exports['__napi_register__log_debug_19']?.()
71
+ __napiInstance.exports['__napi_register__IS_WASM_20']?.()
72
+ __napiInstance.exports['__napi_register__get_binary_target_21']?.()
73
+ __napiInstance.exports['__napi_register__ImportResult_struct_22']?.()
74
+ __napiInstance.exports['__napi_register__find_imports_23']?.()
75
+ __napiInstance.exports['__napi_register__transfer_project_graph_24']?.()
76
+ __napiInstance.exports['__napi_register__ExternalNode_struct_25']?.()
77
+ __napiInstance.exports['__napi_register__Target_struct_26']?.()
78
+ __napiInstance.exports['__napi_register__Project_struct_27']?.()
79
+ __napiInstance.exports['__napi_register__ProjectGraph_struct_28']?.()
80
+ __napiInstance.exports['__napi_register__HashPlanInspector_struct_29']?.()
81
+ __napiInstance.exports['__napi_register__HashPlanInspector_impl_32']?.()
82
+ __napiInstance.exports['__napi_register__HashPlanner_struct_33']?.()
83
+ __napiInstance.exports['__napi_register__HashPlanner_impl_37']?.()
84
+ __napiInstance.exports['__napi_register__HashDetails_struct_38']?.()
85
+ __napiInstance.exports['__napi_register__HasherOptions_struct_39']?.()
86
+ __napiInstance.exports['__napi_register__TaskHasher_struct_40']?.()
87
+ __napiInstance.exports['__napi_register__TaskHasher_impl_43']?.()
88
+ __napiInstance.exports['__napi_register__Task_struct_44']?.()
89
+ __napiInstance.exports['__napi_register__TaskTarget_struct_45']?.()
90
+ __napiInstance.exports['__napi_register__TaskResult_struct_46']?.()
91
+ __napiInstance.exports['__napi_register__TaskGraph_struct_47']?.()
92
+ __napiInstance.exports['__napi_register__FileData_struct_48']?.()
93
+ __napiInstance.exports['__napi_register__InputsInput_struct_49']?.()
94
+ __napiInstance.exports['__napi_register__FileSetInput_struct_50']?.()
95
+ __napiInstance.exports['__napi_register__RuntimeInput_struct_51']?.()
96
+ __napiInstance.exports['__napi_register__EnvironmentInput_struct_52']?.()
97
+ __napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_53']?.()
98
+ __napiInstance.exports['__napi_register__DepsOutputsInput_struct_54']?.()
99
+ __napiInstance.exports['__napi_register__NxJson_struct_55']?.()
100
+ __napiInstance.exports['__napi_register__is_ai_agent_56']?.()
101
+ __napiInstance.exports['__napi_register__FileLock_struct_57']?.()
102
+ __napiInstance.exports['__napi_register__FileLock_impl_59']?.()
103
+ __napiInstance.exports['__napi_register__WorkspaceContext_struct_60']?.()
104
+ __napiInstance.exports['__napi_register__WorkspaceContext_impl_71']?.()
105
+ __napiInstance.exports['__napi_register__WorkspaceErrors_72']?.()
106
+ __napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_73']?.()
107
+ __napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_74']?.()
108
+ __napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_75']?.()
109
+ __napiInstance.exports['__napi_register__FileMap_struct_76']?.()
110
+ __napiInstance.exports['__napi_register____test_only_transfer_file_map_77']?.()
107
111
  }
108
112
  export const FileLock = __napiModule.exports.FileLock
109
113
  export const HashPlanInspector = __napiModule.exports.HashPlanInspector
@@ -113,6 +117,7 @@ export const NxConsolePreferences = __napiModule.exports.NxConsolePreferences
113
117
  export const TaskHasher = __napiModule.exports.TaskHasher
114
118
  export const WorkspaceContext = __napiModule.exports.WorkspaceContext
115
119
  export const canInstallNxConsole = __napiModule.exports.canInstallNxConsole
120
+ export const canInstallNxConsoleForEditor = __napiModule.exports.canInstallNxConsoleForEditor
116
121
  export const copy = __napiModule.exports.copy
117
122
  export const expandOutputs = __napiModule.exports.expandOutputs
118
123
  export const findImports = __napiModule.exports.findImports
@@ -122,10 +127,13 @@ export const getTransformableOutputs = __napiModule.exports.getTransformableOutp
122
127
  export const hashArray = __napiModule.exports.hashArray
123
128
  export const hashFile = __napiModule.exports.hashFile
124
129
  export const installNxConsole = __napiModule.exports.installNxConsole
130
+ export const installNxConsoleForEditor = __napiModule.exports.installNxConsoleForEditor
125
131
  export const IS_WASM = __napiModule.exports.IS_WASM
126
132
  export const isAiAgent = __napiModule.exports.isAiAgent
133
+ export const isEditorInstalled = __napiModule.exports.isEditorInstalled
127
134
  export const logDebug = __napiModule.exports.logDebug
128
135
  export const remove = __napiModule.exports.remove
136
+ export const SupportedEditor = __napiModule.exports.SupportedEditor
129
137
  export const testOnlyTransferFileMap = __napiModule.exports.testOnlyTransferFileMap
130
138
  export const transferProjectGraph = __napiModule.exports.transferProjectGraph
131
139
  export const validateOutputs = __napiModule.exports.validateOutputs
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/plugins/js/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAkBrC,eAAO,MAAM,IAAI,oCAAoC,CAAC;AAStD,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AA8CF,eAAO,MAAM,kBAAkB,EAAE,kBAkDhC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/plugins/js/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAkBrC,eAAO,MAAM,IAAI,oCAAoC,CAAC;AAKtD,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AAkDF,eAAO,MAAM,kBAAkB,EAAE,kBAgDhC,CAAC"}