@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,4 +1,5 @@
|
|
|
1
|
-
import { type FleetId, type LabelId, type LabelValueId, type ShipId
|
|
1
|
+
import { type FleetId, type LabelId, type LabelValueId, type ShipId } from '@aeolus-fleet/common';
|
|
2
|
+
import type { Caller } from '../shared/caller.js';
|
|
2
3
|
import { type DomainError } from '../shared/errors.js';
|
|
3
4
|
import type { Actor, NewEvent } from '../shared/events.js';
|
|
4
5
|
import { type Result } from '../shared/result.js';
|
|
@@ -8,9 +9,23 @@ export interface LabelValue {
|
|
|
8
9
|
id: LabelValueId;
|
|
9
10
|
value: string;
|
|
10
11
|
}
|
|
12
|
+
/** Who owns a label (decision 0031): the ship that defined it, or the installation; never an account. */
|
|
13
|
+
export type LabelOwner = {
|
|
14
|
+
kind: 'ship';
|
|
15
|
+
shipId: ShipId;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'installation';
|
|
18
|
+
};
|
|
19
|
+
/** The owner an actor defines a label as: none for an account, which owns no label (decision 0031). */
|
|
20
|
+
export declare function labelOwnerOf(caller: Caller): LabelOwner | undefined;
|
|
21
|
+
/** The owner as a refusal names it: a ship by its name, or the installation. */
|
|
22
|
+
export declare function ownerNameOf(owner: LabelOwner, shipNameOf: (shipId: ShipId) => Promise<string | undefined>): Promise<string>;
|
|
23
|
+
/** Whether the other is the same owner: none, an account, is no owner. */
|
|
24
|
+
export declare function isSameOwner(owner: LabelOwner, other: LabelOwner | undefined): boolean;
|
|
11
25
|
/**
|
|
12
26
|
* A label (docs/blueprint.md, "Label"; decision 0031): a key with a defined
|
|
13
|
-
* set of values, each with its own id, owned by the ship
|
|
27
|
+
* set of values, each with its own id, owned by the ship or the installation
|
|
28
|
+
* that defined it.
|
|
14
29
|
* Ids are for machines, key and value texts for people. Only its owner
|
|
15
30
|
* changes its values and assigns them, to any ship, its own included. It
|
|
16
31
|
* retires with its owner.
|
|
@@ -22,16 +37,19 @@ export interface Label {
|
|
|
22
37
|
key: string;
|
|
23
38
|
/** In the order the owner gave them, each once. */
|
|
24
39
|
values: readonly LabelValue[];
|
|
25
|
-
|
|
40
|
+
owner: LabelOwner;
|
|
26
41
|
}
|
|
27
|
-
/** A label as the fleet lists it: its id, key and values, and its owner by id and name. */
|
|
42
|
+
/** A label as the fleet lists it: its id, key and values, and its owner: a ship by id and name, or the installation. */
|
|
28
43
|
export interface ListedLabel {
|
|
29
44
|
id: LabelId;
|
|
30
45
|
key: string;
|
|
31
46
|
values: readonly LabelValue[];
|
|
32
47
|
owner: {
|
|
48
|
+
kind: 'ship';
|
|
33
49
|
id: ShipId;
|
|
34
50
|
name: string;
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'installation';
|
|
35
53
|
};
|
|
36
54
|
}
|
|
37
55
|
/** One value a ship carries, with its label: ids and texts. */
|
|
@@ -64,15 +82,17 @@ type InvalidValue = DomainError<'INVALID_LABEL_VALUE'>;
|
|
|
64
82
|
type InvalidValues = DomainError<'INVALID_LABEL_VALUES'>;
|
|
65
83
|
/** A label's key, checked against the limits. */
|
|
66
84
|
export declare function labelKey(key: string): Result<string, InvalidKey>;
|
|
67
|
-
export type DefineLabelRefusal = InvalidKey | InvalidValue | InvalidValues | DomainError<'LABEL_KEY_TAKEN'>;
|
|
85
|
+
export type DefineLabelRefusal = InvalidKey | InvalidValue | InvalidValues | DomainError<'LABEL_KEY_TAKEN' | 'ACCOUNT_OWNS_NO_LABEL'>;
|
|
68
86
|
/**
|
|
69
|
-
* A ship defines a label, owning it: a key unique in the
|
|
70
|
-
* the label and each value with its new id.
|
|
71
|
-
*
|
|
72
|
-
*
|
|
87
|
+
* A ship or the installation defines a label, owning it: a key unique in the
|
|
88
|
+
* fleet and its values, the label and each value with its new id. An account
|
|
89
|
+
* owns no label, so it defines none (decision 0031). A key the fleet has is
|
|
90
|
+
* refused, naming its owner. LabelDefined names the owning ship, if a ship
|
|
91
|
+
* owns it, with the label and its values.
|
|
73
92
|
*/
|
|
74
|
-
export declare function defineLabel({ owner, existing, }: {
|
|
75
|
-
|
|
93
|
+
export declare function defineLabel({ fleetId, owner, existing, }: {
|
|
94
|
+
fleetId: FleetId;
|
|
95
|
+
owner: LabelOwner | undefined;
|
|
76
96
|
existing: {
|
|
77
97
|
label: Label;
|
|
78
98
|
ownerName: string;
|
|
@@ -103,7 +123,7 @@ export declare function changeLabelValues({ label, ownerName, carriers, }: {
|
|
|
103
123
|
shipName: string;
|
|
104
124
|
}[];
|
|
105
125
|
}, input: {
|
|
106
|
-
|
|
126
|
+
caller: LabelOwner | undefined;
|
|
107
127
|
values: readonly NewLabelValue[];
|
|
108
128
|
at: Date;
|
|
109
129
|
actor: Actor;
|
|
@@ -122,14 +142,24 @@ export declare function deleteLabel({ label, ownerName, carrierNames }: {
|
|
|
122
142
|
ownerName: string;
|
|
123
143
|
carrierNames: readonly string[];
|
|
124
144
|
}, input: {
|
|
125
|
-
|
|
145
|
+
caller: LabelOwner | undefined;
|
|
126
146
|
at: Date;
|
|
127
147
|
actor: Actor;
|
|
128
148
|
}): Result<{
|
|
129
149
|
events: NewEvent[];
|
|
130
150
|
}, DeleteLabelRefusal>;
|
|
131
|
-
/** A ship the caller may not label: neither its own nor one it commissioned, and the caller
|
|
151
|
+
/** A ship the caller may not label: neither its own nor one it commissioned, and the caller holds no labels:any. */
|
|
132
152
|
export type NotYourShipToLabel = DomainError<'NOT_YOUR_SHIP_TO_LABEL'>;
|
|
153
|
+
/**
|
|
154
|
+
* Who labels a ship: the label's owner on its own ship and the ships it
|
|
155
|
+
* commissioned, or an actor holding labels:any, whose manage reach the use
|
|
156
|
+
* case checks, on any ship (decisions 0031, 0053).
|
|
157
|
+
*/
|
|
158
|
+
export interface Labeller {
|
|
159
|
+
owner: LabelOwner | undefined;
|
|
160
|
+
shipId: ShipId | null;
|
|
161
|
+
canLabelAnyShip: boolean;
|
|
162
|
+
}
|
|
133
163
|
export type AssignLabelRefusal = NotTheOwner | NotYourShipToLabel | DomainError<'SHIP_ALREADY_RETIRED' | 'SHIP_LABEL_LIMIT_REACHED'>;
|
|
134
164
|
/**
|
|
135
165
|
* The owner gives a ship one of its label's values, by its id: the ship
|
|
@@ -144,8 +174,7 @@ export declare function assignLabel({ label, ownerName, ship, carried, }: {
|
|
|
144
174
|
ship: Ship;
|
|
145
175
|
carried: readonly ShipLabel[];
|
|
146
176
|
}, input: {
|
|
147
|
-
|
|
148
|
-
callerKind: ShipKind;
|
|
177
|
+
caller: Labeller;
|
|
149
178
|
valueId: LabelValueId;
|
|
150
179
|
at: Date;
|
|
151
180
|
actor: Actor;
|
|
@@ -153,6 +182,29 @@ export declare function assignLabel({ label, ownerName, ship, carried, }: {
|
|
|
153
182
|
assignment: ShipLabel | undefined;
|
|
154
183
|
events: NewEvent[];
|
|
155
184
|
}, AssignLabelRefusal>;
|
|
185
|
+
/** A label value a commission gives the new ship, with its label as the fleet holds it now and its owner's name. */
|
|
186
|
+
export interface GivenValue {
|
|
187
|
+
label: Label;
|
|
188
|
+
valueId: LabelValueId;
|
|
189
|
+
ownerName: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* The values a commission gives the new ship (decision 0053), each once: a
|
|
193
|
+
* value of a label the commissioner owns, or a value it carries itself, a
|
|
194
|
+
* ship's labels or an account's token, so a new ship never reaches further
|
|
195
|
+
* than its commissioner can make it. Argo is no exception. LabelAssigned
|
|
196
|
+
* names the new ship for each.
|
|
197
|
+
*/
|
|
198
|
+
export declare function labelsAtCommission(given: readonly GivenValue[], commission: {
|
|
199
|
+
ship: Ship;
|
|
200
|
+
owner: LabelOwner | undefined;
|
|
201
|
+
carried: readonly LabelValueId[];
|
|
202
|
+
at: Date;
|
|
203
|
+
actor: Actor;
|
|
204
|
+
}): Result<{
|
|
205
|
+
assignments: ShipLabel[];
|
|
206
|
+
events: NewEvent[];
|
|
207
|
+
}, NotTheOwner>;
|
|
156
208
|
export type UnassignLabelRefusal = NotTheOwner | NotYourShipToLabel;
|
|
157
209
|
/**
|
|
158
210
|
* The owner takes one value of its label off a ship. A ship that does not
|
|
@@ -165,8 +217,7 @@ export declare function unassignLabel({ label, ownerName, ship, carried, }: {
|
|
|
165
217
|
ship: Ship;
|
|
166
218
|
carried: readonly ShipLabel[];
|
|
167
219
|
}, input: {
|
|
168
|
-
|
|
169
|
-
callerKind: ShipKind;
|
|
220
|
+
caller: Labeller;
|
|
170
221
|
valueId: LabelValueId;
|
|
171
222
|
at: Date;
|
|
172
223
|
actor: Actor;
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { LABEL_HANDLE_MAX_LENGTH, LABEL_HANDLE_PATTERN, LABEL_VALUES_MAX, SHIP_LABELS_MAX, } from '@aeolus-fleet/common';
|
|
2
2
|
import { refuse } from '../shared/errors.js';
|
|
3
3
|
import { ok } from '../shared/result.js';
|
|
4
|
+
/** The owner an actor defines a label as: none for an account, which owns no label (decision 0031). */
|
|
5
|
+
export function labelOwnerOf(caller) {
|
|
6
|
+
if (caller.kind === 'account') {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
return caller.kind === 'installation' ? { kind: 'installation' } : { kind: 'ship', shipId: caller.shipId };
|
|
10
|
+
}
|
|
11
|
+
/** The owner as a refusal names it: a ship by its name, or the installation. */
|
|
12
|
+
export async function ownerNameOf(owner, shipNameOf) {
|
|
13
|
+
return owner.kind === 'installation' ? 'the installation' : ((await shipNameOf(owner.shipId)) ?? owner.shipId);
|
|
14
|
+
}
|
|
15
|
+
/** Whether the other is the same owner: none, an account, is no owner. */
|
|
16
|
+
export function isSameOwner(owner, other) {
|
|
17
|
+
return other !== undefined && (owner.kind === 'installation' ? other.kind === 'installation' : other.kind === 'ship' && other.shipId === owner.shipId);
|
|
18
|
+
}
|
|
4
19
|
/**
|
|
5
20
|
* Whether a ship carries every value of the selector: exact matches by id,
|
|
6
21
|
* combined with AND (decision 0031). No selector, or an empty one, selects
|
|
@@ -42,7 +57,7 @@ function labelEvent(label, change) {
|
|
|
42
57
|
fleetId: label.fleetId,
|
|
43
58
|
occurredAt: change.at,
|
|
44
59
|
actor: change.actor,
|
|
45
|
-
shipId: label.
|
|
60
|
+
...(label.owner.kind === 'ship' && { shipId: label.owner.shipId }),
|
|
46
61
|
type: change.type,
|
|
47
62
|
details: { labelId: label.id, key: label.key, ...change.details },
|
|
48
63
|
};
|
|
@@ -55,12 +70,16 @@ function valuesDetails(values) {
|
|
|
55
70
|
};
|
|
56
71
|
}
|
|
57
72
|
/**
|
|
58
|
-
* A ship defines a label, owning it: a key unique in the
|
|
59
|
-
* the label and each value with its new id.
|
|
60
|
-
*
|
|
61
|
-
*
|
|
73
|
+
* A ship or the installation defines a label, owning it: a key unique in the
|
|
74
|
+
* fleet and its values, the label and each value with its new id. An account
|
|
75
|
+
* owns no label, so it defines none (decision 0031). A key the fleet has is
|
|
76
|
+
* refused, naming its owner. LabelDefined names the owning ship, if a ship
|
|
77
|
+
* owns it, with the label and its values.
|
|
62
78
|
*/
|
|
63
|
-
export function defineLabel({ owner, existing, }, input) {
|
|
79
|
+
export function defineLabel({ fleetId, owner, existing, }, input) {
|
|
80
|
+
if (owner === undefined) {
|
|
81
|
+
return refuse('ACCOUNT_OWNS_NO_LABEL', 'A ship or the installation defines a label and owns it; an account does not');
|
|
82
|
+
}
|
|
64
83
|
const key = labelKey(input.key);
|
|
65
84
|
if (!key.isOk) {
|
|
66
85
|
return key;
|
|
@@ -73,11 +92,11 @@ export function defineLabel({ owner, existing, }, input) {
|
|
|
73
92
|
return refuse('LABEL_KEY_TAKEN', `The fleet has the label ${key.value} already, owned by ${existing.ownerName}`);
|
|
74
93
|
}
|
|
75
94
|
const label = {
|
|
76
|
-
fleetId
|
|
95
|
+
fleetId,
|
|
77
96
|
id: input.id,
|
|
78
97
|
key: key.value,
|
|
79
98
|
values: withIds(input.values, []),
|
|
80
|
-
|
|
99
|
+
owner,
|
|
81
100
|
};
|
|
82
101
|
return ok({
|
|
83
102
|
label,
|
|
@@ -93,7 +112,7 @@ export function defineLabel({ owner, existing, }, input) {
|
|
|
93
112
|
}
|
|
94
113
|
/** Only a label's owner changes it or assigns it. */
|
|
95
114
|
function checkOwner({ label, ownerName }, caller) {
|
|
96
|
-
return label.
|
|
115
|
+
return isSameOwner(label.owner, caller.owner)
|
|
97
116
|
? ok(undefined)
|
|
98
117
|
: refuse('NOT_THE_LABEL_OWNER', `The label ${label.key} is owned by ${ownerName}: only its owner ${caller.act} it`);
|
|
99
118
|
}
|
|
@@ -104,7 +123,7 @@ function checkOwner({ label, ownerName }, caller) {
|
|
|
104
123
|
* it has already, in any order, change nothing.
|
|
105
124
|
*/
|
|
106
125
|
export function changeLabelValues({ label, ownerName, carriers, }, input) {
|
|
107
|
-
const owned = checkOwner({ label, ownerName }, {
|
|
126
|
+
const owned = checkOwner({ label, ownerName }, { owner: input.caller, act: 'changes' });
|
|
108
127
|
if (!owned.isOk) {
|
|
109
128
|
return owned;
|
|
110
129
|
}
|
|
@@ -149,7 +168,7 @@ export function changeLabelValues({ label, ownerName, carriers, }, input) {
|
|
|
149
168
|
* LabelDeleted names the owner, with the label.
|
|
150
169
|
*/
|
|
151
170
|
export function deleteLabel({ label, ownerName, carrierNames }, input) {
|
|
152
|
-
const owned = checkOwner({ label, ownerName }, {
|
|
171
|
+
const owned = checkOwner({ label, ownerName }, { owner: input.caller, act: 'deletes' });
|
|
153
172
|
if (!owned.isOk) {
|
|
154
173
|
return owned;
|
|
155
174
|
}
|
|
@@ -173,14 +192,29 @@ function assignmentEvent({ label, assignment }, change) {
|
|
|
173
192
|
},
|
|
174
193
|
};
|
|
175
194
|
}
|
|
176
|
-
/**
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
195
|
+
/** Whether the labeller may put the label's values on the ship or take them off. */
|
|
196
|
+
function checkMayLabel({ label, ownerName, ship }, labeller) {
|
|
197
|
+
if (labeller.canLabelAnyShip) {
|
|
198
|
+
return ok(undefined);
|
|
199
|
+
}
|
|
200
|
+
const owned = checkOwner({ label, ownerName }, { owner: labeller.owner, act: labeller.act });
|
|
201
|
+
if (!owned.isOk) {
|
|
202
|
+
return owned;
|
|
203
|
+
}
|
|
204
|
+
return isOwnShip(ship, labeller) || isCommissionedBy(ship, labeller)
|
|
182
205
|
? ok(undefined)
|
|
183
|
-
: refuse('NOT_YOUR_SHIP_TO_LABEL', `${ship.name} is neither your ship nor one it commissioned:
|
|
206
|
+
: refuse('NOT_YOUR_SHIP_TO_LABEL', `${ship.name} is neither your ship nor one it commissioned: labelling it needs labels:any`);
|
|
207
|
+
}
|
|
208
|
+
function isOwnShip(ship, labeller) {
|
|
209
|
+
return labeller.shipId !== null && ship.id === labeller.shipId;
|
|
210
|
+
}
|
|
211
|
+
/** Whether the labeller commissioned the ship: a ship by its id, or the installation (decision 0052). */
|
|
212
|
+
function isCommissionedBy(ship, labeller) {
|
|
213
|
+
const by = ship.commission?.by;
|
|
214
|
+
if (by?.kind === 'ship') {
|
|
215
|
+
return by.shipId === labeller.shipId;
|
|
216
|
+
}
|
|
217
|
+
return by?.kind === 'installation' && labeller.owner?.kind === 'installation';
|
|
184
218
|
}
|
|
185
219
|
/**
|
|
186
220
|
* The owner gives a ship one of its label's values, by its id: the ship
|
|
@@ -190,11 +224,7 @@ function checkMayLabel(ship, caller) {
|
|
|
190
224
|
* 20 values. LabelAssigned names the ship, with the label and the value.
|
|
191
225
|
*/
|
|
192
226
|
export function assignLabel({ label, ownerName, ship, carried, }, input) {
|
|
193
|
-
const
|
|
194
|
-
if (!owned.isOk) {
|
|
195
|
-
return owned;
|
|
196
|
-
}
|
|
197
|
-
const mayLabel = checkMayLabel(ship, { shipId: input.callerShipId, kind: input.callerKind });
|
|
227
|
+
const mayLabel = checkMayLabel({ label, ownerName, ship }, { ...input.caller, act: 'assigns' });
|
|
198
228
|
if (!mayLabel.isOk) {
|
|
199
229
|
return mayLabel;
|
|
200
230
|
}
|
|
@@ -218,17 +248,38 @@ export function assignLabel({ label, ownerName, ship, carried, }, input) {
|
|
|
218
248
|
events: [assignmentEvent({ label, assignment }, { type: 'LabelAssigned', at: input.at, actor: input.actor })],
|
|
219
249
|
});
|
|
220
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* The values a commission gives the new ship (decision 0053), each once: a
|
|
253
|
+
* value of a label the commissioner owns, or a value it carries itself, a
|
|
254
|
+
* ship's labels or an account's token, so a new ship never reaches further
|
|
255
|
+
* than its commissioner can make it. Argo is no exception. LabelAssigned
|
|
256
|
+
* names the new ship for each.
|
|
257
|
+
*/
|
|
258
|
+
export function labelsAtCommission(given, commission) {
|
|
259
|
+
const { ship } = commission;
|
|
260
|
+
const assignments = [];
|
|
261
|
+
const events = [];
|
|
262
|
+
for (const { label, valueId, ownerName } of given) {
|
|
263
|
+
if (!isSameOwner(label.owner, commission.owner) && !commission.carried.includes(valueId)) {
|
|
264
|
+
const text = label.values.find((value) => value.id === valueId)?.value ?? valueId;
|
|
265
|
+
return refuse('NOT_THE_LABEL_OWNER', `The label ${label.key} is owned by ${ownerName}, and you carry no value ${text} of it: a commission gives only values of labels you defined or values you carry (decision 0053)`);
|
|
266
|
+
}
|
|
267
|
+
if (assignments.some((each) => each.valueId === valueId)) {
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
const assignment = { fleetId: ship.fleetId, shipId: ship.id, labelId: label.id, valueId };
|
|
271
|
+
assignments.push(assignment);
|
|
272
|
+
events.push(assignmentEvent({ label, assignment }, { type: 'LabelAssigned', at: commission.at, actor: commission.actor }));
|
|
273
|
+
}
|
|
274
|
+
return ok({ assignments, events });
|
|
275
|
+
}
|
|
221
276
|
/**
|
|
222
277
|
* The owner takes one value of its label off a ship. A ship that does not
|
|
223
278
|
* carry it changes nothing. LabelUnassigned names the ship, with the label
|
|
224
279
|
* and the value it carried.
|
|
225
280
|
*/
|
|
226
281
|
export function unassignLabel({ label, ownerName, ship, carried, }, input) {
|
|
227
|
-
const
|
|
228
|
-
if (!owned.isOk) {
|
|
229
|
-
return owned;
|
|
230
|
-
}
|
|
231
|
-
const mayLabel = checkMayLabel(ship, { shipId: input.callerShipId, kind: input.callerKind });
|
|
282
|
+
const mayLabel = checkMayLabel({ label, ownerName, ship }, { ...input.caller, act: 'unassigns' });
|
|
232
283
|
if (!mayLabel.isOk) {
|
|
233
284
|
return mayLabel;
|
|
234
285
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/domain/registry/label.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/domain/registry/label.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export interface Lease {
|
|
|
42
42
|
* or retired the ship, its crew deregistered, or, for argo, a sign-in took it
|
|
43
43
|
* over, the operator signed out or the password was reset.
|
|
44
44
|
*/
|
|
45
|
-
export type LeaseEndReason = 'released' | 'retired' | 'deregistered' | 'takenOver' | 'signedOut' | 'passwordReset';
|
|
45
|
+
export type LeaseEndReason = 'released' | 'retired' | 'deregistered' | 'takenOver' | 'signedOut' | 'passwordReset' | 'accountCutOff';
|
|
46
46
|
export type LeaseEnded = DomainError<'LEASE_ENDED'>;
|
|
47
47
|
/**
|
|
48
48
|
* The refusal for a crew whose lease has ended: its crew token no longer
|
|
@@ -62,6 +62,8 @@ export interface ListedShip {
|
|
|
62
62
|
awaitingCrewSince: Date | null;
|
|
63
63
|
/** When the operator retired the ship; null while it is active. */
|
|
64
64
|
retiredAt: Date | null;
|
|
65
|
+
/** The ship that owns it (decision 0045); null for argo and the viewer, which no ship owns. */
|
|
66
|
+
ownerShipId: ShipId | null;
|
|
65
67
|
}
|
|
66
68
|
/** A ship outside the caller's read reach: its name, type and status only (decision 0034). */
|
|
67
69
|
export interface ShipOutsideReadReach {
|
|
@@ -57,6 +57,7 @@ export function listedShipOf({ ship, openLease, validSecret, crewRequest, crewRe
|
|
|
57
57
|
model: lastModel,
|
|
58
58
|
awaitingCrewSince: status === 'awaitingCrew' ? latestOf(ship.createdAt, lastLeaseEndedAt) : null,
|
|
59
59
|
retiredAt: ship.retiredAt,
|
|
60
|
+
ownerShipId: ship.owner,
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
function listedReportOf({ state, note, reportedAt, detailsVersion }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-fleet.js","sourceRoot":"","sources":["../../../src/domain/registry/list-fleet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"list-fleet.js","sourceRoot":"","sources":["../../../src/domain/registry/list-fleet.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,8 @@ export interface ListedNamespace {
|
|
|
13
13
|
}
|
|
14
14
|
export type ListScopes = (caller: Caller) => Promise<ListedNamespace[]>;
|
|
15
15
|
/**
|
|
16
|
-
* Use case: every namespace of the caller's fleet (decision 0046)
|
|
16
|
+
* Use case: every namespace of the caller's fleet (decision 0046), for any
|
|
17
|
+
* actor, so pagasae offers each plugin's scopes to its groups (0053): the core
|
|
17
18
|
* namespaces first, each with its scopes in catalogue order, then each
|
|
18
19
|
* plugin's by namespace, with its scopes as declared. The caller's scope
|
|
19
20
|
* (fleet:read) is checked before this runs.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CORE_NAMESPACES, CORE_SCOPE_DESCRIPTIONS, SCOPES } from '@aeolus-fleet/common';
|
|
2
2
|
/**
|
|
3
|
-
* Use case: every namespace of the caller's fleet (decision 0046)
|
|
3
|
+
* Use case: every namespace of the caller's fleet (decision 0046), for any
|
|
4
|
+
* actor, so pagasae offers each plugin's scopes to its groups (0053): the core
|
|
4
5
|
* namespaces first, each with its scopes in catalogue order, then each
|
|
5
6
|
* plugin's by namespace, with its scopes as declared. The caller's scope
|
|
6
7
|
* (fleet:read) is checked before this runs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-scopes.js","sourceRoot":"","sources":["../../../src/domain/registry/list-scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,EAAe,MAAM,sBAAsB,CAAC;AAerG
|
|
1
|
+
{"version":3,"file":"list-scopes.js","sourceRoot":"","sources":["../../../src/domain/registry/list-scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,EAAe,MAAM,sBAAsB,CAAC;AAerG;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAsG;IACrI,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/C,SAAS;YACT,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC7I,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YAChG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC;QACnG,CAAC,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -8,12 +8,20 @@ import type { Ship } from './ship.js';
|
|
|
8
8
|
export type ManagedOrAssignedTx = CheckManageTx & {
|
|
9
9
|
crewRequests: Pick<CrewRequestRepository, 'find'>;
|
|
10
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Whether the caller is an account acting on its own person ship (decision
|
|
13
|
+
* 0052): the ship its account token names. Its owner's right over it, which a
|
|
14
|
+
* ship has over the ships it owns by the owner rule (decision 0034).
|
|
15
|
+
*/
|
|
16
|
+
export declare function isOwnPersonShip(caller: Caller, ship: Ship): boolean;
|
|
17
|
+
/** Refuses an account a ship that is not its own person ship. */
|
|
18
|
+
export declare function checkOwnPersonShip(caller: Caller, ship: Ship): Result<undefined, NotTheCallers>;
|
|
11
19
|
/**
|
|
12
20
|
* Whether the caller may act on the ship for a call it takes with
|
|
13
|
-
* fleet:manage or crew:run (decision 0029):
|
|
14
|
-
* assigned to the caller's ship, by crew:run; else,
|
|
15
|
-
* in its manage reach (decision 0034), a refusal
|
|
16
|
-
* records it.
|
|
21
|
+
* fleet:manage or crew:run (decision 0029): an account's own person ship; a
|
|
22
|
+
* ship whose crew request is assigned to the caller's ship, by crew:run; else,
|
|
23
|
+
* with fleet:manage, a ship in its manage reach (decision 0034), a refusal
|
|
24
|
+
* recorded as the reach check records it.
|
|
17
25
|
*/
|
|
18
26
|
export declare function checkManagedOrAssigned(deps: {
|
|
19
27
|
tx: ManagedOrAssignedTx;
|
|
@@ -1,23 +1,41 @@
|
|
|
1
|
-
import { hasScope } from '../shared/caller.js';
|
|
1
|
+
import { hasScope, isShipCaller } from '../shared/caller.js';
|
|
2
2
|
import { refuse } from '../shared/errors.js';
|
|
3
3
|
import { ok } from '../shared/result.js';
|
|
4
4
|
import { checkManage } from './check-reach.js';
|
|
5
|
+
/**
|
|
6
|
+
* Whether the caller is an account acting on its own person ship (decision
|
|
7
|
+
* 0052): the ship its account token names. Its owner's right over it, which a
|
|
8
|
+
* ship has over the ships it owns by the owner rule (decision 0034).
|
|
9
|
+
*/
|
|
10
|
+
export function isOwnPersonShip(caller, ship) {
|
|
11
|
+
return caller.kind === 'account' && caller.personShipId === ship.id;
|
|
12
|
+
}
|
|
13
|
+
/** Refuses an account a ship that is not its own person ship. */
|
|
14
|
+
export function checkOwnPersonShip(caller, ship) {
|
|
15
|
+
return isOwnPersonShip(caller, ship) ? ok(undefined) : refuse('CREW_REQUEST_NOT_ASSIGNED_TO_CALLER', `${ship.name} is not your person ship`);
|
|
16
|
+
}
|
|
5
17
|
/**
|
|
6
18
|
* Whether the caller may act on the ship for a call it takes with
|
|
7
|
-
* fleet:manage or crew:run (decision 0029):
|
|
8
|
-
* assigned to the caller's ship, by crew:run; else,
|
|
9
|
-
* in its manage reach (decision 0034), a refusal
|
|
10
|
-
* records it.
|
|
19
|
+
* fleet:manage or crew:run (decision 0029): an account's own person ship; a
|
|
20
|
+
* ship whose crew request is assigned to the caller's ship, by crew:run; else,
|
|
21
|
+
* with fleet:manage, a ship in its manage reach (decision 0034), a refusal
|
|
22
|
+
* recorded as the reach check records it.
|
|
11
23
|
*/
|
|
12
24
|
export async function checkManagedOrAssigned(deps, call) {
|
|
13
25
|
const { tx, ids } = deps;
|
|
14
26
|
const { caller, ship, at } = call;
|
|
15
|
-
if ((
|
|
27
|
+
if (isOwnPersonShip(caller, ship)) {
|
|
28
|
+
return ok(undefined);
|
|
29
|
+
}
|
|
30
|
+
if (isShipCaller(caller) && (await tx.crewRequests.find(ship.fleetId, ship.id))?.assignedTo === caller.shipId) {
|
|
16
31
|
return ok(undefined);
|
|
17
32
|
}
|
|
18
33
|
if (!hasScope(caller, 'fleet:manage')) {
|
|
34
|
+
if (caller.kind === 'account') {
|
|
35
|
+
return checkOwnPersonShip(caller, ship);
|
|
36
|
+
}
|
|
19
37
|
return refuse('CREW_REQUEST_NOT_ASSIGNED_TO_CALLER', `${ship.name}'s crew request is not assigned to your ship`);
|
|
20
38
|
}
|
|
21
|
-
return checkManage({ tx, ids }, {
|
|
39
|
+
return checkManage({ tx, ids }, { manager: caller, shipId: ship.id, at });
|
|
22
40
|
}
|
|
23
41
|
//# sourceMappingURL=managed-or-assigned.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-or-assigned.js","sourceRoot":"","sources":["../../../src/domain/registry/managed-or-assigned.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-or-assigned.js","sourceRoot":"","sources":["../../../src/domain/registry/managed-or-assigned.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAyC,MAAM,kBAAkB,CAAC;AAOtF;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAU;IACxD,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAU;IAC3D,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,qCAAqC,EAAE,GAAG,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;AAC/I,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAmD,EACnD,IAA8C;IAE9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAClC,IAAI,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9G,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,MAAM,CAAC,qCAAqC,EAAE,GAAG,IAAI,CAAC,IAAI,8CAA8C,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The draft of the fleet's own network rules (decision 0034): one a fleet,
|
|
3
|
+
* a whole list or none for all-to-all, which whoever holds fleet:network
|
|
4
|
+
* edits, explains and compares with the applied rules before applying it.
|
|
5
|
+
* Nothing is checked against it: only an apply puts it in force, so a change
|
|
6
|
+
* of rules is seen before it breaks anything.
|
|
7
|
+
*/
|
|
8
|
+
import type { FleetId } from '@aeolus-fleet/common';
|
|
9
|
+
import { type DomainError } from '../shared/errors.js';
|
|
10
|
+
import type { Actor, NewEvent } from '../shared/events.js';
|
|
11
|
+
import { type Result } from '../shared/result.js';
|
|
12
|
+
import { type InvalidNetworkRules, type NetworkRule, type NetworkSettings } from './network-settings.js';
|
|
13
|
+
export interface NetworkRulesDraft {
|
|
14
|
+
fleetId: FleetId;
|
|
15
|
+
/** The rules it would apply; none for all-to-all. */
|
|
16
|
+
rules: readonly NetworkRule[] | null;
|
|
17
|
+
savedAt: Date;
|
|
18
|
+
/** The settings version it was saved at, for the caller to see what it was drafted against. */
|
|
19
|
+
savedAgainstVersion: number;
|
|
20
|
+
}
|
|
21
|
+
export type NoNetworkRulesDraft = DomainError<'NO_NETWORK_RULES_DRAFT'>;
|
|
22
|
+
/** The one refusal of a fleet without a draft. */
|
|
23
|
+
export declare function refuseNoDraft(): Result<never, NoNetworkRulesDraft>;
|
|
24
|
+
/**
|
|
25
|
+
* The fleet's draft from now on, in place of the one before, against the
|
|
26
|
+
* settings as they are, with NetworkRulesDraftSaved naming how many rules,
|
|
27
|
+
* none for all-to-all. The rules keep the limits an apply would hold them to.
|
|
28
|
+
* Nothing in force changes, so the version stays.
|
|
29
|
+
*/
|
|
30
|
+
export declare function saveNetworkRulesDraft(settings: NetworkSettings, change: {
|
|
31
|
+
rules: readonly NetworkRule[] | null;
|
|
32
|
+
at: Date;
|
|
33
|
+
actor: Actor;
|
|
34
|
+
}): Result<{
|
|
35
|
+
draft: NetworkRulesDraft;
|
|
36
|
+
events: NewEvent[];
|
|
37
|
+
}, InvalidNetworkRules>;
|
|
38
|
+
/** The draft goes, with NetworkRulesDraftDiscarded; the applied rules stay as they are. */
|
|
39
|
+
export declare function discardNetworkRulesDraft(draft: NetworkRulesDraft | undefined, change: {
|
|
40
|
+
fleetId: FleetId;
|
|
41
|
+
at: Date;
|
|
42
|
+
actor: Actor;
|
|
43
|
+
}): Result<{
|
|
44
|
+
events: NewEvent[];
|
|
45
|
+
}, NoNetworkRulesDraft>;
|