@vibecheckai/cli 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +532 -0
- package/dist/autopatch/verified-autopatch.d.ts +111 -0
- package/dist/autopatch/verified-autopatch.d.ts.map +1 -0
- package/dist/autopatch/verified-autopatch.js +503 -0
- package/dist/autopatch/verified-autopatch.js.map +1 -0
- package/dist/bundles/guardrail-core.js +25799 -0
- package/dist/bundles/guardrail-security.js +208687 -0
- package/dist/bundles/guardrail-ship.js +2318 -0
- package/dist/bundles/index.js +8 -0
- package/dist/commands/autopilot-decision.d.ts +24 -0
- package/dist/commands/autopilot-decision.d.ts.map +1 -0
- package/dist/commands/autopilot-decision.js +304 -0
- package/dist/commands/autopilot-decision.js.map +1 -0
- package/dist/commands/autopilot.d.ts +33 -0
- package/dist/commands/autopilot.d.ts.map +1 -0
- package/dist/commands/autopilot.js +1539 -0
- package/dist/commands/autopilot.js.map +1 -0
- package/dist/commands/baseline.d.ts +7 -0
- package/dist/commands/baseline.d.ts.map +1 -0
- package/dist/commands/baseline.js +79 -0
- package/dist/commands/baseline.js.map +1 -0
- package/dist/commands/cache.d.ts +13 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +165 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/checkpoint.d.ts +8 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +35 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/context.d.ts +8 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +340 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/debug.d.ts +78 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +381 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/doctor.d.ts +17 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +226 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/evidence.d.ts +45 -0
- package/dist/commands/evidence.d.ts.map +1 -0
- package/dist/commands/evidence.js +197 -0
- package/dist/commands/evidence.js.map +1 -0
- package/dist/commands/explain.d.ts +8 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +52 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/fix-consolidated.d.ts +19 -0
- package/dist/commands/fix-consolidated.d.ts.map +1 -0
- package/dist/commands/fix-consolidated.js +165 -0
- package/dist/commands/fix-consolidated.js.map +1 -0
- package/dist/commands/index.d.ts +8 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +15 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +125 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/launcher.d.ts +10 -0
- package/dist/commands/launcher.d.ts.map +1 -0
- package/dist/commands/launcher.js +174 -0
- package/dist/commands/launcher.js.map +1 -0
- package/dist/commands/on.d.ts +8 -0
- package/dist/commands/on.d.ts.map +1 -0
- package/dist/commands/on.js +123 -0
- package/dist/commands/on.js.map +1 -0
- package/dist/commands/preview.d.ts +54 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +352 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/quality/check.d.ts +31 -0
- package/dist/commands/quality/check.d.ts.map +1 -0
- package/dist/commands/quality/check.js +242 -0
- package/dist/commands/quality/check.js.map +1 -0
- package/dist/commands/quality/index.d.ts +8 -0
- package/dist/commands/quality/index.d.ts.map +1 -0
- package/dist/commands/quality/index.js +14 -0
- package/dist/commands/quality/index.js.map +1 -0
- package/dist/commands/quality/setup-quality.d.ts +23 -0
- package/dist/commands/quality/setup-quality.d.ts.map +1 -0
- package/dist/commands/quality/setup-quality.js +452 -0
- package/dist/commands/quality/setup-quality.js.map +1 -0
- package/dist/commands/quality/tidy.d.ts +41 -0
- package/dist/commands/quality/tidy.d.ts.map +1 -0
- package/dist/commands/quality/tidy.js +466 -0
- package/dist/commands/quality/tidy.js.map +1 -0
- package/dist/commands/quality/utils.d.ts +73 -0
- package/dist/commands/quality/utils.d.ts.map +1 -0
- package/dist/commands/quality/utils.js +158 -0
- package/dist/commands/quality/utils.js.map +1 -0
- package/dist/commands/replay.d.ts +8 -0
- package/dist/commands/replay.d.ts.map +1 -0
- package/dist/commands/replay.js +52 -0
- package/dist/commands/replay.js.map +1 -0
- package/dist/commands/scan-consolidated.d.ts +61 -0
- package/dist/commands/scan-consolidated.d.ts.map +1 -0
- package/dist/commands/scan-consolidated.js +243 -0
- package/dist/commands/scan-consolidated.js.map +1 -0
- package/dist/commands/scan-secrets.d.ts +47 -0
- package/dist/commands/scan-secrets.d.ts.map +1 -0
- package/dist/commands/scan-secrets.js +225 -0
- package/dist/commands/scan-secrets.js.map +1 -0
- package/dist/commands/scan-vulnerabilities-enhanced.d.ts +41 -0
- package/dist/commands/scan-vulnerabilities-enhanced.d.ts.map +1 -0
- package/dist/commands/scan-vulnerabilities-enhanced.js +368 -0
- package/dist/commands/scan-vulnerabilities-enhanced.js.map +1 -0
- package/dist/commands/scan-vulnerabilities-osv.d.ts +58 -0
- package/dist/commands/scan-vulnerabilities-osv.d.ts.map +1 -0
- package/dist/commands/scan-vulnerabilities-osv.js +716 -0
- package/dist/commands/scan-vulnerabilities-osv.js.map +1 -0
- package/dist/commands/scan-vulnerabilities.d.ts +32 -0
- package/dist/commands/scan-vulnerabilities.d.ts.map +1 -0
- package/dist/commands/scan-vulnerabilities.js +283 -0
- package/dist/commands/scan-vulnerabilities.js.map +1 -0
- package/dist/commands/secrets-allowlist.d.ts +7 -0
- package/dist/commands/secrets-allowlist.d.ts.map +1 -0
- package/dist/commands/secrets-allowlist.js +85 -0
- package/dist/commands/secrets-allowlist.js.map +1 -0
- package/dist/commands/ship-consolidated.d.ts +58 -0
- package/dist/commands/ship-consolidated.d.ts.map +1 -0
- package/dist/commands/ship-consolidated.js +515 -0
- package/dist/commands/ship-consolidated.js.map +1 -0
- package/dist/commands/stats.d.ts +8 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +134 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/upgrade.d.ts +8 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +30 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/fix/analytics.d.ts +121 -0
- package/dist/fix/analytics.d.ts.map +1 -0
- package/dist/fix/analytics.js +289 -0
- package/dist/fix/analytics.js.map +1 -0
- package/dist/fix/applicator.d.ts +44 -0
- package/dist/fix/applicator.d.ts.map +1 -0
- package/dist/fix/applicator.js +144 -0
- package/dist/fix/applicator.js.map +1 -0
- package/dist/fix/audit.d.ts +61 -0
- package/dist/fix/audit.d.ts.map +1 -0
- package/dist/fix/audit.js +149 -0
- package/dist/fix/audit.js.map +1 -0
- package/dist/fix/backup.d.ts +38 -0
- package/dist/fix/backup.d.ts.map +1 -0
- package/dist/fix/backup.js +154 -0
- package/dist/fix/backup.js.map +1 -0
- package/dist/fix/config.d.ts +78 -0
- package/dist/fix/config.d.ts.map +1 -0
- package/dist/fix/config.js +200 -0
- package/dist/fix/config.js.map +1 -0
- package/dist/fix/engine.d.ts +55 -0
- package/dist/fix/engine.d.ts.map +1 -0
- package/dist/fix/engine.js +285 -0
- package/dist/fix/engine.js.map +1 -0
- package/dist/fix/impact.d.ts +74 -0
- package/dist/fix/impact.d.ts.map +1 -0
- package/dist/fix/impact.js +281 -0
- package/dist/fix/impact.js.map +1 -0
- package/dist/fix/index.d.ts +5 -0
- package/dist/fix/index.d.ts.map +1 -0
- package/dist/fix/index.js +12 -0
- package/dist/fix/index.js.map +1 -0
- package/dist/fix/interactive.d.ts +22 -0
- package/dist/fix/interactive.d.ts.map +1 -0
- package/dist/fix/interactive.js +172 -0
- package/dist/fix/interactive.js.map +1 -0
- package/dist/fix/learning.d.ts +109 -0
- package/dist/fix/learning.d.ts.map +1 -0
- package/dist/fix/learning.js +296 -0
- package/dist/fix/learning.js.map +1 -0
- package/dist/fix/metrics.d.ts +106 -0
- package/dist/fix/metrics.d.ts.map +1 -0
- package/dist/fix/metrics.js +138 -0
- package/dist/fix/metrics.js.map +1 -0
- package/dist/fix/parallel.d.ts +69 -0
- package/dist/fix/parallel.d.ts.map +1 -0
- package/dist/fix/parallel.js +203 -0
- package/dist/fix/parallel.js.map +1 -0
- package/dist/fix/report.d.ts +40 -0
- package/dist/fix/report.d.ts.map +1 -0
- package/dist/fix/report.js +212 -0
- package/dist/fix/report.js.map +1 -0
- package/dist/fix/strategy.d.ts +53 -0
- package/dist/fix/strategy.d.ts.map +1 -0
- package/dist/fix/strategy.js +143 -0
- package/dist/fix/strategy.js.map +1 -0
- package/dist/fix/templates.d.ts +58 -0
- package/dist/fix/templates.d.ts.map +1 -0
- package/dist/fix/templates.js +259 -0
- package/dist/fix/templates.js.map +1 -0
- package/dist/fix/testing.d.ts +68 -0
- package/dist/fix/testing.d.ts.map +1 -0
- package/dist/fix/testing.js +245 -0
- package/dist/fix/testing.js.map +1 -0
- package/dist/fix/validation.d.ts +71 -0
- package/dist/fix/validation.d.ts.map +1 -0
- package/dist/fix/validation.js +267 -0
- package/dist/fix/validation.js.map +1 -0
- package/dist/fix/visualization.d.ts +73 -0
- package/dist/fix/visualization.d.ts.map +1 -0
- package/dist/fix/visualization.js +243 -0
- package/dist/fix/visualization.js.map +1 -0
- package/dist/formatters/index.d.ts +6 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +11 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/sarif-enhanced.d.ts +78 -0
- package/dist/formatters/sarif-enhanced.d.ts.map +1 -0
- package/dist/formatters/sarif-enhanced.js +144 -0
- package/dist/formatters/sarif-enhanced.js.map +1 -0
- package/dist/formatters/sarif-v2.d.ts +121 -0
- package/dist/formatters/sarif-v2.d.ts.map +1 -0
- package/dist/formatters/sarif-v2.js +356 -0
- package/dist/formatters/sarif-v2.js.map +1 -0
- package/dist/formatters/sarif.d.ts +72 -0
- package/dist/formatters/sarif.d.ts.map +1 -0
- package/dist/formatters/sarif.js +146 -0
- package/dist/formatters/sarif.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4455 -0
- package/dist/index.js.map +1 -0
- package/dist/init/ci-generator.d.ts +18 -0
- package/dist/init/ci-generator.d.ts.map +1 -0
- package/dist/init/ci-generator.js +317 -0
- package/dist/init/ci-generator.js.map +1 -0
- package/dist/init/detect-framework.d.ts +15 -0
- package/dist/init/detect-framework.d.ts.map +1 -0
- package/dist/init/detect-framework.js +301 -0
- package/dist/init/detect-framework.js.map +1 -0
- package/dist/init/hooks-installer.d.ts +22 -0
- package/dist/init/hooks-installer.d.ts.map +1 -0
- package/dist/init/hooks-installer.js +310 -0
- package/dist/init/hooks-installer.js.map +1 -0
- package/dist/init/index.d.ts +8 -0
- package/dist/init/index.d.ts.map +1 -0
- package/dist/init/index.js +22 -0
- package/dist/init/index.js.map +1 -0
- package/dist/init/templates.d.ts +401 -0
- package/dist/init/templates.d.ts.map +1 -0
- package/dist/init/templates.js +240 -0
- package/dist/init/templates.js.map +1 -0
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +42 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/telemetry.d.ts +40 -0
- package/dist/mcp/telemetry.d.ts.map +1 -0
- package/dist/mcp/telemetry.js +98 -0
- package/dist/mcp/telemetry.js.map +1 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts +32 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts.map +1 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.js +236 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.js.map +1 -0
- package/dist/reality/no-dead-buttons/index.d.ts +11 -0
- package/dist/reality/no-dead-buttons/index.d.ts.map +1 -0
- package/dist/reality/no-dead-buttons/index.js +18 -0
- package/dist/reality/no-dead-buttons/index.js.map +1 -0
- package/dist/reality/no-dead-buttons/static-scanner.d.ts +34 -0
- package/dist/reality/no-dead-buttons/static-scanner.d.ts.map +1 -0
- package/dist/reality/no-dead-buttons/static-scanner.js +230 -0
- package/dist/reality/no-dead-buttons/static-scanner.js.map +1 -0
- package/dist/reality/reality-graph.d.ts +192 -0
- package/dist/reality/reality-graph.d.ts.map +1 -0
- package/dist/reality/reality-graph.js +600 -0
- package/dist/reality/reality-graph.js.map +1 -0
- package/dist/reality/reality-runner.d.ts +89 -0
- package/dist/reality/reality-runner.d.ts.map +1 -0
- package/dist/reality/reality-runner.js +540 -0
- package/dist/reality/reality-runner.js.map +1 -0
- package/dist/reality/receipt-generator.d.ts +152 -0
- package/dist/reality/receipt-generator.d.ts.map +1 -0
- package/dist/reality/receipt-generator.js +495 -0
- package/dist/reality/receipt-generator.js.map +1 -0
- package/dist/reality/runtime-tracer.d.ts +75 -0
- package/dist/reality/runtime-tracer.d.ts.map +1 -0
- package/dist/reality/runtime-tracer.js +109 -0
- package/dist/reality/runtime-tracer.js.map +1 -0
- package/dist/runtime/auth-utils.d.ts +43 -0
- package/dist/runtime/auth-utils.d.ts.map +1 -0
- package/dist/runtime/auth-utils.js +130 -0
- package/dist/runtime/auth-utils.js.map +1 -0
- package/dist/runtime/cli-errors.d.ts +38 -0
- package/dist/runtime/cli-errors.d.ts.map +1 -0
- package/dist/runtime/cli-errors.js +354 -0
- package/dist/runtime/cli-errors.js.map +1 -0
- package/dist/runtime/client.d.ts +74 -0
- package/dist/runtime/client.d.ts.map +1 -0
- package/dist/runtime/client.js +222 -0
- package/dist/runtime/client.js.map +1 -0
- package/dist/runtime/creds.d.ts +48 -0
- package/dist/runtime/creds.d.ts.map +1 -0
- package/dist/runtime/creds.js +245 -0
- package/dist/runtime/creds.js.map +1 -0
- package/dist/runtime/exit-codes.d.ts +49 -0
- package/dist/runtime/exit-codes.d.ts.map +1 -0
- package/dist/runtime/exit-codes.js +93 -0
- package/dist/runtime/exit-codes.js.map +1 -0
- package/dist/runtime/index.d.ts +9 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +25 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/json-output.d.ts +42 -0
- package/dist/runtime/json-output.d.ts.map +1 -0
- package/dist/runtime/json-output.js +59 -0
- package/dist/runtime/json-output.js.map +1 -0
- package/dist/runtime/owner-mode.d.ts +48 -0
- package/dist/runtime/owner-mode.d.ts.map +1 -0
- package/dist/runtime/owner-mode.js +284 -0
- package/dist/runtime/owner-mode.js.map +1 -0
- package/dist/runtime/semver.d.ts +37 -0
- package/dist/runtime/semver.d.ts.map +1 -0
- package/dist/runtime/semver.js +110 -0
- package/dist/runtime/semver.js.map +1 -0
- package/dist/scan/dead-ui-detector.d.ts +48 -0
- package/dist/scan/dead-ui-detector.d.ts.map +1 -0
- package/dist/scan/dead-ui-detector.js +170 -0
- package/dist/scan/dead-ui-detector.js.map +1 -0
- package/dist/scan/playwright-sweep.d.ts +40 -0
- package/dist/scan/playwright-sweep.d.ts.map +1 -0
- package/dist/scan/playwright-sweep.js +216 -0
- package/dist/scan/playwright-sweep.js.map +1 -0
- package/dist/scan/proof-bundle.d.ts +25 -0
- package/dist/scan/proof-bundle.d.ts.map +1 -0
- package/dist/scan/proof-bundle.js +203 -0
- package/dist/scan/proof-bundle.js.map +1 -0
- package/dist/scan/proof-graph.d.ts +59 -0
- package/dist/scan/proof-graph.d.ts.map +1 -0
- package/dist/scan/proof-graph.js +64 -0
- package/dist/scan/proof-graph.js.map +1 -0
- package/dist/scan/reality-sniff.d.ts +56 -0
- package/dist/scan/reality-sniff.d.ts.map +1 -0
- package/dist/scan/reality-sniff.js +200 -0
- package/dist/scan/reality-sniff.js.map +1 -0
- package/dist/scan/structural-verifier.d.ts +20 -0
- package/dist/scan/structural-verifier.d.ts.map +1 -0
- package/dist/scan/structural-verifier.js +112 -0
- package/dist/scan/structural-verifier.js.map +1 -0
- package/dist/scan/verification-engine.d.ts +47 -0
- package/dist/scan/verification-engine.d.ts.map +1 -0
- package/dist/scan/verification-engine.js +141 -0
- package/dist/scan/verification-engine.js.map +1 -0
- package/dist/scanner/baseline.d.ts +52 -0
- package/dist/scanner/baseline.d.ts.map +1 -0
- package/dist/scanner/baseline.js +85 -0
- package/dist/scanner/baseline.js.map +1 -0
- package/dist/scanner/incremental.d.ts +30 -0
- package/dist/scanner/incremental.d.ts.map +1 -0
- package/dist/scanner/incremental.js +82 -0
- package/dist/scanner/incremental.js.map +1 -0
- package/dist/scanner/index.d.ts +8 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +15 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/parallel.d.ts +43 -0
- package/dist/scanner/parallel.d.ts.map +1 -0
- package/dist/scanner/parallel.js +99 -0
- package/dist/scanner/parallel.js.map +1 -0
- package/dist/scanner/placeholder-detector.d.ts +56 -0
- package/dist/scanner/placeholder-detector.d.ts.map +1 -0
- package/dist/scanner/placeholder-detector.js +220 -0
- package/dist/scanner/placeholder-detector.js.map +1 -0
- package/dist/scanner/route-detector.d.ts +100 -0
- package/dist/scanner/route-detector.d.ts.map +1 -0
- package/dist/scanner/route-detector.js +455 -0
- package/dist/scanner/route-detector.js.map +1 -0
- package/dist/scanner/scoring.d.ts +67 -0
- package/dist/scanner/scoring.d.ts.map +1 -0
- package/dist/scanner/scoring.js +284 -0
- package/dist/scanner/scoring.js.map +1 -0
- package/dist/ship-baseline.d.ts +56 -0
- package/dist/ship-baseline.d.ts.map +1 -0
- package/dist/ship-baseline.js +194 -0
- package/dist/ship-baseline.js.map +1 -0
- package/dist/ship-config.d.ts +91 -0
- package/dist/ship-config.d.ts.map +1 -0
- package/dist/ship-config.js +133 -0
- package/dist/ship-config.js.map +1 -0
- package/dist/ship-data-loader.d.ts +70 -0
- package/dist/ship-data-loader.d.ts.map +1 -0
- package/dist/ship-data-loader.js +301 -0
- package/dist/ship-data-loader.js.map +1 -0
- package/dist/standalone.d.ts +1 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/standalone.js +1 -0
- package/dist/standalone.js.map +1 -0
- package/dist/truth-pack/index.d.ts +102 -0
- package/dist/truth-pack/index.d.ts.map +1 -0
- package/dist/truth-pack/index.js +694 -0
- package/dist/truth-pack/index.js.map +1 -0
- package/dist/ui/frame.d.ts +68 -0
- package/dist/ui/frame.d.ts.map +1 -0
- package/dist/ui/frame.js +165 -0
- package/dist/ui/frame.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +16 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui.d.ts +36 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +45 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils/ai-helpers.d.ts +72 -0
- package/dist/utils/ai-helpers.d.ts.map +1 -0
- package/dist/utils/ai-helpers.js +339 -0
- package/dist/utils/ai-helpers.js.map +1 -0
- package/dist/utils/validation.d.ts +34 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +160 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Tracer
|
|
3
|
+
*
|
|
4
|
+
* Collects runtime traces during execution:
|
|
5
|
+
* - HTTP requests made
|
|
6
|
+
* - Routes hit
|
|
7
|
+
* - Database queries executed
|
|
8
|
+
*/
|
|
9
|
+
export interface RuntimeTrace {
|
|
10
|
+
requests: Array<{
|
|
11
|
+
method: string;
|
|
12
|
+
url: string;
|
|
13
|
+
statusCode: number;
|
|
14
|
+
timestamp: string;
|
|
15
|
+
duration: number;
|
|
16
|
+
headers?: Record<string, string>;
|
|
17
|
+
}>;
|
|
18
|
+
routes: Array<{
|
|
19
|
+
path: string;
|
|
20
|
+
method: string;
|
|
21
|
+
hit: boolean;
|
|
22
|
+
timestamp: string;
|
|
23
|
+
responseTime?: number;
|
|
24
|
+
}>;
|
|
25
|
+
dbQueries: Array<{
|
|
26
|
+
query: string;
|
|
27
|
+
duration: number;
|
|
28
|
+
timestamp: string;
|
|
29
|
+
table?: string;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
declare class RuntimeTracer {
|
|
33
|
+
private traces;
|
|
34
|
+
/**
|
|
35
|
+
* Record an HTTP request
|
|
36
|
+
*/
|
|
37
|
+
recordRequest(method: string, url: string, statusCode: number, duration: number, headers?: Record<string, string>): void;
|
|
38
|
+
/**
|
|
39
|
+
* Record a route hit
|
|
40
|
+
*/
|
|
41
|
+
recordRoute(path: string, method: string, hit: boolean, responseTime?: number): void;
|
|
42
|
+
/**
|
|
43
|
+
* Record a database query
|
|
44
|
+
*/
|
|
45
|
+
recordDbQuery(query: string, duration: number, table?: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get all traces
|
|
48
|
+
*/
|
|
49
|
+
getTraces(): RuntimeTrace;
|
|
50
|
+
/**
|
|
51
|
+
* Reset traces
|
|
52
|
+
*/
|
|
53
|
+
reset(): void;
|
|
54
|
+
}
|
|
55
|
+
export declare const runtimeTracer: RuntimeTracer;
|
|
56
|
+
/**
|
|
57
|
+
* Playwright request interceptor for tracing HTTP requests
|
|
58
|
+
*/
|
|
59
|
+
export declare function createRequestInterceptor(): (request: any) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Playwright response interceptor for tracing HTTP responses
|
|
62
|
+
*/
|
|
63
|
+
export declare function createResponseInterceptor(): (response: any) => Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Extract routes from Playwright trace or network logs
|
|
66
|
+
*/
|
|
67
|
+
export declare function extractRoutesFromTrace(tracePath: string): Array<{
|
|
68
|
+
path: string;
|
|
69
|
+
method: string;
|
|
70
|
+
hit: boolean;
|
|
71
|
+
timestamp: string;
|
|
72
|
+
responseTime?: number;
|
|
73
|
+
}>;
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=runtime-tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-tracer.d.ts","sourceRoot":"","sources":["../../src/reality/runtime-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,SAAS,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAIZ;IAEF;;OAEG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI;IAWP;;OAEG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI;IAUP;;OAEG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;IASP;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;CAOd;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,wBAAwB,KAC9B,SAAS,GAAG,UAOrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,KACzB,UAAU,GAAG,mBAc5B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CAID"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Runtime Tracer
|
|
4
|
+
*
|
|
5
|
+
* Collects runtime traces during execution:
|
|
6
|
+
* - HTTP requests made
|
|
7
|
+
* - Routes hit
|
|
8
|
+
* - Database queries executed
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.runtimeTracer = void 0;
|
|
12
|
+
exports.createRequestInterceptor = createRequestInterceptor;
|
|
13
|
+
exports.createResponseInterceptor = createResponseInterceptor;
|
|
14
|
+
exports.extractRoutesFromTrace = extractRoutesFromTrace;
|
|
15
|
+
class RuntimeTracer {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.traces = {
|
|
18
|
+
requests: [],
|
|
19
|
+
routes: [],
|
|
20
|
+
dbQueries: [],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Record an HTTP request
|
|
25
|
+
*/
|
|
26
|
+
recordRequest(method, url, statusCode, duration, headers) {
|
|
27
|
+
this.traces.requests.push({
|
|
28
|
+
method,
|
|
29
|
+
url,
|
|
30
|
+
statusCode,
|
|
31
|
+
timestamp: new Date().toISOString(),
|
|
32
|
+
duration,
|
|
33
|
+
headers,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Record a route hit
|
|
38
|
+
*/
|
|
39
|
+
recordRoute(path, method, hit, responseTime) {
|
|
40
|
+
this.traces.routes.push({
|
|
41
|
+
path,
|
|
42
|
+
method,
|
|
43
|
+
hit,
|
|
44
|
+
timestamp: new Date().toISOString(),
|
|
45
|
+
responseTime,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Record a database query
|
|
50
|
+
*/
|
|
51
|
+
recordDbQuery(query, duration, table) {
|
|
52
|
+
this.traces.dbQueries.push({
|
|
53
|
+
query: query.length > 200 ? query.substring(0, 200) + '...' : query, // Truncate long queries
|
|
54
|
+
duration,
|
|
55
|
+
timestamp: new Date().toISOString(),
|
|
56
|
+
table,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get all traces
|
|
61
|
+
*/
|
|
62
|
+
getTraces() {
|
|
63
|
+
return { ...this.traces };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Reset traces
|
|
67
|
+
*/
|
|
68
|
+
reset() {
|
|
69
|
+
this.traces = {
|
|
70
|
+
requests: [],
|
|
71
|
+
routes: [],
|
|
72
|
+
dbQueries: [],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Singleton instance
|
|
77
|
+
exports.runtimeTracer = new RuntimeTracer();
|
|
78
|
+
/**
|
|
79
|
+
* Playwright request interceptor for tracing HTTP requests
|
|
80
|
+
*/
|
|
81
|
+
function createRequestInterceptor() {
|
|
82
|
+
return (request) => {
|
|
83
|
+
const startTime = Date.now();
|
|
84
|
+
request.continue().then(() => {
|
|
85
|
+
// Request completed
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Playwright response interceptor for tracing HTTP responses
|
|
91
|
+
*/
|
|
92
|
+
function createResponseInterceptor() {
|
|
93
|
+
return async (response) => {
|
|
94
|
+
const request = response.request();
|
|
95
|
+
const endTime = Date.now();
|
|
96
|
+
const startTime = request._startTime || endTime;
|
|
97
|
+
const duration = endTime - startTime;
|
|
98
|
+
exports.runtimeTracer.recordRequest(request.method(), request.url(), response.status(), duration, response.headers());
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Extract routes from Playwright trace or network logs
|
|
103
|
+
*/
|
|
104
|
+
function extractRoutesFromTrace(tracePath) {
|
|
105
|
+
// This would parse Playwright trace files
|
|
106
|
+
// For now, return empty array - implementation would parse trace.zip
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=runtime-tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-tracer.js","sourceRoot":"","sources":["../../src/reality/runtime-tracer.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAgHH,4DAQC;AAKD,8DAeC;AAKD,wDAUC;AAjID,MAAM,aAAa;IAAnB;QACU,WAAM,GAAiB;YAC7B,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;SACd,CAAC;IAyEJ,CAAC;IAvEC;;OAEG;IACH,aAAa,CACX,MAAc,EACd,GAAW,EACX,UAAkB,EAClB,QAAgB,EAChB,OAAgC;QAEhC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxB,MAAM;YACN,GAAG;YACH,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,WAAW,CACT,IAAY,EACZ,MAAc,EACd,GAAY,EACZ,YAAqB;QAErB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI;YACJ,MAAM;YACN,GAAG;YACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CACX,KAAa,EACb,QAAgB,EAChB,KAAc;QAEd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACzB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,wBAAwB;YAC7F,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF;AAED,qBAAqB;AACR,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAEjD;;GAEG;AACH,SAAgB,wBAAwB;IACtC,OAAO,CAAC,OAAY,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC3B,oBAAoB;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,OAAO,KAAK,EAAE,QAAa,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAI,OAAe,CAAC,UAAU,IAAI,OAAO,CAAC;QACzD,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QAErC,qBAAa,CAAC,aAAa,CACzB,OAAO,CAAC,MAAM,EAAE,EAChB,OAAO,CAAC,GAAG,EAAE,EACb,QAAQ,CAAC,MAAM,EAAE,EACjB,QAAQ,EACR,QAAQ,CAAC,OAAO,EAAE,CACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,SAAiB;IAOtD,0CAA0C;IAC1C,qEAAqE;IACrE,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enterprise Auth Utilities
|
|
3
|
+
* - Key masking for secure display
|
|
4
|
+
* - Expiry warning calculations
|
|
5
|
+
* - Cache validity checks
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Mask an API key for secure display
|
|
9
|
+
* Keeps prefix and last 4 characters: gr_pro_****abcd
|
|
10
|
+
*/
|
|
11
|
+
export declare function maskApiKey(apiKey: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Calculate hours until expiry
|
|
14
|
+
* Returns null if no expiry or already expired
|
|
15
|
+
*/
|
|
16
|
+
export declare function hoursUntilExpiry(expiresAt: string | undefined): number | null;
|
|
17
|
+
/**
|
|
18
|
+
* Check if expiry is within warning threshold (72 hours)
|
|
19
|
+
*/
|
|
20
|
+
export declare function isExpiryWarning(expiresAt: string | undefined, thresholdHours?: number): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Format expiry for display
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatExpiry(expiresAt: string | undefined): string;
|
|
25
|
+
/**
|
|
26
|
+
* Check if cached entitlements should be reused
|
|
27
|
+
* Returns true if cache is valid and has > 5 minutes remaining
|
|
28
|
+
*/
|
|
29
|
+
export declare function shouldUseCachedEntitlements(expiresAt: string | undefined): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Get client metadata for API requests
|
|
32
|
+
*/
|
|
33
|
+
export declare function getClientMetadata(): {
|
|
34
|
+
version: string;
|
|
35
|
+
os: string;
|
|
36
|
+
arch: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Validate API key format
|
|
40
|
+
* Returns error message or null if valid
|
|
41
|
+
*/
|
|
42
|
+
export declare function validateApiKeyFormat(apiKey: string): string | null;
|
|
43
|
+
//# sourceMappingURL=auth-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-utils.d.ts","sourceRoot":"","sources":["../../src/runtime/auth-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAU7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,cAAc,GAAE,MAAW,GAAG,OAAO,CAInG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAYlE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQlF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAcjF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBlE"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Enterprise Auth Utilities
|
|
4
|
+
* - Key masking for secure display
|
|
5
|
+
* - Expiry warning calculations
|
|
6
|
+
* - Cache validity checks
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.maskApiKey = maskApiKey;
|
|
10
|
+
exports.hoursUntilExpiry = hoursUntilExpiry;
|
|
11
|
+
exports.isExpiryWarning = isExpiryWarning;
|
|
12
|
+
exports.formatExpiry = formatExpiry;
|
|
13
|
+
exports.shouldUseCachedEntitlements = shouldUseCachedEntitlements;
|
|
14
|
+
exports.getClientMetadata = getClientMetadata;
|
|
15
|
+
exports.validateApiKeyFormat = validateApiKeyFormat;
|
|
16
|
+
/**
|
|
17
|
+
* Mask an API key for secure display
|
|
18
|
+
* Keeps prefix and last 4 characters: gr_pro_****abcd
|
|
19
|
+
*/
|
|
20
|
+
function maskApiKey(apiKey) {
|
|
21
|
+
if (!apiKey || apiKey.length < 12) {
|
|
22
|
+
return '****';
|
|
23
|
+
}
|
|
24
|
+
// Find the prefix pattern (gr_tier_)
|
|
25
|
+
const prefixMatch = apiKey.match(/^(gr_[a-z]+_)/);
|
|
26
|
+
if (prefixMatch) {
|
|
27
|
+
const prefix = prefixMatch[1];
|
|
28
|
+
const suffix = apiKey.slice(-4);
|
|
29
|
+
const maskedLength = apiKey.length - prefix.length - 4;
|
|
30
|
+
// Use exactly 8 asterisks for keys of this length, or actual length if different
|
|
31
|
+
// This provides consistent masking regardless of actual secret length
|
|
32
|
+
const asteriskCount = maskedLength >= 8 ? 8 : Math.max(4, maskedLength);
|
|
33
|
+
return `${prefix}${'*'.repeat(asteriskCount)}${suffix}`;
|
|
34
|
+
}
|
|
35
|
+
// Fallback: show first 3 and last 4
|
|
36
|
+
const prefix = apiKey.slice(0, 3);
|
|
37
|
+
const suffix = apiKey.slice(-4);
|
|
38
|
+
return `${prefix}****${suffix}`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Calculate hours until expiry
|
|
42
|
+
* Returns null if no expiry or already expired
|
|
43
|
+
*/
|
|
44
|
+
function hoursUntilExpiry(expiresAt) {
|
|
45
|
+
if (!expiresAt)
|
|
46
|
+
return null;
|
|
47
|
+
const expiry = new Date(expiresAt);
|
|
48
|
+
const now = new Date();
|
|
49
|
+
if (expiry <= now)
|
|
50
|
+
return 0;
|
|
51
|
+
const diffMs = expiry.getTime() - now.getTime();
|
|
52
|
+
return Math.floor(diffMs / (1000 * 60 * 60));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if expiry is within warning threshold (72 hours)
|
|
56
|
+
*/
|
|
57
|
+
function isExpiryWarning(expiresAt, thresholdHours = 72) {
|
|
58
|
+
const hours = hoursUntilExpiry(expiresAt);
|
|
59
|
+
if (hours === null)
|
|
60
|
+
return false;
|
|
61
|
+
return hours > 0 && hours <= thresholdHours;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Format expiry for display
|
|
65
|
+
*/
|
|
66
|
+
function formatExpiry(expiresAt) {
|
|
67
|
+
const hours = hoursUntilExpiry(expiresAt);
|
|
68
|
+
if (hours === null)
|
|
69
|
+
return 'No expiry set';
|
|
70
|
+
if (hours === 0)
|
|
71
|
+
return 'Expired';
|
|
72
|
+
if (hours < 24)
|
|
73
|
+
return `${hours}h`;
|
|
74
|
+
const days = Math.floor(hours / 24);
|
|
75
|
+
const remainingHours = hours % 24;
|
|
76
|
+
if (days === 1)
|
|
77
|
+
return `1 day ${remainingHours}h`;
|
|
78
|
+
return `${days} days ${remainingHours}h`;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if cached entitlements should be reused
|
|
82
|
+
* Returns true if cache is valid and has > 5 minutes remaining
|
|
83
|
+
*/
|
|
84
|
+
function shouldUseCachedEntitlements(expiresAt) {
|
|
85
|
+
if (!expiresAt)
|
|
86
|
+
return false;
|
|
87
|
+
const expiry = new Date(expiresAt);
|
|
88
|
+
const now = new Date();
|
|
89
|
+
const fiveMinutesFromNow = new Date(now.getTime() + 5 * 60 * 1000);
|
|
90
|
+
return expiry > fiveMinutesFromNow;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get client metadata for API requests
|
|
94
|
+
*/
|
|
95
|
+
function getClientMetadata() {
|
|
96
|
+
let version = '1.0.0';
|
|
97
|
+
try {
|
|
98
|
+
const pkg = require('../../package.json');
|
|
99
|
+
version = pkg.version || '1.0.0';
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Use default version
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
version,
|
|
106
|
+
os: process.platform,
|
|
107
|
+
arch: process.arch,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Validate API key format
|
|
112
|
+
* Returns error message or null if valid
|
|
113
|
+
*/
|
|
114
|
+
function validateApiKeyFormat(apiKey) {
|
|
115
|
+
if (!apiKey) {
|
|
116
|
+
return 'API key is required';
|
|
117
|
+
}
|
|
118
|
+
if (!apiKey.startsWith('gr_')) {
|
|
119
|
+
return 'API key must start with "gr_"';
|
|
120
|
+
}
|
|
121
|
+
// Check format before length to give more specific error
|
|
122
|
+
if (!/^gr_[a-z]+_[a-zA-Z0-9]+$/.test(apiKey)) {
|
|
123
|
+
return 'API key format is invalid';
|
|
124
|
+
}
|
|
125
|
+
if (apiKey.length < 20) {
|
|
126
|
+
return 'API key is too short';
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=auth-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../src/runtime/auth-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared CLI error formatting utilities
|
|
3
|
+
* Provides user-friendly, actionable error messages with optional debug information
|
|
4
|
+
*/
|
|
5
|
+
export interface FormatCliErrorOptions {
|
|
6
|
+
debug?: boolean | string[] | Record<string, any>;
|
|
7
|
+
context?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FormattedError {
|
|
10
|
+
exitCode: number;
|
|
11
|
+
message: string;
|
|
12
|
+
type: string;
|
|
13
|
+
}
|
|
14
|
+
interface ErrorClassification {
|
|
15
|
+
type: string;
|
|
16
|
+
headline: string;
|
|
17
|
+
whatHappened: string;
|
|
18
|
+
why: string[];
|
|
19
|
+
whatToDo: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if debug mode is enabled from argv or environment
|
|
23
|
+
*/
|
|
24
|
+
export declare function isDebugEnabled(argv?: boolean | string[] | Record<string, any>): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Redact secrets from text to prevent leaking API keys, tokens, etc.
|
|
27
|
+
*/
|
|
28
|
+
export declare function redactSecrets(text: string | null | undefined): string;
|
|
29
|
+
/**
|
|
30
|
+
* Determine error type and extract context
|
|
31
|
+
*/
|
|
32
|
+
declare function classifyError(err: Error | unknown): ErrorClassification;
|
|
33
|
+
/**
|
|
34
|
+
* Format a CLI error with user-friendly structure
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatCliError(err: Error | unknown, options?: FormatCliErrorOptions): FormattedError;
|
|
37
|
+
export { classifyError };
|
|
38
|
+
//# sourceMappingURL=cli-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-errors.d.ts","sourceRoot":"","sources":["../../src/runtime/cli-errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqBH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAavF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAsDrE;AAUD;;GAEG;AACH,iBAAS,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,GAAG,mBAAmB,CAwLhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,EAAE,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAuGxG;AAGD,OAAO,EAAE,aAAa,EAAE,CAAC"}
|