@kern0x1b/penstock-cli 26.11.0 → 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.
- package/THIRD-PARTY-NOTICES.md +16 -16
- package/dist/chunk-account-BaYNvO18.js +1 -0
- package/dist/{chunk-agentLaunch-D21uPuMr.js → chunk-agentLaunch-BnrpVME4.js} +1 -1
- package/dist/chunk-agentServe-BeOh1rjE.js +10 -0
- package/dist/chunk-agents-CZJoU2u2.js +1 -0
- package/dist/chunk-agentsMigrate-DnrqoXNz.js +2 -0
- package/dist/{chunk-analyze-BG-rlggA.js → chunk-analyze-ClE2LBCj.js} +1 -1
- package/dist/chunk-analyze-DgQqzEgb.js +1 -0
- package/dist/{chunk-analyzeFlow-2cYPgjh-.js → chunk-analyzeFlow-F2ZFmJhv.js} +1 -1
- package/dist/chunk-apiTemplates-Cl_z63FA.js +1 -0
- package/dist/{chunk-bot-DlhStBoG.js → chunk-bot-C2k8yaXA.js} +5 -5
- package/dist/chunk-cmmnFindings-DKpYqUZN.js +1 -0
- package/dist/{chunk-codeFactSet-LxSnQy8K.js → chunk-codeFactSet-DiAYqvbb.js} +1 -1
- package/dist/{chunk-codeIndex-N1gnP_sW.js → chunk-codeIndex-vStNh6Bm.js} +1 -1
- package/dist/chunk-codeLinks-BVpn4_Sr.js +1 -0
- package/dist/chunk-codeLinks-BrGduhsm.js +1 -0
- package/dist/chunk-command-8s6m3ZUw.js +5 -0
- package/dist/chunk-command-aMxPQdiV.js +1 -0
- package/dist/chunk-command-vH1_y5F0.js +1 -0
- package/dist/chunk-commands-B8YVT41b.js +5 -0
- package/dist/{chunk-commands-DcjlDt7B.js → chunk-commands-CJCSznbv.js} +1 -1
- package/dist/chunk-compose-BUJTvoFX.js +4 -0
- package/dist/chunk-connections-Drr67X9U.js +1 -0
- package/dist/chunk-connectors-DcMqy0u8.js +1 -0
- package/dist/chunk-convert-Ce1MZmsE.js +3 -0
- package/dist/chunk-convert-FkMnlxyi.js +1 -0
- package/dist/chunk-deploy-BHg8pB9x.js +1 -0
- package/dist/chunk-deploy-DZgCTgaY.js +6 -0
- package/dist/{chunk-diagrams-BukAOL0g.js → chunk-diagrams-CtGMGTa8.js} +1 -1
- package/dist/chunk-diff-9hjavV6V.js +1 -0
- package/dist/chunk-diff-Dp3fUALc.js +1 -0
- package/dist/chunk-dispatch-o-eqJb9Y.js +7 -0
- package/dist/chunk-dmnTests-BOxutoRs.js +1 -0
- package/dist/{chunk-dmnTests-ChwX1YVo.js → chunk-dmnTests-BzNA-u2k.js} +1 -1
- package/dist/{chunk-docs-D7yEDpa4.js → chunk-docs-B3C3pZpY.js} +17 -17
- package/dist/chunk-doctor-CRxbsAm7.js +1 -0
- package/dist/{chunk-editPreview-CC2vwhIW.js → chunk-editPreview-DCUnMkTU.js} +1 -1
- package/dist/chunk-evidence-ny_2ltVe.js +23 -0
- package/dist/{chunk-examples-0HkF-frb.js → chunk-examples-BG0lGXcZ.js} +9 -9
- package/dist/chunk-export-Blwjf23H.js +1 -0
- package/dist/chunk-export-kt3sBTZu.js +20 -0
- package/dist/{chunk-facts-DSVaURw5.js → chunk-facts-Dl5lLriU.js} +1 -1
- package/dist/chunk-failure-BRyRvObj.js +1 -0
- package/dist/{chunk-file-BswMa3FN.js → chunk-file-1YhfNmPn.js} +1 -1
- package/dist/chunk-import-Dh3az4BC.js +6 -0
- package/dist/chunk-importCommand-Dhikkmo0.js +1 -0
- package/dist/chunk-incident-LJe2-ohi.js +1 -0
- package/dist/chunk-init-D34Q4YA8.js +227 -0
- package/dist/chunk-lint-CnEhoYRB.js +1 -0
- package/dist/{chunk-lsp-7vA_mIt1.js → chunk-lsp-BzeJkpmf.js} +1 -1
- package/dist/chunk-main-BZF-ErAx.js +1 -0
- package/dist/chunk-mcp-B_B9bet5.js +95 -0
- package/dist/{chunk-mcpLaunch-LyfmIF_Z.js → chunk-mcpLaunch-BS709697.js} +1 -1
- package/dist/chunk-migrate-DVfXC-iJ.js +1 -0
- package/dist/chunk-migrate-DwWg0k5_.js +16 -0
- package/dist/{chunk-migrateApply-CzOkgKhB.js → chunk-migrateApply-e8O9oZXP.js} +3 -3
- package/dist/chunk-migrateVerify-oIBf-PM3.js +1 -0
- package/dist/{chunk-model-f8AzYUK7.js → chunk-model-BulEKnY1.js} +2 -2
- package/dist/{chunk-parse-B-uKGDy-.js → chunk-parse-DiOcpdOU.js} +1 -1
- package/dist/{chunk-penstockCli-CKMvaZ0O.js → chunk-penstockCli-C41P_G7i.js} +1 -1
- package/dist/chunk-policy-BVb7c7G_.js +1 -0
- package/dist/chunk-policyGate-BOgKsqLq.js +2 -0
- package/dist/chunk-pr-1jKcTNnP.js +1 -0
- package/dist/{chunk-project-DBYOlYRi.js → chunk-project-COaBZhMt.js} +1 -1
- package/dist/chunk-project-lO_6DX8G.js +1 -0
- package/dist/chunk-promotion-CTMPjXjZ.js +2 -0
- package/dist/chunk-promotion-DDLrgBqZ.js +1 -0
- package/dist/{chunk-promotion-DchO6xoC.js → chunk-promotion-NeRj4uTP.js} +1 -1
- package/dist/chunk-receipt-C4NqnSkH.js +1 -0
- package/dist/chunk-receiptDeps-B7MehyHT.js +1 -0
- package/dist/chunk-receiptGate-BZCKCMTV.js +1 -0
- package/dist/chunk-receiptGate-DRcw327y.js +1 -0
- package/dist/{chunk-receiptSnapshot-B6ruXw8z.js → chunk-receiptSnapshot-CHSk3_4N.js} +1 -1
- package/dist/{chunk-receiptStore-Cy-L0H1u.js → chunk-receiptStore-DhROtI2h.js} +1 -1
- package/dist/chunk-refactor-CO3qyIEv.js +17 -0
- package/dist/chunk-refactor-CWeCOl7w.js +1 -0
- package/dist/{chunk-render-Ci5d6mg4.js → chunk-render-DZd5hScS.js} +1 -1
- package/dist/chunk-report-w7YZwhyg.js +1 -0
- package/dist/chunk-review-DYMgFDSy.js +1 -0
- package/dist/chunk-say-CP1IyOSv.js +1 -0
- package/dist/{chunk-security-VgKwtohm.js → chunk-security-pgip-kdY.js} +2 -2
- package/dist/chunk-serve-CKt2rO05.js +10 -0
- package/dist/{chunk-share-CBV2FuKq.js → chunk-share-rsL0itIM.js} +18 -18
- package/dist/chunk-stages-B2sBBxUc.js +3 -0
- package/dist/chunk-systemError-O3vQ8hLb.js +1 -0
- package/dist/chunk-systemError-n2E6isvg.js +1 -0
- package/dist/chunk-taskTest-DWoME1mY.js +2 -0
- package/dist/chunk-taskTest-JErgWO6t.js +1 -0
- package/dist/{chunk-templateDiagnostics-BwH7RNkz.js → chunk-templateDiagnostics-6txfKwas.js} +2 -2
- package/dist/chunk-templates-Y3xfCO_3.js +1 -0
- package/dist/chunk-testCases-BwimUfDC.js +4 -0
- package/dist/chunk-testCases-DO2Rkyvd.js +1 -0
- package/dist/chunk-tests-Cy325OGw.js +1 -0
- package/dist/chunk-tests-DNkORsqB.js +23 -0
- package/dist/{chunk-trust-DXcsUJaK.js → chunk-trust-DSX-k3by.js} +1 -1
- package/dist/{chunk-trust-DubjEjlN.js → chunk-trust-Di4EYPah.js} +1 -1
- package/dist/{chunk-variableChecks-KnECGMR3.js → chunk-variableChecks-CBDpmI4d.js} +1 -1
- package/dist/{chunk-workerVariables-CajAcbwl.js → chunk-workerVariables-CNnCRijJ.js} +1 -1
- package/dist/{chunk-workerVariables-DIDoUpHF.js → chunk-workerVariables-CulLc3YH.js} +1 -1
- package/dist/chunk-wrapper-CGYED7G2.js +1 -0
- package/dist/chunk-wrapper-CK7Xtes6.js +3 -0
- package/dist/grammars/web-tree-sitter.wasm +0 -0
- package/dist/penstock.js +1 -1
- package/dist/web/assets/{AgentSettings-Cn5Vcph3.js → AgentSettings-D24jOuht.js} +1 -1
- package/dist/web/assets/{AgentsDialog-C6WqzlxZ.js → AgentsDialog-BMWv3Gyk.js} +1 -1
- package/dist/web/assets/{AgentsDialog-dpbwVSxk.js → AgentsDialog-DbY2O6O5.js} +1 -1
- package/dist/web/assets/{AgentsTab-C34OhVkw.js → AgentsTab-D6LbK6sG.js} +2 -2
- package/dist/web/assets/{BpmnCanvas-yur9daZa.js → BpmnCanvas-BcQRQ2Br.js} +27 -27
- package/dist/web/assets/BpmnDocument-Ce5F4K1e.js +27 -0
- package/dist/web/assets/CmmnDocument-C_UlPowC.js +17 -0
- package/dist/web/assets/{ConflictDialog-Bb5kduaR.js → ConflictDialog-DfFp8F7n.js} +1 -1
- package/dist/web/assets/{ConnectionsDialog-qtF7yDFw.js → ConnectionsDialog-BaYtHD5h.js} +1 -1
- package/dist/web/assets/{DiffDocument-LHOif5Ac.js → DiffDocument-BOPdBEN3.js} +1 -1
- package/dist/web/assets/{DmnDocument-0f5uS67x.css → DmnDocument-DZ9u2uk2.css} +1 -1
- package/dist/web/assets/DmnDocument-vtnARy7Q.js +41 -0
- package/dist/web/assets/{DriftDialog-Chl6BX6k.js → DriftDialog-dIbCbSK2.js} +1 -1
- package/dist/web/assets/FormDocument-B0q8DF9v.css +1 -0
- package/dist/web/assets/FormDocument-DHBUBUzO.js +32 -0
- package/dist/web/assets/FormStepView-CbHb32_8.js +1 -0
- package/dist/web/assets/{GraphAwareLayoutService-wsos3yPD.js → GraphAwareLayoutService-C5N8K9dm.js} +1 -1
- package/dist/web/assets/{MigrationDialog-CBJU7Oe3.js → MigrationDialog-DA3Vrzgw.js} +1 -1
- package/dist/web/assets/{NewFileDialog-B7075LWG.js → NewFileDialog-Dev41oA1.js} +1 -1
- package/dist/web/assets/PolicyDialog-qR19Csji.js +1 -0
- package/dist/web/assets/{QuickOpen-DJQrI7Od.js → QuickOpen-ps-rMjiS.js} +1 -1
- package/dist/web/assets/ScriptPane-BQLMNYzc.js +2 -0
- package/dist/web/assets/{ScriptRunDialog-BwE4cXnp.js → ScriptRunDialog-YivjHB6j.js} +1 -1
- package/dist/web/assets/{SettingsDialog-c307wPsg.js → SettingsDialog-DI0vZ6Ay.js} +1 -1
- package/dist/web/assets/ShortcutsDialog-DLXnv4Vm.js +1 -0
- package/dist/web/assets/SourceDocument-Cj8cGsoS.js +1 -0
- package/dist/web/assets/TemplateDocument-BRyFsofH.js +7 -0
- package/dist/web/assets/TextDocument-DB2hEuMA.js +1 -0
- package/dist/web/assets/{UnreadableFileLayer-CUP_30X8.js → UnreadableFileLayer-CRW3MM7w.js} +1 -1
- package/dist/web/assets/{UploadDialog-CaVBOxUL.js → UploadDialog-D-X6GG98.js} +1 -1
- package/dist/web/assets/Viewer-BcpDlvg_.js +4 -0
- package/dist/web/assets/apply-Nsj6ek02.js +1 -0
- package/dist/web/assets/{bpmnTheme-CZ7xp4R5.js → bpmnTheme-pKgl9Mrn.js} +2 -2
- package/dist/web/assets/{data-ZauKnQ2Z.js → data-CdiToGOq.js} +2 -2
- package/dist/web/assets/{data-Da5Nxzev.js → data-wU6sw6RY.js} +1 -1
- package/dist/web/assets/{dialog-DSLu1Bbo.js → dialog-BDJ5dDiU.js} +1 -1
- package/dist/web/assets/{diff-C4hitkRR.js → diff-BhYqTg4l.js} +1 -1
- package/dist/web/assets/dist-27z6Phtg.js +23 -0
- package/dist/web/assets/{dist-CofBTWz1.js → dist-B7TL-7R3.js} +4 -4
- package/dist/web/assets/dist-BEpeEbIu.js +1 -0
- package/dist/web/assets/{dist-CYCbBoYQ.js → dist-BTf7NfeQ.js} +1 -1
- package/dist/web/assets/{dist-CJKVV2_S.js → dist-BqGv7f4M.js} +10 -10
- package/dist/web/assets/dist-C-q1IWjr.js +6 -0
- package/dist/web/assets/{dist-Blylfrak.js → dist-CJx_2eBF.js} +2 -2
- package/dist/web/assets/dist-COUY_jv5.js +1 -0
- package/dist/web/assets/{dist-DpDu6Wz_.js → dist-CWjAtsKe.js} +1 -1
- package/dist/web/assets/{dist-gb3IfUZi.js → dist-Cv8_A_95.js} +2 -2
- package/dist/web/assets/dist-DDE6BjgI.js +5 -0
- package/dist/web/assets/{dist-7VC_hKpw.js → dist-DDNYYQtV.js} +1 -1
- package/dist/web/assets/dist-DW-S9iZN.js +1 -0
- package/dist/web/assets/dist-OnU5n5o1.js +1 -0
- package/dist/web/assets/dmn-Cgoh6wXm.js +3 -0
- package/dist/web/assets/{documentBridge-1Eg7H9yI.js → documentBridge-CHw4XsZH.js} +3 -3
- package/dist/web/assets/{documents-LG-7CTrn.js → documents-CEtohzAC.js} +1 -1
- package/dist/web/assets/duplicate-D_ic-m62.js +342 -0
- package/dist/web/assets/{engines-DhO6OW1S.js → engines-lyEvb0pH.js} +1 -1
- package/dist/web/assets/{executable-BTarDLry.js → executable--4381_Lf.js} +1 -1
- package/dist/web/assets/{file-CIeVSOHy.js → file-BbVBUuIH.js} +1 -1
- package/dist/web/assets/formChecks-CSClH9sH.js +1 -0
- package/dist/web/assets/frontend-uXAWaalt.js +1 -0
- package/dist/web/assets/{httpHost-DBSjdVth.js → httpHost-C973OTRe.js} +1 -1
- package/dist/web/assets/{index.es-pigASDxC.js → index.es-CMvq8Bhe.js} +3 -3
- package/dist/web/assets/index.es-GbdJvMnO.js +78 -0
- package/dist/web/assets/{index.esm-CTLpq4ik.js → index.esm-Ba6q0zSu.js} +1 -1
- package/dist/web/assets/{intelligence-_1C71hkQ.js → intelligence-DNqJNmdB.js} +3 -3
- package/dist/web/assets/{jspdf.es.min-PgZzOmkT.js → jspdf.es.min-C0L4zezU.js} +6 -6
- package/dist/web/assets/{kind-X3_nabTt.js → kind-DDHnk6dW.js} +1 -1
- package/dist/web/assets/{lib-BmLAen_d.js → lib-DrkEMJ65.js} +1 -1
- package/dist/web/assets/{list-DovB9lWV.js → list-TmXvCwja.js} +1 -1
- package/dist/web/assets/{migrationHost-BcguK4K5.js → migrationHost-DCWBb3L6.js} +1 -1
- package/dist/web/assets/moddle-f0Q4Guwd.js +1 -0
- package/dist/web/assets/{model--Bj28IOj.js → model-afHgSxJs.js} +1 -1
- package/dist/web/assets/{nudges-UF9_cBuO.js → nudges-DPG3WpyV.js} +1 -1
- package/dist/web/assets/{open-C9Kt9JLw.js → open-Vkx72dYx.js} +1 -1
- package/dist/web/assets/platform-G53Cenyw.js +2 -0
- package/dist/web/assets/{preload-helper-VRuDKI9K.js → preload-helper-DExCAR_V.js} +1 -1
- package/dist/web/assets/{run-BZgz1U9U.js → run-BMfRBe5O.js} +1 -1
- package/dist/web/assets/samples-BL3jA_Vd.js +1 -0
- package/dist/web/assets/{say-WvEHqIbO.js → say-BkdZMivA.js} +1 -1
- package/dist/web/assets/{say-ChFGKK2E.js → say-C7KqKcFr.js} +1 -1
- package/dist/web/assets/{sections-N6WYk7b8.js → sections-LJKSRDTS.js} +1 -1
- package/dist/web/assets/sharedReader-BsXfiBT8.js +1 -0
- package/dist/web/assets/{source-frame-DcptKpVq.js → source-frame-DC4W0A5-.js} +2 -2
- package/dist/web/assets/{syntax-DW10Wzg4.js → syntax-00Hk6Xv7.js} +4 -4
- package/dist/web/assets/{template-CMl68jPp.js → template-BQP7ZXdK.js} +1 -1
- package/dist/web/assets/testCaseRuns-liAhWMg7.js +1 -0
- package/dist/web/assets/{trace-DLziNpe2.js → trace-DXQU2N_l.js} +1 -1
- package/dist/web/assets/{translator-DLDFsUlE.js → translator-BLCeE6UY.js} +1 -1
- package/dist/web/assets/ui-BLtm3Y1J.js +1 -0
- package/dist/web/assets/{useTrace-UYBskc2k.js → useTrace-dZdQ805W.js} +1 -1
- package/dist/web/assets/web-C4k0NLZ9.js +982 -0
- package/dist/web/assets/web-CnDpD6qy.css +1 -0
- package/dist/web/assets/{workerVariables-DURgyUbG.js → workerVariables-O6VqwDzr.js} +1 -1
- package/dist/web/assets/xml-DIWt4von.js +1 -0
- package/dist/web/index.html +39 -40
- package/package.json +5 -5
- package/dist/chunk-account-CpZu-RTg.js +0 -1
- package/dist/chunk-agentServe-BYRtgGGD.js +0 -10
- package/dist/chunk-agents-B9oxdPTA.js +0 -1
- package/dist/chunk-agentsMigrate-BV8TeRXq.js +0 -2
- package/dist/chunk-analyze-pgzR-Cx-.js +0 -1
- package/dist/chunk-apiTemplates-cU7C8vap.js +0 -1
- package/dist/chunk-cmmnFindings-S2TGSnEp.js +0 -1
- package/dist/chunk-codeLinks-C8N6e8k3.js +0 -1
- package/dist/chunk-codeLinks-o0a8tBGk.js +0 -1
- package/dist/chunk-command-Bqlbgo-2.js +0 -1
- package/dist/chunk-command-DT84ioJb.js +0 -5
- package/dist/chunk-command-DrGP2kg8.js +0 -1
- package/dist/chunk-commands-B4PoZbpX.js +0 -5
- package/dist/chunk-compose-CWKKVtN5.js +0 -4
- package/dist/chunk-connections-DQpKbIGD.js +0 -1
- package/dist/chunk-connectors-PtAvE91B.js +0 -1
- package/dist/chunk-convert-CpgtOlZk.js +0 -1
- package/dist/chunk-convert-HbFpg8ab.js +0 -3
- package/dist/chunk-deploy-l4MdFfn8.js +0 -6
- package/dist/chunk-deploy-qRaaKGZb.js +0 -1
- package/dist/chunk-diff-BhTFlCE3.js +0 -1
- package/dist/chunk-diff-kBF83vzM.js +0 -1
- package/dist/chunk-dispatch-BnO-QhMh.js +0 -7
- package/dist/chunk-dmnTests-0x_yUH6S.js +0 -1
- package/dist/chunk-doctor-BuHK1dTm.js +0 -1
- package/dist/chunk-evidence-oLw_C6j8.js +0 -23
- package/dist/chunk-export-cIFHDXug.js +0 -1
- package/dist/chunk-export-jBVxtmCH.js +0 -20
- package/dist/chunk-failure-D5brrYW2.js +0 -1
- package/dist/chunk-import-BBOe-5RZ.js +0 -6
- package/dist/chunk-importCommand-DRjYoljA.js +0 -1
- package/dist/chunk-incident-BK1h37CD.js +0 -1
- package/dist/chunk-init-_OALJuKm.js +0 -227
- package/dist/chunk-lint-7KJFxyCN.js +0 -1
- package/dist/chunk-main-Cw2JXCil.js +0 -1
- package/dist/chunk-mcp-K63bhqnF.js +0 -95
- package/dist/chunk-migrate-BMwBV5sc.js +0 -16
- package/dist/chunk-migrate-CxfVmKt0.js +0 -1
- package/dist/chunk-migrateVerify-DSEXSpfR.js +0 -1
- package/dist/chunk-policy-BX0Ftdws.js +0 -1
- package/dist/chunk-policyGate-dmcufnwB.js +0 -2
- package/dist/chunk-pr-ByrGcfam.js +0 -1
- package/dist/chunk-project-DA3KnAZH.js +0 -1
- package/dist/chunk-promotion-Boedyq43.js +0 -1
- package/dist/chunk-promotion-D8Ti-vxp.js +0 -2
- package/dist/chunk-receipt-CusJaqNn.js +0 -1
- package/dist/chunk-receiptDeps-oVbX156d.js +0 -1
- package/dist/chunk-receiptGate-DrGChj7i.js +0 -1
- package/dist/chunk-receiptGate-xldHKMyJ.js +0 -1
- package/dist/chunk-refactor-B1W_MGTp.js +0 -1
- package/dist/chunk-refactor-BJXxEtVs.js +0 -17
- package/dist/chunk-report-D9pM09Nu.js +0 -1
- package/dist/chunk-review-UcqS5AAi.js +0 -1
- package/dist/chunk-say-CYb4HeJD.js +0 -1
- package/dist/chunk-serve-Dmqen1yd.js +0 -10
- package/dist/chunk-stages-BTQJrAMF.js +0 -3
- package/dist/chunk-systemError-BYrMzp2o.js +0 -1
- package/dist/chunk-systemError-CXvnhNPK.js +0 -1
- package/dist/chunk-taskTest-9gMsx0zu.js +0 -2
- package/dist/chunk-taskTest-BjXYpG5p.js +0 -1
- package/dist/chunk-templates-D3ouIwHD.js +0 -1
- package/dist/chunk-testCases-9jwT_Y7z.js +0 -4
- package/dist/chunk-testCases-BcpBPg9L.js +0 -1
- package/dist/chunk-tests-CEEXnWOp.js +0 -23
- package/dist/chunk-tests-CRVosdWp.js +0 -1
- package/dist/chunk-wrapper-B2WnOIoB.js +0 -3
- package/dist/chunk-wrapper-DiKCKZti.js +0 -1
- package/dist/web/assets/BpmnDocument-C247Rqim.js +0 -27
- package/dist/web/assets/CmmnDocument-Dj48bsUd.js +0 -17
- package/dist/web/assets/DmnDocument-Cb9Zi9fS.js +0 -41
- package/dist/web/assets/FormDocument-DoZaxWd-.js +0 -32
- package/dist/web/assets/FormDocument-URLcKn84.css +0 -1
- package/dist/web/assets/FormStepView-D8MFcpeI.js +0 -1
- package/dist/web/assets/PolicyDialog-CGdglmDn.js +0 -1
- package/dist/web/assets/ScriptPane-T6M5f6fc.js +0 -2
- package/dist/web/assets/ShortcutsDialog-BAoL9EHu.js +0 -1
- package/dist/web/assets/SourceDocument-C9KIzBA5.js +0 -1
- package/dist/web/assets/TemplateDocument-CNt2turg.js +0 -7
- package/dist/web/assets/TextDocument-CtkHoEqN.js +0 -1
- package/dist/web/assets/Viewer-DZske1C5.js +0 -4
- package/dist/web/assets/apply-nnKP9HIM.js +0 -1
- package/dist/web/assets/dist--PmHUHDp.js +0 -1
- package/dist/web/assets/dist-BoPrKCf2.js +0 -5
- package/dist/web/assets/dist-C1m02xAO.js +0 -1
- package/dist/web/assets/dist-CLqJMzT-.js +0 -1
- package/dist/web/assets/dist-D3jqq0XS.js +0 -1
- package/dist/web/assets/dist-DA-9F0U9.js +0 -1
- package/dist/web/assets/dist-DojzF5q2.js +0 -6
- package/dist/web/assets/dist-yvjzrXXf.js +0 -23
- package/dist/web/assets/dmn-DwdcYXGr.js +0 -3
- package/dist/web/assets/duplicate-D-ilQqKz.js +0 -342
- package/dist/web/assets/formChecks-CGox1z7R.js +0 -1
- package/dist/web/assets/frontend-Qq5hBH0U.js +0 -1
- package/dist/web/assets/index.es-CcNNw3VB.js +0 -78
- package/dist/web/assets/moddle-DJxj0oEU.js +0 -1
- package/dist/web/assets/platform-BLPhsye9.js +0 -2
- package/dist/web/assets/samples-oeXBsJ9Y.js +0 -1
- package/dist/web/assets/sharedReader-Bopy7Uk9.js +0 -1
- package/dist/web/assets/testCaseRuns-B_XdqGFh.js +0 -1
- package/dist/web/assets/ui-BTKMbWYG.js +0 -1
- package/dist/web/assets/web-FzNBw1kZ.css +0 -1
- package/dist/web/assets/web-jPMZVwbQ.js +0 -982
- package/dist/web/assets/xml-DTgZ-B-l.js +0 -1
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{i as t,t as n}from"./chunk-variables-CXAMjZIR.js";import{a as r,o as i}from"./chunk-moddle-D3Ym38EZ.js";import{n as a,t as o}from"./chunk-codeScan-C09My9xv.js";import{_ as s}from"./chunk-load-rfn3E0t5.js";import{t as c}from"./chunk-context-rCJvBM9p.js";import{i as l,r as u}from"./chunk-folders-C7ae1oPV.js";import{a as d}from"./chunk-safeWrite-RgLbdyzl.js";import{a as f,c as p,f as m,g as h,h as g,i as _,l as v,m as y,n as b,o as x,p as S,s as C,t as w,u as T}from"./chunk-jsonScan-DH9djCOu.js";import E from"node:path";import{closeSync as D,constants as O,fstatSync as ee,lstatSync as k,openSync as te,readFileSync as ne,readSync as re,readdirSync as ie,realpathSync as A}from"node:fs";import{spawnSync as ae}from"node:child_process";import{createHash as oe}from"node:crypto";import{parser as se}from"@bpmn-io/lezer-feel";const ce=[`for`,`in`,`return`,`if`,`then`,`else`,`some`,`every`,`satisfies`,`and`,`or`,`between`,`instance`,`of`,`function`,`external`],le=[`true`,`false`],ue=[`**`,`!=`,`<=`,`>=`],de={"(":`open_parenthesis`,")":`close_parenthesis`,"[":`open_bracket`,"]":`close_bracket`,"{":`open_brace`,"}":`close_brace`},fe=/* @__PURE__ */ new Map([[`message`,`MESSAGE`],[`signal`,`SIGNAL`],[`error`,`ERROR`],[`job-type`,`JOB_TYPE`],[`topic`,`TOPIC`],[`decision`,`DECISION`],[`form`,`FORM`],[`process`,`PROCESS`]]),pe=[`variable`,`message`,`signal`,`error`,`escalation`,`job-type`,`topic`,`decision`,`form`,`process`],j=()=>({sites:[],refused:[]}),me=[`getVariable`,`getVariableLocal`,`getVariableTyped`,`getVariableLocalTyped`,`hasVariable`,`hasVariableLocal`,`setVariable`,`setVariableLocal`,`removeVariable`,`removeVariableLocal`,`variable`,`withVariable`,`putValue`,`putValueTyped`,`get_variable`,`set_variable`,`has_variable`,`remove_variable`],he=[`escalationCode`,`throwEscalation`,`escalation_code`],ge=RegExp(`(?<![\\w$])(?:${me.join(`|`)})\\s*\\(\\s*`,`g`),_e=RegExp(`(?<![\\w$])(?:${he.join(`|`)})\\s*(?:\\(\\s*|=\\s*)`,`g`),ve=/@(?:Variable|VariableValue|ZeebeVariable)\s*\(\s*(?:(?:name|value)\s*=\s*)?/g,ye=[`"`,`'`,"`"],be=/@(?:Variable|VariableValue|ZeebeVariable)(?![\w(])/g,xe=/^\s*(?:final\s+)?[\w.$<>[\],? ]{1,120}?\s+([A-Za-z_$][\w$]*)\s*[,)=]/,Se=/^\s*(?:val\s+|var\s+)?([A-Za-z_$][\w$]*)\s*:/;function Ce(e,t,n){let r=e[t];return ye.includes(r)&&e.startsWith(n,t+1)&&e[t+1+n.length]===r}function we(e,t,n,r){let i=j();for(let a of e.matchAll(t)){let o=a.index+a[0].length;Ce(e,o,n)?i.sites.push({start:o+1,end:o+1+n.length,where:r}):!ye.includes(e[o])&&/[\w$]/.test(e[o]??``)&&t===ge&&i.refused.push({start:o,reason:`dynamicName`,where:r})}return i}function Te(e,t){let n=j();for(let r of e.matchAll(be)){let i=r.index+r[0].length,a=e.slice(i,i+160),o=xe.exec(a)??Se.exec(a);o?.[1]===t&&n.refused.push({start:i+a.indexOf(t,o.index),reason:`boundByName`,where:`@Variable`})}return n}function Ee(e,t){let n=t-1;for(;n>=0&&/\s/.test(e[n]);)--n;return n<0?``:e[n]}function De(e,t){let n=t;for(;n<e.length&&/\s/.test(e[n]);)n+=1;return n<e.length?e[n]:``}function Oe(e,t,n){let r={sites:[],refused:[...t.refused]};for(let n of t.sites){let t=Ee(e,n.start-1),i=De(e,n.end+1);t===`+`||i===`+`?r.refused.push({start:n.start,reason:`concatenation`,where:n.where}):r.sites.push(n)}let i=new Set(r.sites.map(e=>e.start));for(let t=e.indexOf(n);t>=0;t=e.indexOf(n,t+1))ye.includes(e[t-1]??``)&&e[t-1]===e[t+n.length]&&!i.has(t)&&!r.refused.some(e=>e.start===t)&&r.refused.push({start:t,reason:`literal`,where:`literal`});return r}function ke(e,t,n){if(!t.includes(n))return j();if(e===`variable`){let e=we(t,ge,n,`getVariable`),r=we(t,ve,n,`@Variable`),i=Te(t,n);return Oe(t,{sites:[...e.sites,...r.sites],refused:[...e.refused,...i.refused]},n)}return e===`escalation`?Oe(t,we(t,_e,n,`escalationCode`),n):Oe(t,{sites:S(fe.get(e),n,t).map(e=>({start:e.start,end:e.end,where:e.where})),refused:[]},n)}const Ae=/[\p{L}\p{N}_$]/u;function je(e,t,n){let r=j();for(let i=e.indexOf(t);i>=0;i=e.indexOf(t,i+1)){let a=e[i-1]??``,o=e[i+t.length]??``;Ae.test(a)||Ae.test(o)||ye.includes(a)||a===`.`||n.has(i)||r.refused.push({start:i,reason:`script`,where:`script`})}return r}const Me=4e3,Ne=e=>/\.(ya?ml|properties)$/i.test(e),Pe=e=>e.toLowerCase().replace(/[-_]/g,``);function Fe(e){return e.split(`.`).map(e=>e.replace(/\[[^\]]*]/g,``).trim()).filter(e=>e!==``)}function Ie(e,t){let n=[],r=0;for(let i of e.split(`.`)){let e=i.replace(/\[[^\]]*]/g,``).trim();e!==``&&n.push(e===i?t+r+(i.length-i.trimStart().length):null),r+=i.length+1}return n}function Le(e,t){let n=t;for(;n<e.length&&(e[n]===` `||e[n]===` `);)n+=1;let r=e[n];if((r===`"`||r===`'`)&&e.indexOf(r,n+1)>0){let t=e.indexOf(r,n+1);return{start:n+1,end:t,quoted:!0}}let i=e.length,a=e.indexOf(` #`,n);for(a>=0&&(i=a);i>n&&(e[i-1]===` `||e[i-1]===` `||e[i-1]===`\r`);)--i;return{start:n,end:i,quoted:!1}}function Re(e){let t=[],n=0;for(let r of e.split(`
|
|
2
|
-
`)){let e=n;if(n+=r.length+1,r.length>Me)continue;let i=r.trimStart(),a=r.length-i.length;if(i===``||i[0]===`#`||i[0]===`!`)continue;let o=-1;for(let e=a;e<r.length;e+=1)if(r[e]===`=`||r[e]===`:`){o=e;break}if(o<0)continue;let s=r.slice(a,o).trimEnd(),c=Le(r,o+1),l=s.lastIndexOf(`.`);t.push({segments:Fe(s),starts:Ie(s,e+a),item:!1,keyStart:e+a+(l<0?0:l+1),keyEnd:e+a+s.length,valueStart:e+c.start,valueEnd:e+c.end,value:r.slice(c.start,c.end)})}return t}function ze(e){let t=e[0];if(t===`"`||t===`'`){let n=e.indexOf(t,1);return n<0||e[n+1]!==`:`?null:{key:e.slice(1,n),end:n+1}}for(let t=0;t<e.length;t+=1){if(e[t]===`:`&&(t+1===e.length||e[t+1]===` `||e[t+1]===` `))return t===0?null:{key:e.slice(0,t).trimEnd(),end:t};if(e[t]===`#`&&t>0&&e[t-1]===` `||e[t]===`{`||e[t]===`[`)return null}return null}function Be(e){let t=[],n=[],r=0;for(let i of e.split(`
|
|
3
|
-
`)){let e=r;if(r+=i.length+1,i.length>Me)continue;let a=i.trimStart();if(a===``||a[0]===`#`||a.startsWith(`---`)||a.startsWith(`...`))continue;let o=i.length-a.length,s=a,c=!1;for(;s.startsWith(`- `)||s===`-`;){c=!0;let e=s.length>1?2:1;o+=e,s=s.slice(e).trimStart()}for(;n.length>0&&n[n.length-1].indent>=o;)n.pop();let l=n.length>0?n[n.length-1].segments:[],u=c&&s===``?null:ze(s);if(!u){if(c&&s!==``){let n=Le(i,i.length-s.length);t.push({segments:l,starts:l.map(()=>null),item:!0,keyStart:e,keyEnd:e,valueStart:e+n.start,valueEnd:e+n.end,value:i.slice(n.start,n.end)})}continue}let d=i.length-s.length,f=[...l,...Fe(u.key)],p=Le(i,d+u.end+1),m=Fe(u.key),h=s[0]===`"`||s[0]===`'`;t.push({segments:f,starts:[...l.map(()=>null),...h?m.map((t,n)=>n===0&&m.length===1?e+d+1:null):Ie(u.key,e+d)],item:!1,keyStart:e+d+ +(s[0]===`"`||s[0]===`'`),keyEnd:e+d+(s[0]===`"`||s[0]===`'`?u.end-1:u.key.length),valueStart:e+p.start,valueEnd:e+p.end,value:i.slice(p.start,p.end)}),p.start>=p.end&&n.push({indent:o,segments:f})}return t}const Ve={topic:[`topicname`],process:[`processdefinitionkey`,`bpmnprocessid`,`processid`],decision:[`decisionid`,`decisiondefinitionkey`],message:[`messagename`],signal:[`signalname`],error:[`errorcode`],escalation:[`escalationcode`],form:[`formid`,`formkey`],"job-type":[`jobtype`]};function He(e,t){let n=Pe(t.segments[t.segments.length-1]??``),r=t.segments.map(Pe);return e===`job-type`&&n===`type`&&(r.includes(`worker`)||r.includes(`workers`)||r.includes(`jobworker`))||e===`process`&&t.item&&n===`processdefinitionkeys`?!0:(Ve[e]??[]).includes(n)}function Ue(e,t,n){if(e!==`topic`||t.item)return null;let r=t.segments.map(Pe).indexOf(`subscriptions`);return(r>=0&&t.segments[r+1]===n?t.starts[r+1]:null)??null}function We(e){let t=[],n=0;for(let r of e.value.split(`,`)){let i=r.length-r.trimStart().length,a=r.trim();a!==``&&t.push({start:e.valueStart+n+i,end:e.valueStart+n+i+a.length,text:a}),n+=r.length+1}return t}function Ge(e,t,n,r){let i=j();if(!n.includes(r)||!Ne(t))return i;let a=/\.properties$/i.test(t)?Re(n):Be(n);for(let t of a){let n=t.segments.join(`.`),a=Ue(e,t,r);if(a!==null){i.sites.push({start:a,end:a+r.length,where:n});continue}let o=t.value.includes(r);if(o||t.segments.includes(r)){if(o&&e===`variable`&&Pe(t.segments[t.segments.length-1]??``)===`fetchvariables`){let e=We(t).filter(e=>e.text===r);for(let t of e)i.sites.push({start:t.start,end:t.end,where:n});e.length===0&&i.refused.push({start:t.valueStart,reason:`literal`,where:n})}else o&&He(e,t)?t.value===r?i.sites.push({start:t.valueStart,end:t.valueEnd,where:n}):t.value.includes("${")?i.refused.push({start:t.valueStart,reason:`placeholder`,where:n}):i.refused.push({start:t.valueStart,reason:`literal`,where:n}):(t.value===r||t.value.includes(`"${r}"`)||t.segments.includes(r))&&i.refused.push({start:t.value===r?t.valueStart:t.keyStart,reason:`literal`,where:n})}}return i}const M=/\s/u,Ke=/\p{Nd}/u,qe=/[\p{L}\p{Nl}\p{Sc}\p{Pc}]/u,Je=/[\p{L}\p{Nl}\p{Sc}\p{Pc}\p{Mn}\p{Mc}\p{Nd}\p{Cf}]/u;function N(e,t,n){return t<n?e.charAt(t):``}function Ye(e,t,n,r){let i=n;for(;i<r&&e.charAt(i)!==t;)i++;return i}function Xe(e,t,n){let r=t;for(;r<n&&M.test(e.charAt(r));)r++;return{kind:`whitespace`,end:r}}function Ze(e,t,n,r){let i=N(e,t,n),a=M.test(i)?Xe(e,t,n):Qe(e,t,n,r);return a.kind===`whitespace`?{kind:a.kind,end:a.end,afterDot:r}:{kind:a.kind,end:a.end,afterDot:a.kind===`punctuation`&&i===`.`}}function Qe(e,t,n,r){let i=N(e,t,n),a=N(e,t+1,n);return i===`/`&&a===`/`?{kind:`line_comment`,end:Ye(e,`
|
|
4
|
-
`,t,n)}:i===`/`&&a===`*`?et(e,t,n):i===`"`?tt(e,t,n,`string`):i===`@`&&a===`"`?tt(e,t+1,n,`temporal`):i==="`"?rt(e,t,n):Ke.test(i)?{kind:`number`,end:it(e,t,n)}:qe.test(i)?st(e,t,n,r):i===`.`&&a===`.`?{kind:`operator`,end:t+2}:i===`.`?{kind:`punctuation`,end:t+1}:ue.includes(i+a)?{kind:`operator`,end:t+2}:i!==``&&`+-*/=<>`.includes(i)?{kind:`operator`,end:t+1}:{kind:$e(i),end:t+1}}function $e(e){return e in de?de[e]??`bad`:e!==``&&`,:?;`.includes(e)?`punctuation`:`bad`}function et(e,t,n){let r=t+2;for(;r+1<n&&(e.charAt(r)!==`*`||e.charAt(r+1)!==`/`);)r++;return{kind:`block_comment`,end:r+1<n?r+2:n}}function tt(e,t,n,r){let i=nt(e,t,n);return i<0?{kind:`bad`,end:n}:{kind:r,end:i+1}}function nt(e,t,n){let r=t+1;for(;r<n;){let t=e.charAt(r);if(t===`\\`)r+=2;else if(t===`"`)return r;else r++}return-1}function rt(e,t,n){let r=Ye(e,"`",t+1,n);return r<n?{kind:`backtick_name`,end:r+1}:{kind:`bad`,end:n}}function it(e,t,n){let r=at(e,t,n);return N(e,r,n)===`.`&&Ke.test(N(e,r+1,n))&&(r=at(e,r+1,n)),r}function at(e,t,n){let r=t;for(;r<n&&Ke.test(e.charAt(r));)r++;return r}function ot(e){return ce.includes(e)||le.includes(e)||e===`null`}function st(e,t,n,r){let i=ct(e,t,n);if(r)return{kind:`property`,end:i};let a=e.slice(t,i);if(a===`date`){let t=ut(e,i,n);if(t!==void 0)return{kind:`function`,end:t}}if(ce.includes(a))return{kind:`keyword`,end:i};if(le.includes(a))return{kind:`boolean`,end:i};if(a===`null`)return{kind:`null`,end:i};let o=lt(e,i,n);return{kind:N(e,o,n)===`(`?`function`:`name`,end:o}}function ct(e,t,n){let r=t+1;for(;r<n&&Je.test(e.charAt(r));)r++;return r}function lt(e,t,n){let r=t;for(;r+1<n&&e.charAt(r)===` `&&qe.test(e.charAt(r+1));){let t=ct(e,r+1,n);if(ot(e.slice(r+1,t)))break;r=t}return r}function ut(e,t,n){let r=dt(e,t,n,`and`);if(r===void 0)return;let i=dt(e,r,n,`time`);if(i===void 0)return;let a=i;for(;a<n&&M.test(e.charAt(a));)a++;return N(e,a,n)===`(`?i:void 0}function dt(e,t,n,r){let i=t;for(;i<n&&M.test(e.charAt(i));)i++;if(i===t)return;let a=i+r.length;if(!(a>n||e.slice(i,a)!==r))return a<n&&Je.test(e.charAt(a))?void 0:a}function P(e){let t=[],n=0,r=!1;for(;n<e.length;){let i=Ze(e,n,e.length,r);i.kind!==`whitespace`&&t.push({kind:i.kind,start:n,end:i.end,text:e.slice(n,i.end)}),r=i.afterDot,n=i.end}return t}function ft(e,t){return t.reduce((e,t)=>t.kind===`backtick_name`?e.slice(0,t.start)+`x`.repeat(t.end-t.start)+e.slice(t.end):e,e)}function pt(e,t=P(e)){return se.parse(ft(e,t))}const mt={open_parenthesis:`close_parenthesis`,open_bracket:`close_bracket`,open_brace:`close_brace`},ht=new Set(Object.values(mt)),gt=/* @__PURE__ */ new Set([`operator`,`keyword`]);function _t(e){let t;return e.iterate({enter(e){e.type.isError&&(t===void 0||e.from<t)&&(t=e.from)}}),t}function vt(e){return e!==void 0&&e.kind===`operator`&&e.text===`=`}function yt(e){return e.flatMap((t,n)=>{let r=e[n+1];return!vt(t)||!vt(r)||r?.start!==t.end?[]:[{problem:`DOUBLE_EQUALS`,start:t.start,end:r.end,text:`==`,replacement:`=`}]})}function bt(e){return e.filter(e=>e.kind===`name`&&e.text.includes(` `)).map(e=>({problem:`SPACED_NAME`,start:e.start,end:e.end,text:e.text,replacement:"`"+e.text+"`"}))}function xt(e){return e.flatMap((t,n)=>{let r=e[n+1];return t.kind!==`number`||r===void 0||r.kind!==`name`||r.start!==t.end?[]:[{problem:`UNEXPECTED_TOKEN`,start:r.start,end:r.end,text:r.text}]})}function St(e){let t=[];for(let n of e){let e=t[t.length-1];n.kind in mt?t.push(n):e!==void 0&&ht.has(n.kind)&&mt[e.kind]===n.kind&&t.pop()}let n=t[t.length-1];return n?{problem:`UNCLOSED_BRACKET`,start:n.start,end:n.end,text:n.text}:void 0}function Ct(e){let t=e.find(e=>e.kind===`keyword`&&e.text===`if`);if(t&&!e.some(e=>e.kind===`keyword`&&e.text===`else`))return{problem:`MISSING_ELSE`,start:t.start,end:t.end,text:t.text}}function wt(e){let t=e[e.length-1];return t&>.has(t.kind)?{problem:`ENDS_TOO_EARLY`,start:t.start,end:t.end,text:t.text}:void 0}function Tt(e,t){let n=e.find(e=>e.end>t);if(n&&n.kind===`bad`&&`"'`.includes(n.text.charAt(0)))return{problem:`UNTERMINATED_STRING`,start:n.start,end:n.end,text:n.text}}function Et(e,t){let n=e.find(e=>e.end>t);return n?{problem:`UNEXPECTED_TOKEN`,start:n.start,end:n.end,text:n.text}:void 0}function Dt(e){if(e.trim()===``)return;let t=P(e),n=[...yt(t),...bt(t),...xt(t)],r=n.map(e=>e.start),i=_t(pt(e,t));if(i!==void 0&&r.push(i),r.length===0)return;let a=Math.min(...r);return n.find(e=>e.start<=a&&a<e.end)??St(t)??Ct(t)??wt(t)??Tt(t,a)??Et(t,a)??{problem:`NOT_FEEL`,start:0,end:e.length,text:e.trim()}}const Ot=/* @__PURE__ */ new Set([`for`,`some`,`every`]),kt=/* @__PURE__ */ new Set([`name`,`property`,`close_bracket`,`close_parenthesis`,`string`,`backtick_name`]);function At(e,t){return e!==void 0&&e.kind===`keyword`&&e.text===t}function jt(e,t){return e!==void 0&&e.kind===`punctuation`&&e.text===t}function F(e){return e.kind===`name`?e.text:e.kind===`backtick_name`?e.text.slice(1,-1):null}function Mt(e,t){let n=/* @__PURE__ */ new Set;if(e[t]?.kind!==`open_parenthesis`)return n;for(let r=t+1;r<e.length&&e[r].kind!==`close_parenthesis`;r+=1)F(e[r])!==null&&!jt(e[r-1],`:`)&&n.add(r);return n}function Nt(e,t){let n=[];for(let r=0;r<e.length;r+=1){let i=e[r];if(i.kind===`open_brace`?n.push(!0):i.kind===`close_brace`&&n.pop(),(F(i)??(i.kind===`string`?i.text.slice(1,-1):null))!==t){if(At(i,`function`)&&[...Mt(e,r+1)].some(n=>F(e[n])===t))return i;continue}let a=e[r-1],o=e[r+1];if(n.length>0&&jt(o,`:`)||a!==void 0&&a.kind===`keyword`&&Ot.has(a.text)||At(o,`in`)&&(jt(a,`,`)||a!==void 0&&a.kind===`keyword`&&Ot.has(a.text)))return i}return null}function Pt(e){let t=[],n=[],r=0;for(let i=0;i<e.length;i+=1){let a=e[i];if(a.kind===`open_bracket`){let n=i>0&&kt.has(e[i-1].kind);t.push(n),n&&(r+=1)}n.push(r),a.kind===`close_bracket`&&t.length>0&&t.pop()===!0&&--r}return n}function I(e,t){let n=j();if(!e.includes(t))return n;if(Dt(e)!==void 0)return n.refused.push({start:e.indexOf(t),reason:`syntax`,where:`expression`}),n;let r=P(e),i=Nt(r,t);if(i)return n.refused.push({start:i.start,reason:`binding`,where:`expression`}),n;let a=Pt(r);return r.forEach((e,r)=>{if(F(e)!==t)return;let i=+(e.kind===`backtick_name`),o=e.start+i,s=e.end-i;a[r]>0?n.refused.push({start:o,reason:`filter`,where:`expression`}):n.sites.push({start:o,end:s,where:`expression`})}),n}function Ft(e,t){let n=j();if(!e.includes(t))return n;let r=P(e);return r.length===1&&r[0].kind===`string`&&r[0].text===`"${t}"`?(n.sites.push({start:r[0].start+1,end:r[0].end-1,where:`expression`}),n):(n.refused.push({start:e.indexOf(t),reason:`dynamicExpression`,where:`expression`}),n)}const It=[[`<!--`,`-->`],[`<![CDATA[`,`]]>`],[`<?`,`?>`]];function Lt(e,t,n){return e.slice(t,n).replace(/[^\r\n]/g,` `)}function Rt(e){let t=``,n=0,r=e.indexOf(`<`);for(;r>=0;){let i=It.find(([t])=>e.startsWith(t,r));if(i===void 0){r=e.indexOf(`<`,r+1);continue}let a=e.indexOf(i[1],r+i[0].length),o=a<0?e.length:a+i[1].length;t+=e.slice(n,r)+Lt(e,r,o),n=o,r=e.indexOf(`<`,o)}return t+e.slice(n)}const zt=/[A-Za-z_$][\w$]*/g,Bt=/* @__PURE__ */ RegExp(`\\b(?:getVariable|getVariableTyped|getVariableLocal|getVariableLocalTyped|hasVariable|hasVariableLocal|setVariable|setVariableLocal|removeVariable)\\s*\\(\\s*`,`g`);function Vt(e){let t=``;for(let n=0;n<e.length;n+=1){let r=e[n];if(r!==`"`&&r!==`'`){t+=r;continue}let i=n+1;for(;i<e.length&&e[i]!==r;)i+=e[i]===`\\`?2:1;t+=r+` `.repeat(Math.max(0,Math.min(i,e.length)-n-1))+(i<e.length?r:``),n=i}return t}function Ht(e,t){let n=t-1;for(;n>=0&&/\s/.test(e[n]);)--n;return n<0?``:e[n]}function Ut(e,t){let n=t;for(;n<e.length&&/\s/.test(e[n]);)n+=1;return e.slice(n,n+64)}function Wt(e){let t=[];for(let n=0;n<e.length-1;n+=1){if(e[n]!==`$`&&e[n]!==`#`||e[n+1]!==`{`)continue;let r=1,i=n+2;for(;i<e.length&&r>0;){let t=e[i];if(t===`"`||t===`'`)for(i+=1;i<e.length&&e[i]!==t;)i+=e[i]===`\\`?2:1;else t===`{`?r+=1:t===`}`&&--r;i+=1}if(r>0)return t;t.push({start:n+2,end:i-1}),n=i-1}return t}function Gt(e,t){let n=j();if(!e.includes(t))return n;for(let r of Wt(e)){let i=e.slice(r.start,r.end),a=Vt(i);if(a.includes(`->`)&&i.includes(t))n.refused.push({start:r.start+i.indexOf(t),reason:`binding`,where:`expression`});else{for(let e of a.matchAll(zt)){if(e[0]!==t)continue;let i=e.index,o=i+t.length;if(Ht(a,i)===`.`)continue;let s=Ut(a,o);s.startsWith(`(`)||/^:\s*[A-Za-z_$][\w$]*\s*\(/.test(s)||n.sites.push({start:r.start+i,end:r.start+o,where:`expression`})}for(let e of i.matchAll(Bt)){let a=e.index+e[0].length,o=i[a];if(o!==`"`&&o!==`'`){n.refused.push({start:r.start+a,reason:`dynamicName`,where:`expression`});continue}let s=i.indexOf(o,a+1);s>0&&i.slice(a+1,s)===t&&n.sites.push({start:r.start+a+1,end:r.start+s,where:`expression`})}}}return n}function Kt(e){for(let t of Wt(e)){let n=e.slice(t.start,t.end);for(let e of n.matchAll(Bt)){let t=n[e.index+e[0].length];if(t!==`"`&&t!==`'`)return!0}}return!1}const qt={target:[`input`,`output`,`in`,`out`],source:[`in`,`out`],name:[`inputParameter`,`outputParameter`],resultVariable:`*`,inputElement:[`loopCharacteristics`],outputCollection:[`loopCharacteristics`],initiator:`*`,errorCodeVariable:`*`,errorMessageVariable:`*`,elementVariable:`*`,collection:`*`,id:[`formField`]},Jt=/* @__PURE__ */ new Set([`input`,`output`]),Yt=/* @__PURE__ */ new Set([`delegateExpression`]),Xt=/* @__PURE__ */ new Set([`documentation`,`text`,`textAnnotation`,`extensionElements`]),Zt=/* @__PURE__ */ new Set([`inputExpression`,`literalExpression`]),Qt=/^(camunda-forms:bpmn:)(.+)$/,$t=(e,t)=>e.includes(t)||e.includes(`&`),L=e=>e.slice(e.indexOf(`:`)+1);function en(e,t){let n=t.end-t.start;return{value:e.slice(t.start,t.end),starts:Array.from({length:n},(e,n)=>t.start+n),ends:Array.from({length:n},(e,n)=>t.start+n+1)}}function tn(e,t){let n={value:``,starts:[],ends:[]};for(let r of t){let t=r.cdata?en(e,r):v(e,r.start,r.end);n.value+=t.value;for(let e=0;e<t.starts.length;e+=1)n.starts.push(t.starts[e]),n.ends.push(t.ends[e])}return n}function R(e,t,n,r){for(let i of t.sites){let t=T(e,i.start,i.end);t.encoded?n.refused.push({start:t.start,reason:`encoded`,where:r}):n.sites.push({start:t.start,end:t.end,where:r})}for(let i of t.refused){let t=e.starts[Math.min(i.start,e.starts.length-1)]??0;n.refused.push({...i,start:t,where:r})}}function nn(e,t){return{sites:e.sites.map(e=>({...e,start:e.start+t,end:e.end+t})),refused:e.refused.map(e=>({...e,start:e.start+t}))}}function rn(e,t){let n=e.length-e.trimStart().length;return e.slice(n).startsWith(`=`)?nn(I(e.slice(n+1),t),n+1):I(e,t)}function an(e,t){return{sites:e===t||e.startsWith(t)&&(e[t.length]===`.`||e[t.length]===`[`)?[{start:0,end:t.length,where:``}]:[],refused:[]}}function on(e,t){let n=e.trimStart();return n.startsWith(`=`)?rn(e,t):n.includes("${")||n.includes(`#{`)?Gt(e,t):j()}function sn(e,t){let n=ke(`variable`,e,t),r=je(e,t,/* @__PURE__ */ new Set([...n.sites.map(e=>e.start),...n.refused.map(e=>e.start)]));return{sites:n.sites,refused:[...r.refused,...n.refused]}}function cn(e,t){let n=qt[L(t)];return n===`*`||n!==void 0&&n.includes(e.local)}function ln(e,t,n,r,i){for(let a of t.attributes){if(a.name.startsWith(`xmlns`)||!$t(e.slice(a.start,a.end),n))continue;let o=v(e,a.start,a.end);if(!o.value.includes(n))continue;let s=`${t.name}@${a.name}`,c=L(a.name),l=o.value;r?(t.local===`inputData`||t.local===`variable`&&t.parent?.local===`inputData`)&&c===`name`&&R(o,an(l,n),i,s):c===`source`&&Jt.has(t.local)?R(o,rn(l,n),i,s):cn(t,a.name)&&!l.includes("${")&&!l.trimStart().startsWith(`=`)?R(o,an(l,n),i,s):Yt.has(c)||R(o,on(l,n),i,s)}}function un(e,t,n,r,i){if(t.text.length===0||!r&&Xt.has(t.local)||!t.text.some(t=>$t(e.slice(t.start,t.end),n)))return;let a=tn(e,t.text);a.value.includes(n)&&(r?t.parent!==null&&Zt.has(t.parent.local)&&R(a,I(a.value,n),i,`${t.parent.name}/${t.name}`):t.local===`script`?R(a,sn(a.value,n),i,t.name):R(a,on(a.value,n),i,t.name))}function dn(e,t,n,r){let i=j();for(let a of t)ln(e,a,n,r,i),un(e,a,n,r,i);return i}function z(e,t,n,r,i,a){for(let o of t)for(let t of o.attributes)L(t.name)===n&&e.slice(t.start,t.end)===`${r}${i}`&&a.sites.push({start:t.start+r.length,end:t.end,where:`${o.name}@${t.name}`})}function fn(e,t,n,r,i){let a=t=>e.some(e=>e.local===t&&x(e,`id`)?.value===r);n===`process`&&a(`process`)&&(z(t,e,`bpmnElement`,``,r,i),z(t,e,`processRef`,``,r,i)),n===`decision`&&a(`decision`)&&(z(t,e,`dmnElementRef`,``,r,i),z(t,e,`href`,`#`,r,i))}function pn(e,t,n){let r=j();for(let i of t)for(let t of i.attributes){if(L(t.name)!==`escalationCode`)continue;let a=v(e,t.start,t.end),o=`${i.name}@${t.name}`;a.value===n?r.sites.push({start:t.start,end:t.end,where:o}):a.value.startsWith(`=`)&&R(a,nn(Ft(a.value.slice(1),n),1),r,o)}return r}function mn(e,t,n,r){for(let i of t)for(let t of i.attributes){if(L(t.name)!==`formKey`)continue;let a=Qt.exec(e.slice(t.start,t.end));a&&a[2]===n&&r.sites.push({start:t.start+a[1].length,end:t.end,where:`${i.name}@${t.name}`})}}function hn(e,t,n,r,i){for(let a of m(n,e)){let e=v(t,a.start,a.end);e.value.startsWith(`=`)&&R(e,nn(Ft(e.value.slice(1),r),1),i,a.where)}}function gn(e){let t=/* @__PURE__ */ new Set,n=e.sites.filter(e=>!t.has(e.start)&&(t.add(e.start),!0)),r=/* @__PURE__ */ new Set;return{sites:n,refused:e.refused.filter(e=>{let n=`${e.start}:${e.reason}`;return t.has(e.start)||r.has(n)?!1:(r.add(n),!0)})}}function _n(e,t,n,r){if(!t.includes(n)&&!t.includes(`&#`))return j();let i=p(t);if(i.problem!==null||i.root===null)return{sites:[],refused:[{start:0,reason:`malformed`,where:`xml`}]};if(e===`variable`)return gn(dn(t,i.elements,n,r));if(e===`escalation`)return gn(pn(t,i.elements,n));let a=fe.get(e),o=Rt(t),s=j();for(let e of y(a,n,o))s.sites.push({start:e.start,end:e.end,where:e.where});return hn(o,t,a,n,s),fn(i.elements,t,e,n,s),e===`form`&&mn(t,i.elements,n,s),gn(s)}function vn(e,t){return/\.form$/i.test(e)?`form`:/\.json$/i.test(e)?t.includes(`cpt-test-cases`)?`cases`:t.includes(`element-templates`)||/(^|\/)element-templates\//.test(e.replace(/\\/g,`/`))?`template`:null:null}const yn=/\{\{([^{}]{0,400})}}/g;function bn(e,t,n,r){e.value===t&&(e.plain?r.sites.push({start:e.start,end:e.end,where:n}):r.refused.push({start:e.start,reason:`escaped`,where:n}))}function xn(e,t,n,r){(e.value===t||e.value.startsWith(t)&&(e.value[t.length]===`.`||e.value[t.length]===`[`))&&(e.plain?r.sites.push({start:e.start,end:e.start+t.length,where:n}):r.refused.push({start:e.start,reason:`escaped`,where:n}))}function Sn(e,t,n,r,i){if(!e.value.includes(t))return;let a=e.value.length-e.value.trimStart().length,o=e.value.slice(a),s=[];if(o.startsWith(`=`))s.push({from:a+1,text:o.slice(1)});else if(!i&&o.includes(`{{`))for(let e of o.matchAll(yn))s.push({from:a+e.index+2,text:e[1]});for(let a of s){let o=i?Ft(a.text,t):I(a.text,t);if(!e.plain)(o.sites.length>0||o.refused.length>0)&&r.refused.push({start:e.start,reason:`escaped`,where:n});else{for(let t of o.sites)r.sites.push({start:e.start+a.from+t.start,end:e.start+a.from+t.end,where:n});for(let t of o.refused)r.refused.push({...t,start:e.start+a.from+t.start,where:n})}}}function Cn(e,t){let n=j();return f(e,(e,r,i)=>{e.kind===`string`&&(r?.kind===`object`&&(i===`key`||i===`valuesKey`)?xn(e,t,i,n):Sn(e,t,`expression`,n,!1))}),n}const wn={"zeebe:taskDefinition:type":`job-type`,"zeebe:taskDefinition":`job-type`,"zeebe:calledElement":`process`,"zeebe:calledDecision":`decision`,"zeebe:formDefinition":`form`,"bpmn:Message#property":`message`,"bpmn:Signal#property":`signal`,"bpmn:Error#property":`error`,"bpmn:Escalation#property":`escalation`};function Tn(e,t,n){let r=j();return f(e,e=>{if(e.kind!==`object`)return;let i=w(e,`binding`)?.value,a=_(e,`value`);if(i?.kind!==`object`)return;let o=_(i,`type`)?.value??``;if(t===`variable`){let e=_(i,`name`);(o===`zeebe:input`||o===`camunda:inputParameter`||o===`camunda:outputParameter`)&&e&&xn(e,n,`binding.name`,r);let t=_(i,`source`);t&&(o===`zeebe:output`||o===`camunda:outputParameter`)&&En(t,n,r),a&&o===`zeebe:output`&&xn(a,n,`value`,r),a&&Sn(a,n,`value`,r,!1)}else a&&wn[o]===t&&(bn(a,n,`binding ${o}`,r),Sn(a,n,`binding ${o}`,r,!0))}),r}function En(e,t,n){if(!e.plain){e.value.includes(t)&&n.refused.push({start:e.start,reason:`escaped`,where:`binding.source`});return}let r=/^\s*=?/.exec(e.value)?.[0].length??0,i=I(e.value.slice(r),t);for(let t of i.sites)n.sites.push({start:e.start+r+t.start,end:e.start+r+t.end,where:`binding.source`});for(let t of i.refused)n.refused.push({...t,start:e.start+r+t.start,where:`binding.source`})}const Dn={"job-type":[`jobType`],error:[`errorCode`],process:[`processDefinitionId`],decision:[`decisionDefinitionId`],signal:[`signalName`],escalation:[`escalationCode`]};function On(e,t,n){let r=j();return f(e,(e,i,a)=>{if(t===`variable`){if(e.kind===`object`&&a===`variables`&&i!==null)for(let t of e.members)t.key===n&&(t.keyPlain?r.sites.push({start:t.keyStart,end:t.keyEnd,where:`variables`}):r.refused.push({start:t.keyStart,reason:`escaped`,where:`variables`}))}else e.kind===`string`&&i?.kind===`object`&&a!==null&&((Dn[t]??[]).includes(a)||t===`message`&&a===`name`&&kn(i))&&bn(e,n,a,r)}),r}function kn(e){let t=_(e,`type`)?.value??``;return t===`CORRELATE_MESSAGE`||t===`PUBLISH_MESSAGE`}function An(e,t,n,r){if(!n.includes(r))return j();let i=b(n);return i===null?{sites:[],refused:[{start:0,reason:`malformed`,where:`json`}]}:t===`form`?e===`variable`?Cn(i,r):e===`form`?{sites:g(fe.get(`form`),r,n).map(e=>({start:e.start,end:e.end,where:e.where})),refused:[]}:j():t===`template`?Tn(i,e,r):On(i,e,r)}const jn=/^[\p{L}_$][\p{L}\p{N}_$]*$/u,Mn=/^[\p{L}_][\p{L}\p{N}_.-]*$/u,Nn=/[\p{Cf}\u2028\u2029]/u,Pn=/* @__PURE__ */ new Set([...ce,...le,`null`,`empty`,`eq`,`ne`,`lt`,`gt`,`le`,`ge`,`div`,`mod`,`instanceof`,`execution`,`task`]),Fn=/\.(bpmn|bpmn\.xml|bpmn20\.xml)$/i,In=/\.dmn$/i,Ln=e=>pe.includes(e);function Rn(e,t){return t===``?{code:`empty`,detail:``}:t.length>200?{code:`tooLong`,detail:`200`}:t!==t.trim()||!h(t)||Nn.test(t)?{code:`unwritable`,detail:``}:e===`variable`&&(!jn.test(t)||Pn.has(t))||(e===`process`||e===`decision`)&&!Mn.test(t)||e===`form`&&/\s/.test(t)?{code:`badName`,detail:t}:null}function zn(e){if(!Ln(e.kind))return[{code:`unknownKind`,detail:String(e.kind).slice(0,40)}];let t=[],n=Rn(e.kind,e.from);n&&t.push({...n,detail:n.code===`empty`?`from`:n.detail});let r=Rn(e.kind,e.to);return r?t.push(r):/^\s*=|\$\{|#\{|\{\{/.test(e.to)?t.push({code:`expression`,detail:``}):e.to===e.from&&t.push({code:`same`,detail:``}),t}function Bn(e,t,n){if(Fn.test(t.path))return _n(e,t.text,n,!1);if(In.test(t.path))return _n(e,t.text,n,!0);if(/\.(form|json)$/i.test(t.path)){let r=vn(t.path,t.text);return r===null?null:An(e,r,t.text,n)}return Ne(t.path)?Ge(e,t.path,t.text,n):a.test(t.path)?ke(e,t.text,n):null}function Vn(e){let t=[0];for(let n=e.indexOf(`
|
|
5
|
-
`);n>=0;n=e.indexOf(`
|
|
6
|
-
`,n+1))t.push(n+1);return n=>{let r=0,i=t.length-1;for(;r<i;){let e=r+i+1>>1;t[e]<=n?r=e:i=e-1}let a=e.indexOf(`
|
|
7
|
-
`,t[r]),o=e.slice(t[r],a<0?e.length:a).replace(/\r$/,``);return{line:r+1,column:n-t[r]+1,lineText:o.length>120?o.trim().slice(0,120):o.trim()}}}function Hn(e,t,n,r){let i=Vn(e.text),a=[],o=-1,s=[...t.sites].sort((e,t)=>e.start-t.start||e.end-t.end);for(let t of s){if(t.start===o)continue;let s=i(t.start);e.text.slice(t.start,t.end)!==n.from||t.start<o?r.push({file:e.path,line:s.line,column:s.column,reason:`malformed`,where:t.where,excerpt:s.lineText,blocking:!0}):(o=t.end,a.push({file:e.path,start:t.start,end:t.end,line:s.line,column:s.column,where:t.where,before:n.from,after:n.to,lineText:s.lineText}))}let c=/* @__PURE__ */ new Set;for(let n of[...t.refused].sort((e,t)=>e.start-t.start)){if(n.reason===`dynamicName`){if(c.has(n.reason))continue;c.add(n.reason)}let t=i(n.start);r.push({file:e.path,line:t.line,column:t.column,reason:n.reason,where:n.where,excerpt:t.lineText,blocking:n.blocking??!0})}return a}function Un(e,t,n={}){let r=zn(t),i={request:t,edits:[],refused:[],blockers:r,files:[],scanned:e.length,truncated:!1};if(r.length>0)return i;for(let e of n.skipped??[])i.refused.push({file:e.path,line:0,column:0,reason:e.reason,where:``,excerpt:``,blocking:!0});let a=[...e].sort((e,t)=>e.path<t.path?-1:+(e.path>t.path));for(let e of a){let n=Bn(t.kind,e,t.from);if(n===null||n.sites.length===0&&n.refused.length===0)continue;let a=Hn(e,n,t,i.refused);if(a.length>0&&i.files.push({path:e.path,edits:a.length}),i.edits.push(...a),i.edits.length>2e4||i.refused.length>500)return i.truncated=!0,i.edits.length=Math.min(i.edits.length,2e4),i.refused.length=Math.min(i.refused.length,500),r.push({code:`tooMany`,detail:`20000`}),i}let o=a.reduce((e,n)=>e+(Bn(t.kind,n,t.to)?.sites.length??0),0);return o>0&&r.push({code:`exists`,detail:String(o)}),i.edits.length===0&&r.push({code:`nothing`,detail:``}),i}var Wn=class extends Error{file;constructor(e){super(e),this.file=e}};function Gn(e,t){let n=[...t].sort((e,t)=>e.start-t.start),r=[],i=0;for(let t of n){if(t.start<i||t.end<t.start||e.slice(t.start,t.end)!==t.before)throw new Wn(t.file);r.push(e.slice(i,t.start),t.after),i=t.end}return r.push(e.slice(i)),r.join(``)}function Kn(e,t,n={}){let r=new Map(e.map(e=>[e.path,e.text])),i=new Map(r),a=[],o=/* @__PURE__ */ new Set,s=t.length===0||t.length>500;for(let[e,i]of t.slice(0,500).entries()){let t=Un([...r].map(([e,t])=>({path:e,text:t})),i,e===0?n:{});if(a.push(t),t.blockers.length>0)s=!0;else for(let e of t.files)o.add(e.path),r.set(e.path,Gn(r.get(e.path),t.edits.filter(t=>t.file===e.path)))}let c=[...o].filter(e=>r.get(e)!==i.get(e)).sort();return{steps:a,changed:c,finals:new Map(c.map(e=>[e,r.get(e)])),blocked:s,edits:a.reduce((e,t)=>e+t.edits.length,0),blockingRefusals:a.reduce((e,t)=>e+t.refused.filter(e=>e.blocking).length,0)}}const qn=262144,B=(e,t,n=``)=>({requests:[],problem:{code:e,line:t,detail:n.slice(0,80)}});function Jn(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return B(`badEntry`,t);let{kind:n,from:r,to:i}=e;return typeof n!=`string`||typeof r!=`string`||typeof i!=`string`?B(`badEntry`,t):Ln(n)?{kind:n,from:r,to:i}:B(`badKind`,t,n)}function Yn(e){let t;try{t=JSON.parse(e)}catch{return B(`badJson`,0)}let n=Array.isArray(t)?t:t?.renames;return Array.isArray(n)?Zn(n.map((e,t)=>Jn(e,t+1))):B(`badJson`,0)}function Xn(e){let t=[];return e.split(`
|
|
8
|
-
`).forEach((e,n)=>{let r=e.replace(/\r$/,``);if(r.trim()===``||r.trimStart().startsWith(`#`))return;let i=r.split(`,`);i.length===3?t.push(Jn({kind:i[0].trim(),from:i[1].trim(),to:i[2].trim()},n+1)):t.push(B(`badLine`,n+1))}),Zn(t)}function Zn(e){let t=[];for(let n of e){if(`problem`in n)return n;t.push(n)}return t.length===0?B(`empty`,0):t.length>500?B(`tooMany`,0,`500`):{requests:t,problem:null}}function Qn(e,t){return e.length>262144?B(`tooLarge`,0):t?Yn(e.replace(/^/,``)):Xn(e.replace(/^/,``))}const $n={bpmn:`http://www.omg.org/spec/BPMN/20100524/MODEL`,bpmndi:`http://www.omg.org/spec/BPMN/20100524/DI`,dc:`http://www.omg.org/spec/DD/20100524/DC`,di:`http://www.omg.org/spec/DD/20100524/DI`,zeebe:`http://camunda.org/schema/zeebe/1.0`,camunda:`http://camunda.org/schema/1.0/bpmn`},er=/^[\p{L}_][\p{L}\p{N}_.-]*$/u,tr=/^[A-Za-z_]\w*$/,nr=/* @__PURE__ */ new Set([`task`,`subProcess`,`adHocSubProcess`,`transaction`,`callActivity`,`intermediateCatchEvent`,`intermediateThrowEvent`,`boundaryEvent`]),rr=/* @__PURE__ */ new Set([`serviceTask`,`sendTask`,`userTask`,`businessRuleTask`,`callActivity`,`scriptTask`]),ir=/* @__PURE__ */ new Set([`dataInputAssociation`,`dataOutputAssociation`,`dataObjectReference`,`dataStoreReference`,`ioSpecification`,`property`]),ar=/* @__PURE__ */ new Set([`messageRef`,`signalRef`,`errorRef`,`escalationRef`]),or=/* @__PURE__ */ new Set([`message`,`signal`,`error`,`escalation`]),sr=/* @__PURE__ */ new Set([`input`,`loop element`]),cr=/* @__PURE__ */ new Set([`output`,`loop output`]),lr=/* @__PURE__ */ new Set([`id`,`name`,`triggeredByEvent`,`startQuorum`,`completionQuantity`,`isForCompensation`]),V=(e,t=``)=>({reason:e,detail:t.slice(0,120)}),H=(...e)=>({ok:!1,refusals:e}),U=e=>e.attributes.find(e=>e.name===`id`)?.value??``,W=(e,t)=>e.attributes.find(e=>e.name===t)?.value,ur=e=>e.slice(e.indexOf(`:`)+1),G=e=>e.slice(e.indexOf(`:`)+1);function dr(e){let t={};for(let n of e.attributes){if(n.name!==`xmlns`&&!n.name.startsWith(`xmlns:`))continue;let e=n.name===`xmlns`?``:n.name.slice(6);for(let r of Object.keys($n))$n[r]===n.value&&(t[r]=e)}return t.bpmn===void 0?null:{bpmn:t.bpmn,bpmndi:t.bpmndi??`bpmndi`,dc:t.dc??`dc`,di:t.di??`di`,zeebe:t.zeebe??``,camunda:t.camunda??``}}const K=(e,t)=>e===``?t:`${e}:${t}`;function fr(e,t,n){let r=n=>e[n]!==``&&t.some(t=>t.prefix===e[n]||t.attributes.some(t=>t.name.startsWith(`${e[n]}:`)));return n===`camunda-8`?e.zeebe===``?null:n:n===`camunda-7`?e.camunda===``?null:n:r(`zeebe`)?`camunda-8`:r(`camunda`)?`camunda-7`:e.zeebe===``?e.camunda===``?null:`camunda-7`:`camunda-8`}function q(e,t,n){return t.children.filter(t=>t.local===n&&t.prefix===e.prefix.bpmn)}function pr(e,t){return t.text.map(t=>e.slice(t.start,t.end)).join(``).trim()}function mr(e,t){let n=e.lastIndexOf(`
|
|
9
|
-
`,t-1)+1,r=e.slice(n,t);return/^\s*$/.test(r)?r:``}function hr(e,t){let n=t.start;for(;n>0&&(e[n-1]===` `||e[n-1]===` `);)--n;return n>0&&e[n-1]===`
|
|
10
|
-
`&&(n-=n>1&&e[n-2]===`\r`?2:1),{start:n,end:t.end}}function gr(e,t){let n=[...t].sort((e,t)=>e.start-t.start||e.end-t.end),r=[],i=0;for(let t of n){if(t.start<i)return null;r.push(e.slice(i,t.start),t.text),i=t.end}return r.push(e.slice(i)),r.join(``)}function _r(e,t,n,r){let i=r.filter(e=>e.start>=t&&e.end<=n).map(e=>({start:e.start-t,end:e.end-t,text:e.text}));return gr(e.slice(t,n),i)??e.slice(t,n)}function J(e,t){let n=t;for(let r=2;e.has(n);r+=1)n=`${t}_${r}`;return e.add(n),n}function vr(e,t){let n=e===void 0?void 0:W(e,t),r=n===void 0?NaN:Number(n);return Number.isFinite(r)?r:null}function yr(e){let t=e.children.find(e=>e.local===`Bounds`),[n,r,i,a]=[`x`,`y`,`width`,`height`].map(e=>vr(t,e));return n===null||r===null||i===null||a===null?null:{x:n,y:r,width:i,height:a}}function br(e,t,n,r){let i=[];for(let e of[t,...C(t)])if(e.local===`Bounds`||e.local===`waypoint`)for(let[t,a]of[[`x`,n],[`y`,r]]){let n=e.attributes.find(e=>e.name===t),r=n===void 0?NaN:Number(n.value);n!==void 0&&Number.isFinite(r)&&i.push({start:n.start,end:n.end,text:String(Math.round((r+a)*100)/100)})}return _r(e,t.start,t.end,i)}function xr(e){return new Set(C(e).map(U).filter(e=>e!==``))}function Sr(e,t,n,r){let i=e.elements.filter(e=>e.local===`messageFlow`||e.local===`association`);for(let i of t){ir.has(i.local)&&r.push(V(`dataAssociation`,U(i)||i.name)),(W(i,`isForCompensation`)===`true`||i.local===`compensateEventDefinition`)&&r.push(V(`compensation`,U(i)||i.name)),i.local===`linkEventDefinition`&&r.push(V(`link`,U(i.parent)));for(let t of i.attributes){let a=ur(t.name);if(!a.endsWith(`Ref`)&&a!=="default")continue;let o=G(t.value);n.has(o)||ar.has(a)&&e.byId.has(o)||r.push(V(`outsideReference`,`${U(i)||i.name}@${t.name}`))}}for(let e of i)[`sourceRef`,`targetRef`].map(t=>G(W(e,t)??``)).some(e=>n.has(e))&&r.push(V(e.local===`messageFlow`?`messageFlow`:`artifact`,U(e)))}function Cr(e){return e.some(e=>rr.has(e.local)&&(e.local!==`scriptTask`||e.children.some(e=>e.local===`script`)))}function wr(e){return e.children.filter(e=>e.local.endsWith(`EventDefinition`))}function Tr(e,t,n){if(t.local!==`subProcess`||W(t,`triggeredByEvent`)===`true`)return n.push(V(`subprocessKind`,U(t))),null;let r=q(e,t,`startEvent`),i=q(e,t,`endEvent`);r.length===1?wr(r[0]).length>0&&n.push(V(`unsupportedKind`,U(r[0]))):n.push(V(`entry`,`${U(t)}: ${r.length}`)),i.length===1?wr(i[0]).length>0&&n.push(V(`exitEvent`,U(i[0]))):n.push(V(`exit`,`${U(t)}: ${i.length}`)),t.children.filter(e=>e.local===`extensionElements`).some(e=>e.children.some(e=>e.local===`ioMapping`||e.local===`inputOutput`))&&n.push(V(`ioMapping`,U(t)));let a=C(t),o=xr(t);return{mode:`subprocess`,elements:[t],scope:a,ids:o,scopeIds:o,parent:t.parent,internal:[]}}function Er(e,t,n){let r=t[0].parent;if(r===null||r.local!==`process`&&r.local!==`subProcess`||t.some(e=>e.parent!==r))return n.push(V(`mixedScope`,t.map(U).join(`,`))),null;for(let e of t)!nr.has(e.local)&&!/(Task|Gateway)$/.test(e.local)&&n.push(V(`unsupportedKind`,`${U(e)}: ${e.local}`));if(n.length>0)return null;let i=new Set(t.map(U));for(let t of q(e,r,`boundaryEvent`)){let e=G(W(t,`attachedToRef`)??``);i.has(e)!==i.has(U(t))&&n.push(V(`boundary`,U(t)))}let a=q(e,r,`sequenceFlow`),o=[],s=[],c=[];for(let e of a){let t=G(W(e,`sourceRef`)??``),n=G(W(e,`targetRef`)??``);i.has(t)&&i.has(n)?c.push(e):i.has(n)?o.push(e):i.has(t)&&s.push(e)}if(o.length!==1&&n.push(V(`entry`,String(o.length))),s.length!==1&&n.push(V(`exit`,String(s.length))),n.length>0)return null;let l={flow:o[0],target:e.byId.get(G(W(o[0],`targetRef`)??``))},u={flow:s[0],source:e.byId.get(G(W(s[0],`sourceRef`)??``))};(q(e,u.flow,`conditionExpression`).length>0||G(W(u.source,`default`)??``)===U(u.flow))&&n.push(V(`exitCondition`,U(u.flow)));let d=/* @__PURE__ */ new Set([U(l.target)]);for(let t=!0;t;){t=!1;for(let e of c)d.has(G(W(e,`sourceRef`)??``))&&!d.has(G(W(e,`targetRef`)??``))&&(d.add(G(W(e,`targetRef`)??``)),t=!0);for(let n of q(e,r,`boundaryEvent`))i.has(U(n))&&d.has(G(W(n,`attachedToRef`)??``))&&!d.has(U(n))&&(d.add(U(n)),t=!0)}for(let e of t)d.has(U(e))||n.push(V(`disconnected`,U(e)));let f=t.flatMap(e=>[e,...C(e)]),p=/* @__PURE__ */ new Set([...f.map(U).filter(e=>e!==``),...c.map(U)]);return{mode:`fragment`,elements:t,scope:f,ids:/* @__PURE__ */ new Set([...p,U(l.flow),U(u.flow)]),scopeIds:p,parent:r,entry:l,exit:u,internal:c}}async function Dr(e,i,a){let o=await r(e);if(o===null)return a.push(V(`malformed`)),null;let s=i.scopeIds;for(let e of n(o)){if(!s.has(e.elementId))continue;let t=e.expression;t.startsWith(`=`)&&Dt(t.slice(1))!==void 0?a.push(V(`syntax`,`${e.elementId}: ${e.where}`)):Kt(t)&&a.push(V(`dynamicVariable`,`${e.elementId}: ${e.where}`))}let c=/* @__PURE__ */ new Set,l=/* @__PURE__ */ new Set;for(let e of t(o).uses)s.has(e.elementId)&&tr.test(e.name)&&(e.writes?sr.has(e.where)||l.add(e.name):cr.has(e.where)||c.add(e.name));let u=Cr(i.scope);return{mappings:{inputs:[...c].sort(),outputs:[...l].sort(),allIn:u,allOut:u}}}function Or(e,t,n,r,i,a,o){let{prefix:s,engine:c}=e,l=e=>K(s.bpmn,e),u=t.elements[0],d=`${o} `,f=[],p=[],m=``,h=``;if(t.mode===`subprocess`){for(let e of u.attributes)!lr.has(e.name)&&e.name!==`isExpanded`&&!e.name.startsWith(`xmlns`)&&p.push(`${e.name}="${e.value}"`);for(let t of u.children)if(t.local===`extensionElements`)for(let n of t.children)f.push(e.text.slice(n.start,n.end));else t.local===`loopCharacteristics`||t.local.endsWith(`LoopCharacteristics`)?m=`\n${d}${e.text.slice(t.start,t.end)}`:t.local===`documentation`&&(h=`\n${d}${e.text.slice(t.start,t.end)}`)}let g=t.mode===`subprocess`?[...u.children.filter(e=>e.local===`incoming`||e.local===`outgoing`)].map(t=>`\n${d}${e.text.slice(t.start,t.end)}`).join(``):`\n${d}<${l(`incoming`)}>${U(t.entry.flow)}</${l(`incoming`)}>\n${d}<${l(`outgoing`)}>${U(t.exit.flow)}</${l(`outgoing`)}>`,_=[];if(c===`camunda-8`){let e=e=>K(s.zeebe,e);if(f.push(`<${e(`calledElement`)} processId="${i}" propagateAllChildVariables="${a.allOut}" propagateAllParentVariables="${a.allIn}" />`),a.inputs.length+a.outputs.length>0){let t=[...a.inputs.map(t=>`${d} <${e(`input`)} source="=${t}" target="${t}" />`),...a.outputs.map(t=>`${d} <${e(`output`)} source="=${t}" target="${t}" />`)];f.push(`<${e(`ioMapping`)}>\n${t.join(`
|
|
11
|
-
`)}\n${d} </${e(`ioMapping`)}>`)}}else{let e=e=>K(s.camunda,e);a.allIn&&_.push(`<${e(`in`)} variables="all" />`);for(let t of a.inputs)_.push(`<${e(`in`)} source="${t}" target="${t}" />`);a.allOut&&_.push(`<${e(`out`)} variables="all" />`);for(let t of a.outputs)_.push(`<${e(`out`)} source="${t}" target="${t}" />`);p.unshift(`calledElement="${i}"`,`${e(`calledElementBinding`)}="latest"`)}let v=[...f,..._],y=v.length===0?``:`\n${d}<${l(`extensionElements`)}>\n${v.map(e=>`${d} ${e}`).join(`
|
|
12
|
-
`)}\n${d}</${l(`extensionElements`)}>`,b=r===null?``:` name="${r}"`;return`<${l(`callActivity`)} id="${n}"${b}${p.length>0?` ${p.join(` `)}`:``}>${h}${y}${g}${m}\n${o}</${l(`callActivity`)}>`}function kr(e,t){let n=/* @__PURE__ */ new Set;for(let e of t)for(let t of e.attributes)ar.has(ur(t.name))&&n.add(G(t.value));return e.root.children.filter(e=>or.has(e.local)&&n.has(U(e))).map(t=>e.text.slice(t.start,t.end))}function Ar(e){let t=/^?<\?xml[^?]*\?>/.exec(e);return t===null?``:`${t[0].replace(/^/,``)}\n`}function jr(e,t){let n=e.root,r=n.attributes.find(e=>e.name===`id`),i=e.text.slice(n.start,n.openEnd);return r===void 0?i:`${i.slice(0,r.start-n.start)}${t}${i.slice(r.end-n.start)}`}async function Mr(e,t){let n=p(e);if(n.problem!==null||n.root===null)return H(V(`malformed`));let r=n.root,i=dr(r);if(i===null||r.local!==`definitions`)return H(V(`malformed`));if(t.elements.length===0)return H(V(`noElements`));if(t.elements.length>200)return H(V(`tooMany`,`200`));if(!er.test(t.processId)||t.processId.length>200)return H(V(`badProcessId`,t.processId));if(t.name!==void 0&&(t.name.trim()===``||t.name.length>200||!h(t.name)))return H(V(`badName`,t.name));let a=fr(i,n.elements,t.engine);if(a===null)return H(V(`noEngine`));let o=/* @__PURE__ */ new Map;for(let e of n.elements){let t=U(e);if(t!==``){if(o.has(t))return H(V(`malformed`,t));o.set(t,e)}}let s={text:e,root:r,elements:n.elements,byId:o,prefix:i,engine:a};if(n.elements.some(e=>e.local===`process`&&U(e)===t.processId)||o.has(t.processId))return H(V(`processIdTaken`,t.processId));let c=[];for(let e of t.elements){let t=o.get(e);if(t===void 0)return H(V(`notFound`,e));c.includes(t)||c.push(t)}let l=[],u=c.length===1&&c[0].local===`subProcess`?Tr(s,c[0],l):Er(s,c,l);if(u===null)return H(...l);Sr(s,u.scope,u.ids,l);let d=await Dr(e,u,l);return l.length>0||d===null?H(...l):await Hr(s,u,d,t)}function Nr(e){let t=e;for(;t.local!==`process`&&t.parent!==null;)t=t.parent;return t}function Pr(e,t){let n=e.attributes.find(e=>e.name===t);return n===void 0?null:{start:n.start,end:n.end,text:``}}function Fr(e,t,n,r){let i=t.elements[0],a=/* @__PURE__ */ new Set([`incoming`,`outgoing`,`extensionElements`,`loopCharacteristics`,`documentation`]),o=i.children.filter(e=>!a.has(e.local)&&!e.local.endsWith(`LoopCharacteristics`)).map(t=>`${r}${e.text.slice(t.start,t.end)}`).join(`
|
|
13
|
-
`);return{edits:[{start:i.start,end:i.end,text:n}],content:o}}function Ir(e,t,n,r,i){let{text:a,prefix:o}=e,s=t.entry,c=t.exit,l=e=>K(o.bpmn,e),u=[];for(let[e,t,n,i]of[[s.target,`incoming`,U(s.flow),r.startFlow],[c.source,`outgoing`,U(c.flow),r.endFlow]])for(let r of e.children)r.local===t&&pr(a,r)===n&&u.push({start:r.openEnd,end:r.closeStart,text:i});let d=[...t.elements,...t.internal].sort((e,t)=>e.start-t.start),f=[];d.forEach((e,t)=>{let r=hr(a,e);f.push({start:r.start,end:r.end,text:t===0?`\n${i}${n}`:``})});let p=new Set(t.elements.map(U));for(let t of e.elements.filter(e=>e.local===`flowNodeRef`&&p.has(pr(a,e))))pr(a,t)===U(s.target)?f.push({start:t.openEnd,end:t.closeStart,text:r.call}):f.push({...hr(a,t),text:``});for(let[e,t]of[[s.flow,`targetRef`],[c.flow,`sourceRef`]]){let n=Pr(e,t);n!==null&&f.push({...n,text:r.call})}let m=d.map(e=>`${i}${_r(a,e.start,e.end,u)}`).join(`
|
|
14
|
-
`);return{edits:f,content:[`${i}<${l(`startEvent`)} id="${r.start}">\n${i} <${l(`outgoing`)}>${r.startFlow}</${l(`outgoing`)}>\n${i}</${l(`startEvent`)}>`,`${i}<${l(`sequenceFlow`)} id="${r.startFlow}" sourceRef="${r.start}" targetRef="${U(s.target)}" />`,m,`${i}<${l(`endEvent`)} id="${r.end}">\n${i} <${l(`incoming`)}>${r.endFlow}</${l(`incoming`)}>\n${i}</${l(`endEvent`)}>`,`${i}<${l(`sequenceFlow`)} id="${r.endFlow}" sourceRef="${U(c.source)}" targetRef="${r.end}" />`].join(`
|
|
15
|
-
`)}}function Lr(e,t){return e.find(e=>G(W(e,`bpmnElement`)??``)===t)}function Rr(e,t){return e.elements.find(e=>e.local===`BPMNEdge`&&G(W(e,`bpmnElement`)??``)===t)}function zr(e,t,n,r,i){let a=e===void 0?[]:e.children.filter(e=>e.local===`waypoint`),o=t===`first`?a[0]:a[a.length-1];if(o!==void 0)for(let[e,t]of[[`x`,n],[`y`,r]]){let n=o.attributes.find(t=>t.name===e);n!==void 0&&i.push({start:n.start,end:n.end,text:String(t)})}}function Br(e,t,n,r,i){let{text:a,prefix:o}=e,s=e.elements.find(e=>e.local===`BPMNPlane`),c=e=>t.scopeIds.has(G(W(e,`bpmnElement`)??``)),l=e.elements.filter(e=>e.local===`BPMNShape`&&c(e)),u=e.elements.filter(e=>e.local===`BPMNEdge`&&c(e)),d=l.map(yr).filter(e=>e!==null);if(s===void 0||d.length===0)return null;let f=e=>K(o.bpmndi,e),p=e=>K(o.dc,e),m=e=>K(o.di,e),h=t.mode===`fragment`,g=Math.min(...d.map(e=>e.x)),_=Math.min(...d.map(e=>e.y)),v=Math.max(...d.map(e=>e.x+e.width)),y=Math.max(...d.map(e=>e.y+e.height)),b=150+(h?106:0)-g,x=150-_,S=[...l,...u].map(e=>`${i} ${br(a,e,b,x)}`),C=[...l,...u].map(e=>({...hr(a,e),text:``}));if(h){let r=t.entry,o=t.exit,s=Lr(l,U(r.target)),c=Lr(l,U(o.source)),u=s===void 0?null:yr(s),d=c===void 0?null:yr(c);if(u===null||d===null)return null;let h=u.y+x+u.height/2,w=d.y+x+d.height/2,T=v+b+70,E=(e,t)=>`<${m(`waypoint`)} x="${e}" y="${t}" />`,D=(e,t,n)=>`${i} <${f(`BPMNShape`)} id="${e}_di" bpmnElement="${e}">\n${i} <${p(`Bounds`)} x="${t}" y="${n-18}" width="36" height="36" />\n${i} </${f(`BPMNShape`)}>`,O=(e,t,n)=>`${i} <${f(`BPMNEdge`)} id="${e}_di" bpmnElement="${e}">\n${i} ${t}\n${i} ${n}\n${i} </${f(`BPMNEdge`)}>`;S.push(D(n.start,150,h),O(n.startFlow,E(186,h),E(u.x+b,h)),D(n.end,T,w),O(n.endFlow,E(d.x+d.width+b,w),E(T,w)));let ee=Math.round((g+v)/2-50),k=Math.round((_+y)/2-40),te=[...l].map(e=>hr(a,e)).sort((e,t)=>e.start-t.start)[0];C.push({start:te.start,end:te.start,text:`\n${i} <${f(`BPMNShape`)} id="${n.call}_di" bpmnElement="${n.call}">\n${i} <${p(`Bounds`)} x="${ee}" y="${k}" width="100" height="80" />\n${i} </${f(`BPMNShape`)}>`}),zr(Rr(e,U(r.flow)),`last`,ee,k+40,C),zr(Rr(e,U(o.flow)),`first`,ee+100,k+40,C)}else{let t=e.elements.find(e=>e.local===`BPMNShape`&&G(W(e,`bpmnElement`)??``)===n.call),r=t===void 0?null:/\sisExpanded="[^"]*"/.exec(a.slice(t.start,t.openEnd));t!==void 0&&r!==null&&C.push({start:t.start+r.index,end:t.start+r.index+r[0].length,text:``})}return{edits:C,text:`\n${i}<${f(`BPMNDiagram`)} id="BPMNDiagram_${r}">\n${i} <${f(`BPMNPlane`)} id="BPMNPlane_${r}" bpmnElement="${r}">\n${S.join(`
|
|
16
|
-
`)}\n${i} </${f(`BPMNPlane`)}>\n${i}</${f(`BPMNDiagram`)}>`}}async function Vr(e){let t=await i(e);return t===null?null:t.warnings.length}async function Hr(e,t,n,r){let{text:i,prefix:a}=e,o=new Set(e.byId.keys()),s=e=>K(a.bpmn,e),c=t.elements[0],l=t.mode===`fragment`,u=mr(i,c.start),d={call:l?J(o,`CallActivity_${r.processId}`):U(c),start:J(o,`StartEvent_${r.processId}`),end:J(o,`EndEvent_${r.processId}`),startFlow:J(o,`Flow_${r.processId}_start`),endFlow:J(o,`Flow_${r.processId}_end`)},f=l?r.name??r.processId:W(c,`name`)??null,p=Or(e,t,d.call,f,r.processId,n.mappings,u),m=l?Ir(e,t,p,d,u):Fr(e,t,p,u),h=Br(e,t,d,r.processId,u.slice(2)),g=[...m.edits,...h?.edits??[]],_=Nr(l?t.parent:c),v=[`isExecutable="true"`],y=_.attributes.find(e=>ur(e.name)===`historyTimeToLive`);y!==void 0&&v.push(`${y.name}="${y.value}"`);let b=l?r.name??r.processId:W(c,`name`),x=b===void 0?``:` name="${b}"`,S=u.slice(2),C=kr(e,t.scope).map(e=>`${S}${e}`),w=`${`${Ar(i)}${jr(e,`Definitions_${r.processId}`)}`}\n${C.length>0?`${C.join(`
|
|
17
|
-
`)}\n`:``}${S}<${s(`process`)} id="${r.processId}"${x} ${v.join(` `)}>\n${m.content}\n${S}</${s(`process`)}>${h?.text??``}\n</${s(`definitions`)}>\n`,T=gr(i,g);if(T===null)return H(V(`invalidResult`,`overlap`));let E=await Vr(i),D=await Vr(T),O=await Vr(w);return E===null||D===null||O===null||D>E||O>E?H(V(`invalidResult`,`moddle`)):{ok:!0,plan:{source:T,created:w,callId:d.call,processId:r.processId,engine:e.engine,mappings:n.mappings,moved:[...t.scopeIds].sort(),diagram:h!==null}}}const Ur=/\.(bpmn|bpmn\.xml|bpmn20\.xml|dmn|form|ya?ml|properties)$/i,Wr=/\.json$/i,Gr=/(test|case|scenario|spec)/i,Kr=new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0});var qr=class extends Error{files;constructor(e){super(String(e)),this.files=e}};const Y=e=>oe(`sha256`).update(e).digest(`hex`);function Jr(e){let t=E.posix.basename(e);return Ur.test(t)||a.test(t)?!0:Wr.test(t)&&(e.split(`/`).includes(`element-templates`)||Gr.test(t))}function Yr(e,t){try{if(k(e).isSymbolicLink())return`symlink`;if(!s(e,[t]))return`outside`;let n=te(e,O.O_RDONLY|(O.O_NOFOLLOW??0));try{let e=ee(n);if(!e.isFile())return`unreadable`;if(e.size>4194304)return`tooLarge`;let t=Buffer.alloc(e.size),r=0;for(;r<e.size;){let i=re(n,t,r,e.size-r,r);if(i===0)break;r+=i}if(r!==e.size)return`unreadable`;try{return{bytes:t,text:Kr.decode(t)}}catch{return`notText`}}finally{D(n)}}catch{return`unreadable`}}function Xr(e){let t=A(e),n=l(t),r=[],i=[],a=/* @__PURE__ */ new Map,s=0,c=0,d=e=>{let l=ie(e,{withFileTypes:!0}).sort((e,t)=>e.name<t.name?-1:+(e.name>t.name));for(let f of l){n();let l=E.join(e,f.name),p=E.relative(t,l).split(E.sep).join(`/`);if(f.isDirectory()){!o.has(f.name)&&!f.name.startsWith(`.`)&&u(l)&&d(l);continue}if(!Jr(p))continue;if(f.isSymbolicLink()){i.push({path:p,reason:`symlink`});continue}if(!f.isFile())continue;if(c+=1,c>5e3)throw new qr(c);let m=Yr(l,t);if(typeof m==`string`)i.push({path:p,reason:m});else{if(s+=m.bytes.length,s>536870912)throw new qr(c);r.push({path:p,text:m.text}),a.set(p,Y(m.bytes))}}};return d(t),{root:t,files:r,skipped:i,hashes:a}}var X=class extends Error{code;detail;constructor(e,t=``){super(`${e}${t===``?``:`: ${t}`}`),this.code=e,this.detail=t}};function Zr(e,t,n){return Y(JSON.stringify({requests:e.map(e=>[e.kind,e.from,e.to]),files:t.changed.map(e=>[e,n.get(e),Y(t.finals.get(e))]),refused:t.steps.map(e=>e.refused.map(e=>[e.file,e.line,e.column,e.reason])),blockers:t.steps.map(e=>e.blockers.map(e=>e.code))}))}function Qr(e,t){let n;try{n=Xr(e)}catch(e){throw e instanceof qr?new X(`tooLarge`,String(e.files)):e}let r=Kn(n.files,t,{skipped:n.skipped});return{root:n.root,bulk:r,planId:Zr(t,r,n.hashes),hashes:n.hashes}}function $r(e,t,n){let r=Qr(e,t);if(r.planId!==n.planId)throw new X(`planChanged`);let{bulk:i}=r;if(i.blocked||i.changed.length===0)throw new X(`blocked`);if(i.blockingRefusals>0&&!n.acknowledge)throw new X(`refused`,String(i.blockingRefusals));let a=A(r.root),o=[];for(let e of i.changed){let t=E.join(a,...e.split(`/`));if(k(t).isSymbolicLink()||!s(t,[a]))throw new X(`unsafe`,e);let n=Yr(t,a);if(typeof n==`string`)throw new X(`unsafe`,e);if(Y(n.bytes)!==r.hashes.get(e))throw new X(`changed`,e);o.push({path:t,content:i.finals.get(e)})}try{d(o,a,{replace:!0})}catch(e){throw new X(`writeFailed`,e instanceof Error?e.message.slice(0,200):``)}return{files:i.changed,edits:i.edits}}const ei=/\.(bpmn|bpmn\.xml|bpmn20\.xml)$/i;function ti(e,t){let n=A(e),r=t.split(/[\\/]/);if(t===``||E.isAbsolute(t)||r.some(e=>e===`..`||e===``)||!ei.test(t))throw new X(`unsafe`,t.slice(0,200));let i=E.join(n,...r);if(!s(i,[n]))throw new X(`unsafe`,t.slice(0,200));return{root:n,file:i}}function ni(e){try{return k(e),!0}catch{return!1}}async function ri(e,t,n){let{root:r,file:i}=ti(e,t),a=Yr(i,r);if(typeof a==`string`)throw new X(`unsafe`,t.slice(0,200));let o=E.join(E.dirname(i),`${n.processId}.bpmn`),s=E.relative(r,o).split(E.sep).join(`/`),c=await Mr(a.text,n);return c.ok?ni(o)?{ok:!1,refusals:[{reason:`nameTaken`,detail:s.slice(0,120)}]}:{ok:!0,planned:{source:t,created:s,planId:Y(JSON.stringify([t,Y(a.bytes),n.elements,n.processId,n.name??null,n.engine??null,Y(c.plan.source),Y(c.plan.created),s])),hash:Y(a.bytes),plan:c.plan}}:c}async function ii(e,t,n,r){let i=await ri(e,t,n);if(!i.ok)throw new X(`blocked`,i.refusals.map(e=>e.reason).join(`,`));if(i.planned.planId!==r)throw new X(`planChanged`);let{root:a,file:o}=ti(e,t),s=Yr(o,a);if(typeof s==`string`)throw new X(`unsafe`,t.slice(0,200));if(Y(s.bytes)!==i.planned.hash)throw new X(`changed`,t.slice(0,200));let c=E.join(a,...i.planned.created.split(`/`));try{d([{path:o,content:i.planned.plan.source},{path:c,content:i.planned.plan.created}],a,{replace:!0})}catch(e){throw new X(`writeFailed`,e instanceof Error?e.message.slice(0,200):``)}return{source:t,created:i.planned.created}}const ai=(e,t)=>({step:t,file:e.file,line:e.line,column:e.column,where:e.where,before:e.before,after:e.after,lineText:e.lineText});function oi(e,t,n){let r=e.steps.flatMap((e,t)=>e.edits.map(e=>ai(e,t))),i=e.steps.flatMap((e,t)=>e.refused.map(e=>({...e,step:t}))),a=/* @__PURE__ */ new Map;for(let t of e.steps)for(let e of t.files)a.set(e.path,(a.get(e.path)??0)+e.edits);return{requests:t,planId:n,blocked:e.blocked||e.changed.length===0,blockers:e.steps.flatMap((e,t)=>e.blockers.map(e=>({...e,step:t}))),edits:r.slice(0,1e3),editCount:r.length,refused:i.slice(0,300),refusedCount:i.length,blockingRefusals:e.blockingRefusals,files:[...a].map(([e,t])=>({path:e,edits:t})).sort((e,t)=>e.path<t.path?-1:+(e.path>t.path))}}const si=t=>e(`app.refactor.reason.${t}`),ci=t=>e(`app.refactor.blocker.${t.code}`,{detail:t.detail}),li=t=>e(`app.refactor.extract.${t.reason}`,{detail:t.detail}),ui=t=>e(`app.refactor.kind.${t}`);function Z(e){let t=e.replace(/[\u0000-\u001f\u007f]/g,` `).trim();return t.length>160?`${t.slice(0,157)}...`:t}function di(t,n){let r=[];for(let n of t.requests.slice(0,200))r.push(e(`app.refactor.text.request`,{kind:ui(n.kind),from:Z(n.from),to:Z(n.to)}));t.requests.length>200&&r.push(e(`app.refactor.text.more`,{count:t.requests.length-200}));for(let n of t.blockers)r.push(e(`app.refactor.text.blocker`,{step:n.step+1,reason:ci(n)}));let i=``;for(let n of t.edits.slice(0,200))n.file!==i&&(i=n.file,r.push(Z(n.file))),r.push(e(`app.refactor.text.edit`,{line:n.line,column:n.column,where:Z(n.where),before:Z(n.before),after:Z(n.after)}));t.editCount>Math.min(200,t.edits.length)&&r.push(e(`app.refactor.text.more`,{count:t.editCount-Math.min(200,t.edits.length)}));for(let n of t.refused.slice(0,200))r.push(e(n.blocking?`app.refactor.text.refusedBlocking`:`app.refactor.text.refused`,{file:Z(n.file),line:n.line,reason:si(n.reason),where:Z(n.where)}));return t.refusedCount>Math.min(200,t.refused.length)&&r.push(e(`app.refactor.text.more`,{count:t.refusedCount-Math.min(200,t.refused.length)})),r.push(e(n?`app.refactor.text.applied`:`app.refactor.text.summary`,{edits:t.editCount,files:t.files.length,refused:t.refusedCount})),r}function fi(t,n){let r=[e(`app.refactor.text.extractTo`,{created:Z(t.created),call:Z(t.callId)})];r.push(e(`app.refactor.text.extractMoved`,{count:t.moved.length}));let i=t.mappings.allIn?e(`app.refactor.text.everything`):t.mappings.inputs.map(Z).join(`, `)||e(`app.refactor.text.nothing`),a=t.mappings.allOut?e(`app.refactor.text.everything`):t.mappings.outputs.map(Z).join(`, `)||e(`app.refactor.text.nothing`);return r.push(e(`app.refactor.text.extractIn`,{names:i})),r.push(e(`app.refactor.text.extractOut`,{names:a})),r.push(e(n?`app.refactor.text.extractApplied`:`app.refactor.text.extractPreview`)),r}const Q=[`rename`,`bulk`,`extract`];var $=class extends Error{};function pi(t){if(/^[\\/]{2}/.test(t))throw new $(e(`app.refactor.cli.uncRoot`))}function mi(e){let t=ae(`git`,[`rev-parse`,`--is-inside-work-tree`],{cwd:e,encoding:`utf8`});if(t.error!==void 0||t.status===128)return`none`;if(t.status!==0)return`unknown`;let n=ae(`git`,[`status`,`--porcelain`,`--untracked-files=all`,`--`,`.`],{cwd:e,encoding:`utf8`,maxBuffer:67108864});return n.error!==void 0||n.status!==0?`unknown`:n.stdout.trim()===``?`clean`:`dirty`}function hi(e,t){if(t)return null;let n=mi(e);return n===`dirty`||n===`unknown`?`dirty`:null}function gi(e,t,n){pi(e);let r=Qr(e,t),i=oi(r.bulk,t,r.planId),a={mode:`rename`,applied:!1,stopped:null,detail:``,report:i,written:null};if(!n.apply)return a;if(i.blocked)return{...a,stopped:`blocked`};if(n.planId!==void 0&&n.planId!==r.planId)return{...a,stopped:`planChanged`};if(i.blockingRefusals>0&&!n.acknowledge)return{...a,stopped:`refused`,detail:String(i.blockingRefusals)};let o=hi(r.root,n.force);if(o!==null)return{...a,stopped:o};try{let i=$r(e,t,{planId:r.planId,acknowledge:n.acknowledge});return{...a,applied:!0,written:i}}catch(e){if(e instanceof X)return{...a,stopped:e.code,detail:e.detail};throw e}}async function _i(e,t,n,r){pi(e);let i={mode:`extract`,applied:!1,stopped:null,detail:``,plan:null,planId:null,refusals:[],written:null},a;try{a=await ri(e,t,n)}catch(e){if(e instanceof X)return{...i,stopped:e.code,detail:e.detail};throw e}if(!a.ok)return{...i,stopped:`blocked`,refusals:a.refusals};let{source:o,created:s,...c}=a.planned.plan,l={...i,plan:{...c,created:a.planned.created},planId:a.planned.planId};if(!r.apply)return l;if(r.planId!==void 0&&r.planId!==a.planned.planId)return{...l,stopped:`planChanged`};let u=hi(A(e),r.force);if(u!==null)return{...l,stopped:u};try{let r=await ii(e,t,n,a.planned.planId);return{...l,applied:!0,written:r}}catch(e){if(e instanceof X)return{...l,stopped:e.code,detail:e.detail};throw e}}function vi(t,n){return e(`app.refactor.stop.${t}`,{detail:n.slice(0,200)})}function yi(t,n){let r=E.resolve(t),i;try{i=k(r)}catch{throw new $(e(`app.refactor.cli.mappingMissing`,{file:E.basename(r).slice(0,200)}))}if(i.isSymbolicLink()||!i.isFile())throw new $(e(`app.refactor.cli.mappingNotFile`));if(n!==null&&!s(A(r),[A(n)]))throw new $(e(`app.refactor.cli.mappingOutside`));if(i.size>262144)throw new $(e(`app.refactor.mapping.tooLarge`,{detail:``,line:0}));let a=Qn(ne(r,`utf8`),r.toLowerCase().endsWith(`.json`));if(a.problem!==null)throw new $(e(`app.refactor.mapping.${a.problem.code}`,{detail:a.problem.detail,line:a.problem.line}));return a.requests}function bi(t,n,r){if(t===void 0||n===void 0||r===void 0)throw new $(e(`app.refactor.cli.needsRename`));if(!Ln(t))throw new $(e(`app.refactor.cli.unknownKind`,{kind:t.slice(0,80),kinds:pe.join(`, `)}));return{kind:t,from:n,to:r}}function xi(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}function Si(t){let n=di(t.report,t.applied);return t.stopped===null?t.applied||n.push(t.report.blocked?e(`app.refactor.text.cannotApply`):e(`app.refactor.text.previewOnly`)):n.push(vi(t.stopped,t.detail)),n}function Ci(e){let t=e.plan===null?e.refusals.map(e=>li(e)):fi(e.plan,e.applied);return e.stopped!==null&&e.refusals.length===0&&t.push(vi(e.stopped,e.detail)),t}function wi(e,t){let n=e.applied||e.stopped===null&&!e.report.blocked;return{ok:n,refused:!n,lines:t?[JSON.stringify(e,null,2)]:Si(e)}}function Ti(e,t){let n=e.applied||e.stopped===null&&e.plan!==null;return{ok:n,refused:!n,lines:t?[JSON.stringify(e,null,2)]:Ci(e)}}async function Ei(t,n){let[r,...i]=t,a=n.format===`json`,o;try{if(o=c(E.resolve(n.project??process.cwd())).root,!k(o).isDirectory())return{ok:!1,refused:!0,lines:[e(`app.cli.web.notAFolder`,{folder:o})]}}catch{return{ok:!1,refused:!0,lines:[e(`app.cli.web.notAFolder`,{folder:n.project??process.cwd()})]}}let s={apply:n.apply,force:n.force,acknowledge:n.acknowledge};try{if(r===Q[0])return wi(gi(o,[bi(i[0],i[1],i[2])],s),a);if(r===Q[1])return i[0]===void 0?{ok:!1,refused:!0,lines:[e(`app.refactor.cli.needsMapping`)]}:wi(gi(o,yi(i[0],null),s),a);if(r===Q[2]){if(i[0]===void 0||i[1]===void 0||i[2]===void 0)return{ok:!1,refused:!0,lines:[e(`app.refactor.cli.needsExtract`)]};let t=E.relative(A(o),E.resolve(i[0])).split(E.sep).join(`/`),r={elements:xi(i[1]),processId:i[2],...n.name===void 0?{}:{name:n.name}};return Ti(await _i(o,t,r,s),a)}}catch(e){if(e instanceof $)return{ok:!1,refused:!0,lines:[e.message]};throw e}return{ok:!1,refused:!0,lines:[e(`app.refactor.cli.unknownAction`,{actions:Q.join(`, `)})]}}export{Qn as _,Ti as a,Ei as c,gi as d,wi as f,qn as g,mi as h,_i as i,pi as l,vi as m,$ as n,xi as o,bi as p,Ci as r,yi as s,Q as t,Si as u,Ln as v,pe as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{a as t}from"./chunk-catalog-CXJ23e-I.js";import{i as n,r}from"./chunk-docs-BVmrekiH.js";import i from"node:path";function a(e){return t.find(t=>t.id===e)}function o(e,t){let i=r(e,t.rule);return i?{...t,ruleId:i.id,docs:n(i.id)}:t}function s(t,n){let r=[...new Map(t.map(e=>[e.rule,e])).values()].map(t=>{let n=t.ruleId?a(t.ruleId):void 0;return{id:t.rule,shortDescription:{text:n?.title??t.rule},...n?{help:{text:e(`app.output.whyItMatters`,{why:n.why})+` `+e(`app.output.howToFixIt`,{fix:n.fix})}}:{},...t.docs?{helpUri:t.docs}:{}}});return JSON.stringify({$schema:`https://json.schemastore.org/sarif-2.1.0.json`,version:`2.1.0`,runs:[{tool:{driver:{name:`penstock ${n}`,informationUri:`https://github.com/kern0x1b/penstock-release`,rules:r}},results:t.map(e=>({ruleId:e.rule,level:e.severity,message:{text:e.message},locations:[{physicalLocation:{artifactLocation:{uri:i.relative(process.cwd(),e.file).split(i.sep).join(`/`)},...e.line===void 0?{}:{region:{startLine:e.line}}}}]}))}]},null,2)}function c(e){return e.replace(/%/g,`%25`).replace(/\r/g,`%0D`).replace(/\n/g,`%0A`)}function l(e){return c(e).replace(/:/g,`%3A`).replace(/,/g,`%2C`)}function u(t){return t.map(t=>`::${t.severity===`note`?`notice`:t.severity} file=${l(i.relative(process.cwd(),t.file))}${t.line===void 0?``:`,line=${t.line}`},title=${l(t.rule)}::${c(`${t.message}${t.docs?` ${e(`app.output.see`,{docs:t.docs})}`:``}`)}`)}export{u as n,s as r,o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{r as t,t as n}from"./chunk-context-rCJvBM9p.js";import{n as r}from"./chunk-diagrams-BukAOL0g.js";import{n as i}from"./chunk-project-DA3KnAZH.js";import{t as a}from"./chunk-diff-BhTFlCE3.js";import{a as o,d as s,l as c,t as l}from"./chunk-git-57LoLvY3.js";import{t as u}from"./chunk-export-jBVxtmCH.js";import d from"node:path";import{existsSync as f,mkdirSync as p}from"node:fs";async function m(m,h,g){let{root:_}=n(m);if(!c(_))return{ok:!1,lines:[e(`app.cli.notAGitRepository`)]};if(!s(_,g.base)&&f(g.base))return{ok:!1,lines:[e(`app.cli.diff.baseIsPath`,{base:g.base})]};if(h.length===0&&!s(_,g.base))return{ok:!1,lines:[e(`app.cli.diff.baseNotFound`,{base:g.base})]};let v=h.length>0?null:l(_,g.base,!0),y=v?[...v.changed,...v.added]:h.map(e=>d.relative(_,e));if(y.length===0)return{ok:!0,lines:[e(`app.cli.diff.noDifference`,{base:g.base})]};g.images&&p(g.outDir,{recursive:!0});let b=[];for(let n of y){let s=d.join(_,n),c=o(_,g.base,v?.previous[n]??n);if(!c){if(b.push(e(`app.cli.diff.newSince`,{file:n,base:g.base})),g.images&&r(s)===`process`)try{b.push(` ${e(`app.cli.diff.picture`,{file:t(await u(s,d.join(g.outDir,i(n,`.svg`))))})}`)}catch(t){b.push(` ${e(`app.cli.diff.noPicture`,{reason:t instanceof Error?t.message:String(t)})}`)}continue}let l=await a(c,s,!0);if(!l.ok)b.push(`${n}`,...l.lines.map(e=>` ${e}`));else if(b.push(`${n}`,...l.lines.slice(2).map(e=>` ${e}`).filter(e=>e.trim())),g.images&&l.summary&&r(s)===`process`)try{let r=await u(c,d.join(g.outDir,i(n,`.before.svg`)),l.summary.markersBefore),a=await u(s,d.join(g.outDir,i(n,`.after.svg`)),l.summary.markersAfter);b.push(` ${e(`app.cli.diff.before`,{file:t(r)})}`,` ${e(`app.cli.diff.after`,{file:t(a)})}`)}catch(t){b.push(` ${e(`app.cli.diff.noPictures`,{reason:t instanceof Error?t.message:String(t)})}`)}}return{ok:!0,lines:b}}export{m as againstCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{i as t}from"./chunk-model-C5VKsEOw.js";import{t as n}from"./chunk-list-XuNpvC6j.js";import{i as r}from"./chunk-build-BsqW8Yp8.js";const i={verified:`app.receipt.verdict.verified`,findings:`app.receipt.verdict.findings`,"not-verified":`app.receipt.verdict.notVerified`},a={"new-errors":`app.receipt.reason.newErrors`,"new-warnings":`app.receipt.reason.newWarnings`,"scenario-failed":`app.receipt.reason.scenarioFailed`,"executable-added":`app.receipt.reason.executableAdded`,"connections-introduced":`app.receipt.reason.connectionsIntroduced`,unreadable:`app.receipt.reason.unreadable`,"too-many-files":`app.receipt.reason.tooManyFiles`,"too-large":`app.receipt.reason.tooLarge`,"check-failed":`app.receipt.reason.checkFailed`,"built-in-rules":`app.receipt.reason.builtInRules`,"scenarios-withheld":`app.receipt.reason.scenariosWithheld`};function o(t){return e(i[t])}function s(n){return e(a[n],{files:200,megabytes:t/1048576})}function c(t){return e(`app.receipt.outcome.${t}`)}function l(t,n,r){return r?n>0?e(`app.receipt.scenariosSomeFailed`,{count:t+n,failed:n}):e(`app.receipt.scenariosPassed`,{count:t}):e(`app.receipt.scenariosNotRun`)}function u(t){let n=`preview`in t,i=n?t.newProblems:r(t),a=n?t.scenarios:{passed:t.scenarios.passed,failed:t.scenarios.failed,ran:t.scenarios.status===`ran`};return e(`app.receipt.summary`,{verdict:o(t.verdict.status),problems:e(`app.receipt.newProblems`,{count:i}),scenarios:l(a.passed,a.failed,a.ran)})}function d(t){if(t.formattingOnly)return e(`app.receipt.formattingOnly`);if(!t.diff)return``;let{added:n,removed:r,changed:i,moved:a}=t.diff,o=[e(`app.receipt.diffCounts`,{added:n,removed:r,changed:i})];return a>0&&o.push(e(`app.receipt.moved`,{count:a})),o.join(`, `)}function f(t){let n=d(t);return`${t.path} ${e(`app.receipt.change.${t.change}`)}${n===``?``:` ${n}`}`}function p(t){let r=[u(t),...t.verdict.reasons.map(e=>` ${s(e)}`)];for(let e of t.files)r.push(` ${f(e)}`);if(t.checks.ran){let i=e=>e.errors+e.warnings;r.push(e(`app.receipt.checkLine`,{before:i(t.checks.before),after:i(t.checks.after),resolved:t.checks.resolved}));for(let i of[...t.checks.fresh,...t.connections.introduced])r.push(` ${e(`app.receipt.freshLine`,{severity:e(`app.receipt.severity.${i.severity}`),rule:i.rule,file:i.file,where:i.elements.length===0?``:` (${n(i.elements)})`})}`)}t.checks.rulesReason&&r.push(e(`app.receipt.rules.${t.checks.rulesReason}`));for(let n of t.executable)r.push(` ${e(`app.receipt.executableLine`,{kind:e(`app.receipt.kind.${n.kind}`),element:n.element,file:n.file})}`);for(let n of t.scenarios.results){let t=n.previous===null?``:` ${e(`app.receipt.wasBefore`,{outcome:c(n.previous)})}`;r.push(` ${n.name}: ${c(n.outcome)}${t}`)}t.scenarios.status===`skipped`&&t.scenarios.reason&&r.push(` ${e(`app.receipt.scenariosSkipped`,{reason:e(`app.receipt.skip.${t.scenarios.reason}`)})}${t.scenarios.about?` (${t.scenarios.about})`:``}`),t.layout.applied&&r.push(e(`app.receipt.layoutApplied`,{count:t.layout.moved}));for(let n of t.attempts)r.push(e(n.handedBack?`app.receipt.attemptHandedBack`:`app.receipt.attempt`,{n:n.n,count:n.newFindings}));return t.exhausted&&r.push(e(`app.receipt.exhausted`,{count:t.maxAttempts})),r}function m(t){return[u(t),e(`app.receipt.previewNote`,{files:t.files})]}function h(t){return t.slice(0,5).map(t=>`${t.at}: ${e(`app.receipt.problem.${t.code}`)}`).join(`; `)}export{o as i,h as n,p as r,m as t};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{c as t}from"./chunk-variableChecks-KnECGMR3.js";import{a as n}from"./chunk-catalog-CXJ23e-I.js";import"./chunk-docs-BVmrekiH.js";import{i as r,n as i,r as a}from"./chunk-say-CtmOlXtN.js";import{_ as o,v as s}from"./chunk-load-rfn3E0t5.js";import{r as c}from"./chunk-commands-B4PoZbpX.js";import{n as l}from"./chunk-buffers-B8jONhEB.js";import{t as ee}from"./chunk-diagrams-BukAOL0g.js";import{c as te,f as ne,l as re,r as ie}from"./chunk-jsonScan-DH9djCOu.js";import{t as ae}from"./chunk-project-DBYOlYRi.js";import u from"node:path";import{lstatSync as oe,readFileSync as se}from"node:fs";import{pathToFileURL as ce}from"node:url";import{camundaExtensions as le,feelBuiltins as d}from"@camunda/feel-builtins";const f=[13,10,13,10],ue=/^content-length[ \t]*:[ \t]*(\d{1,15})[ \t]*$/i,de=/^[A-Za-z][A-Za-z0-9-]{0,63}[ \t]*:/;function fe(e,t){let n=Math.min(e.length,t)-f.length;for(let t=0;t<=n;t+=1)if(e[t]===13&&e[t+1]===10&&e[t+2]===13&&e[t+3]===10)return t;return-1}function p(e,t){if(e.length===1)return e[0];let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}var pe=class{parts=[];size=0;need=-1;skipping=0;decoder=new TextDecoder(`utf-8`);push(e){let t=[],n=e;if(this.skipping>0){let e=Math.min(this.skipping,n.length);this.skipping-=e,n=n.subarray(e)}for(n.length>0&&(this.parts.push(n),this.size+=n.length);;){if(this.need<0){if(this.size===0)break;let e=p(this.parts,this.size);this.parts=[e];let n=fe(e,4096+f.length);if(n<0){this.size>4096&&(t.push({kind:`error`,reason:`header`}),this.reset());break}let r=this.decoder.decode(e.subarray(0,n)),i=e.subarray(n+f.length);this.parts=i.length>0?[i]:[],this.size=i.length;let a=this.lengthOf(r);if(a===null){t.push({kind:`error`,reason:`header`});continue}if(a>33554432){t.push({kind:`error`,reason:`size`});let e=Math.min(a,this.size);this.skipping=a-e,this.consume(e);continue}this.need=a}if(this.size<this.need)break;let e=p(this.parts,this.size),n=e.subarray(0,this.need),r=e.subarray(this.need);this.parts=r.length>0?[r]:[],this.size=r.length,this.need=-1,t.push({kind:`message`,text:this.decoder.decode(n)})}return t}lengthOf(e){let t=null;for(let n of e.split(`\r
|
|
2
|
-
`)){if(!de.test(n))return null;let e=ue.exec(n);if(e){if(t!==null)return null;t=Number(e[1])}}return t}consume(e){let t=p(this.parts,this.size).subarray(e);this.parts=t.length>0?[t]:[],this.size=t.length}reset(){this.parts=[],this.size=0,this.need=-1}};function me(e){let t=new TextEncoder().encode(JSON.stringify(e)),n=new TextEncoder().encode(`Content-Length: ${t.length}\r\n\r\n`),r=new Uint8Array(n.length+t.length);return r.set(n,0),r.set(t,n.length),r}const he=`penstock.openRuleDocs`;function ge(e){return typeof e==`string`&&e.length<=512&&e.startsWith(`https://kern0x1b.github.io/penstock-release/`)&&!/[\s\u0000-\u001f]/.test(e)}function _e(e,t){let n=e.parsed;if(n.kind!==`xml`||n.scan.problem!==null)return null;for(let e of t){let t=n.ids.get(e);if(t?.local===`process`)return t}return n.scan.elements.find(e=>e.local===`process`)??null}function ve(e,t){let n=_e(e,t);if(!n)return null;let r=n.attributes.find(e=>e.name===`isExecutable`);if(r)return r.value===`true`?null:{range:e.lines.range(r.start,r.end),newText:`true`};let i=n.start+1+n.name.length;return{range:e.lines.range(i,i),newText:` isExecutable="true"`}}function ye(e,t){let n=_e(e,t),r=e.parsed;if(!n||r.kind!==`xml`||!r.scan.root)return null;let i=r.scan.root.attributes.find(e=>e.name.startsWith(`xmlns:`)&&e.value===`http://camunda.org/schema/1.0/bpmn`);if(!i||n.attributes.some(e=>e.name.endsWith(`:historyTimeToLive`)))return null;let a=n.start+1+n.name.length;return{range:e.lines.range(a,a),newText:` ${i.name.slice(6)}:historyTimeToLive="P30D"`}}function be(e,t){let n=e.parsed;if(n.kind!==`xml`||n.scan.problem!==null)return[];let r=[];for(let i of t.slice(0,20)){let t=n.ids.get(i),a=t?.attributes.find(e=>e.name===`name`);if(!t||!a)continue;let o=e.text.lastIndexOf(`name`,a.start-2);if(o<t.start||!/^name\s*=\s*["']$/.test(e.text.slice(o,a.start)))continue;let s=o;for(;s>t.start&&/\s/.test(e.text[s-1]);)--s;r.push({range:e.lines.range(s,a.end+1),newText:``})}return r}const m={"compat/executable-process":{title:`app.lsp.fixExecutable`,edits:(e,t)=>[ve(e,t)].filter(e=>e!==null)},"compat/history-time-to-live":{title:`app.lsp.fixTimeToLive`,edits:(e,t)=>[ye(e,t)].filter(e=>e!==null)},"bpmnlint/superfluous-label":{title:`app.lsp.fixRemoveLabel`,edits:be}};function xe(t,n){let r=[];for(let i of n.slice(0,50)){if(i.source!==`penstock`||typeof i.code!=`string`)continue;let n=Array.isArray(i.data?.elements)?i.data.elements.filter(e=>typeof e==`string`):[],a=Object.hasOwn(m,i.code)?m[i.code]:void 0,o=a?a.edits(t,n):[];a&&o.length>0&&r.push({title:e(a.title),kind:`quickfix`,diagnostics:[i],edit:{changes:{[t.uri]:o}},isPreferred:!0});let s=i.codeDescription?.href;ge(s)&&r.push({title:e(`app.lsp.openDocs`,{rule:i.code.slice(0,80)}),kind:`quickfix`,diagnostics:[i],command:{title:e(`app.lsp.openDocsShort`),command:he,arguments:[s]}})}return r}const Se=/* @__PURE__ */ new Set([`fromAi`]),Ce=/<pre><code class="language-feel">([\s\S]*?)<\/code><\/pre>/,we=/<p>([\s\S]*?)<\/p>/,Te=/<[^>]+>/g,Ee=/&(#39|amp|lt|gt|quot|apos);/g,De={"#39":`'`,amp:`&`,lt:`<`,gt:`>`,quot:`"`,apos:`'`};function h(e){return e.replace(Te,``).replace(Ee,(e,t)=>De[t]??``).trim()}function Oe(e){let t=Ce.exec(e.info)?.[1];return(t?h(t).split(`
|
|
3
|
-
`)[0]?.trim():void 0)||`${e.name}(${(e.params??[]).map(e=>e.name).join(`, `)})`}function ke(e){let t=we.exec(e.info)?.[1];return t?h(t):``}function Ae(){let e=new Set(d.map(e=>e.name)),t=/* @__PURE__ */ new Map;for(let n of[...d,...le]){if(Se.has(n.name))continue;let r=t.get(n.name)??{name:n.name,signatures:[],summary:ke(n),origin:e.has(n.name)?`feel`:`camunda`},i=Oe(n);r.signatures.includes(i)||r.signatures.push(i),t.set(n.name,r)}return[...t.values()].sort((e,t)=>e.name<t.name?-1:+(e.name>t.name))}var g=class{starts;text;constructor(e){this.text=e;let t=[0];for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);r===13?(e.charCodeAt(n+1)===10&&(n+=1),t.push(n+1)):r===10&&t.push(n+1)}this.starts=t}get lineCount(){return this.starts.length}lineEnd(e){if(e+1>=this.starts.length)return this.text.length;let t=this.starts[e+1];return this.text.charCodeAt(t-1)===10&&--t,this.text.charCodeAt(t-1)===13&&--t,t}positionAt(e){let t=Math.max(0,Math.min(e,this.text.length)),n=0,r=this.starts.length-1;for(;n<r;){let e=n+r+1>>1;this.starts[e]<=t?n=e:r=e-1}return{line:n,character:t-this.starts[n]}}offsetAt(e){if(e.line<0)return 0;if(e.line>=this.starts.length)return this.text.length;let t=this.starts[e.line];return Math.min(t+Math.max(0,e.character),this.lineEnd(e.line))}range(e,t){return{start:this.positionAt(e),end:this.positionAt(Math.max(e,t))}}firstLine(e,t){let n=this.positionAt(e).line;return this.range(e,Math.min(t,this.lineEnd(n)))}};function je(e,t){let n=t.line>e.start.line||t.line===e.start.line&&t.character>=e.start.character,r=t.line<e.end.line||t.line===e.end.line&&t.character<=e.end.character;return n&&r}const _=16777216,Me=/\.bpmn(\.xml|20\.xml)?$/i,Ne=/\.dmn$/i,Pe=/\.(cmmn|cmmn11\.xml)$/i,Fe=/\.form$/i;function v(e){return Me.test(e)?`process`:Ne.test(e)?`decision`:Pe.test(e)?`case`:Fe.test(e)?`form`:null}var y=class{uri;path;fileKind;text;version;index=null;tree=null;constructor(e,t,n,r,i){this.uri=e,this.path=t,this.fileKind=n,this.text=r,this.version=i}get lines(){return this.index??=new g(this.text),this.index}replace(e,t){this.text=e,this.version=t,this.index=null,this.tree=null}get parsed(){return this.tree??=b(this.fileKind,this.text),this.tree}};function b(e,t){if(e===`form`){let{node:e,at:n}=ie(t);return{kind:`json`,node:e,at:n}}let n=te(t),r=/* @__PURE__ */ new Map;for(let e of n.elements){let t=e.attributes.find(e=>e.name===`id`);t&&!r.has(t.value)&&r.set(t.value,e)}return{kind:`xml`,scan:n,ids:r}}function x(e,t){return e.attributes.find(e=>e.name===t)?.value}function S(e,t){return re(e,t.start,t.end).value}const Ie=/[\\`*_{}[\]()<>#+!|~&]/g;function C(e){return[...e].filter(e=>e>=` `&&e!==``).join(``).slice(0,200).replace(Ie,e=>`\\${e}`)}function w(e,t){return`**${e}:** ${C(t)}`}function Le(t,o){let s=t.filter(e=>e.source===`penstock`&&je(e.range,o)&&e.code!==void 0);return s.length===0?null:{contents:{kind:`markdown`,value:s.map(t=>{let o=t.code,s=n.find(e=>e.id===o),c=[`**${C(s?a(s.family,s.name):o)}** (\`${o.replace(/[^\w/.-]/g,``)}\`)`,``,C(t.message)];return s&&c.push(``,w(e(`app.lsp.hoverWhy`),r(s.family,s.name)),``,w(e(`app.lsp.hoverFix`),i(s.family,s.name))),t.codeDescription&&c.push(``,`[${e(`app.lsp.hoverDocs`)}](${t.codeDescription.href})`),c.join(`
|
|
4
|
-
`)}).join(`
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
`)},range:s[0].range}}function T(e,t){let n=e.parsed;if(n.kind!==`xml`||n.scan.problem!==null)return null;let r=null;for(let e of n.scan.elements){if(e.start>t)break;t<=e.end&&x(e,`id`)!==void 0&&(r=e)}return r}function Re(e){return e.children.filter(e=>e.local===`extensionElements`).flatMap(e=>e.children)}function E(e,t){for(let[n,r]of t){let t=n===null?[e]:Re(e).filter(e=>e.local===n);for(let e of t){let t=e.attributes.find(e=>e.name===r||e.name.slice(e.name.indexOf(`:`)+1)===r);if(t&&t.value.trim()!==``)return t.value}}}function ze(t,n){let r=t.text,i=n.attributes.find(e=>e.name===`name`),a=[{label:e(`app.lsp.elementType`),value:n.local},{label:e(`app.lsp.elementId`),value:x(n,`id`)??``}];i&&S(r,i).trim()!==``&&a.push({label:e(`app.lsp.elementName`),value:S(r,i)});let o=E(n,[[null,`calledElement`],[`calledElement`,`processId`]]),s=E(n,[[`calledDecision`,`decisionId`],[null,`decisionRef`]]),c=E(n,[[`formDefinition`,`formId`],[`formDefinition`,`formKey`],[null,`formKey`],[null,`formRef`]]),l=E(n,[[`taskDefinition`,`type`],[null,`topic`],[null,`class`],[null,`delegateExpression`]]);if(o&&a.push({label:e(`app.lsp.calledProcess`),value:o}),s&&a.push({label:e(`app.lsp.calledDecision`),value:s}),c&&a.push({label:e(`app.lsp.form`),value:c}),l&&a.push({label:e(`app.lsp.jobType`),value:l}),n.local===`decision`){let t=n.children.find(e=>e.local===`decisionTable`),r=t?x(t,`hitPolicy`):void 0;r&&a.push({label:e(`app.lsp.hitPolicy`),value:r})}return a}function Be(t,n,r){let i=T(t,n);if(!i)return null;let a=ze(t,i).map(e=>`- ${w(e.label,e.value)}`);if(r.length>0){let t=r.slice(0,30).map(e=>e.type?`${e.name}: ${e.type}`:e.name);a.push(`- ${w(e(`app.lsp.variables`),t.join(`, `))}${r.length>30?` …`:``}`)}return{contents:{kind:`markdown`,value:a.join(`
|
|
9
|
-
`)},range:t.lines.firstLine(i.start,i.openEnd)}}function Ve(e,t){let n=null,r=[e],i=0;for(let e=r.pop();e&&i<2e5;e=r.pop())if(i+=1,e.kind===`object`){if(t>=e.start&&t<=e.end){e.members.some(e=>e.key===`type`&&e.value.kind===`string`)&&(n=e);for(let t of e.members)r.push(t.value)}}else if(e.kind===`array`)for(let t of e.items)r.push(t);return n}function He(t,n){let r=t.parsed;if(r.kind!==`json`||!r.node)return null;let i=Ve(r.node,n);if(!i)return null;let a=e=>{let t=i.members.find(t=>t.key===e);return t?.value.kind===`string`?t.value.value:``};return{contents:{kind:`markdown`,value:[{label:e(`app.lsp.elementType`),value:a(`type`)},{label:e(`app.lsp.elementId`),value:a(`id`)},{label:e(`app.lsp.formKey`),value:a(`key`)},{label:e(`app.lsp.elementName`),value:a(`label`)}].filter(e=>e.value!==``).map(e=>`- ${w(e.label,e.value)}`).join(`
|
|
10
|
-
`)},range:t.lines.range(i.start,i.end+1)}}const D={Module:2,Namespace:3,Package:4,Class:5,Method:6,Field:8,Function:12,Variable:13,Constant:14,Struct:23,Event:24,Operator:25},O={Function:3,Variable:6,Keyword:14,Reference:18,Value:12},k=/* @__PURE__ */ new Set([`zeebe`,`camunda`,`operaton`]),Ue=[`true`,`false`,`null`,`if`,`then`,`else`,`for`,`in`,`return`,`some`,`every`,`satisfies`,`and`,`or`,`not`,`between`,`instance`,`of`,`function`],We=/* @__PURE__ */ new Set([`inputExpression`,`inputEntry`,`outputEntry`,`literalExpression`]),Ge=/[\p{L}\p{N}_]/u,Ke={calledElement:`PROCESS`,processId:`PROCESS`,decisionId:`DECISION`,decisionRef:`DECISION`,formId:`FORM`,formKey:`FORM`,formRef:`FORM`},qe=e=>e.slice(e.lastIndexOf(`:`)+1);function A(e,t){let n=t;for(;n>0&&t-n<256&&Ge.test(e[n-1]);)--n;return{start:n,prefix:e.slice(n,t),dotted:e[n-1]===`.`}}function j(e,t,n){let r=!1;for(let i=Math.max(t,n-4096);i<n;i+=1)e[i]===`"`&&e[i-1]!==`\\`&&(r=!r);return r}function Je(e,t){return t>e.start&&t<e.openEnd}function Ye(e,t){let n=e.parsed;if(n.kind!==`xml`||n.scan.problem!==null)return null;for(let r of n.scan.elements){if(r.start>t)break;if(Je(r,t)){let n=r.attributes.find(e=>t>=e.start&&t<=e.end);if(!n)return null;let i=Ke[qe(n.name)];if(i)return{kind:`ids`,ids:i,replace:[n.start,n.end]};let a=k.has(r.prefix)||k.has(n.name.slice(0,Math.max(0,n.name.indexOf(`:`)))),o=n.value.trimStart(),s=o.startsWith(`=`);if(!a||!(s||o.startsWith("${")||o.startsWith(`#{`))||j(e.text,n.start,t))return null;let c=A(e.text,t);return c.dotted||c.start<n.start?null:{kind:`expression`,prefix:c.prefix,feel:s,elementId:T(e,t)?.attributes.find(e=>e.name===`id`)?.value??null,replace:[c.start,t]}}}let r=[...n.scan.elements].reverse().find(e=>e.start<=t&&t>=e.openEnd&&e.closeStart>=0&&t<=e.closeStart);if(!r)return null;let i=r.text.find(e=>t>=e.start&&t<=e.end);if(!i)return null;let a=e.fileKind===`decision`&&r.local===`text`&&We.has(r.parent?.local??``),o=r.local===`conditionExpression`;if(!a&&!o)return null;let s=e.text.slice(i.start,t),c=a||s.trimStart().startsWith(`=`);if(!c&&!s.trimStart().startsWith("${")||j(e.text,i.start,t))return null;let l=A(e.text,t);return l.dotted||l.start<i.start?null:{kind:`expression`,prefix:l.prefix,feel:c,elementId:a?null:T(e,t)?.attributes.find(e=>e.name===`id`)?.value??null,replace:[l.start,t]}}let M=null;function Xe(){return M??=Ae(),M}function N(e,t){return e.lines.range(t[0],t[1])}function Ze(e,t,n){let r=t.prefix.toLowerCase(),i=N(e,t.replace),a=[];for(let e of n)e.name.toLowerCase().startsWith(r)&&a.push({label:e.name,kind:O.Variable,detail:e.type??void 0,sortText:`0${e.name}`,textEdit:{range:i,newText:e.name}});if(t.feel){for(let e of Xe())e.name.toLowerCase().startsWith(r)&&a.push({label:e.name,kind:O.Function,detail:e.signatures[0],documentation:e.summary?{kind:`markdown`,value:C(e.summary)}:void 0,sortText:`1${e.name}`,textEdit:{range:i,newText:e.name}});for(let e of Ue)e.startsWith(r)&&a.push({label:e,kind:O.Keyword,sortText:`2${e}`,textEdit:{range:i,newText:e}})}return a.slice(0,300)}function Qe(e,t,n){let r=N(e,t.replace);return n.slice(0,300).map(e=>({label:e.value,kind:O.Reference,detail:e.detail,textEdit:{range:r,newText:e.value}}))}function P(e,t){return e.lines.firstLine(t.start,t.openEnd)}function $e(e){let t=[],n=[e],r=0;for(let e=n.pop();e&&r<1e5;e=n.pop()){r+=1,e.local===`rule`&&e.parent?.local===`decisionTable`&&t.push(e);for(let t=e.children.length-1;t>=0;--t)n.push(e.children[t])}return t}function et(e,t){return e.members.find(e=>e.key===t)}function tt(e,t){let n=/* @__PURE__ */ new Map,r=e.parsed;if(r.kind!==`json`||!r.node||t.size===0)return n;let i=[r.node],a=0;for(let r=i.pop();r&&a<2e5;r=i.pop())if(a+=1,r.kind===`object`){let a=et(r,`id`);a?.value.kind===`string`&&t.has(a.value.value)&&!n.has(a.value.value)&&n.set(a.value.value,e.lines.range(a.value.start-1,a.value.end+1));for(let e=r.members.length-1;e>=0;--e)i.push(r.members[e].value)}else if(r.kind===`array`)for(let e=r.items.length-1;e>=0;--e)i.push(r.items[e]);return n}function nt(e,t){let n=e.parsed,r=[.../* @__PURE__ */ new Set([...t.elements??[],...t.at?.ids??[]])],i=[];if(n.kind===`xml`){let a=t.at?.rules??[],o=t.at?.decision?n.ids.get(t.at.decision):void 0;if(o&&a.length>0){let n=$e(o);for(let r of a){let a=n[r-1];a&&i.push({range:P(e,a),id:`${t.at?.decision}#${r}`})}}if(i.length===0)for(let t of r){let r=n.ids.get(t);r&&i.push({range:P(e,r),id:t})}}else{let t=tt(e,new Set(r));for(let e of r){let n=t.get(e);n&&i.push({range:n,id:e})}}return i.length===0&&i.push({range:e.lines.firstLine(0,e.text.length),id:``}),i}const rt={error:1,warning:2,note:3};function it(e){let t=e.elements??[],n=t.length>0?` (${t.join(`, `)})`:``,r=n&&e.message.endsWith(n)?e.message.slice(0,-n.length):e.message;return e.title?`${e.title}${e.where?` - ${e.where}`:``}`:r}function F(e,t,n){return{range:e.lines.firstLine(0,e.text.length),severity:3,source:`penstock`,code:n,message:t}}function at(t){let n=t.parsed;if(n.kind===`json`){if(n.node)return null;let r=Math.min(n.at,t.text.length);return{range:t.lines.range(r,Math.min(t.text.length,r+1)),severity:1,source:`penstock`,code:`file-unreadable`,message:e(`app.lsp.jsonInvalid`)}}let r=n.scan.problem;if(r===null)return null;let i=r===`malformed`?`app.lsp.xmlMalformed`:`app.lsp.xmlRefused`,a=Math.min(n.scan.at,t.text.length);return{range:t.lines.range(a,Math.min(t.text.length,a+1)),severity:1,source:`penstock`,code:`file-unreadable`,message:e(i)}}function I(t,n){return F(t,e(`app.lsp.tooLarge`,{limit:Math.round(n/1048576)}),`file-too-large`)}function ot(t){return F(t,e(`app.lsp.outsideWorkspace`),`outside-workspace`)}function st(t){return F(t,e(`app.lsp.checkStopped`),`check-stopped`)}function ct(t,n){let r=[];for(let i of n){if(r.length>=200)break;let n=nt(t,i),a=i.ruleId??i.rule,o=[.../* @__PURE__ */ new Set([...i.elements??[],...i.at?.ids??[]])],s={range:n[0].range,severity:rt[i.severity],code:a,source:`penstock`,message:it(i),data:{ruleId:a,elements:o}};i.docs&&(s.codeDescription={href:i.docs}),n.length>1&&(s.relatedInformation=n.slice(1,11).map(n=>({location:{uri:t.uri,range:n.range},message:e(`app.lsp.related`,{name:n.id})}))),r.push(s)}return n.length>200&&r.push(F(t,e(`app.lsp.capped`,{count:200}),`findings-capped`)),r}const L=3e3,lt=/* @__PURE__ */ new Set([`zeebe`,`camunda`,`operaton`,`modeler`]),ut=[`PROCESS`,`DECISION`,`FORM`,`MESSAGE`,`SIGNAL`,`ERROR`],dt={PROCESS:[`process`,`id`],DECISION:[`decision`,`id`],MESSAGE:[`message`,`name`],SIGNAL:[`signal`,`name`],ERROR:[`error`,`errorCode`]},R=e=>e.slice(e.lastIndexOf(`:`)+1),z=e=>e.includes(`:`)?e.slice(0,e.indexOf(`:`)):``;function B(e,t){let n=dt[e];if(!n)return!1;let[r,i]=t.split(`@`);return i!==void 0&&R(r)===n[0]&&R(i)===n[1]&&!lt.has(z(r))&&z(i)===``}function ft(e){return e.startsWith(`camunda-forms:bpmn:`)?e.slice(19):e}function V(e,t){return ne(e,t).filter(e=>!e.expression&&e.value.trim()!==``).map(t=>({...t,value:e===`FORM`?ft(t.value):t.value}))}function pt(e,t){let n=e.parsed;if(n.kind===`json`){let e=n.node;if(e?.kind!==`object`)return null;let r=e.members.find(e=>e.key===`id`);return r?.value.kind!==`string`||t<r.value.start||t>r.value.end?null:{kind:`FORM`,value:r.value.value,declaration:!0,start:r.value.start,end:r.value.end}}if(n.scan.problem!==null)return null;for(let n of ut){if(n===`FORM`&&e.fileKind===`form`)continue;let r=V(n,e.text).find(e=>t>=e.start&&t<=e.end);if(r)return{kind:n,value:r.value,declaration:B(n,r.where),start:r.start,end:r.end}}return null}function H(e,t,n,r){return{uri:e,range:new g(t).range(n,r)}}function mt(e,t,n){let r=b(`form`,t);if(r.kind!==`json`||r.node?.kind!==`object`)return[];let i=r.node.members.find(e=>e.key===`id`),a=e.path.slice(e.path.lastIndexOf(`/`)+1).replace(/\.form$/i,``);return i?.value.kind===`string`&&i.value.value===n?[H(e.uri,t,i.value.start,i.value.end)]:a===n||e.path.endsWith(`/${n}`)||e.path===n?[H(e.uri,t,0,0)]:[]}function ht(e,t){let n=[];for(let r of e.files().slice(0,L)){if(n.length>=500)break;let i=e.text(r.uri);if(i!==null){if(t.kind===`FORM`)r.kind===`form`&&n.push(...mt(r,i,t.value));else if(r.kind!==`form`&&i.includes(t.value))for(let e of V(t.kind,i))e.value===t.value&&B(t.kind,e.where)&&n.push(H(r.uri,i,e.start,e.end))}}return n.slice(0,500)}function gt(e,t,n){let r=[];for(let i of e.files().slice(0,L)){if(r.length>=500)break;let a=e.text(i.uri);if(a!==null&&a.includes(t.value)){if(i.kind===`form`)n&&t.kind===`FORM`&&r.push(...mt(i,a,t.value));else for(let e of V(t.kind,a))e.value===t.value&&(n||!B(t.kind,e.where))&&r.push(H(i.uri,a,e.start,e.end))}}return r.slice(0,500)}function _t(e,t){let n=/* @__PURE__ */ new Map;for(let r of e.files().slice(0,L)){if(n.size>=500)break;let i=e.text(r.uri);if(i!==null){if(t===`FORM`){if(r.kind!==`form`)continue;let e=b(`form`,i),t=e.kind===`json`&&e.node?.kind===`object`?e.node.members.find(e=>e.key===`id`):void 0;t?.value.kind===`string`&&t.value.value!==``&&!n.has(t.value.value)&&n.set(t.value.value,r.path)}else if(r.kind===(t===`PROCESS`?`process`:`decision`))for(let e of V(t,i))B(t,e.where)&&!n.has(e.value)&&n.set(e.value,r.path)}}return[...n].map(([e,t])=>({value:e,file:t})).sort((e,t)=>e.value<t.value?-1:+(e.value>t.value))}const vt=/* @__PURE__ */ new Set([`process`,`subProcess`,`transaction`,`adHocSubProcess`,`participant`,`collaboration`,`lane`,`decision`,`definitions`,`case`,`casePlanModel`,`stage`,`planFragment`]),yt={collaboration:D.Package,participant:D.Package,process:D.Module,subProcess:D.Namespace,transaction:D.Namespace,adHocSubProcess:D.Namespace,callActivity:D.Function,lane:D.Struct,dataObject:D.Variable,dataObjectReference:D.Variable,dataStoreReference:D.Variable,message:D.Constant,signal:D.Constant,error:D.Constant,escalation:D.Constant},bt=/* @__PURE__ */ new Set([`extensionElements`,`documentation`,`incoming`,`outgoing`,`BPMNDiagram`,`BPMNPlane`,`sequenceFlow`,`messageFlow`,`association`,`textAnnotation`,`dataInputAssociation`,`dataOutputAssociation`,`conditionExpression`,`multiInstanceLoopCharacteristics`,`standardLoopCharacteristics`,`ioSpecification`,`property`,`text`,`flowNodeRef`,`childLaneSet`]),xt={decision:D.Function,inputData:D.Variable,businessKnowledgeModel:D.Class,knowledgeSource:D.Class,input:D.Field,output:D.Field},St=/* @__PURE__ */ new Set([`case`,`casePlanModel`,`stage`,`planFragment`,`humanTask`,`processTask`,`caseTask`,`decisionTask`,`task`,`milestone`,`eventListener`,`timerEventListener`,`userEventListener`,`caseFileItem`]);function Ct(e){let t=yt[e.local];return t===void 0?/Task$/.test(e.local)||e.local===`task`?D.Function:/Event$/.test(e.local)?D.Event:/Gateway$/.test(e.local)?D.Operator:null:t}function wt(e,t,n){let r=t.attributes.find(e=>e.name===`name`||e.name===`label`);return(r?S(e.doc.text,r).trim():``)||n}function Tt(e,t,n,r){let i=t.attributes.find(e=>e.name===`id`),a=i?e.doc.lines.range(i.start,i.end):e.doc.lines.firstLine(t.start,t.openEnd);return{name:r,detail:t.local,kind:n,range:e.doc.lines.range(t.start,t.end),selectionRange:a}}function Et(e,t){let n=x(t,`label`);if(n)return n;let r=(t.children.find(e=>e.local===`inputExpression`)?.children.find(e=>e.local===`text`))?.text[0];return r?e.doc.text.slice(r.start,Math.min(r.end,r.start+120)).trim():``}function U(e,t,n,r,i){if(!(r>64||e.budget.left<=0))for(let a of t.children){if(e.budget.left<=0)return;if(bt.has(a.local)&&e.doc.fileKind===`process`)continue;let t=x(a,`id`),o=n(a);if(o!==null&&(t!==void 0||a.local===`input`||a.local===`output`)){--e.budget.left;let s=Tt(e,a,o,wt(e,a,a.local===`input`?Et(e,a)||t||a.local:t??a.local)),c=[];U(e,a,n,r+1,c),c.length>0&&(s.children=c),i.push(s)}else U(e,a,n,r+1,i)}}function W(e,t,n){let r=t.members.find(e=>e.key===n);return r?.value.kind===`string`?e.text.slice(r.value.start,r.value.end):``}function Dt(e,t,n,r){if(t.kind!==`object`||n>64)return;let i=t.members.find(e=>e.key===`components`)?.value;if(i?.kind===`array`)for(let t of i.items){if(t.kind!==`object`||e.budget.left<=0)continue;--e.budget.left;let i=W(e.doc,t,`type`)||`component`,a=W(e.doc,t,`label`)||W(e.doc,t,`text`)||W(e.doc,t,`key`)||W(e.doc,t,`id`)||i,o=t.members.find(e=>e.key===`id`),s=o?.value.kind===`string`?e.doc.lines.range(o.value.start-1,o.value.end+1):e.doc.lines.firstLine(t.start,t.end),c={name:a,detail:i,kind:i===`group`||i===`dynamiclist`?D.Struct:D.Field,range:e.doc.lines.range(t.start,t.end+1),selectionRange:s},l=[];Dt(e,t,n+1,l),l.length>0&&(c.children=l),r.push(c)}}function G(e){let t=e.parsed,n={doc:e,budget:{left:2e4}},r=[];if(t.kind===`json`)return t.node&&Dt(n,t.node,0,r),r;let i=t.scan.root;return i&&(e.fileKind===`decision`?U(n,i,e=>xt[e.local]??null,0,r):e.fileKind===`case`?U(n,i,e=>St.has(e.local)?D.Class:null,0,r):U(n,i,Ct,0,r)),r}function K(e,t){let n=[],r=[...e].reverse().map(e=>({symbol:e,container:t}));for(let e=r.pop();e&&n.length<2e4;e=r.pop()){n.push(e);let t=e.symbol.children??[];for(let n=t.length-1;n>=0;--n)r.push({symbol:t[n],container:e.symbol.name})}return n}function Ot(e){let t=[];for(let{symbol:n}of K(e)){let e=n.range;e.end.line>e.start.line&&(vt.has(n.detail??``)||n.children!==void 0)&&t.push({startLine:e.start.line,endLine:e.end.line-1>=e.start.line?e.end.line-1:e.end.line,kind:`region`})}return t}const q={parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603,notInitialized:-32002};var J=class extends Error{code;constructor(e,t){super(t),this.code=e}};function Y(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function X(e){if(typeof e!=`string`||e.length===0||e.length>4096)throw new J(q.invalidParams,`invalid uri`);return e}function Z(e){if(!Y(e)||!Number.isInteger(e.line)||!Number.isInteger(e.character))throw new J(q.invalidParams,`invalid position`);return{line:e.line,character:e.character}}function kt(e){if(!Y(e))throw new J(q.invalidParams,`invalid range`);return{start:Z(e.start),end:Z(e.end)}}function Q(e){if(!Y(e)||!Y(e.textDocument))throw new J(q.invalidParams,`textDocument is required`);return X(e.textDocument.uri)}var At=class{host;write;leave;version;states=/* @__PURE__ */ new Map;queue=[];folders=[];running=!1;initialized=!1;shuttingDown=!1;hierarchical=!1;canShowDocument=!1;outgoing=0;constructor(e,t,n,r){this.host=e,this.write=t,this.leave=n,this.version=r}get stopped(){return this.shuttingDown}frameProblem(e){this.host.log(`discarded a message with an invalid ${e}`),this.write({jsonrpc:`2.0`,id:null,error:{code:e===`size`?q.invalidRequest:q.parse,message:e===`size`?`message too large`:`invalid header`}})}receive(e){let t;try{t=JSON.parse(e)}catch{this.write({jsonrpc:`2.0`,id:null,error:{code:q.parse,message:`parse error`}});return}Array.isArray(t)||!Y(t)?this.write({jsonrpc:`2.0`,id:null,error:{code:q.invalidRequest,message:`invalid request`}}):this.dispatch(t)}reply(e,t){this.write({jsonrpc:`2.0`,id:e,result:t})}fail(e,t,n){this.write({jsonrpc:`2.0`,id:e,error:{code:t,message:n}})}notify(e,t){this.write({jsonrpc:`2.0`,method:e,params:t})}async dispatch(e){let{id:t,method:n,params:r}=e,i=(typeof t==`string`||typeof t==`number`)&&typeof n==`string`;if(typeof n!=`string`)!(`result`in e)&&!(`error`in e)&&this.fail(typeof t==`string`||typeof t==`number`?t:null,q.invalidRequest,`invalid request`);else try{if(n===`exit`){this.stop(),this.leave(+!this.shuttingDown);return}if(this.shuttingDown){i&&this.fail(t,q.invalidRequest,`the server is shutting down`);return}if(!this.initialized&&n!==`initialize`){i&&this.fail(t,q.notInitialized,`the server is not initialized`);return}let e=await this.handle(n,r,i);i&&this.reply(t,e??null)}catch(e){if(e instanceof J){i&&this.fail(t,e.code,e.message);return}this.host.log(`${n} failed: ${e instanceof Error?e.message.slice(0,200):`unknown`}`),i&&this.fail(t,q.internal,`internal error`)}}async handle(e,t,n){switch(e){case`initialize`:return this.initialize(t);case`initialized`:return null;case`shutdown`:return this.shuttingDown=!0,this.stop(),null;case`textDocument/didOpen`:return this.didOpen(t);case`textDocument/didChange`:return this.didChange(t);case`textDocument/didSave`:return this.didSave(t);case`textDocument/didClose`:return this.didClose(t);case`workspace/didChangeWatchedFiles`:return this.host.invalidate(),null;case`workspace/didChangeWorkspaceFolders`:return this.didChangeFolders(t);case`workspace/executeCommand`:return this.executeCommand(t);case`workspace/symbol`:return this.workspaceSymbols(t)}if(!n)return null;switch(e){case`textDocument/hover`:return this.hover(t);case`textDocument/definition`:return this.definition(t);case`textDocument/references`:return this.references(t);case`textDocument/documentSymbol`:return this.documentSymbol(t);case`textDocument/codeAction`:return this.codeAction(t);case`textDocument/completion`:return this.completion(t);case`textDocument/foldingRange`:return this.folding(t);default:throw new J(q.methodNotFound,`method not found: ${e.slice(0,80)}`)}}stop(){for(let e of this.states.values())e.cancelTimer(),e.abort?.abort();this.queue.length=0}initialize(e){if(this.initialized)throw new J(q.invalidRequest,`already initialized`);let t=Y(e)?e:{},n=[];if(Array.isArray(t.workspaceFolders))for(let e of t.workspaceFolders.slice(0,64))Y(e)&&typeof e.uri==`string`&&e.uri.length<=4096&&n.push(e.uri);else typeof t.rootUri==`string`&&t.rootUri.length<=4096&&n.push(t.rootUri);this.folders=n,this.host.setWorkspace(n);let r=Y(t.capabilities)?t.capabilities:{},i=Y(r.textDocument)?r.textDocument:{},a=Y(i.documentSymbol)?i.documentSymbol:{};this.hierarchical=a.hierarchicalDocumentSymbolSupport===!0;let o=Y(r.window)?r.window:{};return this.canShowDocument=Y(o.showDocument)&&o.showDocument.support===!0,this.initialized=!0,{capabilities:{positionEncoding:`utf-16`,textDocumentSync:{openClose:!0,change:2,save:{includeText:!1}},hoverProvider:!0,definitionProvider:!0,referencesProvider:!0,documentSymbolProvider:!0,workspaceSymbolProvider:!0,foldingRangeProvider:!0,codeActionProvider:{codeActionKinds:[`quickfix`]},completionProvider:{triggerCharacters:[`=`,`$`,`{`,`"`,`:`],resolveProvider:!1},executeCommandProvider:{commands:[he,`penstock.check`]},workspace:{workspaceFolders:{supported:!0,changeNotifications:!0}}},serverInfo:{name:`penstock`,version:this.version}}}didChangeFolders(e){if(!Y(e)||!Y(e.event))return null;let t=e=>(Array.isArray(e)?e:[]).slice(0,64).filter(e=>Y(e)&&typeof e.uri==`string`&&e.uri.length<=4096).map(e=>e.uri),n=new Set(t(e.event.removed));return this.folders=[...this.folders.filter(e=>!n.has(e)),...t(e.event.added)].slice(0,64),this.host.setWorkspace(this.folders),this.host.invalidate(),null}didOpen(e){if(!Y(e)||!Y(e.textDocument))throw new J(q.invalidParams,`textDocument is required`);let t=e.textDocument,n=X(t.uri);if(typeof t.text!=`string`)throw new J(q.invalidParams,`text is required`);let r=Number.isInteger(t.version)?t.version:0;if(!this.states.has(n)&&this.states.size>=256)return this.host.log(`too many open documents; ignoring one`),null;let i=this.host.resolve(n),a=v(n.split(/[?#]/)[0]);if(a===null)return null;let o=this.states.get(n);o?.cancelTimer(),o?.abort?.abort();let s={doc:new y(n,i,a,t.text.length>16777216?``:t.text,r),blocked:null,diagnostics:[],cancelTimer:()=>void 0,abort:null,generation:0};return this.states.set(n,s),this.assess(s,t.text.length),s.blocked===null?this.schedule(s,0):this.publish(s),null}assess(e,t){t>16777216?(e.blocked=`large`,e.diagnostics=[I(e.doc,_)]):e.doc.path===null?(e.blocked=`outside`,e.diagnostics=[ot(e.doc)]):e.blocked=null}didChange(e){let t=Q(e),n=this.states.get(t);if(!n||!Y(e))return null;let r=Array.isArray(e.contentChanges)?e.contentChanges.slice(0,1e3):[],i=n.doc,a=i.text,o=a.length;for(let e of r){if(!Y(e)||typeof e.text!=`string`)throw new J(q.invalidParams,`invalid change`);if(e.range===void 0){a=e.text,o=a.length,i.replace(a,i.version);continue}let t=kt(e.range),n=i.lines.offsetAt(t.start),r=Math.max(n,i.lines.offsetAt(t.end));if(o=o-(r-n)+e.text.length,o>16777216)break;a=a.slice(0,n)+e.text+a.slice(r),i.replace(a,i.version)}let s=Y(e.textDocument)&&Number.isInteger(e.textDocument.version)?e.textDocument.version:i.version;return o>16777216?(i.replace(``,s),n.blocked=`large`,n.diagnostics=[I(i,_)],n.cancelTimer(),n.abort?.abort(),this.publish(n),null):(i.replace(a,s),this.assess(n,o),this.host.invalidate(),n.blocked===null?this.schedule(n,300):this.publish(n),null)}didSave(e){let t=this.states.get(Q(e));return t&&t.blocked===null&&this.schedule(t,0),this.host.invalidate(),null}didClose(e){let t=Q(e),n=this.states.get(t);return n&&(n.cancelTimer(),n.abort?.abort(),this.states.delete(t),this.notify(`textDocument/publishDiagnostics`,{uri:t,diagnostics:[]})),null}schedule(e,t){e.cancelTimer(),e.abort?.abort(),e.cancelTimer=this.host.after(t,()=>{this.queue.includes(e.doc.uri)||this.queue.push(e.doc.uri),this.pump()})}async pump(){if(!this.running){this.running=!0;try{for(let e=this.queue.shift();e!==void 0;e=this.queue.shift()){let t=this.states.get(e);t&&t.blocked===null&&!this.shuttingDown&&await this.runCheck(t)}}finally{this.running=!1}}}async runCheck(e){let t=e.doc;e.generation+=1;let n=e.generation,r=new AbortController;e.abort=r;let i,a=at(t);if(a)i=[a];else try{i=ct(t,await this.host.check(t.path,t.text,r.signal))}catch(e){this.host.log(`the check stopped: ${e instanceof Error?e.message.slice(0,200):`unknown`}`),i=[st(t)]}r.signal.aborted||e.generation!==n||this.states.get(t.uri)!==e||(e.diagnostics=i,this.publish(e))}publish(e){this.notify(`textDocument/publishDiagnostics`,{uri:e.doc.uri,version:e.doc.version,diagnostics:e.diagnostics})}stateOf(e){let t=this.states.get(Q(e));if(!t)throw new J(q.invalidParams,`the document is not open`);return t}source(){let e=this.host.project();return{files:()=>{let t=e.files(),n=new Set(t.map(e=>e.uri)),r=[];for(let e of this.states.values())e.doc.path!==null&&!n.has(e.doc.uri)&&r.push({uri:e.doc.uri,path:e.doc.path,kind:e.doc.fileKind});return[...t,...r]},text:t=>this.states.get(t)?.doc.text??e.text(t)}}async hover(e){let t=this.stateOf(e),n=Z(e.position),r=t.doc;if(t.blocked===`large`)return null;let i=Le(t.diagnostics,n),a=r.lines.offsetAt(n);if(r.fileKind===`form`)return i??He(r,a);let o=[],s=(r.fileKind===`process`?T(r,a):null)?.attributes.find(e=>e.name===`id`)?.value;if(s!==void 0&&r.path!==null)try{o=await this.host.variables(r.path,r.text,s)}catch{o=[]}let c=Be(r,a,o);return i&&c?{contents:{kind:`markdown`,value:`${i.contents.value}\n\n---\n\n${c.contents.value}`},range:i.range}:i??c}definition(e){let t=this.stateOf(e);if(t.blocked===`large`)return null;let n=pt(t.doc,t.doc.lines.offsetAt(Z(e.position)));return n?ht(this.source(),n):null}references(e){let t=this.stateOf(e);if(t.blocked===`large`)return null;let n=e,r=pt(t.doc,t.doc.lines.offsetAt(Z(n.position))),i=Y(n.context)&&n.context.includeDeclaration===!0;return r?gt(this.source(),r,i):null}documentSymbol(e){let t=this.stateOf(e);if(t.blocked===`large`)return[];let n=G(t.doc);return this.hierarchical?n:K(n).map(({symbol:e,container:n})=>({name:e.name,kind:e.kind,location:{uri:t.doc.uri,range:e.range},...n?{containerName:n}:{}}))}workspaceSymbols(e){let t=Y(e)&&typeof e.query==`string`?e.query.slice(0,256).toLowerCase():``,n=this.source(),r=[];for(let e of n.files()){if(r.length>=200)break;let i=n.text(e.uri);if(i===null)continue;let a=this.states.get(e.uri)?.doc??new y(e.uri,e.path,e.kind,i,0);for(let{symbol:n,container:i}of K(G(a))){if(r.length>=200)break;(t===``||n.name.toLowerCase().includes(t))&&r.push({name:n.name,kind:n.kind,location:{uri:e.uri,range:n.selectionRange},...i?{containerName:i}:{}})}}return r}codeAction(e){let t=this.stateOf(e);if(t.blocked===`large`)return[];let n=Y(e.context)?e.context:{},r=Array.isArray(n.diagnostics)?n.diagnostics.slice(0,50):[],i=[];for(let e of r){if(!Y(e)||typeof e.code!=`string`||!Y(e.range))continue;let n=kt(e.range),r=t.diagnostics.find(t=>t.code===e.code&&t.range.start.line===n.start.line&&t.range.start.character===n.start.character);r&&i.push(r)}return xe(t.doc,i)}completion(e){let t=this.stateOf(e);if(t.blocked===`large`)return null;let n=t.doc,r=Ye(n,n.lines.offsetAt(Z(e.position)));return r?r.kind===`ids`?{isIncomplete:!1,items:Qe(n,r,_t(this.source(),r.ids).map(e=>({value:e.value,detail:e.file.slice(e.file.lastIndexOf(`/`)+1)})))}:this.expressionCompletion(t,r):null}async expressionCompletion(e,t){let n=[];if(t.elementId!==null&&e.doc.path!==null&&e.doc.fileKind===`process`)try{n=await this.host.variables(e.doc.path,e.doc.text,t.elementId)}catch{n=[]}return{isIncomplete:!1,items:Ze(e.doc,t,n)}}folding(e){let t=this.stateOf(e);return t.blocked===`large`?[]:Ot(G(t.doc))}executeCommand(t){if(!Y(t)||typeof t.command!=`string`)throw new J(q.invalidParams,`command is required`);let n=Array.isArray(t.arguments)?t.arguments:[];if(t.command===`penstock.openRuleDocs`&&ge(n[0]))return this.canShowDocument?(this.outgoing+=1,this.write({jsonrpc:`2.0`,id:`penstock-${this.outgoing}`,method:`window/showDocument`,params:{uri:n[0],external:!0}})):this.notify(`window/showMessage`,{type:3,message:`${e(`app.lsp.hoverDocs`)}: ${n[0]}`}),null;if(t.command===`penstock.check`&&typeof n[0]==`string`){let e=this.states.get(n[0]);return e&&e.blocked===null&&this.schedule(e,0),null}throw new J(q.invalidParams,`unknown command`)}};function $(e){if(e.length===0||e.length>4096)return null;let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`file:`||t.hostname!==``&&t.hostname!==`localhost`)return null;let n;try{n=decodeURIComponent(t.pathname)}catch{return null}if(n.includes(`\0`)||n.includes(`\\`)||n.startsWith(`//`))return null;let r=process.platform===`win32`?n.replace(/^\/([A-Za-z]:)/,`$1`):n;return u.isAbsolute(r)?u.resolve(r):null}var jt=class{roots=[];listed=null;listedAt=0;paths=/* @__PURE__ */ new Set;set(e){let t=[];for(let n of e){let e=$(n);e!==null&&t.push(s(e))}this.roots=t,this.invalidate()}invalidate(){this.listed=null}resolve(e){let t=$(e);return t===null||this.roots.length===0?null:o(t,this.roots)?t:null}usable(e){try{let t=oe(e);return t.isFile()&&!t.isSymbolicLink()&&t.size<=4194304&&o(e,this.roots)}catch{return!1}}list(){if(this.listed&&Date.now()-this.listedAt<5e3)return this.listed;let e=[];for(let t of this.roots){let n;try{n=ee(t,[`process`,`decision`,`form`,`case`],{limit:5e4})}catch{continue}for(let t of n){if(e.length>=3e3)break;let n=v(t);n!==null&&this.usable(t)&&e.push({uri:ce(t).href,path:t,kind:n})}}return this.listed=e,this.listedAt=Date.now(),this.paths=new Set(e.map(e=>e.path)),e}project(){return{files:()=>this.list(),text:e=>{let t=$(e);if(t===null||(this.list(),!this.paths.has(t)||!this.usable(t)))return null;try{return se(t,`utf8`)}catch{return null}}}}};function Mt(e){let n=new jt,r=/* @__PURE__ */ new Map,i=async(e,t)=>{let n=(await new ae().build([{path:e,text:t}],null,{focus:e})).diagrams.find(t=>t.path===e);return n?{variables:[...n.variables],order:n.order}:null};return{async check(e,t,n){return n.aborted?[]:(await l(/* @__PURE__ */ new Map([[e,t]]),()=>c([e],{format:`json`,baseline:!1,updateBaseline:!1,sections:[`drawing`,`rules`,`flow`],builtInRulesOnly:!0,offline:!0}))).findings},resolve:e=>n.resolve(e),setWorkspace:e=>n.set(e),project:()=>n.project(),async variables(e,n,a){let o=r.get(e);o&&o.text===n||(r.size>=16&&r.delete(r.keys().next().value),o={text:n,built:i(e,n).catch(()=>null)},r.set(e,o));let s=await o.built;return s?t({model:{variables:s.variables},order:s.order,types:[]},a,{wholeProcess:!0}).variables.map(e=>({name:e.name,type:e.type})):[]},invalidate:()=>n.invalidate(),after(e,t){let n=setTimeout(t,e);return()=>clearTimeout(n)},log:e.log}}function Nt(e,t){return new Promise(n=>{let r=!1,i=e=>{r||(r=!0,n(e))},a=new At(Mt({log:t=>{e.error.write(`penstock lsp: ${t.replace(/[\r\n]+/g,` `).slice(0,300)}\n`)}}),t=>{r||e.output.write(me(t))},i,t),o=new pe;e.input.on(`data`,e=>{let t=typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let e of o.push(t))e.kind===`message`?a.receive(e.text):a.frameProblem(e.reason)});let s=()=>i(+!a.stopped);e.input.on(`end`,s),e.input.on(`close`,s),e.input.on(`error`,()=>i(1))})}export{Nt as serveStdio};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{M as t}from"./chunk-load-rfn3E0t5.js";import{a as n,i as r,t as i}from"./chunk-context-rCJvBM9p.js";import{a,s as o}from"./chunk-trust-DubjEjlN.js";import{constants as s}from"node:os";import{spawnSync as c}from"node:child_process";function l(e,t){if(o(e))return{...e,...t};let n={};for(let[r,i]of Object.entries(e))i!==void 0&&(!r.startsWith(`PENSTOCK_`)||r in t)&&(n[r]=i);return{...n,...t}}async function u(o,u,d,f,p,m=process.env,h=!1,g=6e5){let{root:_,values:v,merged:y}=i(o),b=r(v.hooks),x=`${u}${d}`,S=n(b[x]);if(!S)return{ran:!1,ok:!0,lines:[]};let C=await a(_,x,S,p,m,h);if(!C.allowed)return{ran:!0,ok:!1,lines:C.lines};let w=c(S,{cwd:_,shell:!0,encoding:`utf8`,timeout:g,maxBuffer:67108864,killSignal:s.signals.SIGKILL,env:l(m,{PENSTOCK_FILES:f.join(`
|
|
2
|
-
`),PENSTOCK_ROOT:_,PENSTOCK_STAGE:x,PENSTOCK_PROFILE:t(y,m)??``})}),T=`${w.stdout??``}${w.stderr??``}`.trimEnd(),E=[...C.lines,`hook ${x}: ${S}`];return T&&E.push(...T.split(`
|
|
3
|
-
`).map(e=>` ${e}`)),w.error?E.push(` ${w.error.message}`):w.status!==0&&E.push(` ${e(`app.cli.hook.exited`,{code:w.status??w.signal})}`),{ran:!0,ok:!w.error&&w.status===0,lines:E}}export{u as runHook};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,r as t}from"./chunk-failure-D5brrYW2.js";import{r as n}from"./chunk-context-rCJvBM9p.js";const r=/^[A-Z][A-Z0-9_]+$/;function i(e){if(!(e instanceof Error))return null;let{code:n,path:i}=e;return typeof n!=`string`||!r.test(n)||!n.startsWith(`E`)||n.startsWith(`ERR_`)||typeof i!=`string`?null:n===`ENOENT`?t(i):`${i}: ${e.message.replace(/^[A-Z0-9_]+:\s*/,``).replace(/,\s*\w+\s+'.*'$/s,``)}`}function a(t,r){let i=e(t);if(i===null)return`${n(r)}: ${t instanceof Error?t.message:String(t)}`;let{path:a}=t;return`${n(typeof a==`string`?a:r)}: ${i}`}export{a as n,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{t as systemFailure}from"./chunk-systemError-BYrMzp2o.js";
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{n as t}from"./chunk-status-CmYxwOCn.js";import{a as n}from"./chunk-moddle-D3Ym38EZ.js";import{l as r}from"./chunk-model-f8AzYUK7.js";import{a as i,d as a,f as o,m as s,n as c,o as l,s as u,t as d}from"./chunk-testCases-9jwT_Y7z.js";import{g as f,h as p,m}from"./chunk-tests-CEEXnWOp.js";import{n as h}from"./chunk-analyzeFlow-2cYPgjh-.js";import{r as g,t as _}from"./chunk-context-rCJvBM9p.js";import v from"node:path";import{mkdirSync as y,readFileSync as b,writeFileSync as x}from"node:fs";function S(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function C(e,t){let n={...e};for(let[e,r]of Object.entries(t)){if(e===`__proto__`)continue;let t=n[e];n[e]=S(t)&&S(r)?C(t,r):r}return n}function w(e){return!!(e.job||e.external)}function T(e){return!!(e.delegateClass||e.delegateExpression||e.expression)}function E(e,t){let n=e;if((n.jobSelector??n.userTaskSelector)?.elementId===t.id)return!0;let r=t.job??t.external;return n.type===`MOCK_JOB_WORKER_COMPLETE_JOB`&&!!r&&n.jobType===r}function D(t,n,r){let i={...t[`x-penstock`]?.behaviours??{}},a=t.instructions.filter(e=>E(e,n)),o=t.instructions.filter(e=>!a.includes(e)),s=n.type===`bpmn:UserTask`&&!w(n);if(r.kind===`hold`)T(n)&&(i[n.id]={then:`hold`});else if(r.kind===`error`){if(s)return{problem:e(`app.testCases.taskTest.cannotThrow`,{element:n.id})};w(n)?o=[...o,{type:`THROW_BPMN_ERROR_FROM_JOB`,jobSelector:{elementId:n.id},errorCode:r.errorCode,...r.variables?{variables:r.variables}:{}}]:i[n.id]={then:`error`,errorCode:r.errorCode,...r.variables?{variables:r.variables}:{}}}else{let e=r.variables&&Object.keys(r.variables).length?{variables:r.variables}:{};s?o=[...o,{type:`COMPLETE_USER_TASK`,userTaskSelector:{elementId:n.id},...e}]:w(n)?o=[...o,{type:`COMPLETE_JOB`,jobSelector:{elementId:n.id},...e}]:T(n)?i[n.id]={then:`complete`,...e}:o=[...o,...a]}let c={name:t.name,instructions:o};return t.description&&(c.description=t.description),Object.keys(i).length&&(c[`x-penstock`]={behaviours:i}),c}function O(e,t,n){let r=e.filter(e=>!n||e.process===n).filter(e=>e.startId===t||e.stepIds.includes(t)||e.endIds.includes(t)),i=e=>e.startId===t?0:e.stepIds.indexOf(t)>=0?e.stepIds.indexOf(t):e.stepIds.length;return[...r].sort((e,t)=>i(e)-i(t)||e.decisions.length-t.decisions.length)[0]??null}function k(e,t){let n=e.stepIds.indexOf(t),r=e.endIds.includes(t);return{...e,stepIds:e.startId===t?[]:n>=0?e.stepIds.slice(0,n+1):e.stepIds,endIds:r?[t]:[]}}function A(t,n){let i=r(t),a=new Set((t?.rootElements??[]).filter(e=>e.$type===`bpmn:Process`&&e.isExecutable!==!1).map(e=>String(e.id)));if(a.size===0)return{problem:e(`app.testCases.taskTest.noProcess`)};let o=h(t,256),s=O(o.scenarios.filter(e=>a.has(e.process)),n.element,n.process);if(!s)return{problem:i.has(n.element)||o.scenarios.some(e=>e.startId===n.element)?e(`app.testCases.taskTest.noWay`,{element:n.element}):e(`app.testCases.taskTest.notFound`,{element:n.element})};let c=k(s,n.element),l=p(s,i).values,u=C(m(l),n.variables??{}),d=f(c,i,u);if(`problem`in d)return{problem:d.problem};let g=d.testCase,_={...g,name:e(`app.testCases.taskTest.name`,{element:n.element}),instructions:g.instructions.filter(e=>!String(e.type).startsWith(`ASSERT_`))};delete _.description;let v=i.get(n.element),y=v?D(_,v,n.mode??{kind:`complete`}):_;return`instructions`in y?{testCase:y,process:s.process,path:[s.startId,...c.stepIds]}:{problem:y.problem}}function j(e){let t=/* @__PURE__ */ new Map;for(let n of e.steps)for(let e of[...n.in,...n.out,...n.changed])t.set(e.name,e.value);return[...t].map(([e,t])=>({name:e,value:t}))}function M(e,t,n=null){let r=t.trace,i=r?.steps.filter(t=>t.elementId===e)??[],a=i[i.length-1]??null;return{element:e,reached:!!a,elementState:a?.state??null,instanceState:r?.state??null,received:a?.in??[],sent:a?.out??[],variables:r?j(r):[],incidents:r?.incidents??[],failed:t.outcome===`failed`,message:t.message??null,trace:n}}function N(e){let t=JSON.stringify(e)??String(e);return t.length>200?`${t.slice(0,200)}...`:t}async function P(t,r,f=c){let p;try{p=b(t,`utf8`)}catch{return{ok:!1,problem:e(`app.output.taskTest.unreadable`,{file:g(t)})}}let m=await n(p);if(!m)return{ok:!1,problem:e(`app.output.unreadableBpmn`)};let h=A(m,{element:r.element,variables:r.variables,mode:r.mode,process:r.process});if(`problem`in h)return{ok:!1,problem:h.problem};let S=f(t);if(!S)return{ok:!1,problem:e(`app.testCases.suites.noEngineToRunOn`,{diagram:v.basename(t)})};let C=r.ci??!!process.env.CI,w=`confirm`in r?r.confirm:d(r),T=await l({ci:C,confirm:w})(S);if(T)return{ok:!1,problem:T};let E=s(/* @__PURE__ */ new Date),D=S.url??`default`,O=_(t).root,{result:k,kept:j,durationMs:N}=await o(h.testCase,{engine:S.engine,resources:await u(t),runId:E,builds:(r.builds??i)(D),key:D,session:a(),signal:r.signal,stepTimeoutMs:r.stepTimeoutMs,pollMs:r.pollMs,settleReads:r.settleReads,note:e=>r.write?.(e),keep:async(e,t)=>{let n=v.join(O,`.penstock`,`runs`),r=v.join(n,E,`${t}.json`);return y(v.dirname(r),{recursive:!0}),x(v.join(n,`.gitignore`),`*
|
|
2
|
-
`),x(r,`${JSON.stringify(e,null,2)}\n`),r}}),P=M(r.element,k,j?v.relative(O,j):null);return{ok:P.reached&&!P.failed,report:P,testCase:h.testCase.name,durationMs:N}}function F(e,t){return t.length===0?[]:[e,...t.map(e=>` ${e.name} = ${N(e.value)}`)]}function I(n){if(!(`report`in n))return[n.problem];let{report:r}=n,i=t=>t?e(`app.output.taskTest.state.${t}`):``,a=[];return a.push(r.reached?`${r.failed?t(`fail`):t(`pass`)} ${e(`app.output.taskTest.element`,{element:r.element,state:i(r.elementState)})}`:`${t(`fail`)} ${e(`app.output.taskTest.notReached`,{element:r.element})}`),r.message&&a.push(` ${r.message}`),r.instanceState&&a.push(e(`app.output.taskTest.instance`,{state:i(r.instanceState)})),a.push(...F(e(`app.output.taskTest.received`),r.received)),a.push(...F(e(`app.output.taskTest.sent`),r.sent)),a.push(...F(e(`app.output.taskTest.variables`),r.variables)),a.push(...r.incidents.length===0?[e(`app.output.taskTest.noIncidents`)]:[e(`app.output.taskTest.incidents`),...r.incidents.map(e=>` ${e.elementId}: ${e.message}`)]),r.trace&&a.push(e(`app.output.taskTest.trace`,{file:r.trace})),a}async function L(t,n,r){if(!t)return{ok:!1,lines:[e(`app.output.taskTest.needsDiagram`)]};if(!n.element)return{ok:!1,lines:[e(`app.output.taskTest.needsElement`)]};let i=await P(t,{...n,element:n.element},r);return{ok:i.ok,lines:I(i)}}export{L as n,I as r,P as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{n as taskTestCommand}from"./chunk-taskTest-9gMsx0zu.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{t}from"./chunk-table-BOiaGWwY.js";import{n,t as r}from"./chunk-codeScan-C09My9xv.js";import{n as i,t as a}from"./chunk-flows-DSPvoa7f.js";import{t as o}from"./chunk-codeFactSet-LxSnQy8K.js";import{r as s}from"./chunk-context-rCJvBM9p.js";import{t as c}from"./chunk-plural-Dn-7ulHf.js";import{t as l}from"./chunk-templateDiagnostics-BwH7RNkz.js";import{r as u}from"./chunk-project-DA3KnAZH.js";import{t as d}from"./chunk-apiTemplatesPath-vIrQ4ODR.js";import f from"node:path";import{existsSync as p,mkdirSync as m,readFileSync as h,writeFileSync as g}from"node:fs";const _=`.camunda/element-templates`,v=/\.(java|kt|kts|groovy|scala)$/,y=e=>v.test(e),b=e=>e.endsWith(`.json`),x=e=>r.has(e)||e.startsWith(`.`);function S(e){return u(e,y,x)}function C(e){let t=t=>f.join(e,t);return{root:async()=>e,list:async()=>u(t(_),b,()=>!1).map(t=>f.relative(e,t)),read:async e=>p(t(e))?h(t(e),`utf8`):null,write:async(e,n)=>{m(f.dirname(t(e)),{recursive:!0}),g(t(e),n)}}}function w(e){return S(e).filter(e=>n.test(e)).map(t=>({path:f.relative(e,t),text:h(t,`utf8`)}))}async function T(e){return(await o(e,[])).workers}async function E(n,r=`text`){let a=await i(C(n),await T(w(n)));if(r===`json`){let e=a.map(e=>({id:e.id,value:e.value,action:e.action,file:e.contract.file,line:e.contract.line,inputs:e.contract.inputs.length}));return{ok:a.length>0,lines:[JSON.stringify({templates:e},null,2)]}}if(a.length===0)return{ok:!1,lines:[e(`app.cli.templates.noWorker`)]};let o=a.filter(e=>e.action===`written`).length,s=a.filter(e=>e.action===`updated`).length,l=o===0&&s===0,u=t(a,{columns:[{name:`id`,header:e(`app.cli.templates.template`),value:e=>e.id},{name:`worker`,header:e(`app.cli.header.worker`),value:t=>t.contract.handler?e(`app.cli.templates.workerInHandler`,{value:t.value,file:t.contract.file,line:t.contract.line,handler:t.contract.handler}):e(`app.cli.templates.workerIn`,{value:t.value,file:t.contract.file,line:t.contract.line})},{name:`inputs`,header:e(`app.cli.templates.inputs`),align:`right`,value:e=>e.contract.inputs.length},{name:`action`,header:``,value:t=>e(`app.cli.templates.action.${t.action}`)}]});return{ok:!0,lines:[e(`app.cli.templates.writtenFor`),...u,l?e(`app.cli.templates.nothingToWrite`):e(`app.cli.templates.summary`,{written:c(o,`app.cli.templates.count.template`),updated:s})]}}function D(t,n){let r=t.templates.filter(e=>e[n].loads).length;return t.templates.length>1&&r>0&&r<t.templates.length?e(`app.cli.templates.loadsSome`,{loaded:r,total:t.templates.length}):t[n].loads?e(`app.cli.templates.loads`):e(`app.cli.templates.notLoaded`)}function O(e,t){return t?`${e.path}:${t}`:e.path}function k(t){let n=[],r=0;for(let i of t.files){for(let t of i.issues)t.severity===`error`&&(r+=1),n.push(` ${O(i,t.line)}: ${t.severity===`error`?t.message:e(`app.cli.templates.warning`,{reason:t.message})}`);for(let t of i.templates)for(let a of t.issues)a.severity===`error`&&(r+=1),n.push(` ${O(i,a.line)}: ${a.severity===`error`?a.message:e(`app.cli.templates.warning`,{reason:a.message})}`)}return{lines:n,errors:r}}function A(n){let r=t(n.files,{columns:[{name:`path`,header:e(`app.cli.header.file`),value:e=>e.path},{name:`desktop`,header:e(`app.cli.templates.headerDesktop`),value:e=>D(e,`desktop`)},{name:`web`,header:e(`app.cli.templates.headerWeb`),value:e=>D(e,`web`)}]});return[e(`app.cli.templates.diagnosed`,{total:n.files.length,loading:n.loading,notLoading:n.notLoading}),...r]}async function j(n,r=`text`){let i=C(n),o=l(n),{lines:s,errors:u}=k(o),d=(await i.list()).length===0?[]:await a(i,await T(w(n))),f=u>0||d.length>0;if(r===`json`)return{ok:!f,refused:!1,lines:[JSON.stringify({files:o.files,loading:o.loading,notLoading:o.notLoading,drifted:d},null,2)]};if(o.files.length===0)return{ok:!0,lines:[e(`app.cli.templates.noneToCheck`,{folder:_})]};let p=[...A(o),...s.length>0?[``,...s]:[]];if(d.length===0)return{ok:!f,refused:!1,lines:[...p,...u===0?[``,e(`app.cli.templates.allMatch`)]:[]]};let m=t(d,{columns:[{name:`value`,header:e(`app.cli.templates.template`)},{name:`path`,header:e(`app.cli.header.file`)},{name:`worker`,header:e(`app.cli.header.worker`)}]});return{ok:!1,refused:!1,lines:[...p,``,e(`app.cli.templates.drifted`,{templates:c(d.length,`app.cli.templates.count.elementTemplate`)}),...m,...d.map(t=>` ${t.value}: ${t.drift.missing.map(t=>e(`app.cli.templates.asksFor`,{name:t})).concat(t.drift.extra.map(t=>e(`app.cli.templates.hasExtra`,{name:t})),t.drift.changed.map(t=>e(`app.cli.templates.hasOtherType`,{name:t}))).join(`; `)}`),e(`app.cli.templates.fixHint`)]}}async function M(t,n=`generate`,r=`text`,i={write:!1}){if(n===`generate`&&d(t))return(await import(`./chunk-apiTemplates-cU7C8vap.js`)).apiTemplatesCommand(f.resolve(s(t)),{write:i.write,out:i.out,format:r,secretPrefix:i.secretPrefix});let a=f.resolve(s(t));return n===`check`?j(a,r):n===`generate`?E(a,r):{ok:!1,lines:[e(`app.cli.templates.usage`)]}}export{M as templatesCommand};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{f as t}from"./chunk-license-BG88gpDZ.js";import{r as n}from"./chunk-translator-DNm9zRpP.js";import{n as r}from"./chunk-status-CmYxwOCn.js";import{t as i}from"./chunk-table-BOiaGWwY.js";import{a,r as o,s}from"./chunk-moddle-D3Ym38EZ.js";import{c,d as l,h as u,m as d,u as f,y as p}from"./chunk-engine-CxgdJ2wO.js";import{l as m}from"./chunk-model-f8AzYUK7.js";import{a as h,c as g,i as _,l as v,o as ee,r as y,s as b,t as x,u as te}from"./chunk-file-BswMa3FN.js";import{_ as ne,f as re,h as S,l as C,m as ie,r as w}from"./chunk-deploy-l4MdFfn8.js";import{_ as T,a as ae,d as oe,i as E,l as se,o as ce,p as le,t as ue}from"./chunk-tests-CEEXnWOp.js";import{n as D,r as O,t as k}from"./chunk-reporters-BkTDJdog.js";import{a as A,r as j,t as M}from"./chunk-context-rCJvBM9p.js";import{t as de}from"./chunk-plural-Dn-7ulHf.js";import{t as N}from"./chunk-diagrams-BukAOL0g.js";import P from"node:path";import{existsSync as F,mkdirSync as I,readFileSync as L,writeFileSync as R}from"node:fs";import{createInterface as fe}from"node:readline/promises";function pe(e){return e==null?{value:null,type:`Null`}:typeof e==`string`?{value:e,type:`String`}:typeof e==`boolean`?{value:e,type:`Boolean`}:typeof e==`number`?{value:e,type:Number.isInteger(e)?Math.abs(e)<=2147483647?`Integer`:`Long`:`Double`}:{value:JSON.stringify(e),type:`Object`,valueInfo:{objectTypeName:Array.isArray(e)?`java.util.ArrayList`:`java.util.LinkedHashMap`,serializationDataFormat:`application/json`}}}function z(e){let t={};for(let[n,r]of Object.entries(e))t[n]=pe(r);return t}var B=class extends Error{status;constructor(e,t){super(e),this.status=t}};const V=`penstock`;function me(){return n(`app.testCases.engines.deployed`)}function he(e,t){return n(`app.testCases.engines.refusedTheBuild`,{status:e,reason:t})}const ge=6e4;function _e(e){if(e.status===0)return e.body;try{let t=JSON.parse(e.body),n=[t.message,t.detail,t.title].find(e=>typeof e==`string`);if(typeof n==`string`)return n}catch{return e.body.slice(0,300)}return e.body.slice(0,300)}async function H(e,t){let r=await e(t);if(r.status<200||r.status>=300){let e=_e(r);throw new B(n(`app.testCases.engines.answered`,{method:t.method,path:t.path,status:r.status,reason:e?n(`app.testCases.engines.reason`,{reason:e}):``}),r.status)}if(!r.body)return null;try{return JSON.parse(r.body)}catch{if(/^\s*[[{]/.test(r.body))throw new B(n(`app.testCases.engines.answered`,{method:t.method,path:t.path,status:r.status,reason:n(`app.testCases.engines.reason`,{reason:r.body.slice(0,80)})}),r.status);return r.body}}function U(e,t){return{method:`POST`,path:e,body:JSON.stringify(t)}}function W(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}}function G(e){return e==null?``:String(e)}function ve(e,t){let n=async t=>{let n=await H(e,U(`/variables/search`,{filter:{processInstanceKey:t},page:{limit:500}})),r={},i=/* @__PURE__ */ new Map;for(let a of n?.items??[]){let n=a.isTruncated?(await H(e,{method:`GET`,path:`/variables/${encodeURIComponent(G(a.variableKey))}`}))?.value:a.value,o=G(a.scopeKey),s=o===t?r:i.get(o)??{};s[String(a.name)]=W(n),o!==t&&i.set(o,s)}return{variables:r,local:i}};return{kind:`CAMUNDA_8`,ask:e,async deploy(n,r){let i=await e(ne({engine:`CAMUNDA_8`,name:r,source:`penstock`,changedOnly:!1,tenantId:t},n));return i.status<200||i.status>=300?{deployment:``,ok:!1,message:he(i.status,_e(i))}:{deployment:(W(i.body)?.deployments??[]).map(e=>G(e.processDefinition?.processDefinitionKey??e.decisionRequirements?.decisionRequirementsKey??e.form?.formKey??e.resource?.resourceKey)).filter(Boolean).join(`,`),ok:!0,message:me()}},async start(n,r,i,a){let o={processDefinitionId:n,variables:r};return t&&(o.tenantId=t),a?.length&&(o.startInstructions=a.map(e=>({elementId:e}))),G((await H(e,U(`/process-instances`,o)))?.processInstanceKey)},async jobs(n){let r=[];for(let i of n){let n=await H(e,U(`/jobs/activation`,{type:i,worker:V,timeout:ge,maxJobsToActivate:10,requestTimeout:-1,...t?{tenantIds:[t]}:{}}));for(let e of n?.jobs??[])r.push({key:G(e.jobKey),type:String(e.type),elementId:String(e.elementId),elementInstance:G(e.elementInstanceKey),instance:G(e.processInstanceKey),root:G(e.rootProcessInstanceKey??e.processInstanceKey),retries:typeof e.retries==`number`?e.retries:3,variables:e.variables??{}})}return r},async complete(t,n){await H(e,U(`/jobs/${encodeURIComponent(t.key)}/completion`,{variables:n}))},async error(t,n,r,i){await H(e,U(`/jobs/${encodeURIComponent(t.key)}/error`,{errorCode:n,errorMessage:r,variables:i}))},async fail(t,n,r){await H(e,U(`/jobs/${encodeURIComponent(t.key)}/failure`,{retries:r,errorMessage:n,retryBackOff:0}))},async extend(t){await H(e,{method:`PATCH`,path:`/jobs/${encodeURIComponent(t.key)}`,body:JSON.stringify({changeset:{timeout:ge}})})},async userTasks(t){return((await H(e,U(`/user-tasks/search`,{filter:{processInstanceKey:t,state:`CREATED`},page:{limit:500}})))?.items??[]).map(e=>({key:G(e.userTaskKey),elementId:String(e.elementId),name:typeof e.name==`string`?e.name:null}))},async completeTask(t,n){await H(e,U(`/user-tasks/${encodeURIComponent(t.key)}/completion`,{variables:n}))},async correlate(n,r,i,a){await H(e,U(`/messages/correlation`,{name:n,correlationKey:r??``,variables:a,...t?{tenantId:t}:{}}))},async signal(n,r){await H(e,U(`/signals/broadcast`,{signalName:n,variables:r,...t?{tenantId:t}:{}}))},async setVariables(t,n,r){await H(e,{method:`PUT`,path:`/element-instances/${encodeURIComponent(r??t)}/variables`,body:JSON.stringify({variables:n,local:r!==void 0})})},async snapshot(t){let[r,i,a,o]=await Promise.all([H(e,{method:`GET`,path:`/process-instances/${encodeURIComponent(t)}`}),H(e,U(`/element-instances/search`,{filter:{processInstanceKey:t},sort:[{field:`startDate`,order:`asc`}],page:{limit:500}})),H(e,U(`/incidents/search`,{filter:{processInstanceKey:t,state:`ACTIVE`},page:{limit:500}})),n(t)]),s=String(r?.state??`ACTIVE`);return{state:s===`COMPLETED`?`COMPLETED`:s===`TERMINATED`||s===`CANCELED`?`TERMINATED`:`ACTIVE`,elements:(i?.items??[]).filter(Se).map(e=>({key:G(e.elementInstanceKey),elementId:String(e.elementId),type:String(e.type??``),state:e.state===`COMPLETED`?`COMPLETED`:e.state===`TERMINATED`?`TERMINATED`:`ACTIVE`,startedAt:String(e.startDate??``),endedAt:e.endDate?String(e.endDate):null,incident:e.hasIncident===!0})),variables:o.variables,local:o.local,incidents:(a?.items??[]).map(e=>({elementId:String(e.elementId??``),message:String(e.errorMessage??e.errorType??``),...e.errorType?{type:String(e.errorType)}:{},...e.incidentKey===void 0?{}:{id:G(e.incidentKey)}}))}},async cancel(t){await H(e,U(`/process-instances/${encodeURIComponent(t)}/cancellation`,{}))},async remove(t){let n=null;for(let r of t.split(`,`).filter(Boolean))try{await H(e,U(`/resources/${encodeURIComponent(r)}/deletion`,{}))}catch(e){e instanceof B&&e.status===404||(n??=e)}if(n)throw n}}}const K=z;function ye(e){let t={},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of Object.entries(n)){let n=typeof r==`object`&&r?r:{value:r,type:``};Object.defineProperty(t,e,{value:n.type===`Object`||n.type===`Json`?W(n.value):n.value,enumerable:!0,writable:!0,configurable:!0})}return t}function q(e){return e===`COMPLETED`?`COMPLETED`:e===`ACTIVE`||e===`SUSPENDED`?`ACTIVE`:`TERMINATED`}function be(e,t,r){let i=e=>encodeURIComponent(e);return{kind:e,ask:t,async deploy(n,i){let a=await t(ne({engine:e,name:i,source:`penstock`,changedOnly:!1,tenantId:r},n));return a.status<200||a.status>=300?{deployment:``,ok:!1,message:he(a.status,_e(a))}:{deployment:G(W(a.body)?.id),ok:!0,message:me()}},async start(e,n,a,o){let s={businessKey:a,variables:K(n)};return o?.length&&(s.startInstructions=o.map(e=>({type:`startBeforeActivity`,activityId:e}))),G((await H(t,U(`/process-definition/key/${i(e)}${r?`/tenant-id/${i(r)}`:``}/start`,s)))?.id)},async jobs(e){if(e.length===0)return[];let n=await H(t,U(`/external-task/fetchAndLock`,{workerId:V,maxTasks:10,topics:e.map(e=>({topicName:e,lockDuration:ge,...r?{tenantIdIn:[r]}:{}}))}));return(Array.isArray(n)?n:[]).map(e=>({key:G(e.id),type:String(e.topicName),elementId:String(e.activityId),elementInstance:G(e.activityInstanceId),instance:G(e.processInstanceId),retries:typeof e.retries==`number`?e.retries:3,variables:ye(e.variables)}))},async complete(e,n){await H(t,U(`/external-task/${i(e.key)}/complete`,{workerId:V,variables:K(n)}))},async error(e,r,a,o){await H(t,U(`/external-task/${i(e.key)}/bpmnError`,{workerId:V,errorCode:r,errorMessage:a||n(`app.testCases.engines.errorThrownByTheTestCase`,{code:r}),variables:K(o)}))},async fail(e,n,r){await H(t,U(`/external-task/${i(e.key)}/failure`,{workerId:V,errorMessage:n,retries:r,retryTimeout:0}))},async extend(e){await H(t,U(`/external-task/${i(e.key)}/extendLock`,{workerId:V,newDuration:ge}))},async userTasks(e){let n=await H(t,{method:`GET`,path:`/task?processInstanceId=${i(e)}`});return(Array.isArray(n)?n:[]).map(e=>({key:G(e.id),elementId:String(e.taskDefinitionKey),name:typeof e.name==`string`?e.name:null}))},async completeTask(e,n){await H(t,U(`/task/${i(e.key)}/complete`,{variables:K(n)}))},async correlate(e,n,r,i){try{await H(t,U(`/message`,{messageName:e,processInstanceId:r,processVariables:K(i)}))}catch(e){throw e instanceof B&&e.status===400&&e.message.includes(`MismatchingMessageCorrelationException`)?new B(e.message,404):e}},async signal(e,n){await H(t,U(`/signal`,{name:e,variables:K(n)}))},async setVariables(e,r,a){if(a===void 0){await H(t,U(`/process-instance/${i(e)}/variables`,{modifications:K(r)}));return}let o=xe(await H(t,{method:`GET`,path:`/process-instance/${i(e)}/activity-instances`}),a);if(!o)throw new B(n(`app.testCases.engines.activityNotRunning`,{element:a}),404);await H(t,U(`/execution/${i(o)}/localVariables`,{modifications:K(r)}))},async snapshot(e){let[n,r,a,o]=await Promise.all([H(t,{method:`GET`,path:`/history/process-instance/${i(e)}`}),H(t,{method:`GET`,path:`/history/activity-instance?processInstanceId=${i(e)}&sortBy=occurrence&sortOrder=asc`}),H(t,{method:`GET`,path:`/history/variable-instance?processInstanceId=${i(e)}&deserializeValues=false`}),H(t,{method:`GET`,path:`/incident?processInstanceId=${i(e)}`})]),s=new Set((Array.isArray(o)?o:[]).map(e=>String(e.activityId??``))),c={},l=/* @__PURE__ */ new Map;for(let t of Array.isArray(a)?a:[]){let n=G(t.activityInstanceId),r=ye({[String(t.name)]:{value:t.value,type:String(t.type)}})[String(t.name)];n===e||n===``?c[String(t.name)]=r:l.set(n,{...l.get(n)??{},[String(t.name)]:r})}return{state:q(n?.state),elements:(Array.isArray(r)?r:[]).map(e=>({key:G(e.id),elementId:String(e.activityId),type:String(e.activityType??``),state:e.canceled?`TERMINATED`:e.endTime?`COMPLETED`:`ACTIVE`,startedAt:String(e.startTime??``),endedAt:e.endTime?String(e.endTime):null,incident:s.has(String(e.activityId))})),variables:c,local:l,incidents:(Array.isArray(o)?o:[]).map(e=>({elementId:String(e.activityId??``),message:String(e.incidentMessage??e.incidentType??``),...e.incidentType?{type:String(e.incidentType)}:{},...e.id===void 0?{}:{id:G(e.id)}}))}},async cancel(e){await H(t,{method:`DELETE`,path:`/process-instance/${i(e)}?skipCustomListeners=true`})},async remove(e){e&&await H(t,{method:`DELETE`,path:`/deployment/${i(e)}?cascade=true`})}}}function xe(e,t){if(!e||typeof e!=`object`)return null;if(e.id===t)return Array.isArray(e.executionIds)&&e.executionIds.length?String(e.executionIds[0]):null;for(let n of Array.isArray(e.childActivityInstances)?e.childActivityInstances:[]){let e=xe(n,t);if(e)return e}return null}function Se(e){return e.type!==`PROCESS`}function Ce(e,t,n=null){return e===`CAMUNDA_8`?ve(t,n):be(e,t,n)}const we=/\.(bpmn20\.xml|bpmn\.xml|bpmn)$/i,Te=[`camunda:class`,`camunda:delegateExpression`,`camunda:expression`],Ee=`Penstock test build`,De=/(<(?:[\w-]+:)?decision\b[^>]*\sid=")([^"]+)(")/g,Oe=/(<(?:[\w-]+:)?definitions\b[^>]*?\sid=")([^"]+)(")/;function ke(e){let t={processes:/* @__PURE__ */ new Set,decisions:/* @__PURE__ */ new Set,forms:/* @__PURE__ */ new Set};for(let n of e)we.test(n.name)?T(`process`,n.content).forEach(e=>t.processes.add(e)):/\.dmn$/i.test(n.name)?T(`decision`,n.content).forEach(e=>t.decisions.add(e)):/\.form$/i.test(n.name)&&T(`form`,n.content).forEach(e=>t.forms.add(e));return t}function Ae(e,t,n){let r=(e,t)=>t.has(e)?`${n}${e}`:e;if(/\.dmn$/i.test(t.name)){let i=t.content.replace(De,(t,n,i,a)=>`${n}${r(i,e.decisions)}${a}`).replace(/(href="#)([^"]+)(")/g,(t,n,i,a)=>`${n}${r(i,e.decisions)}${a}`).replace(/(dmnElementRef=")([^"]+)(")/g,(t,n,i,a)=>`${n}${r(i,e.decisions)}${a}`).replace(Oe,(e,t,r,i)=>`${t}${n}${r}${i}`);return{...t,content:i}}if(/\.form$/i.test(t.name))try{let n=JSON.parse(t.content);return{...t,content:JSON.stringify({...n,id:r(String(n.id),e.forms)})}}catch{return t}return t}function je(e,t){if(/\.form$/i.test(e.name))try{let n=JSON.parse(e.content);return{...e,content:JSON.stringify({...n,exporter:{name:Ee,version:t}})}}catch{return{...e,content:`${e.content}\n`}}return{...e,content:`${e.content.trimEnd()}\n<!-- ${Ee} ${t} -->\n`}}function Me(e,t){return e?.extensionElements?.values?.find(e=>e.$type===t)}function Ne(e,t){try{return e.get?.(t)}catch{return}}function Pe(e,t,n){let r=(e,t,r)=>{let i=e?.[t];typeof i==`string`&&r.has(i)&&(e[t]=`${n}${i}`)};r(Me(e,`zeebe:CalledElement`),`processId`,t.processes),r(Me(e,`zeebe:CalledDecision`),`decisionId`,t.decisions),r(Me(e,`zeebe:FormDefinition`),`formId`,t.forms),e.$type===`bpmn:CallActivity`&&r(e,`calledElement`,t.processes);let i=Ne(e,`camunda:decisionRef`);typeof i==`string`&&t.decisions.has(i)&&e.set(`camunda:decisionRef`,`${n}${i}`);let a=Ne(e,`camunda:formRef`);typeof a==`string`&&t.forms.has(a)&&e.set(`camunda:formRef`,`${n}${a}`)}function Fe(e){let t=/* @__PURE__ */ new Set;for(let n of e.instructions){let e=n.type;if((e===`MOCK_JOB_WORKER_COMPLETE_JOB`||e===`MOCK_JOB_WORKER_THROW_BPMN_ERROR`)&&typeof n.jobType==`string`&&t.add(n.jobType),e===`COMPLETE_JOB`||e===`THROW_BPMN_ERROR_FROM_JOB`){let e=n.jobSelector?.jobType;typeof e==`string`&&t.add(e)}}return t}function Ie(e){let t=new Set(Object.keys(e[`x-penstock`]?.behaviours??{}));for(let n of e.instructions){if(n.type!==`COMPLETE_JOB`&&n.type!==`THROW_BPMN_ERROR_FROM_JOB`)continue;let e=n.jobSelector?.elementId;typeof e==`string`&&t.add(e)}return t}function Le(e){let t=[],n=[],r=e=>(e??[]).forEach(e=>{n.push(e),e.flowElements&&r(e.flowElements)});for(let n of e?.rootElements??[])n.$type===`bpmn:Process`&&(t.push(n),r(n.flowElements));return{processes:t,elements:n}}function Re(e){return e?.extensionElements?.values?.find(e=>e.$type===`zeebe:TaskDefinition`)}function ze(e,t){let n=t.eventDefinitions?.find(e=>e.$type===`bpmn:TimerEventDefinition`);n&&(n.timeDate=void 0,n.timeCycle=void 0,n.timeDuration=e.create(`bpmn:FormalExpression`,{body:`PT1S`}))}function Be(e,t,n,r,i){let a=Re(e),o=typeof a?.type==`string`?a.type:null;if(!o)return;let s=r.has(o);if(!s&&!t&&!n)return;let c=`${i.prefix}${o}`;a.type=c,s&&i.jobTypes.set(o,c),(t||n)&&i.elements.set(e.id,c)}function Ve(e,t,n,r,i){let a=e.get?.(`camunda:type`)===`external`?e.get(`camunda:topic`):null;if(typeof a==`string`&&a!==``){let o=r.has(a);if(!o&&!t&&!n)return;let s=`${i.prefix}${a}`;e.set(`camunda:topic`,s),o&&i.jobTypes.set(a,s),(t||n)&&i.elements.set(e.id,s);return}if(!t&&!n||!Te.some(t=>typeof e.get?.(t)==`string`))return;Te.forEach(t=>e.set(t,void 0));let o=`${i.prefix}${e.id}`;e.set(`camunda:type`,`external`),e.set(`camunda:topic`,o),i.elements.set(e.id,o)}async function He(e,t,n,r){let i={resources:[],processes:/* @__PURE__ */ new Map,jobTypes:/* @__PURE__ */ new Map,elements:/* @__PURE__ */ new Map,prefix:`penstock.${r}.`},c=ke(t),l=Fe(n),f=Ie(n),m=n[`x-penstock`]?.behaviours??{};for(let n of t){if(!we.test(n.name)){i.resources.push(je(Ae(c,n,i.prefix),r));continue}let t=await a(n.content,p(e));if(!t)throw Error(`${n.name} is not a BPMN diagram that can be read`);let h=o(t),{processes:g,elements:_}=Le(t);g.forEach(e=>{i.processes.set(e.id,`${i.prefix}${e.id}`),e.id=`${i.prefix}${e.id}`});for(let t of _){Pe(t,c,i.prefix);let n=m[t.id];n?.then===`fire`&&ze(h,t),(u(e)?Be:Ve)(t,n?.then===`fire`?void 0:n,f.has(t.id),l,i)}d(e)&&g.forEach(e=>{e.get(`camunda:historyTimeToLive`)||e.set(`camunda:historyTimeToLive`,`P1D`)}),t.set(`exporter`,Ee),t.set(`exporterVersion`,r),i.resources.push({name:n.name,content:await s(t)})}return i}var Ue=class extends Error{};function J(e){return Array.isArray(e)?e.filter(e=>typeof e==`object`&&!!e):[]}function We(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e===null||t===null||Array.isArray(e)!==Array.isArray(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>We(e[n],t[n]))}function Ge(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}}function Ke(e){return e?Date.parse(e.replace(/([+-]\d\d)(\d\d)$/,`$1:$2`)):NaN}function qe(){return(/* @__PURE__ */ new Date()).toISOString()}async function Y(e,t,r){let i=await e(t);if(i.status>=200&&i.status<300)return Ge(i.body);let a=typeof i.body==`string`?i.body:``,o=a.slice(0,300);try{let e=JSON.parse(a);o=String([e.message,e.detail,e.title].find(e=>typeof e==`string`)??o)}catch{o=a.slice(0,300)}throw r.push({at:qe(),text:n(`app.testCases.trace.couldNotRead`,{path:t.path,status:i.status,reason:o?n(`app.testCases.trace.reason`,{reason:o}):``}),error:!0}),new Ue}async function X(e,t){try{return await e}catch(e){if(e instanceof Ue)return t;throw e}}function Je(e,t){let n=e.findIndex(e=>e.name===t.name);n>=0?e.splice(n,1,t):e.push(t)}async function Ye(e,t,n,r){let i=encodeURIComponent(t),a=n.limit===void 0?``:`&maxResults=${Math.max(1,Math.trunc(n.limit))}`,o=n.limit===void 0?``:`&maxResults=${Math.max(1,Math.trunc(n.limit))*4}`,[s,c,l,u]=await Promise.all([X(Y(e,{method:`GET`,path:`/history/process-instance/${i}`},r),null),X(Y(e,{method:`GET`,path:`/history/activity-instance?processInstanceId=${i}&sortBy=occurrence&sortOrder=asc${a}`},r),[]),X(Y(e,{method:`GET`,path:`/history/detail?processInstanceId=${i}&variableUpdates=true&deserializeValues=false&sortBy=occurrence&sortOrder=asc${o}`},r),[]),X(Y(e,{method:`GET`,path:`/incident?processInstanceId=${i}`},r),[])]),d=new Set(J(u).map(e=>String(e.activityId??``))),f=J(l).map(e=>({name:String(e.variableName),value:e.variableType===`Object`||e.variableType===`Json`?Ge(e.value):e.value,scope:String(e.activityInstanceId??``),time:Ke(e.time)})),p=J(c).map(e=>{let t=String(e.id),r=Ke(e.startTime),i=[],a=[],o=[],s=/* @__PURE__ */ new Map;for(let e of f){if(e.scope===t){let t={name:e.name,value:e.value,source:`history`};Je(a,t),Je(o,s.has(e.name)?{...t,before:s.get(e.name)}:t)}else e.time<=r&&Je(i,{name:e.name,value:e.value,source:`history`});s.set(e.name,e.value)}let c=!!e.endTime,l=e.canceled?`TERMINATED`:c?`COMPLETED`:d.has(String(e.activityId))?`FAILED`:`ACTIVE`;return{elementId:String(e.activityId),elementType:String(e.activityType??``),...t?{instance:t}:{},...e.parentActivityInstanceId?{parent:String(e.parentActivityInstanceId)}:{},state:l,startedAt:String(e.startTime??``),endedAt:c?String(e.endTime):null,mocked:n.mocked?.has(String(e.activityId))??!1,in:i,out:a,changed:o}}),m=String(s?.state??`ACTIVE`),h=J(u).map(e=>({elementId:String(e.activityId??``),message:String(e.incidentMessage??e.incidentType??``)}));return{state:m===`COMPLETED`?`COMPLETED`:m===`ACTIVE`||m===`SUSPENDED`?h.length>0?`FAILED`:`ACTIVE`:`TERMINATED`,steps:p,incidents:h}}function Xe(e,t){return Object.entries(e).map(([e,n])=>({name:e,value:n,source:t}))}function Ze(e,t,n){return Object.entries(t).filter(([t,n])=>!Object.hasOwn(e,t)||!We(e[t],n)).map(([t,r])=>Object.hasOwn(e,t)?{name:t,value:r,before:e[t],source:n}:{name:t,value:r,source:n})}async function Qe(e,t,n,r){let i=(e,t)=>({method:`POST`,path:e,body:JSON.stringify(t)}),[a,o,s,c]=await Promise.all([X(Y(e,{method:`GET`,path:`/process-instances/${encodeURIComponent(t)}`},r),null),X(Y(e,i(`/element-instances/search`,{filter:{processInstanceKey:t},sort:[{field:`startDate`,order:`asc`}],page:{limit:n.limit===void 0?500:Math.min(500,Math.max(1,Math.trunc(n.limit)))}}),r),null),X(Y(e,i(`/incidents/search`,{filter:{processInstanceKey:t,state:`ACTIVE`},page:{limit:500}}),r),null),X(Y(e,i(`/decision-instances/search`,{filter:{processInstanceKey:t},page:{limit:100}}),r),null)]),l=/* @__PURE__ */ new Map;for(let t of J(c?.items)){let n=await X(Y(e,{method:`GET`,path:`/decision-instances/${encodeURIComponent(String(t.decisionEvaluationInstanceKey))}`},r),null);if(!n)continue;let i=String(n.elementInstanceKey??t.elementInstanceKey??``),a=l.get(i)??{in:[],out:[]};J(n.evaluatedInputs).forEach(e=>a.in.push({name:String(e.inputName??e.inputId),value:Ge(e.inputValue),source:`decision`})),J(n.matchedRules).forEach(e=>J(e.evaluatedOutputs).forEach(e=>a.out.push({name:String(e.outputName??e.outputId),value:Ge(e.outputValue),source:`decision`}))),l.set(i,a)}let u=new Map((n.mockCalls??[]).map(e=>[e.elementInstance,e])),d=new Set(J(s?.items).map(e=>String(e.elementId??``))),f=n.snapshots??[],p=/* @__PURE__ */ new Map;for(let e=1;e<f.length;e+=1){let t=f[e].completed.find(e=>!u.has(e)&&!l.has(e));if(!t||p.has(t))continue;let n=f[e].completed.flatMap(e=>Object.entries(u.get(e)?.sent??{})),r=e=>n.some(([t,n])=>t===e.name&&We(n,e.value));p.set(t,Ze(f[e-1].variables,f[e].variables,`diff`).filter(e=>!r(e)))}let m=J(o?.items).filter(Se).map(e=>{let t=String(e.elementInstanceKey),r=e.state===`COMPLETED`?`COMPLETED`:e.state===`TERMINATED`?`TERMINATED`:e.hasIncident||d.has(String(e.elementId))?`FAILED`:`ACTIVE`,i={elementId:String(e.elementId),elementType:String(e.type??``),...t?{instance:t}:{},...e.flowScopeKey?{parent:String(e.flowScopeKey)}:{},state:r,startedAt:String(e.startDate??``),endedAt:e.endDate?String(e.endDate):null,mocked:n.mocked?.has(String(e.elementId))??!1,in:[],out:[],changed:[]},a=u.get(t),o=l.get(t);return a?(i.in=Xe(a.received,`mock`),i.out=Xe(a.sent,`mock`),i.changed=Ze(a.received,a.sent,`mock`)):o?(i.in=o.in,i.out=o.out):i.changed=p.get(t)??[],i}),h=String(a?.state??`ACTIVE`),g=J(s?.items).map(e=>({elementId:String(e.elementId??``),message:String(e.errorMessage??e.errorType??``)}));return{state:h===`COMPLETED`?`COMPLETED`:h===`ACTIVE`?g.length>0?`FAILED`:`ACTIVE`:`TERMINATED`,steps:m,incidents:g}}async function $e(e,t,n,r={}){let i=[...r.log??[]],a=e===`CAMUNDA_8`?await Qe(t,n,r,i):await Ye(t,n,r,i);return{version:1,runId:r.runId??``,engine:e,testCase:r.testCase??null,instance:n,...a,log:i}}function et(e){return String(e).padStart(2,`0`)}function tt(e){return`${`${e.getUTCFullYear()}${et(e.getUTCMonth()+1)}${et(e.getUTCDate())}`}-${`${et(e.getUTCHours())}${et(e.getUTCMinutes())}${et(e.getUTCSeconds())}`}-${Math.floor(Math.random()*65536).toString(16).padStart(4,`0`)}`}function nt(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619)>>>0;return t.toString(16).padStart(8,`0`)}function rt(e){let t=e.normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``),n=t.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);return n?n===`run`?`run-case`:/[^\x20-\x7e]/.test(t)||n.length>100?`${n.slice(0,100).replace(/-+$/,``)}-${nt(e)}`:n:`case-${nt(e)}`}function it(e,t){let n=rt(e),r=n;for(let e=2;t.has(r);e+=1)r=`${n}-${e}`;return t.add(r),r}const at=/[A-Za-z0-9_.:-]/,ot=/[.*+?^${}()|[\]]/,st=/[.*+?^${}()|[\]\\/-]/,ct=/[0-9]/,lt=/\s/;function ut(e){let t=[[]],n=0;for(;n<e.length;){let r=t[t.length-1];if(e.startsWith(`.*`,n))t.push([]),n+=2;else if(e.startsWith(`[A-Za-z0-9_.:-]+`,n))r.push({kind:`id`}),n+=16;else if(e.startsWith(`\\s+`,n))r.push({kind:`space`}),n+=3;else if(e.startsWith(`\\d+`,n))r.push({kind:`digits`}),n+=3;else if(e[n]===`\\`){let t=e[n+1];if(t===void 0||!st.test(t))return null;r.push({kind:`char`,value:t}),n+=2}else if(ot.test(e[n]))return null;else r.push({kind:`char`,value:e[n]}),n+=1}for(let e of t)for(let t=0;t+1<e.length;t+=1){let[n,r]=[e[t],e[t+1]];if(n.kind===`id`&&(r.kind===`id`||r.kind===`digits`||r.kind===`char`&&at.test(r.value))||r.kind===`id`&&(n.kind===`digits`||n.kind===`char`&&at.test(n.value))||n.kind===`digits`&&(r.kind===`char`&&ct.test(r.value)||r.kind===`digits`)||n.kind===`space`&&(r.kind===`char`&<.test(r.value)||r.kind===`space`))return null}return t}function dt(e,t,n){let r=n;for(let n of e)if(n.kind===`char`){if(r>=t.length||t[r]!==n.value)return-1;r+=1}else{let e=n.kind===`space`?lt:n.kind===`id`?at:ct,i=r;for(;r<t.length&&e.test(t[r]);)r+=1;if(r===i)return-1}return r}function ft(e,t,n){if(e.length===0)return n;for(let r=n;r<t.length;r+=1){let n=dt(e,t,r);if(n>=0)return n}return-1}function pt(e){return e.map(e=>e.map(e=>e.kind===`char`?{kind:`char`,value:e.value.toLowerCase()}:e))}function mt(e){let t=b(e);if(!t)return null;let n=ut(e);if(!n)return e=>t.test(e);let r=pt(n);return e=>{let t=e.toLowerCase(),n=0;for(let e of r){let r=ft(e,t,n);if(r<0)return!1;n=r}return!0}}var Z=class extends Error{},Q=class extends Z{comparison;constructor(e,t){super(e),this.comparison=t}},ht=class extends Error{};const gt=[`assignee`,`candidateGroups`,`priority`,`name`,`dueDate`,`followUpDate`];function _t(e){return e.length<2?e.join(``):`${e.slice(0,-1).join(`, `)}${n(`app.testCases.listSeparator`)}${e[e.length-1]}`}const vt=2e4,yt=/* @__PURE__ */ new Set([`MOCK_JOB_WORKER_COMPLETE_JOB`,`MOCK_JOB_WORKER_THROW_BPMN_ERROR`,`MOCK_CHILD_PROCESS`,`MOCK_DMN_DECISION`]),bt=y,xt=/\.(bpmn20\.xml|bpmn\.xml|bpmn)$/i;function St(e){let t=e.instructions.findIndex(e=>!yt.has(String(e.type)));return t>=0&&e.instructions[t].type===`CREATE_PROCESS_INSTANCE`?t:-1}function Ct(e,t){for(let n of[`processInstanceSelector`,`jobSelector`,`userTaskSelector`,`elementSelector`]){let r=e[n]?.processDefinitionId;if(typeof r==`string`&&r!==t)return r}return null}function wt(e){let t=e.instructions.findIndex(e=>typeof e!=`object`||!e||typeof e.type!=`string`);if(t>=0)return n(`app.testCases.unrunnable.shapelessInstruction`,{number:t+1});let r=e.instructions[St(e)]?.processDefinitionSelector?.processDefinitionId;if(e.instructions.filter(e=>e.type===`CREATE_PROCESS_INSTANCE`).length>1)return n(`app.testCases.unrunnable.oneInstancePerTestCase`);for(let t of e.instructions){let e=String(t.type);if(bt.has(e))return n(`app.testCases.unrunnable.notYet`,{type:e});if(!x.has(e))return n(`app.testCases.unrunnable.unknown`,{type:e});let i=e===`ASSERT_USER_TASK`?gt.filter(e=>e in t):[];if(i.length)return n(`app.testCases.unrunnable.userTaskFields`,{fields:_t(i)});if(t.useExampleData===!0)return n(`app.testCases.unrunnable.exampleData`,{type:e});let a=t.runtimeInstructions;if(Array.isArray(a)&&a.length>0)return n(`app.testCases.unrunnable.runtimeInstructions`,{type:e});let o=Ct(t,r);if(o&&r)return n(`app.testCases.unrunnable.foreignProcess`,{type:e,foreign:o,root:r})}return null}function $(e){return JSON.stringify(e)??`undefined`}function Tt(e){return $({state:e.state,elements:e.elements.map(e=>[e.key,e.state,e.incident]),variables:e.variables})}function Et(e,t){let n=e?.correlationKey?.trim();if(!n)return;if(!n.startsWith(`=`))return n;let r=/^=\s*([A-Za-z_]\w*)\s*$/.exec(n)?.[1];return r&&t[r]!==void 0&&t[r]!==null?String(t[r]):void 0}async function Dt(e){let t=/* @__PURE__ */ new Map;for(let n of e)xt.test(n.name)&&m(await a(n.content)).forEach((e,n)=>t.set(n,e));return t}async function Ot(e,t){let r=t.now??Date.now,i=r();try{return await kt(e,t)}catch(a){let o=n(`app.testCases.penstockFailed`,{reason:a instanceof Error?a.message:String(a)});return t.emit?.({kind:`testFinished`,testCase:e.name,outcome:`failed`,message:o,durationMs:r()-i,trace:null}),{outcome:`failed`,message:o,trace:null,recorded:[]}}}async function kt(e,t){let{engine:r,runId:i}=t,a=e.name,o=t.stepTimeoutMs??3e4,s=t.pollMs??500,c=Math.max(t.settleReads??3,1),u=t.sleep??(e=>new Promise(t=>setTimeout(t,e))),d=t.now??Date.now,p=t.emit??(()=>void 0),m=`${Math.round(o/1e3)} s`,h=d(),g=[],_=[],v=[],ee=[],y=(e,t)=>{g.push({at:(/* @__PURE__ */ new Date()).toISOString(),text:e,...t?{error:t}:{}}),p({kind:`log`,testCase:a,text:e,...t?{error:t}:{}})},b=(e,t,n,r)=>(p({kind:`testFinished`,testCase:a,outcome:e,...t?{message:t}:{},...r?{comparison:r}:{},durationMs:d()-h,trace:n}),{outcome:e,...t?{message:t}:{},...r?{comparison:r}:{},trace:n,recorded:_});p({kind:`testStarted`,testCase:a});let x=e[`x-penstock`]?.engines;if(x?.length&&!l(x,r.kind))return b(`skipped`,n(`app.testCases.forOtherEngines`,{engines:_t(x.map(e=>f(e)))}),null);let te=wt(e);if(te)return b(`failed`,te,null);let ne=St(e);if(ne<0)return b(`failed`,n(`app.testCases.needsCreateProcessInstance`),null);let re=e.instructions[ne],S=await Dt(t.resources),C=e=>S.get(e)?.name??e,ie=e[`x-penstock`]?.behaviours??{},w;try{w=await He(r.kind,t.resources,e,i)}catch(e){return b(`failed`,e instanceof Error?e.message:String(e),null)}let T=/* @__PURE__ */ new Set;S.forEach((e,t)=>{let n=e.job??e.external;(n&&w.jobTypes.has(n)||w.elements.has(t))&&T.add(t)});let ae=[.../* @__PURE__ */ new Set([...w.jobTypes.values(),...w.elements.values()])],oe=/* @__PURE__ */ new Map;for(let t of e.instructions)if(t.type===`MOCK_JOB_WORKER_COMPLETE_JOB`||t.type===`MOCK_JOB_WORKER_THROW_BPMN_ERROR`){let e=t,r=w.jobTypes.get(e.jobType);if(!r){y(n(`app.testCases.log.noElementWithJobType`,{jobType:e.jobType}));continue}oe.set(r,e.type===`MOCK_JOB_WORKER_THROW_BPMN_ERROR`?{kind:`error`,variables:e.variables??{},errorCode:e.errorCode,errorMessage:e.errorMessage}:{kind:`complete`,variables:e.variables??{}})}let E=/* @__PURE__ */ new Map,se=/* @__PURE__ */ new Map,ce=async e=>{for(let t of[...E.values()])!e&&d()-(se.get(t.key)??0)<vt||(await r.extend(t).catch(()=>void 0),se.set(t.key,d()))},le=e=>[...E.values()].find(t=>t.elementId===e)??null,ue=/* @__PURE__ */ new Map,D=/* @__PURE__ */ new Map,O=``,k=``,A=null,j=()=>{if(t.signal?.aborted)throw new ht},M=async(e,t,i,a,o)=>{t===`error`?await r.error(e,a??`ERROR`,o??``,i):await r.complete(e,i),v.push({elementId:e.elementId,elementInstance:e.elementInstance,received:e.variables,sent:i}),T.add(e.elementId),y(t===`error`?n(`app.testCases.log.mockThrew`,{label:C(e.elementId),code:a}):n(`app.testCases.log.mockCompleted`,{label:C(e.elementId)}))},de=async()=>{if(ae.length===0)return 0;let e=0;for(let t of await r.jobs(ae)){if(t.root&&t.root!==O)continue;let i=ie[t.elementId];if(i&&i.then!==`fire`){if(i.then===`hold`){E.set(t.key,t),se.set(t.key,d());continue}if(i.then===`incident`){await r.fail(t,i.errorMessage??n(`app.testCases.failingWithIncident`),0),T.add(t.elementId),y(n(`app.testCases.log.failedAsIncident`,{label:C(t.elementId)})),e+=1;continue}let a=ue.get(t.elementInstance)??0;if(a<(i.fail??0)){ue.set(t.elementInstance,a+1),await r.fail(t,n(`app.testCases.failingOnPurpose`,{tried:a+1,total:i.fail}),Math.max(t.retries,1)),y(n(`app.testCases.log.failedOnPurpose`,{label:C(t.elementId),tried:a+1,total:i.fail})),e+=1;continue}await M(t,i.then===`error`?`error`:`complete`,i.variables??{},i.errorCode,i.errorMessage),e+=1;continue}let a=oe.get(t.type);a?(await M(t,a.kind,a.variables,a.errorCode,a.errorMessage),e+=1):(E.set(t.key,t),se.set(t.key,d()))}return e},N=e=>{for(let t of e.elements){let e=t.state===`ACTIVE`&&t.incident?`FAILED`:t.state;D.get(t.key)!==e&&(D.set(t.key,e),p({kind:`step`,testCase:a,elementId:t.elementId,state:e,mocked:T.has(t.elementId)}))}},P=e=>{for(let t of e.elements){if(t.state!==`ACTIVE`||t.incident)continue;let e=S.get(t.elementId);if(!e)continue;let r=C(t.elementId),i=e.job??e.external;if(i){if(le(t.elementId))continue;return w.jobTypes.has(i)||w.elements.has(t.elementId)?n(`app.testCases.waiting.jobNotHandedOut`,{label:r,seconds:m}):n(`app.testCases.waiting.noWorkerTook`,{type:i,seconds:m})}if(e.event===`timer`&&ie[t.elementId]?.then===`fire`)return n(`app.testCases.waiting.timerDidNotFire`,{label:r,seconds:m});if((e.delegateClass||e.delegateExpression||e.expression)&&(e.asyncBefore||e.asyncAfter))return n(`app.testCases.waiting.engineDidNotRun`,{label:r,seconds:m})}return null},F=async e=>{let t=d(),i=``,a=0,l=e===void 0;for(;;){j();let f=await de(),p=null;try{p=await r.snapshot(O)}catch(e){if(!(e instanceof B&&e.status===404))throw e}if(p){A=p;let n=p.elements.filter(e=>e.state===`COMPLETED`&&D.get(e.key)!==`COMPLETED`).map(e=>e.key);ee.push({at:(/* @__PURE__ */ new Date()).toISOString(),variables:p.variables,completed:n}),N(p);let r=Tt(p);r!==e&&(l=!0),f>0||r!==i||!l?(a=0,i=r):a+=1;let s=p.state===`ACTIVE`?P(p):null;if(a>=c-1&&!s)return p;if(d()-t>o){if(s)throw new Z(s);return p}}else if(d()-t>o)throw new Z(n(`app.testCases.waiting.instanceNotShown`,{seconds:m}));await u(s)}},I=async(e,n,r)=>{let i=d();for(;;){j(),await de();let a=await e();if(a!==null)return a;let c=t.onWait?[...E.values()].find(e=>e.elementId!==r):void 0;if(c)await he(L(c)),i=d();else{if(d()-i>o)throw new Z(n);await ce(!1),await u(s)}}},L=e=>{let t=S.get(e.elementId);return{kind:`job`,elementId:e.elementId,jobType:t?.job??t?.external??e.type,variables:e.variables}},R=()=>A?Tt(A):void 0,fe=e=>e.elements.filter(e=>e.state===`ACTIVE`).map(e=>C(e.elementId)),pe=e=>{let t=[...new Set(e)].filter(e=>!S.has(e));if(t.length)throw new Z(n(`app.testCases.notInDiagram`,{ids:t.join(`, `),count:t.length}))},z=e=>{if(e.elementId)return e.elementId;if(e.elementName!==void 0){for(let[t,n]of S)if(n.name===e.elementName)return t}throw new Z(n(`app.testCases.noElementNamed`,{name:e.elementName??n(`app.testCases.unknownName`)}))},V=e=>{if(e.elementId)return le(e.elementId);let t=e.jobType?w.jobTypes.get(e.jobType):void 0;for(let e of E.values())if(e.type===t)return e;return null},me=async(e,t,i)=>{let a=R();return await I(async()=>{try{return await r.correlate(e,t,O,i),!0}catch(e){if(e instanceof B&&e.status===404)return null;throw e}},n(`app.testCases.waiting.messageFoundNothing`,{message:e,seconds:m})),y(n(`app.testCases.log.correlated`,{message:e})),F(a)},he=async e=>{let i=t.onWait;p({kind:`waiting`,testCase:a,wait:e});let o=setInterval(()=>void ce(!0),t.keepAliveMs??vt),s=await i(e).finally(()=>clearInterval(o));if(j(),s.kind===`stop`)throw new ht;let c=R(),l=s.variables;if(e.kind===`job`){let t=le(e.elementId);return E.delete(t.key),s.kind===`error`?(await M(t,`error`,l,s.errorCode,s.errorMessage),_.push({type:`THROW_BPMN_ERROR_FROM_JOB`,jobSelector:{elementId:e.elementId},errorCode:s.errorCode,...s.errorMessage?{errorMessage:s.errorMessage}:{},variables:l})):(await M(t,`complete`,l),_.push({type:`COMPLETE_JOB`,jobSelector:{elementId:e.elementId},variables:l})),F(c)}if(e.kind===`userTask`){let t=(await r.userTasks(O)).find(t=>t.elementId===e.elementId);return t?(await r.completeTask(t,l),y(n(`app.testCases.log.completed`,{label:C(e.elementId)})),_.push({type:`COMPLETE_USER_TASK`,userTaskSelector:{elementId:e.elementId},variables:l}),F(c)):F()}if(e.kind===`message`){let t=Et(S.get(e.elementId),A?.variables??{});return _.push({type:`CORRELATE_MESSAGE`,name:e.name,...t===void 0?{}:{correlationKey:t},variables:l}),me(e.name,t,l)}return await r.signal(e.name,l),_.push({type:`BROADCAST_SIGNAL`,signalName:e.name,variables:l}),F(c)},ge=async e=>{for(let t of e.elements){if(t.state!==`ACTIVE`)continue;let e=S.get(t.elementId),n=le(t.elementId);if(n)return L(n);if(e?.type===`bpmn:UserTask`&&(await r.userTasks(O)).some(e=>e.elementId===t.elementId))return{kind:`userTask`,elementId:t.elementId,name:e.name??null};if(e?.event===`message`&&e.message)return{kind:`message`,elementId:t.elementId,name:e.message};if(e?.event===`signal`&&e.signal)return{kind:`signal`,elementId:t.elementId,name:e.signal}}return null},_e=(e,t)=>{let r=e=>t.elements.filter(t=>t.elementId===e),i=t.state===`ACTIVE`&&fe(t).length?n(`app.testCases.whereAt`,{elements:fe(t).join(`, `)}):``;switch(e.type){case`ASSERT_PROCESS_INSTANCE`:{let r=e.state&&e.state!==`IS_CREATED`?{IS_COMPLETED:`COMPLETED`,IS_ACTIVE:`ACTIVE`,IS_TERMINATED:`TERMINATED`}[e.state]:null;if(r&&t.state!==r)throw new Q(n(`app.testCases.mismatch.instanceState`,{expected:r.toLowerCase(),actual:t.state.toLowerCase(),where:i}),{expected:r.toLowerCase(),actual:t.state.toLowerCase()});if(e.hasActiveIncidents!==void 0&&e.hasActiveIncidents!==t.incidents.length>0)throw new Q(e.hasActiveIncidents?n(`app.testCases.mismatch.incidentExpected`):n(`app.testCases.mismatch.incidentUnexpected`,{elements:t.incidents.map(e=>C(e.elementId)).join(`, `)}));return}case`ASSERT_ELEMENT_INSTANCES`:{let a=e.elementSelectors.map(z);pe(a);let o=(e,t)=>r(e).some(e=>e.state===t),s=(e,t)=>{let n=a.filter(e);if(n.length)throw new Q(`${n.map(C).join(`, `)} ${t}${i}`)};if(e.state===`IS_ACTIVE`&&s(e=>!o(e,`ACTIVE`),n(`app.testCases.mismatch.isNotActive`)),(e.state===`IS_COMPLETED`||e.state===`IS_COMPLETED_IN_ORDER`)&&s(e=>!o(e,`COMPLETED`),n(`app.testCases.mismatch.hasNotCompleted`)),e.state===`IS_TERMINATED`&&s(e=>!o(e,`TERMINATED`),n(`app.testCases.mismatch.wasNotTerminated`)),e.state===`IS_NOT_ACTIVE`&&s(e=>o(e,`ACTIVE`),n(`app.testCases.mismatch.isActive`)),e.state===`IS_NOT_ACTIVATED`&&s(e=>r(e).length>0,n(`app.testCases.mismatch.wasReached`)),e.state===`IS_ACTIVE_EXACTLY`){let e=[...new Set(t.elements.filter(e=>e.state===`ACTIVE`).map(e=>e.elementId))].sort();if($(e)!==$([...new Set(a)].sort()))throw new Q(n(`app.testCases.mismatch.activeExactly`,{active:e.map(C).join(`, `)||n(`app.testCases.nothing`),expected:a.map(C).join(`, `)}))}if(e.state===`IS_COMPLETED_IN_ORDER`){let e=/* @__PURE__ */ new Set,r=a.map(n=>{let r=t.elements.findIndex((t,r)=>!e.has(r)&&t.elementId===n&&t.state===`COMPLETED`);return e.add(r),{id:n,at:Date.parse(t.elements[r]?.endedAt??``)||0,index:r}}).sort((e,t)=>e.at-t.at||e.index-t.index).map(e=>e.id);if($(r)!==$(a))throw new Q(n(`app.testCases.mismatch.completedInOrder`,{order:r.map(C).join(`, `),expected:a.map(C).join(`, `)}))}return}case`ASSERT_ELEMENT_INSTANCE`:{let t=z(e.elementSelector);pe([t]);let a=e.state.replace(`IS_`,``),o=r(t).filter(e=>e.state===a).length;if(e.amount===void 0?o===0:o!==e.amount)throw new Q(n(`app.testCases.mismatch.instanceCount`,{label:C(t),count:n(`app.testCases.count.instances`,{count:o,state:a.toLowerCase()}),expected:e.amount??n(`app.testCases.one`),where:i}));return}case`ASSERT_VARIABLES`:{let i=t.variables;if(e.elementSelector){let n=z(e.elementSelector);i=Object.assign({},...r(n).map(e=>t.local.get(e.key)??{}))}let a=[],o=[];for(let t of e.variableNames??[])t in i||a.push(n(`app.testCases.mismatch.variableNotSet`,{name:t}));for(let[t,r]of Object.entries(e.variables??{}))t in i?We(i[t],r)||(a.push(n(`app.testCases.mismatch.variableValue`,{name:t,actual:$(i[t]),expected:$(r)})),o.push({expected:$(r),actual:$(i[t])})):a.push(n(`app.testCases.mismatch.variableNotSet`,{name:t}));if(a.length)throw new Q(a.join(`; `),a.length===1&&o.length===1?o[0]:void 0);return}case`ASSERT_USER_TASK`:{let t=e.userTaskSelector,a=z(t.elementId?{elementId:t.elementId}:{elementName:t.taskName});if(pe([a]),e.elementId!==void 0&&e.elementId!==a)throw new Z(n(`app.testCases.elementIdMismatch`,{label:C(a),actual:a,expected:e.elementId}));let o=r(a);if(e.state===`IS_CREATED`&&!o.some(e=>e.state===`ACTIVE`))throw new Q(n(`app.testCases.mismatch.notWaitingForAUser`,{label:C(a),where:i}));if(e.state===`IS_COMPLETED`&&!o.some(e=>e.state===`COMPLETED`))throw new Q(n(`app.testCases.mismatch.userTaskNotCompleted`,{label:C(a),where:i}));if(e.state===`IS_CANCELED`&&!o.some(e=>e.state===`TERMINATED`))throw new Q(n(`app.testCases.mismatch.wasNotCanceled`,{label:C(a),where:i}));if(e.state===`IS_FAILED`&&!o.some(e=>e.incident))throw new Q(n(`app.testCases.mismatch.hasNotFailed`,{label:C(a),where:i}));if(e.state===void 0&&o.length===0)throw new Q(n(`app.testCases.mismatch.wasNotReached`,{label:C(a),where:i}));return}default:throw new Z(n(`app.testCases.unrunnable.notYet`,{type:e.type}))}},H=async()=>{try{let e=await r.snapshot(O);return A=e,N(e),e}catch(e){if(e instanceof B&&e.status===404)return A;throw e}},U=t=>{let r=e[`x-penstock`]?.reproduces;if(!r)return;let i=C(r.elementId),a=t.incidents.filter(e=>e.elementId===r.elementId),o=t.state===`ACTIVE`&&fe(t).length?n(`app.testCases.whereAt`,{elements:fe(t).join(`, `)}):``;if(a.length===0)throw new Q(n(`app.testCases.mismatch.incidentMissing`,{label:i,where:o}));let s=r.type===void 0?a:a.filter(e=>e.type===void 0||e.type===r.type);if(s.length===0)throw new Q(n(`app.testCases.mismatch.incidentOtherType`,{label:i,actual:a.map(e=>e.type).join(`, `),expected:r.type}));let c=r.message===void 0?null:mt(r.message);if(c&&!s.some(e=>c(e.message.slice(0,4e3))))throw new Q(n(`app.testCases.mismatch.incidentOtherMessage`,{label:i,actual:s[0].message.slice(0,200),expected:r.message}),{expected:String(r.message),actual:s[0].message.slice(0,200)})},W=async(e,t)=>{let n=d(),r=Math.min(5e3,o/4),i=t,a=null,l=Tt(i),f=0;for(;;){try{return e(i),i}catch(e){if(!(e instanceof Q)||d()-n>o)throw e;if(i.state===`ACTIVE`)a=null,f=0;else if(a??=d(),f>=c&&d()-a>=r)throw e}j(),await u(s),await de(),i=await H();let t=Tt(i);t===l?f+=1:(l=t,f=0,a=i.state===`ACTIVE`?null:d())}},G=async e=>{for(let t=1;;t+=1)try{await r.remove(e);return}catch(e){if(!(e instanceof B&&(e.status===409||e.status===400))||t>=10)throw e;await u(s)}},ve=null,K,ye=`passed`,q;try{let a=await r.deploy(w.resources,`penstock-test ${i}`);if(!a.ok)throw new Z(a.message);k=a.deployment;let o=d();await t.builds?.add({deployment:k,at:o}),y(n(`app.testCases.log.deployedTheBuild`));let s=re;O=await r.start(w.processes.get(s.processDefinitionSelector.processDefinitionId)??s.processDefinitionSelector.processDefinitionId,s.variables??{},i,s.startInstructions?.map(e=>e.elementId)),await t.builds?.add({deployment:k,at:o,instance:O}),y(n(`app.testCases.log.startedInstance`,{instance:O}));let c=await F();for(let t of e.instructions.slice(ne+1)){j();let e=t;switch(e.type){case`MOCK_JOB_WORKER_COMPLETE_JOB`:case`MOCK_JOB_WORKER_THROW_BPMN_ERROR`:break;case`COMPLETE_JOB`:case`THROW_BPMN_ERROR_FROM_JOB`:{let t=e.jobSelector,r=await I(async()=>V(t),n(`app.testCases.waiting.noJobAt`,{where:t.elementId?C(t.elementId):t.jobType,seconds:m}),t.elementId);E.delete(r.key);let i=R();e.type===`THROW_BPMN_ERROR_FROM_JOB`?await M(r,`error`,e.variables??{},e.errorCode,e.errorMessage):await M(r,`complete`,e.variables??{}),c=await F(i);break}case`COMPLETE_USER_TASK`:{let t=e.userTaskSelector,i=await I(async()=>(await r.userTasks(O)).find(e=>t.elementId?e.elementId===t.elementId:e.name===t.taskName)??null,n(`app.testCases.waiting.noUserTaskAt`,{where:t.elementId?C(t.elementId):t.taskName,seconds:m})),a=R();await r.completeTask(i,e.variables??{}),y(n(`app.testCases.log.completed`,{label:C(i.elementId)})),c=await F(a);break}case`CORRELATE_MESSAGE`:case`PUBLISH_MESSAGE`:c=await me(e.name,e.correlationKey,e.variables??{});break;case`BROADCAST_SIGNAL`:{let t=R();await r.signal(e.signalName,e.variables??{}),y(n(`app.testCases.log.broadcast`,{signal:e.signalName})),c=await F(t);break}case`UPDATE_VARIABLES`:{let t=e.elementSelector?c.elements.find(t=>t.elementId===z(e.elementSelector)&&t.state===`ACTIVE`)?.key:void 0;if(e.elementSelector&&!t)throw new Z(n(`app.testCases.notActiveSoNoVariables`,{label:C(z(e.elementSelector))}));let i=R();await r.setVariables(O,e.variables,t),c=await F(i);break}default:if(bt.has(e.type))throw new Z(n(`app.testCases.unrunnable.notYet`,{type:e.type}));c=await W(t=>_e(e,t),c)}}for(e[`x-penstock`]?.reproduces&&(c=await W(U,c));t.onWait&&c.state===`ACTIVE`;){let e=await ge(c);if(!e)break;c=await he(e)}}catch(e){e instanceof ht?(ye=`skipped`,q=`stopped`):(ye=`failed`,q=e instanceof Error?e.message:String(e),e instanceof Q&&(K=e.comparison),!(e instanceof Z)&&!(e instanceof B)&&(q=n(`app.testCases.penstockFailed`,{reason:q})))}finally{if(O){try{ve=await $e(r.kind,r.ask,O,{runId:i,testCase:a,mocked:T,mockCalls:v,snapshots:ee,log:g})}catch(e){y(n(`app.testCases.log.couldNotReadTheTrace`,{reason:e instanceof Error?e.message:String(e)}),!0)}let e=A?.state;e!==`COMPLETED`&&e!==`TERMINATED`&&await r.cancel(O).catch(e=>y(n(`app.testCases.log.couldNotCancel`,{reason:e instanceof Error?e.message:String(e)}),!0))}k&&await G(k).then(()=>t.builds?.drop(k)).catch(e=>y(n(`app.testCases.log.couldNotRemoveTheBuild`,{reason:e instanceof Error?e.message:String(e)}),!0))}return b(ye,q,ve,K)}const At=/* @__PURE__ */ new Set([`localhost`,`127.0.0.1`,`[::1]`,`::1`]);function jt(e){if(!e)return null;try{return new URL(e).hostname.toLowerCase()}catch{return null}}function Mt(e){if(e.forTests)return`allowed`;let t=jt(e.url);return t&&(At.has(t)||/^127(?:\.\d{1,3}){3}$/.test(t)||t.endsWith(`.localhost`))?`confirm`:`refused`}function Nt(e){let t=jt(e)??n(`app.testCases.safety.thisEngine`);return n(`app.testCases.safety.refusal`,{where:t})}async function Pt(e,t,n){let r=[],i=[];for(let a of await t.list())if(!(n-a.at<=9e5)){a.instance&&await e.cancel(a.instance).catch(()=>void 0);try{await e.remove(a.deployment)}catch(e){if(!(e instanceof B&&e.status===404)){i.push(a.deployment);continue}}await t.drop(a.deployment),r.push(a.deployment)}return{removed:r,kept:i}}function Ft(e,t,n){let r=()=>{try{let n=JSON.parse(e.getItem(t)??`{}`);return n&&typeof n==`object`&&!Array.isArray(n)?n:{}}catch{return{}}},i=()=>{let e=r()[n];return Array.isArray(e)?e:[]},a=i=>{let a=r();i.length?a[n]=i:delete a[n],e.setItem(t,JSON.stringify(a))};return{list:async()=>i(),add:async e=>a([...i().filter(t=>t.deployment!==e.deployment),e]),drop:async e=>a(i().filter(t=>t.deployment!==e))}}function It(e){return n(`app.testCases.count.testBuilds`,{count:e})}function Lt(e){return[...e.removed.length?[n(`app.testCases.leftovers.removed`,{builds:It(e.removed.length)})]:[],...e.kept.length?[n(`app.testCases.leftovers.kept`,{builds:It(e.kept.length)})]:[]]}function Rt(){return n(`app.testCases.suites.unlicensed`)}function zt(e){return e.split(/[\\/]/).pop()??e}function Bt(e){let t=e.replace(/\\/g,`/`).lastIndexOf(`/.penstock/runs/`);return t>=0?e.replace(/\\/g,`/`).slice(t+1):e}function Vt(e){switch(e.kind){case`suiteStarted`:return O(`started`,e.suite,e.file);case`suiteFinished`:return O(`finished`,e.suite,e.file);case`refused`:return[...D(e.suite,e.file,{kind:`testStarted`,testCase:e.suite}),...D(e.suite,e.file,{kind:`testFinished`,testCase:e.suite,outcome:`failed`,message:e.reason,durationMs:0,trace:null})];case`run`:return D(e.suite,e.file,e.event);case`note`:return[e.text];case`result`:return e.kept?[n(`app.testCases.suites.traceOf`,{name:e.testCase.name,where:Bt(e.kept)})]:[]}}function Ht(){return{swept:/* @__PURE__ */ new Set,names:/* @__PURE__ */ new Set}}function Ut(e,t,n){let r=t.join(`; `);return n?.({kind:`testStarted`,testCase:e}),n?.({kind:`testFinished`,testCase:e,outcome:`failed`,message:r,durationMs:0,trace:null}),{result:{outcome:`failed`,message:r,trace:null,recorded:[]},kept:null,durationMs:0}}async function Wt(e,t){let n=_(e);if(n.length>0)return Ut(e.name,n,t.emit);if(!t.session.swept.has(t.key)){t.session.swept.add(t.key);for(let e of Lt(await Pt(t.engine,t.builds,Date.now())))await t.note?.(e)}let r=0,i=await Ot(e,{engine:t.engine,resources:t.resources,runId:t.runId,signal:t.signal,builds:t.builds,onWait:t.onWait,stepTimeoutMs:t.stepTimeoutMs,pollMs:t.pollMs,settleReads:t.settleReads,emit:e=>{e.kind===`testFinished`&&(r=e.durationMs),t.emit?.(e)}});return{result:i,kept:i.trace&&t.keep?await t.keep(i.trace,it(e.name,t.session.names)):null,durationMs:r}}async function Gt(e,t,r,i,a){let o=zt(e),s=async t=>{await r({kind:`refused`,suite:o,file:e,reason:t})},c=await t.read(e).catch(()=>null),l=c===null?null:ee(c),u=l?.file?await t.diagramFor(e):null,d=u?await t.targetOf(u):null,f=l?l.file?u?d?null:n(`app.testCases.suites.noEngineToRunOn`,{diagram:zt(u)}):n(`app.testCases.suites.noDiagram`,{suite:o}):l.problems.join(`; `):t.unreadable?.(e)??n(`app.testCases.suites.cannotBeRead`,{suite:o});if(f||!l?.file||!u||!d)return await s(f??n(`app.testCases.suites.cannotRun`)),`next`;if(!a.licensed&&t.licensed&&!await t.licensed())return await s(Rt()),`stop`;a.licensed=!0;let p=await t.refusal(d);if(p)return await s(p),`next`;let m=t.builds(d),h=t.engine(d,u),g=await t.resources(u),v=l.file.testCases.map((e,t)=>typeof e?.name==`string`&&e.name.trim()!==``?e:{...e,name:n(`app.testCases.suites.unnamedCase`,{number:t+1})});for(let n of v.filter(e=>!i.only||e.name===i.only)){if(i.signal?.aborted)break;let s=_(l.file.testCases[v.indexOf(n)]);if(s.length>0){await r({kind:`result`,suite:o,file:e,testCase:n,result:Ut(n.name,s,t=>{r({kind:`run`,suite:o,file:e,event:t})}).result,durationMs:0,kept:null});continue}let{result:c,kept:u,durationMs:f}=await Wt(n,{engine:h,resources:g,runId:t.runId,builds:m,key:t.keyOf(d),session:a,signal:i.signal,stepTimeoutMs:i.stepTimeoutMs,pollMs:i.pollMs,settleReads:i.settleReads,note:e=>r({kind:`note`,text:e}),emit:t=>{r({kind:`run`,suite:o,file:e,event:t})},keep:t.keep?(n,r)=>t.keep(n,r,e):void 0});await r({kind:`result`,suite:o,file:e,testCase:n,result:c,durationMs:f,kept:u})}return`next`}async function Kt(e,t,r,i={}){let a={licensed:!1,swept:/* @__PURE__ */ new Set,names:/* @__PURE__ */ new Set};for(let o of e){if(i.signal?.aborted)return{stopped:!0};let e=zt(o);await r({kind:`suiteStarted`,suite:e,file:o});let s=`next`;try{s=await Gt(o,t,r,i,a)}catch(t){await r({kind:`refused`,suite:e,file:o,reason:n(`app.testCases.penstockFailed`,{reason:t instanceof Error?t.message:String(t)})})}if(await r({kind:`suiteFinished`,suite:e,file:o}),s===`stop`)return{stopped:!0}}return{stopped:i.signal?.aborted===!0}}async function qt(e){let t=fe({input:process.stdin,output:process.stderr});try{let r=await t.question(n(`app.output.confirmInTerminal`,{url:e}));return/^y(es)?$/i.test(r.trim())}finally{t.close()}}const Jt=/\.(bpmn20\.xml|bpmn\.xml|bpmn)$/i,Yt=/<(?:[\w-]+:)?process\b[^>]*\bid="([^"]+)"/g;function Xt(e){return P.resolve(te(P.resolve(e)))}function Zt(e){let t=P.resolve(e);for(;!F(t)&&P.dirname(t)!==t;)t=P.dirname(t);return t}function Qt(e){let t=P.resolve(e);return ie(t,N(M(Zt(e)).root).map(e=>P.resolve(e)))}function $t(e){let t=[],n=/* @__PURE__ */ new Set,r=e=>{n.has(e.cases)||(n.add(e.cases),t.push(e))};for(let t of e){if(/\.json$/i.test(t)){r({diagram:Qt(t),cases:P.resolve(t)});continue}let e=!Jt.test(t);for(let n of N(t)){let t=Xt(n);(!e||F(t))&&r({diagram:n,cases:t})}}return t}async function en(e){let t=M(e).root,n=[...N(t),...ce(t)].map(e=>({path:P.resolve(e),read:async()=>L(e,`utf8`)}));return S({path:P.resolve(e),content:L(e,`utf8`)},n)}function tn(e){let t=re(e);return t?{engine:Ce(C(t),w(t),t.tenantId??null),url:t.url,forTests:t.forTests}:null}function nn(e){return`${(e/1e3).toFixed(1)} s`}function rn(t,r){return Ft({getItem:()=>F(t)?L(t,`utf8`):null,setItem:(r,i)=>{try{e(t,`${JSON.stringify(JSON.parse(i),null,2)}\n`)}catch(e){console.error(n(`app.output.couldNotRememberBuilds`,{file:t}),e)}}},t,r)}function an(e){return rn(P.join(t(process.env),`test-builds.json`),e)}function on(e){let t=e.keyOf??(e=>e.url??`default`),r=/* @__PURE__ */ new Set;return async i=>{let a=Mt({url:i.url,forTests:i.forTests});return a===`allowed`||r.has(t(i))?null:a===`refused`?Nt(i.url):e.ci?n(`app.output.pipelineCannotConfirm`,{url:i.url}):e.confirm?await e.confirm(i.url??``)?(r.add(t(i)),null):n(`app.output.notConfirmedForTests`):n(`app.output.notMarkedForTests`,{url:i.url})}}function sn(e){return`confirm`in e?e.confirm:process.stdin.isTTY&&process.stderr.isTTY?qt:void 0}async function cn(e,t,i=tn){let a=t.write??(e=>process.stdout.write(`${e}\n`)),o=t.teamcity||!!process.env.TEAMCITY_VERSION,s=$t(e);if(s.length===0)return{ok:!1,lines:[n(`app.output.noTestCaseFiles`)]};let c=tt(/* @__PURE__ */ new Date),l=/* @__PURE__ */ new Map,u={passed:0,failed:0,skipped:0},d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ new Map,p=new Map(s.map(e=>[e.cases,e.diagram])),m=e=>M(Zt(e)).root,h=e=>{let t=m(e),n=d.get(t)??[];return d.set(t,n),n},_=e=>{let t=l.get(e)??{name:e,results:[]};return l.set(e,t),t},v=e=>e.url??`default`,ee=on({ci:t.ci??!!process.env.CI,confirm:sn(t),keyOf:v}),{stopped:y}=await Kt(s.map(e=>e.cases),{runId:c,read:async e=>F(e)?L(e,`utf8`):null,unreadable:e=>n(`app.output.noTestCaseFile`,{file:j(e)}),diagramFor:async e=>p.get(e)??null,targetOf:async e=>i(e),keyOf:v,refusal:ee,resources:en,engine:e=>e.engine,builds:e=>{let n=f.get(v(e))??(t.builds??an)(v(e));return f.set(v(e),n),n},keep:async(e,t,n)=>{let r=P.join(m(n),`.penstock`,`runs`),i=P.join(r,c,`${t}.json`);return I(P.dirname(i),{recursive:!0}),R(P.join(r,`.gitignore`),`*
|
|
2
|
-
`),R(i,`${JSON.stringify(e,null,2)}\n`),i}},e=>{switch(o&&Vt(e).forEach(a),e.kind){case`suiteStarted`:_(e.suite),h(e.file);return;case`note`:o||a(e.text);return;case`refused`:u.failed+=1,_(e.suite).results.push({testCase:e.suite,outcome:`failed`,message:e.reason,durationMs:0}),h(e.file).push({file:j(e.file),testCase:e.suite,outcome:`failed`,message:e.reason}),o||(a(`${r(`fail`)} ${e.suite}`),a(` ${e.reason}`));return;case`run`:!o&&e.event.kind===`log`&&e.event.error&&a(` ${e.event.text}`);return;case`result`:{let{result:t,testCase:i}=e;if(u[t.outcome]+=1,_(e.suite).results.push({testCase:i.name,outcome:t.outcome,message:t.message,durationMs:e.durationMs}),h(e.file).push({file:j(e.file),testCase:i.name,outcome:t.outcome,...t.message?{message:t.message}:{},...e.kept?{trace:P.relative(m(e.file),e.kept)}:{}}),!o){let o={passed:r(`pass`),failed:r(`fail`),skipped:r(`skip`)}[t.outcome];a(`${o} ${e.suite} › ${i.name} (${nn(e.durationMs)})`),t.message&&t.outcome!==`passed`&&a(` ${t.message}`),t.outcome!==`passed`&&g(i)&&a(` ${n(`app.output.penstockBehaviourHints`)}`)}return}default:return}},{signal:t.signal,stepTimeoutMs:t.stepTimeoutMs,pollMs:t.pollMs,settleReads:t.settleReads});for(let[e,t]of d){let n=P.join(e,`.penstock`,`runs`);I(P.join(n,c),{recursive:!0}),R(P.join(n,`.gitignore`),`*
|
|
3
|
-
`),R(P.join(n,c,`run.json`),`${JSON.stringify({runId:c,at:(/* @__PURE__ */ new Date()).toISOString(),results:t},null,2)}\n`)}t.junitXml&&(I(P.dirname(P.resolve(t.junitXml)),{recursive:!0}),R(t.junitXml,k([...l.values()])));let b=de(s.length,`app.output.count.file`),x=n(`app.output.totals`,{passed:u.passed,failed:u.failed,skipped:u.skipped,files:b});return y?{ok:!1,lines:[``,n(`app.output.stopped`,{totals:x})]}:{ok:u.failed===0,refused:!1,lines:[``,x]}}function ln(e){return e.flatMap(e=>/\.json$/i.test(e)?[Qt(e)].filter(e=>!!e):N(e))}async function un(e){let t=[],o=!1;for(let i of ln(e)){let e=await a(L(i,`utf8`));if(!e){o=!0,t.push({status:r(`fail`),file:j(i),cases:`0`,details:n(`app.output.unreadableBpmn`)});continue}let s=le(e),c=s.items.map(e=>e.testCase);if(c.length===0){t.push({status:r(`skip`),file:j(i),cases:`0`,details:s.unplannable[0]?.problem??n(`app.output.noExecutableProcessWithAWay`)});continue}let l=Xt(i),u=h(F(l)?L(l,`utf8`):null,c);if(`problem`in u){o=!0,t.push({status:r(`fail`),file:j(l),cases:`0`,details:u.problem});continue}I(P.dirname(l),{recursive:!0}),R(l,v(u.file));let d=c.filter(e=>u.added.includes(e.name)&&e.description?.startsWith(n(`app.output.toFillInPrefix`))).length,f=u.kept.length?n(`app.output.alreadyThereAndKept`,{count:u.kept.length}):``,p=s.unplannable.length?n(`app.output.couldNotBePlanned`,{ways:de(s.unplannable.length,`app.output.count.way`),problem:s.unplannable[0].problem}):``;t.push({status:r(`wrote`),file:j(l),cases:n(`app.output.newCount`,{count:u.added.length}),details:`${d?n(`app.output.toFillIn`,{count:d}):n(`app.output.ready`)}${f}${p}`})}if(t.length===0)return{ok:!1,lines:[n(`app.output.noBpmnFiles`)]};let s=i(t,{columns:[{name:`status`,header:n(`app.cli.header.status`),minWidth:6},{name:`file`,header:n(`app.cli.header.file`),minWidth:24},{name:`cases`,header:n(`app.cli.header.testCases`),minWidth:12},{name:`details`,header:n(`app.cli.header.details`)}]});return{ok:!o,refused:!1,lines:s}}function dn(e,t,n,r,i){let a=e.name===`kotlin`,o=[`io.camunda.process.test.api.CamundaProcessTest`,`io.camunda.process.test.api.TestDeployment`,`io.camunda.process.test.api.testCases.TestCase`,`io.camunda.process.test.api.testCases.TestCaseRunner`,`io.camunda.process.test.api.testCases.TestCaseSource`,`org.junit.jupiter.params.ParameterizedTest`].map(t=>`import ${t}${e.end}`),s=a?[`class ${n} {`,``,` private lateinit var testCaseRunner: TestCaseRunner`,``,` @ParameterizedTest`,` @TestCaseSource(fileNames = ${e.array(i.map(t=>e.str(t)))})`,` fun runs(testCase: TestCase, fileName: String) {`,` testCaseRunner.run(testCase)`,` }`,`}`]:[`class ${n} {`,``,` private TestCaseRunner testCaseRunner;`,``,` @ParameterizedTest`,` @TestCaseSource(fileNames = ${e.array(i.map(t=>e.str(t)))})`,` void runs(final TestCase testCase, final String fileName) {`,` testCaseRunner.run(testCase);`,` }`,`}`];return[`package ${t}${e.end}`,``,...o,``,`@CamundaProcessTest`,`@TestDeployment(resources = ${e.array(r.map(t=>e.str(t)))})`,...s,``].join(`
|
|
4
|
-
`)}async function fn(e){let t=[],i=/* @__PURE__ */ new Set,a=0;for(let o of $t(e)){if(!o.diagram)continue;let e=c(A(M(o.diagram).values.engine))??`camunda-8`;if(e!==`camunda-8`){t.push(`${r(`skip`).padEnd(5)} ${j(o.diagram)} ${n(`app.output.noJUnitBridge`,{engine:f(e)})}`);continue}let s=o.cases.split(P.sep).join(`/`),l=s.indexOf(`/src/test/resources/test-cases/`);if(l<0){t.push(`${r(`skip`).padEnd(5)} ${j(o.cases)} ${n(`app.output.casesFolder`)}`);continue}let u=oe(o.diagram,{}),d=[...L(o.diagram,`utf8`).matchAll(Yt)][0]?.[1]??P.basename(o.diagram).replace(Jt,``),p=`${se(d)}TestCasesTest`,m=P.join(u.out,...u.pkg.split(`.`),`${p}.${u.language.extension}`),h=(await en(o.diagram)).map(e=>ae(e.path)),_=[s.slice(l+31)];I(P.dirname(m),{recursive:!0}),R(m,dn(u.language,u.pkg,p,h,_)),a+=1,i.add(u.module),t.push(n(`app.output.wroteTheBridge`,{file:j(m),files:_.join(`, `)}));let v=((F(o.cases)?ee(L(o.cases,`utf8`)).file:null)?.testCases??[]).filter(g).map(e=>e.name);v.length&&t.push(n(`app.output.penstockOnlyCases`,{count:v.length,names:v.join(`, `)}))}for(let e of i){let r=E(e),i=r?L(r,`utf8`):``,{present:a,needed:o}=ue[`camunda-8`];a.test(i)||t.push(``,n(`app.output.classNeedsDependency`,{where:r?n(`app.output.inFile`,{file:j(r)}):``}),...o.map(e=>` ${e}`))}return a===0&&t.length===0?{ok:!1,lines:[n(`app.output.noTestCaseFilesFirst`)]}:{ok:a>0,refused:!1,lines:t}}async function pn(e,t){return t.generate?un(e):t.junit?fn(e):cn(e,t)}export{Ce as _,an as a,cn as c,Ht as d,Wt as f,B as g,We as h,un as i,pn as l,tt as m,tn as n,on as o,Ot as p,rn as r,en as s,sn as t,fn as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{l as testCasesCommand}from"./chunk-testCases-9jwT_Y7z.js";
|
|
@@ -1,23 +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{n as r}from"./chunk-moddle-D3Ym38EZ.js";import{_ as i,c as a,g as o,m as s,o as c,u as l,x as u,y as d}from"./chunk-engine-CxgdJ2wO.js";import{c as f,l as p}from"./chunk-model-f8AzYUK7.js";import{t as m}from"./chunk-codeScan-C09My9xv.js";import{a as h,o as g}from"./chunk-xml-rMelkRIV.js";import{i as _,n as v,r as y}from"./chunk-analyzeFlow-2cYPgjh-.js";import{s as ee}from"./chunk-failure-D5brrYW2.js";import{a as b,i as x,r as S,t as te}from"./chunk-context-rCJvBM9p.js";import{t as C}from"./chunk-plural-Dn-7ulHf.js";import{i as w,r as T}from"./chunk-folders-C7ae1oPV.js";import E from"node:path";import{existsSync as D,mkdirSync as O,readFileSync as k,readdirSync as A,writeFileSync as j}from"node:fs";function M(e,t){try{if(e===`form`){let e=JSON.parse(t).id;return typeof e==`string`?[e]:[]}return h(g(t),e).map(e=>e.attrs.id).filter(e=>typeof e==`string`&&e!==``)}catch{return[]}}const N=/* @__PURE__ */ new Set([`bpmn:SubProcess`,`bpmn:Transaction`]),P=/* @__PURE__ */ new Map([[`bpmn:AdHocSubProcess`,`adhoc`],[`bpmn:CallActivity`,`callActivity`]]);function ne(t){let n=P.get(t);return n?e(`app.scenarios.notFollowed.${n}`):void 0}function re(e){let t=/* @__PURE__ */ new Map,n=e=>{for(let r of e??[])r.id&&(N.has(r.$type)||P.has(r.$type))&&t.set(r.id,{id:r.id,name:r.name?.replace(/\s+/g,` `).trim()??``,type:r.$type,followed:N.has(r.$type)&&!r.triggeredByEvent,why:ne(r.$type),repeats:!!r.loopCharacteristics}),r.flowElements&&n(r.flowElements)},r=e?.rootElements??[];for(let e of r)if(e.$type===`bpmn:Process`&&n(e.flowElements),e.$type===`bpmn:Collaboration`)for(let t of e.participants??[])n(t.processRef?.flowElements);return t}function F(e){return[...new Set(e)]}function I(e,t,n){let r=e.firedIds.indexOf(t);if(r<0)return e;let i=[...e.firedIds.slice(0,r+1),...n.firedIds,...e.firedIds.slice(r+1)],a=/* @__PURE__ */ new Map;[e,n].forEach(e=>{e.stepIds.forEach((t,n)=>a.set(t,e.steps[n])),e.endIds.forEach((t,n)=>a.set(t,e.ends[n]))});let o=/* @__PURE__ */ new Set([...e.stepIds,...n.stepIds]),s=/* @__PURE__ */ new Set([...e.endIds,...n.endIds]),c=F(i.filter(e=>o.has(e))),l=F(i.filter(e=>s.has(e)));return{...e,decisions:[...e.decisions,...n.decisions],stepIds:c,steps:c.map(e=>a.get(e)??e),endIds:l,ends:l.map(e=>a.get(e)??e),firedIds:i,flowIds:[...e.flowIds,...n.flowIds]}}function ie(e,t,n){let r=re(e);if(![...r.values()].some(e=>e.followed))return t;let i=n??v(e).scenarios,a=/* @__PURE__ */ new Map,o=e=>{let t=a.get(e);if(t)return t;a.set(e,[]);let n=s(i.filter(t=>t.process===e));return a.set(e,n),n},s=e=>{let t=[],n=/* @__PURE__ */ new Set;for(let i of e){let e=F(i.firedIds).filter(e=>r.get(e)?.followed&&o(e).length>0),a=i;for(let t of e)a=I(a,t,o(t)[0]);t.push(a);for(let r of e)n.has(r)||(n.add(r),o(r).slice(1).forEach(n=>{let a=i;for(let t of e)a=I(a,t,t===r?n:o(t)[0]);t.push(a)}))}return t};return s(t)}function L(e){let t={};for(let[n,r]of Object.entries(e)){let e=n.split(`.`);if(e.includes(`__proto__`))continue;let i=t;e.slice(0,-1).forEach(e=>{Object.hasOwn(i,e)&&typeof i[e]==`object`&&i[e]!==null||(i[e]={}),i=i[e]}),i[e[e.length-1]]=r}return t}function R(t){let n=t.decisions.map(t=>t.boundary?e(`app.testCases.scenarioName.boundaryFires`,{boundary:t.boundary}):e(`app.testCases.scenarioName.way`,{decision:t.decision,way:t.way}));return[t.start,...n,...t.ends].join(` → `)}function z(t,n){let r=_(t.decisions.map(e=>({takes:e.takes,avoids:e.avoids}))),i=r.values,a=[...r.unresolved.map(t=>e(`app.testCases.unresolved.chooseVariables`,{condition:t})),...r.avoided.map(t=>e(`app.testCases.unresolved.chooseVariablesWithout`,{condition:t}))];t.decisions.filter(e=>!e.boundaryId&&e.takes.length===0&&e.avoids.length===0).forEach(t=>a.push(e(`app.testCases.unresolved.noConditionForTheWay`,{decision:t.decision,way:t.way})));for(let e of[t.startId,...t.stepIds]){let t=n.get(e)?.correlationKey?.replace(/^=/,``).trim();t&&/^[A-Za-z_]\w*$/.test(t)&&i[t]===void 0&&(i[t]=`${t}-1`)}return{values:i,unresolved:a}}function ae(e,t){let n=e.correlationKey?.replace(/^=/,``).trim()??``;return/^[A-Za-z_]\w*$/.test(n)&&t[n]!==void 0?String(t[n]):/^"[^"]*"$/.test(n)?n.slice(1,-1):`correlation-key`}function B(e){return!!(e.job||e.external)}function oe(e){return!!(e.delegateClass||e.delegateExpression||e.expression)}function V(e,t){let n=/* @__PURE__ */ new Set,r=[...t];for(;r.length>0;){let t=r.pop();n.has(t)||(n.add(t),r.push(...e.get(t)?.follows??[]))}return n}function se(e,t){let n=[...e.stepIds];for(let r of e.stepIds){let e=t.get(r);if(!e?.host||e.interrupting!==!1)continue;let i=e.host,a=V(t,t.get(i)?.follows??[]),o=[...V(t,e.follows??[])].filter(e=>!a.has(e)&&n.includes(e));if(o.length===0)continue;let s=Math.max(...o.map(e=>n.indexOf(e))),c=n.indexOf(i);c<0||c>s||(n.splice(c,1),n.splice(s,0,i))}return n}const ce=/* @__PURE__ */ new Set([`message`,`timer`,`signal`]);function le(e){return/^[aeiou]/i.test(e)?`an`:`a`}function ue(t){let n=`app.testCases.kind.${t}`,r=e(n);return r===n?`${le(t)} ${t} event`:r}function H(t,n,r){let i=n.get(t.startId),a=!!i?.event&&i.event!==`none`;if(a&&!ce.has(i.event)){let t=i.event;return{problem:e(`app.testCases.startsOnAnEvent`,{kind:ue(t)})}}let{values:o,unresolved:s}=r?{values:r,unresolved:[]}:z(t,n),c=new Map(t.decisions.filter(e=>e.boundaryId).map(e=>[e.decisionId,n.get(e.boundaryId)])),l=[{type:`CREATE_PROCESS_INSTANCE`,processDefinitionSelector:{processDefinitionId:t.process},variables:L(o),...a?{startInstructions:[{elementId:t.startId}]}:{}}],u={},d=[],f=new Set(t.stepIds.map(e=>n.get(e)?.host).filter(e=>!!e)),p=e=>e.job??e.external,m=e=>[...n.values()].filter(t=>p(t)===p(e)).length>1,h=e=>{let t=e?n.get(e):void 0;t&&B(t)&&(u[t.id]={then:`hold`})};for(let r of se(t,n)){let t=n.get(r);if(!t)continue;if(t.host){t.event===`error`&&l.push({type:`THROW_BPMN_ERROR_FROM_JOB`,jobSelector:{elementId:t.host},errorCode:t.errorCode||`ANY_ERROR`}),t.event===`timer`&&(u[r]={then:`fire`},t.interrupting!==!1&&h(t.host)),t.event===`message`&&t.message&&(l.push({type:`CORRELATE_MESSAGE`,name:t.message,correlationKey:ae(t,o)}),t.interrupting!==!1&&h(t.host)),t.event===`signal`&&t.signal&&(l.push({type:`BROADCAST_SIGNAL`,signalName:t.signal}),t.interrupting!==!1&&h(t.host)),d.push(r);continue}let i=c.get(r);i&&i.interrupting!==!1||(t.type===`bpmn:UserTask`&&!t.job&&!t.external?l.push({type:`COMPLETE_USER_TASK`,userTaskSelector:{elementId:r}}):B(t)&&t.repeats&&!f.has(r)&&!m(t)?l.push({type:`MOCK_JOB_WORKER_COMPLETE_JOB`,jobType:p(t)}):B(t)?(t.repeats&&s.push(e(`app.testCases.unresolved.runsOncePerItem`,{name:t.name??r})),l.push({type:`COMPLETE_JOB`,jobSelector:{elementId:r}})):oe(t)?u[r]={then:`complete`}:t.event===`message`&&t.message?l.push({type:`CORRELATE_MESSAGE`,name:t.message,correlationKey:ae(t,o)}):t.event===`timer`?u[r]={then:`fire`}:t.event===`signal`&&t.type.includes(`Catch`)&&t.signal&&l.push({type:`BROADCAST_SIGNAL`,signalName:t.signal}),d.push(r))}d.push(...t.endIds);let g={processDefinitionId:t.process};l.push({type:`ASSERT_ELEMENT_INSTANCES`,processInstanceSelector:g,elementSelectors:d.map(e=>({elementId:e})),state:`IS_COMPLETED`},{type:`ASSERT_PROCESS_INSTANCE`,processInstanceSelector:g,state:`IS_COMPLETED`});let _={name:R(t),instructions:l};return s.length&&(_.description=e(`app.testCases.toFillIn`,{unresolved:s.join(`; `)})),Object.keys(u).length&&(_[`x-penstock`]={behaviours:u}),{testCase:_}}function de(t,n){let r=p(t),i=/* @__PURE__ */ new Map,a=new Set((t?.rootElements??[]).filter(e=>e.$type===`bpmn:Process`&&e.isExecutable!==!1).map(e=>e.id)),o=v(t),s=ie(t,o.scenarios.filter(e=>a.has(e.process)),o.scenarios).filter(e=>!n||e.process===n).map(e=>({scenario:e,outcome:H(e,r)})),c=s.filter(e=>`problem`in e.outcome).map(({scenario:e,outcome:t})=>({scenario:e,problem:t.problem}));return{items:s.filter(e=>`testCase`in e.outcome).map(({scenario:t,outcome:n})=>{let r=(i.get(n.testCase.name)??0)+1;return i.set(n.testCase.name,r),{scenario:t,testCase:r===1?n.testCase:{...n.testCase,name:e(`app.testCases.numberedCaseName`,{name:n.testCase.name,seen:r})}}}),unplannable:c,capped:o.capped}}function U(e){let t=e.split(/[^A-Za-z0-9]+/).filter(Boolean).map(e=>e[0].toUpperCase()+e.slice(1)).join(``);return/^[0-9]/.test(t)?`P${t}`:t||`Process`}function W(e,t){let n=e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`).replace(/[\u0000-\u001f]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`);return`"${t?n.replace(/\$/g,`\\$`):n}"`}function G(e){return Number.isNaN(e)?`Double.NaN`:e===1/0?`Double.POSITIVE_INFINITY`:e===-1/0?`Double.NEGATIVE_INFINITY`:null}const K={name:`java`,extension:`java`,str:e=>W(e,!1),num:e=>G(e)??(Number.isInteger(e)?Math.abs(e)<=2147483647?String(e):Math.abs(e)<0x7ce66c50e2840000?`${e}L`:`${e}d`:`${e}d`),map:e=>e.length===0?`Map.of()`:`Map.ofEntries(${e.map(([e,t])=>`Map.entry(${e}, ${t})`).join(`, `)})`,let:(e,t,n)=>`${e} ${t} = ${n}`,end:`;`,delegate:`(JavaDelegate) execution -> {}`,array:e=>`{${e.join(`, `)}}`},q={name:`kotlin`,extension:`kt`,str:e=>W(e,!0),num:e=>G(e)??String(e),map:e=>`mapOf<String, Any>(${e.map(([e,t])=>`${e} to ${t}`).join(`, `)})`,let:(e,t,n)=>`val ${t} = ${n}`,end:``,delegate:`JavaDelegate { }`,array:e=>`[${e.join(`, `)}]`};function fe(e,t){return typeof t==`string`?e.str(t):typeof t==`boolean`?String(t):typeof t==`number`?e.num(t):J(e,t)}function J(e,t){return e.map(Object.entries(t).map(([t,n])=>[e.str(t),fe(e,n)]))}function pe(e,t){let n=(t??``).replace(/^=/,``).trim().replace(/^"|"$/g,``),r=/^R\d*\/(P.+)$/.exec(n),i=r?r[1]:n;return/^P(?!$)(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+(\.\d+)?S)?)?$/.test(i)?`Duration.parse(${e.str(i)})`:`Duration.ofDays(365)`}function Y(e){let t=E.resolve(e).split(E.sep).join(`/`),n=/\/src\/(?:main|test)\/resources\/(.+)$/.exec(t);return n?n[1]:E.basename(e)}function me(e,t){let n=w(e,t),r=[],i=e=>{for(let t of A(e,{withFileTypes:!0})){if(n(),m.has(t.name)||t.name.startsWith(`.`))continue;let a=E.join(e,t.name);t.isDirectory()?T(a)&&i(a):/\.(dmn|form)$/i.test(t.name)&&r.push(a)}};return i(e),r}function he(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map;for(let r of me(e)){let e=k(r,`utf8`);/\.dmn$/i.test(r)?M(`decision`,e).forEach(e=>t.set(e,r)):M(`form`,e).forEach(e=>n.set(e,r))}return{decisions:t,forms:n}}function ge(e,t,n){let r=t.correlationKey?.replace(/^=/,``).trim()??``;return/^[A-Za-z_]\w*$/.test(r)&&n[r]!==void 0?e.str(String(n[r])):/^"[^"]*"$/.test(r)?e.str(r.slice(1,-1)):e.str(`correlation-key`)}function _e(e,t,n){return t.stepIds.flatMap(t=>{let r=n.get(t);return r?.host===e&&r.interrupting===!1?[[t,r]]:[]})}function ve(e,t,n,r,i){let{values:a,unresolved:o}=z(t,i),s=J(e,L(a)),c=i.get(t.startId),l=new Map(t.decisions.filter(e=>e.boundaryId).map(e=>[e.decisionId,i.get(e.boundaryId)])),u=[],d=t=>u.push(` ${t.endsWith(`;`)?`${t.slice(0,-1)}${e.end}`:t}`);u.push(` @Test`,` @DisplayName(${e.str(R(t))})`,e.name===`kotlin`?` fun scenario${n+1}() {`:` void scenario${n+1}() {`),o.forEach(e=>d(`// TODO ${e}`)),t.stepIds.forEach(t=>{let n=i.get(t);n?.calledProcess&&d(`processTestContext.mockChildProcess(${e.str(n.calledProcess)});`)}),c?.event===`message`&&c.message?d(`client.newPublishMessageCommand().messageName(${e.str(c.message??``)}).withoutCorrelationKey().variables(${s}).send().join();`):d(`${e.let(`ProcessInstanceEvent`,`processInstance`,`client.newCreateInstanceCommand().bpmnProcessId(${e.str(r)}).latestVersion().variables(${s}).send().join()`)};`);let f=[],p=/* @__PURE__ */ new Set,m=(t,n)=>{p.add(t),n.event===`timer`&&d(`processTestContext.increaseTime(${pe(e,n.timer)});`),n.event===`message`&&d(`client.newPublishMessageCommand().messageName(${e.str(n.message??``)}).correlationKey(${ge(e,n,a)}).send().join();`),n.event===`signal`&&d(`client.newBroadcastSignalCommand().signalName(${e.str(n.signal??``)}).send().join();`),n.event===`error`&&d(`processTestContext.throwBpmnErrorFromJob(JobSelectors.byElementId(${e.str(n.host??``)}), ${e.str(n.errorCode??``)});`),[`timer`,`message`,`signal`,`error`].includes(n.event??``)||d(`// TODO trigger the ${n.event??`boundary`} event ${n.id}`),f.push(t)};for(let n of t.stepIds){let r=i.get(n);if(!r)continue;let o=l.get(n);if(r.host)p.has(n)||m(n,r);else if(!(o&&o.interrupting!==!1)){for(let[e,r]of _e(n,t,i))m(e,r);r.type===`bpmn:UserTask`?d(r.zeebeUserTask?`processTestContext.completeUserTask(UserTaskSelectors.byElementId(${e.str(n)}));`:`processTestContext.completeJob(JobSelectors.byElementId(${e.str(n)}));`):r.job?d(`processTestContext.completeJob(JobSelectors.byElementId(${e.str(n)}));`):r.event===`message`?d(`client.newPublishMessageCommand().messageName(${e.str(r.message??``)}).correlationKey(${ge(e,r,a)}).send().join();`):r.event===`timer`?d(`processTestContext.increaseTime(${pe(e,r.timer)});`):r.event===`signal`&&r.type.includes(`Catch`)&&d(`client.newBroadcastSignalCommand().signalName(${e.str(r.signal??``)}).send().join();`),f.push(n)}}return f.push(...t.endIds),d(`assertThat(${c?.event===`message`&&c.message?`ProcessInstanceSelectors.byProcessId(${e.str(r)})`:`processInstance`})`),d(` .isCompleted()`),d(` .hasCompletedElements(${f.map(t=>`byId(${e.str(t)})`).join(`, `)});`),u.push(` }`),u}function ye(e,t,n,r,i){let{values:a,unresolved:o}=z(t,i),s=J(e,L(a)),c=i.get(t.startId),l=new Map(t.decisions.filter(e=>e.boundaryId).map(e=>[e.decisionId,i.get(e.boundaryId)])),u=[],d=t=>u.push(` ${t.endsWith(`;`)?`${t.slice(0,-1)}${e.end}`:t}`);u.push(` @Test`,` @DisplayName(${e.str(R(t))})`,e.name===`kotlin`?` fun scenario${n+1}() {`:` void scenario${n+1}() {`),o.forEach(e=>d(`// TODO ${e}`)),new Set(t.stepIds.map(e=>i.get(e)?.delegateBean).filter(e=>!!e)).forEach(t=>d(`Mocks.register(${e.str(t)}, ${e.delegate});`)),d(c?.event===`message`&&c.message?`${e.let(`ProcessInstance`,`processInstance`,`runtimeService().startProcessInstanceByMessage(${e.str(c.message??``)}, ${s})`)};`:`${e.let(`ProcessInstance`,`processInstance`,`runtimeService().startProcessInstanceByKey(${e.str(r)}, ${s})`)};`),c?.asyncAfter&&d(`execute(job(${e.str(c.id)}, processInstance));`);let f=[c?.id??t.startId],p=/* @__PURE__ */ new Set,m=(t,n)=>{p.add(t),n.event===`timer`?d(`execute(job(${e.str(t)}, processInstance));`):n.event===`message`?d(`runtimeService().createMessageCorrelation(${e.str(n.message??``)}).processInstanceId(processInstance.getId()).correlate();`):n.event===`signal`?d(`runtimeService().signalEventReceived(${e.str(n.signal??``)});`):n.event===`error`&&i.get(n.host??``)?.external!==void 0?(d(`${e.let(`String`,`errorTask`,``)}externalTaskService().fetchAndLock(1, "penstock").topic(${e.str(i.get(n.host??``)?.external??``)}, 60000L).execute().get(0).getId();`),d(`externalTaskService().handleBpmnError(errorTask, "penstock", ${e.str(n.errorCode??``)});`)):d(`// TODO trigger the ${n.event??`boundary`} event ${t}`),f.push(t)};for(let n of t.stepIds){let r=i.get(n);if(!r)continue;let a=l.get(n);if(r.host)p.has(n)||m(n,r);else if(a&&a.interrupting!==!1)r.asyncBefore&&d(`execute(job(${e.str(n)}, processInstance));`);else{r.asyncBefore&&d(`execute(job(${e.str(n)}, processInstance));`);for(let[e,r]of _e(n,t,i))m(e,r);r.type===`bpmn:UserTask`?d(`complete(task(${e.str(n)}, processInstance));`):r.external===void 0?r.event===`message`?d(`runtimeService().createMessageCorrelation(${e.str(r.message??``)}).processInstanceId(processInstance.getId()).correlate();`):r.event===`timer`?d(`execute(job(${e.str(n)}, processInstance));`):r.event===`signal`&&r.type.includes(`Catch`)&&d(`runtimeService().signalEventReceived(${e.str(r.signal??``)});`):d(`complete(externalTask(${e.str(n)}, processInstance));`),r.asyncAfter&&d(`execute(job(${e.str(n)}, processInstance));`),f.push(n)}}return f.push(...t.endIds),d(`assertThat(processInstance).hasPassed(${f.map(t=>e.str(t)).join(`, `)}).isEnded();`),u.push(` }`),u}function be(e){return(e.rootElements??[]).filter(e=>e.$type===`bpmn:Process`&&e.isExecutable!==!1).map(e=>e.id??``)}function X(e,t){return t.map(t=>e.name===`kotlin`?`import ${t.replace(/^static /,``)}`:`import ${t};`)}function xe(e,t,n,r,i){let a=e.name===`kotlin`;return[a?`package ${t}`:`package ${t};`,``,...X(e,[`static io.camunda.process.test.api.CamundaAssert.assertThat`,`static io.camunda.process.test.api.assertions.ElementSelectors.byId`]),``,...X(e,[`io.camunda.client.CamundaClient`,...a?[]:[`io.camunda.client.api.response.ProcessInstanceEvent`],`io.camunda.process.test.api.CamundaProcessTest`,`io.camunda.process.test.api.CamundaProcessTestContext`,`io.camunda.process.test.api.TestDeployment`,`io.camunda.process.test.api.assertions.JobSelectors`,`io.camunda.process.test.api.assertions.ProcessInstanceSelectors`,`io.camunda.process.test.api.assertions.UserTaskSelectors`,`java.time.Duration`,...a?[]:[`java.util.Map`],`org.junit.jupiter.api.DisplayName`,`org.junit.jupiter.api.Test`]),``,`@CamundaProcessTest`,`@TestDeployment(resources = ${e.array(r.map(t=>e.str(t)))})`,`class ${n} {`,``,a?` private lateinit var client: CamundaClient`:` private CamundaClient client;`,a?` private lateinit var processTestContext: CamundaProcessTestContext`:` private CamundaProcessTestContext processTestContext;`,``,i.map(e=>e.join(`
|
|
2
|
-
`)).join(`
|
|
3
|
-
|
|
4
|
-
`),`}`,``].join(`
|
|
5
|
-
`)}function Se(e,t,n,r,a,o,s){let c=t.name===`kotlin`,l=i(e);return[c?`package ${n}`:`package ${n};`,``,...X(t,[`static ${l}.bpm.engine.test.assertions.bpmn.BpmnAwareTests.*`]),``,...X(t,[...c?[]:[`java.util.Map`],...s?[`${l}.bpm.engine.delegate.JavaDelegate`]:[],...c?[]:[`${l}.bpm.engine.runtime.ProcessInstance`],`${l}.bpm.engine.test.Deployment`,`${l}.bpm.engine.test.junit5.ProcessEngineExtension`,...s?[`${l}.bpm.engine.test.mock.Mocks`]:[],`org.junit.jupiter.api.DisplayName`,`org.junit.jupiter.api.Test`,`org.junit.jupiter.api.extension.ExtendWith`]),``,c?`@ExtendWith(ProcessEngineExtension::class)`:`@ExtendWith(ProcessEngineExtension.class)`,`@Deployment(resources = ${t.array(a.map(e=>t.str(e)))})`,`class ${r} {`,``,o.map(e=>e.join(`
|
|
6
|
-
`)).join(`
|
|
7
|
-
|
|
8
|
-
`),`}`,``].join(`
|
|
9
|
-
`)}const Ce=e=>{let t=i(e);return`<?xml version="1.0" encoding="UTF-8"?>
|
|
10
|
-
<beans xmlns="http://www.springframework.org/schema/beans"
|
|
11
|
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
12
|
-
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
|
13
|
-
<bean id="processEngineConfiguration" class="${t}.bpm.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
|
|
14
|
-
<property name="jdbcUrl" value="jdbc:h2:mem:penstock;DB_CLOSE_DELAY=1000" />
|
|
15
|
-
<property name="databaseSchemaUpdate" value="true" />
|
|
16
|
-
<property name="jobExecutorActivate" value="false" />
|
|
17
|
-
<property name="historyTimeToLive" value="P180D" />
|
|
18
|
-
<property name="expressionManager">
|
|
19
|
-
<bean class="${t}.bpm.engine.test.mock.MockExpressionManager" />
|
|
20
|
-
</property>
|
|
21
|
-
</bean>
|
|
22
|
-
</beans>
|
|
23
|
-
`},we=[`build.gradle.kts`,`build.gradle`,`pom.xml`];function Z(e){let{bpmGroup:t,version:n,client:r}=c[e],i=r.replace(/-external-task-client$/,``);return[`${t}:${i}-bpm-junit5:${n}`,`${t}:${i}-bpm-assert:${n}`,`org.assertj:assertj-core:3.26.3`,`com.h2database:h2:2.3.232`]}const Te={"camunda-8":{present:/camunda-process-test/,needed:[`io.camunda:camunda-process-test-java:8.9.21`]},"camunda-7":{present:/camunda-bpm-assert|camunda-bpm-spring-boot-starter-test/,needed:Z(`camunda-7`)},operaton:{present:/operaton-bpm-assert|operaton-bpm-spring-boot-starter-test/,needed:Z(`operaton`)},"cib-seven":{present:/cibseven-bpm-assert|cibseven-bpm-spring-boot-starter-test/,needed:Z(`cib-seven`)},classic:{present:/.*/,needed:[]},flowable:{present:/.*/,needed:[]},activiti:{present:/.*/,needed:[]}};function Q(e){return we.map(t=>E.join(e,t)).find(e=>D(e))}function Ee(e,t){let n=E.dirname(E.resolve(e));for(;;){if(Q(n))return n;let e=E.dirname(n);if(e===n)return t;n=e}}function De(e){for(let t of[`test`,`main`]){if(D(E.join(e,`src`,t,`kotlin`)))return`kotlin`;if(D(E.join(e,`src`,t,`java`)))return`java`}let t=Q(e);return t&&/org\.jetbrains\.kotlin|kotlin\(\s*"jvm"\s*\)/.test(k(t,`utf8`))?`kotlin`:`java`}function Oe(e,t=[]){if(!D(e)||t.length>=ke)return t;for(let n of A(e,{withFileTypes:!0})){if(n.name.startsWith(`.`))continue;let r=E.join(e,n.name);n.isDirectory()?T(r)&&Oe(r,t):/\.(java|kt)$/.test(n.name)&&t.length<ke&&t.push(r)}return t}const ke=2e3;function Ae(e){let t=[];for(let n of[`java`,`kotlin`].flatMap(t=>Oe(E.join(e,`src`,`main`,t)))){let e=k(n,`utf8`),r=/^\s*package\s+([\w.]+)/m.exec(e)?.[1];if(r){if(e.includes(`@SpringBootApplication`))return r;t.push(r)}}if(t.length===0)return;let n=t[0].split(`.`);for(let e of t){let t=e.split(`.`),r=0;for(;r<n.length&&t[r]===n[r];)r+=1;n=n.slice(0,r)}return n.length>0?n.join(`.`):void 0}function je(e,t){let n=te(e),r=x(n.values.tests),i=Ee(e,n.root),a=b(r.language)?.toLowerCase(),o=a===`kotlin`||a===`java`?a:De(i),s=t.out?E.resolve(t.out):b(r.out)?E.resolve(n.root,b(r.out)):E.join(i,`src`,`test`,o),c=Ae(i),l=t.pkg??b(r.package)??(c?`${c}.process`:`processes`);return{module:i,language:o===`kotlin`?q:K,out:s,pkg:l}}async function $(n,i){let c=[],p=[],m=/* @__PURE__ */ new Map,h=/* @__PURE__ */ new Map,g=/* @__PURE__ */ new Map,_=/* @__PURE__ */ new Set;for(let v of n){let n=je(v,i),x=m.get(n.module)??he(n.module);m.set(n.module,x);let w=n.language,T=a(b(te(v).values.engine))??`camunda-8`;if(o(T)){c.push(`${t(`skip`).padEnd(5)} ${S(v)} ${e(`app.output.noGeneratedTests`,{engine:l(T)})}`);continue}h.set(n.module,(h.get(n.module)??/* @__PURE__ */ new Set).add(T));let D,A;try{({rootElement:D,elementsById:A}=await r(d(T)).fromXML(k(v,`utf8`)))}catch(e){c.push(ee(S(v),e));continue}let M=new Map(Object.values(A).filter(e=>e.id).map(e=>[e.id,f(e)])),N=be(D),P=y(D).filter(e=>N.includes(e.process));for(let t of N){let r=P.filter(e=>e.process===t);if(r.length===0)continue;let i=/* @__PURE__ */ new Set([Y(v)]);for(let e of M.values())e.decision&&x.decisions.has(e.decision)&&i.add(Y(x.decisions.get(e.decision))),T===`camunda-8`&&e.form&&x.forms.has(e.form)&&i.add(Y(x.forms.get(e.form)));let a=`${U(t)}Test`,o=e=>E.join(n.out,...n.pkg.split(`.`),`${e}.${w.extension}`),l=_.has(o(a))?`${U(E.basename(v).replace(/\.bpmn(20)?(\.xml)?$/i,``))}${a}`:a,d=o(l);_.add(d);let f=r.map((e,n)=>s(T)?ye(w,e,n,t,M):ve(w,e,n,t,M)),m=s(T)&&f.some(e=>e.some(e=>e.includes(`Mocks.register`))),h=s(T)?Se(T,w,n.pkg,l,[...i],f,m):xe(w,n.pkg,l,[...i],f);O(E.dirname(d),{recursive:!0}),j(d,h);let y=f.reduce((e,t)=>e+t.filter(e=>e.includes(`// TODO`)).length,0);p.push({file:d,process:t,scenarios:r.length,unresolved:y}),c.push(e(`app.output.wroteScenarios`,{file:S(d),scenarios:C(r.length,`app.output.count.scenario`),toFillIn:y?e(`app.output.andToFillIn`,{count:y}):``})),s(T)&&g.set(E.join(E.dirname(n.out),`resources`,u(T)),T)}}for(let[t,n]of g)D(t)||(O(E.dirname(t),{recursive:!0}),j(t,Ce(n)),c.push(e(`app.output.wroteTestEngine`,{file:S(t)})));for(let[t,n]of h){let r=Q(t),i=r?k(r,`utf8`):``;for(let t of n){let{present:n,needed:a}=Te[t];n.test(i)||c.push(``,e(`app.output.testsNeedDependencies`,{where:r?e(`app.output.inFile`,{file:S(r)}):``}),...a.map(e=>` ${e}`))}}return{written:p,lines:c}}async function Me(t,r){let{written:i,lines:a}=await $(t,r);if(i.length===0)return{ok:!1,lines:[...a,e(`app.output.noProcessWithAPath`)]};let o=i.map(t=>({file:S(t.file),process:t.process,scenarios:String(t.scenarios),status:t.unresolved?e(`app.output.toFillIn`,{count:t.unresolved}):e(`app.output.complete`)})),s=n(o,{columns:[{name:`file`,header:e(`app.cli.header.testClass`),minWidth:24},{name:`process`,header:e(`app.cli.header.process`),minWidth:16},{name:`scenarios`,header:e(`app.cli.header.scenarios`),align:`right`,minWidth:9},{name:`status`,header:e(`app.cli.header.status`),minWidth:14}]}),c=i.reduce((e,t)=>e+t.scenarios,0),l=a.filter(e=>!e.startsWith(`wrote `));return{ok:!0,lines:[...s,``,e(`app.output.testsSummary`,{tests:C(c,`app.output.count.test`),classes:C(i.length,`app.output.count.class`)}),...l]}}export{M as _,Y as a,Ee as c,je as d,Me as f,H as g,z as h,Q as i,U as l,L as m,K as n,me as o,de as p,q as r,$ as s,Te as t,he as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{f as testsCommand}from"./chunk-tests-CEEXnWOp.js";
|