@cyberismo/backend 1.2.0 → 1.3.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 (468) hide show
  1. package/dist/app.d.ts +5 -15
  2. package/dist/app.js +28 -38
  3. package/dist/app.js.map +1 -1
  4. package/dist/auth/index.d.ts +0 -12
  5. package/dist/auth/index.js +2 -12
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/auth/keycloak.d.ts +0 -12
  8. package/dist/auth/keycloak.js +2 -12
  9. package/dist/auth/keycloak.js.map +1 -1
  10. package/dist/auth/mock.d.ts +0 -12
  11. package/dist/auth/mock.js +2 -12
  12. package/dist/auth/mock.js.map +1 -1
  13. package/dist/auth/types.d.ts +0 -12
  14. package/dist/auth/types.js +2 -12
  15. package/dist/auth/types.js.map +1 -1
  16. package/dist/common/errors.d.ts +12 -0
  17. package/dist/common/errors.js +31 -0
  18. package/dist/common/errors.js.map +1 -0
  19. package/dist/common/validationSchemas.d.ts +0 -12
  20. package/dist/common/validationSchemas.js +2 -12
  21. package/dist/common/validationSchemas.js.map +1 -1
  22. package/dist/domain/auth/index.d.ts +0 -12
  23. package/dist/domain/auth/index.js +2 -12
  24. package/dist/domain/auth/index.js.map +1 -1
  25. package/dist/domain/calculations/index.d.ts +0 -12
  26. package/dist/domain/calculations/index.js +4 -14
  27. package/dist/domain/calculations/index.js.map +1 -1
  28. package/dist/domain/calculations/schema.d.ts +0 -12
  29. package/dist/domain/calculations/schema.js +2 -12
  30. package/dist/domain/calculations/schema.js.map +1 -1
  31. package/dist/domain/calculations/service.d.ts +2 -14
  32. package/dist/domain/calculations/service.js +7 -17
  33. package/dist/domain/calculations/service.js.map +1 -1
  34. package/dist/domain/cardTypes/index.d.ts +0 -12
  35. package/dist/domain/cardTypes/index.js +10 -20
  36. package/dist/domain/cardTypes/index.js.map +1 -1
  37. package/dist/domain/cardTypes/schema.d.ts +0 -12
  38. package/dist/domain/cardTypes/schema.js +2 -12
  39. package/dist/domain/cardTypes/schema.js.map +1 -1
  40. package/dist/domain/cardTypes/service.d.ts +4 -16
  41. package/dist/domain/cardTypes/service.js +17 -25
  42. package/dist/domain/cardTypes/service.js.map +1 -1
  43. package/dist/domain/cards/index.d.ts +0 -12
  44. package/dist/domain/cards/index.js +120 -102
  45. package/dist/domain/cards/index.js.map +1 -1
  46. package/dist/domain/cards/lib.d.ts +6 -23
  47. package/dist/domain/cards/lib.js +7 -126
  48. package/dist/domain/cards/lib.js.map +1 -1
  49. package/dist/domain/cards/mermaid.d.ts +8 -0
  50. package/dist/domain/cards/mermaid.js +23 -0
  51. package/dist/domain/cards/mermaid.js.map +1 -0
  52. package/dist/domain/cards/schema.d.ts +6 -12
  53. package/dist/domain/cards/schema.js +6 -12
  54. package/dist/domain/cards/schema.js.map +1 -1
  55. package/dist/domain/cards/service.d.ts +28 -32
  56. package/dist/domain/cards/service.js +119 -83
  57. package/dist/domain/cards/service.js.map +1 -1
  58. package/dist/domain/connectors/index.d.ts +0 -12
  59. package/dist/domain/connectors/index.js +4 -14
  60. package/dist/domain/connectors/index.js.map +1 -1
  61. package/dist/domain/connectors/service.d.ts +2 -14
  62. package/dist/domain/connectors/service.js +4 -14
  63. package/dist/domain/connectors/service.js.map +1 -1
  64. package/dist/domain/events/events-by-project.d.ts +19 -0
  65. package/dist/domain/events/events-by-project.js +57 -0
  66. package/dist/domain/events/events-by-project.js.map +1 -0
  67. package/dist/domain/events/index.d.ts +0 -12
  68. package/dist/domain/events/index.js +3 -13
  69. package/dist/domain/events/index.js.map +1 -1
  70. package/dist/domain/events/lifetime.d.ts +0 -12
  71. package/dist/domain/events/lifetime.js +2 -12
  72. package/dist/domain/events/lifetime.js.map +1 -1
  73. package/dist/domain/events/project-events.d.ts +10 -14
  74. package/dist/domain/events/project-events.js +22 -18
  75. package/dist/domain/events/project-events.js.map +1 -1
  76. package/dist/domain/events/schema.d.ts +0 -12
  77. package/dist/domain/events/schema.js +2 -12
  78. package/dist/domain/events/schema.js.map +1 -1
  79. package/dist/domain/fieldTypes/index.d.ts +0 -12
  80. package/dist/domain/fieldTypes/index.js +6 -16
  81. package/dist/domain/fieldTypes/index.js.map +1 -1
  82. package/dist/domain/fieldTypes/schema.d.ts +0 -12
  83. package/dist/domain/fieldTypes/schema.js +2 -12
  84. package/dist/domain/fieldTypes/schema.js.map +1 -1
  85. package/dist/domain/fieldTypes/service.d.ts +4 -16
  86. package/dist/domain/fieldTypes/service.js +7 -17
  87. package/dist/domain/fieldTypes/service.js.map +1 -1
  88. package/dist/domain/graphModels/index.d.ts +0 -12
  89. package/dist/domain/graphModels/index.js +4 -14
  90. package/dist/domain/graphModels/index.js.map +1 -1
  91. package/dist/domain/graphModels/schema.d.ts +0 -12
  92. package/dist/domain/graphModels/schema.js +2 -12
  93. package/dist/domain/graphModels/schema.js.map +1 -1
  94. package/dist/domain/graphModels/service.d.ts +2 -14
  95. package/dist/domain/graphModels/service.js +4 -14
  96. package/dist/domain/graphModels/service.js.map +1 -1
  97. package/dist/domain/graphViews/index.d.ts +0 -12
  98. package/dist/domain/graphViews/index.js +4 -14
  99. package/dist/domain/graphViews/index.js.map +1 -1
  100. package/dist/domain/graphViews/schema.js +2 -0
  101. package/dist/domain/graphViews/schema.js.map +1 -1
  102. package/dist/domain/graphViews/service.d.ts +2 -14
  103. package/dist/domain/graphViews/service.js +4 -14
  104. package/dist/domain/graphViews/service.js.map +1 -1
  105. package/dist/domain/labels/index.d.ts +0 -12
  106. package/dist/domain/labels/index.js +4 -14
  107. package/dist/domain/labels/index.js.map +1 -1
  108. package/dist/domain/labels/service.d.ts +3 -15
  109. package/dist/domain/labels/service.js +5 -15
  110. package/dist/domain/labels/service.js.map +1 -1
  111. package/dist/domain/linkTypes/index.d.ts +0 -12
  112. package/dist/domain/linkTypes/index.js +6 -16
  113. package/dist/domain/linkTypes/index.js.map +1 -1
  114. package/dist/domain/linkTypes/schema.d.ts +0 -12
  115. package/dist/domain/linkTypes/schema.js +2 -12
  116. package/dist/domain/linkTypes/schema.js.map +1 -1
  117. package/dist/domain/linkTypes/service.d.ts +3 -15
  118. package/dist/domain/linkTypes/service.js +7 -17
  119. package/dist/domain/linkTypes/service.js.map +1 -1
  120. package/dist/domain/logicPrograms/index.d.ts +0 -12
  121. package/dist/domain/logicPrograms/index.js +4 -14
  122. package/dist/domain/logicPrograms/index.js.map +1 -1
  123. package/dist/domain/logicPrograms/service.d.ts +2 -14
  124. package/dist/domain/logicPrograms/service.js +5 -3
  125. package/dist/domain/logicPrograms/service.js.map +1 -1
  126. package/dist/domain/mcp/index.d.ts +3 -15
  127. package/dist/domain/mcp/index.js +27 -21
  128. package/dist/domain/mcp/index.js.map +1 -1
  129. package/dist/domain/project/index.d.ts +0 -12
  130. package/dist/domain/project/index.js +30 -40
  131. package/dist/domain/project/index.js.map +1 -1
  132. package/dist/domain/project/schema.d.ts +0 -12
  133. package/dist/domain/project/schema.js +2 -12
  134. package/dist/domain/project/schema.js.map +1 -1
  135. package/dist/domain/project/service.d.ts +16 -28
  136. package/dist/domain/project/service.js +48 -58
  137. package/dist/domain/project/service.js.map +1 -1
  138. package/dist/domain/projects/index.d.ts +2 -14
  139. package/dist/domain/projects/index.js +19 -36
  140. package/dist/domain/projects/index.js.map +1 -1
  141. package/dist/domain/projects/schema.d.ts +1 -12
  142. package/dist/domain/projects/schema.js +3 -12
  143. package/dist/domain/projects/schema.js.map +1 -1
  144. package/dist/domain/projects/service.d.ts +9 -35
  145. package/dist/domain/projects/service.js +12 -48
  146. package/dist/domain/projects/service.js.map +1 -1
  147. package/dist/domain/reports/index.d.ts +0 -12
  148. package/dist/domain/reports/index.js +4 -14
  149. package/dist/domain/reports/index.js.map +1 -1
  150. package/dist/domain/reports/schema.d.ts +0 -12
  151. package/dist/domain/reports/schema.js +2 -12
  152. package/dist/domain/reports/schema.js.map +1 -1
  153. package/dist/domain/reports/service.d.ts +2 -14
  154. package/dist/domain/reports/service.js +4 -14
  155. package/dist/domain/reports/service.js.map +1 -1
  156. package/dist/domain/resources/index.d.ts +0 -12
  157. package/dist/domain/resources/index.js +19 -26
  158. package/dist/domain/resources/index.js.map +1 -1
  159. package/dist/domain/resources/schema.js +2 -0
  160. package/dist/domain/resources/schema.js.map +1 -1
  161. package/dist/domain/resources/service.d.ts +11 -23
  162. package/dist/domain/resources/service.js +48 -59
  163. package/dist/domain/resources/service.js.map +1 -1
  164. package/dist/domain/skills/index.d.ts +0 -12
  165. package/dist/domain/skills/index.js +4 -14
  166. package/dist/domain/skills/index.js.map +1 -1
  167. package/dist/domain/skills/schema.d.ts +0 -12
  168. package/dist/domain/skills/schema.js +2 -12
  169. package/dist/domain/skills/schema.js.map +1 -1
  170. package/dist/domain/skills/service.d.ts +2 -14
  171. package/dist/domain/skills/service.js +4 -14
  172. package/dist/domain/skills/service.js.map +1 -1
  173. package/dist/domain/templates/index.d.ts +0 -12
  174. package/dist/domain/templates/index.js +8 -18
  175. package/dist/domain/templates/index.js.map +1 -1
  176. package/dist/domain/templates/schema.d.ts +0 -12
  177. package/dist/domain/templates/schema.js +2 -12
  178. package/dist/domain/templates/schema.js.map +1 -1
  179. package/dist/domain/templates/service.d.ts +4 -16
  180. package/dist/domain/templates/service.js +8 -18
  181. package/dist/domain/templates/service.js.map +1 -1
  182. package/dist/domain/tree/index.d.ts +0 -12
  183. package/dist/domain/tree/index.js +4 -14
  184. package/dist/domain/tree/index.js.map +1 -1
  185. package/dist/domain/tree/service.d.ts +3 -15
  186. package/dist/domain/tree/service.js +8 -15
  187. package/dist/domain/tree/service.js.map +1 -1
  188. package/dist/domain/workflows/index.d.ts +0 -12
  189. package/dist/domain/workflows/index.js +4 -14
  190. package/dist/domain/workflows/index.js.map +1 -1
  191. package/dist/domain/workflows/schema.d.ts +0 -12
  192. package/dist/domain/workflows/schema.js +2 -12
  193. package/dist/domain/workflows/schema.js.map +1 -1
  194. package/dist/domain/workflows/service.d.ts +2 -14
  195. package/dist/domain/workflows/service.js +4 -14
  196. package/dist/domain/workflows/service.js.map +1 -1
  197. package/dist/export.d.ts +6 -20
  198. package/dist/export.js +19 -29
  199. package/dist/export.js.map +1 -1
  200. package/dist/index.d.ts +3 -5
  201. package/dist/index.js +19 -43
  202. package/dist/index.js.map +1 -1
  203. package/dist/main.js +19 -30
  204. package/dist/main.js.map +1 -1
  205. package/dist/middleware/auth.d.ts +0 -12
  206. package/dist/middleware/auth.js +2 -12
  207. package/dist/middleware/auth.js.map +1 -1
  208. package/dist/middleware/commandManager.d.ts +15 -20
  209. package/dist/middleware/commandManager.js +27 -36
  210. package/dist/middleware/commandManager.js.map +1 -1
  211. package/dist/middleware/tree.js +2 -0
  212. package/dist/middleware/tree.js.map +1 -1
  213. package/dist/middleware/zvalidator.js +2 -0
  214. package/dist/middleware/zvalidator.js.map +1 -1
  215. package/dist/overlay.d.ts +4 -16
  216. package/dist/overlay.js +22 -17
  217. package/dist/overlay.js.map +1 -1
  218. package/dist/public/THIRD-PARTY.txt +1397 -286
  219. package/dist/public/assets/__vite-browser-external-DGgK3jMU.js +1 -0
  220. package/dist/public/assets/abnfDiagram-WEYOIA3C-B3qq7PKv.js +1 -0
  221. package/dist/public/assets/architecture-WOLXFQ4H-Bzau2LI0.js +1 -0
  222. package/dist/public/assets/architectureDiagram-ZHVYKT53-Bg0cUwdb.js +36 -0
  223. package/dist/public/assets/blockDiagram-RJAE7QA3-0RJB-ra-.js +140 -0
  224. package/dist/public/assets/c4Diagram-XDPPPE54-BzoQcLvf.js +38 -0
  225. package/dist/public/assets/channel-6BNdw4Ax.js +1 -0
  226. package/dist/public/assets/{chunk-SVP7TREG-CIQMl7hl.js → chunk-2E7WHVMD-6aqPk-Hk.js} +4 -4
  227. package/dist/public/assets/chunk-4EMNKR2T-vovNSAaE.js +1 -0
  228. package/dist/public/assets/{chunk-F27PBJKO-tDfs6zeO.js → chunk-55XCU76K-DXkKnt2y.js} +1 -1
  229. package/dist/public/assets/chunk-7S6XSTFO-B9bfO0l3.js +2 -0
  230. package/dist/public/assets/chunk-AQDTSKZB-ilLy_cYP.js +72 -0
  231. package/dist/public/assets/chunk-DSNLSHJZ-DAudglXu.js +129 -0
  232. package/dist/public/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
  233. package/dist/public/assets/chunk-HAGFOTED-CSKFgs6b.js +62 -0
  234. package/dist/public/assets/chunk-HNE4Q36P-Cu5gPBVk.js +1 -0
  235. package/dist/public/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
  236. package/dist/public/assets/chunk-NGNAAXSQ-DI_UYJZ4.js +136 -0
  237. package/dist/public/assets/chunk-NQOKRVIF-Bpcvhq1n.js +213 -0
  238. package/dist/public/assets/chunk-UHW7PFBP-BDjvOaTH.js +1 -0
  239. package/dist/public/assets/chunk-VQ5W62QI-DHTcO93W.js +1 -0
  240. package/dist/public/assets/chunk-WQQL4CDK-H6nAhuck.js +10 -0
  241. package/dist/public/assets/{chunk-XXDRQBXY-B7bWyHjt.js → chunk-XXDRQBXY-BUghdEVl.js} +1 -1
  242. package/dist/public/assets/chunk-YZO67HFG-D13E0_Yh.js +1 -0
  243. package/dist/public/assets/chunk-ZAUX2LTX-Dp5y-2wt.js +1 -0
  244. package/dist/public/assets/chunk-ZCHMQSOR-RJjlln1D.js +2 -0
  245. package/dist/public/assets/classDiagram-v2-4MYWR3UA-CAqiFCSv.js +217 -0
  246. package/dist/public/assets/cose-bilkent-JH36ORCC-C_VOHzoP.js +1 -0
  247. package/dist/public/assets/cynefin-EF2NZ3EQ-Dyk4ZPjK.js +1 -0
  248. package/dist/public/assets/{cynefinDiagram-5FMLGOSQ-_V_nrIhD.js → cynefinDiagram-WF24UDRP-b_Ia8gQX.js} +1 -1
  249. package/dist/public/assets/cytoscape.esm-GRKmfDkD.js +321 -0
  250. package/dist/public/assets/dagre-NK4GIZVX-CH1K1yF8.js +4 -0
  251. package/dist/public/assets/{diagram-VX7I27RA-De_UQv8C.js → diagram-CBK3MWTC-OaKd5avy.js} +13 -13
  252. package/dist/public/assets/diagram-I5XIIV2D-Cmu5z1ad.js +24 -0
  253. package/dist/public/assets/{diagram-S7CK7UJ4-25IjIKyo.js → diagram-ODIL2UCW-Cz1kkDDX.js} +7 -7
  254. package/dist/public/assets/diagram-PFBEJUXE-faMkmqUW.js +3 -0
  255. package/dist/public/assets/{diagram-UQ7AKVKN-C5VvsV7x.js → diagram-RJA3I4VV-nycvfte-.js} +2 -2
  256. package/dist/public/assets/diagram-TYUNFSNR-CjEv5QCm.js +200 -0
  257. package/dist/public/assets/{dist-BDCdLWk4.js → dist-DGs_yUrP.js} +1 -1
  258. package/dist/public/assets/ebnfDiagram-V4P3TTPT-DN-IIxCy.js +1 -0
  259. package/dist/public/assets/elk-QONTBCTQ-Bsam88GP.js +27 -0
  260. package/dist/public/assets/erDiagram-KYQIGQAA-DEU_qqNK.js +99 -0
  261. package/dist/public/assets/eventmodeling-K75KTNOO-Bl6NCM9E.js +1 -0
  262. package/dist/public/assets/flowDiagram-IUGLLWBU-Cl4qZ-36.js +1 -0
  263. package/dist/public/assets/ganttDiagram-R7GPNTJY-BmMd4aGi.js +292 -0
  264. package/dist/public/assets/gitGraph-VSP46ZUC-Q0H2PWek.js +1 -0
  265. package/dist/public/assets/gitGraphDiagram-PDYL7XHY-BlCTBYTj.js +106 -0
  266. package/dist/public/assets/index-CuBJ0hof.css +1 -0
  267. package/dist/public/assets/index-D701BZPh.js +2219 -0
  268. package/dist/public/assets/info-OHQRW6UA-D0TMPJxW.js +1 -0
  269. package/dist/public/assets/infoDiagram-MVDRKAX5-CljbtJXu.js +2 -0
  270. package/dist/public/assets/{ishikawaDiagram-5VMMS53U-KvT4DU1u.js → ishikawaDiagram-HPEHV2GE-_Y3Fr0hu.js} +6 -6
  271. package/dist/public/assets/{journeyDiagram-3NMN7TZE-PhGRkXkq.js → journeyDiagram-BOSHW7O7-Bo55jJ4m.js} +39 -39
  272. package/dist/public/assets/kanban-definition-FNSA4HC5-Cd-10MtF.js +89 -0
  273. package/dist/public/assets/katex-MEuSR36T.js +257 -0
  274. package/dist/public/assets/line-BDmh4sWC.js +1 -0
  275. package/dist/public/assets/linear-Dt7xjMrI.js +1 -0
  276. package/dist/public/assets/mermaid-parser.core-BJ1yyzvV.js +7 -0
  277. package/dist/public/assets/mindmap-definition-6OY57UG3-CRgumPuN.js +98 -0
  278. package/dist/public/assets/packet-JDAUHWVQ-DsTMT3Kw.js +1 -0
  279. package/dist/public/assets/pegDiagram-ECIUJNBX-BEGI5k3m.js +1 -0
  280. package/dist/public/assets/pie-XZMESJXO-COyqzA3N.js +1 -0
  281. package/dist/public/assets/pieDiagram-GNMPY74T-CrLJhZJJ.js +39 -0
  282. package/dist/public/assets/{quadrantDiagram-AXDQQJYC-B9dlNtZl.js → quadrantDiagram-D57K4MC3-Fl7HMHxK.js} +6 -6
  283. package/dist/public/assets/radar-ABXABTNO-DeXHKowk.js +1 -0
  284. package/dist/public/assets/railroad-I3PHUGI6-CUjKUdPz.js +1 -0
  285. package/dist/public/assets/railroad-abnf-LNEFI6M7-B1aEgHE6.js +1 -0
  286. package/dist/public/assets/railroad-ebnf-DWYD2UWJ-DmmI3Voz.js +1 -0
  287. package/dist/public/assets/railroad-peg-JR7BVNR7-BHzi9m7r.js +1 -0
  288. package/dist/public/assets/railroadDiagram-Y72NRBL7-D1oeE5fy.js +1 -0
  289. package/dist/public/assets/requirementDiagram-EQYSW5RA-BJDKK1aS.js +84 -0
  290. package/dist/public/assets/rolldown-runtime-BCiCTKAo.js +1 -0
  291. package/dist/public/assets/{sankeyDiagram-P5KCCOFB-C4rb2pZ9.js → sankeyDiagram-SY24JHO5-C4g0OwZ9.js} +7 -7
  292. package/dist/public/assets/sequenceDiagram-BLEHNHQU-CEvy4P-b.js +169 -0
  293. package/dist/public/assets/src-MPsEqXxq.js +1 -0
  294. package/dist/public/assets/stateDiagram-v2-A6IESKWZ-BFhvw4Gl.js +291 -0
  295. package/dist/public/assets/swimlanes-B3ENRKFQ-BIl_Q-FM.js +1 -0
  296. package/dist/public/assets/swimlanesDiagram-AYQRV4AK-rvDbKEHQ.js +8 -0
  297. package/dist/public/assets/timeline-definition-JXYKGLGB-qAoWTH4N.js +120 -0
  298. package/dist/public/assets/treeView-D4JQ5SDB-vq16JKkJ.js +1 -0
  299. package/dist/public/assets/treemap-SAJKECNS-C0IZTaDk.js +1 -0
  300. package/dist/public/assets/usecaseDiagram-WPOLBNNX-Dq8iz49r.js +328 -0
  301. package/dist/public/assets/vennDiagram-Q3Y3IDCW-Br4JmRjM.js +34 -0
  302. package/dist/public/assets/wardley-7MLQ67FV-CEPlAQ79.js +1 -0
  303. package/dist/public/assets/{wardleyDiagram-VM6X3IG4-BOXpwLCv.js → wardleyDiagram-IVAIDKWA-DURB7Ue6.js} +4 -4
  304. package/dist/public/assets/xychartDiagram-4URNHDU4-BiZywfhy.js +7 -0
  305. package/dist/public/index.html +27 -21
  306. package/dist/public/sbom.cdx.json +1 -1
  307. package/dist/types.d.ts +0 -12
  308. package/dist/types.js +2 -12
  309. package/dist/types.js.map +1 -1
  310. package/dist/utils.d.ts +12 -5
  311. package/dist/utils.js +18 -43
  312. package/dist/utils.js.map +1 -1
  313. package/package.json +13 -12
  314. package/src/app.ts +33 -43
  315. package/src/auth/index.ts +2 -12
  316. package/src/auth/keycloak.ts +2 -12
  317. package/src/auth/mock.ts +2 -12
  318. package/src/auth/types.ts +2 -12
  319. package/src/common/errors.ts +45 -0
  320. package/src/common/validationSchemas.ts +3 -12
  321. package/src/domain/auth/index.ts +2 -12
  322. package/src/domain/calculations/index.ts +4 -14
  323. package/src/domain/calculations/schema.ts +2 -12
  324. package/src/domain/calculations/service.ts +8 -21
  325. package/src/domain/cardTypes/index.ts +10 -20
  326. package/src/domain/cardTypes/schema.ts +3 -12
  327. package/src/domain/cardTypes/service.ts +22 -29
  328. package/src/domain/cards/index.ts +158 -128
  329. package/src/domain/cards/lib.ts +9 -161
  330. package/src/domain/cards/mermaid.ts +25 -0
  331. package/src/domain/cards/schema.ts +8 -12
  332. package/src/domain/cards/service.ts +165 -118
  333. package/src/domain/connectors/index.ts +5 -14
  334. package/src/domain/connectors/service.ts +5 -20
  335. package/src/domain/events/events-by-project.ts +59 -0
  336. package/src/domain/events/index.ts +3 -13
  337. package/src/domain/events/lifetime.ts +2 -12
  338. package/src/domain/events/project-events.ts +30 -18
  339. package/src/domain/events/schema.ts +2 -12
  340. package/src/domain/fieldTypes/index.ts +6 -16
  341. package/src/domain/fieldTypes/schema.ts +3 -12
  342. package/src/domain/fieldTypes/service.ts +9 -21
  343. package/src/domain/graphModels/index.ts +4 -14
  344. package/src/domain/graphModels/schema.ts +3 -12
  345. package/src/domain/graphModels/service.ts +5 -18
  346. package/src/domain/graphViews/index.ts +4 -14
  347. package/src/domain/graphViews/schema.ts +3 -0
  348. package/src/domain/graphViews/service.ts +5 -18
  349. package/src/domain/labels/index.ts +4 -14
  350. package/src/domain/labels/service.ts +6 -16
  351. package/src/domain/linkTypes/index.ts +6 -16
  352. package/src/domain/linkTypes/schema.ts +2 -12
  353. package/src/domain/linkTypes/service.ts +8 -21
  354. package/src/domain/logicPrograms/index.ts +5 -17
  355. package/src/domain/logicPrograms/service.ts +7 -16
  356. package/src/domain/mcp/index.ts +33 -24
  357. package/src/domain/project/index.ts +34 -40
  358. package/src/domain/project/schema.ts +2 -12
  359. package/src/domain/project/service.ts +56 -71
  360. package/src/domain/projects/index.ts +34 -50
  361. package/src/domain/projects/schema.ts +3 -12
  362. package/src/domain/projects/service.ts +18 -88
  363. package/src/domain/reports/index.ts +4 -14
  364. package/src/domain/reports/schema.ts +2 -12
  365. package/src/domain/reports/service.ts +5 -18
  366. package/src/domain/resources/index.ts +19 -30
  367. package/src/domain/resources/schema.ts +3 -0
  368. package/src/domain/resources/service.ts +55 -90
  369. package/src/domain/skills/index.ts +4 -14
  370. package/src/domain/skills/schema.ts +2 -12
  371. package/src/domain/skills/service.ts +5 -15
  372. package/src/domain/templates/index.ts +8 -18
  373. package/src/domain/templates/schema.ts +2 -12
  374. package/src/domain/templates/service.ts +9 -22
  375. package/src/domain/tree/index.ts +4 -14
  376. package/src/domain/tree/service.ts +10 -21
  377. package/src/domain/workflows/index.ts +4 -14
  378. package/src/domain/workflows/schema.ts +2 -12
  379. package/src/domain/workflows/service.ts +5 -18
  380. package/src/export.ts +24 -33
  381. package/src/index.ts +29 -48
  382. package/src/main.ts +25 -35
  383. package/src/middleware/auth.ts +2 -12
  384. package/src/middleware/commandManager.ts +35 -50
  385. package/src/middleware/tree.ts +3 -0
  386. package/src/middleware/zvalidator.ts +3 -0
  387. package/src/overlay.ts +29 -19
  388. package/src/types.ts +2 -12
  389. package/src/utils.ts +26 -46
  390. package/dist/project-errors.d.ts +0 -18
  391. package/dist/project-errors.js +0 -25
  392. package/dist/project-errors.js.map +0 -1
  393. package/dist/project-registry.d.ts +0 -65
  394. package/dist/project-registry.js +0 -121
  395. package/dist/project-registry.js.map +0 -1
  396. package/dist/public/assets/__vite-browser-external-PaJ7c2l8.js +0 -1
  397. package/dist/public/assets/abnfDiagram-VCTEODGH-DB2dfOGe.js +0 -1
  398. package/dist/public/assets/architecture-7GRP2DOG-2V0X8hxt.js +0 -1
  399. package/dist/public/assets/architectureDiagram-5GKGNRK7-CRhUR2Ul.js +0 -36
  400. package/dist/public/assets/blockDiagram-I7D4REHJ-DJKsYF1v.js +0 -129
  401. package/dist/public/assets/c4Diagram-7LVT6UL2-BTwMzoAF.js +0 -38
  402. package/dist/public/assets/channel-C0JtPpMA.js +0 -1
  403. package/dist/public/assets/chunk-4HAMMTFA-DjjgrBsB.js +0 -62
  404. package/dist/public/assets/chunk-75Z2AOVW-CKqXRGJV.js +0 -2
  405. package/dist/public/assets/chunk-DU6HZSFF-iJGdiRt7.js +0 -127
  406. package/dist/public/assets/chunk-FOHPRMQF-DzxwRta7.js +0 -161
  407. package/dist/public/assets/chunk-GMAD6QVW-DxHVEaGj.js +0 -72
  408. package/dist/public/assets/chunk-GVQU2GXP-AMxD4_Ta.js +0 -1
  409. package/dist/public/assets/chunk-IMKFNOWR-0rz8QrYC.js +0 -231
  410. package/dist/public/assets/chunk-L3NEJ4N5-BK3KAKMe.js +0 -1
  411. package/dist/public/assets/chunk-OSK3NFVY-B8MdrI_M.js +0 -10
  412. package/dist/public/assets/chunk-P2QGCYS3-D3J5AcHg.js +0 -1
  413. package/dist/public/assets/chunk-POPQ4Y6H-CsYg_XkK.js +0 -1
  414. package/dist/public/assets/chunk-PWAF6VOD-D9cdEIZp.js +0 -1
  415. package/dist/public/assets/chunk-SHT3W25Y-1jjokCf3.js +0 -168
  416. package/dist/public/assets/chunk-TICWLB2K-Ccsy2PYz.js +0 -206
  417. package/dist/public/assets/classDiagram-ZZMXUADV-mWyXNAXi.js +0 -1
  418. package/dist/public/assets/classDiagram-v2-VYDZK3BY-mWyXNAXi.js +0 -1
  419. package/dist/public/assets/cose-bilkent-JH36ORCC-DPzc3Pv4.js +0 -1
  420. package/dist/public/assets/cynefin-OW5HDTMX-BIVDCYOU.js +0 -1
  421. package/dist/public/assets/cytoscape.esm-NgwPT4ez.js +0 -321
  422. package/dist/public/assets/dagre-C-rnJpZF.js +0 -1
  423. package/dist/public/assets/dagre-GXQ25YYZ-CJc0wc6f.js +0 -4
  424. package/dist/public/assets/diagram-VSXAHHWV-Dw3rKVL_.js +0 -3
  425. package/dist/public/assets/diagram-Z3DM3KII-Bd-65QQW.js +0 -24
  426. package/dist/public/assets/ebnfDiagram-PWID7BFC-CrxdET5U.js +0 -1
  427. package/dist/public/assets/erDiagram-RLTQ6QDP-BKo0Uyna.js +0 -99
  428. package/dist/public/assets/eventmodeling-NTZA5JFV-DKkAdJZd.js +0 -1
  429. package/dist/public/assets/flowDiagram-HODETNUW-CEE2wjdt.js +0 -1
  430. package/dist/public/assets/ganttDiagram-EL5Y4UJY-BHFn8vk0.js +0 -292
  431. package/dist/public/assets/gitGraph-4MIJSDKK-Bpvnb45u.js +0 -1
  432. package/dist/public/assets/gitGraphDiagram-WWUBYQGX-Bw0EoxBY.js +0 -106
  433. package/dist/public/assets/index-D3HS7YxF.js +0 -2228
  434. package/dist/public/assets/index-Sv3WxZ_8.css +0 -1
  435. package/dist/public/assets/info-A6RAGUB7-BvvG_zrk.js +0 -1
  436. package/dist/public/assets/infoDiagram-27XIBGKW-CtpdJmtL.js +0 -2
  437. package/dist/public/assets/kanban-definition-UXKFOSKX-Oyx5QgRq.js +0 -89
  438. package/dist/public/assets/katex-ZlcWpGUi.js +0 -257
  439. package/dist/public/assets/line-Dr41HTk1.js +0 -1
  440. package/dist/public/assets/linear-DDBi9FwZ.js +0 -1
  441. package/dist/public/assets/mermaid-parser.core-DsIAxDBa.js +0 -7
  442. package/dist/public/assets/mindmap-definition-YA3MSWOX-r8hvd6gP.js +0 -96
  443. package/dist/public/assets/packet-AYTQ26CC-B0EpJ2Sc.js +0 -1
  444. package/dist/public/assets/pegDiagram-XKGWAZYB-DaNkQTQF.js +0 -1
  445. package/dist/public/assets/pie-WAS4IAKB-Dt2zttL9.js +0 -1
  446. package/dist/public/assets/pieDiagram-E7YTZNPT-x0XWEGbd.js +0 -39
  447. package/dist/public/assets/radar-RG4KPBEZ-DjbR4-5l.js +0 -1
  448. package/dist/public/assets/railroad-74A4TZTK-Bk3B5r_R.js +0 -1
  449. package/dist/public/assets/railroad-abnf-HS5TGJTU-DxaWfACD.js +0 -1
  450. package/dist/public/assets/railroad-ebnf-LZEXJU2U-DscxXZO0.js +0 -1
  451. package/dist/public/assets/railroad-peg-WCYAUIDC-BCWzRFzw.js +0 -1
  452. package/dist/public/assets/railroadDiagram-O6MQD6OU-DhwsoX6A.js +0 -1
  453. package/dist/public/assets/requirementDiagram-BXWQKSXE-BiqZ6axf.js +0 -84
  454. package/dist/public/assets/rolldown-runtime-B0Z9INg1.js +0 -1
  455. package/dist/public/assets/sequenceDiagram-WJ2MYXX4-DRKTnGD7.js +0 -162
  456. package/dist/public/assets/src-an_qrnIj.js +0 -1
  457. package/dist/public/assets/stateDiagram-D77RDMKH-xxdybg5Z.js +0 -1
  458. package/dist/public/assets/stateDiagram-v2-MP3YSRHH-CXzmJy_a.js +0 -1
  459. package/dist/public/assets/swimlanes-42K2YHIH-DyGI1gI6.js +0 -1
  460. package/dist/public/assets/swimlanesDiagram-VR7AAH4N-7hqb6VoW.js +0 -8
  461. package/dist/public/assets/timeline-definition-24CTP7MA-C2pIp77Q.js +0 -120
  462. package/dist/public/assets/treeView-Q6P3EWNA-CxRtaaB8.js +0 -1
  463. package/dist/public/assets/treemap-WGGIJYW6-G1IHiwTa.js +0 -1
  464. package/dist/public/assets/vennDiagram-4TSXK5OY-CwimQRR9.js +0 -34
  465. package/dist/public/assets/wardley-WFR3VGLG-DkQ3TjZX.js +0 -1
  466. package/dist/public/assets/xychartDiagram-S5SC5T6Z-ChOPYsHc.js +0 -7
  467. package/src/project-errors.ts +0 -33
  468. package/src/project-registry.ts +0 -161
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/connectors/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAeF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAClD,YAAY,EACZ,UAAU,CACX,CAAC;IAEF,qDAAqD;IACrD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAqB,CAAC;IACnD,MAAM,KAAK,GAAwD,EAAE,CAAC;IAEtE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;gBACvB,IAAI,EAAE,CAAC,CAAC,GAAG;gBACX,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG;gBACnC,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC;gBACT,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;gBAC5B,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/connectors/service.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAezC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAa;IAC/C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAEpE,qDAAqD;IACrD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAqB,CAAC;IACnD,MAAM,KAAK,GAAwD,EAAE,CAAC;IAEtE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;gBACvB,IAAI,EAAE,CAAC,CAAC,GAAG;gBACX,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG;gBACnC,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC;gBACT,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;gBAC5B,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type ProjectDirectory } from '@cyberismo/data-handler';
2
+ import { ProjectEvents } from './project-events.js';
3
+ /**
4
+ * The events of each project of a directory, by prefix. A project's events
5
+ * follow its changes, read through a system handle, from first use.
6
+ */
7
+ export declare class EventsByProject {
8
+ private readonly directory;
9
+ private readonly events;
10
+ constructor(directory: ProjectDirectory);
11
+ /**
12
+ * The events of the project with `prefix`.
13
+ * @throws ProjectNotFoundError if the directory has no such project.
14
+ */
15
+ for(prefix: string): Promise<ProjectEvents>;
16
+ private follow;
17
+ /** Disposes the project's events, closing their connections. */
18
+ drop(prefix: string): void;
19
+ }
@@ -0,0 +1,57 @@
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ import { SYSTEM_ACTOR } from '@cyberismo/data-handler';
4
+ import { ProjectEvents } from './project-events.js';
5
+ /**
6
+ * The events of each project of a directory, by prefix. A project's events
7
+ * follow its changes, read through a system handle, from first use.
8
+ */
9
+ export class EventsByProject {
10
+ directory;
11
+ events = new Map();
12
+ constructor(directory) {
13
+ this.directory = directory;
14
+ }
15
+ /**
16
+ * The events of the project with `prefix`.
17
+ * @throws ProjectNotFoundError if the directory has no such project.
18
+ */
19
+ async for(prefix) {
20
+ const known = this.events.get(prefix);
21
+ if (known) {
22
+ return known;
23
+ }
24
+ const ws = await this.directory.open(prefix, SYSTEM_ACTOR);
25
+ // Another request may have created them while this one waited.
26
+ let events = this.events.get(prefix);
27
+ if (!events) {
28
+ const held = new ProjectEvents(ws.changes);
29
+ this.events.set(prefix, held);
30
+ // An event names the project's prefix once its write is done, so a
31
+ // rename is followed as the directory follows it.
32
+ ws.changes.subscribe(({ project }) => this.follow(held, project));
33
+ events = held;
34
+ }
35
+ return events;
36
+ }
37
+ // Keeps `events` under `prefix`, its project's prefix now, unless another
38
+ // project's events hold it.
39
+ follow(events, prefix) {
40
+ if (this.events.has(prefix)) {
41
+ return;
42
+ }
43
+ for (const [key, held] of this.events) {
44
+ if (held === events) {
45
+ this.events.delete(key);
46
+ this.events.set(prefix, events);
47
+ return;
48
+ }
49
+ }
50
+ }
51
+ /** Disposes the project's events, closing their connections. */
52
+ drop(prefix) {
53
+ this.events.get(prefix)?.dispose();
54
+ this.events.delete(prefix);
55
+ }
56
+ }
57
+ //# sourceMappingURL=events-by-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-by-project.js","sourceRoot":"","sources":["../../../src/domain/events/events-by-project.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAEzC,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,eAAe;IAGG;IAFZ,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE3D,YAA6B,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAE5D;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,MAAc;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,+DAA+D;QAC/D,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9B,mEAAmE;YACnE,kDAAkD;YAClD,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,4BAA4B;IACpB,MAAM,CAAC,MAAqB,EAAE,MAAc;QAClD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,MAAc;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -1,15 +1,3 @@
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
1
  import { Hono } from 'hono';
14
2
  declare const router: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
15
3
  export default router;
@@ -1,15 +1,5 @@
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
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  import { Hono } from 'hono';
14
4
  import { disableSSG } from 'hono/ssg';
15
5
  import { streamSSE } from 'hono/streaming';
@@ -80,7 +70,7 @@ router.get('/', disableSSG(), requireRole(UserRole.Reader), (c) => {
80
70
  });
81
71
  router.put('/presence', requireRole(UserRole.Reader), zValidator('json', presenceSchema), (c) => {
82
72
  const { connectionId, sequence, cardKey, mode } = c.req.valid('json');
83
- if (cardKey && !c.get('commands').project.hasCard(cardKey)) {
73
+ if (cardKey && !c.get('ws').cards.has(cardKey)) {
84
74
  return c.json({ error: 'Card not found' }, 404);
85
75
  }
86
76
  const events = c.get('events');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/events/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/events/index.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,2 @@
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
1
  /** Rotation deadline in ms from now. */
14
2
  export declare function computeLifetimeMs(exp: number, now?: number): number;
@@ -1,15 +1,5 @@
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
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  const MAX_LIFETIME_MS = 30 * 60_000;
14
4
  const ROTATION_MARGIN_MS = 30_000;
15
5
  /** Rotation deadline in ms from now. */
@@ -1 +1 @@
1
- {"version":3,"file":"lifetime.js","sourceRoot":"","sources":["../../../src/domain/events/lifetime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC;AACpC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,wCAAwC;AACxC,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC7D,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IACnC,0DAA0D;IAC1D,MAAM,WAAW,GACf,SAAS,GAAG,kBAAkB;QAC5B,CAAC,CAAC,SAAS,GAAG,kBAAkB;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"lifetime.js","sourceRoot":"","sources":["../../../src/domain/events/lifetime.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAEzC,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC;AACpC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,wCAAwC;AACxC,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC7D,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IACnC,0DAA0D;IAC1D,MAAM,WAAW,GACf,SAAS,GAAG,kBAAkB;QAC5B,CAAC,CAAC,SAAS,GAAG,kBAAkB;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
@@ -1,16 +1,5 @@
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
1
  import type { SSEMessage } from 'hono/streaming';
2
+ import type { ActorRef, ChangeEvent } from '@cyberismo/model';
14
3
  export interface PresenceEntry {
15
4
  userId: string;
16
5
  userName: string;
@@ -44,17 +33,24 @@ interface Connection {
44
33
  /** Last presence list serialized to this connection, for per-recipient dedup. */
45
34
  lastSent: string | null;
46
35
  }
36
+ /** Where a project's change events come from. */
37
+ export interface ChangeSource {
38
+ subscribe(listener: (event: ChangeEvent) => void): () => void;
39
+ }
47
40
  /** The open subscriptions of one project and the presence leases they hold. */
48
41
  export declare class ProjectEvents {
49
42
  private connections;
50
43
  private expiryTimer;
51
- constructor();
44
+ private unsubscribe;
45
+ /** Announces the cards each of `changes`' events names, whoever wrote them. */
46
+ constructor(changes?: ChangeSource);
52
47
  connect(user: Connection['user'], capabilities: Capabilities, delivery: Delivery): string;
53
48
  update(connectionId: string, userId: string, sequence: number, cardKey: string | null, mode: PresenceEntry['mode']): boolean;
54
49
  private applyMove;
55
50
  disconnect(connectionId: string): void;
56
51
  retire(connectionId: string): void;
57
- cardsUpdated(cardKeys: string[], user: Connection['user']): void;
52
+ private changed;
53
+ cardsUpdated(cardKeys: string[], actor: ActorRef): void;
58
54
  dispose(): void;
59
55
  private users;
60
56
  private presenceUpdated;
@@ -1,15 +1,5 @@
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
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  import { randomUUID } from 'node:crypto';
14
4
  const LEASE_MS = 90_000;
15
5
  const EXPIRY_INTERVAL_MS = 30_000;
@@ -18,9 +8,13 @@ const RETIRED_LEASE_MS = 15_000;
18
8
  export class ProjectEvents {
19
9
  connections = new Map();
20
10
  expiryTimer;
21
- constructor() {
11
+ unsubscribe;
12
+ /** Announces the cards each of `changes`' events names, whoever wrote them. */
13
+ constructor(changes) {
22
14
  this.expiryTimer = setInterval(() => this.expire(), EXPIRY_INTERVAL_MS);
23
15
  this.expiryTimer.unref();
16
+ this.unsubscribe =
17
+ changes?.subscribe((event) => this.changed(event)) ?? (() => { });
24
18
  }
25
19
  connect(user, capabilities, delivery) {
26
20
  const connectionId = randomUUID();
@@ -99,15 +93,24 @@ export class ProjectEvents {
99
93
  // replacement declares.
100
94
  connection.expiresAt = Math.min(connection.expiresAt, Date.now() + RETIRED_LEASE_MS);
101
95
  }
102
- cardsUpdated(cardKeys, user) {
96
+ // Only card changes go on the wire; a removed card is announced as updated.
97
+ changed(event) {
98
+ const cardKeys = event.changes.flatMap((change) => change.kind === 'card.updated' || change.kind === 'card.removed'
99
+ ? [change.key]
100
+ : []);
101
+ if (cardKeys.length > 0)
102
+ this.cardsUpdated(cardKeys, event.actor);
103
+ }
104
+ cardsUpdated(cardKeys, actor) {
103
105
  for (const cardKey of new Set(cardKeys)) {
104
106
  const withIdentity = this.encode('card.updated', {
105
107
  cardKey,
106
- userId: user.id,
107
- userName: user.name,
108
+ userId: actor.id,
109
+ userName: actor.name,
108
110
  });
109
111
  const withoutIdentity = this.encode('card.updated', { cardKey });
110
- for (const [connectionId, connection] of this.onCard(cardKey)) {
112
+ // Project-wide, since a page can show fields of cards it is not on.
113
+ for (const [connectionId, connection] of [...this.connections]) {
111
114
  this.deliver(connectionId, connection.capabilities.canSeeIdentity
112
115
  ? withIdentity
113
116
  : withoutIdentity);
@@ -115,6 +118,7 @@ export class ProjectEvents {
115
118
  }
116
119
  }
117
120
  dispose() {
121
+ this.unsubscribe();
118
122
  clearInterval(this.expiryTimer);
119
123
  const connections = [...this.connections.values()];
120
124
  this.connections.clear();
@@ -151,7 +155,7 @@ export class ProjectEvents {
151
155
  connection.lastSent = serialized;
152
156
  }
153
157
  }
154
- // Subscription governs delivery.
158
+ // Presence is delivered per card.
155
159
  onCard(cardKey) {
156
160
  return [...this.connections].filter(([, c]) => c.cardKey === cardKey);
157
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-events.js","sourceRoot":"","sources":["../../../src/domain/events/project-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-events.js","sourceRoot":"","sources":["../../../src/domain/events/project-events.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,3 @@
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
1
  import { z } from 'zod';
14
2
  export declare const presenceSchema: z.ZodObject<{
15
3
  connectionId: z.ZodUUID;
@@ -1,15 +1,5 @@
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
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  import { z } from 'zod';
14
4
  export const presenceSchema = z.object({
15
5
  connectionId: z.uuid(),
@@ -1 +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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/events/schema.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAEzC,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"}
@@ -1,15 +1,3 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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
1
  import { Hono } from 'hono';
14
2
  declare const router: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
15
3
  export default router;
@@ -1,15 +1,5 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  import { Hono } from 'hono';
14
4
  import * as fieldTypeService from './service.js';
15
5
  import { createFieldTypeSchema } from './schema.js';
@@ -32,9 +22,9 @@ const router = new Hono();
32
22
  * description: project_path not set or other internal error
33
23
  */
34
24
  router.get('/', requireRole(UserRole.Reader), async (c) => {
35
- const commands = c.get('commands');
25
+ const ws = c.get('ws');
36
26
  try {
37
- const fieldTypes = await fieldTypeService.getFieldTypes(commands);
27
+ const fieldTypes = await fieldTypeService.getFieldTypes(ws);
38
28
  return c.json(fieldTypes);
39
29
  }
40
30
  catch (error) {
@@ -73,10 +63,10 @@ router.get('/', requireRole(UserRole.Reader), async (c) => {
73
63
  * description: Server error
74
64
  */
75
65
  router.post('/', requireRole(UserRole.Admin), zValidator('json', createFieldTypeSchema), async (c) => {
76
- const commands = c.get('commands');
66
+ const ws = c.get('ws');
77
67
  const { identifier, dataType } = c.req.valid('json');
78
68
  try {
79
- await fieldTypeService.createFieldType(commands, identifier, dataType);
69
+ await fieldTypeService.createFieldType(ws, identifier, dataType);
80
70
  return c.json({ message: 'Field type created successfully' });
81
71
  }
82
72
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/fieldTypes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAE1B;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,cAAc,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;SACvG,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,IAAI,CACT,GAAG,EACH,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC3B,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACzC,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SACrE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/fieldTypes/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAE1B;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,cAAc,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;SACvG,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,IAAI,CACT,GAAG,EACH,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC3B,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACzC,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SACrE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,15 +1,3 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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
1
  import { z } from 'zod';
14
2
  export declare const createFieldTypeSchema: z.ZodObject<{
15
3
  dataType: z.ZodEnum<{
@@ -1,15 +1,5 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  import { z } from 'zod';
14
4
  import { identifierSchema } from '../../common/validationSchemas.js';
15
5
  export const createFieldTypeSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/fieldTypes/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AACF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;QACf,SAAS;QACT,MAAM;QACN,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,WAAW;KACZ,CAAC;IACF,UAAU,EAAE,gBAAgB;CAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/fieldTypes/schema.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;QACf,SAAS;QACT,MAAM;QACN,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,WAAW;KACZ,CAAC;IACF,UAAU,EAAE,gBAAgB;CAC7B,CAAC,CAAC"}
@@ -1,16 +1,4 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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 type { CommandManager } from '@cyberismo/data-handler';
14
- import type { DataType } from '@cyberismo/data-handler/interfaces/resource-interfaces';
15
- export declare function getFieldTypes(commands: CommandManager): Promise<import("@cyberismo/data-handler/interfaces/resource-interfaces").AnyResourceContent[]>;
16
- export declare function createFieldType(commands: CommandManager, identifier: string, dataType: DataType): Promise<void>;
1
+ import type { Workspace } from '@cyberismo/data-handler';
2
+ import type { DataType } from '@cyberismo/model';
3
+ export declare function getFieldTypes(ws: Workspace): Promise<import("@cyberismo/model").AnyResourceContent[]>;
4
+ export declare function createFieldType(ws: Workspace, identifier: string, dataType: DataType): Promise<void>;
@@ -1,24 +1,14 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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
- export async function getFieldTypes(commands) {
14
- const response = await commands.showCmd.showResources('fieldTypes');
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ export async function getFieldTypes(ws) {
4
+ const response = await ws.resources.list('fieldTypes');
15
5
  if (!response) {
16
6
  throw new Error('No field types found');
17
7
  }
18
- const fieldTypes = await Promise.all(response.map((fieldType) => commands.showCmd.showResource(fieldType)));
8
+ const fieldTypes = await Promise.all(response.map((fieldType) => ws.resources.show(fieldType)));
19
9
  return fieldTypes;
20
10
  }
21
- export async function createFieldType(commands, identifier, dataType) {
22
- await commands.createCmd.createFieldType(identifier, dataType);
11
+ export async function createFieldType(ws, identifier, dataType) {
12
+ await ws.resources.create(identifier, 'fieldTypes', { dataType });
23
13
  }
24
14
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/fieldTypes/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAKF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAwB;IAC1D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE,CACjC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CACzC,CACF,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAwB,EACxB,UAAkB,EAClB,QAAkB;IAElB,MAAM,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/fieldTypes/service.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAKzC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAa;IAC/C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAClE,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAa,EACb,UAAkB,EAClB,QAAkB;IAElB,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -1,15 +1,3 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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
1
  import { Hono } from 'hono';
14
2
  declare const router: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
15
3
  export default router;
@@ -1,15 +1,5 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
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
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  import { Hono } from 'hono';
14
4
  import * as graphModelService from './service.js';
15
5
  import { createGraphModelSchema } from './schema.js';
@@ -43,9 +33,9 @@ const router = new Hono();
43
33
  * description: Server error
44
34
  */
45
35
  router.post('/', requireRole(UserRole.Admin), zValidator('json', createGraphModelSchema), async (c) => {
46
- const commands = c.get('commands');
36
+ const ws = c.get('ws');
47
37
  const { identifier } = c.req.valid('json');
48
- await graphModelService.createGraphModel(commands, identifier);
38
+ await graphModelService.createGraphModel(ws, identifier);
49
39
  return c.json({ message: 'Graph model created successfully' });
50
40
  });
51
41
  export default router;