@cyberismo/backend 0.0.27 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +1 -1
- package/dist/app.js +10 -4
- package/dist/app.js.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/keycloak.js +3 -0
- package/dist/auth/keycloak.js.map +1 -1
- package/dist/auth/mock.d.ts +8 -1
- package/dist/auth/mock.js +51 -2
- package/dist/auth/mock.js.map +1 -1
- package/dist/common/validationSchemas.d.ts +3 -1
- package/dist/common/validationSchemas.js +1 -0
- package/dist/common/validationSchemas.js.map +1 -1
- package/dist/domain/calculations/index.js +1 -1
- package/dist/domain/calculations/index.js.map +1 -1
- package/dist/domain/cardTypes/service.d.ts +1 -1
- package/dist/domain/cardTypes/service.js +26 -4
- package/dist/domain/cardTypes/service.js.map +1 -1
- package/dist/domain/cards/lib.js +7 -5
- package/dist/domain/cards/lib.js.map +1 -1
- package/dist/domain/cards/service.js +3 -6
- package/dist/domain/cards/service.js.map +1 -1
- package/dist/domain/project/index.js +32 -1
- package/dist/domain/project/index.js.map +1 -1
- package/dist/domain/project/schema.d.ts +11 -0
- package/dist/domain/project/schema.js +20 -0
- package/dist/domain/project/schema.js.map +1 -1
- package/dist/domain/project/service.d.ts +23 -1
- package/dist/domain/project/service.js +52 -1
- package/dist/domain/project/service.js.map +1 -1
- package/dist/domain/projects/index.d.ts +1 -1
- package/dist/domain/projects/index.js +66 -3
- package/dist/domain/projects/index.js.map +1 -1
- package/dist/domain/projects/schema.d.ts +22 -0
- package/dist/domain/projects/schema.js +40 -0
- package/dist/domain/projects/schema.js.map +1 -0
- package/dist/domain/projects/service.d.ts +37 -0
- package/dist/domain/projects/service.js +53 -0
- package/dist/domain/projects/service.js.map +1 -0
- package/dist/domain/resources/index.js +1 -1
- package/dist/domain/resources/index.js.map +1 -1
- package/dist/domain/resources/schema.d.ts +4 -1
- package/dist/domain/resources/schema.js +4 -2
- package/dist/domain/resources/schema.js.map +1 -1
- package/dist/domain/resources/service.d.ts +1 -1
- package/dist/domain/resources/service.js +7 -2
- package/dist/domain/resources/service.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/main.js +0 -4
- package/dist/main.js.map +1 -1
- package/dist/middleware/auth.d.ts +5 -3
- package/dist/middleware/auth.js +7 -4
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/zvalidator.d.ts +1 -1
- package/dist/project-registry.d.ts +2 -1
- package/dist/project-registry.js +4 -2
- package/dist/project-registry.js.map +1 -1
- package/dist/public/THIRD-PARTY.txt +932 -1022
- package/dist/public/assets/abnfDiagram-VRR7QNED-Djr4KJ5E.js +1 -0
- package/dist/public/assets/arc-DrR4k_H-.js +1 -0
- package/dist/public/assets/architecture-TIHT7OUA-XL6N-4o9.js +1 -0
- package/dist/public/assets/architectureDiagram-ZJ3FMSHR-DsMU2Uwa.js +36 -0
- package/dist/public/assets/blockDiagram-677ZJIJ3-DRBmQUQJ.js +132 -0
- package/dist/public/assets/c4Diagram-LMCZKHZV-E0rM02LD.js +10 -0
- package/dist/public/assets/channel-D5fnImJy.js +1 -0
- package/dist/public/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/public/assets/chunk-32BRIVSS-BnDY0aSV.js +1 -0
- package/dist/public/assets/chunk-52WLFC77-N5YugKaZ.js +10 -0
- package/dist/public/assets/chunk-5FCAYU7R-I3_t_Ic_.js +1 -0
- package/dist/public/assets/chunk-5HE753X5-Dxz40rzH.js +1 -0
- package/dist/public/assets/chunk-5JV3BV7I-CNwCKRLH.js +1 -0
- package/dist/public/assets/chunk-5TONJI2A-ezWQ_Z2j.js +2 -0
- package/dist/public/assets/{chunk-FMBD7UC4-Cgl-u-NC.js → chunk-5VM5RSS4-ZNzvKenW.js} +1 -1
- package/dist/public/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
- package/dist/public/assets/chunk-BIQX33UG-DS132-R_.js +1 -0
- package/dist/public/assets/chunk-C7G6YPKG-BN-cNjoj.js +1 -0
- package/dist/public/assets/chunk-CQNSW5MT-D8Mn1I73.js +1 -0
- package/dist/public/assets/chunk-CYSBUYHQ-Dc64Dwdo.js +1 -0
- package/dist/public/assets/chunk-EMLP6XTP-aIK0V8GX.js +1 -0
- package/dist/public/assets/chunk-EX3LRPZG-Db0XYyxy.js +231 -0
- package/dist/public/assets/chunk-FWX5IMBZ-BF_P2-Do.js +2 -0
- package/dist/public/assets/chunk-HOUHSVGY-L35GPy9G.js +1 -0
- package/dist/public/assets/chunk-ICXQ74PX-Bb8zaHde.js +2 -0
- package/dist/public/assets/chunk-JG7HCLWE-BtAXK3iQ.js +2 -0
- package/dist/public/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/public/assets/chunk-KEIR6QF5-DEvma7oi.js +161 -0
- package/dist/public/assets/chunk-MOJQB5TN-D1shKbMs.js +88 -0
- package/dist/public/assets/chunk-MOZMSUNE-5FIqIBsY.js +1 -0
- package/dist/public/assets/chunk-OGEWGWER-BVIFy9xz.js +1 -0
- package/dist/public/assets/chunk-OSBZ3O6U-Cfd7kf1R.js +1 -0
- package/dist/public/assets/chunk-PUDLZKDR-Db3FSNR9.js +156 -0
- package/dist/public/assets/chunk-Q4XR5HBZ-BuKFRUzR.js +70 -0
- package/dist/public/assets/chunk-QBLGF6JB-DUGZXFh-.js +1 -0
- package/dist/public/assets/chunk-R7FJI6CG-D7mUd-qN.js +1 -0
- package/dist/public/assets/chunk-RYQCIY6F-C_3rESBd.js +1 -0
- package/dist/public/assets/chunk-U6XO7XAA-C3UhlwA1.js +2 -0
- package/dist/public/assets/chunk-V7JOEXUC-71b0ABpv.js +206 -0
- package/dist/public/assets/chunk-VAUOI2AC-C-GBw18h.js +1 -0
- package/dist/public/assets/chunk-VR4S4FIN-tUhbELKr.js +1 -0
- package/dist/public/assets/chunk-WYO6CB5R-BQoO62-B.js +127 -0
- package/dist/public/assets/chunk-XXDRQBXY-Co8n4ZHT.js +1 -0
- package/dist/public/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/public/assets/chunk-YOTPTUD7-DhCRKU1A.js +1 -0
- package/dist/public/assets/chunk-ZGVPDNZ5-hpz2Ryq5.js +62 -0
- package/dist/public/assets/chunk-ZIRB5QZD-BpeS1aZ7.js +32 -0
- package/dist/public/assets/classDiagram-OUVF2IWQ-CXdVorPK.js +1 -0
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-CXdVorPK.js +1 -0
- package/dist/public/assets/colors-Cg5Vh3br.js +1 -0
- package/dist/public/assets/cose-bilkent-JH36ORCC-4GoRbloS.js +1 -0
- package/dist/public/assets/cynefin-VYW2F7L2-BPH-25fI.js +1 -0
- package/dist/public/assets/cynefinDiagram-TSTJHNR4-PEf16euv.js +62 -0
- package/dist/public/assets/cytoscape.esm-C3UvhD5t.js +321 -0
- package/dist/public/assets/dagre-Buvkdvvj.js +1 -0
- package/dist/public/assets/dagre-VKFMJZFB-DPsCMBF1.js +4 -0
- package/dist/public/assets/defaultLocale-CNPGWpMu.js +1 -0
- package/dist/public/assets/diagram-FQU43EPY-DS-ryuRg.js +3 -0
- package/dist/public/assets/diagram-G47NLZAW-CzUoYkFf.js +24 -0
- package/dist/public/assets/diagram-NH7WQ7WH-MhGnE2fh.js +24 -0
- package/dist/public/assets/diagram-OA4YK3LP-CsQ9aFR_.js +30 -0
- package/dist/public/assets/diagram-WEI45ONY-Er3q49ew.js +41 -0
- package/dist/public/assets/dist-BzwexiH1.js +1 -0
- package/dist/public/assets/ebnfDiagram-CCIWWBDH-AnJAsk14.js +1 -0
- package/dist/public/assets/erDiagram-Q63AITRT-DulA16my.js +85 -0
- package/dist/public/assets/eventmodeling-45OFAUF4-CoIhTpHU.js +1 -0
- package/dist/public/assets/flowDiagram-23GEKE2U-BGMXUq18.js +1 -0
- package/dist/public/assets/ganttDiagram-NO4QXBWP-DAvCPT7_.js +292 -0
- package/dist/public/assets/gitGraph-TEB2WS4Q-BcPsZts5.js +1 -0
- package/dist/public/assets/gitGraphDiagram-IHSO6WYX-CksvJvsQ.js +106 -0
- package/dist/public/assets/{graphlib-B8gBHxth.js → graphlib-DS17s2tU.js} +1 -1
- package/dist/public/assets/index-H1CkT-JT.js +447 -0
- package/dist/public/assets/info-DKCQHKI2-7VGzrAVB.js +1 -0
- package/dist/public/assets/infoDiagram-FWYZ7A6U-D_by7lSL.js +2 -0
- package/dist/public/assets/init-ZlXS9mIS.js +1 -0
- package/dist/public/assets/{ishikawaDiagram-YF4QCWOH-D5HGS4h9.js → ishikawaDiagram-FXEZZL3T-CiLpASIW.js} +6 -6
- package/dist/public/assets/journeyDiagram-5HDEW3XC-DpvFmk7c.js +139 -0
- package/dist/public/assets/kanban-definition-HUTT4EX6-DYP_x6zD.js +89 -0
- package/dist/public/assets/{katex-Vhh-h91d.js → katex-DolUETbr.js} +3 -3
- package/dist/public/assets/{line-DNZMOnJ3.js → line-C8Sfsgt8.js} +1 -1
- package/dist/public/assets/linear-BWTvbP1l.js +1 -0
- package/dist/public/assets/map-BaFkSB1l.js +1 -0
- package/dist/public/assets/mermaid-parser.core--8614tkK.js +4 -0
- package/dist/public/assets/mindmap-definition-LN4V7U3C-3IAd4gp3.js +96 -0
- package/dist/public/assets/ordinal-BdBDtYTt.js +1 -0
- package/dist/public/assets/packet-7NZHBO7P-KYt33H0C.js +1 -0
- package/dist/public/assets/pegDiagram-2B236MQR-BQNFxYz2.js +1 -0
- package/dist/public/assets/pie-RZYD4A2V-xKz9s9I4.js +1 -0
- package/dist/public/assets/pieDiagram-ENE6RG2P-Cy13tg8_.js +39 -0
- package/dist/public/assets/quadrantDiagram-ABIIQ3AL-B3czMbdS.js +7 -0
- package/dist/public/assets/radar-I7S5WNFK-B4QTX-fX.js +1 -0
- package/dist/public/assets/railroad-3IZDKUUU-Co_9rPVC.js +1 -0
- package/dist/public/assets/railroad-abnf-AHOZXSZD-Bhy_c3ol.js +1 -0
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-B9ENjG34.js +1 -0
- package/dist/public/assets/railroad-peg-LSFZ7HO6-CyJxDBsB.js +1 -0
- package/dist/public/assets/railroadDiagram-RFXS5EU6-M2j5SJF2.js +1 -0
- package/dist/public/assets/range-EplFIxc7.js +1 -0
- package/dist/public/assets/requirementDiagram-TGXJPOKE-CmvJWy_S.js +84 -0
- package/dist/public/assets/{rough.esm-CSKSodPl.js → rough.esm-By172zw-.js} +1 -1
- package/dist/public/assets/sankeyDiagram-HTMAVEWB-tAeOzMTn.js +40 -0
- package/dist/public/assets/sequenceDiagram-DBY2YBRQ-r0pwijM4.js +162 -0
- package/dist/public/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
- package/dist/public/assets/src-DOh7_en_.js +1 -0
- package/dist/public/assets/stateDiagram-2N3HPSRC-a9IdkSQG.js +1 -0
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-s2blPtZ-.js +1 -0
- package/dist/public/assets/swimlanes-5IMT3BWC-5w0Cdxk6.js +2 -0
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-BWa-KRed.js +8 -0
- package/dist/public/assets/time-BM2d9MsQ.js +1 -0
- package/dist/public/assets/timeline-definition-FHXFAJF6-CvXlv_4Y.js +120 -0
- package/dist/public/assets/treeView-QDETBFTQ-B9cxjfpB.js +1 -0
- package/dist/public/assets/treemap-6X3UGDF4-BplEq4hB.js +1 -0
- package/dist/public/assets/treemap-BfjIY-m6.js +1 -0
- package/dist/public/assets/vennDiagram-L72KCM5P-ti2qNcvo.js +34 -0
- package/dist/public/assets/wardley-OPB4EBWU-BX2ghg5e.js +1 -0
- package/dist/public/assets/wardleyDiagram-EHGQE667-C8lblm8x.js +78 -0
- package/dist/public/assets/xychartDiagram-FW5EYKEG-US-_k5eu.js +7 -0
- package/dist/public/index.html +31 -12
- package/dist/types.d.ts +4 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/package.json +11 -10
- package/src/app.ts +11 -4
- package/src/auth/index.ts +1 -1
- package/src/auth/keycloak.ts +3 -0
- package/src/auth/mock.ts +54 -2
- package/src/common/validationSchemas.ts +1 -0
- package/src/domain/calculations/index.ts +1 -1
- package/src/domain/cardTypes/service.ts +26 -21
- package/src/domain/cards/lib.ts +11 -4
- package/src/domain/cards/service.ts +4 -5
- package/src/domain/project/index.ts +54 -0
- package/src/domain/project/schema.ts +23 -0
- package/src/domain/project/service.ts +89 -1
- package/src/domain/projects/index.ts +115 -3
- package/src/domain/projects/schema.ts +42 -0
- package/src/domain/projects/service.ts +98 -0
- package/src/domain/resources/index.ts +1 -1
- package/src/domain/resources/schema.ts +4 -2
- package/src/domain/resources/service.ts +5 -4
- package/src/index.ts +11 -6
- package/src/main.ts +0 -6
- package/src/middleware/auth.ts +10 -4
- package/src/project-registry.ts +7 -2
- package/src/types.ts +3 -0
- package/dist/public/assets/architecture-7EHR7CIX-CHU1xuYF.js +0 -1
- package/dist/public/assets/architectureDiagram-3BPJPVTR--CSL9yP4.js +0 -36
- package/dist/public/assets/blockDiagram-GPEHLZMM-KVU5YZg5.js +0 -132
- package/dist/public/assets/c4Diagram-AAUBKEIU-CKZoRo4y.js +0 -10
- package/dist/public/assets/channel-DylEVeTd.js +0 -1
- package/dist/public/assets/chunk-2J33WTMH-3csjo24p.js +0 -1
- package/dist/public/assets/chunk-3OPIFGDE-BKzRNP07.js +0 -62
- package/dist/public/assets/chunk-4BX2VUAB-ClBqZOcE.js +0 -1
- package/dist/public/assets/chunk-55IACEB6-Bgi2dUOh.js +0 -1
- package/dist/public/assets/chunk-5ZQYHXKU-CECM_AkK.js +0 -2
- package/dist/public/assets/chunk-727SXJPM-DwCEXlGv.js +0 -206
- package/dist/public/assets/chunk-AQP2D5EJ-4K2xdOIK.js +0 -231
- package/dist/public/assets/chunk-BSJP7CBP-ByoKnyMP.js +0 -1
- package/dist/public/assets/chunk-CSCIHK7Q-DPeQmPB5.js +0 -124
- package/dist/public/assets/chunk-L5ZTLDWV-pkYUefHU.js +0 -1
- package/dist/public/assets/chunk-ND2GUHAM-BbBhIALU.js +0 -1
- package/dist/public/assets/chunk-NNHCCRGN-DlpIbxXb.js +0 -159
- package/dist/public/assets/chunk-NZK2D7GU-Bsg3s0FQ.js +0 -1
- package/dist/public/assets/chunk-O5CBEL6O-CLKEM0Ng.js +0 -70
- package/dist/public/assets/chunk-QZHKN3VN-DYbrfjC5.js +0 -1
- package/dist/public/assets/classDiagram-4FO5ZUOK-BJy5zoel.js +0 -1
- package/dist/public/assets/classDiagram-v2-Q7XG4LA2-BJy5zoel.js +0 -1
- package/dist/public/assets/cose-bilkent-S5V4N54A-BW2eHW0s.js +0 -1
- package/dist/public/assets/cytoscape.esm-FqbQrHcz.js +0 -321
- package/dist/public/assets/dagre-BM42HDAG-BthzRaVA.js +0 -4
- package/dist/public/assets/dagre-Bx709z4p.js +0 -1
- package/dist/public/assets/diagram-2AECGRRQ-CQJQx4k6.js +0 -43
- package/dist/public/assets/diagram-5GNKFQAL-DZn5aW7S.js +0 -10
- package/dist/public/assets/diagram-KO2AKTUF-C-khQZwA.js +0 -3
- package/dist/public/assets/diagram-LMA3HP47-DgWJfUcV.js +0 -24
- package/dist/public/assets/diagram-OG6HWLK6-44JZNjGl.js +0 -24
- package/dist/public/assets/dist-Dek0Yhn0.js +0 -1
- package/dist/public/assets/erDiagram-TEJ5UH35-BVkYJRJ3.js +0 -85
- package/dist/public/assets/eventmodeling-FCH6USID-C_5XBe82.js +0 -1
- package/dist/public/assets/flowDiagram-I6XJVG4X-DanY8_jA.js +0 -162
- package/dist/public/assets/ganttDiagram-6RSMTGT7-DD1Pw4Yz.js +0 -292
- package/dist/public/assets/gitGraph-WXDBUCRP-D4dBNuhe.js +0 -1
- package/dist/public/assets/gitGraphDiagram-PVQCEYII-BPrVPTyG.js +0 -106
- package/dist/public/assets/index-CKFcPbR1.js +0 -729
- package/dist/public/assets/info-J43DQDTF-D7lvZ6o6.js +0 -1
- package/dist/public/assets/infoDiagram-5YYISTIA-t6t0skjQ.js +0 -2
- package/dist/public/assets/journeyDiagram-JHISSGLW-DZle34fL.js +0 -139
- package/dist/public/assets/kanban-definition-UN3LZRKU-DvUHZ0z2.js +0 -89
- package/dist/public/assets/mermaid-parser.core-DFZGVidJ.js +0 -4
- package/dist/public/assets/mindmap-definition-RKZ34NQL-Lmrs6IX6.js +0 -96
- package/dist/public/assets/packet-YPE3B663-AbbU2Ze4.js +0 -1
- package/dist/public/assets/pie-LRSECV5Y-DN4QBmSF.js +0 -1
- package/dist/public/assets/pieDiagram-4H26LBE5-BwD91PEd.js +0 -30
- package/dist/public/assets/quadrantDiagram-W4KKPZXB-DXCkBrKi.js +0 -7
- package/dist/public/assets/radar-GUYGQ44K-ej308gGR.js +0 -1
- package/dist/public/assets/requirementDiagram-4Y6WPE33-jDFKiwdn.js +0 -84
- package/dist/public/assets/sankeyDiagram-5OEKKPKP-D9xT2nUr.js +0 -40
- package/dist/public/assets/sequenceDiagram-3UESZ5HK-Bmko-3_U.js +0 -162
- package/dist/public/assets/src-CqxF9LGw.js +0 -1
- package/dist/public/assets/stateDiagram-AJRCARHV-DjPm6sNG.js +0 -1
- package/dist/public/assets/stateDiagram-v2-BHNVJYJU-B-cimf9q.js +0 -1
- package/dist/public/assets/timeline-definition-PNZ67QCA-nKPLYYzI.js +0 -120
- package/dist/public/assets/treeView-BLDUP644--ooV0k8a.js +0 -1
- package/dist/public/assets/treemap-LRROVOQU-BKq-VDOX.js +0 -1
- package/dist/public/assets/vennDiagram-CIIHVFJN-DHORAsW0.js +0 -34
- package/dist/public/assets/wardley-L42UT6IY-VU5ormp0.js +0 -1
- package/dist/public/assets/wardleyDiagram-YWT4CUSO-DwqR74vk.js +0 -78
- package/dist/public/assets/xychartDiagram-2RQKCTM6-CUU1IRcn.js +0 -7
|
@@ -17,6 +17,8 @@ export const moduleParamSchema = z.object({
|
|
|
17
17
|
export const updateProjectSchema = z.object({
|
|
18
18
|
name: z.string().optional(),
|
|
19
19
|
cardKeyPrefix: z.string().optional(),
|
|
20
|
+
description: z.string().optional(),
|
|
21
|
+
category: z.string().optional(),
|
|
20
22
|
gitRemoteUrl: z
|
|
21
23
|
.string()
|
|
22
24
|
.refine((s) => s.startsWith('https://') || s.startsWith('git@'), {
|
|
@@ -24,6 +26,24 @@ export const updateProjectSchema = z.object({
|
|
|
24
26
|
})
|
|
25
27
|
.optional(),
|
|
26
28
|
});
|
|
29
|
+
export const addHubSchema = z.object({
|
|
30
|
+
location: z.url({
|
|
31
|
+
protocol: /^https?$/,
|
|
32
|
+
error: 'Hub location must be a valid HTTP or HTTPS URL',
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
// Removal accepts any stored location: configurations written before locations
|
|
36
|
+
// were validated may hold entries this schema would otherwise refuse, and those
|
|
37
|
+
// have to stay removable.
|
|
38
|
+
export const removeHubSchema = z.object({
|
|
39
|
+
location: z.string().min(1),
|
|
40
|
+
});
|
|
41
|
+
// 'dryRun' is required so that a request whose body did not arrive fails with
|
|
42
|
+
// 400 instead of defaulting into the destructive real clean. The command's
|
|
43
|
+
// 'cardType' narrowing is deliberately not exposed yet.
|
|
44
|
+
export const cleanSchema = z.object({
|
|
45
|
+
dryRun: z.boolean(),
|
|
46
|
+
});
|
|
27
47
|
export const importModuleSchema = z.object({
|
|
28
48
|
source: z
|
|
29
49
|
.string()
|
|
@@ -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,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,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,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"}
|
|
@@ -10,7 +10,8 @@
|
|
|
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 CommandManager, type ModuleSettingFromHub } from '@cyberismo/data-handler';
|
|
13
|
+
import { type CleanResult, type CommandManager, type HubFetchFailure, type ModuleSettingFromHub } from '@cyberismo/data-handler';
|
|
14
|
+
export type { CleanResult } from '@cyberismo/data-handler';
|
|
14
15
|
export interface ProjectModule {
|
|
15
16
|
name: string;
|
|
16
17
|
cardKeyPrefix: string;
|
|
@@ -18,14 +19,30 @@ export interface ProjectModule {
|
|
|
18
19
|
export interface ProjectInfo {
|
|
19
20
|
name: string;
|
|
20
21
|
cardKeyPrefix: string;
|
|
22
|
+
description: string;
|
|
23
|
+
category: string;
|
|
21
24
|
modules: ProjectModule[];
|
|
22
25
|
gitRemoteUrl: string | null;
|
|
23
26
|
}
|
|
24
27
|
export interface ProjectUpdatePayload {
|
|
25
28
|
name?: string;
|
|
26
29
|
cardKeyPrefix?: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
category?: string;
|
|
27
32
|
gitRemoteUrl?: string;
|
|
28
33
|
}
|
|
34
|
+
export interface HubModuleInfo {
|
|
35
|
+
name: string;
|
|
36
|
+
displayName?: string;
|
|
37
|
+
location: string;
|
|
38
|
+
imported: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface HubInfo {
|
|
41
|
+
location: string;
|
|
42
|
+
displayName?: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
modules: HubModuleInfo[];
|
|
45
|
+
}
|
|
29
46
|
export declare function getProject(commands: CommandManager): Promise<ProjectInfo>;
|
|
30
47
|
export declare function updateProject(commands: CommandManager, updates: ProjectUpdatePayload): Promise<ProjectInfo>;
|
|
31
48
|
export declare function updateModule(commands: CommandManager, module: string): Promise<void>;
|
|
@@ -33,3 +50,8 @@ export declare function updateAllModules(commands: CommandManager): Promise<void
|
|
|
33
50
|
export declare function deleteModule(commands: CommandManager, module: string): Promise<void>;
|
|
34
51
|
export declare function getImportableModules(commands: CommandManager): Promise<ModuleSettingFromHub[]>;
|
|
35
52
|
export declare function importModule(commands: CommandManager, source: string): Promise<void>;
|
|
53
|
+
export declare function getHubs(commands: CommandManager): Promise<HubInfo[]>;
|
|
54
|
+
export declare function addHub(commands: CommandManager, location: string): Promise<HubFetchFailure[]>;
|
|
55
|
+
export declare function removeHub(commands: CommandManager, location: string): Promise<void>;
|
|
56
|
+
export declare function fetchHubs(commands: CommandManager): Promise<HubFetchFailure[]>;
|
|
57
|
+
export declare function cleanProject(commands: CommandManager, dryRun: boolean): Promise<CleanResult>;
|
|
@@ -34,13 +34,15 @@ export async function getProject(commands) {
|
|
|
34
34
|
return {
|
|
35
35
|
name: project.name,
|
|
36
36
|
cardKeyPrefix: project.prefix,
|
|
37
|
+
description: project.description ?? '',
|
|
38
|
+
category: project.category ?? '',
|
|
37
39
|
modules: moduleDetails,
|
|
38
40
|
gitRemoteUrl,
|
|
39
41
|
};
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
export async function updateProject(commands, updates) {
|
|
43
|
-
const { name, cardKeyPrefix, gitRemoteUrl } = updates;
|
|
45
|
+
const { name, cardKeyPrefix, description, category, gitRemoteUrl } = updates;
|
|
44
46
|
await commands.atomic(async () => {
|
|
45
47
|
if (cardKeyPrefix) {
|
|
46
48
|
await commands.renameCmd.rename(cardKeyPrefix);
|
|
@@ -48,6 +50,12 @@ export async function updateProject(commands, updates) {
|
|
|
48
50
|
if (name) {
|
|
49
51
|
await commands.project.configuration.setProjectName(name);
|
|
50
52
|
}
|
|
53
|
+
if (description !== undefined) {
|
|
54
|
+
await commands.project.configuration.setDescription(description);
|
|
55
|
+
}
|
|
56
|
+
if (category !== undefined) {
|
|
57
|
+
await commands.project.configuration.setCategory(category);
|
|
58
|
+
}
|
|
51
59
|
}, 'Update project settings');
|
|
52
60
|
if (gitRemoteUrl !== undefined) {
|
|
53
61
|
await commands.editCmd.setGitRemoteUrl(gitRemoteUrl);
|
|
@@ -63,10 +71,53 @@ export async function updateAllModules(commands) {
|
|
|
63
71
|
export async function deleteModule(commands, module) {
|
|
64
72
|
await commands.removeCmd.remove('module', module);
|
|
65
73
|
}
|
|
74
|
+
// Hub data is only refreshed on demand, so a project that has never fetched
|
|
75
|
+
// would otherwise show an empty catalogue until the user asks for a refresh.
|
|
76
|
+
async function populateHubCache(commands) {
|
|
77
|
+
try {
|
|
78
|
+
await commands.fetchCmd.ensureModuleListExists();
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
// An unreachable hub must not fail listing the hubs we already know about.
|
|
82
|
+
console.warn('Failed to populate the hub cache', error);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
66
85
|
export async function getImportableModules(commands) {
|
|
86
|
+
await populateHubCache(commands);
|
|
67
87
|
return commands.showCmd.showImportableModules(false, true);
|
|
68
88
|
}
|
|
69
89
|
export async function importModule(commands, source) {
|
|
70
90
|
await commands.importCmd.importModule(source);
|
|
71
91
|
}
|
|
92
|
+
export async function getHubs(commands) {
|
|
93
|
+
await populateHubCache(commands);
|
|
94
|
+
const hubs = await commands.showCmd.showHubDetails();
|
|
95
|
+
const importedModules = new Set((await commands.showCmd.showModules()).map((mod) => mod.name));
|
|
96
|
+
return hubs.map((hub) => ({
|
|
97
|
+
location: hub.location,
|
|
98
|
+
displayName: hub.displayName,
|
|
99
|
+
description: hub.description,
|
|
100
|
+
modules: hub.modules.map((mod) => ({
|
|
101
|
+
name: mod.name,
|
|
102
|
+
displayName: mod.displayName,
|
|
103
|
+
location: mod.location,
|
|
104
|
+
imported: importedModules.has(mod.name),
|
|
105
|
+
})),
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
export async function addHub(commands, location) {
|
|
109
|
+
await commands.createCmd.addHubLocation(location);
|
|
110
|
+
// The hub is configured even when it cannot be reached right now; its
|
|
111
|
+
// modules appear once a later refresh succeeds.
|
|
112
|
+
return commands.fetchCmd.fetchHubs(true);
|
|
113
|
+
}
|
|
114
|
+
export async function removeHub(commands, location) {
|
|
115
|
+
await commands.removeCmd.remove('hub', location);
|
|
116
|
+
}
|
|
117
|
+
export async function fetchHubs(commands) {
|
|
118
|
+
return commands.fetchCmd.fetchHubs(true);
|
|
119
|
+
}
|
|
120
|
+
export async function cleanProject(commands, dryRun) {
|
|
121
|
+
return commands.cleanCmd.clean(dryRun);
|
|
122
|
+
}
|
|
72
123
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { Hono } from 'hono';
|
|
14
14
|
import type { ProjectRegistry } from '../../project-registry.js';
|
|
15
|
-
export declare function createProjectsRouter(registry: ProjectRegistry): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
15
|
+
export declare function createProjectsRouter(registry: ProjectRegistry, multiProjectRoot?: string): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
@@ -11,9 +11,12 @@
|
|
|
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 {
|
|
14
|
+
import { zValidator } from '../../middleware/zvalidator.js';
|
|
15
|
+
import { requireRole, getCurrentUser } from '../../middleware/auth.js';
|
|
15
16
|
import { UserRole } from '../../types.js';
|
|
16
|
-
|
|
17
|
+
import { createProjectSchema, cloneProjectSchema } from './schema.js';
|
|
18
|
+
import * as projectsService from './service.js';
|
|
19
|
+
export function createProjectsRouter(registry, multiProjectRoot) {
|
|
17
20
|
const router = new Hono();
|
|
18
21
|
/**
|
|
19
22
|
* @swagger
|
|
@@ -28,7 +31,67 @@ export function createProjectsRouter(registry) {
|
|
|
28
31
|
* description: Unauthorized
|
|
29
32
|
*/
|
|
30
33
|
router.get('/', requireRole(UserRole.Reader), (c) => {
|
|
31
|
-
return c.json(
|
|
34
|
+
return c.json({
|
|
35
|
+
projects: registry.list(),
|
|
36
|
+
canCreateProjects: !!multiProjectRoot,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* @swagger
|
|
41
|
+
* /api/projects:
|
|
42
|
+
* post:
|
|
43
|
+
* summary: Create a new project
|
|
44
|
+
* description: Creates a new project on disk, initializes git, adds default hub
|
|
45
|
+
*/
|
|
46
|
+
router.post('/', requireRole(UserRole.Editor), zValidator('json', createProjectSchema), async (c) => {
|
|
47
|
+
if (!multiProjectRoot) {
|
|
48
|
+
return c.json({ error: 'Project creation is not available in single-project mode' }, 403);
|
|
49
|
+
}
|
|
50
|
+
const params = c.req.valid('json');
|
|
51
|
+
if (registry.has(params.prefix)) {
|
|
52
|
+
return c.json({ error: `Project with prefix '${params.prefix}' already exists` }, 409);
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const result = await projectsService.createProject(registry, multiProjectRoot, params, getCurrentUser(c));
|
|
56
|
+
return c.json(result, 201);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return c.json({
|
|
60
|
+
error: error instanceof Error
|
|
61
|
+
? error.message
|
|
62
|
+
: 'Failed to create project',
|
|
63
|
+
}, 500);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* @swagger
|
|
68
|
+
* /api/projects/clone:
|
|
69
|
+
* post:
|
|
70
|
+
* summary: Clone a project from a git repository
|
|
71
|
+
* description: Clones a git repo and registers discovered projects
|
|
72
|
+
*/
|
|
73
|
+
router.post('/clone', requireRole(UserRole.Editor), zValidator('json', cloneProjectSchema), async (c) => {
|
|
74
|
+
if (!multiProjectRoot) {
|
|
75
|
+
return c.json({ error: 'Project cloning is not available in single-project mode' }, 403);
|
|
76
|
+
}
|
|
77
|
+
const { url } = c.req.valid('json');
|
|
78
|
+
try {
|
|
79
|
+
const result = await projectsService.cloneProject(registry, multiProjectRoot, url);
|
|
80
|
+
if (result.projects.length === 0) {
|
|
81
|
+
return c.json({
|
|
82
|
+
error: 'All projects in the cloned repository already exist',
|
|
83
|
+
skippedDuplicates: result.skippedDuplicates,
|
|
84
|
+
}, 409);
|
|
85
|
+
}
|
|
86
|
+
return c.json(result, 201);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
return c.json({
|
|
90
|
+
error: error instanceof Error
|
|
91
|
+
? error.message
|
|
92
|
+
: 'Failed to clone repository',
|
|
93
|
+
}, 500);
|
|
94
|
+
}
|
|
32
95
|
});
|
|
33
96
|
return router;
|
|
34
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/projects/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/projects/index.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 createProjectSchema: z.ZodObject<{
|
|
15
|
+
name: z.ZodString;
|
|
16
|
+
prefix: z.ZodString;
|
|
17
|
+
category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
18
|
+
description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export declare const cloneProjectSchema: z.ZodObject<{
|
|
21
|
+
url: z.ZodString;
|
|
22
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
import { Validate } from '@cyberismo/data-handler';
|
|
15
|
+
export const createProjectSchema = z.object({
|
|
16
|
+
name: z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1, 'Project name is required')
|
|
19
|
+
.refine((s) => Validate.isValidProjectName(s), {
|
|
20
|
+
message: 'Invalid project name',
|
|
21
|
+
}),
|
|
22
|
+
prefix: z
|
|
23
|
+
.string()
|
|
24
|
+
.min(3, 'Prefix must be at least 3 characters')
|
|
25
|
+
.max(10, 'Prefix must be at most 10 characters')
|
|
26
|
+
.refine((s) => Validate.validatePrefix(s), {
|
|
27
|
+
message: 'Prefix must contain only lowercase letters',
|
|
28
|
+
}),
|
|
29
|
+
category: z.string().optional().default(''),
|
|
30
|
+
description: z.string().optional().default(''),
|
|
31
|
+
});
|
|
32
|
+
export const cloneProjectSchema = z.object({
|
|
33
|
+
url: z
|
|
34
|
+
.string()
|
|
35
|
+
.min(1, 'Repository URL is required')
|
|
36
|
+
.refine((s) => s.startsWith('https://') || s.startsWith('git@'), {
|
|
37
|
+
message: 'URL must start with https:// or git@',
|
|
38
|
+
}),
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/projects/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;QAC7C,OAAO,EAAE,sBAAsB;KAChC,CAAC;IACJ,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,GAAG,CAAC,EAAE,EAAE,sCAAsC,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;QACzC,OAAO,EAAE,4CAA4C;KACtD,CAAC;IACJ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;SACpC,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,sCAAsC;KAChD,CAAC;CACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
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 type { ProjectRegistry } from '../../project-registry.js';
|
|
14
|
+
export interface CreateProjectParams {
|
|
15
|
+
name: string;
|
|
16
|
+
prefix: string;
|
|
17
|
+
category?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface CreateProjectResult {
|
|
21
|
+
prefix: string;
|
|
22
|
+
name: string;
|
|
23
|
+
category?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function createProject(registry: ProjectRegistry, rootPath: string, params: CreateProjectParams, user?: {
|
|
27
|
+
name: string;
|
|
28
|
+
email: string;
|
|
29
|
+
} | null): Promise<CreateProjectResult>;
|
|
30
|
+
export interface CloneProjectResult {
|
|
31
|
+
projects: {
|
|
32
|
+
prefix: string;
|
|
33
|
+
name: string;
|
|
34
|
+
}[];
|
|
35
|
+
skippedDuplicates?: string[];
|
|
36
|
+
}
|
|
37
|
+
export declare function cloneProject(registry: ProjectRegistry, rootPath: string, url: string): Promise<CloneProjectResult>;
|
|
@@ -0,0 +1,53 @@
|
|
|
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 { join } from 'node:path';
|
|
14
|
+
import { CommandManager, Create, scanForProjects, } from '@cyberismo/data-handler';
|
|
15
|
+
export async function createProject(registry, rootPath, params, user) {
|
|
16
|
+
const { name, prefix, category, description } = params;
|
|
17
|
+
const projectPath = join(rootPath, prefix);
|
|
18
|
+
const commands = await CommandManager.createProjectWithDefaults(projectPath, params, {
|
|
19
|
+
...registry.options,
|
|
20
|
+
gitUser: user ?? undefined,
|
|
21
|
+
});
|
|
22
|
+
registry.add(prefix, commands);
|
|
23
|
+
return {
|
|
24
|
+
prefix,
|
|
25
|
+
name,
|
|
26
|
+
category: category || undefined,
|
|
27
|
+
description: description || undefined,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export async function cloneProject(registry, rootPath, url) {
|
|
31
|
+
const clonedPath = await Create.cloneProject(url, rootPath);
|
|
32
|
+
const scanned = await scanForProjects(clonedPath);
|
|
33
|
+
const registered = [];
|
|
34
|
+
const skippedDuplicates = [];
|
|
35
|
+
for (const project of scanned) {
|
|
36
|
+
if (registry.has(project.prefix)) {
|
|
37
|
+
skippedDuplicates.push(project.prefix);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const commands = new CommandManager(project.path, registry.options);
|
|
41
|
+
await commands.initialize();
|
|
42
|
+
registry.add(project.prefix, commands);
|
|
43
|
+
registered.push({
|
|
44
|
+
prefix: project.prefix,
|
|
45
|
+
name: project.name,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
projects: registered,
|
|
50
|
+
...(skippedDuplicates.length > 0 && { skippedDuplicates }),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/projects/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,cAAc,EACd,MAAM,EACN,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAiBjC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAyB,EACzB,QAAgB,EAChB,MAA2B,EAC3B,IAA6C;IAE7C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,yBAAyB,CAC7D,WAAW,EACX,MAAM,EACN;QACE,GAAG,QAAQ,CAAC,OAAO;QACnB,OAAO,EAAE,IAAI,IAAI,SAAS;KAC3B,CACF,CAAC;IAEF,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B,OAAO;QACL,MAAM;QACN,IAAI;QACJ,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,WAAW,EAAE,WAAW,IAAI,SAAS;KACtC,CAAC;AACJ,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAyB,EACzB,QAAgB,EAChB,GAAW;IAEX,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IAElD,MAAM,UAAU,GAAuC,EAAE,CAAC;IAC1D,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,GAAG,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -174,7 +174,7 @@ router.get('/:prefix/workflows/:identifier/graph', requireRole(UserRole.Reader),
|
|
|
174
174
|
throw error;
|
|
175
175
|
}
|
|
176
176
|
});
|
|
177
|
-
router.post('/:prefix/:type/:identifier/operation', requireRole(UserRole.Admin), zValidator('param', resourceParamsSchema), zValidator('json', updateOperationBodySchema), async (c) => {
|
|
177
|
+
router.post('/:prefix/:type/:identifier/operation', requireRole(UserRole.Admin, [UserRole.Connector]), zValidator('param', resourceParamsSchema), zValidator('json', updateOperationBodySchema), async (c) => {
|
|
178
178
|
const commands = c.get('commands');
|
|
179
179
|
const resourceParams = c.req.valid('param');
|
|
180
180
|
const { updateKey, operation } = c.req.valid('json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/resources/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/resources/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ export declare const resourceFileParamsSchema: z.ZodObject<{
|
|
|
18
18
|
graphViews: "graphViews";
|
|
19
19
|
linkTypes: "linkTypes";
|
|
20
20
|
reports: "reports";
|
|
21
|
+
skills: "skills";
|
|
21
22
|
templates: "templates";
|
|
22
23
|
workflows: "workflows";
|
|
23
24
|
}>;
|
|
@@ -29,12 +30,14 @@ export declare const validateResourceParamsSchema: z.ZodObject<{
|
|
|
29
30
|
prefix: z.ZodString;
|
|
30
31
|
identifier: z.ZodString;
|
|
31
32
|
type: z.ZodEnum<{
|
|
33
|
+
calculations: "calculations";
|
|
32
34
|
cardTypes: "cardTypes";
|
|
33
35
|
fieldTypes: "fieldTypes";
|
|
34
36
|
graphModels: "graphModels";
|
|
35
37
|
graphViews: "graphViews";
|
|
36
38
|
linkTypes: "linkTypes";
|
|
37
39
|
reports: "reports";
|
|
40
|
+
skills: "skills";
|
|
38
41
|
templates: "templates";
|
|
39
42
|
workflows: "workflows";
|
|
40
43
|
}>;
|
|
@@ -52,7 +55,7 @@ export declare const updateOperationBodySchema: z.ZodObject<{
|
|
|
52
55
|
target: z.ZodUnknown;
|
|
53
56
|
}, z.core.$strip>, z.ZodObject<{
|
|
54
57
|
name: z.ZodLiteral<"change">;
|
|
55
|
-
target: z.ZodUnknown
|
|
58
|
+
target: z.ZodOptional<z.ZodUnknown>;
|
|
56
59
|
to: z.ZodUnknown;
|
|
57
60
|
mappingTable: z.ZodOptional<z.ZodObject<{
|
|
58
61
|
stateMapping: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -11,7 +11,7 @@ export const resourceFileParamsSchema = resourceParamsSchema.extend({
|
|
|
11
11
|
file: z.string(),
|
|
12
12
|
});
|
|
13
13
|
export const validateResourceParamsSchema = resourceParamsSchema.extend({
|
|
14
|
-
type: z.enum(resourceTypes
|
|
14
|
+
type: z.enum(resourceTypes),
|
|
15
15
|
});
|
|
16
16
|
const updateKey = z.union([
|
|
17
17
|
z.object({
|
|
@@ -34,7 +34,9 @@ export const updateOperationBodySchema = z.object({
|
|
|
34
34
|
}),
|
|
35
35
|
z.object({
|
|
36
36
|
name: z.literal('change'),
|
|
37
|
-
|
|
37
|
+
// The old value; scalar changes have none, and clients drop the key
|
|
38
|
+
// entirely when it is undefined (JSON.stringify omits undefined).
|
|
39
|
+
target: z.unknown().optional(),
|
|
38
40
|
to: z.unknown(),
|
|
39
41
|
mappingTable: z
|
|
40
42
|
.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/resources/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,gBAAgB;CAC7B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACtE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/resources/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,gBAAgB;CAC7B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACtE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;CAC5B,CAAC,CAAC;AAMH,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;IACxB,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE;YAC7C,OAAO,EAAE,8BAA8B;SACxC,CAAC;KACH,CAAC;CACH,CAAC,CAAC;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,SAAS;IACT,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACtC,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;SACpB,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,oEAAoE;YACpE,kEAAkE;YAClE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC9B,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;YACf,YAAY,EAAE,CAAC;iBACZ,MAAM,CAAC;gBACN,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAC/C,CAAC;iBACD,QAAQ,EAAE;SACd,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACzC,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACvB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACrB,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -52,6 +52,6 @@ export declare function listWorkflowGraphParams(commands: CommandManager): Promi
|
|
|
52
52
|
export declare function getWorkflowGraph(commands: CommandManager, workflowName: string, cardKey?: string): Promise<string>;
|
|
53
53
|
/**
|
|
54
54
|
* Perform an updateOperation on a resource key.
|
|
55
|
-
* This delegates to data-handler
|
|
55
|
+
* This delegates to the data-handler mutation engine.
|
|
56
56
|
*/
|
|
57
57
|
export declare function updateResourceWithOperation(commands: CommandManager, resource: ResourceParams, body: UpdateOperationBody): Promise<void>;
|
|
@@ -343,10 +343,15 @@ export async function getWorkflowGraph(commands, workflowName, cardKey) {
|
|
|
343
343
|
}
|
|
344
344
|
/**
|
|
345
345
|
* Perform an updateOperation on a resource key.
|
|
346
|
-
* This delegates to data-handler
|
|
346
|
+
* This delegates to the data-handler mutation engine.
|
|
347
347
|
*/
|
|
348
348
|
export async function updateResourceWithOperation(commands, resource, body) {
|
|
349
349
|
const { updateKey, operation } = body;
|
|
350
|
-
await commands.atomic(() => commands.updateCmd.
|
|
350
|
+
await commands.atomic(() => commands.updateCmd.apply({
|
|
351
|
+
kind: 'edit',
|
|
352
|
+
target: resource,
|
|
353
|
+
updateKey,
|
|
354
|
+
operation,
|
|
355
|
+
}), `Update ${resource.type} ${resource.identifier}`);
|
|
351
356
|
}
|
|
352
357
|
//# sourceMappingURL=service.js.map
|