@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.
Files changed (589) hide show
  1. package/README.md +13 -6
  2. package/dist/adapters/crypto/account-sign-in-seals.d.ts +7 -0
  3. package/dist/adapters/crypto/account-sign-in-seals.js +21 -0
  4. package/dist/adapters/crypto/account-sign-in-seals.js.map +1 -0
  5. package/dist/adapters/crypto/sign-in-seals.d.ts +1 -1
  6. package/dist/adapters/crypto/sign-in-seals.js +3 -6
  7. package/dist/adapters/crypto/sign-in-seals.js.map +1 -1
  8. package/dist/adapters/fleet/core-version.d.ts +1 -1
  9. package/dist/adapters/fleet/core-version.js +1 -1
  10. package/dist/adapters/fleet/fleet-ships.d.ts +6 -0
  11. package/dist/adapters/fleet/fleet-ships.js +23 -0
  12. package/dist/adapters/fleet/fleet-ships.js.map +1 -0
  13. package/dist/adapters/fleet/proxy-ship-reads.d.ts +2 -2
  14. package/dist/adapters/fleet/proxy-ship-reads.js +6 -3
  15. package/dist/adapters/fleet/proxy-ship-reads.js.map +1 -1
  16. package/dist/adapters/fleet/rest-fleet-door.d.ts +2 -1
  17. package/dist/adapters/fleet/rest-fleet-door.js +34 -14
  18. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  19. package/dist/adapters/http/account-sign-in-routes.d.ts +19 -0
  20. package/dist/adapters/http/account-sign-in-routes.js +61 -0
  21. package/dist/adapters/http/account-sign-in-routes.js.map +1 -0
  22. package/dist/adapters/http/forms.d.ts +9 -0
  23. package/dist/adapters/http/forms.js +23 -0
  24. package/dist/adapters/http/forms.js.map +1 -0
  25. package/dist/adapters/http/front-door.d.ts +15 -0
  26. package/dist/adapters/http/front-door.js +59 -0
  27. package/dist/adapters/http/front-door.js.map +1 -0
  28. package/dist/adapters/http/live.d.ts +2 -12
  29. package/dist/adapters/http/live.js +4 -65
  30. package/dist/adapters/http/live.js.map +1 -1
  31. package/dist/adapters/http/oauth-routes.d.ts +14 -16
  32. package/dist/adapters/http/oauth-routes.js +23 -139
  33. package/dist/adapters/http/oauth-routes.js.map +1 -1
  34. package/dist/adapters/http/person-tools.d.ts +9 -4
  35. package/dist/adapters/http/person-tools.js +49 -5
  36. package/dist/adapters/http/person-tools.js.map +1 -1
  37. package/dist/adapters/pagasae/shared-sign-in.d.ts +11 -0
  38. package/dist/adapters/pagasae/shared-sign-in.js +123 -0
  39. package/dist/adapters/pagasae/shared-sign-in.js.map +1 -0
  40. package/dist/adapters/prisma/generated/browser.d.ts +1 -1
  41. package/dist/adapters/prisma/generated/client.d.ts +1 -1
  42. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  43. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  44. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +1 -0
  45. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +1 -0
  46. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  47. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +1 -0
  48. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +1 -0
  49. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  50. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +30 -2
  51. package/dist/adapters/prisma/opened-deliveries.js +18 -12
  52. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  53. package/dist/adapters/trpc/router.d.ts +143 -4
  54. package/dist/adapters/trpc/router.js +151 -5
  55. package/dist/adapters/trpc/router.js.map +1 -1
  56. package/dist/adapters/web/next-web-app.d.ts +10 -0
  57. package/dist/adapters/web/next-web-app.js +27 -0
  58. package/dist/adapters/web/next-web-app.js.map +1 -0
  59. package/dist/app.d.ts +9 -1
  60. package/dist/app.js +54 -28
  61. package/dist/app.js.map +1 -1
  62. package/dist/bin/aeolus-gateway.js +12 -1
  63. package/dist/bin/aeolus-gateway.js.map +1 -1
  64. package/dist/config.d.ts +18 -0
  65. package/dist/config.js +16 -1
  66. package/dist/config.js.map +1 -1
  67. package/dist/core/account-sign-in/account-in-view.d.ts +43 -0
  68. package/dist/core/account-sign-in/account-in-view.js +52 -0
  69. package/dist/core/account-sign-in/account-in-view.js.map +1 -0
  70. package/dist/core/account-sign-in/account-of-sign-in.d.ts +23 -0
  71. package/dist/core/account-sign-in/account-of-sign-in.js +41 -0
  72. package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -0
  73. package/dist/core/account-sign-in/complete-account-sign-in.d.ts +37 -0
  74. package/dist/core/account-sign-in/complete-account-sign-in.js +25 -0
  75. package/dist/core/account-sign-in/complete-account-sign-in.js.map +1 -0
  76. package/dist/core/account-sign-in/ports.d.ts +92 -0
  77. package/dist/core/account-sign-in/ports.js +3 -0
  78. package/dist/core/account-sign-in/ports.js.map +1 -0
  79. package/dist/core/account-sign-in/sign-out-account.d.ts +15 -0
  80. package/dist/core/account-sign-in/sign-out-account.js +12 -0
  81. package/dist/core/account-sign-in/sign-out-account.js.map +1 -0
  82. package/dist/core/account-sign-in/start-account-sign-in.d.ts +25 -0
  83. package/dist/core/account-sign-in/start-account-sign-in.js +26 -0
  84. package/dist/core/account-sign-in/start-account-sign-in.js.map +1 -0
  85. package/dist/core/actors/authenticate-actor.d.ts +14 -15
  86. package/dist/core/actors/authenticate-actor.js +10 -12
  87. package/dist/core/actors/authenticate-actor.js.map +1 -1
  88. package/dist/core/actors/credential-of.d.ts +4 -6
  89. package/dist/core/actors/credential-of.js +4 -8
  90. package/dist/core/actors/credential-of.js.map +1 -1
  91. package/dist/core/connection/answer-pings.d.ts +19 -0
  92. package/dist/core/connection/answer-pings.js +34 -0
  93. package/dist/core/connection/answer-pings.js.map +1 -0
  94. package/dist/core/connection/ports.d.ts +18 -1
  95. package/dist/core/oauth/read-authorization.js +2 -2
  96. package/dist/core/oauth/read-authorization.js.map +1 -1
  97. package/dist/core/oauth/redirect-uri.d.ts +7 -0
  98. package/dist/core/oauth/redirect-uri.js +23 -0
  99. package/dist/core/oauth/redirect-uri.js.map +1 -1
  100. package/dist/core/operator/authenticate-operator.d.ts +4 -3
  101. package/dist/core/operator/authenticate-operator.js +4 -2
  102. package/dist/core/operator/authenticate-operator.js.map +1 -1
  103. package/dist/core/parties/list-owner-choices.d.ts +24 -0
  104. package/dist/core/parties/list-owner-choices.js +25 -0
  105. package/dist/core/parties/list-owner-choices.js.map +1 -0
  106. package/dist/core/parties/list-parties.js +1 -1
  107. package/dist/core/parties/list-parties.js.map +1 -1
  108. package/dist/core/parties/ports.d.ts +14 -5
  109. package/dist/core/parties/shown-party.d.ts +8 -2
  110. package/dist/core/parties/shown-party.js.map +1 -1
  111. package/dist/core/people/crew-person-ship.d.ts +3 -5
  112. package/dist/core/people/crew-person-ship.js +6 -5
  113. package/dist/core/people/crew-person-ship.js.map +1 -1
  114. package/dist/core/people/inbox-entry.d.ts +2 -1
  115. package/dist/core/people/inbox-entry.js +3 -0
  116. package/dist/core/people/inbox-entry.js.map +1 -1
  117. package/dist/core/people/list-ships.d.ts +17 -0
  118. package/dist/core/people/list-ships.js +20 -0
  119. package/dist/core/people/list-ships.js.map +1 -0
  120. package/dist/core/people/open-delivery.d.ts +14 -9
  121. package/dist/core/people/open-delivery.js +24 -4
  122. package/dist/core/people/open-delivery.js.map +1 -1
  123. package/dist/core/people/person-crew.d.ts +13 -1
  124. package/dist/core/people/person-crew.js.map +1 -1
  125. package/dist/core/people/ports.d.ts +42 -3
  126. package/dist/core/people/read-inbox.d.ts +15 -9
  127. package/dist/core/people/read-inbox.js +17 -6
  128. package/dist/core/people/read-inbox.js.map +1 -1
  129. package/dist/core/people/send-message.d.ts +32 -0
  130. package/dist/core/people/send-message.js +22 -0
  131. package/dist/core/people/send-message.js.map +1 -0
  132. package/dist/core/requests/ask-for-server.d.ts +2 -2
  133. package/dist/core/requests/watch-waiting.d.ts +2 -1
  134. package/dist/core/requests/watch-waiting.js +2 -2
  135. package/dist/core/requests/watch-waiting.js.map +1 -1
  136. package/dist/core/sign-in/complete-sign-in.d.ts +4 -11
  137. package/dist/core/sign-in/complete-sign-in.js +1 -23
  138. package/dist/core/sign-in/complete-sign-in.js.map +1 -1
  139. package/dist/core/sign-in/own-page.d.ts +10 -0
  140. package/dist/core/sign-in/own-page.js +35 -0
  141. package/dist/core/sign-in/own-page.js.map +1 -0
  142. package/dist/core/sign-in/ports.d.ts +3 -24
  143. package/dist/ping-worker.d.ts +20 -0
  144. package/dist/ping-worker.js +33 -0
  145. package/dist/ping-worker.js.map +1 -0
  146. package/package.json +23 -5
  147. package/src/adapters/prisma/migrations/20261021120000_opened_deliveries_sent_at/migration.sql +4 -0
  148. package/src/adapters/prisma/schema.prisma +2 -1
  149. package/web/.next/BUILD_ID +1 -0
  150. package/web/.next/app-path-routes-manifest.json +17 -0
  151. package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js +192 -0
  152. package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js.map +8 -0
  153. package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js +502 -0
  154. package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js.map +11 -0
  155. package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js +13 -0
  156. package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js.map +5 -0
  157. package/web/.next/build/chunks/[turbopack]_runtime.js +1056 -0
  158. package/web/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
  159. package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js +7337 -0
  160. package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js.map +47 -0
  161. package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js +6 -0
  162. package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js.map +5 -0
  163. package/web/.next/build/package.json +1 -0
  164. package/web/.next/build-manifest.json +194 -0
  165. package/web/.next/diagnostics/build-diagnostics.json +6 -0
  166. package/web/.next/diagnostics/framework.json +1 -0
  167. package/web/.next/diagnostics/route-bundle-stats.json +195 -0
  168. package/web/.next/export-marker.json +6 -0
  169. package/web/.next/fallback-build-manifest.json +15 -0
  170. package/web/.next/images-manifest.json +68 -0
  171. package/web/.next/next-minimal-server.js.nft.json +1 -0
  172. package/web/.next/next-server.js.nft.json +1 -0
  173. package/web/.next/package.json +1 -0
  174. package/web/.next/prerender-manifest.json +40 -0
  175. package/web/.next/required-server-files.js +367 -0
  176. package/web/.next/required-server-files.json +367 -0
  177. package/web/.next/routes-manifest.json +144 -0
  178. package/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  179. package/web/.next/server/app/_global-error/page/build-manifest.json +23 -0
  180. package/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  181. package/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  182. package/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  183. package/web/.next/server/app/_global-error/page.js +12 -0
  184. package/web/.next/server/app/_global-error/page.js.map +5 -0
  185. package/web/.next/server/app/_global-error/page.js.nft.json +1 -0
  186. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  187. package/web/.next/server/app/_global-error.html +1 -0
  188. package/web/.next/server/app/_global-error.meta +30 -0
  189. package/web/.next/server/app/_global-error.rsc +18 -0
  190. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +23 -0
  191. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +18 -0
  192. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -0
  193. package/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  194. package/web/.next/server/app/_not-found/page/build-manifest.json +23 -0
  195. package/web/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  196. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  197. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +15 -0
  198. package/web/.next/server/app/_not-found/page.js +17 -0
  199. package/web/.next/server/app/_not-found/page.js.map +5 -0
  200. package/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  201. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  202. package/web/.next/server/app/authorize/failed/page/app-paths-manifest.json +3 -0
  203. package/web/.next/server/app/authorize/failed/page/build-manifest.json +23 -0
  204. package/web/.next/server/app/authorize/failed/page/next-font-manifest.json +11 -0
  205. package/web/.next/server/app/authorize/failed/page/react-loadable-manifest.json +1 -0
  206. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +15 -0
  207. package/web/.next/server/app/authorize/failed/page.js +18 -0
  208. package/web/.next/server/app/authorize/failed/page.js.map +5 -0
  209. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -0
  210. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +3 -0
  211. package/web/.next/server/app/authorize/pick/page/app-paths-manifest.json +3 -0
  212. package/web/.next/server/app/authorize/pick/page/build-manifest.json +23 -0
  213. package/web/.next/server/app/authorize/pick/page/next-font-manifest.json +11 -0
  214. package/web/.next/server/app/authorize/pick/page/react-loadable-manifest.json +1 -0
  215. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +15 -0
  216. package/web/.next/server/app/authorize/pick/page.js +19 -0
  217. package/web/.next/server/app/authorize/pick/page.js.map +5 -0
  218. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -0
  219. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +3 -0
  220. package/web/.next/server/app/authorize/waiting/approval/page/app-paths-manifest.json +3 -0
  221. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +23 -0
  222. package/web/.next/server/app/authorize/waiting/approval/page/next-font-manifest.json +11 -0
  223. package/web/.next/server/app/authorize/waiting/approval/page/react-loadable-manifest.json +1 -0
  224. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +15 -0
  225. package/web/.next/server/app/authorize/waiting/approval/page.js +19 -0
  226. package/web/.next/server/app/authorize/waiting/approval/page.js.map +5 -0
  227. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -0
  228. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +3 -0
  229. package/web/.next/server/app/outside-parties/[name]/change/page/app-paths-manifest.json +3 -0
  230. package/web/.next/server/app/outside-parties/[name]/change/page/build-manifest.json +23 -0
  231. package/web/.next/server/app/outside-parties/[name]/change/page/next-font-manifest.json +11 -0
  232. package/web/.next/server/app/outside-parties/[name]/change/page/react-loadable-manifest.json +1 -0
  233. package/web/.next/server/app/outside-parties/[name]/change/page/server-reference-manifest.json +35 -0
  234. package/web/.next/server/app/outside-parties/[name]/change/page.js +22 -0
  235. package/web/.next/server/app/outside-parties/[name]/change/page.js.map +5 -0
  236. package/web/.next/server/app/outside-parties/[name]/change/page.js.nft.json +1 -0
  237. package/web/.next/server/app/outside-parties/[name]/change/page_client-reference-manifest.js +3 -0
  238. package/web/.next/server/app/outside-parties/[name]/page/app-paths-manifest.json +3 -0
  239. package/web/.next/server/app/outside-parties/[name]/page/build-manifest.json +23 -0
  240. package/web/.next/server/app/outside-parties/[name]/page/next-font-manifest.json +11 -0
  241. package/web/.next/server/app/outside-parties/[name]/page/react-loadable-manifest.json +1 -0
  242. package/web/.next/server/app/outside-parties/[name]/page/server-reference-manifest.json +15 -0
  243. package/web/.next/server/app/outside-parties/[name]/page.js +20 -0
  244. package/web/.next/server/app/outside-parties/[name]/page.js.map +5 -0
  245. package/web/.next/server/app/outside-parties/[name]/page.js.nft.json +1 -0
  246. package/web/.next/server/app/outside-parties/[name]/page_client-reference-manifest.js +3 -0
  247. package/web/.next/server/app/outside-parties/[name]/retire/page/app-paths-manifest.json +3 -0
  248. package/web/.next/server/app/outside-parties/[name]/retire/page/build-manifest.json +23 -0
  249. package/web/.next/server/app/outside-parties/[name]/retire/page/next-font-manifest.json +11 -0
  250. package/web/.next/server/app/outside-parties/[name]/retire/page/react-loadable-manifest.json +1 -0
  251. package/web/.next/server/app/outside-parties/[name]/retire/page/server-reference-manifest.json +35 -0
  252. package/web/.next/server/app/outside-parties/[name]/retire/page.js +21 -0
  253. package/web/.next/server/app/outside-parties/[name]/retire/page.js.map +5 -0
  254. package/web/.next/server/app/outside-parties/[name]/retire/page.js.nft.json +1 -0
  255. package/web/.next/server/app/outside-parties/[name]/retire/page_client-reference-manifest.js +3 -0
  256. package/web/.next/server/app/outside-parties/add/page/app-paths-manifest.json +3 -0
  257. package/web/.next/server/app/outside-parties/add/page/build-manifest.json +23 -0
  258. package/web/.next/server/app/outside-parties/add/page/next-font-manifest.json +11 -0
  259. package/web/.next/server/app/outside-parties/add/page/react-loadable-manifest.json +1 -0
  260. package/web/.next/server/app/outside-parties/add/page/server-reference-manifest.json +35 -0
  261. package/web/.next/server/app/outside-parties/add/page.js +19 -0
  262. package/web/.next/server/app/outside-parties/add/page.js.map +5 -0
  263. package/web/.next/server/app/outside-parties/add/page.js.nft.json +1 -0
  264. package/web/.next/server/app/outside-parties/add/page_client-reference-manifest.js +3 -0
  265. package/web/.next/server/app/outside-parties/page/app-paths-manifest.json +3 -0
  266. package/web/.next/server/app/outside-parties/page/build-manifest.json +23 -0
  267. package/web/.next/server/app/outside-parties/page/next-font-manifest.json +11 -0
  268. package/web/.next/server/app/outside-parties/page/react-loadable-manifest.json +1 -0
  269. package/web/.next/server/app/outside-parties/page/server-reference-manifest.json +25 -0
  270. package/web/.next/server/app/outside-parties/page.js +20 -0
  271. package/web/.next/server/app/outside-parties/page.js.map +5 -0
  272. package/web/.next/server/app/outside-parties/page.js.nft.json +1 -0
  273. package/web/.next/server/app/outside-parties/page_client-reference-manifest.js +3 -0
  274. package/web/.next/server/app/overview/changes/route/app-paths-manifest.json +3 -0
  275. package/web/.next/server/app/overview/changes/route/build-manifest.json +12 -0
  276. package/web/.next/server/app/overview/changes/route/server-reference-manifest.json +4 -0
  277. package/web/.next/server/app/overview/changes/route.js +6 -0
  278. package/web/.next/server/app/overview/changes/route.js.map +5 -0
  279. package/web/.next/server/app/overview/changes/route.js.nft.json +1 -0
  280. package/web/.next/server/app/overview/changes/route_client-reference-manifest.js +3 -0
  281. package/web/.next/server/app/overview/page/app-paths-manifest.json +3 -0
  282. package/web/.next/server/app/overview/page/build-manifest.json +23 -0
  283. package/web/.next/server/app/overview/page/next-font-manifest.json +11 -0
  284. package/web/.next/server/app/overview/page/react-loadable-manifest.json +1 -0
  285. package/web/.next/server/app/overview/page/server-reference-manifest.json +45 -0
  286. package/web/.next/server/app/overview/page.js +24 -0
  287. package/web/.next/server/app/overview/page.js.map +5 -0
  288. package/web/.next/server/app/overview/page.js.nft.json +1 -0
  289. package/web/.next/server/app/overview/page_client-reference-manifest.js +3 -0
  290. package/web/.next/server/app/overview/requests/[requestId]/page/app-paths-manifest.json +3 -0
  291. package/web/.next/server/app/overview/requests/[requestId]/page/build-manifest.json +23 -0
  292. package/web/.next/server/app/overview/requests/[requestId]/page/next-font-manifest.json +11 -0
  293. package/web/.next/server/app/overview/requests/[requestId]/page/react-loadable-manifest.json +1 -0
  294. package/web/.next/server/app/overview/requests/[requestId]/page/server-reference-manifest.json +25 -0
  295. package/web/.next/server/app/overview/requests/[requestId]/page.js +24 -0
  296. package/web/.next/server/app/overview/requests/[requestId]/page.js.map +5 -0
  297. package/web/.next/server/app/overview/requests/[requestId]/page.js.nft.json +1 -0
  298. package/web/.next/server/app/overview/requests/[requestId]/page_client-reference-manifest.js +3 -0
  299. package/web/.next/server/app/parties/page/app-paths-manifest.json +3 -0
  300. package/web/.next/server/app/parties/page/build-manifest.json +23 -0
  301. package/web/.next/server/app/parties/page/next-font-manifest.json +11 -0
  302. package/web/.next/server/app/parties/page/react-loadable-manifest.json +1 -0
  303. package/web/.next/server/app/parties/page/server-reference-manifest.json +55 -0
  304. package/web/.next/server/app/parties/page.js +22 -0
  305. package/web/.next/server/app/parties/page.js.map +5 -0
  306. package/web/.next/server/app/parties/page.js.nft.json +1 -0
  307. package/web/.next/server/app/parties/page_client-reference-manifest.js +3 -0
  308. package/web/.next/server/app/sign-in/failed/page/app-paths-manifest.json +3 -0
  309. package/web/.next/server/app/sign-in/failed/page/build-manifest.json +23 -0
  310. package/web/.next/server/app/sign-in/failed/page/next-font-manifest.json +11 -0
  311. package/web/.next/server/app/sign-in/failed/page/react-loadable-manifest.json +1 -0
  312. package/web/.next/server/app/sign-in/failed/page/server-reference-manifest.json +15 -0
  313. package/web/.next/server/app/sign-in/failed/page.js +18 -0
  314. package/web/.next/server/app/sign-in/failed/page.js.map +5 -0
  315. package/web/.next/server/app/sign-in/failed/page.js.nft.json +1 -0
  316. package/web/.next/server/app/sign-in/failed/page_client-reference-manifest.js +3 -0
  317. package/web/.next/server/app-paths-manifest.json +17 -0
  318. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +3 -0
  319. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js.map +1 -0
  320. package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js +369 -0
  321. package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js.map +1 -0
  322. package/web/.next/server/chunks/[turbopack]_runtime.js +937 -0
  323. package/web/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  324. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js +3 -0
  325. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js.map +1 -0
  326. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js +4 -0
  327. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js.map +1 -0
  328. package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js +3 -0
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js.map +1 -0
  330. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js +3 -0
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js.map +1 -0
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js +3 -0
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js.map +1 -0
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js +3 -0
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js.map +1 -0
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js.map +1 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js +3 -0
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js.map +1 -0
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js +3 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js.map +1 -0
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +3 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js.map +1 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js +4 -0
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js +3 -0
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js +3 -0
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js +3 -0
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js +3 -0
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js +4 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js +3 -0
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js.map +1 -0
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js +14 -0
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js.map +1 -0
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js +4 -0
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js.map +1 -0
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js +3 -0
  363. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js.map +1 -0
  364. package/web/.next/server/chunks/ssr/[turbopack]_runtime.js +937 -0
  365. package/web/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  366. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +4 -0
  367. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -0
  368. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +57 -0
  369. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -0
  370. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js +4 -0
  371. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js.map +1 -0
  372. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js +4 -0
  373. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js.map +1 -0
  374. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +4 -0
  375. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -0
  376. package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js +4 -0
  377. package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js.map +1 -0
  378. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js +4 -0
  379. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js.map +1 -0
  380. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js +3 -0
  381. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js.map +1 -0
  382. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +4 -0
  383. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -0
  384. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +4 -0
  385. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -0
  386. package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
  387. package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map +1 -0
  388. package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js +33 -0
  389. package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js.map +1 -0
  390. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
  391. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
  392. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +17 -0
  393. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js.map +1 -0
  394. package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js +291 -0
  395. package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js.map +1 -0
  396. package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js +313 -0
  397. package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js.map +1 -0
  398. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
  399. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -0
  400. package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js +3 -0
  401. package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js.map +1 -0
  402. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
  403. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js.map +1 -0
  404. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
  405. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js.map +1 -0
  406. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
  407. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js.map +1 -0
  408. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js +3 -0
  409. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js.map +1 -0
  410. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js +3 -0
  411. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js.map +1 -0
  412. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js +3 -0
  413. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js.map +1 -0
  414. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js +3 -0
  415. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js.map +1 -0
  416. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js +3 -0
  417. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js.map +1 -0
  418. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js +3 -0
  419. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js.map +1 -0
  420. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js +3 -0
  421. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js.map +1 -0
  422. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js +3 -0
  423. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js.map +1 -0
  424. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js +3 -0
  425. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js.map +1 -0
  426. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js +3 -0
  427. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js +3 -0
  429. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js.map +1 -0
  430. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js +3 -0
  431. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js.map +1 -0
  432. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js +3 -0
  433. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js +3 -0
  435. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js.map +1 -0
  436. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js +3 -0
  437. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js.map +1 -0
  438. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js +3 -0
  439. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js.map +1 -0
  440. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js +3 -0
  441. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js.map +1 -0
  442. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js +3 -0
  443. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js.map +1 -0
  444. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js +3 -0
  445. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js +3 -0
  447. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js.map +1 -0
  448. package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js +3 -0
  449. package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js +3 -0
  451. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js.map +1 -0
  452. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js +10 -0
  453. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js.map +1 -0
  454. package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js +3 -0
  455. package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js.map +1 -0
  456. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js +3 -0
  457. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js.map +1 -0
  458. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js +3 -0
  459. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js.map +1 -0
  460. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js +3 -0
  461. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js.map +1 -0
  462. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js +3 -0
  463. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js.map +1 -0
  464. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js +3 -0
  465. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js.map +1 -0
  466. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js +3 -0
  467. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js.map +1 -0
  468. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js +3 -0
  469. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js.map +1 -0
  470. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js +3 -0
  471. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js.map +1 -0
  472. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +3 -0
  473. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js.map +1 -0
  474. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js +3 -0
  475. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js.map +1 -0
  476. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js +3 -0
  477. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js.map +1 -0
  478. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js +3 -0
  479. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js.map +1 -0
  480. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js +3 -0
  481. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js.map +1 -0
  482. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +3 -0
  483. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -0
  484. package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js +3 -0
  485. package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js.map +1 -0
  486. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js +3 -0
  487. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js.map +1 -0
  488. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js +3 -0
  489. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js.map +1 -0
  490. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js +3 -0
  491. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js.map +1 -0
  492. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +3 -0
  493. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -0
  494. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +3 -0
  495. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -0
  496. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js +3 -0
  497. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js.map +1 -0
  498. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js +3 -0
  499. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js.map +1 -0
  500. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +3 -0
  501. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -0
  502. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +3 -0
  503. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -0
  504. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js +3 -0
  505. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js.map +1 -0
  506. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +3 -0
  507. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js.map +1 -0
  508. package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js +3 -0
  509. package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js.map +1 -0
  510. package/web/.next/server/functions-config-manifest.json +4 -0
  511. package/web/.next/server/interception-route-rewrite-manifest.js +1 -0
  512. package/web/.next/server/middleware-build-manifest.js +194 -0
  513. package/web/.next/server/middleware-manifest.json +6 -0
  514. package/web/.next/server/next-font-manifest.js +1 -0
  515. package/web/.next/server/next-font-manifest.json +59 -0
  516. package/web/.next/server/pages/500.html +1 -0
  517. package/web/.next/server/pages-manifest.json +3 -0
  518. package/web/.next/server/prefetch-hints.json +11 -0
  519. package/web/.next/server/preview-props.json +5 -0
  520. package/web/.next/server/server-reference-manifest.js +1 -0
  521. package/web/.next/server/server-reference-manifest.json +202 -0
  522. package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_buildManifest.js +11 -0
  523. package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_clientMiddlewareManifest.js +1 -0
  524. package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_ssgManifest.js +1 -0
  525. package/web/.next/static/chunks/0a1vw3r93lh06.js +1 -0
  526. package/web/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  527. package/web/.next/static/chunks/0lzisjsmhlhjf.js +1 -0
  528. package/web/.next/static/chunks/0umf92h1sb77c.js +1 -0
  529. package/web/.next/static/chunks/131oz96e71xwn.js +1 -0
  530. package/web/.next/static/chunks/1cduebcshlfd5.js +1 -0
  531. package/web/.next/static/chunks/1ma7v1viiz247.js +1 -0
  532. package/web/.next/static/chunks/1w-xaw2grqv_2.js +1 -0
  533. package/web/.next/static/chunks/22u81hd6kxqsx.js +1 -0
  534. package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
  535. package/web/.next/static/chunks/2hz8yws_wswjz.js +31 -0
  536. package/web/.next/static/chunks/2qpupho1jn-iy.js +1 -0
  537. package/web/.next/static/chunks/2ta7dqldhv69y.js +1 -0
  538. package/web/.next/static/chunks/30n1j9zag1f0q.css +3 -0
  539. package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
  540. package/web/.next/static/chunks/3sv0_hjr9t4cp.js +1 -0
  541. package/web/.next/static/chunks/3yltnnufhaitm.js +1 -0
  542. package/web/.next/static/chunks/41rcj9-d-7p_4.js +22 -0
  543. package/web/.next/static/chunks/turbopack-3-ry682tkyiqk.js +1 -0
  544. package/web/.next/static/media/geist_mono_variable-s.p.3ms9vq719j3f8.woff2 +0 -0
  545. package/web/.next/static/media/geist_variable-s.p.0mrjj4bg00-he.woff2 +0 -0
  546. package/web/.next/trace +1 -0
  547. package/web/.next/trace-build +1 -0
  548. package/web/.next/turbopack +0 -0
  549. package/web/.next/types/cache-life.d.ts +114 -0
  550. package/web/.next/types/root-params.d.ts +3 -0
  551. package/web/.next/types/routes.d.ts +85 -0
  552. package/web/.next/types/validator.ts +288 -0
  553. package/web/next.config.ts +9 -0
  554. package/dist/adapters/crypto/page-sessions.d.ts +0 -15
  555. package/dist/adapters/crypto/page-sessions.js +0 -40
  556. package/dist/adapters/crypto/page-sessions.js.map +0 -1
  557. package/dist/adapters/http/add-server-page.d.ts +0 -7
  558. package/dist/adapters/http/add-server-page.js +0 -175
  559. package/dist/adapters/http/add-server-page.js.map +0 -1
  560. package/dist/adapters/http/delivery-page.d.ts +0 -24
  561. package/dist/adapters/http/delivery-page.js +0 -115
  562. package/dist/adapters/http/delivery-page.js.map +0 -1
  563. package/dist/adapters/http/html.d.ts +0 -15
  564. package/dist/adapters/http/html.js +0 -53
  565. package/dist/adapters/http/html.js.map +0 -1
  566. package/dist/adapters/http/outside-parties-page.d.ts +0 -33
  567. package/dist/adapters/http/outside-parties-page.js +0 -153
  568. package/dist/adapters/http/outside-parties-page.js.map +0 -1
  569. package/dist/adapters/http/outside-party-page.d.ts +0 -7
  570. package/dist/adapters/http/outside-party-page.js +0 -212
  571. package/dist/adapters/http/outside-party-page.js.map +0 -1
  572. package/dist/adapters/http/overview-page.d.ts +0 -17
  573. package/dist/adapters/http/overview-page.js +0 -298
  574. package/dist/adapters/http/overview-page.js.map +0 -1
  575. package/dist/adapters/http/parties-page.d.ts +0 -7
  576. package/dist/adapters/http/parties-page.js +0 -139
  577. package/dist/adapters/http/parties-page.js.map +0 -1
  578. package/dist/adapters/http/scope-rows.d.ts +0 -10
  579. package/dist/adapters/http/scope-rows.js +0 -30
  580. package/dist/adapters/http/scope-rows.js.map +0 -1
  581. package/dist/adapters/http/signal.d.ts +0 -61
  582. package/dist/adapters/http/signal.js +0 -263
  583. package/dist/adapters/http/signal.js.map +0 -1
  584. package/dist/core/sign-in/sign-out.d.ts +0 -10
  585. package/dist/core/sign-in/sign-out.js +0 -9
  586. package/dist/core/sign-in/sign-out.js.map +0 -1
  587. package/dist/core/sign-in/start-page-sign-in.d.ts +0 -25
  588. package/dist/core/sign-in/start-page-sign-in.js +0 -30
  589. package/dist/core/sign-in/start-page-sign-in.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ import { isSameOrigin } from './forms.js';
2
+ const HTTP_SEE_OTHER = 303;
3
+ const HTTP_FORBIDDEN = 403;
4
+ const HTTP_NOT_FOUND = 404;
5
+ const OVERVIEW = '/overview';
6
+ /** Where the web app's built files are served from. */
7
+ const WEB_APP_FILES = '/_next/*';
8
+ /** The header a server action of the web app (a page's form) is posted with: Next.js reads its body itself. */
9
+ const SERVER_ACTION_HEADER = 'next-action';
10
+ /** A form a page sends before its script took over the browser: the server has no form of its own of this kind. */
11
+ const PAGE_FORM_TYPE = 'multipart/form-data';
12
+ /** Whether a page of the web app sends one of its forms (a server action), with or without its script. */
13
+ function isPageForm(request) {
14
+ return request.method === 'POST' && (request.headers[SERVER_ACTION_HEADER] !== undefined || (request.headers['content-type'] ?? '').startsWith(PAGE_FORM_TYPE));
15
+ }
16
+ /** The header a page's refresh or navigation asks for its server components with. */
17
+ const SERVER_COMPONENTS_HEADER = 'rsc';
18
+ /**
19
+ * Whether a browser asks for a page or a page asks for its own: a GET (or
20
+ * HEAD) that accepts HTML, a page's refresh of its server components, or
21
+ * its live updates (an event stream).
22
+ */
23
+ function isPageAsked(request) {
24
+ if (request.method !== 'GET' && request.method !== 'HEAD') {
25
+ return false;
26
+ }
27
+ const accept = request.headers.accept ?? '';
28
+ return accept.includes('text/html') || accept.includes('text/event-stream') || request.headers[SERVER_COMPONENTS_HEADER] !== undefined;
29
+ }
30
+ export function registerFrontDoor(server, deps) {
31
+ server.get('/', (_request, reply) => reply.code(HTTP_SEE_OTHER).header('location', OVERVIEW).send());
32
+ const { web } = deps;
33
+ if (web !== undefined) {
34
+ // The web app writes the answer itself: Fastify, hijacked, sends nothing more.
35
+ server.get(WEB_APP_FILES, async (request, reply) => {
36
+ reply.hijack();
37
+ await web(request.raw, reply.raw);
38
+ });
39
+ // Before any route or body parser: the web app reads the form's body as the browser sent it.
40
+ server.addHook('onRequest', async (request, reply) => {
41
+ if (isPageForm(request)) {
42
+ // As the old pages did: a form comes from the gateway's own pages, never from another site with the browser's cookies.
43
+ if (!isSameOrigin(request)) {
44
+ return reply.code(HTTP_FORBIDDEN).type('text/plain; charset=utf-8').send('A form for this page is sent only from this page.');
45
+ }
46
+ reply.hijack();
47
+ await web(request.raw, reply.raw);
48
+ }
49
+ });
50
+ }
51
+ server.setNotFoundHandler(async (request, reply) => {
52
+ if (web === undefined || !isPageAsked(request)) {
53
+ return reply.code(HTTP_NOT_FOUND).send({ message: `Route ${request.method}:${request.url} not found`, error: 'Not Found', statusCode: HTTP_NOT_FOUND });
54
+ }
55
+ reply.hijack();
56
+ await web(request.raw, reply.raw);
57
+ });
58
+ }
59
+ //# sourceMappingURL=front-door.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"front-door.js","sourceRoot":"","sources":["../../../src/adapters/http/front-door.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,MAAM,QAAQ,GAAG,WAAW,CAAC;AAE7B,uDAAuD;AACvD,MAAM,aAAa,GAAG,UAAU,CAAC;AAEjC,+GAA+G;AAC/G,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C,mHAAmH;AACnH,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAE7C,0GAA0G;AAC1G,SAAS,UAAU,CAAC,OAAuB;IACzC,OAAO,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AAClK,CAAC;AAKD,qFAAqF;AACrF,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAEvC;;;;GAIG;AACH,SAAS,WAAW,CAAC,OAAuB;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,SAAS,CAAC;AACzI,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAuB,EAAE,IAAsB;IAC/E,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAErG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,+EAA+E;QAC/E,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACjD,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,6FAA6F;QAC7F,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACnD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,uHAAuH;gBACvH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBAChI,CAAC;gBACD,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACjD,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1J,CAAC;QACD,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,19 +1,14 @@
1
1
  import type { FleetId } from '@aeolus-fleet/common';
2
2
  import type { FastifyInstance } from 'fastify';
3
3
  import type { Change } from '../prisma/changes.js';
4
- import type { Context } from '../trpc/router.js';
5
- /** A page the live channel serves: its sections' HTML by name, read as the caller, from the page's query. */
6
- export interface LivePage {
7
- render(context: Context, params: URLSearchParams): Promise<Record<string, string>>;
8
- }
9
4
  interface Listener {
10
5
  readonly fleetId: FleetId;
11
6
  readonly read: () => void;
12
7
  }
13
- /** Hands each change to the sockets of its fleet, on this gateway. */
8
+ /** Hands each change to the listeners of its fleet, on this gateway. */
14
9
  export interface ChangeHub {
15
10
  publish: (change: Change) => void;
16
- /** Every socket reads its page again: changes may have been missed. */
11
+ /** Every listener reads again: changes may have been missed. */
17
12
  resync: () => void;
18
13
  subscribe: (listener: Listener) => () => void;
19
14
  listeners: () => number;
@@ -21,9 +16,4 @@ export interface ChangeHub {
21
16
  export declare function createChangeHub(): ChangeHub;
22
17
  /** Serves websockets on the server, once whichever route asks first; its routes register once it is loaded. */
23
18
  export declare function acceptWebsockets(server: FastifyInstance, routes: () => void): void;
24
- export declare function registerLive(server: FastifyInstance, deps: {
25
- contextFor: (cookie: string | undefined) => Context;
26
- hub: ChangeHub;
27
- pages: Record<string, LivePage>;
28
- }): void;
29
19
  export {};
@@ -1,18 +1,10 @@
1
1
  /**
2
- * The pages' live channel: a page whose content changes opens a websocket
3
- * on /live naming itself, and is sent its sections again whenever its
4
- * fleet's requests change, so it never reloads itself or polls. A change
5
- * carries no content: each socket reads its page again through the
6
- * gateway's API as its own caller, so it is never sent what its actor may
7
- * not see. Only the gateway's own pages open it: a socket from another
8
- * origin, with no session, or for a page that is not live is closed.
2
+ * What hears each committed change to a fleet's requests on this gateway:
3
+ * the API's requests.changes, which the web app's pages follow, and the
4
+ * waiting page of a client asked for. A change carries no content: each
5
+ * listener reads what it shows again, as its own caller.
9
6
  */
10
7
  import websocket from '@fastify/websocket';
11
- import { isSameOrigin } from './html.js';
12
- /** Why a socket was closed, as the page reads it: it does not open again for these. */
13
- const CLOSE_NO_SESSION = 4401;
14
- const CLOSE_OTHER_ORIGIN = 4403;
15
- const CLOSE_NOT_LIVE = 4404;
16
8
  export function createChangeHub() {
17
9
  const listening = new Set();
18
10
  return {
@@ -35,33 +27,6 @@ export function createChangeHub() {
35
27
  listeners: () => listening.size,
36
28
  };
37
29
  }
38
- /** Reads a page again and sends it, one read at a time per socket, so an older read never lands after a newer one. */
39
- function reader(send) {
40
- let isReading = false;
41
- let isWanted = false;
42
- const run = async () => {
43
- isReading = true;
44
- while (isWanted) {
45
- isWanted = false;
46
- try {
47
- const sections = await send.read();
48
- if (send.socket.readyState === send.socket.OPEN) {
49
- send.socket.send(JSON.stringify({ sections }));
50
- }
51
- }
52
- catch {
53
- // A read that failed leaves the page as it was; the next change reads it again.
54
- }
55
- }
56
- isReading = false;
57
- };
58
- return () => {
59
- isWanted = true;
60
- if (!isReading) {
61
- void run();
62
- }
63
- };
64
- }
65
30
  const servingWebsockets = new WeakSet();
66
31
  /** Serves websockets on the server, once whichever route asks first; its routes register once it is loaded. */
67
32
  export function acceptWebsockets(server, routes) {
@@ -71,30 +36,4 @@ export function acceptWebsockets(server, routes) {
71
36
  }
72
37
  void server.after(routes);
73
38
  }
74
- export function registerLive(server, deps) {
75
- acceptWebsockets(server, () => {
76
- server.get('/live', { websocket: true }, async (socket, request) => {
77
- if (!isSameOrigin(request)) {
78
- socket.close(CLOSE_OTHER_ORIGIN, 'Opened only from the gateway pages');
79
- return;
80
- }
81
- const params = new URLSearchParams(request.url.slice(request.url.indexOf('?') + 1));
82
- const page = deps.pages[params.get('page') ?? ''];
83
- if (page === undefined) {
84
- socket.close(CLOSE_NOT_LIVE, 'No such live page');
85
- return;
86
- }
87
- const context = deps.contextFor(request.headers.cookie);
88
- const actor = await context.authenticateActor({ cookie: context.cookie, crewToken: context.crewToken });
89
- if (!actor.isOk) {
90
- socket.close(CLOSE_NO_SESSION, 'Sign in again');
91
- return;
92
- }
93
- const read = reader({ socket, read: () => page.render(context, params) });
94
- const unsubscribe = deps.hub.subscribe({ fleetId: actor.value.fleetId, read });
95
- socket.on('close', unsubscribe);
96
- read();
97
- });
98
- });
99
- }
100
39
  //# sourceMappingURL=live.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/adapters/http/live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/adapters/http/live.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAoB3C,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAY,CAAC;IACtC,OAAO;QACL,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAClB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QACD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAmB,CAAC;AAEzD,+GAA+G;AAC/G,MAAM,UAAU,gBAAgB,CAAC,MAAuB,EAAE,MAAkB;IAC1E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,KAAK,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -3,12 +3,12 @@
3
3
  * clients (MCP 2026-07-28 authorization): the metadata of RFC 9728 and RFC
4
4
  * 8414; /authorize, where a person picks what the client acts as (Q1 a) and
5
5
  * is sent to pagasae to sign in; /pagasae/callback, where pagasae sends them
6
- * back; the waiting page, where a client asked for waits for an approver
7
- * (decision 0056); and /token. /sign-in and /sign-out sign a person in to
8
- * the gateway's own pages through pagasae too, the browser holding a page
9
- * session. Each route parses the request and calls one use case. Only a
10
- * signed-in account asks for a client, so a gateway where no pagasae is set
11
- * answers no client (Thomas's question A), and signs no one in to its pages.
6
+ * back; the waiting address, where a client asked for waits for an approver
7
+ * (decision 0056); and /token. What a person reads is the web app's (header
8
+ * design H3): a door sends the browser to its page, the pick page, the
9
+ * waiting page or the page saying why it got nowhere. Each route parses the
10
+ * request and calls one use case. Only a signed-in account asks for a client,
11
+ * so a gateway where no pagasae is set answers no client (Thomas's question A).
12
12
  */
13
13
  import type { FastifyInstance } from 'fastify';
14
14
  import type { ExchangeToken } from '../../core/oauth/exchange-token.js';
@@ -17,9 +17,6 @@ import type { ReadWaiting } from '../../core/requests/read-waiting.js';
17
17
  import type { WatchWaiting } from '../../core/requests/watch-waiting.js';
18
18
  import type { Clock } from '../../core/shared/clock.js';
19
19
  import type { CompleteSignIn } from '../../core/sign-in/complete-sign-in.js';
20
- import type { PageSessions } from '../../core/sign-in/ports.js';
21
- import type { SignOut } from '../../core/sign-in/sign-out.js';
22
- import { type StartPageSignIn } from '../../core/sign-in/start-page-sign-in.js';
23
20
  import { type StartSignIn } from '../../core/sign-in/start-sign-in.js';
24
21
  import { type ChangeHub } from './live.js';
25
22
  export interface OAuthRoutesDeps {
@@ -35,13 +32,14 @@ export interface OAuthRoutesDeps {
35
32
  watchWaiting: WatchWaiting;
36
33
  hub: ChangeHub;
37
34
  clock: Clock;
38
- pages: PageSignInDeps;
39
35
  };
40
36
  }
41
- /** Signing a person in to the gateway's own pages, and out again. */
42
- export interface PageSignInDeps {
43
- start: StartPageSignIn;
44
- signOut: SignOut;
45
- sessions: PageSessions;
46
- }
37
+ /**
38
+ * Why a browser got nowhere, as the web app's page at /authorize/failed
39
+ * says it: the client is unknown; no pick was made; the sign-in is unknown
40
+ * or ended, or another browser's; the fleet is not served, or its outside
41
+ * parties are off; pagasae refused; the wait is unknown, or another
42
+ * browser's; or this gateway signs no one in.
43
+ */
44
+ export type FailedReason = 'invalidClient' | 'noPick' | 'unknownSignIn' | 'otherBrowser' | 'fleetNotServed' | 'outsidePartiesOff' | 'pagasaeRefused' | 'unknownWaiting' | 'otherBrowserWaiting' | 'noSignIn';
47
45
  export declare function registerOAuthRoutes(server: FastifyInstance, deps: OAuthRoutesDeps): void;
@@ -1,18 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  import { REQUEST_LIFETIME_MS } from '../../core/requests/open-request.js';
3
- import { FIRST_PAGE } from '../../core/sign-in/start-page-sign-in.js';
4
3
  import { SIGN_IN_LIFETIME_MS } from '../../core/sign-in/start-sign-in.js';
5
- import { PAGE_SESSION_COOKIE } from '../crypto/page-sessions.js';
6
- import { acceptForms, escaped, isSameOrigin } from './html.js';
4
+ import { acceptForms, isSameOrigin } from './forms.js';
7
5
  import { acceptWebsockets } from './live.js';
8
- import { handshake, icon, ring, signInPage, statusBadge } from './signal.js';
9
6
  const HTTP_FOUND = 302;
10
- const HTTP_SEE_OTHER = 303;
11
7
  const HTTP_BAD_REQUEST = 400;
12
8
  const HTTP_UNAUTHORIZED = 401;
13
- const HTTP_FORBIDDEN = 403;
14
- const HTTP_NOT_FOUND = 404;
15
- const HTTP_BAD_GATEWAY = 502;
16
9
  const MS_PER_SECOND = 1000;
17
10
  /** Why the waiting page's live channel was closed: it does not open again. */
18
11
  const CLOSE_OTHER_ORIGIN = 4403;
@@ -30,41 +23,12 @@ function fieldsOf(value) {
30
23
  function authorizationRequestOf(fields) {
31
24
  return Object.fromEntries(AUTHORIZATION_PARAMETERS.map((name) => [name, fields[name]]));
32
25
  }
33
- /** A page of the gateway, never cached. */
34
- function htmlPage(reply, page) {
35
- return reply.code(page.status).type('text/html; charset=utf-8').header('cache-control', 'no-store').send(signInPage({ title: page.title, body: page.body }));
36
- }
37
- /** How an error page leads (design B): one ring in its tone around one icon, dashed for what ended, and one title. */
38
- const ERROR_LOOKS = {
39
- invalidClient: { tone: 'attention', icon: 'alert', heading: 'This client cannot connect' },
40
- noPick: { tone: 'attention', icon: 'alert', heading: 'Pick how to connect' },
41
- signInEnded: { tone: 'ended', icon: 'timerOff', heading: 'Sign-in ended', isDashed: true },
42
- otherBrowser: { tone: 'attention', icon: 'shieldX', heading: 'Not this browser' },
43
- noFleet: { tone: 'attention', icon: 'shieldX', heading: 'No fleet for you' },
44
- outsidePartiesOff: { tone: 'ended', icon: 'powerOff', heading: 'Outside parties are off' },
45
- signInFailed: { tone: 'attention', icon: 'alert', heading: 'Sign-in did not go through' },
46
- requestEnded: { tone: 'ended', icon: 'timerOff', heading: 'Request ended', isDashed: true },
47
- noSignIn: { tone: 'ended', icon: 'ban', heading: 'No sign-in here' },
48
- };
49
- /** A page that tells a person why their client got nothing, sending them nowhere. */
50
- function errorPage(reply, page) {
51
- const look = ERROR_LOOKS[page.look];
52
- const lead = ring({ tone: look.tone, center: { icon: look.icon }, label: look.heading, size: 144, ...(look.isDashed === undefined ? {} : { isDashed: look.isDashed }) });
53
- return htmlPage(reply, { status: page.status, title: page.title, body: `${lead}<h1>${escaped(look.heading)}</h1><p class="muted">${escaped(page.message)}</p>` });
54
- }
55
26
  /** The cookie the browser that started a sign-in holds its secret in, sent back to the callback only. */
56
27
  const SIGN_IN_COOKIE = { name: 'aeolus_sign_in', path: '/pagasae/callback' };
57
28
  /** The cookie the browser that asked for a client holds the same secret in, sent back to the waiting page only. */
58
29
  const WAITING_COOKIE = { name: 'aeolus_waiting', path: '/authorize/waiting' };
59
- /**
60
- * The page session cookie: every page and the API under it, for the browser's
61
- * session. Lax, so a link to a page from elsewhere arrives signed in, while a
62
- * form from another site does not (and each page form checks its origin too).
63
- */
64
- const PAGE_SESSION = { name: PAGE_SESSION_COOKIE, path: '/' };
65
- function pageSessionHeader(set) {
66
- return `${PAGE_SESSION.name}=${set.value}; Path=${PAGE_SESSION.path};${set.isEnding ? ' Max-Age=0;' : ''} HttpOnly;${set.isSecure ? ' Secure;' : ''} SameSite=Lax`;
67
- }
30
+ /** The web app's waiting page, under the waiting cookie's path, so the browser sends the page its secret. */
31
+ const WAITING_PAGE = `${WAITING_COOKIE.path}/approval`;
68
32
  function cookieHeader(cookie, set) {
69
33
  return `${cookie.name}=${set.value}; Path=${cookie.path}; Max-Age=${String(set.maxAgeSeconds)}; HttpOnly;${set.isSecure ? ' Secure;' : ''} SameSite=Lax`;
70
34
  }
@@ -77,10 +41,17 @@ function cookieValue(cookie, header) {
77
41
  .find((part) => part.startsWith(prefix))
78
42
  ?.slice(prefix.length);
79
43
  }
44
+ /** The web app's pages the doors send a browser to. */
45
+ const PICK_PAGE = '/authorize/pick';
46
+ const FAILED_PAGE = '/authorize/failed';
47
+ /** Sends the browser to the web app's page saying why it got nowhere. */
48
+ function failed(reply, reason) {
49
+ return reply.code(HTTP_FOUND).header('location', `${FAILED_PAGE}?${new URLSearchParams({ reason }).toString()}`).send();
50
+ }
80
51
  function sendBack(reply, answer) {
81
52
  const { refusal, issuer } = answer;
82
53
  if (refusal.kind === 'invalidClient') {
83
- return errorPage(reply, { status: HTTP_BAD_REQUEST, title: 'Connect an MCP client', look: 'invalidClient', message: refusal.message });
54
+ return failed(reply, 'invalidClient');
84
55
  }
85
56
  const url = new URL(refusal.redirectUri);
86
57
  url.searchParams.append('error', refusal.error);
@@ -91,70 +62,6 @@ function sendBack(reply, answer) {
91
62
  url.searchParams.append('iss', issuer);
92
63
  return reply.code(HTTP_FOUND).header('location', url.toString()).send();
93
64
  }
94
- /** The page at /authorize: the client, and the two picks (Q1 a), each starting a sign-in through pagasae. */
95
- function pickPage(request, authorization) {
96
- const hidden = Object.entries(request)
97
- .flatMap(([name, value]) => (value === undefined ? [] : [`<input type="hidden" name="${escaped(name)}" value="${escaped(value)}">`]))
98
- .join('');
99
- return `${handshake({ name: authorization.clientName, fleet: 'Aeolus' })}
100
- <h1>Connect an MCP client</h1>
101
- <p><strong>${escaped(authorization.clientName)}</strong> asks to call your fleet's ships through the gateway.</p>
102
- <form method="get" action="/authorize/sign-in">${hidden}<div class="tiles">
103
- <button class="tile" name="holder" value="account">${icon('signIn', 20)}<strong>Sign in as yourself</strong><span class="muted">The client acts as you.</span></button>
104
- <button class="tile" name="holder" value="party">${icon('hourglass', 20)}<strong>Ask for access for this client</strong><span class="muted">An approver of your fleet decides; the client then acts as its own party.</span></button>
105
- </div></form>
106
- <p class="muted">Client ${escaped(authorization.clientId)}, sent back to ${escaped(authorization.redirectUri)}.</p>`;
107
- }
108
- /**
109
- * What the waiting page runs: it follows its request on the live channel
110
- * and goes to its own address again once told to, there to be sent on; it
111
- * goes there too when the request expires. A dropped socket opens again
112
- * with backoff. It never reloads on a timer.
113
- */
114
- const WAITING_SCRIPT = `(function () {
115
- var wait = 500, expiry, HOUR = 3600000;
116
- function goOn() { location.replace(location.href); }
117
- function countDown() {
118
- var holder = document.querySelector('[data-expires-at]'), text = document.querySelector('[data-time-left]');
119
- if (!holder || !text) return;
120
- var hours = Math.max(0, Math.floor((Date.parse(holder.getAttribute('data-expires-at')) - Date.now()) / HOUR));
121
- text.textContent = Math.floor(hours / 24) + ' d ' + (hours % 24) + ' h';
122
- }
123
- setInterval(countDown, 60000);
124
- function open() {
125
- var socket = new WebSocket((location.protocol === 'https:' ? 'wss://' : 'ws://') + location.host + '${WAITING_COOKIE.path}/live' + location.search);
126
- socket.onopen = function () { wait = 500; };
127
- socket.onmessage = function (event) {
128
- var told = JSON.parse(event.data);
129
- if (told.go) return goOn();
130
- if (told.expiresAt) { clearTimeout(expiry); expiry = setTimeout(goOn, Math.max(0, Date.parse(told.expiresAt) - Date.now())); }
131
- };
132
- socket.onclose = function (event) {
133
- if (event.code === ${String(CLOSE_OTHER_ORIGIN)}) return;
134
- setTimeout(open, wait);
135
- wait = Math.min(wait * 2, 10000);
136
- };
137
- }
138
- open();
139
- })();`;
140
- const MS_PER_HOUR = 3_600_000;
141
- const HOURS_PER_DAY = 24;
142
- /** The time left of a request, in days and hours, as the waiting page's ring shows it. */
143
- function timeLeft(expiresAt, now) {
144
- const hours = Math.max(0, Math.floor((expiresAt.getTime() - now.getTime()) / MS_PER_HOUR));
145
- return `${String(Math.floor(hours / HOURS_PER_DAY))} d ${String(hours % HOURS_PER_DAY)} h`;
146
- }
147
- /** The waiting page: the client waits for approval, the ring counting its time left, and the page goes on by itself once it is decided. */
148
- function waitingPage(waiting) {
149
- const left = timeLeft(waiting.expiresAt, waiting.now);
150
- return `${handshake({ name: waiting.clientName, fleet: 'Aeolus' })}
151
- <div data-expires-at="${waiting.expiresAt.toISOString()}">${ring({ tone: 'waiting', center: { text: left, icon: 'hourglass' }, label: `${left} left`, size: 176 })}</div>
152
- ${statusBadge({ tone: 'waiting', icon: 'hourglass', label: 'Waiting for approval' })}
153
- <p><strong>${escaped(waiting.clientName)}</strong> waits for an approver of your fleet.</p>
154
- <p><span class="going-on">Goes on by itself</span></p>
155
- <p class="muted">Closed this page? Connect again later.</p>
156
- <script>${WAITING_SCRIPT}</script>`;
157
- }
158
65
  /** Client credentials in an HTTP Basic header (RFC 6749, 2.3.1): each part form-urlencoded. */
159
66
  function basicCredentials(header) {
160
67
  if (header?.startsWith('Basic ') !== true) {
@@ -176,7 +83,7 @@ function registerSignIn(server, deps) {
176
83
  const fields = fieldsOf(request.query);
177
84
  const holder = holderSchema.safeParse(fields.holder);
178
85
  if (!holder.success) {
179
- return errorPage(reply, { status: HTTP_BAD_REQUEST, title: 'Connect an MCP client', look: 'noPick', message: 'Pick on the page whether to sign in as yourself or to ask for access for the client.' });
86
+ return failed(reply, 'noPick');
180
87
  }
181
88
  const started = await signIn.start({ request: authorizationRequestOf(fields), holder: holder.data });
182
89
  if (!started.isOk) {
@@ -185,32 +92,12 @@ function registerSignIn(server, deps) {
185
92
  const cookie = cookieHeader(SIGN_IN_COOKIE, { value: started.value.browserSecret, maxAgeSeconds: SIGN_IN_LIFETIME_MS / MS_PER_SECOND, isSecure });
186
93
  return reply.code(HTTP_FOUND).header('location', started.value.redirectTo).header('set-cookie', cookie).send();
187
94
  });
188
- server.get('/sign-in', (request, reply) => {
189
- const { return_to: returnTo } = fieldsOf(request.query);
190
- const started = signIn.pages.start({ returnTo });
191
- const cookie = cookieHeader(SIGN_IN_COOKIE, { value: started.browserSecret, maxAgeSeconds: SIGN_IN_LIFETIME_MS / MS_PER_SECOND, isSecure });
192
- return reply.code(HTTP_FOUND).header('location', started.redirectTo).header('set-cookie', cookie).send();
193
- });
194
- server.post('/sign-out', async (request, reply) => {
195
- if (!isSameOrigin(request)) {
196
- return reply.code(HTTP_FORBIDDEN).type('text/plain; charset=utf-8').send('Signing out is sent only from the gateway\'s own pages.');
197
- }
198
- const session = request.headers.cookie === undefined ? undefined : signIn.pages.sessions.inCookie(request.headers.cookie);
199
- if (session !== undefined) {
200
- await signIn.pages.signOut(session);
201
- }
202
- return reply.code(HTTP_SEE_OTHER).header('location', FIRST_PAGE).header('set-cookie', pageSessionHeader({ value: '', isSecure, isEnding: true })).send();
203
- });
204
- /** Where the browser goes next: back to the client or the page, or, holding the secret in its waiting cookie, to the waiting page. */
95
+ /** Where the browser goes next: back to the client, or, holding the secret in its waiting cookie, to the waiting page. */
205
96
  const goOn = (reply, { answer, browserSecret }) => {
206
97
  const cleared = cookieHeader(SIGN_IN_COOKIE, { value: '', maxAgeSeconds: 0, isSecure });
207
98
  if (answer.kind === 'answered') {
208
99
  return reply.code(HTTP_FOUND).header('location', answer.redirectTo).header('set-cookie', cleared).send();
209
100
  }
210
- if (answer.kind === 'signedIn') {
211
- const session = pageSessionHeader({ value: answer.session, isSecure, isEnding: false });
212
- return reply.code(HTTP_FOUND).header('location', answer.redirectTo).header('set-cookie', [cleared, session]).send();
213
- }
214
101
  const waiting = cookieHeader(WAITING_COOKIE, { value: browserSecret ?? '', maxAgeSeconds: REQUEST_LIFETIME_MS / MS_PER_SECOND, isSecure });
215
102
  return reply.code(HTTP_FOUND).header('location', `${WAITING_COOKIE.path}?${new URLSearchParams({ waiting: answer.waiting }).toString()}`).header('set-cookie', [cleared, waiting]).send();
216
103
  };
@@ -223,31 +110,27 @@ function registerSignIn(server, deps) {
223
110
  }
224
111
  void reply.header('set-cookie', cookieHeader(SIGN_IN_COOKIE, { value: '', maxAgeSeconds: 0, isSecure }));
225
112
  const refusal = completed.error;
226
- const title = 'Sign in';
227
113
  switch (refusal.kind) {
228
114
  case 'invalidClient':
229
115
  case 'redirect':
230
116
  return sendBack(reply, { refusal, issuer });
117
+ case 'pagasaeRefused':
118
+ request.log.warn({ reason: refusal.message }, 'pagasae did not take the sign-in code');
119
+ return failed(reply, refusal.kind);
231
120
  case 'unknownSignIn':
232
- return errorPage(reply, { status: HTTP_BAD_REQUEST, title, look: 'signInEnded', message: 'This sign-in is unknown, or took over 10 minutes. Start again from your MCP client.' });
233
121
  case 'otherBrowser':
234
- return errorPage(reply, { status: HTTP_BAD_REQUEST, title, look: 'otherBrowser', message: 'This sign-in was started in another browser, so it is not yours to finish. Start again from your MCP client.' });
235
122
  case 'fleetNotServed':
236
- return errorPage(reply, { status: HTTP_FORBIDDEN, title, look: 'noFleet', message: 'This gateway does not serve the fleet you signed in to.' });
237
123
  case 'outsidePartiesOff':
238
- return errorPage(reply, { status: HTTP_FORBIDDEN, title, look: 'outsidePartiesOff', message: "Your fleet's outside parties are off, so no MCP client can ask for access. Sign in as yourself instead, or ask whoever runs your fleet." });
239
- case 'pagasaeRefused':
240
- return errorPage(reply, { status: HTTP_BAD_GATEWAY, title, look: 'signInFailed', message: `The sign-in did not go through: ${refusal.message}. Start again from your MCP client.` });
124
+ return failed(reply, refusal.kind);
241
125
  }
242
126
  });
243
127
  // The sealed waiting goes in the query, as it is longer than a path parameter may be.
244
128
  server.get(WAITING_COOKIE.path, async (request, reply) => {
245
129
  const { waiting = '' } = fieldsOf(request.query);
246
130
  const read = await signIn.readWaiting({ waiting, browserSecret: cookieValue(WAITING_COOKIE, request.headers.cookie) });
247
- const title = 'Waiting for approval';
248
131
  if (read.isOk) {
249
132
  if (read.value.kind === 'waiting') {
250
- return htmlPage(reply, { status: 200, title, body: waitingPage({ ...read.value, now: signIn.clock.now() }) });
133
+ return reply.code(HTTP_FOUND).header('location', `${WAITING_PAGE}?${new URLSearchParams({ waiting }).toString()}`).send();
251
134
  }
252
135
  const cleared = cookieHeader(WAITING_COOKIE, { value: '', maxAgeSeconds: 0, isSecure });
253
136
  return reply.code(HTTP_FOUND).header('location', read.value.redirectTo).header('set-cookie', cleared).send();
@@ -258,9 +141,9 @@ function registerSignIn(server, deps) {
258
141
  case 'redirect':
259
142
  return sendBack(reply, { refusal, issuer });
260
143
  case 'unknownWaiting':
261
- return errorPage(reply, { status: HTTP_NOT_FOUND, title, look: 'requestEnded', message: 'This request is unknown, or ended long ago. Start again from your MCP client.' });
144
+ return failed(reply, 'unknownWaiting');
262
145
  case 'otherBrowser':
263
- return errorPage(reply, { status: HTTP_BAD_REQUEST, title, look: 'otherBrowser', message: 'This request was made in another browser, so it is not yours to follow. Start again from your MCP client.' });
146
+ return failed(reply, 'otherBrowserWaiting');
264
147
  }
265
148
  });
266
149
  // The waiting page's live channel: told when its request expires, and to go on once the request no longer waits.
@@ -311,14 +194,15 @@ export function registerOAuthRoutes(server, deps) {
311
194
  }));
312
195
  server.get('/authorize', async (request, reply) => {
313
196
  if (deps.signIn === undefined) {
314
- return errorPage(reply, { status: HTTP_FORBIDDEN, title: 'Connect an MCP client', look: 'noSignIn', message: 'This gateway signs no one in, so no MCP client can connect to it: its operator sets pagasae first.' });
197
+ return failed(reply, 'noSignIn');
315
198
  }
316
199
  const parameters = authorizationRequestOf(fieldsOf(request.query));
317
200
  const read = await deps.readAuthorization(parameters);
318
201
  if (!read.isOk) {
319
202
  return sendBack(reply, { refusal: read.error, issuer: deps.issuer });
320
203
  }
321
- return htmlPage(reply, { status: 200, title: 'Connect an MCP client', body: pickPage(parameters, read.value) });
204
+ const asked = Object.entries(parameters).flatMap(([name, value]) => (value === undefined ? [] : [[name, value]]));
205
+ return reply.code(HTTP_FOUND).header('location', `${PICK_PAGE}?${new URLSearchParams(asked).toString()}`).send();
322
206
  });
323
207
  if (deps.signIn !== undefined) {
324
208
  registerSignIn(server, { issuer: deps.issuer, signIn: deps.signIn });
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-routes.js","sourceRoot":"","sources":["../../../src/adapters/http/oauth-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-routes.js","sourceRoot":"","sources":["../../../src/adapters/http/oauth-routes.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,27 @@
1
1
  /**
2
2
  * The tools a signed-in person's MCP client is served (Q20, decision 0057):
3
3
  * their person ship's calls, which the gateway makes as the ship's crew, so
4
- * the chat holds no crew token; and asking for an outside MCP server as
5
- * their account (decision 0056).
4
+ * the chat holds no crew token: its inbox, and starting a message where the
5
+ * fleet lets it (aeolus-fleet #1046); and asking for an outside MCP server
6
+ * as their account (decision 0056).
6
7
  */
7
8
  import { McpServer } from '@modelcontextprotocol/server';
8
9
  import type { AnswerDelivery } from '../../core/people/answer-delivery.js';
9
10
  import type { DoneDelivery } from '../../core/people/done-delivery.js';
11
+ import type { ListShips } from '../../core/people/list-ships.js';
10
12
  import type { OpenDelivery } from '../../core/people/open-delivery.js';
11
- import type { PersonCaller } from '../../core/people/person-crew.js';
13
+ import type { GrantCaller } from '../../core/people/person-crew.js';
12
14
  import type { ReadInbox } from '../../core/people/read-inbox.js';
15
+ import type { SendMessage } from '../../core/people/send-message.js';
13
16
  import type { AskForServer } from '../../core/requests/ask-for-server.js';
14
17
  export interface PersonToolsDeps {
15
18
  readInbox: ReadInbox;
16
19
  openDelivery: OpenDelivery;
17
20
  answerDelivery: AnswerDelivery;
18
21
  doneDelivery: DoneDelivery;
22
+ listShips: ListShips;
23
+ sendMessage: SendMessage;
19
24
  askForServer: AskForServer;
20
25
  }
21
26
  /** The MCP server one request of a person's client is served by. */
22
- export declare function personServerFor(caller: PersonCaller, deps: PersonToolsDeps): McpServer;
27
+ export declare function personServerFor(caller: GrantCaller, deps: PersonToolsDeps): McpServer;