@aeolus-fleet/gateway 0.28.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -6
- package/dist/adapters/crypto/account-sign-in-seals.d.ts +7 -0
- package/dist/adapters/crypto/account-sign-in-seals.js +21 -0
- package/dist/adapters/crypto/account-sign-in-seals.js.map +1 -0
- package/dist/adapters/crypto/sign-in-seals.d.ts +1 -1
- package/dist/adapters/crypto/sign-in-seals.js +3 -6
- package/dist/adapters/crypto/sign-in-seals.js.map +1 -1
- package/dist/adapters/fleet/core-version.d.ts +1 -1
- package/dist/adapters/fleet/core-version.js +1 -1
- package/dist/adapters/fleet/fleet-ships.d.ts +6 -0
- package/dist/adapters/fleet/fleet-ships.js +23 -0
- package/dist/adapters/fleet/fleet-ships.js.map +1 -0
- package/dist/adapters/fleet/proxy-ship-reads.d.ts +2 -2
- package/dist/adapters/fleet/proxy-ship-reads.js +6 -3
- package/dist/adapters/fleet/proxy-ship-reads.js.map +1 -1
- package/dist/adapters/fleet/rest-fleet-door.d.ts +2 -1
- package/dist/adapters/fleet/rest-fleet-door.js +34 -14
- package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
- package/dist/adapters/http/account-sign-in-routes.d.ts +19 -0
- package/dist/adapters/http/account-sign-in-routes.js +61 -0
- package/dist/adapters/http/account-sign-in-routes.js.map +1 -0
- package/dist/adapters/http/forms.d.ts +9 -0
- package/dist/adapters/http/forms.js +23 -0
- package/dist/adapters/http/forms.js.map +1 -0
- package/dist/adapters/http/front-door.d.ts +15 -0
- package/dist/adapters/http/front-door.js +59 -0
- package/dist/adapters/http/front-door.js.map +1 -0
- package/dist/adapters/http/live.d.ts +2 -12
- package/dist/adapters/http/live.js +4 -65
- package/dist/adapters/http/live.js.map +1 -1
- package/dist/adapters/http/oauth-routes.d.ts +14 -16
- package/dist/adapters/http/oauth-routes.js +23 -139
- package/dist/adapters/http/oauth-routes.js.map +1 -1
- package/dist/adapters/http/person-tools.d.ts +9 -4
- package/dist/adapters/http/person-tools.js +49 -5
- package/dist/adapters/http/person-tools.js.map +1 -1
- package/dist/adapters/pagasae/shared-sign-in.d.ts +11 -0
- package/dist/adapters/pagasae/shared-sign-in.js +123 -0
- package/dist/adapters/pagasae/shared-sign-in.js.map +1 -0
- package/dist/adapters/prisma/generated/browser.d.ts +1 -1
- package/dist/adapters/prisma/generated/client.d.ts +1 -1
- 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 +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +30 -2
- package/dist/adapters/prisma/opened-deliveries.js +18 -12
- package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +143 -4
- package/dist/adapters/trpc/router.js +151 -5
- package/dist/adapters/trpc/router.js.map +1 -1
- package/dist/adapters/web/next-web-app.d.ts +10 -0
- package/dist/adapters/web/next-web-app.js +27 -0
- package/dist/adapters/web/next-web-app.js.map +1 -0
- package/dist/app.d.ts +9 -1
- package/dist/app.js +54 -28
- package/dist/app.js.map +1 -1
- package/dist/bin/aeolus-gateway.js +12 -1
- package/dist/bin/aeolus-gateway.js.map +1 -1
- package/dist/config.d.ts +18 -0
- package/dist/config.js +16 -1
- package/dist/config.js.map +1 -1
- package/dist/core/account-sign-in/account-in-view.d.ts +43 -0
- package/dist/core/account-sign-in/account-in-view.js +52 -0
- package/dist/core/account-sign-in/account-in-view.js.map +1 -0
- package/dist/core/account-sign-in/account-of-sign-in.d.ts +23 -0
- package/dist/core/account-sign-in/account-of-sign-in.js +41 -0
- package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -0
- package/dist/core/account-sign-in/complete-account-sign-in.d.ts +37 -0
- package/dist/core/account-sign-in/complete-account-sign-in.js +25 -0
- package/dist/core/account-sign-in/complete-account-sign-in.js.map +1 -0
- package/dist/core/account-sign-in/ports.d.ts +92 -0
- package/dist/core/account-sign-in/ports.js +3 -0
- package/dist/core/account-sign-in/ports.js.map +1 -0
- package/dist/core/account-sign-in/sign-out-account.d.ts +15 -0
- package/dist/core/account-sign-in/sign-out-account.js +12 -0
- package/dist/core/account-sign-in/sign-out-account.js.map +1 -0
- package/dist/core/account-sign-in/start-account-sign-in.d.ts +25 -0
- package/dist/core/account-sign-in/start-account-sign-in.js +26 -0
- package/dist/core/account-sign-in/start-account-sign-in.js.map +1 -0
- package/dist/core/actors/authenticate-actor.d.ts +14 -15
- package/dist/core/actors/authenticate-actor.js +10 -12
- package/dist/core/actors/authenticate-actor.js.map +1 -1
- package/dist/core/actors/credential-of.d.ts +4 -6
- package/dist/core/actors/credential-of.js +4 -8
- package/dist/core/actors/credential-of.js.map +1 -1
- package/dist/core/connection/answer-pings.d.ts +19 -0
- package/dist/core/connection/answer-pings.js +34 -0
- package/dist/core/connection/answer-pings.js.map +1 -0
- package/dist/core/connection/ports.d.ts +18 -1
- package/dist/core/oauth/read-authorization.js +2 -2
- package/dist/core/oauth/read-authorization.js.map +1 -1
- package/dist/core/oauth/redirect-uri.d.ts +7 -0
- package/dist/core/oauth/redirect-uri.js +23 -0
- package/dist/core/oauth/redirect-uri.js.map +1 -1
- package/dist/core/operator/authenticate-operator.d.ts +4 -3
- package/dist/core/operator/authenticate-operator.js +4 -2
- package/dist/core/operator/authenticate-operator.js.map +1 -1
- package/dist/core/parties/list-owner-choices.d.ts +24 -0
- package/dist/core/parties/list-owner-choices.js +25 -0
- package/dist/core/parties/list-owner-choices.js.map +1 -0
- package/dist/core/parties/list-parties.js +1 -1
- package/dist/core/parties/list-parties.js.map +1 -1
- package/dist/core/parties/ports.d.ts +14 -5
- package/dist/core/parties/shown-party.d.ts +8 -2
- package/dist/core/parties/shown-party.js.map +1 -1
- package/dist/core/people/crew-person-ship.d.ts +3 -5
- package/dist/core/people/crew-person-ship.js +6 -5
- package/dist/core/people/crew-person-ship.js.map +1 -1
- package/dist/core/people/inbox-entry.d.ts +2 -1
- package/dist/core/people/inbox-entry.js +3 -0
- package/dist/core/people/inbox-entry.js.map +1 -1
- package/dist/core/people/list-ships.d.ts +17 -0
- package/dist/core/people/list-ships.js +20 -0
- package/dist/core/people/list-ships.js.map +1 -0
- package/dist/core/people/open-delivery.d.ts +14 -9
- package/dist/core/people/open-delivery.js +24 -4
- package/dist/core/people/open-delivery.js.map +1 -1
- package/dist/core/people/person-crew.d.ts +13 -1
- package/dist/core/people/person-crew.js.map +1 -1
- package/dist/core/people/ports.d.ts +42 -3
- package/dist/core/people/read-inbox.d.ts +15 -9
- package/dist/core/people/read-inbox.js +17 -6
- package/dist/core/people/read-inbox.js.map +1 -1
- package/dist/core/people/send-message.d.ts +32 -0
- package/dist/core/people/send-message.js +22 -0
- package/dist/core/people/send-message.js.map +1 -0
- package/dist/core/requests/ask-for-server.d.ts +2 -2
- package/dist/core/requests/watch-waiting.d.ts +2 -1
- package/dist/core/requests/watch-waiting.js +2 -2
- package/dist/core/requests/watch-waiting.js.map +1 -1
- package/dist/core/sign-in/complete-sign-in.d.ts +4 -11
- package/dist/core/sign-in/complete-sign-in.js +1 -23
- package/dist/core/sign-in/complete-sign-in.js.map +1 -1
- package/dist/core/sign-in/own-page.d.ts +10 -0
- package/dist/core/sign-in/own-page.js +35 -0
- package/dist/core/sign-in/own-page.js.map +1 -0
- package/dist/core/sign-in/ports.d.ts +3 -24
- package/dist/ping-worker.d.ts +20 -0
- package/dist/ping-worker.js +33 -0
- package/dist/ping-worker.js.map +1 -0
- package/package.json +23 -5
- package/src/adapters/prisma/migrations/20261021120000_opened_deliveries_sent_at/migration.sql +4 -0
- package/src/adapters/prisma/schema.prisma +2 -1
- package/web/.next/BUILD_ID +1 -0
- package/web/.next/app-path-routes-manifest.json +17 -0
- package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js +192 -0
- package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js.map +8 -0
- package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js +502 -0
- package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js.map +11 -0
- package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js +13 -0
- package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js.map +5 -0
- package/web/.next/build/chunks/[turbopack]_runtime.js +1056 -0
- package/web/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
- package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js +7337 -0
- package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js.map +47 -0
- package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js +6 -0
- package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js.map +5 -0
- package/web/.next/build/package.json +1 -0
- package/web/.next/build-manifest.json +194 -0
- package/web/.next/diagnostics/build-diagnostics.json +6 -0
- package/web/.next/diagnostics/framework.json +1 -0
- package/web/.next/diagnostics/route-bundle-stats.json +195 -0
- package/web/.next/export-marker.json +6 -0
- package/web/.next/fallback-build-manifest.json +15 -0
- package/web/.next/images-manifest.json +68 -0
- package/web/.next/next-minimal-server.js.nft.json +1 -0
- package/web/.next/next-server.js.nft.json +1 -0
- package/web/.next/package.json +1 -0
- package/web/.next/prerender-manifest.json +40 -0
- package/web/.next/required-server-files.js +367 -0
- package/web/.next/required-server-files.json +367 -0
- package/web/.next/routes-manifest.json +144 -0
- package/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/_global-error/page/build-manifest.json +23 -0
- package/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/web/.next/server/app/_global-error/page.js +12 -0
- package/web/.next/server/app/_global-error/page.js.map +5 -0
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/web/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/_global-error.html +1 -0
- package/web/.next/server/app/_global-error.meta +30 -0
- package/web/.next/server/app/_global-error.rsc +18 -0
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +23 -0
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +18 -0
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -0
- package/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/_not-found/page/build-manifest.json +23 -0
- package/web/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +15 -0
- package/web/.next/server/app/_not-found/page.js +17 -0
- package/web/.next/server/app/_not-found/page.js.map +5 -0
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/authorize/failed/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/authorize/failed/page/build-manifest.json +23 -0
- package/web/.next/server/app/authorize/failed/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/authorize/failed/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +15 -0
- package/web/.next/server/app/authorize/failed/page.js +18 -0
- package/web/.next/server/app/authorize/failed/page.js.map +5 -0
- package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -0
- package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/authorize/pick/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/authorize/pick/page/build-manifest.json +23 -0
- package/web/.next/server/app/authorize/pick/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/authorize/pick/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +15 -0
- package/web/.next/server/app/authorize/pick/page.js +19 -0
- package/web/.next/server/app/authorize/pick/page.js.map +5 -0
- package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -0
- package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/authorize/waiting/approval/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +23 -0
- package/web/.next/server/app/authorize/waiting/approval/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/authorize/waiting/approval/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +15 -0
- package/web/.next/server/app/authorize/waiting/approval/page.js +19 -0
- package/web/.next/server/app/authorize/waiting/approval/page.js.map +5 -0
- package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -0
- package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/outside-parties/[name]/change/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/outside-parties/[name]/change/page/build-manifest.json +23 -0
- package/web/.next/server/app/outside-parties/[name]/change/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/outside-parties/[name]/change/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/outside-parties/[name]/change/page/server-reference-manifest.json +35 -0
- package/web/.next/server/app/outside-parties/[name]/change/page.js +22 -0
- package/web/.next/server/app/outside-parties/[name]/change/page.js.map +5 -0
- package/web/.next/server/app/outside-parties/[name]/change/page.js.nft.json +1 -0
- package/web/.next/server/app/outside-parties/[name]/change/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/outside-parties/[name]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/outside-parties/[name]/page/build-manifest.json +23 -0
- package/web/.next/server/app/outside-parties/[name]/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/outside-parties/[name]/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/outside-parties/[name]/page/server-reference-manifest.json +15 -0
- package/web/.next/server/app/outside-parties/[name]/page.js +20 -0
- package/web/.next/server/app/outside-parties/[name]/page.js.map +5 -0
- package/web/.next/server/app/outside-parties/[name]/page.js.nft.json +1 -0
- package/web/.next/server/app/outside-parties/[name]/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page/build-manifest.json +23 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page/server-reference-manifest.json +35 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page.js +21 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page.js.map +5 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page.js.nft.json +1 -0
- package/web/.next/server/app/outside-parties/[name]/retire/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/outside-parties/add/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/outside-parties/add/page/build-manifest.json +23 -0
- package/web/.next/server/app/outside-parties/add/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/outside-parties/add/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/outside-parties/add/page/server-reference-manifest.json +35 -0
- package/web/.next/server/app/outside-parties/add/page.js +19 -0
- package/web/.next/server/app/outside-parties/add/page.js.map +5 -0
- package/web/.next/server/app/outside-parties/add/page.js.nft.json +1 -0
- package/web/.next/server/app/outside-parties/add/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/outside-parties/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/outside-parties/page/build-manifest.json +23 -0
- package/web/.next/server/app/outside-parties/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/outside-parties/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/outside-parties/page/server-reference-manifest.json +25 -0
- package/web/.next/server/app/outside-parties/page.js +20 -0
- package/web/.next/server/app/outside-parties/page.js.map +5 -0
- package/web/.next/server/app/outside-parties/page.js.nft.json +1 -0
- package/web/.next/server/app/outside-parties/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/overview/changes/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/overview/changes/route/build-manifest.json +12 -0
- package/web/.next/server/app/overview/changes/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/overview/changes/route.js +6 -0
- package/web/.next/server/app/overview/changes/route.js.map +5 -0
- package/web/.next/server/app/overview/changes/route.js.nft.json +1 -0
- package/web/.next/server/app/overview/changes/route_client-reference-manifest.js +3 -0
- package/web/.next/server/app/overview/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/overview/page/build-manifest.json +23 -0
- package/web/.next/server/app/overview/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/overview/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/overview/page/server-reference-manifest.json +45 -0
- package/web/.next/server/app/overview/page.js +24 -0
- package/web/.next/server/app/overview/page.js.map +5 -0
- package/web/.next/server/app/overview/page.js.nft.json +1 -0
- package/web/.next/server/app/overview/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/overview/requests/[requestId]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/overview/requests/[requestId]/page/build-manifest.json +23 -0
- package/web/.next/server/app/overview/requests/[requestId]/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/overview/requests/[requestId]/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/overview/requests/[requestId]/page/server-reference-manifest.json +25 -0
- package/web/.next/server/app/overview/requests/[requestId]/page.js +24 -0
- package/web/.next/server/app/overview/requests/[requestId]/page.js.map +5 -0
- package/web/.next/server/app/overview/requests/[requestId]/page.js.nft.json +1 -0
- package/web/.next/server/app/overview/requests/[requestId]/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/parties/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/parties/page/build-manifest.json +23 -0
- package/web/.next/server/app/parties/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/parties/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/parties/page/server-reference-manifest.json +55 -0
- package/web/.next/server/app/parties/page.js +22 -0
- package/web/.next/server/app/parties/page.js.map +5 -0
- package/web/.next/server/app/parties/page.js.nft.json +1 -0
- package/web/.next/server/app/parties/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/sign-in/failed/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/sign-in/failed/page/build-manifest.json +23 -0
- package/web/.next/server/app/sign-in/failed/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/sign-in/failed/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/sign-in/failed/page/server-reference-manifest.json +15 -0
- package/web/.next/server/app/sign-in/failed/page.js +18 -0
- package/web/.next/server/app/sign-in/failed/page.js.map +5 -0
- package/web/.next/server/app/sign-in/failed/page.js.nft.json +1 -0
- package/web/.next/server/app/sign-in/failed/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app-paths-manifest.json +17 -0
- package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +3 -0
- package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js +369 -0
- package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js.map +1 -0
- package/web/.next/server/chunks/[turbopack]_runtime.js +937 -0
- package/web/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js +14 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[turbopack]_runtime.js +937 -0
- package/web/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +4 -0
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +57 -0
- package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js +4 -0
- package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js +4 -0
- package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +4 -0
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js +4 -0
- package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js +4 -0
- package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js +3 -0
- package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +4 -0
- package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +4 -0
- package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
- package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js +33 -0
- package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +17 -0
- package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js +291 -0
- package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js +313 -0
- package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js +3 -0
- package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js +3 -0
- package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js +3 -0
- package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js +3 -0
- package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js +3 -0
- package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js +3 -0
- package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js +10 -0
- package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js +3 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js.map +1 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js +3 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js.map +1 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js +3 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js.map +1 -0
- package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js +3 -0
- package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js.map +1 -0
- package/web/.next/server/functions-config-manifest.json +4 -0
- package/web/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/web/.next/server/middleware-build-manifest.js +194 -0
- package/web/.next/server/middleware-manifest.json +6 -0
- package/web/.next/server/next-font-manifest.js +1 -0
- package/web/.next/server/next-font-manifest.json +59 -0
- package/web/.next/server/pages/500.html +1 -0
- package/web/.next/server/pages-manifest.json +3 -0
- package/web/.next/server/prefetch-hints.json +11 -0
- package/web/.next/server/preview-props.json +5 -0
- package/web/.next/server/server-reference-manifest.js +1 -0
- package/web/.next/server/server-reference-manifest.json +202 -0
- package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_buildManifest.js +11 -0
- package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_clientMiddlewareManifest.js +1 -0
- package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_ssgManifest.js +1 -0
- package/web/.next/static/chunks/0a1vw3r93lh06.js +1 -0
- package/web/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
- package/web/.next/static/chunks/0lzisjsmhlhjf.js +1 -0
- package/web/.next/static/chunks/0umf92h1sb77c.js +1 -0
- package/web/.next/static/chunks/131oz96e71xwn.js +1 -0
- package/web/.next/static/chunks/1cduebcshlfd5.js +1 -0
- package/web/.next/static/chunks/1ma7v1viiz247.js +1 -0
- package/web/.next/static/chunks/1w-xaw2grqv_2.js +1 -0
- package/web/.next/static/chunks/22u81hd6kxqsx.js +1 -0
- package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
- package/web/.next/static/chunks/2hz8yws_wswjz.js +31 -0
- package/web/.next/static/chunks/2qpupho1jn-iy.js +1 -0
- package/web/.next/static/chunks/2ta7dqldhv69y.js +1 -0
- package/web/.next/static/chunks/30n1j9zag1f0q.css +3 -0
- package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
- package/web/.next/static/chunks/3sv0_hjr9t4cp.js +1 -0
- package/web/.next/static/chunks/3yltnnufhaitm.js +1 -0
- package/web/.next/static/chunks/41rcj9-d-7p_4.js +22 -0
- package/web/.next/static/chunks/turbopack-3-ry682tkyiqk.js +1 -0
- package/web/.next/static/media/geist_mono_variable-s.p.3ms9vq719j3f8.woff2 +0 -0
- package/web/.next/static/media/geist_variable-s.p.0mrjj4bg00-he.woff2 +0 -0
- package/web/.next/trace +1 -0
- package/web/.next/trace-build +1 -0
- package/web/.next/turbopack +0 -0
- package/web/.next/types/cache-life.d.ts +114 -0
- package/web/.next/types/root-params.d.ts +3 -0
- package/web/.next/types/routes.d.ts +85 -0
- package/web/.next/types/validator.ts +288 -0
- package/web/next.config.ts +9 -0
- package/dist/adapters/crypto/page-sessions.d.ts +0 -15
- package/dist/adapters/crypto/page-sessions.js +0 -40
- package/dist/adapters/crypto/page-sessions.js.map +0 -1
- package/dist/adapters/http/add-server-page.d.ts +0 -7
- package/dist/adapters/http/add-server-page.js +0 -175
- package/dist/adapters/http/add-server-page.js.map +0 -1
- package/dist/adapters/http/delivery-page.d.ts +0 -24
- package/dist/adapters/http/delivery-page.js +0 -115
- package/dist/adapters/http/delivery-page.js.map +0 -1
- package/dist/adapters/http/html.d.ts +0 -15
- package/dist/adapters/http/html.js +0 -53
- package/dist/adapters/http/html.js.map +0 -1
- package/dist/adapters/http/outside-parties-page.d.ts +0 -33
- package/dist/adapters/http/outside-parties-page.js +0 -153
- package/dist/adapters/http/outside-parties-page.js.map +0 -1
- package/dist/adapters/http/outside-party-page.d.ts +0 -7
- package/dist/adapters/http/outside-party-page.js +0 -212
- package/dist/adapters/http/outside-party-page.js.map +0 -1
- package/dist/adapters/http/overview-page.d.ts +0 -17
- package/dist/adapters/http/overview-page.js +0 -298
- package/dist/adapters/http/overview-page.js.map +0 -1
- package/dist/adapters/http/parties-page.d.ts +0 -7
- package/dist/adapters/http/parties-page.js +0 -139
- package/dist/adapters/http/parties-page.js.map +0 -1
- package/dist/adapters/http/scope-rows.d.ts +0 -10
- package/dist/adapters/http/scope-rows.js +0 -30
- package/dist/adapters/http/scope-rows.js.map +0 -1
- package/dist/adapters/http/signal.d.ts +0 -61
- package/dist/adapters/http/signal.js +0 -263
- package/dist/adapters/http/signal.js.map +0 -1
- package/dist/core/sign-in/sign-out.d.ts +0 -10
- package/dist/core/sign-in/sign-out.js +0 -9
- package/dist/core/sign-in/sign-out.js.map +0 -1
- package/dist/core/sign-in/start-page-sign-in.d.ts +0 -25
- package/dist/core/sign-in/start-page-sign-in.js +0 -30
- package/dist/core/sign-in/start-page-sign-in.js.map +0 -1
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* messaging (decisions 0054, 0057): the fleet's calls it makes as their
|
|
4
4
|
* account, and the one crew every client of the person shares.
|
|
5
5
|
*/
|
|
6
|
-
import type { DeliveryId, FleetId, MessageId, ShipId } from '@aeolus-fleet/common';
|
|
6
|
+
import type { DeliveryId, FleetId, MessageId, ShipId, ShipKind } from '@aeolus-fleet/common';
|
|
7
7
|
import type { FleetRefusal } from '../connection/ports.js';
|
|
8
|
+
import type { DiscoveredStatement } from '../mcp-in/ports.js';
|
|
8
9
|
import type { Result } from '../shared/result.js';
|
|
9
10
|
/** A call the gateway makes for an account: the account's token beside the gateway's own crew token, so the account acts through the gateway's ship. */
|
|
10
11
|
export interface AccountCall {
|
|
@@ -47,6 +48,27 @@ export interface PersonDelivery {
|
|
|
47
48
|
readonly sentAt: Date;
|
|
48
49
|
readonly inReplyTo: MessageId | null;
|
|
49
50
|
}
|
|
51
|
+
/** What a person ship may send to now, as the fleet's discover answers it: each ship by name, with what it offers, and each type. */
|
|
52
|
+
export interface PersonDiscovery {
|
|
53
|
+
readonly ships: readonly {
|
|
54
|
+
readonly name: string;
|
|
55
|
+
readonly type: string;
|
|
56
|
+
readonly kind: ShipKind;
|
|
57
|
+
readonly statement: DiscoveredStatement;
|
|
58
|
+
}[];
|
|
59
|
+
readonly types: readonly {
|
|
60
|
+
readonly type: string;
|
|
61
|
+
readonly reachable: number;
|
|
62
|
+
}[];
|
|
63
|
+
}
|
|
64
|
+
/** Who a person's message is for: one ship by its name, or any ship of a type. */
|
|
65
|
+
export type PersonSelector = {
|
|
66
|
+
readonly kind: 'ship';
|
|
67
|
+
readonly name: string;
|
|
68
|
+
} | {
|
|
69
|
+
readonly kind: 'type';
|
|
70
|
+
readonly type: string;
|
|
71
|
+
};
|
|
50
72
|
/** Outbound port: the fleet's calls the gateway makes as the crew of a person ship. */
|
|
51
73
|
export interface PersonShipDoor {
|
|
52
74
|
/** How many deliveries wait for the ship, without waiting. */
|
|
@@ -59,6 +81,8 @@ export interface PersonShipDoor {
|
|
|
59
81
|
}): Promise<Result<PersonDelivery[], FleetRefusal>>;
|
|
60
82
|
/** Acknowledges a delivery the person opened: their own act confirms it (interop 5.1). */
|
|
61
83
|
ack(crewToken: string, deliveryId: DeliveryId): Promise<Result<undefined, FleetRefusal>>;
|
|
84
|
+
/** Reads a delivery the ship acknowledged again, whole, while it is not handled, recording nothing (decision 0040). */
|
|
85
|
+
delivery(crewToken: string, deliveryId: DeliveryId): Promise<Result<PersonDelivery, FleetRefusal>>;
|
|
62
86
|
/** Sends the person's answer to the sender, in reply to its message, once under its key. */
|
|
63
87
|
reply(crewToken: string, reply: {
|
|
64
88
|
to: ShipId;
|
|
@@ -69,12 +93,24 @@ export interface PersonShipDoor {
|
|
|
69
93
|
}): Promise<Result<undefined, FleetRefusal>>;
|
|
70
94
|
/** Reports the person dealt with the delivery. */
|
|
71
95
|
handled(crewToken: string, deliveryId: DeliveryId): Promise<Result<undefined, FleetRefusal>>;
|
|
96
|
+
/** The ships and types the ship may send to now: the fleet checks its scopes and the network rules. */
|
|
97
|
+
discover(crewToken: string): Promise<Result<PersonDiscovery, FleetRefusal>>;
|
|
98
|
+
/** Sends the person's own message, once under its key. */
|
|
99
|
+
send(crewToken: string, message: {
|
|
100
|
+
to: PersonSelector;
|
|
101
|
+
contentType: string;
|
|
102
|
+
payload: string;
|
|
103
|
+
idempotencyKey: string;
|
|
104
|
+
}): Promise<Result<{
|
|
105
|
+
messageId: MessageId;
|
|
106
|
+
}, FleetRefusal>>;
|
|
72
107
|
}
|
|
73
108
|
/**
|
|
74
109
|
* A delivery a person opened, as the gateway keeps it until they deal with
|
|
75
110
|
* it (Q28 (a)): what their answer needs once the delivery is acknowledged,
|
|
76
|
-
* its message and sender, and
|
|
77
|
-
* ship's, so every client of
|
|
111
|
+
* its message and sender, and what their inbox lists, its title and when it
|
|
112
|
+
* was sent, never its payload. It is the person ship's, so every client of
|
|
113
|
+
* the person finds it.
|
|
78
114
|
*/
|
|
79
115
|
export interface OpenedDelivery {
|
|
80
116
|
readonly fleetId: FleetId;
|
|
@@ -84,6 +120,7 @@ export interface OpenedDelivery {
|
|
|
84
120
|
readonly senderShipId: ShipId;
|
|
85
121
|
readonly from: string;
|
|
86
122
|
readonly title: string;
|
|
123
|
+
readonly sentAt: Date;
|
|
87
124
|
readonly openedAt: Date;
|
|
88
125
|
}
|
|
89
126
|
/** Outbound port: the deliveries people opened, by fleet, person ship and delivery. */
|
|
@@ -94,6 +131,8 @@ export interface OpenedDeliveries {
|
|
|
94
131
|
shipId: ShipId;
|
|
95
132
|
deliveryId: string;
|
|
96
133
|
}): Promise<OpenedDelivery | undefined>;
|
|
134
|
+
/** The person ship's, oldest opened first. */
|
|
135
|
+
list(fleetId: FleetId, shipId: ShipId): Promise<OpenedDelivery[]>;
|
|
97
136
|
/** Forgets it once the person dealt with it. */
|
|
98
137
|
remove(fleetId: FleetId, opened: {
|
|
99
138
|
shipId: ShipId;
|
|
@@ -2,13 +2,16 @@ import { type Result } from '../shared/result.js';
|
|
|
2
2
|
import type { CrewPersonShip } from './crew-person-ship.js';
|
|
3
3
|
import { type InboxEntry } from './inbox-entry.js';
|
|
4
4
|
import { type PersonCaller, type PersonCrewError, type PersonCrewToken } from './person-crew.js';
|
|
5
|
-
import type { PersonCrews, PersonDelivery, PersonShipDoor } from './ports.js';
|
|
5
|
+
import type { OpenedDeliveries, PersonCrews, PersonDelivery, PersonShipDoor } from './ports.js';
|
|
6
6
|
/** The most deliveries an inbox lists at once: as many as one receive takes. */
|
|
7
7
|
export declare const INBOX_LIST_MAX = 10;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
/** A person's inbox: how many deliveries wait and the first of them, and the ones they opened and have not answered or done yet. */
|
|
9
|
+
export interface Inbox {
|
|
10
|
+
readonly waiting: number;
|
|
11
|
+
readonly deliveries: InboxEntry[];
|
|
12
|
+
readonly opened: InboxEntry[];
|
|
13
|
+
}
|
|
14
|
+
export type ReadInbox = (caller: PersonCaller) => Promise<Result<Inbox, PersonCrewError>>;
|
|
12
15
|
/**
|
|
13
16
|
* What waits for the caller's person ship: how many, and up to the most an
|
|
14
17
|
* inbox lists, taken as received, the crew's own held ones again first. It
|
|
@@ -25,13 +28,16 @@ export declare function waitingFor(deps: {
|
|
|
25
28
|
deliveries: PersonDelivery[];
|
|
26
29
|
}, PersonCrewError>>;
|
|
27
30
|
/**
|
|
28
|
-
* Use case: a person reads their own person ship's inbox (Q20)
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
31
|
+
* Use case: a person reads their own person ship's inbox (Q20), by titles
|
|
32
|
+
* only, in two groups (aeolus-fleet #1046): what waits, which the gateway
|
|
33
|
+
* takes as the ship's crew, and what any client of the person opened and
|
|
34
|
+
* they have not answered or done yet. A delivery the fleet still holds as
|
|
35
|
+
* waiting, as when it did not take its acknowledgement, is listed waiting
|
|
36
|
+
* only.
|
|
32
37
|
*/
|
|
33
38
|
export declare function createReadInbox(deps: {
|
|
34
39
|
crewPersonShip: CrewPersonShip;
|
|
35
40
|
crews: PersonCrews;
|
|
36
41
|
door: PersonShipDoor;
|
|
42
|
+
opened: OpenedDeliveries;
|
|
37
43
|
}): ReadInbox;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ok } from '../shared/result.js';
|
|
2
|
-
import { inboxEntryOf } from './inbox-entry.js';
|
|
2
|
+
import { inboxEntryOf, openedEntryOf } from './inbox-entry.js';
|
|
3
3
|
import { asPersonCrew } from './person-crew.js';
|
|
4
4
|
/** The most deliveries an inbox lists at once: as many as one receive takes. */
|
|
5
5
|
export const INBOX_LIST_MAX = 10;
|
|
@@ -22,15 +22,26 @@ export async function waitingFor(deps, caller) {
|
|
|
22
22
|
return taken.isOk ? ok({ crew: taken.value.crew, waiting: value.waiting, deliveries: taken.value.value }) : taken;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Use case: a person reads their own person ship's inbox (Q20)
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
25
|
+
* Use case: a person reads their own person ship's inbox (Q20), by titles
|
|
26
|
+
* only, in two groups (aeolus-fleet #1046): what waits, which the gateway
|
|
27
|
+
* takes as the ship's crew, and what any client of the person opened and
|
|
28
|
+
* they have not answered or done yet. A delivery the fleet still holds as
|
|
29
|
+
* waiting, as when it did not take its acknowledgement, is listed waiting
|
|
30
|
+
* only.
|
|
29
31
|
*/
|
|
30
32
|
export function createReadInbox(deps) {
|
|
31
33
|
return async (caller) => {
|
|
32
34
|
const waiting = await waitingFor(deps, caller);
|
|
33
|
-
|
|
35
|
+
if (!waiting.isOk) {
|
|
36
|
+
return waiting;
|
|
37
|
+
}
|
|
38
|
+
const isWaiting = new Set(waiting.value.deliveries.map(({ deliveryId }) => deliveryId));
|
|
39
|
+
const opened = await deps.opened.list(caller.fleetId, waiting.value.crew.shipId);
|
|
40
|
+
return ok({
|
|
41
|
+
waiting: waiting.value.waiting,
|
|
42
|
+
deliveries: waiting.value.deliveries.map(inboxEntryOf),
|
|
43
|
+
opened: opened.filter(({ deliveryId }) => !isWaiting.has(deliveryId)).map(openedEntryOf),
|
|
44
|
+
});
|
|
34
45
|
};
|
|
35
46
|
}
|
|
36
47
|
//# sourceMappingURL=read-inbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-inbox.js","sourceRoot":"","sources":["../../../src/core/people/read-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"read-inbox.js","sourceRoot":"","sources":["../../../src/core/people/read-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAiE,MAAM,kBAAkB,CAAC;AAG/G,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAWjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAkF,EAClF,MAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IACtC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;IAClI,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAA4G;IAC1I,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;YAC9B,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;YACtD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;SACzF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { MessageId } from '@aeolus-fleet/common';
|
|
2
|
+
import { type DomainError } from '../shared/errors.js';
|
|
3
|
+
import { type Result } from '../shared/result.js';
|
|
4
|
+
import type { CrewPersonShip } from './crew-person-ship.js';
|
|
5
|
+
import { type PersonCaller, type PersonCrewError } from './person-crew.js';
|
|
6
|
+
import type { PersonCrews, PersonSelector, PersonShipDoor } from './ports.js';
|
|
7
|
+
/** Outbound port: a new key for a message the person gave none. */
|
|
8
|
+
export interface SendKeys {
|
|
9
|
+
newIdempotencyKey(): string;
|
|
10
|
+
}
|
|
11
|
+
export type SendMessage = (input: {
|
|
12
|
+
caller: PersonCaller;
|
|
13
|
+
to: PersonSelector;
|
|
14
|
+
contentType: string;
|
|
15
|
+
payload: string;
|
|
16
|
+
idempotencyKey?: string;
|
|
17
|
+
}) => Promise<Result<{
|
|
18
|
+
messageId: MessageId;
|
|
19
|
+
}, PersonCrewError | DomainError<'SEND_REFUSED'>>>;
|
|
20
|
+
/**
|
|
21
|
+
* Use case: a person starts a message as their person ship (aeolus-fleet
|
|
22
|
+
* #1046), to a ship by its name or any ship of a type. The fleet checks the
|
|
23
|
+
* ship's scopes and the network rules at send time, so the gateway adds no
|
|
24
|
+
* rule of its own and passes the fleet's reason on when it refuses. The
|
|
25
|
+
* person's own key, when given, makes a send tried again go once.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createSendMessage(deps: {
|
|
28
|
+
crewPersonShip: CrewPersonShip;
|
|
29
|
+
crews: PersonCrews;
|
|
30
|
+
door: PersonShipDoor;
|
|
31
|
+
keys: SendKeys;
|
|
32
|
+
}): SendMessage;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { refuse } from '../shared/errors.js';
|
|
2
|
+
import { ok } from '../shared/result.js';
|
|
3
|
+
import { asPersonCrew, withOwnRefusal } from './person-crew.js';
|
|
4
|
+
/**
|
|
5
|
+
* Use case: a person starts a message as their person ship (aeolus-fleet
|
|
6
|
+
* #1046), to a ship by its name or any ship of a type. The fleet checks the
|
|
7
|
+
* ship's scopes and the network rules at send time, so the gateway adds no
|
|
8
|
+
* rule of its own and passes the fleet's reason on when it refuses. The
|
|
9
|
+
* person's own key, when given, makes a send tried again go once.
|
|
10
|
+
*/
|
|
11
|
+
export function createSendMessage(deps) {
|
|
12
|
+
return async ({ caller, to, contentType, payload, idempotencyKey }) => {
|
|
13
|
+
const message = { to, contentType, payload, idempotencyKey: idempotencyKey ?? deps.keys.newIdempotencyKey() };
|
|
14
|
+
const sent = await asPersonCrew(deps, { caller, run: (crew) => withOwnRefusal(deps.door.send(crew.crewToken, message)) });
|
|
15
|
+
if (!sent.isOk) {
|
|
16
|
+
return sent;
|
|
17
|
+
}
|
|
18
|
+
const taken = sent.value.value;
|
|
19
|
+
return taken.isOk ? ok(taken.value) : refuse('SEND_REFUSED', `The fleet did not take your message: ${taken.error.message}`);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=send-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../../src/core/people/send-message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAA2C,MAAM,kBAAkB,CAAC;AAgBzG;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAkG;IAClI,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;QACpE,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC9G,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1H,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,wCAAwC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9H,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FleetId } from '@aeolus-fleet/common';
|
|
2
2
|
import type { PartyStore } from '../parties/ports.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { GrantCaller } from '../people/person-crew.js';
|
|
4
4
|
import { type DomainError } from '../shared/errors.js';
|
|
5
5
|
import { type Result } from '../shared/result.js';
|
|
6
6
|
import type { AccountGrants } from '../sign-in/ports.js';
|
|
@@ -14,7 +14,7 @@ export interface AskedServer {
|
|
|
14
14
|
readonly expiresAt: Date;
|
|
15
15
|
}
|
|
16
16
|
export type AskForServer = (asked: {
|
|
17
|
-
caller:
|
|
17
|
+
caller: GrantCaller;
|
|
18
18
|
url: string;
|
|
19
19
|
}) => Promise<Result<AskedServer, DomainError<'INVALID_SERVER_URL' | 'OUTSIDE_PARTIES_OFF' | 'SIGNED_OUT' | 'PARTY_EXISTS'>>>;
|
|
20
20
|
/**
|
|
@@ -3,9 +3,10 @@ import type { PartyStore } from '../parties/ports.js';
|
|
|
3
3
|
import type { Clock } from '../shared/clock.js';
|
|
4
4
|
import { type Result } from '../shared/result.js';
|
|
5
5
|
import type { PendingRequests, WaitingSeals } from './ports.js';
|
|
6
|
-
/** Whether the browser that asked still waits, the fleet its request is in, and when the request expires. */
|
|
6
|
+
/** Whether the browser that asked still waits, the fleet its request is in, the client asked for, and when the request expires. */
|
|
7
7
|
export interface WatchedWaiting {
|
|
8
8
|
readonly fleetId: FleetId;
|
|
9
|
+
readonly clientName: string;
|
|
9
10
|
readonly isWaiting: boolean;
|
|
10
11
|
readonly expiresAt: Date;
|
|
11
12
|
}
|
|
@@ -19,11 +19,11 @@ export function createWatchWaiting(deps) {
|
|
|
19
19
|
if (request === undefined) {
|
|
20
20
|
return err({ kind: 'unknownWaiting' });
|
|
21
21
|
}
|
|
22
|
-
const
|
|
22
|
+
const clientId = waiting.request.client_id ?? '';
|
|
23
|
+
const watched = { fleetId: request.fleetId, clientName: request.subject.kind === 'client' ? request.subject.clientName : clientId, expiresAt: request.expiresAt };
|
|
23
24
|
if (isRefused(request, deps.clock.now())) {
|
|
24
25
|
return ok({ ...watched, isWaiting: false });
|
|
25
26
|
}
|
|
26
|
-
const clientId = waiting.request.client_id ?? '';
|
|
27
27
|
const party = request.state === 'approved' ? await deps.parties.findByClient(request.fleetId, clientId) : undefined;
|
|
28
28
|
return ok({ ...watched, isWaiting: party?.state !== 'crewed' });
|
|
29
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-waiting.js","sourceRoot":"","sources":["../../../src/core/requests/watch-waiting.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-waiting.js","sourceRoot":"","sources":["../../../src/core/requests/watch-waiting.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAc/C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA8F;IAC/H,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,aAAa,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;YAC5C,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAClK,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { AuthorizationRefusal, ReadAuthorization } from '../oauth/read-auth
|
|
|
4
4
|
import type { AskForClient, ClientAnswer } from '../requests/ask-for-client.js';
|
|
5
5
|
import type { Clock } from '../shared/clock.js';
|
|
6
6
|
import { type Result } from '../shared/result.js';
|
|
7
|
-
import type { AccountGrants, Pagasae,
|
|
7
|
+
import type { AccountGrants, Pagasae, SignInSeals } from './ports.js';
|
|
8
8
|
/**
|
|
9
9
|
* Why a sign-in gave the client no code, beside the request's own refusals:
|
|
10
10
|
* - unknownSignIn: the gateway sealed no sign-in into this state, or its 10 minutes passed;
|
|
@@ -25,12 +25,8 @@ export type SignInRefusal = AuthorizationRefusal | {
|
|
|
25
25
|
} | {
|
|
26
26
|
readonly kind: 'outsidePartiesOff';
|
|
27
27
|
};
|
|
28
|
-
/** What a sign-in answers: the client's answer
|
|
29
|
-
export type SignInAnswer = ClientAnswer
|
|
30
|
-
readonly kind: 'signedIn';
|
|
31
|
-
readonly session: string;
|
|
32
|
-
readonly redirectTo: string;
|
|
33
|
-
};
|
|
28
|
+
/** What a sign-in answers: the client's answer. */
|
|
29
|
+
export type SignInAnswer = ClientAnswer;
|
|
34
30
|
interface Back {
|
|
35
31
|
state?: string | undefined;
|
|
36
32
|
code?: string | undefined;
|
|
@@ -45,9 +41,7 @@ export type CompleteSignIn = (back: Back) => Promise<Result<SignInAnswer, SignIn
|
|
|
45
41
|
* picked: the account's grant is kept, and the client is sent back with the
|
|
46
42
|
* gateway's own code for it, acting in the fleet as the account with no
|
|
47
43
|
* approval (orchestrator-1, slice 7 Q1); or the account asks for access for
|
|
48
|
-
* the client, as an outside party (decision 0056).
|
|
49
|
-
* gateway's pages keeps the account's grant too, and answers a page session
|
|
50
|
-
* naming it, so the pages act as the account.
|
|
44
|
+
* the client, as an outside party (decision 0056).
|
|
51
45
|
*/
|
|
52
46
|
export declare function createCompleteSignIn(deps: {
|
|
53
47
|
readAuthorization: ReadAuthorization;
|
|
@@ -61,6 +55,5 @@ export declare function createCompleteSignIn(deps: {
|
|
|
61
55
|
/** Whether the gateway serves the fleet: connected to it, and switched on where an installation switches fleets (decision 0021). */
|
|
62
56
|
servesFleet: (fleetId: FleetId) => Promise<boolean>;
|
|
63
57
|
askForClient: AskForClient;
|
|
64
|
-
sessions: PageSessions;
|
|
65
58
|
}): CompleteSignIn;
|
|
66
59
|
export {};
|
|
@@ -7,28 +7,9 @@ import { err, ok } from '../shared/result.js';
|
|
|
7
7
|
* picked: the account's grant is kept, and the client is sent back with the
|
|
8
8
|
* gateway's own code for it, acting in the fleet as the account with no
|
|
9
9
|
* approval (orchestrator-1, slice 7 Q1); or the account asks for access for
|
|
10
|
-
* the client, as an outside party (decision 0056).
|
|
11
|
-
* gateway's pages keeps the account's grant too, and answers a page session
|
|
12
|
-
* naming it, so the pages act as the account.
|
|
10
|
+
* the client, as an outside party (decision 0056).
|
|
13
11
|
*/
|
|
14
12
|
export function createCompleteSignIn(deps) {
|
|
15
|
-
/** A sign-in to the pages: the grant kept, and the session naming it; no client to send back, so pagasae's error is said. */
|
|
16
|
-
const signInToPages = async (signIn, { code, error }) => {
|
|
17
|
-
if (error !== undefined || code === undefined) {
|
|
18
|
-
return err({ kind: 'pagasaeRefused', message: error ?? 'pagasae sent no code' });
|
|
19
|
-
}
|
|
20
|
-
const redeemed = await deps.pagasae.redeemCode({ code, verifier: signIn.verifier });
|
|
21
|
-
if (!redeemed.isOk) {
|
|
22
|
-
return err({ kind: 'pagasaeRefused', message: redeemed.error.reason });
|
|
23
|
-
}
|
|
24
|
-
const { fleetId, accountId, personShipId, scopes, refreshToken, accountToken, accountTokenExpiresAt } = redeemed.value;
|
|
25
|
-
if (!(await deps.servesFleet(fleetId))) {
|
|
26
|
-
return err({ kind: 'fleetNotServed' });
|
|
27
|
-
}
|
|
28
|
-
const grantId = deps.secrets.newSecret();
|
|
29
|
-
await deps.grants.save({ grantId, fleetId, accountId, personShipId, scopes, refreshToken, accountToken, accountTokenExpiresAt });
|
|
30
|
-
return ok({ kind: 'signedIn', session: deps.sessions.seal({ fleetId, grantId }), redirectTo: signIn.returnTo });
|
|
31
|
-
};
|
|
32
13
|
return async (back) => {
|
|
33
14
|
const { state, code, error, browserSecret } = back;
|
|
34
15
|
const signIn = state === undefined ? undefined : deps.seals.open(state);
|
|
@@ -38,9 +19,6 @@ export function createCompleteSignIn(deps) {
|
|
|
38
19
|
if (browserSecret !== signIn.browserSecret) {
|
|
39
20
|
return err({ kind: 'otherBrowser' });
|
|
40
21
|
}
|
|
41
|
-
if (signIn.holder === 'page') {
|
|
42
|
-
return signInToPages(signIn, back);
|
|
43
|
-
}
|
|
44
22
|
const read = await deps.readAuthorization(signIn.request);
|
|
45
23
|
if (!read.isOk) {
|
|
46
24
|
return read;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete-sign-in.js","sourceRoot":"","sources":["../../../src/core/sign-in/complete-sign-in.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKjE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAyB3D
|
|
1
|
+
{"version":3,"file":"complete-sign-in.js","sourceRoot":"","sources":["../../../src/core/sign-in/complete-sign-in.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKjE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAyB3D;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAYpC;IACC,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACrF,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,aAAa,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACjK,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,aAAa,CAAC,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3F,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,UAAU,kCAAkC,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;QAC/G,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YACxK,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACjI,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACvI,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The page of the gateway's own a sign-in's way back names, for both page
|
|
3
|
+
* sign-ins, so the check exists once. A browser resolves the way back:
|
|
4
|
+
* it drops tabs and newlines, reads a backslash as a slash and removes dot
|
|
5
|
+
* segments, so `/a/..//evil.example` ends as `//evil.example`, another
|
|
6
|
+
* site. The way back is kept only when, so resolved, it is a path of the
|
|
7
|
+
* gateway's own, and resolving it again keeps it there.
|
|
8
|
+
*/
|
|
9
|
+
/** The page of the gateway's own with its path, query and hash; undefined for anything else. */
|
|
10
|
+
export declare function ownPageOf(returnTo: string): string | undefined;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The page of the gateway's own a sign-in's way back names, for both page
|
|
3
|
+
* sign-ins, so the check exists once. A browser resolves the way back:
|
|
4
|
+
* it drops tabs and newlines, reads a backslash as a slash and removes dot
|
|
5
|
+
* segments, so `/a/..//evil.example` ends as `//evil.example`, another
|
|
6
|
+
* site. The way back is kept only when, so resolved, it is a path of the
|
|
7
|
+
* gateway's own, and resolving it again keeps it there.
|
|
8
|
+
*/
|
|
9
|
+
/** An origin no address is at: a way back resolved against it that keeps it is the gateway's own, wherever the gateway is. */
|
|
10
|
+
const OWN_ORIGIN = 'https://gateway.invalid';
|
|
11
|
+
/** The way back resolved as a browser resolves it, if it stays at the gateway's own origin. */
|
|
12
|
+
function resolvedOf(returnTo) {
|
|
13
|
+
if (!URL.canParse(returnTo, OWN_ORIGIN)) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const page = new URL(returnTo, OWN_ORIGIN);
|
|
17
|
+
return page.origin === OWN_ORIGIN ? `${page.pathname}${page.search}${page.hash}` : undefined;
|
|
18
|
+
}
|
|
19
|
+
/** Whether a path begins as a browser reads another site: two slashes, or a slash and a backslash. */
|
|
20
|
+
function isAnotherSite(path) {
|
|
21
|
+
return path.startsWith('//') || path.startsWith('/\\');
|
|
22
|
+
}
|
|
23
|
+
/** The page of the gateway's own with its path, query and hash; undefined for anything else. */
|
|
24
|
+
export function ownPageOf(returnTo) {
|
|
25
|
+
if (!returnTo.startsWith('/')) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const resolved = resolvedOf(returnTo);
|
|
29
|
+
if (resolved === undefined || isAnotherSite(resolved)) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
// Belt and braces: the value kept, resolved once more, is still the gateway's own and unchanged.
|
|
33
|
+
return resolvedOf(resolved) === resolved ? resolved : undefined;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=own-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"own-page.js","sourceRoot":"","sources":["../../../src/core/sign-in/own-page.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8HAA8H;AAC9H,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAE7C,+FAA+F;AAC/F,SAAS,UAAU,CAAC,QAAgB;IAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/F,CAAC;AAED,sGAAsG;AACtG,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,iGAAiG;IACjG,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC"}
|
|
@@ -2,16 +2,12 @@
|
|
|
2
2
|
* A person signs in to the gateway through pagasae, the one identity
|
|
3
3
|
* provider (decision 0054): the gateway is its OpenID Connect client, and
|
|
4
4
|
* the person acts in the fleet as their account, by its account token, from
|
|
5
|
-
* their MCP client
|
|
5
|
+
* their MCP client.
|
|
6
6
|
*/
|
|
7
7
|
import type { FleetId, ShipId } from '@aeolus-fleet/common';
|
|
8
8
|
import type { Result } from '../shared/result.js';
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
* for an MCP client, its authorization request; for the gateway's pages, the
|
|
12
|
-
* page to go back to.
|
|
13
|
-
*/
|
|
14
|
-
export type PendingSignIn = ClientSignIn | PageSignIn;
|
|
9
|
+
/** A person's sign-in at pagasae under way for an MCP client, with the gateway's PKCE verifier and the client's authorization request. */
|
|
10
|
+
export type PendingSignIn = ClientSignIn;
|
|
15
11
|
interface SignInUnderWay {
|
|
16
12
|
readonly verifier: string;
|
|
17
13
|
/** The secret the browser that started the sign-in holds, so no other browser finishes it (login CSRF). */
|
|
@@ -23,11 +19,6 @@ export interface ClientSignIn extends SignInUnderWay {
|
|
|
23
19
|
/** What the person picked the client to act as: their account, or a party they ask access for (Q1 a). */
|
|
24
20
|
readonly holder: SignInHolder;
|
|
25
21
|
}
|
|
26
|
-
export interface PageSignIn extends SignInUnderWay {
|
|
27
|
-
readonly holder: 'page';
|
|
28
|
-
/** The gateway's own path the browser goes back to once signed in. */
|
|
29
|
-
readonly returnTo: string;
|
|
30
|
-
}
|
|
31
22
|
/** What a client acts as once its person signed in: the account itself, or an outside party (decision 0056). */
|
|
32
23
|
export type SignInHolder = 'account' | 'party';
|
|
33
24
|
/**
|
|
@@ -100,16 +91,4 @@ export interface AccountGrants {
|
|
|
100
91
|
}, tokens: Partial<Pick<AccountGrant, 'refreshToken' | 'accountToken' | 'accountTokenExpiresAt' | 'personShipId' | 'scopes'>>): Promise<void>;
|
|
101
92
|
end(fleetId: FleetId, grantId: string): Promise<void>;
|
|
102
93
|
}
|
|
103
|
-
/** A browser signed in to the gateway's pages: the account's grant it acts by. */
|
|
104
|
-
export interface PageSession {
|
|
105
|
-
readonly fleetId: FleetId;
|
|
106
|
-
readonly grantId: string;
|
|
107
|
-
}
|
|
108
|
-
/** Outbound port: the page session a browser holds in the gateway's own cookie, sealed so no one forges or reads it. */
|
|
109
|
-
export interface PageSessions {
|
|
110
|
-
/** The cookie's value for the session. */
|
|
111
|
-
seal(session: PageSession): string;
|
|
112
|
-
/** The session a Cookie header carries; none when it carries none the gateway sealed. */
|
|
113
|
-
inCookie(cookie: string): PageSession | undefined;
|
|
114
|
-
}
|
|
115
94
|
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The gateway's own ship taking what waits for it, one round at a time: each
|
|
3
|
+
* receive waits while the fleet waits for a delivery, so argo's ping is
|
|
4
|
+
* answered as it comes (blueprint, "Ping"); stopping ends the wait.
|
|
5
|
+
*/
|
|
6
|
+
import type { FastifyBaseLogger } from 'fastify';
|
|
7
|
+
import type { AnswerPings } from './core/connection/answer-pings.js';
|
|
8
|
+
import type { Sleep } from './core/mcp-out/run-party.js';
|
|
9
|
+
export interface PingWorker {
|
|
10
|
+
/** Runs a round every interval until it stops. */
|
|
11
|
+
start(): void;
|
|
12
|
+
/** Stops, once the round under way ended. */
|
|
13
|
+
stop(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createPingWorker(deps: {
|
|
16
|
+
answerPings: AnswerPings;
|
|
17
|
+
sleep: Sleep;
|
|
18
|
+
intervalMs: number;
|
|
19
|
+
log: FastifyBaseLogger;
|
|
20
|
+
}): PingWorker;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export function createPingWorker(deps) {
|
|
2
|
+
const stopping = new AbortController();
|
|
3
|
+
let running = Promise.resolve();
|
|
4
|
+
const round = async () => {
|
|
5
|
+
try {
|
|
6
|
+
const { acked, refused } = await deps.answerPings(stopping.signal);
|
|
7
|
+
for (const { contentType, senderShipId } of acked) {
|
|
8
|
+
deps.log.info({ contentType, senderShipId }, "the gateway's ship acked a message it does not handle");
|
|
9
|
+
}
|
|
10
|
+
if (refused > 0) {
|
|
11
|
+
deps.log.debug({ refused }, "the fleet refused some calls of the gateway's ship's inbox");
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
deps.log.error({ err: error }, 'ping round failed');
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
start: () => {
|
|
20
|
+
running = (async () => {
|
|
21
|
+
while (!stopping.signal.aborted) {
|
|
22
|
+
await round();
|
|
23
|
+
await deps.sleep(deps.intervalMs, stopping.signal);
|
|
24
|
+
}
|
|
25
|
+
})();
|
|
26
|
+
},
|
|
27
|
+
stop: async () => {
|
|
28
|
+
stopping.abort();
|
|
29
|
+
await running;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ping-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping-worker.js","sourceRoot":"","sources":["../src/ping-worker.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,gBAAgB,CAAC,IAA4F;IAC3H,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,IAAI,OAAO,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAE/C,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnE,KAAK,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,KAAK,EAAE,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,uDAAuD,CAAC,CAAC;YACxG,CAAC;YACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,4DAA4D,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;gBACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAChC,MAAM,KAAK,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
|