@copado/agentia-cli 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +69 -0
- package/README.md +3290 -2095
- package/dist/commands/ai/agent/ask.js +4 -4
- package/dist/commands/ai/agent/chat.js +4 -4
- package/dist/commands/auth/get.js +21 -1
- package/dist/commands/auth/set.js +13 -0
- package/dist/commands/auth/unset.js +37 -0
- package/dist/commands/cicd/cloud/commit.js +2 -2
- package/dist/commands/cicd/cloud/promote.js +19 -5
- package/dist/commands/cicd/credential/auth/status.js +38 -0
- package/dist/commands/cicd/credential/auth/web/login.js +54 -0
- package/dist/commands/cicd/credential/create.js +2 -2
- package/dist/commands/cicd/credential/list.js +15 -19
- package/dist/commands/cicd/credential/open.js +30 -0
- package/dist/commands/cicd/credential/update.js +11 -14
- package/dist/commands/cicd/data/commit/create.js +2 -2
- package/dist/commands/cicd/data/commit/list.js +2 -2
- package/dist/commands/cicd/data/dataset-file/content.js +2 -2
- package/dist/commands/cicd/data/dataset-file/list.js +2 -2
- package/dist/commands/cicd/data/filter/add.js +2 -2
- package/dist/commands/cicd/data/filter/delete.js +2 -2
- package/dist/commands/cicd/data/filter/list.js +2 -2
- package/dist/commands/cicd/data/filter/update.js +2 -2
- package/dist/commands/cicd/data/formula/create.js +2 -2
- package/dist/commands/cicd/data/formula/list.js +2 -2
- package/dist/commands/cicd/data/formula/update.js +2 -2
- package/dist/commands/cicd/data/records/match.js +2 -2
- package/dist/commands/cicd/data/records/search.js +2 -2
- package/dist/commands/cicd/data/sobject/fields.js +2 -2
- package/dist/commands/cicd/data/sobject/relationships.js +2 -2
- package/dist/commands/cicd/data/sync/apply.js +2 -2
- package/dist/commands/cicd/data/sync/preview-updates.js +2 -2
- package/dist/commands/cicd/data/template/convert-old.js +2 -2
- package/dist/commands/cicd/data/template/create.js +2 -2
- package/dist/commands/cicd/data/template/delete.js +2 -2
- package/dist/commands/cicd/data/template/get-detail.js +2 -2
- package/dist/commands/cicd/data/template/get.js +2 -2
- package/dist/commands/cicd/data/template/list.js +2 -2
- package/dist/commands/cicd/data/template/open.js +2 -2
- package/dist/commands/cicd/data/template/save-detail.js +2 -2
- package/dist/commands/cicd/environment/auth/status.js +36 -15
- package/dist/commands/cicd/environment/auth/web/login.js +22 -6
- package/dist/commands/cicd/environment/create.js +2 -2
- package/dist/commands/cicd/environment/get.js +2 -2
- package/dist/commands/cicd/environment/list.js +2 -2
- package/dist/commands/cicd/environment/open.js +8 -24
- package/dist/commands/cicd/environment/update.js +2 -2
- package/dist/commands/cicd/extension/create.js +2 -2
- package/dist/commands/cicd/extension/install.js +2 -2
- package/dist/commands/cicd/extension/package.js +2 -2
- package/dist/commands/cicd/extension/publish.js +2 -2
- package/dist/commands/cicd/extension/uninstall.js +2 -2
- package/dist/commands/cicd/extension/validate.js +2 -2
- package/dist/commands/cicd/extension-configuration/get.js +24 -0
- package/dist/commands/cicd/extension-configuration/list.js +49 -0
- package/dist/commands/cicd/extension-configuration/open.js +38 -0
- package/dist/commands/cicd/function/defaults.js +2 -2
- package/dist/commands/cicd/function/delete.js +2 -2
- package/dist/commands/cicd/function/get.js +2 -2
- package/dist/commands/cicd/function/list.js +2 -2
- package/dist/commands/cicd/function/open.js +2 -2
- package/dist/commands/cicd/function/result/get.js +2 -2
- package/dist/commands/cicd/function/result/log/get.js +2 -2
- package/dist/commands/cicd/function/run-local.js +2 -2
- package/dist/commands/cicd/function/run.js +2 -2
- package/dist/commands/cicd/function/upsert.js +2 -2
- package/dist/commands/cicd/health-check.js +2 -2
- package/dist/commands/cicd/job/get.js +2 -2
- package/dist/commands/cicd/job/kill.js +2 -2
- package/dist/commands/cicd/job/list.js +2 -2
- package/dist/commands/cicd/job/log/get.js +2 -2
- package/dist/commands/cicd/job/open.js +2 -2
- package/dist/commands/cicd/job/pause.js +2 -2
- package/dist/commands/cicd/job/result-file/get.js +2 -2
- package/dist/commands/cicd/job/result-file/list.js +2 -2
- package/dist/commands/cicd/job/resume.js +2 -2
- package/dist/commands/cicd/job/run.js +2 -2
- package/dist/commands/cicd/metadata/content/compare.js +2 -2
- package/dist/commands/cicd/metadata/content/get.js +3 -3
- package/dist/commands/cicd/metadata/dependency/list.js +45 -22
- package/dist/commands/cicd/metadata/explore.js +81 -0
- package/dist/commands/cicd/metadata/index/compare.js +2 -2
- package/dist/commands/cicd/metadata/list.js +5 -5
- package/dist/commands/cicd/metadata/refresh/deleted.js +3 -3
- package/dist/commands/cicd/metadata/refresh/run.js +4 -4
- package/dist/commands/cicd/metadata/refresh/status.js +4 -4
- package/dist/commands/cicd/notification/configure.js +2 -2
- package/dist/commands/cicd/notification/get.js +2 -2
- package/dist/commands/cicd/pipeline/automation/activate.js +39 -0
- package/dist/commands/cicd/pipeline/automation/create.js +33 -0
- package/dist/commands/cicd/pipeline/automation/deactivate.js +39 -0
- package/dist/commands/cicd/pipeline/automation/delete.js +45 -0
- package/dist/commands/cicd/pipeline/automation/get.js +32 -0
- package/dist/commands/cicd/pipeline/automation/list.js +38 -0
- package/dist/commands/cicd/pipeline/automation/open.js +38 -0
- package/dist/commands/cicd/pipeline/automation/update.js +38 -0
- package/dist/commands/cicd/pipeline/connection/create.js +2 -2
- package/dist/commands/cicd/pipeline/connection/delete.js +2 -2
- package/dist/commands/cicd/pipeline/connection/list.js +2 -2
- package/dist/commands/cicd/pipeline/connection/open.js +2 -2
- package/dist/commands/cicd/pipeline/connection/update.js +2 -2
- package/dist/commands/cicd/pipeline/create.js +2 -2
- package/dist/commands/cicd/pipeline/get.js +2 -2
- package/dist/commands/cicd/pipeline/list.js +2 -2
- package/dist/commands/cicd/pipeline/open.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/activate.js +39 -0
- package/dist/commands/cicd/pipeline/quality-gate/create.js +34 -0
- package/dist/commands/cicd/pipeline/quality-gate/deactivate.js +39 -0
- package/dist/commands/cicd/pipeline/quality-gate/delete.js +45 -0
- package/dist/commands/cicd/pipeline/quality-gate/get.js +32 -0
- package/dist/commands/cicd/pipeline/quality-gate/list.js +34 -0
- package/dist/commands/cicd/pipeline/quality-gate/open.js +38 -0
- package/dist/commands/cicd/pipeline/quality-gate/update.js +38 -0
- package/dist/commands/cicd/pipeline/stage-connection/create.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/delete.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/list.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/open.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/update.js +2 -2
- package/dist/commands/cicd/pipeline/update.js +2 -2
- package/dist/commands/cicd/project/create.js +2 -2
- package/dist/commands/cicd/project/default/get.js +2 -2
- package/dist/commands/cicd/project/default/set.js +2 -2
- package/dist/commands/cicd/project/default/unset.js +2 -2
- package/dist/commands/cicd/project/delete.js +2 -2
- package/dist/commands/cicd/project/get.js +2 -2
- package/dist/commands/cicd/project/list.js +2 -2
- package/dist/commands/cicd/project/open.js +2 -2
- package/dist/commands/cicd/project/update.js +2 -2
- package/dist/commands/cicd/promotion/conflict/get.js +2 -2
- package/dist/commands/cicd/promotion/conflict/list.js +2 -2
- package/dist/commands/cicd/promotion/conflict/resolve.js +2 -2
- package/dist/commands/cicd/promotion/conflict/unresolve.js +2 -2
- package/dist/commands/cicd/promotion/get.js +2 -2
- package/dist/commands/cicd/promotion/job-step/update.js +2 -2
- package/dist/commands/cicd/promotion/list.js +2 -2
- package/dist/commands/cicd/promotion/open.js +2 -2
- package/dist/commands/cicd/promotion/queue/list.js +28 -0
- package/dist/commands/cicd/promotion/queue/remove.js +37 -0
- package/dist/commands/cicd/promotion/run.js +2 -2
- package/dist/commands/cicd/repository/auth/https/configure.js +2 -2
- package/dist/commands/cicd/repository/auth/oauth/login.js +2 -2
- package/dist/commands/cicd/repository/auth/setup.js +2 -2
- package/dist/commands/cicd/repository/auth/ssh/configure.js +2 -2
- package/dist/commands/cicd/repository/create.js +2 -2
- package/dist/commands/cicd/repository/delete.js +2 -2
- package/dist/commands/cicd/repository/get.js +2 -2
- package/dist/commands/cicd/repository/list.js +2 -2
- package/dist/commands/cicd/repository/open.js +2 -2
- package/dist/commands/cicd/repository/reset.js +2 -2
- package/dist/commands/cicd/repository/update.js +2 -2
- package/dist/commands/cicd/repository/validate.js +2 -2
- package/dist/commands/cicd/stage/create.js +2 -2
- package/dist/commands/cicd/stage/delete.js +2 -2
- package/dist/commands/cicd/stage/get.js +2 -2
- package/dist/commands/cicd/stage/list.js +2 -2
- package/dist/commands/cicd/stage/open.js +2 -2
- package/dist/commands/cicd/stage/update.js +2 -2
- package/dist/commands/cicd/template/defaults.js +2 -2
- package/dist/commands/cicd/template/delete.js +2 -2
- package/dist/commands/cicd/template/get.js +2 -2
- package/dist/commands/cicd/template/list.js +2 -2
- package/dist/commands/cicd/template/upsert.js +2 -2
- package/dist/commands/cicd/user/get.js +2 -2
- package/dist/commands/cicd/work/ahead-behind.js +2 -2
- package/dist/commands/cicd/work/create.js +3 -2
- package/dist/commands/cicd/work/delete.js +2 -2
- package/dist/commands/cicd/work/deployment-step/create.js +2 -2
- package/dist/commands/cicd/work/deployment-step/delete.js +2 -2
- package/dist/commands/cicd/work/deployment-step/list.js +2 -2
- package/dist/commands/cicd/work/deployment-step/reorder.js +2 -2
- package/dist/commands/cicd/work/deployment-step/salesforce-flows.js +2 -2
- package/dist/commands/cicd/work/deployment-step/types.js +2 -2
- package/dist/commands/cicd/work/deployment-step/update.js +2 -2
- package/dist/commands/cicd/work/done.js +2 -2
- package/dist/commands/cicd/work/environment-sync.js +10 -9
- package/dist/commands/cicd/work/get.js +2 -2
- package/dist/commands/cicd/work/list.js +2 -2
- package/dist/commands/cicd/work/open.js +2 -2
- package/dist/commands/cicd/work/promote.js +2 -2
- package/dist/commands/cicd/work/publish.js +2 -2
- package/dist/commands/cicd/work/push.js +2 -2
- package/dist/commands/cicd/work/set.js +8 -6
- package/dist/commands/cicd/work/status.js +2 -2
- package/dist/commands/cicd/work/submit.js +5 -4
- package/dist/commands/cicd/work/test/apex.js +2 -2
- package/dist/commands/cicd/work/test.js +2 -2
- package/dist/commands/cicd/work/update.js +3 -2
- package/dist/commands/help-agent.js +15 -0
- package/dist/commands/help.js +38 -0
- package/dist/commands/history/clear.js +42 -0
- package/dist/commands/history/list.js +50 -0
- package/dist/commands/plugins/install.js +2 -5
- package/dist/commands/setup/skills/create.js +28 -2
- package/dist/commands/setup/skills/list.js +55 -0
- package/dist/commands/setup/skills/update.js +36 -3
- package/dist/commands/setup.js +3 -3
- package/dist/commands/support.js +15 -0
- package/dist/commands/testing/browser/execute.js +49 -0
- package/dist/commands/testing/browser/history.js +49 -0
- package/dist/commands/testing/browser/inspect.js +35 -0
- package/dist/commands/testing/browser/recorder.js +52 -0
- package/dist/commands/testing/browser/reports.js +33 -0
- package/dist/commands/testing/browser/screenshot.js +27 -0
- package/dist/commands/testing/browser/set-options.js +35 -0
- package/dist/commands/testing/browser/start.js +51 -0
- package/dist/commands/testing/browser/status.js +26 -0
- package/dist/commands/testing/browser/stop.js +34 -0
- package/dist/commands/testing/browser/view.js +35 -0
- package/dist/commands/testing/data-table/create.js +1 -2
- package/dist/commands/testing/data-table/delete.js +1 -2
- package/dist/commands/testing/data-table/export.js +2 -6
- package/dist/commands/testing/data-table/get.js +2 -4
- package/dist/commands/testing/data-table/list.js +1 -2
- package/dist/commands/testing/data-table/update.js +3 -4
- package/dist/commands/testing/job/create.js +26 -22
- package/dist/commands/testing/job/delete.js +2 -2
- package/dist/commands/testing/job/files/download.js +73 -0
- package/dist/commands/testing/job/files/list.js +43 -0
- package/dist/commands/testing/job/{upload.js → files/upload.js} +13 -9
- package/dist/commands/testing/job/get.js +2 -2
- package/dist/commands/testing/job/list.js +1 -1
- package/dist/commands/testing/job/refs.js +4 -4
- package/dist/commands/testing/job/run.js +134 -1
- package/dist/commands/testing/{build → job/runs}/abort.js +10 -8
- package/dist/commands/testing/job/runs/get.js +42 -0
- package/dist/commands/testing/{build → job/runs}/list.js +19 -10
- package/dist/commands/testing/{logs.js → job/runs/logs.js} +9 -6
- package/dist/commands/testing/{build → job/runs}/search.js +9 -7
- package/dist/commands/testing/job/schedule/get.js +5 -11
- package/dist/commands/testing/job/schedule/remove.js +3 -3
- package/dist/commands/testing/job/schedule/set.js +3 -3
- package/dist/commands/testing/job/update.js +22 -65
- package/dist/commands/testing/project/create.js +1 -17
- package/dist/commands/testing/project/get.js +0 -1
- package/dist/commands/testing/project/list.js +2 -2
- package/dist/commands/testing/project/permission/set.js +3 -7
- package/dist/commands/testing/project/permission/update.js +2 -2
- package/dist/commands/testing/robot/create.js +22 -25
- package/dist/commands/testing/robot/get.js +1 -1
- package/dist/commands/testing/robot/list.js +3 -3
- package/dist/commands/testing/robot/update.js +3 -3
- package/dist/commands/testing/user-parameter/create.js +3 -9
- package/dist/commands/testing/user-parameter/update.js +1 -7
- package/dist/commands/testing/variable/create.js +4 -9
- package/dist/commands/testing/variable/list.js +3 -3
- package/dist/commands/testing/variable/update.js +5 -12
- package/dist/help.js +17 -0
- package/dist/hooks/init/cicd-connection.js +59 -0
- package/dist/lib/agentia-command.js +69 -6
- package/dist/lib/ai-types.js +2 -1
- package/dist/lib/cicd-command.js +3 -0
- package/dist/lib/cicd-connection.js +22 -0
- package/dist/lib/cicd-gateway.js +2 -1
- package/dist/lib/claude-mcp-config.js +15 -0
- package/dist/lib/command-history-sanitization.js +9 -0
- package/dist/lib/command-history.js +11 -0
- package/dist/lib/command-output-buffer.js +6 -1
- package/dist/lib/credential-sync.js +1 -2
- package/dist/lib/defaults-store.js +6 -1
- package/dist/lib/dependency-from-changes.js +3 -1
- package/dist/lib/dependency-source-context.js +3 -0
- package/dist/lib/environment-auth-status.js +2 -1
- package/dist/lib/environment-auth.js +2 -1
- package/dist/lib/environment-credential-flags.js +3 -1
- package/dist/lib/environment-credential-operations.js +8 -2
- package/dist/lib/environment-types.js +3 -1
- package/dist/lib/extension-configuration-ops.js +4 -0
- package/dist/lib/extension-configuration-sanitize.js +7 -0
- package/dist/lib/extension-configuration-types.js +8 -0
- package/dist/lib/help-agent-command.js +3 -0
- package/dist/lib/help-agent-interaction-history.js +10 -0
- package/dist/lib/help-agent-session.js +3 -0
- package/dist/lib/http-proxy.js +13 -0
- package/dist/lib/mcp/ai-tools.js +3 -3
- package/dist/lib/mcp/command-id.js +2 -0
- package/dist/lib/mcp/pipeline-automation-quality-tools.js +452 -0
- package/dist/lib/mcp/result.js +41 -3
- package/dist/lib/mcp/server.js +73 -3
- package/dist/lib/mcp/testing-browser-tools.js +194 -0
- package/dist/lib/mcp/testing-tools.js +242 -552
- package/dist/lib/mcp/tool-annotations.js +59 -30
- package/dist/lib/mcp/tools.js +202 -66
- package/dist/lib/mcp/work-tools.js +18 -4
- package/dist/lib/metadata-explore.js +8 -0
- package/dist/lib/network-error.js +8 -0
- package/dist/lib/pipeline-automation-flags.js +12 -0
- package/dist/lib/pipeline-automation-ops.js +9 -0
- package/dist/lib/pipeline-automation-types.js +18 -0
- package/dist/lib/pipeline-lifecycle-id.js +3 -0
- package/dist/lib/pipeline-quality-gate-flags.js +12 -0
- package/dist/lib/pipeline-quality-gate-ops.js +9 -0
- package/dist/lib/pipeline-quality-gate-types.js +17 -0
- package/dist/lib/plugin-host/ai.js +2 -1
- package/dist/lib/plugin-skills.js +22 -0
- package/dist/lib/plugin-trust/gate.js +1 -2
- package/dist/lib/project-root.js +3 -1
- package/dist/lib/promotion-queue.js +5 -0
- package/dist/lib/promotion-run.js +2 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/salesforce-tooling-check.js +6 -0
- package/dist/lib/skill-packs.js +7 -0
- package/dist/lib/support-ai-context.js +11 -0
- package/dist/lib/support-ai-stream-parser.js +4 -0
- package/dist/lib/support-ai.js +9 -0
- package/dist/lib/testing-archive.js +9 -0
- package/dist/lib/testing-browser-command.js +6 -0
- package/dist/lib/testing-browser-operations.js +17 -0
- package/dist/lib/testing-browser-requests.js +11 -0
- package/dist/lib/testing-browser-robot.js +9 -0
- package/dist/lib/testing-browser-session.js +14 -0
- package/dist/lib/testing-browser-state.js +17 -0
- package/dist/lib/testing-browser-stream.js +7 -0
- package/dist/lib/testing-browser-types.js +3 -0
- package/dist/lib/testing-browser-viewer-key.js +7 -0
- package/dist/lib/testing-data-table.js +39 -0
- package/dist/lib/testing-execution.js +22 -0
- package/dist/lib/testing-flags.js +6 -2
- package/dist/lib/testing-gateway.js +5 -1
- package/dist/lib/testing-operations.js +9 -4
- package/dist/lib/testing-sanitization.js +3 -1
- package/dist/lib/testing-secret-input.js +2 -1
- package/dist/lib/testing-types.js +24 -3
- package/dist/lib/work-environment-sync.js +3 -1
- package/dist/lib/work-flags.js +6 -1
- package/dist/lib/work-local-development-flow.js +4 -0
- package/dist/lib/work-promote.js +2 -1
- package/dist/lib/work-submit-wait.js +3 -1
- package/oclif.manifest.json +8841 -7469
- package/package.json +45 -5
- package/templates/skills/agentia-ai/SKILL.md +9 -6
- package/templates/skills/agentia-ai/references/ai-agents.md +21 -3
- package/templates/skills/agentia-cicd/SKILL.md +8 -5
- package/templates/skills/agentia-cicd/references/environments-and-credentials.md +35 -13
- package/templates/skills/agentia-cicd/references/extensions.md +3 -0
- package/templates/skills/agentia-cicd/references/pipelines.md +36 -2
- package/templates/skills/agentia-cicd/references/promotions.md +10 -1
- package/templates/skills/agentia-cicd/references/work.md +20 -5
- package/templates/skills/agentia-metadata/SKILL.md +146 -0
- package/templates/skills/agentia-metadata/references/metadata-dependency.md +70 -0
- package/templates/skills/agentia-metadata/references/metadata-explore.md +146 -0
- package/templates/skills/agentia-testing/SKILL.md +12 -7
- package/templates/skills/agentia-testing/references/browser-testing.md +93 -0
- package/templates/skills/agentia-testing/references/flow-automation.md +112 -0
- package/templates/skills/agentia-testing/references/qforce.md +88 -0
- package/templates/skills/agentia-testing/references/qweb.md +103 -0
- package/templates/skills/agentia-testing/references/tests.md +31 -23
- package/dist/commands/testing/build/get.js +0 -38
- package/dist/commands/testing/build/latest.js +0 -40
- package/dist/commands/testing/build/logs.js +0 -47
- package/dist/commands/testing/build/run.js +0 -26
- package/dist/commands/testing/create.js +0 -2
- package/dist/commands/testing/job/download.js +0 -54
- package/dist/commands/testing/job/files.js +0 -34
- package/dist/commands/testing/live/continue.js +0 -21
- package/dist/commands/testing/live/execute.js +0 -43
- package/dist/commands/testing/live/history.js +0 -35
- package/dist/commands/testing/live/inspect.js +0 -30
- package/dist/commands/testing/live/interrupt.js +0 -21
- package/dist/commands/testing/live/recorder.js +0 -134
- package/dist/commands/testing/live/reports.js +0 -31
- package/dist/commands/testing/live/screenshot.js +0 -25
- package/dist/commands/testing/live/set-options.js +0 -28
- package/dist/commands/testing/live/start.js +0 -53
- package/dist/commands/testing/live/status.js +0 -27
- package/dist/commands/testing/live/stop.js +0 -38
- package/dist/commands/testing/live/view.js +0 -36
- package/dist/commands/testing/run.js +0 -26
- package/dist/commands/testing/status.js +0 -45
- package/dist/commands/testing/test/create.js +0 -2
- package/dist/commands/testing/test/logs.js +0 -2
- package/dist/commands/testing/test/run.js +0 -26
- package/dist/commands/testing/test/status.js +0 -2
- package/dist/commands/testing/test/update.js +0 -2
- package/dist/commands/testing/update.js +0 -65
- package/dist/lib/mcp/testing-live-tools.js +0 -215
- package/dist/lib/testing-data-command.js +0 -8
- package/dist/lib/testing-data-core.js +0 -20
- package/dist/lib/testing-data-export.js +0 -6
- package/dist/lib/testing-data-import.js +0 -6
- package/dist/lib/testing-data-io.js +0 -12
- package/dist/lib/testing-data-operations.js +0 -10
- package/dist/lib/testing-data-types.js +0 -4
- package/dist/lib/testing-live-command.js +0 -6
- package/dist/lib/testing-live-endpoints.js +0 -6
- package/dist/lib/testing-live-history.js +0 -7
- package/dist/lib/testing-live-operations.js +0 -19
- package/dist/lib/testing-live-recorder.js +0 -9
- package/dist/lib/testing-live-robot.js +0 -9
- package/dist/lib/testing-live-state.js +0 -5
- package/dist/lib/testing-live-types.js +0 -3
- package/dist/lib/testing-run-command.js +0 -3
- package/dist/lib/testing-schedule.js +0 -5
- package/dist/lib/testing-session.js +0 -5
- package/dist/lib/testing-watch.js +0 -4
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
|
+
import { fetchExtensionConfigurations } from '../../../lib/extension-configuration-ops.js';
|
|
4
|
+
import { formatExtensionConfigurationTable, } from '../../../lib/extension-configuration-types.js';
|
|
5
|
+
import { displayListPagination, listPaginationFlags } from '../../../lib/list-pagination.js';
|
|
6
|
+
export default class ExtensionConfigurationList extends CicdCommand {
|
|
7
|
+
static description = 'List Copado extension configurations';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> <%= command.id %>',
|
|
10
|
+
'<%= config.bin %> <%= command.id %> --tool Selenium --active --json',
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
...listPaginationFlags,
|
|
14
|
+
active: Flags.boolean({
|
|
15
|
+
allowNo: true,
|
|
16
|
+
description: 'Filter by active status',
|
|
17
|
+
}),
|
|
18
|
+
name: Flags.string({
|
|
19
|
+
description: 'Filter by extension configuration name',
|
|
20
|
+
}),
|
|
21
|
+
'test-type': Flags.string({
|
|
22
|
+
description: 'Filter by test type',
|
|
23
|
+
}),
|
|
24
|
+
tool: Flags.string({
|
|
25
|
+
description: 'Filter by extension tool',
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
async run() {
|
|
29
|
+
const { flags } = await this.parse(ExtensionConfigurationList);
|
|
30
|
+
const page = await this.withSpinner('Fetching extension configurations', () => fetchExtensionConfigurations({
|
|
31
|
+
active: flags.active,
|
|
32
|
+
cursor: flags.cursor,
|
|
33
|
+
name: flags.name,
|
|
34
|
+
pageSize: flags['page-size'],
|
|
35
|
+
testType: flags['test-type'],
|
|
36
|
+
tool: flags.tool,
|
|
37
|
+
}));
|
|
38
|
+
this.display(() => {
|
|
39
|
+
if (page.data.length === 0) {
|
|
40
|
+
this.log('No extension configurations found.');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.log(formatExtensionConfigurationTable(page.data));
|
|
44
|
+
displayListPagination(this.log.bind(this), page);
|
|
45
|
+
});
|
|
46
|
+
return page;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
|
+
import { openNavigationTarget } from '../../../lib/navigation-open.js';
|
|
4
|
+
import { resolveNavigationTarget } from '../../../lib/navigation.js';
|
|
5
|
+
import { assertSalesforceLifecycleId } from '../../../lib/pipeline-lifecycle-id.js';
|
|
6
|
+
export default class ExtensionConfigurationOpen extends CicdCommand {
|
|
7
|
+
static args = {
|
|
8
|
+
id: Args.string({
|
|
9
|
+
description: 'Extension configuration Salesforce ID',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static description = 'Open a Copado extension configuration in the browser';
|
|
14
|
+
static examples = [
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <configuration-id>',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> <configuration-id> --json',
|
|
17
|
+
];
|
|
18
|
+
async run() {
|
|
19
|
+
const { args } = await this.parse(ExtensionConfigurationOpen);
|
|
20
|
+
let configurationId;
|
|
21
|
+
try {
|
|
22
|
+
configurationId = assertSalesforceLifecycleId(args.id, 'Extension configuration ID');
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
this.error(error instanceof Error ? error.message : String(error), { exit: 2 });
|
|
26
|
+
}
|
|
27
|
+
const target = await this.withSpinner('Resolving navigation URL', () => resolveNavigationTarget({
|
|
28
|
+
id: configurationId,
|
|
29
|
+
resourceType: 'extension_configuration',
|
|
30
|
+
}));
|
|
31
|
+
await openNavigationTarget(target, {
|
|
32
|
+
jsonEnabled: this.jsonEnabled(),
|
|
33
|
+
log: this.log.bind(this),
|
|
34
|
+
});
|
|
35
|
+
return target;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=open.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
2
2
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
3
3
|
import { buildFunctionDefaultsPayload, functionDefaultsFlags } from '../../../lib/function-flags.js';
|
|
4
4
|
import { formatFunctionDetail, functionsEndpoint, normalizeFunction, } from '../../../lib/function-types.js';
|
|
5
|
-
export default class FunctionDefaults extends
|
|
5
|
+
export default class FunctionDefaults extends CicdCommand {
|
|
6
6
|
static description = 'Scaffold default Copado Function metadata and script without writing to Salesforce';
|
|
7
7
|
static examples = [
|
|
8
8
|
'<%= config.bin %> <%= command.id %> --name MyFunction',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { functionEndpoint } from '../../../lib/function-types.js';
|
|
5
|
-
export default class FunctionDelete extends
|
|
5
|
+
export default class FunctionDelete extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
'api-name': Args.string({
|
|
8
8
|
description: 'Function API name',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatFunctionDetail, functionEndpoint, normalizeFunction, } from '../../../lib/function-types.js';
|
|
5
|
-
export default class FunctionGet extends
|
|
5
|
+
export default class FunctionGet extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
'api-name': Args.string({
|
|
8
8
|
description: 'Function API name',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatFunctionTable, FUNCTION_LIST_TYPES, functionsEndpoint, normalizeFunctionsListPage, } from '../../../lib/function-types.js';
|
|
5
5
|
import { buildListPaginationQuery, displayListPagination, listPaginationFlags, } from '../../../lib/list-pagination.js';
|
|
6
|
-
export default class FunctionList extends
|
|
6
|
+
export default class FunctionList extends CicdCommand {
|
|
7
7
|
static description = 'List Copado Functions';
|
|
8
8
|
static examples = [
|
|
9
9
|
'<%= config.bin %> <%= command.id %>',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { openNavigationTarget } from '../../../lib/navigation-open.js';
|
|
4
4
|
import { resolveNavigationTarget } from '../../../lib/navigation.js';
|
|
5
|
-
export default class FunctionOpen extends
|
|
5
|
+
export default class FunctionOpen extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'Function ID',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatFunctionResultStatus, functionResultEndpoint, normalizeFunctionResultStatus, } from '../../../../lib/function-types.js';
|
|
5
|
-
export default class FunctionResultGet extends
|
|
5
|
+
export default class FunctionResultGet extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
'result-id': Args.string({
|
|
8
8
|
description: 'Function result Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { functionResultLogEndpoint } from '../../../../../lib/function-types.js';
|
|
5
|
-
export default class FunctionResultLogGet extends
|
|
5
|
+
export default class FunctionResultLogGet extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
'result-id': Args.string({
|
|
8
8
|
description: 'Function result Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { DEFAULT_FUNCTION_LOCAL_IMAGE, executeLocalFunctionRun, formatLocalFunctionRunResult, } from '../../../lib/function-local-run.js';
|
|
4
4
|
import { FUNCTION_RUNTIMES } from '../../../lib/function-types.js';
|
|
5
|
-
export default class FunctionRunLocal extends
|
|
5
|
+
export default class FunctionRunLocal extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
script: Args.string({
|
|
8
8
|
description: 'Path to the local function script (.sh, .js, or .py)',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { buildFunctionRunPayload, functionRunFlags } from '../../../lib/function-flags.js';
|
|
5
5
|
import { formatFunctionRunResult, functionRunEndpoint, normalizeFunctionRunResult, } from '../../../lib/function-types.js';
|
|
6
|
-
export default class FunctionRun extends
|
|
6
|
+
export default class FunctionRun extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
'api-name': Args.string({
|
|
9
9
|
description: 'Function API name',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { buildFunctionUpsertPayload, functionUpsertFlags } from '../../../lib/function-flags.js';
|
|
5
5
|
import { formatFunctionDetail, functionEndpoint, normalizeFunction, } from '../../../lib/function-types.js';
|
|
6
|
-
export default class FunctionUpsert extends
|
|
6
|
+
export default class FunctionUpsert extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
'api-name': Args.string({
|
|
9
9
|
description: 'Function API name',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Flags, ux } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../lib/cicd-command.js';
|
|
3
3
|
import { table } from '../../lib/format.js';
|
|
4
4
|
import { analyzeGitRepository, gitSizerRows } from '../../lib/git-sizer.js';
|
|
5
5
|
import { runOrganizationHealthChecks, } from '../../lib/health-check.js';
|
|
@@ -20,7 +20,7 @@ function displayStatus(status) {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
export default class HealthCheck extends
|
|
23
|
+
export default class HealthCheck extends CicdCommand {
|
|
24
24
|
static description = 'Run organization-scoped governance health checks';
|
|
25
25
|
static examples = [
|
|
26
26
|
'<%= config.bin %> <%= command.id %>',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { fetchJob } from '../../../lib/job-get.js';
|
|
4
4
|
import { formatJobDetail } from '../../../lib/job-types.js';
|
|
5
|
-
export default class JobGet extends
|
|
5
|
+
export default class JobGet extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'JobExecution Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatJobOperationResult, jobKillEndpoint, normalizeJobOperation, } from '../../../lib/job-types.js';
|
|
5
|
-
export default class JobKill extends
|
|
5
|
+
export default class JobKill extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'JobExecution Id',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { fetchJobs } from '../../../lib/job-get.js';
|
|
4
4
|
import { formatJobTable } from '../../../lib/job-types.js';
|
|
5
5
|
import { buildListPaginationQuery, displayListPagination, listPaginationFlags, } from '../../../lib/list-pagination.js';
|
|
6
6
|
import { getUserContext } from '../../../lib/user-context.js';
|
|
7
|
-
export default class JobList extends
|
|
7
|
+
export default class JobList extends CicdCommand {
|
|
8
8
|
static description = 'List Copado job executions';
|
|
9
9
|
static examples = [
|
|
10
10
|
'<%= config.bin %> <%= command.id %>',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { jobEndpoint, jobResultLogEndpoint, normalizeJob, resolveJobStepForLog, } from '../../../../lib/job-types.js';
|
|
5
|
-
export default class JobLogGet extends
|
|
5
|
+
export default class JobLogGet extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'JobExecution Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { openNavigationTarget } from '../../../lib/navigation-open.js';
|
|
4
4
|
import { resolveNavigationTarget } from '../../../lib/navigation.js';
|
|
5
|
-
export default class JobOpen extends
|
|
5
|
+
export default class JobOpen extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'JobExecution ID',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatJobOperationResult, jobPauseEndpoint, normalizeJobOperation, } from '../../../lib/job-types.js';
|
|
5
|
-
export default class JobPause extends
|
|
5
|
+
export default class JobPause extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'JobExecution Id',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { writeFileSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
4
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
5
5
|
import { decodeJobResultFileBase64, jobResultFileContentEndpoint, normalizeJobResultFileContent, } from '../../../../lib/job-types.js';
|
|
6
|
-
export default class JobResultFileGet extends
|
|
6
|
+
export default class JobResultFileGet extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
resultId: Args.string({
|
|
9
9
|
description: 'Copado Result Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatJobResultFileTable, jobResultFilesEndpoint, normalizeJobResultFiles, } from '../../../../lib/job-types.js';
|
|
5
|
-
export default class JobResultFileList extends
|
|
5
|
+
export default class JobResultFileList extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
resultId: Args.string({
|
|
8
8
|
description: 'Copado Result Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatJobOperationResult, jobResumeEndpoint, normalizeJobOperation, } from '../../../lib/job-types.js';
|
|
5
|
-
export default class JobResume extends
|
|
5
|
+
export default class JobResume extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'JobExecution Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatJobOperationResult, jobRunEndpoint, normalizeJobOperation, } from '../../../lib/job-types.js';
|
|
5
|
-
export default class JobRun extends
|
|
5
|
+
export default class JobRun extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'JobExecution Id',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { assertRequired, CONTENT_SOURCES, contentResultToCompareSide, createUnifiedDiff, sourceSideLabel, } from '../../../../lib/metadata-common.js';
|
|
5
5
|
export function buildMetadataCompareFileRequests(flags) {
|
|
@@ -33,7 +33,7 @@ export function buildMetadataCompareFileRequests(flags) {
|
|
|
33
33
|
}
|
|
34
34
|
return { sourceRequest, targetRequest };
|
|
35
35
|
}
|
|
36
|
-
export default class MetadataCompareFile extends
|
|
36
|
+
export default class MetadataCompareFile extends CicdCommand {
|
|
37
37
|
static description = 'Compare metadata file content between two orgs or Git branches';
|
|
38
38
|
static examples = [
|
|
39
39
|
'<%= config.bin %> <%= command.id %> --metadata-type ApexClass --api-name MyClass --pipeline-id <id> --source-org-id <id> --source-credential-id <id> --target-org-id <id>',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
4
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
5
5
|
import { assertRequired, CONTENT_SOURCES, decodeBase64, formatContentTable, normalizeContentRows, } from '../../../../lib/metadata-common.js';
|
|
6
6
|
const FILE_EXCLUSIVE_FLAGS = [
|
|
@@ -58,8 +58,8 @@ export function buildMetadataContentRequests(flags) {
|
|
|
58
58
|
}
|
|
59
59
|
return [buildMetadataContentRequest(flags)];
|
|
60
60
|
}
|
|
61
|
-
export default class MetadataContent extends
|
|
62
|
-
static description = 'Retrieve metadata file content
|
|
61
|
+
export default class MetadataContent extends CicdCommand {
|
|
62
|
+
static description = 'Retrieve metadata file content';
|
|
63
63
|
static examples = [
|
|
64
64
|
'<%= config.bin %> <%= command.id %> --metadata-type ApexClass --api-name MyClass --pipeline-id <id> --source-org-id <id>',
|
|
65
65
|
'<%= config.bin %> <%= command.id %> --metadata-type ApexClass --api-name MyClass --show',
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
4
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
5
5
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
6
|
-
import { resolvedSelectionsFromChangedFiles } from '../../../../lib/dependency-from-changes.js';
|
|
6
|
+
import { resolvedSelectionsFromChangedFiles, resolvedSelectionsFromPaths, } from '../../../../lib/dependency-from-changes.js';
|
|
7
|
+
import { resolveDependencySourceContext } from '../../../../lib/dependency-source-context.js';
|
|
7
8
|
import { findLocalMetadataPaths } from '../../../../lib/local-metadata-paths.js';
|
|
8
9
|
import { formatDependencyTable, MODULE_TYPES, normalizeDependencyItem, normalizeDependencySelection, parseJsonValue, PLATFORM_EXPERIENCES, RETRIEVE_MODES, } from '../../../../lib/metadata-common.js';
|
|
9
10
|
function readStdin() {
|
|
@@ -75,17 +76,24 @@ function metadataSelectionFromFlags(flags) {
|
|
|
75
76
|
}
|
|
76
77
|
return normalizeDependencySelection(selection);
|
|
77
78
|
}
|
|
78
|
-
function requestFromSelections(flags, selections) {
|
|
79
|
+
async function requestFromSelections(flags, selections) {
|
|
80
|
+
const sourceContext = await resolveDependencySourceContext({
|
|
81
|
+
pipelineId: flags['pipeline-id'],
|
|
82
|
+
platformExperience: flags['platform-experience'],
|
|
83
|
+
sourceCredentialId: flags['source-credential-id'],
|
|
84
|
+
sourceOrgId: flags['source-org-id'],
|
|
85
|
+
targetOrgId: flags['target-org-id'],
|
|
86
|
+
});
|
|
79
87
|
const body = {
|
|
80
88
|
compareOptions: {
|
|
81
|
-
sourceCredentialId:
|
|
82
|
-
sourceOrgId:
|
|
89
|
+
sourceCredentialId: sourceContext.sourceCredentialId,
|
|
90
|
+
sourceOrgId: sourceContext.sourceOrgId,
|
|
83
91
|
},
|
|
84
92
|
metadataSelections: selections.map((selection) => normalizeDependencySelection(selection)),
|
|
85
|
-
pipelineId:
|
|
93
|
+
pipelineId: sourceContext.pipelineId,
|
|
86
94
|
};
|
|
87
|
-
if (
|
|
88
|
-
body.compareOptions.targetOrgId =
|
|
95
|
+
if (sourceContext.targetOrgId) {
|
|
96
|
+
body.compareOptions.targetOrgId = sourceContext.targetOrgId;
|
|
89
97
|
}
|
|
90
98
|
if (flags['retrieve-mode']) {
|
|
91
99
|
body.compareOptions.retrieveMode = flags['retrieve-mode'];
|
|
@@ -98,13 +106,18 @@ function requestFromSelections(flags, selections) {
|
|
|
98
106
|
}
|
|
99
107
|
return {
|
|
100
108
|
body,
|
|
101
|
-
platformExperience:
|
|
109
|
+
platformExperience: sourceContext.platformExperience,
|
|
102
110
|
};
|
|
103
111
|
}
|
|
104
112
|
export async function buildDependencyRequest(flags) {
|
|
105
|
-
const inputModes = [
|
|
113
|
+
const inputModes = [
|
|
114
|
+
Boolean(flags.file),
|
|
115
|
+
flags.stdin,
|
|
116
|
+
flags['from-changes'],
|
|
117
|
+
Boolean(flags.path?.length),
|
|
118
|
+
].filter(Boolean).length;
|
|
106
119
|
if (inputModes > 1) {
|
|
107
|
-
throw new Error('Use only one input mode: --file, --stdin,
|
|
120
|
+
throw new Error('Use only one input mode: --file, --stdin, --from-changes, or --path.');
|
|
108
121
|
}
|
|
109
122
|
if (flags.file) {
|
|
110
123
|
return dependencyRequestFromJson(readFileSync(flags.file, 'utf8'));
|
|
@@ -114,16 +127,22 @@ export async function buildDependencyRequest(flags) {
|
|
|
114
127
|
}
|
|
115
128
|
if (flags['from-changes']) {
|
|
116
129
|
const resolvedSelections = await resolvedSelectionsFromChangedFiles(flags['base-ref'], flags['module-type']);
|
|
117
|
-
const request = requestFromSelections(flags, resolvedSelections.map(({ selection }) => selection));
|
|
130
|
+
const request = await requestFromSelections(flags, resolvedSelections.map(({ selection }) => selection));
|
|
131
|
+
request.localPathsBySelection = new Map(resolvedSelections.map(({ localPaths, selection }) => [`${selection.type}:${selection.name}`, localPaths]));
|
|
132
|
+
return request;
|
|
133
|
+
}
|
|
134
|
+
if (flags.path?.length) {
|
|
135
|
+
const resolvedSelections = resolvedSelectionsFromPaths(flags.path, flags['module-type']);
|
|
136
|
+
const request = await requestFromSelections(flags, resolvedSelections.map(({ selection }) => selection));
|
|
118
137
|
request.localPathsBySelection = new Map(resolvedSelections.map(({ localPaths, selection }) => [`${selection.type}:${selection.name}`, localPaths]));
|
|
119
138
|
return request;
|
|
120
139
|
}
|
|
121
140
|
if (!flags['metadata-name'] || !flags['metadata-type']) {
|
|
122
|
-
throw new Error('Requires `--metadata-name` and `--metadata-type`, or an input mode such as --file, --stdin,
|
|
141
|
+
throw new Error('Requires `--metadata-name` and `--metadata-type`, or an input mode such as --file, --stdin, --from-changes, or --path.');
|
|
123
142
|
}
|
|
124
143
|
return requestFromSelections(flags, [metadataSelectionFromFlags(flags)]);
|
|
125
144
|
}
|
|
126
|
-
async function enrichDependencyResult(result, localPathsBySelection, moduleType) {
|
|
145
|
+
export async function enrichDependencyResult(result, localPathsBySelection, moduleType) {
|
|
127
146
|
if (!Array.isArray(result.dependencies)) {
|
|
128
147
|
return result;
|
|
129
148
|
}
|
|
@@ -198,12 +217,13 @@ async function enrichDependencyResult(result, localPathsBySelection, moduleType)
|
|
|
198
217
|
}),
|
|
199
218
|
};
|
|
200
219
|
}
|
|
201
|
-
export default class DependencyGet extends
|
|
202
|
-
static description = 'Retrieve metadata dependencies
|
|
220
|
+
export default class DependencyGet extends CicdCommand {
|
|
221
|
+
static description = 'Retrieve metadata dependencies';
|
|
203
222
|
static examples = [
|
|
204
223
|
'<%= config.bin %> <%= command.id %> --metadata-name MyClass --metadata-type ApexClass --pipeline-id <id> --source-org-id <id> --source-credential-id <id>',
|
|
205
224
|
'cat request.json | <%= config.bin %> <%= command.id %> --stdin',
|
|
206
225
|
'<%= config.bin %> <%= command.id %> --from-changes --base-ref origin/main --retrieve-mode all --pipeline-id <id> --source-org-id <id> --source-credential-id <id>',
|
|
226
|
+
'<%= config.bin %> <%= command.id %> --path force-app/main/default/classes/MyClass.cls --pipeline-id <id> --source-credential-id <id> --source-org-id <id> --target-org-id <id> --platform-experience sfdx --retrieve-mode all --json',
|
|
207
227
|
];
|
|
208
228
|
static flags = {
|
|
209
229
|
'base-ref': Flags.string({
|
|
@@ -234,12 +254,15 @@ export default class DependencyGet extends AgentiaCommand {
|
|
|
234
254
|
description: 'Optional addon module type',
|
|
235
255
|
options: [...MODULE_TYPES],
|
|
236
256
|
}),
|
|
257
|
+
path: Flags.string({
|
|
258
|
+
description: 'Local Salesforce source file path to resolve into a metadata selection. Repeatable. Mutually exclusive with --file, --stdin, and --from-changes.',
|
|
259
|
+
multiple: true,
|
|
260
|
+
}),
|
|
237
261
|
'pipeline-id': Flags.string({
|
|
238
|
-
description: 'Pipeline Id',
|
|
262
|
+
description: 'Pipeline Id. Defaults to the active work item pipelineId, or the pipeline on the project default.',
|
|
239
263
|
}),
|
|
240
264
|
'platform-experience': Flags.string({
|
|
241
|
-
|
|
242
|
-
description: 'Gateway platform experience header',
|
|
265
|
+
description: 'Platform experience header. Defaults to the active work item platform, then sfdx.',
|
|
243
266
|
options: [...PLATFORM_EXPERIENCES],
|
|
244
267
|
}),
|
|
245
268
|
'result-id': Flags.string({
|
|
@@ -250,17 +273,17 @@ export default class DependencyGet extends AgentiaCommand {
|
|
|
250
273
|
options: [...RETRIEVE_MODES],
|
|
251
274
|
}),
|
|
252
275
|
'source-credential-id': Flags.string({
|
|
253
|
-
description: 'Source org credential Id',
|
|
276
|
+
description: 'Source org credential Id. Defaults to the active work item source credential, or the project default credential.',
|
|
254
277
|
}),
|
|
255
278
|
'source-org-id': Flags.string({
|
|
256
|
-
description: 'Source org Id',
|
|
279
|
+
description: 'Source org Id. Defaults to the active work item sourceOrgId, or orgId from the resolved source credential/environment.',
|
|
257
280
|
}),
|
|
258
281
|
stdin: Flags.boolean({
|
|
259
282
|
default: false,
|
|
260
283
|
description: 'Read a JSON dependency request body from stdin',
|
|
261
284
|
}),
|
|
262
285
|
'target-org-id': Flags.string({
|
|
263
|
-
description: 'Target org Id',
|
|
286
|
+
description: 'Target org Id. Not inferred from work item or project defaults.',
|
|
264
287
|
}),
|
|
265
288
|
};
|
|
266
289
|
async run() {
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
|
+
import { AI_METADATA_ACTIONS, buildAiMetadataToolRequest, callAiMetadataTool, } from '../../../lib/metadata-explore.js';
|
|
4
|
+
export default class MetadataExplore extends CicdCommand {
|
|
5
|
+
static description = [
|
|
6
|
+
'Explore Salesforce metadata through Org Intelligence.',
|
|
7
|
+
'Uses the project default credential when --credential-id is omitted;',
|
|
8
|
+
'otherwise pass --credential-id, or both --session-id and --endpoint.',
|
|
9
|
+
].join(' ');
|
|
10
|
+
static examples = [
|
|
11
|
+
'<%= config.bin %> <%= command.id %> --action list --object-type ApexClass',
|
|
12
|
+
"<%= config.bin %> <%= command.id %> --action list --object-type ApexClass --pattern 'Account*'",
|
|
13
|
+
'<%= config.bin %> <%= command.id %> --action read --object-type ApexClass --full-name MyClass',
|
|
14
|
+
'<%= config.bin %> <%= command.id %> --action find_references --object-type ApexClass --full-name MyClass',
|
|
15
|
+
"<%= config.bin %> <%= command.id %> --action search --pattern 'Cont*' --credential-id <id>",
|
|
16
|
+
'<%= config.bin %> <%= command.id %> --action describe_type --object-type CustomObject --json',
|
|
17
|
+
];
|
|
18
|
+
static experimental = true;
|
|
19
|
+
static flags = {
|
|
20
|
+
action: Flags.string({
|
|
21
|
+
description: 'Metadata action: list, search, read_documentation, describe_type, read, find_references, run_apex_tests',
|
|
22
|
+
options: [...AI_METADATA_ACTIONS],
|
|
23
|
+
required: true,
|
|
24
|
+
}),
|
|
25
|
+
'apex-unit-tests': Flags.string({
|
|
26
|
+
description: 'Comma-separated Apex test classes. Required for run_apex_tests.',
|
|
27
|
+
}),
|
|
28
|
+
// Deferred write/deploy flags (re-add with matching AI_METADATA_ACTIONS when shipping mutate):
|
|
29
|
+
// 'async-id': Flags.string({
|
|
30
|
+
// description: 'Deployment Id from a previous validate/deploy for deploy_validated or check_async_id',
|
|
31
|
+
// }),
|
|
32
|
+
'credential-id': Flags.string({
|
|
33
|
+
description: 'Copado credential Id for the target org. Defaults to the CICD project default credential when set.',
|
|
34
|
+
}),
|
|
35
|
+
endpoint: Flags.string({
|
|
36
|
+
description: 'Salesforce instance URL (with --session-id) when not using a credential. Exclusive with --credential-id.',
|
|
37
|
+
}),
|
|
38
|
+
'full-name': Flags.string({
|
|
39
|
+
description: 'Fully qualified metadata name (required for read; list results emit this as fullName)',
|
|
40
|
+
}),
|
|
41
|
+
// 'metadata-files': Flags.string({
|
|
42
|
+
// description:
|
|
43
|
+
// 'YAML/XML Metadata API files for validate (with --full-name). Each file starts with ~~~~~~~~~~ <pathname> <type> <name> ~~~~~~~~~',
|
|
44
|
+
// }),
|
|
45
|
+
'object-type': Flags.string({
|
|
46
|
+
description: 'Metadata type, for example ApexClass, CustomObject, or Flow',
|
|
47
|
+
}),
|
|
48
|
+
// 'organization-name': Flags.string({
|
|
49
|
+
// description: 'Optional label for logging; not used to select the target org',
|
|
50
|
+
// }),
|
|
51
|
+
pattern: Flags.string({
|
|
52
|
+
default: '*',
|
|
53
|
+
description: 'Wildcard pattern for list/search (name without namespace), for example Account* or *Info',
|
|
54
|
+
}),
|
|
55
|
+
'session-id': Flags.string({
|
|
56
|
+
description: 'Salesforce session Id (with --endpoint) when not using a credential. Exclusive with --credential-id.',
|
|
57
|
+
}),
|
|
58
|
+
// 'test-level': Flags.string({
|
|
59
|
+
// description:
|
|
60
|
+
// 'Salesforce test level for validate/deploy (NoTestRun, RunSpecifiedTests, RunLocalTests). Defaults from --apex-unit-tests when omitted.',
|
|
61
|
+
// }),
|
|
62
|
+
// 'validate-only': Flags.boolean({
|
|
63
|
+
// default: false,
|
|
64
|
+
// description: 'When true, write-style actions validate without deploying',
|
|
65
|
+
// }),
|
|
66
|
+
};
|
|
67
|
+
async run() {
|
|
68
|
+
const { flags } = await this.parse(MetadataExplore);
|
|
69
|
+
const body = await buildAiMetadataToolRequest(flags);
|
|
70
|
+
const output = await this.withSpinner('Running AI metadata tool', () => callAiMetadataTool(body));
|
|
71
|
+
const result = {
|
|
72
|
+
output,
|
|
73
|
+
...(body.credentialId === undefined ? {} : { credentialId: body.credentialId }),
|
|
74
|
+
};
|
|
75
|
+
this.display(() => {
|
|
76
|
+
process.stdout.write(output.endsWith('\n') ? output : `${output}\n`);
|
|
77
|
+
});
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=explore.js.map
|