@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,55 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { loadConfig } from '../../lib/config.js';
|
|
3
|
+
import { error, formatError, warning } from '../../lib/output.js';
|
|
4
|
+
import { loadOpenApiSpec } from './lib/openapi-spec.js';
|
|
5
|
+
function getRefreshMode(options) {
|
|
6
|
+
if (options.refresh && options.offline) {
|
|
7
|
+
throw new Error('Cannot use --refresh and --offline together');
|
|
8
|
+
}
|
|
9
|
+
if (options.refresh)
|
|
10
|
+
return 'refresh';
|
|
11
|
+
if (options.offline)
|
|
12
|
+
return 'offline';
|
|
13
|
+
return 'default';
|
|
14
|
+
}
|
|
15
|
+
export const openapiCommand = new Command('openapi')
|
|
16
|
+
.description('Show OpenAPI spec URL or dump full spec')
|
|
17
|
+
.option('--raw', 'Dump full OpenAPI spec as JSON')
|
|
18
|
+
.option('--refresh', 'Force refresh spec from server')
|
|
19
|
+
.option('--offline', 'Use cached spec only')
|
|
20
|
+
.action(async (options, command) => {
|
|
21
|
+
try {
|
|
22
|
+
const parentOptions = (command.parent?.opts() || {});
|
|
23
|
+
const effectiveOptions = {
|
|
24
|
+
...parentOptions,
|
|
25
|
+
...options,
|
|
26
|
+
};
|
|
27
|
+
const config = await loadConfig();
|
|
28
|
+
const apiUrl = (config.api_url ||
|
|
29
|
+
process.env.QA_USE_API_URL ||
|
|
30
|
+
'https://api.desplega.ai').replace(/\/$/, '');
|
|
31
|
+
if (!effectiveOptions.raw) {
|
|
32
|
+
console.log(`${apiUrl}/api/v1/openapi.json`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const apiKey = config.api_key || process.env.QA_USE_API_KEY;
|
|
36
|
+
const refreshMode = getRefreshMode(effectiveOptions);
|
|
37
|
+
const spec = await loadOpenApiSpec({
|
|
38
|
+
apiUrl,
|
|
39
|
+
apiKey,
|
|
40
|
+
refreshMode,
|
|
41
|
+
customHeaders: config.headers,
|
|
42
|
+
});
|
|
43
|
+
if (spec.stale) {
|
|
44
|
+
for (const message of spec.warnings) {
|
|
45
|
+
console.error(warning(message));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
console.log(JSON.stringify(spec.index.raw, null, 2));
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
console.error(error(`Failed to load OpenAPI spec: ${formatError(err)}`));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../../../src/cli/commands/api/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,eAAe,EAA2B,MAAM,uBAAuB,CAAC;AAQjF,SAAS,cAAc,CAAC,OAA8B;IACpD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC;KACjD,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,OAA8B,EAAE,OAAgB,EAAE,EAAE;IACjE,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAA0B,CAAC;QAC9E,MAAM,gBAAgB,GAA0B;YAC9C,GAAG,aAAa;YAChB,GAAG,OAAO;SACX,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,CACb,MAAM,CAAC,OAAO;YACd,OAAO,CAAC,GAAG,CAAC,cAAc;YAC1B,yBAAyB,CAC1B,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErB,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,sBAAsB,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5D,MAAM,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;YACjC,MAAM;YACN,MAAM;YACN,WAAW;YACX,aAAa,EAAE,MAAM,CAAC,OAAO;SAC9B,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/api/request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/api/request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,uBAAuB,CAAC;AAc/B,UAAU,0BAA0B;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAqCD,wBAAgB,WAAW,CACzB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC9C,MAAM,CAwBR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC9C,mBAAmB,GAAG,SAAS,CAIjC;AA0CD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,mBAAmB,GAAE,0BAA+B,GACnD,OAAO,CA6IT;AAED,eAAO,MAAM,cAAc,SAG1B,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { loadConfig } from '../../lib/config.js';
|
|
|
4
4
|
import { error, formatError, warning } from '../../lib/output.js';
|
|
5
5
|
import { executeApiRequest, formatApiResponseError } from './lib/http.js';
|
|
6
6
|
import { loadOpenApiSpec, } from './lib/openapi-spec.js';
|
|
7
|
+
import { resolveOperationCandidates } from './lib/route-matching.js';
|
|
7
8
|
function collectValues(value, previous = []) {
|
|
8
9
|
previous.push(value);
|
|
9
10
|
return previous;
|
|
@@ -35,14 +36,6 @@ function parseEndpoint(endpoint) {
|
|
|
35
36
|
query,
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
|
-
function pathTemplateToRegExp(pathTemplate) {
|
|
39
|
-
const escaped = pathTemplate.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
40
|
-
const pattern = escaped.replace(/\\\{[^/]+\\\}/g, '[^/]+');
|
|
41
|
-
return new RegExp(`^${pattern}$`);
|
|
42
|
-
}
|
|
43
|
-
function resolveOperationCandidates(path, operations) {
|
|
44
|
-
return Object.values(operations).filter((operation) => pathTemplateToRegExp(operation.path).test(path));
|
|
45
|
-
}
|
|
46
39
|
export function inferMethod(explicitMethod, path, operations) {
|
|
47
40
|
if (explicitMethod) {
|
|
48
41
|
return explicitMethod.toUpperCase();
|
|
@@ -115,10 +108,11 @@ export function registerApiRequestAction(command, registrationOptions = {}) {
|
|
|
115
108
|
.option('--raw', 'Print raw response body')
|
|
116
109
|
.option('--refresh', 'Force refresh OpenAPI spec from server')
|
|
117
110
|
.option('--offline', 'Use cached OpenAPI spec only')
|
|
118
|
-
.action(async (endpoint, options) => {
|
|
111
|
+
.action(async (endpoint, options, cmd) => {
|
|
119
112
|
try {
|
|
120
113
|
if (!endpoint) {
|
|
121
|
-
|
|
114
|
+
cmd.help();
|
|
115
|
+
return;
|
|
122
116
|
}
|
|
123
117
|
const config = await loadConfig();
|
|
124
118
|
const apiUrl = config.api_url || process.env.QA_USE_API_URL || 'https://api.desplega.ai';
|
|
@@ -126,11 +120,15 @@ export function registerApiRequestAction(command, registrationOptions = {}) {
|
|
|
126
120
|
const refreshMode = getRefreshMode(options);
|
|
127
121
|
const { path, query: urlQuery } = parseEndpoint(endpoint);
|
|
128
122
|
const fieldMap = parseKeyValuePairs(options.field || [], '=');
|
|
129
|
-
const headerMap =
|
|
123
|
+
const headerMap = {
|
|
124
|
+
...config.headers,
|
|
125
|
+
...parseKeyValuePairs(options.header || [], ':'),
|
|
126
|
+
};
|
|
130
127
|
const openApi = await loadOpenApiSpec({
|
|
131
128
|
apiUrl,
|
|
132
129
|
apiKey,
|
|
133
130
|
refreshMode,
|
|
131
|
+
customHeaders: config.headers,
|
|
134
132
|
});
|
|
135
133
|
if (openApi.stale) {
|
|
136
134
|
for (const message of openApi.warnings) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../../src/cli/commands/api/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EACL,eAAe,GAGhB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../../src/cli/commands/api/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/app-config/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,aAAa,SA0BtB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use app-config create - Create a new app configuration
|
|
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 app configuration')
|
|
10
|
+
.option('--input <file>', 'JSON file with app configuration 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 Config" or --input <file>');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const result = (await apiCall(config, 'POST', '/api/v1/app-configs', {
|
|
23
|
+
body,
|
|
24
|
+
}));
|
|
25
|
+
console.log(success(`App configuration created (ID: ${result.id})`));
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.log(error(`Failed to create app configuration: ${formatError(err)}`));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/app-config/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,gCAAgC,CAAC;KAC7C,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;KACvE,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,6CAA6C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE;YACnE,IAAI;SACL,CAAC,CAA4B,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,kCAAkC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,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/app-config/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 app-config delete - Delete an app configuration
|
|
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 an app configuration')
|
|
10
|
+
.argument('<id>', 'App configuration 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 app configuration ${id}?`);
|
|
18
|
+
if (!confirmed) {
|
|
19
|
+
console.log('Cancelled.');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
await apiCall(config, 'DELETE', `/api/v1/app-configs/${id}`);
|
|
24
|
+
console.log(success(`App configuration ${id} deleted`));
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
console.log(error(`Failed to delete app configuration: ${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/app-config/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,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;KAC/C,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,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACzE,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,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,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/app-config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,gBAAgB,SAAqE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use app-config - Manage app configurations
|
|
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 appConfigCommand = new Command('app-config').description('Manage app configurations');
|
|
11
|
+
appConfigCommand.addCommand(listCommand);
|
|
12
|
+
appConfigCommand.addCommand(infoCommand);
|
|
13
|
+
appConfigCommand.addCommand(createCommand);
|
|
14
|
+
appConfigCommand.addCommand(updateCommand);
|
|
15
|
+
appConfigCommand.addCommand(deleteCommand);
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/app-config/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,gBAAgB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAEnG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACzC,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACzC,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC3C,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC3C,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/app-config/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,eAAO,MAAM,WAAW,SAwDpB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use app-config info - Show detailed app configuration
|
|
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 app configuration')
|
|
20
|
+
.argument('<id>', 'App configuration 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 appConfig = (await apiCall(config, 'GET', `/api/v1/app-configs/${id}`));
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(JSON.stringify(appConfig, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`${colors.cyan}App Configuration Details${colors.reset}\n`);
|
|
32
|
+
printField('ID', String(appConfig.id ?? '-'));
|
|
33
|
+
printField('Name', String(appConfig.name ?? '-'));
|
|
34
|
+
printField('App URL', String(appConfig.app_url ?? '-'));
|
|
35
|
+
printField('Created', formatTimestamp(String(appConfig.created_at ?? '')));
|
|
36
|
+
printField('Updated', formatTimestamp(String(appConfig.updated_at ?? '')));
|
|
37
|
+
// Auth config if present
|
|
38
|
+
const auth = appConfig.auth;
|
|
39
|
+
if (auth && typeof auth === 'object') {
|
|
40
|
+
console.log(`\n ${colors.gray}Auth:${colors.reset}`);
|
|
41
|
+
const authObj = auth;
|
|
42
|
+
for (const [key, value] of Object.entries(authObj)) {
|
|
43
|
+
if (value !== undefined && value !== null) {
|
|
44
|
+
const display = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
45
|
+
printField(` ${key}`, display);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Selectors if present
|
|
50
|
+
const selectors = appConfig.selectors;
|
|
51
|
+
if (selectors && typeof selectors === 'object') {
|
|
52
|
+
console.log(`\n ${colors.gray}Selectors:${colors.reset}`);
|
|
53
|
+
const selObj = selectors;
|
|
54
|
+
for (const [key, value] of Object.entries(selObj)) {
|
|
55
|
+
if (value !== undefined && value !== null) {
|
|
56
|
+
const display = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
57
|
+
printField(` ${key}`, display);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
console.log(error(`Failed to fetch app configuration: ${formatError(err)}`));
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/cli/commands/app-config/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/app-config/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 app-config list - List app configurations
|
|
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 app configurations')
|
|
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 configs = (await apiCall(config, 'GET', '/api/v1/app-configs', {
|
|
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: 'app_url',
|
|
32
|
+
header: 'APP_URL',
|
|
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, configs, {
|
|
46
|
+
json: options.json,
|
|
47
|
+
title: `App Configurations (${configs.length} result${configs.length === 1 ? '' : 's'})`,
|
|
48
|
+
emptyMessage: warning('No app configurations found'),
|
|
49
|
+
limit,
|
|
50
|
+
offset,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
console.log(error(`Failed to list app configurations: ${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/app-config/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,yBAAyB,CAAC;KACtC,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,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;YACnE,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,SAAS;gBACd,MAAM,EAAE,SAAS;gBACjB,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,OAAO,EAAE;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,uBAAuB,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YACxF,YAAY,EAAE,OAAO,CAAC,6BAA6B,CAAC;YACpD,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,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/app-config/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 app-config update - Update an existing app configuration
|
|
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 app configuration')
|
|
10
|
+
.argument('<id>', 'App configuration ID (UUID)')
|
|
11
|
+
.option('--input <file>', 'JSON file with app configuration 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/app-configs/${id}`, { body });
|
|
24
|
+
console.log(success(`App configuration ${id} updated`));
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
console.log(error(`Failed to update app configuration: ${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/app-config/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,sCAAsC,CAAC;KACnD,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;KAC/C,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;KACvE,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,uBAAuB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,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/app-context/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,aAAa,SA0BtB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use app-context create - Create a new app context
|
|
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 app context')
|
|
10
|
+
.option('--input <file>', 'JSON file with app context 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 Context" or --input <file>');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const result = (await apiCall(config, 'POST', '/api/v1/app-contexts', {
|
|
23
|
+
body,
|
|
24
|
+
}));
|
|
25
|
+
console.log(success(`App context created (ID: ${result.id})`));
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.log(error(`Failed to create app context: ${formatError(err)}`));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/app-context/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,0BAA0B,CAAC;KACvC,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACjE,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,sBAAsB,EAAE;YACpE,IAAI;SACL,CAAC,CAA4B,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,4BAA4B,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,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/app-context/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 app-context delete - Delete an app context
|
|
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 an app context')
|
|
10
|
+
.argument('<id>', 'App context 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 app context ${id}?`);
|
|
18
|
+
if (!confirmed) {
|
|
19
|
+
console.log('Cancelled.');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
await apiCall(config, 'DELETE', `/api/v1/app-contexts/${id}`);
|
|
24
|
+
console.log(success(`App context ${id} deleted`));
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
console.log(error(`Failed to delete app context: ${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/app-context/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,uBAAuB,CAAC;KACpC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;KACzC,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,sBAAsB,EAAE,GAAG,CAAC,CAAC;YACnE,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,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,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/app-context/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,iBAAiB,SAAgE,CAAC"}
|