@angelmsger/fx 0.10.1 → 0.12.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/CHANGELOG.md +166 -0
- package/README.md +13 -47
- package/defaults/tools.yaml +14 -0
- package/dist/adapters/agent-host/toml-mcp.js +1 -3
- package/dist/adapters/agent-host/toml-mcp.js.map +1 -1
- package/dist/adapters/calendar/wecom-calendar-cli/provider.js +42 -0
- package/dist/adapters/calendar/wecom-calendar-cli/provider.js.map +1 -0
- package/dist/adapters/ci/github-actions/ci.js +97 -0
- package/dist/adapters/ci/github-actions/ci.js.map +1 -0
- package/dist/adapters/ci/github-actions/provider.js +33 -0
- package/dist/adapters/ci/github-actions/provider.js.map +1 -0
- package/dist/adapters/ci/jenkins-cli/ci.js +6 -1
- package/dist/adapters/ci/jenkins-cli/ci.js.map +1 -1
- package/dist/adapters/cluster/kubectl/provider.js +2 -3
- package/dist/adapters/cluster/kubectl/provider.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/contribution-call.js +5 -27
- package/dist/adapters/code-host/bitbucket-cli/contribution-call.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/provider.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/pull-request-reference.js +1 -19
- package/dist/adapters/code-host/bitbucket-cli/pull-request-reference.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/pull-request.js +3 -17
- package/dist/adapters/code-host/bitbucket-cli/pull-request.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/repository-identity.js +1 -4
- package/dist/adapters/code-host/bitbucket-cli/repository-identity.js.map +1 -1
- package/dist/adapters/code-host/github/contribution.js +179 -0
- package/dist/adapters/code-host/github/contribution.js.map +1 -0
- package/dist/adapters/code-host/github/import.js +27 -0
- package/dist/adapters/code-host/github/import.js.map +1 -0
- package/dist/adapters/code-host/github/provider.js +205 -0
- package/dist/adapters/code-host/github/provider.js.map +1 -0
- package/dist/adapters/code-host/local-git/import.js +2 -2
- package/dist/adapters/code-host/local-git/import.js.map +1 -1
- package/dist/adapters/code-host/local-git/provider.js +3 -3
- package/dist/adapters/code-host/local-git/provider.js.map +1 -1
- package/dist/adapters/error-tracker/sentry/client.js +1 -1
- package/dist/adapters/error-tracker/sentry/client.js.map +1 -1
- package/dist/adapters/family/cli.js +15 -17
- package/dist/adapters/family/cli.js.map +1 -1
- package/dist/adapters/family/contribution.js +65 -0
- package/dist/adapters/family/contribution.js.map +1 -0
- package/dist/adapters/family/service-protocol.js +1 -0
- package/dist/adapters/family/service-protocol.js.map +1 -1
- package/dist/adapters/fs/node-fs.js +5 -8
- package/dist/adapters/fs/node-fs.js.map +1 -1
- package/dist/adapters/git/run.js +17 -0
- package/dist/adapters/git/run.js.map +1 -0
- package/dist/adapters/git/system-git.js +36 -16
- package/dist/adapters/git/system-git.js.map +1 -1
- package/dist/adapters/github/gh.js +103 -0
- package/dist/adapters/github/gh.js.map +1 -0
- package/dist/adapters/manifest-source/git-repo.js +38 -18
- package/dist/adapters/manifest-source/git-repo.js.map +1 -1
- package/dist/adapters/manifest-source/stdin.js +4 -6
- package/dist/adapters/manifest-source/stdin.js.map +1 -1
- package/dist/adapters/metrics/prometheus-cli/service.js +9 -1
- package/dist/adapters/metrics/prometheus-cli/service.js.map +1 -1
- package/dist/adapters/process/deadline-process.js +7 -3
- package/dist/adapters/process/deadline-process.js.map +1 -1
- package/dist/adapters/process/diagnostic-process.js +2 -3
- package/dist/adapters/process/diagnostic-process.js.map +1 -1
- package/dist/adapters/process/launch.js +55 -0
- package/dist/adapters/process/launch.js.map +1 -0
- package/dist/adapters/process/node-process.js +3 -3
- package/dist/adapters/process/node-process.js.map +1 -1
- package/dist/adapters/process/powershell.js +13 -2
- package/dist/adapters/process/powershell.js.map +1 -1
- package/dist/adapters/process/stdio-bridge.js +2 -2
- package/dist/adapters/process/stdio-bridge.js.map +1 -1
- package/dist/adapters/registry/registry-policy.js +4 -14
- package/dist/adapters/registry/registry-policy.js.map +1 -1
- package/dist/application/agent/list.js +12 -0
- package/dist/application/agent/list.js.map +1 -1
- package/dist/application/agent/pick.js +12 -30
- package/dist/application/agent/pick.js.map +1 -1
- package/dist/application/agent/workspace-cleanup.js +4 -1
- package/dist/application/agent/workspace-cleanup.js.map +1 -1
- package/dist/application/config/export.js +3 -2
- package/dist/application/config/export.js.map +1 -1
- package/dist/application/config/import-registry.js +3 -3
- package/dist/application/config/import-registry.js.map +1 -1
- package/dist/application/config/import.js +12 -4
- package/dist/application/config/import.js.map +1 -1
- package/dist/application/config/resolve.js +2 -4
- package/dist/application/config/resolve.js.map +1 -1
- package/dist/application/contribution/identity.js +3 -3
- package/dist/application/contribution/identity.js.map +1 -1
- package/dist/application/contribution/push-registered.js +77 -0
- package/dist/application/contribution/push-registered.js.map +1 -0
- package/dist/application/contribution/push.js +12 -19
- package/dist/application/contribution/push.js.map +1 -1
- package/dist/application/contribution/validate.js +12 -13
- package/dist/application/contribution/validate.js.map +1 -1
- package/dist/application/docs/derive.js +14 -5
- package/dist/application/docs/derive.js.map +1 -1
- package/dist/application/docs/rendered.js +2 -1
- package/dist/application/docs/rendered.js.map +1 -1
- package/dist/application/doctor/index.js +43 -27
- package/dist/application/doctor/index.js.map +1 -1
- package/dist/application/doctor/manifest.js +5 -1
- package/dist/application/doctor/manifest.js.map +1 -1
- package/dist/application/doctor/repos.js +1 -1
- package/dist/application/doctor/repos.js.map +1 -1
- package/dist/application/doctor/tools.js +20 -31
- package/dist/application/doctor/tools.js.map +1 -1
- package/dist/application/doctor/types.js +0 -8
- package/dist/application/doctor/types.js.map +1 -1
- package/dist/application/env/names.js.map +1 -1
- package/dist/application/harness/apply.js +4 -3
- package/dist/application/harness/apply.js.map +1 -1
- package/dist/application/harness/cleanup.js +5 -14
- package/dist/application/harness/cleanup.js.map +1 -1
- package/dist/application/harness/mcp-readiness.js +3 -1
- package/dist/application/harness/mcp-readiness.js.map +1 -1
- package/dist/application/harness/names.js +2 -4
- package/dist/application/harness/names.js.map +1 -1
- package/dist/application/harness/plan.js +12 -10
- package/dist/application/harness/plan.js.map +1 -1
- package/dist/application/harness/reconcile.js +4 -14
- package/dist/application/harness/reconcile.js.map +1 -1
- package/dist/application/harness/session.js +2 -13
- package/dist/application/harness/session.js.map +1 -1
- package/dist/application/harness/stages.js +8 -18
- package/dist/application/harness/stages.js.map +1 -1
- package/dist/application/harness/types.js +1 -8
- package/dist/application/harness/types.js.map +1 -1
- package/dist/application/hook/apply.js +5 -4
- package/dist/application/hook/apply.js.map +1 -1
- package/dist/application/hook/automatic-sync.js +8 -3
- package/dist/application/hook/automatic-sync.js.map +1 -1
- package/dist/application/hook/cleanup.js +5 -14
- package/dist/application/hook/cleanup.js.map +1 -1
- package/dist/application/hook/dispatch.js +24 -3
- package/dist/application/hook/dispatch.js.map +1 -1
- package/dist/application/hook/observe.js +11 -9
- package/dist/application/hook/observe.js.map +1 -1
- package/dist/application/hook/plan.js.map +1 -1
- package/dist/application/hook/reconcile.js +2 -9
- package/dist/application/hook/reconcile.js.map +1 -1
- package/dist/application/hook/session.js +5 -12
- package/dist/application/hook/session.js.map +1 -1
- package/dist/application/hook/supervisor-report.js +2 -1
- package/dist/application/hook/supervisor-report.js.map +1 -1
- package/dist/application/hook/types.js +8 -1
- package/dist/application/hook/types.js.map +1 -1
- package/dist/application/init/errors.js +19 -19
- package/dist/application/init/errors.js.map +1 -1
- package/dist/application/init/index.js +60 -42
- package/dist/application/init/index.js.map +1 -1
- package/dist/application/init/preview-initialization.js +40 -0
- package/dist/application/init/preview-initialization.js.map +1 -0
- package/dist/application/init/preview.js +37 -19
- package/dist/application/init/preview.js.map +1 -1
- package/dist/application/init/resume.js +30 -0
- package/dist/application/init/resume.js.map +1 -0
- package/dist/application/init/source.js +8 -0
- package/dist/application/init/source.js.map +1 -0
- package/dist/application/{doctor/login.js → login/check.js} +22 -43
- package/dist/application/login/check.js.map +1 -0
- package/dist/application/login/collect.js +14 -7
- package/dist/application/login/collect.js.map +1 -1
- package/dist/application/login/command-failure.js +2 -0
- package/dist/application/login/command-failure.js.map +1 -1
- package/dist/application/login/deps.js +2 -3
- package/dist/application/login/deps.js.map +1 -1
- package/dist/application/login/run.js +149 -54
- package/dist/application/login/run.js.map +1 -1
- package/dist/application/login/stage.js +146 -0
- package/dist/application/login/stage.js.map +1 -0
- package/dist/application/login/verify.js +45 -34
- package/dist/application/login/verify.js.map +1 -1
- package/dist/application/manifest/context.js +5 -1
- package/dist/application/manifest/context.js.map +1 -1
- package/dist/application/{import.js → manifest/import.js} +36 -28
- package/dist/application/manifest/import.js.map +1 -0
- package/dist/application/manifest/lint.js +15 -23
- package/dist/application/manifest/lint.js.map +1 -1
- package/dist/application/manifest/load.js +7 -11
- package/dist/application/manifest/load.js.map +1 -1
- package/dist/application/manifest/prepare.js +3 -2
- package/dist/application/manifest/prepare.js.map +1 -1
- package/dist/application/manifest/providers.js +4 -1
- package/dist/application/manifest/providers.js.map +1 -1
- package/dist/application/{refresh-manifest.js → manifest/refresh.js} +26 -2
- package/dist/application/manifest/refresh.js.map +1 -0
- package/dist/application/manifest/set.js +2 -1
- package/dist/application/manifest/set.js.map +1 -1
- package/dist/application/member/list.js +2 -4
- package/dist/application/member/list.js.map +1 -1
- package/dist/application/member/show.js +2 -3
- package/dist/application/member/show.js.map +1 -1
- package/dist/application/preparation.js +92 -25
- package/dist/application/preparation.js.map +1 -1
- package/dist/application/probe-record/index.js +19 -18
- package/dist/application/probe-record/index.js.map +1 -1
- package/dist/application/probe-record/plan.js +6 -4
- package/dist/application/probe-record/plan.js.map +1 -1
- package/dist/application/{can.js → readiness/can.js} +23 -11
- package/dist/application/readiness/can.js.map +1 -0
- package/dist/application/readiness/index.js +22 -35
- package/dist/application/readiness/index.js.map +1 -1
- package/dist/application/readiness/resolve.js +13 -15
- package/dist/application/readiness/resolve.js.map +1 -1
- package/dist/application/readiness/verdicts.js +2 -7
- package/dist/application/readiness/verdicts.js.map +1 -1
- package/dist/application/{where.js → readiness/where.js} +19 -21
- package/dist/application/readiness/where.js.map +1 -0
- package/dist/application/release/ci.js +16 -5
- package/dist/application/release/ci.js.map +1 -1
- package/dist/application/release/errors.js +4 -0
- package/dist/application/release/errors.js.map +1 -1
- package/dist/application/release/facts.js +24 -3
- package/dist/application/release/facts.js.map +1 -1
- package/dist/application/release/index.js +26 -22
- package/dist/application/release/index.js.map +1 -1
- package/dist/application/release/repo.js +109 -0
- package/dist/application/release/repo.js.map +1 -0
- package/dist/application/safety/trust.js +12 -14
- package/dist/application/safety/trust.js.map +1 -1
- package/dist/application/self/update.js +23 -13
- package/dist/application/self/update.js.map +1 -1
- package/dist/application/services/command.js +6 -8
- package/dist/application/services/command.js.map +1 -1
- package/dist/application/services/operation.js +12 -19
- package/dist/application/services/operation.js.map +1 -1
- package/dist/application/services/recipes.js +7 -2
- package/dist/application/services/recipes.js.map +1 -1
- package/dist/application/services/stage.js +6 -4
- package/dist/application/services/stage.js.map +1 -1
- package/dist/application/services/types.js +7 -1
- package/dist/application/services/types.js.map +1 -1
- package/dist/application/skill/copies.js +13 -22
- package/dist/application/skill/copies.js.map +1 -1
- package/dist/application/skill/fx-copies.js +1 -1
- package/dist/application/skill/fx-copies.js.map +1 -1
- package/dist/application/skill/stage.js +24 -26
- package/dist/application/skill/stage.js.map +1 -1
- package/dist/application/skill/standalone.js +1 -1
- package/dist/application/skill/standalone.js.map +1 -1
- package/dist/application/skill/targets.js +2 -16
- package/dist/application/skill/targets.js.map +1 -1
- package/dist/application/skill/tool-skills.js +20 -10
- package/dist/application/skill/tool-skills.js.map +1 -1
- package/dist/application/sync/checks.js +18 -45
- package/dist/application/sync/checks.js.map +1 -1
- package/dist/application/sync/index.js +76 -26
- package/dist/application/sync/index.js.map +1 -1
- package/dist/application/sync/stages.js +43 -26
- package/dist/application/sync/stages.js.map +1 -1
- package/dist/application/sync/types.js +6 -1
- package/dist/application/sync/types.js.map +1 -1
- package/dist/application/tool/check.js +8 -0
- package/dist/application/tool/check.js.map +1 -1
- package/dist/application/tool/history.js +16 -0
- package/dist/application/tool/history.js.map +1 -0
- package/dist/application/tool/initialize.js +2 -1
- package/dist/application/tool/initialize.js.map +1 -1
- package/dist/application/tool/install.js +15 -18
- package/dist/application/tool/install.js.map +1 -1
- package/dist/application/tool/installed.js +1 -1
- package/dist/application/tool/installed.js.map +1 -1
- package/dist/application/tool/list.js.map +1 -1
- package/dist/application/tool/scope.js +8 -7
- package/dist/application/tool/scope.js.map +1 -1
- package/dist/application/tool/select.js +2 -4
- package/dist/application/tool/select.js.map +1 -1
- package/dist/application/tool/show.js.map +1 -1
- package/dist/application/tool/toolchain.js +19 -6
- package/dist/application/tool/toolchain.js.map +1 -1
- package/dist/application/update/check.js +2 -1
- package/dist/application/update/check.js.map +1 -1
- package/dist/application/workspace/command-operation.js +4 -3
- package/dist/application/workspace/command-operation.js.map +1 -1
- package/dist/application/{workspace-context.js → workspace/context.js} +26 -19
- package/dist/application/workspace/context.js.map +1 -0
- package/dist/application/workspace/deps.js +3 -3
- package/dist/application/workspace/deps.js.map +1 -1
- package/dist/application/workspace/go-work.js +77 -0
- package/dist/application/workspace/go-work.js.map +1 -0
- package/dist/application/workspace/guidance.js +2 -4
- package/dist/application/workspace/guidance.js.map +1 -1
- package/dist/application/workspace/health.js +4 -2
- package/dist/application/workspace/health.js.map +1 -1
- package/dist/application/workspace/inspect.js +1 -4
- package/dist/application/workspace/inspect.js.map +1 -1
- package/dist/application/workspace/manage.js +83 -97
- package/dist/application/workspace/manage.js.map +1 -1
- package/dist/application/workspace/operation.js +13 -14
- package/dist/application/workspace/operation.js.map +1 -1
- package/dist/application/workspace/plan.js +2 -1
- package/dist/application/workspace/plan.js.map +1 -1
- package/dist/application/workspace/registry.js +4 -3
- package/dist/application/workspace/registry.js.map +1 -1
- package/dist/application/workspace/resolve.js +10 -12
- package/dist/application/workspace/resolve.js.map +1 -1
- package/dist/application/workspace/resources.js +47 -31
- package/dist/application/workspace/resources.js.map +1 -1
- package/dist/application/workspace/root-entries.js +3 -0
- package/dist/application/workspace/root-entries.js.map +1 -1
- package/dist/application/workspace/source-preview.js +6 -3
- package/dist/application/workspace/source-preview.js.map +1 -1
- package/dist/application/{status.js → workspace/status.js} +51 -6
- package/dist/application/workspace/status.js.map +1 -0
- package/dist/cli/base.js +25 -29
- package/dist/cli/base.js.map +1 -1
- package/dist/cli/commands/agent/pick.js +4 -1
- package/dist/cli/commands/agent/pick.js.map +1 -1
- package/dist/cli/commands/agent/unpick.js +5 -1
- package/dist/cli/commands/agent/unpick.js.map +1 -1
- package/dist/cli/commands/aliases.js +1 -0
- package/dist/cli/commands/aliases.js.map +1 -1
- package/dist/cli/commands/can.js +5 -21
- package/dist/cli/commands/can.js.map +1 -1
- package/dist/cli/commands/config/import.js +1 -8
- package/dist/cli/commands/config/import.js.map +1 -1
- package/dist/cli/commands/doctor.js +2 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/env/pick.js +1 -0
- package/dist/cli/commands/env/pick.js.map +1 -1
- package/dist/cli/commands/env/select.js +1 -0
- package/dist/cli/commands/env/select.js.map +1 -1
- package/dist/cli/commands/env/unpick.js +1 -0
- package/dist/cli/commands/env/unpick.js.map +1 -1
- package/dist/cli/commands/hook/disable.js +1 -0
- package/dist/cli/commands/hook/disable.js.map +1 -1
- package/dist/cli/commands/hook/enable.js +1 -0
- package/dist/cli/commands/hook/enable.js.map +1 -1
- package/dist/cli/commands/index.js +3 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.js +14 -11
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/login.js +13 -2
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/manifest/import.js +6 -2
- package/dist/cli/commands/manifest/import.js.map +1 -1
- package/dist/cli/commands/manifest/lint.js +5 -1
- package/dist/cli/commands/manifest/lint.js.map +1 -1
- package/dist/cli/commands/manifest/record-probe.js +1 -0
- package/dist/cli/commands/manifest/record-probe.js.map +1 -1
- package/dist/cli/commands/manifest/render.js +1 -0
- package/dist/cli/commands/manifest/render.js.map +1 -1
- package/dist/cli/commands/manifest/repo-set.js +1 -0
- package/dist/cli/commands/manifest/repo-set.js.map +1 -1
- package/dist/cli/commands/{release.js → release/check.js} +14 -13
- package/dist/cli/commands/release/check.js.map +1 -0
- package/dist/cli/commands/repo/add.js +1 -0
- package/dist/cli/commands/repo/add.js.map +1 -1
- package/dist/cli/commands/repo/fork.js +1 -0
- package/dist/cli/commands/repo/fork.js.map +1 -1
- package/dist/cli/commands/repo/pick.js +1 -0
- package/dist/cli/commands/repo/pick.js.map +1 -1
- package/dist/cli/commands/repo/remove.js +1 -0
- package/dist/cli/commands/repo/remove.js.map +1 -1
- package/dist/cli/commands/repo/select.js +1 -0
- package/dist/cli/commands/repo/select.js.map +1 -1
- package/dist/cli/commands/repo/unpick.js +1 -0
- package/dist/cli/commands/repo/unpick.js.map +1 -1
- package/dist/cli/commands/selection.js +1 -2
- package/dist/cli/commands/selection.js.map +1 -1
- package/dist/cli/commands/self/info.js +2 -2
- package/dist/cli/commands/self/info.js.map +1 -1
- package/dist/cli/commands/self/update.js +11 -14
- package/dist/cli/commands/self/update.js.map +1 -1
- package/dist/cli/commands/source/push.js +14 -13
- package/dist/cli/commands/source/push.js.map +1 -1
- package/dist/cli/commands/status.js +6 -36
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/sync.js +7 -5
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/tool/history.js +2 -2
- package/dist/cli/commands/tool/history.js.map +1 -1
- package/dist/cli/commands/where.js +2 -1
- package/dist/cli/commands/where.js.map +1 -1
- package/dist/cli/commands/workspace/rebind.js +1 -4
- package/dist/cli/commands/workspace/rebind.js.map +1 -1
- package/dist/cli/completion.js +2 -4
- package/dist/cli/completion.js.map +1 -1
- package/dist/cli/flags.js +2 -2
- package/dist/cli/flags.js.map +1 -1
- package/dist/cli/help.js +2 -8
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/hook-command.js +2 -2
- package/dist/cli/hook-command.js.map +1 -1
- package/dist/cli/main.js +4 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/notices.js +26 -24
- package/dist/cli/notices.js.map +1 -1
- package/dist/cli/preparation-view.js +170 -52
- package/dist/cli/preparation-view.js.map +1 -1
- package/dist/cli/release-view.js +105 -17
- package/dist/cli/release-view.js.map +1 -1
- package/dist/cli/render/exceptional.js +11 -4
- package/dist/cli/render/exceptional.js.map +1 -1
- package/dist/cli/render/fields.js +1 -3
- package/dist/cli/render/fields.js.map +1 -1
- package/dist/cli/render/human.js +1 -3
- package/dist/cli/render/human.js.map +1 -1
- package/dist/cli/render/index.js +1 -1
- package/dist/cli/render/index.js.map +1 -1
- package/dist/cli/render/report.js +1 -1
- package/dist/cli/render/report.js.map +1 -1
- package/dist/cli/render/status-line.js +17 -3
- package/dist/cli/render/status-line.js.map +1 -1
- package/dist/cli/render/tone.js +29 -10
- package/dist/cli/render/tone.js.map +1 -1
- package/dist/cli/route/index.js +13 -1
- package/dist/cli/route/index.js.map +1 -1
- package/dist/cli/tool-command.js +4 -11
- package/dist/cli/tool-command.js.map +1 -1
- package/dist/cli/workspace-write-policy.js +8 -33
- package/dist/cli/workspace-write-policy.js.map +1 -1
- package/dist/composition/agent-cleanup.js +5 -1
- package/dist/composition/agent-cleanup.js.map +1 -1
- package/dist/composition/bundled.js +7 -1
- package/dist/composition/bundled.js.map +1 -1
- package/dist/composition/command-wiring.js +44 -99
- package/dist/composition/command-wiring.js.map +1 -1
- package/dist/composition/container.js +25 -20
- package/dist/composition/container.js.map +1 -1
- package/dist/composition/contributions.js +26 -71
- package/dist/composition/contributions.js.map +1 -1
- package/dist/composition/harness.js +3 -4
- package/dist/composition/harness.js.map +1 -1
- package/dist/composition/hook-entry.js +2 -1
- package/dist/composition/hook-entry.js.map +1 -1
- package/dist/composition/hook-wiring.js +8 -16
- package/dist/composition/hook-wiring.js.map +1 -1
- package/dist/composition/hook-worker.js +9 -11
- package/dist/composition/hook-worker.js.map +1 -1
- package/dist/composition/hooks.js +6 -3
- package/dist/composition/hooks.js.map +1 -1
- package/dist/composition/import.js +8 -6
- package/dist/composition/import.js.map +1 -1
- package/dist/composition/manifest-edit.js +1 -2
- package/dist/composition/manifest-edit.js.map +1 -1
- package/dist/composition/manifest-sources.js +3 -16
- package/dist/composition/manifest-sources.js.map +1 -1
- package/dist/composition/probe-record.js +1 -2
- package/dist/composition/probe-record.js.map +1 -1
- package/dist/composition/refresh.js +1 -1
- package/dist/composition/refresh.js.map +1 -1
- package/dist/composition/registry.js +12 -37
- package/dist/composition/registry.js.map +1 -1
- package/dist/composition/tool-install.js +5 -1
- package/dist/composition/tool-install.js.map +1 -1
- package/dist/composition/tool-inventory.js +10 -1
- package/dist/composition/tool-inventory.js.map +1 -1
- package/dist/composition/trace.js +3 -4
- package/dist/composition/trace.js.map +1 -1
- package/dist/composition/update.js +12 -1
- package/dist/composition/update.js.map +1 -1
- package/dist/composition/workspace-management.js +8 -2
- package/dist/composition/workspace-management.js.map +1 -1
- package/dist/domain/config/codec.js +2 -1
- package/dist/domain/config/codec.js.map +1 -1
- package/dist/domain/config/profile.js +0 -1
- package/dist/domain/config/profile.js.map +1 -1
- package/dist/domain/contribution/pull-request.js +12 -1
- package/dist/domain/contribution/pull-request.js.map +1 -1
- package/dist/domain/contribution/selection.js +4 -8
- package/dist/domain/contribution/selection.js.map +1 -1
- package/dist/domain/errors.js +10 -3
- package/dist/domain/errors.js.map +1 -1
- package/dist/domain/fuzzy.js +6 -1
- package/dist/domain/fuzzy.js.map +1 -1
- package/dist/domain/harness/actions.js +60 -0
- package/dist/domain/harness/actions.js.map +1 -0
- package/dist/domain/harness/deadlines.js +14 -0
- package/dist/domain/harness/deadlines.js.map +1 -0
- package/dist/domain/harness/hooks.js +8 -0
- package/dist/domain/harness/hooks.js.map +1 -1
- package/dist/domain/harness/session-start.js +2 -1
- package/dist/domain/harness/session-start.js.map +1 -1
- package/dist/domain/harness/state-recovery.js.map +1 -1
- package/dist/domain/import/infer.js +2 -9
- package/dist/domain/import/infer.js.map +1 -1
- package/dist/domain/lease.js +30 -0
- package/dist/domain/lease.js.map +1 -0
- package/dist/domain/manifest/decode.js +5 -8
- package/dist/domain/manifest/decode.js.map +1 -1
- package/dist/domain/manifest/document.js +3 -5
- package/dist/domain/manifest/document.js.map +1 -1
- package/dist/domain/manifest/editor.js +3 -7
- package/dist/domain/manifest/editor.js.map +1 -1
- package/dist/domain/manifest/explain.js +2 -4
- package/dist/domain/manifest/explain.js.map +1 -1
- package/dist/domain/manifest/files.js +8 -7
- package/dist/domain/manifest/files.js.map +1 -1
- package/dist/domain/manifest/issues.js +2 -2
- package/dist/domain/manifest/issues.js.map +1 -1
- package/dist/domain/manifest/lint.js +4 -3
- package/dist/domain/manifest/lint.js.map +1 -1
- package/dist/domain/manifest/loader.js +2 -1
- package/dist/domain/manifest/loader.js.map +1 -1
- package/dist/domain/manifest/overlay.js +6 -9
- package/dist/domain/manifest/overlay.js.map +1 -1
- package/dist/domain/manifest/providers.js +34 -2
- package/dist/domain/manifest/providers.js.map +1 -1
- package/dist/domain/manifest/quarantine.js +21 -1
- package/dist/domain/manifest/quarantine.js.map +1 -1
- package/dist/domain/manifest/reflect.js +2 -31
- package/dist/domain/manifest/reflect.js.map +1 -1
- package/dist/domain/manifest/rules/harness.js +2 -16
- package/dist/domain/manifest/rules/harness.js.map +1 -1
- package/dist/domain/manifest/service.schema.js +5 -14
- package/dist/domain/manifest/service.schema.js.map +1 -1
- package/dist/domain/manifest/skill-frontmatter.js +1 -1
- package/dist/domain/manifest/skill-frontmatter.js.map +1 -1
- package/dist/domain/manifest/types.js.map +1 -1
- package/dist/domain/manifest/workspace.schema.js +9 -0
- package/dist/domain/manifest/workspace.schema.js.map +1 -1
- package/dist/domain/outcome.js +5 -0
- package/dist/domain/outcome.js.map +1 -0
- package/dist/domain/path.js +9 -1
- package/dist/domain/path.js.map +1 -1
- package/dist/domain/preparation.js.map +1 -1
- package/dist/domain/projection.js +8 -0
- package/dist/domain/projection.js.map +1 -0
- package/dist/domain/public-url.js +22 -0
- package/dist/domain/public-url.js.map +1 -0
- package/dist/domain/release/ci.js +29 -15
- package/dist/domain/release/ci.js.map +1 -1
- package/dist/domain/release/deps.js +3 -1
- package/dist/domain/release/deps.js.map +1 -1
- package/dist/domain/release/errors.js +8 -8
- package/dist/domain/release/errors.js.map +1 -1
- package/dist/domain/release/merge.js +26 -13
- package/dist/domain/release/merge.js.map +1 -1
- package/dist/domain/release/policy.js +2 -0
- package/dist/domain/release/policy.js.map +1 -1
- package/dist/domain/release/types.js +2 -1
- package/dist/domain/release/types.js.map +1 -1
- package/dist/domain/release/version.js +133 -0
- package/dist/domain/release/version.js.map +1 -0
- package/dist/domain/release/window.js +1 -1
- package/dist/domain/release/window.js.map +1 -1
- package/dist/domain/report.js +1 -1
- package/dist/domain/report.js.map +1 -1
- package/dist/domain/setup/names.js +23 -0
- package/dist/domain/setup/names.js.map +1 -0
- package/dist/domain/setup/planner.js +26 -26
- package/dist/domain/setup/planner.js.map +1 -1
- package/dist/domain/setup/progress.js +57 -0
- package/dist/domain/setup/progress.js.map +1 -0
- package/dist/domain/setup/types.js +5 -0
- package/dist/domain/setup/types.js.map +1 -1
- package/dist/domain/shell.js +0 -7
- package/dist/domain/shell.js.map +1 -1
- package/dist/domain/skills/frontmatter.js +1 -1
- package/dist/domain/skills/frontmatter.js.map +1 -1
- package/dist/domain/skills/projection.js +2 -3
- package/dist/domain/skills/projection.js.map +1 -1
- package/dist/domain/sync-selection.js +2 -4
- package/dist/domain/sync-selection.js.map +1 -1
- package/dist/domain/toolchain/resolve.js +4 -0
- package/dist/domain/toolchain/resolve.js.map +1 -1
- package/dist/domain/toolchain/select.js +15 -9
- package/dist/domain/toolchain/select.js.map +1 -1
- package/dist/domain/toolchain/stderr.js +34 -14
- package/dist/domain/toolchain/stderr.js.map +1 -1
- package/dist/domain/values.js +18 -2
- package/dist/domain/values.js.map +1 -1
- package/dist/domain/workspace/commits.js +9 -1
- package/dist/domain/workspace/commits.js.map +1 -1
- package/dist/domain/workspace/go-work.js +75 -0
- package/dist/domain/workspace/go-work.js.map +1 -0
- package/dist/domain/workspace/operation-journal.js +93 -0
- package/dist/domain/workspace/operation-journal.js.map +1 -0
- package/dist/domain/workspace/plan.js +17 -1
- package/dist/domain/workspace/plan.js.map +1 -1
- package/dist/domain/workspace/ref.js +3 -0
- package/dist/domain/workspace/ref.js.map +1 -1
- package/dist/infra/config-store.js +8 -13
- package/dist/infra/config-store.js.map +1 -1
- package/dist/infra/contribution-store.js +21 -67
- package/dist/infra/contribution-store.js.map +1 -1
- package/dist/infra/harness-state.js +21 -49
- package/dist/infra/harness-state.js.map +1 -1
- package/dist/infra/local-store.js +8 -15
- package/dist/infra/local-store.js.map +1 -1
- package/dist/infra/owned-journal.js +57 -0
- package/dist/infra/owned-journal.js.map +1 -0
- package/dist/infra/projection-store.js +4 -3
- package/dist/infra/projection-store.js.map +1 -1
- package/dist/infra/tool-history.js +19 -49
- package/dist/infra/tool-history.js.map +1 -1
- package/dist/infra/trust-store.js +2 -9
- package/dist/infra/trust-store.js.map +1 -1
- package/dist/infra/workspace-home.js +7 -1
- package/dist/infra/workspace-home.js.map +1 -1
- package/dist/ports/ci.js +2 -1
- package/dist/ports/ci.js.map +1 -1
- package/package.json +4 -1
- package/skills/fx-workspace/SKILL.md +2 -3
- package/skills/fx-workspace/references/commands.md +64 -53
- package/skills/fx-workspace/references/workspace-tasks.md +12 -12
- package/dist/application/can.js.map +0 -1
- package/dist/application/doctor/login.js.map +0 -1
- package/dist/application/import.js.map +0 -1
- package/dist/application/init/setup.js +0 -125
- package/dist/application/init/setup.js.map +0 -1
- package/dist/application/preview-initialization.js +0 -41
- package/dist/application/preview-initialization.js.map +0 -1
- package/dist/application/refresh-manifest.js.map +0 -1
- package/dist/application/refresh-workspace-manifest.js +0 -27
- package/dist/application/refresh-workspace-manifest.js.map +0 -1
- package/dist/application/status.js.map +0 -1
- package/dist/application/where.js.map +0 -1
- package/dist/application/workspace-context.js.map +0 -1
- package/dist/cli/commands/release.js.map +0 -1
- package/dist/domain/deadline.js +0 -17
- package/dist/domain/deadline.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/domain/toolchain/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/domain/toolchain/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,26 +8,32 @@ export function keyedBinding(binding) {
|
|
|
8
8
|
export function keyedPlatform(binding) {
|
|
9
9
|
return { ...binding, key: `${binding.capability}:${binding.platform}` };
|
|
10
10
|
}
|
|
11
|
-
// The
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
export function
|
|
11
|
+
// The tool that makes a provider fx does not know one the manifest defines itself. Such a
|
|
12
|
+
// provider is named after the tool it drives — but only where the team declared that tool,
|
|
13
|
+
// because fx's own catalog names are tools, not provider ids, and an id that merely
|
|
14
|
+
// resembles one is a mistake worth correcting rather than obeying.
|
|
15
|
+
export function manifestProviderTool(provider, tools) {
|
|
16
|
+
return tools.find((tool) => tool.name === provider && tool.declared);
|
|
17
|
+
}
|
|
18
|
+
// The tools each binding needs, keyed by tool name.
|
|
19
|
+
export function providerTools(bindings, providers, tools) {
|
|
16
20
|
const needed = new Map();
|
|
17
21
|
for (const binding of bindings) {
|
|
18
22
|
if (binding.provider === null || binding.source === 'misplaced')
|
|
19
23
|
continue;
|
|
20
24
|
const provider = providers.find((candidate) => candidate.id === binding.provider);
|
|
21
|
-
for (const tool of toolsOf(provider, binding,
|
|
25
|
+
for (const tool of toolsOf(provider, binding, tools))
|
|
22
26
|
needed.set(tool, [...(needed.get(tool) ?? []), binding.key]);
|
|
23
27
|
}
|
|
24
28
|
return needed;
|
|
25
29
|
}
|
|
26
|
-
function toolsOf(provider, binding,
|
|
30
|
+
function toolsOf(provider, binding, tools) {
|
|
27
31
|
if (servesCapability(provider, binding.capability))
|
|
28
32
|
return provider.tools;
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
if (provider !== undefined || binding.provider === null)
|
|
34
|
+
return [];
|
|
35
|
+
const own = manifestProviderTool(binding.provider, tools);
|
|
36
|
+
return own === undefined ? [] : [own.name];
|
|
31
37
|
}
|
|
32
38
|
export function selectToolchain(resolved, needed) {
|
|
33
39
|
const sources = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/domain/toolchain/select.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,0FAA0F;AAC1F,8DAA8D;AAE9D,OAAO,EACL,gBAAgB,GAKjB,MAAM,0BAA0B,CAAC;AAUlC,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC1E,CAAC;AAmBD,2FAA2F;AAC3F,
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/domain/toolchain/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// What a failing tool's stderr means. A family tool writes its `_notice`/`_progress`
|
|
2
2
|
// lines first and its error envelope last, each a JSON object that may be pretty-
|
|
3
3
|
// printed. Any other tool is read by its own words: the message of the error object
|
|
4
|
-
// it printed, or
|
|
5
|
-
//
|
|
4
|
+
// it printed, alone or after a prefix such as kubectl's `Error from server (Forbidden):`,
|
|
5
|
+
// or where it failed and why, its first two lines of text once log records and
|
|
6
|
+
// warnings are set aside.
|
|
7
|
+
import { isRecord } from '../values.js';
|
|
6
8
|
const REASON_LIMIT = 240;
|
|
7
9
|
const MESSAGE_KEYS = ['message', 'errmsg', 'error'];
|
|
8
10
|
// A log record opens with a timestamp or a logfmt field.
|
|
@@ -12,16 +14,37 @@ export function stderrReason(stderr, code) {
|
|
|
12
14
|
const message = errorEnvelopeOf(objects)?.['message'];
|
|
13
15
|
if (typeof message === 'string')
|
|
14
16
|
return message;
|
|
15
|
-
return shorten(statedMessage(objects) ?? textReason(text) ?? `exit ${code}`);
|
|
17
|
+
return shorten(statedMessage(objects) ?? prefixedMessage(text) ?? textReason(text) ?? `exit ${code}`);
|
|
16
18
|
}
|
|
17
19
|
// A wrapper around a remote API may print that service's error object as it is.
|
|
18
20
|
function statedMessage(objects) {
|
|
19
|
-
for (const object of [...objects].reverse())
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
for (const object of [...objects].reverse()) {
|
|
22
|
+
const message = messageOf(object);
|
|
23
|
+
if (message !== undefined)
|
|
24
|
+
return message;
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
// A log record or warning that carries a JSON object is set aside as in plain text.
|
|
29
|
+
function prefixedMessage(text) {
|
|
30
|
+
for (const line of text.split('\n')) {
|
|
31
|
+
const at = line.indexOf('{');
|
|
32
|
+
if (at <= 0 || ASIDE.test(line.trim()))
|
|
33
|
+
continue;
|
|
34
|
+
const object = parseObject(line.slice(at));
|
|
35
|
+
const message = object === undefined ? undefined : messageOf(object);
|
|
36
|
+
if (message !== undefined)
|
|
37
|
+
return `${line.slice(0, at).trim()} ${message}`;
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
// Services spell the key their own way, `Message` as well as `message`.
|
|
42
|
+
function messageOf(object) {
|
|
43
|
+
for (const key of MESSAGE_KEYS) {
|
|
44
|
+
const value = Object.entries(object).find(([name]) => name.toLowerCase() === key)?.[1];
|
|
45
|
+
if (typeof value === 'string' && value !== '')
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
25
48
|
return undefined;
|
|
26
49
|
}
|
|
27
50
|
function textReason(text) {
|
|
@@ -41,7 +64,7 @@ export function errorEnvelope(stderr) {
|
|
|
41
64
|
function errorEnvelopeOf(objects) {
|
|
42
65
|
for (const object of objects) {
|
|
43
66
|
const error = object['error'];
|
|
44
|
-
if (
|
|
67
|
+
if (isRecord(error))
|
|
45
68
|
return error;
|
|
46
69
|
}
|
|
47
70
|
return undefined;
|
|
@@ -95,13 +118,10 @@ function closingLine(lines, from) {
|
|
|
95
118
|
function parseObject(text) {
|
|
96
119
|
try {
|
|
97
120
|
const value = JSON.parse(text);
|
|
98
|
-
return
|
|
121
|
+
return isRecord(value) ? value : undefined;
|
|
99
122
|
}
|
|
100
123
|
catch {
|
|
101
124
|
return undefined;
|
|
102
125
|
}
|
|
103
126
|
}
|
|
104
|
-
function isObject(value) {
|
|
105
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
106
|
-
}
|
|
107
127
|
//# sourceMappingURL=stderr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stderr.js","sourceRoot":"","sources":["../../../src/domain/toolchain/stderr.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,kFAAkF;AAClF,oFAAoF;AACpF,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"stderr.js","sourceRoot":"","sources":["../../../src/domain/toolchain/stderr.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/values.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Reading values whose shape is not known in advance: the scalar spellings people
|
|
2
|
+
// type on a command line or in an environment variable, a decoded document, a
|
|
3
|
+
// thrown value. Anything else is a validation error for the caller.
|
|
3
4
|
const TRUE = new Set(['1', 'true', 'yes', 'on']);
|
|
4
5
|
const FALSE = new Set(['0', 'false', 'no', 'off']);
|
|
5
6
|
export function parseBoolean(text) {
|
|
@@ -20,4 +21,19 @@ export function parseList(text) {
|
|
|
20
21
|
.map((item) => item.trim())
|
|
21
22
|
.filter((item) => item.length > 0);
|
|
22
23
|
}
|
|
24
|
+
export function isRecord(value) {
|
|
25
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
26
|
+
}
|
|
27
|
+
export function messageOf(thrown) {
|
|
28
|
+
return thrown instanceof Error ? thrown.message : String(thrown);
|
|
29
|
+
}
|
|
30
|
+
// Keys appear in the order their first item does.
|
|
31
|
+
export function countBy(items, keyOf) {
|
|
32
|
+
const counts = {};
|
|
33
|
+
for (const item of items) {
|
|
34
|
+
const key = keyOf(item);
|
|
35
|
+
counts[key] = (counts[key] ?? 0) + 1;
|
|
36
|
+
}
|
|
37
|
+
return counts;
|
|
38
|
+
}
|
|
23
39
|
//# sourceMappingURL=values.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/domain/values.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/domain/values.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,8EAA8E;AAC9E,oEAAoE;AAEpE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACjD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnD,MAAM,UAAU,YAAY,CAAC,IAAwB;IACnD,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAwB;IAChD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAe;IACvC,OAAO,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,OAAO,CACrB,KAAmB,EACnB,KAA0B;IAE1B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
// What a code host says about a repository's history, in the host-neutral
|
|
2
2
|
// shape the release check reasons about.
|
|
3
|
-
|
|
3
|
+
// How a person names a commit: its first seven hexadecimal digits.
|
|
4
|
+
export function shortSha(sha) {
|
|
5
|
+
return sha.slice(0, 7);
|
|
6
|
+
}
|
|
7
|
+
// Two names of one commit, either of which may be abbreviated to seven digits or more.
|
|
8
|
+
export function sameCommit(a, b) {
|
|
9
|
+
const [shorter, longer] = (a.length <= b.length ? [a, b] : [b, a]).map((sha) => sha.toLowerCase());
|
|
10
|
+
return shorter === longer || (shorter.length >= 7 && longer.startsWith(shorter));
|
|
11
|
+
}
|
|
4
12
|
//# sourceMappingURL=commits.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../../../src/domain/workspace/commits.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,yCAAyC"}
|
|
1
|
+
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../../../src/domain/workspace/commits.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,yCAAyC;AAuBzC,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7E,GAAG,CAAC,WAAW,EAAE,CACE,CAAC;IACtB,OAAO,OAAO,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// The Go workspace file fx keeps at the root when the manifest asks for one: every
|
|
2
|
+
// Go module checked out there, at the newest `go` version any of them requires, so
|
|
3
|
+
// each module builds against its siblings' checkouts. The file announces itself on
|
|
4
|
+
// its first line, so fx can tell its own go.work from a person's and never replace
|
|
5
|
+
// the latter.
|
|
6
|
+
export const GO_WORK = 'go.work';
|
|
7
|
+
export const GO_WORK_SUM = 'go.work.sum';
|
|
8
|
+
const PREFIX = '// fx:derived ';
|
|
9
|
+
export const isDerivedGoWork = (text) => text.startsWith(PREFIX);
|
|
10
|
+
export function goDirective(goMod) {
|
|
11
|
+
return /^[ \t]*go[ \t]+([^\s/]+)/m.exec(goMod)?.[1];
|
|
12
|
+
}
|
|
13
|
+
// Null when no module is checked out: an empty go.work would only break builds.
|
|
14
|
+
export function renderGoWork(modules) {
|
|
15
|
+
if (modules.length === 0)
|
|
16
|
+
return null;
|
|
17
|
+
const go = modules.reduce((newest, module) => newer(newest, module.go), undefined);
|
|
18
|
+
const uses = modules.map((module) => `./${module.path}`).sort();
|
|
19
|
+
return [
|
|
20
|
+
`${PREFIX}from the checked-out Go modules; regenerated by fx sync, do not edit`,
|
|
21
|
+
...(go === undefined ? [] : ['', `go ${go}`]),
|
|
22
|
+
'',
|
|
23
|
+
'use (',
|
|
24
|
+
...uses.map((use) => `\t${goToken(use)}`),
|
|
25
|
+
')',
|
|
26
|
+
'',
|
|
27
|
+
].join('\n');
|
|
28
|
+
}
|
|
29
|
+
// Go reads a token that would split, start a comment or hold an unprintable
|
|
30
|
+
// character only as a quoted string literal, and a JSON string is one.
|
|
31
|
+
function goToken(text) {
|
|
32
|
+
const bare = !/["'`()[\]{},]|\/\/|\/\*|[^\p{L}\p{M}\p{N}\p{P}\p{S}]/u.test(text);
|
|
33
|
+
return bare ? text : JSON.stringify(text);
|
|
34
|
+
}
|
|
35
|
+
function newer(a, b) {
|
|
36
|
+
if (a === undefined)
|
|
37
|
+
return b;
|
|
38
|
+
if (b === undefined)
|
|
39
|
+
return a;
|
|
40
|
+
return compareGoVersions(a, b) < 0 ? b : a;
|
|
41
|
+
}
|
|
42
|
+
// Go's own order: the language version `1.21` sorts before its release candidate
|
|
43
|
+
// `1.21rc1`, which sorts before the release `1.21.0`. Before 1.21 a missing patch
|
|
44
|
+
// means `.0`. A malformed version sorts before every valid one.
|
|
45
|
+
function compareGoVersions(a, b) {
|
|
46
|
+
const [x, y] = [parseGoVersion(a), parseGoVersion(b)];
|
|
47
|
+
for (const field of ['major', 'minor', 'patch']) {
|
|
48
|
+
const order = compareNumbers(x[field], y[field]);
|
|
49
|
+
if (order !== 0)
|
|
50
|
+
return order;
|
|
51
|
+
}
|
|
52
|
+
if (x.kind !== y.kind)
|
|
53
|
+
return x.kind < y.kind ? -1 : 1;
|
|
54
|
+
return compareNumbers(x.pre, y.pre);
|
|
55
|
+
}
|
|
56
|
+
function parseGoVersion(text) {
|
|
57
|
+
const number = '(0|[1-9]\\d*)';
|
|
58
|
+
const match = new RegExp(`^${number}(?:\\.${number}(?:\\.${number}|([a-z]+)${number}?)?)?$`).exec(text);
|
|
59
|
+
if (match === null)
|
|
60
|
+
return { major: '', minor: '', patch: '', kind: '', pre: '' };
|
|
61
|
+
const [, major = '', minor, patch, kind = '', pre = ''] = match;
|
|
62
|
+
if (minor === undefined)
|
|
63
|
+
return { major, minor: '0', patch: '0', kind, pre };
|
|
64
|
+
const defaultPatch = kind === '' && compareNumbers(minor, '21') < 0 ? '0' : '';
|
|
65
|
+
return { major, minor, patch: patch ?? defaultPatch, kind, pre };
|
|
66
|
+
}
|
|
67
|
+
// Decimal strings without leading zeros; the empty string sorts first.
|
|
68
|
+
function compareNumbers(a, b) {
|
|
69
|
+
if (a.length !== b.length)
|
|
70
|
+
return a.length < b.length ? -1 : 1;
|
|
71
|
+
if (a === b)
|
|
72
|
+
return 0;
|
|
73
|
+
return a < b ? -1 : 1;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=go-work.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-work.js","sourceRoot":"","sources":["../../../src/domain/workspace/go-work.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// The journal of a workspace identity operation: the registry change an
|
|
2
|
+
// unregister, relocate or rebind set out to make and the last phase it
|
|
3
|
+
// completed. A retried command resumes from that phase, so the phases are
|
|
4
|
+
// ordered, and a journal is resumed only when its entries are the change its
|
|
5
|
+
// action makes.
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { isRecord } from '../values.js';
|
|
8
|
+
export const OPERATION_ACTIONS = ['unregister', 'relocate', 'rebind'];
|
|
9
|
+
// In the order an operation completes them; only a rebind stages and replaces a source.
|
|
10
|
+
export const OPERATION_PHASES = [
|
|
11
|
+
'planned',
|
|
12
|
+
'source_ready',
|
|
13
|
+
'resources_cleaned',
|
|
14
|
+
'source_replaced',
|
|
15
|
+
'registered',
|
|
16
|
+
];
|
|
17
|
+
const ID = /^[a-f0-9-]{36}$/;
|
|
18
|
+
export function operationJournalPath(workspaceHome) {
|
|
19
|
+
return path.join(workspaceHome, 'workspace-operation.json');
|
|
20
|
+
}
|
|
21
|
+
export function hasReached(journal, phase) {
|
|
22
|
+
return OPERATION_PHASES.indexOf(journal.phase) >= OPERATION_PHASES.indexOf(phase);
|
|
23
|
+
}
|
|
24
|
+
export function sameEntry(a, b) {
|
|
25
|
+
if (a === null || b === null)
|
|
26
|
+
return a === b;
|
|
27
|
+
return a.root === b.root && a.source === b.source;
|
|
28
|
+
}
|
|
29
|
+
export function sameJournal(a, b) {
|
|
30
|
+
return (a.id === b.id &&
|
|
31
|
+
a.name === b.name &&
|
|
32
|
+
a.action === b.action &&
|
|
33
|
+
a.root === b.root &&
|
|
34
|
+
a.phase === b.phase &&
|
|
35
|
+
sameEntry(a.before, b.before) &&
|
|
36
|
+
sameEntry(a.after, b.after));
|
|
37
|
+
}
|
|
38
|
+
// The registry keeps the old entry until resources are cleaned, may hold either
|
|
39
|
+
// until the registration checkpoint is written, and holds the new one after it.
|
|
40
|
+
export function matchesRegistry(journal, observed) {
|
|
41
|
+
if (hasReached(journal, 'registered'))
|
|
42
|
+
return sameEntry(observed, journal.after);
|
|
43
|
+
return (sameEntry(observed, journal.before) ||
|
|
44
|
+
(hasReached(journal, 'resources_cleaned') && sameEntry(observed, journal.after)));
|
|
45
|
+
}
|
|
46
|
+
export function serializeJournal(journal) {
|
|
47
|
+
const { id, name, action, before, after, root, phase } = journal;
|
|
48
|
+
return JSON.stringify({ id, name, action, before, after, root, phase });
|
|
49
|
+
}
|
|
50
|
+
// Undefined for anything other than a journal of this workspace that an operation wrote.
|
|
51
|
+
export function parseJournal(text, name) {
|
|
52
|
+
let value;
|
|
53
|
+
try {
|
|
54
|
+
value = JSON.parse(text);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
if (!isRecord(value) || value['name'] !== name)
|
|
60
|
+
return undefined;
|
|
61
|
+
const { id, action, before, after, root, phase } = value;
|
|
62
|
+
if (typeof id !== 'string' || !ID.test(id) || typeof root !== 'string')
|
|
63
|
+
return undefined;
|
|
64
|
+
if (!isAction(action) || !isPhase(phase))
|
|
65
|
+
return undefined;
|
|
66
|
+
if (!isEntry(before) || (after !== null && !isEntry(after)))
|
|
67
|
+
return undefined;
|
|
68
|
+
const journal = { id, name, action, before, after, root, phase };
|
|
69
|
+
return recordsItsAction(journal) ? journal : undefined;
|
|
70
|
+
}
|
|
71
|
+
function isAction(value) {
|
|
72
|
+
return OPERATION_ACTIONS.some((action) => action === value);
|
|
73
|
+
}
|
|
74
|
+
function isPhase(value) {
|
|
75
|
+
return OPERATION_PHASES.some((phase) => phase === value);
|
|
76
|
+
}
|
|
77
|
+
function isEntry(value) {
|
|
78
|
+
return (isRecord(value) &&
|
|
79
|
+
typeof value['root'] === 'string' &&
|
|
80
|
+
(value['source'] === undefined || typeof value['source'] === 'string') &&
|
|
81
|
+
Object.keys(value).every((key) => key === 'root' || key === 'source'));
|
|
82
|
+
}
|
|
83
|
+
function recordsItsAction(journal) {
|
|
84
|
+
const { action, before, after, root } = journal;
|
|
85
|
+
if (action === 'unregister')
|
|
86
|
+
return after === null;
|
|
87
|
+
if (after === null)
|
|
88
|
+
return false;
|
|
89
|
+
if (action === 'relocate')
|
|
90
|
+
return after.root === root && after.source === before.source;
|
|
91
|
+
return after.root === before.root && after.source !== undefined;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=operation-journal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-journal.js","sourceRoot":"","sources":["../../../src/domain/workspace/operation-journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
// Plan repository synchronization and additive remote preparation from current checkout facts.
|
|
2
2
|
// origin adds a missing fork remote; upstream_to_add requires an exact matching origin URL.
|
|
3
|
+
// Whether the action leaves a checkout that follows the manifest's branch.
|
|
4
|
+
export function leavesCheckoutUsable(action) {
|
|
5
|
+
switch (action) {
|
|
6
|
+
case 'clone':
|
|
7
|
+
case 'fast_forward':
|
|
8
|
+
case 'skip_manifest':
|
|
9
|
+
return true;
|
|
10
|
+
case 'skip_dirty':
|
|
11
|
+
case 'skip_diverged':
|
|
12
|
+
case 'skip_unpicked':
|
|
13
|
+
case 'skip_not_git':
|
|
14
|
+
case 'skip_remote_mismatch':
|
|
15
|
+
case 'unreadable':
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
3
19
|
export function planSync(input) {
|
|
4
20
|
const picked = input.repos.map((repo) => decide(repo, input));
|
|
5
21
|
const unpicked = input.available.map((name) => ({
|
|
@@ -33,7 +49,7 @@ function decide(repo, input) {
|
|
|
33
49
|
...forkToAdd(disk.remotes, urls),
|
|
34
50
|
action: 'skip_manifest',
|
|
35
51
|
fetch: false,
|
|
36
|
-
reason: 'refreshed
|
|
52
|
+
reason: 'the manifest source; not refreshed by this sync',
|
|
37
53
|
};
|
|
38
54
|
}
|
|
39
55
|
return decideCheckout(base, repo, urls, disk.remotes, disk.state);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/domain/workspace/plan.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,4FAA4F;
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/domain/workspace/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,9 @@ export function repoUrl(host, owner, name) {
|
|
|
28
28
|
return `${host.replace(/\/+$/, '')}/${owner}/${name}.git`;
|
|
29
29
|
}
|
|
30
30
|
function fileLocation(url) {
|
|
31
|
+
// A Windows path, as a local remote often is there, separates with either slash.
|
|
32
|
+
if (/^(?:[a-z]:[\\/]|\\\\)/i.test(url))
|
|
33
|
+
return url.replaceAll('\\', '/');
|
|
31
34
|
if (!/^file:\/\//i.test(url))
|
|
32
35
|
return url;
|
|
33
36
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/domain/workspace/ref.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,iFAAiF;AACjF,8EAA8E;AAS9E,MAAM,UAAU,OAAO,CACrB,IAAyD;IAEzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACtF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,IAA4C;IAC9D,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7F,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,QAAQ,GAAG,QAAQ;SACtB,OAAO,CAAC,2BAA2B,EAAE,KAAK,CAAC;SAC3C,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;IAC/D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/domain/workspace/ref.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,iFAAiF;AACjF,8EAA8E;AAS9E,MAAM,UAAU,OAAO,CACrB,IAAyD;IAEzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACtF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,IAA4C;IAC9D,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7F,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,QAAQ,GAAG,QAAQ;SACtB,OAAO,CAAC,2BAA2B,EAAE,KAAK,CAAC;SAC3C,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;IAC/D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,iFAAiF;IACjF,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -4,14 +4,15 @@ import path from 'node:path';
|
|
|
4
4
|
import { parse, stringify } from 'yaml';
|
|
5
5
|
import { configFileSchema } from '../domain/config/file.js';
|
|
6
6
|
import { busyError, DevkitError } from '../domain/errors.js';
|
|
7
|
+
import { withLease } from '../domain/lease.js';
|
|
7
8
|
import { assertWorkspaceNames } from '../domain/workspace/name.js';
|
|
8
9
|
import { writeAtomicFile } from './atomic-file.js';
|
|
9
|
-
import { FileLock } from './lock.js';
|
|
10
|
-
export const CONFIG_FILE_KEYS = Object.keys(configFileSchema.shape).sort();
|
|
11
10
|
export class FileConfigStore {
|
|
12
11
|
home;
|
|
13
|
-
|
|
12
|
+
lock;
|
|
13
|
+
constructor(home, lock) {
|
|
14
14
|
this.home = home;
|
|
15
|
+
this.lock = lock;
|
|
15
16
|
}
|
|
16
17
|
path() {
|
|
17
18
|
return path.join(this.home, 'config.yaml');
|
|
@@ -35,22 +36,16 @@ export class FileConfigStore {
|
|
|
35
36
|
await this.update(() => next);
|
|
36
37
|
}
|
|
37
38
|
async update(change) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
nextSteps: ['Retry the configuration change.'],
|
|
42
|
-
});
|
|
43
|
-
try {
|
|
39
|
+
return withLease(this.lock, { key: 'config', waitMs: 5000 }, () => busyError('CONFIG_BUSY', 'The personal configuration', {
|
|
40
|
+
nextSteps: ['Retry the configuration change.'],
|
|
41
|
+
}), async () => {
|
|
44
42
|
const next = await change(await this.read());
|
|
45
43
|
assertWorkspaceNames(Object.keys(next.workspaces ?? {}));
|
|
46
44
|
if (!configFileSchema.safeParse(next).success)
|
|
47
45
|
throw new DevkitError('config', 'CONFIG_INVALID', 'Invalid configuration update');
|
|
48
46
|
await writeAtomicFile(this.path(), stringify(next));
|
|
49
47
|
return next;
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
52
|
-
await lease.release();
|
|
53
|
-
}
|
|
48
|
+
});
|
|
54
49
|
}
|
|
55
50
|
async readRaw() {
|
|
56
51
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../src/infra/config-store.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../src/infra/config-store.ts"],"names":[],"mappings":"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"}
|