@aeolus-fleet/core 0.27.1 → 0.28.1

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 (371) hide show
  1. package/dist/adapters/crypto/account-token-signatures.d.ts +12 -0
  2. package/dist/adapters/crypto/account-token-signatures.js +104 -0
  3. package/dist/adapters/crypto/account-token-signatures.js.map +1 -0
  4. package/dist/adapters/http/request-credentials.d.ts +7 -1
  5. package/dist/adapters/http/request-credentials.js +18 -5
  6. package/dist/adapters/http/request-credentials.js.map +1 -1
  7. package/dist/adapters/http/server.js +4 -2
  8. package/dist/adapters/http/server.js.map +1 -1
  9. package/dist/adapters/prisma/event-log.js +13 -1
  10. package/dist/adapters/prisma/event-log.js.map +1 -1
  11. package/dist/adapters/prisma/generated/browser.d.ts +30 -0
  12. package/dist/adapters/prisma/generated/client.d.ts +30 -0
  13. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +120 -0
  14. package/dist/adapters/prisma/generated/enums.d.ts +25 -0
  15. package/dist/adapters/prisma/generated/enums.js +22 -1
  16. package/dist/adapters/prisma/generated/enums.js.map +1 -1
  17. package/dist/adapters/prisma/generated/internal/class.d.ts +44 -0
  18. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  19. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  20. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +372 -9
  21. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +38 -11
  22. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  23. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +39 -8
  24. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +38 -11
  25. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  26. package/dist/adapters/prisma/generated/models/AccountCutOff.d.ts +944 -0
  27. package/dist/adapters/prisma/generated/models/AccountCutOff.js +2 -0
  28. package/dist/adapters/prisma/generated/models/AccountCutOff.js.map +1 -0
  29. package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +59 -1
  30. package/dist/adapters/prisma/generated/models/Event.d.ts +426 -1
  31. package/dist/adapters/prisma/generated/models/Fleet.d.ts +871 -0
  32. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.d.ts +1031 -0
  33. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js +2 -0
  34. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js.map +1 -0
  35. package/dist/adapters/prisma/generated/models/Label.d.ts +113 -39
  36. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.d.ts +1133 -0
  37. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js +2 -0
  38. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js.map +1 -0
  39. package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +24 -255
  40. package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1 -40
  41. package/dist/adapters/prisma/generated/models/Ship.d.ts +782 -6
  42. package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +39 -1
  43. package/dist/adapters/prisma/generated/models/VerifiedFacts.d.ts +1325 -0
  44. package/dist/adapters/prisma/generated/models/VerifiedFacts.js +2 -0
  45. package/dist/adapters/prisma/generated/models/VerifiedFacts.js.map +1 -0
  46. package/dist/adapters/prisma/generated/models.d.ts +4 -0
  47. package/dist/adapters/prisma/history.js +1 -0
  48. package/dist/adapters/prisma/history.js.map +1 -1
  49. package/dist/adapters/prisma/identity.d.ts +3 -1
  50. package/dist/adapters/prisma/identity.js +41 -8
  51. package/dist/adapters/prisma/identity.js.map +1 -1
  52. package/dist/adapters/prisma/network.d.ts +7 -2
  53. package/dist/adapters/prisma/network.js +92 -65
  54. package/dist/adapters/prisma/network.js.map +1 -1
  55. package/dist/adapters/prisma/registry.js +19 -14
  56. package/dist/adapters/prisma/registry.js.map +1 -1
  57. package/dist/adapters/prisma/rows.d.ts +9 -4
  58. package/dist/adapters/prisma/rows.js +75 -19
  59. package/dist/adapters/prisma/rows.js.map +1 -1
  60. package/dist/adapters/prisma/unit-of-work.d.ts +4 -2
  61. package/dist/adapters/prisma/unit-of-work.js +5 -2
  62. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  63. package/dist/adapters/prisma/verified-facts.d.ts +4 -0
  64. package/dist/adapters/prisma/verified-facts.js +65 -0
  65. package/dist/adapters/prisma/verified-facts.js.map +1 -0
  66. package/dist/adapters/rest/rest-api.js +2 -2
  67. package/dist/adapters/rest/rest-api.js.map +1 -1
  68. package/dist/adapters/trpc/console.d.ts +3 -1
  69. package/dist/adapters/trpc/context.d.ts +22 -8
  70. package/dist/adapters/trpc/fleet.d.ts +259 -52
  71. package/dist/adapters/trpc/fleet.js +121 -84
  72. package/dist/adapters/trpc/fleet.js.map +1 -1
  73. package/dist/adapters/trpc/installation-token.d.ts +7 -0
  74. package/dist/adapters/trpc/installation-token.js +10 -0
  75. package/dist/adapters/trpc/installation-token.js.map +1 -0
  76. package/dist/adapters/trpc/installation.d.ts +32 -2
  77. package/dist/adapters/trpc/installation.js +14 -10
  78. package/dist/adapters/trpc/installation.js.map +1 -1
  79. package/dist/adapters/trpc/router.d.ts +307 -43
  80. package/dist/adapters/trpc/ship-contract.js +6 -4
  81. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  82. package/dist/adapters/trpc/ship.d.ts +32 -1
  83. package/dist/adapters/trpc/ship.js +4 -2
  84. package/dist/adapters/trpc/ship.js.map +1 -1
  85. package/dist/adapters/trpc/trpc.d.ts +36 -13
  86. package/dist/adapters/trpc/trpc.js +117 -26
  87. package/dist/adapters/trpc/trpc.js.map +1 -1
  88. package/dist/app.d.ts +2 -0
  89. package/dist/app.js +22 -0
  90. package/dist/app.js.map +1 -1
  91. package/dist/config.d.ts +5 -0
  92. package/dist/config.js +3 -1
  93. package/dist/config.js.map +1 -1
  94. package/dist/domain/identity/authenticate-account.d.ts +35 -0
  95. package/dist/domain/identity/authenticate-account.js +54 -0
  96. package/dist/domain/identity/authenticate-account.js.map +1 -0
  97. package/dist/domain/identity/authenticate-installation.d.ts +23 -0
  98. package/dist/domain/identity/authenticate-installation.js +20 -0
  99. package/dist/domain/identity/authenticate-installation.js.map +1 -0
  100. package/dist/domain/identity/authenticate.d.ts +2 -2
  101. package/dist/domain/identity/console-session.d.ts +6 -3
  102. package/dist/domain/identity/console-session.js.map +1 -1
  103. package/dist/domain/identity/cut-off-account.d.ts +29 -0
  104. package/dist/domain/identity/cut-off-account.js +37 -0
  105. package/dist/domain/identity/cut-off-account.js.map +1 -0
  106. package/dist/domain/identity/dismiss-notice.d.ts +2 -2
  107. package/dist/domain/identity/issue-sign-in-ticket.d.ts +9 -3
  108. package/dist/domain/identity/issue-sign-in-ticket.js +8 -2
  109. package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -1
  110. package/dist/domain/identity/ports.d.ts +52 -5
  111. package/dist/domain/identity/read-account.d.ts +8 -4
  112. package/dist/domain/identity/read-account.js +1 -1
  113. package/dist/domain/identity/read-account.js.map +1 -1
  114. package/dist/domain/identity/read-guide.d.ts +2 -2
  115. package/dist/domain/identity/read-notices.d.ts +2 -2
  116. package/dist/domain/identity/record-guide-progress.d.ts +2 -2
  117. package/dist/domain/identity/redeem-sign-in-ticket.d.ts +2 -1
  118. package/dist/domain/identity/redeem-sign-in-ticket.js +3 -2
  119. package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -1
  120. package/dist/domain/identity/set-theme.d.ts +2 -2
  121. package/dist/domain/identity/sign-in-ticket.d.ts +3 -1
  122. package/dist/domain/identity/sign-in.d.ts +2 -2
  123. package/dist/domain/identity/sign-in.js +2 -0
  124. package/dist/domain/identity/sign-in.js.map +1 -1
  125. package/dist/domain/identity/sign-out.d.ts +2 -2
  126. package/dist/domain/identity/sign-out.js +1 -1
  127. package/dist/domain/identity/sign-out.js.map +1 -1
  128. package/dist/domain/identity/start-console-session.d.ts +4 -2
  129. package/dist/domain/identity/start-console-session.js +6 -4
  130. package/dist/domain/identity/start-console-session.js.map +1 -1
  131. package/dist/domain/identity/start-viewer-session.js +1 -0
  132. package/dist/domain/identity/start-viewer-session.js.map +1 -1
  133. package/dist/domain/messaging/delivery.d.ts +3 -1
  134. package/dist/domain/messaging/delivery.js +9 -6
  135. package/dist/domain/messaging/delivery.js.map +1 -1
  136. package/dist/domain/messaging/dismiss-delivery.d.ts +2 -2
  137. package/dist/domain/messaging/message.d.ts +3 -1
  138. package/dist/domain/messaging/message.js +1 -1
  139. package/dist/domain/messaging/message.js.map +1 -1
  140. package/dist/domain/messaging/ping-ship.d.ts +2 -2
  141. package/dist/domain/messaging/ping-ship.js +1 -1
  142. package/dist/domain/messaging/ping-ship.js.map +1 -1
  143. package/dist/domain/messaging/resend-delivery.d.ts +2 -2
  144. package/dist/domain/messaging/resend-delivery.js +1 -0
  145. package/dist/domain/messaging/resend-delivery.js.map +1 -1
  146. package/dist/domain/messaging/send-message.d.ts +3 -3
  147. package/dist/domain/messaging/send-message.js +1 -0
  148. package/dist/domain/messaging/send-message.js.map +1 -1
  149. package/dist/domain/registry/apply-network-rules.d.ts +32 -0
  150. package/dist/domain/registry/apply-network-rules.js +33 -0
  151. package/dist/domain/registry/apply-network-rules.js.map +1 -0
  152. package/dist/domain/registry/assign-crew.d.ts +2 -2
  153. package/dist/domain/registry/assign-crew.js +3 -2
  154. package/dist/domain/registry/assign-crew.js.map +1 -1
  155. package/dist/domain/registry/assign-label.d.ts +7 -5
  156. package/dist/domain/registry/assign-label.js +16 -6
  157. package/dist/domain/registry/assign-label.js.map +1 -1
  158. package/dist/domain/registry/change-label-values.d.ts +1 -1
  159. package/dist/domain/registry/change-label-values.js +4 -3
  160. package/dist/domain/registry/change-label-values.js.map +1 -1
  161. package/dist/domain/registry/check-reach.d.ts +45 -24
  162. package/dist/domain/registry/check-reach.js +76 -42
  163. package/dist/domain/registry/check-reach.js.map +1 -1
  164. package/dist/domain/registry/clear-request.d.ts +1 -1
  165. package/dist/domain/registry/clear-request.js +1 -1
  166. package/dist/domain/registry/clear-request.js.map +1 -1
  167. package/dist/domain/registry/commission-ship.d.ts +23 -14
  168. package/dist/domain/registry/commission-ship.js +167 -21
  169. package/dist/domain/registry/commission-ship.js.map +1 -1
  170. package/dist/domain/registry/confirm-crew-release.d.ts +2 -2
  171. package/dist/domain/registry/confirm-crew-release.js +3 -2
  172. package/dist/domain/registry/confirm-crew-release.js.map +1 -1
  173. package/dist/domain/registry/confirm-worktree-cleared.d.ts +2 -2
  174. package/dist/domain/registry/confirm-worktree-cleared.js +3 -2
  175. package/dist/domain/registry/confirm-worktree-cleared.js.map +1 -1
  176. package/dist/domain/registry/connect-plugin.d.ts +5 -4
  177. package/dist/domain/registry/connect-plugin.js +6 -7
  178. package/dist/domain/registry/connect-plugin.js.map +1 -1
  179. package/dist/domain/registry/crew-request.d.ts +2 -2
  180. package/dist/domain/registry/crew-request.js.map +1 -1
  181. package/dist/domain/registry/declare-network-rules.d.ts +9 -6
  182. package/dist/domain/registry/declare-network-rules.js +13 -8
  183. package/dist/domain/registry/declare-network-rules.js.map +1 -1
  184. package/dist/domain/registry/declare-scopes.d.ts +2 -2
  185. package/dist/domain/registry/declared-network-rules.d.ts +30 -21
  186. package/dist/domain/registry/declared-network-rules.js +46 -22
  187. package/dist/domain/registry/declared-network-rules.js.map +1 -1
  188. package/dist/domain/registry/define-label.d.ts +1 -1
  189. package/dist/domain/registry/define-label.js +5 -5
  190. package/dist/domain/registry/define-label.js.map +1 -1
  191. package/dist/domain/registry/delete-label.d.ts +1 -1
  192. package/dist/domain/registry/delete-label.js +4 -3
  193. package/dist/domain/registry/delete-label.js.map +1 -1
  194. package/dist/domain/registry/discard-network-rules-draft.d.ts +23 -0
  195. package/dist/domain/registry/discard-network-rules-draft.js +24 -0
  196. package/dist/domain/registry/discard-network-rules-draft.js.map +1 -0
  197. package/dist/domain/registry/discover.d.ts +11 -10
  198. package/dist/domain/registry/discover.js +11 -5
  199. package/dist/domain/registry/discover.js.map +1 -1
  200. package/dist/domain/registry/explain-crew-request.d.ts +2 -2
  201. package/dist/domain/registry/explain-crew-request.js +3 -2
  202. package/dist/domain/registry/explain-crew-request.js.map +1 -1
  203. package/dist/domain/registry/explain-reach.d.ts +21 -14
  204. package/dist/domain/registry/explain-reach.js +53 -53
  205. package/dist/domain/registry/explain-reach.js.map +1 -1
  206. package/dist/domain/registry/get-ship.d.ts +2 -2
  207. package/dist/domain/registry/get-starting-prompt.d.ts +4 -2
  208. package/dist/domain/registry/get-starting-prompt.js +7 -5
  209. package/dist/domain/registry/get-starting-prompt.js.map +1 -1
  210. package/dist/domain/registry/give-back-crew-request.d.ts +2 -2
  211. package/dist/domain/registry/give-back-crew-request.js +3 -2
  212. package/dist/domain/registry/give-back-crew-request.js.map +1 -1
  213. package/dist/domain/registry/grant-scopes.d.ts +8 -5
  214. package/dist/domain/registry/grant-scopes.js +14 -5
  215. package/dist/domain/registry/grant-scopes.js.map +1 -1
  216. package/dist/domain/registry/label.d.ts +69 -18
  217. package/dist/domain/registry/label.js +79 -28
  218. package/dist/domain/registry/label.js.map +1 -1
  219. package/dist/domain/registry/lease.d.ts +1 -1
  220. package/dist/domain/registry/list-fleet.d.ts +2 -0
  221. package/dist/domain/registry/list-fleet.js +1 -0
  222. package/dist/domain/registry/list-fleet.js.map +1 -1
  223. package/dist/domain/registry/list-scopes.d.ts +2 -1
  224. package/dist/domain/registry/list-scopes.js +2 -1
  225. package/dist/domain/registry/list-scopes.js.map +1 -1
  226. package/dist/domain/registry/managed-or-assigned.d.ts +12 -4
  227. package/dist/domain/registry/managed-or-assigned.js +25 -7
  228. package/dist/domain/registry/managed-or-assigned.js.map +1 -1
  229. package/dist/domain/registry/network-rules-draft.d.ts +45 -0
  230. package/dist/domain/registry/network-rules-draft.js +41 -0
  231. package/dist/domain/registry/network-rules-draft.js.map +1 -0
  232. package/dist/domain/registry/network-settings.d.ts +92 -122
  233. package/dist/domain/registry/network-settings.js +99 -159
  234. package/dist/domain/registry/network-settings.js.map +1 -1
  235. package/dist/domain/registry/ports.d.ts +47 -11
  236. package/dist/domain/registry/reach-refusal.d.ts +18 -4
  237. package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
  238. package/dist/domain/registry/read-built-in-rules.d.ts +4 -3
  239. package/dist/domain/registry/read-built-in-rules.js +7 -6
  240. package/dist/domain/registry/read-built-in-rules.js.map +1 -1
  241. package/dist/domain/registry/read-clear-requests.d.ts +2 -2
  242. package/dist/domain/registry/read-clear-requests.js.map +1 -1
  243. package/dist/domain/registry/read-declared-network-rules.d.ts +5 -5
  244. package/dist/domain/registry/read-declared-network-rules.js +4 -4
  245. package/dist/domain/registry/read-declared-network-rules.js.map +1 -1
  246. package/dist/domain/registry/read-network-rules-draft-changes.d.ts +22 -0
  247. package/dist/domain/registry/read-network-rules-draft-changes.js +53 -0
  248. package/dist/domain/registry/read-network-rules-draft-changes.js.map +1 -0
  249. package/dist/domain/registry/read-network-rules.d.ts +30 -0
  250. package/dist/domain/registry/read-network-rules.js +18 -0
  251. package/dist/domain/registry/read-network-rules.js.map +1 -0
  252. package/dist/domain/registry/read-on-behalf.d.ts +3 -3
  253. package/dist/domain/registry/read-on-behalf.js.map +1 -1
  254. package/dist/domain/registry/read-reach-refusals.d.ts +6 -5
  255. package/dist/domain/registry/read-reach-refusals.js +13 -8
  256. package/dist/domain/registry/read-reach-refusals.js.map +1 -1
  257. package/dist/domain/registry/read-reach.d.ts +6 -8
  258. package/dist/domain/registry/read-reach.js +21 -16
  259. package/dist/domain/registry/read-reach.js.map +1 -1
  260. package/dist/domain/registry/recrew-ship.d.ts +2 -2
  261. package/dist/domain/registry/recrew-ship.js +3 -3
  262. package/dist/domain/registry/recrew-ship.js.map +1 -1
  263. package/dist/domain/registry/release-ship.d.ts +3 -2
  264. package/dist/domain/registry/release-ship.js +4 -3
  265. package/dist/domain/registry/release-ship.js.map +1 -1
  266. package/dist/domain/registry/remove-crew-request.d.ts +2 -2
  267. package/dist/domain/registry/remove-crew-request.js +4 -3
  268. package/dist/domain/registry/remove-crew-request.js.map +1 -1
  269. package/dist/domain/registry/rename-ship.d.ts +1 -1
  270. package/dist/domain/registry/rename-ship.js +4 -3
  271. package/dist/domain/registry/rename-ship.js.map +1 -1
  272. package/dist/domain/registry/report-crew-status.d.ts +2 -2
  273. package/dist/domain/registry/report-crew-status.js +3 -2
  274. package/dist/domain/registry/report-crew-status.js.map +1 -1
  275. package/dist/domain/registry/request-crew.d.ts +3 -3
  276. package/dist/domain/registry/request-crew.js +4 -3
  277. package/dist/domain/registry/request-crew.js.map +1 -1
  278. package/dist/domain/registry/request-worktree-clear.d.ts +2 -2
  279. package/dist/domain/registry/request-worktree-clear.js +4 -3
  280. package/dist/domain/registry/request-worktree-clear.js.map +1 -1
  281. package/dist/domain/registry/retire-ship.d.ts +16 -12
  282. package/dist/domain/registry/retire-ship.js +28 -21
  283. package/dist/domain/registry/retire-ship.js.map +1 -1
  284. package/dist/domain/registry/save-network-rules-draft.d.ts +31 -0
  285. package/dist/domain/registry/save-network-rules-draft.js +27 -0
  286. package/dist/domain/registry/save-network-rules-draft.js.map +1 -0
  287. package/dist/domain/registry/scope-grant.d.ts +19 -19
  288. package/dist/domain/registry/scope-grant.js +8 -9
  289. package/dist/domain/registry/scope-grant.js.map +1 -1
  290. package/dist/domain/registry/set-built-in-rule.d.ts +3 -3
  291. package/dist/domain/registry/set-built-in-rule.js +5 -9
  292. package/dist/domain/registry/set-built-in-rule.js.map +1 -1
  293. package/dist/domain/registry/set-owner.d.ts +9 -6
  294. package/dist/domain/registry/set-owner.js +14 -8
  295. package/dist/domain/registry/set-owner.js.map +1 -1
  296. package/dist/domain/registry/set-verified-facts.d.ts +36 -0
  297. package/dist/domain/registry/set-verified-facts.js +58 -0
  298. package/dist/domain/registry/set-verified-facts.js.map +1 -0
  299. package/dist/domain/registry/ship.d.ts +52 -18
  300. package/dist/domain/registry/ship.js +76 -18
  301. package/dist/domain/registry/ship.js.map +1 -1
  302. package/dist/domain/registry/statement.d.ts +2 -2
  303. package/dist/domain/registry/statement.js +2 -2
  304. package/dist/domain/registry/statement.js.map +1 -1
  305. package/dist/domain/registry/turn.d.ts +2 -2
  306. package/dist/domain/registry/turn.js +2 -2
  307. package/dist/domain/registry/turn.js.map +1 -1
  308. package/dist/domain/registry/unassign-label.d.ts +8 -5
  309. package/dist/domain/registry/unassign-label.js +17 -6
  310. package/dist/domain/registry/unassign-label.js.map +1 -1
  311. package/dist/domain/registry/verified-facts.d.ts +75 -0
  312. package/dist/domain/registry/verified-facts.js +107 -0
  313. package/dist/domain/registry/verified-facts.js.map +1 -0
  314. package/dist/domain/registry/whoami.d.ts +2 -2
  315. package/dist/domain/shared/caller.d.ts +40 -6
  316. package/dist/domain/shared/caller.js +20 -0
  317. package/dist/domain/shared/caller.js.map +1 -1
  318. package/dist/domain/shared/errors.d.ts +1 -1
  319. package/dist/domain/shared/errors.js.map +1 -1
  320. package/dist/domain/shared/events.d.ts +13 -2
  321. package/dist/domain/shared/events.js.map +1 -1
  322. package/dist/domain/shared/history.d.ts +3 -1
  323. package/dist/domain/shared/history.js.map +1 -1
  324. package/dist/domain/shared/read-fleet-limits.d.ts +2 -2
  325. package/dist/domain/shared/read-health.d.ts +2 -2
  326. package/dist/domain/shared/read-inbox.d.ts +2 -2
  327. package/dist/domain/shared/read-message.d.ts +2 -2
  328. package/dist/domain/shared/read-needs-attention.d.ts +2 -2
  329. package/dist/domain/shared/read-sent-message.d.ts +2 -2
  330. package/dist/domain/shared/read-ship-messages.d.ts +2 -2
  331. package/dist/domain/shared/read-ship-timeline.d.ts +2 -2
  332. package/dist/domain/shared/read-ship-way.d.ts +2 -2
  333. package/dist/domain/shared/read-ship-way.js +1 -1
  334. package/dist/domain/shared/read-ship-way.js.map +1 -1
  335. package/dist/start.js +1 -0
  336. package/dist/start.js.map +1 -1
  337. package/dist/testing/account-token-issuer.d.ts +30 -0
  338. package/dist/testing/account-token-issuer.js +48 -0
  339. package/dist/testing/account-token-issuer.js.map +1 -0
  340. package/dist/testing/fleet.d.ts +2 -2
  341. package/dist/testing/index.d.ts +1 -1
  342. package/dist/wiring.d.ts +21 -8
  343. package/dist/wiring.js +32 -13
  344. package/dist/wiring.js.map +1 -1
  345. package/package.json +2 -5
  346. package/src/adapters/prisma/migrations/20261019200000_account_cut_offs/migration.sql +10 -0
  347. package/src/adapters/prisma/migrations/20261019210000_event_actors/migration.sql +32 -0
  348. package/src/adapters/prisma/migrations/20261020090000_argos_jobs_as_scopes/migration.sql +65 -0
  349. package/src/adapters/prisma/migrations/20261020100000_installation_labels/migration.sql +7 -0
  350. package/src/adapters/prisma/migrations/20261020110000_installation_declared_network_rules/migration.sql +10 -0
  351. package/src/adapters/prisma/migrations/20261020120000_commissioning_actors/migration.sql +14 -0
  352. package/src/adapters/prisma/migrations/20261020130000_console_sign_in_accounts/migration.sql +4 -0
  353. package/src/adapters/prisma/migrations/20261020140000_event_signed_in_accounts/migration.sql +4 -0
  354. package/src/adapters/prisma/migrations/20261020150000_account_cut_off_ends_console_sessions/migration.sql +2 -0
  355. package/src/adapters/prisma/migrations/20261020160000_network_in_core/migration.sql +30 -0
  356. package/src/adapters/prisma/migrations/20261020170000_verify_scope/migration.sql +64 -0
  357. package/src/adapters/prisma/migrations/20261020180000_verified_facts/migration.sql +21 -0
  358. package/src/adapters/prisma/migrations/20261020190000_verified_facts_by_writer/migration.sql +3 -0
  359. package/src/adapters/prisma/schema.prisma +132 -23
  360. package/dist/domain/registry/read-network-plugin.d.ts +0 -23
  361. package/dist/domain/registry/read-network-plugin.js +0 -15
  362. package/dist/domain/registry/read-network-plugin.js.map +0 -1
  363. package/dist/domain/registry/register-network-plugin.d.ts +0 -28
  364. package/dist/domain/registry/register-network-plugin.js +0 -26
  365. package/dist/domain/registry/register-network-plugin.js.map +0 -1
  366. package/dist/domain/registry/set-network-rules.d.ts +0 -31
  367. package/dist/domain/registry/set-network-rules.js +0 -27
  368. package/dist/domain/registry/set-network-rules.js.map +0 -1
  369. package/dist/domain/registry/unregister-network-plugin.d.ts +0 -27
  370. package/dist/domain/registry/unregister-network-plugin.js +0 -25
  371. package/dist/domain/registry/unregister-network-plugin.js.map +0 -1
@@ -1,4 +1,5 @@
1
- import { type FleetId, type LabelId, type LabelValueId, type ShipId, type ShipKind } from '@aeolus-fleet/common';
1
+ import { type FleetId, type LabelId, type LabelValueId, type ShipId } from '@aeolus-fleet/common';
2
+ import type { Caller } from '../shared/caller.js';
2
3
  import { type DomainError } from '../shared/errors.js';
3
4
  import type { Actor, NewEvent } from '../shared/events.js';
4
5
  import { type Result } from '../shared/result.js';
@@ -8,9 +9,23 @@ export interface LabelValue {
8
9
  id: LabelValueId;
9
10
  value: string;
10
11
  }
12
+ /** Who owns a label (decision 0031): the ship that defined it, or the installation; never an account. */
13
+ export type LabelOwner = {
14
+ kind: 'ship';
15
+ shipId: ShipId;
16
+ } | {
17
+ kind: 'installation';
18
+ };
19
+ /** The owner an actor defines a label as: none for an account, which owns no label (decision 0031). */
20
+ export declare function labelOwnerOf(caller: Caller): LabelOwner | undefined;
21
+ /** The owner as a refusal names it: a ship by its name, or the installation. */
22
+ export declare function ownerNameOf(owner: LabelOwner, shipNameOf: (shipId: ShipId) => Promise<string | undefined>): Promise<string>;
23
+ /** Whether the other is the same owner: none, an account, is no owner. */
24
+ export declare function isSameOwner(owner: LabelOwner, other: LabelOwner | undefined): boolean;
11
25
  /**
12
26
  * A label (docs/blueprint.md, "Label"; decision 0031): a key with a defined
13
- * set of values, each with its own id, owned by the ship that defined it.
27
+ * set of values, each with its own id, owned by the ship or the installation
28
+ * that defined it.
14
29
  * Ids are for machines, key and value texts for people. Only its owner
15
30
  * changes its values and assigns them, to any ship, its own included. It
16
31
  * retires with its owner.
@@ -22,16 +37,19 @@ export interface Label {
22
37
  key: string;
23
38
  /** In the order the owner gave them, each once. */
24
39
  values: readonly LabelValue[];
25
- ownerShipId: ShipId;
40
+ owner: LabelOwner;
26
41
  }
27
- /** A label as the fleet lists it: its id, key and values, and its owner by id and name. */
42
+ /** A label as the fleet lists it: its id, key and values, and its owner: a ship by id and name, or the installation. */
28
43
  export interface ListedLabel {
29
44
  id: LabelId;
30
45
  key: string;
31
46
  values: readonly LabelValue[];
32
47
  owner: {
48
+ kind: 'ship';
33
49
  id: ShipId;
34
50
  name: string;
51
+ } | {
52
+ kind: 'installation';
35
53
  };
36
54
  }
37
55
  /** One value a ship carries, with its label: ids and texts. */
@@ -64,15 +82,17 @@ type InvalidValue = DomainError<'INVALID_LABEL_VALUE'>;
64
82
  type InvalidValues = DomainError<'INVALID_LABEL_VALUES'>;
65
83
  /** A label's key, checked against the limits. */
66
84
  export declare function labelKey(key: string): Result<string, InvalidKey>;
67
- export type DefineLabelRefusal = InvalidKey | InvalidValue | InvalidValues | DomainError<'LABEL_KEY_TAKEN'>;
85
+ export type DefineLabelRefusal = InvalidKey | InvalidValue | InvalidValues | DomainError<'LABEL_KEY_TAKEN' | 'ACCOUNT_OWNS_NO_LABEL'>;
68
86
  /**
69
- * A ship defines a label, owning it: a key unique in the fleet and its values,
70
- * the label and each value with its new id. A key the fleet has is refused,
71
- * naming its owner. LabelDefined names the owner, with the label and its
72
- * values.
87
+ * A ship or the installation defines a label, owning it: a key unique in the
88
+ * fleet and its values, the label and each value with its new id. An account
89
+ * owns no label, so it defines none (decision 0031). A key the fleet has is
90
+ * refused, naming its owner. LabelDefined names the owning ship, if a ship
91
+ * owns it, with the label and its values.
73
92
  */
74
- export declare function defineLabel({ owner, existing, }: {
75
- owner: Pick<Ship, 'fleetId' | 'id'>;
93
+ export declare function defineLabel({ fleetId, owner, existing, }: {
94
+ fleetId: FleetId;
95
+ owner: LabelOwner | undefined;
76
96
  existing: {
77
97
  label: Label;
78
98
  ownerName: string;
@@ -103,7 +123,7 @@ export declare function changeLabelValues({ label, ownerName, carriers, }: {
103
123
  shipName: string;
104
124
  }[];
105
125
  }, input: {
106
- callerShipId: ShipId;
126
+ caller: LabelOwner | undefined;
107
127
  values: readonly NewLabelValue[];
108
128
  at: Date;
109
129
  actor: Actor;
@@ -122,14 +142,24 @@ export declare function deleteLabel({ label, ownerName, carrierNames }: {
122
142
  ownerName: string;
123
143
  carrierNames: readonly string[];
124
144
  }, input: {
125
- callerShipId: ShipId;
145
+ caller: LabelOwner | undefined;
126
146
  at: Date;
127
147
  actor: Actor;
128
148
  }): Result<{
129
149
  events: NewEvent[];
130
150
  }, DeleteLabelRefusal>;
131
- /** A ship the caller may not label: neither its own nor one it commissioned, and the caller is not argo. */
151
+ /** A ship the caller may not label: neither its own nor one it commissioned, and the caller holds no labels:any. */
132
152
  export type NotYourShipToLabel = DomainError<'NOT_YOUR_SHIP_TO_LABEL'>;
153
+ /**
154
+ * Who labels a ship: the label's owner on its own ship and the ships it
155
+ * commissioned, or an actor holding labels:any, whose manage reach the use
156
+ * case checks, on any ship (decisions 0031, 0053).
157
+ */
158
+ export interface Labeller {
159
+ owner: LabelOwner | undefined;
160
+ shipId: ShipId | null;
161
+ canLabelAnyShip: boolean;
162
+ }
133
163
  export type AssignLabelRefusal = NotTheOwner | NotYourShipToLabel | DomainError<'SHIP_ALREADY_RETIRED' | 'SHIP_LABEL_LIMIT_REACHED'>;
134
164
  /**
135
165
  * The owner gives a ship one of its label's values, by its id: the ship
@@ -144,8 +174,7 @@ export declare function assignLabel({ label, ownerName, ship, carried, }: {
144
174
  ship: Ship;
145
175
  carried: readonly ShipLabel[];
146
176
  }, input: {
147
- callerShipId: ShipId;
148
- callerKind: ShipKind;
177
+ caller: Labeller;
149
178
  valueId: LabelValueId;
150
179
  at: Date;
151
180
  actor: Actor;
@@ -153,6 +182,29 @@ export declare function assignLabel({ label, ownerName, ship, carried, }: {
153
182
  assignment: ShipLabel | undefined;
154
183
  events: NewEvent[];
155
184
  }, AssignLabelRefusal>;
185
+ /** A label value a commission gives the new ship, with its label as the fleet holds it now and its owner's name. */
186
+ export interface GivenValue {
187
+ label: Label;
188
+ valueId: LabelValueId;
189
+ ownerName: string;
190
+ }
191
+ /**
192
+ * The values a commission gives the new ship (decision 0053), each once: a
193
+ * value of a label the commissioner owns, or a value it carries itself, a
194
+ * ship's labels or an account's token, so a new ship never reaches further
195
+ * than its commissioner can make it. Argo is no exception. LabelAssigned
196
+ * names the new ship for each.
197
+ */
198
+ export declare function labelsAtCommission(given: readonly GivenValue[], commission: {
199
+ ship: Ship;
200
+ owner: LabelOwner | undefined;
201
+ carried: readonly LabelValueId[];
202
+ at: Date;
203
+ actor: Actor;
204
+ }): Result<{
205
+ assignments: ShipLabel[];
206
+ events: NewEvent[];
207
+ }, NotTheOwner>;
156
208
  export type UnassignLabelRefusal = NotTheOwner | NotYourShipToLabel;
157
209
  /**
158
210
  * The owner takes one value of its label off a ship. A ship that does not
@@ -165,8 +217,7 @@ export declare function unassignLabel({ label, ownerName, ship, carried, }: {
165
217
  ship: Ship;
166
218
  carried: readonly ShipLabel[];
167
219
  }, input: {
168
- callerShipId: ShipId;
169
- callerKind: ShipKind;
220
+ caller: Labeller;
170
221
  valueId: LabelValueId;
171
222
  at: Date;
172
223
  actor: Actor;
@@ -1,6 +1,21 @@
1
1
  import { LABEL_HANDLE_MAX_LENGTH, LABEL_HANDLE_PATTERN, LABEL_VALUES_MAX, SHIP_LABELS_MAX, } from '@aeolus-fleet/common';
2
2
  import { refuse } from '../shared/errors.js';
3
3
  import { ok } from '../shared/result.js';
4
+ /** The owner an actor defines a label as: none for an account, which owns no label (decision 0031). */
5
+ export function labelOwnerOf(caller) {
6
+ if (caller.kind === 'account') {
7
+ return undefined;
8
+ }
9
+ return caller.kind === 'installation' ? { kind: 'installation' } : { kind: 'ship', shipId: caller.shipId };
10
+ }
11
+ /** The owner as a refusal names it: a ship by its name, or the installation. */
12
+ export async function ownerNameOf(owner, shipNameOf) {
13
+ return owner.kind === 'installation' ? 'the installation' : ((await shipNameOf(owner.shipId)) ?? owner.shipId);
14
+ }
15
+ /** Whether the other is the same owner: none, an account, is no owner. */
16
+ export function isSameOwner(owner, other) {
17
+ return other !== undefined && (owner.kind === 'installation' ? other.kind === 'installation' : other.kind === 'ship' && other.shipId === owner.shipId);
18
+ }
4
19
  /**
5
20
  * Whether a ship carries every value of the selector: exact matches by id,
6
21
  * combined with AND (decision 0031). No selector, or an empty one, selects
@@ -42,7 +57,7 @@ function labelEvent(label, change) {
42
57
  fleetId: label.fleetId,
43
58
  occurredAt: change.at,
44
59
  actor: change.actor,
45
- shipId: label.ownerShipId,
60
+ ...(label.owner.kind === 'ship' && { shipId: label.owner.shipId }),
46
61
  type: change.type,
47
62
  details: { labelId: label.id, key: label.key, ...change.details },
48
63
  };
@@ -55,12 +70,16 @@ function valuesDetails(values) {
55
70
  };
56
71
  }
57
72
  /**
58
- * A ship defines a label, owning it: a key unique in the fleet and its values,
59
- * the label and each value with its new id. A key the fleet has is refused,
60
- * naming its owner. LabelDefined names the owner, with the label and its
61
- * values.
73
+ * A ship or the installation defines a label, owning it: a key unique in the
74
+ * fleet and its values, the label and each value with its new id. An account
75
+ * owns no label, so it defines none (decision 0031). A key the fleet has is
76
+ * refused, naming its owner. LabelDefined names the owning ship, if a ship
77
+ * owns it, with the label and its values.
62
78
  */
63
- export function defineLabel({ owner, existing, }, input) {
79
+ export function defineLabel({ fleetId, owner, existing, }, input) {
80
+ if (owner === undefined) {
81
+ return refuse('ACCOUNT_OWNS_NO_LABEL', 'A ship or the installation defines a label and owns it; an account does not');
82
+ }
64
83
  const key = labelKey(input.key);
65
84
  if (!key.isOk) {
66
85
  return key;
@@ -73,11 +92,11 @@ export function defineLabel({ owner, existing, }, input) {
73
92
  return refuse('LABEL_KEY_TAKEN', `The fleet has the label ${key.value} already, owned by ${existing.ownerName}`);
74
93
  }
75
94
  const label = {
76
- fleetId: owner.fleetId,
95
+ fleetId,
77
96
  id: input.id,
78
97
  key: key.value,
79
98
  values: withIds(input.values, []),
80
- ownerShipId: owner.id,
99
+ owner,
81
100
  };
82
101
  return ok({
83
102
  label,
@@ -93,7 +112,7 @@ export function defineLabel({ owner, existing, }, input) {
93
112
  }
94
113
  /** Only a label's owner changes it or assigns it. */
95
114
  function checkOwner({ label, ownerName }, caller) {
96
- return label.ownerShipId === caller.shipId
115
+ return isSameOwner(label.owner, caller.owner)
97
116
  ? ok(undefined)
98
117
  : refuse('NOT_THE_LABEL_OWNER', `The label ${label.key} is owned by ${ownerName}: only its owner ${caller.act} it`);
99
118
  }
@@ -104,7 +123,7 @@ function checkOwner({ label, ownerName }, caller) {
104
123
  * it has already, in any order, change nothing.
105
124
  */
106
125
  export function changeLabelValues({ label, ownerName, carriers, }, input) {
107
- const owned = checkOwner({ label, ownerName }, { shipId: input.callerShipId, act: 'changes' });
126
+ const owned = checkOwner({ label, ownerName }, { owner: input.caller, act: 'changes' });
108
127
  if (!owned.isOk) {
109
128
  return owned;
110
129
  }
@@ -149,7 +168,7 @@ export function changeLabelValues({ label, ownerName, carriers, }, input) {
149
168
  * LabelDeleted names the owner, with the label.
150
169
  */
151
170
  export function deleteLabel({ label, ownerName, carrierNames }, input) {
152
- const owned = checkOwner({ label, ownerName }, { shipId: input.callerShipId, act: 'deletes' });
171
+ const owned = checkOwner({ label, ownerName }, { owner: input.caller, act: 'deletes' });
153
172
  if (!owned.isOk) {
154
173
  return owned;
155
174
  }
@@ -173,14 +192,29 @@ function assignmentEvent({ label, assignment }, change) {
173
192
  },
174
193
  };
175
194
  }
176
- /**
177
- * Whether the caller may put values on the ship or take them off (decision
178
- * 0046): its own ship and the ships it commissioned; argo any ship.
179
- */
180
- function checkMayLabel(ship, caller) {
181
- return caller.kind === 'operator' || ship.id === caller.shipId || ship.commission?.by === caller.shipId
195
+ /** Whether the labeller may put the label's values on the ship or take them off. */
196
+ function checkMayLabel({ label, ownerName, ship }, labeller) {
197
+ if (labeller.canLabelAnyShip) {
198
+ return ok(undefined);
199
+ }
200
+ const owned = checkOwner({ label, ownerName }, { owner: labeller.owner, act: labeller.act });
201
+ if (!owned.isOk) {
202
+ return owned;
203
+ }
204
+ return isOwnShip(ship, labeller) || isCommissionedBy(ship, labeller)
182
205
  ? ok(undefined)
183
- : refuse('NOT_YOUR_SHIP_TO_LABEL', `${ship.name} is neither your ship nor one it commissioned: only argo labels it`);
206
+ : refuse('NOT_YOUR_SHIP_TO_LABEL', `${ship.name} is neither your ship nor one it commissioned: labelling it needs labels:any`);
207
+ }
208
+ function isOwnShip(ship, labeller) {
209
+ return labeller.shipId !== null && ship.id === labeller.shipId;
210
+ }
211
+ /** Whether the labeller commissioned the ship: a ship by its id, or the installation (decision 0052). */
212
+ function isCommissionedBy(ship, labeller) {
213
+ const by = ship.commission?.by;
214
+ if (by?.kind === 'ship') {
215
+ return by.shipId === labeller.shipId;
216
+ }
217
+ return by?.kind === 'installation' && labeller.owner?.kind === 'installation';
184
218
  }
185
219
  /**
186
220
  * The owner gives a ship one of its label's values, by its id: the ship
@@ -190,11 +224,7 @@ function checkMayLabel(ship, caller) {
190
224
  * 20 values. LabelAssigned names the ship, with the label and the value.
191
225
  */
192
226
  export function assignLabel({ label, ownerName, ship, carried, }, input) {
193
- const owned = checkOwner({ label, ownerName }, { shipId: input.callerShipId, act: 'assigns' });
194
- if (!owned.isOk) {
195
- return owned;
196
- }
197
- const mayLabel = checkMayLabel(ship, { shipId: input.callerShipId, kind: input.callerKind });
227
+ const mayLabel = checkMayLabel({ label, ownerName, ship }, { ...input.caller, act: 'assigns' });
198
228
  if (!mayLabel.isOk) {
199
229
  return mayLabel;
200
230
  }
@@ -218,17 +248,38 @@ export function assignLabel({ label, ownerName, ship, carried, }, input) {
218
248
  events: [assignmentEvent({ label, assignment }, { type: 'LabelAssigned', at: input.at, actor: input.actor })],
219
249
  });
220
250
  }
251
+ /**
252
+ * The values a commission gives the new ship (decision 0053), each once: a
253
+ * value of a label the commissioner owns, or a value it carries itself, a
254
+ * ship's labels or an account's token, so a new ship never reaches further
255
+ * than its commissioner can make it. Argo is no exception. LabelAssigned
256
+ * names the new ship for each.
257
+ */
258
+ export function labelsAtCommission(given, commission) {
259
+ const { ship } = commission;
260
+ const assignments = [];
261
+ const events = [];
262
+ for (const { label, valueId, ownerName } of given) {
263
+ if (!isSameOwner(label.owner, commission.owner) && !commission.carried.includes(valueId)) {
264
+ const text = label.values.find((value) => value.id === valueId)?.value ?? valueId;
265
+ return refuse('NOT_THE_LABEL_OWNER', `The label ${label.key} is owned by ${ownerName}, and you carry no value ${text} of it: a commission gives only values of labels you defined or values you carry (decision 0053)`);
266
+ }
267
+ if (assignments.some((each) => each.valueId === valueId)) {
268
+ continue;
269
+ }
270
+ const assignment = { fleetId: ship.fleetId, shipId: ship.id, labelId: label.id, valueId };
271
+ assignments.push(assignment);
272
+ events.push(assignmentEvent({ label, assignment }, { type: 'LabelAssigned', at: commission.at, actor: commission.actor }));
273
+ }
274
+ return ok({ assignments, events });
275
+ }
221
276
  /**
222
277
  * The owner takes one value of its label off a ship. A ship that does not
223
278
  * carry it changes nothing. LabelUnassigned names the ship, with the label
224
279
  * and the value it carried.
225
280
  */
226
281
  export function unassignLabel({ label, ownerName, ship, carried, }, input) {
227
- const owned = checkOwner({ label, ownerName }, { shipId: input.callerShipId, act: 'unassigns' });
228
- if (!owned.isOk) {
229
- return owned;
230
- }
231
- const mayLabel = checkMayLabel(ship, { shipId: input.callerShipId, kind: input.callerKind });
282
+ const mayLabel = checkMayLabel({ label, ownerName, ship }, { ...input.caller, act: 'unassigns' });
232
283
  if (!mayLabel.isOk) {
233
284
  return mayLabel;
234
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/domain/registry/label.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAMhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAwDtD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgC,EAAE,QAA6C;IAC1G,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;AACjG,CAAC;AAMD,MAAM,MAAM,GAAG,qCAAqC,MAAM,CAAC,uBAAuB,CAAC,6BAA6B,CAAC;AAEjH,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,MAAM,IAAI,uBAAuB,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,MAAM,EAAE,CAAC,CAAC;AAChG,CAAC;AAED,oGAAoG;AACpG,SAAS,eAAe,CAAC,MAAyB;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC;AAED,wEAAwE;AACxE,SAAS,OAAO,CAAC,MAAgC,EAAE,IAA2B;IAC5E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,IAAI,KAAK;QAC1D,KAAK;KACN,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CACjB,KAAY,EACZ,MAIC;IAED,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,MAAM,CAAC,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,KAAK,CAAC,WAAW;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE;KAClE,CAAC;AACJ,CAAC;AAED,+HAA+H;AAC/H,SAAS,aAAa,CAAC,MAA6B;IAClD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACpD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KACpD,CAAC;AACJ,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,EACE,KAAK,EACL,QAAQ,GAIT,EACD,KAMC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,GAAG,CAAC,KAAK,sBAAsB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,KAAK,GAAU;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC,KAAK;QACd,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,WAAW,EAAE,KAAK,CAAC,EAAE;KACtB,CAAC;IACF,OAAO,EAAE,CAAC;QACR,KAAK;QACL,MAAM,EAAE;YACN,UAAU,CAAC,KAAK,EAAE;gBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;aACrC,CAAC;SACH;KACF,CAAC,CAAC;AACL,CAAC;AAID,qDAAqD;AACrD,SAAS,UAAU,CACjB,EAAE,KAAK,EAAE,SAAS,EAAuC,EACzD,MAGC;IAED,OAAO,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM;QACxC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACf,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,aAAa,KAAK,CAAC,GAAG,gBAAgB,SAAS,oBAAoB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;AACxH,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EACE,KAAK,EACL,SAAS,EACT,QAAQ,GAKT,EACD,KAKC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,KAAK;QACL,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;KACrG,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/G,OAAO,MAAM,CAAC,qBAAqB,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,OAAO,GAAU;QACrB,GAAG,KAAK;QACR,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;KAC5C,CAAC;IACF,OAAO,EAAE,CAAC;QACR,KAAK,EAAE,OAAO;QACd,MAAM,EAAE;YACN,UAAU,CAAC,OAAO,EAAE;gBAClB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;aACvC,CAAC;SACH;KACF,CAAC,CAAC;AACL,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAwE,EACxG,KAAuD;IAEvD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,eAAe,EAAE,yBAAyB,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,eAAe,CACtB,EAAE,KAAK,EAAE,UAAU,EAA2C,EAC9D,MAA6E;IAE7E,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,UAAU,EAAE,MAAM,CAAC,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE;YACP,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE;SAClF;KACF,CAAC;AACJ,CAAC;AAKD;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAU,EAAE,MAA0C;IAC3E,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,MAAM,CAAC,MAAM;QACrG,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACf,CAAC,CAAC,MAAM,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,IAAI,oEAAoE,CAAC,CAAC;AACzH,CAAC;AAID;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,EACE,KAAK,EACL,SAAS,EACT,IAAI,EACJ,OAAO,GAMR,EACD,KAMC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,0BAA0B,EAAE,GAAG,IAAI,CAAC,IAAI,YAAY,MAAM,CAAC,eAAe,CAAC,kDAAkD,CAAC,CAAC;IAC/I,CAAC;IACD,MAAM,UAAU,GAAc;QAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;IACF,OAAO,EAAE,CAAC;QACR,UAAU;QACV,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;KAC9G,CAAC,CAAC;AACL,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,EACE,KAAK,EACL,SAAS,EACT,IAAI,EACJ,OAAO,GAMR,EACD,KAMC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACjG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,CAAC;QACR,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;KAChI,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EACE,KAAK,EACL,OAAO,GAIR,EACD,KAAiC;IAEjC,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,UAAqB,EAAE,EAAE;QACvD,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC;IACF,KAAK,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE,CAAC;QACxC,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YAClC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC;QAC5C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/domain/registry/label.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export interface Lease {
42
42
  * or retired the ship, its crew deregistered, or, for argo, a sign-in took it
43
43
  * over, the operator signed out or the password was reset.
44
44
  */
45
- export type LeaseEndReason = 'released' | 'retired' | 'deregistered' | 'takenOver' | 'signedOut' | 'passwordReset';
45
+ export type LeaseEndReason = 'released' | 'retired' | 'deregistered' | 'takenOver' | 'signedOut' | 'passwordReset' | 'accountCutOff';
46
46
  export type LeaseEnded = DomainError<'LEASE_ENDED'>;
47
47
  /**
48
48
  * The refusal for a crew whose lease has ended: its crew token no longer
@@ -62,6 +62,8 @@ export interface ListedShip {
62
62
  awaitingCrewSince: Date | null;
63
63
  /** When the operator retired the ship; null while it is active. */
64
64
  retiredAt: Date | null;
65
+ /** The ship that owns it (decision 0045); null for argo and the viewer, which no ship owns. */
66
+ ownerShipId: ShipId | null;
65
67
  }
66
68
  /** A ship outside the caller's read reach: its name, type and status only (decision 0034). */
67
69
  export interface ShipOutsideReadReach {
@@ -57,6 +57,7 @@ export function listedShipOf({ ship, openLease, validSecret, crewRequest, crewRe
57
57
  model: lastModel,
58
58
  awaitingCrewSince: status === 'awaitingCrew' ? latestOf(ship.createdAt, lastLeaseEndedAt) : null,
59
59
  retiredAt: ship.retiredAt,
60
+ ownerShipId: ship.owner,
60
61
  };
61
62
  }
62
63
  function listedReportOf({ state, note, reportedAt, detailsVersion }) {
@@ -1 +1 @@
1
- {"version":3,"file":"list-fleet.js","sourceRoot":"","sources":["../../../src/domain/registry/list-fleet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA0DvC,MAAM,UAAU,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAuD;IAC9G,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC;AAID;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAuD;IACrF,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAyC,EAAE;YACzG,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,CAAC;YACD,OAAO,KAAK,EAAE,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,SAAS,EACT,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,gBAAgB,GACN;IACV,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM;QACN,cAAc,EAAE,WAAW,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,KAAK,IAAI,EAAE;QAC5G,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,IAAI;QACrC,iGAAiG;QACjG,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,YAAY;QACjD,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QACnE,WAAW,EAAE,WAAW,IAAI;YAC1B,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,UAAU,EAAE,mBAAmB;YAC/B,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ;YACR,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,SAAS,EAAE,oBAAoB;SAChC;QACD,MAAM;QACN,OAAO,EAAE,SAAS,EAAE,OAAO,IAAI,IAAI;QACnC,KAAK,EAAE,SAAS;QAChB,iBAAiB,EAAE,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;QAChG,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAc;IAC7E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAW,EAAE,MAAmB;IAChD,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"list-fleet.js","sourceRoot":"","sources":["../../../src/domain/registry/list-fleet.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,8 @@ export interface ListedNamespace {
13
13
  }
14
14
  export type ListScopes = (caller: Caller) => Promise<ListedNamespace[]>;
15
15
  /**
16
- * Use case: every namespace of the caller's fleet (decision 0046): the core
16
+ * Use case: every namespace of the caller's fleet (decision 0046), for any
17
+ * actor, so pagasae offers each plugin's scopes to its groups (0053): the core
17
18
  * namespaces first, each with its scopes in catalogue order, then each
18
19
  * plugin's by namespace, with its scopes as declared. The caller's scope
19
20
  * (fleet:read) is checked before this runs.
@@ -1,6 +1,7 @@
1
1
  import { CORE_NAMESPACES, CORE_SCOPE_DESCRIPTIONS, SCOPES } from '@aeolus-fleet/common';
2
2
  /**
3
- * Use case: every namespace of the caller's fleet (decision 0046): the core
3
+ * Use case: every namespace of the caller's fleet (decision 0046), for any
4
+ * actor, so pagasae offers each plugin's scopes to its groups (0053): the core
4
5
  * namespaces first, each with its scopes in catalogue order, then each
5
6
  * plugin's by namespace, with its scopes as declared. The caller's scope
6
7
  * (fleet:read) is checked before this runs.
@@ -1 +1 @@
1
- {"version":3,"file":"list-scopes.js","sourceRoot":"","sources":["../../../src/domain/registry/list-scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,EAAe,MAAM,sBAAsB,CAAC;AAerG;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAsG;IACrI,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/C,SAAS;YACT,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC7I,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YAChG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC;QACnG,CAAC,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-scopes.js","sourceRoot":"","sources":["../../../src/domain/registry/list-scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,EAAe,MAAM,sBAAsB,CAAC;AAerG;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAsG;IACrI,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/C,SAAS;YACT,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC7I,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YAChG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC;QACnG,CAAC,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC"}
@@ -8,12 +8,20 @@ import type { Ship } from './ship.js';
8
8
  export type ManagedOrAssignedTx = CheckManageTx & {
9
9
  crewRequests: Pick<CrewRequestRepository, 'find'>;
10
10
  };
11
+ /**
12
+ * Whether the caller is an account acting on its own person ship (decision
13
+ * 0052): the ship its account token names. Its owner's right over it, which a
14
+ * ship has over the ships it owns by the owner rule (decision 0034).
15
+ */
16
+ export declare function isOwnPersonShip(caller: Caller, ship: Ship): boolean;
17
+ /** Refuses an account a ship that is not its own person ship. */
18
+ export declare function checkOwnPersonShip(caller: Caller, ship: Ship): Result<undefined, NotTheCallers>;
11
19
  /**
12
20
  * Whether the caller may act on the ship for a call it takes with
13
- * fleet:manage or crew:run (decision 0029): a ship whose crew request is
14
- * assigned to the caller's ship, by crew:run; else, with fleet:manage, a ship
15
- * in its manage reach (decision 0034), a refusal recorded as the reach check
16
- * records it.
21
+ * fleet:manage or crew:run (decision 0029): an account's own person ship; a
22
+ * ship whose crew request is assigned to the caller's ship, by crew:run; else,
23
+ * with fleet:manage, a ship in its manage reach (decision 0034), a refusal
24
+ * recorded as the reach check records it.
17
25
  */
18
26
  export declare function checkManagedOrAssigned(deps: {
19
27
  tx: ManagedOrAssignedTx;
@@ -1,23 +1,41 @@
1
- import { hasScope } from '../shared/caller.js';
1
+ import { hasScope, isShipCaller } from '../shared/caller.js';
2
2
  import { refuse } from '../shared/errors.js';
3
3
  import { ok } from '../shared/result.js';
4
4
  import { checkManage } from './check-reach.js';
5
+ /**
6
+ * Whether the caller is an account acting on its own person ship (decision
7
+ * 0052): the ship its account token names. Its owner's right over it, which a
8
+ * ship has over the ships it owns by the owner rule (decision 0034).
9
+ */
10
+ export function isOwnPersonShip(caller, ship) {
11
+ return caller.kind === 'account' && caller.personShipId === ship.id;
12
+ }
13
+ /** Refuses an account a ship that is not its own person ship. */
14
+ export function checkOwnPersonShip(caller, ship) {
15
+ return isOwnPersonShip(caller, ship) ? ok(undefined) : refuse('CREW_REQUEST_NOT_ASSIGNED_TO_CALLER', `${ship.name} is not your person ship`);
16
+ }
5
17
  /**
6
18
  * Whether the caller may act on the ship for a call it takes with
7
- * fleet:manage or crew:run (decision 0029): a ship whose crew request is
8
- * assigned to the caller's ship, by crew:run; else, with fleet:manage, a ship
9
- * in its manage reach (decision 0034), a refusal recorded as the reach check
10
- * records it.
19
+ * fleet:manage or crew:run (decision 0029): an account's own person ship; a
20
+ * ship whose crew request is assigned to the caller's ship, by crew:run; else,
21
+ * with fleet:manage, a ship in its manage reach (decision 0034), a refusal
22
+ * recorded as the reach check records it.
11
23
  */
12
24
  export async function checkManagedOrAssigned(deps, call) {
13
25
  const { tx, ids } = deps;
14
26
  const { caller, ship, at } = call;
15
- if ((await tx.crewRequests.find(ship.fleetId, ship.id))?.assignedTo === caller.shipId) {
27
+ if (isOwnPersonShip(caller, ship)) {
28
+ return ok(undefined);
29
+ }
30
+ if (isShipCaller(caller) && (await tx.crewRequests.find(ship.fleetId, ship.id))?.assignedTo === caller.shipId) {
16
31
  return ok(undefined);
17
32
  }
18
33
  if (!hasScope(caller, 'fleet:manage')) {
34
+ if (caller.kind === 'account') {
35
+ return checkOwnPersonShip(caller, ship);
36
+ }
19
37
  return refuse('CREW_REQUEST_NOT_ASSIGNED_TO_CALLER', `${ship.name}'s crew request is not assigned to your ship`);
20
38
  }
21
- return checkManage({ tx, ids }, { fleetId: ship.fleetId, managerShipId: caller.shipId, shipId: ship.id, at });
39
+ return checkManage({ tx, ids }, { manager: caller, shipId: ship.id, at });
22
40
  }
23
41
  //# sourceMappingURL=managed-or-assigned.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"managed-or-assigned.js","sourceRoot":"","sources":["../../../src/domain/registry/managed-or-assigned.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAyC,MAAM,kBAAkB,CAAC;AAOtF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAmD,EACnD,IAA8C;IAE9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACtF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,qCAAqC,EAAE,GAAG,IAAI,CAAC,IAAI,8CAA8C,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChH,CAAC"}
1
+ {"version":3,"file":"managed-or-assigned.js","sourceRoot":"","sources":["../../../src/domain/registry/managed-or-assigned.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAyC,MAAM,kBAAkB,CAAC;AAOtF;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAU;IACxD,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAU;IAC3D,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,qCAAqC,EAAE,GAAG,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;AAC/I,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAmD,EACnD,IAA8C;IAE9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAClC,IAAI,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9G,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,MAAM,CAAC,qCAAqC,EAAE,GAAG,IAAI,CAAC,IAAI,8CAA8C,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * The draft of the fleet's own network rules (decision 0034): one a fleet,
3
+ * a whole list or none for all-to-all, which whoever holds fleet:network
4
+ * edits, explains and compares with the applied rules before applying it.
5
+ * Nothing is checked against it: only an apply puts it in force, so a change
6
+ * of rules is seen before it breaks anything.
7
+ */
8
+ import type { FleetId } from '@aeolus-fleet/common';
9
+ import { type DomainError } from '../shared/errors.js';
10
+ import type { Actor, NewEvent } from '../shared/events.js';
11
+ import { type Result } from '../shared/result.js';
12
+ import { type InvalidNetworkRules, type NetworkRule, type NetworkSettings } from './network-settings.js';
13
+ export interface NetworkRulesDraft {
14
+ fleetId: FleetId;
15
+ /** The rules it would apply; none for all-to-all. */
16
+ rules: readonly NetworkRule[] | null;
17
+ savedAt: Date;
18
+ /** The settings version it was saved at, for the caller to see what it was drafted against. */
19
+ savedAgainstVersion: number;
20
+ }
21
+ export type NoNetworkRulesDraft = DomainError<'NO_NETWORK_RULES_DRAFT'>;
22
+ /** The one refusal of a fleet without a draft. */
23
+ export declare function refuseNoDraft(): Result<never, NoNetworkRulesDraft>;
24
+ /**
25
+ * The fleet's draft from now on, in place of the one before, against the
26
+ * settings as they are, with NetworkRulesDraftSaved naming how many rules,
27
+ * none for all-to-all. The rules keep the limits an apply would hold them to.
28
+ * Nothing in force changes, so the version stays.
29
+ */
30
+ export declare function saveNetworkRulesDraft(settings: NetworkSettings, change: {
31
+ rules: readonly NetworkRule[] | null;
32
+ at: Date;
33
+ actor: Actor;
34
+ }): Result<{
35
+ draft: NetworkRulesDraft;
36
+ events: NewEvent[];
37
+ }, InvalidNetworkRules>;
38
+ /** The draft goes, with NetworkRulesDraftDiscarded; the applied rules stay as they are. */
39
+ export declare function discardNetworkRulesDraft(draft: NetworkRulesDraft | undefined, change: {
40
+ fleetId: FleetId;
41
+ at: Date;
42
+ actor: Actor;
43
+ }): Result<{
44
+ events: NewEvent[];
45
+ }, NoNetworkRulesDraft>;