@aeolus-fleet/core 0.27.1 → 0.28.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/dist/adapters/crypto/account-token-signatures.d.ts +12 -0
- package/dist/adapters/crypto/account-token-signatures.js +104 -0
- package/dist/adapters/crypto/account-token-signatures.js.map +1 -0
- package/dist/adapters/http/request-credentials.d.ts +7 -1
- package/dist/adapters/http/request-credentials.js +18 -5
- package/dist/adapters/http/request-credentials.js.map +1 -1
- package/dist/adapters/http/server.js +4 -2
- package/dist/adapters/http/server.js.map +1 -1
- package/dist/adapters/prisma/event-log.js +13 -1
- package/dist/adapters/prisma/event-log.js.map +1 -1
- package/dist/adapters/prisma/generated/browser.d.ts +30 -0
- package/dist/adapters/prisma/generated/client.d.ts +30 -0
- package/dist/adapters/prisma/generated/commonInputTypes.d.ts +120 -0
- package/dist/adapters/prisma/generated/enums.d.ts +25 -0
- package/dist/adapters/prisma/generated/enums.js +22 -1
- package/dist/adapters/prisma/generated/enums.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/class.d.ts +44 -0
- package/dist/adapters/prisma/generated/internal/class.js +4 -4
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +372 -9
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +38 -11
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +39 -8
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +38 -11
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/AccountCutOff.d.ts +944 -0
- package/dist/adapters/prisma/generated/models/AccountCutOff.js +2 -0
- package/dist/adapters/prisma/generated/models/AccountCutOff.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +59 -1
- package/dist/adapters/prisma/generated/models/Event.d.ts +426 -1
- package/dist/adapters/prisma/generated/models/Fleet.d.ts +871 -0
- package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.d.ts +1031 -0
- package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js +2 -0
- package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Label.d.ts +113 -39
- package/dist/adapters/prisma/generated/models/NetworkRulesDraft.d.ts +1133 -0
- package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js +2 -0
- package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js.map +1 -0
- package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +24 -255
- package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1 -40
- package/dist/adapters/prisma/generated/models/Ship.d.ts +782 -6
- package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +39 -1
- package/dist/adapters/prisma/generated/models/VerifiedFacts.d.ts +1325 -0
- package/dist/adapters/prisma/generated/models/VerifiedFacts.js +2 -0
- package/dist/adapters/prisma/generated/models/VerifiedFacts.js.map +1 -0
- package/dist/adapters/prisma/generated/models.d.ts +4 -0
- package/dist/adapters/prisma/history.js +1 -0
- package/dist/adapters/prisma/history.js.map +1 -1
- package/dist/adapters/prisma/identity.d.ts +3 -1
- package/dist/adapters/prisma/identity.js +41 -8
- package/dist/adapters/prisma/identity.js.map +1 -1
- package/dist/adapters/prisma/network.d.ts +7 -2
- package/dist/adapters/prisma/network.js +92 -65
- package/dist/adapters/prisma/network.js.map +1 -1
- package/dist/adapters/prisma/registry.js +19 -14
- package/dist/adapters/prisma/registry.js.map +1 -1
- package/dist/adapters/prisma/rows.d.ts +9 -4
- package/dist/adapters/prisma/rows.js +75 -19
- package/dist/adapters/prisma/rows.js.map +1 -1
- package/dist/adapters/prisma/unit-of-work.d.ts +4 -2
- package/dist/adapters/prisma/unit-of-work.js +5 -2
- package/dist/adapters/prisma/unit-of-work.js.map +1 -1
- package/dist/adapters/prisma/verified-facts.d.ts +4 -0
- package/dist/adapters/prisma/verified-facts.js +65 -0
- package/dist/adapters/prisma/verified-facts.js.map +1 -0
- package/dist/adapters/rest/rest-api.js +2 -2
- package/dist/adapters/rest/rest-api.js.map +1 -1
- package/dist/adapters/trpc/console.d.ts +3 -1
- package/dist/adapters/trpc/context.d.ts +22 -8
- package/dist/adapters/trpc/fleet.d.ts +259 -52
- package/dist/adapters/trpc/fleet.js +121 -84
- package/dist/adapters/trpc/fleet.js.map +1 -1
- package/dist/adapters/trpc/installation-token.d.ts +7 -0
- package/dist/adapters/trpc/installation-token.js +10 -0
- package/dist/adapters/trpc/installation-token.js.map +1 -0
- package/dist/adapters/trpc/installation.d.ts +32 -2
- package/dist/adapters/trpc/installation.js +14 -10
- package/dist/adapters/trpc/installation.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +307 -43
- package/dist/adapters/trpc/ship-contract.js +6 -4
- package/dist/adapters/trpc/ship-contract.js.map +1 -1
- package/dist/adapters/trpc/ship.d.ts +32 -1
- package/dist/adapters/trpc/ship.js +4 -2
- package/dist/adapters/trpc/ship.js.map +1 -1
- package/dist/adapters/trpc/trpc.d.ts +36 -13
- package/dist/adapters/trpc/trpc.js +117 -26
- package/dist/adapters/trpc/trpc.js.map +1 -1
- package/dist/app.d.ts +2 -0
- package/dist/app.js +22 -0
- package/dist/app.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/domain/identity/authenticate-account.d.ts +35 -0
- package/dist/domain/identity/authenticate-account.js +54 -0
- package/dist/domain/identity/authenticate-account.js.map +1 -0
- package/dist/domain/identity/authenticate-installation.d.ts +23 -0
- package/dist/domain/identity/authenticate-installation.js +20 -0
- package/dist/domain/identity/authenticate-installation.js.map +1 -0
- package/dist/domain/identity/authenticate.d.ts +2 -2
- package/dist/domain/identity/console-session.d.ts +6 -3
- package/dist/domain/identity/console-session.js.map +1 -1
- package/dist/domain/identity/cut-off-account.d.ts +29 -0
- package/dist/domain/identity/cut-off-account.js +37 -0
- package/dist/domain/identity/cut-off-account.js.map +1 -0
- package/dist/domain/identity/dismiss-notice.d.ts +2 -2
- package/dist/domain/identity/issue-sign-in-ticket.d.ts +9 -3
- package/dist/domain/identity/issue-sign-in-ticket.js +8 -2
- package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -1
- package/dist/domain/identity/ports.d.ts +52 -5
- package/dist/domain/identity/read-account.d.ts +8 -4
- package/dist/domain/identity/read-account.js +1 -1
- package/dist/domain/identity/read-account.js.map +1 -1
- package/dist/domain/identity/read-guide.d.ts +2 -2
- package/dist/domain/identity/read-notices.d.ts +2 -2
- package/dist/domain/identity/record-guide-progress.d.ts +2 -2
- package/dist/domain/identity/redeem-sign-in-ticket.d.ts +2 -1
- package/dist/domain/identity/redeem-sign-in-ticket.js +3 -2
- package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -1
- package/dist/domain/identity/set-theme.d.ts +2 -2
- package/dist/domain/identity/sign-in-ticket.d.ts +3 -1
- package/dist/domain/identity/sign-in.d.ts +2 -2
- package/dist/domain/identity/sign-in.js +2 -0
- package/dist/domain/identity/sign-in.js.map +1 -1
- package/dist/domain/identity/sign-out.d.ts +2 -2
- package/dist/domain/identity/sign-out.js +1 -1
- package/dist/domain/identity/sign-out.js.map +1 -1
- package/dist/domain/identity/start-console-session.d.ts +4 -2
- package/dist/domain/identity/start-console-session.js +6 -4
- package/dist/domain/identity/start-console-session.js.map +1 -1
- package/dist/domain/identity/start-viewer-session.js +1 -0
- package/dist/domain/identity/start-viewer-session.js.map +1 -1
- package/dist/domain/messaging/delivery.d.ts +3 -1
- package/dist/domain/messaging/delivery.js +9 -6
- package/dist/domain/messaging/delivery.js.map +1 -1
- package/dist/domain/messaging/dismiss-delivery.d.ts +2 -2
- package/dist/domain/messaging/message.d.ts +3 -1
- package/dist/domain/messaging/message.js +1 -1
- package/dist/domain/messaging/message.js.map +1 -1
- package/dist/domain/messaging/ping-ship.d.ts +2 -2
- package/dist/domain/messaging/ping-ship.js +1 -1
- package/dist/domain/messaging/ping-ship.js.map +1 -1
- package/dist/domain/messaging/resend-delivery.d.ts +2 -2
- package/dist/domain/messaging/resend-delivery.js +1 -0
- package/dist/domain/messaging/resend-delivery.js.map +1 -1
- package/dist/domain/messaging/send-message.d.ts +3 -3
- package/dist/domain/messaging/send-message.js +1 -0
- package/dist/domain/messaging/send-message.js.map +1 -1
- package/dist/domain/registry/apply-network-rules.d.ts +32 -0
- package/dist/domain/registry/apply-network-rules.js +33 -0
- package/dist/domain/registry/apply-network-rules.js.map +1 -0
- package/dist/domain/registry/assign-crew.d.ts +2 -2
- package/dist/domain/registry/assign-crew.js +3 -2
- package/dist/domain/registry/assign-crew.js.map +1 -1
- package/dist/domain/registry/assign-label.d.ts +7 -5
- package/dist/domain/registry/assign-label.js +16 -6
- package/dist/domain/registry/assign-label.js.map +1 -1
- package/dist/domain/registry/change-label-values.d.ts +1 -1
- package/dist/domain/registry/change-label-values.js +4 -3
- package/dist/domain/registry/change-label-values.js.map +1 -1
- package/dist/domain/registry/check-reach.d.ts +45 -24
- package/dist/domain/registry/check-reach.js +76 -42
- package/dist/domain/registry/check-reach.js.map +1 -1
- package/dist/domain/registry/clear-request.d.ts +1 -1
- package/dist/domain/registry/clear-request.js +1 -1
- package/dist/domain/registry/clear-request.js.map +1 -1
- package/dist/domain/registry/commission-ship.d.ts +23 -14
- package/dist/domain/registry/commission-ship.js +167 -21
- package/dist/domain/registry/commission-ship.js.map +1 -1
- package/dist/domain/registry/confirm-crew-release.d.ts +2 -2
- package/dist/domain/registry/confirm-crew-release.js +3 -2
- package/dist/domain/registry/confirm-crew-release.js.map +1 -1
- package/dist/domain/registry/confirm-worktree-cleared.d.ts +2 -2
- package/dist/domain/registry/confirm-worktree-cleared.js +3 -2
- package/dist/domain/registry/confirm-worktree-cleared.js.map +1 -1
- package/dist/domain/registry/connect-plugin.d.ts +5 -4
- package/dist/domain/registry/connect-plugin.js +6 -7
- package/dist/domain/registry/connect-plugin.js.map +1 -1
- package/dist/domain/registry/crew-request.d.ts +2 -2
- package/dist/domain/registry/crew-request.js.map +1 -1
- package/dist/domain/registry/declare-network-rules.d.ts +9 -6
- package/dist/domain/registry/declare-network-rules.js +13 -8
- package/dist/domain/registry/declare-network-rules.js.map +1 -1
- package/dist/domain/registry/declare-scopes.d.ts +2 -2
- package/dist/domain/registry/declared-network-rules.d.ts +30 -21
- package/dist/domain/registry/declared-network-rules.js +46 -22
- package/dist/domain/registry/declared-network-rules.js.map +1 -1
- package/dist/domain/registry/define-label.d.ts +1 -1
- package/dist/domain/registry/define-label.js +5 -5
- package/dist/domain/registry/define-label.js.map +1 -1
- package/dist/domain/registry/delete-label.d.ts +1 -1
- package/dist/domain/registry/delete-label.js +4 -3
- package/dist/domain/registry/delete-label.js.map +1 -1
- package/dist/domain/registry/discard-network-rules-draft.d.ts +23 -0
- package/dist/domain/registry/discard-network-rules-draft.js +24 -0
- package/dist/domain/registry/discard-network-rules-draft.js.map +1 -0
- package/dist/domain/registry/discover.d.ts +11 -10
- package/dist/domain/registry/discover.js +11 -5
- package/dist/domain/registry/discover.js.map +1 -1
- package/dist/domain/registry/explain-crew-request.d.ts +2 -2
- package/dist/domain/registry/explain-crew-request.js +3 -2
- package/dist/domain/registry/explain-crew-request.js.map +1 -1
- package/dist/domain/registry/explain-reach.d.ts +21 -14
- package/dist/domain/registry/explain-reach.js +53 -53
- package/dist/domain/registry/explain-reach.js.map +1 -1
- package/dist/domain/registry/get-ship.d.ts +2 -2
- package/dist/domain/registry/get-starting-prompt.d.ts +4 -2
- package/dist/domain/registry/get-starting-prompt.js +7 -5
- package/dist/domain/registry/get-starting-prompt.js.map +1 -1
- package/dist/domain/registry/give-back-crew-request.d.ts +2 -2
- package/dist/domain/registry/give-back-crew-request.js +3 -2
- package/dist/domain/registry/give-back-crew-request.js.map +1 -1
- package/dist/domain/registry/grant-scopes.d.ts +8 -5
- package/dist/domain/registry/grant-scopes.js +14 -5
- package/dist/domain/registry/grant-scopes.js.map +1 -1
- package/dist/domain/registry/label.d.ts +69 -18
- package/dist/domain/registry/label.js +79 -28
- package/dist/domain/registry/label.js.map +1 -1
- package/dist/domain/registry/lease.d.ts +1 -1
- package/dist/domain/registry/list-fleet.d.ts +2 -0
- package/dist/domain/registry/list-fleet.js +1 -0
- package/dist/domain/registry/list-fleet.js.map +1 -1
- package/dist/domain/registry/list-scopes.d.ts +2 -1
- package/dist/domain/registry/list-scopes.js +2 -1
- package/dist/domain/registry/list-scopes.js.map +1 -1
- package/dist/domain/registry/managed-or-assigned.d.ts +12 -4
- package/dist/domain/registry/managed-or-assigned.js +25 -7
- package/dist/domain/registry/managed-or-assigned.js.map +1 -1
- package/dist/domain/registry/network-rules-draft.d.ts +45 -0
- package/dist/domain/registry/network-rules-draft.js +41 -0
- package/dist/domain/registry/network-rules-draft.js.map +1 -0
- package/dist/domain/registry/network-settings.d.ts +92 -122
- package/dist/domain/registry/network-settings.js +99 -159
- package/dist/domain/registry/network-settings.js.map +1 -1
- package/dist/domain/registry/ports.d.ts +47 -11
- package/dist/domain/registry/reach-refusal.d.ts +18 -4
- package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
- package/dist/domain/registry/read-built-in-rules.d.ts +4 -3
- package/dist/domain/registry/read-built-in-rules.js +7 -6
- package/dist/domain/registry/read-built-in-rules.js.map +1 -1
- package/dist/domain/registry/read-clear-requests.d.ts +2 -2
- package/dist/domain/registry/read-clear-requests.js.map +1 -1
- package/dist/domain/registry/read-declared-network-rules.d.ts +5 -5
- package/dist/domain/registry/read-declared-network-rules.js +4 -4
- package/dist/domain/registry/read-declared-network-rules.js.map +1 -1
- package/dist/domain/registry/read-network-rules-draft-changes.d.ts +22 -0
- package/dist/domain/registry/read-network-rules-draft-changes.js +53 -0
- package/dist/domain/registry/read-network-rules-draft-changes.js.map +1 -0
- package/dist/domain/registry/read-network-rules.d.ts +30 -0
- package/dist/domain/registry/read-network-rules.js +18 -0
- package/dist/domain/registry/read-network-rules.js.map +1 -0
- package/dist/domain/registry/read-on-behalf.d.ts +3 -3
- package/dist/domain/registry/read-on-behalf.js.map +1 -1
- package/dist/domain/registry/read-reach-refusals.d.ts +6 -5
- package/dist/domain/registry/read-reach-refusals.js +13 -8
- package/dist/domain/registry/read-reach-refusals.js.map +1 -1
- package/dist/domain/registry/read-reach.d.ts +6 -8
- package/dist/domain/registry/read-reach.js +21 -16
- package/dist/domain/registry/read-reach.js.map +1 -1
- package/dist/domain/registry/recrew-ship.d.ts +2 -2
- package/dist/domain/registry/recrew-ship.js +3 -3
- package/dist/domain/registry/recrew-ship.js.map +1 -1
- package/dist/domain/registry/release-ship.d.ts +3 -2
- package/dist/domain/registry/release-ship.js +4 -3
- package/dist/domain/registry/release-ship.js.map +1 -1
- package/dist/domain/registry/remove-crew-request.d.ts +2 -2
- package/dist/domain/registry/remove-crew-request.js +4 -3
- package/dist/domain/registry/remove-crew-request.js.map +1 -1
- package/dist/domain/registry/rename-ship.d.ts +1 -1
- package/dist/domain/registry/rename-ship.js +4 -3
- package/dist/domain/registry/rename-ship.js.map +1 -1
- package/dist/domain/registry/report-crew-status.d.ts +2 -2
- package/dist/domain/registry/report-crew-status.js +3 -2
- package/dist/domain/registry/report-crew-status.js.map +1 -1
- package/dist/domain/registry/request-crew.d.ts +3 -3
- package/dist/domain/registry/request-crew.js +4 -3
- package/dist/domain/registry/request-crew.js.map +1 -1
- package/dist/domain/registry/request-worktree-clear.d.ts +2 -2
- package/dist/domain/registry/request-worktree-clear.js +4 -3
- package/dist/domain/registry/request-worktree-clear.js.map +1 -1
- package/dist/domain/registry/retire-ship.d.ts +16 -12
- package/dist/domain/registry/retire-ship.js +28 -21
- package/dist/domain/registry/retire-ship.js.map +1 -1
- package/dist/domain/registry/save-network-rules-draft.d.ts +31 -0
- package/dist/domain/registry/save-network-rules-draft.js +27 -0
- package/dist/domain/registry/save-network-rules-draft.js.map +1 -0
- package/dist/domain/registry/scope-grant.d.ts +19 -19
- package/dist/domain/registry/scope-grant.js +8 -9
- package/dist/domain/registry/scope-grant.js.map +1 -1
- package/dist/domain/registry/set-built-in-rule.d.ts +3 -3
- package/dist/domain/registry/set-built-in-rule.js +5 -9
- package/dist/domain/registry/set-built-in-rule.js.map +1 -1
- package/dist/domain/registry/set-owner.d.ts +9 -6
- package/dist/domain/registry/set-owner.js +14 -8
- package/dist/domain/registry/set-owner.js.map +1 -1
- package/dist/domain/registry/set-verified-facts.d.ts +36 -0
- package/dist/domain/registry/set-verified-facts.js +58 -0
- package/dist/domain/registry/set-verified-facts.js.map +1 -0
- package/dist/domain/registry/ship.d.ts +52 -18
- package/dist/domain/registry/ship.js +76 -18
- package/dist/domain/registry/ship.js.map +1 -1
- package/dist/domain/registry/statement.d.ts +2 -2
- package/dist/domain/registry/statement.js +2 -2
- package/dist/domain/registry/statement.js.map +1 -1
- package/dist/domain/registry/turn.d.ts +2 -2
- package/dist/domain/registry/turn.js +2 -2
- package/dist/domain/registry/turn.js.map +1 -1
- package/dist/domain/registry/unassign-label.d.ts +8 -5
- package/dist/domain/registry/unassign-label.js +17 -6
- package/dist/domain/registry/unassign-label.js.map +1 -1
- package/dist/domain/registry/verified-facts.d.ts +75 -0
- package/dist/domain/registry/verified-facts.js +107 -0
- package/dist/domain/registry/verified-facts.js.map +1 -0
- package/dist/domain/registry/whoami.d.ts +2 -2
- package/dist/domain/shared/caller.d.ts +40 -6
- package/dist/domain/shared/caller.js +20 -0
- package/dist/domain/shared/caller.js.map +1 -1
- package/dist/domain/shared/errors.d.ts +1 -1
- package/dist/domain/shared/errors.js.map +1 -1
- package/dist/domain/shared/events.d.ts +13 -2
- package/dist/domain/shared/events.js.map +1 -1
- package/dist/domain/shared/history.d.ts +3 -1
- package/dist/domain/shared/history.js.map +1 -1
- package/dist/domain/shared/read-fleet-limits.d.ts +2 -2
- package/dist/domain/shared/read-health.d.ts +2 -2
- package/dist/domain/shared/read-inbox.d.ts +2 -2
- package/dist/domain/shared/read-message.d.ts +2 -2
- package/dist/domain/shared/read-needs-attention.d.ts +2 -2
- package/dist/domain/shared/read-sent-message.d.ts +2 -2
- package/dist/domain/shared/read-ship-messages.d.ts +2 -2
- package/dist/domain/shared/read-ship-timeline.d.ts +2 -2
- package/dist/domain/shared/read-ship-way.d.ts +2 -2
- package/dist/domain/shared/read-ship-way.js +1 -1
- package/dist/domain/shared/read-ship-way.js.map +1 -1
- package/dist/start.js +1 -0
- package/dist/start.js.map +1 -1
- package/dist/testing/account-token-issuer.d.ts +30 -0
- package/dist/testing/account-token-issuer.js +48 -0
- package/dist/testing/account-token-issuer.js.map +1 -0
- package/dist/testing/fleet.d.ts +2 -2
- package/dist/testing/index.d.ts +1 -1
- package/dist/wiring.d.ts +21 -8
- package/dist/wiring.js +32 -13
- package/dist/wiring.js.map +1 -1
- package/package.json +2 -5
- package/src/adapters/prisma/migrations/20261019200000_account_cut_offs/migration.sql +10 -0
- package/src/adapters/prisma/migrations/20261019210000_event_actors/migration.sql +32 -0
- package/src/adapters/prisma/migrations/20261020090000_argos_jobs_as_scopes/migration.sql +65 -0
- package/src/adapters/prisma/migrations/20261020100000_installation_labels/migration.sql +7 -0
- package/src/adapters/prisma/migrations/20261020110000_installation_declared_network_rules/migration.sql +10 -0
- package/src/adapters/prisma/migrations/20261020120000_commissioning_actors/migration.sql +14 -0
- package/src/adapters/prisma/migrations/20261020130000_console_sign_in_accounts/migration.sql +4 -0
- package/src/adapters/prisma/migrations/20261020140000_event_signed_in_accounts/migration.sql +4 -0
- package/src/adapters/prisma/migrations/20261020150000_account_cut_off_ends_console_sessions/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261020160000_network_in_core/migration.sql +30 -0
- package/src/adapters/prisma/migrations/20261020170000_verify_scope/migration.sql +64 -0
- package/src/adapters/prisma/migrations/20261020180000_verified_facts/migration.sql +21 -0
- package/src/adapters/prisma/migrations/20261020190000_verified_facts_by_writer/migration.sql +3 -0
- package/src/adapters/prisma/schema.prisma +132 -23
- package/dist/domain/registry/read-network-plugin.d.ts +0 -23
- package/dist/domain/registry/read-network-plugin.js +0 -15
- package/dist/domain/registry/read-network-plugin.js.map +0 -1
- package/dist/domain/registry/register-network-plugin.d.ts +0 -28
- package/dist/domain/registry/register-network-plugin.js +0 -26
- package/dist/domain/registry/register-network-plugin.js.map +0 -1
- package/dist/domain/registry/set-network-rules.d.ts +0 -31
- package/dist/domain/registry/set-network-rules.js +0 -27
- package/dist/domain/registry/set-network-rules.js.map +0 -1
- package/dist/domain/registry/unregister-network-plugin.d.ts +0 -27
- package/dist/domain/registry/unregister-network-plugin.js +0 -25
- package/dist/domain/registry/unregister-network-plugin.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/crew-request.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,SAAS,EACT,gBAAgB,EAChB,wBAAwB,GAMzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/crew-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import type { IdGenerator } from '@aeolus-fleet/common';
|
|
2
|
-
import type
|
|
2
|
+
import { type Caller } from '../shared/caller.js';
|
|
3
3
|
import type { Clock } from '../shared/clock.js';
|
|
4
4
|
import { type EventLog } from '../shared/events.js';
|
|
5
5
|
import { type Result } from '../shared/result.js';
|
|
6
6
|
import type { UnitOfWork } from '../shared/unit-of-work.js';
|
|
7
7
|
import { type DeclareNetworkRulesRefusal } from './declared-network-rules.js';
|
|
8
8
|
import type { NetworkRule } from './network-settings.js';
|
|
9
|
-
import type { DeclaredNetworkRulesRepository, LabelRepository, ShipRepository } from './ports.js';
|
|
9
|
+
import type { DeclaredNetworkRulesRepository, LabelRepository, NetworkSettingsRepository, ShipRepository } from './ports.js';
|
|
10
10
|
export interface DeclareNetworkRulesTx {
|
|
11
11
|
labels: Pick<LabelRepository, 'find' | 'findByValueForShare'>;
|
|
12
12
|
ships: Pick<ShipRepository, 'find'>;
|
|
13
13
|
declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'save'>;
|
|
14
|
+
networkSettings: Pick<NetworkSettingsRepository, 'findForUpdate' | 'save'>;
|
|
14
15
|
events: EventLog;
|
|
15
16
|
}
|
|
16
17
|
export type DeclareNetworkRules = (caller: Caller, input: {
|
|
@@ -19,12 +20,14 @@ export type DeclareNetworkRules = (caller: Caller, input: {
|
|
|
19
20
|
rules: number;
|
|
20
21
|
}, DeclareNetworkRulesRefusal>>;
|
|
21
22
|
/**
|
|
22
|
-
* Use case: a ship declares the network rules it needs
|
|
23
|
-
* its whole list, or none to withdraw them (
|
|
23
|
+
* Use case: a ship or the installation declares the network rules it needs
|
|
24
|
+
* on the labels it owns, its whole list, or none to withdraw them (decisions
|
|
25
|
+
* 0037, 0052); an account owns no label, so it is refused. Its scope
|
|
24
26
|
* (labels:define) is checked before this runs. In one unit of work: the
|
|
25
27
|
* labels its terms name as the fleet has them now, its list in place of the
|
|
26
|
-
* one before,
|
|
27
|
-
*
|
|
28
|
+
* one before, in force beside the fleet's own rules, the settings at their
|
|
29
|
+
* next version, and NetworkRulesDeclared. The settings are held exclusively
|
|
30
|
+
* after the labels, as an assignment takes them, so no check runs halfway.
|
|
28
31
|
*/
|
|
29
32
|
export declare function createDeclareNetworkRules(deps: {
|
|
30
33
|
uow: UnitOfWork<DeclareNetworkRulesTx>;
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { actorOf } from '../shared/caller.js';
|
|
2
|
+
import { recordEvent } from '../shared/events.js';
|
|
2
3
|
import { ok } from '../shared/result.js';
|
|
3
4
|
import { declareNetworkRules, namedInRules } from './declared-network-rules.js';
|
|
5
|
+
import { labelOwnerOf, ownerNameOf } from './label.js';
|
|
4
6
|
/**
|
|
5
|
-
* Use case: a ship declares the network rules it needs
|
|
6
|
-
* its whole list, or none to withdraw them (
|
|
7
|
+
* Use case: a ship or the installation declares the network rules it needs
|
|
8
|
+
* on the labels it owns, its whole list, or none to withdraw them (decisions
|
|
9
|
+
* 0037, 0052); an account owns no label, so it is refused. Its scope
|
|
7
10
|
* (labels:define) is checked before this runs. In one unit of work: the
|
|
8
11
|
* labels its terms name as the fleet has them now, its list in place of the
|
|
9
|
-
* one before,
|
|
10
|
-
*
|
|
12
|
+
* one before, in force beside the fleet's own rules, the settings at their
|
|
13
|
+
* next version, and NetworkRulesDeclared. The settings are held exclusively
|
|
14
|
+
* after the labels, as an assignment takes them, so no check runs halfway.
|
|
11
15
|
*/
|
|
12
16
|
export function createDeclareNetworkRules(deps) {
|
|
13
17
|
return (caller, input) => deps.uow.run(async (tx) => {
|
|
14
|
-
const { fleetId
|
|
18
|
+
const { fleetId } = caller;
|
|
15
19
|
const { labelIds, valueIds } = namedInRules(input.rules);
|
|
16
20
|
const found = await Promise.all([...labelIds.map((labelId) => tx.labels.find(fleetId, labelId)), ...valueIds.map((valueId) => tx.labels.findByValueForShare(fleetId, valueId))]);
|
|
17
21
|
const labels = found.filter((label) => label !== undefined);
|
|
18
|
-
const ownerNames = new Map(await Promise.all(labels.map(async (label) => [label.
|
|
19
|
-
const declared = declareNetworkRules({ labels, ownerNameOf: (
|
|
22
|
+
const ownerNames = new Map(await Promise.all(labels.map(async (label) => [label.id, await ownerNameOf(label.owner, async (owner) => (await tx.ships.find(fleetId, owner))?.name)])));
|
|
23
|
+
const declared = declareNetworkRules({ labels, ownerNameOf: (label) => ownerNames.get(label.id) ?? 'its owner' }, { settings: await tx.networkSettings.findForUpdate(fleetId), declarer: labelOwnerOf(caller), rules: input.rules, at: deps.clock.now(), actor: actorOf(caller) });
|
|
20
24
|
if (!declared.isOk) {
|
|
21
25
|
return declared;
|
|
22
26
|
}
|
|
23
27
|
await tx.declaredNetworkRules.save(declared.value.declared);
|
|
28
|
+
await tx.networkSettings.save(declared.value.settings);
|
|
24
29
|
for (const event of declared.value.events) {
|
|
25
30
|
await recordEvent({ events: tx.events, ids: deps.ids }, event);
|
|
26
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declare-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/declare-network-rules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"declare-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/declare-network-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IdGenerator } from '@aeolus-fleet/common';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ShipCaller } from '../shared/caller.js';
|
|
3
3
|
import type { Clock } from '../shared/clock.js';
|
|
4
4
|
import { type EventLog } from '../shared/events.js';
|
|
5
5
|
import { type Result } from '../shared/result.js';
|
|
@@ -16,7 +16,7 @@ export interface DeclaredNamespace {
|
|
|
16
16
|
namespace: string;
|
|
17
17
|
scopes: readonly DeclaredScope[];
|
|
18
18
|
}
|
|
19
|
-
export type DeclareScopes = (caller:
|
|
19
|
+
export type DeclareScopes = (caller: ShipCaller, input: {
|
|
20
20
|
namespace: string;
|
|
21
21
|
scopes: readonly {
|
|
22
22
|
scope: string;
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The network rules a ship declares on the labels it owns
|
|
3
|
-
* such as a plugin's for the ships it labels
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* The network rules a ship or the installation declares on the labels it owns
|
|
3
|
+
* (decisions 0037, 0052), such as a plugin's for the ships it labels, or the
|
|
4
|
+
* installation's on `group`. They are in force beside the fleet's own rules,
|
|
5
|
+
* merged at check time, so a declaration moves the settings version.
|
|
6
|
+
* Only rules on labels the declarer owns keep them safe: only an actor
|
|
7
|
+
* holding labels:any assigns those labels besides it, so its rules reach no
|
|
8
|
+
* ship it did not label.
|
|
7
9
|
*/
|
|
8
|
-
import { type FleetId, type LabelId, type LabelValueId
|
|
10
|
+
import { type FleetId, type LabelId, type LabelValueId } from '@aeolus-fleet/common';
|
|
9
11
|
import { type DomainError } from '../shared/errors.js';
|
|
10
12
|
import type { Actor, NewEvent } from '../shared/events.js';
|
|
11
13
|
import { type Result } from '../shared/result.js';
|
|
12
|
-
import type
|
|
13
|
-
import { type NetworkRule } from './network-settings.js';
|
|
14
|
-
/** One
|
|
14
|
+
import { type Label, type LabelOwner } from './label.js';
|
|
15
|
+
import { type NetworkRule, type NetworkSettings } from './network-settings.js';
|
|
16
|
+
/** One declarer's declared rules, its whole list; a declarer that declares none holds none. */
|
|
15
17
|
export interface DeclaredNetworkRules {
|
|
16
18
|
fleetId: FleetId;
|
|
17
|
-
|
|
19
|
+
/** A ship, or the installation (decision 0052); an account owns no label, so it declares none. */
|
|
20
|
+
declarer: LabelOwner;
|
|
18
21
|
rules: readonly NetworkRule[];
|
|
19
22
|
}
|
|
20
|
-
export type DeclareNetworkRulesRefusal = DomainError<'INVALID_NETWORK_RULES' | 'NOT_THE_LABEL_OWNER' | 'LABEL_NOT_FOUND' | 'LABEL_VALUE_NOT_FOUND'>;
|
|
23
|
+
export type DeclareNetworkRulesRefusal = DomainError<'INVALID_NETWORK_RULES' | 'NOT_THE_LABEL_OWNER' | 'LABEL_NOT_FOUND' | 'LABEL_VALUE_NOT_FOUND' | 'ACCOUNT_OWNS_NO_LABEL'>;
|
|
21
24
|
/** The labels a declaration's terms name, as the fleet has them now, with each owner's name for a refusal. */
|
|
22
25
|
export interface NamedLabels {
|
|
23
26
|
labels: readonly Label[];
|
|
24
|
-
ownerNameOf: (
|
|
27
|
+
ownerNameOf: (label: Label) => string;
|
|
25
28
|
}
|
|
26
29
|
/** Every label and every exact value the rules' terms name, each once: what the caller looks up before declaring. */
|
|
27
30
|
export declare function namedInRules(rules: readonly NetworkRule[]): {
|
|
@@ -29,33 +32,39 @@ export declare function namedInRules(rules: readonly NetworkRule[]): {
|
|
|
29
32
|
valueIds: LabelValueId[];
|
|
30
33
|
};
|
|
31
34
|
/**
|
|
32
|
-
* The
|
|
33
|
-
* before; an empty list withdraws them. At most 20, each rule within
|
|
34
|
-
* decision 0034's own limits, and every term on a label the
|
|
35
|
+
* The declarer declares its whole list from now on, replacing what it
|
|
36
|
+
* declared before; an empty list withdraws them. At most 20, each rule within
|
|
37
|
+
* decision 0034's own limits, and every term on a label the declarer owns: an
|
|
35
38
|
* exact value's label, and the label of a term of any or the same value; a
|
|
36
39
|
* term of the owner is on no label, so it is refused. An
|
|
37
|
-
* id the fleet does not have is refused, as its owner cannot be checked.
|
|
38
|
-
*
|
|
40
|
+
* id the fleet does not have is refused, as its owner cannot be checked. An
|
|
41
|
+
* account owns no label, so it declares nothing, not even none.
|
|
42
|
+
* The settings move to the next version, as the rules in force change.
|
|
43
|
+
* NetworkRulesDeclared names the declaring ship, none for the installation,
|
|
44
|
+
* the number of rules, never them, and the settings version.
|
|
39
45
|
*/
|
|
40
46
|
export declare function declareNetworkRules(named: NamedLabels, change: {
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
settings: NetworkSettings;
|
|
48
|
+
declarer: LabelOwner | undefined;
|
|
43
49
|
rules: readonly NetworkRule[];
|
|
44
50
|
at: Date;
|
|
45
51
|
actor: Actor;
|
|
46
52
|
}): Result<{
|
|
47
53
|
declared: DeclaredNetworkRules;
|
|
54
|
+
settings: NetworkSettings;
|
|
48
55
|
events: NewEvent[];
|
|
49
56
|
}, DeclareNetworkRulesRefusal>;
|
|
50
57
|
/**
|
|
51
58
|
* The retired ship's declared rules go with it, as its labels do (decision
|
|
52
|
-
* 0031): none from now on,
|
|
53
|
-
* declared none changes nothing.
|
|
59
|
+
* 0031): none from now on, the settings at their next version, with
|
|
60
|
+
* NetworkRulesDeclared of none. A ship that declared none changes nothing.
|
|
54
61
|
*/
|
|
55
62
|
export declare function withdrawWithRetiredShip(current: DeclaredNetworkRules | undefined, change: {
|
|
63
|
+
settings: NetworkSettings;
|
|
56
64
|
at: Date;
|
|
57
65
|
actor: Actor;
|
|
58
66
|
}): {
|
|
59
67
|
declared: DeclaredNetworkRules;
|
|
68
|
+
settings: NetworkSettings;
|
|
60
69
|
events: NewEvent[];
|
|
61
70
|
} | undefined;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The network rules a ship declares on the labels it owns
|
|
3
|
-
* such as a plugin's for the ships it labels
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* The network rules a ship or the installation declares on the labels it owns
|
|
3
|
+
* (decisions 0037, 0052), such as a plugin's for the ships it labels, or the
|
|
4
|
+
* installation's on `group`. They are in force beside the fleet's own rules,
|
|
5
|
+
* merged at check time, so a declaration moves the settings version.
|
|
6
|
+
* Only rules on labels the declarer owns keep them safe: only an actor
|
|
7
|
+
* holding labels:any assigns those labels besides it, so its rules reach no
|
|
8
|
+
* ship it did not label.
|
|
7
9
|
*/
|
|
8
10
|
import { DECLARED_NETWORK_RULES_MAX, isOwnerTerm } from '@aeolus-fleet/common';
|
|
9
11
|
import { refuse } from '../shared/errors.js';
|
|
10
12
|
import { ok } from '../shared/result.js';
|
|
11
|
-
import {
|
|
13
|
+
import { isSameOwner } from './label.js';
|
|
14
|
+
import { copyOfRule, invalidRule, termText, withDeclaredRulesChanged } from './network-settings.js';
|
|
12
15
|
/** Every label and every exact value the rules' terms name, each once: what the caller looks up before declaring. */
|
|
13
16
|
export function namedInRules(rules) {
|
|
14
17
|
const terms = rules.flatMap((rule) => [...rule.from, ...rule.to]);
|
|
@@ -18,16 +21,20 @@ export function namedInRules(rules) {
|
|
|
18
21
|
};
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
21
|
-
* The
|
|
22
|
-
* before; an empty list withdraws them. At most 20, each rule within
|
|
23
|
-
* decision 0034's own limits, and every term on a label the
|
|
24
|
+
* The declarer declares its whole list from now on, replacing what it
|
|
25
|
+
* declared before; an empty list withdraws them. At most 20, each rule within
|
|
26
|
+
* decision 0034's own limits, and every term on a label the declarer owns: an
|
|
24
27
|
* exact value's label, and the label of a term of any or the same value; a
|
|
25
28
|
* term of the owner is on no label, so it is refused. An
|
|
26
|
-
* id the fleet does not have is refused, as its owner cannot be checked.
|
|
27
|
-
*
|
|
29
|
+
* id the fleet does not have is refused, as its owner cannot be checked. An
|
|
30
|
+
* account owns no label, so it declares nothing, not even none.
|
|
31
|
+
* The settings move to the next version, as the rules in force change.
|
|
32
|
+
* NetworkRulesDeclared names the declaring ship, none for the installation,
|
|
33
|
+
* the number of rules, never them, and the settings version.
|
|
28
34
|
*/
|
|
29
35
|
export function declareNetworkRules(named, change) {
|
|
30
|
-
const {
|
|
36
|
+
const { declarer, rules } = change;
|
|
37
|
+
const { fleetId } = change.settings;
|
|
31
38
|
if (rules.length > DECLARED_NETWORK_RULES_MAX) {
|
|
32
39
|
return refuse('INVALID_NETWORK_RULES', `A ship declares at most ${String(DECLARED_NETWORK_RULES_MAX)} network rules (decision 0037)`);
|
|
33
40
|
}
|
|
@@ -41,36 +48,53 @@ export function declareNetworkRules(named, change) {
|
|
|
41
48
|
return refuse('INVALID_NETWORK_RULES', `A declared rule holds only terms on labels the ship owns: ${termText(ownerTerm)} is a term of the owner (decision 0037)`);
|
|
42
49
|
}
|
|
43
50
|
for (const term of terms.filter((each) => !isOwnerTerm(each))) {
|
|
44
|
-
const owned = checkOwnedTerm(named, { term,
|
|
51
|
+
const owned = checkOwnedTerm(named, { term, declarer });
|
|
45
52
|
if (!owned.isOk) {
|
|
46
53
|
return owned;
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
|
-
|
|
56
|
+
if (declarer === undefined) {
|
|
57
|
+
return refuse('ACCOUNT_OWNS_NO_LABEL', 'A ship or the installation declares network rules on the labels it owns; an account owns none');
|
|
58
|
+
}
|
|
59
|
+
const settings = withDeclaredRulesChanged(change.settings);
|
|
60
|
+
return ok({
|
|
61
|
+
declared: { fleetId, declarer, rules: rules.map(copyOfRule) },
|
|
62
|
+
settings,
|
|
63
|
+
events: [declaredEvent({ fleetId, declarer, rules: rules.length, version: settings.version, at: change.at, actor: change.actor })],
|
|
64
|
+
});
|
|
50
65
|
}
|
|
51
66
|
/**
|
|
52
67
|
* The retired ship's declared rules go with it, as its labels do (decision
|
|
53
|
-
* 0031): none from now on,
|
|
54
|
-
* declared none changes nothing.
|
|
68
|
+
* 0031): none from now on, the settings at their next version, with
|
|
69
|
+
* NetworkRulesDeclared of none. A ship that declared none changes nothing.
|
|
55
70
|
*/
|
|
56
71
|
export function withdrawWithRetiredShip(current, change) {
|
|
57
72
|
if (current === undefined) {
|
|
58
73
|
return undefined;
|
|
59
74
|
}
|
|
60
|
-
const { fleetId,
|
|
61
|
-
|
|
75
|
+
const { fleetId, declarer } = current;
|
|
76
|
+
const settings = withDeclaredRulesChanged(change.settings);
|
|
77
|
+
return { declared: { fleetId, declarer, rules: [] }, settings, events: [declaredEvent({ fleetId, declarer, rules: 0, version: settings.version, at: change.at, actor: change.actor })] };
|
|
62
78
|
}
|
|
63
79
|
function declaredEvent(declared) {
|
|
64
|
-
|
|
80
|
+
const { fleetId, declarer, at, actor } = declared;
|
|
81
|
+
return {
|
|
82
|
+
type: 'NetworkRulesDeclared',
|
|
83
|
+
fleetId,
|
|
84
|
+
occurredAt: at,
|
|
85
|
+
actor,
|
|
86
|
+
...(declarer.kind === 'ship' ? { shipId: declarer.shipId } : {}),
|
|
87
|
+
details: { rules: declared.rules, version: declared.version },
|
|
88
|
+
};
|
|
65
89
|
}
|
|
66
90
|
function checkOwnedTerm(named, declaring) {
|
|
67
|
-
const { term,
|
|
91
|
+
const { term, declarer } = declaring;
|
|
68
92
|
const label = typeof term === 'string' ? named.labels.find((each) => each.values.some((value) => value.id === term)) : named.labels.find((each) => each.id === term.labelId);
|
|
69
93
|
if (label === undefined) {
|
|
70
94
|
return typeof term === 'string' ? refuse('LABEL_VALUE_NOT_FOUND', `The fleet has no label value ${term}`) : refuse('LABEL_NOT_FOUND', `The fleet has no label ${term.labelId}`);
|
|
71
95
|
}
|
|
72
|
-
return label.
|
|
96
|
+
return isSameOwner(label.owner, declarer)
|
|
73
97
|
? ok(undefined)
|
|
74
|
-
: refuse('NOT_THE_LABEL_OWNER', `The label ${label.key} is owned by ${named.ownerNameOf(label
|
|
98
|
+
: refuse('NOT_THE_LABEL_OWNER', `The label ${label.key} is owned by ${named.ownerNameOf(label)}: only its owner declares rules on it (decision 0037)`);
|
|
75
99
|
}
|
|
76
100
|
//# sourceMappingURL=declared-network-rules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declared-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/declared-network-rules.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"declared-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/declared-network-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IdGenerator, LabelId } from '@aeolus-fleet/common';
|
|
2
|
-
import type
|
|
2
|
+
import { type Caller } from '../shared/caller.js';
|
|
3
3
|
import type { Clock } from '../shared/clock.js';
|
|
4
4
|
import { type EventLog } from '../shared/events.js';
|
|
5
5
|
import { type Result } from '../shared/result.js';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { actorOf } from '../shared/caller.js';
|
|
2
|
+
import { recordEvent } from '../shared/events.js';
|
|
2
3
|
import { ok } from '../shared/result.js';
|
|
3
|
-
import { defineLabel } from './label.js';
|
|
4
|
+
import { defineLabel, labelOwnerOf, ownerNameOf } from './label.js';
|
|
4
5
|
/**
|
|
5
6
|
* Use case: the caller's ship defines a label it then owns (decision 0031).
|
|
6
7
|
* Its scope (labels:define) is checked before this runs. In one unit of work,
|
|
@@ -12,13 +13,12 @@ export function createDefineLabel(deps) {
|
|
|
12
13
|
const { fleetId } = caller;
|
|
13
14
|
await tx.labels.lockKey(fleetId, input.key);
|
|
14
15
|
const label = await tx.labels.findByKey(fleetId, input.key);
|
|
15
|
-
const
|
|
16
|
-
const defined = defineLabel({ owner: { fleetId, id: caller.shipId }, existing: label && { label, ownerName: owner?.name ?? label.ownerShipId } }, {
|
|
16
|
+
const defined = defineLabel({ fleetId, owner: labelOwnerOf(caller), existing: label && { label, ownerName: await ownerNameOf(label.owner, async (shipId) => (await tx.ships.find(fleetId, shipId))?.name) } }, {
|
|
17
17
|
id: deps.ids('label'),
|
|
18
18
|
key: input.key,
|
|
19
19
|
values: input.values.map((value) => ({ value, newId: deps.ids('labelValue') })),
|
|
20
20
|
at: deps.clock.now(),
|
|
21
|
-
actor:
|
|
21
|
+
actor: actorOf(caller),
|
|
22
22
|
});
|
|
23
23
|
if (!defined.isOk) {
|
|
24
24
|
return defined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-label.js","sourceRoot":"","sources":["../../../src/domain/registry/define-label.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define-label.js","sourceRoot":"","sources":["../../../src/domain/registry/define-label.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAA4C,MAAM,YAAY,CAAC;AAiB9G;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwE;IACxG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAqD,EAAE;QAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,WAAW,CACzB,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EACjL;YACE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YACrB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/E,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;SACvB,CACF,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IdGenerator, LabelId } from '@aeolus-fleet/common';
|
|
2
|
-
import type
|
|
2
|
+
import { type Caller } from '../shared/caller.js';
|
|
3
3
|
import type { Clock } from '../shared/clock.js';
|
|
4
4
|
import { type DomainError } from '../shared/errors.js';
|
|
5
5
|
import { type EventLog } from '../shared/events.js';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { actorOf } from '../shared/caller.js';
|
|
1
2
|
import { refuse } from '../shared/errors.js';
|
|
2
|
-
import { recordEvent
|
|
3
|
+
import { recordEvent } from '../shared/events.js';
|
|
3
4
|
import { ok } from '../shared/result.js';
|
|
4
|
-
import { deleteLabel } from './label.js';
|
|
5
|
+
import { deleteLabel, labelOwnerOf, ownerNameOf } from './label.js';
|
|
5
6
|
/**
|
|
6
7
|
* Use case: a label's owner deletes it, freeing its key (decision 0031). Its
|
|
7
8
|
* scope (labels:define) is checked before this runs. In one unit of work,
|
|
@@ -18,7 +19,7 @@ export function createDeleteLabel(deps) {
|
|
|
18
19
|
}
|
|
19
20
|
const nameOf = async (shipId) => (await tx.ships.find(fleetId, shipId))?.name ?? shipId;
|
|
20
21
|
const carrierNames = await Promise.all((await tx.labels.carriersOf(fleetId, label.id)).map((carried) => nameOf(carried.shipId)));
|
|
21
|
-
const deleted = deleteLabel({ label, ownerName: await
|
|
22
|
+
const deleted = deleteLabel({ label, ownerName: await ownerNameOf(label.owner, nameOf), carrierNames }, { caller: labelOwnerOf(caller), at: deps.clock.now(), actor: actorOf(caller) });
|
|
22
23
|
if (!deleted.isOk) {
|
|
23
24
|
return deleted;
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-label.js","sourceRoot":"","sources":["../../../src/domain/registry/delete-label.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete-label.js","sourceRoot":"","sources":["../../../src/domain/registry/delete-label.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAA2B,MAAM,YAAY,CAAC;AAa7F;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwE;IACxG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAkD,EAAE;QACxE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC;QAChG,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjI,MAAM,OAAO,GAAG,WAAW,CACzB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,EAC1E,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAC/E,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IdGenerator } from '@aeolus-fleet/common';
|
|
2
|
+
import { type Caller } from '../shared/caller.js';
|
|
3
|
+
import type { Clock } from '../shared/clock.js';
|
|
4
|
+
import { type EventLog } from '../shared/events.js';
|
|
5
|
+
import { type Result } from '../shared/result.js';
|
|
6
|
+
import type { UnitOfWork } from '../shared/unit-of-work.js';
|
|
7
|
+
import { type NoNetworkRulesDraft } from './network-rules-draft.js';
|
|
8
|
+
import type { NetworkRulesDraftRepository } from './ports.js';
|
|
9
|
+
export interface DiscardNetworkRulesDraftTx {
|
|
10
|
+
networkRulesDrafts: Pick<NetworkRulesDraftRepository, 'find' | 'remove'>;
|
|
11
|
+
events: EventLog;
|
|
12
|
+
}
|
|
13
|
+
export type DiscardNetworkRulesDraft = (caller: Caller) => Promise<Result<undefined, NoNetworkRulesDraft>>;
|
|
14
|
+
/**
|
|
15
|
+
* Use case: any actor holding fleet:network discards the fleet's draft
|
|
16
|
+
* (decision 0034), checked before this runs. In one unit of work: the draft
|
|
17
|
+
* gone, and NetworkRulesDraftDiscarded. The applied rules stay as they are.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createDiscardNetworkRulesDraft(deps: {
|
|
20
|
+
uow: UnitOfWork<DiscardNetworkRulesDraftTx>;
|
|
21
|
+
clock: Clock;
|
|
22
|
+
ids: IdGenerator;
|
|
23
|
+
}): DiscardNetworkRulesDraft;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { actorOf } from '../shared/caller.js';
|
|
2
|
+
import { recordEvent } from '../shared/events.js';
|
|
3
|
+
import { ok } from '../shared/result.js';
|
|
4
|
+
import { discardNetworkRulesDraft } from './network-rules-draft.js';
|
|
5
|
+
/**
|
|
6
|
+
* Use case: any actor holding fleet:network discards the fleet's draft
|
|
7
|
+
* (decision 0034), checked before this runs. In one unit of work: the draft
|
|
8
|
+
* gone, and NetworkRulesDraftDiscarded. The applied rules stay as they are.
|
|
9
|
+
*/
|
|
10
|
+
export function createDiscardNetworkRulesDraft(deps) {
|
|
11
|
+
return (caller) => deps.uow.run(async (tx) => {
|
|
12
|
+
const { fleetId } = caller;
|
|
13
|
+
const discarded = discardNetworkRulesDraft(await tx.networkRulesDrafts.find(fleetId), { fleetId, at: deps.clock.now(), actor: actorOf(caller) });
|
|
14
|
+
if (!discarded.isOk) {
|
|
15
|
+
return discarded;
|
|
16
|
+
}
|
|
17
|
+
await tx.networkRulesDrafts.remove(fleetId);
|
|
18
|
+
for (const event of discarded.value.events) {
|
|
19
|
+
await recordEvent({ events: tx.events, ids: deps.ids }, event);
|
|
20
|
+
}
|
|
21
|
+
return ok(undefined);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=discard-network-rules-draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discard-network-rules-draft.js","sourceRoot":"","sources":["../../../src/domain/registry/discard-network-rules-draft.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAA4B,MAAM,0BAA0B,CAAC;AAU9F;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAqF;IAClI,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAmD,EAAE;QACzE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjJ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import type { Discovered } from '@aeolus-fleet/common';
|
|
2
|
-
import type {
|
|
3
|
-
import type { Clock } from '../shared/clock.js';
|
|
2
|
+
import type { ShipCaller } from '../shared/caller.js';
|
|
4
3
|
import { type Result } from '../shared/result.js';
|
|
5
4
|
import type { UnitOfWork } from '../shared/unit-of-work.js';
|
|
6
5
|
import { type CheckReachTx } from './check-reach.js';
|
|
7
|
-
import type { LeaseRepository, ShipRepository } from './ports.js';
|
|
6
|
+
import type { LeaseRepository, ShipRepository, VerifiedFactsRepository } from './ports.js';
|
|
8
7
|
export interface DiscoverTx {
|
|
9
8
|
networkSettings: CheckReachTx['networkSettings'];
|
|
10
|
-
ships: Pick<ShipRepository, 'find' | 'listActive'>;
|
|
9
|
+
ships: Pick<ShipRepository, 'find' | 'list' | 'listActive'>;
|
|
11
10
|
labels: CheckReachTx['labels'];
|
|
12
11
|
pluginConnections: CheckReachTx['pluginConnections'];
|
|
13
|
-
leases: Pick<LeaseRepository, '
|
|
12
|
+
leases: Pick<LeaseRepository, 'listOpenStatements'>;
|
|
13
|
+
declaredNetworkRules: CheckReachTx['declaredNetworkRules'];
|
|
14
|
+
verifiedFacts: Pick<VerifiedFactsRepository, 'list'>;
|
|
14
15
|
}
|
|
15
|
-
export type Discover = (caller:
|
|
16
|
+
export type Discover = (caller: ShipCaller) => Promise<Result<Discovered, never>>;
|
|
16
17
|
/**
|
|
17
18
|
* Use case: a ship asks which ships and types it may send to now (decision
|
|
18
19
|
* 0047), its scope (messages:send) checked before this runs. Each active
|
|
19
20
|
* ship but the caller and the viewer is checked as a send to it would be at
|
|
20
|
-
* this moment (decision 0034): the
|
|
21
|
-
* declared
|
|
21
|
+
* this moment (decision 0034): the built-in rules, the fleet's own and the
|
|
22
|
+
* declared ones; there is no message,
|
|
22
23
|
* so no answer to a sender. Each reached ship comes with its name, type, kind,
|
|
23
|
-
* status and
|
|
24
|
+
* status, statement and verified facts (decision 0059), and each type with
|
|
25
|
+
* how many of its ships it reaches.
|
|
24
26
|
* Ships, never rules; it records nothing, a refusal included.
|
|
25
27
|
*/
|
|
26
28
|
export declare function createDiscover(deps: {
|
|
27
29
|
uow: UnitOfWork<DiscoverTx>;
|
|
28
|
-
clock: Clock;
|
|
29
30
|
}): Discover;
|