@kern0x1b/penstock-cli 26.11.1 → 26.11.2

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 (302) hide show
  1. package/THIRD-PARTY-NOTICES.md +16 -16
  2. package/dist/chunk-account-BaYNvO18.js +1 -0
  3. package/dist/{chunk-agentLaunch-D21uPuMr.js → chunk-agentLaunch-BnrpVME4.js} +1 -1
  4. package/dist/chunk-agentServe-BeOh1rjE.js +10 -0
  5. package/dist/chunk-agents-CZJoU2u2.js +1 -0
  6. package/dist/chunk-agentsMigrate-DnrqoXNz.js +2 -0
  7. package/dist/{chunk-analyze-BG-rlggA.js → chunk-analyze-ClE2LBCj.js} +1 -1
  8. package/dist/chunk-analyze-DgQqzEgb.js +1 -0
  9. package/dist/{chunk-analyzeFlow-2cYPgjh-.js → chunk-analyzeFlow-F2ZFmJhv.js} +1 -1
  10. package/dist/chunk-apiTemplates-Cl_z63FA.js +1 -0
  11. package/dist/{chunk-bot-DlhStBoG.js → chunk-bot-C2k8yaXA.js} +5 -5
  12. package/dist/chunk-cmmnFindings-DKpYqUZN.js +1 -0
  13. package/dist/{chunk-codeFactSet-LxSnQy8K.js → chunk-codeFactSet-DiAYqvbb.js} +1 -1
  14. package/dist/{chunk-codeIndex-N1gnP_sW.js → chunk-codeIndex-vStNh6Bm.js} +1 -1
  15. package/dist/chunk-codeLinks-BVpn4_Sr.js +1 -0
  16. package/dist/chunk-codeLinks-BrGduhsm.js +1 -0
  17. package/dist/chunk-command-8s6m3ZUw.js +5 -0
  18. package/dist/chunk-command-aMxPQdiV.js +1 -0
  19. package/dist/chunk-command-vH1_y5F0.js +1 -0
  20. package/dist/chunk-commands-B8YVT41b.js +5 -0
  21. package/dist/{chunk-commands-DcjlDt7B.js → chunk-commands-CJCSznbv.js} +1 -1
  22. package/dist/chunk-compose-BUJTvoFX.js +4 -0
  23. package/dist/chunk-connections-Drr67X9U.js +1 -0
  24. package/dist/chunk-connectors-DcMqy0u8.js +1 -0
  25. package/dist/chunk-convert-Ce1MZmsE.js +3 -0
  26. package/dist/chunk-convert-FkMnlxyi.js +1 -0
  27. package/dist/chunk-deploy-BHg8pB9x.js +1 -0
  28. package/dist/chunk-deploy-DZgCTgaY.js +6 -0
  29. package/dist/{chunk-diagrams-BukAOL0g.js → chunk-diagrams-CtGMGTa8.js} +1 -1
  30. package/dist/chunk-diff-9hjavV6V.js +1 -0
  31. package/dist/chunk-diff-Dp3fUALc.js +1 -0
  32. package/dist/chunk-dispatch-o-eqJb9Y.js +7 -0
  33. package/dist/chunk-dmnTests-BOxutoRs.js +1 -0
  34. package/dist/{chunk-dmnTests-ChwX1YVo.js → chunk-dmnTests-BzNA-u2k.js} +1 -1
  35. package/dist/{chunk-docs-D7yEDpa4.js → chunk-docs-B3C3pZpY.js} +17 -17
  36. package/dist/chunk-doctor-CRxbsAm7.js +1 -0
  37. package/dist/{chunk-editPreview-CC2vwhIW.js → chunk-editPreview-DCUnMkTU.js} +1 -1
  38. package/dist/chunk-evidence-ny_2ltVe.js +23 -0
  39. package/dist/{chunk-examples-0HkF-frb.js → chunk-examples-BG0lGXcZ.js} +9 -9
  40. package/dist/chunk-export-Blwjf23H.js +1 -0
  41. package/dist/chunk-export-kt3sBTZu.js +20 -0
  42. package/dist/{chunk-facts-DSVaURw5.js → chunk-facts-Dl5lLriU.js} +1 -1
  43. package/dist/chunk-failure-BRyRvObj.js +1 -0
  44. package/dist/{chunk-file-BswMa3FN.js → chunk-file-1YhfNmPn.js} +1 -1
  45. package/dist/chunk-import-Dh3az4BC.js +6 -0
  46. package/dist/chunk-importCommand-Dhikkmo0.js +1 -0
  47. package/dist/chunk-incident-LJe2-ohi.js +1 -0
  48. package/dist/chunk-init-D34Q4YA8.js +227 -0
  49. package/dist/chunk-lint-CnEhoYRB.js +1 -0
  50. package/dist/{chunk-lsp-7vA_mIt1.js → chunk-lsp-BzeJkpmf.js} +1 -1
  51. package/dist/chunk-main-BZF-ErAx.js +1 -0
  52. package/dist/chunk-mcp-B_B9bet5.js +95 -0
  53. package/dist/{chunk-mcpLaunch-LyfmIF_Z.js → chunk-mcpLaunch-BS709697.js} +1 -1
  54. package/dist/chunk-migrate-DVfXC-iJ.js +1 -0
  55. package/dist/chunk-migrate-DwWg0k5_.js +16 -0
  56. package/dist/{chunk-migrateApply-CzOkgKhB.js → chunk-migrateApply-e8O9oZXP.js} +3 -3
  57. package/dist/chunk-migrateVerify-oIBf-PM3.js +1 -0
  58. package/dist/{chunk-model-f8AzYUK7.js → chunk-model-BulEKnY1.js} +2 -2
  59. package/dist/{chunk-parse-B-uKGDy-.js → chunk-parse-DiOcpdOU.js} +1 -1
  60. package/dist/{chunk-penstockCli-CKMvaZ0O.js → chunk-penstockCli-C41P_G7i.js} +1 -1
  61. package/dist/chunk-policy-BVb7c7G_.js +1 -0
  62. package/dist/chunk-policyGate-BOgKsqLq.js +2 -0
  63. package/dist/chunk-pr-1jKcTNnP.js +1 -0
  64. package/dist/{chunk-project-DBYOlYRi.js → chunk-project-COaBZhMt.js} +1 -1
  65. package/dist/chunk-project-lO_6DX8G.js +1 -0
  66. package/dist/chunk-promotion-CTMPjXjZ.js +2 -0
  67. package/dist/chunk-promotion-DDLrgBqZ.js +1 -0
  68. package/dist/{chunk-promotion-DchO6xoC.js → chunk-promotion-NeRj4uTP.js} +1 -1
  69. package/dist/chunk-receipt-C4NqnSkH.js +1 -0
  70. package/dist/chunk-receiptDeps-B7MehyHT.js +1 -0
  71. package/dist/chunk-receiptGate-BZCKCMTV.js +1 -0
  72. package/dist/chunk-receiptGate-DRcw327y.js +1 -0
  73. package/dist/{chunk-receiptSnapshot-B6ruXw8z.js → chunk-receiptSnapshot-CHSk3_4N.js} +1 -1
  74. package/dist/{chunk-receiptStore-Cy-L0H1u.js → chunk-receiptStore-DhROtI2h.js} +1 -1
  75. package/dist/chunk-refactor-CO3qyIEv.js +17 -0
  76. package/dist/chunk-refactor-CWeCOl7w.js +1 -0
  77. package/dist/{chunk-render-Ci5d6mg4.js → chunk-render-DZd5hScS.js} +1 -1
  78. package/dist/chunk-report-w7YZwhyg.js +1 -0
  79. package/dist/chunk-review-DYMgFDSy.js +1 -0
  80. package/dist/chunk-say-CP1IyOSv.js +1 -0
  81. package/dist/{chunk-security-VgKwtohm.js → chunk-security-pgip-kdY.js} +2 -2
  82. package/dist/chunk-serve-CKt2rO05.js +10 -0
  83. package/dist/{chunk-share-CBV2FuKq.js → chunk-share-rsL0itIM.js} +18 -18
  84. package/dist/chunk-stages-B2sBBxUc.js +3 -0
  85. package/dist/chunk-systemError-O3vQ8hLb.js +1 -0
  86. package/dist/chunk-systemError-n2E6isvg.js +1 -0
  87. package/dist/chunk-taskTest-DWoME1mY.js +2 -0
  88. package/dist/chunk-taskTest-JErgWO6t.js +1 -0
  89. package/dist/{chunk-templateDiagnostics-BwH7RNkz.js → chunk-templateDiagnostics-6txfKwas.js} +2 -2
  90. package/dist/chunk-templates-Y3xfCO_3.js +1 -0
  91. package/dist/chunk-testCases-BwimUfDC.js +4 -0
  92. package/dist/chunk-testCases-DO2Rkyvd.js +1 -0
  93. package/dist/chunk-tests-Cy325OGw.js +1 -0
  94. package/dist/chunk-tests-DNkORsqB.js +23 -0
  95. package/dist/{chunk-trust-DXcsUJaK.js → chunk-trust-DSX-k3by.js} +1 -1
  96. package/dist/{chunk-trust-DubjEjlN.js → chunk-trust-Di4EYPah.js} +1 -1
  97. package/dist/{chunk-variableChecks-KnECGMR3.js → chunk-variableChecks-CBDpmI4d.js} +1 -1
  98. package/dist/{chunk-workerVariables-CajAcbwl.js → chunk-workerVariables-CNnCRijJ.js} +1 -1
  99. package/dist/{chunk-workerVariables-DIDoUpHF.js → chunk-workerVariables-CulLc3YH.js} +1 -1
  100. package/dist/chunk-wrapper-CGYED7G2.js +1 -0
  101. package/dist/chunk-wrapper-CK7Xtes6.js +3 -0
  102. package/dist/grammars/web-tree-sitter.wasm +0 -0
  103. package/dist/penstock.js +1 -1
  104. package/dist/web/assets/{AgentSettings-Cn5Vcph3.js → AgentSettings-D24jOuht.js} +1 -1
  105. package/dist/web/assets/{AgentsDialog-C6WqzlxZ.js → AgentsDialog-BMWv3Gyk.js} +1 -1
  106. package/dist/web/assets/{AgentsDialog-dpbwVSxk.js → AgentsDialog-DbY2O6O5.js} +1 -1
  107. package/dist/web/assets/{AgentsTab-C34OhVkw.js → AgentsTab-D6LbK6sG.js} +2 -2
  108. package/dist/web/assets/{BpmnCanvas-yur9daZa.js → BpmnCanvas-BcQRQ2Br.js} +27 -27
  109. package/dist/web/assets/BpmnDocument-Ce5F4K1e.js +27 -0
  110. package/dist/web/assets/CmmnDocument-C_UlPowC.js +17 -0
  111. package/dist/web/assets/{ConflictDialog-Bb5kduaR.js → ConflictDialog-DfFp8F7n.js} +1 -1
  112. package/dist/web/assets/{ConnectionsDialog-qtF7yDFw.js → ConnectionsDialog-BaYtHD5h.js} +1 -1
  113. package/dist/web/assets/{DiffDocument-LHOif5Ac.js → DiffDocument-BOPdBEN3.js} +1 -1
  114. package/dist/web/assets/{DmnDocument-0f5uS67x.css → DmnDocument-DZ9u2uk2.css} +1 -1
  115. package/dist/web/assets/DmnDocument-vtnARy7Q.js +41 -0
  116. package/dist/web/assets/{DriftDialog-Chl6BX6k.js → DriftDialog-dIbCbSK2.js} +1 -1
  117. package/dist/web/assets/FormDocument-B0q8DF9v.css +1 -0
  118. package/dist/web/assets/FormDocument-DHBUBUzO.js +32 -0
  119. package/dist/web/assets/FormStepView-CbHb32_8.js +1 -0
  120. package/dist/web/assets/{GraphAwareLayoutService-wsos3yPD.js → GraphAwareLayoutService-C5N8K9dm.js} +1 -1
  121. package/dist/web/assets/{MigrationDialog-CBJU7Oe3.js → MigrationDialog-DA3Vrzgw.js} +1 -1
  122. package/dist/web/assets/{NewFileDialog-B7075LWG.js → NewFileDialog-Dev41oA1.js} +1 -1
  123. package/dist/web/assets/PolicyDialog-qR19Csji.js +1 -0
  124. package/dist/web/assets/{QuickOpen-DJQrI7Od.js → QuickOpen-ps-rMjiS.js} +1 -1
  125. package/dist/web/assets/ScriptPane-BQLMNYzc.js +2 -0
  126. package/dist/web/assets/{ScriptRunDialog-BwE4cXnp.js → ScriptRunDialog-YivjHB6j.js} +1 -1
  127. package/dist/web/assets/{SettingsDialog-c307wPsg.js → SettingsDialog-DI0vZ6Ay.js} +1 -1
  128. package/dist/web/assets/ShortcutsDialog-DLXnv4Vm.js +1 -0
  129. package/dist/web/assets/SourceDocument-Cj8cGsoS.js +1 -0
  130. package/dist/web/assets/TemplateDocument-BRyFsofH.js +7 -0
  131. package/dist/web/assets/TextDocument-DB2hEuMA.js +1 -0
  132. package/dist/web/assets/{UnreadableFileLayer-CUP_30X8.js → UnreadableFileLayer-CRW3MM7w.js} +1 -1
  133. package/dist/web/assets/{UploadDialog-CaVBOxUL.js → UploadDialog-D-X6GG98.js} +1 -1
  134. package/dist/web/assets/Viewer-BcpDlvg_.js +4 -0
  135. package/dist/web/assets/apply-Nsj6ek02.js +1 -0
  136. package/dist/web/assets/{bpmnTheme-CZ7xp4R5.js → bpmnTheme-pKgl9Mrn.js} +2 -2
  137. package/dist/web/assets/{data-ZauKnQ2Z.js → data-CdiToGOq.js} +2 -2
  138. package/dist/web/assets/{data-Da5Nxzev.js → data-wU6sw6RY.js} +1 -1
  139. package/dist/web/assets/{dialog-DSLu1Bbo.js → dialog-BDJ5dDiU.js} +1 -1
  140. package/dist/web/assets/{diff-C4hitkRR.js → diff-BhYqTg4l.js} +1 -1
  141. package/dist/web/assets/dist-27z6Phtg.js +23 -0
  142. package/dist/web/assets/{dist-CofBTWz1.js → dist-B7TL-7R3.js} +4 -4
  143. package/dist/web/assets/dist-BEpeEbIu.js +1 -0
  144. package/dist/web/assets/{dist-CYCbBoYQ.js → dist-BTf7NfeQ.js} +1 -1
  145. package/dist/web/assets/{dist-CJKVV2_S.js → dist-BqGv7f4M.js} +10 -10
  146. package/dist/web/assets/dist-C-q1IWjr.js +6 -0
  147. package/dist/web/assets/{dist-Blylfrak.js → dist-CJx_2eBF.js} +2 -2
  148. package/dist/web/assets/dist-COUY_jv5.js +1 -0
  149. package/dist/web/assets/{dist-DpDu6Wz_.js → dist-CWjAtsKe.js} +1 -1
  150. package/dist/web/assets/{dist-gb3IfUZi.js → dist-Cv8_A_95.js} +2 -2
  151. package/dist/web/assets/dist-DDE6BjgI.js +5 -0
  152. package/dist/web/assets/{dist-7VC_hKpw.js → dist-DDNYYQtV.js} +1 -1
  153. package/dist/web/assets/dist-DW-S9iZN.js +1 -0
  154. package/dist/web/assets/dist-OnU5n5o1.js +1 -0
  155. package/dist/web/assets/dmn-Cgoh6wXm.js +3 -0
  156. package/dist/web/assets/{documentBridge-1Eg7H9yI.js → documentBridge-CHw4XsZH.js} +3 -3
  157. package/dist/web/assets/{documents-LG-7CTrn.js → documents-CEtohzAC.js} +1 -1
  158. package/dist/web/assets/duplicate-D_ic-m62.js +342 -0
  159. package/dist/web/assets/{engines-DhO6OW1S.js → engines-lyEvb0pH.js} +1 -1
  160. package/dist/web/assets/{executable-BTarDLry.js → executable--4381_Lf.js} +1 -1
  161. package/dist/web/assets/{file-CIeVSOHy.js → file-BbVBUuIH.js} +1 -1
  162. package/dist/web/assets/formChecks-CSClH9sH.js +1 -0
  163. package/dist/web/assets/frontend-uXAWaalt.js +1 -0
  164. package/dist/web/assets/{httpHost-DBSjdVth.js → httpHost-C973OTRe.js} +1 -1
  165. package/dist/web/assets/{index.es-pigASDxC.js → index.es-CMvq8Bhe.js} +3 -3
  166. package/dist/web/assets/index.es-GbdJvMnO.js +78 -0
  167. package/dist/web/assets/{index.esm-CTLpq4ik.js → index.esm-Ba6q0zSu.js} +1 -1
  168. package/dist/web/assets/{intelligence-_1C71hkQ.js → intelligence-DNqJNmdB.js} +3 -3
  169. package/dist/web/assets/{jspdf.es.min-PgZzOmkT.js → jspdf.es.min-C0L4zezU.js} +6 -6
  170. package/dist/web/assets/{kind-X3_nabTt.js → kind-DDHnk6dW.js} +1 -1
  171. package/dist/web/assets/{lib-BmLAen_d.js → lib-DrkEMJ65.js} +1 -1
  172. package/dist/web/assets/{list-DovB9lWV.js → list-TmXvCwja.js} +1 -1
  173. package/dist/web/assets/{migrationHost-BcguK4K5.js → migrationHost-DCWBb3L6.js} +1 -1
  174. package/dist/web/assets/moddle-f0Q4Guwd.js +1 -0
  175. package/dist/web/assets/{model--Bj28IOj.js → model-afHgSxJs.js} +1 -1
  176. package/dist/web/assets/{nudges-UF9_cBuO.js → nudges-DPG3WpyV.js} +1 -1
  177. package/dist/web/assets/{open-C9Kt9JLw.js → open-Vkx72dYx.js} +1 -1
  178. package/dist/web/assets/platform-G53Cenyw.js +2 -0
  179. package/dist/web/assets/{preload-helper-VRuDKI9K.js → preload-helper-DExCAR_V.js} +1 -1
  180. package/dist/web/assets/{run-BZgz1U9U.js → run-BMfRBe5O.js} +1 -1
  181. package/dist/web/assets/samples-BL3jA_Vd.js +1 -0
  182. package/dist/web/assets/{say-WvEHqIbO.js → say-BkdZMivA.js} +1 -1
  183. package/dist/web/assets/{say-ChFGKK2E.js → say-C7KqKcFr.js} +1 -1
  184. package/dist/web/assets/{sections-N6WYk7b8.js → sections-LJKSRDTS.js} +1 -1
  185. package/dist/web/assets/sharedReader-BsXfiBT8.js +1 -0
  186. package/dist/web/assets/{source-frame-DcptKpVq.js → source-frame-DC4W0A5-.js} +2 -2
  187. package/dist/web/assets/{syntax-DW10Wzg4.js → syntax-00Hk6Xv7.js} +4 -4
  188. package/dist/web/assets/{template-CMl68jPp.js → template-BQP7ZXdK.js} +1 -1
  189. package/dist/web/assets/testCaseRuns-liAhWMg7.js +1 -0
  190. package/dist/web/assets/{trace-DLziNpe2.js → trace-DXQU2N_l.js} +1 -1
  191. package/dist/web/assets/{translator-DLDFsUlE.js → translator-BLCeE6UY.js} +1 -1
  192. package/dist/web/assets/ui-BLtm3Y1J.js +1 -0
  193. package/dist/web/assets/{useTrace-UYBskc2k.js → useTrace-dZdQ805W.js} +1 -1
  194. package/dist/web/assets/web-C4k0NLZ9.js +982 -0
  195. package/dist/web/assets/web-CnDpD6qy.css +1 -0
  196. package/dist/web/assets/{workerVariables-DURgyUbG.js → workerVariables-O6VqwDzr.js} +1 -1
  197. package/dist/web/assets/xml-DIWt4von.js +1 -0
  198. package/dist/web/index.html +39 -40
  199. package/package.json +5 -5
  200. package/dist/chunk-account-CpZu-RTg.js +0 -1
  201. package/dist/chunk-agentServe-BYRtgGGD.js +0 -10
  202. package/dist/chunk-agents-B9oxdPTA.js +0 -1
  203. package/dist/chunk-agentsMigrate-BV8TeRXq.js +0 -2
  204. package/dist/chunk-analyze-pgzR-Cx-.js +0 -1
  205. package/dist/chunk-apiTemplates-cU7C8vap.js +0 -1
  206. package/dist/chunk-cmmnFindings-S2TGSnEp.js +0 -1
  207. package/dist/chunk-codeLinks-C8N6e8k3.js +0 -1
  208. package/dist/chunk-codeLinks-o0a8tBGk.js +0 -1
  209. package/dist/chunk-command-Bqlbgo-2.js +0 -1
  210. package/dist/chunk-command-DT84ioJb.js +0 -5
  211. package/dist/chunk-command-DrGP2kg8.js +0 -1
  212. package/dist/chunk-commands-B4PoZbpX.js +0 -5
  213. package/dist/chunk-compose-CWKKVtN5.js +0 -4
  214. package/dist/chunk-connections-DQpKbIGD.js +0 -1
  215. package/dist/chunk-connectors-PtAvE91B.js +0 -1
  216. package/dist/chunk-convert-CpgtOlZk.js +0 -1
  217. package/dist/chunk-convert-HbFpg8ab.js +0 -3
  218. package/dist/chunk-deploy-l4MdFfn8.js +0 -6
  219. package/dist/chunk-deploy-qRaaKGZb.js +0 -1
  220. package/dist/chunk-diff-BhTFlCE3.js +0 -1
  221. package/dist/chunk-diff-kBF83vzM.js +0 -1
  222. package/dist/chunk-dispatch-BnO-QhMh.js +0 -7
  223. package/dist/chunk-dmnTests-0x_yUH6S.js +0 -1
  224. package/dist/chunk-doctor-BuHK1dTm.js +0 -1
  225. package/dist/chunk-evidence-oLw_C6j8.js +0 -23
  226. package/dist/chunk-export-cIFHDXug.js +0 -1
  227. package/dist/chunk-export-jBVxtmCH.js +0 -20
  228. package/dist/chunk-failure-D5brrYW2.js +0 -1
  229. package/dist/chunk-import-BBOe-5RZ.js +0 -6
  230. package/dist/chunk-importCommand-DRjYoljA.js +0 -1
  231. package/dist/chunk-incident-BK1h37CD.js +0 -1
  232. package/dist/chunk-init-_OALJuKm.js +0 -227
  233. package/dist/chunk-lint-7KJFxyCN.js +0 -1
  234. package/dist/chunk-main-Cw2JXCil.js +0 -1
  235. package/dist/chunk-mcp-K63bhqnF.js +0 -95
  236. package/dist/chunk-migrate-BMwBV5sc.js +0 -16
  237. package/dist/chunk-migrate-CxfVmKt0.js +0 -1
  238. package/dist/chunk-migrateVerify-DSEXSpfR.js +0 -1
  239. package/dist/chunk-policy-BX0Ftdws.js +0 -1
  240. package/dist/chunk-policyGate-dmcufnwB.js +0 -2
  241. package/dist/chunk-pr-ByrGcfam.js +0 -1
  242. package/dist/chunk-project-DA3KnAZH.js +0 -1
  243. package/dist/chunk-promotion-Boedyq43.js +0 -1
  244. package/dist/chunk-promotion-D8Ti-vxp.js +0 -2
  245. package/dist/chunk-receipt-CusJaqNn.js +0 -1
  246. package/dist/chunk-receiptDeps-oVbX156d.js +0 -1
  247. package/dist/chunk-receiptGate-DrGChj7i.js +0 -1
  248. package/dist/chunk-receiptGate-xldHKMyJ.js +0 -1
  249. package/dist/chunk-refactor-B1W_MGTp.js +0 -1
  250. package/dist/chunk-refactor-BJXxEtVs.js +0 -17
  251. package/dist/chunk-report-D9pM09Nu.js +0 -1
  252. package/dist/chunk-review-UcqS5AAi.js +0 -1
  253. package/dist/chunk-say-CYb4HeJD.js +0 -1
  254. package/dist/chunk-serve-Dmqen1yd.js +0 -10
  255. package/dist/chunk-stages-BTQJrAMF.js +0 -3
  256. package/dist/chunk-systemError-BYrMzp2o.js +0 -1
  257. package/dist/chunk-systemError-CXvnhNPK.js +0 -1
  258. package/dist/chunk-taskTest-9gMsx0zu.js +0 -2
  259. package/dist/chunk-taskTest-BjXYpG5p.js +0 -1
  260. package/dist/chunk-templates-D3ouIwHD.js +0 -1
  261. package/dist/chunk-testCases-9jwT_Y7z.js +0 -4
  262. package/dist/chunk-testCases-BcpBPg9L.js +0 -1
  263. package/dist/chunk-tests-CEEXnWOp.js +0 -23
  264. package/dist/chunk-tests-CRVosdWp.js +0 -1
  265. package/dist/chunk-wrapper-B2WnOIoB.js +0 -3
  266. package/dist/chunk-wrapper-DiKCKZti.js +0 -1
  267. package/dist/web/assets/BpmnDocument-C247Rqim.js +0 -27
  268. package/dist/web/assets/CmmnDocument-Dj48bsUd.js +0 -17
  269. package/dist/web/assets/DmnDocument-Cb9Zi9fS.js +0 -41
  270. package/dist/web/assets/FormDocument-DoZaxWd-.js +0 -32
  271. package/dist/web/assets/FormDocument-URLcKn84.css +0 -1
  272. package/dist/web/assets/FormStepView-D8MFcpeI.js +0 -1
  273. package/dist/web/assets/PolicyDialog-CGdglmDn.js +0 -1
  274. package/dist/web/assets/ScriptPane-T6M5f6fc.js +0 -2
  275. package/dist/web/assets/ShortcutsDialog-BAoL9EHu.js +0 -1
  276. package/dist/web/assets/SourceDocument-C9KIzBA5.js +0 -1
  277. package/dist/web/assets/TemplateDocument-CNt2turg.js +0 -7
  278. package/dist/web/assets/TextDocument-CtkHoEqN.js +0 -1
  279. package/dist/web/assets/Viewer-DZske1C5.js +0 -4
  280. package/dist/web/assets/apply-nnKP9HIM.js +0 -1
  281. package/dist/web/assets/dist--PmHUHDp.js +0 -1
  282. package/dist/web/assets/dist-BoPrKCf2.js +0 -5
  283. package/dist/web/assets/dist-C1m02xAO.js +0 -1
  284. package/dist/web/assets/dist-CLqJMzT-.js +0 -1
  285. package/dist/web/assets/dist-D3jqq0XS.js +0 -1
  286. package/dist/web/assets/dist-DA-9F0U9.js +0 -1
  287. package/dist/web/assets/dist-DojzF5q2.js +0 -6
  288. package/dist/web/assets/dist-yvjzrXXf.js +0 -23
  289. package/dist/web/assets/dmn-DwdcYXGr.js +0 -3
  290. package/dist/web/assets/duplicate-D-ilQqKz.js +0 -342
  291. package/dist/web/assets/formChecks-CGox1z7R.js +0 -1
  292. package/dist/web/assets/frontend-Qq5hBH0U.js +0 -1
  293. package/dist/web/assets/index.es-CcNNw3VB.js +0 -78
  294. package/dist/web/assets/moddle-DJxj0oEU.js +0 -1
  295. package/dist/web/assets/platform-BLPhsye9.js +0 -2
  296. package/dist/web/assets/samples-oeXBsJ9Y.js +0 -1
  297. package/dist/web/assets/sharedReader-Bopy7Uk9.js +0 -1
  298. package/dist/web/assets/testCaseRuns-B_XdqGFh.js +0 -1
  299. package/dist/web/assets/ui-BTKMbWYG.js +0 -1
  300. package/dist/web/assets/web-FzNBw1kZ.css +0 -1
  301. package/dist/web/assets/web-jPMZVwbQ.js +0 -982
  302. package/dist/web/assets/xml-DTgZ-B-l.js +0 -1
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{n as t}from"./chunk-moddle-D3Ym38EZ.js";import{d as n,u as r}from"./chunk-model-f8AzYUK7.js";import{t as i}from"./chunk-list-XuNpvC6j.js";import{r as a}from"./chunk-docs-BVmrekiH.js";import{r as o,t as s}from"./chunk-say-CtmOlXtN.js";import{r as c,t as l}from"./chunk-analyzeFlow-2cYPgjh-.js";import{t as u}from"./chunk-sections-Co5ovFf4.js";import{s as d}from"./chunk-failure-D5brrYW2.js";import{r as f}from"./chunk-context-rCJvBM9p.js";import{t as p}from"./chunk-report-D9pM09Nu.js";import{t as m}from"./chunk-plural-Dn-7ulHf.js";import{t as h}from"./chunk-buffers-B8jONhEB.js";const g=e=>o(`table`,e),_=`\0other`;function v(e){let t=[],n=0,r=!1,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];r&&o===`\\`?a+=1:(o===`"`&&(r=!r),!r&&((o===`(`||o===`[`)&&(n+=1),(o===`)`||o===`]`)&&--n,o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)))}return t.push(e.slice(i)),t.map(e=>e.trim()).filter(Boolean)}function y(e){return/^-?\d+(\.\d+)?$/.test(e.trim())?Number(e.trim()):null}const b=864e5,x=/^\d{4}-\d{2}-\d{2}(?:T[\d:.]+(?:Z|[+-]\d{2}:?\d{2})?)?$/,S=/^(?:date\s*\(\s*"([^"]+)"\s*\)|date\s+and\s+time\s*\(\s*"([^"]+)"\s*\)|time\s*\(\s*"([^"]+)"\s*\)|@"([^"]+)"|@([\d:.+\-TZ]+))$/;function C(e){let t=e.slice(0,10),n=/* @__PURE__ */ new Date(`${t}T00:00:00Z`);return!Number.isNaN(n.getTime())&&n.toISOString().slice(0,10)===t}function w(e){let t=S.exec(e.trim());if(!t)return null;let n=t[1]??t[2]??t[3]??t[4]??t[5]??``;return x.test(n)&&C(n)?n:null}function T(e){return typeof e==`string`&&x.test(e)}function E(e){return(/* @__PURE__ */ new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)-b)).toISOString().slice(0,10)}function D(e){return new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)+b).toISOString().slice(0,10)}function O(e,t){let n=Date.parse(`${e.slice(0,10)}T00:00:00Z`)+(Date.parse(`${t.slice(0,10)}T00:00:00Z`)-Date.parse(`${e.slice(0,10)}T00:00:00Z`))/2;return new Date(n).toISOString().slice(0,10)}function k(e){return{kind:`date`,test:t=>T(t)&&t===e,numbers:[],strings:[],moments:[e]}}function A(e){let t=e.trim(),n=/^not\s*\(([\s\S]*)\)$/.exec(t);if(n){if(n[1].trim()===``)return null;let e=j(n[1]);return e?{...e,test:t=>!e.test(t)}:null}if(t===`true`||t===`false`){let e=t===`true`;return{kind:`boolean`,test:t=>t===e,numbers:[],strings:[],moments:[]}}if(t===`null`)return{kind:`null`,test:e=>e===`null`,numbers:[],strings:[],moments:[]};let r=/^"((?:[^"\\]|\\.)*)"$/.exec(t);if(r)return{kind:`string`,test:e=>e===r[1],numbers:[],strings:[r[1]],moments:[]};let i=y(t);if(i!==null)return{kind:`number`,test:e=>e===i,numbers:[i],strings:[],moments:[]};let a=w(t);if(a)return k(a);let o=/^(<=|>=|<|>|=)\s*(-?\d+(?:\.\d+)?)$/.exec(t);if(o){let e=Number(o[2]);return{kind:`number`,test:{"<":t=>typeof t==`number`&&t<e,"<=":t=>typeof t==`number`&&t<=e,">":t=>typeof t==`number`&&t>e,">=":t=>typeof t==`number`&&t>=e,"=":t=>t===e}[o[1]],numbers:[e],strings:[],moments:[]}}let s=/^(<=|>=|<|>|=)\s*((?:date\s*\(\s*"[^"]+"\s*\)|date\s+and\s+time\s*\(\s*"[^"]+"\s*\)|time\s*\(\s*"[^"]+"\s*\)|@"[^"]+"))$/.exec(t);if(s){let e=w(s[2]);return e===null?null:{kind:`date`,test:{"<":t=>T(t)&&t<e,"<=":t=>T(t)&&t<=e,">":t=>T(t)&&t>e,">=":t=>T(t)&&t>=e,"=":t=>T(t)&&t===e}[s[1]],numbers:[],strings:[],moments:[e]}}let c=/^([[\](])\s*(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)\s*([[\])])$/.exec(t);if(c){let[e,t]=[Number(c[2]),Number(c[3])],n=c[1]!==`[`,r=c[4]!==`]`;return{kind:`number`,test:i=>typeof i==`number`&&(n?i>e:i>=e)&&(r?i<t:i<=t),numbers:[e,t],strings:[],moments:[]}}let l=/^([[\]()])\s*((?:date\s*\(\s*"[^"]+"\s*\)|date\s+and\s+time\s*\(\s*"[^"]+"\s*\)|time\s*\(\s*"[^"]+"\s*\)|@"[^"]+"))\s*\.\.\s*((?:date\s*\(\s*"[^"]+"\s*\)|date\s+and\s+time\s*\(\s*"[^"]+"\s*\)|time\s*\(\s*"[^"]+"\s*\)|@"[^"]+"))\s*([[\])])$/.exec(t);if(l){let[e,t]=[w(l[2]),w(l[3])];if(e===null||t===null)return null;let n=l[1]!==`[`,r=l[4]!==`]`;return{kind:`date`,test:i=>T(i)&&(n?i>e:i>=e)&&(r?i<t:i<=t),numbers:[],strings:[],moments:[e,t]}}return null}function j(e){let t=(e??``).trim();if(t===``||t===`-`)return{kind:`any`,test:()=>!0,numbers:[],strings:[],moments:[]};let n=v(t);if(n.length>1){let e=n.map(A);if(e.some(e=>!e))return null;let t=e;return{kind:t.find(e=>e.kind!==`any`)?.kind??`any`,test:e=>t.some(t=>t.test(e)),numbers:t.flatMap(e=>e.numbers),strings:t.flatMap(e=>e.strings),moments:t.flatMap(e=>e.moments)}}return A(t)}function M(e,t){let n=new Set(e.map(e=>e.kind).filter(e=>e!==`any`)),r=(t??``).toLowerCase();if(n.size>1)return null;let i=n.size===1?[...n][0]:r===`boolean`?`boolean`:r===`string`?`string`:/int|long|double|number|decimal/.test(r)?`number`:`any`;if(i===`any`)return[_];if(i===`boolean`)return[!0,!1];if(i===`string`)return[...new Set(e.flatMap(e=>e.strings)),_];if(i===`date`){let t=[...new Set(e.flatMap(e=>e.moments))].sort();if(t.length===0)return[_];let n=t.slice(1).map((e,n)=>O(t[n],e));return[.../* @__PURE__ */ new Set([E(t[0]),...t.flatMap((e,r)=>[e,...r+1<t.length?[n[r]]:[]]),D(t[t.length-1])])]}let a=/int|long/.test(r),o=[...new Set(e.flatMap(e=>e.numbers))].sort((e,t)=>e-t);if(o.length===0)return[0];let s=[o[0]-1];return o.forEach((e,t)=>{s.push(e);let n=o[t+1];n!==void 0&&(a?n-e>1&&s.push(e+1):s.push((e+n)/2))}),s.push(o[o.length-1]+1),s}function N(t){return t===_?e(`app.rules.table.someOtherValue`):typeof t==`string`?`"${t}"`:String(t)}function P(t,n){let r=t.name?.trim()||t.id||e(`app.rules.table.aDecision`),i=n.input??[],a=n.rule??[];if(a.length===0||i.length===0)return[];let o=a.map(e=>i.map((t,n)=>j(e.inputEntry?.[n]?.text)));if(o.some(e=>e.some(e=>!e)))return[{kind:`TABLE-UNREAD`,decision:r,title:g(`TABLE-UNREAD`),detail:e(`app.rules.table.unread`,{decision:r}),rules:[]}];let s=o,c=i.map((e,t)=>M(s.map(e=>e[t]),e.inputExpression?.typeRef));if(c.some(e=>!e))return[];let l=c,u=i.map((t,n)=>t.label?.trim()||t.inputExpression?.text?.trim()||e(`app.rules.table.input`,{number:n+1})),d=[],f=(n.hitPolicy??`UNIQUE`).toUpperCase(),p=e=>(a[e].outputEntry??[]).map(e=>(e.text??``).trim()).join(`|`);if(f===`UNIQUE`||f===`ANY`)for(let t=0;t<a.length;t+=1)for(let n=t+1;n<a.length;n+=1){if(f===`ANY`&&p(t)===p(n))continue;let i=l.map((e,r)=>e.find(e=>s[t][r].test(e)&&s[n][r].test(e)));if(i.some(e=>e===void 0))continue;let a=i.map((t,n)=>e(`app.rules.table.whenIs`,{label:u[n],value:N(t)})).join(e(`app.rules.table.and`));d.push({kind:`RULE-OVERLAP`,decision:r,title:g(`RULE-OVERLAP`),detail:e(`app.rules.table.ruleOverlap`,{decision:r,first:t+1,second:n+1,when:a,different:f===`ANY`?e(`app.rules.table.differentResults`):``,policy:f===`ANY`?`Any`:`Unique`}),rules:[t+1,n+1]})}let m=[],h=0,_=(e,t,n)=>{if(!(m.length>=3||h>2e5)){if(h+=1,n.length===0)m.push(t);else if(e!==l.length){for(let r of l[e])if(_(e+1,[...t,r],n.filter(t=>s[t][e].test(r))),m.length>=3)return}}};if(_(0,[],a.map((e,t)=>t)),m.length>0){let t=m.map(t=>t.map((t,n)=>e(`app.rules.table.whenIs`,{label:u[n],value:N(t)})).join(e(`app.rules.table.and`))).join(e(`app.rules.table.orWhen`));d.push({kind:`RULE-GAP`,decision:r,title:g(`RULE-GAP`),detail:e(`app.rules.table.ruleGap`,{decision:r,cases:t}),rules:[]})}return d}function F(e){let t=e,n=[];for(let e of t.drgElement??[])e.$type===`dmn:Decision`&&e.decisionLogic?.$type===`dmn:DecisionTable`&&n.push(...P(e,e.decisionLogic));return n}const I=/* @__PURE__ */ new Set([`expression`]),L=e=>typeof e==`object`&&!!e&&!Array.isArray(e),R=e=>typeof e==`string`?e.trim():``,z=e=>Array.isArray(e.components)?e.components.filter(L):null,B=e=>o(`form`,e);function V(t){let n=R(t.label);if(n)return`"${n}"`;let r=R(t.key),i=R(t.id);return e(`app.rules.form.unnamedField`,{type:typeof t.type==`string`?t.type:`field`,key:r?` ${r}`:``,id:r||!i?``:` ${i}`})}function H(t){let n=L(t)?t:{},r=e=>typeof e.id==`string`?e.id:``,a=[],o=/* @__PURE__ */ new Map,s=/* @__PURE__ */ new Map,c=(t,n,i,l)=>{if(!(l>200))for(let d of t){let t=typeof d.type==`string`?d.type:``,f=z(d);if(f){let e=R(d.path),r=e?e.split(`.`):[],a=[...n,...r];r.length>0&&s.set(`${i}|${a.join(`.`)}`,d),c(f,t===`dynamiclist`?[]:a,t===`dynamiclist`?`${i}/${a.join(`.`)}`:i,l+1);continue}if(!u.has(t))continue;let p=R(d.key);if(!p){a.push({kind:`NO-KEY`,title:B(`NO-KEY`),detail:e(`app.rules.form.noKey`,{field:V(d)}),ids:r(d)?[r(d)]:[]});continue}let m=[...n,...p.split(`.`)].join(`.`),h=`${i}|${m}`;o.set(h,[...o.get(h)??[],{component:d}]),!I.has(t)&&!R(d.label)&&a.push({kind:`NO-LABEL`,title:B(`NO-LABEL`),detail:e(`app.rules.form.noLabel`,{type:t,variable:m}),ids:r(d)?[r(d)]:[]});let g=Array.isArray(d.values)?d.values.filter(e=>typeof e==`object`&&!!e):[],_=/* @__PURE__ */ new Map;g.forEach(e=>{let t=JSON.stringify(e.value)??`undefined`;_.set(t,(_.get(t)??0)+1)});let v=[..._.entries()].filter(([,e])=>e>1).map(([e])=>e);v.length>0&&a.push({kind:`REPEATED-OPTION`,title:B(`REPEATED-OPTION`),detail:e(`app.rules.form.repeatedOption`,{field:V(d),values:v.join(`, `)}),ids:r(d)?[r(d)]:[]})}};c(z(n)??[],[],``,0);for(let[t,n]of o){let o=t.split(`|`)[1];n.length>1&&a.push({kind:`KEY-CLASH`,title:B(`KEY-CLASH`),detail:e(`app.rules.form.keyClash`,{fields:i(n.map(({component:e})=>V(e))),all:n.length===2?`both`:`all`,variable:o}),ids:n.map(({component:e})=>r(e)).filter(Boolean)})}for(let[t,n]of s){let[i,s]=t.split(`|`),c=s.split(`.`);for(let t=1;t<=c.length;t+=1){let s=c.slice(0,t).join(`.`),l=o.get(`${i}|${s}`)?.[0];l&&a.push({kind:`KEY-CLASH`,title:B(`KEY-CLASH`),detail:e(`app.rules.form.keyClashGroup`,{field:V(l.component),variable:s,group:V(n)}),ids:[r(l.component),r(n)].filter(Boolean)})}}return a}function U(e,t){let n=e[t];return n?.name?.replace(/\s+/g,` `).trim()||(n?.$type?s(n.$type):t)}async function W(e){return await t(`plain`).fromXML(h(e))}async function G(e){return c((await W(e)).rootElement)}async function K(t,n){let r=[],i=[],a=0;for(let o of t){let t;try{t=await G(o)}catch(e){a+=1,i.push({file:f(o),scenarios:[]}),r.push(d(f(o),e));continue}i.push({file:f(o),scenarios:t}),n===`md`?(r.push(`## ${f(o)}`,``),t.forEach((t,n)=>{r.push(`### ${n+1}. ${t.start} → ${t.ends.join(`, `)||e(`app.output.end`)}`,``),t.decisions.forEach(t=>r.push(`- [ ] ${t.boundary?e(`app.output.boundaryFires`,{decision:t.decision,boundary:t.boundary}):e(`app.output.decisionWay`,{decision:t.decision,way:t.way})}${t.condition?` (\`${t.condition}\`)`:``}`)),r.push(e(`app.output.runsSteps`,{steps:t.steps.join(` → `)||e(`app.output.noSteps`)}),``)})):(r.push(`${f(o)} ${m(t.length,`app.output.count.scenario`)}`),t.forEach((t,n)=>{r.push(` ${String(n+1).padStart(2)}. ${[t.start,...t.steps,...t.ends].join(` → `)}`);for(let n of t.decisions){let t=n.boundary?e(`app.output.firesOn`,{boundary:n.boundary,decision:n.decision}):e(`app.output.decisionWay`,{decision:n.decision,way:n.way});r.push(` ${t}${n.condition?e(`app.output.when`,{condition:n.condition}):``}`)}}))}return n===`json`?{ok:a===0,lines:[JSON.stringify(i,null,2)]}:{ok:a===0,lines:r}}async function q(e){let{rootElement:t,elementsById:n}=await W(e);return{problems:l(t).problems,names:e=>U(n,e)}}async function J(e){let{rootElement:t}=await n(h(e));return F(t)}async function Y(e){try{return await n(h(e)),null}catch(t){if(!(t instanceof r))throw t;return{file:e,rule:`dmn`,message:t.message,severity:`error`}}}function X(e){try{let t=h(e).slice(0,4096);return t.trimStart().startsWith(`{`)&&t.includes(`"components"`)}catch{return!1}}function Z(e){return H(JSON.parse(h(e)))}async function Q(t){let n=(e,n,r,i)=>{let o=a(e,n)?.severity===`warning`;return p(e,{file:t,rule:n,message:r,severity:o?`warning`:`error`,at:i})};if(/\.dmn$/i.test(t))return(await J(t)).map(e=>n(`table`,e.kind,e.detail,{ids:[e.decision],decision:e.decision,rules:e.rules}));if(/\.form$/i.test(t))return Z(t).map(e=>n(`form`,e.kind,e.detail,{ids:e.ids}));let{problems:r,names:i}=await q(t);return r.map(t=>n(`flow`,t.kind,t.trace.length>0?e(`app.rules.web.detailWithPath`,{detail:t.detail,path:t.trace.map(i).join(` → `)}):t.detail,{ids:t.elements}))}export{X as a,Y as c,j as d,Q as i,H as l,Z as n,K as o,J as r,G as s,q as t,F as u};
@@ -1 +0,0 @@
1
- import{u as e}from"./chunk-license-BG88gpDZ.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{s as n,t as r}from"./chunk-features-C6o8of19.js";import{t as i}from"./chunk-table-BOiaGWwY.js";import"./chunk-template-Bh7oqbPl.js";import{t as a}from"./chunk-context-rCJvBM9p.js";import{t as o}from"./chunk-plural-Dn-7ulHf.js";import{n as s}from"./chunk-connections-D_wC6d0W.js";import{a as c,t as l}from"./chunk-safeWrite-RgLbdyzl.js";import{i as u,n as d,r as f,t as p}from"./chunk-apiTemplates-BOGIiYej.js";import m from"node:path";import{lstatSync as h,mkdirSync as g,readFileSync as _,statSync as v}from"node:fs";const y=10485760,b={"openapi-3":`app.cli.templates.api.format.openapi3`,"swagger-2":`app.cli.templates.api.format.swagger2`,postman:`app.cli.templates.api.format.postman`};function x(e){let n;try{let r=v(e);if(!r.isFile())return{ok:!1,lines:[t(`app.cli.templates.api.notAFile`,{path:e})]};n=r.size}catch{return{ok:!1,lines:[t(`app.cli.templates.api.notAFile`,{path:e})]}}return n>y?{ok:!1,lines:[t(`app.cli.templates.api.tooLarge`,{path:e,megabytes:y/1048576})]}:_(e,`utf8`)}function S(e){try{return h(e),!0}catch{return!1}}async function C(h,_,v){let y=v??await e(),C=r(y);if(_.write&&!C)return{ok:!1,lines:n(y,`api-templates`)};if(_.secretPrefix!==void 0&&!d(_.secretPrefix))return{ok:!1,lines:[t(`app.cli.templates.api.badSecretPrefix`,{value:_.secretPrefix})]};let w=x(h);if(typeof w!=`string`)return w;let T;try{T=u(w)}catch(e){if(e instanceof f)return{ok:!1,lines:[e.message]};throw e}let E=a(h).root,D=p(T,{limit:C?null:3,secretPrefix:_.secretPrefix,existingSecrets:s(E)}),O=m.resolve(_.out??m.join(E,`.camunda/element-templates`)),k=D.templates.length,A=k<D.total,j=D.templates.map(e=>({entry:e,file:m.join(O,e.file)})),M=new Set(j.filter(e=>S(e.file)).map(e=>e.entry.id)),N=null;if(_.write)try{g(O,{recursive:!0}),N=c(j.map(e=>({path:e.file,content:e.entry.text})),O,{replace:!0})}catch(e){if(e instanceof l)return{ok:!1,lines:[e.message]};throw e}let P=e=>t(`app.cli.templates.api.action.${_.write?M.has(e)?`replaced`:`created`:M.has(e)?`wouldReplace`:`wouldCreate`}`),F=m.relative(process.cwd(),O)||`.`;if(_.format===`json`){let e={api:{title:T.title,format:T.format,version:T.version,operations:D.total},directory:O,write:_.write,truncated:A,shown:k,total:D.total,templates:j.map(e=>({id:e.entry.id,file:e.file,operation:e.entry.operation,method:e.entry.method,path:e.entry.path,properties:e.entry.properties,action:M.has(e.entry.id)?`replace`:`create`,template:JSON.parse(e.entry.text)})),warnings:D.warnings,secrets:D.secrets,secretPrefix:D.prefix,written:N};return{ok:!0,refused:!1,lines:[JSON.stringify(e,null,2)]}}let I=i(j,{columns:[{name:`file`,header:t(`app.cli.header.file`),value:e=>m.relative(O,e.file)},{name:`operation`,header:t(`app.cli.templates.api.operation`),value:e=>`${e.entry.method} ${e.entry.path}`},{name:`inputs`,header:t(`app.cli.templates.inputs`),align:`right`,value:e=>e.entry.properties},{name:`action`,header:``,value:e=>P(e.entry.id)}]}),L=[t(`app.cli.templates.api.found`,{title:T.title,format:t(b[T.format]),operations:o(D.total,`app.cli.templates.count.operation`)}),...I];return A&&L.push(``,t(`app.cli.templates.api.freePreview`,{shown:k,total:D.total}),...n(y,`api-templates`)),D.warnings.length>0&&L.push(``,...D.warnings.map(e=>t(`app.cli.templates.warning`,{reason:e}))),D.secrets.length>0&&L.push(``,t(`app.cli.templates.api.secrets`,{names:D.secrets.join(`, `)})),L.push(``,N?t(`app.cli.templates.api.written`,{created:N.created.length,replaced:N.replaced.length,directory:F}):t(`app.cli.templates.api.dryRun`,{directory:F})),{ok:!0,lines:L}}export{C as apiTemplatesCommand};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{n as t}from"./chunk-catalog-CXJ23e-I.js";import{i as n}from"./chunk-docs-BVmrekiH.js";import{r}from"./chunk-say-CtmOlXtN.js";import{t as i}from"./chunk-report-D9pM09Nu.js";import{t as a}from"./chunk-buffers-B8jONhEB.js";import{r as o,t as s}from"./chunk-parse-B-uKGDy-.js";function c(t){return e(`app.cmmn.kind.${t}`)}function l(t){let n=t.id,r=t.target??``;switch(t.rule){case`duplicate-id`:return e(`app.cmmn.finding.duplicateId`,{id:n});case`definition-ref-missing`:return t.target===null?e(`app.cmmn.finding.definitionRefMissing`,{id:n}):e(`app.cmmn.finding.definitionRefUnknown`,{id:n,target:r});case`dangling-sentry-ref`:return t.target===null?e(`app.cmmn.finding.sentryRefMissing`,{id:n}):e(`app.cmmn.finding.danglingSentryRef`,{id:n,target:r});case`dangling-on-part`:return t.target===null?e(`app.cmmn.finding.onPartSourceMissing`,{id:n}):e(`app.cmmn.finding.danglingOnPart`,{id:n,target:r});case`task-without-target`:return e(`app.cmmn.finding.taskWithoutTarget`,{id:n,kind:c(t.target??`task`)});case`no-case-plan-model`:return n===``?e(`app.cmmn.finding.noCase`):e(`app.cmmn.finding.noCasePlanModel`,{id:n});case`plan-truncated`:return t.target===null?e(`app.cmmn.finding.planLimit`,{limit:s}):e(`app.cmmn.finding.planCycle`,{id:n,target:r})}}function u(e){return{rule:e.rule,severity:t[e.rule].severity===`error`?`error`:`warning`,title:r(`cmmn`,e.rule),message:l(e),focus:e.focus,id:e.id}}function d(e){return e.issues.map(u).sort((e,t)=>e.severity===t.severity?0:e.severity===`error`?-1:1)}function f(e){return d(o(a(e))).map(t=>i(`cmmn`,{file:e,rule:t.rule,message:t.message,severity:t.severity,ruleId:`cmmn/${t.rule}`,docs:n(`cmmn/${t.rule}`),title:t.title,...t.focus?{elements:[t.focus]}:{}}))}export{f as cmmnFindingsOf};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{n as t}from"./chunk-status-CmYxwOCn.js";import{t as n}from"./chunk-table-BOiaGWwY.js";import{r}from"./chunk-model-f8AzYUK7.js";import{n as i,o as a,t as o}from"./chunk-codeScan-C09My9xv.js";import{t as s}from"./chunk-codeIndex-N1gnP_sW.js";import{t as c}from"./chunk-context-rCJvBM9p.js";import{t as l}from"./chunk-plural-Dn-7ulHf.js";import{i as u,r as d}from"./chunk-folders-C7ae1oPV.js";import{t as f}from"./chunk-diagrams-BukAOL0g.js";import p from"node:path";import{existsSync as m,readFileSync as h,readdirSync as g,statSync as _}from"node:fs";function v(e,t){let n=u(e,t),r=[],a=e=>{for(let t of g(e,{withFileTypes:!0})){if(n(),o.has(t.name)||t.name.startsWith(`.`))continue;let s=p.join(e,t.name);t.isDirectory()?d(s)&&a(s):i.test(t.name)&&r.push(s)}};return a(e),r.sort()}function y(e,t){return`${p.relative(t,e.file)}:${e.line}`}function b(t,n,r,i,o=[],s={decisions:/* @__PURE__ */ new Set,forms:/* @__PURE__ */ new Set}){let c=[];for(let i of t){let t=e=>({severity:`fail`,message:e,where:`${i.diagram} · ${i.name}`,path:i.path,elementId:i.element,value:i.value});switch(i.kind){case`jobType`:!a({kind:`JOB_TYPE`,value:i.value})&&!n.jobTypes.has(i.value)&&c.push(t(e(`app.output.noWorkerForJobType`,{value:i.value})));break;case`topic`:n.topics.has(i.value)||c.push(t(e(`app.output.noWorkerForTopic`,{value:i.value})));break;case`class`:n.classes.has(i.value)||c.push(t(e(`app.output.classNotInProject`,{value:i.value})));break;case`bean`:n.beans.has(i.value)||c.push(t(e(`app.output.noBeanNamed`,{value:i.value})));break;case`calledElement`:r.has(i.value)||c.push(t(e(`app.output.callsNoProjectProcess`,{value:i.value})));break;case`decision`:s.decisions.has(i.value)||c.push(t(e(`app.output.callsNoProjectDecision`,{value:i.value})));break;case`form`:s.forms.has(i.value)||c.push(t(e(`app.output.showsNoProjectForm`,{value:i.value})));break;case`embeddedForm`:c.push(t(e(`app.output.showsNoEmbeddedForm`,{value:i.value})))}}let l=e=>new Set(t.filter(t=>t.kind===e).map(e=>e.value)),u=/* @__PURE__ */ new Set([`io.camunda.zeebe:userTask`,...o.flatMap(e=>[...e.matchAll(/[A-Za-z_][\w-]*/g)].map(e=>e[0]))]),d=/* @__PURE__ */ new Set([...l(`jobType`),...u]),f=/* @__PURE__ */ new Set([...l(`topic`),...u]);for(let[t,r]of n.jobTypes)d.has(t)||c.push({severity:`note`,message:e(`app.output.jobTypeNoDiagramUses`,{value:t}),where:y(r[0],i),path:r[0].file,line:r[0].line,value:t});for(let[t,r]of n.topics)f.has(t)||c.push({severity:`note`,message:e(`app.output.topicNoDiagramUses`,{value:t}),where:y(r[0],i),path:r[0].file,line:r[0].line,value:t});return c}const x={JOB_TYPE:`jobType`,TOPIC:`topic`,JAVA_CLASS:`class`,BEAN:`bean`};function S(t,n){let r=e=>(t.elements.find(t=>t.id===e)?.label??e).replace(/\s+/g,` `).trim(),i=(e,t,i)=>({diagram:n.diagram,path:n.path,element:e,name:r(e),kind:t,value:i});return{references:[...t.workers.map(t=>t.listener?{diagram:n.diagram,path:n.path,element:``,name:e(`app.output.listenerName`,{value:t.listener}),kind:x[t.kind],value:t.value}:i(t.elementId,x[t.kind],t.value)),...t.calls.map(e=>i(e.elementId,`calledElement`,e.calledProcessId)),...t.decisionUses.map(e=>i(e.elementId,`decision`,e.decisionId)),...t.formUses.filter(e=>e.linked).map(e=>i(e.elementId,`form`,e.formId)),...t.formUses.filter(e=>e.embedded&&!t.embeddedForms.includes(e.formId)).map(e=>i(e.elementId,`embeddedForm`,e.formId))],processes:t.processes.map(e=>e.id),dynamic:t.dynamic}}async function C(e,t){return S(await r(e,h(e,`utf8`)),{diagram:p.relative(t,e),path:e})}async function w(e){let t={decisions:/* @__PURE__ */ new Set,forms:/* @__PURE__ */ new Set},n=f(e,[`decision`,`form`]);for(let e of n){let n=await r(e,h(e,`utf8`));n.decisions.forEach(e=>t.decisions.add(e.id)),n.formId&&t.forms.add(n.formId)}return t}function T(e){let t=e.linked;return Array.isArray(t)?t.filter(e=>typeof e==`string`&&e.trim()!==``):[]}function E(e,t){return t.map(t=>p.resolve(e,t)).filter(t=>{let n=p.relative(e,t);return(n.startsWith(`..`)||p.isAbsolute(n))&&m(t)&&_(t).isDirectory()})}async function D(r,i,a){let o=_(r).isDirectory()?r:p.dirname(r),u=c(o),d=[o,...E(u.root,T(u.values))].flatMap(e=>v(e)).map(e=>({file:e,text:h(e,`utf8`)})),f=await s(d),m=[],g=/* @__PURE__ */ new Set,x=[];for(let e of i){let t=await C(e,o);m.push(...t.references),x.push(...t.dynamic),t.processes.forEach(e=>g.add(e))}let S=b(m,f,g,o,x,await w(o)),D=S.filter(e=>e.severity===`fail`);if(a===`json`)return{ok:D.length===0,refused:!1,lines:[JSON.stringify(S,null,2)]};let O=[e(`app.output.fromDiagramsToCode`,{sources:l(d.length,`app.output.count.sourceFile`),diagrams:l(i.length,`app.output.count.diagram`),references:l(m.length,`app.output.count.reference`)}),``],k=S.map(e=>({severity:t(e.severity),content:`${e.where} ${e.message}`})),A=n(k,{columns:[{name:`severity`,header:e(`app.cli.header.severity`),minWidth:4},{name:`content`,header:e(`app.cli.header.content`)}],headers:!1});return O.push(...A),f.unresolved.length>0&&O.push(e(`app.output.unresolvedWorker`,{workers:l(f.unresolved.length,`app.output.count.worker`),where:y(f.unresolved[0],o)})),O.push(``,D.length===0?e(`app.output.everyTaskHasCode`):e(`app.output.tasksPointAtNothing`,{count:D.length})),{ok:D.length===0,refused:!1,lines:O}}export{E as a,v as c,T as i,D as n,S as o,b as r,C as s,w as t};
@@ -1 +0,0 @@
1
- export{n as codeCommand}from"./chunk-codeLinks-C8N6e8k3.js";
@@ -1 +0,0 @@
1
- import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{t as n}from"./chunk-table-BOiaGWwY.js";import{f as r,l as i}from"./chunk-moddle-D3Ym38EZ.js";import{y as a}from"./chunk-engine-CxgdJ2wO.js";import{r as o}from"./chunk-context-rCJvBM9p.js";import{a as s,c,d as l,f as u,h as d,i as f,l as p,m,n as h,o as g,p as _,s as v,t as y,u as b}from"./chunk-editPreview-CC2vwhIW.js";import{t as x}from"./chunk-plural-Dn-7ulHf.js";import{n as S}from"./chunk-placeholderLayout-B18ekWmh.js";import{t as C}from"./chunk-diff-BhTFlCE3.js";import{n as w}from"./chunk-drawing-MbILUK8j.js";import{a as T,s as E}from"./chunk-diagram-N1chbom5.js";import{createRequire as D}from"node:module";import O from"node:path";import{tmpdir as k}from"node:os";import{mkdtempSync as A,readFileSync as j,rmSync as M,writeFileSync as N}from"node:fs";const P=D(import.meta.url),F={camunda:JSON.parse(j(P.resolve(`camunda-bpmn-moddle/resources/camunda.json`),`utf8`)),operaton:r,zeebe:JSON.parse(j(P.resolve(`zeebe-bpmn-moddle/resources/zeebe.json`),`utf8`)),flowable:i(`flowable`),activiti:i(`activiti`)},I=/^bpmn:(\w*Task|CallActivity|\w*Gateway|(Start|End|IntermediateCatch|IntermediateThrow)Event)$/;var L=class e{modeler;container;engine;conventions;importWarnings=0;constructor(e,t,n,r){this.modeler=e,this.container=t,this.engine=n,this.conventions=r}static async open(t,n,r={}){let{window:i}=await w(`modeler`),o=i.document.createElement(`div`);i.document.body.appendChild(o);let s=i.BpmnJS,c=a(n),l=new s({container:o,moddleExtensions:c===`plain`?{}:{[c]:F[c]}}),u=new e(l,o,n,r),d=l.get(`graphicsFactory`);d.update=()=>{};let{warnings:f}=await l.importXML(t);return u.importWarnings=f.length,u}dispose(){this.modeler.destroy(),this.container.remove()}async save(){return`${(await this.modeler.saveXML({format:!0})).xml}\n`}get registry(){return this.modeler.get(`elementRegistry`)}get modeling(){return this.modeler.get(`modeling`)}get moddle(){return this.modeler.get(`moddle`)}get properties(){return{modeling:this.modeling,moddle:this.moddle}}element(e){let n=this.registry.get(e);if(!n||n.type===`label`)throw new g(t(`app.cli.edit.noSuchElement`,{id:e}));return n}async apply(e,n){switch(e.op){case`add`:return this.add(e,n);case`connect`:return this.connect(e);case`set`:{let n=this.element(e.id);return s(this.properties,this.engine,n,e.properties),t(`app.cli.edit.set`,{keys:Object.keys(e.properties).join(`, `),id:n.id})}case`remove`:{let n=this.element(e.id);if(n.type===`bpmn:Process`||n.type===`bpmn:Collaboration`)throw new g(t(`app.cli.edit.isTheRoot`,{id:n.id}));return this.modeling.removeElements([n]),t(`app.cli.edit.removed`,{id:n.id})}case`move`:{let n=this.element(e.id);if(n.waypoints)throw new g(t(`app.cli.edit.isAConnection`,{id:n.id}));return this.modeling.moveElements([n],{x:e.dx,y:e.dy}),t(`app.cli.edit.moved`,{id:n.id,dx:e.dx,dy:e.dy})}}}add(e,n){let r=this.element(e.after);if(r.waypoints)throw new g(t(`app.cli.edit.isAConnection`,{id:r.id}));if(r.type===`bpmn:EndEvent`)throw new g(t(`app.cli.edit.afterEndEvent`,{id:r.id}));if(r.type===`bpmn:Participant`||r.type===`bpmn:Lane`)throw new g(t(`app.cli.edit.addAfterAnElementInside`,{id:r.id,type:m(r)}));let i=v[e.element].type,a=this.idFor(i,e.id,e.name),o=this.place(r,()=>this.modeler.get(`elementFactory`).createShape({type:i,businessObject:this.modeler.get(`bpmnFactory`).create(i,a?{id:a}:{}),...e.event?{eventDefinitionType:c[e.event]}:{}}),n),l=u(this.conventions,o.businessObject.$type);return Object.keys(l).length>0&&this.modeling.updateProperties(o,l),e.name&&this.modeling.updateProperties(o,{name:e.name}),e.properties&&s(this.properties,this.engine,o,e.properties),t(`app.cli.edit.added`,{type:m(o),id:o.id,after:r.id})}place(e,t,n){let r=this.modeler.get(`commandStack`),i=new Set(this.registry.getAll().map(e=>e.id)),a=this.modeler.get(`autoPlace`).append(e,t());if(!n)return a;let o=t=>{let n=Math.min(e.x,t.x)-160,r=Math.min(e.y,t.y)-160,i=Math.max(e.x+e.width,t.x+t.width)+160,a=Math.max(e.y+e.height,t.y+t.height)+160;return{x:n,y:r,width:i-n,height:a-r}},s=e=>n(T(this.modeler.getDefinitions(),this.moddle,e,i)),c=o(a),l=s(c);if(l<=0)return a;if(r.undo(),l-s(c)<=0)return r.redo(),a;let u=a.width,d=a.height,f=e.x+e.width+80+u/2,p=e.y+e.height/2,m=[];for(let e of[0,1,2,3,4])for(let t of[1,-1,2,-2,3,-3,4,-4,0])(e!==0||t!==0)&&m.push([f+e*(u+60),p+t*(d+60)]);let h=I.test(a.type)?this.registry.filter(t=>t.parent===e.parent&&!t.waypoints&&I.test(t.type)):[],g=e=>{let t={x:e[0]-u/2,y:e[1]-d/2,width:u,height:d};return h.filter(e=>E(t,e)).length},_={position:null,route:0,extra:1/0};for(let n of m){if(g(n)*1e3>=_.extra)continue;let i=o({x:n[0]-u/2,y:n[1]-d/2,width:u,height:d}),a=s(i),c=this.modeling.appendShape(e,t(),{x:n[0],y:n[1]},e.parent),l=c.incoming[0];for(let[t,o]of[null,...this.routes(e,c)].entries()){o&&this.modeling.updateWaypoints(l,o);let e=s(i)-a;if(e<=0)return c;e<_.extra&&(_={position:n,route:t,extra:e}),o&&r.undo()}r.undo()}if(!_.position)return this.modeler.get(`autoPlace`).append(e,t());let v=this.modeling.appendShape(e,t(),{x:_.position[0],y:_.position[1]},e.parent),y=_.route>0?this.routes(e,v)[_.route-1]:null;return y&&this.modeling.updateWaypoints(v.incoming[0],y),v}routes(e,t){let n={x:e.x+e.width/2,y:e.y+e.height/2},r={x:t.x+t.width/2,y:t.y+t.height/2},i=r.y>n.y,a=[{x:n.x,y:i?e.y+e.height:e.y},{x:n.x,y:r.y},{x:t.x,y:r.y}],o=[{x:e.x+e.width,y:n.y},{x:r.x,y:n.y},{x:r.x,y:i?t.y:t.y+t.height}],s=e.x+e.width,c=[{x:s,y:n.y},{x:s+20,y:n.y},{x:s+20,y:r.y},{x:t.x,y:r.y}],l=[{x:s,y:n.y},{x:t.x-20,y:n.y},{x:t.x-20,y:r.y},{x:t.x,y:r.y}];return n.y===r.y?[]:[c,a,o,l]}idFor(e,n,r){let i=e=>!!this.registry.get(e);if(n){if(i(n))throw new g(t(`app.cli.edit.idTaken`,{id:n}));return n}let a=r&&this.conventions.ids?_({$type:e},r,this.conventions.ids):null;return a?d(a,i):void 0}connect(e){let n=this.element(e.from),r=this.element(e.to),i=this.modeler.get(`bpmnRules`).canConnect(n,r);if(!i||i.type!==`bpmn:SequenceFlow`)throw new g(t(`app.cli.edit.noSequenceFlow`,{from:n.id,to:r.id}));let a=this.modeling.connect(n,r,{type:`bpmn:SequenceFlow`});return e.name&&this.modeling.updateProperties(a,{name:e.name}),e.condition&&s(this.properties,this.engine,a,{condition:e.condition}),t(`app.cli.edit.connect`,{from:n.id,to:r.id,id:a.id})}describe(){return this.registry.getAll().filter(e=>e.type!==`label`&&e.businessObject&&e.parent).map(e=>{let t=e.businessObject,n={id:e.id,type:m(e),name:t.name||void 0,parent:e.parent?.parent?e.parent.id:void 0,incoming:(e.incoming??[]).map(e=>e.id),outgoing:(e.outgoing??[]).map(e=>e.id),properties:f(t,this.engine)};return e.waypoints&&(n.source=e.source?.id,n.target=e.target?.id),n})}};const R=[`LOST-CONNECTION`,`SEMANTIC-DRIFT`,`BACKTRACK`,`CONTAINMENT`,`OVERLAP`,`EDGE-THROUGH-NODE`,`DETACHED-EDGE`,`LABEL-OVERLAP`,`DANGLING-CONNECTION`,`BOUNDARY-OFF-HOST`],z=e=>R.includes(e.slice(0,e.indexOf(`:`)));async function B(e){let t=A(O.join(k(),`penstock-edit-`));try{let n=O.join(t,`diagram.bpmn`);N(n,e);let{measureDiagram:r}=await import(`./chunk-diagram-jfVu0sT3.js`);return(await r(n,{asAuthored:!0})).defects.map(e=>`${e.kind}: ${e.detail}`)}finally{M(t,{recursive:!0,force:!0})}}async function V(e,t){let n=A(O.join(k(),`penstock-edit-`));try{return N(O.join(n,`before.bpmn`),e),N(O.join(n,`after.bpmn`),t),(await C(O.join(n,`before.bpmn`),O.join(n,`after.bpmn`),!0)).summary?.lines??[]}finally{M(n,{recursive:!0,force:!0})}}async function H(n,r,i={}){let a=j(n,`utf8`),s=h(n,a),c;try{c=l(r,s)}catch(e){return{ok:!1,applied:[],lines:[e instanceof Error?e.message:String(e),t(`app.cli.nothingWritten`)]}}let u=new Set(await B(a)),d=e=>{let t=e.filter(e=>!u.has(e));return t.filter(z).length*1e3+t.filter(e=>!z(e)).length},f=await L.open(a,s,y(n)),p=[],m;try{for(let e of c)p.push(await f.apply(e,d));m=await f.save()}catch(e){let n=e instanceof g?e.message:t(`app.cli.edit.editorRefused`,{reason:e instanceof Error?e.message:String(e)});return{ok:!1,applied:[],lines:[t(`app.cli.edit.operationFailed`,{number:p.length+1,message:n}),t(`app.cli.nothingWritten`)]}}finally{f.dispose()}let _=await L.open(m,s),v=_.importWarnings;_.dispose();let b=await L.open(a,s),S=b.importWarnings;if(b.dispose(),v>S)return{ok:!1,applied:p,lines:[t(`app.cli.edit.didNotReadBack`),t(`app.cli.nothingWritten`)]};let C=(await B(m)).filter(e=>!u.has(e)),w=C.filter(z),T=C.filter(e=>!z(e)),E=w.length>0&&!i.force;if(!i.dryRun&&!E){if(j(n,`utf8`)!==a)return{ok:!1,applied:p,lines:[t(`app.cli.edit.changedWhileEditing`),t(`app.cli.nothingWritten`)]};e(n,m)}let D=[...p,``,...(await V(a,m)).map(e=>` ${e}`),``,w.length===0?t(`app.cli.edit.nothingBroken`):t(`app.cli.edit.breaksTheDrawing`,{problems:x(w.length,`app.cli.edit.count.newProblem`)}),...w.map(e=>` ${e}`),...T.length>0?[t(`app.cli.edit.readsLessWell`,{things:x(T.length,`app.cli.edit.count.thing`)}),...T.map(e=>` ${e}`)]:[],i.dryRun?t(`app.cli.edit.dryRun`,{file:o(n)}):t(E?`app.cli.edit.wouldBreak`:`app.cli.wrote`,{file:o(n)})];return{ok:!E,applied:p,xml:m,lines:D}}async function U(e){let t=j(e,`utf8`),n=h(e,t),r=await L.open(await S(t),n);try{return{engine:n,elements:r.describe()}}finally{r.dispose()}}async function W(e,r){let{engine:i,elements:a}=await U(e);if(r)return{ok:!0,lines:[JSON.stringify({file:o(e),engine:i,elements:a},null,2)]};let s=a.map(e=>({type:e.type,id:e.id,name:e.name??``,flow:e.source&&e.target?`${e.source} -> ${e.target}`:``})),c=n(s,{columns:[{name:`type`,header:t(`app.cli.header.type`),minWidth:16},{name:`id`,header:t(`app.cli.header.id`),minWidth:14},{name:`name`,header:t(`app.cli.header.name`)},{name:`flow`,header:t(`app.cli.header.flow`)}]});return{ok:!0,lines:[`${o(e)} (${i})`,``,...c]}}function G(e){let t=j(e,`utf8`);return{ok:!0,lines:[JSON.stringify(b(h(e,t)),null,2)]}}function K(e,t,n){let r=Object.hasOwn(p[e],t)?p[e][t].kind:void 0;return r===`boolean`?n===`true`||n!==`false`&&n:r===`integer`&&/^\d+$/.test(n)?Number(n):n}function q(e,n){return e.map(e=>{let r=e.indexOf(`=`);if(r<=0)throw new g(t(`app.cli.edit.mustLookLikePairs`,{where:n,entry:e}));return[e.slice(0,r),e.slice(r+1)]})}function J(e,n){let[r,...i]=n.words,a=()=>{let t=[...i.slice(r===`set`?1:i.length),...n.options(`set`)],a=Object.fromEntries(q(t,`--set`).map(([t,n])=>[t,K(e,t,n)])),o=q(n.options(`input`),`--input`),s=q(n.options(`output`),`--output`);return o.length>0&&(a.inputs=Object.fromEntries(o)),s.length>0&&(a.outputs=Object.fromEntries(s)),Object.keys(a).length>0?a:void 0},o=e=>Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0));switch(r){case`add`:return o({op:`add`,element:i[0],after:n.option(`after`),event:n.option(`event`),name:n.option(`name`),id:n.option(`id`),properties:a()});case`connect`:return o({op:`connect`,from:i[0],to:i[1],name:n.option(`name`),condition:n.option(`condition`)});case`set`:return{op:`set`,id:i[0],properties:a()??{}};case`remove`:return{op:`remove`,id:i[0]};default:throw new g(t(`app.cli.edit.sayWhatToDo`))}}export{G as a,J as i,H as n,W as o,U as r,R as t};
@@ -1,5 +0,0 @@
1
- import{r as e,t}from"./chunk-translator-DNm9zRpP.js";import{C as n,E as r,S as i,T as a,_ as o,a as s,c,d as l,g as u,h as d,i as f,k as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S,v as C,w,y as T}from"./chunk-security-VgKwtohm.js";import{r as E}from"./chunk-failure-D5brrYW2.js";import D from"node:path";import{createReadStream as O,existsSync as k,realpathSync as A,statSync as j}from"node:fs";import{spawn as M}from"node:child_process";import{createServer as N}from"node:http";import{pipeline as P}from"node:stream";import{isIP as F}from"node:net";function I(e){let[t,...n]=process.platform===`darwin`?[`open`,e]:process.platform===`win32`?[`rundll32`,`url.dll,FileProtocolHandler`,e]:[`xdg-open`,e];return new Promise((e,r)=>{let i=M(t,n,{stdio:`ignore`,detached:!0});i.once(`error`,r),i.once(`spawn`,()=>{i.unref(),e()})})}function L(e=process.env,t=import.meta.dirname){let n=[e.PENSTOCK_WEB_ROOT,D.join(t,`web`),D.resolve(t,`..`,`..`,`..`,`..`,`libs`,`webview`,`build`,`web`)];for(let e of n)if(e&&k(D.join(e,`index.html`)))return e;return null}function R(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}function z(e){if(e.method!==`GET`&&e.method!==`HEAD`)return!1;let t=e.headers[`sec-fetch-dest`];return typeof t==`string`?t===`document`:/\btext\/html\b/i.test(e.headers.accept??``)}function B(n){let r=`app.cli.web.page.${n}`,i=n===`missing`?`<p><a href="/">${R(e(`app.cli.web.page.open`))}</a></p>`:``;return`<!doctype html><html lang="${R(t())}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="robots" content="noindex"><title>${R(e(`${r}.title`))} - Penstock</title><style>:root{color-scheme:light dark}body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;background:Canvas;color:CanvasText;font:13px/1.5 "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}main{max-width:480px;padding:24px}h1{margin:0 0 8px;font-size:1.2em;font-weight:600}p{margin:0 0 8px}.hint{opacity:.7}a{color:LinkText}</style></head><body><main><h1>${R(e(`${r}.title`))}</h1><p>${R(e(`${r}.text`))}</p><p class="hint">${R(e(`${r}.hint`))}</p>${i}</main></body></html>`}function V(e,t,n,r){if(!z(e))return o(t,n);let i=B(r);t.writeHead(n.status,{"Content-Type":`text/html; charset=utf-8`,"Content-Length":Buffer.byteLength(i),"Cache-Control":`no-store`}),t.end(e.method===`HEAD`?void 0:i)}const H={".html":`text/html; charset=utf-8`,".js":`text/javascript; charset=utf-8`,".mjs":`text/javascript; charset=utf-8`,".css":`text/css; charset=utf-8`,".json":`application/json; charset=utf-8`,".webmanifest":`application/manifest+json; charset=utf-8`,".svg":`image/svg+xml`,".png":`image/png`,".jpg":`image/jpeg`,".gif":`image/gif`,".ico":`image/x-icon`,".woff":`font/woff`,".woff2":`font/woff2`,".ttf":`font/ttf`,".map":`application/json; charset=utf-8`,".wasm":`application/wasm`,".txt":`text/plain; charset=utf-8`};var U=class{root;constructor(e){this.root=e&&j(D.join(e,`index.html`),{throwIfNoEntry:!1})?.isFile()?A(e):null}get available(){return this.root!==null}serve(e,t,n){if(e.method!==`GET`&&e.method!==`HEAD`)return o(t,a(405,`app.cli.web.reason.methodNotAllowed`),{Allow:`GET, HEAD`});if(!this.root)return this.missing(t);let r;try{r=decodeURIComponent(n)}catch{return o(t,a(400,`app.cli.web.reason.badPath`,{path:``}))}if(r.includes(`\0`)||r.includes(`\\`)||r.split(`/`).includes(`..`))return o(t,a(403,`app.cli.web.reason.outside`,{path:``}));let s=r.endsWith(`/`)?`${r}index.html`:r,c=D.join(this.root,s),l=j(c,{throwIfNoEntry:!1});if(l?.isDirectory()&&(c=D.join(c,`index.html`),l=j(c,{throwIfNoEntry:!1})),!l?.isFile())return V(e,t,a(404,`app.cli.web.reason.noSuchFile`),`missing`);let u;try{u=A(c)}catch{return V(e,t,a(404,`app.cli.web.reason.noSuchFile`),`missing`)}if(!i(u,this.root))return o(t,a(403,`app.cli.web.reason.outside`,{path:``}));let d=`"${l.size.toString(16)}-${Math.floor(l.mtimeMs).toString(16)}"`,f=D.extname(u)===`.html`;t.setHeader(`ETag`,d),t.setHeader(`Cache-Control`,f?`no-cache`:`private, max-age=3600`),e.headers[`if-none-match`]===d?(t.writeHead(304),t.end()):(t.writeHead(200,{"Content-Type":H[D.extname(u).toLowerCase()]??`application/octet-stream`,"Content-Length":l.size}),e.method===`HEAD`?t.end():P(O(u),t,()=>void 0))}missing(t){let n=`<!doctype html><meta charset="utf-8"><title>Penstock</title><p>${e(`app.cli.web.noPage`)}</p>`;t.writeHead(503,{"Content-Type":`text/html; charset=utf-8`,"Content-Length":Buffer.byteLength(n),"Cache-Control":`no-store`}),t.end(n)}};const W=/* @__PURE__ */ new Set([`GET`,`HEAD`,`POST`,`PUT`,`PATCH`,`DELETE`]),G=/^[\w.-]{1,64}$/;function K(e,t,n){return new Promise((r,i)=>{let a=t=>{e.off(`listening`,o),i(t)},o=()=>{e.off(`error`,a),r()};e.once(`error`,a),e.once(`listening`,o),e.listen(t,n)})}async function q(e,t,n,r){if(t===0)return await K(e,0,n),e.address().port;let i;for(let a=t;a<t+r&&a<=65535;a+=1)try{return await K(e,a,n),a}catch(e){i=e;let t=e.code;if(t!==`EADDRINUSE`&&t!==`EACCES`)throw e}throw i}function J(e,t){let n=new URLSearchParams(e.searchParams);n.delete(t);let r=n.toString();return`${e.pathname}${r?`?${r}`:``}`}async function Y(e){let t=e.host??`127.0.0.1`,i=e.token??b(),E=new h(e),D=new U(e.webRoot??null),O=/* @__PURE__ */ new Set,k=null,A=/* @__PURE__ */ new Map,j=async(e,t)=>{T(t);let n=e.headers.host;if(!k||!k.allowsHost(n))return o(t,a(403,`app.cli.web.reason.wrongHost`));let r=e.method??``;if(!W.has(r))return o(t,a(405,`app.cli.web.reason.methodNotAllowed`),{Allow:`GET, HEAD, POST, PUT, PATCH, DELETE`});let s=e.url??``;if(s.length>8192)return o(t,a(414,`app.cli.web.reason.tooLong`));if(!s.startsWith(`/`)||s.startsWith(`//`))return o(t,a(400,`app.cli.web.reason.badPath`,{path:``}));let c;try{c=new URL(s,`http://${n}`)}catch{return o(t,a(400,`app.cli.web.reason.badPath`,{path:``}))}let l=c.pathname.startsWith(`/api/`)||c.pathname.startsWith(`/vscode/`)||c.pathname.startsWith(`/web/`),u=!l&&S(e.headers,r);if(!k.allowsOrigin(typeof e.headers.origin==`string`?e.headers.origin:void 0,n)||!(y(e.headers)||u))return o(t,a(403,`app.cli.web.reason.wrongOrigin`));if(!l&&r===`GET`&&c.searchParams.has(`token`)){let n=c.searchParams.get(`token`),r=n===null?void 0:A.get(n);if(r!==void 0&&A.delete(n),!m(n,i)&&!(r!==void 0&&r>Date.now()))return V(e,t,a(401,`app.cli.web.reason.noToken`),`expired`);t.setHeader(`Set-Cookie`,g(i)),t.setHeader(`Cache-Control`,`no-store`),t.writeHead(303,{Location:J(c,`token`)}),t.end()}else{if(!f(e.headers,i))return l?o(t,a(401,`app.cli.web.reason.noToken`)):V(e,t,a(401,`app.cli.web.reason.noToken`),`expired`);if(!l)return D.serve(e,t,c.pathname);await M(e,t,c,r)}},M=async(e,t,i,s)=>{let f=l(s,i.pathname);if(f.kind===`none`)return o(t,a(404,`app.cli.web.reason.noSuchOperation`));if(f.kind===`method`)return o(t,a(405,`app.cli.web.reason.methodNotAllowed`),{Allow:f.allowed.join(`, `)});let{route:m,params:h}=f,g=E.context;t.setHeader(`X-Penstock-Project`,g.id);let _=new AbortController;t.once(`close`,()=>{t.writableEnded||_.abort()});let y=E.track(g,_),b=null,x=null;try{let n=v(m);if(n!==`none`){let t=e.headers[`x-penstock-project`];if(typeof t==`string`&&t!==``&&t!==g.id)throw a(409,`app.cli.web.reason.projectChanged`);if(n===`required`&&!g.open)throw a(409,`app.cli.web.reason.noProject`)}let o;if(s!==`GET`){let t=await u(e,m.limit??1048576);if(t.length>0){if(!/^application\/json\b/i.test(e.headers[`content-type`]??``))throw a(415,`app.cli.web.reason.notJson`);try{o=JSON.parse(t.toString(`utf8`))}catch{throw a(400,`app.cli.web.reason.notJson`)}}}else e.resume();m.operationId===`askEngine`&&typeof o==`object`&&o&&/^(POST|PUT|PATCH|DELETE)$/.test(String(o.method))&&(b=E.beginDeploy());let l=e.headers[`x-penstock-client`],f={body:o,query:i.searchParams,params:h,headers:e.headers,signal:_.signal,client:typeof l==`string`&&G.test(l)?l:`shared`,resource:c(e.headers),workspace:E},p=Promise.resolve().then(()=>m.run(f,g));p.catch(()=>void 0);let y=m.held?await p:await Promise.race([p,new Promise((e,t)=>{x=setTimeout(()=>{_.abort(),t(a(504,`app.cli.web.reason.tookTooLong`))},r),x.unref()})]);if(_.signal.aborted&&t.destroyed){y instanceof d&&y.body.destroy();return}if(y instanceof d){t.setHeader(`Cache-Control`,`no-store`),t.writeHead(200,y.headers),P(y.body,t,()=>void 0);return}C(t,200,y)}catch(e){if(e instanceof p)return void t.destroy();if(t.destroyed)return;o(t,e instanceof n?e:w(e))}finally{x&&clearTimeout(x),y(),b?.()}},F=N({maxHeaderSize:16384,requestTimeout:6e4,headersTimeout:15e3,keepAliveTimeout:5e3},(e,t)=>{j(e,t).catch(e=>{t.headersSent?t.destroy():o(t,w(e))})});F.maxConnections=512,F.on(`connection`,e=>{O.add(e),e.once(`close`,()=>O.delete(e))}),F.on(`clientError`,(e,t)=>{t.writable?t.end(`HTTP/1.1 400 Bad Request\r
2
- Connection: close\r
3
- Content-Length: 0\r
4
- \r
5
- `):t.destroy()});let I=e.port??8765,L;try{L=await q(F,I,t,e.portSearch??100)}catch(e){throw E.shutdown(),e}k=s(t,L);let R=_(t)?`127.0.0.1`:x(t),z=`http://${R===`0.0.0.0`?`127.0.0.1`:R}:${L}`,B=null;return{server:F,get context(){return E.context},workspace:E,token:i,host:t,port:L,requestedPort:I,url:z,entry:`${z}/?token=${i}`,launch(){let e=Date.now();for(let[t,n]of A)n<=e&&A.delete(t);let t=b();return A.set(t,e+6e4),`${z}/?token=${t}`},close(){return B??=new Promise(e=>{E.shutdown(),F.close(()=>e()),F.closeIdleConnections(),setTimeout(()=>{for(let e of O)e.destroy();F.closeAllConnections()},500).unref();for(let e of O)e.destroyed||e.setTimeout(1e3,()=>e.destroy())}),B}}}const X=/^[A-Za-z0-9]([A-Za-z0-9.-]{0,251}[A-Za-z0-9])?$/;function Z(e,t){e.write(`${t}\n`)}function Q(e){return e===void 0?8765:/^\d{1,5}$/.test(e)&&Number(e)<=65535?Number(e):null}function $(e){if(e===void 0)return`127.0.0.1`;let t=e.replace(/^\[|\]$/g,``);return F(t)!==0||X.test(t)?t:null}function ee(t){return new Promise(n=>{let r=!1,i=()=>{r&&process.exit(130),r=!0,Z(process.stderr,e(`app.cli.web.stopping`)),t.close().finally(n)};process.on(`SIGINT`,i),process.on(`SIGTERM`,i),t.server.once(`close`,()=>{process.off(`SIGINT`,i),process.off(`SIGTERM`,i),n()})})}async function te(t,n){let r=t===void 0?void 0:D.resolve(t);if(r!==void 0){let t;try{t=j(r)}catch{return{ok:!1,lines:[E(r)]}}if(!t.isDirectory())return{ok:!1,lines:[e(`app.cli.web.notAFolder`,{folder:r})]}}let i=Q(n.port);if(i===null)return{ok:!1,lines:[e(`app.cli.web.badPort`,{value:n.port??``})]};let a=$(n.host);if(a===null)return{ok:!1,lines:[e(`app.cli.web.badHost`,{value:n.host??``})]};let o;try{o=await Y({folder:r,host:a,port:i,webRoot:L(),openLink:I,say:e=>Z(process.stdout,e)})}catch(t){return t.code===`EADDRINUSE`?{ok:!1,lines:[e(`app.cli.web.noFreePort`,{from:i,to:i+99})]}:{ok:!1,lines:[e(`app.cli.web.cannotListen`,{reason:t instanceof Error?t.message:String(t)})]}}let s=ee(o);return _(a)||Z(process.stderr,e(`app.cli.web.exposed`,{host:a})),o.port!==i&&i!==0&&Z(process.stderr,e(`app.cli.web.portTaken`,{port:i,used:o.port})),Z(process.stdout,o.context.open?e(`app.cli.web.serving`,{folder:o.context.folder}):e(`app.cli.web.servingWelcome`)),Z(process.stdout,` ${o.entry}`),Z(process.stdout,e(`app.cli.web.pressCtrlC`)),L()===null&&Z(process.stderr,e(`app.cli.web.noPageWarning`)),n.open&&I(o.launch()).catch(()=>Z(process.stderr,e(`app.cli.web.browserFailed`))),await s,{ok:!0,lines:[]}}export{te as webCommand};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-editPreview-CC2vwhIW.js";import{a as t,i as n,n as r,o as i}from"./chunk-command-Bqlbgo-2.js";export{r as applyOperations,e as engineOf,n as operationFromWords,t as schemaCommand,i as showCommand};
@@ -1,5 +0,0 @@
1
- import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{n,t as r}from"./chunk-status-CmYxwOCn.js";import{t as i}from"./chunk-table-BOiaGWwY.js";import{a}from"./chunk-moddle-D3Ym38EZ.js";import{a as o,r as s,t as c}from"./chunk-model-f8AzYUK7.js";import{r as l,t as u}from"./chunk-unreadableDiagram-CcrctihL.js";import{n as d,r as f,s as p,t as m}from"./chunk-workerVariables-DIDoUpHF.js";import{t as h}from"./chunk-list-XuNpvC6j.js";import{i as ee,n as g,o as _,r as v,s as te,t as y}from"./chunk-variableChecks-KnECGMR3.js";import{i as b,n as x,r as ne}from"./chunk-docs-BVmrekiH.js";import{r as S,t as C}from"./chunk-say-CtmOlXtN.js";import{f as w}from"./chunk-load-rfn3E0t5.js";import{a as T,n as re,r as ie,s as ae}from"./chunk-failure-D5brrYW2.js";import{r as E,t as D}from"./chunk-context-rCJvBM9p.js";import{n as oe,r as se,t as O}from"./chunk-report-D9pM09Nu.js";import{t as ce}from"./chunk-rules-Tds3uL4b.js";import{t as le}from"./chunk-plural-Dn-7ulHf.js";import{t as ue}from"./chunk-placeholderLayout-B18ekWmh.js";import{t as k}from"./chunk-buffers-B8jONhEB.js";import{a as de,c as fe,i as pe}from"./chunk-codeLinks-C8N6e8k3.js";import{t as me}from"./chunk-connections-D_wC6d0W.js";import A from"node:path";import{tmpdir as he}from"node:os";import{existsSync as ge,mkdtempSync as _e,readFileSync as j,rmSync as ve}from"node:fs";const ye=`penstock-baseline.json`,be=`penstock-migration-baseline.json`;function xe(e){return e.replace(/\\/g,`/`)}function Se(e,t){return xe(A.isAbsolute(t)?A.relative(e,t):t)}function M(e,t,n=!1){return`${n?xe(t.file):Se(e,t.file)}::${t.rule}::${t.message}`}function Ce(e,n){let r;try{r=JSON.parse(j(e,`utf8`))}catch(e){throw Error(t(`app.output.notValid`,{file:n,what:`JSON`,reason:l(u(e))}))}let i=r?.findings;if(!Array.isArray(i))throw Error(t(`app.output.notValid`,{file:n,what:`baseline`,reason:`it has no list of findings.`}));return i.filter(e=>typeof e?.file==`string`&&typeof e.rule==`string`&&typeof e.message==`string`)}function N(e,t,n=ye){let r=A.join(e,n);if(!ge(r))return{fresh:t,known:[],fixed:[]};let i=Ce(r,n),a=new Set(i.map(t=>M(e,t,!0))),o=new Set(t.map(t=>M(e,t)));return{fresh:t.filter(t=>!a.has(M(e,t))),known:t.filter(t=>a.has(M(e,t))),fixed:[...a].filter(e=>!o.has(e))}}function P(t,n,r=ye){let i=A.join(t,r),a={generated:(/* @__PURE__ */ new Date()).toISOString(),findings:n.map(e=>({file:Se(t,e.file),rule:e.rule,message:e.message})).sort((e,t)=>`${e.file}${e.rule}${e.message}`.localeCompare(`${t.file}${t.rule}${t.message}`))};return e(i,`${JSON.stringify(a,null,2)}\n`),i}function we(e,t){return t.map(t=>{let n=d(t);return{file:A.join(e,t.file),rule:t.rule,message:f(t),severity:t.severity,line:t.line,ruleId:`connections/${t.rule}`,docs:b(`connections/${t.rule}`),title:S(`connections`,t.rule),...n?{where:n}:{},...t.elementId?{elements:[t.elementId]}:{}}})}function Te(e){let n=e.detail;switch(e.rule){case`no-model-call-limit`:return t(`app.agents.finding.noModelCallLimit`,{agent:n.agent});case`tool-without-description`:return t(`app.agents.finding.toolWithoutDescription`,{tool:n.tool,agent:n.agent});case`fromai-incomplete`:return t(`app.agents.finding.fromaiIncomplete.${n.missing}`,{parameter:n.parameter,tool:n.tool});case`tool-filter-matches-nothing`:return t(`app.agents.finding.filter.${n.reason}`,{client:n.client,scope:t(`app.agents.scope.${n.scope}`)});case`duplicate-tool-names`:return t(n.kind===`client`?`app.agents.finding.duplicateClient`:`app.agents.finding.duplicateTool`,{name:n.name,other:n.other,agent:n.agent});case`adhoc-without-agent`:return t(`app.agents.finding.adhocWithoutAgent`,{name:n.name});case`mcp-client-no-config`:return t(`app.agents.finding.mcpClientNoConfig`,{client:n.client,agent:n.agent});case`plain-text-secret`:return t(`app.agents.finding.plainTextSecret`,{field:n.field,agent:n.agent});case`deprecated-template`:return t(`app.agents.finding.deprecatedTemplate`,{agent:n.agent,version:n.version,replacement:n.replacement})}}const F=`io.camunda.connectors.agenticai.aiagent.v1`,I=`io.camunda.connectors.agenticai.aiagent.jobworker.v1`,Ee=`io.camunda.connectors.agenticai.ai-agent-task.v2`,De=`io.camunda.connectors.agenticai.ai-agent-subprocess.v2`,Oe=/* @__PURE__ */ new Set([F,I]),ke=/* @__PURE__ */ new Set([F,I,Ee,De]),Ae=/* @__PURE__ */ new Set([`io.camunda.connectors.agenticai.mcp.client.v0`,`io.camunda.connectors.agenticai.mcp.remoteclient.v0`]);function je(e,t,n){let r=e===null?null:/^\s*(\d+)\.(\d+)/.exec(e);return!r||Number(r[1])*1e3+Number(r[2])>=t*1e3+n}function L(e,t,n,r,i={}){return{rule:e,severity:t,elementId:n,agentId:r,detail:i}}function Me(e){let t=e.maxModelCalls;return t===null||t.trim()===``||t.trim()===`=`||t.trim()===`=null`}function Ne(e){if(e.included.kind!==`list`)return null;if(e.included.names.length===0)return`empty`;if(e.excluded.kind!==`list`)return null;let t=new Set(e.excluded.names);return e.included.names.every(e=>t.has(e))?`allExcluded`:null}function Pe(e,t){return e===null&&t===null?`both`:e===null?`description`:t===null?`type`:null}function Fe(e,t,n){let r=[];!t.remote&&t.clientId!==null&&n.mcpStatus?.(t.clientId)===`undefined`&&r.push(L(`mcp-client-no-config`,`error`,t.elementId,e.id,{client:t.clientId,name:t.name,agent:e.name}));for(let n of t.filters){let i=Ne(n);i!==null&&r.push(L(`tool-filter-matches-nothing`,`warning`,t.elementId,e.id,{client:t.name,scope:n.scope,reason:i}))}return r}function Ie(e){return e.kind===`task`?Ee:De}function Le(e,t={}){let n=[];for(let r of e.agents){Me(r)&&n.push(L(`no-model-call-limit`,`warning`,r.id,r.id,{agent:r.name})),r.legacyTemplate&&je(e.platformVersion,8,10)&&n.push(L(`deprecated-template`,`warning`,r.id,r.id,{agent:r.name,template:r.template.id??``,version:String(r.template.version??``),replacement:Ie(r)}));for(let e of r.credentials)e.plain&&n.push(L(`plain-text-secret`,`error`,r.id,r.id,{agent:r.name,field:e.target}));let i=/* @__PURE__ */ new Map;for(let e of r.tools){e.description===null&&n.push(L(`tool-without-description`,`warning`,e.id,r.id,{tool:e.name,agent:r.name}));let t=e.id.toLowerCase(),a=i.get(t);a===void 0?i.set(t,e.id):n.push(L(`duplicate-tool-names`,`warning`,e.id,r.id,{name:e.id,other:a,agent:r.name,kind:`tool`}));for(let t of e.parameters){let i=Pe(t.description,t.type);t.complete||i===null||n.push(L(`fromai-incomplete`,`warning`,e.id,r.id,{parameter:t.name,tool:e.name,missing:i}))}}let a=/* @__PURE__ */ new Map;for(let e of r.mcpClients)n.push(...Fe(r,e,t)),!(e.remote||e.clientId===null)&&(a.has(e.clientId)?n.push(L(`duplicate-tool-names`,`warning`,e.elementId,r.id,{name:e.clientId,other:a.get(e.clientId),agent:r.name,kind:`client`})):a.set(e.clientId,e.elementId))}for(let t of e.orphans)n.push(L(`adhoc-without-agent`,`warning`,t.id,null,{name:t.name}));return n}const Re={n:`
2
- `,t:` `,r:`\r`,'"':`"`,"\\":`\\`,"'":`'`};function R(e){let t=e.trim().replace(/^=\s*/,``).trim();if(t.length<2||t[0]!==`"`||t[t.length-1]!==`"`)return null;let n=``;for(let e=1;e<t.length-1;e+=1){let r=t[e];if(r===`"`)return null;if(r===`\\`){if(e+=1,e>=t.length-1)return null;n+=Re[t[e]]??t[e]}else n+=r}return n}function z(e,t){let n=t+1;for(;n<e.length;)if(e[n]===`\\`)n+=2;else if(e[n]===`"`)return n+1;else n+=1;return-1}function ze(e,t){let n=[],r=0,i=t+1,a=t+1;for(;a<e.length;){let t=e[a];if(t===`"`){let t=z(e,a);if(t<0)return null;a=t}else{if(t===`(`||t===`[`||t===`{`)r+=1;else if(t===`)`||t===`]`||t===`}`){if(r===0)return t===`)`?(n.push(e.slice(i,a)),{args:n,end:a+1}):null;--r}else t===`,`&&r===0&&(n.push(e.slice(i,a)),i=a+1);a+=1}}return null}function Be(e){let t=e.trim(),n=/^toolCall\.([\w.]+)$/.exec(t);return n?n[1]:t}function B(e){let t=(e??``).trim();return t!==``&&t!==`null`}function Ve(e){if(!B(e))return null;let t=R(e);return t===null?``:t.trim()===``?null:t}function He(e){if(!B(e))return null;let t=/(?:^|[{,\s])type\s*:\s*("(?:[^"\\]|\\.)*")/.exec(e);return t?R(t[1]):null}function Ue(e){let t=``,n=0;for(;n<e.length;)if(e[n]===`"`){let r=z(e,n);if(r<0)return t+e.slice(n);t+=e.slice(n,r).replace(/[^"]/g,` `),n=r}else t+=e[n],n+=1;return t}function We(e){let t=[],n=Ue(e),r=/\bfromAi\s*\(/g,i;for(;(i=r.exec(n))!==null;){let n=ze(e,i.index+i[0].length-1);if(!n)continue;let[a,o,s,c,l]=n.args,u=B(c);t.push({name:Be(a??``),description:Ve(o),type:Ve(s)??(u?He(c):null),schema:u,options:B(l)}),r.lastIndex=n.end}return t}function Ge(e){let t=e.trim();if(!t.startsWith(`=`))return null;let n=t.slice(1).trim();if(n.length<2||n[0]!==`[`||n[n.length-1]!==`]`)return null;let r=n.slice(1,-1).trim();if(r===``)return[];let i=[],a=0;for(;a<r.length;){for(;r[a]===` `||r[a]===`
3
- `||r[a]===` `||r[a]===`\r`;)a+=1;if(r[a]!==`"`)return null;let e=z(r,a);if(e<0)return null;let t=R(r.slice(a,e));if(t===null)return null;for(i.push(t),a=e;r[a]===` `||r[a]===`
4
- `||r[a]===` `||r[a]===`\r`;)a+=1;if(a>=r.length)break;if(r[a]!==`,`)return null;a+=1}return i}function V(e,t){return e?.extensionElements?.values?.find(e=>e.$type===t)}function H(e){let t=/* @__PURE__ */ new Map;for(let n of V(e,`zeebe:IoMapping`)?.inputParameters??[])typeof n.target==`string`&&!t.has(n.target)&&t.set(n.target,typeof n.source==`string`?n.source:``);return t}function U(e){let t=e?.$attrs??{},n=e?.modelerTemplate??t[`zeebe:modelerTemplate`]??null,r=e?.modelerTemplateVersion??t[`zeebe:modelerTemplateVersion`],i=r==null||r===``?null:Number(r);return{id:typeof n==`string`?n:null,version:i!==null&&Number.isFinite(i)?i:null}}function W(e){let t=/* @__PURE__ */ new Map;for(let n of V(e,`zeebe:Properties`)?.properties??[])typeof n.name==`string`&&t.set(n.name,typeof n.value==`string`?n.value:``);return t}function Ke(e){let t=(e?.documentation??[]).map(e=>typeof e.text==`string`?e.text:``).join(`
5
- `).trim();return t===``?null:t}function qe(e){return e===void 0||e.trim()===``?null:{source:e,text:R(e)}}function G(e){return e===void 0||e.trim()===``?null:e}function Je(e){return e.replace(/^bpmn:/,``)}function K(e,t,n,r,i){if(typeof e==`string`){e.includes(`fromAi`)&&n.push({text:e,where:t});return}if(typeof e!=`object`||!e||i>12||r.has(e))return;if(r.add(e),Array.isArray(e)){for(let a of e)K(a,t,n,r,i+1);return}let a=e,o=typeof a.target==`string`?a.target:typeof a.key==`string`?a.key:typeof a.name==`string`?a.name:t;for(let[e,t]of Object.entries(a))e.startsWith(`$`)||K(t,o,n,r,i+1)}function Ye(e){let t=[];K(e.extensionElements,``,t,/* @__PURE__ */ new WeakSet,0);let n=/* @__PURE__ */ new Map,r=[];for(let{text:e,where:i}of t)for(let t of We(e)){let e=t.description!==null&&t.type!==null,a={name:t.name,description:t.description,type:t.type,schema:t.schema,where:i,complete:e},o=n.get(t.name);o?(o.description===null&&a.description!==null&&(o.description=a.description),o.type===null&&a.type!==null&&(o.type=a.type),o.schema=o.schema||a.schema,o.complete=o.description!==null&&o.type!==null):(n.set(t.name,a),r.push(a))}return r}function Xe(e){let t=[];return K(e.extensionElements,``,t,/* @__PURE__ */ new WeakSet,0),t.flatMap(({text:e,where:t})=>We(e).map(e=>({call:e,where:t})))}function Ze(e,t){let n=e.get(t);if(n===void 0||n.trim()===``)return{kind:`none`};let r=Ge(n);return r===null?{kind:`dynamic`}:{kind:`list`,names:r}}function Qe(e){let t=[];for(let[n,r]of[[`tool`,`data.connectorMode.toolModeFilters`],[`standalone`,`data.connectorMode.standaloneModeFilters`]])for(let i of[`tools`,`resources`,`prompts`]){let a=Ze(e,`${r}.${i}.included`),o=Ze(e,`${r}.${i}.excluded`);(a.kind!==`none`||o.kind!==`none`)&&t.push({scope:i,mode:n,included:a,excluded:o})}return t}function $e(e){if(e===void 0||e.trim()===``)return{id:null,dynamic:!1};let t=e.trim();if(!t.startsWith(`=`))return{id:t,dynamic:!1};let n=R(t);return n===null?{id:null,dynamic:!0}:{id:n,dynamic:!1}}function q(e){let t=U(e).id,n=H(e),r=W(e).get(`io.camunda.agenticai.gateway.type`)===`mcpClient`,i=t!==null&&Ae.has(t);if(!i&&!(r&&(n.has(`data.client.clientId`)||[...n.keys()].some(e=>e.startsWith(`data.transport.`)))))return null;let a=t===`io.camunda.connectors.agenticai.mcp.remoteclient.v0`||!i&&[...n.keys()].some(e=>e.startsWith(`data.transport.`)),o=$e(n.get(`data.client.clientId`)),s=n.get(`data.transport.type`),c=a?s===`sse`?`sse`:`http`:null,l=a?G(n.get(`data.transport.${c}.url`)):null;return{elementId:e.id,name:typeof e.name==`string`&&e.name.trim()!==``?e.name:e.id,remote:a,clientId:a?null:o.id,dynamicClientId:!a&&o.dynamic,transport:c,url:l,filters:Qe(n)}}function et(e){return/^bpmn:(?:\w*Task|SubProcess|AdHocSubProcess|Transaction|CallActivity)$/.test(e)}function tt(e){let t=G(e.get(`provider.type`)),n=null,r=null;for(let[t,i]of e)n===null&&/^provider\.[^.]+\.model\.(?:model|deploymentName)$/.test(t)&&(n=G(i)),r===null&&/^provider\.[^.]+\.backend\.type$/.test(t)&&(r=G(i));return{provider:t,model:n,backend:r}}const nt=/(?:apiKey|secretKey|accessKey|clientSecret|jsonKey|token|password)$/;function rt(e){let t=e.trim();return t===``||/\{\{\s*secrets\./.test(t)||/camunda\.secrets/.test(t)?!1:!t.startsWith(`=`)||R(t)!==null&&R(t).trim()!==``}function it(e){let t=[];for(let[n,r]of e)nt.test(n)&&r.trim()!==``&&t.push({target:n,plain:rt(r)});return t}function J(e){let t=[],n=e=>{for(let r of e.flowElements??[])t.push(r),r.flowElements&&n(r)};return n(e),t}function at(e,t){let n=[];for(let r of e.flowElements??[])r.id!==t&&et(r.$type)&&r.triggeredByEvent!==!0&&((r.incoming??[]).length>0||q(r)===null&&W(r).get(`io.camunda.agenticai.gateway.type`)!==`mcpClient`&&n.push({id:r.id,name:typeof r.name==`string`&&r.name.trim()!==``?r.name:r.id,kind:Je(r.$type),template:U(r).id,description:Ke(r),parameters:Ye(r)}));return n}function ot(e){let t=V(e,`zeebe:AgentDefinition`)?.agentType;if(t===`aiAgentSubProcess`)return`subprocess`;if(t===`aiAgentTask`)return`task`;let n=U(e).id;return n===null||!ke.has(n)?null:n===`io.camunda.connectors.agenticai.aiagent.jobworker.v1`||n===`io.camunda.connectors.agenticai.ai-agent-subprocess.v2`?`subprocess`:`task`}function st(e){return e.some(e=>e.$type===`bpmn:UserTask`&&(e.incoming??[]).length>0)}function Y(e){return typeof e.name==`string`&&e.name.trim()!==``?e.name:e.id}function ct(e){let t=e?.$attrs??{},n=Object.keys(t).find(e=>e.endsWith(`:executionPlatformVersion`)),r=n?t[n]:null;return typeof r==`string`&&r.trim()!==``?r.trim():null}function lt(e){let t=[];for(let n of e?.rootElements??[])if(n.$type===`bpmn:Process`&&t.push(n),n.$type===`bpmn:Collaboration`)for(let e of n.participants??[])e.processRef&&t.push(e.processRef);return[...new Set(t)]}function ut(e,t,n,r){let i=H(e),a=U(e),o=t===`task`?G(i.get(`data.tools.containerElementId`)):null,s=o!==null&&!o.trim().startsWith(`=`)?o.trim():null,c=t===`subprocess`?e:s===null?null:r.get(s)??null,l=c?J(c):[],u=l.map(q).filter(e=>e!==null),d=tt(i);return{id:e.id,name:Y(e),kind:t,processId:n.id,template:a,legacyTemplate:a.id!==null&&Oe.has(a.id),provider:d.provider,model:d.model,backend:d.backend,systemPrompt:qe(i.get(`data.systemPrompt.prompt`)),userPrompt:qe(i.get(`data.userPrompt.prompt`)),maxModelCalls:G(i.get(`data.limits.maxModelCalls`)),memory:{storage:G(i.get(`data.memory.storage.type`)),contextWindowSize:G(i.get(`data.memory.contextWindowSize`))},response:{format:G(i.get(`data.response.format.type`)),parseJson:G(i.get(`data.response.format.parseJson`)),schema:G(i.get(`data.response.format.schema`))!==null},humanApproval:st(l),container:c?{id:c.id,name:Y(c)}:null,containerDynamic:t===`task`&&o!==null&&s===null,containerMissing:t===`task`&&s!==null&&c===null,tools:c?at(c,e.id):[],mcpClients:u,credentials:it(i)}}function dt(e){return e.$type===`bpmn:AdHocSubProcess`?W(e).get(`io.camunda.agenticai.toolContainer`)===`true`||J(e).some(e=>q(e)!==null||Xe(e).length>0):!1}function ft(e){return J(e)}function pt(e){let t=[],n=[],r=[];for(let i of lt(e)){let e=ft(i),a=new Map(e.filter(e=>typeof e.id==`string`).map(e=>[e.id,e])),o=/* @__PURE__ */ new Set,s=!1;for(let n of e){let e=ot(n);if(e===null)continue;let r=ut(n,e,i,a);t.push(r),r.container&&o.add(r.container.id),(r.containerDynamic||r.containerMissing)&&(s=!0)}for(let t of e)ot(t)===null&&!s&&!o.has(t.id)&&dt(t)&&n.push({id:t.id,name:Y(t),processId:i.id});let c=new Set(t.filter(e=>e.processId===i.id).flatMap(e=>e.mcpClients.map(e=>e.elementId)));for(let t of e){let e=q(t);e!==null&&!c.has(e.elementId)&&r.push(e)}}return{agents:t,orphans:n,standaloneMcp:r,platformVersion:ct(e)}}function mt(e,t){let n=t?.get(e);if(n)return n;let r=()=>`unverifiable`;try{let t=new Map(me(e).rows.filter(e=>e.kind===`mcp-client`).map(e=>[e.name,e.status]));r=e=>t.get(e)??`unverifiable`}catch{r=()=>`unverifiable`}return t?.set(e,r),r}function ht(e,t){return{file:e,rule:t.rule,message:Te(t),severity:t.severity,ruleId:`agents/${t.rule}`,docs:b(`agents/${t.rule}`),title:S(`agents`,t.rule),elements:[t.elementId]}}async function gt(e,t){let n=await a(k(e));if(!n)return[];let r=pt(n);if(r.agents.length===0&&r.orphans.length===0)return[];let i=r.agents.some(e=>e.mcpClients.length>0)?mt(D(e).root,t):void 0;return Le(r,i?{mcpStatus:i}:{}).map(t=>ht(e,t))}const _t={"connections/mcp-client-undefined":`agents/mcp-client-no-config`,"agents/tool-without-description":`compat/agent-tool-documentation`};function vt(e){let t=/* @__PURE__ */ new Set;for(let n of e)for(let e of n.elements??[])t.add(`${n.ruleId??n.rule}\0${e}`);return e.filter(e=>{let n=_t[e.ruleId??``];return n===void 0||!(e.elements??[]).some(e=>t.has(`${n}\0${e}`))})}async function yt(){return import(`./chunk-diagram-jfVu0sT3.js`)}const X=[`drawing`,`rules`,`flow`,`variables`,`connections`];function bt(e){if(e===void 0)return{sections:X};let t=e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0),n=[],r;for(let e of t)X.includes(e)?n.push(e):r===void 0&&(r=e);return{sections:n,unknown:r}}const Z=/\.bpmn(\.xml|20\.xml)?$/i,xt=/\.form$/i,St=/\.(cmmn|cmmn11\.xml)$/i;async function Ct(e){let n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map,o=e=>{for(let t of e??[]){if(!t?.id)continue;let e=typeof t.name==`string`?t.name.trim():``;e&&n.set(t.id,e),r.set(t.id,C(String(t.$type??``))),t.sourceRef&&t.targetRef&&i.set(t.id,[t.sourceRef.id,t.targetRef.id]),o(t.flowElements)}};try{let t=await a(k(e));for(let e of t?.rootElements??[]){e.id&&n.set(e.id,typeof e.name==`string`&&e.name.trim()||``);for(let t of e.participants??[])t.id&&t.name&&n.set(t.id,String(t.name).trim()),o(t.processRef?.flowElements);o(e.flowElements)}}catch{return e=>e}let s=e=>n.get(e)||(r.get(e)?t(`app.rules.drawing.theElement`,{type:r.get(e)}):e);return e=>{let r=n.get(e);if(r)return r;let a=i.get(e);return a?t(`app.rules.drawing.theConnection`,{from:s(a[0]),to:s(a[1])}):s(e)}}async function Q(e){let t=k(e);if(!ue(t)&&await a(t))return[];let{measureDiagram:n}=await yt(),r=await n(e,{asAuthored:!0}),i=await Ct(e);return r.defects.map(t=>{let n=t.elements??[];return O(`drawing`,{file:e,rule:t.kind,message:t.detail,severity:ne(`drawing`,t.kind)?.severity===`warning`?`warning`:`error`,title:S(`drawing`,t.kind),...n.length>0?{where:h(n.map(i)),elements:n}:{}})})}const wt={error:0,warning:1,note:2};function $(e){let n=e.elements??[],i=n.length>0?` (${n.join(`, `)})`:``,a=e.message.endsWith(i)&&i?e.message.slice(0,-i.length):e.message,o=e.title?`${e.title}${e.where?` - ${e.where}`:``}`:a;return[` ${r(e.severity).padEnd(7)} ${o}`,` ${` `.repeat(7)} ${e.ruleId??e.rule}${n.length>0?` ${n.join(`, `)}`:``}${e.policy?` ${t(`app.policy.findingTag`,{name:e.policy})}`:``}`]}function Tt(e,n){let r=!1;try{r=k(e).trim()===``}catch{r=!1}let i=c(e),a=T(n);return{file:e,rule:`file-unreadable`,message:re(n)?ie(e):a===null?r?t(`app.output.theFileIsEmpty`):t(`app.output.notValidFile`,{what:i,reason:l(u(n))}):`${e}: ${a}`,severity:`error`}}async function Et(e,t){let{ruleFindings:r}=await import(`./chunk-lint-7KJFxyCN.js`),{flowFindings:i,unreadableDmn:a}=await import(`./chunk-analyze-BG-rlggA.js`),{allows:o,upsell:s}=await import(`./chunk-features-DzAP8JmI.js`),{currentLicense:c}=await import(`./chunk-license-C9ZOkCg8.js`),l=new Set(t.sections??X),u=await c(t.offline?{fetch:(()=>Promise.reject(/* @__PURE__ */ Error(`offline`)))}:{}),d=t.flowAllowed??o(u),f=t.variablesAllowed??o(u),p=[],m=/* @__PURE__ */ new Map,h=/* @__PURE__ */ new Map,ee=/* @__PURE__ */ new Map,g=[],_=[],v=0,y=!1;for(let o of e){let e=[];try{if(St.test(o))l.has(`rules`)&&e.push(...(await import(`./chunk-cmmnFindings-S2TGSnEp.js`)).cmmnFindingsOf(o));else{if(Z.test(o)&&l.has(`drawing`)&&e.push(...await Q(o)),Z.test(o)&&l.has(`rules`)&&(e.push(...await r(o,{builtInOnly:t.builtInRulesOnly===!0})),e.push(...await gt(o,ee))),l.has(`flow`)){let t=/\.dmn$/i.test(o)?await a(o):null;t?e.push(t):d||xt.test(o)?e.push(...await i(o)):y=!0}if(Z.test(o)&&l.has(`variables`)){let t=D(o).values,n=te(t);n.mode!==`off`&&f?e.push(...await At(o,n,m)):n.mode!==`off`&&typeof t.variables?.check==`string`&&p.length===0&&await kt(o,m)&&p.push(...s(u,`variable-checks`))}Z.test(o)&&l.has(`connections`)&&e.push(...Dt(o,h).filter(e=>A.resolve(e.file)===A.resolve(o)))}}catch(t){e.splice(0,e.length,Tt(o,t))}e.splice(0,e.length,...vt(e));let c=e.filter(e=>e.elements&&e.title),b=ce(e.filter(e=>!(e.elements&&e.title)).map(e=>({...e,elements:e.elements??[]})),c.map(e=>({kind:e.rule,elements:e.elements??[]})));e.splice(0,e.length,...[...c,...b].sort((e,t)=>wt[e.severity]-wt[t.severity])),g.push(...e);let x=e.filter(e=>e.severity===`error`);if(e.length===0)_.push(`${n(`ok`).padEnd(5)} ${E(o)}`);else{x.length>0&&(v+=1),_.push(`${(x.length>0?n(`fail`):n(`note`)).padEnd(5)} ${E(o)}`);for(let t of e.slice(0,40))_.push(...$(t))}}if(l.has(`connections`)){let t=new Set(e.map(e=>A.resolve(e))),r=/* @__PURE__ */ new Map;for(let e of[...h.values()].flat())t.has(A.resolve(e.file))||Z.test(e.file)||/\.json$/i.test(e.file)||r.set(e.file,[...r.get(e.file)??[],e]);for(let[e,t]of r){g.push(...t),_.push(`${n(`note`).padEnd(5)} ${E(e)}`);for(let e of t.slice(0,40))_.push(...$(e))}}let b=e.length>0?D(e[0]).root:process.cwd(),x=e.length>0?D(e[0]).policy:null,ne=x&&x.manifest&&x.refused.length===0?x.manifest.baselines.map(e=>`${x.dir}/${e}`):[],S=g,C=[];for(let e of ne){let t=N(b,S,e);C.push(...t.known),S=t.fresh}let w=t.baseline?N(b,S):null,T=w?{...w,known:[...w.known,...C]}:C.length>0?{fresh:S,known:C,fixed:[]}:null;return{findings:g,reported:T?T.fresh:g,comparison:T,failed:v,flowSkipped:y,offer:p,lines:_,root:b,policy:x}}function Dt(e,t){let n=D(e).root,r=t.get(n);if(r)return r;let i=[];try{i=we(n,me(n).findings)}catch{i=[]}return t.set(n,i),i}function Ot(e,t){let n=D(e),r=t.get(n.root);if(r)return r;let i=[n.root,...de(n.root,pe(n.values))].flatMap(e=>fe(e)).map(e=>({path:e,text:j(e,`utf8`)}));return t.set(n.root,i),i}async function kt(e,t){let n=j(e,`utf8`),r=await s(e,n);if(r.workers.length===0)return!1;let i=r.workers.map(e=>({kind:e.kind===`JAVA_CLASS`?`CLASS`:e.kind,value:e.value,elementId:e.elementId}));return(await m(Ot(e,t),i)).fetches.length>0}async function At(e,t,n){let r=j(e,`utf8`),i=await s(e,r);if(i.workers.length===0)return[];let c=await a(r),l=i.workers.map(e=>({kind:e.kind===`JAVA_CLASS`?`CLASS`:e.kind,value:e.value,elementId:e.elementId})),u=await m(Ot(e,n),l),d=_({model:p(i,u),definitions:c,order:o(c),types:u.types??[],inputs:t.inputs,linked:new Set(u.fetches.map(e=>e.elementId)),mode:t.mode,entitled:!0});return[...d.fields.map(t=>O(`code`,{file:e,rule:`variable-field`,message:y(t),severity:`warning`,title:S(`code`,`variable-field`),where:g(t),elements:[t.elementId]})),...d.names.map(t=>O(`code`,{file:e,rule:`variable-unknown`,message:v(t.name),severity:`warning`,title:S(`code`,`variable-unknown`),where:ee(),elements:[t.elementId]}))]}async function jt(e,n){let r=await Et(e,n),i=n.format===`text`&&r.policy?w(r.policy):null,a=[...i?[i,``]:[],...r.lines];if(r.offer.length>0&&n.format===`text`&&a.push(``,...r.offer),n.format===`text`&&r.findings.some(e=>e.docs)&&a.push(``,t(`app.output.everyRuleHasAPage`,{url:x})),r.flowSkipped&&n.format===`text`&&a.push(``,t(`app.output.flowAnalysisLeftOut`)),n.updateBaseline){let e=P(r.root,r.findings);return{ok:!0,lines:[t(`app.output.wroteFindings`,{file:E(e),findings:le(r.findings.length,`app.output.count.finding`)})]}}let o=r.comparison?r.reported.some(e=>e.severity===`error`):r.failed>0;if(n.format===`sarif`)return{ok:!o,refused:!1,lines:[se(r.reported,`check`)]};if(n.format===`github`)return{ok:!o,refused:!1,lines:oe(r.reported)};if(n.format===`json`)return{ok:!o,refused:!1,lines:[JSON.stringify(r.reported,null,2)]};if(r.comparison){let e=[r.reported.length>0?t(`app.output.newFindings`,{count:r.reported.length}):t(`app.output.nothingNew`),t(`app.output.accepted`,{count:r.comparison.known.length}),r.comparison.fixed.length>0?t(`app.output.fixedSinceTheBaseline`,{count:r.comparison.fixed.length}):``].filter(Boolean);a.push(``,e.join(`, `)),r.comparison.fixed.length>0&&a.push(t(`app.output.runUpdateBaseline`))}return{ok:!o,refused:!1,lines:a}}async function Mt(e,r){let{measureDiagram:a}=await yt(),o=[],s=0,c=0,l=r?``:_e(A.join(he(),`penstock-layout-`));try{for(let[i,u]of e.entries()){let e=r?u:A.join(l,`${i}.bpmn`),d,f;try{d=j(u,`utf8`),await a(u,{outPath:e}),f=j(e,`utf8`)}catch(e){c+=1,o.push({status:n(`fail`),file:E(u),details:ae(E(u),e)});continue}f===d?o.push({status:n(`same`),file:E(u),details:t(`app.output.noChange`)}):(s+=1,o.push({status:n(r?`wrote`:`change`),file:E(u),details:t(r?`app.output.reflowedLayout`:`app.output.wouldReflowLayout`)}))}}finally{l&&ve(l,{recursive:!0,force:!0})}let u=i(o,{columns:[{name:`status`,header:t(`app.cli.header.status`),minWidth:6},{name:`file`,header:t(`app.cli.header.file`),minWidth:24},{name:`details`,header:t(`app.cli.header.details`)}]});return!r&&s>0&&u.push(``,t(`app.output.layoutAlwaysReflows`)),{ok:c===0,refused:!1,lines:u}}export{N as _,$ as a,H as c,Le as d,I as f,be as g,we as h,Q as i,pt as l,Te as m,jt as n,Mt as o,F as p,Et as r,bt as s,X as t,U as u,P as v};
@@ -1,4 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{r as t}from"./chunk-commands-B4PoZbpX.js";import{t as n}from"./chunk-diff-BhTFlCE3.js";import r from"node:path";const i=`<!-- penstock-report -->`;function a(e){return e.map(e=>`- ${e}`).join(`
2
- `)}async function o(o){let s=[i,e(`app.cli.report.heading`),``];if(o.changed.length===0&&o.removed.length===0)return s.push(e(`app.cli.report.nothingChanged`)),{markdown:`${s.join(`
3
- `)}\n`,clean:!0};o.removed.length>0&&s.push(e(`app.cli.report.removed`),``,a(o.removed),``);let c=new Map(o.changed.map(e=>[e.after,e.relative])),l=(await t(o.changed.map(e=>e.after),{format:`json`,baseline:!0,updateBaseline:!1})).reported;if(s.push(e(`app.cli.report.check`),``),l.length===0)s.push(e(`app.cli.report.cleanAgainstTheBaseline`),``);else{let e=/* @__PURE__ */ new Map;for(let t of l){let n=c.get(t.file)??r.basename(t.file);e.set(n,[...e.get(n)??[],`\`${t.rule}\` ${t.message}`])}for(let[t,n]of e)s.push(`**${t}**`,``,a(n),``)}let u=/* @__PURE__ */ new Map;s.push(e(`app.cli.report.whatChanged`),``);for(let t of o.changed){if(!t.before){s.push(`**${t.relative}** - ${e(`app.cli.report.newFile`)}`,``);continue}let r=await n(t.before,t.after,!0);if(!r.ok){s.push(`**${t.relative}**`,``,a(r.lines),``);continue}let i=r.summary?.lines??[];r.summary&&u.set(t.relative,r.summary.markersAfter),s.push(`**${t.relative}**`,``,i.length>0?a(i):e(`app.cli.report.onlyTheDrawingMoved`),``)}let d=[];for(let e of o.changed){let t=await o.picture(e,u.get(e.relative)??{});t&&d.push({relative:e.relative,url:t})}if(s.push(e(`app.cli.report.howItLooks`),``),d.length===0&&o.picturesLink)s.push(e(`app.cli.report.thePicturesLink`,{link:o.picturesLink}),``);else if(d.length===0)s.push(e(`app.cli.report.noPictures`),``);else{s.push(e(`app.cli.report.outlined`),``);for(let e of d)s.push(`**${e.relative}**`,``,`![${e.relative}](${e.url})`,``)}return{markdown:`${s.join(`
4
- `)}\n`,clean:l.length===0}}export{o as n,i as t};
@@ -1 +0,0 @@
1
- import{u as e}from"./chunk-license-BG88gpDZ.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{s as n,t as r}from"./chunk-features-C6o8of19.js";import{t as i}from"./chunk-table-BOiaGWwY.js";import{i as a}from"./chunk-workerVariables-DIDoUpHF.js";import{t as o}from"./chunk-list-XuNpvC6j.js";import{r as s,t as c}from"./chunk-context-rCJvBM9p.js";import{a as l,h as u}from"./chunk-commands-B4PoZbpX.js";import{t as d}from"./chunk-plural-Dn-7ulHf.js";import{t as f}from"./chunk-connections-D_wC6d0W.js";import p from"node:path";import{existsSync as m,statSync as h}from"node:fs";function g(e,t){return`${e.file}:${e.line}${t?` (${t})`:``}`}function _(e){return e.length<=2?e.join(`, `):`${e.slice(0,2).join(`, `)} +${e.length-2}`}function v(e){return i(e,{columns:[{name:`name`,header:t(`app.cli.connections.header.name`),value:e=>e.name},{name:`status`,header:t(`app.cli.connections.header.status`),value:e=>t(`app.cli.connections.status.${e.status}`)},{name:`uses`,header:t(`app.cli.connections.header.usedIn`),value:e=>_(e.uses.map(e=>g(e,e.elementId)))},{name:`defined`,header:t(`app.cli.connections.header.definedIn`),value:e=>_(e.definedIn.map(e=>g(e)))}]})}function y(e,n,r){let i=[e.environment===null?t(`app.cli.connections.title`,{folder:s(n)}):t(`app.cli.connections.titleIn`,{folder:s(n),environment:e.environment})];i.push(e.environments.length>0?t(`app.cli.connections.environments`,{list:o(e.environments)}):t(`app.cli.connections.noEnvironments`));let c=e.rows.filter(e=>e.kind===`secret`),u=e.rows.filter(e=>e.kind===`mcp-client`);e.rows.length===0&&i.push(``,t(`app.cli.connections.nothingReferenced`)),c.length>0&&i.push(``,t(`app.cli.connections.secrets`),...v(c)),u.length>0&&i.push(``,t(`app.cli.connections.clients`),...v(u)),e.rows.length>0&&!e.providesSecrets&&c.length>0&&i.push(``,t(`app.cli.connections.noSources`)),e.rows.length>0&&!e.providesClients&&u.length>0&&i.push(``,t(`app.cli.connections.noClientSources`));for(let n of e.opaque)i.push(t(`app.cli.connections.opaque`,{from:n.from,place:g(n)}));if(e.unused.length>0){i.push(``,t(`app.cli.connections.unused`));for(let t of e.unused)i.push(` ${a(t.kind)} ${t.name} ${g(t)}`)}if(e.reconcile){let{target:n,against:r,missing:o,onlyInTarget:s}=e.reconcile;if(i.push(``,t(`app.cli.connections.reconcile`,{target:n,against:r})),o.length===0)i.push(t(`app.cli.connections.nothingMissing`,{target:n}));else{i.push(t(`app.cli.connections.missingHeading`,{target:n,against:r}));for(let e of o)i.push(` ${a(e.kind)} ${e.name}${e.referenced?` ${t(`app.cli.connections.usedByDiagram`)}`:``}`)}if(s.length>0){i.push(t(`app.cli.connections.onlyHeading`,{target:n}));for(let e of s)i.push(` ${a(e.kind)} ${e.name}`)}}if(r.length>0){i.push(``,t(`app.cli.connections.findings`,{count:r.length}));for(let e of r.slice(0,60))i.push(` ${g({file:p.relative(n,e.file).split(p.sep).join(`/`),line:e.line??1})}`,...l(e))}return i.push(``,d(e.sources.length,`app.cli.connections.count.file`)),i}async function b(i,a,s){if(!m(i)||!h(i).isDirectory())return{ok:!1,lines:[t(`app.cli.web.notAFolder`,{folder:i})]};if(a.against!==void 0&&a.environment===void 0)return{ok:!1,lines:[t(`app.cli.connections.againstNeedsEnvironment`)]};if(a.against!==void 0){let t=s??await e();if(!r(t))return{ok:!1,lines:n(t,`connections-environments`)}}let l=c(i).root,d=f(l,{environment:a.environment??null,against:a.against??null});for(let e of[a.environment,a.against])if(e!==void 0&&!d.environments.includes(e))return{ok:!1,lines:[d.environments.length>0?t(`app.cli.connections.unknownEnvironment`,{environment:e,known:o(d.environments)}):t(`app.cli.connections.noEnvironmentsKnown`,{environment:e})]};let p=u(l,d.findings),g=!d.findings.some(e=>e.severity===`error`);return a.format===`json`?{ok:g,refused:!1,lines:[JSON.stringify({...d,findings:d.findings.map((e,t)=>({...e,message:p[t].message,docs:p[t].docs}))},null,2)]}:{ok:g,refused:!1,lines:y(d,l,p)}}export{b as connectionsCommand};
@@ -1 +0,0 @@
1
- import{f as e}from"./chunk-license-BG88gpDZ.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{t as n}from"./chunk-table-BOiaGWwY.js";import{a as r,i,n as a,o,r as s,t as c}from"./chunk-connectors-Dk9qoDwI.js";import l from"node:path";import{closeSync as u,constants as d,lstatSync as f,mkdirSync as p,openSync as m,readFileSync as h,readdirSync as g,realpathSync as _,renameSync as v,rmSync as y,writeFileSync as b}from"node:fs";import x from"node:http";const S=/^[A-Za-z0-9._-]{1,128}$/,C=d.O_NOFOLLOW??0;let w=!1;function T(){if(w)return;w=!0;let e=process.env;if(!(e.HTTPS_PROXY||e.https_proxy||e.HTTP_PROXY||e.http_proxy))return;let t=x.setGlobalProxyFromEnv;typeof t==`function`&&t.call(x)}async function E(e,t){let n=e.body?.getReader();if(!n)return/* @__PURE__ */ new Uint8Array;let r=[],i=0;for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)return await n.cancel().catch(()=>void 0),null;r.push(a)}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}function D(e){return{status:0,body:/* @__PURE__ */ new Uint8Array,failure:e}}function O(n,r=fetch,i=2e4){let a=l.join(n??e(process.env),`connectors`);function o(){return p(a,{recursive:!0}),_(a)}function x(e,t){return t===e||t.startsWith(e+l.sep)}function w(e){let n=e.split(`/`);if(n.length>16||n.some(e=>!S.test(e)||e===`.`||e===`..`))throw Error(t(`app.cli.connectors.notInside`,{path:e}));let r=o(),i=r;for(let a of n){i=l.join(i,a);let n=f(i,{throwIfNoEntry:!1});if(!n)break;if(n.isSymbolicLink())throw Error(t(`app.cli.connectors.linkAt`,{path:e}));if(!x(r,_(i)))throw Error(t(`app.cli.connectors.notInside`,{path:e}))}return l.join(r,...n)}function O(e){let n=o(),r=n;for(let i of l.relative(n,e).split(l.sep).filter(Boolean)){r=l.join(r,i);let e=f(r,{throwIfNoEntry:!1});if(e?.isSymbolicLink())throw Error(t(`app.cli.connectors.holdsALink`));if(!e)p(r);else if(!e.isDirectory())throw Error(t(`app.cli.connectors.fileInTheWay`))}}function k(e){return{entries:f(e,{throwIfNoEntry:!1})?.isDirectory()?g(e).sort():[]}}function A(e){let n=f(e,{throwIfNoEntry:!1});if(!n?.isFile())return{content:null};if(n.size>67108864)throw Error(t(`app.cli.connectors.tooLarge`));let r=m(e,d.O_RDONLY|C);try{return{content:h(r)}}finally{u(r)}}function j(e,n){let r=n??/* @__PURE__ */ new Uint8Array;if(r.byteLength>67108864)throw Error(t(`app.cli.connectors.contentTooLarge`));if(f(e,{throwIfNoEntry:!1})?.isDirectory())throw Error(t(`app.cli.connectors.directoryInTheWay`));O(l.dirname(e));let i=m(e,d.O_WRONLY|d.O_CREAT|d.O_TRUNC|C,420);try{b(i,r)}finally{u(i)}return{}}function M(e,n){if(!f(e,{throwIfNoEntry:!1}))throw Error(t(`app.cli.connectors.nothingToMove`));if(f(n,{throwIfNoEntry:!1}))throw Error(t(`app.cli.connectors.destinationExists`));return O(l.dirname(n)),v(e,n),{}}return{async fetch(e){if(!s(e))throw Error(t(`app.cli.connectors.notACatalogueUrl`,{url:e}));T();let n;try{n=await r(e,{redirect:`manual`,headers:{"User-Agent":`Penstock CLI`},signal:AbortSignal.timeout(i)})}catch(e){let n=e.cause?.message;return D(n??(e instanceof Error?e.message:t(`app.cli.connectors.githubUnreachable`)))}if(n.status>=300&&n.status<400)return await n.body?.cancel().catch(()=>void 0),D(t(`app.cli.connectors.redirect`));if(Number(n.headers.get(`content-length`)??0)>67108864)return await n.body?.cancel().catch(()=>void 0),D(t(`app.cli.connectors.responseTooLarge`));try{let e=await E(n,c);return e?{status:n.status,body:e}:D(t(`app.cli.connectors.responseTooLarge`))}catch(e){return D(e instanceof Error?e.message:t(`app.cli.connectors.interrupted`))}},async file(e,n,r,i){if(n===``){if(e!==`list`)throw Error(t(`app.cli.connectors.listOnly`));return k(o())}let a=w(n);switch(e){case`exists`:return{pathExists:f(a,{throwIfNoEntry:!1})!==void 0};case`read`:return A(a);case`write`:return j(a,r);case`delete`:return y(a,{recursive:!0,force:!0}),{};case`list`:return k(a);case`mkdirs`:return O(a),{};case`rename`:if(!i)throw Error(t(`app.cli.connectors.renameNeedsTarget`));return M(a,w(i));default:throw Error(t(`app.cli.connectors.unknownOperation`,{operation:String(e)}))}}}}async function k(e,s,c=O()){if(e[0]===`resolve`){if(!e[1])return{ok:!1,lines:[t(`app.cli.connectors.resolveUsage`)]};if(e[2]!==void 0&&!Number.isInteger(Number(e[2])))return{ok:!1,lines:[t(`app.cli.connectors.notAVersion`,{version:e[2]})]}}let{catalog:l,error:u,nextAttempt:d}=await a(c,{forceRefresh:s.has(`--refresh`)});if(!l)return{ok:!1,lines:[t(`app.cli.connectors.downloadFailed`,{reason:u??t(`app.cli.connectors.unknownReason`),when:d?t(`app.cli.connectors.retriedAfter`,{when:d}):``})]};let f=u?[t(`app.cli.connectors.usingOlder`,{ref:l.ref,reason:u})]:[];if(e[0]===`resolve`){let n=e[1],a=e[2]===void 0?void 0:Number(e[2]),s=a===void 0?r(l,n):o(l,n,a);if(!s){let e=a===void 0?n:t(`app.cli.connectors.idVersion`,{id:n,version:a});return{ok:!1,lines:[...f,t(`app.cli.connectors.noTemplate`,{which:e,ref:l.ref})]}}let u=await i(c,s);return u?{ok:!0,lines:[...f,JSON.stringify(u,null,2)]}:{ok:!1,lines:[...f,t(`app.cli.connectors.cacheMissing`,{id:s.id})]}}let p=[...f,t(`app.cli.connectors.summary`,{ref:l.ref,current:l.newest.length,older:l.templates.length})],m=n(l.newest,{columns:[{name:`name`,header:t(`app.cli.header.name`)},{name:`id`,header:t(`app.cli.header.id`)},{name:`version`,header:t(`app.cli.header.version`),value:e=>e.version===null?``:`v${e.version}`},{name:`elementType`,header:t(`app.cli.header.type`),value:e=>e.elementType??``},{name:`engine`,header:t(`app.cli.header.engine`),value:e=>e.engines?.camunda?`Camunda ${e.engines.camunda}`:``}]});return{ok:!0,lines:[...p,``,...m]}}export{k as connectorsCommand};
@@ -1 +0,0 @@
1
- import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{n}from"./chunk-status-CmYxwOCn.js";import{t as r}from"./chunk-table-BOiaGWwY.js";import{_ as i,f as a,n as o,r as s}from"./chunk-engine-CxgdJ2wO.js";import{s as c}from"./chunk-failure-D5brrYW2.js";import{r as l}from"./chunk-context-rCJvBM9p.js";import{readFileSync as u}from"node:fs";const d=a(`camunda-7`),f=a(`operaton`),p=[[s[`camunda-7`].bpmn,s.operaton.bpmn],[s[`camunda-7`].dmn,s.operaton.dmn]],m=`${i(`operaton`)}.`,h=[...new Set(o.map(e=>`${i(e)}.`))],g=new RegExp(String.raw`(<${d}:[^>]*[^/]>)([^<]*)(</${d}:)`,`g`),_=new RegExp(String.raw`(^</?|\s)${d}:(?=[A-Za-z])`,`g`),v=RegExp(`xmlns:${d}=`,`g`);function y(e){return h.reduce((e,t)=>e.split(t).join(m),e)}function b(e){return p.some(([t])=>e.includes(`xmlns:${d}="${t}"`))?p.reduce((e,[t,n])=>e.split(t).join(n),e.replace(g,(e,t,n,r)=>`${t}${y(n)}${r}`)).replace(/<[^>]*>/g,e=>y(e).replace(_,`$1${f}:`).replace(v,`xmlns:${f}=`)):e}async function x(i,a,o){if(a===void 0)return{ok:!1,lines:[t(`app.cli.convert.targetMissing`)]};if(a!==`operaton`)return{ok:!1,lines:[t(`app.cli.convert.unknownTarget`,{target:a})]};let s=[],d=!1;for(let r of i){let i;try{i=u(r,`utf8`)}catch(e){d=!0,s.push({status:n(`fail`),file:l(r),details:c(l(r),e)});continue}let a=b(i);a===i?s.push({status:n(`skip`),file:l(r),details:t(`app.cli.convert.unchanged`)}):o?(e(r,a),s.push({status:n(`updated`),file:l(r),details:t(`app.cli.convert.changed`)})):s.push({status:n(`skip`),file:l(r),details:t(`app.cli.convert.wouldChange`)})}let f=r(s,{columns:[{name:`status`,minWidth:8},{name:`file`},{name:`details`,wrap:!0}],headers:!1});return{ok:!d,lines:f}}export{x as convertCommand};
@@ -1,3 +0,0 @@
1
- import{i as e,r as t}from"./chunk-translator-DNm9zRpP.js";import{t as n}from"./chunk-own-Cn7Ki4ij.js";import{a as r,r as i,s as a,t as o}from"./chunk-moddle-D3Ym38EZ.js";import{f as s,n as c}from"./chunk-model-f8AzYUK7.js";import{i as l,n as u,t as d}from"./chunk-types-mxHL9XQt.js";import{o as f}from"./chunk-xml-rMelkRIV.js";import{n as p,r as m,t as h}from"./chunk-juel-CgGCf_MV.js";import{a as g}from"./chunk-sections-Co5ovFf4.js";const _=`https://docs.camunda.io/docs/guides/migrating-from-camunda-7/`,v=`${_}migration-journey/migrate/`,y=`${_}code-conversion/`,b=`https://docs.camunda.io/docs/components/modeler/bpmn/bpmn-coverage/`,x=`https://docs.camunda.io/docs/components/concepts/job-workers/`,S=`https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/`,C=`https://docs.camunda.io/docs/components/concepts/execution-listeners/`,w=`https://docs.camunda.io/docs/components/concepts/user-task-listeners/`,T=`https://docs.camunda.io/docs/components/modeler/forms/camunda-forms-reference/`,E=`https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/`,D=`https://docs.camunda.io/docs/components/concepts/messages/`,O=`https://docs.camunda.io/docs/components/modeler/dmn/`,k=`https://docs.camunda.io/docs/guides/migrating-from-camunda-7/migration-tooling/data-migrator/`,A={"java-class":{severity:`error`,conversion:`automatic`,title:`Java class {className} becomes the job type {jobType}`,detail:`Camunda 8 does not run Java inside the engine. A service task creates a job, and a job worker in your application picks it up.`,action:`Write a job worker for {jobType}; Penstock generates one from the class.`,link:x},"delegate-expression":{severity:`error`,conversion:`automatic`,title:`Delegate {delegate} becomes the job type {jobType}`,detail:`Camunda 8 cannot look up a Spring bean. The task creates a job, and a job worker picks it up.`,action:`Write a job worker for {jobType}; Penstock generates one from the bean.`,link:x},"delegate-expression-dynamic":{severity:`error`,conversion:`manual`,title:`The delegate is chosen by the expression {expression}`,detail:`The bean is decided while the process runs, and a Camunda 8 job type is fixed or a FEEL expression over variables.`,action:`Give the task a job type, or a FEEL expression that picks one from a variable.`,link:x},expression:{severity:`error`,conversion:`automatic`,title:`The expression {expression} becomes the job type {jobType}`,detail:`Camunda 8 cannot call a bean method from the diagram. The call moves into a job worker.`,action:`Write a job worker for {jobType} that makes the call {expression} made.`,link:x},"expression-unknown":{severity:`error`,conversion:`manual`,title:`The expression {expression} runs code inside the engine`,detail:`Camunda 8 evaluates FEEL and nothing else in the diagram, so this expression has no counterpart.`,action:`Move what it does into a job worker, or into a FEEL output mapping if it only computes a value.`,link:x},"external-task":{severity:`warning`,conversion:`automatic`,title:`The external task topic {topic} becomes the job type {jobType}`,detail:`External tasks and jobs are the same idea. The worker changes client: the Camunda 7 external task client becomes a Camunda 8 job worker.`,action:`Move the handler for {topic} to a job worker; Penstock generates one from the handler.`,link:y},"external-task-priority":{severity:`info`,conversion:`automatic`,title:`The external task priority is dropped`,detail:`Camunda 8 jobs of one type are handed out in the order they are created.`,action:`Nothing to do, unless the order mattered; then give urgent work its own job type.`},connector:{severity:`error`,conversion:`manual`,title:`The Camunda 7 connector {connector} has no Camunda 8 counterpart`,detail:`Camunda 7 connectors (http-connector, soap-http-connector) are not part of Camunda 8. Camunda 8 has its own connectors, configured through element templates.`,action:`Apply the Camunda 8 REST or SOAP connector template to the task, or write a job worker.`,link:`https://docs.camunda.io/docs/components/connectors/protocol/rest/`},"field-injection":{severity:`warning`,conversion:`review`,title:`The injected fields {fields} become task headers`,detail:`Camunda 8 has no field injection. Fixed values travel with the job as custom headers, which the worker reads.`,action:`Read them in the worker from the job's custom headers.`,link:x},"field-injection-expression":{severity:`error`,conversion:`manual`,title:`The injected field {field} is an expression`,detail:`A task header is a fixed text; it cannot be evaluated while the process runs.`,action:`Pass the value as an input mapping with a FEEL expression, and read it in the worker as a variable.`,link:x},async:{severity:`info`,conversion:`automatic`,title:`Asynchronous continuation is dropped`,detail:`Camunda 8 has no transactions spanning steps: every job and every wait is its own unit, so asyncBefore and asyncAfter mean nothing there.`,action:`Nothing to do.`,link:v},retries:{severity:`warning`,conversion:`review`,title:`The retry cycle {cycle} becomes {retries} retries`,detail:`Camunda 8 counts retries on the task; how long to wait between them is decided by the worker when it fails the job.`,action:`Set the back-off in the worker's fail command if the interval mattered.`,link:x},"retries-dropped":{severity:`warning`,conversion:`automatic`,title:`The retry cycle {cycle} is dropped`,detail:`Only tasks that create a job carry retries in Camunda 8.`,action:`Nothing to do, unless this element relied on retrying; then check how it fails on Camunda 8.`},"job-priority":{severity:`info`,conversion:`automatic`,title:`The job priority {priority} is carried over`,detail:`Camunda 8 has job priorities from 8.8.`,action:`Nothing to do.`,since:`8.8`},"job-priority-dropped":{severity:`warning`,conversion:`automatic`,title:`The job priority {priority} is dropped`,detail:`The Camunda 8 version this converts for has no job priorities.`,action:`Nothing to do, unless the order mattered; then give urgent work its own job type.`},"input-output":{severity:`info`,conversion:`automatic`,title:`The input and output mapping becomes a FEEL mapping`,detail:`Camunda 8 maps variables with FEEL expressions; each Camunda 7 parameter becomes one.`,action:`Nothing to do.`,link:`https://docs.camunda.io/docs/components/concepts/variables/`},"input-output-manual":{severity:`error`,conversion:`manual`,title:`The mapping of {name} cannot be converted`,detail:`{reason}`,action:`Write the mapping as a FEEL expression.`,link:S},"input-output-script":{severity:`error`,conversion:`manual`,title:`The mapping of {name} runs a {format} script`,detail:`Camunda 8 maps variables with FEEL only.`,action:`Write the mapping as a FEEL expression, or compute the value in a job worker.`,link:S},condition:{severity:`info`,conversion:`automatic`,title:`The condition {expression} becomes {feel}`,detail:`Camunda 8 conditions are FEEL expressions.`,action:`Nothing to do.`,link:S},"expression-review":{severity:`warning`,conversion:`review`,title:`{expression} became {feel}`,detail:`{reason}`,action:`Check the FEEL expression means the same with the values this process sees.`,link:S},"expression-manual":{severity:`error`,conversion:`manual`,title:`The expression {expression} cannot be converted`,detail:`The converter stopped because {reason}.`,action:`Write it as a FEEL expression.`,link:S},"script-condition":{severity:`error`,conversion:`manual`,title:`The condition is a {format} script`,detail:`Camunda 8 conditions are FEEL expressions only.`,action:`Write the condition in FEEL.`,link:S},"script-task":{severity:`error`,conversion:`manual`,title:`The {format} script cannot run in Camunda 8`,detail:`Camunda 8 runs a script task as a FEEL expression or as a job. Groovy, JavaScript and Python scripts have no engine to run in.`,action:`Rewrite the script as a FEEL expression, or turn the task into a job worker that runs the code.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/`},"script-task-feel":{severity:`info`,conversion:`automatic`,title:`The FEEL script becomes a FEEL expression`,detail:`Camunda 8 runs a FEEL script task inside the engine, with its result in {variable}.`,action:`Nothing to do.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/`},"script-resource":{severity:`error`,conversion:`manual`,title:`The script is read from {resource}`,detail:`Camunda 8 does not load scripts from resources.`,action:`Rewrite the script as a FEEL expression, or turn the task into a job worker.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/`},"execution-listener":{severity:`error`,conversion:`automatic`,title:`The {event} listener {name} becomes the job type {jobType}`,detail:`Camunda 8 execution listeners are jobs as well: the process waits until a worker completes them.`,action:`Write a job worker for {jobType}; it runs before the element continues, so keep it quick.`,since:`8.6`,link:C},"execution-listener-unsupported":{severity:`error`,conversion:`manual`,title:`The {event} listener {name} has no Camunda 8 counterpart`,detail:`{reason}`,action:`Move what the listener does into a task of its own or into the worker before it.`,link:C},"task-listener":{severity:`error`,conversion:`automatic`,title:`The {event} task listener {name} becomes the job type {jobType}`,detail:`Camunda 8 task listeners are jobs that the user task waits for, and they can correct or deny what happens.`,action:`Write a job worker for {jobType}.`,since:`8.8`,link:w},"task-listener-unsupported":{severity:`error`,conversion:`manual`,title:`The {event} task listener {name} has no Camunda 8 counterpart`,detail:`{reason}`,action:`Move what the listener does into a job worker around the task, or into the application that works the task.`,link:w},"user-task":{severity:`info`,conversion:`automatic`,title:`The user task becomes a Camunda user task`,detail:`Camunda 8 manages the task in the engine, with its assignee, candidates, dates and priority.`,action:`Nothing to do in the diagram; the task list application changes to Tasklist or to the Camunda 8 user task API.`,link:E},"user-task-expression":{severity:`warning`,conversion:`review`,title:`The {name} {expression} became {feel}`,detail:`{reason}`,action:`Check the value on Camunda 8.`,link:E},"user-task-priority-range":{severity:`warning`,conversion:`review`,title:`The priority {priority} is outside 0 to 100`,detail:`Camunda 8 user task priorities run from 0 to 100.`,action:`Rescale the priority.`,link:E},"user-task-priority-dropped":{severity:`warning`,conversion:`automatic`,title:`The priority {priority} is dropped`,detail:`The Camunda 8 version this converts for has no user task priority.`,action:`Nothing to do, unless the task list sorted by it.`},"form-embedded":{severity:`error`,conversion:`manual`,title:`The embedded form {formKey} has no Camunda 8 counterpart`,detail:`Camunda 8 Tasklist shows Camunda Forms only; HTML forms and their JavaScript do not carry over.`,action:`Rebuild the form as a Camunda Form and link it, or keep your own task list application and pass the key as an external reference.`,link:T},"form-generated":{severity:`warning`,conversion:`review`,title:`The generated form becomes the Camunda Form {form}`,detail:`Penstock writes a Camunda Form with one field per form field, and links it. Validation and properties the form fields had are carried over where Camunda Forms have them.`,action:`Open {form} and check it looks and validates as the old one did.`,link:T},"form-generated-partly":{severity:`warning`,conversion:`review`,title:`Part of the generated form did not carry over: {lost}`,detail:`Camunda Forms have no counterpart for it.`,action:`Rebuild that part in the form editor.`,link:T},"form-camunda":{severity:`info`,conversion:`automatic`,title:`The Camunda Form {form} is linked by its id`,detail:`Camunda 8 links a form by its id and deploys it with the diagram.`,action:`Deploy the form with the diagram.`,link:T},"form-camunda-unknown":{severity:`warning`,conversion:`review`,title:`The Camunda Form {form} was not found in the project`,detail:`Camunda 8 links a form by the id inside it, and Penstock could not read that id. The file name was used instead.`,action:`Check the form id in the diagram matches the id inside the form.`,link:T},"form-binding-version":{severity:`error`,conversion:`manual`,title:`The form is bound to version {version}`,detail:`Camunda 8 binds a form by latest, by deployment or by version tag, not by version number.`,action:`Bind it by deployment or give the form a version tag.`,link:T},"form-external":{severity:`warning`,conversion:`review`,title:`The form key {formKey} becomes an external reference`,detail:`Camunda 8 passes an external reference through to the task list, as Camunda 7 passed the form key.`,action:`Check your task list application reads the external reference.`,since:`8.4`,link:T},"assignment-review":{severity:`warning`,conversion:`review`,title:`The {name} {expression} is a list in Camunda 7`,detail:`Camunda 8 wants candidates as a FEEL list or a comma-separated text.`,action:`Check the expression gives a list or a comma-separated text.`,link:E},initiator:{severity:`warning`,conversion:`manual`,title:`The starter is kept in {variable} only in Camunda 7`,detail:`Camunda 8 does not record who started an instance in a variable.`,action:`Set {variable} as a variable when the process is started.`,link:v},"multi-instance":{severity:`info`,conversion:`automatic`,title:`The multi-instance loop over {collection} becomes an input collection`,detail:`Camunda 8 loops over an input collection, with each item in the input element.`,action:`Nothing to do.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/multi-instance/`},"multi-instance-cardinality":{severity:`warning`,conversion:`review`,title:`The loop cardinality {cardinality} becomes a collection of numbers`,detail:`Camunda 8 has no loop cardinality: it loops over a collection. The converter loops over the numbers 1 to {cardinality}.`,action:`Check the loop runs as often as it did.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/multi-instance/`},"multi-instance-missing":{severity:`error`,conversion:`manual`,title:`The multi-instance loop has neither a collection nor a cardinality`,detail:`Camunda 8 needs an input collection to loop over.`,action:`Give the loop an input collection.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/multi-instance/`},"call-activity":{severity:`info`,conversion:`automatic`,title:`The call of {process} carries over`,detail:`Camunda 8 calls the process by its id; the variables passed in and out become mappings.`,action:`Nothing to do.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/call-activities/`},"call-activity-business-key":{severity:`error`,conversion:`manual`,title:`The business key is passed to {process}`,detail:`Camunda 8 has no business key.`,action:`Pass the value as a variable, and correlate messages on it.`,link:v},"call-activity-local":{severity:`warning`,conversion:`review`,title:`Only local variables were passed to or from {process}`,detail:`Camunda 8 passes the variables its mappings name; it has no local-only mode.`,action:`Check the mappings pass exactly what the called process needs.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/call-activities/`},"call-activity-mapping-class":{severity:`error`,conversion:`manual`,title:`Variables for {process} are mapped by Java code`,detail:`Camunda 8 maps variables with FEEL only.`,action:`Write the mapping as FEEL input and output mappings.`,link:S},"binding-version":{severity:`error`,conversion:`manual`,title:`{what} is bound to version {version}`,detail:`Camunda 8 binds by latest, by deployment or by version tag, not by version number.`,action:`Bind it by deployment, or give the target a version tag and bind by that.`,since:`8.6`,link:`https://docs.camunda.io/docs/components/best-practices/modeling/choosing-the-resource-binding-type/`},"binding-dropped":{severity:`warning`,conversion:`automatic`,title:`The binding {binding} of {target} is dropped`,detail:`The Camunda 8 version this converts for always takes the latest version.`,action:`Convert for 8.6 or later to keep the binding.`,since:`8.6`},tenant:{severity:`warning`,conversion:`manual`,title:`The tenant {tenant} is fixed in the diagram`,detail:`Camunda 8 decides the tenant from the deployment, not from the diagram.`,action:`Deploy the diagram to the tenant instead.`,link:`https://docs.camunda.io/docs/components/concepts/multi-tenancy/`},cmmn:{severity:`error`,conversion:`manual`,title:`The case {case} is called`,detail:`Camunda 8 has no CMMN.`,action:`Model the case as a process, an ad-hoc subprocess or a set of user tasks.`,link:_},decision:{severity:`info`,conversion:`automatic`,title:`The decision {decision} is called, its result in {result}`,detail:`Camunda 8 evaluates the decision in the engine and stores the whole result in one variable.`,action:`Nothing to do.`,link:O},"decision-result":{severity:`warning`,conversion:`review`,title:`The decision result was mapped as {mapping}`,detail:`Camunda 8 stores the result the way the decision gives it: one value for one output of one rule, a context for several outputs, a list for several rules. The Camunda 7 mapping {mapping} may have a different shape.`,action:`Check what reads {result} expects the Camunda 8 shape.`,link:O},"decision-result-variable":{severity:`warning`,conversion:`review`,title:`The decision result goes to {result}`,detail:`Camunda 8 needs a result variable, and the Camunda 7 task had none.`,action:`Rename {result} if something else should read the result.`,link:O},"message-catch":{severity:`error`,conversion:`manual`,title:`The message {message} needs a correlation key`,detail:`Camunda 8 correlates a message to a waiting instance by a key the instance computes from its variables. Camunda 7 correlated through the API, with the business key or variables.`,action:`Add a correlation key to the message: a FEEL expression over a variable the sender also knows, such as =orderId.`,link:D},"message-name-expression":{severity:`info`,conversion:`automatic`,title:`The message name {name} becomes {feel}`,detail:`Camunda 8 message names can be FEEL expressions.`,action:`Nothing to do.`,link:D},"message-throw":{severity:`error`,conversion:`automatic`,title:`The message is sent by {implementation}, which becomes the job type {jobType}`,detail:`Camunda 8 sends a message from a throw event through a job worker, like a send task.`,action:`Write a job worker for {jobType} that publishes the message.`,link:D},"message-throw-empty":{severity:`error`,conversion:`manual`,title:`The message throw event has no implementation`,detail:`Camunda 8 needs a job type on a message throw event; a worker sends the message.`,action:`Give the event a job type and write the worker that publishes the message.`,link:D},"signal-variables":{severity:`warning`,conversion:`review`,title:`Variables passed with the signal {signal}`,detail:`Camunda 8 broadcasts a signal with the variables its input mappings give it.`,action:`Check the signal carries the variables its catchers read.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/signal-events/`},timer:{severity:`info`,conversion:`automatic`,title:`The timer {timer} carries over`,detail:`Camunda 8 reads the same ISO 8601 dates, durations and cycles.`,action:`Nothing to do.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/timer-events/`},"timer-cron":{severity:`warning`,conversion:`review`,title:`The timer cycle {cycle} is a cron expression`,detail:`Camunda 8 reads cron expressions in the Spring format; Camunda 7 read them in the Quartz format, which allows fields Spring does not.`,action:`Check the cron expression is valid Spring cron.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/timer-events/`},"error-code-variable":{severity:`info`,conversion:`automatic`,title:`The caught error code goes to {variable} through an output mapping`,detail:`Camunda 8 gives a caught error to the output mappings as errorCode and errorMessage.`,action:`Nothing to do.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/error-events/`},"error-message":{severity:`info`,conversion:`automatic`,title:`The error message {message} is dropped`,detail:`In Camunda 8 the worker that throws the error gives its message.`,action:`Give the message in the worker when it throws the error.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/error-events/`},"external-error":{severity:`error`,conversion:`manual`,title:`The external task decides errors by the expression {expression}`,detail:`Camunda 8 has no error event definitions on a task; the job worker throws the error itself.`,action:`Throw the BPMN error from the job worker when the condition holds.`,link:x},"escalation-code-variable":{severity:`warning`,conversion:`manual`,title:`The escalation code was kept in {variable}`,detail:`Camunda 8 does not store a caught escalation code in a variable.`,action:`Pass the value as a variable when the escalation is thrown.`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/escalation-events/`},"unsupported-element":{severity:`error`,conversion:`manual`,title:`Camunda 8 cannot run a {what}`,detail:`{reason}`,action:`{action}`,link:b},"element-since":{severity:`error`,conversion:`manual`,title:`A {what} needs Camunda {version} or later`,detail:`The Camunda 8 version this converts for, {target}, cannot run it.`,action:`Convert for Camunda {version} or later, or remodel it.`,link:b},"conditional-event":{severity:`warning`,conversion:`review`,title:`The conditional event waits for {variables}`,detail:`Camunda 8 evaluates a condition when the variables it names change, like Camunda 7 did when variableName was set.`,action:`Check the condition is triggered by the variables you expect.`,since:`8.9`,link:`https://docs.camunda.io/docs/components/modeler/bpmn/conditional-events/`},properties:{severity:`info`,conversion:`automatic`,title:`The extension properties carry over`,detail:`Camunda 8 keeps them as zeebe properties, read the same way by tools.`,action:`Nothing to do.`},"version-tag":{severity:`info`,conversion:`automatic`,title:`The version tag {tag} carries over`,detail:`Camunda 8 keeps version tags from 8.6.`,action:`Nothing to do.`,since:`8.6`},"history-time-to-live":{severity:`info`,conversion:`automatic`,title:`The history time to live {ttl} is dropped`,detail:`Camunda 8 keeps history in its secondary storage, cleaned up by retention settings of the cluster, not of the diagram.`,action:`Set the retention in the cluster configuration if it mattered.`,link:k},"starter-groups":{severity:`warning`,conversion:`manual`,title:`Who may start the process ({groups}) is dropped`,detail:`Camunda 8 decides who may start a process through authorizations, not the diagram.`,action:`Grant the start permission to {groups} in Camunda 8 identity.`,link:`https://docs.camunda.io/docs/components/concepts/access-control/authorizations/`},"startable-in-tasklist":{severity:`info`,conversion:`automatic`,title:`Whether Tasklist may start the process is dropped`,detail:`Camunda 8 Tasklist offers every process a user may start.`,action:`Nothing to do.`},template:{severity:`warning`,conversion:`review`,title:`The element template {template} is a Camunda 7 template`,detail:`The template no longer applies; the converted properties stay.`,action:`Apply the Camunda 8 version of the template, if there is one.`,link:`https://docs.camunda.io/docs/components/modeler/desktop-modeler/element-templates/about-templates/`},"unknown-attribute":{severity:`warning`,conversion:`manual`,title:`The Camunda 7 setting {attribute} is left as it is`,detail:`Penstock does not know what Camunda 8 should do with it, so it stays in the diagram, where Camunda 8 ignores it.`,action:`Check whether anything depended on it, then remove it.`,link:v},"dmn-version":{severity:`warning`,conversion:`manual`,title:`The decisions are DMN {version}`,detail:`Camunda 8 reads DMN 1.3. Penstock and the DMN editor move an older file to 1.3.`,action:`Open the file in the DMN editor and save it, then convert it.`,link:O},"dmn-expression-language":{severity:`error`,conversion:`manual`,title:`{what} is written in {language}`,detail:`Camunda 8 evaluates DMN in FEEL only.`,action:`Write it in FEEL.`,link:O},"dmn-juel":{severity:`info`,conversion:`automatic`,title:`{what} becomes the FEEL expression {feel}`,detail:`Camunda 8 evaluates DMN in FEEL only.`,action:`Nothing to do.`,link:O},"dmn-input-variable":{severity:`error`,conversion:`manual`,title:`The input {input} names its value {variable}`,detail:`Camunda 8 refers to the input value in a rule as ?, not by a name.`,action:`Replace {variable} with ? in the rules of this input, then remove the name.`,link:`https://docs.camunda.io/docs/components/modeler/feel/language-guide/feel-unary-tests/`},"dmn-history-time-to-live":{severity:`info`,conversion:`automatic`,title:`The history time to live of {decision} is dropped`,detail:`Camunda 8 keeps history in its secondary storage, cleaned up by retention settings of the cluster.`,action:`Nothing to do.`},"dmn-carries-over":{severity:`info`,conversion:`automatic`,title:`The decisions carry over`,detail:`Camunda 8 evaluates DMN 1.3 in FEEL, and these decisions use nothing else.`,action:`Nothing to do.`,link:O},"form-platform":{severity:`info`,conversion:`automatic`,title:`The form carries over`,detail:`Camunda Forms have the same format on both; only the platform it names changes.`,action:`Nothing to do.`,link:T},platform:{severity:`info`,conversion:`automatic`,title:`The diagram names Camunda {target} as its platform`,detail:`Camunda Modeler and Penstock read the platform from the file.`,action:`Nothing to do.`},"data-migration":{severity:`warning`,conversion:`manual`,title:`Running instances and history stay on Camunda 7`,detail:`Converting a diagram does not move its instances. Instances can finish on Camunda 7, or be moved with Camunda's Data Migrator, which needs the element ids to stay as they are; the converter keeps them.`,action:`Decide whether to drain Camunda 7 or to run the Data Migrator.`,link:k}},j=[`title`,`detail`,`action`];function M(e,t,n){return`app.migration.rules.${e}${n?`.${n}`:``}.${t}`}function N(n,r,i={},a){let o={},s={};for(let c of j){s[c]=e(r[c],i);let l=a?M(n,c,a):``,u=l?t(l,i):``;o[c]=l&&u!==l?u:t(M(n,c),i)}return{text:o,english:s}}const P=`textfield`;function F(e){return typeof e==`string`&&e!==``?e:void 0}function I(e){let t=Number(e);return e!==void 0&&e.trim()!==``&&Number.isFinite(t)?t:void 0}function ee(e,n){let r=F(e.id)??`field`,i=F(e.type)??`string`,a={id:`Field_${r}`,key:r,label:F(e.label)??r},o={};(e.validation?.constraints??[]).forEach(e=>{let i=F(e.name)??``,a=I(F(e.config));i===`required`?o.required=!0:i===`minlength`&&a!==void 0?o.minLength=a:i===`maxlength`&&a!==void 0?o.maxLength=a:i===`min`&&a!==void 0?o.min=a:i===`max`&&a!==void 0?o.max=a:i===`readonly`?o.readonly=!0:n.push(t(`app.migration.form.keptOut`,{name:i,id:r}))});let s=o.readonly===!0;delete o.readonly;let c={...Object.keys(o).length>0?{validate:o}:{},...s?{readonly:!0}:{}},l=F(e.defaultValue),u=Object.fromEntries((e.properties?.values??[]).filter(e=>F(e.name)).map(e=>[e.name,e.value??``]));switch(Object.keys(u).length>0&&(c.properties=u),i){case`string`:return{...a,type:P,...l?{defaultValue:l}:{},...c};case`long`:return{...a,type:`number`,...I(l)===void 0?{}:{defaultValue:I(l)},...c};case`boolean`:return{...a,type:`checkbox`,...l?{defaultValue:l===`true`}:{},...c};case`date`:return{...a,type:`datetime`,subtype:`date`,dateLabel:a.label,...c};case`enum`:return{...a,type:`select`,values:(e.values??[]).map(e=>({label:F(e.name)??F(e.id)??``,value:F(e.id)??``})),...l?{defaultValue:l}:{},...c};default:return n.push(t(`app.migration.form.lostType`,{type:i,id:r})),{...a,type:P,...c}}}function te(e,t){let n=[],r={components:(t.fields??[]).map(e=>ee(e,n)),type:`default`,id:e,executionPlatform:u,executionPlatformVersion:`8.8.0`,schemaVersion:16};return{json:`${JSON.stringify(r,null,2)}\n`,lost:n}}const L=`http://camunda.org/schema/zeebe/1.0`,R=`http://camunda.org/schema/conversion/1.0`,z=/* @__PURE__ */ new Set([`bpmn:IntermediateCatchEvent`,`bpmn:BoundaryEvent`,`bpmn:ReceiveTask`]),B=/* @__PURE__ */ new Set([`bpmn:ServiceTask`,`bpmn:SendTask`,`bpmn:BusinessRuleTask`,`bpmn:ScriptTask`,`bpmn:EndEvent`,`bpmn:IntermediateThrowEvent`]),V=/* @__PURE__ */ new Set([...B,`bpmn:CallActivity`,`bpmn:SubProcess`,`bpmn:UserTask`]),ne=/* @__PURE__ */ new Set([...V,`bpmn:IntermediateCatchEvent`,`bpmn:BoundaryEvent`,`bpmn:StartEvent`,`bpmn:ReceiveTask`]),re=/^bpmn:(?:\w*Task|SubProcess|CallActivity|Transaction|\w*Event|ExclusiveGateway|InclusiveGateway|ParallelGateway|EventBasedGateway|Process)$/,H={create:`creating`,assignment:`assigning`,update:`updating`,complete:`completing`,delete:`canceling`},ie=/* @__PURE__ */ new Set([`groovy`,`javascript`,`ecmascript`,`js`]);function ae(e){let t=e.trim();return t===``||/[\n\r;`$]/.test(t)||/(?<![=!<>])=(?!=)|\+\+|--|->|\?\.|<<|>>|=~/.test(t)?!1:!/\.\s*(?:length|size)\b(?!\s*\()/.test(t)}const oe=/* @__PURE__ */ new Set([`camunda:InputOutput`,`camunda:ExecutionListener`,`camunda:TaskListener`,`camunda:Properties`,`camunda:In`,`camunda:Out`,`camunda:FailedJobRetryTimeCycle`,`camunda:Field`,`camunda:FormData`]);function U(e,n){return t(`app.migration.detail.${e}`,n)}function W(e){return(e.split(`:`).pop()??e).replace(/([a-z])([A-Z])/g,`$1 $2`).toLowerCase()}function G(e){return(typeof e?.name==`string`?e.name.replace(/\s+/g,` `).trim():``)||e?.id||W(e?.$type??`element`)}function K(e){if(typeof e==`string`)return e.trim()?e:void 0;if(typeof e==`boolean`||typeof e==`number`)return String(e)}function se(e){let t=/^\s*R(\d+)\//.exec(e);if(t)return t[1];let n=e.split(`,`).map(e=>e.trim()).filter(Boolean);return n.length>0&&n.every(e=>/^P/.test(e))?String(n.length):null}function ce(e){let t=e.trim().split(/\s+/);return t.length>=5&&t.length<=7&&!e.trim().startsWith(`R`)&&!e.trim().startsWith(`P`)}var le=class{findings=[];changes=[];extraFiles=[];delegates=[];definitions;moddle;target;options;kept=/* @__PURE__ */ new WeakMap;keptCount=0;keptValues=/* @__PURE__ */ new WeakSet;marks=/* @__PURE__ */ new Map;process=null;constructor(e,t={}){this.definitions=e,this.moddle=i(e),this.options=t,this.target=t.target??`8.8`}run(){this.removeMarkers(this.definitions),this.take(this.definitions,`camunda:diagramRelationId`);let e=this.definitions.rootElements??[];e.filter(e=>e.$type===`bpmn:Error`&&!this.skipped(e)).forEach(e=>this.error(e)),e.filter(e=>e.$type===`bpmn:Message`&&!this.skipped(e)).forEach(e=>this.messageName(e)),e.filter(e=>e.$type===`bpmn:Process`).forEach(e=>{this.process=e,this.skipped(e)||(this.processAttributes(e),this.common(e)),(e.flowElements??[]).forEach(e=>this.flowElement(e)),(e.laneSets??[]).forEach(e=>this.common(e))}),this.process=null,(this.options.skip?.size??0)>0&&(this.keptCount+=1),this.leftovers(),this.writeMarkers(),this.platform()}skipped(e){return typeof e?.id==`string`&&this.options.skip?.has(e.id)===!0}found(e,t,n={},r={}){let{variant:i,...a}=r,o=this.anchor(e),s={...A[t],...a},{text:c,english:l}=N(t,s,n,i),u={rule:`migration/${t}`,severity:s.severity,conversion:s.conversion,title:c.title,detail:c.detail,action:c.action,elements:o?.id?[o.id]:[],where:G(o),...s.since?{since:s.since}:{},...s.link?{link:s.link}:{}};return this.findings.push(u),u.conversion!==`automatic`&&o&&this.marks.set(o,[...this.marks.get(o)??[],{conversion:u.conversion,...l}]),u}changed(e,t,n,r){this.changes.push({elementId:e?.id??``,where:G(e),before:t,after:n,...r?{plain:r}:{}})}get(e,t){return K(e?.get?.(t))??K(e?.$attrs?.[t])}take(e,t){let n=this.get(e,t);if(n!==void 0)return e.$attrs&&t in e.$attrs?delete e.$attrs[t]:e.set(t,void 0),n}keep(e,t){let n=this.kept.get(e)??/* @__PURE__ */ new Set;n.add(t),this.kept.set(e,n),this.keptCount+=1}isKept(e,t){return this.kept.get(e)?.has(t)===!0}anchor(e){let t=e;for(;t?.$parent&&(!t.id||/EventDefinition$|LoopCharacteristics$|^bpmn:(?:Formal)?Expression$|^bpmn:ExtensionElements$/.test(t.$type));)t=t.$parent;return t}values(e){return e?.extensionElements?.values??[]}extensions(e,t){return this.values(e).filter(e=>e.$type===t)}remove(e,t){e.extensionElements&&(e.extensionElements.values=this.values(e).filter(e=>e!==t),e.extensionElements.values.length===0&&(e.extensionElements=void 0))}add(e,t,n={}){e.extensionElements||(e.extensionElements=this.moddle.create(`bpmn:ExtensionElements`,{values:[]}),e.extensionElements.$parent=e);let r=this.moddle.create(t,n);return r.$parent=e.extensionElements,e.extensionElements.values=[...this.values(e),r],r}single(e,t){return this.extensions(e,t)[0]??this.add(e,t)}feel(e,t,n,r={}){if(!h(n))return n;let i=p(n,r);return i.ok?(i.review.length>0?this.found(e,`expression-review`,{expression:n,feel:i.feel,reason:i.review.join(`; `)}):t===`condition`&&this.found(e,`condition`,{expression:n,feel:i.feel}),i.feel):(this.found(e,`expression-manual`,{expression:n,reason:i.reason}),null)}feelOrLiteral(e,t,n){return n===void 0?`=null`:h(n)?this.feel(e,t,n):`=${JSON.stringify(n)}`}since(e,t,n,r){return l(this.target,n)?!0:(this.found(e,`element-since`,{what:t,version:n,target:this.target},r?{detail:r,variant:`withDetail`}:{}),!1)}delegate(e,t){this.delegates.push({...t,elementId:e.id,where:G(e)})}common(e){let n=[`camunda:asyncBefore`,`camunda:asyncAfter`,`camunda:async`].map(t=>this.take(e,t)).some(e=>e===`true`);this.take(e,`camunda:exclusive`),n&&(this.found(e,`async`),this.changed(e,t(`app.migration.change.asyncBefore`),t(`app.migration.change.removed`),t(`app.migration.change.async`)));let r=this.take(e,`camunda:modelerTemplate`);this.take(e,`camunda:modelerTemplateVersion`),r&&this.found(e,`template`,{template:r}),this.executionListeners(e),this.properties(e)}processAttributes(e){let n=this.take(e,`camunda:versionTag`);n&&(l(this.target,`8.6`)?(this.single(e,`zeebe:VersionTag`).value=n,this.found(e,`version-tag`,{tag:n}),this.changed(e,`camunda:versionTag="${n}"`,`zeebe:versionTag value="${n}"`,t(`app.migration.change.versionTag`,{tag:n}))):this.found(e,`version-tag`,{tag:n},{severity:`warning`,variant:`dropped`,title:`The version tag {tag} is dropped`,detail:`Camunda 8 keeps version tags from 8.6.`}));let r=this.take(e,`camunda:historyTimeToLive`);r&&this.found(e,`history-time-to-live`,{ttl:r}),this.take(e,`camunda:isStartableInTasklist`)!==void 0&&this.found(e,`startable-in-tasklist`),[`camunda:candidateStarterGroups`,`camunda:candidateStarterUsers`].forEach(t=>{let n=this.get(e,t);n&&(this.keep(e,t),this.found(e,`starter-groups`,{groups:n}))}),this.priority(e),this.take(e,`camunda:taskPriority`)&&this.found(e,`external-task-priority`)}priority(e){let t=this.take(e,`camunda:jobPriority`);if(t){if(l(this.target,`8.8`)&&(e.$type===`bpmn:Process`||B.has(e.$type))){let n=this.feelOrLiteral(e,`job priority`,t);if(n===null)return;this.single(e,`zeebe:JobPriorityDefinition`).priority=n.startsWith(`="`)?JSON.parse(n.slice(1)):n,this.found(e,`job-priority`,{priority:t})}else this.found(e,`job-priority-dropped`,{priority:t})}}properties(e){this.extensions(e,`camunda:Properties`).forEach(t=>{let n=this.single(e,`zeebe:Properties`),r=(t.values??[]).map(e=>this.moddle.create(`zeebe:Property`,{name:e.name,value:e.value}));n.properties=[...n.properties??[],...r],this.remove(e,t),this.found(e,`properties`)})}flowElement(e){if(this.skipped(e)){(e.flowElements??[]).forEach(e=>this.flowElement(e));return}let t=e.$type;switch(this.common(e),t){case`bpmn:ServiceTask`:case`bpmn:SendTask`:this.implementation(e,e);break;case`bpmn:BusinessRuleTask`:this.get(e,`camunda:decisionRef`)?this.decision(e):this.implementation(e,e);break;case`bpmn:ScriptTask`:this.script(e);break;case`bpmn:UserTask`:this.userTask(e);break;case`bpmn:CallActivity`:this.callActivity(e);break;case`bpmn:ReceiveTask`:e.messageRef&&this.found(e,`message-catch`,{message:G(e.messageRef)});break;case`bpmn:ComplexGateway`:this.found(e,`unsupported-element`,{what:g(`bpmn:ComplexGateway`),reason:U(`complexGateway`),action:U(`complexGatewayAction`)});break;case`bpmn:InclusiveGateway`:(e.incoming??[]).length>1&&this.since(e,`joining inclusive gateway`,`8.6`);break;case`bpmn:Transaction`:this.found(e,`unsupported-element`,{what:g(`bpmn:Transaction`),reason:U(`transaction`),action:U(`transactionAction`)});break;case`bpmn:AdHocSubProcess`:this.since(e,g(`bpmn:AdHocSubProcess`),`8.7`);break;case`bpmn:SequenceFlow`:this.condition(e);break;case`bpmn:StartEvent`:this.startEvent(e)}t.endsWith(`Event`)&&this.event(e),this.loop(e),this.inputOutput(e),this.retries(e),this.fields(e),this.priority(e),this.taskListeners(e),(e.flowElements??[]).forEach(e=>this.flowElement(e))}implementation(e,n){let r=this.values(n).find(e=>e.$type===`camunda:Connector`);if(r)return this.keptValues.add(r),this.found(e,`connector`,{connector:K(r.connectorId)??`connector`}),!1;let i=this.get(n,`camunda:topic`),a=this.get(n,`camunda:type`)===`external`||i!==void 0;this.values(n).filter(e=>e.$type===`camunda:ErrorEventDefinition`).forEach(t=>{this.keptValues.add(t),this.found(e,`external-error`,{expression:K(t.expression)??``})});let o=null;if(a){if(!i)return!1;if(h(i)){let t=this.feel(e,`topic`,i);if(t===null)return this.keep(n,`camunda:topic`),!1;o=t}else o=i;this.take(n,`camunda:type`),this.take(n,`camunda:topic`),this.found(e,`external-task`,{topic:i,jobType:o}),this.delegate(e,{kind:`topic`,value:i,role:`task`,jobType:o}),this.take(n,`camunda:taskPriority`)&&this.found(e,`external-task-priority`)}else{let t=this.get(n,`camunda:class`),r=this.get(n,`camunda:delegateExpression`),i=this.get(n,`camunda:expression`),a=this.get(n,`camunda:resultVariable`);if(t)o=m(`class`,t),this.take(n,`camunda:class`),this.found(e,`java-class`,{className:t,jobType:o}),this.delegate(e,{kind:`class`,value:t,role:`task`,jobType:o});else if(r){let t=/^[$#]\{\s*([A-Za-z_][\w]*)\s*\}$/.exec(r.trim())?.[1];if(!t)return this.keep(n,`camunda:delegateExpression`),this.found(e,`delegate-expression-dynamic`,{expression:r}),!1;o=m(`bean`,t),this.take(n,`camunda:delegateExpression`),this.found(e,`delegate-expression`,{delegate:r,jobType:o}),this.delegate(e,{kind:`bean`,value:t,role:`task`,jobType:o})}else if(i){let t=/^[$#]\{\s*([A-Za-z_]\w*)\s*\.\s*([A-Za-z_]\w*)\s*\([^]*\)\s*\}$/.exec(i.trim());if(!t||t[1]===`execution`)return this.keep(n,`camunda:expression`),a&&this.keep(n,`camunda:resultVariable`),this.found(e,`expression-unknown`,{expression:i}),!1;o=m(`expression`,`${t[1]}.${t[2]}`),this.take(n,`camunda:expression`),this.take(n,`camunda:resultVariable`),this.found(e,`expression`,{expression:i,jobType:o},a?{variant:`withResult`,action:`Write a job worker for {jobType} that makes the call {expression} made and completes the job with the variable {result}.`}:{}),this.delegate(e,{kind:`expression`,value:i,role:`task`,jobType:o})}a&&this.get(n,`camunda:resultVariable`)&&this.take(n,`camunda:resultVariable`)}if(!o)return!1;let s=this.single(e,`zeebe:TaskDefinition`);return s.type=o,this.changed(e,t(`app.migration.change.camunda7Implementation`),`zeebe:taskDefinition type="${o}"`,t(`app.migration.change.jobWorkerTask`,{jobType:o})),!0}retries(e){[e,e.loopCharacteristics].filter(Boolean).forEach(n=>{this.extensions(n,`camunda:FailedJobRetryTimeCycle`).forEach(r=>{let i=K(r.body)??``;this.remove(n,r);let a=this.extensions(e,`zeebe:TaskDefinition`)[0],o=se(i);a&&o&&n===e?(a.retries=o,this.found(e,`retries`,{cycle:i,retries:o}),this.changed(e,`camunda:failedJobRetryTimeCycle ${i}`,`retries="${o}"`,t(`app.migration.change.retries`,{retries:o}))):this.found(e,`retries-dropped`,{cycle:i})})})}fields(e){let n=this.extensions(e,`camunda:Field`);if(n.length===0)return;let r=this.extensions(e,`zeebe:TaskDefinition`)[0],i=[];n.forEach(t=>{let n=K(t.stringValue)??K(t.string),a=K(t.expression);if(!r||a!==void 0||n===void 0){this.keptValues.add(t),this.found(e,`field-injection-expression`,{field:t.name});return}let o=this.single(e,`zeebe:TaskHeaders`);o.values=[...o.values??[],this.moddle.create(`zeebe:Header`,{key:t.name,value:n})],this.remove(e,t),i.push(t.name)}),i.length>0&&(this.found(e,`field-injection`,{fields:i.join(`, `)}),this.changed(e,`camunda:field ${i.join(`, `)}`,`zeebe:taskHeaders ${i.join(`, `)}`,t(`app.migration.change.fieldHeaders`,{fields:i.join(`, `)})))}parameter(e,t){let n=t.definition;return n?this.definitionValue(e,t.name,n):this.feelOrLiteral(e,`mapping`,K(t.value))}definitionValue(e,t,n){switch(n.$type){case`camunda:Script`:return this.found(e,`input-output-script`,{name:t,format:K(n.scriptFormat)??`script`}),null;case`camunda:List`:{let r=(n.items??[]).map(n=>this.item(e,t,n));return r.some(e=>e===null)?null:`=[${r.join(`, `)}]`}case`camunda:Map`:{let r=(n.entries??[]).map(n=>{let r=n.definition?this.definitionValue(e,t,n.definition):this.feelOrLiteral(e,`mapping`,K(n.value));return r===null?null:`${JSON.stringify(n.key??``)}: ${r.slice(1)}`});return r.some(e=>e===null)?null:`={${r.join(`, `)}}`}default:return this.found(e,`input-output-manual`,{name:t,reason:U(`mappingValue`,{type:W(n.$type)})}),null}}item(e,t,n){if(n.$type===`camunda:Value`){let t=this.feelOrLiteral(e,`mapping`,K(n.value));return t===null?null:t.slice(1)}let r=this.definitionValue(e,t,n);return r===null?null:r.slice(1)}inputOutput(e){this.extensions(e,`camunda:InputOutput`).forEach(n=>{let r=(t,n,r)=>t.filter(t=>{if(!r)return this.found(e,`input-output-manual`,{name:t.name,reason:U(`noMapping`,{kind:n,element:W(e.$type)})}),!0;let i=this.parameter(e,t);if(i===null)return!0;let a=this.single(e,`zeebe:IoMapping`),o=this.moddle.create(n===`input`?`zeebe:Input`:`zeebe:Output`,{source:i,target:t.name});return n===`input`?a.inputParameters=[...a.inputParameters??[],o]:a.outputParameters=[...a.outputParameters??[],o],!1}),i=r(n.inputParameters??[],`input`,V.has(e.$type)),a=r(n.outputParameters??[],`output`,ne.has(e.$type)),o=(n.inputParameters?.length??0)+(n.outputParameters?.length??0)-i.length-a.length;o>0&&(this.found(e,`input-output`),this.changed(e,`camunda:inputOutput`,`zeebe:ioMapping, ${o} parameter${o===1?``:`s`}`,t(`app.migration.change.ioMapping`,{count:o}))),i.length+a.length===0?this.remove(e,n):(n.inputParameters=i,n.outputParameters=a,this.keptValues.add(n))})}condition(e){let n=e.conditionExpression;if(!n)return;let r=K(n.language),i=this.get(n,`camunda:resource`);if(i){this.keep(n,`camunda:resource`),this.found(e,`script-resource`,{resource:i});return}if(r&&!/^(juel|feel)$/i.test(r)){this.found(e,`script-condition`,{format:r});return}let a=K(n.body);if(!a)return;if(r?.toLowerCase()===`feel`){n.body=a.startsWith(`=`)?a:`=${a}`,n.language=void 0,this.changed(e,a,n.body,t(`app.migration.change.conditionFeel`));return}let o=this.feel(e,`condition`,a);o!==null&&(n.body=o,n.language=void 0,this.changed(e,a,o,t(`app.migration.change.conditionRewritten`)))}loop(e){let n=e.loopCharacteristics;if(n?.$type!==`bpmn:MultiInstanceLoopCharacteristics`){n?.$type===`bpmn:StandardLoopCharacteristics`&&this.found(e,`unsupported-element`,{what:`standard loop`,reason:U(`standardLoop`),action:U(`standardLoopAction`)});return}this.common(n);let r=this.get(n,`camunda:collection`),i=this.get(n,`camunda:elementVariable`),a=K(n.loopCardinality?.body),o=()=>this.single(n,`zeebe:LoopCharacteristics`);if(r){let a=h(r)?this.feel(e,`collection`,r,{multiInstance:!0}):`=${r}`;if(a===null)this.keep(n,`camunda:collection`),i&&this.keep(n,`camunda:elementVariable`);else{this.take(n,`camunda:collection`),this.take(n,`camunda:elementVariable`);let s=o();s.inputCollection=a,i&&(s.inputElement=i),this.found(e,`multi-instance`,{collection:r}),this.changed(e,`camunda:collection="${r}"`,`inputCollection="${a}"`,t(`app.migration.change.collection`,{collection:r}))}}else if(a){let r=h(a)?this.feel(e,`cardinality`,a,{multiInstance:!0}):`=${a.trim()}`;if(r!==null){n.loopCardinality=void 0;let i=/^[\w.]+$/.test(r.slice(1))?r.slice(1):`(${r.slice(1)})`;o().inputCollection=`=for i in 1..${i} return i`,this.found(e,`multi-instance-cardinality`,{cardinality:a}),this.changed(e,`loopCardinality ${a}`,`inputCollection="=for i in 1..${i} return i"`,t(`app.migration.change.loopCount`,{cardinality:a}))}}else this.extensions(n,`zeebe:LoopCharacteristics`)[0]?.inputCollection||this.found(e,`multi-instance-missing`);let s=K(n.completionCondition?.body);if(s&&h(s)){let r=this.feel(e,`completion condition`,s,{multiInstance:!0});r!==null&&(n.completionCondition.body=r,n.completionCondition.language=void 0,this.changed(e,s,r,t(`app.migration.change.completionCondition`)))}}startEvent(e){let t=this.get(e,`camunda:initiator`);t&&(this.keep(e,`camunda:initiator`),this.found(e,`initiator`,{variable:t})),this.form(e)}event(e){(e.eventDefinitions??[]).forEach(t=>{switch(this.common(t),t.$type){case`bpmn:MessageEventDefinition`:this.messageEvent(e,t);break;case`bpmn:TimerEventDefinition`:this.timer(e,t);break;case`bpmn:ErrorEventDefinition`:this.errorEvent(e,t);break;case`bpmn:EscalationEventDefinition`:{let n=this.get(t,`camunda:escalationCodeVariable`);n&&(this.keep(t,`camunda:escalationCodeVariable`),this.found(e,`escalation-code-variable`,{variable:n}));break}case`bpmn:SignalEventDefinition`:this.signal(e,t);break;case`bpmn:ConditionalEventDefinition`:this.conditional(e,t);break;case`bpmn:CompensateEventDefinition`:this.since(e,`compensation event`,`8.5`);break;case`bpmn:CancelEventDefinition`:this.found(e,`unsupported-element`,{what:`cancel event`,reason:U(`cancelEvent`),action:U(`cancelEventAction`)})}})}messageEvent(e,t){if(e.$type===`bpmn:EndEvent`||e.$type===`bpmn:IntermediateThrowEvent`){if(![`camunda:class`,`camunda:delegateExpression`,`camunda:expression`,`camunda:topic`].some(e=>this.get(t,e))){this.found(e,`message-throw-empty`);return}let n=this.findings.length;if(this.implementation(e,t)){let t=this.extensions(e,`zeebe:TaskDefinition`)[0]?.type,r=/* @__PURE__ */ new Set([`migration/java-class`,`migration/delegate-expression`,`migration/expression`,`migration/external-task`]),i=this.findings.findIndex((e,t)=>t>=n&&r.has(e.rule));i>=0&&this.findings.splice(i,1);let a=this.delegates[this.delegates.length-1];this.found(e,`message-throw`,{implementation:a?.value??`the implementation`,jobType:t??``})}}else(z.has(e.$type)||e.$type===`bpmn:StartEvent`&&e.$parent?.$type===`bpmn:SubProcess`)&&t.messageRef&&this.found(e,`message-catch`,{message:G(t.messageRef)})}messageName(e){let n=K(e.name);if(!n||!h(n))return;let r=p(n);r.ok?(r.review.length>0?this.found(e,`expression-review`,{expression:n,feel:r.feel,reason:r.review.join(`; `)}):this.found(e,`message-name-expression`,{name:n,feel:r.feel}),this.changed(e,n,r.feel,t(`app.migration.change.messageName`,{name:n})),e.name=r.feel):this.found(e,`expression-manual`,{expression:n,reason:r.reason})}timer(e,n){[`timeDate`,`timeDuration`,`timeCycle`].forEach(r=>{let i=n[r],a=K(i?.body);if(a){if(h(a)){let n=this.feel(e,`timer`,a);if(n===null)return;i.body=n,this.found(e,`timer`,{timer:a}),this.changed(e,a,n,t(`app.migration.change.timer`))}else r===`timeCycle`&&ce(a)&&this.found(e,`timer-cron`,{cycle:a})}})}errorEvent(e,n){let r=this.take(n,`camunda:errorCodeVariable`),i=this.take(n,`camunda:errorMessageVariable`);[[r,`errorCode`],[i,`errorMessage`]].forEach(([n,r])=>{if(!n||!r)return;let i=this.single(e,`zeebe:IoMapping`);i.outputParameters=[...i.outputParameters??[],this.moddle.create(`zeebe:Output`,{source:`=${r}`,target:n})],this.found(e,`error-code-variable`,{variable:n}),this.changed(e,`camunda:${r}Variable="${n}"`,`zeebe:output source="=${r}" target="${n}"`,t(`app.migration.change.errorVariable`,{source:r,variable:n}))})}error(e){let t=this.take(e,`camunda:errorMessage`);t&&this.found(e,`error-message`,{message:t});let n=K(e.errorCode);n&&h(n)&&this.found(e,`expression-manual`,{expression:n,reason:U(`errorCode`)})}signal(e,t){let n=this.extensions(t,`camunda:In`);if(n.length===0)return;let r=e.$type===`bpmn:EndEvent`||e.$type===`bpmn:IntermediateThrowEvent`,i=G(t.signalRef);n.forEach(n=>{let i=K(n.source)??K(n.sourceExpression),a=K(n.target);if(!r||!i||!a||K(n.variables)){this.keptValues.add(n);return}let o=K(n.sourceExpression)?this.feel(e,`signal variable`,i):`=${i}`;if(o===null){this.keptValues.add(n);return}let s=this.single(e,`zeebe:IoMapping`);s.inputParameters=[...s.inputParameters??[],this.moddle.create(`zeebe:Input`,{source:o,target:a})],this.remove(t,n)}),this.found(e,`signal-variables`,{signal:i})}conditional(e,t){if(!this.since(e,`conditional event`,`8.9`)){this.keep(t,`camunda:variableName`),this.keep(t,`camunda:variableEvents`);return}let n=K(t.condition?.body),r=this.take(t,`camunda:variableName`),i=this.take(t,`camunda:variableEvents`);if(n){let r=this.feel(e,`condition`,n);r!==null&&(t.condition.body=r,t.condition.language=void 0)}if(r||i){let e=this.single(t,`zeebe:ConditionalFilter`);r&&(e.variableNames=r),i&&(e.variableEvents=i)}this.found(e,`conditional-event`,{variables:r??`any variable`})}script(e){let t=K(e.scriptFormat)?.toLowerCase(),n=this.get(e,`camunda:resource`),r=this.get(e,`camunda:resultVariable`);if(n){this.keep(e,`camunda:resource`),r&&this.keep(e,`camunda:resultVariable`),this.found(e,`script-resource`,{resource:n});return}let i=K(e.script);if(t===`feel`&&i)this.feelScript(e,t,i.trim().startsWith(`=`)?i.trim():`=${i.trim()}`,r);else if(t===`juel`&&i&&h(i)){let n=this.feel(e,`script`,i);if(n===null){r&&this.keep(e,`camunda:resultVariable`);return}this.feelScript(e,t,n,r)}else{if(i&&t&&ie.has(t)&&ae(i)){let n=p(`\${${i.trim()}}`);if(n.ok){this.found(e,`expression-review`,{expression:i.trim(),feel:n.feel,reason:[U(`scriptExpression`,{format:t}),...n.review].join(`; `)}),this.feelScript(e,t,n.feel,r);return}}r&&this.keep(e,`camunda:resultVariable`),this.found(e,`script-task`,{format:t??`script`})}}feelScript(e,n,r,i){let a=i??`result`;e.scriptFormat=void 0,e.script=void 0,this.take(e,`camunda:resultVariable`);let o=this.single(e,`zeebe:Script`);o.expression=r,o.resultVariable=a,this.found(e,`script-task-feel`,{variable:a},i?{}:{severity:`warning`,conversion:`review`,variant:`noResult`,title:`The FEEL script's result goes to {variable}`,detail:`Camunda 8 needs a result variable for a FEEL script task, and the Camunda 7 task had none.`,action:`Rename {variable} if something should read the result.`}),this.changed(e,`${n} script`,`zeebe:script expression`,t(`app.migration.change.feelScript`))}userTask(e){l(this.target,`8.5`)&&this.extensions(e,`zeebe:UserTask`).length===0&&(this.add(e,`zeebe:UserTask`),this.found(e,`user-task`),this.changed(e,t(`app.migration.change.userTaskBefore`),`zeebe:userTask`,t(`app.migration.change.userTask`)));let n={};[`assignee`,`candidateUsers`,`candidateGroups`].forEach(t=>{let r=this.get(e,`camunda:${t}`);if(!r)return;let i=this.userTaskValue(e,t,r,t!==`assignee`);i===null?this.keep(e,`camunda:${t}`):(this.take(e,`camunda:${t}`),n[t]=i)}),Object.keys(n).length>0&&(Object.assign(this.single(e,`zeebe:AssignmentDefinition`),n),this.changed(e,`camunda assignment`,`zeebe:assignmentDefinition ${Object.keys(n).join(`, `)}`,t(`app.migration.change.assignment`)));let r={};[`dueDate`,`followUpDate`].forEach(t=>{let n=this.get(e,`camunda:${t}`);if(!n)return;let i=this.userTaskValue(e,t,n,!1);i===null?this.keep(e,`camunda:${t}`):(this.take(e,`camunda:${t}`),r[t]=i)}),Object.keys(r).length>0&&Object.assign(this.single(e,`zeebe:TaskSchedule`),r);let i=this.get(e,`camunda:priority`);if(i){if(!l(this.target,`8.6`))this.take(e,`camunda:priority`),this.found(e,`user-task-priority-dropped`,{priority:i});else{let t=this.userTaskValue(e,`priority`,i,!1);if(t===null)this.keep(e,`camunda:priority`);else{this.take(e,`camunda:priority`),this.single(e,`zeebe:PriorityDefinition`).priority=t;let n=Number(t);!h(i)&&(!Number.isInteger(n)||n<0||n>100)&&this.found(e,`user-task-priority-range`,{priority:i})}}}this.form(e)}userTaskValue(e,t,n,r){if(!h(n))return n;let i=p(n);return i.ok?(i.review.length>0?this.found(e,`user-task-expression`,{name:t,expression:n,feel:i.feel,reason:i.review.join(`; `)}):r&&this.found(e,`assignment-review`,{name:t,expression:n}),i.feel):(this.found(e,`expression-manual`,{expression:n,reason:i.reason}),null)}form(e){let n=this.get(e,`camunda:formKey`),r=this.get(e,`camunda:formRef`),i=this.get(e,`camunda:formRefBinding`),a=this.get(e,`camunda:formRefVersion`),o=this.extensions(e,`camunda:FormData`)[0];this.get(e,`camunda:formHandlerClass`)&&this.keep(e,`camunda:formHandlerClass`);let s=e.$type===`bpmn:StartEvent`;if(r){if(i===`version`){this.keep(e,`camunda:formRef`),this.keep(e,`camunda:formRefBinding`),this.keep(e,`camunda:formRefVersion`),this.found(e,`form-binding-version`,{version:a??``});return}let n=this.single(e,`zeebe:FormDefinition`);n.formId=r,i&&i!==`latest`&&l(this.target,`8.6`)&&(n.bindingType=i,i===`versionTag`&&a&&(n.versionTag=a)),[`camunda:formRef`,`camunda:formRefBinding`,`camunda:formRefVersion`].forEach(t=>this.take(e,t)),this.found(e,`form-camunda`,{form:r}),this.changed(e,`camunda:formRef="${r}"`,`zeebe:formDefinition formId="${r}"`,t(`app.migration.change.formRef`,{form:r}))}else if(n){let r=/^camunda-forms:(deployment|app):(.+)$/.exec(n);if(r){let i=r[2],a=i.split(`/`).pop()??i,o=this.options.forms?.get(a)??this.options.forms?.get(i),s=o??a.replace(/\.form$/,``),c=this.single(e,`zeebe:FormDefinition`);c.formId=s,r[1]===`deployment`&&l(this.target,`8.6`)&&(c.bindingType=`deployment`),this.take(e,`camunda:formKey`),this.found(e,o?`form-camunda`:`form-camunda-unknown`,{form:o?s:i}),this.changed(e,`camunda:formKey="${n}"`,`zeebe:formDefinition formId="${s}"`,t(`app.migration.change.formRef`,{form:s}));return}if(/^embedded:/.test(n)){this.keep(e,`camunda:formKey`),this.found(e,`form-embedded`,{formKey:n});return}if(s||!l(this.target,`8.4`)){this.keep(e,`camunda:formKey`),this.found(e,`form-embedded`,{formKey:n},{variant:`here`,title:`The form key {formKey} has no Camunda 8 counterpart here`});return}this.single(e,`zeebe:FormDefinition`).externalReference=n,this.take(e,`camunda:formKey`),this.found(e,`form-external`,{formKey:n}),this.changed(e,`camunda:formKey="${n}"`,`zeebe:formDefinition externalReference="${n}"`,t(`app.migration.change.externalForm`,{formKey:n}))}else if(o){let n=`${this.process?.id??`process`}-${e.id}`,r=te(n,o);this.extraFiles.push({name:`${n}.form`,content:r.json,reason:t(`app.migration.extraFile.form`,{where:G(e)})}),this.single(e,`zeebe:FormDefinition`).formId=n,this.remove(e,o),this.found(e,`form-generated`,{form:`${n}.form`}),r.lost.length>0&&this.found(e,`form-generated-partly`,{lost:r.lost.join(`, `)}),this.changed(e,`camunda:formData`,`zeebe:formDefinition formId="${n}" and ${n}.form`,t(`app.migration.change.generatedForm`,{form:n}))}}decision(e){let n=this.get(e,`camunda:decisionRef`)??``,r=this.get(e,`camunda:decisionRefBinding`),i=this.get(e,`camunda:decisionRefVersion`),a=this.get(e,`camunda:decisionRefTenantId`),o=this.get(e,`camunda:resultVariable`),s=this.get(e,`camunda:mapDecisionResult`);if(r===`version`){this.keep(e,`camunda:decisionRefBinding`),this.keep(e,`camunda:decisionRefVersion`),this.keep(e,`camunda:decisionRef`),this.found(e,`binding-version`,{what:U(`decisionBound`,{name:n}),version:i??``});return}let c=h(n)?this.feel(e,`decision`,n):n;if(c===null){this.keep(e,`camunda:decisionRef`);return}let u=this.single(e,`zeebe:CalledDecision`);u.decisionId=c,u.resultVariable=o??`result`,r&&r!==`latest`&&(l(this.target,`8.6`)?(u.bindingType=r,r===`versionTag`&&i&&(u.versionTag=i)):this.found(e,`binding-dropped`,{binding:r,target:n})),[`camunda:decisionRef`,`camunda:decisionRefBinding`,`camunda:decisionRefVersion`,`camunda:resultVariable`,`camunda:mapDecisionResult`].forEach(t=>this.take(e,t)),this.found(e,`decision`,{decision:n,result:u.resultVariable}),o||this.found(e,`decision-result-variable`,{result:`result`}),s!==`singleEntry`&&o&&this.found(e,`decision-result`,{mapping:s??`resultList`,result:o}),a&&(this.keep(e,`camunda:decisionRefTenantId`),this.found(e,`tenant`,{tenant:a})),this.changed(e,`camunda:decisionRef="${n}"`,`zeebe:calledDecision decisionId="${c}" resultVariable="${u.resultVariable}"`,t(`app.migration.change.calledDecision`,{decision:c,result:u.resultVariable}))}callActivity(e){let n=K(e.calledElement),r=this.get(e,`camunda:calledElementBinding`),i=this.get(e,`camunda:calledElementVersion`),a=this.get(e,`camunda:calledElementVersionTag`),o=this.get(e,`camunda:calledElementTenantId`),s=this.get(e,`camunda:caseRef`);s&&([`camunda:caseRef`,`camunda:caseBinding`,`camunda:caseVersion`,`camunda:caseTenantId`].forEach(t=>this.keep(e,t)),this.found(e,`cmmn`,{case:s})),[`camunda:variableMappingClass`,`camunda:variableMappingDelegateExpression`].forEach(t=>{this.get(e,t)&&(this.keep(e,t),this.found(e,`call-activity-mapping-class`,{process:n??`the called process`}))}),o&&(this.keep(e,`camunda:calledElementTenantId`),this.found(e,`tenant`,{tenant:o}));let c=n??this.extensions(e,`zeebe:CalledElement`)[0]?.processId??`the called process`;if(this.extensions(e,`camunda:In`).filter(e=>K(e.businessKey)).forEach(t=>{this.keptValues.add(t),this.found(e,`call-activity-business-key`,{process:c})}),!n)return;if(r===`version`){this.keep(e,`camunda:calledElementBinding`),this.keep(e,`camunda:calledElementVersion`),this.found(e,`binding-version`,{what:U(`callBound`,{name:n}),version:i??``});return}let u=h(n)?this.feel(e,`called element`,n):n;if(u===null)return;let d=this.single(e,`zeebe:CalledElement`);d.processId=u,e.calledElement=void 0,r&&r!==`latest`&&(l(this.target,`8.6`)?(d.bindingType=r,r===`versionTag`&&a&&(d.versionTag=a)):this.found(e,`binding-dropped`,{binding:r,target:n})),[`camunda:calledElementBinding`,`camunda:calledElementVersion`,`camunda:calledElementVersionTag`].forEach(t=>this.take(e,t)),this.variables(e,d,n),this.found(e,`call-activity`,{process:n}),this.changed(e,`calledElement="${n}"`,`zeebe:calledElement processId="${u}"`,t(`app.migration.change.calledProcess`,{process:u}))}variables(e,t,n){let r=this.extensions(e,`camunda:In`),i=this.extensions(e,`camunda:Out`),a=e=>e.some(e=>K(e.variables)===`all`);t.propagateAllParentVariables=a(r),t.propagateAllChildVariables=a(i);let o=(t,r)=>t.forEach(t=>{if(K(t.variables)===`all`){t.local===!0&&this.found(e,`call-activity-local`,{process:n}),this.remove(e,t);return}if(K(t.businessKey))return;let i=K(t.target),a=K(t.sourceExpression),o=a?this.feel(e,`variable`,a):K(t.source)?`=${K(t.source)}`:`=null`;if(!i||o===null){this.keptValues.add(t),i||this.found(e,`input-output-manual`,{name:n,reason:U(`noTarget`)});return}t.local===!0&&this.found(e,`call-activity-local`,{process:n});let s=this.single(e,`zeebe:IoMapping`),c=this.moddle.create(r===`input`?`zeebe:Input`:`zeebe:Output`,{source:o,target:i});r===`input`?s.inputParameters=[...s.inputParameters??[],c]:s.outputParameters=[...s.outputParameters??[],c],this.remove(e,t)});o(r,`input`),o(i,`output`)}executionListeners(e){let n=this.extensions(e,`camunda:ExecutionListener`);n.length!==0&&n.forEach(n=>{let r=K(n.event)??`start`,i=K(n.class)??K(n.delegateExpression)??K(n.expression)??(n.script?`${K(n.script.scriptFormat)??``} script`:`listener`),a=(t,a)=>{this.keptValues.add(n),this.found(e,`execution-listener-unsupported`,{event:r,name:i,reason:U(t,a)})};if(!l(this.target,`8.6`))return a(`listenersOldTarget`,{target:this.target});if(r===`take`||e.$type===`bpmn:SequenceFlow`)return a(`listenersNoSequenceFlow`);if(!re.test(e.$type))return a(`listenersNoOn`,{element:W(e.$type)});if(r===`start`&&(e.$type===`bpmn:BoundaryEvent`||e.$type===`bpmn:StartEvent`&&e.$parent?.$type!==`bpmn:SubProcess`))return a(`listenersEndOnly`,{element:W(e.$type)});if((n.fields??[]).length>0)return a(`listenersFields`);let o=this.listenerJob(e,n,`executionListener`,r);if(!o)return a(`listenersExpression`);let s=this.single(e,`zeebe:ExecutionListeners`);s.listeners=[...s.listeners??[],this.moddle.create(`zeebe:ExecutionListener`,{eventType:r,type:o})],this.remove(e,n),this.found(e,`execution-listener`,{event:r,name:i,jobType:o}),this.changed(e,`camunda:executionListener ${r} ${i}`,`zeebe:executionListener ${r} type="${o}"`,t(`app.migration.change.listener`,{event:r,name:i,jobType:o}))})}taskListeners(e){this.extensions(e,`camunda:TaskListener`).forEach(r=>{let i=K(r.event)??`create`,a=K(r.class)??K(r.delegateExpression)??K(r.expression)??(r.script?`${K(r.script.scriptFormat)??``} script`:`listener`),o=(t,n)=>{this.keptValues.add(r),this.found(e,`task-listener-unsupported`,{event:i,name:a,reason:U(t,n)})},s=n(H,i);if(!l(this.target,`8.8`))return o(`taskListenersOldTarget`,{target:this.target});if(!s)return o(`taskListenersNoEvent`,{event:i});if((r.fields??[]).length>0)return o(`listenersFields`);let c=this.listenerJob(e,r,`taskListener`,i);if(!c)return o(`listenersExpression`);let u=this.single(e,`zeebe:TaskListeners`);u.listeners=[...u.listeners??[],this.moddle.create(`zeebe:TaskListener`,{eventType:s,type:c})],this.remove(e,r),this.found(e,`task-listener`,{event:i,name:a,jobType:c}),this.changed(e,`camunda:taskListener ${i} ${a}`,`zeebe:taskListener ${s} type="${c}"`,t(`app.migration.change.listener`,{event:i,name:a,jobType:c}))})}listenerJob(e,t,n,r){let i=K(t.class);if(i){let t=m(`class`,i);return this.delegate(e,{kind:`class`,value:i,role:n,jobType:t,event:r}),t}let a=/^[$#]\{\s*([A-Za-z_]\w*)\s*\}$/.exec(K(t.delegateExpression)?.trim()??``)?.[1];if(a){let t=m(`bean`,a);return this.delegate(e,{kind:`bean`,value:a,role:n,jobType:t,event:r}),t}return null}removeMarkers(e){let t=(e,n)=>{e&&typeof e==`object`&&!n.has(e)&&(n.add(e),e.extensionElements?.values&&(e.extensionElements.values=e.extensionElements.values.filter(e=>e.$type!==`conversion:message`),e.extensionElements.values.length===0&&(e.extensionElements=void 0)),[`rootElements`,`flowElements`,`eventDefinitions`,`laneSets`,`lanes`,`artifacts`].forEach(r=>(e[r]??[]).forEach(e=>t(e,n))),e.loopCharacteristics&&t(e.loopCharacteristics,n))};t(e,/* @__PURE__ */ new Set)}leftovers(){let e=/* @__PURE__ */ new Set,t=n=>{n&&typeof n==`object`&&!e.has(n)&&n.$descriptor&&(e.add(n),(n.$descriptor.properties??[]).forEach(e=>{if(e.ns?.prefix!==`camunda`||!e.isAttr||this.skipped(this.anchor(n)))return;let t=n.get(e.name);t==null||t===``||this.isKept(n,e.ns.name)||(e.default===void 0||t!==e.default)&&(this.found(n,`unknown-attribute`,{attribute:`${e.ns.name}="${String(t)}"`}),this.keep(n,e.ns.name))}),Object.keys(n.$attrs??{}).filter(e=>e.startsWith(`camunda:`)).forEach(e=>{this.isKept(n,e)||this.skipped(this.anchor(n))||(this.found(n,`unknown-attribute`,{attribute:`${e}="${n.$attrs[e]}"`}),this.keep(n,e))}),(n.extensionElements?.values??[]).forEach(e=>{if(typeof e.$type==`string`&&e.$type.startsWith(`camunda:`)&&!this.keptValues.has(e)&&!this.skipped(this.anchor(n))){let t=oe.has(e.$type)?`left after conversion`:W(e.$type);this.found(n,`unknown-attribute`,{attribute:`camunda:${e.$type.slice(8).replace(/^./,e=>e.toLowerCase())} (${t})`}),this.keptValues.add(e)}}),[`rootElements`,`flowElements`,`eventDefinitions`,`laneSets`,`lanes`,`artifacts`].forEach(e=>(n[e]??[]).forEach(t)),[`loopCharacteristics`,`conditionExpression`,`completionCondition`,`loopCardinality`,`timeDate`,`timeDuration`,`timeCycle`,`condition`].forEach(e=>t(n[e])))};t(this.definitions)}writeMarkers(){this.marks.size!==0&&(this.marks.forEach((e,t)=>{t.extensionElements||(t.extensionElements=this.moddle.create(`bpmn:ExtensionElements`,{values:[]}),t.extensionElements.$parent=t);let n=e.map(e=>{let n=this.moddle.createAny(`conversion:message`,R,{severity:e.conversion===`manual`?`TASK`:`REVIEW`,$body:`${e.title}. ${e.action}`});return n.$parent=t.extensionElements,n});t.extensionElements.values=[...this.values(t),...n]}),this.definitions.$attrs[`xmlns:conversion`]=R)}platform(){let e=this.definitions.$attrs??(this.definitions.$attrs={});if((this.options.skip?.size??0)>0){e[`xmlns:zeebe`]=L;return}let n=e[`modeler:executionPlatform`];e[`xmlns:modeler`]=`http://camunda.org/schema/modeler/1.0`,e[`modeler:executionPlatform`]=u,e[`modeler:executionPlatformVersion`]=`${this.target}.0`,e[`xmlns:zeebe`]=L,this.findings.some(e=>e.conversion===`manual`)||this.keptCount>0||delete e[`xmlns:camunda`],this.found(this.definitions,`platform`,{target:this.target}),this.changed(this.definitions,`executionPlatform ${n??`unset`}`,`${u} ${this.target}.0`,t(`app.migration.change.platform`,{target:this.target})),this.changes[this.changes.length-1].file=!0}};function q(e){return e.includes(`executionPlatform="Camunda Cloud"`)?!1:e.includes(`http://camunda.org/schema/1.0/bpmn`)||e.includes(`http://operaton.org/schema/1.0/bpmn`)||e.includes(`executionPlatform="${d}"`)}function ue(e){return e.includes(`http://operaton.org/schema/1.0/bpmn`)?e.split(`http://operaton.org/schema/1.0/bpmn`).join(`http://camunda.org/schema/1.0/bpmn`).replace(/<[^>]*>/g,e=>e.replace(/(^<\/?|\s)operaton:(?=[A-Za-z])/g,`$1camunda:`).replace(/xmlns:operaton=/g,`xmlns:camunda=`)):e}async function de(e,n={}){if(!q(e)&&/<(?:\w+:)?definitions\b/.test(e))return{ok:!0,source:!1,text:e,changes:[],open:[],extraFiles:[],findings:[],delegates:[]};let i=await r(ue(e),`migration`);if(!i)return{ok:!1,source:!1,text:e,changes:[],open:[],extraFiles:[],findings:[],delegates:[],failure:t(`app.migration.failure.notBpmn`)};if(!q(e))return{ok:!0,source:!1,text:e,changes:[],open:[],extraFiles:[],findings:[],delegates:[]};let o=new le(i,n);return o.run(),{ok:!0,source:!0,text:await a(i),changes:o.changes,open:o.findings.filter(e=>e.conversion!==`automatic`),extraFiles:o.extraFiles,findings:o.findings,delegates:o.delegates}}const fe={"http://www.omg.org/spec/DMN/20151101/dmn.xsd":`1.1`,"http://www.omg.org/spec/DMN/20180521/MODEL/":`1.2`,"https://www.omg.org/spec/DMN/20180521/MODEL/":`1.2`};function J(e,t,n,r,i){let{variant:a,...o}=n,s={...A[e],...o};return{rule:`migration/${e}`,severity:s.severity,conversion:s.conversion,...N(e,s,t,a).text,elements:i?[i]:[],where:r,...s.link?{link:s.link}:{}}}function Y(e){let t=typeof e?.name==`string`?e.name.replace(/\s+/g,` `).trim():``,n=typeof e?.label==`string`?e.label.trim():``;return t||n||e?.id||`the decisions`}function X(e){return typeof e!=`string`||e===``||/feel/i.test(e)}function pe(e){try{let t=f(e);return t.local===`definitions`?t.attrs:{}}catch{return{}}}async function me(e,r={}){let i=r.target??`8.8`,a=o(`migration`),{xml:c,from:l}=await s(e),f=pe(c),m=f.xmlns??``;if(!l&&m&&m!==`https://www.omg.org/spec/DMN/20191111/MODEL/`){let t={id:f.id,name:f.name},r=[];return r.push(J(`dmn-version`,{version:n(fe,m)??m},{},t.name??t.id??`the decisions`,t.id)),{ok:!0,source:!0,text:e,findings:r,changes:[]}}let g;try{({rootElement:g}=await a.fromXML(c,`dmn:Definitions`))}catch{g=null}if(!g)return{ok:!1,source:!1,text:e,findings:[],changes:[],failure:t(`app.migration.failure.notDmn`)};let _=g.$attrs??{},v=_[`modeler:executionPlatform`];if(v!==d)return{ok:!0,source:!1,text:e,findings:[],changes:[]};let y=[],b=[];l&&(y.push(J(`dmn-version`,{version:l},{severity:`info`,conversion:`automatic`,variant:`converted`,detail:`Camunda 8 reads DMN 1.3, so the file is written as DMN 1.3.`,action:`Nothing to do.`},Y(g),g.id)),b.push({elementId:g.id??``,where:Y(g),before:`DMN ${l}`,after:`DMN 1.3`,plain:t(`app.migration.change.dmnVersion`)}));let x=(e,t,n={})=>{y.push(J(t,n,{},Y(e),e?.id))},S=(e,t,n,r)=>{b.push({elementId:e?.id??``,where:Y(e),before:t,after:n,...r?{plain:r}:{}})};X(g.expressionLanguage)||x(g,`dmn-expression-language`,{what:`The decision file`,language:String(g.expressionLanguage)});let C=(e,n,r,i)=>{let a=n?.expressionLanguage;if(X(a))return;let o=n.text??``;if(i||!/^juel$/i.test(String(a))||!h(o)){x(e,`dmn-expression-language`,{what:r,language:String(a)});return}let s=p(o);if(!s.ok){x(e,`expression-manual`,{expression:o,reason:s.reason});return}let c=s.feel.replace(/^=/,``);n.text=c,n.expressionLanguage=void 0,x(e,`dmn-juel`,{what:r,feel:c}),S(e,o,c,t(`app.migration.change.expressionRewritten`))};(g.drgElement??[]).filter(e=>e.$type===`dmn:Decision`).forEach(e=>{let n=e.get(`camunda:historyTimeToLive`);n!==void 0&&(e.set(`camunda:historyTimeToLive`,void 0),x(e,`dmn-history-time-to-live`,{decision:Y(e)}),S(e,`camunda:historyTimeToLive="${n}"`,t(`app.migration.change.removed`),t(`app.migration.change.dmnHistoryTimeToLive`)));let r=e.decisionLogic;r?.$type===`dmn:LiteralExpression`&&C(e,r,t(`app.migration.detail.decisionNamed`,{name:Y(e)}),!1),r?.$type===`dmn:DecisionTable`&&((r.input??[]).forEach(e=>{let n=e.get(`camunda:inputVariable`);n&&x(e,`dmn-input-variable`,{input:Y(e),variable:n}),e.inputExpression&&C(e,e.inputExpression,t(`app.migration.detail.inputNamed`,{name:Y(e)}),!1)}),(r.rule??[]).forEach(e=>{(e.inputEntry??[]).forEach(n=>C(e,n,t(`app.migration.detail.ruleCondition`,{rule:e.id}),!0)),(e.outputEntry??[]).forEach(n=>C(e,n,t(`app.migration.detail.ruleOutput`,{rule:e.id}),!1))}))});let w=y.some(e=>e.conversion===`manual`);y.every(e=>e.rule===`migration/dmn-version`)&&x(g,`dmn-carries-over`),_[`xmlns:modeler`]=_[`xmlns:modeler`]??`http://camunda.org/schema/modeler/1.0`,S(g,`executionPlatform ${v}`,`Camunda Cloud ${i}.0`,t(`app.migration.change.dmnPlatform`,{target:i})),_[`modeler:executionPlatform`]=u,_[`modeler:executionPlatformVersion`]=`${i}.0`,!w&&g.$attrs?.[`xmlns:camunda`]&&delete g.$attrs[`xmlns:camunda`];let{xml:T}=await a.toXML(g,{format:!0});return{ok:!0,source:!0,text:T,findings:y,changes:b}}function he(e,n={}){let r=n.target??`8.8`,i;try{let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`not a form`);i=t}catch{return{ok:!1,source:!1,text:e,findings:[],changes:[],failure:t(`app.migration.failure.notForm`)}}if(i.executionPlatform!==d)return{ok:!0,source:!1,text:e,findings:[],changes:[]};let a=A[`form-platform`],o=typeof i.id==`string`?i.id:``,s={rule:`migration/form-platform`,severity:a.severity,conversion:a.conversion,...N(`form-platform`,a).text,elements:o?[o]:[],where:o||`the form`,link:a.link},c=/^\{\n( +)"/.exec(e)?.[1].length??2,l={...i,executionPlatform:u,executionPlatformVersion:`${r}.0`};return{ok:!0,source:!0,text:`${JSON.stringify(l,null,c)}${e.endsWith(`
2
- `)?`
3
- `:``}`,findings:[s],changes:[{elementId:o,where:o||`the form`,before:`executionPlatform ${String(i.executionPlatform)}`,after:`Camunda Cloud ${r}.0`,plain:t(`app.migration.change.formPlatform`,{target:r})}]}}function ge(e){return c(e)}async function Z(e,t,n={}){let r=ge(e);switch(r){case`bpmn`:{let i=await de(t,n);return{path:e,kind:r,ok:i.ok,source:i.source,text:i.text,changes:i.changes,findings:i.findings,open:i.open,delegates:i.delegates,extraFiles:i.extraFiles,failure:i.failure}}case`dmn`:{let i=await me(t,n);return{path:e,kind:r,ok:i.ok,source:i.source,text:i.text,changes:i.changes,findings:i.findings,open:i.findings.filter(e=>e.conversion!==`automatic`),delegates:[],extraFiles:[],failure:i.failure}}case`form`:{let i=he(t,n);return{path:e,kind:r,ok:i.ok,source:i.source,text:i.text,changes:i.changes,findings:i.findings,open:i.findings.filter(e=>e.conversion!==`automatic`),delegates:[],extraFiles:[],failure:i.failure}}default:return null}}function _e(e){let t=/^(.*?)((?:\.bpmn(?:20)?\.xml)|\.bpmn|\.dmn|\.form)$/i.exec(e);return t?`${t[1]}.c8${t[2]}`:`${e}.c8`}function Q(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return t<0?``:e.slice(0,t)}function $(e,t){let n=Q(e);return n?`${n}/${t}`:t}async function ve(e,t,n={}){let r=await Z(e,t,n);return r?{...r,changed:r.ok&&r.source&&r.text!==t,copy:_e(e),files:r.extraFiles.map(t=>({path:$(e,t.name),content:t.content,reason:t.reason}))}:null}function ye(e){let t=/* @__PURE__ */ new Map;return e.filter(e=>/\.form$/i.test(e.path)).forEach(e=>{try{let n=JSON.parse(e.text).id;typeof n==`string`&&n&&t.set(e.path.split(/[\\/]/).pop()??e.path,n)}catch{return}}),t}export{Z as a,$ as i,Q as n,A as o,ye as r,N as s,ve as t};
@@ -1,6 +0,0 @@
1
- import{p as e}from"./chunk-license-BG88gpDZ.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{n}from"./chunk-status-CmYxwOCn.js";import{t as r}from"./chunk-table-BOiaGWwY.js";import{a as i}from"./chunk-moddle-D3Ym38EZ.js";import{g as a,h as o,l as s,u as c}from"./chunk-engine-CxgdJ2wO.js";import{l}from"./chunk-model-f8AzYUK7.js";import{u}from"./chunk-file-BswMa3FN.js";import{_ as d,o as f}from"./chunk-tests-CEEXnWOp.js";import{L as p}from"./chunk-load-rfn3E0t5.js";import{o as m}from"./chunk-failure-D5brrYW2.js";import{a as h,i as g,n as _,r as v,t as y}from"./chunk-context-rCJvBM9p.js";import{t as ee}from"./chunk-plural-Dn-7ulHf.js";import{t as b}from"./chunk-diagrams-BukAOL0g.js";import x from"node:path";import{readFileSync as S}from"node:fs";const C=1e3;function w(e){return/\.form$/i.test(e)?`application/json`:`application/xml`}function T(e,t){let n=(e,t)=>({name:e,content:t}),r=[];return e.engine===`CAMUNDA_8`?e.tenantId&&r.push(n(`tenantId`,e.tenantId)):(r.push(n(`deployment-name`,e.name),n(`deployment-source`,e.source)),r.push(n(`enable-duplicate-filtering`,String(e.changedOnly)),n(`deploy-changed-only`,String(e.changedOnly))),e.tenantId&&r.push(n(`tenant-id`,e.tenantId)),e.activationTime&&r.push(n(`deployment-activation-time`,e.activationTime))),t.forEach(t=>r.push({name:e.engine===`CAMUNDA_8`?`resources`:t.name,filename:t.name,contentType:w(t.name),content:t.content})),{method:`POST`,path:e.engine===`CAMUNDA_8`?`/deployments`:`/deployment/create`,parts:r}}function E(e){let t=Number(e??0);return Number.isFinite(t)?t:0}function te(e,t){try{let n=JSON.parse(t);if(e===`CAMUNDA_8`)return(n.deployments??[]).flatMap(e=>[...e.processDefinition?[{kind:`process`,id:String(e.processDefinition.processDefinitionKey??``),key:String(e.processDefinition.processDefinitionId??``),version:E(e.processDefinition.processDefinitionVersion)}]:[],...e.decisionDefinition?[{kind:`decision`,id:String(e.decisionDefinition.decisionDefinitionKey??``),key:String(e.decisionDefinition.decisionDefinitionId??``),version:E(e.decisionDefinition.version)}]:[]]);let r=(e,t)=>Object.values(n[e]??{}).map(e=>({kind:t,id:String(e?.id??``),key:String(e?.key??``),version:E(e?.version)}));return[...r(`deployedProcessDefinitions`,`process`),...r(`deployedDecisionDefinitions`,`decision`)]}catch{return[]}}function ne(e,t){let n=t.kind===`decision`?`decision`:`process`;return{method:`GET`,path:e===`CAMUNDA_8`?`/${n}-definitions/${encodeURIComponent(t.id)}`:`/${n}-definition/${encodeURIComponent(t.id)}`}}function D(e){return typeof e.body==`string`?e.body:``}function O(e){return e instanceof Error?e.message:String(e)}function k(e){let t=D(e);if(e.status===0)return t;try{let e=JSON.parse(t),n=[e.message,e.detail,e.title].find(e=>typeof e==`string`);if(typeof n==`string`)return n}catch{return t}return t}function re(e){let t=k(e);return t===D(e)?t.slice(0,300):t}function ie(e){let t=[],n=null,r=null;for(let i of e.split(`
2
- `)){let e=i.trim(),a=/^'([^']+)':\s*(.*)$/.exec(e);a&&(n=a[1],r=null,e=a[2]);let o=/^-?\s*Element:\s*(\S+)/.exec(e);if(o){r=o[1];continue}let s=/^-?\s*ERROR:\s*(.+)$/.exec(e);s&&t.push({file:n,element:r,text:s[1].trim(),line:null})}return t}function A(e){let t=e.split(`
3
- `)[0].trim(),n=t.indexOf(`. `);return(n>0?t.slice(0,n):t).replace(/:$/,``)}function ae(e){try{let t=JSON.parse(e).details??{};return Object.entries(t).flatMap(([e,t])=>(t.errors??[]).map(t=>({file:e,element:null,text:A(String(t.message??``)),line:typeof t.line==`number`?t.line:null})))}catch{return[]}}function oe(e){let t=[];for(let n of e.split(`Warnings:`)[0].split(`
4
- `)){let e=n.trim();if(!e.startsWith(`*`))continue;let r=e.slice(1).split(`|`).map(e=>e.trim());if(r.length<2||!r[1])continue;let i=/line\s+(\d+)/.exec(r[2]??``);t.push({file:r[1].replace(/^resource\s+/,``),element:null,text:A(r[0]),line:i?Number(i[1]):null})}return t}function se(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ce(e,n,r,i=``){let a=e===`CAMUNDA_8`?[]:ae(i),o=e===`CAMUNDA_8`?ie(r):a.length>0?a:oe(r),s=n.map(e=>e.name),c=/* @__PURE__ */ new Map;for(let e of o){let t=(e.file&&s.find(t=>t===e.file||e.file?.endsWith(`/${t}`)))??(e.element?n.find(t=>RegExp(`\\bid=["']${se(e.element)}["']`).test(t.content))?.name:void 0);t&&c.set(t,[...c.get(t)??[],e])}return[...c].map(([e,n])=>{let[r,...i]=n,a=[r.line===null?``:t(`app.deploy.problemLine`,{line:r.line}),i.length>0?t(`app.deploy.andNMore`,{number:i.length}):``].filter(Boolean),o=`${r.element?`${r.element}: `:``}${r.text}`;return{file:e,reason:a.length>0?`${o} (${a.join(`, `)})`:o}})}async function le(e,n,r,i){let a=r.sleep??(e=>new Promise(t=>setTimeout(t,e))),o=r.now??(()=>performance.now());for(let s of n){let n=o()+30*C,c=!1;for(let t=0;t<30&&!c&&o()<n;t+=1){let t=await r.ask(ne(e,s)).catch(()=>({status:0,body:``}));c=t.status>=200&&t.status<300,c||await a(C)}if(i.push(c?t(`app.deploy.definitionIsLive`,{key:s.key,version:s.version}):t(`app.deploy.notConfirmedInTime`,{seconds:30,key:s.key})),!c)return!1}return!0}async function j(e,n,r){let i=n.map(e=>e.name),a=[],o=async e=>{if(!r.hook)return{ok:!0,lines:[]};try{return await r.hook(e,i)}catch(e){return{ok:!1,lines:[O(e)]}}},s=await o(`preDeploy`);if(a.push(...s.lines),!s.ok)return{ok:!1,status:0,message:t(`app.deploy.preDeployHookFailed`),definitions:[],lines:a};let c;try{c=await r.ask(T(e,n))}catch(e){return{ok:!1,status:0,message:t(`app.deploy.unableToDeploy`,{reason:O(e)}),definitions:[],lines:a}}if(c.status<200||c.status>=300){let r=c.status===0?[]:ce(e.engine,n,k(c),D(c)),i=c.status===0?D(c):r.length>0?[t(`app.deploy.refusedNothingDeployed`,{count:r.length}),...r.map(e=>`${e.file}: ${e.reason}`)].join(`
5
- `):t(`app.deploy.answeredStatus`,{status:c.status,reason:re(c)});return{ok:!1,status:c.status,message:i,definitions:[],lines:a,refused:r}}let l=te(e.engine,D(c)),u=!r.wait||await le(e.engine,l,r,a);r.hook&&a.push(...(await o(`postDeploy`)).lines);let d=l.map(e=>`${e.key} v${e.version}`).join(`, `);return{ok:u,status:c.status,message:u?d?t(`app.deploy.deployedAs`,{files:i.join(`, `),definitions:d}):t(`app.deploy.deployedFiles`,{files:i.join(`, `)}):t(`app.deploy.definitionsNotShownInTime`),definitions:l,lines:a}}const M=/\.(bpmn20\.xml|bpmn\.xml|bpmn)$/i,N=[`process`,`decision`,`form`];function P(e){return e.replace(/\\/g,`/`)}function F(e){return P(e).split(`/`).pop()??e}function ue(e){return M.test(e)?`process`:/\.dmn$/i.test(e)?`decision`:/\.form$/i.test(e)?`form`:null}function I(e,t){let n=P(e).split(`/`).slice(0,-1),r=P(t).split(`/`).slice(0,-1),i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i+=1;return i}async function L(e){let t=[...l(await i(e)).values()],n=e=>[...new Set(t.map(e).filter(e=>!!e))];return{process:n(e=>e.calledProcess),decision:n(e=>e.decision),form:n(e=>e.form)}}async function R(e,t){let n=[{path:e.path,name:F(e.path),content:e.content}],r=/* @__PURE__ */ new Set([P(e.path)]),i={process:/* @__PURE__ */ new Set,decision:/* @__PURE__ */ new Set,form:/* @__PURE__ */ new Set},a=await L(e.content);d(`process`,e.content).forEach(e=>i.process.add(e));let o=/* @__PURE__ */ new Map,s=async e=>{let n=[];for(let i of t){if(ue(i.path)!==e||r.has(P(i.path)))continue;let t=o.get(i.path);if(!t){let n=await i.read().catch(()=>``);t={content:n,ids:d(e,n)},o.set(i.path,t)}n.push({path:i.path,...t})}return n};for(;N.some(e=>a[e].some(t=>!i[e].has(t)));)for(let t of N){let o=a[t].filter(e=>!i[t].has(e));if(a[t]=[],o.length===0)continue;let c=await s(t);for(let s of o){i[t].add(s);let o=c.filter(e=>e.ids.includes(s)&&!r.has(P(e.path))).sort((t,n)=>I(e.path,n.path)-I(e.path,t.path))[0];if(o&&(r.add(P(o.path)),n.push({path:o.path,name:F(o.path),content:o.content}),o.ids.forEach(e=>i[t].add(e)),t===`process`)){let e=await L(o.content);N.forEach(t=>a[t].push(...e[t]))}}}return n}function de(e,t){let n=P(e),r=F(e).replace(/\.json$/i,``);return t.find(e=>P(u(e))===n)??t.find(e=>F(e).replace(M,``)===r)??null}async function fe(e,t){let n=[],r=/* @__PURE__ */ new Set,i=e=>{let t=P(e.path);r.has(t)||(r.add(t),n.push(e))};for(let n of e)M.test(n.path)?(await R(n,t)).forEach(i):i({path:n.path,name:F(n.path),content:n.content});return n}function z(e){return e!=null&&e!==!1}function B(e){return V(y(e).values)}function V(e){let t=g(e.deployment),n=p(h(t.url)??``);return n?{engine:h(e.engine)??`camunda-7`,url:n.replace(/\/$/,``),name:h(t.name)??`Penstock deployment`,tenantId:h(t.tenantId),source:h(t.source)??`penstock`,changedOnly:t.changedOnly!==!1,forTests:t.forTests===!0,protected:z(t.protected),auth:g(t.auth)}:null}const H=15e3;async function pe(e,n,r){let i=p(h(e.tokenUrl)??``),a=h(e.clientId),o=n.PENSTOCK_CLIENT_SECRET;if(!i||!a||!o)throw Error(t(`app.output.authProblem.oauthNeedsKeys`));let s=new URLSearchParams({grant_type:`client_credentials`,client_id:a,client_secret:o}),c=h(e.audience);c&&s.set(`audience`,c);let l=AbortSignal.timeout(r),u,d;try{u=await fetch(i,{method:`POST`,body:s,signal:l}),d=await u.text()}catch(e){throw Error(t(`app.output.authProblem.oauthUnreachable`,{url:i,reason:m(e)}))}if(!u.ok)throw Error(t(`app.output.authProblem.oauthFailed`,{status:u.status,body:d.slice(0,300)}));let f=null;try{f=JSON.parse(d)}catch{f=null}let g=f?.access_token;if(typeof g!=`string`)throw Error(t(`app.output.authProblem.oauthNoToken`));return g}function U(e,n){let r=`password`in e?[t(`app.output.authNote.passwordNotRead`)]:[];if(n.PENSTOCK_TOKEN)return{problem:null,notes:r};let i=h(e.type)??`none`;if(i===`basic`){if(!h(e.username))return{problem:t(`app.output.authProblem.basicWithoutUsername`),notes:r};if(!n.PENSTOCK_PASSWORD)return{problem:t(`app.output.authProblem.basicWithoutPassword`),notes:r}}return i===`oauth`&&(!h(e.tokenUrl)||!h(e.clientId)||!n.PENSTOCK_CLIENT_SECRET)?{problem:t(`app.output.authProblem.oauthWithoutKeys`),notes:r}:{problem:null,notes:r}}function W(e){let n=h(e.type)??`none`;return t(n===`basic`?`app.output.authHint.basic`:n===`oauth`?`app.output.authHint.oauth`:`app.output.authHint.setIt`)}async function G(e,t,n=H){if(t.PENSTOCK_TOKEN)return{Authorization:`Bearer ${t.PENSTOCK_TOKEN}`};let r=h(e.type)??`none`;if(r===`basic`){let n=h(e.username)??``,r=t.PENSTOCK_PASSWORD??``;return{Authorization:`Basic ${Buffer.from(`${n}:${r}`).toString(`base64`)}`}}return r===`oauth`?{Authorization:`Bearer ${await pe(e,t,n)}`}:{}}function me(e){return/\.form$/i.test(e)?`form`:/\.dmn$/i.test(e)?`decision`:`process`}function K(e,t){let n=t.trim().replace(/\/+$/,``);return o(e)?n.endsWith(`/v2/deployments`)?n:n.endsWith(`/v2`)?`${n}/deployments`:`${n}/v2/deployments`:n.endsWith(`/deployment/create`)?n:`${n}/deployment/create`}function he(e){return K(e.engine,e.url).replace(o(e.engine)?/\/deployments$/:/\/deployment\/create$/,``)}function q(e){return s(e.engine)}function ge(e){return{engine:q(e),name:e.name,source:e.source,tenantId:e.tenantId??null,changedOnly:e.changedOnly}}const J=2e3,Y=3e4;function X(e,t=Y){return async n=>{let r=await G(e.auth,process.env,t),i=n.body;if(n.parts){let e=new FormData;n.parts.forEach(t=>{t.filename?e.append(t.name,new Blob([t.content],{type:t.contentType}),t.filename):e.append(t.name,t.content)}),i=e}else n.body!==void 0&&(r[`Content-Type`]=`application/json`);try{let a=await fetch(`${he(e)}${n.path}`,{method:n.method,headers:r,body:i,signal:AbortSignal.timeout(t)}),o=await a.text();return{status:a.status,body:a.ok||o.length<=J?o:`${o.slice(0,J)}...`}}catch(e){return{status:0,body:m(e)}}}}async function Z(e){let t=/* @__PURE__ */ new Map;for(let n of e)t.set(x.resolve(n),y(n).root);let n=/* @__PURE__ */ new Map;for(let e of new Set(t.values()))for(let t of[...b(e),...f(e)])n.set(x.resolve(t),{path:x.resolve(t),read:async()=>S(t,`utf8`)});let r=await fe([...t.keys()].map(e=>({path:e,content:S(e,`utf8`)})),[...n.values()]),i=new Map(e.map(e=>[x.resolve(e),e]));return r.map(e=>i.get(e.path)??e.path)}function Q(e){return{status:``,endpoint:``,files:``,target:``,details:e}}function $(e){return{...Q(e),status:n(`note`)}}function _e(e){return r(e,{columns:[{name:`status`,header:t(`app.cli.header.status`),minWidth:6},{name:`endpoint`,header:t(`app.cli.header.endpoint`)},{name:`files`,header:t(`app.cli.header.files`)},{name:`target`,header:t(`app.cli.header.target`)},{name:`details`,header:t(`app.cli.header.details`)}]})}async function ve(r,i,o,s={}){let l=r.filter(e=>B(e)===null),u=r.filter(e=>{let t=B(e);return t!==null&&a(t.engine)}),d=r.filter(e=>{let t=B(e);return t!==null&&!a(t.engine)}),f=_(d,e=>{let t=B(e);return t?`${t.engine}|${t.url}|${t.name}|${t.tenantId??``}`:``},e=>B(e)),p=[],m=0;for(let e of l)p.push({status:n(`skip`),endpoint:``,files:v(e),target:``,details:t(`app.output.noDeploymentUrl`)});for(let e of u)p.push({status:n(`skip`),endpoint:``,files:v(e),target:``,details:t(`app.output.noDeployFor`,{engine:c(B(e)?.engine)})});for(let{key:r,files:a}of f.values()){let c=K(r.engine,r.url),l=await Z(a),u=U(r.auth,process.env),d=await import(`./chunk-promotion-DchO6xoC.js`),f=y(a[0]).root,h=d.environmentName(f),g=l;if(s.onlyChanged&&!u.problem){let e=await d.onlyChanged(f,h,r,l);g=e.send,e.note&&p.push($(e.note));for(let t of e.skipped)p.push({status:n(`skip`),endpoint:c,files:v(t.file),target:r.name,details:t.reason});if(g.length===0)continue}let _={endpoint:c,files:ee(g.length,`app.output.count.file`),target:r.name},b=g.map(e=>v(e)).join(`, `);if(i){u.problem&&p.push($(u.problem)),p.push(...u.notes.map($)),p.push({status:n(`wouldSend`),..._,details:b});continue}if(u.problem){m+=1,p.push({status:n(`fail`),..._,details:u.problem},...u.notes.map(Q));continue}let C=g.map(e=>({name:x.basename(e),content:S(e,`utf8`)}));if(r.protected&&e(process.env)){let{requireFeature:e}=await import(`./chunk-features-DzAP8JmI.js`),r=await e(`promotion`);if(r){m+=1,p.push({status:n(`fail`),..._,details:r.lines[0]},...r.lines.slice(1).map(Q),Q(t(`app.promotion.deploy.protectedNothingSent`,{name:h})));continue}}if(r.protected){let{contentHash:e}=await import(`./chunk-normalise-7rDhUUFJ.js`),r=d.protect({root:f,name:h,isProtected:!0,confirm:s.confirm,approveFile:s.approveFile,files:g.map((t,n)=>({name:x.relative(f,x.resolve(t)).split(x.sep).join(`/`),hash:e(me(t),C[n].content).hash}))});if(r.blockers.length>0){m+=1,p.push({status:n(`fail`),..._,details:r.blockers[0]},...r.blockers.slice(1).map(Q),Q(t(`app.promotion.deploy.protectedNothingSent`,{name:h})));continue}}let w=await j(ge(r),C,{ask:X(r),wait:o});if(w.status<200||w.status>=300){m+=1;let[e,...i]=w.message.split(`
6
- `);p.push({status:n(`fail`),..._,details:e},...i.map(Q)),(w.status===401||w.status===403)&&p.push(Q(t(`app.output.credentialsRefused`,{hint:W(r.auth)})))}else p.push({status:n(`sent`),..._,details:b},...[...w.lines,...u.notes].map(Q)),w.ok&&d.recordAfterDeploy(f,h,g,w),w.ok||(m+=1)}let h=p.length>0?_e(p):[];return d.length===0?{ok:!1,lines:[...h,t(`app.output.nothingToDeploy`)]}:{ok:m===0,refused:!1,lines:h}}export{T as _,G as a,K as c,z as d,B as f,j as g,R as h,U as i,q as l,de as m,H as n,W as o,V as p,X as r,ve as s,Y as t,Z as u};
@@ -1 +0,0 @@
1
- export{s as deployCommand}from"./chunk-deploy-l4MdFfn8.js";
@@ -1 +0,0 @@
1
- import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{n}from"./chunk-status-CmYxwOCn.js";import{t as r}from"./chunk-table-BOiaGWwY.js";import{f as i,p as a}from"./chunk-model-f8AzYUK7.js";import{s as o}from"./chunk-failure-D5brrYW2.js";import{r as s}from"./chunk-context-rCJvBM9p.js";import{t as c}from"./chunk-plural-Dn-7ulHf.js";import{n as l}from"./chunk-diagrams-BukAOL0g.js";import{readFileSync as u}from"node:fs";async function d(){let e=await import(`bpmn-moddle`),t=e.BpmnModdle??e.default;if(!t)throw Error(`bpmn-moddle did not export a constructor`);return new t}async function f(){let{dmnModdleByFlavour:e}=await import(`./chunk-moddle-DQIWChLZ.js`);return e(`plain`)}function p(e,t){return Object.entries(t).map(([t,n])=>{let r=n,i=r?.model??r;return{change:e,id:t,type:i?.$type?i.$type.replace(/^[a-z]+:/,``):``,...i?.name?{name:i.name}:{}}})}function m(e,t){return Object.entries(t).map(([t,n])=>{let r=n,i=r?.model??r,a=i?.name?` "${i.name}"`:``,o=i?.$type?i.$type.replace(/^[a-z]+:/,``):``,s=r?.attrs?` (${Object.keys(r.attrs).join(`, `)})`:``;return`${e.padEnd(8)} ${o}${a} ${t}${s}`.trimEnd()})}async function h(e,t){if(e===`form`)return JSON.parse(t);if(e===`decision`){let e=await i(t);return(await(await f()).fromXML(e.xml,`dmn:Definitions`)).rootElement}return(await(await d()).fromXML(t)).rootElement}async function g(e,t){return h(e,u(t,`utf8`))}async function _(e,t,n){try{let r=(await v(e))(await h(e,t),await h(e,n));return{entries:[...p(`added`,r._added),...p(`removed`,r._removed),...p(`changed`,r._changed)],moved:Object.keys(r._layoutChanged).length}}catch{return null}}async function v(e){return e===`decision`?(await import(`./chunk-diffModels-DYtf3au1.js`)).diffDecisions:e===`form`?(await import(`./chunk-diffModels-DYtf3au1.js`)).diffForms:(await import(`bpmn-js-differ`)).diff}async function y(e,n,r=!1){let i=[e,n].map(e=>l(e)??`process`);if(i[0]!==i[1])return{ok:!1,lines:[t(`app.cli.diff.differentKinds`,{before:s(e),after:s(n)})]};let a=await v(i[0]),u=[];for(let t of[e,n])try{u.push(await g(i[0],t))}catch(e){return{ok:!1,lines:[o(s(t),e)]}}let d;try{d=a(u[0],u[1])}catch(t){let r=[e,n].find((e,t)=>{try{return a(u[t],u[t]),!1}catch{return!0}});return{ok:!1,lines:[o(s(r??n),t)]}}let f={},h={};Object.keys(d._removed).forEach(e=>f[e]=`removed`),Object.keys(d._added).forEach(e=>h[e]=`added`),Object.keys(d._changed).forEach(e=>{f[e]=`changed`,h[e]=`changed`});let _=[...m(t(`app.cli.diff.added`),d._added),...m(t(`app.cli.diff.removed`),d._removed),...m(t(`app.cli.diff.changed`),d._changed)],y=Object.keys(d._layoutChanged).length,b=[...p(`added`,d._added),...p(`removed`,d._removed),...p(`changed`,d._changed)],x={lines:[..._],entries:b,movedIds:Object.keys(d._layoutChanged),moved:y,markersBefore:f,markersAfter:h};if(_.length===0){let e=y>0?t(`app.cli.diff.onlyMoved`,{elements:c(y,`app.cli.diff.count.element`)}):t(`app.cli.diff.noDifferenceFound`);return r?{ok:!0,lines:[e],summary:x}:{ok:!0,lines:[e]}}y>0&&_.push(``,t(`app.cli.diff.movedOnCanvas`,{elements:c(y,`app.cli.diff.count.element`)}));let S=[`${s(e)} -> ${s(n)}`,``,..._];return r?{ok:!0,lines:S,summary:x}:{ok:!0,lines:S}}async function b(c,l){let p=await d(),m=[],h=0,g=0;for(let r of c){if(/\.form$/i.test(r)){m.push({status:n(`skip`),file:s(r),details:t(`app.cli.fmt.formLeftAlone`)});continue}let c,d,_=null;try{c=u(r,`utf8`);let e=/\.dmn$/i.test(r),t=e?await i(c):{xml:c,from:null};_=t.from;let n=e?await f():p,{rootElement:a}=await n.fromXML(t.xml,e?`dmn:Definitions`:void 0);({xml:d}=await n.toXML(a,{format:!0}))}catch(e){g+=1,m.push({status:n(`fail`),file:s(r),details:o(s(r),e)});continue}if(d===c){m.push({status:n(`same`),file:s(r),details:t(`app.cli.fmt.alreadyFormatted`)});continue}h+=1;let v=_?a(_,s(r)):null;l?(e(r,d),m.push({status:n(`wrote`),file:s(r),details:v??t(`app.cli.fmt.formattedXml`)})):m.push({status:n(`change`),file:s(r),details:v??t(`app.cli.fmt.wouldFormat`)})}let _=r(m,{columns:[{name:`status`,header:t(`app.cli.header.status`),minWidth:6},{name:`file`,header:t(`app.cli.header.file`),minWidth:24},{name:`details`,header:t(`app.cli.header.details`)}]});return{ok:g===0&&(l||h===0),refused:!1,lines:_}}export{_ as n,b as r,y as t};
@@ -1 +0,0 @@
1
- export{t as diffCommand,r as formatCommand}from"./chunk-diff-BhTFlCE3.js";
@@ -1,7 +0,0 @@
1
- import{t as e}from"./chunk-cacheDirectory-7sa0970e.js";import{p as t,u as n}from"./chunk-license-BG88gpDZ.js";import{r}from"./chunk-translator-DNm9zRpP.js";import{a as i,t as a}from"./chunk-features-C6o8of19.js";import{n as o}from"./chunk-status-CmYxwOCn.js";import{n as s,r as c,t as l}from"./chunk-table-BOiaGWwY.js";import{r as u}from"./chunk-preferencesFile-F6bAlNrk.js";import{n as d}from"./chunk-model-f8AzYUK7.js";import{n as f,r as p}from"./chunk-codeIndex-N1gnP_sW.js";import{t as m}from"./chunk-migrate-BMwBV5sc.js";import{a as h,n as g,o as _,u as v}from"./chunk-load-rfn3E0t5.js";import{a as y,i as b,n as x,r as S,s as C,t as w}from"./chunk-failure-D5brrYW2.js";import{r as T,t as E}from"./chunk-context-rCJvBM9p.js";import{n as D,o as O,s as k,t as A}from"./chunk-commands-B4PoZbpX.js";import{t as j}from"./chunk-diagrams-BukAOL0g.js";import{t as M}from"./chunk-apiTemplatesPath-vIrQ4ODR.js";import{i as N,r as P}from"./chunk-help-CxU1lT1Y.js";import{t as F}from"./chunk-own-CX-3lIbf.js";import I from"node:path";import{existsSync as L,readFileSync as R,statSync as z,writeFileSync as B}from"node:fs";import{createInterface as V}from"node:readline/promises";function H(e){return e.length>0&&e.every(e=>d(e)===`form`)}function U(e,t,n,r,i,a=[],o=`generate`){switch(e){case`migrate`:return i===`convert`?`migration`:i===`apply`?t.has(`--write`)?`migration`:null:i===`agents`?t.has(`--write`)?`agent-tools`:null:i===`report`||i===`plan`||i===`verify`?null:n===`sarif`||n===`github`?`ci-annotations`:t.has(`--baseline`)||t.has(`--update-baseline`)?`baseline`:null;case`layout`:return`auto-layout`;case`analyze`:return H(a)?null:`flow-analysis`;case`docs`:return`docs`;case`paths`:return`paths`;case`tests`:return`tests`;case`test`:return a[0]===`task`?`test-runs`:null;case`test-cases`:return t.has(`--generate`)?`test-case-generation`:`test-runs`;case`code`:case`facts`:return`code-links`;case`templates`:return o===`check`?null:a.some(M)?t.has(`--write`)?`api-templates`:null:`element-templates`;case`incident`:return t.has(`--write`)||t.has(`--run`)?`incident-scenario`:null;case`policy`:return a[0]===void 0||a[0]===`show`?null:`policy-pack`;case`receipt`:return a[0]===`check`||t.has(`--write`)?`ai-receipt`:null;case`agents`:return t.has(`--write`)&&a[0]===`scenario`?`agent-tools`:null;case`drift`:return t.has(`--against`)?`promotion`:null;case`promote`:return`promotion`;case`evidence`:return a[0]===`build`?`audit-evidence`:null;case`refactor`:return a[0]===`bulk`||a[0]===`extract`?`refactor-bulk`:null;case`connections`:return t.has(`--against`)?`connections-environments`:null;case`edit`:return t.has(`--schema`)?null:`edit`;case`diff`:return t.has(`--images`)?`changes-pictures`:null;case`report`:return`pr-report`;case`bot`:return`bot`;case`check`:return t.has(`--require-receipt`)?`ai-receipt`:n===`sarif`||n===`github`?`ci-annotations`:r===`flow`?H(a)?null:`flow-analysis`:t.has(`--baseline`)||t.has(`--update-baseline`)?`baseline`:null;default:return null}}const W={check:[`process`,`decision`,`form`,`case`],export:[`process`,`case`],docs:[`process`,`decision`,`form`],deploy:[`process`,`decision`,`form`]},G=[`generate`,`check`],K=[`check`,`paths`,`tests`,`code`,`docs`,`layout`,`deploy`,`fmt`,`convert`,`export`],ee={check:[`text`,`json`,`sarif`,`github`],migrate:[`text`,`json`,`sarif`,`github`],doctor:[`text`,`json`],templates:[`text`,`json`],connections:[`text`,`json`],agents:[`text`,`json`],incident:[`text`,`json`],policy:[`text`,`json`],drift:[`text`,`json`],promote:[`text`,`json`],evidence:[`text`,`json`,`zip`,`dir`],refactor:[`text`,`json`],receipt:[`text`,`json`],test:[`text`,`json`,`junit`],show:[`text`,`json`],code:[`text`,`json`],import:[`text`,`json`],paths:[`text`,`json`,`md`],export:[`svg`,`png`],docs:[`html`,`md`,`docx`,`pdf`]};function q(e,t){if(t instanceof g)throw t;return C(T(e),t)}const te={async show({words:e,format:t}){let n=e[0];if(!n)return{ok:!1,lines:[r(`app.cli.show.needsDiagram`)]};let i=b(n);if(i)return{ok:!1,lines:[i]};try{return await(await import(`./chunk-command-DrGP2kg8.js`)).showCommand(n,t===`json`)}catch(e){return{ok:!1,lines:[q(n,e)]}}},async edit({words:e,flags:t,option:n,options:i}){let a=e[0];if(!a)return{ok:!1,lines:[r(`app.cli.edit.needsDiagram`)]};if(t.has(`--schema`))try{return(await import(`./chunk-command-DrGP2kg8.js`)).schemaCommand(a)}catch(e){return{ok:!1,lines:[q(a,e)]}}let o=n(`ops`),s=n(`ops-file`),c;if(o!==void 0||s!==void 0)try{c=JSON.parse(o===void 0?R(s===`-`?0:s,`utf8`):o)}catch(e){let t=o===void 0?s===`-`?`--ops-file -`:T(s):`--ops`;return{ok:!1,lines:[x(e)?S(t):w(e)?r(`app.cli.edit.isAFolder`,{from:t}):r(`app.cli.edit.notJson`,{from:t,reason:e instanceof Error?e.message:String(e)}),r(`app.cli.nothingWritten`)]}}else try{c=(await import(`./chunk-command-DrGP2kg8.js`)).operationFromWords((await import(`./chunk-command-DrGP2kg8.js`)).engineOf(a,R(a,`utf8`)),{words:e.slice(1),option:n,options:i})}catch(e){if(e instanceof g)throw e;return{ok:!1,lines:[y(e)===null?e instanceof Error?e.message:String(e):C(T(a),e),r(`app.cli.nothingWritten`)]}}try{return await(await import(`./chunk-command-DrGP2kg8.js`)).applyOperations(a,c,{dryRun:t.has(`--dry-run`),force:t.has(`--force`)})}catch(e){return{ok:!1,lines:[q(a,e),r(`app.cli.nothingWritten`)]}}},async trust({words:e,flags:t}){if(t.has(`--list`)){let e=(await import(`./chunk-trust-DXcsUJaK.js`)).trustedProjects(process.env);return e.length===0?{ok:!0,lines:[r(`app.cli.trust.noneTrusted`)]}:{ok:!0,lines:l(e,{columns:[{name:`path`,header:r(`app.cli.trust.headerProject`)},{name:`on`,header:r(`app.cli.trust.headerSince`)}]})}}let n=e[0]??process.cwd();if(!L(n))return{ok:!1,lines:[S(n)]};let i=_(n);if(t.has(`--forget`)){let e=(await import(`./chunk-trust-DXcsUJaK.js`)).canonicalProject(i);return(await import(`./chunk-trust-DXcsUJaK.js`)).forgetTrust(i,process.env)?{ok:!0,lines:[`${o(`removed`).padEnd(7)} ${e} - ${r(`app.cli.trust.mayNotRun`)}`]}:{ok:!0,lines:[`${o(`kept`).padEnd(7)} ${e} - ${r(`app.cli.trust.notTrustedBefore`)}`]}}let a=J(!0),s=await(await import(`./chunk-trust-DXcsUJaK.js`)).trustCommand(i,a,t.has(`--yes`)||a===void 0,process.env);return{ok:s.allowed,lines:s.lines}},async license({words:e}){let[t,...n]=e;return t===`buy`?(await import(`./chunk-account-CpZu-RTg.js`)).upgradeCommand(n):t===`login`?(await import(`./chunk-account-CpZu-RTg.js`)).loginCommand(n):t===`logout`?(await import(`./chunk-account-CpZu-RTg.js`)).logoutCommand():(await import(`./chunk-account-CpZu-RTg.js`)).licenseCommand(e)},async update({words:e,option:t}){return(await import(`./chunk-wrapper-DiKCKZti.js`)).updateCommand(process.cwd(),{version:e[0],distribution:t(`distribution`)})},async connectors({words:e,flags:t}){return(await import(`./chunk-connectors-PtAvE91B.js`)).connectorsCommand(e,t)},async agent({words:e,flags:t,option:n,passthrough:i}){let a=e.slice(0,e.length-i.length);return a[0]===`serve`?a.length===1?(await import(`./chunk-agentServe-BYRtgGGD.js`)).agentServeCommand(n(`project`),void 0,{detach:t.has(`--detach`)}):{ok:!1,lines:[r(`app.cli.agentLaunch.extraWords`,{agent:`serve`})],code:1}:a.length>1?{ok:!1,lines:[r(`app.cli.agentLaunch.extraWords`,{agent:a[0]})],code:1}:(await import(`./chunk-agentLaunch-D21uPuMr.js`)).launchAgent({agent:a[0],project:n(`project`),passthrough:i,env:process.env,home:u(process.env),cwd:process.cwd()})},async web({words:e,flags:t,option:n}){return(await import(`./chunk-command-DT84ioJb.js`)).webCommand(e[0],{port:n(`port`),host:n(`host`),open:!t.has(`--no-open`)})},async init({targets:e,flags:t,option:r}){let i=r(`example`),a=r(`engine`);if(a===void 0&&i===void 0&&process.stdin.isTTY&&process.stdout.isTTY){let t=V({input:process.stdin,output:process.stderr});try{a=await(await import(`./chunk-init-_OALJuKm.js`)).chooseEngine(_(e[0]),e=>t.question(e))??void 0}finally{t.close()}}return(await import(`./chunk-init-_OALJuKm.js`)).initCommand(e[0],r(`ci`),t.has(`--hooks`),(await n()).tier===`team`,i,a)},async doctor({targets:e,format:t}){return L(e[0])?(await import(`./chunk-doctor-BuHK1dTm.js`)).doctorCommand(e[0],t===`json`):{ok:!1,lines:[S(e[0])]}},async check({files:e,format:t,flags:n,sections:r,targets:a,option:o}){let s=await D(e,{format:t,baseline:n.has(`--baseline`),updateBaseline:n.has(`--update-baseline`),sections:r}),c=E(a[0]),l=(await import(`./chunk-aiVerify-Bx0ME7O6.js`)).aiVerifyOf(c.values),u=[],d=await import(`./chunk-policy-BX0Ftdws.js`);if(d.enforcing(n.has(`--ci`))&&!n.has(`--update-baseline`)){let e=await d.enforcePolicy({target:a[0],checkOk:s.ok,settings:l,base:o(`base`)??`origin/main`});if(e&&`refused`in e)return e.refused;e&&u.push(e)}if(n.has(`--require-receipt`)||l.requireReceipt){let e=await i(`ai-receipt`);if(e)return e;u.push((await import(`./chunk-receiptGate-xldHKMyJ.js`)).requireReceiptGate(c.root,o(`base`)??`origin/main`,l))}if(u.length===0)return s;let f=s.ok&&u.every(e=>e.ok),p=u.flatMap(e=>e.lines);return t===`text`?{...s,ok:f,lines:[...s.lines,``,...p]}:(process.stderr.write(`${p.join(`
2
- `)}\n`),{...s,ok:f})},async policy({words:e,format:t,option:n,flags:r}){return(await import(`./chunk-policy-BX0Ftdws.js`)).policyCommand(e,{format:t,project:n(`project`),name:n(`name`),severity:n(`severity`),forced:r.has(`--forced`),source:n(`source`),allowLocal:r.has(`--allow-local-source`)})},async paths({files:e,format:t}){return(await import(`./chunk-analyze-BG-rlggA.js`)).pathsCommand(e,t)},async tests({files:e,option:t}){return(await import(`./chunk-tests-CRVosdWp.js`)).testsCommand(e,{out:t(`out`),pkg:t(`package`)})},async"test-cases"({targets:e,flags:t,option:n}){let i=Number(n(`timeout`)),a=new AbortController,o=()=>{a.signal.aborted&&process.exit(130),process.stderr.write(`${r(`app.cli.stopping`)}\n`),a.abort()};process.on(`SIGINT`,o),process.on(`SIGTERM`,o);try{let r=await(await import(`./chunk-testCases-BcpBPg9L.js`)).testCasesCommand(e,{signal:a.signal,teamcity:t.has(`--teamcity`),junitXml:n(`junit-xml`),generate:t.has(`--generate`),junit:t.has(`--junit`),stepTimeoutMs:Number.isFinite(i)&&i>0?i*1e3:void 0});return t.has(`--generate`)||t.has(`--junit`)||a.signal.aborted||(await import(`./chunk-policy-BX0Ftdws.js`)).recordRun(e[0],`scenarios`,r),r}finally{process.off(`SIGINT`,o),process.off(`SIGTERM`,o)}},async test({words:e,flags:o,option:s,format:c}){if(e[0]===`dmn`){let r=s(`min-rule-coverage`)!==void 0||c===`junit`||t(process.env);if(r){let e=await i(`dmn-tests`);if(e)return e}let o=e.length>1?e.slice(1):[process.cwd()],l=await(await import(`./chunk-dmnTests-0x_yUH6S.js`)).dmnTestCommand(o,{format:c,minCoverage:s(`min-rule-coverage`),licensed:r||a(await n())});return(await import(`./chunk-policy-BX0Ftdws.js`)).recordRun(o[0],`dmnTests`,l),l}if(e[0]!==`task`)return{ok:!1,lines:[r(`app.cli.dmnTests.unknownTest`)]};let l=(e,t)=>{if(t!==void 0)try{let n=JSON.parse(e===`--variables-file`?R(t===`-`?0:t,`utf8`):t);return typeof n==`object`&&n&&!Array.isArray(n)?n:r(`app.output.taskTest.badVariables`,{flag:e,reason:r(`app.cli.test.notAnObject`)})}catch(t){return r(`app.output.taskTest.badVariables`,{flag:e,reason:t instanceof Error?t.message:String(t)})}},u=l(`--variables`,s(`variables`))??l(`--variables-file`,s(`variables-file`)),d=l(`--complete`,s(`complete`));for(let e of[u,d])if(typeof e==`string`)return{ok:!1,lines:[e]};let f=s(`error`);if([o.has(`--complete`),f!==void 0,o.has(`--hold`)].filter(Boolean).length>1)return{ok:!1,lines:[r(`app.output.taskTest.oneMode`)]};let p=o.has(`--hold`)?{kind:`hold`}:f===void 0?{kind:`complete`,variables:d}:{kind:`error`,errorCode:f},m=Number(s(`timeout`)),h=new AbortController,g=()=>{h.signal.aborted&&process.exit(130),process.stderr.write(`${r(`app.cli.stopping`)}\n`),h.abort()};process.on(`SIGINT`,g),process.on(`SIGTERM`,g);try{return await(await import(`./chunk-taskTest-BjXYpG5p.js`)).taskTestCommand(e[1],{element:s(`element`),variables:u,mode:p,process:s(`id`),signal:h.signal,stepTimeoutMs:Number.isFinite(m)&&m>0?m*1e3:void 0})}finally{process.off(`SIGINT`,g),process.off(`SIGTERM`,g)}},async migrate({action:e,targets:t,format:n,flags:r,option:i,options:a}){let o=t.filter(e=>!L(e));return o.length>0?{ok:!1,lines:o.map(e=>S(e))}:(await import(`./chunk-migrate-CxfVmKt0.js`)).migrateCommand(e??`analyze`,t,{format:n,failOn:i(`fail-on`)===`warning`?`warning`:`error`,baseline:r.has(`--baseline`),updateBaseline:r.has(`--update-baseline`),dryRun:r.has(`--dry-run`),verbose:r.has(`--verbose`),out:i(`out`),target:i(`target`),write:r.has(`--write`),workers:i(`workers`),...a(`only`).length>0?{only:X(a(`only`))}:{},...a(`exclude`).length>0?{exclude:X(a(`exclude`))}:{},saved:r.has(`--saved`),saveSelection:r.has(`--save-selection`),scenarios:i(`scenarios`),runUnreviewed:r.has(`--run-unreviewed`),originalProfile:i(`original-profile`),convertedProfile:i(`converted-profile`)})},async code({targets:e,files:t,format:n}){return(await import(`./chunk-codeLinks-o0a8tBGk.js`)).codeCommand(E(e[0]).root,t,n)},async facts(){return(await import(`./chunk-facts-DSVaURw5.js`)).factsCommand(await(await import(`./chunk-facts-DSVaURw5.js`)).readStandardInput())},async templates({words:e,templateAction:t,format:n,flags:r,option:i}){let a=e.find(e=>!G.includes(e));return(await import(`./chunk-templates-D3ouIwHD.js`)).templatesCommand(a??process.cwd(),t,n,{write:r.has(`--write`),out:i(`out`),secretPrefix:i(`secret-prefix`)})},async incident({words:e,format:t,flags:n}){return(await import(`./chunk-incident-BK1h37CD.js`)).incidentCommand(e,{write:n.has(`--write`),run:n.has(`--run`),format:t})},async receipt({words:e,format:t,flags:r,option:i}){return(await import(`./chunk-receipt-CusJaqNn.js`)).receiptCommand(e,{against:i(`against`),format:t,write:r.has(`--write`),licensed:a(await n()),runScenarios:r.has(`--run-scenarios`)})},async agents({words:e,format:t,flags:n,option:r}){return(await import(`./chunk-agents-B9oxdPTA.js`)).agentsCommand(e,{write:n.has(`--write`),agent:r(`agent`),format:t})},async connections({words:e,format:t,option:n}){return(await import(`./chunk-connections-DQpKbIGD.js`)).connectionsCommand(e[0]??process.cwd(),{environment:n(`env`),against:n(`against`),format:t})},async share({words:e,option:t}){return(await import(`./chunk-share-CBV2FuKq.js`)).shareCommand(e[0],t(`out`))},async import({words:e,flags:t,format:n,option:r}){return(await import(`./chunk-importCommand-DRjYoljA.js`)).importCommand(e[0],r(`out`),{force:t.has(`--force`),json:n===`json`,from:r(`from`),to:r(`to`),report:t.has(`--report`),modelerData:r(`modeler-data`)})},async docs({files:e,format:t,option:n}){return(await import(`./chunk-docs-D7yEDpa4.js`)).docsCommand(e,n(`out`),t===`text`?`html`:t)},async layout({files:e,flags:t}){let n=t.has(`--write`),r=n?e.flatMap(e=>{try{return[[e,R(e)]]}catch{return[]}}):[];try{return await O(e,n)}finally{for(let[e,t]of r)L(e)||B(e,t)}},async deploy({files:e,flags:t,option:n}){return(await import(`./chunk-deploy-qRaaKGZb.js`)).deployCommand(e,t.has(`--dry-run`),t.has(`--wait`),{onlyChanged:t.has(`--only-changed`),confirm:n(`confirm`),approveFile:n(`approve-file`)})},async drift({words:e,format:t,option:n}){return(await import(`./chunk-promotion-D8Ti-vxp.js`)).driftCommand(e[0]??process.cwd(),{environment:n(`env`),against:n(`against`),format:t})},async promote({words:e,format:t,option:n,flags:r}){return(await import(`./chunk-promotion-D8Ti-vxp.js`)).promoteCommand(e[0]??process.cwd(),{from:n(`from`),to:n(`to`),write:r.has(`--write`),dryRun:r.has(`--dry-run`),confirm:n(`confirm`),approveFile:n(`approve-file`),format:t})},async evidence({words:e,format:t,option:n,flags:r}){return(await import(`./chunk-evidence-oLw_C6j8.js`)).evidenceCommand(e,{format:t,out:n(`out`),since:n(`since`),force:r.has(`--force`)})},async refactor({words:e,format:t,option:n,flags:r}){return(await import(`./chunk-refactor-B1W_MGTp.js`)).refactorCommand(e,{project:n(`project`),format:t,name:n(`name`),apply:r.has(`--apply`),force:r.has(`--force`),acknowledge:r.has(`--acknowledge`)})},async export({files:e,format:t,option:n}){return(await import(`./chunk-export-cIFHDXug.js`)).exportCommand(e,t,n(`out`))},async report({targets:e,option:t}){return(await import(`./chunk-pr-ByrGcfam.js`)).reportCommand(e[0],{base:t(`base`)??`origin/main`,out:t(`out`)??`penstock-report.md`,imagesDir:t(`images-dir`)??`.penstock/images`,imageBase:t(`image-base`),imagesLink:t(`images-link`)})},async bot({targets:e,option:t}){let n=t(`stage`);return n&&n!==`draw`&&n!==`post`?{ok:!1,lines:[r(`app.cli.bot.unknownStage`,{stage:n})]}:(await import(`./chunk-bot-DlhStBoG.js`)).botCommand(e[0],n)},async fmt({files:e,flags:t}){return(await import(`./chunk-diff-kBF83vzM.js`)).formatCommand(e,t.has(`--write`))},async convert({files:e,flags:t,option:n}){return(await import(`./chunk-convert-CpgtOlZk.js`)).convertCommand(e,n(`to`),t.has(`--write`))},async diff({words:e,flags:t,option:n}){return e.length===2&&e.every(e=>L(e)&&z(e).isFile())?(await import(`./chunk-diff-kBF83vzM.js`)).diffCommand(e[0],e[1]):(await import(`./chunk-review-UcqS5AAi.js`)).againstCommand(process.cwd(),e.slice(1).flatMap(e=>j(e,[`process`,`decision`,`form`])),{base:e[0]??`HEAD~1`,images:t.has(`--images`),outDir:n(`out`)??`.penstock/images`})}};function J(e){if(e&&process.stdin.isTTY===!0&&process.stderr.isTTY===!0)return async e=>{let t=V({input:process.stdin,output:process.stderr});try{return await t.question(e)}finally{t.close()}}}const ne=/* @__PURE__ */ new Set([`mcp`,`web`,`agent`,`lsp`]);async function Y(t,n){if(p({workers:ne.has(t.command)?1:f,cacheDirectory:e(),remember:!1}),t.command===`lsp`)return(await import(`./chunk-lsp-7vA_mIt1.js`)).lspCommand(t.tokens,t.flags.has(`--stdio`));if(t.command===`mcp`){if(t.flags.has(`--config`))return process.stderr.write(`${r(`app.cli.mcpConfigHint`)}\n`),process.stdout.write(`${(await import(`./chunk-mcp-K63bhqnF.js`)).mcpConfig()}\n`),0;let e=t.option(`project`);if(e!==void 0){let t=I.resolve(e);if(!L(t))return process.stderr.write(`${S(t)}\n`),1;if(!z(t).isDirectory())return process.stderr.write(`${r(`app.cli.web.notAFolder`,{folder:t})}\n`),1}return(await import(`./chunk-mcp-K63bhqnF.js`)).mcpCommand(e??null)}let a=t.option(`profile`);a&&(process.env.PENSTOCK_PROFILE=a),N(n);let o=t.option(`format`)??`text`,l=t.words,u=t.command===`migrate`?m.includes(l[0])?l[0]:`analyze`:void 0,d=t.command===`check`?t.option(`ci`):void 0,h=t.command===`migrate`&&l[0]===u?l.slice(1):l,g=d!==void 0&&L(d)?[d,...h]:h,_=t.command===`migrate`?void 0:t.option(`only`),v=k(_),y=v.unknown??(_!==void 0&&v.sections.length===0?JSON.stringify(_.trim()):void 0);if(y!==void 0)return process.stderr.write(`${r(`app.cli.checkUnknownSection`,{section:y,sections:A.join(`, `)})}\n`),1;let b=F(ee,t.command),x=t.option(`format`);if(b&&x!==void 0&&!b.includes(x))return process.stderr.write(`${r(`app.cli.badFormat`,{value:x,values:b.join(`, `)})}\n`),2;let C=t.option(`fail-on`);if(C!==void 0&&C!==`error`&&C!==`warning`)return process.stderr.write(`${r(`app.cli.badFailOn`,{value:C})}\n`),1;let w=t.option(`timeout`);if(w!==void 0&&!(Number.isFinite(Number(w))&&Number(w)>0))return process.stderr.write(`${r(`app.cli.badTimeout`)}\n`),1;let T=l.find(e=>G.includes(e)),E=t.flags.has(`--check`)?`check`:T??`generate`,D=U(t.command,t.flags,o,_,u,g,E),O=D?await i(D):null;if(O)return process.stderr.write(`${(s()?O.lines.map(c):O.lines).join(`
3
- `)}\n`),1;let M=g.length>0?g:[process.cwd()],R=K.includes(t.command);if(R){let e=M.filter(e=>!L(e));if(e.length>0)return process.stderr.write(`${e.map(e=>S(e)).join(`
4
- `)}\n`),1}let B=R?M.flatMap(e=>j(e,F(W,t.command))):[];if(R&&B.length===0)return process.stderr.write(`${r(`app.cli.noDiagrams`,{paths:M.join(`, `)})}\n`),1;t.command!==`doctor`&&re(M);let V={check:`Check`,layout:`Layout`,deploy:`Deploy`}[t.command],H=J(t.command===`trust`||V!==void 0),q=t.flags.has(`--trust-project`),Y=V?await(await import(`./chunk-stages-BTQJrAMF.js`)).runHook(M[0],`pre`,V,B,H,process.env,q):{ran:!1,ok:!0,lines:[]};if(!Y.ok)return process.stderr.write(`${[...Y.lines,r(`app.cli.preHookStopped`,{stage:V})].join(`
5
- `)}\n`),1;let X=F(te,t.command);if(!X)return process.stderr.write(`${r(`app.cli.unknownCommand`,{command:t.command})}\n\n${P()}`),1;let Z=await X({command:t.command,action:u,words:g,targets:M,files:B,format:o,sections:v.sections,templateAction:E,passthrough:(await import(`./chunk-agentLaunch-D21uPuMr.js`)).passthroughOf(t.tokens),flags:t.flags,option:t.option,options:t.options}),Q=V&&Z.ok?await(await import(`./chunk-stages-BTQJrAMF.js`)).runHook(M[0],`post`,V,B,H,process.env,q):{ran:!1,ok:!0,lines:[]},$=[...Y.lines,...Z.lines],ie=![`json`,`sarif`,`github`].includes(o)&&s(),ae=Z.refused??!Z.ok;return $.length>0&&(ae?process.stderr:process.stdout).write(`${(ie?$.map(c):$).join(`
6
- `)}\n`),Q.ok||process.stderr.write(`${[...Q.lines,r(`app.cli.postHookStopped`,{stage:V})].join(`
7
- `)}\n`),Z.code??(Z.ok&&Q.ok?0:1)}function X(e){return e.flatMap(e=>e.split(`,`)).map(e=>e.trim()).filter(e=>e!==``)}function re(e){let t=/* @__PURE__ */ new Set;for(let n of e){let e;try{e=E(n)}catch{continue}for(let{file:n,problems:r}of h(e.files))if(!t.has(n)){t.add(n);for(let e of r)process.stderr.write(`${v(e,T(n))}\n`)}}}export{Y as dispatch};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{n as t,t as n}from"./chunk-dmnTests-ChwX1YVo.js";import{r}from"./chunk-failure-D5brrYW2.js";import{r as i}from"./chunk-context-rCJvBM9p.js";import{i as a,n as o,r as s,t as c}from"./chunk-report-BxZNhZ_G.js";import{existsSync as l}from"node:fs";function u(e){if(e===void 0)return null;if(!/^\d+(\.\d+)?$/.test(e.trim()))return`bad`;let t=Number(e);return t>=0&&t<=100?t:`bad`}async function d(d,f){let p=u(f.minCoverage);if(p===`bad`)return{ok:!1,lines:[e(`app.cli.dmnTests.badCoverage`,{value:String(f.minCoverage).slice(0,40)})]};let m=d.filter(e=>!l(e));if(m.length>0)return{ok:!1,lines:m.map(e=>r(e))};let h=n(d);if(h.length===0)return{ok:!1,lines:[e(`app.cli.dmnTests.noFiles`,{targets:d.join(`, `)})]};let g=[];for(let e of h)g.push(await t(e,{licensed:f.licensed}));let _=g.reduce((e,t)=>e+t.total.covered,0),v=g.reduce((e,t)=>e+t.total.total,0),y=a(_,v),b=g.some(e=>e.problem!==null),x=g.some(e=>e.failed>0||e.errors>0),S=p!==null&&(v===0?100:_/v*100)<p,C=g.reduce((e,t)=>e+t.skipped,0),w=S?e(`app.cli.dmnTests.coverageBelow`,{percent:y,min:p}):null,T=!b&&!x&&!S;if(f.format===`json`){let e=c(g,i);return{ok:T,refused:!1,lines:[JSON.stringify({...e,...w===null?{}:{gate:w}},null,2)]}}if(f.format===`junit`)return{ok:T,refused:!1,lines:[o(g,i).trimEnd()]};let E=s(g,i);return w!==null&&E.push(w),C>0&&!f.licensed&&E.push(e(`app.cli.dmnTests.preview`)),{ok:T,refused:!1,lines:E}}export{d as dmnTestCommand};
@@ -1 +0,0 @@
1
- import{u as e}from"./chunk-license-BG88gpDZ.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{t as n}from"./chunk-features-C6o8of19.js";import{t as r}from"./chunk-table-BOiaGWwY.js";import{c as i,p as a,u as o}from"./chunk-engine-CxgdJ2wO.js";import{s}from"./chunk-variableChecks-KnECGMR3.js";import{i as c}from"./chunk-deploy-l4MdFfn8.js";import{M as l,P as u,a as d,d as f,s as p}from"./chunk-load-rfn3E0t5.js";import{o as m}from"./chunk-failure-D5brrYW2.js";import{n as h}from"./chunk-aiVerify-DPNBNhx4.js";import{a as g,i as _,t as v}from"./chunk-context-rCJvBM9p.js";import{t as y}from"./chunk-own-CX-3lIbf.js";import b from"node:path";import{existsSync as x,readFileSync as S}from"node:fs";const C={"camunda-7":`engine`,operaton:`engine`,"cib-seven":`engine`,classic:`engine`,"camunda-8":`topology`};function w(e,t){let n=y(C,t);return n?`${e.replace(/\/+$/,``)}/${n}`:e}async function T(e,n){try{let e=await fetch(n,{method:`GET`,signal:AbortSignal.timeout(4e3)});return e.ok?t(`app.cli.doctor.reachable`,{status:e.status}):t(`app.cli.doctor.answered`,{status:e.status})}catch(e){return t(`app.cli.doctor.unreachable`,{reason:m(e)})}}const E=[`pom.xml`,`build.gradle`,`build.gradle.kts`];function D(e){for(let t of E){let n=b.join(e,t),r=x(n)?a(S(n,`utf8`)):null;if(r)return r}return null}const O=/(password|secret|api[-_]?key|^token)$/i;function k(e){return Array.isArray(e)?e.map(k):typeof e!=`object`||!e?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,O.test(e)&&typeof t==`string`?`***`:k(t)]))}async function A(a,m=!1){let{root:y,files:S,values:C}=v(a);if(m)return{ok:!0,lines:[JSON.stringify(k(C),null,2)]};let E=[],O=!0;E.push({property:`node`,value:process.version}),E.push({property:`root`,value:y}),S.length===0?(O=!1,E.push({property:`config`,value:t(`app.cli.doctor.noConfig`)})):E.push({property:`config`,value:S.map(e=>b.relative(y,e)).join(`, `)});for(let{file:e,problems:t}of d(S))for(let n of t)E.push({property:b.relative(y,e),value:f(n)});let A=g(C.engine);A?E.push({property:`engine`,value:A}):(O=!1,E.push({property:`engine`,value:t(`app.cli.doctor.noEngine`)}));let j=D(y);j&&A&&j!==i(A)&&E.push({property:`build`,value:t(`app.cli.doctor.buildEngine`,{build:o(j),engine:o(A)})});let{merged:M}=p(a),N=l(M,process.env),P=u(M);E.push({property:`profiles`,value:P.length===0?t(`app.cli.doctor.noProfiles`):P.map(e=>e===N?`*${e}`:e).join(`, `)});let F=_(C.lint),I=g(F.configPath);if(I){let e=b.resolve(y,I);x(e)||(O=!1),E.push({property:`rules`,value:x(e)?e:t(`app.cli.doctor.missing`,{path:e})})}let L=Array.isArray(C.elementTemplates)?C.elementTemplates:[];for(let e of L){let n=b.resolve(y,e);x(n)||(O=!1),E.push({property:`templates`,value:x(n)?n:t(`app.cli.doctor.missing`,{path:n})})}if(C.variables!==void 0){let{mode:r}=s(C),i=r===`off`||n(await e());E.push({property:`variables`,value:i?r:t(`app.cli.doctor.variablesNeedPro`,{mode:r})})}if(_(C.ai).verify!==void 0){let r=h(C),i=e=>t(e?`app.cli.doctor.on`:`app.cli.doctor.off`),a=t(`app.cli.doctor.aiVerify`,{attempts:r.attempts,kept:i(r.keepReceipts),gate:i(r.requireReceipt)}),o=r.attempts>0||r.keepReceipts||r.requireReceipt;E.push({property:`ai.verify`,value:o&&!n(await e())?t(`app.cli.doctor.aiVerifyNeedsPro`,{summary:a}):a})}let R=g(_(C.deployment).url);if(!R)E.push({property:`deployment`,value:t(`app.cli.doctor.noUrl`)});else{E.push({property:`deployment`,value:t(`app.cli.doctor.deployment`,{url:R,state:await T(R,w(R,A??``))})});let e=c(_(_(C.deployment).auth),process.env);e.problem&&(O=!1,E.push({property:`auth`,value:e.problem})),e.notes.forEach(e=>E.push({property:`auth`,value:e}))}let z=r(E,{columns:[{name:`property`,minWidth:12},{name:`value`,wrap:!0}],headers:!1});return{ok:O,refused:!1,lines:z}}export{A as doctorCommand};