@cyberismo/backend 1.1.2 → 1.2.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 (301) hide show
  1. package/README.md +21 -0
  2. package/dist/app.js +19 -7
  3. package/dist/app.js.map +1 -1
  4. package/dist/auth/index.d.ts +1 -1
  5. package/dist/auth/index.js +1 -1
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/auth/keycloak.d.ts +2 -3
  8. package/dist/auth/keycloak.js +6 -0
  9. package/dist/auth/keycloak.js.map +1 -1
  10. package/dist/auth/mock.d.ts +12 -8
  11. package/dist/auth/mock.js +119 -31
  12. package/dist/auth/mock.js.map +1 -1
  13. package/dist/auth/types.d.ts +7 -1
  14. package/dist/domain/cards/index.js +11 -84
  15. package/dist/domain/cards/index.js.map +1 -1
  16. package/dist/domain/cards/lib.js +2 -11
  17. package/dist/domain/cards/lib.js.map +1 -1
  18. package/dist/domain/cards/schema.js +9 -3
  19. package/dist/domain/cards/schema.js.map +1 -1
  20. package/dist/domain/cards/service.d.ts +2 -5
  21. package/dist/domain/cards/service.js +8 -15
  22. package/dist/domain/cards/service.js.map +1 -1
  23. package/dist/domain/events/index.d.ts +15 -0
  24. package/dist/domain/events/index.js +94 -0
  25. package/dist/domain/events/index.js.map +1 -0
  26. package/dist/domain/events/lifetime.d.ts +14 -0
  27. package/dist/domain/events/lifetime.js +25 -0
  28. package/dist/domain/events/lifetime.js.map +1 -0
  29. package/dist/domain/events/project-events.d.ts +67 -0
  30. package/dist/domain/events/project-events.js +200 -0
  31. package/dist/domain/events/project-events.js.map +1 -0
  32. package/dist/domain/events/schema.d.ts +22 -0
  33. package/dist/domain/events/schema.js +20 -0
  34. package/dist/domain/events/schema.js.map +1 -0
  35. package/dist/domain/project/index.js +17 -5
  36. package/dist/domain/project/index.js.map +1 -1
  37. package/dist/domain/project/schema.d.ts +8 -0
  38. package/dist/domain/project/schema.js +34 -6
  39. package/dist/domain/project/schema.js.map +1 -1
  40. package/dist/domain/project/service.d.ts +9 -5
  41. package/dist/domain/project/service.js +22 -16
  42. package/dist/domain/project/service.js.map +1 -1
  43. package/dist/domain/projects/index.js +5 -1
  44. package/dist/domain/projects/index.js.map +1 -1
  45. package/dist/domain/resources/index.js +74 -2
  46. package/dist/domain/resources/index.js.map +1 -1
  47. package/dist/domain/resources/schema.d.ts +8 -2
  48. package/dist/domain/resources/schema.js +6 -1
  49. package/dist/domain/resources/schema.js.map +1 -1
  50. package/dist/domain/resources/service.d.ts +13 -1
  51. package/dist/domain/resources/service.js +45 -2
  52. package/dist/domain/resources/service.js.map +1 -1
  53. package/dist/domain/skills/index.d.ts +15 -0
  54. package/dist/domain/skills/index.js +52 -0
  55. package/dist/domain/skills/index.js.map +1 -0
  56. package/dist/domain/skills/schema.d.ts +16 -0
  57. package/dist/domain/skills/schema.js +18 -0
  58. package/dist/domain/skills/schema.js.map +1 -0
  59. package/dist/domain/skills/service.d.ts +14 -0
  60. package/dist/domain/skills/service.js +16 -0
  61. package/dist/domain/skills/service.js.map +1 -0
  62. package/dist/export.d.ts +3 -2
  63. package/dist/export.js +53 -38
  64. package/dist/export.js.map +1 -1
  65. package/dist/index.d.ts +1 -0
  66. package/dist/index.js +3 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/main.js +22 -7
  69. package/dist/main.js.map +1 -1
  70. package/dist/middleware/auth.d.ts +5 -0
  71. package/dist/middleware/auth.js +20 -4
  72. package/dist/middleware/auth.js.map +1 -1
  73. package/dist/middleware/commandManager.d.ts +2 -0
  74. package/dist/middleware/commandManager.js +1 -0
  75. package/dist/middleware/commandManager.js.map +1 -1
  76. package/dist/overlay.d.ts +45 -0
  77. package/dist/overlay.js +157 -0
  78. package/dist/overlay.js.map +1 -0
  79. package/dist/project-errors.d.ts +18 -0
  80. package/dist/project-errors.js +25 -0
  81. package/dist/project-errors.js.map +1 -0
  82. package/dist/project-registry.d.ts +9 -1
  83. package/dist/project-registry.js +37 -9
  84. package/dist/project-registry.js.map +1 -1
  85. package/dist/public/THIRD-PARTY.txt +528 -435
  86. package/dist/public/assets/__vite-browser-external-PaJ7c2l8.js +1 -0
  87. package/dist/public/assets/abnfDiagram-VCTEODGH-DB2dfOGe.js +1 -0
  88. package/dist/public/assets/architecture-7GRP2DOG-2V0X8hxt.js +1 -0
  89. package/dist/public/assets/architectureDiagram-5GKGNRK7-CRhUR2Ul.js +36 -0
  90. package/dist/public/assets/blockDiagram-I7D4REHJ-DJKsYF1v.js +129 -0
  91. package/dist/public/assets/c4Diagram-7LVT6UL2-BTwMzoAF.js +38 -0
  92. package/dist/public/assets/channel-C0JtPpMA.js +1 -0
  93. package/dist/public/assets/chunk-4HAMMTFA-DjjgrBsB.js +62 -0
  94. package/dist/public/assets/chunk-75Z2AOVW-CKqXRGJV.js +2 -0
  95. package/dist/public/assets/chunk-DU6HZSFF-iJGdiRt7.js +127 -0
  96. package/dist/public/assets/chunk-F27PBJKO-tDfs6zeO.js +1 -0
  97. package/dist/public/assets/chunk-FOHPRMQF-DzxwRta7.js +161 -0
  98. package/dist/public/assets/chunk-GMAD6QVW-DxHVEaGj.js +72 -0
  99. package/dist/public/assets/chunk-GVQU2GXP-AMxD4_Ta.js +1 -0
  100. package/dist/public/assets/{chunk-EX3LRPZG-Db0XYyxy.js → chunk-IMKFNOWR-0rz8QrYC.js} +2 -2
  101. package/dist/public/assets/chunk-L3NEJ4N5-BK3KAKMe.js +1 -0
  102. package/dist/public/assets/chunk-OSK3NFVY-B8MdrI_M.js +10 -0
  103. package/dist/public/assets/chunk-P2QGCYS3-D3J5AcHg.js +1 -0
  104. package/dist/public/assets/{chunk-VR4S4FIN-tUhbELKr.js → chunk-POPQ4Y6H-CsYg_XkK.js} +1 -1
  105. package/dist/public/assets/{chunk-HOUHSVGY-L35GPy9G.js → chunk-PWAF6VOD-D9cdEIZp.js} +1 -1
  106. package/dist/public/assets/chunk-SHT3W25Y-1jjokCf3.js +168 -0
  107. package/dist/public/assets/{chunk-MOJQB5TN-D1shKbMs.js → chunk-SVP7TREG-CIQMl7hl.js} +1 -1
  108. package/dist/public/assets/{chunk-V7JOEXUC-71b0ABpv.js → chunk-TICWLB2K-Ccsy2PYz.js} +3 -3
  109. package/dist/public/assets/chunk-XXDRQBXY-B7bWyHjt.js +1 -0
  110. package/dist/public/assets/classDiagram-ZZMXUADV-mWyXNAXi.js +1 -0
  111. package/dist/public/assets/classDiagram-v2-VYDZK3BY-mWyXNAXi.js +1 -0
  112. package/dist/public/assets/cose-bilkent-JH36ORCC-DPzc3Pv4.js +1 -0
  113. package/dist/public/assets/cynefin-OW5HDTMX-BIVDCYOU.js +1 -0
  114. package/dist/public/assets/cynefinDiagram-5FMLGOSQ-_V_nrIhD.js +62 -0
  115. package/dist/public/assets/cytoscape.esm-NgwPT4ez.js +321 -0
  116. package/dist/public/assets/dagre-C-rnJpZF.js +1 -0
  117. package/dist/public/assets/dagre-GXQ25YYZ-CJc0wc6f.js +4 -0
  118. package/dist/public/assets/diagram-S7CK7UJ4-25IjIKyo.js +30 -0
  119. package/dist/public/assets/diagram-UQ7AKVKN-C5VvsV7x.js +41 -0
  120. package/dist/public/assets/{diagram-FQU43EPY-DS-ryuRg.js → diagram-VSXAHHWV-Dw3rKVL_.js} +3 -3
  121. package/dist/public/assets/diagram-VX7I27RA-De_UQv8C.js +24 -0
  122. package/dist/public/assets/diagram-Z3DM3KII-Bd-65QQW.js +24 -0
  123. package/dist/public/assets/dist-BDCdLWk4.js +1 -0
  124. package/dist/public/assets/ebnfDiagram-PWID7BFC-CrxdET5U.js +1 -0
  125. package/dist/public/assets/erDiagram-RLTQ6QDP-BKo0Uyna.js +99 -0
  126. package/dist/public/assets/eventmodeling-NTZA5JFV-DKkAdJZd.js +1 -0
  127. package/dist/public/assets/flowDiagram-HODETNUW-CEE2wjdt.js +1 -0
  128. package/dist/public/assets/ganttDiagram-EL5Y4UJY-BHFn8vk0.js +292 -0
  129. package/dist/public/assets/gitGraph-4MIJSDKK-Bpvnb45u.js +1 -0
  130. package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-CksvJvsQ.js → gitGraphDiagram-WWUBYQGX-Bw0EoxBY.js} +9 -9
  131. package/dist/public/assets/index-D3HS7YxF.js +2228 -0
  132. package/dist/public/assets/index-D6WqGtsG.js +27876 -0
  133. package/dist/public/assets/{index-COSSLZqt.css → index-Sv3WxZ_8.css} +1 -1
  134. package/dist/public/assets/info-A6RAGUB7-BvvG_zrk.js +1 -0
  135. package/dist/public/assets/infoDiagram-27XIBGKW-CtpdJmtL.js +2 -0
  136. package/dist/public/assets/{ishikawaDiagram-FXEZZL3T-CiLpASIW.js → ishikawaDiagram-5VMMS53U-KvT4DU1u.js} +2 -2
  137. package/dist/public/assets/journeyDiagram-3NMN7TZE-PhGRkXkq.js +139 -0
  138. package/dist/public/assets/{kanban-definition-HUTT4EX6-DYP_x6zD.js → kanban-definition-UXKFOSKX-Oyx5QgRq.js} +4 -4
  139. package/dist/public/assets/{katex-DolUETbr.js → katex-ZlcWpGUi.js} +3 -3
  140. package/dist/public/assets/{line-C8Sfsgt8.js → line-Dr41HTk1.js} +1 -1
  141. package/dist/public/assets/linear-DDBi9FwZ.js +1 -0
  142. package/dist/public/assets/mermaid-parser.core-DsIAxDBa.js +7 -0
  143. package/dist/public/assets/{mindmap-definition-LN4V7U3C-3IAd4gp3.js → mindmap-definition-YA3MSWOX-r8hvd6gP.js} +1 -1
  144. package/dist/public/assets/packet-AYTQ26CC-B0EpJ2Sc.js +1 -0
  145. package/dist/public/assets/path-B_0haWDX.js +1 -0
  146. package/dist/public/assets/pegDiagram-XKGWAZYB-DaNkQTQF.js +1 -0
  147. package/dist/public/assets/pie-WAS4IAKB-Dt2zttL9.js +1 -0
  148. package/dist/public/assets/pieDiagram-E7YTZNPT-x0XWEGbd.js +39 -0
  149. package/dist/public/assets/{quadrantDiagram-ABIIQ3AL-B3czMbdS.js → quadrantDiagram-AXDQQJYC-B9dlNtZl.js} +3 -3
  150. package/dist/public/assets/radar-RG4KPBEZ-DjbR4-5l.js +1 -0
  151. package/dist/public/assets/railroad-74A4TZTK-Bk3B5r_R.js +1 -0
  152. package/dist/public/assets/railroad-abnf-HS5TGJTU-DxaWfACD.js +1 -0
  153. package/dist/public/assets/railroad-ebnf-LZEXJU2U-DscxXZO0.js +1 -0
  154. package/dist/public/assets/railroad-peg-WCYAUIDC-BCWzRFzw.js +1 -0
  155. package/dist/public/assets/railroadDiagram-O6MQD6OU-DhwsoX6A.js +1 -0
  156. package/dist/public/assets/{requirementDiagram-TGXJPOKE-CmvJWy_S.js → requirementDiagram-BXWQKSXE-BiqZ6axf.js} +2 -2
  157. package/dist/public/assets/rolldown-runtime-B0Z9INg1.js +1 -0
  158. package/dist/public/assets/{rough.esm-By172zw-.js → rough.esm-Dy-Kn_BL.js} +1 -1
  159. package/dist/public/assets/{sankeyDiagram-HTMAVEWB-tAeOzMTn.js → sankeyDiagram-P5KCCOFB-C4rb2pZ9.js} +1 -1
  160. package/dist/public/assets/{sequenceDiagram-DBY2YBRQ-r0pwijM4.js → sequenceDiagram-WJ2MYXX4-DRKTnGD7.js} +9 -9
  161. package/dist/public/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  162. package/dist/public/assets/src-an_qrnIj.js +1 -0
  163. package/dist/public/assets/stateDiagram-D77RDMKH-xxdybg5Z.js +1 -0
  164. package/dist/public/assets/stateDiagram-v2-MP3YSRHH-CXzmJy_a.js +1 -0
  165. package/dist/public/assets/swimlanes-42K2YHIH-DyGI1gI6.js +1 -0
  166. package/dist/public/assets/swimlanesDiagram-VR7AAH4N-7hqb6VoW.js +8 -0
  167. package/dist/public/assets/timeline-definition-24CTP7MA-C2pIp77Q.js +120 -0
  168. package/dist/public/assets/treeView-Q6P3EWNA-CxRtaaB8.js +1 -0
  169. package/dist/public/assets/treemap-WGGIJYW6-G1IHiwTa.js +1 -0
  170. package/dist/public/assets/{vennDiagram-L72KCM5P-ti2qNcvo.js → vennDiagram-4TSXK5OY-CwimQRR9.js} +2 -2
  171. package/dist/public/assets/wardley-WFR3VGLG-DkQ3TjZX.js +1 -0
  172. package/dist/public/assets/{wardleyDiagram-EHGQE667-C8lblm8x.js → wardleyDiagram-VM6X3IG4-BOXpwLCv.js} +15 -15
  173. package/dist/public/assets/{xychartDiagram-FW5EYKEG-US-_k5eu.js → xychartDiagram-S5SC5T6Z-ChOPYsHc.js} +3 -3
  174. package/dist/public/index.html +19 -26
  175. package/dist/public/sbom.cdx.json +1 -0
  176. package/package.json +12 -13
  177. package/src/app.ts +19 -7
  178. package/src/auth/index.ts +1 -1
  179. package/src/auth/keycloak.ts +8 -3
  180. package/src/auth/mock.ts +141 -35
  181. package/src/auth/types.ts +8 -1
  182. package/src/domain/cards/index.ts +12 -102
  183. package/src/domain/cards/lib.ts +2 -14
  184. package/src/domain/cards/schema.ts +11 -3
  185. package/src/domain/cards/service.ts +9 -24
  186. package/src/domain/events/index.ts +112 -0
  187. package/src/domain/events/lifetime.ts +27 -0
  188. package/src/domain/events/project-events.ts +254 -0
  189. package/src/domain/events/schema.ts +21 -0
  190. package/src/domain/project/index.ts +31 -3
  191. package/src/domain/project/schema.ts +39 -6
  192. package/src/domain/project/service.ts +42 -17
  193. package/src/domain/projects/index.ts +5 -1
  194. package/src/domain/resources/index.ts +85 -2
  195. package/src/domain/resources/schema.ts +12 -2
  196. package/src/domain/resources/service.ts +55 -3
  197. package/src/domain/skills/index.ts +61 -0
  198. package/src/domain/skills/schema.ts +19 -0
  199. package/src/domain/skills/service.ts +18 -0
  200. package/src/export.ts +60 -42
  201. package/src/index.ts +3 -0
  202. package/src/main.ts +26 -8
  203. package/src/middleware/auth.ts +23 -4
  204. package/src/middleware/commandManager.ts +3 -0
  205. package/src/overlay.ts +175 -0
  206. package/src/project-errors.ts +33 -0
  207. package/src/project-registry.ts +41 -10
  208. package/dist/domain/cards/presence.d.ts +0 -50
  209. package/dist/domain/cards/presence.js +0 -93
  210. package/dist/domain/cards/presence.js.map +0 -1
  211. package/dist/public/assets/abnfDiagram-VRR7QNED-Djr4KJ5E.js +0 -1
  212. package/dist/public/assets/arc-DrR4k_H-.js +0 -1
  213. package/dist/public/assets/architecture-TIHT7OUA-XL6N-4o9.js +0 -1
  214. package/dist/public/assets/architectureDiagram-ZJ3FMSHR-DsMU2Uwa.js +0 -36
  215. package/dist/public/assets/blockDiagram-677ZJIJ3-DRBmQUQJ.js +0 -132
  216. package/dist/public/assets/c4Diagram-LMCZKHZV-E0rM02LD.js +0 -10
  217. package/dist/public/assets/channel-D5fnImJy.js +0 -1
  218. package/dist/public/assets/chunk-32BRIVSS-BnDY0aSV.js +0 -1
  219. package/dist/public/assets/chunk-52WLFC77-N5YugKaZ.js +0 -10
  220. package/dist/public/assets/chunk-5FCAYU7R-I3_t_Ic_.js +0 -1
  221. package/dist/public/assets/chunk-5HE753X5-Dxz40rzH.js +0 -1
  222. package/dist/public/assets/chunk-5JV3BV7I-CNwCKRLH.js +0 -1
  223. package/dist/public/assets/chunk-5TONJI2A-ezWQ_Z2j.js +0 -2
  224. package/dist/public/assets/chunk-7BUUIJ7U-Bb538aSH.js +0 -1
  225. package/dist/public/assets/chunk-BIQX33UG-DS132-R_.js +0 -1
  226. package/dist/public/assets/chunk-C7G6YPKG-BN-cNjoj.js +0 -1
  227. package/dist/public/assets/chunk-CQNSW5MT-D8Mn1I73.js +0 -1
  228. package/dist/public/assets/chunk-CYSBUYHQ-Dc64Dwdo.js +0 -1
  229. package/dist/public/assets/chunk-EMLP6XTP-aIK0V8GX.js +0 -1
  230. package/dist/public/assets/chunk-FWX5IMBZ-BF_P2-Do.js +0 -2
  231. package/dist/public/assets/chunk-ICXQ74PX-Bb8zaHde.js +0 -2
  232. package/dist/public/assets/chunk-JG7HCLWE-BtAXK3iQ.js +0 -2
  233. package/dist/public/assets/chunk-KEIR6QF5-DEvma7oi.js +0 -161
  234. package/dist/public/assets/chunk-MOZMSUNE-5FIqIBsY.js +0 -1
  235. package/dist/public/assets/chunk-OGEWGWER-BVIFy9xz.js +0 -1
  236. package/dist/public/assets/chunk-OSBZ3O6U-Cfd7kf1R.js +0 -1
  237. package/dist/public/assets/chunk-PUDLZKDR-Db3FSNR9.js +0 -156
  238. package/dist/public/assets/chunk-Q4XR5HBZ-BuKFRUzR.js +0 -70
  239. package/dist/public/assets/chunk-QBLGF6JB-DUGZXFh-.js +0 -1
  240. package/dist/public/assets/chunk-R7FJI6CG-D7mUd-qN.js +0 -1
  241. package/dist/public/assets/chunk-RYQCIY6F-C_3rESBd.js +0 -1
  242. package/dist/public/assets/chunk-U6XO7XAA-C3UhlwA1.js +0 -2
  243. package/dist/public/assets/chunk-VAUOI2AC-C-GBw18h.js +0 -1
  244. package/dist/public/assets/chunk-WYO6CB5R-BQoO62-B.js +0 -127
  245. package/dist/public/assets/chunk-XXDRQBXY-Co8n4ZHT.js +0 -1
  246. package/dist/public/assets/chunk-YOTPTUD7-DhCRKU1A.js +0 -1
  247. package/dist/public/assets/chunk-ZGVPDNZ5-hpz2Ryq5.js +0 -62
  248. package/dist/public/assets/chunk-ZIRB5QZD-BpeS1aZ7.js +0 -32
  249. package/dist/public/assets/classDiagram-OUVF2IWQ-CXdVorPK.js +0 -1
  250. package/dist/public/assets/classDiagram-v2-EOCWNBFH-CXdVorPK.js +0 -1
  251. package/dist/public/assets/colors-Cg5Vh3br.js +0 -1
  252. package/dist/public/assets/cose-bilkent-JH36ORCC-4GoRbloS.js +0 -1
  253. package/dist/public/assets/cynefin-VYW2F7L2-BPH-25fI.js +0 -1
  254. package/dist/public/assets/cynefinDiagram-TSTJHNR4-PEf16euv.js +0 -62
  255. package/dist/public/assets/cytoscape.esm-C3UvhD5t.js +0 -321
  256. package/dist/public/assets/dagre-Buvkdvvj.js +0 -1
  257. package/dist/public/assets/dagre-VKFMJZFB-DPsCMBF1.js +0 -4
  258. package/dist/public/assets/diagram-G47NLZAW-CzUoYkFf.js +0 -24
  259. package/dist/public/assets/diagram-NH7WQ7WH-MhGnE2fh.js +0 -24
  260. package/dist/public/assets/diagram-OA4YK3LP-CsQ9aFR_.js +0 -30
  261. package/dist/public/assets/diagram-WEI45ONY-Er3q49ew.js +0 -41
  262. package/dist/public/assets/dist-BzwexiH1.js +0 -1
  263. package/dist/public/assets/ebnfDiagram-CCIWWBDH-AnJAsk14.js +0 -1
  264. package/dist/public/assets/erDiagram-Q63AITRT-DulA16my.js +0 -85
  265. package/dist/public/assets/eventmodeling-45OFAUF4-CoIhTpHU.js +0 -1
  266. package/dist/public/assets/flowDiagram-23GEKE2U-BGMXUq18.js +0 -1
  267. package/dist/public/assets/ganttDiagram-NO4QXBWP-DAvCPT7_.js +0 -292
  268. package/dist/public/assets/gitGraph-TEB2WS4Q-BcPsZts5.js +0 -1
  269. package/dist/public/assets/index-Y8Ckwau7.js +0 -447
  270. package/dist/public/assets/info-DKCQHKI2-7VGzrAVB.js +0 -1
  271. package/dist/public/assets/infoDiagram-FWYZ7A6U-D_by7lSL.js +0 -2
  272. package/dist/public/assets/journeyDiagram-5HDEW3XC-DpvFmk7c.js +0 -139
  273. package/dist/public/assets/linear-BWTvbP1l.js +0 -1
  274. package/dist/public/assets/map-BaFkSB1l.js +0 -1
  275. package/dist/public/assets/mermaid-parser.core--8614tkK.js +0 -4
  276. package/dist/public/assets/ordinal-BdBDtYTt.js +0 -1
  277. package/dist/public/assets/packet-7NZHBO7P-KYt33H0C.js +0 -1
  278. package/dist/public/assets/path-HTXttWil.js +0 -1
  279. package/dist/public/assets/pegDiagram-2B236MQR-BQNFxYz2.js +0 -1
  280. package/dist/public/assets/pie-RZYD4A2V-xKz9s9I4.js +0 -1
  281. package/dist/public/assets/pieDiagram-ENE6RG2P-Cy13tg8_.js +0 -39
  282. package/dist/public/assets/radar-I7S5WNFK-B4QTX-fX.js +0 -1
  283. package/dist/public/assets/railroad-3IZDKUUU-Co_9rPVC.js +0 -1
  284. package/dist/public/assets/railroad-abnf-AHOZXSZD-Bhy_c3ol.js +0 -1
  285. package/dist/public/assets/railroad-ebnf-EBAXGLYW-B9ENjG34.js +0 -1
  286. package/dist/public/assets/railroad-peg-LSFZ7HO6-CyJxDBsB.js +0 -1
  287. package/dist/public/assets/railroadDiagram-RFXS5EU6-M2j5SJF2.js +0 -1
  288. package/dist/public/assets/range-EplFIxc7.js +0 -1
  289. package/dist/public/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +0 -1
  290. package/dist/public/assets/src-DOh7_en_.js +0 -1
  291. package/dist/public/assets/stateDiagram-2N3HPSRC-a9IdkSQG.js +0 -1
  292. package/dist/public/assets/stateDiagram-v2-6OUMAXLB-s2blPtZ-.js +0 -1
  293. package/dist/public/assets/swimlanes-5IMT3BWC-5w0Cdxk6.js +0 -2
  294. package/dist/public/assets/swimlanesDiagram-G3AALYLV-BWa-KRed.js +0 -8
  295. package/dist/public/assets/time-BM2d9MsQ.js +0 -1
  296. package/dist/public/assets/timeline-definition-FHXFAJF6-CvXlv_4Y.js +0 -120
  297. package/dist/public/assets/treeView-QDETBFTQ-B9cxjfpB.js +0 -1
  298. package/dist/public/assets/treemap-6X3UGDF4-BplEq4hB.js +0 -1
  299. package/dist/public/assets/treemap-BfjIY-m6.js +0 -1
  300. package/dist/public/assets/wardley-OPB4EBWU-BX2ghg5e.js +0 -1
  301. package/src/domain/cards/presence.ts +0 -124
@@ -0,0 +1,200 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2026
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation.
7
+ This program is distributed in the hope that it will be useful, but WITHOUT
8
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
+ FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
10
+ details. You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ import { randomUUID } from 'node:crypto';
14
+ const LEASE_MS = 90_000;
15
+ const EXPIRY_INTERVAL_MS = 30_000;
16
+ const RETIRED_LEASE_MS = 15_000;
17
+ /** The open subscriptions of one project and the presence leases they hold. */
18
+ export class ProjectEvents {
19
+ connections = new Map();
20
+ expiryTimer;
21
+ constructor() {
22
+ this.expiryTimer = setInterval(() => this.expire(), EXPIRY_INTERVAL_MS);
23
+ this.expiryTimer.unref();
24
+ }
25
+ connect(user, capabilities, delivery) {
26
+ const connectionId = randomUUID();
27
+ this.connections.set(connectionId, {
28
+ user,
29
+ capabilities,
30
+ delivery,
31
+ cardKey: null,
32
+ mode: 'viewing',
33
+ sequence: -1,
34
+ expiresAt: 0,
35
+ retired: false,
36
+ lastSent: null,
37
+ });
38
+ // EventSource cannot read response headers, so the stream is the only
39
+ // way back with a connection handle.
40
+ this.deliver(connectionId, {
41
+ event: 'ready',
42
+ data: JSON.stringify({ connectionId }),
43
+ });
44
+ return connectionId;
45
+ }
46
+ update(connectionId, userId, sequence, cardKey, mode) {
47
+ const connection = this.connections.get(connectionId);
48
+ if (!connection || connection.retired || connection.user.id !== userId) {
49
+ return false;
50
+ }
51
+ // Monotonic per connection, so a delayed request cannot undo a newer one.
52
+ if (sequence <= connection.sequence)
53
+ return true;
54
+ // Coerced rather than rejected: a fake editing warning deters others from editing.
55
+ if (!connection.capabilities.canDeclareEditing)
56
+ mode = 'viewing';
57
+ if (connection.cardKey === cardKey && connection.mode === mode) {
58
+ connection.sequence = sequence;
59
+ connection.expiresAt = Date.now() + LEASE_MS;
60
+ return true;
61
+ }
62
+ this.applyMove(connection, sequence, cardKey, mode, Date.now());
63
+ return true;
64
+ }
65
+ applyMove(connection, sequence, cardKey, mode, now) {
66
+ const previous = connection.cardKey;
67
+ if (previous !== cardKey)
68
+ connection.lastSent = null;
69
+ Object.assign(connection, {
70
+ sequence,
71
+ cardKey,
72
+ mode,
73
+ expiresAt: now + LEASE_MS,
74
+ });
75
+ if (previous)
76
+ this.presenceUpdated(previous);
77
+ if (cardKey && cardKey !== previous)
78
+ this.presenceUpdated(cardKey);
79
+ }
80
+ disconnect(connectionId) {
81
+ const connection = this.connections.get(connectionId);
82
+ if (!connection)
83
+ return;
84
+ this.connections.delete(connectionId);
85
+ this.closeQuietly(connection);
86
+ if (connection.cardKey)
87
+ this.presenceUpdated(connection.cardKey);
88
+ }
89
+ // `users()` dedups by user id, so a retiring connection's entry can outlive
90
+ // its socket without observers seeing a change.
91
+ retire(connectionId) {
92
+ const connection = this.connections.get(connectionId);
93
+ if (!connection)
94
+ return;
95
+ connection.retired = true;
96
+ // The entry only has to bridge the client's reconnect. Left on its full
97
+ // lease it would go on reporting the card and mode held at retirement,
98
+ // and `editing` wins in users(), so it would mask the live entry the
99
+ // replacement declares.
100
+ connection.expiresAt = Math.min(connection.expiresAt, Date.now() + RETIRED_LEASE_MS);
101
+ }
102
+ cardsUpdated(cardKeys, user) {
103
+ for (const cardKey of new Set(cardKeys)) {
104
+ const withIdentity = this.encode('card.updated', {
105
+ cardKey,
106
+ userId: user.id,
107
+ userName: user.name,
108
+ });
109
+ const withoutIdentity = this.encode('card.updated', { cardKey });
110
+ for (const [connectionId, connection] of this.onCard(cardKey)) {
111
+ this.deliver(connectionId, connection.capabilities.canSeeIdentity
112
+ ? withIdentity
113
+ : withoutIdentity);
114
+ }
115
+ }
116
+ }
117
+ dispose() {
118
+ clearInterval(this.expiryTimer);
119
+ const connections = [...this.connections.values()];
120
+ this.connections.clear();
121
+ for (const connection of connections) {
122
+ this.closeQuietly(connection);
123
+ }
124
+ }
125
+ users(cardKey) {
126
+ const users = new Map();
127
+ for (const { user, cardKey: key, mode } of this.connections.values()) {
128
+ if (key !== cardKey)
129
+ continue;
130
+ if (!users.has(user.id) || mode === 'editing') {
131
+ users.set(user.id, { userId: user.id, userName: user.name, mode });
132
+ }
133
+ }
134
+ // Sorted so identical occupancy always serializes the same way, which
135
+ // the per-recipient dedup in presenceUpdated() depends on.
136
+ return [...users.values()].sort((a, b) => a.userId.localeCompare(b.userId));
137
+ }
138
+ presenceUpdated(cardKey) {
139
+ const users = this.users(cardKey);
140
+ const serialized = JSON.stringify(users);
141
+ const message = this.encode('presence.updated', { cardKey, users });
142
+ for (const [connectionId, connection] of this.onCard(cardKey)) {
143
+ // Presence exists to keep editors from colliding, so a reader has no use
144
+ // for it and is not told who else is here. Readers still declare their
145
+ // own presence, which is why users() keeps them: editors see readers.
146
+ if (!connection.capabilities.canSeePresence)
147
+ continue;
148
+ if (connection.lastSent === serialized)
149
+ continue;
150
+ this.deliver(connectionId, message);
151
+ connection.lastSent = serialized;
152
+ }
153
+ }
154
+ // Subscription governs delivery.
155
+ onCard(cardKey) {
156
+ return [...this.connections].filter(([, c]) => c.cardKey === cardKey);
157
+ }
158
+ encode(event, data) {
159
+ return { event, data: JSON.stringify(data) };
160
+ }
161
+ deliver(connectionId, message) {
162
+ const connection = this.connections.get(connectionId);
163
+ // onCard() still yields a retired connection: it keeps its cardKey so the
164
+ // occupant list does not change while its replacement connects.
165
+ if (!connection || connection.retired)
166
+ return;
167
+ try {
168
+ connection.delivery.send(message);
169
+ }
170
+ catch {
171
+ this.disconnect(connectionId);
172
+ }
173
+ }
174
+ expire() {
175
+ for (const [connectionId, connection] of this.connections) {
176
+ if (connection.expiresAt > Date.now())
177
+ continue;
178
+ if (!connection.retired && !connection.cardKey)
179
+ continue;
180
+ const cardKey = connection.cardKey;
181
+ if (connection.retired)
182
+ this.connections.delete(connectionId);
183
+ else
184
+ connection.cardKey = null;
185
+ if (cardKey)
186
+ this.presenceUpdated(cardKey);
187
+ }
188
+ }
189
+ closeQuietly(connection) {
190
+ if (connection.retired)
191
+ return;
192
+ try {
193
+ connection.delivery.close();
194
+ }
195
+ catch {
196
+ /* already closed */
197
+ }
198
+ }
199
+ }
200
+ //# sourceMappingURL=project-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-events.js","sourceRoot":"","sources":["../../../src/domain/events/project-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2026
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation.
7
+ This program is distributed in the hope that it will be useful, but WITHOUT
8
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
+ FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
10
+ details. You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ import { z } from 'zod';
14
+ export declare const presenceSchema: z.ZodObject<{
15
+ connectionId: z.ZodUUID;
16
+ sequence: z.ZodNumber;
17
+ cardKey: z.ZodNullable<z.ZodString>;
18
+ mode: z.ZodEnum<{
19
+ viewing: "viewing";
20
+ editing: "editing";
21
+ }>;
22
+ }, z.core.$strip>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2026
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation.
7
+ This program is distributed in the hope that it will be useful, but WITHOUT
8
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
+ FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
10
+ details. You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ import { z } from 'zod';
14
+ export const presenceSchema = z.object({
15
+ connectionId: z.uuid(),
16
+ sequence: z.number().int().nonnegative(),
17
+ cardKey: z.string().min(1).nullable(),
18
+ mode: z.enum(['viewing', 'editing']),
19
+ });
20
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/events/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CACrC,CAAC,CAAC"}
@@ -11,8 +11,9 @@
11
11
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
12
  */
13
13
  import { Hono } from 'hono';
14
+ import { disableSSG } from 'hono/ssg';
14
15
  import { zValidator } from '../../middleware/zvalidator.js';
15
- import { addHubSchema, cleanSchema, importModuleSchema, moduleParamSchema, removeHubSchema, updateProjectSchema, } from './schema.js';
16
+ import { addHubSchema, cleanSchema, importModuleSchema, moduleParamSchema, moduleVersionsQuerySchema, removeHubSchema, updateModuleSchema, updateProjectSchema, } from './schema.js';
16
17
  import * as projectService from './service.js';
17
18
  import { UserRole } from '../../types.js';
18
19
  import { requireRole } from '../../middleware/auth.js';
@@ -33,12 +34,23 @@ router.post('/modules/update', requireRole(UserRole.Admin), async (c) => {
33
34
  await projectService.updateAllModules(commands);
34
35
  return c.json({ message: 'All modules updated' });
35
36
  });
36
- router.post('/modules/:module/update', requireRole(UserRole.Admin), zValidator('param', moduleParamSchema), async (c) => {
37
+ router.post('/modules/:module/update', requireRole(UserRole.Admin), zValidator('param', moduleParamSchema), zValidator('json', updateModuleSchema), async (c) => {
37
38
  const commands = c.get('commands');
38
39
  const { module } = c.req.valid('param');
39
- await projectService.updateModule(commands, module);
40
+ const { range } = c.req.valid('json');
41
+ await projectService.updateModule(commands, module, range);
40
42
  return c.json({ message: 'Module updated' });
41
43
  });
44
+ // These reach the module sources over the network, which an export must not do.
45
+ router.get('/modules/versions', disableSSG(), requireRole(UserRole.Admin), zValidator('query', moduleVersionsQuerySchema), async (c) => {
46
+ const commands = c.get('commands');
47
+ const target = c.req.valid('query');
48
+ return c.json(await projectService.listModuleVersions(commands, target));
49
+ });
50
+ router.get('/modules/update-plan', disableSSG(), requireRole(UserRole.Admin), async (c) => {
51
+ const commands = c.get('commands');
52
+ return c.json(await projectService.getUpdatePlan(commands));
53
+ });
42
54
  router.get('/modules/importable', requireRole(UserRole.Reader), async (c) => {
43
55
  const commands = c.get('commands');
44
56
  const modules = await projectService.getImportableModules(commands);
@@ -46,8 +58,8 @@ router.get('/modules/importable', requireRole(UserRole.Reader), async (c) => {
46
58
  });
47
59
  router.post('/modules', requireRole(UserRole.Admin), zValidator('json', importModuleSchema), async (c) => {
48
60
  const commands = c.get('commands');
49
- const { source } = c.req.valid('json');
50
- await projectService.importModule(commands, source);
61
+ const { source, range } = c.req.valid('json');
62
+ await projectService.importModule(commands, source, range);
51
63
  return c.json({ message: 'Module imported successfully' });
52
64
  });
53
65
  router.delete('/modules/:module', requireRole(UserRole.Admin), zValidator('param', moduleParamSchema), async (c) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/project/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/project/index.ts"],"names":[],"mappings":"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"}
@@ -32,4 +32,12 @@ export declare const cleanSchema: z.ZodObject<{
32
32
  }, z.core.$strip>;
33
33
  export declare const importModuleSchema: z.ZodObject<{
34
34
  source: z.ZodString;
35
+ range: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strip>;
37
+ export declare const updateModuleSchema: z.ZodObject<{
38
+ range: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>;
40
+ export declare const moduleVersionsQuerySchema: z.ZodObject<{
41
+ module: z.ZodOptional<z.ZodString>;
42
+ source: z.ZodOptional<z.ZodString>;
35
43
  }, z.core.$strip>;
@@ -44,12 +44,40 @@ export const removeHubSchema = z.object({
44
44
  export const cleanSchema = z.object({
45
45
  dryRun: z.boolean(),
46
46
  });
47
+ // Credentials in a source would be stored in cardsConfig.json and echoed in
48
+ // query strings, logs and errors.
49
+ const gitSourceSchema = z
50
+ .string()
51
+ .min(1)
52
+ .refine((s) => s.startsWith('https://') || s.startsWith('git@'), {
53
+ message: 'Source must be a git URL (https:// or git@)',
54
+ })
55
+ .refine((s) => {
56
+ if (!s.startsWith('https://'))
57
+ return true;
58
+ try {
59
+ const { username, password } = new URL(s);
60
+ return username === '' && password === '';
61
+ }
62
+ catch {
63
+ return false;
64
+ }
65
+ }, { message: 'Source must be a valid URL without credentials' });
66
+ // A blank range is a valid semver range meaning '*', which would unpin.
67
+ const rangeSchema = z.string().trim().min(1);
47
68
  export const importModuleSchema = z.object({
48
- source: z
49
- .string()
50
- .min(1)
51
- .refine((s) => s.startsWith('https://') || s.startsWith('git@'), {
52
- message: 'Source must be a git URL (https:// or git@)',
53
- }),
69
+ source: gitSourceSchema,
70
+ range: rangeSchema.optional(),
71
+ });
72
+ export const updateModuleSchema = z.object({
73
+ range: rangeSchema.optional(),
74
+ });
75
+ export const moduleVersionsQuerySchema = z
76
+ .object({
77
+ module: z.string().min(1).optional(),
78
+ source: gitSourceSchema.optional(),
79
+ })
80
+ .refine((q) => (q.module === undefined) !== (q.source === undefined), {
81
+ message: 'Provide exactly one of module or source',
54
82
  });
55
83
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/project/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC/D,OAAO,EAAE,iDAAiD;KAC3D,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;QACd,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,gDAAgD;KACxD,CAAC;CACH,CAAC,CAAC;AAEH,+EAA+E;AAC/E,gFAAgF;AAChF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,8EAA8E;AAC9E,2EAA2E;AAC3E,wDAAwD;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC/D,OAAO,EAAE,6CAA6C;KACvD,CAAC;CACL,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/project/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC/D,OAAO,EAAE,iDAAiD;KAC3D,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;QACd,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,gDAAgD;KACxD,CAAC;CACH,CAAC,CAAC;AAEH,+EAA+E;AAC/E,gFAAgF;AAChF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,8EAA8E;AAC9E,2EAA2E;AAC3E,wDAAwD;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH,4EAA4E;AAC5E,kCAAkC;AAClC,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;IAC/D,OAAO,EAAE,6CAA6C;CACvD,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EACD,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAC9D,CAAC;AAEJ,wEAAwE;AACxE,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;IACpE,OAAO,EAAE,yCAAyC;CACnD,CAAC,CAAC"}
@@ -10,10 +10,9 @@
10
10
  details. You should have received a copy of the GNU Affero General Public
11
11
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
12
  */
13
- import { type CleanResult, type CommandManager, type HubFetchFailure, type ModuleSettingFromHub } from '@cyberismo/data-handler';
13
+ import { type CleanResult, type CommandManager, type HubFetchFailure, type ModuleSettingFromHub, type ProjectModuleInfo, type UpdatePlan } from '@cyberismo/data-handler';
14
14
  export type { CleanResult } from '@cyberismo/data-handler';
15
- export interface ProjectModule {
16
- name: string;
15
+ export interface ProjectModule extends ProjectModuleInfo {
17
16
  cardKeyPrefix: string;
18
17
  }
19
18
  export interface ProjectInfo {
@@ -45,11 +44,16 @@ export interface HubInfo {
45
44
  }
46
45
  export declare function getProject(commands: CommandManager): Promise<ProjectInfo>;
47
46
  export declare function updateProject(commands: CommandManager, updates: ProjectUpdatePayload): Promise<ProjectInfo>;
48
- export declare function updateModule(commands: CommandManager, module: string): Promise<void>;
47
+ export declare function updateModule(commands: CommandManager, module: string, range?: string): Promise<void>;
49
48
  export declare function updateAllModules(commands: CommandManager): Promise<void>;
49
+ export declare function getUpdatePlan(commands: CommandManager): Promise<UpdatePlan>;
50
+ export declare function listModuleVersions(commands: CommandManager, target: {
51
+ module?: string;
52
+ source?: string;
53
+ }): Promise<string[]>;
50
54
  export declare function deleteModule(commands: CommandManager, module: string): Promise<void>;
51
55
  export declare function getImportableModules(commands: CommandManager): Promise<ModuleSettingFromHub[]>;
52
- export declare function importModule(commands: CommandManager, source: string): Promise<void>;
56
+ export declare function importModule(commands: CommandManager, source: string, range?: string): Promise<void>;
53
57
  export declare function getHubs(commands: CommandManager): Promise<HubInfo[]>;
54
58
  export declare function addHub(commands: CommandManager, location: string): Promise<HubFetchFailure[]>;
55
59
  export declare function removeHub(commands: CommandManager, location: string): Promise<void>;
@@ -10,26 +10,24 @@
10
10
  details. You should have received a copy of the GNU Affero General Public
11
11
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
12
  */
13
- async function toModuleInfo(commands, moduleName) {
13
+ async function toModuleInfo(commands, row) {
14
14
  try {
15
- const data = await commands.showCmd.showModule(moduleName);
15
+ const data = await commands.modulesCmd.show(row.name);
16
16
  return {
17
- name: data.name || moduleName,
18
- cardKeyPrefix: data.cardKeyPrefix || moduleName,
17
+ ...row,
18
+ name: data.name || row.name,
19
+ cardKeyPrefix: data.cardKeyPrefix || row.name,
19
20
  };
20
21
  }
21
22
  catch {
22
- return {
23
- name: moduleName,
24
- cardKeyPrefix: moduleName,
25
- };
23
+ return { ...row, cardKeyPrefix: row.name };
26
24
  }
27
25
  }
28
26
  export async function getProject(commands) {
29
27
  return commands.consistent(async () => {
30
28
  const project = await commands.showCmd.showProject();
31
- const modules = await commands.showCmd.showModules();
32
- const moduleDetails = await Promise.all(modules.map((mod) => toModuleInfo(commands, mod.name)));
29
+ const modules = await commands.modulesCmd.inventory();
30
+ const moduleDetails = await Promise.all(modules.map((row) => toModuleInfo(commands, row)));
33
31
  const gitRemoteUrl = (await commands.showCmd.showGitRemoteUrl()) ?? null;
34
32
  return {
35
33
  name: project.name,
@@ -62,11 +60,19 @@ export async function updateProject(commands, updates) {
62
60
  }
63
61
  return getProject(commands);
64
62
  }
65
- export async function updateModule(commands, module) {
66
- await commands.importCmd.updateModule(module);
63
+ export async function updateModule(commands, module, range) {
64
+ await commands.modulesCmd.update(range ? { module, range } : { module });
67
65
  }
68
66
  export async function updateAllModules(commands) {
69
- await commands.importCmd.updateAllModules();
67
+ await commands.modulesCmd.update({});
68
+ }
69
+ export async function getUpdatePlan(commands) {
70
+ return commands.modulesCmd.planUpdate({});
71
+ }
72
+ export async function listModuleVersions(commands, target) {
73
+ return commands.modulesCmd.listVersions(target.source !== undefined
74
+ ? { source: target.source }
75
+ : { module: target.module });
70
76
  }
71
77
  export async function deleteModule(commands, module) {
72
78
  await commands.removeCmd.remove('module', module);
@@ -86,13 +92,13 @@ export async function getImportableModules(commands) {
86
92
  await populateHubCache(commands);
87
93
  return commands.showCmd.showImportableModules(false, true);
88
94
  }
89
- export async function importModule(commands, source) {
90
- await commands.importCmd.importModule(source);
95
+ export async function importModule(commands, source, range) {
96
+ await commands.modulesCmd.install(source, range ? { version: range } : undefined);
91
97
  }
92
98
  export async function getHubs(commands) {
93
99
  await populateHubCache(commands);
94
100
  const hubs = await commands.showCmd.showHubDetails();
95
- const importedModules = new Set((await commands.showCmd.showModules()).map((mod) => mod.name));
101
+ const importedModules = new Set((await commands.modulesCmd.list()).map((mod) => mod.name));
96
102
  return hubs.map((hub) => ({
97
103
  location: hub.location,
98
104
  displayName: hub.displayName,
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  import { Hono } from 'hono';
14
14
  import { zValidator } from '../../middleware/zvalidator.js';
15
15
  import { requireRole, getCurrentUser } from '../../middleware/auth.js';
16
+ import { isProjectReadOnly } from '../../overlay.js';
16
17
  import { UserRole } from '../../types.js';
17
18
  import { createProjectSchema, cloneProjectSchema } from './schema.js';
18
19
  import * as projectsService from './service.js';
@@ -32,7 +33,10 @@ export function createProjectsRouter(registry, multiProjectRoot) {
32
33
  */
33
34
  router.get('/', requireRole(UserRole.Reader), (c) => {
34
35
  return c.json({
35
- projects: registry.list(),
36
+ projects: registry.list().map((project) => ({
37
+ ...project,
38
+ readOnly: isProjectReadOnly(project.prefix),
39
+ })),
36
40
  canCreateProjects: !!multiProjectRoot,
37
41
  });
38
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/projects/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/projects/index.ts"],"names":[],"mappings":"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"}