@desplega.ai/qa-use 2.11.0 → 2.13.1
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 +2 -4
- 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 +7 -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/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,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use data-asset list - List data assets
|
|
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
|
+
function formatSize(bytes) {
|
|
10
|
+
const n = Number(bytes);
|
|
11
|
+
if (Number.isNaN(n) || n < 0)
|
|
12
|
+
return '-';
|
|
13
|
+
if (n < 1024)
|
|
14
|
+
return `${n} B`;
|
|
15
|
+
if (n < 1024 * 1024)
|
|
16
|
+
return `${(n / 1024).toFixed(1)} KB`;
|
|
17
|
+
if (n < 1024 * 1024 * 1024)
|
|
18
|
+
return `${(n / (1024 * 1024)).toFixed(1)} MB`;
|
|
19
|
+
return `${(n / (1024 * 1024 * 1024)).toFixed(1)} GB`;
|
|
20
|
+
}
|
|
21
|
+
export const listCommand = new Command('list')
|
|
22
|
+
.description('List data assets')
|
|
23
|
+
.option('--limit <n>', 'Limit results (default: 20)', '20')
|
|
24
|
+
.option('--offset <n>', 'Skip N results', '0')
|
|
25
|
+
.option('--json', 'Output as JSON')
|
|
26
|
+
.action(async (options) => {
|
|
27
|
+
try {
|
|
28
|
+
const config = await loadConfig();
|
|
29
|
+
requireApiKey(config);
|
|
30
|
+
const query = paginationQuery(options);
|
|
31
|
+
const assets = (await apiCall(config, 'GET', '/api/v1/data-assets', {
|
|
32
|
+
query,
|
|
33
|
+
}));
|
|
34
|
+
const columns = [
|
|
35
|
+
{ key: 'id', header: 'ID', width: 36 },
|
|
36
|
+
{
|
|
37
|
+
key: 'name',
|
|
38
|
+
header: 'NAME',
|
|
39
|
+
width: 30,
|
|
40
|
+
format: (v) => truncate(String(v ?? '-'), 30),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
key: 'type',
|
|
44
|
+
header: 'TYPE',
|
|
45
|
+
width: 15,
|
|
46
|
+
format: (v) => String(v ?? '-'),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'size',
|
|
50
|
+
header: 'SIZE',
|
|
51
|
+
width: 12,
|
|
52
|
+
format: (v) => formatSize(v),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: 'created_at',
|
|
56
|
+
header: 'CREATED',
|
|
57
|
+
width: 19,
|
|
58
|
+
format: (v) => formatTimestamp(String(v ?? '')),
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
const limit = Number.parseInt(options.limit, 10);
|
|
62
|
+
const offset = Number.parseInt(options.offset, 10);
|
|
63
|
+
printTable(columns, assets, {
|
|
64
|
+
json: options.json,
|
|
65
|
+
title: `Data Assets (${assets.length} result${assets.length === 1 ? '' : 's'})`,
|
|
66
|
+
emptyMessage: warning('No data assets found'),
|
|
67
|
+
limit,
|
|
68
|
+
offset,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
console.log(error(`Failed to list data assets: ${formatError(err)}`));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/cli/commands/data-asset/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,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1E,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,kBAAkB,CAAC;KAC/B,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,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;YAClE,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,MAAM;gBACX,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;aAChC;YACD;gBACE,GAAG,EAAE,MAAM;gBACX,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;aAC7B;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,MAAM,EAAE;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,gBAAgB,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YAC/E,YAAY,EAAE,OAAO,CAAC,sBAAsB,CAAC;YAC7C,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/data-asset/upload.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAiFtB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use data-asset upload - Upload a data asset (multipart/form-data)
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from 'node:fs/promises';
|
|
5
|
+
import * as path from 'node:path';
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { collectFields, requireApiKey } from '../../lib/api-helpers.js';
|
|
8
|
+
import { loadConfig } from '../../lib/config.js';
|
|
9
|
+
import { error, formatError, success } from '../../lib/output.js';
|
|
10
|
+
export const uploadCommand = new Command('upload')
|
|
11
|
+
.description('Upload a data asset')
|
|
12
|
+
.argument('<file>', 'Local file path to upload')
|
|
13
|
+
.option('-F, --field <key=value>', 'Set field (e.g. name=<name>)', collectFields, [])
|
|
14
|
+
.option('--json', 'Output as JSON')
|
|
15
|
+
.action(async (filePath, options) => {
|
|
16
|
+
try {
|
|
17
|
+
const config = await loadConfig();
|
|
18
|
+
requireApiKey(config);
|
|
19
|
+
// Resolve and validate file
|
|
20
|
+
const resolvedPath = path.resolve(filePath);
|
|
21
|
+
try {
|
|
22
|
+
await fs.access(resolvedPath);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
console.log(error(`File not found: ${resolvedPath}`));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const fileName = path.basename(resolvedPath);
|
|
29
|
+
// Parse fields to extract name override
|
|
30
|
+
let name;
|
|
31
|
+
for (const entry of options.field) {
|
|
32
|
+
const idx = entry.indexOf('=');
|
|
33
|
+
if (idx > 0) {
|
|
34
|
+
const key = entry.slice(0, idx).trim();
|
|
35
|
+
const value = entry.slice(idx + 1).trim();
|
|
36
|
+
if (key === 'name') {
|
|
37
|
+
name = value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Build multipart form
|
|
42
|
+
const fileBuffer = await fs.readFile(resolvedPath);
|
|
43
|
+
const blob = new Blob([fileBuffer]);
|
|
44
|
+
const form = new FormData();
|
|
45
|
+
form.append('file', blob, fileName);
|
|
46
|
+
if (name) {
|
|
47
|
+
form.append('name', name);
|
|
48
|
+
}
|
|
49
|
+
const apiUrl = config.api_url || 'https://api.desplega.ai';
|
|
50
|
+
const headers = { 'x-api-key': config.api_key };
|
|
51
|
+
if (config.headers) {
|
|
52
|
+
Object.assign(headers, config.headers);
|
|
53
|
+
}
|
|
54
|
+
const response = await fetch(`${apiUrl}/api/v1/data-assets`, {
|
|
55
|
+
method: 'POST',
|
|
56
|
+
headers,
|
|
57
|
+
body: form,
|
|
58
|
+
});
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
const body = await response.text();
|
|
61
|
+
let detail;
|
|
62
|
+
try {
|
|
63
|
+
const parsed = JSON.parse(body);
|
|
64
|
+
detail = parsed.detail || parsed.message || body;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
detail = body;
|
|
68
|
+
}
|
|
69
|
+
throw new Error(`${response.status} ${response.statusText}: ${detail}`);
|
|
70
|
+
}
|
|
71
|
+
const result = (await response.json());
|
|
72
|
+
if (options.json) {
|
|
73
|
+
console.log(JSON.stringify(result, null, 2));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
console.log(success(`Data asset uploaded (ID: ${result.id}, Name: ${result.name ?? fileName})`));
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
console.log(error(`Failed to upload data asset: ${formatError(err)}`));
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../../../src/cli/commands/data-asset/upload.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,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,QAAQ,EAAE,2BAA2B,CAAC;KAC/C,MAAM,CAAC,yBAAyB,EAAE,8BAA8B,EAAE,aAAa,EAAE,EAAE,CAAC;KACpF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE7C,wCAAwC;QACxC,IAAI,IAAwB,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1C,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;oBACnB,IAAI,GAAG,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,yBAAyB,CAAC;QAC3D,MAAM,OAAO,GAA2B,EAAE,WAAW,EAAE,MAAM,CAAC,OAAiB,EAAE,CAAC;QAClF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,qBAAqB,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;QAElE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,4BAA4B,MAAM,CAAC,EAAE,WAAW,MAAM,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC,CACpF,CAAC;IACJ,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCpC,eAAO,MAAM,WAAW,SAgDpB,CAAC"}
|
|
@@ -22,7 +22,13 @@ Usage:
|
|
|
22
22
|
qa-use docs Main documentation
|
|
23
23
|
qa-use docs browser-commands Browser commands reference
|
|
24
24
|
qa-use docs templates List all templates
|
|
25
|
-
qa-use docs template:auth-flow Show auth flow template
|
|
25
|
+
qa-use docs template:auth-flow Show auth flow template
|
|
26
|
+
|
|
27
|
+
API Documentation (via qa-use api):
|
|
28
|
+
qa-use api ls List available API endpoints
|
|
29
|
+
qa-use api info <route> Route details (input/output types)
|
|
30
|
+
qa-use api examples API usage examples
|
|
31
|
+
qa-use api openapi OpenAPI spec URL (--raw for JSON)`);
|
|
26
32
|
}
|
|
27
33
|
export const docsCommand = new Command('docs')
|
|
28
34
|
.description('Show documentation and reference guides')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE7C,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;IACrE,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../src/cli/commands/docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,eAAO,MAAM,WAAW,SA2LpB,CAAC"}
|
|
@@ -54,6 +54,13 @@ export const infoCommand = new Command('info')
|
|
|
54
54
|
console.log(` API Key: ${apiKey ? `${apiKey.slice(0, 12)}...` : '(not set)'}${apiKeySource}`);
|
|
55
55
|
console.log(` API URL: ${config.api_url || process.env.QA_USE_API_URL || 'https://api.desplega.ai'}`);
|
|
56
56
|
console.log(` Test Directory: ${config.test_directory || './qa-tests'}`);
|
|
57
|
+
if (config.headers && Object.keys(config.headers).length > 0) {
|
|
58
|
+
const count = Object.keys(config.headers).length;
|
|
59
|
+
console.log(` Headers: ${count} custom header(s)`);
|
|
60
|
+
for (const [name, value] of Object.entries(config.headers)) {
|
|
61
|
+
console.log(` ${name}: ${value}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
57
64
|
// Fetch and display app config if API key is available
|
|
58
65
|
let appConfig = null;
|
|
59
66
|
let appConfigSource = '';
|
|
@@ -61,6 +68,8 @@ export const infoCommand = new Command('info')
|
|
|
61
68
|
try {
|
|
62
69
|
const client = new ApiClient(config.api_url);
|
|
63
70
|
client.setApiKey(apiKey);
|
|
71
|
+
if (config.headers)
|
|
72
|
+
client.setCustomHeaders(config.headers);
|
|
64
73
|
const authResponse = await client.validateApiKey();
|
|
65
74
|
if (authResponse.success && authResponse.data) {
|
|
66
75
|
const apiKeyAppConfigId = authResponse.data.api_key?.app_config_id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../src/cli/commands/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAAwD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use issues - View test issues
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { infoCommand } from './info.js';
|
|
6
|
+
import { listCommand } from './list.js';
|
|
7
|
+
import { occurrencesCommand } from './occurrences.js';
|
|
8
|
+
export const issuesCommand = new Command('issues').description('View test issues');
|
|
9
|
+
issuesCommand.addCommand(listCommand);
|
|
10
|
+
issuesCommand.addCommand(infoCommand);
|
|
11
|
+
issuesCommand.addCommand(occurrencesCommand);
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAEnF,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACtC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACtC,aAAa,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,eAAO,MAAM,WAAW,SA4CpB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use issues info - Show detailed issue 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 issue information')
|
|
20
|
+
.argument('<id>', 'Issue 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 issue = (await apiCall(config, 'GET', `/api/v1/issues/${id}`));
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(JSON.stringify(issue, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`${colors.cyan}Issue Details${colors.reset}\n`);
|
|
32
|
+
printField('ID', String(issue.id ?? '-'));
|
|
33
|
+
printField('Title', String(issue.title ?? '-'));
|
|
34
|
+
printField('Description', String(issue.description ?? '-'));
|
|
35
|
+
printField('Status', String(issue.status ?? '-'));
|
|
36
|
+
printField('Severity', String(issue.severity ?? '-'));
|
|
37
|
+
printField('First Seen', formatTimestamp(String(issue.first_seen ?? '')));
|
|
38
|
+
printField('Last Seen', formatTimestamp(String(issue.last_seen ?? '')));
|
|
39
|
+
printField('Occurrences', String(issue.occurrence_count ?? '-'));
|
|
40
|
+
// Affected tests
|
|
41
|
+
const affectedTests = issue.affected_tests ?? issue.test_ids;
|
|
42
|
+
if (Array.isArray(affectedTests) && affectedTests.length > 0) {
|
|
43
|
+
console.log(`\n ${colors.gray}Affected Tests (${affectedTests.length}):${colors.reset}`);
|
|
44
|
+
for (const tid of affectedTests) {
|
|
45
|
+
console.log(` - ${tid}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
printField('Affected Tests', 'none');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
console.log(error(`Failed to fetch issue: ${formatError(err)}`));
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,WAAW,SAiEpB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use issues list - List issues
|
|
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 { formatStatus, formatTimestamp, printTable, truncate, } from '../../lib/table.js';
|
|
9
|
+
export const listCommand = new Command('list')
|
|
10
|
+
.description('List issues')
|
|
11
|
+
.option('--limit <n>', 'Limit results (default: 20)', '20')
|
|
12
|
+
.option('--offset <n>', 'Skip N results', '0')
|
|
13
|
+
.option('--json', 'Output as JSON')
|
|
14
|
+
.option('--status <status>', 'Filter by status')
|
|
15
|
+
.action(async (options) => {
|
|
16
|
+
try {
|
|
17
|
+
const config = await loadConfig();
|
|
18
|
+
requireApiKey(config);
|
|
19
|
+
const query = paginationQuery(options);
|
|
20
|
+
if (options.status) {
|
|
21
|
+
query.status = options.status;
|
|
22
|
+
}
|
|
23
|
+
const issues = (await apiCall(config, 'GET', '/api/v1/issues', {
|
|
24
|
+
query,
|
|
25
|
+
}));
|
|
26
|
+
const columns = [
|
|
27
|
+
{ key: 'id', header: 'ID', width: 36 },
|
|
28
|
+
{
|
|
29
|
+
key: 'title',
|
|
30
|
+
header: 'TITLE/DESCRIPTION',
|
|
31
|
+
width: 40,
|
|
32
|
+
format: (v, row) => {
|
|
33
|
+
const title = String(v ?? row.description ?? '-');
|
|
34
|
+
return truncate(title, 40);
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
key: 'status',
|
|
39
|
+
header: 'STATUS',
|
|
40
|
+
width: 9,
|
|
41
|
+
format: (v) => formatStatus(String(v ?? '-')),
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'occurrence_count',
|
|
45
|
+
header: 'OCCURRENCES',
|
|
46
|
+
width: 11,
|
|
47
|
+
format: (v) => String(v ?? '-'),
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: 'last_seen',
|
|
51
|
+
header: 'LAST_SEEN',
|
|
52
|
+
width: 19,
|
|
53
|
+
format: (v) => formatTimestamp(String(v ?? '')),
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
const limit = Number.parseInt(options.limit, 10);
|
|
57
|
+
const offset = Number.parseInt(options.offset, 10);
|
|
58
|
+
printTable(columns, issues, {
|
|
59
|
+
json: options.json,
|
|
60
|
+
title: `Issues (${issues.length} result${issues.length === 1 ? '' : 's'})`,
|
|
61
|
+
emptyMessage: warning('No issues found'),
|
|
62
|
+
limit,
|
|
63
|
+
offset,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
console.log(error(`Failed to list issues: ${formatError(err)}`));
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"occurrences.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/occurrences.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,kBAAkB,SAgD3B,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use issues occurrences - List occurrences for an issue
|
|
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 occurrencesCommand = new Command('occurrences')
|
|
10
|
+
.description('List occurrences for an issue')
|
|
11
|
+
.argument('<id>', 'Issue ID (UUID)')
|
|
12
|
+
.option('--limit <n>', 'Limit results (default: 20)', '20')
|
|
13
|
+
.option('--offset <n>', 'Skip N results', '0')
|
|
14
|
+
.option('--json', 'Output as JSON')
|
|
15
|
+
.action(async (id, options) => {
|
|
16
|
+
try {
|
|
17
|
+
const config = await loadConfig();
|
|
18
|
+
requireApiKey(config);
|
|
19
|
+
const query = paginationQuery(options);
|
|
20
|
+
const occurrences = (await apiCall(config, 'GET', `/api/v1/issues/${id}/occurrences`, {
|
|
21
|
+
query,
|
|
22
|
+
}));
|
|
23
|
+
const columns = [
|
|
24
|
+
{ key: 'id', header: 'OCCURRENCE_ID', width: 36 },
|
|
25
|
+
{ key: 'test_run_id', header: 'TEST_RUN_ID', width: 36 },
|
|
26
|
+
{
|
|
27
|
+
key: 'timestamp',
|
|
28
|
+
header: 'TIMESTAMP',
|
|
29
|
+
width: 19,
|
|
30
|
+
format: (v) => formatTimestamp(String(v ?? '')),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
key: 'error_message',
|
|
34
|
+
header: 'ERROR_MESSAGE',
|
|
35
|
+
width: 40,
|
|
36
|
+
format: (v) => truncate(String(v ?? '-'), 40),
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
const limit = Number.parseInt(options.limit, 10);
|
|
40
|
+
const offset = Number.parseInt(options.offset, 10);
|
|
41
|
+
printTable(columns, occurrences, {
|
|
42
|
+
json: options.json,
|
|
43
|
+
title: `Occurrences (${occurrences.length} result${occurrences.length === 1 ? '' : 's'})`,
|
|
44
|
+
emptyMessage: warning('No occurrences found'),
|
|
45
|
+
limit,
|
|
46
|
+
offset,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
console.log(error(`Failed to list occurrences: ${formatError(err)}`));
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=occurrences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"occurrences.js","sourceRoot":"","sources":["../../../../../src/cli/commands/issues/occurrences.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,kBAAkB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACzD,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;KACnC,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,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,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,WAAW,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE;YACpF,KAAK;SACN,CAAC,CAAmC,CAAC;QAEtC,MAAM,OAAO,GAAa;YACxB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE;YACjD,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;YACxD;gBACE,GAAG,EAAE,WAAW;gBAChB,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAChD;YACD;gBACE,GAAG,EAAE,eAAe;gBACpB,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;aAC9C;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,WAAW,EAAE;YAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,gBAAgB,WAAW,CAAC,MAAM,UAAU,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YACzF,YAAY,EAAE,OAAO,CAAC,sBAAsB,CAAC;YAC7C,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/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 persona create - Create a new 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 createCommand = new Command('create')
|
|
9
|
+
.description('Create a new persona')
|
|
10
|
+
.option('--input <file>', 'JSON file with persona 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 Persona" or --input <file>');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const result = (await apiCall(config, 'POST', '/api/v1/personas', { body }));
|
|
23
|
+
console.log(success(`Persona created (ID: ${result.id})`));
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
console.log(error(`Failed to create persona: ${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/persona/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,sBAAsB,CAAC;KACnC,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;KAC7D,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,8CAA8C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAG1E,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7D,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":"delete.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/persona/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAuBtB,CAAC"}
|