@oddessentials/odd-ai-reviewers 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +190 -0
- package/dist/__tests__/hermetic-setup.d.ts +55 -0
- package/dist/__tests__/hermetic-setup.d.ts.map +1 -0
- package/dist/__tests__/hermetic-setup.js +62 -0
- package/dist/__tests__/hermetic-setup.js.map +1 -0
- package/dist/__tests__/test-utils/hermetic.d.ts +84 -0
- package/dist/__tests__/test-utils/hermetic.d.ts.map +1 -0
- package/dist/__tests__/test-utils/hermetic.js +147 -0
- package/dist/__tests__/test-utils/hermetic.js.map +1 -0
- package/dist/agents/ai_semantic_review.d.ts +12 -0
- package/dist/agents/ai_semantic_review.d.ts.map +1 -0
- package/dist/agents/ai_semantic_review.js +317 -0
- package/dist/agents/ai_semantic_review.js.map +1 -0
- package/dist/agents/control_flow/budget.d.ts +162 -0
- package/dist/agents/control_flow/budget.d.ts.map +1 -0
- package/dist/agents/control_flow/budget.js +331 -0
- package/dist/agents/control_flow/budget.js.map +1 -0
- package/dist/agents/control_flow/cfg-builder.d.ts +26 -0
- package/dist/agents/control_flow/cfg-builder.d.ts.map +1 -0
- package/dist/agents/control_flow/cfg-builder.js +776 -0
- package/dist/agents/control_flow/cfg-builder.js.map +1 -0
- package/dist/agents/control_flow/cfg-types.d.ts +186 -0
- package/dist/agents/control_flow/cfg-types.d.ts.map +1 -0
- package/dist/agents/control_flow/cfg-types.js +114 -0
- package/dist/agents/control_flow/cfg-types.js.map +1 -0
- package/dist/agents/control_flow/finding-generator.d.ts +118 -0
- package/dist/agents/control_flow/finding-generator.d.ts.map +1 -0
- package/dist/agents/control_flow/finding-generator.js +354 -0
- package/dist/agents/control_flow/finding-generator.js.map +1 -0
- package/dist/agents/control_flow/index.d.ts +39 -0
- package/dist/agents/control_flow/index.d.ts.map +1 -0
- package/dist/agents/control_flow/index.js +270 -0
- package/dist/agents/control_flow/index.js.map +1 -0
- package/dist/agents/control_flow/logger.d.ts +333 -0
- package/dist/agents/control_flow/logger.d.ts.map +1 -0
- package/dist/agents/control_flow/logger.js +607 -0
- package/dist/agents/control_flow/logger.js.map +1 -0
- package/dist/agents/control_flow/mitigation-detector.d.ts +207 -0
- package/dist/agents/control_flow/mitigation-detector.d.ts.map +1 -0
- package/dist/agents/control_flow/mitigation-detector.js +625 -0
- package/dist/agents/control_flow/mitigation-detector.js.map +1 -0
- package/dist/agents/control_flow/mitigation-patterns.d.ts +53 -0
- package/dist/agents/control_flow/mitigation-patterns.d.ts.map +1 -0
- package/dist/agents/control_flow/mitigation-patterns.js +620 -0
- package/dist/agents/control_flow/mitigation-patterns.js.map +1 -0
- package/dist/agents/control_flow/path-analyzer.d.ts +287 -0
- package/dist/agents/control_flow/path-analyzer.d.ts.map +1 -0
- package/dist/agents/control_flow/path-analyzer.js +695 -0
- package/dist/agents/control_flow/path-analyzer.js.map +1 -0
- package/dist/agents/control_flow/pattern-validator.d.ts +132 -0
- package/dist/agents/control_flow/pattern-validator.d.ts.map +1 -0
- package/dist/agents/control_flow/pattern-validator.js +420 -0
- package/dist/agents/control_flow/pattern-validator.js.map +1 -0
- package/dist/agents/control_flow/timeout-regex.d.ts +144 -0
- package/dist/agents/control_flow/timeout-regex.d.ts.map +1 -0
- package/dist/agents/control_flow/timeout-regex.js +339 -0
- package/dist/agents/control_flow/timeout-regex.js.map +1 -0
- package/dist/agents/control_flow/types.d.ts +782 -0
- package/dist/agents/control_flow/types.d.ts.map +1 -0
- package/dist/agents/control_flow/types.js +428 -0
- package/dist/agents/control_flow/types.js.map +1 -0
- package/dist/agents/control_flow/vulnerability-detector.d.ts +85 -0
- package/dist/agents/control_flow/vulnerability-detector.d.ts.map +1 -0
- package/dist/agents/control_flow/vulnerability-detector.js +493 -0
- package/dist/agents/control_flow/vulnerability-detector.js.map +1 -0
- package/dist/agents/date-utils.d.ts +19 -0
- package/dist/agents/date-utils.d.ts.map +1 -0
- package/dist/agents/date-utils.js +29 -0
- package/dist/agents/date-utils.js.map +1 -0
- package/dist/agents/index.d.ts +25 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +50 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/json-utils.d.ts +34 -0
- package/dist/agents/json-utils.d.ts.map +1 -0
- package/dist/agents/json-utils.js +62 -0
- package/dist/agents/json-utils.js.map +1 -0
- package/dist/agents/local_llm.d.ts +24 -0
- package/dist/agents/local_llm.d.ts.map +1 -0
- package/dist/agents/local_llm.js +566 -0
- package/dist/agents/local_llm.js.map +1 -0
- package/dist/agents/metadata.d.ts +57 -0
- package/dist/agents/metadata.d.ts.map +1 -0
- package/dist/agents/metadata.js +45 -0
- package/dist/agents/metadata.js.map +1 -0
- package/dist/agents/opencode.d.ts +18 -0
- package/dist/agents/opencode.d.ts.map +1 -0
- package/dist/agents/opencode.js +364 -0
- package/dist/agents/opencode.js.map +1 -0
- package/dist/agents/path-filter.d.ts +25 -0
- package/dist/agents/path-filter.d.ts.map +1 -0
- package/dist/agents/path-filter.js +43 -0
- package/dist/agents/path-filter.js.map +1 -0
- package/dist/agents/pr_agent.d.ts +3 -0
- package/dist/agents/pr_agent.d.ts.map +1 -0
- package/dist/agents/pr_agent.js +312 -0
- package/dist/agents/pr_agent.js.map +1 -0
- package/dist/agents/retry.d.ts +12 -0
- package/dist/agents/retry.d.ts.map +1 -0
- package/dist/agents/retry.js +65 -0
- package/dist/agents/retry.js.map +1 -0
- package/dist/agents/reviewdog.d.ts +24 -0
- package/dist/agents/reviewdog.d.ts.map +1 -0
- package/dist/agents/reviewdog.js +259 -0
- package/dist/agents/reviewdog.js.map +1 -0
- package/dist/agents/security.d.ts +49 -0
- package/dist/agents/security.d.ts.map +1 -0
- package/dist/agents/security.js +302 -0
- package/dist/agents/security.js.map +1 -0
- package/dist/agents/semgrep.d.ts +8 -0
- package/dist/agents/semgrep.d.ts.map +1 -0
- package/dist/agents/semgrep.js +157 -0
- package/dist/agents/semgrep.js.map +1 -0
- package/dist/agents/types.d.ts +450 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +127 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/budget.d.ts +59 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +82 -0
- package/dist/budget.js.map +1 -0
- package/dist/cache/key.d.ts +49 -0
- package/dist/cache/key.d.ts.map +1 -0
- package/dist/cache/key.js +71 -0
- package/dist/cache/key.js.map +1 -0
- package/dist/cache/store.d.ts +47 -0
- package/dist/cache/store.d.ts.map +1 -0
- package/dist/cache/store.js +328 -0
- package/dist/cache/store.js.map +1 -0
- package/dist/cli/commands/check.d.ts +60 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +163 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/index.d.ts +12 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +12 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/local-review.d.ts +149 -0
- package/dist/cli/commands/local-review.d.ts.map +1 -0
- package/dist/cli/commands/local-review.js +755 -0
- package/dist/cli/commands/local-review.js.map +1 -0
- package/dist/cli/config-wizard.d.ts +87 -0
- package/dist/cli/config-wizard.d.ts.map +1 -0
- package/dist/cli/config-wizard.js +240 -0
- package/dist/cli/config-wizard.js.map +1 -0
- package/dist/cli/dependencies/catalog.d.ts +44 -0
- package/dist/cli/dependencies/catalog.d.ts.map +1 -0
- package/dist/cli/dependencies/catalog.js +89 -0
- package/dist/cli/dependencies/catalog.js.map +1 -0
- package/dist/cli/dependencies/checker.d.ts +42 -0
- package/dist/cli/dependencies/checker.d.ts.map +1 -0
- package/dist/cli/dependencies/checker.js +240 -0
- package/dist/cli/dependencies/checker.js.map +1 -0
- package/dist/cli/dependencies/index.d.ts +16 -0
- package/dist/cli/dependencies/index.d.ts.map +1 -0
- package/dist/cli/dependencies/index.js +16 -0
- package/dist/cli/dependencies/index.js.map +1 -0
- package/dist/cli/dependencies/messages.d.ts +58 -0
- package/dist/cli/dependencies/messages.d.ts.map +1 -0
- package/dist/cli/dependencies/messages.js +183 -0
- package/dist/cli/dependencies/messages.js.map +1 -0
- package/dist/cli/dependencies/platform.d.ts +25 -0
- package/dist/cli/dependencies/platform.d.ts.map +1 -0
- package/dist/cli/dependencies/platform.js +42 -0
- package/dist/cli/dependencies/platform.js.map +1 -0
- package/dist/cli/dependencies/schemas.d.ts +65 -0
- package/dist/cli/dependencies/schemas.d.ts.map +1 -0
- package/dist/cli/dependencies/schemas.js +42 -0
- package/dist/cli/dependencies/schemas.js.map +1 -0
- package/dist/cli/dependencies/types.d.ts +112 -0
- package/dist/cli/dependencies/types.d.ts.map +1 -0
- package/dist/cli/dependencies/types.js +6 -0
- package/dist/cli/dependencies/types.js.map +1 -0
- package/dist/cli/dependencies/version.d.ts +67 -0
- package/dist/cli/dependencies/version.d.ts.map +1 -0
- package/dist/cli/dependencies/version.js +125 -0
- package/dist/cli/dependencies/version.js.map +1 -0
- package/dist/cli/git-context.d.ts +105 -0
- package/dist/cli/git-context.d.ts.map +1 -0
- package/dist/cli/git-context.js +313 -0
- package/dist/cli/git-context.js.map +1 -0
- package/dist/cli/interactive-prompts.d.ts +126 -0
- package/dist/cli/interactive-prompts.d.ts.map +1 -0
- package/dist/cli/interactive-prompts.js +128 -0
- package/dist/cli/interactive-prompts.js.map +1 -0
- package/dist/cli/options/index.d.ts +7 -0
- package/dist/cli/options/index.d.ts.map +1 -0
- package/dist/cli/options/index.js +11 -0
- package/dist/cli/options/index.js.map +1 -0
- package/dist/cli/options/local-review-options.d.ts +221 -0
- package/dist/cli/options/local-review-options.d.ts.map +1 -0
- package/dist/cli/options/local-review-options.js +332 -0
- package/dist/cli/options/local-review-options.js.map +1 -0
- package/dist/cli/output/colors.d.ts +154 -0
- package/dist/cli/output/colors.d.ts.map +1 -0
- package/dist/cli/output/colors.js +255 -0
- package/dist/cli/output/colors.js.map +1 -0
- package/dist/cli/output/errors.d.ts +157 -0
- package/dist/cli/output/errors.d.ts.map +1 -0
- package/dist/cli/output/errors.js +266 -0
- package/dist/cli/output/errors.js.map +1 -0
- package/dist/cli/output/index.d.ts +12 -0
- package/dist/cli/output/index.d.ts.map +1 -0
- package/dist/cli/output/index.js +15 -0
- package/dist/cli/output/index.js.map +1 -0
- package/dist/cli/output/progress.d.ts +237 -0
- package/dist/cli/output/progress.d.ts.map +1 -0
- package/dist/cli/output/progress.js +405 -0
- package/dist/cli/output/progress.js.map +1 -0
- package/dist/cli/signals.d.ts +145 -0
- package/dist/cli/signals.d.ts.map +1 -0
- package/dist/cli/signals.js +223 -0
- package/dist/cli/signals.js.map +1 -0
- package/dist/cli/validation-report.d.ts +106 -0
- package/dist/cli/validation-report.d.ts.map +1 -0
- package/dist/cli/validation-report.js +108 -0
- package/dist/cli/validation-report.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +12 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/mitigation-config.d.ts +94 -0
- package/dist/config/mitigation-config.d.ts.map +1 -0
- package/dist/config/mitigation-config.js +430 -0
- package/dist/config/mitigation-config.js.map +1 -0
- package/dist/config/providers.d.ts +118 -0
- package/dist/config/providers.d.ts.map +1 -0
- package/dist/config/providers.js +229 -0
- package/dist/config/providers.js.map +1 -0
- package/dist/config/schemas.d.ts +278 -0
- package/dist/config/schemas.d.ts.map +1 -0
- package/dist/config/schemas.js +111 -0
- package/dist/config/schemas.js.map +1 -0
- package/dist/config/zero-config.d.ts +126 -0
- package/dist/config/zero-config.d.ts.map +1 -0
- package/dist/config/zero-config.js +243 -0
- package/dist/config/zero-config.js.map +1 -0
- package/dist/config.d.ts +110 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +302 -0
- package/dist/config.js.map +1 -0
- package/dist/diff.d.ts +224 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +832 -0
- package/dist/diff.js.map +1 -0
- package/dist/git-validators.d.ts +106 -0
- package/dist/git-validators.d.ts.map +1 -0
- package/dist/git-validators.js +224 -0
- package/dist/git-validators.js.map +1 -0
- package/dist/main.d.ts +61 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +704 -0
- package/dist/main.js.map +1 -0
- package/dist/phases/execute.d.ts +60 -0
- package/dist/phases/execute.d.ts.map +1 -0
- package/dist/phases/execute.js +168 -0
- package/dist/phases/execute.js.map +1 -0
- package/dist/phases/index.d.ts +9 -0
- package/dist/phases/index.d.ts.map +1 -0
- package/dist/phases/index.js +9 -0
- package/dist/phases/index.js.map +1 -0
- package/dist/phases/preflight.d.ts +40 -0
- package/dist/phases/preflight.d.ts.map +1 -0
- package/dist/phases/preflight.js +122 -0
- package/dist/phases/preflight.js.map +1 -0
- package/dist/phases/report.d.ts +51 -0
- package/dist/phases/report.d.ts.map +1 -0
- package/dist/phases/report.js +152 -0
- package/dist/phases/report.js.map +1 -0
- package/dist/policy.d.ts +33 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +34 -0
- package/dist/policy.js.map +1 -0
- package/dist/preflight.d.ts +181 -0
- package/dist/preflight.d.ts.map +1 -0
- package/dist/preflight.js +627 -0
- package/dist/preflight.js.map +1 -0
- package/dist/report/ado.d.ts +53 -0
- package/dist/report/ado.d.ts.map +1 -0
- package/dist/report/ado.js +411 -0
- package/dist/report/ado.js.map +1 -0
- package/dist/report/agent-icons.d.ts +36 -0
- package/dist/report/agent-icons.d.ts.map +1 -0
- package/dist/report/agent-icons.js +46 -0
- package/dist/report/agent-icons.js.map +1 -0
- package/dist/report/base.d.ts +30 -0
- package/dist/report/base.d.ts.map +1 -0
- package/dist/report/base.js +64 -0
- package/dist/report/base.js.map +1 -0
- package/dist/report/formats.d.ts +206 -0
- package/dist/report/formats.d.ts.map +1 -0
- package/dist/report/formats.js +481 -0
- package/dist/report/formats.js.map +1 -0
- package/dist/report/github.d.ts +44 -0
- package/dist/report/github.d.ts.map +1 -0
- package/dist/report/github.js +409 -0
- package/dist/report/github.js.map +1 -0
- package/dist/report/line-resolver.d.ts +208 -0
- package/dist/report/line-resolver.d.ts.map +1 -0
- package/dist/report/line-resolver.js +578 -0
- package/dist/report/line-resolver.js.map +1 -0
- package/dist/report/resolution.d.ts +158 -0
- package/dist/report/resolution.d.ts.map +1 -0
- package/dist/report/resolution.js +272 -0
- package/dist/report/resolution.js.map +1 -0
- package/dist/report/sanitize.d.ts +32 -0
- package/dist/report/sanitize.d.ts.map +1 -0
- package/dist/report/sanitize.js +84 -0
- package/dist/report/sanitize.js.map +1 -0
- package/dist/report/terminal.d.ts +440 -0
- package/dist/report/terminal.d.ts.map +1 -0
- package/dist/report/terminal.js +840 -0
- package/dist/report/terminal.js.map +1 -0
- package/dist/reviewignore.d.ts +125 -0
- package/dist/reviewignore.d.ts.map +1 -0
- package/dist/reviewignore.js +335 -0
- package/dist/reviewignore.js.map +1 -0
- package/dist/security-logger.d.ts +178 -0
- package/dist/security-logger.d.ts.map +1 -0
- package/dist/security-logger.js +256 -0
- package/dist/security-logger.js.map +1 -0
- package/dist/telemetry/backends/console.d.ts +24 -0
- package/dist/telemetry/backends/console.d.ts.map +1 -0
- package/dist/telemetry/backends/console.js +54 -0
- package/dist/telemetry/backends/console.js.map +1 -0
- package/dist/telemetry/backends/jsonl.d.ts +31 -0
- package/dist/telemetry/backends/jsonl.d.ts.map +1 -0
- package/dist/telemetry/backends/jsonl.js +121 -0
- package/dist/telemetry/backends/jsonl.js.map +1 -0
- package/dist/telemetry/emitter.d.ts +43 -0
- package/dist/telemetry/emitter.d.ts.map +1 -0
- package/dist/telemetry/emitter.js +83 -0
- package/dist/telemetry/emitter.js.map +1 -0
- package/dist/telemetry/hook.d.ts +53 -0
- package/dist/telemetry/hook.d.ts.map +1 -0
- package/dist/telemetry/hook.js +118 -0
- package/dist/telemetry/hook.js.map +1 -0
- package/dist/telemetry/index.d.ts +58 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +143 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/types.d.ts +139 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +133 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/trust.d.ts +65 -0
- package/dist/trust.d.ts.map +1 -0
- package/dist/trust.js +78 -0
- package/dist/trust.js.map +1 -0
- package/dist/types/assert-never.d.ts +30 -0
- package/dist/types/assert-never.d.ts.map +1 -0
- package/dist/types/assert-never.js +32 -0
- package/dist/types/assert-never.js.map +1 -0
- package/dist/types/branded.d.ts +172 -0
- package/dist/types/branded.d.ts.map +1 -0
- package/dist/types/branded.js +262 -0
- package/dist/types/branded.js.map +1 -0
- package/dist/types/errors.d.ts +320 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +551 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +37 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +77 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/result.d.ts +323 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +423 -0
- package/dist/types/result.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ANSI Color Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides ANSI color codes for terminal output with support for:
|
|
5
|
+
* - NO_COLOR environment variable (standard convention)
|
|
6
|
+
* - FORCE_COLOR environment variable (force colors even without TTY)
|
|
7
|
+
* - TTY detection for automatic color support
|
|
8
|
+
*
|
|
9
|
+
* Reference: https://no-color.org/
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* ANSI escape codes for colors and formatting
|
|
13
|
+
*/
|
|
14
|
+
export declare const ANSI: {
|
|
15
|
+
readonly reset: "\u001B[0m";
|
|
16
|
+
readonly bold: "\u001B[1m";
|
|
17
|
+
readonly dim: "\u001B[2m";
|
|
18
|
+
readonly italic: "\u001B[3m";
|
|
19
|
+
readonly underline: "\u001B[4m";
|
|
20
|
+
readonly inverse: "\u001B[7m";
|
|
21
|
+
readonly strikethrough: "\u001B[9m";
|
|
22
|
+
readonly black: "\u001B[30m";
|
|
23
|
+
readonly red: "\u001B[31m";
|
|
24
|
+
readonly green: "\u001B[32m";
|
|
25
|
+
readonly yellow: "\u001B[33m";
|
|
26
|
+
readonly blue: "\u001B[34m";
|
|
27
|
+
readonly magenta: "\u001B[35m";
|
|
28
|
+
readonly cyan: "\u001B[36m";
|
|
29
|
+
readonly white: "\u001B[37m";
|
|
30
|
+
readonly gray: "\u001B[90m";
|
|
31
|
+
readonly bgBlack: "\u001B[40m";
|
|
32
|
+
readonly bgRed: "\u001B[41m";
|
|
33
|
+
readonly bgGreen: "\u001B[42m";
|
|
34
|
+
readonly bgYellow: "\u001B[43m";
|
|
35
|
+
readonly bgBlue: "\u001B[44m";
|
|
36
|
+
readonly bgMagenta: "\u001B[45m";
|
|
37
|
+
readonly bgCyan: "\u001B[46m";
|
|
38
|
+
readonly bgWhite: "\u001B[47m";
|
|
39
|
+
};
|
|
40
|
+
export type AnsiCode = keyof typeof ANSI;
|
|
41
|
+
/**
|
|
42
|
+
* Check if terminal supports colors.
|
|
43
|
+
*
|
|
44
|
+
* Priority:
|
|
45
|
+
* 1. NO_COLOR set (any value) -> false
|
|
46
|
+
* 2. FORCE_COLOR set (any value) -> true
|
|
47
|
+
* 3. Otherwise -> check if stdout is TTY
|
|
48
|
+
*
|
|
49
|
+
* @param env - Environment variables (defaults to process.env)
|
|
50
|
+
* @param isTTY - Whether stdout is a TTY (defaults to process.stdout.isTTY)
|
|
51
|
+
* @returns true if colors should be used
|
|
52
|
+
*/
|
|
53
|
+
export declare function supportsColor(env?: Record<string, string | undefined>, isTTY?: boolean): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Apply ANSI color code to text, respecting color support.
|
|
56
|
+
*
|
|
57
|
+
* @param text - Text to colorize
|
|
58
|
+
* @param code - ANSI code to apply (from ANSI object)
|
|
59
|
+
* @param colored - Whether colors are enabled
|
|
60
|
+
* @returns Colorized text or plain text if colors disabled
|
|
61
|
+
*/
|
|
62
|
+
export declare function colorize(text: string, code: string, colored: boolean): string;
|
|
63
|
+
/**
|
|
64
|
+
* Apply multiple ANSI codes to text.
|
|
65
|
+
*
|
|
66
|
+
* @param text - Text to colorize
|
|
67
|
+
* @param codes - Array of ANSI codes to apply
|
|
68
|
+
* @param colored - Whether colors are enabled
|
|
69
|
+
* @returns Colorized text or plain text if colors disabled
|
|
70
|
+
*/
|
|
71
|
+
export declare function colorizeMulti(text: string, codes: string[], colored: boolean): string;
|
|
72
|
+
/**
|
|
73
|
+
* Severity levels for findings
|
|
74
|
+
*/
|
|
75
|
+
export type Severity = 'error' | 'warning' | 'info';
|
|
76
|
+
/**
|
|
77
|
+
* Get ANSI color code for a severity level.
|
|
78
|
+
*
|
|
79
|
+
* @param severity - Finding severity
|
|
80
|
+
* @returns ANSI color code
|
|
81
|
+
*/
|
|
82
|
+
export declare function getSeverityColor(severity: Severity): string;
|
|
83
|
+
/**
|
|
84
|
+
* Colorize text based on severity.
|
|
85
|
+
*
|
|
86
|
+
* @param text - Text to colorize
|
|
87
|
+
* @param severity - Finding severity
|
|
88
|
+
* @param colored - Whether colors are enabled
|
|
89
|
+
* @returns Colorized text
|
|
90
|
+
*/
|
|
91
|
+
export declare function colorizeSeverity(text: string, severity: Severity, colored: boolean): string;
|
|
92
|
+
/**
|
|
93
|
+
* Get severity label with appropriate color.
|
|
94
|
+
*
|
|
95
|
+
* @param severity - Finding severity
|
|
96
|
+
* @param colored - Whether colors are enabled
|
|
97
|
+
* @returns Formatted severity label
|
|
98
|
+
*/
|
|
99
|
+
export declare function formatSeverityLabel(severity: Severity, colored: boolean): string;
|
|
100
|
+
/**
|
|
101
|
+
* Create a colorizer function bound to a specific color state.
|
|
102
|
+
*
|
|
103
|
+
* @param colored - Whether colors are enabled
|
|
104
|
+
* @returns Object with color functions
|
|
105
|
+
*/
|
|
106
|
+
export declare function createColorizer(colored: boolean): {
|
|
107
|
+
red: (text: string) => string;
|
|
108
|
+
green: (text: string) => string;
|
|
109
|
+
yellow: (text: string) => string;
|
|
110
|
+
blue: (text: string) => string;
|
|
111
|
+
cyan: (text: string) => string;
|
|
112
|
+
magenta: (text: string) => string;
|
|
113
|
+
gray: (text: string) => string;
|
|
114
|
+
white: (text: string) => string;
|
|
115
|
+
bold: (text: string) => string;
|
|
116
|
+
dim: (text: string) => string;
|
|
117
|
+
italic: (text: string) => string;
|
|
118
|
+
underline: (text: string) => string;
|
|
119
|
+
inverse: (text: string) => string;
|
|
120
|
+
error: (text: string) => string;
|
|
121
|
+
warning: (text: string) => string;
|
|
122
|
+
info: (text: string) => string;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Strip ANSI codes from text.
|
|
126
|
+
*
|
|
127
|
+
* @param text - Text potentially containing ANSI codes
|
|
128
|
+
* @returns Text with ANSI codes removed
|
|
129
|
+
*/
|
|
130
|
+
export declare function stripAnsi(text: string): string;
|
|
131
|
+
/**
|
|
132
|
+
* Get the visible length of text (excluding ANSI codes).
|
|
133
|
+
*
|
|
134
|
+
* @param text - Text potentially containing ANSI codes
|
|
135
|
+
* @returns Visible character count
|
|
136
|
+
*/
|
|
137
|
+
export declare function visibleLength(text: string): number;
|
|
138
|
+
/**
|
|
139
|
+
* Check if terminal supports Unicode characters (for box drawing, etc.).
|
|
140
|
+
*
|
|
141
|
+
* Detection logic:
|
|
142
|
+
* 1. Windows Terminal (WT_SESSION env) -> true
|
|
143
|
+
* 2. ConEmu terminal (ConEmuANSI=ON) -> true
|
|
144
|
+
* 3. TERM contains 'xterm', '256color', 'truecolor' -> true
|
|
145
|
+
* 4. LC_ALL, LC_CTYPE, or LANG contains 'UTF-8' or 'utf8' (case-insensitive) -> true
|
|
146
|
+
* 5. TERM is 'dumb' -> false
|
|
147
|
+
* 6. CI environments (CI=true, GITHUB_ACTIONS, etc.) -> true (most CI supports UTF-8)
|
|
148
|
+
* 7. Default: false (fall back to ASCII for safety)
|
|
149
|
+
*
|
|
150
|
+
* @param env - Environment variables (defaults to process.env)
|
|
151
|
+
* @returns true if Unicode characters should be used
|
|
152
|
+
*/
|
|
153
|
+
export declare function supportsUnicode(env?: Record<string, string | undefined>): boolean;
|
|
154
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/cli/output/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAgCP,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,IAAI,CAAC;AAMzC;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,KAAK,GAAE,OAAwC,GAC9C,OAAO,CAaT;AAMD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAK7E;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAKrF;AAMD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAW3D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAE3F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAShF;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO;gBAEhC,MAAM;kBACJ,MAAM;mBACL,MAAM;iBACR,MAAM;iBACN,MAAM;oBACH,MAAM;iBACT,MAAM;kBACL,MAAM;iBACP,MAAM;gBACP,MAAM;mBACH,MAAM;sBACH,MAAM;oBACR,MAAM;kBACR,MAAM;oBACJ,MAAM;iBACT,MAAM;EAEtB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CA8C9F"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ANSI Color Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides ANSI color codes for terminal output with support for:
|
|
5
|
+
* - NO_COLOR environment variable (standard convention)
|
|
6
|
+
* - FORCE_COLOR environment variable (force colors even without TTY)
|
|
7
|
+
* - TTY detection for automatic color support
|
|
8
|
+
*
|
|
9
|
+
* Reference: https://no-color.org/
|
|
10
|
+
*/
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// ANSI Color Codes
|
|
13
|
+
// =============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* ANSI escape codes for colors and formatting
|
|
16
|
+
*/
|
|
17
|
+
export const ANSI = {
|
|
18
|
+
// Reset
|
|
19
|
+
reset: '\x1b[0m',
|
|
20
|
+
// Formatting
|
|
21
|
+
bold: '\x1b[1m',
|
|
22
|
+
dim: '\x1b[2m',
|
|
23
|
+
italic: '\x1b[3m',
|
|
24
|
+
underline: '\x1b[4m',
|
|
25
|
+
inverse: '\x1b[7m',
|
|
26
|
+
strikethrough: '\x1b[9m',
|
|
27
|
+
// Foreground colors
|
|
28
|
+
black: '\x1b[30m',
|
|
29
|
+
red: '\x1b[31m',
|
|
30
|
+
green: '\x1b[32m',
|
|
31
|
+
yellow: '\x1b[33m',
|
|
32
|
+
blue: '\x1b[34m',
|
|
33
|
+
magenta: '\x1b[35m',
|
|
34
|
+
cyan: '\x1b[36m',
|
|
35
|
+
white: '\x1b[37m',
|
|
36
|
+
gray: '\x1b[90m',
|
|
37
|
+
// Background colors
|
|
38
|
+
bgBlack: '\x1b[40m',
|
|
39
|
+
bgRed: '\x1b[41m',
|
|
40
|
+
bgGreen: '\x1b[42m',
|
|
41
|
+
bgYellow: '\x1b[43m',
|
|
42
|
+
bgBlue: '\x1b[44m',
|
|
43
|
+
bgMagenta: '\x1b[45m',
|
|
44
|
+
bgCyan: '\x1b[46m',
|
|
45
|
+
bgWhite: '\x1b[47m',
|
|
46
|
+
};
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// Color Support Detection
|
|
49
|
+
// =============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Check if terminal supports colors.
|
|
52
|
+
*
|
|
53
|
+
* Priority:
|
|
54
|
+
* 1. NO_COLOR set (any value) -> false
|
|
55
|
+
* 2. FORCE_COLOR set (any value) -> true
|
|
56
|
+
* 3. Otherwise -> check if stdout is TTY
|
|
57
|
+
*
|
|
58
|
+
* @param env - Environment variables (defaults to process.env)
|
|
59
|
+
* @param isTTY - Whether stdout is a TTY (defaults to process.stdout.isTTY)
|
|
60
|
+
* @returns true if colors should be used
|
|
61
|
+
*/
|
|
62
|
+
export function supportsColor(env = process.env, isTTY = process.stdout?.isTTY ?? false) {
|
|
63
|
+
// NO_COLOR takes precedence (standard convention)
|
|
64
|
+
if (env['NO_COLOR'] !== undefined) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
// FORCE_COLOR forces colors even without TTY
|
|
68
|
+
if (env['FORCE_COLOR'] !== undefined) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
// Fall back to TTY detection
|
|
72
|
+
return isTTY;
|
|
73
|
+
}
|
|
74
|
+
// =============================================================================
|
|
75
|
+
// Colorization Utilities
|
|
76
|
+
// =============================================================================
|
|
77
|
+
/**
|
|
78
|
+
* Apply ANSI color code to text, respecting color support.
|
|
79
|
+
*
|
|
80
|
+
* @param text - Text to colorize
|
|
81
|
+
* @param code - ANSI code to apply (from ANSI object)
|
|
82
|
+
* @param colored - Whether colors are enabled
|
|
83
|
+
* @returns Colorized text or plain text if colors disabled
|
|
84
|
+
*/
|
|
85
|
+
export function colorize(text, code, colored) {
|
|
86
|
+
if (!colored) {
|
|
87
|
+
return text;
|
|
88
|
+
}
|
|
89
|
+
return `${code}${text}${ANSI.reset}`;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Apply multiple ANSI codes to text.
|
|
93
|
+
*
|
|
94
|
+
* @param text - Text to colorize
|
|
95
|
+
* @param codes - Array of ANSI codes to apply
|
|
96
|
+
* @param colored - Whether colors are enabled
|
|
97
|
+
* @returns Colorized text or plain text if colors disabled
|
|
98
|
+
*/
|
|
99
|
+
export function colorizeMulti(text, codes, colored) {
|
|
100
|
+
if (!colored || codes.length === 0) {
|
|
101
|
+
return text;
|
|
102
|
+
}
|
|
103
|
+
return `${codes.join('')}${text}${ANSI.reset}`;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get ANSI color code for a severity level.
|
|
107
|
+
*
|
|
108
|
+
* @param severity - Finding severity
|
|
109
|
+
* @returns ANSI color code
|
|
110
|
+
*/
|
|
111
|
+
export function getSeverityColor(severity) {
|
|
112
|
+
switch (severity) {
|
|
113
|
+
case 'error':
|
|
114
|
+
return ANSI.red;
|
|
115
|
+
case 'warning':
|
|
116
|
+
return ANSI.yellow;
|
|
117
|
+
case 'info':
|
|
118
|
+
return ANSI.blue;
|
|
119
|
+
default:
|
|
120
|
+
return '';
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Colorize text based on severity.
|
|
125
|
+
*
|
|
126
|
+
* @param text - Text to colorize
|
|
127
|
+
* @param severity - Finding severity
|
|
128
|
+
* @param colored - Whether colors are enabled
|
|
129
|
+
* @returns Colorized text
|
|
130
|
+
*/
|
|
131
|
+
export function colorizeSeverity(text, severity, colored) {
|
|
132
|
+
return colorize(text, getSeverityColor(severity), colored);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get severity label with appropriate color.
|
|
136
|
+
*
|
|
137
|
+
* @param severity - Finding severity
|
|
138
|
+
* @param colored - Whether colors are enabled
|
|
139
|
+
* @returns Formatted severity label
|
|
140
|
+
*/
|
|
141
|
+
export function formatSeverityLabel(severity, colored) {
|
|
142
|
+
const labels = {
|
|
143
|
+
error: 'error',
|
|
144
|
+
warning: 'warning',
|
|
145
|
+
info: 'info',
|
|
146
|
+
};
|
|
147
|
+
const label = labels[severity] ?? severity;
|
|
148
|
+
return colorize(label, getSeverityColor(severity), colored);
|
|
149
|
+
}
|
|
150
|
+
// =============================================================================
|
|
151
|
+
// Convenience Functions
|
|
152
|
+
// =============================================================================
|
|
153
|
+
/**
|
|
154
|
+
* Create a colorizer function bound to a specific color state.
|
|
155
|
+
*
|
|
156
|
+
* @param colored - Whether colors are enabled
|
|
157
|
+
* @returns Object with color functions
|
|
158
|
+
*/
|
|
159
|
+
export function createColorizer(colored) {
|
|
160
|
+
return {
|
|
161
|
+
red: (text) => colorize(text, ANSI.red, colored),
|
|
162
|
+
green: (text) => colorize(text, ANSI.green, colored),
|
|
163
|
+
yellow: (text) => colorize(text, ANSI.yellow, colored),
|
|
164
|
+
blue: (text) => colorize(text, ANSI.blue, colored),
|
|
165
|
+
cyan: (text) => colorize(text, ANSI.cyan, colored),
|
|
166
|
+
magenta: (text) => colorize(text, ANSI.magenta, colored),
|
|
167
|
+
gray: (text) => colorize(text, ANSI.gray, colored),
|
|
168
|
+
white: (text) => colorize(text, ANSI.white, colored),
|
|
169
|
+
bold: (text) => colorize(text, ANSI.bold, colored),
|
|
170
|
+
dim: (text) => colorize(text, ANSI.dim, colored),
|
|
171
|
+
italic: (text) => colorize(text, ANSI.italic, colored),
|
|
172
|
+
underline: (text) => colorize(text, ANSI.underline, colored),
|
|
173
|
+
inverse: (text) => colorize(text, ANSI.inverse, colored),
|
|
174
|
+
error: (text) => colorizeSeverity(text, 'error', colored),
|
|
175
|
+
warning: (text) => colorizeSeverity(text, 'warning', colored),
|
|
176
|
+
info: (text) => colorizeSeverity(text, 'info', colored),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Strip ANSI codes from text.
|
|
181
|
+
*
|
|
182
|
+
* @param text - Text potentially containing ANSI codes
|
|
183
|
+
* @returns Text with ANSI codes removed
|
|
184
|
+
*/
|
|
185
|
+
export function stripAnsi(text) {
|
|
186
|
+
// eslint-disable-next-line no-control-regex
|
|
187
|
+
return text.replace(/\x1b\[[0-9;]*m/g, '');
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get the visible length of text (excluding ANSI codes).
|
|
191
|
+
*
|
|
192
|
+
* @param text - Text potentially containing ANSI codes
|
|
193
|
+
* @returns Visible character count
|
|
194
|
+
*/
|
|
195
|
+
export function visibleLength(text) {
|
|
196
|
+
return stripAnsi(text).length;
|
|
197
|
+
}
|
|
198
|
+
// =============================================================================
|
|
199
|
+
// Unicode Support Detection
|
|
200
|
+
// =============================================================================
|
|
201
|
+
/**
|
|
202
|
+
* Check if terminal supports Unicode characters (for box drawing, etc.).
|
|
203
|
+
*
|
|
204
|
+
* Detection logic:
|
|
205
|
+
* 1. Windows Terminal (WT_SESSION env) -> true
|
|
206
|
+
* 2. ConEmu terminal (ConEmuANSI=ON) -> true
|
|
207
|
+
* 3. TERM contains 'xterm', '256color', 'truecolor' -> true
|
|
208
|
+
* 4. LC_ALL, LC_CTYPE, or LANG contains 'UTF-8' or 'utf8' (case-insensitive) -> true
|
|
209
|
+
* 5. TERM is 'dumb' -> false
|
|
210
|
+
* 6. CI environments (CI=true, GITHUB_ACTIONS, etc.) -> true (most CI supports UTF-8)
|
|
211
|
+
* 7. Default: false (fall back to ASCII for safety)
|
|
212
|
+
*
|
|
213
|
+
* @param env - Environment variables (defaults to process.env)
|
|
214
|
+
* @returns true if Unicode characters should be used
|
|
215
|
+
*/
|
|
216
|
+
export function supportsUnicode(env = process.env) {
|
|
217
|
+
// Windows Terminal explicitly supports Unicode
|
|
218
|
+
if (env['WT_SESSION'] !== undefined) {
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
// ConEmu supports Unicode when ANSI is enabled
|
|
222
|
+
if (env['ConEmuANSI'] === 'ON') {
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
// Check TERM for modern terminal indicators
|
|
226
|
+
const term = env['TERM']?.toLowerCase() ?? '';
|
|
227
|
+
// Dumb terminals don't support Unicode
|
|
228
|
+
if (term === 'dumb') {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
// xterm variants and color terminals typically support Unicode
|
|
232
|
+
if (term.includes('xterm') || term.includes('256color') || term.includes('truecolor')) {
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
// Check locale settings for UTF-8
|
|
236
|
+
const localeVars = [env['LC_ALL'], env['LC_CTYPE'], env['LANG']].filter(Boolean);
|
|
237
|
+
for (const locale of localeVars) {
|
|
238
|
+
if (locale && /utf-?8/i.test(locale)) {
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
// CI environments typically support UTF-8
|
|
243
|
+
if (env['CI'] === 'true' ||
|
|
244
|
+
env['GITHUB_ACTIONS'] !== undefined ||
|
|
245
|
+
env['GITLAB_CI'] !== undefined ||
|
|
246
|
+
env['CIRCLECI'] !== undefined ||
|
|
247
|
+
env['TRAVIS'] !== undefined ||
|
|
248
|
+
env['TF_BUILD'] !== undefined // Azure DevOps
|
|
249
|
+
) {
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
// Default to false for safety (ASCII fallback)
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../src/cli/output/colors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Error Types and Formatters
|
|
3
|
+
*
|
|
4
|
+
* Provides user-facing error types and formatting for terminal output.
|
|
5
|
+
* All error messages include actionable guidance.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* CLI-specific error codes
|
|
9
|
+
*/
|
|
10
|
+
export declare const CLIErrorCode: {
|
|
11
|
+
readonly NOT_GIT_REPO: "CLI_NOT_GIT_REPO";
|
|
12
|
+
readonly GIT_NOT_FOUND: "CLI_GIT_NOT_FOUND";
|
|
13
|
+
readonly INVALID_PATH: "CLI_INVALID_PATH";
|
|
14
|
+
readonly NO_CREDENTIALS: "CLI_NO_CREDENTIALS";
|
|
15
|
+
readonly NO_CHANGES: "CLI_NO_CHANGES";
|
|
16
|
+
readonly INVALID_CONFIG: "CLI_INVALID_CONFIG";
|
|
17
|
+
readonly CONFIG_NOT_FOUND: "CLI_CONFIG_NOT_FOUND";
|
|
18
|
+
readonly INVALID_OPTIONS: "CLI_INVALID_OPTIONS";
|
|
19
|
+
readonly EXECUTION_FAILED: "CLI_EXECUTION_FAILED";
|
|
20
|
+
};
|
|
21
|
+
export type CLIErrorCode = (typeof CLIErrorCode)[keyof typeof CLIErrorCode];
|
|
22
|
+
/**
|
|
23
|
+
* Base class for CLI errors
|
|
24
|
+
*/
|
|
25
|
+
export declare abstract class CLIError extends Error {
|
|
26
|
+
abstract readonly code: CLIErrorCode;
|
|
27
|
+
abstract readonly hint?: string;
|
|
28
|
+
constructor(message: string);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Error when not in a git repository
|
|
32
|
+
*/
|
|
33
|
+
export declare class NotAGitRepoError extends CLIError {
|
|
34
|
+
readonly code: "CLI_NOT_GIT_REPO";
|
|
35
|
+
readonly hint: string;
|
|
36
|
+
readonly path?: string;
|
|
37
|
+
constructor(path?: string);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Error when git is not available in PATH
|
|
41
|
+
*/
|
|
42
|
+
export declare class GitNotFoundError extends CLIError {
|
|
43
|
+
readonly code: "CLI_GIT_NOT_FOUND";
|
|
44
|
+
readonly hint: string;
|
|
45
|
+
constructor(message?: string);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Error when the provided path is invalid or inaccessible
|
|
49
|
+
*/
|
|
50
|
+
export declare class InvalidPathError extends CLIError {
|
|
51
|
+
readonly code: "CLI_INVALID_PATH";
|
|
52
|
+
readonly hint: string;
|
|
53
|
+
readonly path?: string;
|
|
54
|
+
constructor(message: string, path?: string);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Error when no API credentials are found
|
|
58
|
+
*/
|
|
59
|
+
export declare class NoCredentialsError extends CLIError {
|
|
60
|
+
readonly code: "CLI_NO_CREDENTIALS";
|
|
61
|
+
readonly hint: string;
|
|
62
|
+
constructor();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Error when no changes are found to review
|
|
66
|
+
*/
|
|
67
|
+
export declare class NoChangesError extends CLIError {
|
|
68
|
+
readonly code: "CLI_NO_CHANGES";
|
|
69
|
+
readonly hint: string;
|
|
70
|
+
readonly base?: string;
|
|
71
|
+
readonly head?: string;
|
|
72
|
+
constructor(base?: string, head?: string);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Error when configuration is invalid
|
|
76
|
+
*/
|
|
77
|
+
export declare class InvalidConfigError extends CLIError {
|
|
78
|
+
readonly code: "CLI_INVALID_CONFIG";
|
|
79
|
+
readonly hint: string;
|
|
80
|
+
readonly configPath: string;
|
|
81
|
+
readonly details: string[];
|
|
82
|
+
constructor(configPath: string, details: string[]);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Error when config file is not found
|
|
86
|
+
*/
|
|
87
|
+
export declare class ConfigNotFoundError extends CLIError {
|
|
88
|
+
readonly code: "CLI_CONFIG_NOT_FOUND";
|
|
89
|
+
readonly hint: string;
|
|
90
|
+
readonly configPath: string;
|
|
91
|
+
constructor(configPath: string);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Error for invalid CLI options
|
|
95
|
+
*/
|
|
96
|
+
export declare class InvalidOptionsError extends CLIError {
|
|
97
|
+
readonly code: "CLI_INVALID_OPTIONS";
|
|
98
|
+
readonly hint: string;
|
|
99
|
+
readonly option: string;
|
|
100
|
+
readonly reason: string;
|
|
101
|
+
constructor(option: string, reason: string, hint: string);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Error for execution failures
|
|
105
|
+
*/
|
|
106
|
+
export declare class ExecutionFailedError extends CLIError {
|
|
107
|
+
readonly code: "CLI_EXECUTION_FAILED";
|
|
108
|
+
readonly hint?: string;
|
|
109
|
+
readonly stage: string;
|
|
110
|
+
readonly originalCause?: Error;
|
|
111
|
+
constructor(stage: string, message: string, originalCause?: Error);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Format a CLI error for terminal display
|
|
115
|
+
*
|
|
116
|
+
* @param error - CLI error to format
|
|
117
|
+
* @param colored - Whether to use ANSI colors
|
|
118
|
+
* @returns Formatted error string
|
|
119
|
+
*/
|
|
120
|
+
export declare function formatCLIError(error: CLIError | Error, colored?: boolean): string;
|
|
121
|
+
/**
|
|
122
|
+
* Format NotAGitRepoError with guidance
|
|
123
|
+
*/
|
|
124
|
+
export declare function formatNotAGitRepoError(error: NotAGitRepoError, colored: boolean): string;
|
|
125
|
+
/**
|
|
126
|
+
* Format NoCredentialsError with env var instructions
|
|
127
|
+
*/
|
|
128
|
+
export declare function formatNoCredentialsError(error: NoCredentialsError, colored: boolean): string;
|
|
129
|
+
/**
|
|
130
|
+
* Format NoChangesError with success styling (not actually an error state)
|
|
131
|
+
*/
|
|
132
|
+
export declare function formatNoChangesError(error: NoChangesError, colored: boolean): string;
|
|
133
|
+
/**
|
|
134
|
+
* Format InvalidConfigError with validation details
|
|
135
|
+
*/
|
|
136
|
+
export declare function formatInvalidConfigError(error: InvalidConfigError, colored: boolean): string;
|
|
137
|
+
/**
|
|
138
|
+
* Type guard for CLIError
|
|
139
|
+
*/
|
|
140
|
+
export declare function isCLIError(error: unknown): error is CLIError;
|
|
141
|
+
/**
|
|
142
|
+
* Type guard for NotAGitRepoError
|
|
143
|
+
*/
|
|
144
|
+
export declare function isNotAGitRepoError(error: unknown): error is NotAGitRepoError;
|
|
145
|
+
/**
|
|
146
|
+
* Type guard for NoCredentialsError
|
|
147
|
+
*/
|
|
148
|
+
export declare function isNoCredentialsError(error: unknown): error is NoCredentialsError;
|
|
149
|
+
/**
|
|
150
|
+
* Type guard for NoChangesError
|
|
151
|
+
*/
|
|
152
|
+
export declare function isNoChangesError(error: unknown): error is NoChangesError;
|
|
153
|
+
/**
|
|
154
|
+
* Type guard for InvalidConfigError
|
|
155
|
+
*/
|
|
156
|
+
export declare function isInvalidConfigError(error: unknown): error is InvalidConfigError;
|
|
157
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/cli/output/errors.ts"],"names":[],"mappings":"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"}
|