@ohos-ports/nx 23.3.0-beta.2 → 24.0.2-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/README.md +3 -6
- package/dist/bin/nx.js +2 -2
- package/dist/bin/post-install.js +5 -3
- package/dist/nx-cloud-internals.d.ts +1 -0
- package/dist/nx-cloud-internals.js +7 -1
- package/dist/src/adapter/ngcli-adapter.js +2 -2
- package/dist/src/ai/clone-ai-config-repo.js +49 -12
- package/dist/src/command-line/add/add.d.ts +2 -0
- package/dist/src/command-line/add/add.js +23 -5
- package/dist/src/command-line/affected/affected.js +2 -2
- package/dist/src/command-line/configure-ai-agents/configure-ai-agents.js +0 -12
- package/dist/src/command-line/graph/graph.js +38 -10
- package/dist/src/command-line/init/command-object.js +0 -12
- package/dist/src/command-line/init/implementation/add-nx-to-nest.js +21 -62
- package/dist/src/command-line/init/init-v2.js +0 -2
- package/dist/src/command-line/migrate/agentic/close-agent-session.d.ts +1 -1
- package/dist/src/command-line/migrate/agentic/close-agent-session.js +4 -3
- package/dist/src/command-line/migrate/agentic/definitions.d.ts +1 -3
- package/dist/src/command-line/migrate/agentic/definitions.js +5 -97
- package/dist/src/command-line/migrate/agentic/handoff-gitignore.d.ts +7 -45
- package/dist/src/command-line/migrate/agentic/handoff-gitignore.js +9 -51
- package/dist/src/command-line/migrate/agentic/handoff.d.ts +1 -43
- package/dist/src/command-line/migrate/agentic/handoff.js +3 -119
- package/dist/src/command-line/migrate/agentic/instruction-files.d.ts +0 -21
- package/dist/src/command-line/migrate/agentic/instruction-files.js +6 -27
- package/dist/src/command-line/migrate/agentic/master/run-master-session.d.ts +19 -1
- package/dist/src/command-line/migrate/agentic/master/run-master-session.js +88 -49
- package/dist/src/command-line/migrate/agentic/master/spawn-master.d.ts +1 -0
- package/dist/src/command-line/migrate/agentic/master/spawn-master.js +86 -24
- package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.d.ts +2 -2
- package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.js +2 -2
- package/dist/src/command-line/migrate/agentic/prompts/fragments.d.ts +1 -12
- package/dist/src/command-line/migrate/agentic/prompts/fragments.js +8 -17
- package/dist/src/command-line/migrate/agentic/prompts/shared-rendering.d.ts +0 -15
- package/dist/src/command-line/migrate/agentic/prompts/shared-rendering.js +3 -100
- package/dist/src/command-line/migrate/agentic/select.d.ts +12 -6
- package/dist/src/command-line/migrate/agentic/select.js +38 -8
- package/dist/src/command-line/migrate/agentic/types.d.ts +9 -68
- package/dist/src/command-line/migrate/agentic/types.js +6 -8
- package/dist/src/command-line/migrate/command-object.js +6 -10
- package/dist/src/command-line/migrate/execute-migration.d.ts +6 -6
- package/dist/src/command-line/migrate/execute-migration.js +25 -15
- package/dist/src/command-line/migrate/migrate-analytics.d.ts +18 -1
- package/dist/src/command-line/migrate/migrate-analytics.js +38 -0
- package/dist/src/command-line/migrate/migrate-commits.d.ts +29 -17
- package/dist/src/command-line/migrate/migrate-commits.js +86 -32
- package/dist/src/command-line/migrate/migrate-config.d.ts +6 -6
- package/dist/src/command-line/migrate/migrate-config.js +12 -6
- package/dist/src/command-line/migrate/migrate-output.d.ts +1 -6
- package/dist/src/command-line/migrate/migrate-output.js +1 -10
- package/dist/src/command-line/migrate/migrate.d.ts +6 -30
- package/dist/src/command-line/migrate/migrate.js +257 -255
- package/dist/src/command-line/migrate/resolve-package-version.d.ts +2 -4
- package/dist/src/command-line/migrate/resolve-package-version.js +2 -35
- package/dist/src/command-line/migrate/run/agent-output.d.ts +2 -0
- package/dist/src/command-line/migrate/run/agent-output.js +9 -0
- package/dist/src/command-line/migrate/run/broker.d.ts +14 -5
- package/dist/src/command-line/migrate/run/broker.js +69 -21
- package/dist/src/command-line/migrate/run/clean-retry.js +4 -2
- package/dist/src/command-line/migrate/run/existing-run-report.d.ts +1 -1
- package/dist/src/command-line/migrate/run/existing-run-report.js +7 -5
- package/dist/src/command-line/migrate/run/give-up.d.ts +4 -3
- package/dist/src/command-line/migrate/run/give-up.js +8 -5
- package/dist/src/command-line/migrate/run/index.d.ts +7 -5
- package/dist/src/command-line/migrate/run/index.js +16 -1
- package/dist/src/command-line/migrate/run/issues.js +7 -2
- package/dist/src/command-line/migrate/run/orchestrator.d.ts +61 -4
- package/dist/src/command-line/migrate/run/orchestrator.js +397 -133
- package/dist/src/command-line/migrate/run/run-state.d.ts +17 -1
- package/dist/src/command-line/migrate/run/run-state.js +41 -2
- package/dist/src/command-line/migrate/run/runbook.d.ts +1 -0
- package/dist/src/command-line/migrate/run/runbook.js +115 -18
- package/dist/src/command-line/migrate/run/state-lock.d.ts +29 -4
- package/dist/src/command-line/migrate/run/state-lock.js +102 -10
- package/dist/src/command-line/migrate/run/state-machine.js +4 -1
- package/dist/src/command-line/migrate/run/util.d.ts +7 -2
- package/dist/src/command-line/migrate/run/util.js +30 -3
- package/dist/src/command-line/migrate/run/worker.d.ts +1 -1
- package/dist/src/command-line/migrate/run/worker.js +252 -250
- package/dist/src/command-line/migrate/sort-migrations.d.ts +1 -7
- package/dist/src/command-line/migrate/sort-migrations.js +1 -12
- package/dist/src/command-line/nx-cloud/connect/connect-to-nx-cloud.js +17 -12
- package/dist/src/command-line/release/changelog.js +9 -6
- package/dist/src/command-line/release/config/config.d.ts +1 -0
- package/dist/src/command-line/release/config/config.js +48 -9
- package/dist/src/command-line/release/release.js +2 -2
- package/dist/src/command-line/release/utils/git.js +8 -7
- package/dist/src/command-line/release/utils/interpolate-release-config.d.ts +6 -0
- package/dist/src/command-line/release/utils/interpolate-release-config.js +39 -0
- package/dist/src/command-line/release/utils/release-graph.d.ts +5 -0
- package/dist/src/command-line/release/utils/release-graph.js +1 -0
- package/dist/src/command-line/release/utils/remote-release-clients/github.js +5 -6
- package/dist/src/command-line/release/utils/remote-release-clients/gitlab.js +5 -6
- package/dist/src/command-line/release/utils/resolve-changelog-renderer.js +2 -2
- package/dist/src/command-line/release/utils/shared.js +10 -10
- package/dist/src/command-line/release/utils/version-plan-utils.d.ts +3 -12
- package/dist/src/command-line/release/utils/version-plan-utils.js +33 -55
- package/dist/src/command-line/release/version/version-actions.js +2 -1
- package/dist/src/command-line/release/version.js +5 -2
- package/dist/src/command-line/reset/reset.js +58 -62
- package/dist/src/command-line/run/executor-utils.js +1 -0
- package/dist/src/command-line/run/run-one.d.ts +20 -1
- package/dist/src/command-line/run/run-one.js +153 -5
- package/dist/src/command-line/run/run.js +2 -1
- package/dist/src/command-line/show/projects.js +5 -3
- package/dist/src/command-line/show/show-target/info.d.ts +10 -1
- package/dist/src/command-line/show/show-target/info.js +100 -15
- package/dist/src/command-line/show/show-target/inputs.js +10 -2
- package/dist/src/command-line/show/show-target/utils.js +1 -0
- package/dist/src/command-line/watch/command-object.js +3 -22
- package/dist/src/command-line/watch/watch.d.ts +0 -7
- package/dist/src/command-line/watch/watch.js +1 -1
- package/dist/src/command-line/yargs-utils/shared-options.js +1 -1
- package/dist/src/config/misc-interfaces.d.ts +18 -0
- package/dist/src/config/nx-json.d.ts +22 -11
- package/dist/src/config/task-graph.d.ts +1 -1
- package/dist/src/config/workspace-json-project-json.d.ts +88 -0
- package/dist/src/core/graph/main.js +1 -1
- package/dist/src/core/graph/runtime.js +1 -1
- package/dist/src/core/graph/styles.css +1 -1
- package/dist/src/core/graph/styles.js +1 -1
- package/dist/src/daemon/client/client.d.ts +15 -0
- package/dist/src/daemon/client/client.js +181 -71
- package/dist/src/daemon/client/daemon-socket-messenger.d.ts +1 -1
- package/dist/src/daemon/client/daemon-socket-messenger.js +2 -2
- package/dist/src/daemon/server/client-socket-context.js +1 -1
- package/dist/src/daemon/server/handle-process-in-background.js +21 -9
- package/dist/src/daemon/server/handle-select-affected-tasks.d.ts +2 -1
- package/dist/src/daemon/server/handle-select-affected-tasks.js +21 -13
- package/dist/src/daemon/server/native-js-loader.d.ts +1 -0
- package/dist/src/daemon/server/native-js-loader.js +21 -0
- package/dist/src/daemon/server/project-graph-incremental-recomputation.js +4 -8
- package/dist/src/daemon/server/server.d.ts +2 -1
- package/dist/src/daemon/server/server.js +17 -4
- package/dist/src/daemon/server/shutdown-utils.js +0 -3
- package/dist/src/daemon/server/start.d.ts +1 -0
- package/dist/src/daemon/server/start.js +2 -0
- package/dist/src/daemon/socket-utils.d.ts +11 -9
- package/dist/src/daemon/socket-utils.js +31 -61
- package/dist/src/daemon/tmp-dir.d.ts +19 -14
- package/dist/src/daemon/tmp-dir.js +142 -354
- package/dist/src/devkit-exports.d.ts +9 -1
- package/dist/src/devkit-exports.js +12 -1
- package/dist/src/devkit-internals.d.ts +6 -5
- package/dist/src/devkit-internals.js +13 -4
- package/dist/src/executors/run-commands/run-commands.impl.d.ts +4 -2
- package/dist/src/executors/run-commands/run-commands.impl.js +53 -27
- package/dist/src/executors/run-commands/running-tasks.d.ts +13 -4
- package/dist/src/executors/run-commands/running-tasks.js +148 -95
- package/dist/src/executors/run-commands/schema.json +1 -1
- package/dist/src/hasher/check-task-files.js +5 -8
- package/dist/src/hasher/file-hasher.js +9 -7
- package/dist/src/hasher/hash-task.js +4 -0
- package/dist/src/hasher/native-task-hasher-impl.js +3 -1
- package/dist/src/hasher/task-hasher.d.ts +2 -0
- package/dist/src/hasher/task-hasher.js +4 -1
- package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.d.ts +1 -2
- package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.js +6 -11
- package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.md +2 -2
- package/dist/src/migrations/update-24-0-0/enable-legacy-affected.d.ts +4 -0
- package/dist/src/migrations/update-24-0-0/enable-legacy-affected.js +15 -0
- package/dist/src/migrations/update-24-0-0/enable-legacy-affected.md +30 -0
- package/dist/src/migrations/update-24-0-0/find-custom-hashers.d.ts +3 -0
- package/dist/src/migrations/update-24-0-0/find-custom-hashers.js +100 -0
- package/dist/src/migrations/update-24-0-0/find-custom-hashers.md +63 -0
- package/dist/src/migrations/update-24-0-0/move-custom-hashers-to-inputs.md +146 -0
- package/dist/src/migrations/update-24-0-0/rename-ultracache-ignore-options.d.ts +3 -0
- package/dist/src/migrations/update-24-0-0/rename-ultracache-ignore-options.js +130 -0
- package/dist/src/migrations/update-24-0-0/rename-ultracache-ignore-options.md +62 -0
- package/dist/src/native/assert-supported-platform.js +1 -1
- package/dist/src/native/index.d.ts +238 -18
- package/dist/src/native/index.js +6 -1
- package/dist/src/native/native-bindings.js +15 -6
- package/dist/src/native/nx.openharmony-arm64.node +0 -0
- package/dist/src/native/nx.wasi-browser.js +1 -0
- package/dist/src/native/nx.wasi.cjs +1 -0
- package/dist/src/native/nx.wasm32-wasi.debug.wasm +0 -0
- package/dist/src/native/nx.wasm32-wasi.wasm +0 -0
- package/dist/src/nx-cloud/update-manager.d.ts +14 -0
- package/dist/src/nx-cloud/update-manager.js +237 -50
- package/dist/src/plugins/js/lock-file/pnpm-parser.js +3 -4
- package/dist/src/plugins/js/lock-file/pruned-output.d.ts +2 -2
- package/dist/src/plugins/js/lock-file/pruned-output.js +4 -4
- package/dist/src/plugins/js/utils/register.js +9 -4
- package/dist/src/project-graph/affected/affected-tasks.d.ts +9 -6
- package/dist/src/project-graph/affected/affected-tasks.js +31 -7
- package/dist/src/project-graph/plugins/isolation/isolated-plugin.js +7 -0
- package/dist/src/project-graph/plugins/loaded-nx-plugin.js +49 -6
- package/dist/src/project-graph/utils/project-configuration/target-merging.js +1 -1
- package/dist/src/project-graph/utils/project-configuration/target-normalization.js +12 -133
- package/dist/src/project-graph/utils/project-configuration-utils.js +2 -2
- package/dist/src/project-graph/utils/retrieve-workspace-files.js +27 -6
- package/dist/src/tasks-runner/create-task-graph.d.ts +8 -7
- package/dist/src/tasks-runner/create-task-graph.js +50 -27
- package/dist/src/tasks-runner/default-tasks-runner.js +1 -1
- package/dist/src/tasks-runner/init-tasks-runner.js +116 -59
- package/dist/src/tasks-runner/life-cycle.d.ts +4 -1
- package/dist/src/tasks-runner/life-cycle.js +7 -0
- package/dist/src/tasks-runner/life-cycles/performance-analysis.d.ts +5 -2
- package/dist/src/tasks-runner/life-cycles/performance-analysis.js +13 -7
- package/dist/src/tasks-runner/life-cycles/performance-life-cycle.d.ts +4 -3
- package/dist/src/tasks-runner/life-cycles/performance-life-cycle.js +9 -2
- package/dist/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +5 -2
- package/dist/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +4 -1
- package/dist/src/tasks-runner/life-cycles/summary-terminal-output-life-cycle.js +5 -1
- package/dist/src/tasks-runner/pseudo-ipc.d.ts +1 -0
- package/dist/src/tasks-runner/pseudo-ipc.js +4 -0
- package/dist/src/tasks-runner/pseudo-terminal.d.ts +1 -1
- package/dist/src/tasks-runner/pseudo-terminal.js +2 -2
- package/dist/src/tasks-runner/readiness/executor-ready-signal.d.ts +7 -0
- package/dist/src/tasks-runner/readiness/executor-ready-signal.js +43 -0
- package/dist/src/tasks-runner/readiness/probes.d.ts +14 -0
- package/dist/src/tasks-runner/readiness/probes.js +101 -0
- package/dist/src/tasks-runner/readiness/ready-signal-server.d.ts +18 -0
- package/dist/src/tasks-runner/readiness/ready-signal-server.js +72 -0
- package/dist/src/tasks-runner/readiness/ready-signal.d.ts +33 -0
- package/dist/src/tasks-runner/readiness/ready-signal.js +92 -0
- package/dist/src/tasks-runner/readiness/ready-when.d.ts +84 -0
- package/dist/src/tasks-runner/readiness/ready-when.js +371 -0
- package/dist/src/tasks-runner/readiness/startup-host.d.ts +1 -0
- package/dist/src/tasks-runner/readiness/startup-host.js +32 -0
- package/dist/src/tasks-runner/run-command.d.ts +6 -2
- package/dist/src/tasks-runner/run-command.js +21 -31
- package/dist/src/tasks-runner/run-outcome.d.ts +16 -0
- package/dist/src/tasks-runner/run-outcome.js +39 -0
- package/dist/src/tasks-runner/running-tasks/batch-process.js +6 -0
- package/dist/src/tasks-runner/running-tasks/node-child-process.js +5 -4
- package/dist/src/tasks-runner/running-tasks/running-task.d.ts +1 -1
- package/dist/src/tasks-runner/task-env.d.ts +10 -0
- package/dist/src/tasks-runner/task-env.js +37 -5
- package/dist/src/tasks-runner/task-graph-utils.d.ts +9 -6
- package/dist/src/tasks-runner/task-graph-utils.js +17 -12
- package/dist/src/tasks-runner/task-orchestrator.d.ts +62 -18
- package/dist/src/tasks-runner/task-orchestrator.js +750 -150
- package/dist/src/tasks-runner/tasks-runner.d.ts +1 -1
- package/dist/src/tasks-runner/tasks-schedule.d.ts +18 -1
- package/dist/src/tasks-runner/tasks-schedule.js +63 -6
- package/dist/src/tasks-runner/tokens.d.ts +54 -0
- package/dist/src/tasks-runner/tokens.js +161 -0
- package/dist/src/tasks-runner/utils.d.ts +35 -6
- package/dist/src/tasks-runner/utils.js +149 -68
- package/dist/src/ultracache/ci-status.d.ts +24 -0
- package/dist/src/ultracache/ci-status.js +87 -0
- package/dist/src/ultracache/config.d.ts +3 -3
- package/dist/src/ultracache/config.js +4 -4
- package/dist/src/ultracache/fetch.d.ts +2 -0
- package/dist/src/ultracache/fetch.js +1 -0
- package/dist/src/ultracache/overrides.js +4 -0
- package/dist/src/utils/acknowledge-build-scripts.d.ts +34 -1
- package/dist/src/utils/acknowledge-build-scripts.js +171 -32
- package/dist/src/utils/child-process.js +2 -1
- package/dist/src/utils/find-matching-projects.js +9 -6
- package/dist/src/utils/git-utils.d.ts +12 -5
- package/dist/src/utils/git-utils.js +69 -11
- package/dist/src/utils/long-running-target.d.ts +1 -3
- package/dist/src/utils/long-running-target.js +1 -3
- package/dist/src/utils/output.d.ts +4 -3
- package/dist/src/utils/output.js +4 -3
- package/dist/src/utils/owned-private-dir.d.ts +1 -17
- package/dist/src/utils/owned-private-dir.js +10 -62
- package/dist/src/utils/package-manager.d.ts +8 -0
- package/dist/src/utils/package-manager.js +65 -8
- package/dist/src/utils/perf-hooks.d.ts +1 -0
- package/dist/src/utils/plugins/core-plugins.js +5 -1
- package/dist/src/utils/progress-topics.d.ts +1 -0
- package/dist/src/utils/progress-topics.js +1 -0
- package/dist/src/utils/safe-spawn.js +1 -5
- package/dist/src/utils/shell-quoting.d.ts +8 -1
- package/dist/src/utils/shell-quoting.js +12 -1
- package/dist/src/utils/spawn-without-terminal.d.ts +27 -0
- package/dist/src/utils/spawn-without-terminal.js +110 -0
- package/dist/src/utils/string-similarity.d.ts +38 -0
- package/dist/src/utils/string-similarity.js +108 -0
- package/migrations.json +20 -6
- package/package.json +15 -24
- package/schemas/migrations-schema.json +11 -0
- package/schemas/nx-schema.json +133 -11
- package/schemas/project-schema.json +114 -4
- package/dist/src/command-line/migrate/agentic/prompts/generic-validation.d.ts +0 -56
- package/dist/src/command-line/migrate/agentic/prompts/generic-validation.js +0 -67
- package/dist/src/command-line/migrate/agentic/prompts/hybrid-prompt-migration.d.ts +0 -49
- package/dist/src/command-line/migrate/agentic/prompts/hybrid-prompt-migration.js +0 -53
- package/dist/src/command-line/migrate/agentic/prompts/prompt-migration.d.ts +0 -26
- package/dist/src/command-line/migrate/agentic/prompts/prompt-migration.js +0 -27
- package/dist/src/command-line/migrate/agentic/prompts/system-prompt.d.ts +0 -70
- package/dist/src/command-line/migrate/agentic/prompts/system-prompt.js +0 -113
- package/dist/src/command-line/migrate/agentic/run-step.d.ts +0 -68
- package/dist/src/command-line/migrate/agentic/run-step.js +0 -148
- package/dist/src/command-line/migrate/agentic/runner.d.ts +0 -21
- package/dist/src/command-line/migrate/agentic/runner.js +0 -262
- package/dist/src/migrations/update-23-0-0/consolidate-release-tag-config.d.ts +0 -9
- package/dist/src/migrations/update-23-0-0/consolidate-release-tag-config.js +0 -18
- package/dist/src/tasks-runner/legacy-depends-on-warning.d.ts +0 -18
- package/dist/src/tasks-runner/legacy-depends-on-warning.js +0 -109
|
@@ -155,7 +155,9 @@ async function handleMessage(socket, data) {
|
|
|
155
155
|
await handleResult(socket, 'HASH_TASKS_UPFRONT', () => (0, handle_hash_tasks_1.handleHashTasksUpfront)(payload), mode);
|
|
156
156
|
}
|
|
157
157
|
else if (payload.type === 'PROCESS_IN_BACKGROUND') {
|
|
158
|
-
|
|
158
|
+
// The client names the module to run, so its failure says nothing about
|
|
159
|
+
// the daemon's health. Respond, but stay alive for other clients.
|
|
160
|
+
await handleResult(socket, 'PROCESS_IN_BACKGROUND', () => (0, handle_process_in_background_1.handleProcessInBackground)(payload), mode, shutdown_utils_1.respondWithError);
|
|
159
161
|
}
|
|
160
162
|
else if (payload.type === 'RECORD_OUTPUTS_HASH_BATCH') {
|
|
161
163
|
await handleResult(socket, 'RECORD_OUTPUTS_HASH_BATCH', () => (0, handle_outputs_tracking_1.handleRecordOutputsHashBatch)(payload), mode);
|
|
@@ -168,6 +170,17 @@ async function handleMessage(socket, data) {
|
|
|
168
170
|
}
|
|
169
171
|
else if (payload.type === 'REGISTER_FILE_WATCHER') {
|
|
170
172
|
file_watcher_sockets_1.registeredFileWatcherSockets.push({ socket, config: payload.config });
|
|
173
|
+
// A client must not announce readiness until this socket is subscribed.
|
|
174
|
+
// Older clients do not request an acknowledgement and expect only changes.
|
|
175
|
+
if (payload.registrationId) {
|
|
176
|
+
await handleResult(socket, 'REGISTER_FILE_WATCHER', async () => ({
|
|
177
|
+
description: 'File watcher registered',
|
|
178
|
+
response: {
|
|
179
|
+
type: 'FILE_WATCHER_REGISTERED',
|
|
180
|
+
registrationId: payload.registrationId,
|
|
181
|
+
},
|
|
182
|
+
}), mode);
|
|
183
|
+
}
|
|
171
184
|
}
|
|
172
185
|
else if ((0, register_project_graph_listener_1.isRegisterProjectGraphListenerMessage)(payload)) {
|
|
173
186
|
project_graph_listener_sockets_1.registeredProjectGraphListenerSockets.push(socket);
|
|
@@ -218,7 +231,7 @@ async function handleMessage(socket, data) {
|
|
|
218
231
|
await handleResult(socket, get_plugin_capabilities_1.GET_PLUGIN_CAPABILITIES, () => (0, handle_get_plugin_capabilities_1.handleGetPluginCapabilities)(), mode);
|
|
219
232
|
}
|
|
220
233
|
else if ((0, select_affected_tasks_1.isHandleSelectAffectedTasksMessage)(payload)) {
|
|
221
|
-
await handleResult(socket, select_affected_tasks_1.SELECT_AFFECTED_TASKS, () => (0, handle_select_affected_tasks_1.handleSelectAffectedTasks)(payload.request), mode);
|
|
234
|
+
await handleResult(socket, select_affected_tasks_1.SELECT_AFFECTED_TASKS, () => (0, handle_select_affected_tasks_1.handleSelectAffectedTasks)(payload.request, socket), mode);
|
|
222
235
|
}
|
|
223
236
|
else if ((0, update_workspace_context_1.isHandleUpdateWorkspaceContextMessage)(payload)) {
|
|
224
237
|
await handleResult(socket, update_workspace_context_1.UPDATE_WORKSPACE_CONTEXT, () => (0, handle_update_workspace_context_1.handleUpdateWorkspaceContext)(payload.createdFiles, payload.updatedFiles, payload.deletedFiles), mode);
|
|
@@ -245,7 +258,7 @@ async function handleMessage(socket, data) {
|
|
|
245
258
|
await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Invalid payload from the client`, new Error(`Unsupported payload sent to daemon server: ${(0, consume_messages_from_socket_1.describeMessage)(unparsedPayload, { maxBytes: 200 })}`));
|
|
246
259
|
}
|
|
247
260
|
}
|
|
248
|
-
async function handleResult(socket, type, hrFn, mode) {
|
|
261
|
+
async function handleResult(socket, type, hrFn, mode, respondToError = shutdown_utils_1.respondWithErrorAndExit) {
|
|
249
262
|
let hr;
|
|
250
263
|
const startMark = new Date();
|
|
251
264
|
try {
|
|
@@ -256,7 +269,7 @@ async function handleResult(socket, type, hrFn, mode) {
|
|
|
256
269
|
}
|
|
257
270
|
const doneHandlingMark = new Date();
|
|
258
271
|
if (hr.error) {
|
|
259
|
-
await (
|
|
272
|
+
await respondToError(socket, hr.description, hr.error);
|
|
260
273
|
}
|
|
261
274
|
else {
|
|
262
275
|
logger_1.serverLogger.log(`Serializing response for ${type} message in ${mode} mode`);
|
|
@@ -11,7 +11,6 @@ const workspace_root_1 = require("../../utils/workspace-root");
|
|
|
11
11
|
const logger_1 = require("../logger");
|
|
12
12
|
const socket_utils_1 = require("../socket-utils");
|
|
13
13
|
const cache_1 = require("../cache");
|
|
14
|
-
const workspace_context_1 = require("../../utils/workspace-context");
|
|
15
14
|
const error_types_1 = require("../../project-graph/error-types");
|
|
16
15
|
const get_plugins_1 = require("../../project-graph/plugins/get-plugins");
|
|
17
16
|
const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
|
|
@@ -78,8 +77,6 @@ async function performShutdown(server, reason, sockets) {
|
|
|
78
77
|
socket.destroy();
|
|
79
78
|
}
|
|
80
79
|
});
|
|
81
|
-
(0, workspace_context_1.stopWatchingWorkspaceContext)();
|
|
82
|
-
logger_1.serverLogger.watcherLog(`Stopping the watch for ${workspace_root_1.workspaceRoot}`);
|
|
83
80
|
(0, cache_1.deleteDaemonJsonProcessCache)();
|
|
84
81
|
(0, get_plugins_1.cleanupPlugins)();
|
|
85
82
|
// Clean up shared latest Nx installation
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
// Must be the first import — see enable-compile-cache.ts.
|
|
5
5
|
require("../../utils/enable-compile-cache");
|
|
6
|
+
// Captures Node's .js loader before user code can hook it, see native-js-loader.ts.
|
|
7
|
+
require("./native-js-loader");
|
|
6
8
|
const output_1 = require("../../utils/output");
|
|
7
9
|
const server_1 = require("./server");
|
|
8
10
|
const process = tslib_1.__importStar(require("process"));
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type { Socket } from 'net';
|
|
2
2
|
export declare const isWindows: boolean;
|
|
3
3
|
/**
|
|
4
|
-
* For IPC with the daemon server we use unix sockets or windows named pipes,
|
|
4
|
+
* For IPC with the daemon server we use unix sockets or windows named pipes,
|
|
5
|
+
* depending on the user's operating system.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
7
|
+
* The paths themselves — the directory, the file name, the named-pipe form, and
|
|
8
|
+
* the length budget — are all decided in `native/utils/socket_path.rs`, so that
|
|
9
|
+
* Nx and Nx Console cannot disagree about where a socket lives.
|
|
10
|
+
*
|
|
11
|
+
* See https://nodejs.org/dist/latest-v14.x/docs/api/net.html#net_identifying_paths_for_ipc_connections
|
|
12
|
+
* for a full breakdown of OS differences between Unix domain sockets and named
|
|
13
|
+
* pipes.
|
|
8
14
|
*/
|
|
9
15
|
export declare const getFullOsSocketPath: () => string;
|
|
10
16
|
export declare const getForkedProcessOsSocketPath: (id: string) => string;
|
|
11
17
|
export declare const getPluginOsSocketPath: (id: string) => string;
|
|
12
|
-
export declare function getPluginSocketFileName(id: string): string;
|
|
13
18
|
export declare function killSocketOrPath(): void;
|
|
14
19
|
export declare function serializeResult(error: Error | null, serializedProjectGraph: string | null, serializedSourceMaps: string | null): string | null;
|
|
15
20
|
/**
|
|
@@ -26,12 +31,9 @@ export declare function serializeWithFallback(data: any, preferred: 'v8' | 'json
|
|
|
26
31
|
* Serialize data for IPC using the format the user configured.
|
|
27
32
|
*
|
|
28
33
|
* @param data Data to serialize
|
|
29
|
-
* @param force Use this format without falling back. For callers whose data is
|
|
30
|
-
* known to be unrepresentable in the other format, where a fallback
|
|
31
|
-
* would only swap one failure for a less obvious one.
|
|
32
34
|
* @returns Serialized data as bytes ready to be framed onto a socket
|
|
33
35
|
*/
|
|
34
|
-
export declare function serialize(data: any
|
|
36
|
+
export declare function serialize(data: any): Buffer;
|
|
35
37
|
/**
|
|
36
38
|
* Serialize `data` and write it as one framed message.
|
|
37
39
|
*
|
|
@@ -40,4 +42,4 @@ export declare function serialize(data: any, force?: 'v8' | 'json'): Buffer;
|
|
|
40
42
|
* already hold bytes, and having it reach back into the daemon's serializer
|
|
41
43
|
* would invert the dependency.
|
|
42
44
|
*/
|
|
43
|
-
export declare function sendMessage(socket: Socket, data: any,
|
|
45
|
+
export declare function sendMessage(socket: Socket, data: any, callback?: (err?: Error) => void): void;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPluginOsSocketPath = exports.getForkedProcessOsSocketPath = exports.getFullOsSocketPath = exports.isWindows = void 0;
|
|
4
|
-
exports.getPluginSocketFileName = getPluginSocketFileName;
|
|
5
4
|
exports.killSocketOrPath = killSocketOrPath;
|
|
6
5
|
exports.serializeResult = serializeResult;
|
|
7
6
|
exports.serializeWithFallback = serializeWithFallback;
|
|
@@ -9,7 +8,6 @@ exports.serialize = serialize;
|
|
|
9
8
|
exports.sendMessage = sendMessage;
|
|
10
9
|
const fs_1 = require("fs");
|
|
11
10
|
const os_1 = require("os");
|
|
12
|
-
const path_1 = require("path");
|
|
13
11
|
const tmp_dir_1 = require("./tmp-dir");
|
|
14
12
|
const serializable_error_1 = require("../utils/serializable-error");
|
|
15
13
|
const is_v8_serializer_enabled_1 = require("./is-v8-serializer-enabled");
|
|
@@ -17,58 +15,23 @@ const v8_1 = require("v8");
|
|
|
17
15
|
const consume_messages_from_socket_1 = require("../utils/consume-messages-from-socket");
|
|
18
16
|
exports.isWindows = (0, os_1.platform)() === 'win32';
|
|
19
17
|
/**
|
|
20
|
-
* For IPC with the daemon server we use unix sockets or windows named pipes,
|
|
18
|
+
* For IPC with the daemon server we use unix sockets or windows named pipes,
|
|
19
|
+
* depending on the user's operating system.
|
|
21
20
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
* The paths themselves — the directory, the file name, the named-pipe form, and
|
|
22
|
+
* the length budget — are all decided in `native/utils/socket_path.rs`, so that
|
|
23
|
+
* Nx and Nx Console cannot disagree about where a socket lives.
|
|
24
|
+
*
|
|
25
|
+
* See https://nodejs.org/dist/latest-v14.x/docs/api/net.html#net_identifying_paths_for_ipc_connections
|
|
26
|
+
* for a full breakdown of OS differences between Unix domain sockets and named
|
|
27
|
+
* pipes.
|
|
24
28
|
*/
|
|
25
|
-
const getFullOsSocketPath = () =>
|
|
26
|
-
const path = (0, path_1.resolve)((0, tmp_dir_1.getDaemonSocketDir)());
|
|
27
|
-
assertValidSocketPath(path);
|
|
28
|
-
return exports.isWindows ? '\\\\.\\pipe\\nx\\' + path : path;
|
|
29
|
-
};
|
|
29
|
+
const getFullOsSocketPath = () => (0, tmp_dir_1.getDaemonSocketPath)();
|
|
30
30
|
exports.getFullOsSocketPath = getFullOsSocketPath;
|
|
31
|
-
const getForkedProcessOsSocketPath = (id) =>
|
|
32
|
-
let path = (0, path_1.resolve)((0, path_1.join)((0, tmp_dir_1.getSocketDir)(), 'fp' + id + '.sock'));
|
|
33
|
-
assertValidSocketPath(path);
|
|
34
|
-
return exports.isWindows ? '\\\\.\\pipe\\nx\\' + path : path;
|
|
35
|
-
};
|
|
31
|
+
const getForkedProcessOsSocketPath = (id) => (0, tmp_dir_1.getForkedProcessSocketPath)(id);
|
|
36
32
|
exports.getForkedProcessOsSocketPath = getForkedProcessOsSocketPath;
|
|
37
|
-
const getPluginOsSocketPath = (id) =>
|
|
38
|
-
let path = (0, path_1.resolve)((0, path_1.join)((0, tmp_dir_1.getPluginSocketDir)(), getPluginSocketFileName(id)));
|
|
39
|
-
assertValidSocketPath(path);
|
|
40
|
-
return exports.isWindows ? '\\\\.\\pipe\\nx\\' + path : path;
|
|
41
|
-
};
|
|
33
|
+
const getPluginOsSocketPath = (id) => (0, tmp_dir_1.getPluginSocketPath)(id);
|
|
42
34
|
exports.getPluginOsSocketPath = getPluginOsSocketPath;
|
|
43
|
-
function getPluginSocketFileName(id) {
|
|
44
|
-
return `p${id}.sock`;
|
|
45
|
-
}
|
|
46
|
-
function assertValidSocketPath(path) {
|
|
47
|
-
if (path.length > 95) {
|
|
48
|
-
const fallbackCause = (0, tmp_dir_1.getSocketDirFallbackCause)();
|
|
49
|
-
const refusedConfiguredSocketDir = (0, tmp_dir_1.getRefusedConfiguredSocketDir)();
|
|
50
|
-
throw new Error([
|
|
51
|
-
'Attempted to open socket that exceeds the maximum socket length.',
|
|
52
|
-
...(fallbackCause === undefined
|
|
53
|
-
? []
|
|
54
|
-
: [
|
|
55
|
-
`Nx fell back to ${(0, path_1.dirname)(path)} because the default socket directory could not be used.`,
|
|
56
|
-
'Run the command with --verbose to see why the default directory was rejected.',
|
|
57
|
-
]),
|
|
58
|
-
'',
|
|
59
|
-
...(refusedConfiguredSocketDir === undefined
|
|
60
|
-
? [
|
|
61
|
-
`Set NX_SOCKET_DIR to a shorter path (e.g. ${exports.isWindows ? '%TMP%/nx-tmp' : '/tmp/nx-tmp'}) to avoid this issue.`,
|
|
62
|
-
]
|
|
63
|
-
: [
|
|
64
|
-
// Saying "set a shorter path" here would be advice they already
|
|
65
|
-
// followed: they set one, and it was refused for another reason.
|
|
66
|
-
`The directory set in NX_SOCKET_DIR (${refusedConfiguredSocketDir}) could not be used — see the warning above — so Nx fell back to a longer path.`,
|
|
67
|
-
'Point NX_SOCKET_DIR at a short directory your user owns.',
|
|
68
|
-
]),
|
|
69
|
-
].join('\n'), fallbackCause === undefined ? undefined : { cause: fallbackCause });
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
35
|
function killSocketOrPath() {
|
|
73
36
|
try {
|
|
74
37
|
(0, fs_1.unlinkSync)((0, exports.getFullOsSocketPath)());
|
|
@@ -80,6 +43,9 @@ function serializeResult(error, serializedProjectGraph, serializedSourceMaps) {
|
|
|
80
43
|
// We do not want to repeat work `JSON.stringify`ing an object containing the potentially large project graph so merge as strings
|
|
81
44
|
return `{ "error": ${JSON.stringify(error ? (0, serializable_error_1.createSerializableError)(error) : error)}, "projectGraph": ${serializedProjectGraph}, "sourceMaps": ${serializedSourceMaps} }`;
|
|
82
45
|
}
|
|
46
|
+
function stackOf(e) {
|
|
47
|
+
return e instanceof Error ? (e.stack ?? String(e)) : String(e);
|
|
48
|
+
}
|
|
83
49
|
function serializeAs(data, format) {
|
|
84
50
|
return format === 'v8'
|
|
85
51
|
? (0, v8_1.serialize)(data)
|
|
@@ -98,25 +64,29 @@ function serializeWithFallback(data, preferred) {
|
|
|
98
64
|
try {
|
|
99
65
|
return serializeAs(data, preferred);
|
|
100
66
|
}
|
|
101
|
-
catch (
|
|
67
|
+
catch (preferredError) {
|
|
102
68
|
const fallback = preferred === 'v8' ? 'json' : 'v8';
|
|
103
|
-
console.warn(`Data could not be serialized using ${preferred} serialization: ${
|
|
104
|
-
|
|
69
|
+
console.warn(`Data could not be serialized using ${preferred} serialization: ${preferredError}. Falling back to ${fallback} serialization.`);
|
|
70
|
+
try {
|
|
71
|
+
return serializeAs(data, fallback);
|
|
72
|
+
}
|
|
73
|
+
catch (fallbackError) {
|
|
74
|
+
throw new Error([
|
|
75
|
+
`Data could not be serialized using either ${preferred} or ${fallback} serialization.`,
|
|
76
|
+
`${preferred} failed with: ${stackOf(preferredError)}`,
|
|
77
|
+
`${fallback} failed with: ${stackOf(fallbackError)}`,
|
|
78
|
+
].join('\n\n'), { cause: fallbackError });
|
|
79
|
+
}
|
|
105
80
|
}
|
|
106
81
|
}
|
|
107
82
|
/**
|
|
108
83
|
* Serialize data for IPC using the format the user configured.
|
|
109
84
|
*
|
|
110
85
|
* @param data Data to serialize
|
|
111
|
-
* @param force Use this format without falling back. For callers whose data is
|
|
112
|
-
* known to be unrepresentable in the other format, where a fallback
|
|
113
|
-
* would only swap one failure for a less obvious one.
|
|
114
86
|
* @returns Serialized data as bytes ready to be framed onto a socket
|
|
115
87
|
*/
|
|
116
|
-
function serialize(data
|
|
117
|
-
return
|
|
118
|
-
? serializeAs(data, force)
|
|
119
|
-
: serializeWithFallback(data, (0, is_v8_serializer_enabled_1.isV8SerializerEnabled)() ? 'v8' : 'json');
|
|
88
|
+
function serialize(data) {
|
|
89
|
+
return serializeWithFallback(data, (0, is_v8_serializer_enabled_1.isV8SerializerEnabled)() ? 'v8' : 'json');
|
|
120
90
|
}
|
|
121
91
|
/**
|
|
122
92
|
* Serialize `data` and write it as one framed message.
|
|
@@ -126,6 +96,6 @@ function serialize(data, force) {
|
|
|
126
96
|
* already hold bytes, and having it reach back into the daemon's serializer
|
|
127
97
|
* would invert the dependency.
|
|
128
98
|
*/
|
|
129
|
-
function sendMessage(socket, data,
|
|
130
|
-
(0, consume_messages_from_socket_1.writeMessage)(socket, serialize(data
|
|
99
|
+
function sendMessage(socket, data, callback) {
|
|
100
|
+
(0, consume_messages_from_socket_1.writeMessage)(socket, serialize(data), callback);
|
|
131
101
|
}
|
|
@@ -24,7 +24,6 @@ export declare class InvalidSocketDirConfigured extends Error {
|
|
|
24
24
|
}
|
|
25
25
|
export declare const DAEMON_DIR_FOR_CURRENT_WORKSPACE: string;
|
|
26
26
|
export declare const DAEMON_OUTPUT_LOG_FILE: string;
|
|
27
|
-
export declare const getDaemonSocketDir: () => string;
|
|
28
27
|
export declare function writeDaemonLogs(error?: string): string;
|
|
29
28
|
export declare function markDaemonAsDisabled(reason: string): void;
|
|
30
29
|
/**
|
|
@@ -38,25 +37,31 @@ export declare function markDaemonAsDisabled(reason: string): void;
|
|
|
38
37
|
*/
|
|
39
38
|
export declare function disableDaemonForThisProcess(reason: string): void;
|
|
40
39
|
export declare function isDaemonDisabled(): boolean;
|
|
41
|
-
export declare function getSocketDir(): string;
|
|
42
|
-
/**
|
|
43
|
-
* Plugin worker sockets get their own workspace-scoped directory rather than
|
|
44
|
-
* sitting in the shared system temp dir, which cannot be locked down.
|
|
45
|
-
*/
|
|
46
|
-
export declare function getPluginSocketDir(): string;
|
|
47
40
|
/**
|
|
48
41
|
* Exported for tests: both fallback warnings fire once per process, so a suite
|
|
49
42
|
* that stages either fallback more than once has to clear the latches between
|
|
50
43
|
* cases.
|
|
51
44
|
*/
|
|
52
45
|
export declare function resetSocketDirWarningsForTesting(): void;
|
|
53
|
-
|
|
46
|
+
/** The daemon's own socket. */
|
|
47
|
+
export declare function getDaemonSocketPath(): string;
|
|
48
|
+
/** A forked task process's socket, in the daemon's per-run directory. */
|
|
49
|
+
export declare function getForkedProcessSocketPath(id: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Plugin worker sockets get their own workspace-scoped directory rather than
|
|
52
|
+
* sitting in the shared system temp dir, which cannot be locked down.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getPluginSocketPath(id: string): string;
|
|
54
55
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
56
|
+
* Where the Nx Console socket lives, for whoever binds or connects to it.
|
|
57
|
+
*
|
|
58
|
+
* Nx Console is the server here and Nx the client, so the extension listens
|
|
59
|
+
* where this says and Nx dials it.
|
|
60
|
+
*
|
|
61
|
+
* @param workspaceRootOverride the workspace to resolve for, when the caller is
|
|
62
|
+
* not itself running inside it (Nx Console runs in the editor's extension host)
|
|
63
|
+
* @param env the environment to read `NX_SOCKET_DIR` from, for callers that
|
|
64
|
+
* load a workspace `.env` into a copy rather than into `process.env`
|
|
60
65
|
*/
|
|
61
|
-
export declare function
|
|
66
|
+
export declare function getNxConsoleSocketPath(workspaceRootOverride?: string, env?: Record<string, string>): string;
|
|
62
67
|
export declare function removeSocketDir(): void;
|