@runcofactor/cli 0.52.0 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/{account-3ZG24MOE.js → account-MRZ54P5P.js} +5 -5
- package/dist/{alert-5G7PTAX2.js → alert-XBHELHEI.js} +8 -8
- package/dist/{api-catalog-IBYAFKKQ.js → api-catalog-GWYRX53L.js} +5 -5
- package/dist/{api-key-UXC44BDR.js → api-key-FH6JN447.js} +5 -5
- package/dist/{attachment-T6IRFQW3.js → attachment-J7GRVT5F.js} +5 -5
- package/dist/{auth-SHOCJE6Z.js → auth-VZZQXRDR.js} +3 -3
- package/dist/{benchmark-NJ2U6VTC.js → benchmark-A3SNDARF.js} +5 -5
- package/dist/{blackcat-RQJVFGXQ.js → blackcat-UM6TBQBN.js} +3 -3
- package/dist/{chunk-DHAGRM2F.js → chunk-33U56YGD.js} +14 -5
- package/dist/{chunk-DHAGRM2F.js.map → chunk-33U56YGD.js.map} +1 -1
- package/dist/{chunk-M752EUK3.js → chunk-3JU4UYYN.js} +5 -5
- package/dist/{chunk-G6BCST3G.js → chunk-3ZOUNCA5.js} +7 -7
- package/dist/{chunk-76Z6E7XX.js → chunk-4UZN6TVT.js} +74 -131
- package/dist/chunk-4UZN6TVT.js.map +1 -0
- package/dist/{chunk-ABT3BLRC.js → chunk-5TKXHS3X.js} +3 -3
- package/dist/{chunk-QCYSONXI.js → chunk-CRYHWO4M.js} +2 -2
- package/dist/{chunk-QTYUM4ZB.js → chunk-EJ3ZPH5U.js} +23 -187
- package/dist/chunk-EJ3ZPH5U.js.map +1 -0
- package/dist/{chunk-I5RHTCPY.js → chunk-EL6KJ4PO.js} +4 -4
- package/dist/{chunk-ZL4O6C42.js → chunk-HXBK3AGD.js} +2 -2
- package/dist/{chunk-PRERH4DN.js → chunk-I2SOHQ2C.js} +3 -3
- package/dist/{chunk-CYSPCGO6.js → chunk-JEHHEMUL.js} +5 -5
- package/dist/{chunk-LIEADTEF.js → chunk-LJFVRJCA.js} +2 -2
- package/dist/{chunk-UEJ2HTKU.js → chunk-MJVUMVLO.js} +19 -1
- package/dist/chunk-MJVUMVLO.js.map +1 -0
- package/dist/chunk-N55RKCGR.js +24 -0
- package/dist/chunk-N55RKCGR.js.map +1 -0
- package/dist/{chunk-PHNH3CEU.js → chunk-O4Z44BR7.js} +5 -5
- package/dist/{chunk-QA37WVF6.js → chunk-OQFCZERZ.js} +6 -6
- package/dist/{chunk-EUVB6Y3C.js → chunk-P7L5KELH.js} +8 -8
- package/dist/chunk-P7L5KELH.js.map +1 -0
- package/dist/{chunk-Z3MDQSZG.js → chunk-PJFFGQSB.js} +2 -2
- package/dist/{chunk-IY3ZK46I.js → chunk-QOVJUSSL.js} +2 -2
- package/dist/{chunk-RPJMQBB5.js → chunk-QXU4G4YN.js} +3 -3
- package/dist/{chunk-SZSTJIYU.js → chunk-RRSUKARV.js} +4 -4
- package/dist/{chunk-775FI436.js → chunk-RVD6J6IZ.js} +2 -2
- package/dist/{chunk-5UUIBY6E.js → chunk-TAVBFLCR.js} +3 -3
- package/dist/{chunk-ROX7N3RK.js → chunk-V7HB5LAU.js} +10 -7
- package/dist/chunk-V7HB5LAU.js.map +1 -0
- package/dist/{chunk-LL6TSQWV.js → chunk-VKZOHJCE.js} +3 -3
- package/dist/chunk-VKZOHJCE.js.map +1 -0
- package/dist/{chunk-3HI6QC4V.js → chunk-WRBU6TX7.js} +2 -2
- package/dist/{proofs-TXJGAP5F.js → chunk-X7SUSIY3.js} +118 -20
- package/dist/chunk-X7SUSIY3.js.map +1 -0
- package/dist/{chunk-BF3IPGMP.js → chunk-XSSZMG65.js} +4 -4
- package/dist/{credential-TWSWV64F.js → credential-4RFRU6OH.js} +5 -5
- package/dist/{credential-template-XO5D5AI3.js → credential-template-36PFUTBN.js} +5 -5
- package/dist/{digest-SLEFOLPV.js → digest-THMKFMP7.js} +8 -8
- package/dist/{docs-IDC4V4WQ.js → docs-ZGM53L67.js} +5 -5
- package/dist/{doctor-SDAYEA6C.js → doctor-Z2XBGBM3.js} +3 -3
- package/dist/{environment-VBUIBQ6O.js → environment-5YVZXBN7.js} +7 -7
- package/dist/eval-SO5TPD37.js +1177 -0
- package/dist/eval-SO5TPD37.js.map +1 -0
- package/dist/{exploration-IREIR5PO.js → exploration-GZ4WUJJH.js} +5 -5
- package/dist/{exploratory-test-4Q7BMEFT.js → exploratory-test-Y7P4ZDLD.js} +5 -5
- package/dist/{external-run-S7LULKPT.js → external-run-IJGGZOGI.js} +7 -7
- package/dist/{feature-flag-IASHTUGU.js → feature-flag-UH6Z7774.js} +5 -5
- package/dist/{flow-IBEZFZTU.js → flow-MRWAQYZZ.js} +5 -5
- package/dist/{github-HAEZRULP.js → github-VDJU3PU3.js} +6 -6
- package/dist/index.js +101 -82
- package/dist/index.js.map +1 -1
- package/dist/{init-LT2TZMQY.js → init-CROSTPA6.js} +5 -5
- package/dist/{install-RTEYH6TK.js → install-ECR7OLAY.js} +5 -5
- package/dist/{issues-5GE277R2.js → issues-K5TL2S4Z.js} +7 -7
- package/dist/{knobs-AMIWGYUZ.js → knobs-OKQFBQLK.js} +5 -5
- package/dist/{landing-3VLVVQL5.js → landing-XANIBPVM.js} +7 -7
- package/dist/{list-GDJR6UY6.js → list-64GX47Q4.js} +5 -5
- package/dist/{local-4R6GVW7U.js → local-QMQY2ZUX.js} +7 -7
- package/dist/{login-IXVAWTLO.js → login-I7UQ3GTM.js} +5 -5
- package/dist/{mcp-BM2MJWX4.js → mcp-XZV63DX5.js} +11 -11
- package/dist/{mcp-BM2MJWX4.js.map → mcp-XZV63DX5.js.map} +1 -1
- package/dist/{metrics-SSIP5CEB.js → metrics-KBTQ3KGZ.js} +5 -5
- package/dist/{monitor-ESZYHXT2.js → monitor-UGWY43IU.js} +5 -5
- package/dist/perf-CCHWHCSR.js +961 -0
- package/dist/perf-CCHWHCSR.js.map +1 -0
- package/dist/{product-VCGUV5TH.js → product-KLG2ZTHC.js} +5 -5
- package/dist/{product-map-AXKZNQDM.js → product-map-AMEZ76EQ.js} +5 -5
- package/dist/{prompts-FVPSON2N.js → prompts-ZVQNGL7X.js} +5 -5
- package/dist/proofs-QCNSQAPX.js +20 -0
- package/dist/{property-XEPCC7KQ.js → property-PJDQFHAL.js} +6 -6
- package/dist/{psql-JKF3OYYJ.js → psql-AURAN27C.js} +5 -5
- package/dist/{record-REQ37S54.js → record-SYWBTUOB.js} +6 -6
- package/dist/{redis-WGHT2GJB.js → redis-2H752SKO.js} +5 -5
- package/dist/{release-SNDIVIA6.js → release-OSIYUXSC.js} +5 -5
- package/dist/{runbook-XFJG2LFC.js → runbook-7LVHF6KV.js} +5 -5
- package/dist/{sandbox-DYCKLCMY.js → sandbox-TJQPMRGS.js} +18 -30
- package/dist/sandbox-TJQPMRGS.js.map +1 -0
- package/dist/{scenarios-PVHCKP55.js → scenarios-P2ABU4HK.js} +5 -5
- package/dist/{schedule-DGC7CX23.js → schedule-XLS56NP5.js} +8 -8
- package/dist/{session-ERGUFDDI.js → session-ACSFC3UB.js} +8 -8
- package/dist/{skill-6QO2E3TB.js → skill-F7I5P6AI.js} +43 -28
- package/dist/{skill-6QO2E3TB.js.map → skill-F7I5P6AI.js.map} +1 -1
- package/dist/{slack-WE7THLLH.js → slack-ZEK4GRND.js} +6 -6
- package/dist/{spec-SEOY7N3L.js → spec-XPIRRSV6.js} +5 -5
- package/dist/{src-CCK3TKBX.js → src-N7ZCYCXU.js} +4 -4
- package/dist/{src-AEWV5HYH.js → src-XSBBMVGW.js} +3 -3
- package/dist/{start-EPGLHTND.js → start-DKWLOQI6.js} +5 -5
- package/dist/{status-DTE2GXM2.js → status-K7KH5DI3.js} +5 -5
- package/dist/{tag-GIFEWGBL.js → tag-2Y3OMQQC.js} +6 -6
- package/dist/{task-VLJCHSFB.js → task-4PIOC4QV.js} +6 -6
- package/dist/{teams-J2OOJBL4.js → teams-KUM56BE2.js} +83 -47
- package/dist/teams-KUM56BE2.js.map +1 -0
- package/dist/{test-suite-CTACGIAZ.js → test-suite-SW25YGJV.js} +138 -96
- package/dist/test-suite-SW25YGJV.js.map +1 -0
- package/dist/{trace-RWQDYL4K.js → trace-QPXHYBLA.js} +7 -7
- package/dist/{triage-6UAXLCGU.js → triage-EZABRZZM.js} +6 -6
- package/dist/trigger-7C7KX5KH.js +137 -0
- package/dist/trigger-7C7KX5KH.js.map +1 -0
- package/dist/{update-check-QRREAM3N.js → update-check-E3X7UIY6.js} +3 -3
- package/dist/{upgrade-5Y655TQ6.js → upgrade-EJGTMW44.js} +4 -4
- package/dist/{usage-KCXFY46V.js → usage-GZCQDULF.js} +7 -7
- package/dist/{utilities-SUON2KZK.js → utilities-RIITD53A.js} +6 -6
- package/dist/{visual-GJZVJC32.js → visual-FH67OKS2.js} +5 -5
- package/dist/{workflow-R5QAXWBX.js → workflow-34YJZ2QQ.js} +38 -86
- package/dist/workflow-34YJZ2QQ.js.map +1 -0
- package/dist/{workflow-cache-PFBTWLGM.js → workflow-cache-YQ3BGJIG.js} +17 -17
- package/dist/{workflow-cache-convergence-resolve-UZGRPC3B.js → workflow-cache-convergence-resolve-SPLBRSNK.js} +5 -5
- package/dist/{workflow-debug-RACNWWOL.js → workflow-debug-HZB7TJGK.js} +10 -10
- package/dist/workflow-debug-HZB7TJGK.js.map +1 -0
- package/dist/{workflow-feedback-RJIQ5R3R.js → workflow-feedback-6UOTIWIQ.js} +5 -5
- package/dist/{workflow-fork-LINDCYJ3.js → workflow-fork-IDYHAHCX.js} +5 -5
- package/dist/workflow-promotion-U6WYFY5U.js +62 -0
- package/dist/workflow-promotion-U6WYFY5U.js.map +1 -0
- package/dist/{workflow-proposals-E4EXKAGM.js → workflow-proposals-MMVNIQT3.js} +5 -5
- package/dist/{workflow-revisions-5M6APN6R.js → workflow-revisions-BPUOLCZB.js} +5 -5
- package/dist/{workflow-status-7KL73WS2.js → workflow-status-RA3IEMEW.js} +5 -5
- package/package.json +3 -2
- package/dist/chat-target-IZ7YLLU3.js +0 -502
- package/dist/chat-target-IZ7YLLU3.js.map +0 -1
- package/dist/chunk-76Z6E7XX.js.map +0 -1
- package/dist/chunk-EUVB6Y3C.js.map +0 -1
- package/dist/chunk-LL6TSQWV.js.map +0 -1
- package/dist/chunk-QTYUM4ZB.js.map +0 -1
- package/dist/chunk-ROX7N3RK.js.map +0 -1
- package/dist/chunk-UEJ2HTKU.js.map +0 -1
- package/dist/proofs-TXJGAP5F.js.map +0 -1
- package/dist/sandbox-DYCKLCMY.js.map +0 -1
- package/dist/teams-J2OOJBL4.js.map +0 -1
- package/dist/test-suite-CTACGIAZ.js.map +0 -1
- package/dist/workflow-R5QAXWBX.js.map +0 -1
- /package/dist/{account-3ZG24MOE.js.map → account-MRZ54P5P.js.map} +0 -0
- /package/dist/{alert-5G7PTAX2.js.map → alert-XBHELHEI.js.map} +0 -0
- /package/dist/{api-catalog-IBYAFKKQ.js.map → api-catalog-GWYRX53L.js.map} +0 -0
- /package/dist/{api-key-UXC44BDR.js.map → api-key-FH6JN447.js.map} +0 -0
- /package/dist/{attachment-T6IRFQW3.js.map → attachment-J7GRVT5F.js.map} +0 -0
- /package/dist/{auth-SHOCJE6Z.js.map → auth-VZZQXRDR.js.map} +0 -0
- /package/dist/{benchmark-NJ2U6VTC.js.map → benchmark-A3SNDARF.js.map} +0 -0
- /package/dist/{blackcat-RQJVFGXQ.js.map → blackcat-UM6TBQBN.js.map} +0 -0
- /package/dist/{chunk-M752EUK3.js.map → chunk-3JU4UYYN.js.map} +0 -0
- /package/dist/{chunk-G6BCST3G.js.map → chunk-3ZOUNCA5.js.map} +0 -0
- /package/dist/{chunk-ABT3BLRC.js.map → chunk-5TKXHS3X.js.map} +0 -0
- /package/dist/{chunk-QCYSONXI.js.map → chunk-CRYHWO4M.js.map} +0 -0
- /package/dist/{chunk-I5RHTCPY.js.map → chunk-EL6KJ4PO.js.map} +0 -0
- /package/dist/{chunk-ZL4O6C42.js.map → chunk-HXBK3AGD.js.map} +0 -0
- /package/dist/{chunk-PRERH4DN.js.map → chunk-I2SOHQ2C.js.map} +0 -0
- /package/dist/{chunk-CYSPCGO6.js.map → chunk-JEHHEMUL.js.map} +0 -0
- /package/dist/{chunk-LIEADTEF.js.map → chunk-LJFVRJCA.js.map} +0 -0
- /package/dist/{chunk-PHNH3CEU.js.map → chunk-O4Z44BR7.js.map} +0 -0
- /package/dist/{chunk-QA37WVF6.js.map → chunk-OQFCZERZ.js.map} +0 -0
- /package/dist/{chunk-Z3MDQSZG.js.map → chunk-PJFFGQSB.js.map} +0 -0
- /package/dist/{chunk-IY3ZK46I.js.map → chunk-QOVJUSSL.js.map} +0 -0
- /package/dist/{chunk-RPJMQBB5.js.map → chunk-QXU4G4YN.js.map} +0 -0
- /package/dist/{chunk-SZSTJIYU.js.map → chunk-RRSUKARV.js.map} +0 -0
- /package/dist/{chunk-775FI436.js.map → chunk-RVD6J6IZ.js.map} +0 -0
- /package/dist/{chunk-5UUIBY6E.js.map → chunk-TAVBFLCR.js.map} +0 -0
- /package/dist/{chunk-3HI6QC4V.js.map → chunk-WRBU6TX7.js.map} +0 -0
- /package/dist/{chunk-BF3IPGMP.js.map → chunk-XSSZMG65.js.map} +0 -0
- /package/dist/{credential-TWSWV64F.js.map → credential-4RFRU6OH.js.map} +0 -0
- /package/dist/{credential-template-XO5D5AI3.js.map → credential-template-36PFUTBN.js.map} +0 -0
- /package/dist/{digest-SLEFOLPV.js.map → digest-THMKFMP7.js.map} +0 -0
- /package/dist/{docs-IDC4V4WQ.js.map → docs-ZGM53L67.js.map} +0 -0
- /package/dist/{doctor-SDAYEA6C.js.map → doctor-Z2XBGBM3.js.map} +0 -0
- /package/dist/{environment-VBUIBQ6O.js.map → environment-5YVZXBN7.js.map} +0 -0
- /package/dist/{exploration-IREIR5PO.js.map → exploration-GZ4WUJJH.js.map} +0 -0
- /package/dist/{exploratory-test-4Q7BMEFT.js.map → exploratory-test-Y7P4ZDLD.js.map} +0 -0
- /package/dist/{external-run-S7LULKPT.js.map → external-run-IJGGZOGI.js.map} +0 -0
- /package/dist/{feature-flag-IASHTUGU.js.map → feature-flag-UH6Z7774.js.map} +0 -0
- /package/dist/{flow-IBEZFZTU.js.map → flow-MRWAQYZZ.js.map} +0 -0
- /package/dist/{github-HAEZRULP.js.map → github-VDJU3PU3.js.map} +0 -0
- /package/dist/{init-LT2TZMQY.js.map → init-CROSTPA6.js.map} +0 -0
- /package/dist/{install-RTEYH6TK.js.map → install-ECR7OLAY.js.map} +0 -0
- /package/dist/{issues-5GE277R2.js.map → issues-K5TL2S4Z.js.map} +0 -0
- /package/dist/{knobs-AMIWGYUZ.js.map → knobs-OKQFBQLK.js.map} +0 -0
- /package/dist/{landing-3VLVVQL5.js.map → landing-XANIBPVM.js.map} +0 -0
- /package/dist/{list-GDJR6UY6.js.map → list-64GX47Q4.js.map} +0 -0
- /package/dist/{local-4R6GVW7U.js.map → local-QMQY2ZUX.js.map} +0 -0
- /package/dist/{login-IXVAWTLO.js.map → login-I7UQ3GTM.js.map} +0 -0
- /package/dist/{metrics-SSIP5CEB.js.map → metrics-KBTQ3KGZ.js.map} +0 -0
- /package/dist/{monitor-ESZYHXT2.js.map → monitor-UGWY43IU.js.map} +0 -0
- /package/dist/{product-VCGUV5TH.js.map → product-KLG2ZTHC.js.map} +0 -0
- /package/dist/{product-map-AXKZNQDM.js.map → product-map-AMEZ76EQ.js.map} +0 -0
- /package/dist/{prompts-FVPSON2N.js.map → prompts-ZVQNGL7X.js.map} +0 -0
- /package/dist/{src-AEWV5HYH.js.map → proofs-QCNSQAPX.js.map} +0 -0
- /package/dist/{property-XEPCC7KQ.js.map → property-PJDQFHAL.js.map} +0 -0
- /package/dist/{psql-JKF3OYYJ.js.map → psql-AURAN27C.js.map} +0 -0
- /package/dist/{record-REQ37S54.js.map → record-SYWBTUOB.js.map} +0 -0
- /package/dist/{redis-WGHT2GJB.js.map → redis-2H752SKO.js.map} +0 -0
- /package/dist/{release-SNDIVIA6.js.map → release-OSIYUXSC.js.map} +0 -0
- /package/dist/{runbook-XFJG2LFC.js.map → runbook-7LVHF6KV.js.map} +0 -0
- /package/dist/{scenarios-PVHCKP55.js.map → scenarios-P2ABU4HK.js.map} +0 -0
- /package/dist/{schedule-DGC7CX23.js.map → schedule-XLS56NP5.js.map} +0 -0
- /package/dist/{session-ERGUFDDI.js.map → session-ACSFC3UB.js.map} +0 -0
- /package/dist/{slack-WE7THLLH.js.map → slack-ZEK4GRND.js.map} +0 -0
- /package/dist/{spec-SEOY7N3L.js.map → spec-XPIRRSV6.js.map} +0 -0
- /package/dist/{src-CCK3TKBX.js.map → src-N7ZCYCXU.js.map} +0 -0
- /package/dist/{tag-GIFEWGBL.js.map → src-XSBBMVGW.js.map} +0 -0
- /package/dist/{start-EPGLHTND.js.map → start-DKWLOQI6.js.map} +0 -0
- /package/dist/{status-DTE2GXM2.js.map → status-K7KH5DI3.js.map} +0 -0
- /package/dist/{trace-RWQDYL4K.js.map → tag-2Y3OMQQC.js.map} +0 -0
- /package/dist/{task-VLJCHSFB.js.map → task-4PIOC4QV.js.map} +0 -0
- /package/dist/{triage-6UAXLCGU.js.map → trace-QPXHYBLA.js.map} +0 -0
- /package/dist/{update-check-QRREAM3N.js.map → triage-EZABRZZM.js.map} +0 -0
- /package/dist/{upgrade-5Y655TQ6.js.map → update-check-E3X7UIY6.js.map} +0 -0
- /package/dist/{utilities-SUON2KZK.js.map → upgrade-EJGTMW44.js.map} +0 -0
- /package/dist/{usage-KCXFY46V.js.map → usage-GZCQDULF.js.map} +0 -0
- /package/dist/{workflow-debug-RACNWWOL.js.map → utilities-RIITD53A.js.map} +0 -0
- /package/dist/{visual-GJZVJC32.js.map → visual-FH67OKS2.js.map} +0 -0
- /package/dist/{workflow-cache-PFBTWLGM.js.map → workflow-cache-YQ3BGJIG.js.map} +0 -0
- /package/dist/{workflow-cache-convergence-resolve-UZGRPC3B.js.map → workflow-cache-convergence-resolve-SPLBRSNK.js.map} +0 -0
- /package/dist/{workflow-feedback-RJIQ5R3R.js.map → workflow-feedback-6UOTIWIQ.js.map} +0 -0
- /package/dist/{workflow-fork-LINDCYJ3.js.map → workflow-fork-IDYHAHCX.js.map} +0 -0
- /package/dist/{workflow-proposals-E4EXKAGM.js.map → workflow-proposals-MMVNIQT3.js.map} +0 -0
- /package/dist/{workflow-revisions-5M6APN6R.js.map → workflow-revisions-BPUOLCZB.js.map} +0 -0
- /package/dist/{workflow-status-7KL73WS2.js.map → workflow-status-RA3IEMEW.js.map} +0 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { createRequire as __cr } from "module"; import { fileURLToPath as __fup } from "url"; import { dirname as __dn } from "path"; const require = __cr(import.meta.url); const __filename = __fup(import.meta.url); const __dirname = __dn(__filename);
|
|
2
2
|
import {
|
|
3
3
|
formatTeardownLines
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import {
|
|
6
|
-
fetchEnvironments,
|
|
7
|
-
resolveEnvironment
|
|
8
|
-
} from "./chunk-CYSPCGO6.js";
|
|
9
|
-
import "./chunk-775FI436.js";
|
|
4
|
+
} from "./chunk-PJFFGQSB.js";
|
|
10
5
|
import {
|
|
11
6
|
resolveSlackChannelIds,
|
|
12
7
|
resolveTeamsChannelValues
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import
|
|
8
|
+
} from "./chunk-OQFCZERZ.js";
|
|
9
|
+
import "./chunk-LJFVRJCA.js";
|
|
10
|
+
import {
|
|
11
|
+
fetchEnvironments,
|
|
12
|
+
resolveEnvironment
|
|
13
|
+
} from "./chunk-JEHHEMUL.js";
|
|
14
|
+
import "./chunk-RVD6J6IZ.js";
|
|
15
|
+
import "./chunk-EJ3ZPH5U.js";
|
|
16
16
|
import "./chunk-DEK6B6LX.js";
|
|
17
17
|
import {
|
|
18
18
|
runRemoteTest
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-P7L5KELH.js";
|
|
20
20
|
import {
|
|
21
21
|
UUID_RE,
|
|
22
22
|
apiRequest,
|
|
@@ -27,25 +27,25 @@ import {
|
|
|
27
27
|
getScalarArgValue,
|
|
28
28
|
resolveCredentialId,
|
|
29
29
|
resolveTestSuite
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-VKZOHJCE.js";
|
|
31
31
|
import "./chunk-S3Q7MDCS.js";
|
|
32
32
|
import {
|
|
33
33
|
WORKFLOW_FLOW_TYPES
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-4UZN6TVT.js";
|
|
35
35
|
import {
|
|
36
36
|
getArgValue,
|
|
37
37
|
hasFlag,
|
|
38
38
|
isSuperadminToken,
|
|
39
39
|
resolveConfig
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-WRBU6TX7.js";
|
|
41
41
|
import {
|
|
42
42
|
writeRawOutput,
|
|
43
43
|
writeUntrustedText
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-MJVUMVLO.js";
|
|
45
45
|
import "./chunk-TOWZAG3I.js";
|
|
46
46
|
|
|
47
47
|
// src/test-suite.ts
|
|
48
|
-
import
|
|
48
|
+
import process4 from "process";
|
|
49
49
|
|
|
50
50
|
// src/test-suite-external.ts
|
|
51
51
|
import process from "process";
|
|
@@ -762,6 +762,74 @@ function fail2(message) {
|
|
|
762
762
|
process2.exit(1);
|
|
763
763
|
}
|
|
764
764
|
|
|
765
|
+
// src/test-suite-catalog.ts
|
|
766
|
+
import process3 from "process";
|
|
767
|
+
async function handleSuitesList(argv, apiUrl, token) {
|
|
768
|
+
const jsonOutput = hasFlag(argv, "--json");
|
|
769
|
+
const res = await apiRequest(apiUrl, token, "GET", "/test-suites");
|
|
770
|
+
if (!res.ok) {
|
|
771
|
+
console.error(`Error: ${res.error ?? "Failed to list test suites"}`);
|
|
772
|
+
process3.exit(1);
|
|
773
|
+
}
|
|
774
|
+
const suites = res.data ?? [];
|
|
775
|
+
if (jsonOutput) {
|
|
776
|
+
writeRawOutput(JSON.stringify(suites, null, 2));
|
|
777
|
+
return;
|
|
778
|
+
}
|
|
779
|
+
if (suites.length === 0) {
|
|
780
|
+
console.log("No test suites found.");
|
|
781
|
+
return;
|
|
782
|
+
}
|
|
783
|
+
writeRawOutput(formatSuitesTable(suites));
|
|
784
|
+
}
|
|
785
|
+
async function handleSuiteCatalogGet(argv, apiUrl, token) {
|
|
786
|
+
const suiteRef = getPositionalArg(argv, ["--api-url", "--token", "--org", "--env"]);
|
|
787
|
+
if (!suiteRef) {
|
|
788
|
+
console.error("Usage: cofactor test-suite suites get <suite-id|name> [--json]");
|
|
789
|
+
process3.exit(1);
|
|
790
|
+
}
|
|
791
|
+
const suite = await resolveTestSuite(suiteRef, apiUrl, token);
|
|
792
|
+
const response = await apiRequest(
|
|
793
|
+
apiUrl,
|
|
794
|
+
token,
|
|
795
|
+
"GET",
|
|
796
|
+
`/test-suites/${encodeURIComponent(suite.id)}`
|
|
797
|
+
);
|
|
798
|
+
if (!response.ok || !response.data) {
|
|
799
|
+
console.error(`Error: ${response.error ?? "Failed to read test suite"}`);
|
|
800
|
+
process3.exit(1);
|
|
801
|
+
}
|
|
802
|
+
const detail = response.data;
|
|
803
|
+
if (hasFlag(argv, "--json")) {
|
|
804
|
+
writeRawOutput(JSON.stringify(detail, null, 2));
|
|
805
|
+
return;
|
|
806
|
+
}
|
|
807
|
+
writeRawOutput(
|
|
808
|
+
[
|
|
809
|
+
`Suite: ${detail.name}`,
|
|
810
|
+
`ID: ${detail.id}`,
|
|
811
|
+
`Default: ${detail.isDefault ? "yes" : "no"}`,
|
|
812
|
+
`Kind: ${detail.kind}`,
|
|
813
|
+
`Failure mode: ${detail.failureMode}`,
|
|
814
|
+
`Members: ${detail.members.length}`
|
|
815
|
+
].join("\n")
|
|
816
|
+
);
|
|
817
|
+
}
|
|
818
|
+
function formatSuitesTable(suites) {
|
|
819
|
+
const lines = [
|
|
820
|
+
`Named suites (${suites.length}):`,
|
|
821
|
+
"",
|
|
822
|
+
" NAME KIND DEFAULT MEMBERS LAYERS FAILURE MODE ID"
|
|
823
|
+
];
|
|
824
|
+
for (const suite of suites) {
|
|
825
|
+
lines.push(
|
|
826
|
+
` ${suite.name.padEnd(30)} ${suite.kind.padEnd(9)} ${String(suite.isDefault ? "yes" : "no").padEnd(7)} ${String(suite.workflowCount).padEnd(8)} ${String(suite.layerCount).padEnd(7)} ${suite.failureMode.padEnd(22)} ${suite.id}`
|
|
827
|
+
);
|
|
828
|
+
}
|
|
829
|
+
lines.push("");
|
|
830
|
+
return lines.join("\n");
|
|
831
|
+
}
|
|
832
|
+
|
|
765
833
|
// src/test-suite.ts
|
|
766
834
|
var STATUS_ICONS = {
|
|
767
835
|
completed: "\u2705",
|
|
@@ -825,7 +893,7 @@ async function handleList(argv, apiUrl, token) {
|
|
|
825
893
|
);
|
|
826
894
|
if (!result.ok) {
|
|
827
895
|
console.error(`Error: ${result.error ?? "Unknown error"}`);
|
|
828
|
-
|
|
896
|
+
process4.exit(1);
|
|
829
897
|
}
|
|
830
898
|
if (jsonOutput) {
|
|
831
899
|
writeRawOutput(JSON.stringify(result, null, 2));
|
|
@@ -856,7 +924,7 @@ async function handleGet(argv, apiUrl, token) {
|
|
|
856
924
|
const id = argv.find((a) => !a.startsWith("-"));
|
|
857
925
|
if (!id) {
|
|
858
926
|
console.error("Error: Missing execution ID. Usage: canary test-suite get <executionId>");
|
|
859
|
-
|
|
927
|
+
process4.exit(1);
|
|
860
928
|
}
|
|
861
929
|
const jsonOutput = hasFlag(argv, "--json");
|
|
862
930
|
const failuresOnly = hasFlag(argv, "--failures-only");
|
|
@@ -868,7 +936,7 @@ async function handleGet(argv, apiUrl, token) {
|
|
|
868
936
|
);
|
|
869
937
|
if (!result.ok) {
|
|
870
938
|
console.error(`Error: ${result.error ?? "Unknown error"}`);
|
|
871
|
-
|
|
939
|
+
process4.exit(1);
|
|
872
940
|
}
|
|
873
941
|
if (jsonOutput) {
|
|
874
942
|
const output = failuresOnly ? { ...result, testRuns: result.testRuns.filter((r) => r.status === "failed") } : result;
|
|
@@ -926,7 +994,7 @@ async function handleDiagnostics(argv, apiUrl, token) {
|
|
|
926
994
|
console.error(
|
|
927
995
|
"Error: Missing arguments. Usage: canary test-suite diagnostics <workflowId> <runId>"
|
|
928
996
|
);
|
|
929
|
-
|
|
997
|
+
process4.exit(1);
|
|
930
998
|
}
|
|
931
999
|
const [workflowId, runId] = positional;
|
|
932
1000
|
const jsonOutput = hasFlag(argv, "--json");
|
|
@@ -939,7 +1007,7 @@ async function handleDiagnostics(argv, apiUrl, token) {
|
|
|
939
1007
|
);
|
|
940
1008
|
if (!result.ok) {
|
|
941
1009
|
console.error(`Error: ${result.error ?? "Unknown error"}`);
|
|
942
|
-
|
|
1010
|
+
process4.exit(1);
|
|
943
1011
|
}
|
|
944
1012
|
if (jsonOutput) {
|
|
945
1013
|
writeRawOutput(JSON.stringify(result, null, 2));
|
|
@@ -1010,7 +1078,7 @@ async function handleSteps(argv, apiUrl, token) {
|
|
|
1010
1078
|
const positional = argv.filter((a) => !a.startsWith("-"));
|
|
1011
1079
|
if (positional.length < 2) {
|
|
1012
1080
|
console.error("Error: Missing arguments. Usage: canary test-suite steps <workflowId> <runId>");
|
|
1013
|
-
|
|
1081
|
+
process4.exit(1);
|
|
1014
1082
|
}
|
|
1015
1083
|
const [workflowId, runId] = positional;
|
|
1016
1084
|
const jsonOutput = hasFlag(argv, "--json");
|
|
@@ -1022,7 +1090,7 @@ async function handleSteps(argv, apiUrl, token) {
|
|
|
1022
1090
|
);
|
|
1023
1091
|
if (!result.ok) {
|
|
1024
1092
|
console.error(`Error: ${result.error ?? "Unknown error"}`);
|
|
1025
|
-
|
|
1093
|
+
process4.exit(1);
|
|
1026
1094
|
}
|
|
1027
1095
|
if (jsonOutput) {
|
|
1028
1096
|
writeRawOutput(JSON.stringify(result, null, 2));
|
|
@@ -1075,31 +1143,31 @@ async function resolveFlowRef(ref, apiUrl, token) {
|
|
|
1075
1143
|
});
|
|
1076
1144
|
const result = await apiRequest(apiUrl, token, "GET", `/workflows?${params}`);
|
|
1077
1145
|
if (!result.ok) {
|
|
1078
|
-
|
|
1146
|
+
process4.stderr.write(`Error: Failed to look up flow "${ref}": ${result.error ?? "Unknown error"}
|
|
1079
1147
|
`);
|
|
1080
|
-
|
|
1148
|
+
process4.exit(1);
|
|
1081
1149
|
}
|
|
1082
1150
|
const data = result.data;
|
|
1083
1151
|
const totalItems = result.pagination.totalItems;
|
|
1084
1152
|
if (totalItems > data.length) {
|
|
1085
|
-
|
|
1153
|
+
process4.stderr.write(
|
|
1086
1154
|
`Error: "${ref}" matches more than the first ${data.length} of ${totalItems} flows returned by search \u2014 can't confirm the name isn't ambiguous. Pass the flow id instead, or use a more specific name.
|
|
1087
1155
|
`
|
|
1088
1156
|
);
|
|
1089
|
-
|
|
1157
|
+
process4.exit(1);
|
|
1090
1158
|
}
|
|
1091
1159
|
const matches = data.filter((w) => w.name.toLowerCase() === ref.toLowerCase());
|
|
1092
1160
|
if (matches.length === 0) {
|
|
1093
|
-
|
|
1161
|
+
process4.stderr.write(`Error: No flow named "${ref}" found. Pass the flow id instead of the name.
|
|
1094
1162
|
`);
|
|
1095
|
-
|
|
1163
|
+
process4.exit(1);
|
|
1096
1164
|
}
|
|
1097
1165
|
if (matches.length > 1) {
|
|
1098
|
-
|
|
1166
|
+
process4.stderr.write(`Error: Multiple flows are named "${ref}":
|
|
1099
1167
|
`);
|
|
1100
1168
|
for (const m of matches) console.error(` - ${m.id}`);
|
|
1101
1169
|
console.error("Pass the flow id instead to disambiguate.");
|
|
1102
|
-
|
|
1170
|
+
process4.exit(1);
|
|
1103
1171
|
}
|
|
1104
1172
|
return matches[0].id;
|
|
1105
1173
|
}
|
|
@@ -1128,68 +1196,36 @@ function buildSuiteWriteBody(argv) {
|
|
|
1128
1196
|
console.error(
|
|
1129
1197
|
`Error: --failure-mode must be "continue" or "stop_on_layer_failure" (got "${failureMode}").`
|
|
1130
1198
|
);
|
|
1131
|
-
|
|
1199
|
+
process4.exit(1);
|
|
1132
1200
|
}
|
|
1133
1201
|
body.failureMode = failureMode;
|
|
1134
1202
|
}
|
|
1135
1203
|
return body;
|
|
1136
1204
|
}
|
|
1137
|
-
async function handleSuitesList(argv, apiUrl, token) {
|
|
1138
|
-
const jsonOutput = hasFlag(argv, "--json");
|
|
1139
|
-
const res = await apiRequest(apiUrl, token, "GET", "/test-suites");
|
|
1140
|
-
if (!res.ok) {
|
|
1141
|
-
console.error(`Error: ${res.error ?? "Failed to list test suites"}`);
|
|
1142
|
-
process3.exit(1);
|
|
1143
|
-
}
|
|
1144
|
-
const suites = res.data ?? [];
|
|
1145
|
-
if (jsonOutput) {
|
|
1146
|
-
writeRawOutput(JSON.stringify(suites, null, 2));
|
|
1147
|
-
return;
|
|
1148
|
-
}
|
|
1149
|
-
if (suites.length === 0) {
|
|
1150
|
-
console.log("No test suites found.");
|
|
1151
|
-
return;
|
|
1152
|
-
}
|
|
1153
|
-
writeRawOutput(formatSuitesTable(suites));
|
|
1154
|
-
}
|
|
1155
|
-
function formatSuitesTable(suites) {
|
|
1156
|
-
const lines = [
|
|
1157
|
-
`Named suites (${suites.length}):`,
|
|
1158
|
-
"",
|
|
1159
|
-
` ${pad("NAME", 30)} ${pad("KIND", 9)} ${pad("MEMBERS", 8)} ${pad("LAYERS", 7)} ${pad("FAILURE MODE", 22)} ID`
|
|
1160
|
-
];
|
|
1161
|
-
for (const s of suites) {
|
|
1162
|
-
lines.push(
|
|
1163
|
-
` ${pad(s.name, 30)} ${pad(s.kind, 9)} ${pad(String(s.workflowCount), 8)} ${pad(String(s.layerCount), 7)} ${pad(s.failureMode, 22)} ${s.id}`
|
|
1164
|
-
);
|
|
1165
|
-
}
|
|
1166
|
-
lines.push("");
|
|
1167
|
-
return lines.join("\n");
|
|
1168
|
-
}
|
|
1169
1205
|
async function handleSuiteCreate(argv, apiUrl, token) {
|
|
1170
1206
|
const jsonOutput = hasFlag(argv, "--json");
|
|
1171
1207
|
const body = buildSuiteWriteBody(argv);
|
|
1172
1208
|
if (typeof body.name !== "string" || !body.name.trim()) {
|
|
1173
1209
|
console.error("Error: --name is required.");
|
|
1174
1210
|
console.error("Usage: canary test-suite create --name <name> [options]");
|
|
1175
|
-
|
|
1211
|
+
process4.exit(1);
|
|
1176
1212
|
}
|
|
1177
1213
|
const kind = getScalarArgValue(argv, "--kind");
|
|
1178
1214
|
if (kind !== void 0 && kind !== "native" && kind !== "external") {
|
|
1179
1215
|
console.error(`Error: --kind must be "native" or "external" (got "${kind}").`);
|
|
1180
|
-
|
|
1216
|
+
process4.exit(1);
|
|
1181
1217
|
}
|
|
1182
1218
|
if (hasAnyFlag(argv, UPDATE_ONLY_RUNNER_FLAGS)) {
|
|
1183
1219
|
console.error(
|
|
1184
1220
|
'Error: runner flags are set with "test-suite update <suite> \u2026" after the suite exists.'
|
|
1185
1221
|
);
|
|
1186
|
-
|
|
1222
|
+
process4.exit(1);
|
|
1187
1223
|
}
|
|
1188
1224
|
if (kind !== "external" && hasAnyFlag(argv, EXTERNAL_SUITE_FLAGS.filter((f) => f !== "--kind"))) {
|
|
1189
1225
|
console.error(
|
|
1190
1226
|
"Error: --provider/--source/--repo/--ref/--property/--environment/--credential/--application require --kind external."
|
|
1191
1227
|
);
|
|
1192
|
-
|
|
1228
|
+
process4.exit(1);
|
|
1193
1229
|
}
|
|
1194
1230
|
let repoLabel;
|
|
1195
1231
|
if (kind === "external") {
|
|
@@ -1201,7 +1237,7 @@ async function handleSuiteCreate(argv, apiUrl, token) {
|
|
|
1201
1237
|
const res = await apiRequest(apiUrl, token, "POST", "/test-suites", body);
|
|
1202
1238
|
if (!res.ok || !res.data) {
|
|
1203
1239
|
console.error(`Error: ${res.error ?? "Failed to create test suite"}`);
|
|
1204
|
-
|
|
1240
|
+
process4.exit(1);
|
|
1205
1241
|
}
|
|
1206
1242
|
if (jsonOutput) {
|
|
1207
1243
|
writeRawOutput(JSON.stringify(res.data, null, 2));
|
|
@@ -1224,11 +1260,11 @@ async function handleSuiteUpdate(argv, apiUrl, token) {
|
|
|
1224
1260
|
const arg = getPositionalArg(argv, SUITE_WRITE_FLAGS);
|
|
1225
1261
|
if (!arg) {
|
|
1226
1262
|
console.error("Usage: canary test-suite update <id|name> [options]");
|
|
1227
|
-
|
|
1263
|
+
process4.exit(1);
|
|
1228
1264
|
}
|
|
1229
1265
|
if (hasAnyFlag(argv, EXTERNAL_CREATE_FLAGS)) {
|
|
1230
1266
|
console.error("Error: --kind and --provider are create-only; a suite's engine cannot change.");
|
|
1231
|
-
|
|
1267
|
+
process4.exit(1);
|
|
1232
1268
|
}
|
|
1233
1269
|
const suite = await resolveTestSuite(arg, apiUrl, token);
|
|
1234
1270
|
const jsonOutput = hasFlag(argv, "--json");
|
|
@@ -1237,11 +1273,11 @@ async function handleSuiteUpdate(argv, apiUrl, token) {
|
|
|
1237
1273
|
if (hasAnyFlag(argv, EXTERNAL_RUNNER_FLAGS)) {
|
|
1238
1274
|
const detail = await fetchSuiteDetail(suite.id, apiUrl, token);
|
|
1239
1275
|
if (detail.kind !== "external" || !detail.externalRunner) {
|
|
1240
|
-
|
|
1276
|
+
process4.stderr.write(
|
|
1241
1277
|
`Error: "${detail.name}" is a native suite; runner flags (${EXTERNAL_RUNNER_FLAGS.join(", ")}) apply to external suites only.
|
|
1242
1278
|
`
|
|
1243
1279
|
);
|
|
1244
|
-
|
|
1280
|
+
process4.exit(1);
|
|
1245
1281
|
}
|
|
1246
1282
|
runnerBodies = await buildExternalRunnerBodies(argv, detail.externalRunner, apiUrl, token);
|
|
1247
1283
|
}
|
|
@@ -1249,7 +1285,7 @@ async function handleSuiteUpdate(argv, apiUrl, token) {
|
|
|
1249
1285
|
console.error(
|
|
1250
1286
|
`Error: No fields to update. Provide at least one of: --name, --description, --failure-mode, or a runner flag (${EXTERNAL_RUNNER_FLAGS.join(", ")})`
|
|
1251
1287
|
);
|
|
1252
|
-
|
|
1288
|
+
process4.exit(1);
|
|
1253
1289
|
}
|
|
1254
1290
|
const { runner, applied } = await applyExternalRunnerUpdate(suite.id, runnerBodies, apiUrl, token);
|
|
1255
1291
|
let updated;
|
|
@@ -1257,11 +1293,11 @@ async function handleSuiteUpdate(argv, apiUrl, token) {
|
|
|
1257
1293
|
const res = await apiRequest(apiUrl, token, "PATCH", `/test-suites/${suite.id}`, body);
|
|
1258
1294
|
if (!res.ok || !res.data) {
|
|
1259
1295
|
if (applied.length > 0) {
|
|
1260
|
-
|
|
1296
|
+
process4.stderr.write(`Already applied before this failure: ${applied.join(", ")}.
|
|
1261
1297
|
`);
|
|
1262
1298
|
}
|
|
1263
1299
|
console.error(`Error: ${res.error ?? "Failed to update test suite"}`);
|
|
1264
|
-
|
|
1300
|
+
process4.exit(1);
|
|
1265
1301
|
}
|
|
1266
1302
|
updated = res.data;
|
|
1267
1303
|
}
|
|
@@ -1283,20 +1319,20 @@ async function handleSuiteDelete(argv, apiUrl, token) {
|
|
|
1283
1319
|
const arg = getPositionalArg(argv, SUITE_WRITE_FLAGS);
|
|
1284
1320
|
if (!arg) {
|
|
1285
1321
|
console.error("Usage: canary test-suite delete <id|name> [--yes]");
|
|
1286
|
-
|
|
1322
|
+
process4.exit(1);
|
|
1287
1323
|
}
|
|
1288
1324
|
const jsonOutput = hasFlag(argv, "--json");
|
|
1289
1325
|
const suite = await resolveTestSuite(arg, apiUrl, token);
|
|
1290
1326
|
if (!hasFlag(argv, "--yes")) {
|
|
1291
|
-
|
|
1327
|
+
process4.stderr.write(`Refusing to delete "${suite.name}" (${suite.id}) without --yes.
|
|
1292
1328
|
`);
|
|
1293
1329
|
console.error("Automations and CLI runs pointing at this suite will fail once it is deleted.");
|
|
1294
|
-
|
|
1330
|
+
process4.exit(1);
|
|
1295
1331
|
}
|
|
1296
1332
|
const res = await apiRequest(apiUrl, token, "DELETE", `/test-suites/${suite.id}`);
|
|
1297
1333
|
if (!res.ok || !res.data) {
|
|
1298
1334
|
console.error(`Error: ${res.error ?? "Failed to delete test suite"}`);
|
|
1299
|
-
|
|
1335
|
+
process4.exit(1);
|
|
1300
1336
|
}
|
|
1301
1337
|
if (jsonOutput) {
|
|
1302
1338
|
writeRawOutput(JSON.stringify(res.data, null, 2));
|
|
@@ -1308,7 +1344,7 @@ async function fetchSuiteDetail(id, apiUrl, token) {
|
|
|
1308
1344
|
const res = await apiRequest(apiUrl, token, "GET", `/test-suites/${id}`);
|
|
1309
1345
|
if (!res.ok || !res.data) {
|
|
1310
1346
|
console.error(`Error: ${res.error ?? "Failed to load test suite"}`);
|
|
1311
|
-
|
|
1347
|
+
process4.exit(1);
|
|
1312
1348
|
}
|
|
1313
1349
|
return res.data;
|
|
1314
1350
|
}
|
|
@@ -1316,7 +1352,7 @@ async function handleSuiteMembers(argv, apiUrl, token) {
|
|
|
1316
1352
|
const arg = getPositionalArg(argv, SUITE_WRITE_FLAGS);
|
|
1317
1353
|
if (!arg) {
|
|
1318
1354
|
console.error("Usage: canary test-suite members <id|name> [--json]");
|
|
1319
|
-
|
|
1355
|
+
process4.exit(1);
|
|
1320
1356
|
}
|
|
1321
1357
|
const suite = await resolveTestSuite(arg, apiUrl, token);
|
|
1322
1358
|
const detail = await fetchSuiteDetail(suite.id, apiUrl, token);
|
|
@@ -1354,7 +1390,7 @@ async function handleSuiteSetMembers(argv, apiUrl, token) {
|
|
|
1354
1390
|
const arg = getPositionalArg(argv, SUITE_WRITE_FLAGS);
|
|
1355
1391
|
if (!arg) {
|
|
1356
1392
|
console.error("Usage: canary test-suite set-members <id|name> --layer <flow[,flow...]> [options]");
|
|
1357
|
-
|
|
1393
|
+
process4.exit(1);
|
|
1358
1394
|
}
|
|
1359
1395
|
const layerArgs = getArgValues(argv, "--layer");
|
|
1360
1396
|
const stagingArgs = getArgValues(argv, "--staging");
|
|
@@ -1362,7 +1398,7 @@ async function handleSuiteSetMembers(argv, apiUrl, token) {
|
|
|
1362
1398
|
console.error(
|
|
1363
1399
|
"Error: Nothing to set. Provide at least one --layer <flow[,flow...]> (repeatable) and/or --staging <flow[,flow...]>."
|
|
1364
1400
|
);
|
|
1365
|
-
|
|
1401
|
+
process4.exit(1);
|
|
1366
1402
|
}
|
|
1367
1403
|
const suite = await resolveTestSuite(arg, apiUrl, token);
|
|
1368
1404
|
const jsonOutput = hasFlag(argv, "--json");
|
|
@@ -1370,12 +1406,12 @@ async function handleSuiteSetMembers(argv, apiUrl, token) {
|
|
|
1370
1406
|
if (!confirmed) {
|
|
1371
1407
|
const existing = await fetchSuiteDetail(suite.id, apiUrl, token);
|
|
1372
1408
|
if (existing.members.length > 0) {
|
|
1373
|
-
|
|
1409
|
+
process4.stderr.write(
|
|
1374
1410
|
`Refusing to replace ${existing.members.length} existing member(s) of "${suite.name}" (${suite.id}) without --yes.
|
|
1375
1411
|
`
|
|
1376
1412
|
);
|
|
1377
1413
|
console.error("set-members is a FULL REPLACE \u2014 anything not listed is removed from the suite.");
|
|
1378
|
-
|
|
1414
|
+
process4.exit(1);
|
|
1379
1415
|
}
|
|
1380
1416
|
}
|
|
1381
1417
|
const cache = /* @__PURE__ */ new Map();
|
|
@@ -1401,7 +1437,7 @@ async function handleSuiteSetMembers(argv, apiUrl, token) {
|
|
|
1401
1437
|
);
|
|
1402
1438
|
if (!res.ok || !res.data) {
|
|
1403
1439
|
console.error(`Error: ${res.error ?? "Failed to set suite members"}`);
|
|
1404
|
-
|
|
1440
|
+
process4.exit(1);
|
|
1405
1441
|
}
|
|
1406
1442
|
if (jsonOutput) {
|
|
1407
1443
|
writeRawOutput(JSON.stringify(res.data, null, 2));
|
|
@@ -1417,6 +1453,7 @@ function printTestSuiteHelp() {
|
|
|
1417
1453
|
"Sub-commands:",
|
|
1418
1454
|
" run [options] Trigger a test suite and stream results",
|
|
1419
1455
|
" suites [--json] List named suite definitions",
|
|
1456
|
+
" suites get <id|name> [--json] Inspect a named suite",
|
|
1420
1457
|
" executions [options] List recent test suite executions",
|
|
1421
1458
|
" list [options] (deprecated \u2014 will list suite definitions in future; use executions/suites)",
|
|
1422
1459
|
" get <executionId> [options] Show one execution's runs",
|
|
@@ -1447,9 +1484,10 @@ function printTestSuiteHelp() {
|
|
|
1447
1484
|
" --application <name|id> Target a specific application (alias: --property)",
|
|
1448
1485
|
" --environment <name|id> Target a specific environment (required with --env-mode force)",
|
|
1449
1486
|
" --env-mode <mode> mixed (default \u2014 each flow on its preferred env) | force (pin to --environment)",
|
|
1450
|
-
" --at <sha>
|
|
1451
|
-
"
|
|
1452
|
-
"
|
|
1487
|
+
" --at <sha|pushId|tag> With --suite: pin its Sandboxes v2 environments to a commit SHA (GitHub)",
|
|
1488
|
+
" or a push id or case-sensitive tag (pushed applications).",
|
|
1489
|
+
" Mixed GitHub and pushed suites cannot be pinned with one --at.",
|
|
1490
|
+
" The result shows Pinned at.",
|
|
1453
1491
|
" A pinned run never feeds visual baselines.",
|
|
1454
1492
|
" --tag <tag> Filter workflows by tag",
|
|
1455
1493
|
" --name-pattern <pat> Filter workflows by name pattern",
|
|
@@ -1570,7 +1608,7 @@ async function runTestSuite(argv) {
|
|
|
1570
1608
|
if (knownValueFlags.has(arg)) {
|
|
1571
1609
|
if (!rest[index + 1] || rest[index + 1].startsWith("-")) {
|
|
1572
1610
|
console.error(`Error: ${arg} requires a value.`);
|
|
1573
|
-
|
|
1611
|
+
process4.exit(1);
|
|
1574
1612
|
}
|
|
1575
1613
|
index += 1;
|
|
1576
1614
|
continue;
|
|
@@ -1578,17 +1616,17 @@ async function runTestSuite(argv) {
|
|
|
1578
1616
|
if (/^--(?:api-url|env|org|token)=/.test(arg)) continue;
|
|
1579
1617
|
if (arg.startsWith("-")) {
|
|
1580
1618
|
console.error(`Error: Unknown validate option: ${arg}`);
|
|
1581
|
-
|
|
1619
|
+
process4.exit(1);
|
|
1582
1620
|
}
|
|
1583
1621
|
}
|
|
1584
1622
|
const [directory] = testSuitePositionals(rest);
|
|
1585
1623
|
if (!directory) {
|
|
1586
1624
|
console.error("Usage: cofactor test-suite validate <directory>");
|
|
1587
|
-
|
|
1625
|
+
process4.exit(1);
|
|
1588
1626
|
}
|
|
1589
1627
|
if (testSuitePositionals(rest).length !== 1) {
|
|
1590
1628
|
console.error("Error: validate accepts exactly one directory.");
|
|
1591
|
-
|
|
1629
|
+
process4.exit(1);
|
|
1592
1630
|
}
|
|
1593
1631
|
await validateTestSuiteDirectory(directory, { json: hasFlag(rest, "--json") });
|
|
1594
1632
|
return;
|
|
@@ -1605,7 +1643,11 @@ async function runTestSuite(argv) {
|
|
|
1605
1643
|
await handleList(rest, apiUrl, token);
|
|
1606
1644
|
break;
|
|
1607
1645
|
case "suites":
|
|
1608
|
-
|
|
1646
|
+
if (rest[0] === "get") {
|
|
1647
|
+
await handleSuiteCatalogGet(rest.slice(1), apiUrl, token);
|
|
1648
|
+
} else {
|
|
1649
|
+
await handleSuitesList(rest, apiUrl, token);
|
|
1650
|
+
}
|
|
1609
1651
|
break;
|
|
1610
1652
|
case "get":
|
|
1611
1653
|
await handleGet(rest, apiUrl, token);
|
|
@@ -1640,7 +1682,7 @@ async function runTestSuite(argv) {
|
|
|
1640
1682
|
default:
|
|
1641
1683
|
console.error(`Unknown sub-command: ${subCommand}`);
|
|
1642
1684
|
printTestSuiteHelp();
|
|
1643
|
-
|
|
1685
|
+
process4.exit(1);
|
|
1644
1686
|
}
|
|
1645
1687
|
}
|
|
1646
1688
|
export {
|
|
@@ -1650,4 +1692,4 @@ export {
|
|
|
1650
1692
|
handleSuitesList,
|
|
1651
1693
|
runTestSuite
|
|
1652
1694
|
};
|
|
1653
|
-
//# sourceMappingURL=test-suite-
|
|
1695
|
+
//# sourceMappingURL=test-suite-SW25YGJV.js.map
|