@aeolus-fleet/core 0.0.0 → 0.19.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/LICENSE +201 -0
- package/README.md +98 -1
- package/dist/adapters/cli/fleet-init.d.ts +14 -0
- package/dist/adapters/cli/fleet-init.js +68 -0
- package/dist/adapters/cli/fleet-init.js.map +1 -0
- package/dist/adapters/cli/io.d.ts +35 -0
- package/dist/adapters/cli/io.js +21 -0
- package/dist/adapters/cli/io.js.map +1 -0
- package/dist/adapters/cli/migrate.d.ts +11 -0
- package/dist/adapters/cli/migrate.js +12 -0
- package/dist/adapters/cli/migrate.js.map +1 -0
- package/dist/adapters/cli/operator-reset-password.d.ts +12 -0
- package/dist/adapters/cli/operator-reset-password.js +49 -0
- package/dist/adapters/cli/operator-reset-password.js.map +1 -0
- package/dist/adapters/cli/run.d.ts +14 -0
- package/dist/adapters/cli/run.js +40 -0
- package/dist/adapters/cli/run.js.map +1 -0
- package/dist/adapters/cli/terminal.d.ts +20 -0
- package/dist/adapters/cli/terminal.js +68 -0
- package/dist/adapters/cli/terminal.js.map +1 -0
- package/dist/adapters/crypto/passwords.d.ts +2 -0
- package/dist/adapters/crypto/passwords.js +59 -0
- package/dist/adapters/crypto/passwords.js.map +1 -0
- package/dist/adapters/crypto/secrets.d.ts +5 -0
- package/dist/adapters/crypto/secrets.js +10 -0
- package/dist/adapters/crypto/secrets.js.map +1 -0
- package/dist/adapters/http/device-label.d.ts +9 -0
- package/dist/adapters/http/device-label.js +39 -0
- package/dist/adapters/http/device-label.js.map +1 -0
- package/dist/adapters/http/rate-limiter.d.ts +21 -0
- package/dist/adapters/http/rate-limiter.js +44 -0
- package/dist/adapters/http/rate-limiter.js.map +1 -0
- package/dist/adapters/http/request-credentials.d.ts +23 -0
- package/dist/adapters/http/request-credentials.js +45 -0
- package/dist/adapters/http/request-credentials.js.map +1 -0
- package/dist/adapters/http/server.d.ts +47 -0
- package/dist/adapters/http/server.js +216 -0
- package/dist/adapters/http/server.js.map +1 -0
- package/dist/adapters/http/version.d.ts +9 -0
- package/dist/adapters/http/version.js +23 -0
- package/dist/adapters/http/version.js.map +1 -0
- package/dist/adapters/mcp/mcp-endpoint.d.ts +8 -0
- package/dist/adapters/mcp/mcp-endpoint.js +127 -0
- package/dist/adapters/mcp/mcp-endpoint.js.map +1 -0
- package/dist/adapters/prisma/client.d.ts +10 -0
- package/dist/adapters/prisma/client.js +20 -0
- package/dist/adapters/prisma/client.js.map +1 -0
- package/dist/adapters/prisma/delivery-notices.d.ts +34 -0
- package/dist/adapters/prisma/delivery-notices.js +113 -0
- package/dist/adapters/prisma/delivery-notices.js.map +1 -0
- package/dist/adapters/prisma/event-log.d.ts +11 -0
- package/dist/adapters/prisma/event-log.js +61 -0
- package/dist/adapters/prisma/event-log.js.map +1 -0
- package/dist/adapters/prisma/failure-log.d.ts +22 -0
- package/dist/adapters/prisma/failure-log.js +70 -0
- package/dist/adapters/prisma/failure-log.js.map +1 -0
- package/dist/adapters/prisma/fleet-counter.d.ts +3 -0
- package/dist/adapters/prisma/fleet-counter.js +6 -0
- package/dist/adapters/prisma/fleet-counter.js.map +1 -0
- package/dist/adapters/prisma/fleet-event-wakeups.d.ts +33 -0
- package/dist/adapters/prisma/fleet-event-wakeups.js +86 -0
- package/dist/adapters/prisma/fleet-event-wakeups.js.map +1 -0
- package/dist/adapters/prisma/generated/browser.d.ts +127 -0
- package/dist/adapters/prisma/generated/browser.js +18 -0
- package/dist/adapters/prisma/generated/browser.js.map +1 -0
- package/dist/adapters/prisma/generated/client.d.ts +146 -0
- package/dist/adapters/prisma/generated/client.js +38 -0
- package/dist/adapters/prisma/generated/client.js.map +1 -0
- package/dist/adapters/prisma/generated/commonInputTypes.d.ts +879 -0
- package/dist/adapters/prisma/generated/commonInputTypes.js +11 -0
- package/dist/adapters/prisma/generated/commonInputTypes.js.map +1 -0
- package/dist/adapters/prisma/generated/enums.d.ts +75 -0
- package/dist/adapters/prisma/generated/enums.js +73 -0
- package/dist/adapters/prisma/generated/enums.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/class.d.ts +308 -0
- package/dist/adapters/prisma/generated/internal/class.js +52 -0
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +2131 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +295 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +273 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +265 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +2137 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.js +2 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Credential.d.ts +1360 -0
- package/dist/adapters/prisma/generated/models/Credential.js +2 -0
- package/dist/adapters/prisma/generated/models/Credential.js.map +1 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.d.ts +1558 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.js +2 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Delivery.d.ts +2211 -0
- package/dist/adapters/prisma/generated/models/Delivery.js +2 -0
- package/dist/adapters/prisma/generated/models/Delivery.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Event.d.ts +1991 -0
- package/dist/adapters/prisma/generated/models/Event.js +2 -0
- package/dist/adapters/prisma/generated/models/Event.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Fleet.d.ts +3032 -0
- package/dist/adapters/prisma/generated/models/Fleet.js +2 -0
- package/dist/adapters/prisma/generated/models/Fleet.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Guide.d.ts +943 -0
- package/dist/adapters/prisma/generated/models/Guide.js +2 -0
- package/dist/adapters/prisma/generated/models/Guide.js.map +1 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.d.ts +1323 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.js +2 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.js.map +1 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.d.ts +1036 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.js +2 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.js.map +1 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.d.ts +1027 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.js +2 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Lease.d.ts +2076 -0
- package/dist/adapters/prisma/generated/models/Lease.js +2 -0
- package/dist/adapters/prisma/generated/models/Lease.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Message.d.ts +2869 -0
- package/dist/adapters/prisma/generated/models/Message.js +2 -0
- package/dist/adapters/prisma/generated/models/Message.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Notice.d.ts +1068 -0
- package/dist/adapters/prisma/generated/models/Notice.js +2 -0
- package/dist/adapters/prisma/generated/models/Notice.js.map +1 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.d.ts +1245 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.js +2 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Operator.d.ts +1173 -0
- package/dist/adapters/prisma/generated/models/Operator.js +2 -0
- package/dist/adapters/prisma/generated/models/Operator.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Ship.d.ts +3320 -0
- package/dist/adapters/prisma/generated/models/Ship.js +2 -0
- package/dist/adapters/prisma/generated/models/Ship.js.map +1 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +1222 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.js +2 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.js.map +1 -0
- package/dist/adapters/prisma/generated/models.d.ts +18 -0
- package/dist/adapters/prisma/generated/models.js +2 -0
- package/dist/adapters/prisma/generated/models.js.map +1 -0
- package/dist/adapters/prisma/history.d.ts +3 -0
- package/dist/adapters/prisma/history.js +289 -0
- package/dist/adapters/prisma/history.js.map +1 -0
- package/dist/adapters/prisma/identity.d.ts +10 -0
- package/dist/adapters/prisma/identity.js +213 -0
- package/dist/adapters/prisma/identity.js.map +1 -0
- package/dist/adapters/prisma/installation.d.ts +13 -0
- package/dist/adapters/prisma/installation.js +155 -0
- package/dist/adapters/prisma/installation.js.map +1 -0
- package/dist/adapters/prisma/messaging.d.ts +4 -0
- package/dist/adapters/prisma/messaging.js +156 -0
- package/dist/adapters/prisma/messaging.js.map +1 -0
- package/dist/adapters/prisma/migrate.d.ts +5 -0
- package/dist/adapters/prisma/migrate.js +40 -0
- package/dist/adapters/prisma/migrate.js.map +1 -0
- package/dist/adapters/prisma/receiver-wakeups.d.ts +26 -0
- package/dist/adapters/prisma/receiver-wakeups.js +79 -0
- package/dist/adapters/prisma/receiver-wakeups.js.map +1 -0
- package/dist/adapters/prisma/registry.d.ts +8 -0
- package/dist/adapters/prisma/registry.js +427 -0
- package/dist/adapters/prisma/registry.js.map +1 -0
- package/dist/adapters/prisma/rows.d.ts +58 -0
- package/dist/adapters/prisma/rows.js +408 -0
- package/dist/adapters/prisma/rows.js.map +1 -0
- package/dist/adapters/prisma/unit-of-work.d.ts +36 -0
- package/dist/adapters/prisma/unit-of-work.js +66 -0
- package/dist/adapters/prisma/unit-of-work.js.map +1 -0
- package/dist/adapters/rest/openapi.d.ts +12 -0
- package/dist/adapters/rest/openapi.js +62 -0
- package/dist/adapters/rest/openapi.js.map +1 -0
- package/dist/adapters/rest/rest-api.d.ts +8 -0
- package/dist/adapters/rest/rest-api.js +61 -0
- package/dist/adapters/rest/rest-api.js.map +1 -0
- package/dist/adapters/trpc/console.d.ts +150 -0
- package/dist/adapters/trpc/console.js +102 -0
- package/dist/adapters/trpc/console.js.map +1 -0
- package/dist/adapters/trpc/context.d.ts +201 -0
- package/dist/adapters/trpc/context.js +2 -0
- package/dist/adapters/trpc/context.js.map +1 -0
- package/dist/adapters/trpc/fleet.d.ts +637 -0
- package/dist/adapters/trpc/fleet.js +437 -0
- package/dist/adapters/trpc/fleet.js.map +1 -0
- package/dist/adapters/trpc/installation.d.ts +414 -0
- package/dist/adapters/trpc/installation.js +138 -0
- package/dist/adapters/trpc/installation.js.map +1 -0
- package/dist/adapters/trpc/router.d.ts +1263 -0
- package/dist/adapters/trpc/router.js +15 -0
- package/dist/adapters/trpc/router.js.map +1 -0
- package/dist/adapters/trpc/ship-contract.d.ts +107 -0
- package/dist/adapters/trpc/ship-contract.js +165 -0
- package/dist/adapters/trpc/ship-contract.js.map +1 -0
- package/dist/adapters/trpc/ship-protocol.d.ts +9 -0
- package/dist/adapters/trpc/ship-protocol.js +25 -0
- package/dist/adapters/trpc/ship-protocol.js.map +1 -0
- package/dist/adapters/trpc/ship.d.ts +209 -0
- package/dist/adapters/trpc/ship.js +214 -0
- package/dist/adapters/trpc/ship.js.map +1 -0
- package/dist/adapters/trpc/starting-prompt-text.d.ts +7 -0
- package/dist/adapters/trpc/starting-prompt-text.js +60 -0
- package/dist/adapters/trpc/starting-prompt-text.js.map +1 -0
- package/dist/adapters/trpc/system.d.ts +29 -0
- package/dist/adapters/trpc/system.js +15 -0
- package/dist/adapters/trpc/system.js.map +1 -0
- package/dist/adapters/trpc/trpc.d.ts +131 -0
- package/dist/adapters/trpc/trpc.js +350 -0
- package/dist/adapters/trpc/trpc.js.map +1 -0
- package/dist/app.d.ts +31 -0
- package/dist/app.js +80 -0
- package/dist/app.js.map +1 -0
- package/dist/bin/aeolus-core.d.ts +2 -0
- package/dist/bin/aeolus-core.js +45 -0
- package/dist/bin/aeolus-core.js.map +1 -0
- package/dist/config.d.ts +35 -0
- package/dist/config.js +74 -0
- package/dist/config.js.map +1 -0
- package/dist/domain/identity/authenticate.d.ts +46 -0
- package/dist/domain/identity/authenticate.js +18 -0
- package/dist/domain/identity/authenticate.js.map +1 -0
- package/dist/domain/identity/console-session.d.ts +54 -0
- package/dist/domain/identity/console-session.js +29 -0
- package/dist/domain/identity/console-session.js.map +1 -0
- package/dist/domain/identity/credential.d.ts +76 -0
- package/dist/domain/identity/credential.js +63 -0
- package/dist/domain/identity/credential.js.map +1 -0
- package/dist/domain/identity/dismiss-notice.d.ts +19 -0
- package/dist/domain/identity/dismiss-notice.js +23 -0
- package/dist/domain/identity/dismiss-notice.js.map +1 -0
- package/dist/domain/identity/get-guide.d.ts +7 -0
- package/dist/domain/identity/get-guide.js +5 -0
- package/dist/domain/identity/get-guide.js.map +1 -0
- package/dist/domain/identity/get-notices.d.ts +7 -0
- package/dist/domain/identity/get-notices.js +5 -0
- package/dist/domain/identity/get-notices.js.map +1 -0
- package/dist/domain/identity/guide.d.ts +24 -0
- package/dist/domain/identity/guide.js +3 -0
- package/dist/domain/identity/guide.js.map +1 -0
- package/dist/domain/identity/issue-sign-in-ticket.d.ts +38 -0
- package/dist/domain/identity/issue-sign-in-ticket.js +39 -0
- package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/notice.d.ts +16 -0
- package/dist/domain/identity/notice.js +12 -0
- package/dist/domain/identity/notice.js.map +1 -0
- package/dist/domain/identity/operator-account.d.ts +28 -0
- package/dist/domain/identity/operator-account.js +21 -0
- package/dist/domain/identity/operator-account.js.map +1 -0
- package/dist/domain/identity/ports.d.ts +193 -0
- package/dist/domain/identity/ports.js +2 -0
- package/dist/domain/identity/ports.js.map +1 -0
- package/dist/domain/identity/public.d.ts +3 -0
- package/dist/domain/identity/public.js +5 -0
- package/dist/domain/identity/public.js.map +1 -0
- package/dist/domain/identity/read-account.d.ts +35 -0
- package/dist/domain/identity/read-account.js +27 -0
- package/dist/domain/identity/read-account.js.map +1 -0
- package/dist/domain/identity/read-guide.d.ts +18 -0
- package/dist/domain/identity/read-guide.js +21 -0
- package/dist/domain/identity/read-guide.js.map +1 -0
- package/dist/domain/identity/read-notices.d.ts +13 -0
- package/dist/domain/identity/read-notices.js +17 -0
- package/dist/domain/identity/read-notices.js.map +1 -0
- package/dist/domain/identity/record-guide-progress.d.ts +19 -0
- package/dist/domain/identity/record-guide-progress.js +24 -0
- package/dist/domain/identity/record-guide-progress.js.map +1 -0
- package/dist/domain/identity/redeem-sign-in-ticket.d.ts +34 -0
- package/dist/domain/identity/redeem-sign-in-ticket.js +25 -0
- package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/reset-operator-password.d.ts +34 -0
- package/dist/domain/identity/reset-operator-password.js +55 -0
- package/dist/domain/identity/reset-operator-password.js.map +1 -0
- package/dist/domain/identity/set-guide.d.ts +13 -0
- package/dist/domain/identity/set-guide.js +12 -0
- package/dist/domain/identity/set-guide.js.map +1 -0
- package/dist/domain/identity/set-notices.d.ts +13 -0
- package/dist/domain/identity/set-notices.js +12 -0
- package/dist/domain/identity/set-notices.js.map +1 -0
- package/dist/domain/identity/set-theme.d.ts +21 -0
- package/dist/domain/identity/set-theme.js +19 -0
- package/dist/domain/identity/set-theme.js.map +1 -0
- package/dist/domain/identity/sign-in-ticket.d.ts +21 -0
- package/dist/domain/identity/sign-in-ticket.js +5 -0
- package/dist/domain/identity/sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/sign-in.d.ts +51 -0
- package/dist/domain/identity/sign-in.js +43 -0
- package/dist/domain/identity/sign-in.js.map +1 -0
- package/dist/domain/identity/sign-out.d.ts +20 -0
- package/dist/domain/identity/sign-out.js +32 -0
- package/dist/domain/identity/sign-out.js.map +1 -0
- package/dist/domain/identity/start-console-session.d.ts +27 -0
- package/dist/domain/identity/start-console-session.js +54 -0
- package/dist/domain/identity/start-console-session.js.map +1 -0
- package/dist/domain/identity/start-viewer-session.d.ts +29 -0
- package/dist/domain/identity/start-viewer-session.js +42 -0
- package/dist/domain/identity/start-viewer-session.js.map +1 -0
- package/dist/domain/messaging/acknowledge-delivery.d.ts +30 -0
- package/dist/domain/messaging/acknowledge-delivery.js +31 -0
- package/dist/domain/messaging/acknowledge-delivery.js.map +1 -0
- package/dist/domain/messaging/answer-ping.d.ts +33 -0
- package/dist/domain/messaging/answer-ping.js +37 -0
- package/dist/domain/messaging/answer-ping.js.map +1 -0
- package/dist/domain/messaging/check-inbox.d.ts +33 -0
- package/dist/domain/messaging/check-inbox.js +61 -0
- package/dist/domain/messaging/check-inbox.js.map +1 -0
- package/dist/domain/messaging/content-type.d.ts +9 -0
- package/dist/domain/messaging/content-type.js +18 -0
- package/dist/domain/messaging/content-type.js.map +1 -0
- package/dist/domain/messaging/daily-message-limit.d.ts +19 -0
- package/dist/domain/messaging/daily-message-limit.js +24 -0
- package/dist/domain/messaging/daily-message-limit.js.map +1 -0
- package/dist/domain/messaging/delivery.d.ts +116 -0
- package/dist/domain/messaging/delivery.js +201 -0
- package/dist/domain/messaging/delivery.js.map +1 -0
- package/dist/domain/messaging/dismiss-delivery.d.ts +28 -0
- package/dist/domain/messaging/dismiss-delivery.js +29 -0
- package/dist/domain/messaging/dismiss-delivery.js.map +1 -0
- package/dist/domain/messaging/inbox-wait.d.ts +8 -0
- package/dist/domain/messaging/inbox-wait.js +19 -0
- package/dist/domain/messaging/inbox-wait.js.map +1 -0
- package/dist/domain/messaging/mark-done.d.ts +45 -0
- package/dist/domain/messaging/mark-done.js +49 -0
- package/dist/domain/messaging/mark-done.js.map +1 -0
- package/dist/domain/messaging/mark-read.d.ts +27 -0
- package/dist/domain/messaging/mark-read.js +34 -0
- package/dist/domain/messaging/mark-read.js.map +1 -0
- package/dist/domain/messaging/message.d.ts +104 -0
- package/dist/domain/messaging/message.js +84 -0
- package/dist/domain/messaging/message.js.map +1 -0
- package/dist/domain/messaging/payload.d.ts +9 -0
- package/dist/domain/messaging/payload.js +16 -0
- package/dist/domain/messaging/payload.js.map +1 -0
- package/dist/domain/messaging/ping-ship.d.ts +38 -0
- package/dist/domain/messaging/ping-ship.js +42 -0
- package/dist/domain/messaging/ping-ship.js.map +1 -0
- package/dist/domain/messaging/ports.d.ts +116 -0
- package/dist/domain/messaging/ports.js +2 -0
- package/dist/domain/messaging/ports.js.map +1 -0
- package/dist/domain/messaging/receive-deliveries.d.ts +68 -0
- package/dist/domain/messaging/receive-deliveries.js +119 -0
- package/dist/domain/messaging/receive-deliveries.js.map +1 -0
- package/dist/domain/messaging/receive-max.d.ts +8 -0
- package/dist/domain/messaging/receive-max.js +17 -0
- package/dist/domain/messaging/receive-max.js.map +1 -0
- package/dist/domain/messaging/reply-to-message.d.ts +35 -0
- package/dist/domain/messaging/reply-to-message.js +49 -0
- package/dist/domain/messaging/reply-to-message.js.map +1 -0
- package/dist/domain/messaging/resend-delivery.d.ts +48 -0
- package/dist/domain/messaging/resend-delivery.js +97 -0
- package/dist/domain/messaging/resend-delivery.js.map +1 -0
- package/dist/domain/messaging/send-message.d.ts +88 -0
- package/dist/domain/messaging/send-message.js +115 -0
- package/dist/domain/messaging/send-message.js.map +1 -0
- package/dist/domain/messaging/send-request.d.ts +16 -0
- package/dist/domain/messaging/send-request.js +18 -0
- package/dist/domain/messaging/send-request.js.map +1 -0
- package/dist/domain/registry/applied-limits.d.ts +15 -0
- package/dist/domain/registry/applied-limits.js +15 -0
- package/dist/domain/registry/applied-limits.js.map +1 -0
- package/dist/domain/registry/assign-crew.d.ts +31 -0
- package/dist/domain/registry/assign-crew.js +35 -0
- package/dist/domain/registry/assign-crew.js.map +1 -0
- package/dist/domain/registry/claim-ship.d.ts +49 -0
- package/dist/domain/registry/claim-ship.js +59 -0
- package/dist/domain/registry/claim-ship.js.map +1 -0
- package/dist/domain/registry/commission-ship.d.ts +54 -0
- package/dist/domain/registry/commission-ship.js +70 -0
- package/dist/domain/registry/commission-ship.js.map +1 -0
- package/dist/domain/registry/confirm-crew-release.d.ts +28 -0
- package/dist/domain/registry/confirm-crew-release.js +28 -0
- package/dist/domain/registry/confirm-crew-release.js.map +1 -0
- package/dist/domain/registry/create-fleet.d.ts +39 -0
- package/dist/domain/registry/create-fleet.js +56 -0
- package/dist/domain/registry/create-fleet.js.map +1 -0
- package/dist/domain/registry/crew-request.d.ts +148 -0
- package/dist/domain/registry/crew-request.js +175 -0
- package/dist/domain/registry/crew-request.js.map +1 -0
- package/dist/domain/registry/delete-fleet.d.ts +46 -0
- package/dist/domain/registry/delete-fleet.js +34 -0
- package/dist/domain/registry/delete-fleet.js.map +1 -0
- package/dist/domain/registry/deregister.d.ts +32 -0
- package/dist/domain/registry/deregister.js +38 -0
- package/dist/domain/registry/deregister.js.map +1 -0
- package/dist/domain/registry/explain-crew-request.d.ts +30 -0
- package/dist/domain/registry/explain-crew-request.js +31 -0
- package/dist/domain/registry/explain-crew-request.js.map +1 -0
- package/dist/domain/registry/fleet.d.ts +12 -0
- package/dist/domain/registry/fleet.js +12 -0
- package/dist/domain/registry/fleet.js.map +1 -0
- package/dist/domain/registry/found-fleet.d.ts +32 -0
- package/dist/domain/registry/found-fleet.js +43 -0
- package/dist/domain/registry/found-fleet.js.map +1 -0
- package/dist/domain/registry/get-fleet-limits.d.ts +17 -0
- package/dist/domain/registry/get-fleet-limits.js +14 -0
- package/dist/domain/registry/get-fleet-limits.js.map +1 -0
- package/dist/domain/registry/get-installation-fleet.d.ts +15 -0
- package/dist/domain/registry/get-installation-fleet.js +12 -0
- package/dist/domain/registry/get-installation-fleet.js.map +1 -0
- package/dist/domain/registry/get-installation-settings.d.ts +7 -0
- package/dist/domain/registry/get-installation-settings.js +5 -0
- package/dist/domain/registry/get-installation-settings.js.map +1 -0
- package/dist/domain/registry/get-ship.d.ts +34 -0
- package/dist/domain/registry/get-ship.js +36 -0
- package/dist/domain/registry/get-ship.js.map +1 -0
- package/dist/domain/registry/get-starting-prompt.d.ts +24 -0
- package/dist/domain/registry/get-starting-prompt.js +46 -0
- package/dist/domain/registry/get-starting-prompt.js.map +1 -0
- package/dist/domain/registry/initialise-fleet.d.ts +28 -0
- package/dist/domain/registry/initialise-fleet.js +39 -0
- package/dist/domain/registry/initialise-fleet.js.map +1 -0
- package/dist/domain/registry/installation-fleet.d.ts +36 -0
- package/dist/domain/registry/installation-fleet.js +22 -0
- package/dist/domain/registry/installation-fleet.js.map +1 -0
- package/dist/domain/registry/installation-request.d.ts +23 -0
- package/dist/domain/registry/installation-request.js +5 -0
- package/dist/domain/registry/installation-request.js.map +1 -0
- package/dist/domain/registry/lease.d.ts +51 -0
- package/dist/domain/registry/lease.js +39 -0
- package/dist/domain/registry/lease.js.map +1 -0
- package/dist/domain/registry/leases.d.ts +66 -0
- package/dist/domain/registry/leases.js +80 -0
- package/dist/domain/registry/leases.js.map +1 -0
- package/dist/domain/registry/limits.d.ts +50 -0
- package/dist/domain/registry/limits.js +24 -0
- package/dist/domain/registry/limits.js.map +1 -0
- package/dist/domain/registry/list-fleet.d.ts +70 -0
- package/dist/domain/registry/list-fleet.js +47 -0
- package/dist/domain/registry/list-fleet.js.map +1 -0
- package/dist/domain/registry/list-fleets.d.ts +11 -0
- package/dist/domain/registry/list-fleets.js +9 -0
- package/dist/domain/registry/list-fleets.js.map +1 -0
- package/dist/domain/registry/list-installation-fleets.d.ts +15 -0
- package/dist/domain/registry/list-installation-fleets.js +15 -0
- package/dist/domain/registry/list-installation-fleets.js.map +1 -0
- package/dist/domain/registry/ping-status.d.ts +17 -0
- package/dist/domain/registry/ping-status.js +28 -0
- package/dist/domain/registry/ping-status.js.map +1 -0
- package/dist/domain/registry/pingable-ship.d.ts +22 -0
- package/dist/domain/registry/pingable-ship.js +21 -0
- package/dist/domain/registry/pingable-ship.js.map +1 -0
- package/dist/domain/registry/ports.d.ts +318 -0
- package/dist/domain/registry/ports.js +2 -0
- package/dist/domain/registry/ports.js.map +1 -0
- package/dist/domain/registry/public.d.ts +8 -0
- package/dist/domain/registry/public.js +10 -0
- package/dist/domain/registry/public.js.map +1 -0
- package/dist/domain/registry/read-assigned-crew-requests.d.ts +14 -0
- package/dist/domain/registry/read-assigned-crew-requests.js +15 -0
- package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -0
- package/dist/domain/registry/recrew-ship.d.ts +33 -0
- package/dist/domain/registry/recrew-ship.js +34 -0
- package/dist/domain/registry/recrew-ship.js.map +1 -0
- package/dist/domain/registry/release-ship.d.ts +38 -0
- package/dist/domain/registry/release-ship.js +47 -0
- package/dist/domain/registry/release-ship.js.map +1 -0
- package/dist/domain/registry/remove-crew-request.d.ts +28 -0
- package/dist/domain/registry/remove-crew-request.js +36 -0
- package/dist/domain/registry/remove-crew-request.js.map +1 -0
- package/dist/domain/registry/rename-ship.d.ts +30 -0
- package/dist/domain/registry/rename-ship.js +39 -0
- package/dist/domain/registry/rename-ship.js.map +1 -0
- package/dist/domain/registry/report-crew-status.d.ts +29 -0
- package/dist/domain/registry/report-crew-status.js +30 -0
- package/dist/domain/registry/report-crew-status.js.map +1 -0
- package/dist/domain/registry/report-details.d.ts +18 -0
- package/dist/domain/registry/report-details.js +41 -0
- package/dist/domain/registry/report-details.js.map +1 -0
- package/dist/domain/registry/report-log.d.ts +21 -0
- package/dist/domain/registry/report-log.js +16 -0
- package/dist/domain/registry/report-log.js.map +1 -0
- package/dist/domain/registry/report.d.ts +30 -0
- package/dist/domain/registry/report.js +30 -0
- package/dist/domain/registry/report.js.map +1 -0
- package/dist/domain/registry/request-crew.d.ts +32 -0
- package/dist/domain/registry/request-crew.js +29 -0
- package/dist/domain/registry/request-crew.js.map +1 -0
- package/dist/domain/registry/resolve-selector.d.ts +25 -0
- package/dist/domain/registry/resolve-selector.js +32 -0
- package/dist/domain/registry/resolve-selector.js.map +1 -0
- package/dist/domain/registry/retire-ship.d.ts +42 -0
- package/dist/domain/registry/retire-ship.js +68 -0
- package/dist/domain/registry/retire-ship.js.map +1 -0
- package/dist/domain/registry/set-fleet-limits.d.ts +30 -0
- package/dist/domain/registry/set-fleet-limits.js +54 -0
- package/dist/domain/registry/set-fleet-limits.js.map +1 -0
- package/dist/domain/registry/set-installation-settings.d.ts +18 -0
- package/dist/domain/registry/set-installation-settings.js +31 -0
- package/dist/domain/registry/set-installation-settings.js.map +1 -0
- package/dist/domain/registry/ship-handle.d.ts +5 -0
- package/dist/domain/registry/ship-handle.js +20 -0
- package/dist/domain/registry/ship-handle.js.map +1 -0
- package/dist/domain/registry/ship-note.d.ts +7 -0
- package/dist/domain/registry/ship-note.js +15 -0
- package/dist/domain/registry/ship-note.js.map +1 -0
- package/dist/domain/registry/ship-report.d.ts +42 -0
- package/dist/domain/registry/ship-report.js +93 -0
- package/dist/domain/registry/ship-report.js.map +1 -0
- package/dist/domain/registry/ship.d.ts +190 -0
- package/dist/domain/registry/ship.js +334 -0
- package/dist/domain/registry/ship.js.map +1 -0
- package/dist/domain/registry/ships.d.ts +25 -0
- package/dist/domain/registry/ships.js +22 -0
- package/dist/domain/registry/ships.js.map +1 -0
- package/dist/domain/registry/starting-prompt.d.ts +32 -0
- package/dist/domain/registry/starting-prompt.js +22 -0
- package/dist/domain/registry/starting-prompt.js.map +1 -0
- package/dist/domain/registry/whoami.d.ts +20 -0
- package/dist/domain/registry/whoami.js +15 -0
- package/dist/domain/registry/whoami.js.map +1 -0
- package/dist/domain/shared/caller.d.ts +25 -0
- package/dist/domain/shared/caller.js +8 -0
- package/dist/domain/shared/caller.js.map +1 -0
- package/dist/domain/shared/clock.d.ts +4 -0
- package/dist/domain/shared/clock.js +2 -0
- package/dist/domain/shared/clock.js.map +1 -0
- package/dist/domain/shared/errors.d.ts +13 -0
- package/dist/domain/shared/errors.js +6 -0
- package/dist/domain/shared/errors.js.map +1 -0
- package/dist/domain/shared/events.d.ts +75 -0
- package/dist/domain/shared/events.js +9 -0
- package/dist/domain/shared/events.js.map +1 -0
- package/dist/domain/shared/follow-fleet.d.ts +32 -0
- package/dist/domain/shared/follow-fleet.js +65 -0
- package/dist/domain/shared/follow-fleet.js.map +1 -0
- package/dist/domain/shared/history.d.ts +124 -0
- package/dist/domain/shared/history.js +16 -0
- package/dist/domain/shared/history.js.map +1 -0
- package/dist/domain/shared/idempotency-key.d.ts +8 -0
- package/dist/domain/shared/idempotency-key.js +14 -0
- package/dist/domain/shared/idempotency-key.js.map +1 -0
- package/dist/domain/shared/notifier.d.ts +17 -0
- package/dist/domain/shared/notifier.js +2 -0
- package/dist/domain/shared/notifier.js.map +1 -0
- package/dist/domain/shared/ping.d.ts +18 -0
- package/dist/domain/shared/ping.js +8 -0
- package/dist/domain/shared/ping.js.map +1 -0
- package/dist/domain/shared/read-fleet-events.d.ts +29 -0
- package/dist/domain/shared/read-fleet-events.js +25 -0
- package/dist/domain/shared/read-fleet-events.js.map +1 -0
- package/dist/domain/shared/read-fleet-limits.d.ts +39 -0
- package/dist/domain/shared/read-fleet-limits.js +24 -0
- package/dist/domain/shared/read-fleet-limits.js.map +1 -0
- package/dist/domain/shared/read-inbox.d.ts +20 -0
- package/dist/domain/shared/read-inbox.js +16 -0
- package/dist/domain/shared/read-inbox.js.map +1 -0
- package/dist/domain/shared/read-message.d.ts +21 -0
- package/dist/domain/shared/read-message.js +18 -0
- package/dist/domain/shared/read-message.js.map +1 -0
- package/dist/domain/shared/read-needs-attention.d.ts +12 -0
- package/dist/domain/shared/read-needs-attention.js +10 -0
- package/dist/domain/shared/read-needs-attention.js.map +1 -0
- package/dist/domain/shared/read-ship-messages.d.ts +28 -0
- package/dist/domain/shared/read-ship-messages.js +30 -0
- package/dist/domain/shared/read-ship-messages.js.map +1 -0
- package/dist/domain/shared/read-ship-timeline.d.ts +18 -0
- package/dist/domain/shared/read-ship-timeline.js +16 -0
- package/dist/domain/shared/read-ship-timeline.js.map +1 -0
- package/dist/domain/shared/result.d.ts +16 -0
- package/dist/domain/shared/result.js +7 -0
- package/dist/domain/shared/result.js.map +1 -0
- package/dist/domain/shared/secrets.d.ts +26 -0
- package/dist/domain/shared/secrets.js +2 -0
- package/dist/domain/shared/secrets.js.map +1 -0
- package/dist/domain/shared/selector.d.ts +29 -0
- package/dist/domain/shared/selector.js +2 -0
- package/dist/domain/shared/selector.js.map +1 -0
- package/dist/domain/shared/unit-of-work.d.ts +13 -0
- package/dist/domain/shared/unit-of-work.js +2 -0
- package/dist/domain/shared/unit-of-work.js.map +1 -0
- package/dist/domain/shared/utc-day.d.ts +4 -0
- package/dist/domain/shared/utc-day.js +9 -0
- package/dist/domain/shared/utc-day.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/start.d.ts +6 -0
- package/dist/start.js +29 -0
- package/dist/start.js.map +1 -0
- package/dist/wiring.d.ts +158 -0
- package/dist/wiring.js +185 -0
- package/dist/wiring.js.map +1 -0
- package/package.json +58 -3
- package/prisma.config.ts +18 -0
- package/src/adapters/prisma/migrations/20260929124818_init/migration.sql +201 -0
- package/src/adapters/prisma/migrations/20260929160000_fleet_argo_console_session/migration.sql +130 -0
- package/src/adapters/prisma/migrations/20260929220017_operator_login/migration.sql +27 -0
- package/src/adapters/prisma/migrations/20260930090000_crew_token/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20260930120000_send/migration.sql +30 -0
- package/src/adapters/prisma/migrations/20260930150000_receive/migration.sql +24 -0
- package/src/adapters/prisma/migrations/20261001010000_event_seq/migration.sql +34 -0
- package/src/adapters/prisma/migrations/20261001020000_console_session_end_reason/migration.sql +14 -0
- package/src/adapters/prisma/migrations/20261001030000_account_theme_session_device/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261001040000_lease_last_seen/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261002190000_lease_report/migration.sql +7 -0
- package/src/adapters/prisma/migrations/20261003140000_commission_key/migration.sql +7 -0
- package/src/adapters/prisma/migrations/20261003200000_message_model/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20261003201000_lease_harness/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261004120000_operator_without_password/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261004121000_installation_requests/migration.sql +21 -0
- package/src/adapters/prisma/migrations/20261004122000_events_deleted_with_their_fleet/migration.sql +11 -0
- package/src/adapters/prisma/migrations/20261004130000_sign_in_tickets/migration.sql +16 -0
- package/src/adapters/prisma/migrations/20261004140000_fleet_limits/migration.sql +6 -0
- package/src/adapters/prisma/migrations/20261004141000_installation_settings/migration.sql +12 -0
- package/src/adapters/prisma/migrations/20261005090000_viewer_ship/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261005100000_viewer_sessions/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261005110000_notices/migration.sql +37 -0
- package/src/adapters/prisma/migrations/20261005120000_guide/migration.sql +34 -0
- package/src/adapters/prisma/migrations/20261006100000_fleet_crew_scope/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261006140000_lease_report_details/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261006160000_crew_requests/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261006180000_crew_scopes/migration.sql +9 -0
- package/src/adapters/prisma/migrations/20261006190000_crew_assignment/migration.sql +13 -0
- package/src/adapters/prisma/migrations/20261006200000_crew_request_reason/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261007020000_broad_crewing_scope_retired/migration.sql +8 -0
- package/src/adapters/prisma/migrations/migration_lock.toml +3 -0
- package/src/adapters/prisma/schema.prisma +558 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { toLastEventSeq, toSequencedEvent } from './rows.js';
|
|
2
|
+
/** The one channel every committed event is announced on, with its fleet and the last number. */
|
|
3
|
+
export const FLEET_EVENT_CHANNEL = 'aeolus_event';
|
|
4
|
+
export function createPrismaEventLog(db) {
|
|
5
|
+
const held = [];
|
|
6
|
+
return {
|
|
7
|
+
append: (event) => {
|
|
8
|
+
held.push(event);
|
|
9
|
+
return Promise.resolve();
|
|
10
|
+
},
|
|
11
|
+
flush: async () => {
|
|
12
|
+
const fleets = [...new Set(held.map((event) => event.fleetId))].toSorted();
|
|
13
|
+
for (const fleetId of fleets) {
|
|
14
|
+
await writeNumbered(db, { fleetId, events: held.filter((event) => event.fleetId === fleetId) });
|
|
15
|
+
}
|
|
16
|
+
held.length = 0;
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async function writeNumbered(db, of) {
|
|
21
|
+
const { fleetId, events } = of;
|
|
22
|
+
const [row] = await db.$queryRaw `
|
|
23
|
+
UPDATE fleets SET last_event_seq = last_event_seq + ${events.length}
|
|
24
|
+
WHERE id = ${fleetId}
|
|
25
|
+
RETURNING last_event_seq`;
|
|
26
|
+
const lastSeq = toLastEventSeq(row);
|
|
27
|
+
const firstSeq = lastSeq - events.length + 1;
|
|
28
|
+
await db.event.createMany({
|
|
29
|
+
data: events.map((event, index) => ({
|
|
30
|
+
id: event.id,
|
|
31
|
+
fleetId: event.fleetId,
|
|
32
|
+
type: event.type,
|
|
33
|
+
occurredAt: event.occurredAt,
|
|
34
|
+
actorShipId: event.actor.kind === 'ship' ? event.actor.shipId : null,
|
|
35
|
+
shipId: event.shipId ?? null,
|
|
36
|
+
messageId: event.messageId ?? null,
|
|
37
|
+
deliveryId: event.deliveryId ?? null,
|
|
38
|
+
details: event.details,
|
|
39
|
+
seq: BigInt(firstSeq + index),
|
|
40
|
+
})),
|
|
41
|
+
});
|
|
42
|
+
await db.$executeRaw `SELECT pg_notify(${FLEET_EVENT_CHANNEL}, ${JSON.stringify({ fleetId, seq: lastSeq })})`;
|
|
43
|
+
}
|
|
44
|
+
/** Reads committed events by number. Each read is one statement, outside a unit of work. */
|
|
45
|
+
export function createPrismaFleetEventFeed(db) {
|
|
46
|
+
return {
|
|
47
|
+
lastSeq: async (fleetId) => {
|
|
48
|
+
const fleet = await db.fleet.findUnique({ where: { id: fleetId }, select: { lastEventSeq: true } });
|
|
49
|
+
return Number(fleet?.lastEventSeq ?? 0);
|
|
50
|
+
},
|
|
51
|
+
after: async (fleetId, { seq, limit }) => {
|
|
52
|
+
const rows = await db.event.findMany({
|
|
53
|
+
where: { fleetId, seq: { gt: seq } },
|
|
54
|
+
orderBy: { seq: 'asc' },
|
|
55
|
+
take: limit,
|
|
56
|
+
});
|
|
57
|
+
return rows.map(toSequencedEvent);
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=event-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-log.js","sourceRoot":"","sources":["../../../src/adapters/prisma/event-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface DatabaseErrorCodes {
|
|
2
|
+
/** Prisma's error code, such as P2002. */
|
|
3
|
+
code?: string;
|
|
4
|
+
/** Postgres's SQLSTATE, such as 23505. */
|
|
5
|
+
sqlState?: string;
|
|
6
|
+
/** The driver adapter's name for the error, such as UniqueConstraintViolation. */
|
|
7
|
+
kind?: string;
|
|
8
|
+
}
|
|
9
|
+
export type LoggedFailure = {
|
|
10
|
+
database: DatabaseErrorCodes;
|
|
11
|
+
} | {
|
|
12
|
+
reason: string;
|
|
13
|
+
stack: string | undefined;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* A failure as the log holds it: a database error by its codes, anything else
|
|
17
|
+
* with its reason and stack. A failure wrapping a database error, such as a
|
|
18
|
+
* tRPC error whose cause it is, counts as one: it usually repeats its words.
|
|
19
|
+
*/
|
|
20
|
+
export declare function failureForLog(error: unknown): LoggedFailure;
|
|
21
|
+
/** A failure as one line for the operator's terminal: a database error by its codes, never its message. */
|
|
22
|
+
export declare function describeFailure(error: unknown): string;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the log holds of a failure. A database error's message can quote what
|
|
3
|
+
* the request held (Postgres echoes values back: `invalid input syntax for
|
|
4
|
+
* type integer: "..."`), and its stack opens with that message. So a database
|
|
5
|
+
* error is logged by its codes only: Prisma's, Postgres's SQLSTATE and the
|
|
6
|
+
* driver adapter's kind. Any other failure is logged whole.
|
|
7
|
+
*/
|
|
8
|
+
import pg from 'pg';
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { Prisma } from './generated/client.js';
|
|
11
|
+
/** Where Prisma keeps the driver adapter's error, whose cause holds Postgres's code. */
|
|
12
|
+
const prismaMetaSchema = z.object({
|
|
13
|
+
driverAdapterError: z.object({
|
|
14
|
+
cause: z.object({ originalCode: z.string().optional(), kind: z.string().optional() }),
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
17
|
+
const driverAdapterErrorSchema = z.object({
|
|
18
|
+
name: z.literal('DriverAdapterError'),
|
|
19
|
+
cause: z.object({ originalCode: z.string().optional(), kind: z.string().optional() }),
|
|
20
|
+
});
|
|
21
|
+
/** Only the codes that are there: an absent one is left out, not logged as undefined. */
|
|
22
|
+
function codes(found) {
|
|
23
|
+
return Object.fromEntries(Object.entries(found).filter(([, value]) => value !== undefined));
|
|
24
|
+
}
|
|
25
|
+
/** The codes of a database error, anywhere in the chain of causes; undefined when the failure is not one. */
|
|
26
|
+
function databaseCodesOf(error) {
|
|
27
|
+
if (error instanceof Prisma.PrismaClientKnownRequestError) {
|
|
28
|
+
const cause = prismaMetaSchema.safeParse(error.meta).data?.driverAdapterError.cause;
|
|
29
|
+
return codes({ code: error.code, sqlState: cause?.originalCode, kind: cause?.kind });
|
|
30
|
+
}
|
|
31
|
+
if (error instanceof Prisma.PrismaClientInitializationError) {
|
|
32
|
+
return codes({ code: error.errorCode });
|
|
33
|
+
}
|
|
34
|
+
if (error instanceof Prisma.PrismaClientUnknownRequestError ||
|
|
35
|
+
error instanceof Prisma.PrismaClientRustPanicError ||
|
|
36
|
+
error instanceof Prisma.PrismaClientValidationError) {
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
if (error instanceof pg.DatabaseError) {
|
|
40
|
+
return codes({ sqlState: error.code });
|
|
41
|
+
}
|
|
42
|
+
const adapterError = driverAdapterErrorSchema.safeParse(error).data;
|
|
43
|
+
if (adapterError !== undefined) {
|
|
44
|
+
return codes({ sqlState: adapterError.cause.originalCode, kind: adapterError.cause.kind });
|
|
45
|
+
}
|
|
46
|
+
return error instanceof Error && error.cause !== undefined ? databaseCodesOf(error.cause) : undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A failure as the log holds it: a database error by its codes, anything else
|
|
50
|
+
* with its reason and stack. A failure wrapping a database error, such as a
|
|
51
|
+
* tRPC error whose cause it is, counts as one: it usually repeats its words.
|
|
52
|
+
*/
|
|
53
|
+
export function failureForLog(error) {
|
|
54
|
+
const database = databaseCodesOf(error);
|
|
55
|
+
if (database !== undefined) {
|
|
56
|
+
return { database };
|
|
57
|
+
}
|
|
58
|
+
return error instanceof Error ? { reason: error.message, stack: error.stack } : { reason: String(error), stack: undefined };
|
|
59
|
+
}
|
|
60
|
+
/** A failure as one line for the operator's terminal: a database error by its codes, never its message. */
|
|
61
|
+
export function describeFailure(error) {
|
|
62
|
+
const failure = failureForLog(error);
|
|
63
|
+
if ('reason' in failure) {
|
|
64
|
+
return failure.reason;
|
|
65
|
+
}
|
|
66
|
+
const { code, sqlState, kind } = failure.database;
|
|
67
|
+
const named = [code, sqlState, kind].filter((part) => part !== undefined);
|
|
68
|
+
return `The database failed (${named.length > 0 ? named.join(', ') : 'no code'}).`;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=failure-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-log.js","sourceRoot":"","sources":["../../../src/adapters/prisma/failure-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-counter.js","sourceRoot":"","sources":["../../../src/adapters/prisma/fleet-counter.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,wBAAwB,CAAC,MAAoB;IAC3D,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wakes live subscriptions from the event notices the listener hears
|
|
3
|
+
* (event-log.ts). Each subscription watches its fleet; a notice for it wakes
|
|
4
|
+
* the subscription, which reads the events table again. Held in the server's
|
|
5
|
+
* memory only: a wake-up is a hint and the table is the truth, so a notice
|
|
6
|
+
* lost while the listener reconnects costs nothing once `wakeAll` runs.
|
|
7
|
+
*/
|
|
8
|
+
import type { FleetId } from '@aeolus-fleet/common';
|
|
9
|
+
import type { FleetEventNotice, FleetEventWakeups } from '../../domain/shared/events.js';
|
|
10
|
+
export interface FleetEventWatch {
|
|
11
|
+
/**
|
|
12
|
+
* Settles once the fleet has news: at once when a notice came since the last
|
|
13
|
+
* call. True when woken; false when the signal aborted or the server stops.
|
|
14
|
+
*/
|
|
15
|
+
next(signal: AbortSignal): Promise<boolean>;
|
|
16
|
+
stop(): void;
|
|
17
|
+
}
|
|
18
|
+
export interface FleetEventWakeupHub {
|
|
19
|
+
watch(fleetId: FleetId): FleetEventWatch;
|
|
20
|
+
/** Wakes the subscriptions of the notice's fleet. */
|
|
21
|
+
eventCommitted(notice: FleetEventNotice): void;
|
|
22
|
+
/** Wakes every subscription, so each reads again: for when the listener starts listening again. */
|
|
23
|
+
wakeAll(): void;
|
|
24
|
+
/** Ends every wait and every later one, for a stopping server. */
|
|
25
|
+
endAll(): void;
|
|
26
|
+
}
|
|
27
|
+
export declare function createFleetEventWakeups(): FleetEventWakeupHub;
|
|
28
|
+
/**
|
|
29
|
+
* The hub as the core's port for a waiting follow: each wait ends when the
|
|
30
|
+
* fleet has news, or once its time has passed, or when the server stops,
|
|
31
|
+
* which reads as the time having passed.
|
|
32
|
+
*/
|
|
33
|
+
export declare function fleetEventWakeupsOf(hub: Pick<FleetEventWakeupHub, 'watch'>): FleetEventWakeups;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export function createFleetEventWakeups() {
|
|
2
|
+
const watchers = new Map();
|
|
3
|
+
let isEnded = false;
|
|
4
|
+
const wake = (watcher) => {
|
|
5
|
+
if (watcher.settle) {
|
|
6
|
+
watcher.settle(true);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
watcher.hasNews = true;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const every = () => [...watchers.values()].flatMap((set) => [...set]);
|
|
13
|
+
return {
|
|
14
|
+
watch: (fleetId) => {
|
|
15
|
+
const watcher = { hasNews: false };
|
|
16
|
+
const set = watchers.get(fleetId) ?? new Set();
|
|
17
|
+
set.add(watcher);
|
|
18
|
+
watchers.set(fleetId, set);
|
|
19
|
+
return {
|
|
20
|
+
next: (signal) => {
|
|
21
|
+
if (isEnded || signal.aborted) {
|
|
22
|
+
return Promise.resolve(false);
|
|
23
|
+
}
|
|
24
|
+
if (watcher.hasNews) {
|
|
25
|
+
watcher.hasNews = false;
|
|
26
|
+
return Promise.resolve(true);
|
|
27
|
+
}
|
|
28
|
+
return new Promise((resolve) => {
|
|
29
|
+
const onAbort = () => {
|
|
30
|
+
watcher.settle?.(false);
|
|
31
|
+
};
|
|
32
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
33
|
+
watcher.settle = (isWoken) => {
|
|
34
|
+
signal.removeEventListener('abort', onAbort);
|
|
35
|
+
watcher.settle = undefined;
|
|
36
|
+
resolve(isWoken);
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
stop: () => {
|
|
41
|
+
watcher.settle?.(false);
|
|
42
|
+
const watching = watchers.get(fleetId);
|
|
43
|
+
watching?.delete(watcher);
|
|
44
|
+
if (watching?.size === 0) {
|
|
45
|
+
watchers.delete(fleetId);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
eventCommitted: ({ fleetId }) => {
|
|
51
|
+
for (const watcher of watchers.get(fleetId) ?? []) {
|
|
52
|
+
wake(watcher);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
wakeAll: () => {
|
|
56
|
+
for (const watcher of every()) {
|
|
57
|
+
wake(watcher);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
endAll: () => {
|
|
61
|
+
isEnded = true;
|
|
62
|
+
for (const watcher of every()) {
|
|
63
|
+
watcher.settle?.(false);
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The hub as the core's port for a waiting follow: each wait ends when the
|
|
70
|
+
* fleet has news, or once its time has passed, or when the server stops,
|
|
71
|
+
* which reads as the time having passed.
|
|
72
|
+
*/
|
|
73
|
+
export function fleetEventWakeupsOf(hub) {
|
|
74
|
+
return {
|
|
75
|
+
watch: (fleetId) => {
|
|
76
|
+
const watch = hub.watch(fleetId);
|
|
77
|
+
return {
|
|
78
|
+
next: async (waitMs) => ((await watch.next(AbortSignal.timeout(waitMs))) ? 'woken' : 'timedOut'),
|
|
79
|
+
stop: () => {
|
|
80
|
+
watch.stop();
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=fleet-event-wakeups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-event-wakeups.js","sourceRoot":"","sources":["../../../src/adapters/prisma/fleet-event-wakeups.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import * as Prisma from './internal/prismaNamespaceBrowser.js';
|
|
2
|
+
export { Prisma };
|
|
3
|
+
export * as $Enums from './enums.js';
|
|
4
|
+
export * from './enums.js';
|
|
5
|
+
/**
|
|
6
|
+
* Model Fleet
|
|
7
|
+
* The tenant: one operator's ships, messages and history. Ids start with flt_.
|
|
8
|
+
*/
|
|
9
|
+
export type Fleet = Prisma.FleetModel;
|
|
10
|
+
/**
|
|
11
|
+
* Model Ship
|
|
12
|
+
* A durable, addressable identity with an inbox. Ids start with shp_.
|
|
13
|
+
* Scopes are set when the ship is created and checked before every call.
|
|
14
|
+
*/
|
|
15
|
+
export type Ship = Prisma.ShipModel;
|
|
16
|
+
/**
|
|
17
|
+
* Model Lease
|
|
18
|
+
* The exclusive right of one session to crew a ship, and where that session runs.
|
|
19
|
+
* Ids start with lse_.
|
|
20
|
+
* The hash of the crew token register gave the session, unique across all fleets:
|
|
21
|
+
* finding a ship by its crew token is a lookup not scoped by fleet (ADR 0007). A
|
|
22
|
+
* console session's lease on argo has none; the console session holds its token.
|
|
23
|
+
*/
|
|
24
|
+
export type Lease = Prisma.LeaseModel;
|
|
25
|
+
/**
|
|
26
|
+
* Model CrewRequest
|
|
27
|
+
* A standing request that a ship be kept crewed (decision 0029): at most one per
|
|
28
|
+
* ship, so the ship's id is its key. Its settings are stored without meaning, at
|
|
29
|
+
* most 16 KB; each request replaces them and moves their version by one.
|
|
30
|
+
*/
|
|
31
|
+
export type CrewRequest = Prisma.CrewRequestModel;
|
|
32
|
+
/**
|
|
33
|
+
* Model Credential
|
|
34
|
+
* A ship secret, stored only as its hash. Ids start with crd_.
|
|
35
|
+
* The hash is unique across all fleets: finding a ship by its secret is one of the
|
|
36
|
+
* lookups not scoped by fleet (ADR 0007).
|
|
37
|
+
*/
|
|
38
|
+
export type Credential = Prisma.CredentialModel;
|
|
39
|
+
/**
|
|
40
|
+
* Model Message
|
|
41
|
+
* An immutable envelope plus an opaque payload of at most 64 KB, sent by one ship.
|
|
42
|
+
* Ids start with msg_. The selector is stored as resolved at send time: a ship's
|
|
43
|
+
* id, never its name, or a type. It can name the message it replies to, and a
|
|
44
|
+
* resend names the message it resends (nothing sets that yet).
|
|
45
|
+
*/
|
|
46
|
+
export type Message = Prisma.MessageModel;
|
|
47
|
+
/**
|
|
48
|
+
* Model Delivery
|
|
49
|
+
* One message to one resolved recipient: a ship or a type. Ids start with dlv_.
|
|
50
|
+
* A receive claims it for the ship and the lease of the crew receiving: set while it
|
|
51
|
+
* is in flight, kept once acknowledged, none while it is pending. Attempts count the
|
|
52
|
+
* claims; the fifth makes it undeliverable.
|
|
53
|
+
* The read date is set when the operator opens a message to argo.
|
|
54
|
+
*/
|
|
55
|
+
export type Delivery = Prisma.DeliveryModel;
|
|
56
|
+
/**
|
|
57
|
+
* Model Event
|
|
58
|
+
* Append-only log of every state change: never updated or deleted. Ids start with evt_.
|
|
59
|
+
* Records its type and time, who caused it (a ship, or the system when
|
|
60
|
+
* actor_ship_id is null), the ship, message and delivery it concerns, and a few
|
|
61
|
+
* details as a flat JSON object.
|
|
62
|
+
*/
|
|
63
|
+
export type Event = Prisma.EventModel;
|
|
64
|
+
/**
|
|
65
|
+
* Model Operator
|
|
66
|
+
* The operator's login: email and Argon2id password hash, none for an operator a
|
|
67
|
+
* hosting installation created. Ids start with opr_.
|
|
68
|
+
* The email is unique across all fleets: finding the account by email is the one
|
|
69
|
+
* lookup not scoped by fleet (ADR 0007). One account per fleet in v1.
|
|
70
|
+
*/
|
|
71
|
+
export type Operator = Prisma.OperatorModel;
|
|
72
|
+
/**
|
|
73
|
+
* Model ConsoleSession
|
|
74
|
+
* The operator crewing argo through the web console. Ids start with ses_.
|
|
75
|
+
* Only the hash of the session token is stored, unique across all fleets: finding
|
|
76
|
+
* a session by its token is the one lookup not scoped by fleet (ADR 0007).
|
|
77
|
+
* Valid until expires_at, which moves to idle_limit_seconds after each use
|
|
78
|
+
* (30 days for the operator, 2 hours for a viewer), never past ends_by.
|
|
79
|
+
*/
|
|
80
|
+
export type ConsoleSession = Prisma.ConsoleSessionModel;
|
|
81
|
+
/**
|
|
82
|
+
* Model SignInTicket
|
|
83
|
+
* A one-time sign-in ticket for the fleet's operator, issued by a hosting
|
|
84
|
+
* installation and redeemed in the console (decision 0020). Only its hash is
|
|
85
|
+
* stored, unique across all fleets: redeeming finds it before the fleet is known.
|
|
86
|
+
*/
|
|
87
|
+
export type SignInTicket = Prisma.SignInTicketModel;
|
|
88
|
+
/**
|
|
89
|
+
* Model InstallationSettings
|
|
90
|
+
* The installation's settings (decision 0020): the default ship and daily message
|
|
91
|
+
* limits for fleets and the cap on fleets, each null for no limit. One row at most,
|
|
92
|
+
* and none until the installation sets them. Belongs to no fleet.
|
|
93
|
+
*/
|
|
94
|
+
export type InstallationSettings = Prisma.InstallationSettingsModel;
|
|
95
|
+
/**
|
|
96
|
+
* Model InstallationRequest
|
|
97
|
+
* A create or delete of a fleet the installation carried out, under its caller's
|
|
98
|
+
* request id, so a replay answers the same (decision 0020). It belongs to the
|
|
99
|
+
* installation, not to a fleet, and keeps the request as a hash only. A create's
|
|
100
|
+
* row names the fleet and argo it answers with and is deleted with that fleet; a
|
|
101
|
+
* delete's row names nothing of the fleet.
|
|
102
|
+
*/
|
|
103
|
+
export type InstallationRequest = Prisma.InstallationRequestModel;
|
|
104
|
+
/**
|
|
105
|
+
* Model Notice
|
|
106
|
+
* A console notice the installation sets (decision 0023), shown above every
|
|
107
|
+
* page to the sessions of its audience. It belongs to no fleet.
|
|
108
|
+
*/
|
|
109
|
+
export type Notice = Prisma.NoticeModel;
|
|
110
|
+
/**
|
|
111
|
+
* Model NoticeDismissal
|
|
112
|
+
* A notice a console session dismissed, for itself (decision 0023). It goes
|
|
113
|
+
* with its session and its fleet.
|
|
114
|
+
*/
|
|
115
|
+
export type NoticeDismissal = Prisma.NoticeDismissalModel;
|
|
116
|
+
/**
|
|
117
|
+
* Model Guide
|
|
118
|
+
* The installation's guide (decision 0024): steps for the console sessions of
|
|
119
|
+
* one audience. At most one row; it belongs to no fleet.
|
|
120
|
+
*/
|
|
121
|
+
export type Guide = Prisma.GuideModel;
|
|
122
|
+
/**
|
|
123
|
+
* Model GuideProgress
|
|
124
|
+
* Where a console session is in the guide, for itself (decision 0024). It
|
|
125
|
+
* goes with its session and its fleet.
|
|
126
|
+
*/
|
|
127
|
+
export type GuideProgress = Prisma.GuideProgressModel;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// biome-ignore-all lint: generated file
|
|
4
|
+
// @ts-nocheck
|
|
5
|
+
/*
|
|
6
|
+
* This file should be your main import to use Prisma-related types and utilities in a browser.
|
|
7
|
+
* Use it to get access to models, enums, and input types.
|
|
8
|
+
*
|
|
9
|
+
* This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only.
|
|
10
|
+
* See `client.ts` for the standard, server-side entry point.
|
|
11
|
+
*
|
|
12
|
+
* 🟢 You can import this file directly.
|
|
13
|
+
*/
|
|
14
|
+
import * as Prisma from './internal/prismaNamespaceBrowser.js';
|
|
15
|
+
export { Prisma };
|
|
16
|
+
export * as $Enums from './enums.js';
|
|
17
|
+
export * from './enums.js';
|
|
18
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/adapters/prisma/generated/browser.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as runtime from "@prisma/client/runtime/client";
|
|
2
|
+
import * as $Class from "./internal/class.js";
|
|
3
|
+
import * as Prisma from "./internal/prismaNamespace.js";
|
|
4
|
+
export * as $Enums from './enums.js';
|
|
5
|
+
export * from "./enums.js";
|
|
6
|
+
/**
|
|
7
|
+
* ## Prisma Client
|
|
8
|
+
*
|
|
9
|
+
* Type-safe database client for TypeScript
|
|
10
|
+
* @example
|
|
11
|
+
* ```
|
|
12
|
+
* const prisma = new PrismaClient({
|
|
13
|
+
* adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL })
|
|
14
|
+
* })
|
|
15
|
+
* // Fetch zero or more Fleets
|
|
16
|
+
* const fleets = await prisma.fleet.findMany()
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Read more in our [docs](https://pris.ly/d/client).
|
|
20
|
+
*/
|
|
21
|
+
export declare const PrismaClient: $Class.PrismaClientConstructor;
|
|
22
|
+
export type PrismaClient<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>;
|
|
23
|
+
export { Prisma };
|
|
24
|
+
/**
|
|
25
|
+
* Model Fleet
|
|
26
|
+
* The tenant: one operator's ships, messages and history. Ids start with flt_.
|
|
27
|
+
*/
|
|
28
|
+
export type Fleet = Prisma.FleetModel;
|
|
29
|
+
/**
|
|
30
|
+
* Model Ship
|
|
31
|
+
* A durable, addressable identity with an inbox. Ids start with shp_.
|
|
32
|
+
* Scopes are set when the ship is created and checked before every call.
|
|
33
|
+
*/
|
|
34
|
+
export type Ship = Prisma.ShipModel;
|
|
35
|
+
/**
|
|
36
|
+
* Model Lease
|
|
37
|
+
* The exclusive right of one session to crew a ship, and where that session runs.
|
|
38
|
+
* Ids start with lse_.
|
|
39
|
+
* The hash of the crew token register gave the session, unique across all fleets:
|
|
40
|
+
* finding a ship by its crew token is a lookup not scoped by fleet (ADR 0007). A
|
|
41
|
+
* console session's lease on argo has none; the console session holds its token.
|
|
42
|
+
*/
|
|
43
|
+
export type Lease = Prisma.LeaseModel;
|
|
44
|
+
/**
|
|
45
|
+
* Model CrewRequest
|
|
46
|
+
* A standing request that a ship be kept crewed (decision 0029): at most one per
|
|
47
|
+
* ship, so the ship's id is its key. Its settings are stored without meaning, at
|
|
48
|
+
* most 16 KB; each request replaces them and moves their version by one.
|
|
49
|
+
*/
|
|
50
|
+
export type CrewRequest = Prisma.CrewRequestModel;
|
|
51
|
+
/**
|
|
52
|
+
* Model Credential
|
|
53
|
+
* A ship secret, stored only as its hash. Ids start with crd_.
|
|
54
|
+
* The hash is unique across all fleets: finding a ship by its secret is one of the
|
|
55
|
+
* lookups not scoped by fleet (ADR 0007).
|
|
56
|
+
*/
|
|
57
|
+
export type Credential = Prisma.CredentialModel;
|
|
58
|
+
/**
|
|
59
|
+
* Model Message
|
|
60
|
+
* An immutable envelope plus an opaque payload of at most 64 KB, sent by one ship.
|
|
61
|
+
* Ids start with msg_. The selector is stored as resolved at send time: a ship's
|
|
62
|
+
* id, never its name, or a type. It can name the message it replies to, and a
|
|
63
|
+
* resend names the message it resends (nothing sets that yet).
|
|
64
|
+
*/
|
|
65
|
+
export type Message = Prisma.MessageModel;
|
|
66
|
+
/**
|
|
67
|
+
* Model Delivery
|
|
68
|
+
* One message to one resolved recipient: a ship or a type. Ids start with dlv_.
|
|
69
|
+
* A receive claims it for the ship and the lease of the crew receiving: set while it
|
|
70
|
+
* is in flight, kept once acknowledged, none while it is pending. Attempts count the
|
|
71
|
+
* claims; the fifth makes it undeliverable.
|
|
72
|
+
* The read date is set when the operator opens a message to argo.
|
|
73
|
+
*/
|
|
74
|
+
export type Delivery = Prisma.DeliveryModel;
|
|
75
|
+
/**
|
|
76
|
+
* Model Event
|
|
77
|
+
* Append-only log of every state change: never updated or deleted. Ids start with evt_.
|
|
78
|
+
* Records its type and time, who caused it (a ship, or the system when
|
|
79
|
+
* actor_ship_id is null), the ship, message and delivery it concerns, and a few
|
|
80
|
+
* details as a flat JSON object.
|
|
81
|
+
*/
|
|
82
|
+
export type Event = Prisma.EventModel;
|
|
83
|
+
/**
|
|
84
|
+
* Model Operator
|
|
85
|
+
* The operator's login: email and Argon2id password hash, none for an operator a
|
|
86
|
+
* hosting installation created. Ids start with opr_.
|
|
87
|
+
* The email is unique across all fleets: finding the account by email is the one
|
|
88
|
+
* lookup not scoped by fleet (ADR 0007). One account per fleet in v1.
|
|
89
|
+
*/
|
|
90
|
+
export type Operator = Prisma.OperatorModel;
|
|
91
|
+
/**
|
|
92
|
+
* Model ConsoleSession
|
|
93
|
+
* The operator crewing argo through the web console. Ids start with ses_.
|
|
94
|
+
* Only the hash of the session token is stored, unique across all fleets: finding
|
|
95
|
+
* a session by its token is the one lookup not scoped by fleet (ADR 0007).
|
|
96
|
+
* Valid until expires_at, which moves to idle_limit_seconds after each use
|
|
97
|
+
* (30 days for the operator, 2 hours for a viewer), never past ends_by.
|
|
98
|
+
*/
|
|
99
|
+
export type ConsoleSession = Prisma.ConsoleSessionModel;
|
|
100
|
+
/**
|
|
101
|
+
* Model SignInTicket
|
|
102
|
+
* A one-time sign-in ticket for the fleet's operator, issued by a hosting
|
|
103
|
+
* installation and redeemed in the console (decision 0020). Only its hash is
|
|
104
|
+
* stored, unique across all fleets: redeeming finds it before the fleet is known.
|
|
105
|
+
*/
|
|
106
|
+
export type SignInTicket = Prisma.SignInTicketModel;
|
|
107
|
+
/**
|
|
108
|
+
* Model InstallationSettings
|
|
109
|
+
* The installation's settings (decision 0020): the default ship and daily message
|
|
110
|
+
* limits for fleets and the cap on fleets, each null for no limit. One row at most,
|
|
111
|
+
* and none until the installation sets them. Belongs to no fleet.
|
|
112
|
+
*/
|
|
113
|
+
export type InstallationSettings = Prisma.InstallationSettingsModel;
|
|
114
|
+
/**
|
|
115
|
+
* Model InstallationRequest
|
|
116
|
+
* A create or delete of a fleet the installation carried out, under its caller's
|
|
117
|
+
* request id, so a replay answers the same (decision 0020). It belongs to the
|
|
118
|
+
* installation, not to a fleet, and keeps the request as a hash only. A create's
|
|
119
|
+
* row names the fleet and argo it answers with and is deleted with that fleet; a
|
|
120
|
+
* delete's row names nothing of the fleet.
|
|
121
|
+
*/
|
|
122
|
+
export type InstallationRequest = Prisma.InstallationRequestModel;
|
|
123
|
+
/**
|
|
124
|
+
* Model Notice
|
|
125
|
+
* A console notice the installation sets (decision 0023), shown above every
|
|
126
|
+
* page to the sessions of its audience. It belongs to no fleet.
|
|
127
|
+
*/
|
|
128
|
+
export type Notice = Prisma.NoticeModel;
|
|
129
|
+
/**
|
|
130
|
+
* Model NoticeDismissal
|
|
131
|
+
* A notice a console session dismissed, for itself (decision 0023). It goes
|
|
132
|
+
* with its session and its fleet.
|
|
133
|
+
*/
|
|
134
|
+
export type NoticeDismissal = Prisma.NoticeDismissalModel;
|
|
135
|
+
/**
|
|
136
|
+
* Model Guide
|
|
137
|
+
* The installation's guide (decision 0024): steps for the console sessions of
|
|
138
|
+
* one audience. At most one row; it belongs to no fleet.
|
|
139
|
+
*/
|
|
140
|
+
export type Guide = Prisma.GuideModel;
|
|
141
|
+
/**
|
|
142
|
+
* Model GuideProgress
|
|
143
|
+
* Where a console session is in the guide, for itself (decision 0024). It
|
|
144
|
+
* goes with its session and its fleet.
|
|
145
|
+
*/
|
|
146
|
+
export type GuideProgress = Prisma.GuideProgressModel;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// biome-ignore-all lint: generated file
|
|
4
|
+
// @ts-nocheck
|
|
5
|
+
/*
|
|
6
|
+
* This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
|
|
7
|
+
* If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
|
|
8
|
+
*
|
|
9
|
+
* 🟢 You can import this file directly.
|
|
10
|
+
*/
|
|
11
|
+
import * as process from 'node:process';
|
|
12
|
+
import * as path from 'node:path';
|
|
13
|
+
import { fileURLToPath } from 'node:url';
|
|
14
|
+
globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
import * as runtime from "@prisma/client/runtime/client";
|
|
16
|
+
import * as $Enums from "./enums.js";
|
|
17
|
+
import * as $Class from "./internal/class.js";
|
|
18
|
+
import * as Prisma from "./internal/prismaNamespace.js";
|
|
19
|
+
export * as $Enums from './enums.js';
|
|
20
|
+
export * from "./enums.js";
|
|
21
|
+
/**
|
|
22
|
+
* ## Prisma Client
|
|
23
|
+
*
|
|
24
|
+
* Type-safe database client for TypeScript
|
|
25
|
+
* @example
|
|
26
|
+
* ```
|
|
27
|
+
* const prisma = new PrismaClient({
|
|
28
|
+
* adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL })
|
|
29
|
+
* })
|
|
30
|
+
* // Fetch zero or more Fleets
|
|
31
|
+
* const fleets = await prisma.fleet.findMany()
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* Read more in our [docs](https://pris.ly/d/client).
|
|
35
|
+
*/
|
|
36
|
+
export const PrismaClient = $Class.getPrismaClientClass();
|
|
37
|
+
export { Prisma };
|
|
38
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/adapters/prisma/generated/client.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;GAKG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEtE,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AACxD,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,CAAA"}
|