@desplega.ai/qa-use 2.11.0 → 2.13.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/dist/lib/api/browser-types.d.ts +1 -0
- package/dist/lib/api/browser-types.d.ts.map +1 -1
- package/dist/lib/api/browser.d.ts +1 -0
- package/dist/lib/api/browser.d.ts.map +1 -1
- package/dist/lib/api/browser.js +14 -1
- package/dist/lib/api/browser.js.map +1 -1
- package/dist/lib/api/index.d.ts +4 -3
- package/dist/lib/api/index.d.ts.map +1 -1
- package/dist/lib/api/index.js +18 -2
- package/dist/lib/api/index.js.map +1 -1
- package/dist/lib/env/index.d.ts +7 -0
- package/dist/lib/env/index.d.ts.map +1 -1
- package/dist/lib/env/index.js +29 -0
- package/dist/lib/env/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/src/cli/commands/api/examples.d.ts +3 -0
- package/dist/src/cli/commands/api/examples.d.ts.map +1 -0
- package/dist/src/cli/commands/api/examples.js +48 -0
- package/dist/src/cli/commands/api/examples.js.map +1 -0
- package/dist/src/cli/commands/api/index.d.ts.map +1 -1
- package/dist/src/cli/commands/api/index.js +22 -0
- package/dist/src/cli/commands/api/index.js.map +1 -1
- package/dist/src/cli/commands/api/info.d.ts +3 -0
- package/dist/src/cli/commands/api/info.d.ts.map +1 -0
- package/dist/src/cli/commands/api/info.js +59 -0
- package/dist/src/cli/commands/api/info.js.map +1 -0
- package/dist/src/cli/commands/api/lib/openapi-spec.d.ts +22 -0
- package/dist/src/cli/commands/api/lib/openapi-spec.d.ts.map +1 -1
- package/dist/src/cli/commands/api/lib/openapi-spec.js +33 -1
- package/dist/src/cli/commands/api/lib/openapi-spec.js.map +1 -1
- package/dist/src/cli/commands/api/lib/output.d.ts +4 -0
- package/dist/src/cli/commands/api/lib/output.d.ts.map +1 -1
- package/dist/src/cli/commands/api/lib/output.js +90 -0
- package/dist/src/cli/commands/api/lib/output.js.map +1 -1
- package/dist/src/cli/commands/api/lib/route-matching.d.ts +4 -0
- package/dist/src/cli/commands/api/lib/route-matching.d.ts.map +1 -0
- package/dist/src/cli/commands/api/lib/route-matching.js +9 -0
- package/dist/src/cli/commands/api/lib/route-matching.js.map +1 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.d.ts +30 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.d.ts.map +1 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.js +91 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.js.map +1 -0
- package/dist/src/cli/commands/api/ls.d.ts.map +1 -1
- package/dist/src/cli/commands/api/ls.js +6 -1
- package/dist/src/cli/commands/api/ls.js.map +1 -1
- package/dist/src/cli/commands/api/openapi.d.ts +3 -0
- package/dist/src/cli/commands/api/openapi.d.ts.map +1 -0
- package/dist/src/cli/commands/api/openapi.js +55 -0
- package/dist/src/cli/commands/api/openapi.js.map +1 -0
- package/dist/src/cli/commands/api/request.d.ts.map +1 -1
- package/dist/src/cli/commands/api/request.js +9 -11
- package/dist/src/cli/commands/api/request.js.map +1 -1
- package/dist/src/cli/commands/app-config/create.d.ts +6 -0
- package/dist/src/cli/commands/app-config/create.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/create.js +32 -0
- package/dist/src/cli/commands/app-config/create.js.map +1 -0
- package/dist/src/cli/commands/app-config/delete.d.ts +6 -0
- package/dist/src/cli/commands/app-config/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/delete.js +31 -0
- package/dist/src/cli/commands/app-config/delete.js.map +1 -0
- package/dist/src/cli/commands/app-config/index.d.ts +6 -0
- package/dist/src/cli/commands/app-config/index.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/index.js +16 -0
- package/dist/src/cli/commands/app-config/index.js.map +1 -0
- package/dist/src/cli/commands/app-config/info.d.ts +6 -0
- package/dist/src/cli/commands/app-config/info.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/info.js +67 -0
- package/dist/src/cli/commands/app-config/info.js.map +1 -0
- package/dist/src/cli/commands/app-config/list.d.ts +6 -0
- package/dist/src/cli/commands/app-config/list.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/list.js +58 -0
- package/dist/src/cli/commands/app-config/list.js.map +1 -0
- package/dist/src/cli/commands/app-config/update.d.ts +6 -0
- package/dist/src/cli/commands/app-config/update.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/update.js +31 -0
- package/dist/src/cli/commands/app-config/update.js.map +1 -0
- package/dist/src/cli/commands/app-context/create.d.ts +6 -0
- package/dist/src/cli/commands/app-context/create.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/create.js +32 -0
- package/dist/src/cli/commands/app-context/create.js.map +1 -0
- package/dist/src/cli/commands/app-context/delete.d.ts +6 -0
- package/dist/src/cli/commands/app-context/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/delete.js +31 -0
- package/dist/src/cli/commands/app-context/delete.js.map +1 -0
- package/dist/src/cli/commands/app-context/index.d.ts +6 -0
- package/dist/src/cli/commands/app-context/index.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/index.js +16 -0
- package/dist/src/cli/commands/app-context/index.js.map +1 -0
- package/dist/src/cli/commands/app-context/info.d.ts +6 -0
- package/dist/src/cli/commands/app-context/info.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/info.js +51 -0
- package/dist/src/cli/commands/app-context/info.js.map +1 -0
- package/dist/src/cli/commands/app-context/list.d.ts +6 -0
- package/dist/src/cli/commands/app-context/list.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/list.js +58 -0
- package/dist/src/cli/commands/app-context/list.js.map +1 -0
- package/dist/src/cli/commands/app-context/update.d.ts +6 -0
- package/dist/src/cli/commands/app-context/update.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/update.js +31 -0
- package/dist/src/cli/commands/app-context/update.js.map +1 -0
- package/dist/src/cli/commands/browser/back.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/back.js +2 -4
- package/dist/src/cli/commands/browser/back.js.map +1 -1
- package/dist/src/cli/commands/browser/blur.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/blur.js +2 -4
- package/dist/src/cli/commands/browser/blur.js.map +1 -1
- package/dist/src/cli/commands/browser/check.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/check.js +2 -4
- package/dist/src/cli/commands/browser/check.js.map +1 -1
- package/dist/src/cli/commands/browser/click.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/click.js +2 -4
- package/dist/src/cli/commands/browser/click.js.map +1 -1
- package/dist/src/cli/commands/browser/close.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/close.js +2 -4
- package/dist/src/cli/commands/browser/close.js.map +1 -1
- package/dist/src/cli/commands/browser/create.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/create.js +7 -4
- package/dist/src/cli/commands/browser/create.js.map +1 -1
- package/dist/src/cli/commands/browser/downloads.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/downloads.js +2 -4
- package/dist/src/cli/commands/browser/downloads.js.map +1 -1
- package/dist/src/cli/commands/browser/drag.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/drag.js +2 -4
- package/dist/src/cli/commands/browser/drag.js.map +1 -1
- package/dist/src/cli/commands/browser/evaluate.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/evaluate.js +2 -4
- package/dist/src/cli/commands/browser/evaluate.js.map +1 -1
- package/dist/src/cli/commands/browser/fill.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/fill.js +2 -4
- package/dist/src/cli/commands/browser/fill.js.map +1 -1
- package/dist/src/cli/commands/browser/focus.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/focus.js +2 -4
- package/dist/src/cli/commands/browser/focus.js.map +1 -1
- package/dist/src/cli/commands/browser/forward.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/forward.js +2 -4
- package/dist/src/cli/commands/browser/forward.js.map +1 -1
- package/dist/src/cli/commands/browser/generate-test.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/generate-test.js +2 -4
- package/dist/src/cli/commands/browser/generate-test.js.map +1 -1
- package/dist/src/cli/commands/browser/get-blocks.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/get-blocks.js +2 -4
- package/dist/src/cli/commands/browser/get-blocks.js.map +1 -1
- package/dist/src/cli/commands/browser/goto.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/goto.js +2 -4
- package/dist/src/cli/commands/browser/goto.js.map +1 -1
- package/dist/src/cli/commands/browser/hover.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/hover.js +2 -4
- package/dist/src/cli/commands/browser/hover.js.map +1 -1
- package/dist/src/cli/commands/browser/list.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/list.js +2 -4
- package/dist/src/cli/commands/browser/list.js.map +1 -1
- package/dist/src/cli/commands/browser/logs.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/logs.js +3 -6
- package/dist/src/cli/commands/browser/logs.js.map +1 -1
- package/dist/src/cli/commands/browser/mfa-totp.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/mfa-totp.js +2 -4
- package/dist/src/cli/commands/browser/mfa-totp.js.map +1 -1
- package/dist/src/cli/commands/browser/press.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/press.js +2 -4
- package/dist/src/cli/commands/browser/press.js.map +1 -1
- package/dist/src/cli/commands/browser/reload.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/reload.js +2 -4
- package/dist/src/cli/commands/browser/reload.js.map +1 -1
- package/dist/src/cli/commands/browser/run.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/run.js +5 -4
- package/dist/src/cli/commands/browser/run.js.map +1 -1
- package/dist/src/cli/commands/browser/screenshot.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/screenshot.js +2 -4
- package/dist/src/cli/commands/browser/screenshot.js.map +1 -1
- package/dist/src/cli/commands/browser/scroll-into-view.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/scroll-into-view.js +2 -4
- package/dist/src/cli/commands/browser/scroll-into-view.js.map +1 -1
- package/dist/src/cli/commands/browser/scroll.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/scroll.js +2 -4
- package/dist/src/cli/commands/browser/scroll.js.map +1 -1
- package/dist/src/cli/commands/browser/select.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/select.js +2 -4
- package/dist/src/cli/commands/browser/select.js.map +1 -1
- package/dist/src/cli/commands/browser/snapshot.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/snapshot.js +2 -4
- package/dist/src/cli/commands/browser/snapshot.js.map +1 -1
- package/dist/src/cli/commands/browser/status.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/status.js +6 -4
- package/dist/src/cli/commands/browser/status.js.map +1 -1
- package/dist/src/cli/commands/browser/stream.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/stream.js +2 -4
- package/dist/src/cli/commands/browser/stream.js.map +1 -1
- package/dist/src/cli/commands/browser/type.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/type.js +2 -4
- package/dist/src/cli/commands/browser/type.js.map +1 -1
- package/dist/src/cli/commands/browser/uncheck.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/uncheck.js +2 -4
- package/dist/src/cli/commands/browser/uncheck.js.map +1 -1
- package/dist/src/cli/commands/browser/upload.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/upload.js +2 -4
- package/dist/src/cli/commands/browser/upload.js.map +1 -1
- package/dist/src/cli/commands/browser/url.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/url.js +2 -4
- package/dist/src/cli/commands/browser/url.js.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-load.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-load.js +2 -4
- package/dist/src/cli/commands/browser/wait-for-load.js.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-selector.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-selector.js +2 -4
- package/dist/src/cli/commands/browser/wait-for-selector.js.map +1 -1
- package/dist/src/cli/commands/browser/wait.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/wait.js +2 -4
- package/dist/src/cli/commands/browser/wait.js.map +1 -1
- package/dist/src/cli/commands/data-asset/delete.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/delete.js +31 -0
- package/dist/src/cli/commands/data-asset/delete.js.map +1 -0
- package/dist/src/cli/commands/data-asset/index.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/index.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/index.js +14 -0
- package/dist/src/cli/commands/data-asset/index.js.map +1 -0
- package/dist/src/cli/commands/data-asset/info.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/info.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/info.js +75 -0
- package/dist/src/cli/commands/data-asset/info.js.map +1 -0
- package/dist/src/cli/commands/data-asset/list.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/list.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/list.js +76 -0
- package/dist/src/cli/commands/data-asset/list.js.map +1 -0
- package/dist/src/cli/commands/data-asset/upload.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/upload.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/upload.js +83 -0
- package/dist/src/cli/commands/data-asset/upload.js.map +1 -0
- package/dist/src/cli/commands/docs.d.ts.map +1 -1
- package/dist/src/cli/commands/docs.js +7 -1
- package/dist/src/cli/commands/docs.js.map +1 -1
- package/dist/src/cli/commands/info.d.ts.map +1 -1
- package/dist/src/cli/commands/info.js +9 -0
- package/dist/src/cli/commands/info.js.map +1 -1
- package/dist/src/cli/commands/issues/index.d.ts +6 -0
- package/dist/src/cli/commands/issues/index.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/index.js +12 -0
- package/dist/src/cli/commands/issues/index.js.map +1 -0
- package/dist/src/cli/commands/issues/info.d.ts +6 -0
- package/dist/src/cli/commands/issues/info.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/info.js +57 -0
- package/dist/src/cli/commands/issues/info.js.map +1 -0
- package/dist/src/cli/commands/issues/list.d.ts +6 -0
- package/dist/src/cli/commands/issues/list.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/list.js +71 -0
- package/dist/src/cli/commands/issues/list.js.map +1 -0
- package/dist/src/cli/commands/issues/occurrences.d.ts +6 -0
- package/dist/src/cli/commands/issues/occurrences.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/occurrences.js +54 -0
- package/dist/src/cli/commands/issues/occurrences.js.map +1 -0
- package/dist/src/cli/commands/persona/create.d.ts +6 -0
- package/dist/src/cli/commands/persona/create.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/create.js +30 -0
- package/dist/src/cli/commands/persona/create.js.map +1 -0
- package/dist/src/cli/commands/persona/delete.d.ts +6 -0
- package/dist/src/cli/commands/persona/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/delete.js +31 -0
- package/dist/src/cli/commands/persona/delete.js.map +1 -0
- package/dist/src/cli/commands/persona/index.d.ts +6 -0
- package/dist/src/cli/commands/persona/index.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/index.js +16 -0
- package/dist/src/cli/commands/persona/index.js.map +1 -0
- package/dist/src/cli/commands/persona/info.d.ts +6 -0
- package/dist/src/cli/commands/persona/info.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/info.js +51 -0
- package/dist/src/cli/commands/persona/info.js.map +1 -0
- package/dist/src/cli/commands/persona/list.d.ts +6 -0
- package/dist/src/cli/commands/persona/list.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/list.js +58 -0
- package/dist/src/cli/commands/persona/list.js.map +1 -0
- package/dist/src/cli/commands/persona/update.d.ts +6 -0
- package/dist/src/cli/commands/persona/update.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/update.js +31 -0
- package/dist/src/cli/commands/persona/update.js.map +1 -0
- package/dist/src/cli/commands/setup.d.ts.map +1 -1
- package/dist/src/cli/commands/setup.js +2 -0
- package/dist/src/cli/commands/setup.js.map +1 -1
- package/dist/src/cli/commands/suite/create.d.ts +6 -0
- package/dist/src/cli/commands/suite/create.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/create.js +30 -0
- package/dist/src/cli/commands/suite/create.js.map +1 -0
- package/dist/src/cli/commands/suite/delete.d.ts +6 -0
- package/dist/src/cli/commands/suite/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/delete.js +31 -0
- package/dist/src/cli/commands/suite/delete.js.map +1 -0
- package/dist/src/cli/commands/suite/index.d.ts +6 -0
- package/dist/src/cli/commands/suite/index.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/index.js +18 -0
- package/dist/src/cli/commands/suite/index.js.map +1 -0
- package/dist/src/cli/commands/suite/info.d.ts +6 -0
- package/dist/src/cli/commands/suite/info.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/info.js +66 -0
- package/dist/src/cli/commands/suite/info.js.map +1 -0
- package/dist/src/cli/commands/suite/list.d.ts +6 -0
- package/dist/src/cli/commands/suite/list.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/list.js +58 -0
- package/dist/src/cli/commands/suite/list.js.map +1 -0
- package/dist/src/cli/commands/suite/run.d.ts +6 -0
- package/dist/src/cli/commands/suite/run.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/run.js +34 -0
- package/dist/src/cli/commands/suite/run.js.map +1 -0
- package/dist/src/cli/commands/suite/update.d.ts +6 -0
- package/dist/src/cli/commands/suite/update.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/update.js +31 -0
- package/dist/src/cli/commands/suite/update.js.map +1 -0
- package/dist/src/cli/commands/test/diff.d.ts.map +1 -1
- package/dist/src/cli/commands/test/diff.js +2 -4
- package/dist/src/cli/commands/test/diff.js.map +1 -1
- package/dist/src/cli/commands/test/export.d.ts.map +1 -1
- package/dist/src/cli/commands/test/export.js +2 -4
- package/dist/src/cli/commands/test/export.js.map +1 -1
- package/dist/src/cli/commands/test/index.js +1 -1
- package/dist/src/cli/commands/test/index.js.map +1 -1
- package/dist/src/cli/commands/test/info.d.ts.map +1 -1
- package/dist/src/cli/commands/test/info.js +150 -46
- package/dist/src/cli/commands/test/info.js.map +1 -1
- package/dist/src/cli/commands/test/list.d.ts.map +1 -1
- package/dist/src/cli/commands/test/list.js +78 -23
- package/dist/src/cli/commands/test/list.js.map +1 -1
- package/dist/src/cli/commands/test/run.d.ts.map +1 -1
- package/dist/src/cli/commands/test/run.js +8 -6
- package/dist/src/cli/commands/test/run.js.map +1 -1
- package/dist/src/cli/commands/test/runs/cancel.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/cancel.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/cancel.js +31 -0
- package/dist/src/cli/commands/test/runs/cancel.js.map +1 -0
- package/dist/src/cli/commands/test/runs/index.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/index.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/index.js +16 -0
- package/dist/src/cli/commands/test/runs/index.js.map +1 -0
- package/dist/src/cli/commands/test/runs/info.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/info.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/info.js +72 -0
- package/dist/src/cli/commands/test/runs/info.js.map +1 -0
- package/dist/src/cli/commands/test/runs/list.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/list.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/list.js +128 -0
- package/dist/src/cli/commands/test/runs/list.js.map +1 -0
- package/dist/src/cli/commands/test/runs/logs.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/logs.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/logs.js +88 -0
- package/dist/src/cli/commands/test/runs/logs.js.map +1 -0
- package/dist/src/cli/commands/test/runs/steps.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/steps.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/steps.js +110 -0
- package/dist/src/cli/commands/test/runs/steps.js.map +1 -0
- package/dist/src/cli/commands/test/runs.d.ts.map +1 -1
- package/dist/src/cli/commands/test/runs.js +2 -4
- package/dist/src/cli/commands/test/runs.js.map +1 -1
- package/dist/src/cli/commands/test/schema.d.ts.map +1 -1
- package/dist/src/cli/commands/test/schema.js +2 -6
- package/dist/src/cli/commands/test/schema.js.map +1 -1
- package/dist/src/cli/commands/test/sync.d.ts.map +1 -1
- package/dist/src/cli/commands/test/sync.js +3 -6
- package/dist/src/cli/commands/test/sync.js.map +1 -1
- package/dist/src/cli/commands/test/validate.d.ts.map +1 -1
- package/dist/src/cli/commands/test/validate.js +2 -4
- package/dist/src/cli/commands/test/validate.js.map +1 -1
- package/dist/src/cli/commands/usage.d.ts +6 -0
- package/dist/src/cli/commands/usage.d.ts.map +1 -0
- package/dist/src/cli/commands/usage.js +106 -0
- package/dist/src/cli/commands/usage.js.map +1 -0
- package/dist/src/cli/generated/docs-content.d.ts +1 -1
- package/dist/src/cli/generated/docs-content.d.ts.map +1 -1
- package/dist/src/cli/generated/docs-content.js +34 -0
- package/dist/src/cli/generated/docs-content.js.map +1 -1
- package/dist/src/cli/index.js +43 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/lib/api-helpers.d.ts +59 -0
- package/dist/src/cli/lib/api-helpers.d.ts.map +1 -0
- package/dist/src/cli/lib/api-helpers.js +149 -0
- package/dist/src/cli/lib/api-helpers.js.map +1 -0
- package/dist/src/cli/lib/config.d.ts +11 -0
- package/dist/src/cli/lib/config.d.ts.map +1 -1
- package/dist/src/cli/lib/config.js +44 -0
- package/dist/src/cli/lib/config.js.map +1 -1
- package/dist/src/cli/lib/output.d.ts +6 -0
- package/dist/src/cli/lib/output.d.ts.map +1 -1
- package/dist/src/cli/lib/output.js +37 -0
- package/dist/src/cli/lib/output.js.map +1 -1
- package/dist/src/cli/lib/table.d.ts +47 -0
- package/dist/src/cli/lib/table.d.ts.map +1 -0
- package/dist/src/cli/lib/table.js +161 -0
- package/dist/src/cli/lib/table.js.map +1 -0
- package/dist/src/types/test-definition.d.ts +29 -2
- package/dist/src/types/test-definition.d.ts.map +1 -1
- package/dist/src/types/test-definition.js +2 -2
- package/lib/api/browser-types.ts +1 -0
- package/lib/api/browser.test.ts +28 -0
- package/lib/api/browser.ts +15 -1
- package/lib/api/index.ts +28 -5
- package/lib/env/index.ts +32 -0
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use persona delete - Delete a persona
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, confirmAction, requireApiKey } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError, success } from '../../lib/output.js';
|
|
8
|
+
export const deleteCommand = new Command('delete')
|
|
9
|
+
.description('Delete a persona')
|
|
10
|
+
.argument('<id>', 'Persona ID (UUID)')
|
|
11
|
+
.option('--force', 'Skip confirmation prompt')
|
|
12
|
+
.action(async (id, options) => {
|
|
13
|
+
try {
|
|
14
|
+
const config = await loadConfig();
|
|
15
|
+
requireApiKey(config);
|
|
16
|
+
if (!options.force) {
|
|
17
|
+
const confirmed = await confirmAction(`Delete persona ${id}?`);
|
|
18
|
+
if (!confirmed) {
|
|
19
|
+
console.log('Cancelled.');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
await apiCall(config, 'DELETE', `/api/v1/personas/${id}`);
|
|
24
|
+
console.log(success(`Persona ${id} deleted`));
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
console.log(error(`Failed to delete persona: ${formatError(err)}`));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;KACrC,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,cAAc,SAAwD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use persona - Manage personas
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { createCommand } from './create.js';
|
|
6
|
+
import { deleteCommand } from './delete.js';
|
|
7
|
+
import { infoCommand } from './info.js';
|
|
8
|
+
import { listCommand } from './list.js';
|
|
9
|
+
import { updateCommand } from './update.js';
|
|
10
|
+
export const personaCommand = new Command('persona').description('Manage personas');
|
|
11
|
+
personaCommand.addCommand(listCommand);
|
|
12
|
+
personaCommand.addCommand(infoCommand);
|
|
13
|
+
personaCommand.addCommand(createCommand);
|
|
14
|
+
personaCommand.addCommand(updateCommand);
|
|
15
|
+
personaCommand.addCommand(deleteCommand);
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAEpF,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACvC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACvC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,eAAO,MAAM,WAAW,SAsCpB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use persona info - Show detailed persona information
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, requireApiKey } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError } from '../../lib/output.js';
|
|
8
|
+
import { formatTimestamp } from '../../lib/table.js';
|
|
9
|
+
const colors = {
|
|
10
|
+
reset: '\x1b[0m',
|
|
11
|
+
gray: '\x1b[90m',
|
|
12
|
+
cyan: '\x1b[36m',
|
|
13
|
+
};
|
|
14
|
+
function printField(label, value) {
|
|
15
|
+
const display = value ?? '-';
|
|
16
|
+
console.log(` ${colors.gray}${label.padEnd(18)}${colors.reset} ${display}`);
|
|
17
|
+
}
|
|
18
|
+
export const infoCommand = new Command('info')
|
|
19
|
+
.description('Show detailed persona information')
|
|
20
|
+
.argument('<id>', 'Persona ID (UUID)')
|
|
21
|
+
.option('--json', 'Output as JSON')
|
|
22
|
+
.action(async (id, options) => {
|
|
23
|
+
try {
|
|
24
|
+
const config = await loadConfig();
|
|
25
|
+
requireApiKey(config);
|
|
26
|
+
const persona = (await apiCall(config, 'GET', `/api/v1/personas/${id}`));
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(JSON.stringify(persona, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`${colors.cyan}Persona Details${colors.reset}\n`);
|
|
32
|
+
printField('ID', String(persona.id ?? '-'));
|
|
33
|
+
printField('Name', String(persona.name ?? '-'));
|
|
34
|
+
printField('Description', String(persona.description ?? '-'));
|
|
35
|
+
printField('Created', formatTimestamp(String(persona.created_at ?? '')));
|
|
36
|
+
printField('Updated', formatTimestamp(String(persona.updated_at ?? '')));
|
|
37
|
+
// Print any additional top-level fields that aren't already shown
|
|
38
|
+
const knownKeys = new Set(['id', 'name', 'description', 'created_at', 'updated_at']);
|
|
39
|
+
for (const [key, value] of Object.entries(persona)) {
|
|
40
|
+
if (knownKeys.has(key) || value === undefined || value === null)
|
|
41
|
+
continue;
|
|
42
|
+
const display = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
43
|
+
printField(key, display);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
console.log(error(`Failed to fetch persona: ${formatError(err)}`));
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,WAAW,SAoDpB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use persona list - List personas
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, paginationQuery, requireApiKey } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError, warning } from '../../lib/output.js';
|
|
8
|
+
import { formatTimestamp, printTable, truncate } from '../../lib/table.js';
|
|
9
|
+
export const listCommand = new Command('list')
|
|
10
|
+
.description('List personas')
|
|
11
|
+
.option('--limit <n>', 'Limit results (default: 20)', '20')
|
|
12
|
+
.option('--offset <n>', 'Skip N results', '0')
|
|
13
|
+
.option('--json', 'Output as JSON')
|
|
14
|
+
.action(async (options) => {
|
|
15
|
+
try {
|
|
16
|
+
const config = await loadConfig();
|
|
17
|
+
requireApiKey(config);
|
|
18
|
+
const query = paginationQuery(options);
|
|
19
|
+
const personas = (await apiCall(config, 'GET', '/api/v1/personas', {
|
|
20
|
+
query,
|
|
21
|
+
}));
|
|
22
|
+
const columns = [
|
|
23
|
+
{ key: 'id', header: 'ID', width: 36 },
|
|
24
|
+
{
|
|
25
|
+
key: 'name',
|
|
26
|
+
header: 'NAME',
|
|
27
|
+
width: 30,
|
|
28
|
+
format: (v) => truncate(String(v ?? '-'), 30),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: 'description',
|
|
32
|
+
header: 'DESCRIPTION',
|
|
33
|
+
width: 40,
|
|
34
|
+
format: (v) => truncate(String(v ?? '-'), 40),
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
key: 'created_at',
|
|
38
|
+
header: 'CREATED',
|
|
39
|
+
width: 19,
|
|
40
|
+
format: (v) => formatTimestamp(String(v ?? '')),
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
const limit = Number.parseInt(options.limit, 10);
|
|
44
|
+
const offset = Number.parseInt(options.offset, 10);
|
|
45
|
+
printTable(columns, personas, {
|
|
46
|
+
json: options.json,
|
|
47
|
+
title: `Personas (${personas.length} result${personas.length === 1 ? '' : 's'})`,
|
|
48
|
+
emptyMessage: warning('No personas found'),
|
|
49
|
+
limit,
|
|
50
|
+
offset,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
console.log(error(`Failed to list personas: ${formatError(err)}`));
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAe,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAExF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,IAAI,CAAC;KAC1D,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAE,GAAG,CAAC;KAC7C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACjE,KAAK;SACN,CAAC,CAAmC,CAAC;QAEtC,MAAM,OAAO,GAAa;YACxB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YACtC;gBACE,GAAG,EAAE,MAAM;gBACX,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;aAC9C;YACD;gBACE,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;aAC9C;YACD;gBACE,GAAG,EAAE,YAAY;gBACjB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAChD;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEnD,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,aAAa,QAAQ,CAAC,MAAM,UAAU,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YAChF,YAAY,EAAE,OAAO,CAAC,mBAAmB,CAAC;YAC1C,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,aAAa,SAyBtB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use persona update - Update an existing persona
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, collectFields, parseResourceInput, requireApiKey, } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError, success } from '../../lib/output.js';
|
|
8
|
+
export const updateCommand = new Command('update')
|
|
9
|
+
.description('Update an existing persona')
|
|
10
|
+
.argument('<id>', 'Persona ID (UUID)')
|
|
11
|
+
.option('--input <file>', 'JSON file with persona definition')
|
|
12
|
+
.option('-F, --field <key=value>', 'Set field (repeatable)', collectFields, [])
|
|
13
|
+
.action(async (id, options) => {
|
|
14
|
+
try {
|
|
15
|
+
const config = await loadConfig();
|
|
16
|
+
requireApiKey(config);
|
|
17
|
+
const body = await parseResourceInput(options);
|
|
18
|
+
if (Object.keys(body).length === 0) {
|
|
19
|
+
console.log(error('No fields provided'));
|
|
20
|
+
console.log(' Use -F key=value or --input <file>');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
await apiCall(config, 'PATCH', `/api/v1/personas/${id}`, { body });
|
|
24
|
+
console.log(success(`Persona ${id} updated`));
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
console.log(error(`Failed to update persona: ${formatError(err)}`));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;KACrC,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;KAC7D,MAAM,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,aAAa,EAAE,EAAE,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,YAAY,SAoIrB,CAAC"}
|
|
@@ -84,6 +84,8 @@ export const setupCommand = new Command('setup')
|
|
|
84
84
|
else {
|
|
85
85
|
const client = new ApiClient(config.api_url);
|
|
86
86
|
client.setApiKey(apiKey);
|
|
87
|
+
if (config.headers)
|
|
88
|
+
client.setCustomHeaders(config.headers);
|
|
87
89
|
console.log(' Validating API key...');
|
|
88
90
|
const validation = await client.validateApiKey();
|
|
89
91
|
if (validation.success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;KAClD,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;KACnE,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,CAAC,CAAC,CACrB,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,cAAc;YACtB,OAAO,CAAC,GAAG,CACZ,CAAC;QAEF,oDAAoD;QACpD,IAAI,iBAAiB,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,cAAc,IAAI,YAAY,EAAE,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAC,GAAG,CACT,WAAW,IAAI,CAAC,eAAe,CAAC,+CAA+C,CAChF,CAAC;YACF,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACpC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAEpC,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAA2B,CAAC;QAEhC,IAAI,UAAU,EAAE,CAAC;YACf,6CAA6C;YAC7C,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,YAAY,CAAC;QACrE,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,iDAAiD;YACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,YAAY,CAAC;YAEnE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,0EAA0E,CAAC,CAClF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAEjC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,GAAG,CACP,MAAM,EAAE,CAAC,QAAQ,CACf,UAAU,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CACnF,CACF,CAAC,IAAI,EAAE,CAAC;gBAET,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC1B,CAAC;gBAED,MAAM,aAAa,GAAG,CACpB,MAAM,EAAE,CAAC,QAAQ,CACf,4BAA4B,MAAM,CAAC,cAAc,IAAI,YAAY,KAAK,CACvE,CACF,CAAC,IAAI,EAAE,CAAC;gBAET,OAAO,GAAG,aAAa,IAAI,MAAM,CAAC,cAAc,IAAI,YAAY,CAAC;YACnE,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,CAAC;QAED,6BAA6B;QAC7B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,aAAa,SA2BtB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use suite create - Create a new test suite
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, collectFields, parseResourceInput, requireApiKey, } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError, success } from '../../lib/output.js';
|
|
8
|
+
export const createCommand = new Command('create')
|
|
9
|
+
.description('Create a new test suite')
|
|
10
|
+
.option('--input <file>', 'JSON file with suite definition')
|
|
11
|
+
.option('-F, --field <key=value>', 'Set field (repeatable)', collectFields, [])
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
try {
|
|
14
|
+
const config = await loadConfig();
|
|
15
|
+
requireApiKey(config);
|
|
16
|
+
const body = await parseResourceInput(options);
|
|
17
|
+
if (!body.name) {
|
|
18
|
+
console.log(error('Missing required field: name'));
|
|
19
|
+
console.log(' Use -F name="My Suite" or --input <file>');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const result = (await apiCall(config, 'POST', '/api/v1/test-suites', { body }));
|
|
23
|
+
console.log(success(`Test suite created (ID: ${result.id})`));
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
console.log(error(`Failed to create test suite: ${formatError(err)}`));
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;KAC3D,MAAM,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,aAAa,EAAE,EAAE,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,CAG7E,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAuBtB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use suite delete - Delete a test suite
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, confirmAction, requireApiKey } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError, success } from '../../lib/output.js';
|
|
8
|
+
export const deleteCommand = new Command('delete')
|
|
9
|
+
.description('Delete a test suite')
|
|
10
|
+
.argument('<id>', 'Test suite ID (UUID)')
|
|
11
|
+
.option('--force', 'Skip confirmation prompt')
|
|
12
|
+
.action(async (id, options) => {
|
|
13
|
+
try {
|
|
14
|
+
const config = await loadConfig();
|
|
15
|
+
requireApiKey(config);
|
|
16
|
+
if (!options.force) {
|
|
17
|
+
const confirmed = await confirmAction(`Delete test suite ${id}?`);
|
|
18
|
+
if (!confirmed) {
|
|
19
|
+
console.log('Cancelled.');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
await apiCall(config, 'DELETE', `/api/v1/test-suites/${id}`);
|
|
24
|
+
console.log(success(`Test suite ${id} deleted`));
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
console.log(error(`Failed to delete test suite: ${formatError(err)}`));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,qBAAqB,CAAC;KAClC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;KACxC,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,YAAY,SAAyD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use suite - Manage test suites
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { createCommand } from './create.js';
|
|
6
|
+
import { deleteCommand } from './delete.js';
|
|
7
|
+
import { infoCommand } from './info.js';
|
|
8
|
+
import { listCommand } from './list.js';
|
|
9
|
+
import { runCommand } from './run.js';
|
|
10
|
+
import { updateCommand } from './update.js';
|
|
11
|
+
export const suiteCommand = new Command('suite').description('Manage test suites');
|
|
12
|
+
suiteCommand.addCommand(listCommand);
|
|
13
|
+
suiteCommand.addCommand(infoCommand);
|
|
14
|
+
suiteCommand.addCommand(createCommand);
|
|
15
|
+
suiteCommand.addCommand(updateCommand);
|
|
16
|
+
suiteCommand.addCommand(deleteCommand);
|
|
17
|
+
suiteCommand.addCommand(runCommand);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAEnF,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACrC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACrC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACvC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACvC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACvC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,eAAO,MAAM,WAAW,SAsDpB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use suite info - Show detailed test suite information
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, requireApiKey } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError } from '../../lib/output.js';
|
|
8
|
+
import { formatTimestamp } from '../../lib/table.js';
|
|
9
|
+
const colors = {
|
|
10
|
+
reset: '\x1b[0m',
|
|
11
|
+
gray: '\x1b[90m',
|
|
12
|
+
cyan: '\x1b[36m',
|
|
13
|
+
};
|
|
14
|
+
function printField(label, value) {
|
|
15
|
+
const display = value ?? '-';
|
|
16
|
+
console.log(` ${colors.gray}${label.padEnd(18)}${colors.reset} ${display}`);
|
|
17
|
+
}
|
|
18
|
+
export const infoCommand = new Command('info')
|
|
19
|
+
.description('Show detailed test suite information')
|
|
20
|
+
.argument('<id>', 'Test suite ID (UUID)')
|
|
21
|
+
.option('--json', 'Output as JSON')
|
|
22
|
+
.action(async (id, options) => {
|
|
23
|
+
try {
|
|
24
|
+
const config = await loadConfig();
|
|
25
|
+
requireApiKey(config);
|
|
26
|
+
const suite = (await apiCall(config, 'GET', `/api/v1/test-suites/${id}`));
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(JSON.stringify(suite, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`${colors.cyan}Test Suite Details${colors.reset}\n`);
|
|
32
|
+
printField('ID', String(suite.id ?? '-'));
|
|
33
|
+
printField('Name', String(suite.name ?? '-'));
|
|
34
|
+
printField('Description', String(suite.description ?? '-'));
|
|
35
|
+
printField('Created', formatTimestamp(String(suite.created_at ?? '')));
|
|
36
|
+
printField('Updated', formatTimestamp(String(suite.updated_at ?? '')));
|
|
37
|
+
// Test IDs
|
|
38
|
+
const testIds = suite.test_ids;
|
|
39
|
+
if (Array.isArray(testIds) && testIds.length > 0) {
|
|
40
|
+
console.log(`\n ${colors.gray}Tests (${testIds.length}):${colors.reset}`);
|
|
41
|
+
for (const tid of testIds) {
|
|
42
|
+
console.log(` • ${tid}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
printField('Tests', 'none');
|
|
47
|
+
}
|
|
48
|
+
// Schedule info if present
|
|
49
|
+
const schedule = suite.schedule;
|
|
50
|
+
if (schedule && typeof schedule === 'object') {
|
|
51
|
+
console.log(`\n ${colors.gray}Schedule:${colors.reset}`);
|
|
52
|
+
const sched = schedule;
|
|
53
|
+
for (const [key, value] of Object.entries(sched)) {
|
|
54
|
+
if (value !== undefined && value !== null) {
|
|
55
|
+
const display = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
56
|
+
printField(` ${key}`, display);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.log(error(`Failed to fetch test suite: ${formatError(err)}`));
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,WAAW,SAoDpB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use suite list - List test suites
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, paginationQuery, requireApiKey } from '../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../lib/config.js';
|
|
7
|
+
import { error, formatError, warning } from '../../lib/output.js';
|
|
8
|
+
import { formatTimestamp, printTable, truncate } from '../../lib/table.js';
|
|
9
|
+
export const listCommand = new Command('list')
|
|
10
|
+
.description('List test suites')
|
|
11
|
+
.option('--limit <n>', 'Limit results (default: 20)', '20')
|
|
12
|
+
.option('--offset <n>', 'Skip N results', '0')
|
|
13
|
+
.option('--json', 'Output as JSON')
|
|
14
|
+
.action(async (options) => {
|
|
15
|
+
try {
|
|
16
|
+
const config = await loadConfig();
|
|
17
|
+
requireApiKey(config);
|
|
18
|
+
const query = paginationQuery(options);
|
|
19
|
+
const suites = (await apiCall(config, 'GET', '/api/v1/test-suites', {
|
|
20
|
+
query,
|
|
21
|
+
}));
|
|
22
|
+
const columns = [
|
|
23
|
+
{ key: 'id', header: 'ID', width: 36 },
|
|
24
|
+
{
|
|
25
|
+
key: 'name',
|
|
26
|
+
header: 'NAME',
|
|
27
|
+
width: 30,
|
|
28
|
+
format: (v) => truncate(String(v ?? '-'), 30),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: 'test_ids',
|
|
32
|
+
header: 'TEST_COUNT',
|
|
33
|
+
width: 10,
|
|
34
|
+
format: (v) => String(Array.isArray(v) ? v.length : '-'),
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
key: 'updated_at',
|
|
38
|
+
header: 'UPDATED',
|
|
39
|
+
width: 19,
|
|
40
|
+
format: (v) => formatTimestamp(String(v ?? '')),
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
const limit = Number.parseInt(options.limit, 10);
|
|
44
|
+
const offset = Number.parseInt(options.offset, 10);
|
|
45
|
+
printTable(columns, suites, {
|
|
46
|
+
json: options.json,
|
|
47
|
+
title: `Test Suites (${suites.length} result${suites.length === 1 ? '' : 's'})`,
|
|
48
|
+
emptyMessage: warning('No test suites found'),
|
|
49
|
+
limit,
|
|
50
|
+
offset,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
console.log(error(`Failed to list test suites: ${formatError(err)}`));
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/suite/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,UAAU,SA4BnB,CAAC"}
|