@harness-engineering/cli 1.0.1 → 1.1.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/dist/agents/agents/personas/architecture-enforcer.yaml +27 -0
- package/dist/agents/agents/personas/documentation-maintainer.yaml +25 -0
- package/dist/agents/agents/personas/entropy-cleaner.yaml +21 -0
- package/dist/agents/agents/skills/.turbo/turbo-test.log +16 -0
- package/dist/agents/agents/skills/README.md +64 -0
- package/dist/agents/agents/skills/claude-code/add-harness-component/SKILL.md +182 -0
- package/dist/agents/agents/skills/claude-code/add-harness-component/skill.yaml +32 -0
- package/dist/agents/agents/skills/claude-code/align-documentation/SKILL.md +181 -0
- package/dist/agents/agents/skills/claude-code/align-documentation/skill.yaml +31 -0
- package/dist/agents/agents/skills/claude-code/check-mechanical-constraints/SKILL.md +191 -0
- package/dist/agents/agents/skills/claude-code/check-mechanical-constraints/skill.yaml +32 -0
- package/dist/agents/agents/skills/claude-code/cleanup-dead-code/SKILL.md +202 -0
- package/dist/agents/agents/skills/claude-code/cleanup-dead-code/skill.yaml +30 -0
- package/dist/agents/agents/skills/claude-code/detect-doc-drift/SKILL.md +159 -0
- package/dist/agents/agents/skills/claude-code/detect-doc-drift/skill.yaml +30 -0
- package/dist/agents/agents/skills/claude-code/enforce-architecture/SKILL.md +165 -0
- package/dist/agents/agents/skills/claude-code/enforce-architecture/skill.yaml +31 -0
- package/dist/agents/agents/skills/claude-code/harness-architecture-advisor/SKILL.md +388 -0
- package/dist/agents/agents/skills/claude-code/harness-architecture-advisor/skill.yaml +48 -0
- package/dist/agents/agents/skills/claude-code/harness-brainstorming/SKILL.md +247 -0
- package/dist/agents/agents/skills/claude-code/harness-brainstorming/skill.yaml +47 -0
- package/dist/agents/agents/skills/claude-code/harness-code-review/SKILL.md +403 -0
- package/dist/agents/agents/skills/claude-code/harness-code-review/skill.yaml +32 -0
- package/dist/agents/agents/skills/claude-code/harness-debugging/SKILL.md +356 -0
- package/dist/agents/agents/skills/claude-code/harness-debugging/skill.yaml +47 -0
- package/dist/agents/agents/skills/claude-code/harness-diagnostics/SKILL.md +318 -0
- package/dist/agents/agents/skills/claude-code/harness-diagnostics/skill.yaml +50 -0
- package/dist/agents/agents/skills/claude-code/harness-execution/SKILL.md +298 -0
- package/dist/agents/agents/skills/claude-code/harness-execution/skill.yaml +50 -0
- package/dist/agents/agents/skills/claude-code/harness-git-workflow/SKILL.md +268 -0
- package/dist/agents/agents/skills/claude-code/harness-git-workflow/skill.yaml +31 -0
- package/dist/agents/agents/skills/claude-code/harness-integrity/SKILL.md +119 -0
- package/dist/agents/agents/skills/claude-code/harness-integrity/skill.yaml +47 -0
- package/dist/agents/agents/skills/claude-code/harness-onboarding/SKILL.md +260 -0
- package/dist/agents/agents/skills/claude-code/harness-onboarding/skill.yaml +30 -0
- package/dist/agents/agents/skills/claude-code/harness-parallel-agents/SKILL.md +162 -0
- package/dist/agents/agents/skills/claude-code/harness-parallel-agents/skill.yaml +33 -0
- package/dist/agents/agents/skills/claude-code/harness-planning/SKILL.md +326 -0
- package/dist/agents/agents/skills/claude-code/harness-planning/skill.yaml +47 -0
- package/dist/agents/agents/skills/claude-code/harness-pre-commit-review/SKILL.md +231 -0
- package/dist/agents/agents/skills/claude-code/harness-pre-commit-review/skill.yaml +33 -0
- package/dist/agents/agents/skills/claude-code/harness-refactoring/SKILL.md +150 -0
- package/dist/agents/agents/skills/claude-code/harness-refactoring/skill.yaml +33 -0
- package/dist/agents/agents/skills/claude-code/harness-skill-authoring/SKILL.md +292 -0
- package/dist/agents/agents/skills/claude-code/harness-skill-authoring/skill.yaml +32 -0
- package/dist/agents/agents/skills/claude-code/harness-state-management/SKILL.md +295 -0
- package/dist/agents/agents/skills/claude-code/harness-state-management/skill.yaml +32 -0
- package/dist/agents/agents/skills/claude-code/harness-tdd/SKILL.md +167 -0
- package/dist/agents/agents/skills/claude-code/harness-tdd/skill.yaml +48 -0
- package/dist/agents/agents/skills/claude-code/harness-verification/SKILL.md +262 -0
- package/dist/agents/agents/skills/claude-code/harness-verification/skill.yaml +41 -0
- package/dist/agents/agents/skills/claude-code/harness-verify/SKILL.md +122 -0
- package/dist/agents/agents/skills/claude-code/harness-verify/skill.yaml +40 -0
- package/dist/agents/agents/skills/claude-code/initialize-harness-project/SKILL.md +200 -0
- package/dist/agents/agents/skills/claude-code/initialize-harness-project/skill.yaml +31 -0
- package/dist/agents/agents/skills/claude-code/validate-context-engineering/SKILL.md +129 -0
- package/dist/agents/agents/skills/claude-code/validate-context-engineering/skill.yaml +31 -0
- package/dist/agents/agents/skills/gemini-cli/add-harness-component/SKILL.md +182 -0
- package/dist/agents/agents/skills/gemini-cli/add-harness-component/skill.yaml +32 -0
- package/dist/agents/agents/skills/gemini-cli/align-documentation/SKILL.md +181 -0
- package/dist/agents/agents/skills/gemini-cli/align-documentation/skill.yaml +31 -0
- package/dist/agents/agents/skills/gemini-cli/check-mechanical-constraints/SKILL.md +191 -0
- package/dist/agents/agents/skills/gemini-cli/check-mechanical-constraints/skill.yaml +32 -0
- package/dist/agents/agents/skills/gemini-cli/cleanup-dead-code/SKILL.md +202 -0
- package/dist/agents/agents/skills/gemini-cli/cleanup-dead-code/skill.yaml +30 -0
- package/dist/agents/agents/skills/gemini-cli/detect-doc-drift/SKILL.md +159 -0
- package/dist/agents/agents/skills/gemini-cli/detect-doc-drift/skill.yaml +30 -0
- package/dist/agents/agents/skills/gemini-cli/enforce-architecture/SKILL.md +165 -0
- package/dist/agents/agents/skills/gemini-cli/enforce-architecture/skill.yaml +31 -0
- package/dist/agents/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +388 -0
- package/dist/agents/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +48 -0
- package/dist/agents/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +247 -0
- package/dist/agents/agents/skills/gemini-cli/harness-brainstorming/skill.yaml +47 -0
- package/dist/agents/agents/skills/gemini-cli/harness-code-review/SKILL.md +403 -0
- package/dist/agents/agents/skills/gemini-cli/harness-code-review/skill.yaml +32 -0
- package/dist/agents/agents/skills/gemini-cli/harness-debugging/SKILL.md +356 -0
- package/dist/agents/agents/skills/gemini-cli/harness-debugging/skill.yaml +47 -0
- package/dist/agents/agents/skills/gemini-cli/harness-diagnostics/SKILL.md +318 -0
- package/dist/agents/agents/skills/gemini-cli/harness-diagnostics/skill.yaml +50 -0
- package/dist/agents/agents/skills/gemini-cli/harness-execution/SKILL.md +298 -0
- package/dist/agents/agents/skills/gemini-cli/harness-execution/skill.yaml +50 -0
- package/dist/agents/agents/skills/gemini-cli/harness-git-workflow/SKILL.md +268 -0
- package/dist/agents/agents/skills/gemini-cli/harness-git-workflow/skill.yaml +31 -0
- package/dist/agents/agents/skills/gemini-cli/harness-integrity/SKILL.md +119 -0
- package/dist/agents/agents/skills/gemini-cli/harness-integrity/skill.yaml +47 -0
- package/dist/agents/agents/skills/gemini-cli/harness-onboarding/SKILL.md +260 -0
- package/dist/agents/agents/skills/gemini-cli/harness-onboarding/skill.yaml +30 -0
- package/dist/agents/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +162 -0
- package/dist/agents/agents/skills/gemini-cli/harness-parallel-agents/skill.yaml +33 -0
- package/dist/agents/agents/skills/gemini-cli/harness-planning/SKILL.md +326 -0
- package/dist/agents/agents/skills/gemini-cli/harness-planning/skill.yaml +47 -0
- package/dist/agents/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +231 -0
- package/dist/agents/agents/skills/gemini-cli/harness-pre-commit-review/skill.yaml +33 -0
- package/dist/agents/agents/skills/gemini-cli/harness-refactoring/SKILL.md +150 -0
- package/dist/agents/agents/skills/gemini-cli/harness-refactoring/skill.yaml +33 -0
- package/dist/agents/agents/skills/gemini-cli/harness-skill-authoring/SKILL.md +292 -0
- package/dist/agents/agents/skills/gemini-cli/harness-skill-authoring/skill.yaml +32 -0
- package/dist/agents/agents/skills/gemini-cli/harness-state-management/SKILL.md +295 -0
- package/dist/agents/agents/skills/gemini-cli/harness-state-management/skill.yaml +32 -0
- package/dist/agents/agents/skills/gemini-cli/harness-tdd/SKILL.md +167 -0
- package/dist/agents/agents/skills/gemini-cli/harness-tdd/skill.yaml +48 -0
- package/dist/agents/agents/skills/gemini-cli/harness-verification/SKILL.md +262 -0
- package/dist/agents/agents/skills/gemini-cli/harness-verification/skill.yaml +41 -0
- package/dist/agents/agents/skills/gemini-cli/harness-verify/SKILL.md +122 -0
- package/dist/agents/agents/skills/gemini-cli/harness-verify/skill.yaml +40 -0
- package/dist/agents/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +200 -0
- package/dist/agents/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +31 -0
- package/dist/agents/agents/skills/gemini-cli/validate-context-engineering/SKILL.md +129 -0
- package/dist/agents/agents/skills/gemini-cli/validate-context-engineering/skill.yaml +31 -0
- package/dist/agents/agents/skills/node_modules/.bin/glob +17 -0
- package/dist/agents/agents/skills/node_modules/.bin/vitest +17 -0
- package/dist/agents/agents/skills/node_modules/.bin/yaml +17 -0
- package/dist/agents/agents/skills/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/dist/agents/agents/skills/node_modules/glob/LICENSE +15 -0
- package/dist/agents/agents/skills/node_modules/glob/README.md +1265 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/glob.d.ts +388 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/glob.js +247 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/glob.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/has-magic.d.ts +14 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/has-magic.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/has-magic.js +27 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/has-magic.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/ignore.d.ts +24 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/ignore.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/ignore.js +119 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/ignore.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/index.d.ts +97 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/index.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/index.js +68 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/index.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/package.json +3 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/pattern.d.ts +76 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/pattern.js +219 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/pattern.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/processor.d.ts +59 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/processor.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/processor.js +301 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/processor.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/walker.d.ts +97 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/walker.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/walker.js +387 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/commonjs/walker.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/bin.d.mts +3 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/bin.d.mts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/bin.mjs +346 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/bin.mjs.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/glob.d.ts +388 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/glob.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/glob.js +243 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/glob.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/has-magic.d.ts +14 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/has-magic.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/has-magic.js +23 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/has-magic.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/ignore.d.ts +24 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/ignore.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/ignore.js +115 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/ignore.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/index.d.ts +97 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/index.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/index.js +55 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/index.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/package.json +3 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/pattern.d.ts +76 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/pattern.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/pattern.js +215 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/pattern.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/processor.d.ts +59 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/processor.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/processor.js +294 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/processor.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/walker.d.ts +97 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/walker.d.ts.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/walker.js +381 -0
- package/dist/agents/agents/skills/node_modules/glob/dist/esm/walker.js.map +1 -0
- package/dist/agents/agents/skills/node_modules/glob/node_modules/.bin/glob +17 -0
- package/dist/agents/agents/skills/node_modules/glob/package.json +99 -0
- package/dist/agents/agents/skills/node_modules/vitest/LICENSE.md +691 -0
- package/dist/agents/agents/skills/node_modules/vitest/README.md +7 -0
- package/dist/agents/agents/skills/node_modules/vitest/browser/context.d.ts +7 -0
- package/dist/agents/agents/skills/node_modules/vitest/browser/context.js +20 -0
- package/dist/agents/agents/skills/node_modules/vitest/config.d.ts +3 -0
- package/dist/agents/agents/skills/node_modules/vitest/coverage.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/browser.d.ts +46 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/browser.js +20 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +6 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/base.CJ0Y4ePK.js +165 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/benchmark.B3N2zMcH.js +40 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts +24 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/browser.d.ChKACdzH.d.ts +59 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/cac.DVeoLl0M.js +1409 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js +13657 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/config.d.Cy95HiCx.d.ts +210 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/console.Cf-YriPC.js +146 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/constants.D_Q9UYh-.js +36 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/coverage.AVPTjMgw.js +3292 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/coverage.D_JHT54q.js +25 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/coverage.d.BZtK59WP.d.ts +37 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/creator.DAmOKTvJ.js +673 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js +73 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/defaults.BOqNVLsY.js +74 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/env.D4Lgay0q.js +8 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts +29 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js +17 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts +7 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/git.Bm2pzPAa.js +71 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/global.d.B15mdLcR.d.ts +99 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/globals.DOayXfHP.js +30 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.6Qv1eEA6.js +109 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.C5r1PdPD.js +231 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.Chj8NDwU.js +206 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.CyBMJtT7.js +727 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.D3XRDfWc.js +213 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.D4KonVSU.js +6343 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.M8mOzt4Y.js +3839 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/index.Z5E_ObnR.js +37 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/init-forks._y3TW739.js +41 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/init-threads.DBO2kn-p.js +18 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/init.B6MLFIaN.js +334 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/inspector.CvyFGlXm.js +53 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/modules.BJuCwlRJ.js +36 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/node.Ce0vMQM7.js +14 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/plugin.d.CtqpEehP.d.ts +38 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/reporters.d.CWXNI2jG.d.ts +3271 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/rpc.BoxB0q7B.js +76 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/rpc.d.RH3apGEf.d.ts +64 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/setup-common.Cm-kSBVi.js +60 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/startModuleRunner.DEj0jb3e.js +861 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/suite.d.BJWk38HB.d.ts +10 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js +254 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js +217 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/traces.d.402V_yFI.d.ts +18 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/utils.DvEY5TfP.js +52 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/vi.2VT5v0um.js +3919 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/vm.D3epNOPZ.js +744 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/chunks/worker.d.Dyxm8DEL.d.ts +255 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/cli.js +28 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/config.cjs +94 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/config.d.ts +104 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/config.js +15 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/coverage.d.ts +118 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/coverage.js +23 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/environments.d.ts +22 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/environments.js +3 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/index.d.ts +510 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/index.js +20 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/mocker.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/mocker.js +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/module-evaluator.d.ts +124 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/module-evaluator.js +343 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/module-runner.js +17 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/node.d.ts +251 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/node.js +98 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/path.js +7 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/reporters.d.ts +27 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/reporters.js +24 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/runners.d.ts +50 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/runners.js +19 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/snapshot.d.ts +9 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/snapshot.js +4 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/spy.js +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/suite.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/suite.js +6 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/worker.d.ts +32 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/worker.js +48 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/workers/forks.js +54 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/workers/runVmTests.js +95 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/workers/threads.js +55 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/workers/vmForks.js +36 -0
- package/dist/agents/agents/skills/node_modules/vitest/dist/workers/vmThreads.js +37 -0
- package/dist/agents/agents/skills/node_modules/vitest/environments.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/globals.d.ts +20 -0
- package/dist/agents/agents/skills/node_modules/vitest/import-meta.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/vitest/importMeta.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/vitest/index.cjs +5 -0
- package/dist/agents/agents/skills/node_modules/vitest/index.d.cts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/jsdom.d.ts +6 -0
- package/dist/agents/agents/skills/node_modules/vitest/mocker.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/node.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/node_modules/.bin/vite +17 -0
- package/dist/agents/agents/skills/node_modules/vitest/node_modules/.bin/why-is-node-running +17 -0
- package/dist/agents/agents/skills/node_modules/vitest/optional-types.d.ts +7 -0
- package/dist/agents/agents/skills/node_modules/vitest/package.json +224 -0
- package/dist/agents/agents/skills/node_modules/vitest/reporters.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/runners.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/snapshot.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/suite.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/vitest/suppress-warnings.cjs +21 -0
- package/dist/agents/agents/skills/node_modules/vitest/vitest.mjs +2 -0
- package/dist/agents/agents/skills/node_modules/vitest/worker.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/yaml/LICENSE +13 -0
- package/dist/agents/agents/skills/node_modules/yaml/README.md +172 -0
- package/dist/agents/agents/skills/node_modules/yaml/bin.mjs +11 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/compose-node.js +102 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/composer.js +217 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +223 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/errors.js +57 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/index.js +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/log.js +11 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/Alias.js +114 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/parse/lexer.js +717 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/parse/parser.js +967 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +64 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/stringify.js +128 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +143 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +24 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/util.js +11 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/dist/visit.js +233 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/index.js +5 -0
- package/dist/agents/agents/skills/node_modules/yaml/browser/package.json +3 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/cli.d.ts +8 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/cli.mjs +201 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-node.js +105 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/composer.js +222 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-flow-scalar.js +225 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/Document.js +337 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/doc/directives.js +178 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/errors.d.ts +21 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/errors.js +62 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/index.d.ts +25 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/index.js +50 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/log.d.ts +3 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/log.js +19 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Alias.js +116 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Scalar.d.ts +43 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/options.d.ts +344 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/cst.js +112 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/lexer.js +719 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/parse/parser.js +972 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/public-api.js +107 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/tags.js +99 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/merge.js +68 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringify.js +131 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyCollection.js +145 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyNumber.js +26 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/test-events.js +134 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/util.d.ts +16 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/util.js +28 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/visit.d.ts +102 -0
- package/dist/agents/agents/skills/node_modules/yaml/dist/visit.js +236 -0
- package/dist/agents/agents/skills/node_modules/yaml/node_modules/.bin/yaml +17 -0
- package/dist/agents/agents/skills/node_modules/yaml/package.json +97 -0
- package/dist/agents/agents/skills/node_modules/yaml/util.js +2 -0
- package/{LICENSE → dist/agents/agents/skills/node_modules/zod/LICENSE} +1 -1
- package/dist/agents/agents/skills/node_modules/zod/README.md +208 -0
- package/dist/agents/agents/skills/node_modules/zod/index.cjs +33 -0
- package/dist/agents/agents/skills/node_modules/zod/index.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/index.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/index.js +4 -0
- package/dist/agents/agents/skills/node_modules/zod/package.json +118 -0
- package/dist/agents/agents/skills/node_modules/zod/src/index.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/errors.ts +13 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/external.ts +6 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/index.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/complex.test.ts +56 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/function.test.ts +257 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/nan.test.ts +21 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v3/types.ts +5136 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/checks.ts +30 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/compat.ts +66 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/errors.ts +75 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/external.ts +50 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/parse.ts +33 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/schemas.ts +2054 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/brand.test.ts +63 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/catch.test.ts +252 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/continuability.test.ts +352 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/date.test.ts +31 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/datetime.test.ts +296 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/default.test.ts +313 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +527 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/file.test.ts +91 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/function.test.ts +268 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/index.test.ts +829 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/intersection.test.ts +171 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/json.test.ts +108 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/literal.test.ts +92 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/map.test.ts +196 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/number.test.ts +247 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/object.test.ts +563 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/optional.test.ts +123 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/partial.test.ts +147 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/pipe.test.ts +81 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +298 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/record.test.ts +342 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +356 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/refine.test.ts +532 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/registries.test.ts +204 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/set.test.ts +179 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/string.test.ts +881 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +758 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/transform.test.ts +250 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/tuple.test.ts +163 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/union.test.ts +94 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/api.ts +1594 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/checks.ts +1283 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/config.ts +15 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/core.ts +134 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/errors.ts +424 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/function.ts +176 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/index.ts +15 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/json-schema.ts +143 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/parse.ts +94 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/regexes.ts +135 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/registries.ts +96 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/schemas.ts +3842 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/standard-schema.ts +64 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/to-json-schema.ts +977 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/util.ts +775 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/index.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ar.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/az.ts +121 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/be.ts +184 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ca.ts +127 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/cs.ts +142 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/de.ts +124 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/en.ts +127 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/eo.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/es.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/fa.ts +134 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/fi.ts +131 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/fr-CA.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/fr.ts +124 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/he.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/hu.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/id.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/index.ts +39 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/it.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ja.ts +122 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/kh.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ko.ts +131 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/mk.ts +127 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ms.ts +124 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/nl.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/no.ts +124 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ota.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/pl.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ps.ts +133 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/pt.ts +123 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ru.ts +184 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/sl.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/sv.ts +127 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ta.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/th.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/tr.ts +121 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ua.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/ur.ts +126 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/vi.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/zh-CN.ts +123 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/locales/zh-TW.ts +125 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/coerce.ts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/external.ts +40 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/iso.ts +62 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/parse.ts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/schemas.ts +1579 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/brand.test.ts +51 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/functions.test.ts +43 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/index.test.ts +871 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/object.test.ts +185 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4/mini/tests/string.test.ts +299 -0
- package/dist/agents/agents/skills/node_modules/zod/src/v4-mini/index.ts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/ZodError.cjs +138 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/ZodError.js +133 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/errors.cjs +17 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/errors.d.cts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/errors.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/errors.js +9 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/external.cjs +22 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/external.d.cts +6 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/external.d.ts +6 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/external.js +6 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/helpers/util.js +133 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/index.cjs +33 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/index.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/index.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/index.js +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/locales/en.cjs +111 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/locales/en.js +109 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/standard-schema.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/types.cjs +3775 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/types.d.cts +1031 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/types.d.ts +1031 -0
- package/dist/agents/agents/skills/node_modules/zod/v3/types.js +3693 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/checks.cjs +32 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/checks.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/coerce.js +17 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/compat.cjs +57 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/compat.d.cts +46 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/compat.d.ts +46 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/compat.js +27 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/errors.cjs +67 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/errors.js +41 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/external.cjs +70 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/external.d.cts +13 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/external.d.ts +13 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/external.js +18 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/index.cjs +33 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/index.js +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/iso.js +30 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/parse.cjs +32 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/parse.d.cts +23 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/parse.d.ts +23 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/parse.js +6 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/schemas.cjs +1109 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/schemas.d.cts +630 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/schemas.d.ts +630 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/classic/schemas.js +1006 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/api.cjs +1039 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/api.d.cts +284 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/api.d.ts +284 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/api.js +906 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/checks.cjs +591 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/checks.js +565 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/core.cjs +67 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/core.d.cts +49 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/core.d.ts +49 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/core.js +61 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/doc.cjs +39 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/doc.js +35 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/errors.cjs +226 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/errors.d.cts +208 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/errors.d.ts +208 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/errors.js +195 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/function.cjs +102 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/function.d.cts +52 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/function.d.ts +52 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/function.js +75 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/index.cjs +44 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/index.d.cts +15 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/index.d.ts +15 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/index.js +15 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/json-schema.d.cts +87 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/json-schema.d.ts +87 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/json-schema.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/parse.cjs +87 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/parse.d.cts +25 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/parse.d.ts +25 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/parse.js +57 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/regexes.cjs +103 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/regexes.d.cts +62 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/regexes.d.ts +62 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/regexes.js +95 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/registries.cjs +56 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/registries.js +51 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/schemas.cjs +1748 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/schemas.d.cts +1041 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/schemas.d.ts +1041 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/schemas.js +1717 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/to-json-schema.js +849 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/util.cjs +539 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/util.d.cts +183 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/util.d.ts +183 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/util.js +493 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/versions.cjs +8 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/core/versions.js +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/index.cjs +22 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/index.d.cts +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/index.d.ts +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/index.js +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ar.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ar.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ar.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/az.cjs +141 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/az.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/az.js +115 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/be.cjs +190 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/be.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/be.js +164 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ca.cjs +144 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ca.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ca.js +118 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/cs.cjs +161 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/cs.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/cs.js +135 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/de.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/de.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/de.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/en.cjs +145 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/en.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/en.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/eo.cjs +144 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/eo.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/eo.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/es.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/es.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/es.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fa.cjs +148 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fa.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fa.js +122 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fi.cjs +148 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fi.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fi.js +122 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr-CA.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/fr.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/he.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/he.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/he.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/hu.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/hu.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/hu.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/id.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/id.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/id.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/index.cjs +84 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/index.d.cts +39 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/index.d.ts +39 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/index.js +39 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/it.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/it.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/it.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ja.cjs +141 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ja.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ja.js +115 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/kh.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/kh.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/kh.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/kh.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ko.cjs +147 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ko.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ko.js +121 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/mk.cjs +144 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/mk.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/mk.js +118 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ms.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ms.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ms.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/nl.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/nl.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/nl.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/no.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/no.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/no.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ota.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ota.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ota.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pl.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pl.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pl.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ps.cjs +148 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ps.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ps.js +122 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pt.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pt.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/pt.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ru.cjs +190 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ru.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ru.js +164 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sl.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sl.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sl.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sv.cjs +144 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sv.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/sv.js +118 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ta.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ta.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ta.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/th.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/th.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/th.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/tr.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/tr.d.ts +5 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/tr.js +115 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ua.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ua.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ua.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ua.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ur.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ur.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/ur.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/vi.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/vi.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/vi.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-CN.js +116 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/locales/zh-TW.js +117 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/checks.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/coerce.cjs +47 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/coerce.js +17 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/external.cjs +62 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/external.d.cts +11 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/external.d.ts +11 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/external.js +13 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/index.cjs +32 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/index.js +3 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/iso.cjs +60 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/iso.js +30 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/parse.cjs +8 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/parse.js +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/schemas.cjs +839 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/schemas.d.cts +356 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/schemas.d.ts +356 -0
- package/dist/agents/agents/skills/node_modules/zod/v4/mini/schemas.js +732 -0
- package/dist/agents/agents/skills/node_modules/zod/v4-mini/index.cjs +17 -0
- package/dist/agents/agents/skills/node_modules/zod/v4-mini/index.d.cts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4-mini/index.d.ts +1 -0
- package/dist/agents/agents/skills/node_modules/zod/v4-mini/index.js +1 -0
- package/dist/agents/agents/skills/package.json +17 -0
- package/dist/agents/agents/skills/tests/references.test.ts +85 -0
- package/dist/agents/agents/skills/tests/schema.test.ts +95 -0
- package/dist/agents/agents/skills/tests/schema.ts +66 -0
- package/dist/agents/agents/skills/tests/structure.test.ts +82 -0
- package/dist/agents/agents/skills/tsconfig.json +12 -0
- package/dist/agents/agents/skills/vitest.config.mts +9 -0
- package/dist/agents/personas/architecture-enforcer.yaml +27 -0
- package/dist/agents/personas/documentation-maintainer.yaml +25 -0
- package/dist/agents/personas/entropy-cleaner.yaml +21 -0
- package/dist/agents/skills/.turbo/turbo-test.log +16 -0
- package/dist/agents/skills/README.md +64 -0
- package/dist/agents/skills/claude-code/add-harness-component/SKILL.md +182 -0
- package/dist/agents/skills/claude-code/add-harness-component/skill.yaml +32 -0
- package/dist/agents/skills/claude-code/align-documentation/SKILL.md +181 -0
- package/dist/agents/skills/claude-code/align-documentation/skill.yaml +31 -0
- package/dist/agents/skills/claude-code/check-mechanical-constraints/SKILL.md +191 -0
- package/dist/agents/skills/claude-code/check-mechanical-constraints/skill.yaml +32 -0
- package/dist/agents/skills/claude-code/cleanup-dead-code/SKILL.md +202 -0
- package/dist/agents/skills/claude-code/cleanup-dead-code/skill.yaml +30 -0
- package/dist/agents/skills/claude-code/detect-doc-drift/SKILL.md +159 -0
- package/dist/agents/skills/claude-code/detect-doc-drift/skill.yaml +30 -0
- package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +165 -0
- package/dist/agents/skills/claude-code/enforce-architecture/skill.yaml +31 -0
- package/dist/agents/skills/claude-code/harness-architecture-advisor/SKILL.md +388 -0
- package/dist/agents/skills/claude-code/harness-architecture-advisor/skill.yaml +48 -0
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +247 -0
- package/dist/agents/skills/claude-code/harness-brainstorming/skill.yaml +47 -0
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +403 -0
- package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +32 -0
- package/dist/agents/skills/claude-code/harness-debugging/SKILL.md +356 -0
- package/dist/agents/skills/claude-code/harness-debugging/skill.yaml +47 -0
- package/dist/agents/skills/claude-code/harness-diagnostics/SKILL.md +318 -0
- package/dist/agents/skills/claude-code/harness-diagnostics/skill.yaml +50 -0
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +298 -0
- package/dist/agents/skills/claude-code/harness-execution/skill.yaml +50 -0
- package/dist/agents/skills/claude-code/harness-git-workflow/SKILL.md +268 -0
- package/dist/agents/skills/claude-code/harness-git-workflow/skill.yaml +31 -0
- package/dist/agents/skills/claude-code/harness-integrity/SKILL.md +119 -0
- package/dist/agents/skills/claude-code/harness-integrity/skill.yaml +47 -0
- package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +260 -0
- package/dist/agents/skills/claude-code/harness-onboarding/skill.yaml +30 -0
- package/dist/agents/skills/claude-code/harness-parallel-agents/SKILL.md +162 -0
- package/dist/agents/skills/claude-code/harness-parallel-agents/skill.yaml +33 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +326 -0
- package/dist/agents/skills/claude-code/harness-planning/skill.yaml +47 -0
- package/dist/agents/skills/claude-code/harness-pre-commit-review/SKILL.md +231 -0
- package/dist/agents/skills/claude-code/harness-pre-commit-review/skill.yaml +33 -0
- package/dist/agents/skills/claude-code/harness-refactoring/SKILL.md +150 -0
- package/dist/agents/skills/claude-code/harness-refactoring/skill.yaml +33 -0
- package/dist/agents/skills/claude-code/harness-skill-authoring/SKILL.md +292 -0
- package/dist/agents/skills/claude-code/harness-skill-authoring/skill.yaml +32 -0
- package/dist/agents/skills/claude-code/harness-state-management/SKILL.md +295 -0
- package/dist/agents/skills/claude-code/harness-state-management/skill.yaml +32 -0
- package/dist/agents/skills/claude-code/harness-tdd/SKILL.md +167 -0
- package/dist/agents/skills/claude-code/harness-tdd/skill.yaml +48 -0
- package/dist/agents/skills/claude-code/harness-verification/SKILL.md +262 -0
- package/dist/agents/skills/claude-code/harness-verification/skill.yaml +41 -0
- package/dist/agents/skills/claude-code/harness-verify/SKILL.md +122 -0
- package/dist/agents/skills/claude-code/harness-verify/skill.yaml +40 -0
- package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +200 -0
- package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +31 -0
- package/dist/agents/skills/claude-code/validate-context-engineering/SKILL.md +129 -0
- package/dist/agents/skills/claude-code/validate-context-engineering/skill.yaml +31 -0
- package/dist/agents/skills/gemini-cli/add-harness-component/SKILL.md +182 -0
- package/dist/agents/skills/gemini-cli/add-harness-component/skill.yaml +32 -0
- package/dist/agents/skills/gemini-cli/align-documentation/SKILL.md +181 -0
- package/dist/agents/skills/gemini-cli/align-documentation/skill.yaml +31 -0
- package/dist/agents/skills/gemini-cli/check-mechanical-constraints/SKILL.md +191 -0
- package/dist/agents/skills/gemini-cli/check-mechanical-constraints/skill.yaml +32 -0
- package/dist/agents/skills/gemini-cli/cleanup-dead-code/SKILL.md +202 -0
- package/dist/agents/skills/gemini-cli/cleanup-dead-code/skill.yaml +30 -0
- package/dist/agents/skills/gemini-cli/detect-doc-drift/SKILL.md +159 -0
- package/dist/agents/skills/gemini-cli/detect-doc-drift/skill.yaml +30 -0
- package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +165 -0
- package/dist/agents/skills/gemini-cli/enforce-architecture/skill.yaml +31 -0
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +388 -0
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +48 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +247 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/skill.yaml +47 -0
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +403 -0
- package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +32 -0
- package/dist/agents/skills/gemini-cli/harness-debugging/SKILL.md +356 -0
- package/dist/agents/skills/gemini-cli/harness-debugging/skill.yaml +47 -0
- package/dist/agents/skills/gemini-cli/harness-diagnostics/SKILL.md +318 -0
- package/dist/agents/skills/gemini-cli/harness-diagnostics/skill.yaml +50 -0
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +298 -0
- package/dist/agents/skills/gemini-cli/harness-execution/skill.yaml +50 -0
- package/dist/agents/skills/gemini-cli/harness-git-workflow/SKILL.md +268 -0
- package/dist/agents/skills/gemini-cli/harness-git-workflow/skill.yaml +31 -0
- package/dist/agents/skills/gemini-cli/harness-integrity/SKILL.md +119 -0
- package/dist/agents/skills/gemini-cli/harness-integrity/skill.yaml +47 -0
- package/dist/agents/skills/gemini-cli/harness-onboarding/SKILL.md +260 -0
- package/dist/agents/skills/gemini-cli/harness-onboarding/skill.yaml +30 -0
- package/dist/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +162 -0
- package/dist/agents/skills/gemini-cli/harness-parallel-agents/skill.yaml +33 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +326 -0
- package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +47 -0
- package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +231 -0
- package/dist/agents/skills/gemini-cli/harness-pre-commit-review/skill.yaml +33 -0
- package/dist/agents/skills/gemini-cli/harness-refactoring/SKILL.md +150 -0
- package/dist/agents/skills/gemini-cli/harness-refactoring/skill.yaml +33 -0
- package/dist/agents/skills/gemini-cli/harness-skill-authoring/SKILL.md +292 -0
- package/dist/agents/skills/gemini-cli/harness-skill-authoring/skill.yaml +32 -0
- package/dist/agents/skills/gemini-cli/harness-state-management/SKILL.md +295 -0
- package/dist/agents/skills/gemini-cli/harness-state-management/skill.yaml +32 -0
- package/dist/agents/skills/gemini-cli/harness-tdd/SKILL.md +167 -0
- package/dist/agents/skills/gemini-cli/harness-tdd/skill.yaml +48 -0
- package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +262 -0
- package/dist/agents/skills/gemini-cli/harness-verification/skill.yaml +41 -0
- package/dist/agents/skills/gemini-cli/harness-verify/SKILL.md +122 -0
- package/dist/agents/skills/gemini-cli/harness-verify/skill.yaml +40 -0
- package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +200 -0
- package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +31 -0
- package/dist/agents/skills/gemini-cli/validate-context-engineering/SKILL.md +129 -0
- package/dist/agents/skills/gemini-cli/validate-context-engineering/skill.yaml +31 -0
- package/dist/agents/skills/node_modules/.bin/glob +17 -0
- package/dist/agents/skills/node_modules/.bin/vitest +17 -0
- package/dist/agents/skills/node_modules/.bin/yaml +17 -0
- package/dist/agents/skills/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/dist/agents/skills/node_modules/glob/LICENSE +15 -0
- package/dist/agents/skills/node_modules/glob/README.md +1265 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/glob.d.ts +388 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/glob.js +247 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/glob.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/has-magic.d.ts +14 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/has-magic.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/has-magic.js +27 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/has-magic.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/ignore.d.ts +24 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/ignore.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/ignore.js +119 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/ignore.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/index.d.ts +97 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/index.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/index.js +68 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/index.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/package.json +3 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/pattern.d.ts +76 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/pattern.js +219 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/pattern.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/processor.d.ts +59 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/processor.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/processor.js +301 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/processor.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/walker.d.ts +97 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/walker.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/walker.js +387 -0
- package/dist/agents/skills/node_modules/glob/dist/commonjs/walker.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/bin.d.mts +3 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/bin.d.mts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/bin.mjs +346 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/bin.mjs.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/glob.d.ts +388 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/glob.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/glob.js +243 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/glob.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/has-magic.d.ts +14 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/has-magic.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/has-magic.js +23 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/has-magic.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/ignore.d.ts +24 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/ignore.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/ignore.js +115 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/ignore.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/index.d.ts +97 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/index.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/index.js +55 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/index.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/package.json +3 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/pattern.d.ts +76 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/pattern.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/pattern.js +215 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/pattern.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/processor.d.ts +59 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/processor.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/processor.js +294 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/processor.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/walker.d.ts +97 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/walker.d.ts.map +1 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/walker.js +381 -0
- package/dist/agents/skills/node_modules/glob/dist/esm/walker.js.map +1 -0
- package/dist/agents/skills/node_modules/glob/node_modules/.bin/glob +17 -0
- package/dist/agents/skills/node_modules/glob/package.json +99 -0
- package/dist/agents/skills/node_modules/vitest/LICENSE.md +691 -0
- package/dist/agents/skills/node_modules/vitest/README.md +7 -0
- package/dist/agents/skills/node_modules/vitest/browser/context.d.ts +7 -0
- package/dist/agents/skills/node_modules/vitest/browser/context.js +20 -0
- package/dist/agents/skills/node_modules/vitest/config.d.ts +3 -0
- package/dist/agents/skills/node_modules/vitest/coverage.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/dist/browser.d.ts +46 -0
- package/dist/agents/skills/node_modules/vitest/dist/browser.js +20 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +6 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/base.CJ0Y4ePK.js +165 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/benchmark.B3N2zMcH.js +40 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts +24 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/browser.d.ChKACdzH.d.ts +59 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/cac.DVeoLl0M.js +1409 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js +13657 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/config.d.Cy95HiCx.d.ts +210 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/console.Cf-YriPC.js +146 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/constants.D_Q9UYh-.js +36 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/coverage.AVPTjMgw.js +3292 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/coverage.D_JHT54q.js +25 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/coverage.d.BZtK59WP.d.ts +37 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/creator.DAmOKTvJ.js +673 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js +73 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/defaults.BOqNVLsY.js +74 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/env.D4Lgay0q.js +8 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts +29 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js +17 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts +7 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/git.Bm2pzPAa.js +71 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/global.d.B15mdLcR.d.ts +99 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/globals.DOayXfHP.js +30 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.6Qv1eEA6.js +109 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.C5r1PdPD.js +231 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.Chj8NDwU.js +206 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.CyBMJtT7.js +727 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.D3XRDfWc.js +213 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.D4KonVSU.js +6343 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.M8mOzt4Y.js +3839 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/index.Z5E_ObnR.js +37 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/init-forks._y3TW739.js +41 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/init-threads.DBO2kn-p.js +18 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/init.B6MLFIaN.js +334 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/inspector.CvyFGlXm.js +53 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/modules.BJuCwlRJ.js +36 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/node.Ce0vMQM7.js +14 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/plugin.d.CtqpEehP.d.ts +38 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/reporters.d.CWXNI2jG.d.ts +3271 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/rpc.BoxB0q7B.js +76 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/rpc.d.RH3apGEf.d.ts +64 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/setup-common.Cm-kSBVi.js +60 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/startModuleRunner.DEj0jb3e.js +861 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/suite.d.BJWk38HB.d.ts +10 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js +254 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js +217 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/traces.d.402V_yFI.d.ts +18 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/utils.DvEY5TfP.js +52 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/vi.2VT5v0um.js +3919 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/vm.D3epNOPZ.js +744 -0
- package/dist/agents/skills/node_modules/vitest/dist/chunks/worker.d.Dyxm8DEL.d.ts +255 -0
- package/dist/agents/skills/node_modules/vitest/dist/cli.js +28 -0
- package/dist/agents/skills/node_modules/vitest/dist/config.cjs +94 -0
- package/dist/agents/skills/node_modules/vitest/dist/config.d.ts +104 -0
- package/dist/agents/skills/node_modules/vitest/dist/config.js +15 -0
- package/dist/agents/skills/node_modules/vitest/dist/coverage.d.ts +118 -0
- package/dist/agents/skills/node_modules/vitest/dist/coverage.js +23 -0
- package/dist/agents/skills/node_modules/vitest/dist/environments.d.ts +22 -0
- package/dist/agents/skills/node_modules/vitest/dist/environments.js +3 -0
- package/dist/agents/skills/node_modules/vitest/dist/index.d.ts +510 -0
- package/dist/agents/skills/node_modules/vitest/dist/index.js +20 -0
- package/dist/agents/skills/node_modules/vitest/dist/mocker.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/dist/mocker.js +1 -0
- package/dist/agents/skills/node_modules/vitest/dist/module-evaluator.d.ts +124 -0
- package/dist/agents/skills/node_modules/vitest/dist/module-evaluator.js +343 -0
- package/dist/agents/skills/node_modules/vitest/dist/module-runner.js +17 -0
- package/dist/agents/skills/node_modules/vitest/dist/node.d.ts +251 -0
- package/dist/agents/skills/node_modules/vitest/dist/node.js +98 -0
- package/dist/agents/skills/node_modules/vitest/dist/path.js +7 -0
- package/dist/agents/skills/node_modules/vitest/dist/reporters.d.ts +27 -0
- package/dist/agents/skills/node_modules/vitest/dist/reporters.js +24 -0
- package/dist/agents/skills/node_modules/vitest/dist/runners.d.ts +50 -0
- package/dist/agents/skills/node_modules/vitest/dist/runners.js +19 -0
- package/dist/agents/skills/node_modules/vitest/dist/snapshot.d.ts +9 -0
- package/dist/agents/skills/node_modules/vitest/dist/snapshot.js +4 -0
- package/dist/agents/skills/node_modules/vitest/dist/spy.js +1 -0
- package/dist/agents/skills/node_modules/vitest/dist/suite.d.ts +5 -0
- package/dist/agents/skills/node_modules/vitest/dist/suite.js +6 -0
- package/dist/agents/skills/node_modules/vitest/dist/worker.d.ts +32 -0
- package/dist/agents/skills/node_modules/vitest/dist/worker.js +48 -0
- package/dist/agents/skills/node_modules/vitest/dist/workers/forks.js +54 -0
- package/dist/agents/skills/node_modules/vitest/dist/workers/runVmTests.js +95 -0
- package/dist/agents/skills/node_modules/vitest/dist/workers/threads.js +55 -0
- package/dist/agents/skills/node_modules/vitest/dist/workers/vmForks.js +36 -0
- package/dist/agents/skills/node_modules/vitest/dist/workers/vmThreads.js +37 -0
- package/dist/agents/skills/node_modules/vitest/environments.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/globals.d.ts +20 -0
- package/dist/agents/skills/node_modules/vitest/import-meta.d.ts +5 -0
- package/dist/agents/skills/node_modules/vitest/importMeta.d.ts +4 -0
- package/dist/agents/skills/node_modules/vitest/index.cjs +5 -0
- package/dist/agents/skills/node_modules/vitest/index.d.cts +1 -0
- package/dist/agents/skills/node_modules/vitest/jsdom.d.ts +6 -0
- package/dist/agents/skills/node_modules/vitest/mocker.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/node.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/node_modules/.bin/vite +17 -0
- package/dist/agents/skills/node_modules/vitest/node_modules/.bin/why-is-node-running +17 -0
- package/dist/agents/skills/node_modules/vitest/optional-types.d.ts +7 -0
- package/dist/agents/skills/node_modules/vitest/package.json +224 -0
- package/dist/agents/skills/node_modules/vitest/reporters.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/runners.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/snapshot.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/suite.d.ts +1 -0
- package/dist/agents/skills/node_modules/vitest/suppress-warnings.cjs +21 -0
- package/dist/agents/skills/node_modules/vitest/vitest.mjs +2 -0
- package/dist/agents/skills/node_modules/vitest/worker.d.ts +1 -0
- package/dist/agents/skills/node_modules/yaml/LICENSE +13 -0
- package/dist/agents/skills/node_modules/yaml/README.md +172 -0
- package/dist/agents/skills/node_modules/yaml/bin.mjs +11 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/compose-node.js +102 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/composer.js +217 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +223 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/errors.js +57 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/index.js +17 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/log.js +11 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/Alias.js +114 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/parse/lexer.js +717 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/parse/parser.js +967 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +64 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/stringify.js +128 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +143 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +24 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/util.js +11 -0
- package/dist/agents/skills/node_modules/yaml/browser/dist/visit.js +233 -0
- package/dist/agents/skills/node_modules/yaml/browser/index.js +5 -0
- package/dist/agents/skills/node_modules/yaml/browser/package.json +3 -0
- package/dist/agents/skills/node_modules/yaml/dist/cli.d.ts +8 -0
- package/dist/agents/skills/node_modules/yaml/dist/cli.mjs +201 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-node.js +105 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/composer.js +222 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-flow-scalar.js +225 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/Document.js +337 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/dist/agents/skills/node_modules/yaml/dist/doc/directives.js +178 -0
- package/dist/agents/skills/node_modules/yaml/dist/errors.d.ts +21 -0
- package/dist/agents/skills/node_modules/yaml/dist/errors.js +62 -0
- package/dist/agents/skills/node_modules/yaml/dist/index.d.ts +25 -0
- package/dist/agents/skills/node_modules/yaml/dist/index.js +50 -0
- package/dist/agents/skills/node_modules/yaml/dist/log.d.ts +3 -0
- package/dist/agents/skills/node_modules/yaml/dist/log.js +19 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Alias.js +116 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Scalar.d.ts +43 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/dist/agents/skills/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/dist/agents/skills/node_modules/yaml/dist/options.d.ts +344 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/cst.js +112 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/lexer.js +719 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/dist/agents/skills/node_modules/yaml/dist/parse/parser.js +972 -0
- package/dist/agents/skills/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/dist/agents/skills/node_modules/yaml/dist/public-api.js +107 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/tags.js +99 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/merge.js +68 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/dist/agents/skills/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringify.js +131 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyCollection.js +145 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyNumber.js +26 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/dist/agents/skills/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/dist/agents/skills/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/dist/agents/skills/node_modules/yaml/dist/test-events.js +134 -0
- package/dist/agents/skills/node_modules/yaml/dist/util.d.ts +16 -0
- package/dist/agents/skills/node_modules/yaml/dist/util.js +28 -0
- package/dist/agents/skills/node_modules/yaml/dist/visit.d.ts +102 -0
- package/dist/agents/skills/node_modules/yaml/dist/visit.js +236 -0
- package/dist/agents/skills/node_modules/yaml/node_modules/.bin/yaml +17 -0
- package/dist/agents/skills/node_modules/yaml/package.json +97 -0
- package/dist/agents/skills/node_modules/yaml/util.js +2 -0
- package/dist/agents/skills/node_modules/zod/LICENSE +21 -0
- package/dist/agents/skills/node_modules/zod/README.md +208 -0
- package/dist/agents/skills/node_modules/zod/index.cjs +33 -0
- package/dist/agents/skills/node_modules/zod/index.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/index.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/index.js +4 -0
- package/dist/agents/skills/node_modules/zod/package.json +118 -0
- package/dist/agents/skills/node_modules/zod/src/index.ts +4 -0
- package/dist/agents/skills/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/dist/agents/skills/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/dist/agents/skills/node_modules/zod/src/v3/errors.ts +13 -0
- package/dist/agents/skills/node_modules/zod/src/v3/external.ts +6 -0
- package/dist/agents/skills/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/dist/agents/skills/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/dist/agents/skills/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/dist/agents/skills/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/dist/agents/skills/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/dist/agents/skills/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/dist/agents/skills/node_modules/zod/src/v3/index.ts +4 -0
- package/dist/agents/skills/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/dist/agents/skills/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/complex.test.ts +56 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/function.test.ts +257 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/nan.test.ts +21 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/dist/agents/skills/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/dist/agents/skills/node_modules/zod/src/v3/types.ts +5136 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/checks.ts +30 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/compat.ts +66 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/errors.ts +75 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/external.ts +50 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/parse.ts +33 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/schemas.ts +2054 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/brand.test.ts +63 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/catch.test.ts +252 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/continuability.test.ts +352 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/date.test.ts +31 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/datetime.test.ts +296 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/default.test.ts +313 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +527 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/file.test.ts +91 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/function.test.ts +268 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/index.test.ts +829 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/intersection.test.ts +171 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/json.test.ts +108 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/literal.test.ts +92 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/map.test.ts +196 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/number.test.ts +247 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/object.test.ts +563 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/optional.test.ts +123 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/partial.test.ts +147 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/pipe.test.ts +81 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +298 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/record.test.ts +342 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +356 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/refine.test.ts +532 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/registries.test.ts +204 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/set.test.ts +179 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/string.test.ts +881 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +758 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/transform.test.ts +250 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/tuple.test.ts +163 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/union.test.ts +94 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/dist/agents/skills/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/api.ts +1594 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/checks.ts +1283 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/config.ts +15 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/core.ts +134 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/errors.ts +424 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/function.ts +176 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/index.ts +15 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/json-schema.ts +143 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/parse.ts +94 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/regexes.ts +135 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/registries.ts +96 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/schemas.ts +3842 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/standard-schema.ts +64 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/to-json-schema.ts +977 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/util.ts +775 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/dist/agents/skills/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/dist/agents/skills/node_modules/zod/src/v4/index.ts +4 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ar.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/az.ts +121 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/be.ts +184 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ca.ts +127 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/cs.ts +142 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/de.ts +124 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/en.ts +127 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/eo.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/es.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/fa.ts +134 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/fi.ts +131 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/fr-CA.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/fr.ts +124 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/he.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/hu.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/id.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/index.ts +39 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/it.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ja.ts +122 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/kh.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ko.ts +131 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/mk.ts +127 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ms.ts +124 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/nl.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/no.ts +124 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ota.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/pl.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ps.ts +133 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/pt.ts +123 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ru.ts +184 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/sl.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/sv.ts +127 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ta.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/th.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/tr.ts +121 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ua.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/ur.ts +126 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/vi.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/zh-CN.ts +123 -0
- package/dist/agents/skills/node_modules/zod/src/v4/locales/zh-TW.ts +125 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/coerce.ts +22 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/external.ts +40 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/iso.ts +62 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/parse.ts +1 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/schemas.ts +1579 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/brand.test.ts +51 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/functions.test.ts +43 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/index.test.ts +871 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/object.test.ts +185 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/dist/agents/skills/node_modules/zod/src/v4/mini/tests/string.test.ts +299 -0
- package/dist/agents/skills/node_modules/zod/src/v4-mini/index.ts +1 -0
- package/dist/agents/skills/node_modules/zod/v3/ZodError.cjs +138 -0
- package/dist/agents/skills/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/dist/agents/skills/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/dist/agents/skills/node_modules/zod/v3/ZodError.js +133 -0
- package/dist/agents/skills/node_modules/zod/v3/errors.cjs +17 -0
- package/dist/agents/skills/node_modules/zod/v3/errors.d.cts +5 -0
- package/dist/agents/skills/node_modules/zod/v3/errors.d.ts +5 -0
- package/dist/agents/skills/node_modules/zod/v3/errors.js +9 -0
- package/dist/agents/skills/node_modules/zod/v3/external.cjs +22 -0
- package/dist/agents/skills/node_modules/zod/v3/external.d.cts +6 -0
- package/dist/agents/skills/node_modules/zod/v3/external.d.ts +6 -0
- package/dist/agents/skills/node_modules/zod/v3/external.js +6 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/dist/agents/skills/node_modules/zod/v3/helpers/util.js +133 -0
- package/dist/agents/skills/node_modules/zod/v3/index.cjs +33 -0
- package/dist/agents/skills/node_modules/zod/v3/index.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v3/index.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v3/index.js +4 -0
- package/dist/agents/skills/node_modules/zod/v3/locales/en.cjs +111 -0
- package/dist/agents/skills/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/dist/agents/skills/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/dist/agents/skills/node_modules/zod/v3/locales/en.js +109 -0
- package/dist/agents/skills/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/dist/agents/skills/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/dist/agents/skills/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/dist/agents/skills/node_modules/zod/v3/standard-schema.js +1 -0
- package/dist/agents/skills/node_modules/zod/v3/types.cjs +3775 -0
- package/dist/agents/skills/node_modules/zod/v3/types.d.cts +1031 -0
- package/dist/agents/skills/node_modules/zod/v3/types.d.ts +1031 -0
- package/dist/agents/skills/node_modules/zod/v3/types.js +3693 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/checks.cjs +32 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/checks.js +1 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/coerce.js +17 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/compat.cjs +57 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/compat.d.cts +46 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/compat.d.ts +46 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/compat.js +27 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/errors.cjs +67 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/errors.js +41 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/external.cjs +70 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/external.d.cts +13 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/external.d.ts +13 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/external.js +18 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/index.cjs +33 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/index.js +4 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/iso.js +30 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/parse.cjs +32 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/parse.d.cts +23 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/parse.d.ts +23 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/parse.js +6 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/schemas.cjs +1109 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/schemas.d.cts +630 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/schemas.d.ts +630 -0
- package/dist/agents/skills/node_modules/zod/v4/classic/schemas.js +1006 -0
- package/dist/agents/skills/node_modules/zod/v4/core/api.cjs +1039 -0
- package/dist/agents/skills/node_modules/zod/v4/core/api.d.cts +284 -0
- package/dist/agents/skills/node_modules/zod/v4/core/api.d.ts +284 -0
- package/dist/agents/skills/node_modules/zod/v4/core/api.js +906 -0
- package/dist/agents/skills/node_modules/zod/v4/core/checks.cjs +591 -0
- package/dist/agents/skills/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/dist/agents/skills/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/dist/agents/skills/node_modules/zod/v4/core/checks.js +565 -0
- package/dist/agents/skills/node_modules/zod/v4/core/core.cjs +67 -0
- package/dist/agents/skills/node_modules/zod/v4/core/core.d.cts +49 -0
- package/dist/agents/skills/node_modules/zod/v4/core/core.d.ts +49 -0
- package/dist/agents/skills/node_modules/zod/v4/core/core.js +61 -0
- package/dist/agents/skills/node_modules/zod/v4/core/doc.cjs +39 -0
- package/dist/agents/skills/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/dist/agents/skills/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/dist/agents/skills/node_modules/zod/v4/core/doc.js +35 -0
- package/dist/agents/skills/node_modules/zod/v4/core/errors.cjs +226 -0
- package/dist/agents/skills/node_modules/zod/v4/core/errors.d.cts +208 -0
- package/dist/agents/skills/node_modules/zod/v4/core/errors.d.ts +208 -0
- package/dist/agents/skills/node_modules/zod/v4/core/errors.js +195 -0
- package/dist/agents/skills/node_modules/zod/v4/core/function.cjs +102 -0
- package/dist/agents/skills/node_modules/zod/v4/core/function.d.cts +52 -0
- package/dist/agents/skills/node_modules/zod/v4/core/function.d.ts +52 -0
- package/dist/agents/skills/node_modules/zod/v4/core/function.js +75 -0
- package/dist/agents/skills/node_modules/zod/v4/core/index.cjs +44 -0
- package/dist/agents/skills/node_modules/zod/v4/core/index.d.cts +15 -0
- package/dist/agents/skills/node_modules/zod/v4/core/index.d.ts +15 -0
- package/dist/agents/skills/node_modules/zod/v4/core/index.js +15 -0
- package/dist/agents/skills/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/dist/agents/skills/node_modules/zod/v4/core/json-schema.d.cts +87 -0
- package/dist/agents/skills/node_modules/zod/v4/core/json-schema.d.ts +87 -0
- package/dist/agents/skills/node_modules/zod/v4/core/json-schema.js +1 -0
- package/dist/agents/skills/node_modules/zod/v4/core/parse.cjs +87 -0
- package/dist/agents/skills/node_modules/zod/v4/core/parse.d.cts +25 -0
- package/dist/agents/skills/node_modules/zod/v4/core/parse.d.ts +25 -0
- package/dist/agents/skills/node_modules/zod/v4/core/parse.js +57 -0
- package/dist/agents/skills/node_modules/zod/v4/core/regexes.cjs +103 -0
- package/dist/agents/skills/node_modules/zod/v4/core/regexes.d.cts +62 -0
- package/dist/agents/skills/node_modules/zod/v4/core/regexes.d.ts +62 -0
- package/dist/agents/skills/node_modules/zod/v4/core/regexes.js +95 -0
- package/dist/agents/skills/node_modules/zod/v4/core/registries.cjs +56 -0
- package/dist/agents/skills/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/dist/agents/skills/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/dist/agents/skills/node_modules/zod/v4/core/registries.js +51 -0
- package/dist/agents/skills/node_modules/zod/v4/core/schemas.cjs +1748 -0
- package/dist/agents/skills/node_modules/zod/v4/core/schemas.d.cts +1041 -0
- package/dist/agents/skills/node_modules/zod/v4/core/schemas.d.ts +1041 -0
- package/dist/agents/skills/node_modules/zod/v4/core/schemas.js +1717 -0
- package/dist/agents/skills/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/dist/agents/skills/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
- package/dist/agents/skills/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
- package/dist/agents/skills/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/dist/agents/skills/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
- package/dist/agents/skills/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
- package/dist/agents/skills/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
- package/dist/agents/skills/node_modules/zod/v4/core/to-json-schema.js +849 -0
- package/dist/agents/skills/node_modules/zod/v4/core/util.cjs +539 -0
- package/dist/agents/skills/node_modules/zod/v4/core/util.d.cts +183 -0
- package/dist/agents/skills/node_modules/zod/v4/core/util.d.ts +183 -0
- package/dist/agents/skills/node_modules/zod/v4/core/util.js +493 -0
- package/dist/agents/skills/node_modules/zod/v4/core/versions.cjs +8 -0
- package/dist/agents/skills/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/core/versions.js +5 -0
- package/dist/agents/skills/node_modules/zod/v4/index.cjs +22 -0
- package/dist/agents/skills/node_modules/zod/v4/index.d.cts +3 -0
- package/dist/agents/skills/node_modules/zod/v4/index.d.ts +3 -0
- package/dist/agents/skills/node_modules/zod/v4/index.js +3 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ar.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ar.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ar.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/az.cjs +141 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/az.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/az.js +115 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/be.cjs +190 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/be.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/be.js +164 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ca.cjs +144 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ca.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ca.js +118 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/cs.cjs +161 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/cs.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/cs.js +135 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/de.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/de.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/de.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/en.cjs +145 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/en.d.ts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/en.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/eo.cjs +144 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/eo.d.ts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/eo.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/es.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/es.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/es.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fa.cjs +148 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fa.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fa.js +122 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fi.cjs +148 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fi.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fi.js +122 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr-CA.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/fr.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/he.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/he.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/he.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/hu.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/hu.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/hu.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/id.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/id.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/id.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/index.cjs +84 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/index.d.cts +39 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/index.d.ts +39 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/index.js +39 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/it.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/it.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/it.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ja.cjs +141 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ja.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ja.js +115 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/kh.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/kh.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/kh.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/kh.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ko.cjs +147 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ko.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ko.js +121 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/mk.cjs +144 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/mk.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/mk.js +118 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ms.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ms.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ms.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/nl.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/nl.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/nl.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/no.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/no.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/no.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ota.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ota.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ota.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pl.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pl.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pl.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ps.cjs +148 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ps.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ps.js +122 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pt.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pt.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/pt.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ru.cjs +190 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ru.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ru.js +164 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sl.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sl.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sl.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sv.cjs +144 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sv.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/sv.js +118 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ta.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ta.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ta.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/th.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/th.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/th.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/tr.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/tr.d.ts +5 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/tr.js +115 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ua.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ua.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ua.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ua.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ur.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ur.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/ur.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/vi.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/vi.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/vi.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-CN.js +116 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/dist/agents/skills/node_modules/zod/v4/locales/zh-TW.js +117 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/checks.js +1 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/coerce.cjs +47 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/coerce.js +17 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/external.cjs +62 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/external.d.cts +11 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/external.d.ts +11 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/external.js +13 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/index.cjs +32 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/index.js +3 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/iso.cjs +60 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/iso.js +30 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/parse.cjs +8 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/parse.js +1 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/schemas.cjs +839 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/schemas.d.cts +356 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/schemas.d.ts +356 -0
- package/dist/agents/skills/node_modules/zod/v4/mini/schemas.js +732 -0
- package/dist/agents/skills/node_modules/zod/v4-mini/index.cjs +17 -0
- package/dist/agents/skills/node_modules/zod/v4-mini/index.d.cts +1 -0
- package/dist/agents/skills/node_modules/zod/v4-mini/index.d.ts +1 -0
- package/dist/agents/skills/node_modules/zod/v4-mini/index.js +1 -0
- package/dist/agents/skills/package.json +17 -0
- package/dist/agents/skills/tests/references.test.ts +85 -0
- package/dist/agents/skills/tests/schema.test.ts +95 -0
- package/dist/agents/skills/tests/schema.ts +66 -0
- package/dist/agents/skills/tests/structure.test.ts +82 -0
- package/dist/agents/skills/tsconfig.json +12 -0
- package/dist/agents/skills/vitest.config.mts +9 -0
- package/dist/bin/harness.js +1 -1
- package/dist/chunk-JR7ZYYNL.js +2744 -0
- package/dist/chunk-ZW7OXJCM.js +2639 -0
- package/dist/index.js +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,3839 @@
|
|
|
1
|
+
import { existsSync, readFileSync, promises } from 'node:fs';
|
|
2
|
+
import { mkdir, writeFile, readdir, stat, readFile } from 'node:fs/promises';
|
|
3
|
+
import { resolve as resolve$1, dirname, isAbsolute, relative, basename, join, normalize } from 'pathe';
|
|
4
|
+
import { performance as performance$1 } from 'node:perf_hooks';
|
|
5
|
+
import { getTests, getTestName, hasFailed, getSuites, generateHash, createTaskName, calculateSuiteHash, someTasksAreOnly, interpretTaskModes, getTasks, getFullName } from '@vitest/runner/utils';
|
|
6
|
+
import { slash, toArray, isPrimitive } from '@vitest/utils/helpers';
|
|
7
|
+
import { parseStacktrace, defaultStackIgnorePatterns, parseErrorStacktrace } from '@vitest/utils/source-map';
|
|
8
|
+
import c from 'tinyrainbow';
|
|
9
|
+
import { i as isTTY } from './env.D4Lgay0q.js';
|
|
10
|
+
import { stripVTControlCharacters } from 'node:util';
|
|
11
|
+
import { Console } from 'node:console';
|
|
12
|
+
import { Writable } from 'node:stream';
|
|
13
|
+
import { inspect } from '@vitest/utils/display';
|
|
14
|
+
import nodeos__default, { hostname } from 'node:os';
|
|
15
|
+
import { x } from 'tinyexec';
|
|
16
|
+
import { distDir } from '../path.js';
|
|
17
|
+
import { parseAstAsync } from 'vite';
|
|
18
|
+
import { positionToOffset, lineSplitRE } from '@vitest/utils/offset';
|
|
19
|
+
import { createRequire } from 'node:module';
|
|
20
|
+
|
|
21
|
+
/// <reference types="../types/index.d.ts" />
|
|
22
|
+
|
|
23
|
+
// (c) 2020-present Andrea Giammarchi
|
|
24
|
+
|
|
25
|
+
const {parse: $parse, stringify: $stringify} = JSON;
|
|
26
|
+
const {keys} = Object;
|
|
27
|
+
|
|
28
|
+
const Primitive = String; // it could be Number
|
|
29
|
+
const primitive = 'string'; // it could be 'number'
|
|
30
|
+
|
|
31
|
+
const ignore$1 = {};
|
|
32
|
+
const object = 'object';
|
|
33
|
+
|
|
34
|
+
const noop = (_, value) => value;
|
|
35
|
+
|
|
36
|
+
const primitives = value => (
|
|
37
|
+
value instanceof Primitive ? Primitive(value) : value
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
const Primitives = (_, value) => (
|
|
41
|
+
typeof value === primitive ? new Primitive(value) : value
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
const revive = (input, parsed, output, $) => {
|
|
45
|
+
const lazy = [];
|
|
46
|
+
for (let ke = keys(output), {length} = ke, y = 0; y < length; y++) {
|
|
47
|
+
const k = ke[y];
|
|
48
|
+
const value = output[k];
|
|
49
|
+
if (value instanceof Primitive) {
|
|
50
|
+
const tmp = input[value];
|
|
51
|
+
if (typeof tmp === object && !parsed.has(tmp)) {
|
|
52
|
+
parsed.add(tmp);
|
|
53
|
+
output[k] = ignore$1;
|
|
54
|
+
lazy.push({k, a: [input, parsed, tmp, $]});
|
|
55
|
+
}
|
|
56
|
+
else
|
|
57
|
+
output[k] = $.call(output, k, tmp);
|
|
58
|
+
}
|
|
59
|
+
else if (output[k] !== ignore$1)
|
|
60
|
+
output[k] = $.call(output, k, value);
|
|
61
|
+
}
|
|
62
|
+
for (let {length} = lazy, i = 0; i < length; i++) {
|
|
63
|
+
const {k, a} = lazy[i];
|
|
64
|
+
output[k] = $.call(output, k, revive.apply(null, a));
|
|
65
|
+
}
|
|
66
|
+
return output;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const set = (known, input, value) => {
|
|
70
|
+
const index = Primitive(input.push(value) - 1);
|
|
71
|
+
known.set(value, index);
|
|
72
|
+
return index;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Converts a specialized flatted string into a JS value.
|
|
77
|
+
* @param {string} text
|
|
78
|
+
* @param {(this: any, key: string, value: any) => any} [reviver]
|
|
79
|
+
* @returns {any}
|
|
80
|
+
*/
|
|
81
|
+
const parse$1 = (text, reviver) => {
|
|
82
|
+
const input = $parse(text, Primitives).map(primitives);
|
|
83
|
+
const value = input[0];
|
|
84
|
+
const $ = reviver || noop;
|
|
85
|
+
const tmp = typeof value === object && value ?
|
|
86
|
+
revive(input, new Set, value, $) :
|
|
87
|
+
value;
|
|
88
|
+
return $.call({'': tmp}, '', tmp);
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Converts a JS value into a specialized flatted string.
|
|
93
|
+
* @param {any} value
|
|
94
|
+
* @param {((this: any, key: string, value: any) => any) | (string | number)[] | null | undefined} [replacer]
|
|
95
|
+
* @param {string | number | undefined} [space]
|
|
96
|
+
* @returns {string}
|
|
97
|
+
*/
|
|
98
|
+
const stringify = (value, replacer, space) => {
|
|
99
|
+
const $ = replacer && typeof replacer === object ?
|
|
100
|
+
(k, v) => (k === '' || -1 < replacer.indexOf(k) ? v : void 0) :
|
|
101
|
+
(replacer || noop);
|
|
102
|
+
const known = new Map;
|
|
103
|
+
const input = [];
|
|
104
|
+
const output = [];
|
|
105
|
+
let i = +set(known, input, $.call({'': value}, '', value));
|
|
106
|
+
let firstRun = !i;
|
|
107
|
+
while (i < input.length) {
|
|
108
|
+
firstRun = true;
|
|
109
|
+
output[i] = $stringify(input[i++], replace, space);
|
|
110
|
+
}
|
|
111
|
+
return '[' + output.join(',') + ']';
|
|
112
|
+
function replace(key, value) {
|
|
113
|
+
if (firstRun) {
|
|
114
|
+
firstRun = !firstRun;
|
|
115
|
+
return value;
|
|
116
|
+
}
|
|
117
|
+
const after = $.call(this, key, value);
|
|
118
|
+
switch (typeof after) {
|
|
119
|
+
case object:
|
|
120
|
+
if (after === null) return after;
|
|
121
|
+
case primitive:
|
|
122
|
+
return known.get(after) || set(known, input, after);
|
|
123
|
+
}
|
|
124
|
+
return after;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
function getOutputFile(config, reporter) {
|
|
129
|
+
if (!config?.outputFile) return;
|
|
130
|
+
if (typeof config.outputFile === "string") return config.outputFile;
|
|
131
|
+
return config.outputFile[reporter];
|
|
132
|
+
}
|
|
133
|
+
function createDefinesScript(define) {
|
|
134
|
+
if (!define) return "";
|
|
135
|
+
if (serializeDefine(define) === "{}") return "";
|
|
136
|
+
return `
|
|
137
|
+
const defines = ${serializeDefine(define)}
|
|
138
|
+
Object.keys(defines).forEach((key) => {
|
|
139
|
+
const segments = key.split('.')
|
|
140
|
+
let target = globalThis
|
|
141
|
+
for (let i = 0; i < segments.length; i++) {
|
|
142
|
+
const segment = segments[i]
|
|
143
|
+
if (i === segments.length - 1) {
|
|
144
|
+
target[segment] = defines[key]
|
|
145
|
+
} else {
|
|
146
|
+
target = target[segment] || (target[segment] = {})
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
})
|
|
150
|
+
`;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Like `JSON.stringify` but keeps raw string values as a literal
|
|
154
|
+
* in the generated code. For example: `"window"` would refer to
|
|
155
|
+
* the global `window` object directly.
|
|
156
|
+
*/
|
|
157
|
+
function serializeDefine(define) {
|
|
158
|
+
const userDefine = {};
|
|
159
|
+
for (const key in define) {
|
|
160
|
+
// vitest sets this to avoid vite:client-inject plugin
|
|
161
|
+
if (key === "process.env.NODE_ENV" && define[key] === "process.env.NODE_ENV") continue;
|
|
162
|
+
// import.meta.env.* is handled in `importAnalysis` plugin
|
|
163
|
+
if (!key.startsWith("import.meta.env.")) userDefine[key] = define[key];
|
|
164
|
+
}
|
|
165
|
+
let res = `{`;
|
|
166
|
+
const keys = Object.keys(userDefine).sort();
|
|
167
|
+
for (let i = 0; i < keys.length; i++) {
|
|
168
|
+
const key = keys[i];
|
|
169
|
+
const val = userDefine[key];
|
|
170
|
+
res += `${JSON.stringify(key)}: ${handleDefineValue(val)}`;
|
|
171
|
+
if (i !== keys.length - 1) res += `, `;
|
|
172
|
+
}
|
|
173
|
+
return `${res}}`;
|
|
174
|
+
}
|
|
175
|
+
function handleDefineValue(value) {
|
|
176
|
+
if (typeof value === "undefined") return "undefined";
|
|
177
|
+
if (typeof value === "string") return value;
|
|
178
|
+
return JSON.stringify(value);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
class BlobReporter {
|
|
182
|
+
start = 0;
|
|
183
|
+
ctx;
|
|
184
|
+
options;
|
|
185
|
+
coverage;
|
|
186
|
+
constructor(options) {
|
|
187
|
+
this.options = options;
|
|
188
|
+
}
|
|
189
|
+
onInit(ctx) {
|
|
190
|
+
if (ctx.config.watch) throw new Error("Blob reporter is not supported in watch mode");
|
|
191
|
+
this.ctx = ctx;
|
|
192
|
+
this.start = performance.now();
|
|
193
|
+
this.coverage = void 0;
|
|
194
|
+
}
|
|
195
|
+
onCoverage(coverage) {
|
|
196
|
+
this.coverage = coverage;
|
|
197
|
+
}
|
|
198
|
+
async onTestRunEnd(testModules, unhandledErrors) {
|
|
199
|
+
const executionTime = performance.now() - this.start;
|
|
200
|
+
const files = testModules.map((testModule) => testModule.task);
|
|
201
|
+
const errors = [...unhandledErrors];
|
|
202
|
+
const coverage = this.coverage;
|
|
203
|
+
let outputFile = this.options.outputFile ?? getOutputFile(this.ctx.config, "blob");
|
|
204
|
+
if (!outputFile) {
|
|
205
|
+
const shard = this.ctx.config.shard;
|
|
206
|
+
outputFile = shard ? `.vitest-reports/blob-${shard.index}-${shard.count}.json` : ".vitest-reports/blob.json";
|
|
207
|
+
}
|
|
208
|
+
const modules = this.ctx.projects.map((project) => {
|
|
209
|
+
return [project.name, [...project.vite.moduleGraph.idToModuleMap.entries()].map((mod) => {
|
|
210
|
+
if (!mod[1].file) return null;
|
|
211
|
+
return [
|
|
212
|
+
mod[0],
|
|
213
|
+
mod[1].file,
|
|
214
|
+
mod[1].url
|
|
215
|
+
];
|
|
216
|
+
}).filter((x) => x != null)];
|
|
217
|
+
});
|
|
218
|
+
const report = [
|
|
219
|
+
this.ctx.version,
|
|
220
|
+
files,
|
|
221
|
+
errors,
|
|
222
|
+
modules,
|
|
223
|
+
coverage,
|
|
224
|
+
executionTime
|
|
225
|
+
];
|
|
226
|
+
const reportFile = resolve$1(this.ctx.config.root, outputFile);
|
|
227
|
+
await writeBlob(report, reportFile);
|
|
228
|
+
this.ctx.logger.log("blob report written to", reportFile);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
async function writeBlob(content, filename) {
|
|
232
|
+
const report = stringify(content);
|
|
233
|
+
const dir = dirname(filename);
|
|
234
|
+
if (!existsSync(dir)) await mkdir(dir, { recursive: true });
|
|
235
|
+
await writeFile(filename, report, "utf-8");
|
|
236
|
+
}
|
|
237
|
+
async function readBlobs(currentVersion, blobsDirectory, projectsArray) {
|
|
238
|
+
// using process.cwd() because --merge-reports can only be used in CLI
|
|
239
|
+
const resolvedDir = resolve$1(process.cwd(), blobsDirectory);
|
|
240
|
+
const promises = (await readdir(resolvedDir)).map(async (filename) => {
|
|
241
|
+
const fullPath = resolve$1(resolvedDir, filename);
|
|
242
|
+
if (!(await stat(fullPath)).isFile()) throw new TypeError(`vitest.mergeReports() expects all paths in "${blobsDirectory}" to be files generated by the blob reporter, but "${filename}" is not a file`);
|
|
243
|
+
const [version, files, errors, moduleKeys, coverage, executionTime] = parse$1(await readFile(fullPath, "utf-8"));
|
|
244
|
+
if (!version) throw new TypeError(`vitest.mergeReports() expects all paths in "${blobsDirectory}" to be files generated by the blob reporter, but "${filename}" is not a valid blob file`);
|
|
245
|
+
return {
|
|
246
|
+
version,
|
|
247
|
+
files,
|
|
248
|
+
errors,
|
|
249
|
+
moduleKeys,
|
|
250
|
+
coverage,
|
|
251
|
+
file: filename,
|
|
252
|
+
executionTime
|
|
253
|
+
};
|
|
254
|
+
});
|
|
255
|
+
const blobs = await Promise.all(promises);
|
|
256
|
+
if (!blobs.length) throw new Error(`vitest.mergeReports() requires at least one blob file in "${blobsDirectory}" directory, but none were found`);
|
|
257
|
+
const versions = new Set(blobs.map((blob) => blob.version));
|
|
258
|
+
if (versions.size > 1) throw new Error(`vitest.mergeReports() requires all blob files to be generated by the same Vitest version, received\n\n${blobs.map((b) => `- "${b.file}" uses v${b.version}`).join("\n")}`);
|
|
259
|
+
if (!versions.has(currentVersion)) throw new Error(`the blobs in "${blobsDirectory}" were generated by a different version of Vitest. Expected v${currentVersion}, but received v${blobs[0].version}`);
|
|
260
|
+
// fake module graph - it is used to check if module is imported, but we don't use values inside
|
|
261
|
+
const projects = Object.fromEntries(projectsArray.map((p) => [p.name, p]));
|
|
262
|
+
blobs.forEach((blob) => {
|
|
263
|
+
blob.moduleKeys.forEach(([projectName, moduleIds]) => {
|
|
264
|
+
const project = projects[projectName];
|
|
265
|
+
if (!project) return;
|
|
266
|
+
moduleIds.forEach(([moduleId, file, url]) => {
|
|
267
|
+
const moduleNode = project.vite.moduleGraph.createFileOnlyEntry(file);
|
|
268
|
+
moduleNode.url = url;
|
|
269
|
+
moduleNode.id = moduleId;
|
|
270
|
+
moduleNode.transformResult = {
|
|
271
|
+
code: " ",
|
|
272
|
+
map: null
|
|
273
|
+
};
|
|
274
|
+
project.vite.moduleGraph.idToModuleMap.set(moduleId, moduleNode);
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
return {
|
|
279
|
+
files: blobs.flatMap((blob) => blob.files).sort((f1, f2) => {
|
|
280
|
+
return (f1.result?.startTime || 0) - (f2.result?.startTime || 0);
|
|
281
|
+
}),
|
|
282
|
+
errors: blobs.flatMap((blob) => blob.errors),
|
|
283
|
+
coverages: blobs.map((blob) => blob.coverage),
|
|
284
|
+
executionTimes: blobs.map((blob) => blob.executionTime)
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function groupBy(collection, iteratee) {
|
|
289
|
+
return collection.reduce((acc, item) => {
|
|
290
|
+
const key = iteratee(item);
|
|
291
|
+
acc[key] ||= [];
|
|
292
|
+
acc[key].push(item);
|
|
293
|
+
return acc;
|
|
294
|
+
}, {});
|
|
295
|
+
}
|
|
296
|
+
function stdout() {
|
|
297
|
+
// @ts-expect-error Node.js maps process.stdout to console._stdout
|
|
298
|
+
// eslint-disable-next-line no-console
|
|
299
|
+
return console._stdout || process.stdout;
|
|
300
|
+
}
|
|
301
|
+
function escapeRegExp(s) {
|
|
302
|
+
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
|
|
303
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
304
|
+
}
|
|
305
|
+
function wildcardPatternToRegExp(pattern) {
|
|
306
|
+
const negated = pattern[0] === "!";
|
|
307
|
+
if (negated) pattern = pattern.slice(1);
|
|
308
|
+
let regexp = `${pattern.split("*").map(escapeRegExp).join(".*")}$`;
|
|
309
|
+
if (negated) regexp = `(?!${regexp})`;
|
|
310
|
+
return new RegExp(`^${regexp}`, "i");
|
|
311
|
+
}
|
|
312
|
+
function createIndexLocationsMap(source) {
|
|
313
|
+
const map = /* @__PURE__ */ new Map();
|
|
314
|
+
let index = 0;
|
|
315
|
+
let line = 1;
|
|
316
|
+
let column = 1;
|
|
317
|
+
for (const char of source) {
|
|
318
|
+
map.set(index++, {
|
|
319
|
+
line,
|
|
320
|
+
column
|
|
321
|
+
});
|
|
322
|
+
if (char === "\n" || char === "\r\n") {
|
|
323
|
+
line++;
|
|
324
|
+
column = 0;
|
|
325
|
+
} else column++;
|
|
326
|
+
}
|
|
327
|
+
return map;
|
|
328
|
+
}
|
|
329
|
+
function createLocationsIndexMap(source) {
|
|
330
|
+
const map = /* @__PURE__ */ new Map();
|
|
331
|
+
let index = 0;
|
|
332
|
+
let line = 1;
|
|
333
|
+
let column = 1;
|
|
334
|
+
for (const char of source) {
|
|
335
|
+
map.set(`${line}:${column}`, index++);
|
|
336
|
+
if (char === "\n" || char === "\r\n") {
|
|
337
|
+
line++;
|
|
338
|
+
column = 0;
|
|
339
|
+
} else column++;
|
|
340
|
+
}
|
|
341
|
+
return map;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
function hasFailedSnapshot(suite) {
|
|
345
|
+
return getTests(suite).some((s) => {
|
|
346
|
+
return s.result?.errors?.some((e) => typeof e?.message === "string" && e.message.match(/Snapshot .* mismatched/));
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
function convertTasksToEvents(file, onTask) {
|
|
350
|
+
const packs = [];
|
|
351
|
+
const events = [];
|
|
352
|
+
function visit(suite) {
|
|
353
|
+
onTask?.(suite);
|
|
354
|
+
packs.push([
|
|
355
|
+
suite.id,
|
|
356
|
+
suite.result,
|
|
357
|
+
suite.meta
|
|
358
|
+
]);
|
|
359
|
+
events.push([
|
|
360
|
+
suite.id,
|
|
361
|
+
"suite-prepare",
|
|
362
|
+
void 0
|
|
363
|
+
]);
|
|
364
|
+
suite.tasks.forEach((task) => {
|
|
365
|
+
if (task.type === "suite") visit(task);
|
|
366
|
+
else {
|
|
367
|
+
onTask?.(task);
|
|
368
|
+
if (suite.mode !== "skip" && suite.mode !== "todo") {
|
|
369
|
+
packs.push([
|
|
370
|
+
task.id,
|
|
371
|
+
task.result,
|
|
372
|
+
task.meta
|
|
373
|
+
]);
|
|
374
|
+
events.push([
|
|
375
|
+
task.id,
|
|
376
|
+
"test-prepare",
|
|
377
|
+
void 0
|
|
378
|
+
]);
|
|
379
|
+
task.annotations.forEach((annotation) => {
|
|
380
|
+
events.push([
|
|
381
|
+
task.id,
|
|
382
|
+
"test-annotation",
|
|
383
|
+
{ annotation }
|
|
384
|
+
]);
|
|
385
|
+
});
|
|
386
|
+
task.artifacts.forEach((artifact) => {
|
|
387
|
+
events.push([
|
|
388
|
+
task.id,
|
|
389
|
+
"test-artifact",
|
|
390
|
+
{ artifact }
|
|
391
|
+
]);
|
|
392
|
+
});
|
|
393
|
+
events.push([
|
|
394
|
+
task.id,
|
|
395
|
+
"test-finished",
|
|
396
|
+
void 0
|
|
397
|
+
]);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
events.push([
|
|
402
|
+
suite.id,
|
|
403
|
+
"suite-finished",
|
|
404
|
+
void 0
|
|
405
|
+
]);
|
|
406
|
+
}
|
|
407
|
+
visit(file);
|
|
408
|
+
return {
|
|
409
|
+
packs,
|
|
410
|
+
events
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
const F_RIGHT = "→";
|
|
415
|
+
const F_DOWN = "↓";
|
|
416
|
+
const F_DOWN_RIGHT = "↳";
|
|
417
|
+
const F_POINTER = "❯";
|
|
418
|
+
const F_DOT = "·";
|
|
419
|
+
const F_CHECK = "✓";
|
|
420
|
+
const F_CROSS = "×";
|
|
421
|
+
const F_LONG_DASH = "⎯";
|
|
422
|
+
const F_TREE_NODE_MIDDLE = "├──";
|
|
423
|
+
const F_TREE_NODE_END = "└──";
|
|
424
|
+
|
|
425
|
+
const pointer = c.yellow(F_POINTER);
|
|
426
|
+
const skipped = c.dim(c.gray(F_DOWN));
|
|
427
|
+
const benchmarkPass = c.green(F_DOT);
|
|
428
|
+
const testPass = c.green(F_CHECK);
|
|
429
|
+
const taskFail = c.red(F_CROSS);
|
|
430
|
+
const suiteFail = c.red(F_POINTER);
|
|
431
|
+
const pending$1 = c.gray("·");
|
|
432
|
+
const separator = c.dim(" > ");
|
|
433
|
+
const labelDefaultColors = [
|
|
434
|
+
c.bgYellow,
|
|
435
|
+
c.bgCyan,
|
|
436
|
+
c.bgGreen,
|
|
437
|
+
c.bgMagenta
|
|
438
|
+
];
|
|
439
|
+
function getCols(delta = 0) {
|
|
440
|
+
let length = process.stdout?.columns;
|
|
441
|
+
if (!length || Number.isNaN(length)) length = 30;
|
|
442
|
+
return Math.max(length + delta, 0);
|
|
443
|
+
}
|
|
444
|
+
function errorBanner(message) {
|
|
445
|
+
return divider(c.bold(c.bgRed(` ${message} `)), null, null, c.red);
|
|
446
|
+
}
|
|
447
|
+
function divider(text, left, right, color) {
|
|
448
|
+
const cols = getCols();
|
|
449
|
+
const c = color || ((text) => text);
|
|
450
|
+
if (text) {
|
|
451
|
+
const textLength = stripVTControlCharacters(text).length;
|
|
452
|
+
if (left == null && right != null) left = cols - textLength - right;
|
|
453
|
+
else {
|
|
454
|
+
left = left ?? Math.floor((cols - textLength) / 2);
|
|
455
|
+
right = cols - textLength - left;
|
|
456
|
+
}
|
|
457
|
+
left = Math.max(0, left);
|
|
458
|
+
right = Math.max(0, right);
|
|
459
|
+
return `${c(F_LONG_DASH.repeat(left))}${text}${c(F_LONG_DASH.repeat(right))}`;
|
|
460
|
+
}
|
|
461
|
+
return F_LONG_DASH.repeat(cols);
|
|
462
|
+
}
|
|
463
|
+
function formatTestPath(root, path) {
|
|
464
|
+
if (isAbsolute(path)) path = relative(root, path);
|
|
465
|
+
const dir = dirname(path);
|
|
466
|
+
const ext = path.match(/(\.(spec|test)\.[cm]?[tj]sx?)$/)?.[0] || "";
|
|
467
|
+
const base = basename(path, ext);
|
|
468
|
+
return slash(c.dim(`${dir}/`) + c.bold(base)) + c.dim(ext);
|
|
469
|
+
}
|
|
470
|
+
function renderSnapshotSummary(rootDir, snapshots) {
|
|
471
|
+
const summary = [];
|
|
472
|
+
if (snapshots.added) summary.push(c.bold(c.green(`${snapshots.added} written`)));
|
|
473
|
+
if (snapshots.unmatched) summary.push(c.bold(c.red(`${snapshots.unmatched} failed`)));
|
|
474
|
+
if (snapshots.updated) summary.push(c.bold(c.green(`${snapshots.updated} updated `)));
|
|
475
|
+
if (snapshots.filesRemoved) if (snapshots.didUpdate) summary.push(c.bold(c.green(`${snapshots.filesRemoved} files removed `)));
|
|
476
|
+
else summary.push(c.bold(c.yellow(`${snapshots.filesRemoved} files obsolete `)));
|
|
477
|
+
if (snapshots.filesRemovedList && snapshots.filesRemovedList.length) {
|
|
478
|
+
const [head, ...tail] = snapshots.filesRemovedList;
|
|
479
|
+
summary.push(`${c.gray(F_DOWN_RIGHT)} ${formatTestPath(rootDir, head)}`);
|
|
480
|
+
tail.forEach((key) => {
|
|
481
|
+
summary.push(` ${c.gray(F_DOT)} ${formatTestPath(rootDir, key)}`);
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
if (snapshots.unchecked) {
|
|
485
|
+
if (snapshots.didUpdate) summary.push(c.bold(c.green(`${snapshots.unchecked} removed`)));
|
|
486
|
+
else summary.push(c.bold(c.yellow(`${snapshots.unchecked} obsolete`)));
|
|
487
|
+
snapshots.uncheckedKeysByFile.forEach((uncheckedFile) => {
|
|
488
|
+
summary.push(`${c.gray(F_DOWN_RIGHT)} ${formatTestPath(rootDir, uncheckedFile.filePath)}`);
|
|
489
|
+
uncheckedFile.keys.forEach((key) => summary.push(` ${c.gray(F_DOT)} ${key}`));
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
return summary;
|
|
493
|
+
}
|
|
494
|
+
function countTestErrors(tasks) {
|
|
495
|
+
return tasks.reduce((c, i) => c + (i.result?.errors?.length || 0), 0);
|
|
496
|
+
}
|
|
497
|
+
function getStateString$1(tasks, name = "tests", showTotal = true) {
|
|
498
|
+
if (tasks.length === 0) return c.dim(`no ${name}`);
|
|
499
|
+
const passed = tasks.reduce((acc, i) => i.result?.state === "pass" ? acc + 1 : acc, 0);
|
|
500
|
+
const failed = tasks.reduce((acc, i) => i.result?.state === "fail" ? acc + 1 : acc, 0);
|
|
501
|
+
const skipped = tasks.reduce((acc, i) => i.mode === "skip" ? acc + 1 : acc, 0);
|
|
502
|
+
const todo = tasks.reduce((acc, i) => i.mode === "todo" ? acc + 1 : acc, 0);
|
|
503
|
+
return [
|
|
504
|
+
failed ? c.bold(c.red(`${failed} failed`)) : null,
|
|
505
|
+
passed ? c.bold(c.green(`${passed} passed`)) : null,
|
|
506
|
+
skipped ? c.yellow(`${skipped} skipped`) : null,
|
|
507
|
+
todo ? c.gray(`${todo} todo`) : null
|
|
508
|
+
].filter(Boolean).join(c.dim(" | ")) + (showTotal ? c.gray(` (${tasks.length})`) : "");
|
|
509
|
+
}
|
|
510
|
+
function getStateSymbol(task) {
|
|
511
|
+
if (task.mode === "skip" || task.mode === "todo") return skipped;
|
|
512
|
+
if (!task.result) return pending$1;
|
|
513
|
+
if (task.result.state === "run" || task.result.state === "queued") {
|
|
514
|
+
if (task.type === "suite") return pointer;
|
|
515
|
+
}
|
|
516
|
+
if (task.result.state === "pass") return task.meta?.benchmark ? benchmarkPass : testPass;
|
|
517
|
+
if (task.result.state === "fail") return task.type === "suite" ? suiteFail : taskFail;
|
|
518
|
+
return " ";
|
|
519
|
+
}
|
|
520
|
+
function formatTimeString(date) {
|
|
521
|
+
return date.toTimeString().split(" ")[0];
|
|
522
|
+
}
|
|
523
|
+
function formatTime(time) {
|
|
524
|
+
if (time > 1e3) return `${(time / 1e3).toFixed(2)}s`;
|
|
525
|
+
return `${Math.round(time)}ms`;
|
|
526
|
+
}
|
|
527
|
+
function formatProjectName(project, suffix = " ") {
|
|
528
|
+
if (!project?.name) return "";
|
|
529
|
+
if (!c.isColorSupported) return `|${project.name}|${suffix}`;
|
|
530
|
+
let background = project.color && c[`bg${capitalize(project.color)}`];
|
|
531
|
+
if (!background) background = labelDefaultColors[project.name.split("").reduce((acc, v, idx) => acc + v.charCodeAt(0) + idx, 0) % labelDefaultColors.length];
|
|
532
|
+
return c.black(background(` ${project.name} `)) + suffix;
|
|
533
|
+
}
|
|
534
|
+
function withLabel(color, label, message) {
|
|
535
|
+
const bgColor = `bg${color.charAt(0).toUpperCase()}${color.slice(1)}`;
|
|
536
|
+
return `${c.bold(c[bgColor](` ${label} `))} ${message ? c[color](message) : ""}`;
|
|
537
|
+
}
|
|
538
|
+
function padSummaryTitle(str) {
|
|
539
|
+
return c.dim(`${str.padStart(11)} `);
|
|
540
|
+
}
|
|
541
|
+
function truncateString(text, maxLength) {
|
|
542
|
+
const plainText = stripVTControlCharacters(text);
|
|
543
|
+
if (plainText.length <= maxLength) return text;
|
|
544
|
+
return `${plainText.slice(0, maxLength - 1)}…`;
|
|
545
|
+
}
|
|
546
|
+
function capitalize(text) {
|
|
547
|
+
return `${text[0].toUpperCase()}${text.slice(1)}`;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
var utils = /*#__PURE__*/Object.freeze({
|
|
551
|
+
__proto__: null,
|
|
552
|
+
benchmarkPass: benchmarkPass,
|
|
553
|
+
countTestErrors: countTestErrors,
|
|
554
|
+
divider: divider,
|
|
555
|
+
errorBanner: errorBanner,
|
|
556
|
+
formatProjectName: formatProjectName,
|
|
557
|
+
formatTestPath: formatTestPath,
|
|
558
|
+
formatTime: formatTime,
|
|
559
|
+
formatTimeString: formatTimeString,
|
|
560
|
+
getStateString: getStateString$1,
|
|
561
|
+
getStateSymbol: getStateSymbol,
|
|
562
|
+
padSummaryTitle: padSummaryTitle,
|
|
563
|
+
pending: pending$1,
|
|
564
|
+
pointer: pointer,
|
|
565
|
+
renderSnapshotSummary: renderSnapshotSummary,
|
|
566
|
+
separator: separator,
|
|
567
|
+
skipped: skipped,
|
|
568
|
+
suiteFail: suiteFail,
|
|
569
|
+
taskFail: taskFail,
|
|
570
|
+
testPass: testPass,
|
|
571
|
+
truncateString: truncateString,
|
|
572
|
+
withLabel: withLabel
|
|
573
|
+
});
|
|
574
|
+
|
|
575
|
+
const BADGE_PADDING = " ";
|
|
576
|
+
class BaseReporter {
|
|
577
|
+
start = 0;
|
|
578
|
+
end = 0;
|
|
579
|
+
watchFilters;
|
|
580
|
+
failedUnwatchedFiles = [];
|
|
581
|
+
isTTY;
|
|
582
|
+
ctx = void 0;
|
|
583
|
+
renderSucceed = false;
|
|
584
|
+
verbose = false;
|
|
585
|
+
_filesInWatchMode = /* @__PURE__ */ new Map();
|
|
586
|
+
_timeStart = formatTimeString(/* @__PURE__ */ new Date());
|
|
587
|
+
constructor(options = {}) {
|
|
588
|
+
this.isTTY = options.isTTY ?? isTTY;
|
|
589
|
+
}
|
|
590
|
+
onInit(ctx) {
|
|
591
|
+
this.ctx = ctx;
|
|
592
|
+
this.ctx.logger.printBanner();
|
|
593
|
+
}
|
|
594
|
+
log(...messages) {
|
|
595
|
+
this.ctx.logger.log(...messages);
|
|
596
|
+
}
|
|
597
|
+
error(...messages) {
|
|
598
|
+
this.ctx.logger.error(...messages);
|
|
599
|
+
}
|
|
600
|
+
relative(path) {
|
|
601
|
+
return relative(this.ctx.config.root, path);
|
|
602
|
+
}
|
|
603
|
+
onTestRunStart(_specifications) {
|
|
604
|
+
this.start = performance$1.now();
|
|
605
|
+
this._timeStart = formatTimeString(/* @__PURE__ */ new Date());
|
|
606
|
+
}
|
|
607
|
+
onTestRunEnd(testModules, unhandledErrors, _reason) {
|
|
608
|
+
const files = testModules.map((testModule) => testModule.task);
|
|
609
|
+
const errors = [...unhandledErrors];
|
|
610
|
+
this.end = performance$1.now();
|
|
611
|
+
if (!files.length && !errors.length) this.ctx.logger.printNoTestFound(this.ctx.filenamePattern);
|
|
612
|
+
else this.reportSummary(files, errors);
|
|
613
|
+
}
|
|
614
|
+
onTestCaseResult(testCase) {
|
|
615
|
+
if (testCase.result().state === "failed") this.logFailedTask(testCase.task);
|
|
616
|
+
}
|
|
617
|
+
onTestSuiteResult(testSuite) {
|
|
618
|
+
if (testSuite.state() === "failed") this.logFailedTask(testSuite.task);
|
|
619
|
+
}
|
|
620
|
+
onTestModuleEnd(testModule) {
|
|
621
|
+
if (testModule.state() === "failed") this.logFailedTask(testModule.task);
|
|
622
|
+
this.printTestModule(testModule);
|
|
623
|
+
}
|
|
624
|
+
logFailedTask(task) {
|
|
625
|
+
if (this.ctx.config.silent === "passed-only") for (const log of task.logs || []) this.onUserConsoleLog(log, "failed");
|
|
626
|
+
}
|
|
627
|
+
printTestModule(testModule) {
|
|
628
|
+
const moduleState = testModule.state();
|
|
629
|
+
if (moduleState === "queued" || moduleState === "pending") return;
|
|
630
|
+
let testsCount = 0;
|
|
631
|
+
let failedCount = 0;
|
|
632
|
+
let skippedCount = 0;
|
|
633
|
+
// delaying logs to calculate the test stats first
|
|
634
|
+
// which minimizes the amount of for loops
|
|
635
|
+
const logs = [];
|
|
636
|
+
const originalLog = this.log.bind(this);
|
|
637
|
+
this.log = (msg) => logs.push(msg);
|
|
638
|
+
const visit = (suiteState, children) => {
|
|
639
|
+
for (const child of children) if (child.type === "suite") {
|
|
640
|
+
const suiteState = child.state();
|
|
641
|
+
// Skipped suites are hidden when --hideSkippedTests, print otherwise
|
|
642
|
+
if (!this.ctx.config.hideSkippedTests || suiteState !== "skipped") this.printTestSuite(child);
|
|
643
|
+
visit(suiteState, child.children);
|
|
644
|
+
} else {
|
|
645
|
+
const testResult = child.result();
|
|
646
|
+
testsCount++;
|
|
647
|
+
if (testResult.state === "failed") failedCount++;
|
|
648
|
+
else if (testResult.state === "skipped") skippedCount++;
|
|
649
|
+
if (this.ctx.config.hideSkippedTests && suiteState === "skipped")
|
|
650
|
+
// Skipped suites are hidden when --hideSkippedTests
|
|
651
|
+
continue;
|
|
652
|
+
this.printTestCase(moduleState, child);
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
try {
|
|
656
|
+
visit(moduleState, testModule.children);
|
|
657
|
+
} finally {
|
|
658
|
+
this.log = originalLog;
|
|
659
|
+
}
|
|
660
|
+
this.log(this.getModuleLog(testModule, {
|
|
661
|
+
tests: testsCount,
|
|
662
|
+
failed: failedCount,
|
|
663
|
+
skipped: skippedCount
|
|
664
|
+
}));
|
|
665
|
+
logs.forEach((log) => this.log(log));
|
|
666
|
+
}
|
|
667
|
+
printTestCase(moduleState, test) {
|
|
668
|
+
const testResult = test.result();
|
|
669
|
+
const { duration = 0 } = test.diagnostic() || {};
|
|
670
|
+
const padding = this.getTestIndentation(test.task);
|
|
671
|
+
const suffix = this.getTestCaseSuffix(test);
|
|
672
|
+
if (testResult.state === "failed") this.log(c.red(` ${padding}${taskFail} ${this.getTestName(test.task, separator)}`) + suffix);
|
|
673
|
+
else if (duration > this.ctx.config.slowTestThreshold) this.log(` ${padding}${c.yellow(c.dim(F_CHECK))} ${this.getTestName(test.task, separator)} ${suffix}`);
|
|
674
|
+
else if (this.ctx.config.hideSkippedTests && testResult.state === "skipped") ; else if (this.renderSucceed || moduleState === "failed") this.log(` ${padding}${this.getStateSymbol(test)} ${this.getTestName(test.task, separator)}${suffix}`);
|
|
675
|
+
}
|
|
676
|
+
getModuleLog(testModule, counts) {
|
|
677
|
+
let state = c.dim(`${counts.tests} test${counts.tests > 1 ? "s" : ""}`);
|
|
678
|
+
if (counts.failed) state += c.dim(" | ") + c.red(`${counts.failed} failed`);
|
|
679
|
+
if (counts.skipped) state += c.dim(" | ") + c.yellow(`${counts.skipped} skipped`);
|
|
680
|
+
let suffix = c.dim("(") + state + c.dim(")") + this.getDurationPrefix(testModule.task);
|
|
681
|
+
const diagnostic = testModule.diagnostic();
|
|
682
|
+
if (diagnostic.heap != null) suffix += c.magenta(` ${Math.floor(diagnostic.heap / 1024 / 1024)} MB heap used`);
|
|
683
|
+
return ` ${this.getEntityPrefix(testModule)} ${testModule.task.name} ${suffix}`;
|
|
684
|
+
}
|
|
685
|
+
printTestSuite(testSuite) {
|
|
686
|
+
if (!this.renderSucceed) return;
|
|
687
|
+
const indentation = " ".repeat(getIndentation(testSuite.task));
|
|
688
|
+
const tests = Array.from(testSuite.children.allTests());
|
|
689
|
+
const state = this.getStateSymbol(testSuite);
|
|
690
|
+
this.log(` ${indentation}${state} ${testSuite.name} ${c.dim(`(${tests.length})`)}`);
|
|
691
|
+
}
|
|
692
|
+
getTestName(test, _separator) {
|
|
693
|
+
return test.name;
|
|
694
|
+
}
|
|
695
|
+
getFullName(test, separator) {
|
|
696
|
+
if (test === test.file) return test.name;
|
|
697
|
+
let name = test.file.name;
|
|
698
|
+
if (test.location) name += c.dim(`:${test.location.line}:${test.location.column}`);
|
|
699
|
+
name += separator;
|
|
700
|
+
name += getTestName(test, separator);
|
|
701
|
+
return name;
|
|
702
|
+
}
|
|
703
|
+
getTestIndentation(test) {
|
|
704
|
+
return " ".repeat(getIndentation(test));
|
|
705
|
+
}
|
|
706
|
+
printAnnotations(test, console, padding = 0) {
|
|
707
|
+
const annotations = test.annotations();
|
|
708
|
+
if (!annotations.length) return;
|
|
709
|
+
const PADDING = " ".repeat(padding);
|
|
710
|
+
const groupedAnnotations = {};
|
|
711
|
+
annotations.forEach((annotation) => {
|
|
712
|
+
const { location, type } = annotation;
|
|
713
|
+
let group;
|
|
714
|
+
if (location) {
|
|
715
|
+
const file = relative(test.project.config.root, location.file);
|
|
716
|
+
group = `${c.gray(`${file}:${location.line}:${location.column}`)} ${c.bold(type)}`;
|
|
717
|
+
} else group = c.bold(type);
|
|
718
|
+
groupedAnnotations[group] ??= [];
|
|
719
|
+
groupedAnnotations[group].push(annotation);
|
|
720
|
+
});
|
|
721
|
+
for (const group in groupedAnnotations) {
|
|
722
|
+
this[console](`${PADDING}${c.blue(F_POINTER)} ${group}`);
|
|
723
|
+
groupedAnnotations[group].forEach(({ message }) => {
|
|
724
|
+
this[console](`${PADDING} ${c.blue(F_DOWN_RIGHT)} ${message}`);
|
|
725
|
+
});
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
getEntityPrefix(entity) {
|
|
729
|
+
let title = this.getStateSymbol(entity);
|
|
730
|
+
if (entity.project.name) title += ` ${formatProjectName(entity.project, "")}`;
|
|
731
|
+
if (entity.meta().typecheck) title += ` ${c.bgBlue(c.bold(" TS "))}`;
|
|
732
|
+
return title;
|
|
733
|
+
}
|
|
734
|
+
getTestCaseSuffix(testCase) {
|
|
735
|
+
const { heap, retryCount, repeatCount } = testCase.diagnostic() || {};
|
|
736
|
+
const testResult = testCase.result();
|
|
737
|
+
let suffix = this.getDurationPrefix(testCase.task);
|
|
738
|
+
if (retryCount != null && retryCount > 0) suffix += c.yellow(` (retry x${retryCount})`);
|
|
739
|
+
if (repeatCount != null && repeatCount > 0) suffix += c.yellow(` (repeat x${repeatCount})`);
|
|
740
|
+
if (heap != null) suffix += c.magenta(` ${Math.floor(heap / 1024 / 1024)} MB heap used`);
|
|
741
|
+
if (testResult.state === "skipped" && testResult.note) suffix += c.dim(c.gray(` [${testResult.note}]`));
|
|
742
|
+
return suffix;
|
|
743
|
+
}
|
|
744
|
+
getStateSymbol(test) {
|
|
745
|
+
return getStateSymbol(test.task);
|
|
746
|
+
}
|
|
747
|
+
getDurationPrefix(task) {
|
|
748
|
+
const duration = task.result?.duration && Math.round(task.result?.duration);
|
|
749
|
+
if (duration == null) return "";
|
|
750
|
+
return (duration > this.ctx.config.slowTestThreshold ? c.yellow : c.green)(` ${duration}${c.dim("ms")}`);
|
|
751
|
+
}
|
|
752
|
+
onWatcherStart(files = this.ctx.state.getFiles(), errors = this.ctx.state.getUnhandledErrors()) {
|
|
753
|
+
if (errors.length > 0 || hasFailed(files)) this.log(withLabel("red", "FAIL", "Tests failed. Watching for file changes..."));
|
|
754
|
+
else if (this.ctx.isCancelling) this.log(withLabel("red", "CANCELLED", "Test run cancelled. Watching for file changes..."));
|
|
755
|
+
else this.log(withLabel("green", "PASS", "Waiting for file changes..."));
|
|
756
|
+
const hints = [c.dim("press ") + c.bold("h") + c.dim(" to show help")];
|
|
757
|
+
if (hasFailedSnapshot(files)) hints.unshift(c.dim("press ") + c.bold(c.yellow("u")) + c.dim(" to update snapshot"));
|
|
758
|
+
else hints.push(c.dim("press ") + c.bold("q") + c.dim(" to quit"));
|
|
759
|
+
this.log(BADGE_PADDING + hints.join(c.dim(", ")));
|
|
760
|
+
}
|
|
761
|
+
onWatcherRerun(files, trigger) {
|
|
762
|
+
this.watchFilters = files;
|
|
763
|
+
this.failedUnwatchedFiles = this.ctx.state.getTestModules().filter((testModule) => !files.includes(testModule.task.filepath) && testModule.state() === "failed");
|
|
764
|
+
// Update re-run count for each file
|
|
765
|
+
files.forEach((filepath) => {
|
|
766
|
+
let reruns = this._filesInWatchMode.get(filepath) ?? 0;
|
|
767
|
+
this._filesInWatchMode.set(filepath, ++reruns);
|
|
768
|
+
});
|
|
769
|
+
let banner = trigger ? c.dim(`${this.relative(trigger)} `) : "";
|
|
770
|
+
if (files.length === 1) {
|
|
771
|
+
const rerun = this._filesInWatchMode.get(files[0]) ?? 1;
|
|
772
|
+
banner += c.blue(`x${rerun} `);
|
|
773
|
+
}
|
|
774
|
+
this.ctx.logger.clearFullScreen();
|
|
775
|
+
this.log(withLabel("blue", "RERUN", banner));
|
|
776
|
+
if (this.ctx.configOverride.project) this.log(BADGE_PADDING + c.dim(" Project name: ") + c.blue(toArray(this.ctx.configOverride.project).join(", ")));
|
|
777
|
+
if (this.ctx.filenamePattern) this.log(BADGE_PADDING + c.dim(" Filename pattern: ") + c.blue(this.ctx.filenamePattern.join(", ")));
|
|
778
|
+
if (this.ctx.configOverride.testNamePattern) this.log(BADGE_PADDING + c.dim(" Test name pattern: ") + c.blue(String(this.ctx.configOverride.testNamePattern)));
|
|
779
|
+
this.log("");
|
|
780
|
+
for (const testModule of this.failedUnwatchedFiles) this.printTestModule(testModule);
|
|
781
|
+
}
|
|
782
|
+
onUserConsoleLog(log, taskState) {
|
|
783
|
+
if (!this.shouldLog(log, taskState)) return;
|
|
784
|
+
const output = log.type === "stdout" ? this.ctx.logger.outputStream : this.ctx.logger.errorStream;
|
|
785
|
+
const write = (msg) => output.write(msg);
|
|
786
|
+
let headerText = "unknown test";
|
|
787
|
+
const task = log.taskId ? this.ctx.state.idMap.get(log.taskId) : void 0;
|
|
788
|
+
if (task) headerText = this.getFullName(task, separator);
|
|
789
|
+
else if (log.taskId && log.taskId !== "__vitest__unknown_test__") headerText = log.taskId;
|
|
790
|
+
write(c.gray(log.type + c.dim(` | ${headerText}\n`)) + log.content);
|
|
791
|
+
if (log.origin) {
|
|
792
|
+
// browser logs don't have an extra end of line at the end like Node.js does
|
|
793
|
+
if (log.browser) write("\n");
|
|
794
|
+
const project = task ? this.ctx.getProjectByName(task.file.projectName || "") : this.ctx.getRootProject();
|
|
795
|
+
const stack = log.browser ? project.browser?.parseStacktrace(log.origin) || [] : parseStacktrace(log.origin);
|
|
796
|
+
const highlight = task && stack.find((i) => i.file === task.file.filepath);
|
|
797
|
+
for (const frame of stack) {
|
|
798
|
+
const color = frame === highlight ? c.cyan : c.gray;
|
|
799
|
+
const path = relative(project.config.root, frame.file);
|
|
800
|
+
const positions = [frame.method, `${path}:${c.dim(`${frame.line}:${frame.column}`)}`].filter(Boolean).join(" ");
|
|
801
|
+
write(color(` ${c.dim(F_POINTER)} ${positions}\n`));
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
write("\n");
|
|
805
|
+
}
|
|
806
|
+
onTestRemoved(trigger) {
|
|
807
|
+
this.log(c.yellow("Test removed...") + (trigger ? c.dim(` [ ${this.relative(trigger)} ]\n`) : ""));
|
|
808
|
+
}
|
|
809
|
+
shouldLog(log, taskState) {
|
|
810
|
+
if (this.ctx.config.silent === true) return false;
|
|
811
|
+
if (this.ctx.config.silent === "passed-only" && taskState !== "failed") return false;
|
|
812
|
+
if (this.ctx.config.onConsoleLog) {
|
|
813
|
+
const task = log.taskId ? this.ctx.state.idMap.get(log.taskId) : void 0;
|
|
814
|
+
const entity = task && this.ctx.state.getReportedEntity(task);
|
|
815
|
+
if (this.ctx.config.onConsoleLog(log.content, log.type, entity) === false) return false;
|
|
816
|
+
}
|
|
817
|
+
return true;
|
|
818
|
+
}
|
|
819
|
+
onServerRestart(reason) {
|
|
820
|
+
this.log(c.bold(c.magenta(reason === "config" ? "\nRestarting due to config changes..." : "\nRestarting Vitest...")));
|
|
821
|
+
}
|
|
822
|
+
reportSummary(files, errors) {
|
|
823
|
+
this.printErrorsSummary(files, errors);
|
|
824
|
+
if (this.ctx.config.mode === "benchmark") this.reportBenchmarkSummary(files);
|
|
825
|
+
else this.reportTestSummary(files, errors);
|
|
826
|
+
}
|
|
827
|
+
reportTestSummary(files, errors) {
|
|
828
|
+
this.log();
|
|
829
|
+
const affectedFiles = [...this.failedUnwatchedFiles.map((m) => m.task), ...files];
|
|
830
|
+
const tests = getTests(affectedFiles);
|
|
831
|
+
const snapshotOutput = renderSnapshotSummary(this.ctx.config.root, this.ctx.snapshot.summary);
|
|
832
|
+
for (const [index, snapshot] of snapshotOutput.entries()) {
|
|
833
|
+
const title = index === 0 ? "Snapshots" : "";
|
|
834
|
+
this.log(`${padSummaryTitle(title)} ${snapshot}`);
|
|
835
|
+
}
|
|
836
|
+
if (snapshotOutput.length > 1) this.log();
|
|
837
|
+
this.log(padSummaryTitle("Test Files"), getStateString$1(affectedFiles));
|
|
838
|
+
this.log(padSummaryTitle("Tests"), getStateString$1(tests));
|
|
839
|
+
if (this.ctx.projects.some((c) => c.config.typecheck.enabled)) {
|
|
840
|
+
const failed = tests.filter((t) => t.meta?.typecheck && t.result?.errors?.length);
|
|
841
|
+
this.log(padSummaryTitle("Type Errors"), failed.length ? c.bold(c.red(`${failed.length} failed`)) : c.dim("no errors"));
|
|
842
|
+
}
|
|
843
|
+
if (errors.length) this.log(padSummaryTitle("Errors"), c.bold(c.red(`${errors.length} error${errors.length > 1 ? "s" : ""}`)));
|
|
844
|
+
this.log(padSummaryTitle("Start at"), this._timeStart);
|
|
845
|
+
const collectTime = sum(files, (file) => file.collectDuration);
|
|
846
|
+
const testsTime = sum(files, (file) => file.result?.duration);
|
|
847
|
+
const setupTime = sum(files, (file) => file.setupDuration);
|
|
848
|
+
if (this.watchFilters) this.log(padSummaryTitle("Duration"), formatTime(collectTime + testsTime + setupTime));
|
|
849
|
+
else {
|
|
850
|
+
const blobs = this.ctx.state.blobs;
|
|
851
|
+
// Execution time is either sum of all runs of `--merge-reports` or the current run's time
|
|
852
|
+
const executionTime = blobs?.executionTimes ? sum(blobs.executionTimes, (time) => time) : this.end - this.start;
|
|
853
|
+
const environmentTime = sum(files, (file) => file.environmentLoad);
|
|
854
|
+
const transformTime = this.ctx.state.transformTime;
|
|
855
|
+
const typecheck = sum(this.ctx.projects, (project) => project.typechecker?.getResult().time);
|
|
856
|
+
const timers = [
|
|
857
|
+
`transform ${formatTime(transformTime)}`,
|
|
858
|
+
`setup ${formatTime(setupTime)}`,
|
|
859
|
+
`import ${formatTime(collectTime)}`,
|
|
860
|
+
`tests ${formatTime(testsTime)}`,
|
|
861
|
+
`environment ${formatTime(environmentTime)}`,
|
|
862
|
+
typecheck && `typecheck ${formatTime(typecheck)}`
|
|
863
|
+
].filter(Boolean).join(", ");
|
|
864
|
+
this.log(padSummaryTitle("Duration"), formatTime(executionTime) + c.dim(` (${timers})`));
|
|
865
|
+
if (blobs?.executionTimes) this.log(padSummaryTitle("Per blob") + blobs.executionTimes.map((time) => ` ${formatTime(time)}`).join(""));
|
|
866
|
+
}
|
|
867
|
+
if (this.ctx.config.experimental.printImportBreakdown) this.printImportsBreakdown();
|
|
868
|
+
this.log();
|
|
869
|
+
}
|
|
870
|
+
printImportsBreakdown() {
|
|
871
|
+
const testModules = this.ctx.state.getTestModules();
|
|
872
|
+
const allImports = [];
|
|
873
|
+
for (const testModule of testModules) {
|
|
874
|
+
const importDurations = testModule.diagnostic().importDurations;
|
|
875
|
+
for (const filePath in importDurations) {
|
|
876
|
+
const duration = importDurations[filePath];
|
|
877
|
+
allImports.push({
|
|
878
|
+
importedModuleId: filePath,
|
|
879
|
+
testModule,
|
|
880
|
+
selfTime: duration.selfTime,
|
|
881
|
+
totalTime: duration.totalTime,
|
|
882
|
+
external: duration.external
|
|
883
|
+
});
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
if (allImports.length === 0) return;
|
|
887
|
+
const sortedImports = allImports.sort((a, b) => b.totalTime - a.totalTime);
|
|
888
|
+
const maxTotalTime = sortedImports[0].totalTime;
|
|
889
|
+
const topImports = sortedImports.slice(0, 10);
|
|
890
|
+
const totalSelfTime = allImports.reduce((sum, imp) => sum + imp.selfTime, 0);
|
|
891
|
+
const totalTotalTime = allImports.reduce((sum, imp) => sum + imp.totalTime, 0);
|
|
892
|
+
const slowestImport = sortedImports[0];
|
|
893
|
+
this.log();
|
|
894
|
+
this.log(c.bold("Import Duration Breakdown") + c.dim(" (ordered by Total Time) (Top 10)"));
|
|
895
|
+
// if there are multiple files, it's highly possible that some of them will import the same large file
|
|
896
|
+
// we group them to show the distinction between those files more easily
|
|
897
|
+
// Import Duration Breakdown (ordered by Total Time) (Top 10)
|
|
898
|
+
// .../fields/FieldFile/__tests__/FieldFile.spec.ts self: 7ms total: 1.01s ████████████████████
|
|
899
|
+
// ↳ tests/support/components/index.ts self: 0ms total: 861ms █████████████████░░░
|
|
900
|
+
// ↳ tests/support/components/renderComponent.ts self: 59ms total: 861ms █████████████████░░░
|
|
901
|
+
// ...s__/apps/desktop/form-updater.desktop.spec.ts self: 8ms total: 991ms ████████████████████
|
|
902
|
+
// ...sts__/apps/mobile/form-updater.mobile.spec.ts self: 11ms total: 990ms ████████████████████
|
|
903
|
+
// shared/components/Form/__tests__/Form.spec.ts self: 5ms total: 988ms ████████████████████
|
|
904
|
+
// ↳ tests/support/components/index.ts self: 0ms total: 935ms ███████████████████░
|
|
905
|
+
// ↳ tests/support/components/renderComponent.ts self: 61ms total: 935ms ███████████████████░
|
|
906
|
+
// ...ditor/features/link/__test__/LinkForm.spec.ts self: 7ms total: 972ms ███████████████████░
|
|
907
|
+
// ↳ tests/support/components/renderComponent.ts self: 56ms total: 936ms ███████████████████░
|
|
908
|
+
const groupedImports = Object.entries(
|
|
909
|
+
groupBy(topImports, (i) => i.testModule.id)
|
|
910
|
+
// the first one is always the highest because the modules are already sorted
|
|
911
|
+
).sort(([, imps1], [, imps2]) => imps2[0].totalTime - imps1[0].totalTime);
|
|
912
|
+
for (const [_, group] of groupedImports) group.forEach((imp, index) => {
|
|
913
|
+
const barWidth = 20;
|
|
914
|
+
const filledWidth = Math.round(imp.totalTime / maxTotalTime * barWidth);
|
|
915
|
+
const bar = c.cyan("█".repeat(filledWidth)) + c.dim("░".repeat(barWidth - filledWidth));
|
|
916
|
+
// only show the arrow if there is more than 1 group
|
|
917
|
+
const pathDisplay = this.ellipsisPath(imp.importedModuleId, imp.external, groupedImports.length > 1 && index > 0);
|
|
918
|
+
this.log(`${pathDisplay} ${c.dim("self:")} ${this.importDurationTime(imp.selfTime)} ${c.dim("total:")} ${this.importDurationTime(imp.totalTime)} ${bar}`);
|
|
919
|
+
});
|
|
920
|
+
this.log();
|
|
921
|
+
this.log(c.dim("Total imports: ") + allImports.length);
|
|
922
|
+
this.log(c.dim("Slowest import (total-time): ") + formatTime(slowestImport.totalTime));
|
|
923
|
+
this.log(c.dim("Total import time (self/total): ") + formatTime(totalSelfTime) + c.dim(" / ") + formatTime(totalTotalTime));
|
|
924
|
+
}
|
|
925
|
+
importDurationTime(duration) {
|
|
926
|
+
return (duration >= 500 ? c.red : duration >= 100 ? c.yellow : (c) => c)(formatTime(duration).padStart(6));
|
|
927
|
+
}
|
|
928
|
+
ellipsisPath(path, external, nested) {
|
|
929
|
+
const pathDisplay = this.relative(path);
|
|
930
|
+
const color = external ? c.magenta : (c) => c;
|
|
931
|
+
const slicedPath = pathDisplay.slice(-44);
|
|
932
|
+
let title = "";
|
|
933
|
+
if (pathDisplay.length > slicedPath.length) title += "...";
|
|
934
|
+
if (nested) title = ` ${F_DOWN_RIGHT} ${title}`;
|
|
935
|
+
title += slicedPath;
|
|
936
|
+
return color(title.padEnd(50));
|
|
937
|
+
}
|
|
938
|
+
printErrorsSummary(files, errors) {
|
|
939
|
+
const suites = getSuites(files);
|
|
940
|
+
const tests = getTests(files);
|
|
941
|
+
const failedSuites = suites.filter((i) => i.result?.errors);
|
|
942
|
+
const failedTests = tests.filter((i) => i.result?.state === "fail");
|
|
943
|
+
const failedTotal = countTestErrors(failedSuites) + countTestErrors(failedTests);
|
|
944
|
+
// TODO: error divider should take into account merged errors for counting
|
|
945
|
+
let current = 1;
|
|
946
|
+
const errorDivider = () => this.error(`${c.red(c.dim(divider(`[${current++}/${failedTotal}]`, void 0, 1)))}\n`);
|
|
947
|
+
if (failedSuites.length) {
|
|
948
|
+
this.error(`\n${errorBanner(`Failed Suites ${failedSuites.length}`)}\n`);
|
|
949
|
+
this.printTaskErrors(failedSuites, errorDivider);
|
|
950
|
+
}
|
|
951
|
+
if (failedTests.length) {
|
|
952
|
+
this.error(`\n${errorBanner(`Failed Tests ${failedTests.length}`)}\n`);
|
|
953
|
+
this.printTaskErrors(failedTests, errorDivider);
|
|
954
|
+
}
|
|
955
|
+
if (errors.length) {
|
|
956
|
+
this.ctx.logger.printUnhandledErrors(errors);
|
|
957
|
+
this.error();
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
reportBenchmarkSummary(files) {
|
|
961
|
+
const topBenches = getTests(files).filter((i) => i.result?.benchmark?.rank === 1);
|
|
962
|
+
this.log(`\n${withLabel("cyan", "BENCH", "Summary\n")}`);
|
|
963
|
+
for (const bench of topBenches) {
|
|
964
|
+
const group = bench.suite || bench.file;
|
|
965
|
+
if (!group) continue;
|
|
966
|
+
const groupName = this.getFullName(group, separator);
|
|
967
|
+
const project = this.ctx.projects.find((p) => p.name === bench.file.projectName);
|
|
968
|
+
this.log(` ${formatProjectName(project)}${bench.name}${c.dim(` - ${groupName}`)}`);
|
|
969
|
+
const siblings = group.tasks.filter((i) => i.meta.benchmark && i.result?.benchmark && i !== bench).sort((a, b) => a.result.benchmark.rank - b.result.benchmark.rank);
|
|
970
|
+
for (const sibling of siblings) {
|
|
971
|
+
const number = (sibling.result.benchmark.mean / bench.result.benchmark.mean).toFixed(2);
|
|
972
|
+
this.log(c.green(` ${number}x `) + c.gray("faster than ") + sibling.name);
|
|
973
|
+
}
|
|
974
|
+
this.log("");
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
printTaskErrors(tasks, errorDivider) {
|
|
978
|
+
const errorsQueue = [];
|
|
979
|
+
for (const task of tasks)
|
|
980
|
+
// Merge identical errors
|
|
981
|
+
task.result?.errors?.forEach((error) => {
|
|
982
|
+
let previous;
|
|
983
|
+
if (error?.stack) previous = errorsQueue.find((i) => {
|
|
984
|
+
if (i[0]?.stack !== error.stack || i[0]?.diff !== error.diff) return false;
|
|
985
|
+
const currentProjectName = task?.projectName || task.file?.projectName || "";
|
|
986
|
+
const projectName = i[1][0]?.projectName || i[1][0].file?.projectName || "";
|
|
987
|
+
const currentAnnotations = task.type === "test" && task.annotations;
|
|
988
|
+
const itemAnnotations = i[1][0].type === "test" && i[1][0].annotations;
|
|
989
|
+
return projectName === currentProjectName && deepEqual(currentAnnotations, itemAnnotations);
|
|
990
|
+
});
|
|
991
|
+
if (previous) previous[1].push(task);
|
|
992
|
+
else errorsQueue.push([error, [task]]);
|
|
993
|
+
});
|
|
994
|
+
for (const [error, tasks] of errorsQueue) {
|
|
995
|
+
for (const task of tasks) {
|
|
996
|
+
const filepath = task?.filepath || "";
|
|
997
|
+
const projectName = task?.projectName || task.file?.projectName || "";
|
|
998
|
+
const project = this.ctx.projects.find((p) => p.name === projectName);
|
|
999
|
+
let name = this.getFullName(task, separator);
|
|
1000
|
+
if (filepath) name += c.dim(` [ ${this.relative(filepath)} ]`);
|
|
1001
|
+
this.ctx.logger.error(`${c.bgRed(c.bold(" FAIL "))} ${formatProjectName(project)}${name}`);
|
|
1002
|
+
}
|
|
1003
|
+
const screenshotPaths = tasks.map((t) => t.meta?.failScreenshotPath).filter((screenshot) => screenshot != null);
|
|
1004
|
+
this.ctx.logger.printError(error, {
|
|
1005
|
+
project: this.ctx.getProjectByName(tasks[0].file.projectName || ""),
|
|
1006
|
+
verbose: this.verbose,
|
|
1007
|
+
screenshotPaths,
|
|
1008
|
+
task: tasks[0]
|
|
1009
|
+
});
|
|
1010
|
+
if (tasks[0].type === "test" && tasks[0].annotations.length) {
|
|
1011
|
+
const test = this.ctx.state.getReportedEntity(tasks[0]);
|
|
1012
|
+
this.printAnnotations(test, "error", 1);
|
|
1013
|
+
this.error();
|
|
1014
|
+
}
|
|
1015
|
+
errorDivider();
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
function deepEqual(a, b) {
|
|
1020
|
+
if (a === b) return true;
|
|
1021
|
+
if (typeof a !== "object" || typeof b !== "object" || a === null || b === null) return false;
|
|
1022
|
+
const keysA = Object.keys(a);
|
|
1023
|
+
const keysB = Object.keys(b);
|
|
1024
|
+
if (keysA.length !== keysB.length) return false;
|
|
1025
|
+
for (const key of keysA) if (!keysB.includes(key) || !deepEqual(a[key], b[key])) return false;
|
|
1026
|
+
return true;
|
|
1027
|
+
}
|
|
1028
|
+
function sum(items, cb) {
|
|
1029
|
+
return items.reduce((total, next) => {
|
|
1030
|
+
return total + Math.max(cb(next) || 0, 0);
|
|
1031
|
+
}, 0);
|
|
1032
|
+
}
|
|
1033
|
+
function getIndentation(suite, level = 1) {
|
|
1034
|
+
if (suite.suite && !("filepath" in suite.suite)) return getIndentation(suite.suite, level + 1);
|
|
1035
|
+
return level;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
const DEFAULT_RENDER_INTERVAL_MS = 1e3;
|
|
1039
|
+
const ESC = "\x1B[";
|
|
1040
|
+
const CLEAR_LINE = `${ESC}K`;
|
|
1041
|
+
const MOVE_CURSOR_ONE_ROW_UP = `${ESC}1A`;
|
|
1042
|
+
const SYNC_START = `${ESC}?2026h`;
|
|
1043
|
+
const SYNC_END = `${ESC}?2026l`;
|
|
1044
|
+
/**
|
|
1045
|
+
* Renders content of `getWindow` at the bottom of the terminal and
|
|
1046
|
+
* forwards all other intercepted `stdout` and `stderr` logs above it.
|
|
1047
|
+
*/
|
|
1048
|
+
class WindowRenderer {
|
|
1049
|
+
options;
|
|
1050
|
+
streams;
|
|
1051
|
+
buffer = [];
|
|
1052
|
+
renderInterval = void 0;
|
|
1053
|
+
renderScheduled = false;
|
|
1054
|
+
windowHeight = 0;
|
|
1055
|
+
started = false;
|
|
1056
|
+
finished = false;
|
|
1057
|
+
cleanups = [];
|
|
1058
|
+
constructor(options) {
|
|
1059
|
+
this.options = {
|
|
1060
|
+
interval: DEFAULT_RENDER_INTERVAL_MS,
|
|
1061
|
+
...options
|
|
1062
|
+
};
|
|
1063
|
+
this.streams = {
|
|
1064
|
+
output: options.logger.outputStream.write.bind(options.logger.outputStream),
|
|
1065
|
+
error: options.logger.errorStream.write.bind(options.logger.errorStream)
|
|
1066
|
+
};
|
|
1067
|
+
this.cleanups.push(this.interceptStream(process.stdout, "output"), this.interceptStream(process.stderr, "error"));
|
|
1068
|
+
// Write buffered content on unexpected exits, e.g. direct `process.exit()` calls
|
|
1069
|
+
this.options.logger.onTerminalCleanup(() => {
|
|
1070
|
+
this.flushBuffer();
|
|
1071
|
+
this.stop();
|
|
1072
|
+
});
|
|
1073
|
+
}
|
|
1074
|
+
start() {
|
|
1075
|
+
this.started = true;
|
|
1076
|
+
this.finished = false;
|
|
1077
|
+
this.renderInterval = setInterval(() => this.schedule(), this.options.interval).unref();
|
|
1078
|
+
}
|
|
1079
|
+
stop() {
|
|
1080
|
+
this.cleanups.splice(0).map((fn) => fn());
|
|
1081
|
+
clearInterval(this.renderInterval);
|
|
1082
|
+
}
|
|
1083
|
+
/**
|
|
1084
|
+
* Write all buffered output and stop buffering.
|
|
1085
|
+
* All intercepted writes are forwarded to actual write after this.
|
|
1086
|
+
*/
|
|
1087
|
+
finish() {
|
|
1088
|
+
this.finished = true;
|
|
1089
|
+
this.flushBuffer();
|
|
1090
|
+
clearInterval(this.renderInterval);
|
|
1091
|
+
}
|
|
1092
|
+
/**
|
|
1093
|
+
* Queue new render update
|
|
1094
|
+
*/
|
|
1095
|
+
schedule() {
|
|
1096
|
+
if (!this.renderScheduled) {
|
|
1097
|
+
this.renderScheduled = true;
|
|
1098
|
+
this.flushBuffer();
|
|
1099
|
+
setTimeout(() => {
|
|
1100
|
+
this.renderScheduled = false;
|
|
1101
|
+
}, 100).unref();
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
flushBuffer() {
|
|
1105
|
+
if (this.buffer.length === 0) return this.render();
|
|
1106
|
+
let current;
|
|
1107
|
+
// Concatenate same types into a single render
|
|
1108
|
+
for (const next of this.buffer.splice(0)) {
|
|
1109
|
+
if (!current) {
|
|
1110
|
+
current = next;
|
|
1111
|
+
continue;
|
|
1112
|
+
}
|
|
1113
|
+
if (current.type !== next.type) {
|
|
1114
|
+
this.render(current.message, current.type);
|
|
1115
|
+
current = next;
|
|
1116
|
+
continue;
|
|
1117
|
+
}
|
|
1118
|
+
current.message += next.message;
|
|
1119
|
+
}
|
|
1120
|
+
if (current) this.render(current?.message, current?.type);
|
|
1121
|
+
}
|
|
1122
|
+
render(message, type = "output") {
|
|
1123
|
+
if (this.finished) {
|
|
1124
|
+
this.clearWindow();
|
|
1125
|
+
return this.write(message || "", type);
|
|
1126
|
+
}
|
|
1127
|
+
const windowContent = this.options.getWindow();
|
|
1128
|
+
const rowCount = getRenderedRowCount(windowContent, this.options.logger.getColumns());
|
|
1129
|
+
let padding = this.windowHeight - rowCount;
|
|
1130
|
+
if (padding > 0 && message) padding -= getRenderedRowCount([message], this.options.logger.getColumns());
|
|
1131
|
+
this.write(SYNC_START);
|
|
1132
|
+
this.clearWindow();
|
|
1133
|
+
if (message) this.write(message, type);
|
|
1134
|
+
if (padding > 0) this.write("\n".repeat(padding));
|
|
1135
|
+
this.write(windowContent.join("\n"));
|
|
1136
|
+
this.write(SYNC_END);
|
|
1137
|
+
this.windowHeight = rowCount + Math.max(0, padding);
|
|
1138
|
+
}
|
|
1139
|
+
clearWindow() {
|
|
1140
|
+
if (this.windowHeight === 0) return;
|
|
1141
|
+
this.write(CLEAR_LINE);
|
|
1142
|
+
for (let i = 1; i < this.windowHeight; i++) this.write(`${MOVE_CURSOR_ONE_ROW_UP}${CLEAR_LINE}`);
|
|
1143
|
+
this.windowHeight = 0;
|
|
1144
|
+
}
|
|
1145
|
+
interceptStream(stream, type) {
|
|
1146
|
+
const original = stream.write;
|
|
1147
|
+
// @ts-expect-error -- not sure how 2 overloads should be typed
|
|
1148
|
+
stream.write = (chunk, _, callback) => {
|
|
1149
|
+
if (chunk) if (this.finished || !this.started) this.write(chunk.toString(), type);
|
|
1150
|
+
else this.buffer.push({
|
|
1151
|
+
type,
|
|
1152
|
+
message: chunk.toString()
|
|
1153
|
+
});
|
|
1154
|
+
callback?.();
|
|
1155
|
+
};
|
|
1156
|
+
return function restore() {
|
|
1157
|
+
stream.write = original;
|
|
1158
|
+
};
|
|
1159
|
+
}
|
|
1160
|
+
write(message, type = "output") {
|
|
1161
|
+
this.streams[type](message);
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
/** Calculate the actual row count needed to render `rows` into `stream` */
|
|
1165
|
+
function getRenderedRowCount(rows, columns) {
|
|
1166
|
+
let count = 0;
|
|
1167
|
+
for (const row of rows) {
|
|
1168
|
+
const text = stripVTControlCharacters(row);
|
|
1169
|
+
count += Math.max(1, Math.ceil(text.length / columns));
|
|
1170
|
+
}
|
|
1171
|
+
return count;
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
const DURATION_UPDATE_INTERVAL_MS = 100;
|
|
1175
|
+
const FINISHED_TEST_CLEANUP_TIME_MS = 1e3;
|
|
1176
|
+
/**
|
|
1177
|
+
* Reporter extension that renders summary and forwards all other logs above itself.
|
|
1178
|
+
* Intended to be used by other reporters, not as a standalone reporter.
|
|
1179
|
+
*/
|
|
1180
|
+
class SummaryReporter {
|
|
1181
|
+
ctx;
|
|
1182
|
+
options;
|
|
1183
|
+
renderer;
|
|
1184
|
+
modules = emptyCounters();
|
|
1185
|
+
tests = emptyCounters();
|
|
1186
|
+
maxParallelTests = 0;
|
|
1187
|
+
/** Currently running test modules, may include finished test modules too */
|
|
1188
|
+
runningModules = /* @__PURE__ */ new Map();
|
|
1189
|
+
/** ID of finished `this.runningModules` that are currently being shown */
|
|
1190
|
+
finishedModules = /* @__PURE__ */ new Map();
|
|
1191
|
+
startTime = "";
|
|
1192
|
+
currentTime = 0;
|
|
1193
|
+
duration = 0;
|
|
1194
|
+
durationInterval = void 0;
|
|
1195
|
+
onInit(ctx, options = {}) {
|
|
1196
|
+
this.ctx = ctx;
|
|
1197
|
+
this.options = {
|
|
1198
|
+
verbose: false,
|
|
1199
|
+
...options
|
|
1200
|
+
};
|
|
1201
|
+
this.renderer = new WindowRenderer({
|
|
1202
|
+
logger: ctx.logger,
|
|
1203
|
+
getWindow: () => this.createSummary()
|
|
1204
|
+
});
|
|
1205
|
+
this.ctx.onClose(() => {
|
|
1206
|
+
clearInterval(this.durationInterval);
|
|
1207
|
+
this.renderer.stop();
|
|
1208
|
+
});
|
|
1209
|
+
}
|
|
1210
|
+
onTestRunStart(specifications) {
|
|
1211
|
+
this.runningModules.clear();
|
|
1212
|
+
this.finishedModules.clear();
|
|
1213
|
+
this.modules = emptyCounters();
|
|
1214
|
+
this.tests = emptyCounters();
|
|
1215
|
+
this.startTimers();
|
|
1216
|
+
this.renderer.start();
|
|
1217
|
+
this.modules.total = specifications.length;
|
|
1218
|
+
}
|
|
1219
|
+
onTestRunEnd() {
|
|
1220
|
+
this.runningModules.clear();
|
|
1221
|
+
this.finishedModules.clear();
|
|
1222
|
+
this.renderer.finish();
|
|
1223
|
+
clearInterval(this.durationInterval);
|
|
1224
|
+
}
|
|
1225
|
+
onTestModuleQueued(module) {
|
|
1226
|
+
// When new test module starts, take the place of previously finished test module, if any
|
|
1227
|
+
if (this.finishedModules.size) {
|
|
1228
|
+
const finished = this.finishedModules.keys().next().value;
|
|
1229
|
+
this.removeTestModule(finished);
|
|
1230
|
+
}
|
|
1231
|
+
this.runningModules.set(module.id, initializeStats(module));
|
|
1232
|
+
this.renderer.schedule();
|
|
1233
|
+
}
|
|
1234
|
+
onTestModuleCollected(module) {
|
|
1235
|
+
let stats = this.runningModules.get(module.id);
|
|
1236
|
+
if (!stats) {
|
|
1237
|
+
stats = initializeStats(module);
|
|
1238
|
+
this.runningModules.set(module.id, stats);
|
|
1239
|
+
}
|
|
1240
|
+
const total = Array.from(module.children.allTests()).length;
|
|
1241
|
+
this.tests.total += total;
|
|
1242
|
+
stats.total = total;
|
|
1243
|
+
this.maxParallelTests = Math.max(this.maxParallelTests, this.runningModules.size);
|
|
1244
|
+
this.renderer.schedule();
|
|
1245
|
+
}
|
|
1246
|
+
onHookStart(options) {
|
|
1247
|
+
const stats = this.getHookStats(options);
|
|
1248
|
+
if (!stats) return;
|
|
1249
|
+
const hook = {
|
|
1250
|
+
name: options.name,
|
|
1251
|
+
visible: false,
|
|
1252
|
+
startTime: performance.now(),
|
|
1253
|
+
onFinish: () => {}
|
|
1254
|
+
};
|
|
1255
|
+
stats.hook?.onFinish?.();
|
|
1256
|
+
stats.hook = hook;
|
|
1257
|
+
const timeout = setTimeout(() => {
|
|
1258
|
+
hook.visible = true;
|
|
1259
|
+
}, this.ctx.config.slowTestThreshold).unref();
|
|
1260
|
+
hook.onFinish = () => clearTimeout(timeout);
|
|
1261
|
+
}
|
|
1262
|
+
onHookEnd(options) {
|
|
1263
|
+
const stats = this.getHookStats(options);
|
|
1264
|
+
if (stats?.hook?.name !== options.name) return;
|
|
1265
|
+
stats.hook.onFinish();
|
|
1266
|
+
stats.hook.visible = false;
|
|
1267
|
+
}
|
|
1268
|
+
onTestCaseReady(test) {
|
|
1269
|
+
// Track slow running tests only on verbose mode
|
|
1270
|
+
if (!this.options.verbose) return;
|
|
1271
|
+
const stats = this.runningModules.get(test.module.id);
|
|
1272
|
+
if (!stats || stats.tests.has(test.id)) return;
|
|
1273
|
+
const slowTest = {
|
|
1274
|
+
name: test.name,
|
|
1275
|
+
visible: false,
|
|
1276
|
+
startTime: performance.now(),
|
|
1277
|
+
onFinish: () => {}
|
|
1278
|
+
};
|
|
1279
|
+
const timeout = setTimeout(() => {
|
|
1280
|
+
slowTest.visible = true;
|
|
1281
|
+
}, this.ctx.config.slowTestThreshold).unref();
|
|
1282
|
+
slowTest.onFinish = () => {
|
|
1283
|
+
slowTest.hook?.onFinish();
|
|
1284
|
+
clearTimeout(timeout);
|
|
1285
|
+
};
|
|
1286
|
+
stats.tests.set(test.id, slowTest);
|
|
1287
|
+
}
|
|
1288
|
+
onTestCaseResult(test) {
|
|
1289
|
+
const stats = this.runningModules.get(test.module.id);
|
|
1290
|
+
if (!stats) return;
|
|
1291
|
+
stats.tests.get(test.id)?.onFinish();
|
|
1292
|
+
stats.tests.delete(test.id);
|
|
1293
|
+
stats.completed++;
|
|
1294
|
+
const result = test.result();
|
|
1295
|
+
if (result?.state === "passed") this.tests.passed++;
|
|
1296
|
+
else if (result?.state === "failed") this.tests.failed++;
|
|
1297
|
+
else if (!result?.state || result?.state === "skipped") this.tests.skipped++;
|
|
1298
|
+
this.renderer.schedule();
|
|
1299
|
+
}
|
|
1300
|
+
onTestModuleEnd(module) {
|
|
1301
|
+
const state = module.state();
|
|
1302
|
+
this.modules.completed++;
|
|
1303
|
+
if (state === "passed") this.modules.passed++;
|
|
1304
|
+
else if (state === "failed") this.modules.failed++;
|
|
1305
|
+
else if (module.task.mode === "todo" && state === "skipped") this.modules.todo++;
|
|
1306
|
+
else if (state === "skipped") this.modules.skipped++;
|
|
1307
|
+
// Keep finished tests visible in summary for a while if there are more tests left.
|
|
1308
|
+
// When a new test starts in onTestModuleQueued it will take this ones place.
|
|
1309
|
+
// This reduces flickering by making summary more stable.
|
|
1310
|
+
if (this.modules.total - this.modules.completed > this.maxParallelTests) this.finishedModules.set(module.id, setTimeout(() => {
|
|
1311
|
+
this.removeTestModule(module.id);
|
|
1312
|
+
}, FINISHED_TEST_CLEANUP_TIME_MS).unref());
|
|
1313
|
+
else
|
|
1314
|
+
// Run is about to end as there are less tests left than whole run had parallel at max.
|
|
1315
|
+
// Remove finished test immediately.
|
|
1316
|
+
this.removeTestModule(module.id);
|
|
1317
|
+
this.renderer.schedule();
|
|
1318
|
+
}
|
|
1319
|
+
getHookStats({ entity }) {
|
|
1320
|
+
// Track slow running hooks only on verbose mode
|
|
1321
|
+
if (!this.options.verbose) return;
|
|
1322
|
+
const module = entity.type === "module" ? entity : entity.module;
|
|
1323
|
+
const stats = this.runningModules.get(module.id);
|
|
1324
|
+
if (!stats) return;
|
|
1325
|
+
return entity.type === "test" ? stats.tests.get(entity.id) : stats;
|
|
1326
|
+
}
|
|
1327
|
+
createSummary() {
|
|
1328
|
+
const summary = [""];
|
|
1329
|
+
for (const testFile of Array.from(this.runningModules.values()).sort(sortRunningModules)) {
|
|
1330
|
+
const typecheck = testFile.typecheck ? `${c.bgBlue(c.bold(" TS "))} ` : "";
|
|
1331
|
+
summary.push(c.bold(c.yellow(` ${F_POINTER} `)) + formatProjectName({
|
|
1332
|
+
name: testFile.projectName,
|
|
1333
|
+
color: testFile.projectColor
|
|
1334
|
+
}) + typecheck + testFile.filename + c.dim(!testFile.completed && !testFile.total ? " [queued]" : ` ${testFile.completed}/${testFile.total}`));
|
|
1335
|
+
const slowTasks = [testFile.hook, ...testFile.tests.values()].filter((t) => t != null && t.visible);
|
|
1336
|
+
for (const [index, task] of slowTasks.entries()) {
|
|
1337
|
+
const elapsed = this.currentTime - task.startTime;
|
|
1338
|
+
const icon = index === slowTasks.length - 1 ? F_TREE_NODE_END : F_TREE_NODE_MIDDLE;
|
|
1339
|
+
summary.push(c.bold(c.yellow(` ${icon} `)) + task.name + c.bold(c.yellow(` ${formatTime(Math.max(0, elapsed))}`)));
|
|
1340
|
+
if (task.hook?.visible) summary.push(c.bold(c.yellow(` ${F_TREE_NODE_END} `)) + task.hook.name);
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
if (this.runningModules.size > 0) summary.push("");
|
|
1344
|
+
summary.push(padSummaryTitle("Test Files") + getStateString(this.modules));
|
|
1345
|
+
summary.push(padSummaryTitle("Tests") + getStateString(this.tests));
|
|
1346
|
+
summary.push(padSummaryTitle("Start at") + this.startTime);
|
|
1347
|
+
summary.push(padSummaryTitle("Duration") + formatTime(this.duration));
|
|
1348
|
+
summary.push("");
|
|
1349
|
+
return summary;
|
|
1350
|
+
}
|
|
1351
|
+
startTimers() {
|
|
1352
|
+
const start = performance.now();
|
|
1353
|
+
this.startTime = formatTimeString(/* @__PURE__ */ new Date());
|
|
1354
|
+
this.durationInterval = setInterval(() => {
|
|
1355
|
+
this.currentTime = performance.now();
|
|
1356
|
+
this.duration = this.currentTime - start;
|
|
1357
|
+
}, DURATION_UPDATE_INTERVAL_MS).unref();
|
|
1358
|
+
}
|
|
1359
|
+
removeTestModule(id) {
|
|
1360
|
+
if (!id) return;
|
|
1361
|
+
const testFile = this.runningModules.get(id);
|
|
1362
|
+
testFile?.hook?.onFinish();
|
|
1363
|
+
testFile?.tests?.forEach((test) => test.onFinish());
|
|
1364
|
+
this.runningModules.delete(id);
|
|
1365
|
+
clearTimeout(this.finishedModules.get(id));
|
|
1366
|
+
this.finishedModules.delete(id);
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
function emptyCounters() {
|
|
1370
|
+
return {
|
|
1371
|
+
completed: 0,
|
|
1372
|
+
passed: 0,
|
|
1373
|
+
failed: 0,
|
|
1374
|
+
skipped: 0,
|
|
1375
|
+
todo: 0,
|
|
1376
|
+
total: 0
|
|
1377
|
+
};
|
|
1378
|
+
}
|
|
1379
|
+
function getStateString(entry) {
|
|
1380
|
+
return [
|
|
1381
|
+
entry.failed ? c.bold(c.red(`${entry.failed} failed`)) : null,
|
|
1382
|
+
c.bold(c.green(`${entry.passed} passed`)),
|
|
1383
|
+
entry.skipped ? c.yellow(`${entry.skipped} skipped`) : null,
|
|
1384
|
+
entry.todo ? c.gray(`${entry.todo} todo`) : null
|
|
1385
|
+
].filter(Boolean).join(c.dim(" | ")) + c.gray(` (${entry.total})`);
|
|
1386
|
+
}
|
|
1387
|
+
function sortRunningModules(a, b) {
|
|
1388
|
+
if ((a.projectName || "") > (b.projectName || "")) return 1;
|
|
1389
|
+
if ((a.projectName || "") < (b.projectName || "")) return -1;
|
|
1390
|
+
return a.filename.localeCompare(b.filename);
|
|
1391
|
+
}
|
|
1392
|
+
function initializeStats(module) {
|
|
1393
|
+
return {
|
|
1394
|
+
total: 0,
|
|
1395
|
+
completed: 0,
|
|
1396
|
+
filename: module.task.name,
|
|
1397
|
+
projectName: module.project.name,
|
|
1398
|
+
projectColor: module.project.color,
|
|
1399
|
+
tests: /* @__PURE__ */ new Map(),
|
|
1400
|
+
typecheck: !!module.task.meta.typecheck
|
|
1401
|
+
};
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
class DefaultReporter extends BaseReporter {
|
|
1405
|
+
options;
|
|
1406
|
+
summary;
|
|
1407
|
+
constructor(options = {}) {
|
|
1408
|
+
super(options);
|
|
1409
|
+
this.options = {
|
|
1410
|
+
summary: true,
|
|
1411
|
+
...options
|
|
1412
|
+
};
|
|
1413
|
+
if (!this.isTTY) this.options.summary = false;
|
|
1414
|
+
if (this.options.summary) this.summary = new SummaryReporter();
|
|
1415
|
+
}
|
|
1416
|
+
onTestRunStart(specifications) {
|
|
1417
|
+
if (this.isTTY) {
|
|
1418
|
+
if (this.renderSucceed === void 0) this.renderSucceed = !!this.renderSucceed;
|
|
1419
|
+
if (this.renderSucceed !== true) this.renderSucceed = specifications.length <= 1;
|
|
1420
|
+
}
|
|
1421
|
+
super.onTestRunStart(specifications);
|
|
1422
|
+
this.summary?.onTestRunStart(specifications);
|
|
1423
|
+
}
|
|
1424
|
+
onTestRunEnd(testModules, unhandledErrors, reason) {
|
|
1425
|
+
super.onTestRunEnd(testModules, unhandledErrors, reason);
|
|
1426
|
+
this.summary?.onTestRunEnd();
|
|
1427
|
+
}
|
|
1428
|
+
onTestModuleQueued(file) {
|
|
1429
|
+
this.summary?.onTestModuleQueued(file);
|
|
1430
|
+
}
|
|
1431
|
+
onTestModuleCollected(module) {
|
|
1432
|
+
this.summary?.onTestModuleCollected(module);
|
|
1433
|
+
}
|
|
1434
|
+
onTestModuleEnd(module) {
|
|
1435
|
+
super.onTestModuleEnd(module);
|
|
1436
|
+
this.summary?.onTestModuleEnd(module);
|
|
1437
|
+
}
|
|
1438
|
+
onTestCaseReady(test) {
|
|
1439
|
+
this.summary?.onTestCaseReady(test);
|
|
1440
|
+
}
|
|
1441
|
+
onTestCaseResult(test) {
|
|
1442
|
+
super.onTestCaseResult(test);
|
|
1443
|
+
this.summary?.onTestCaseResult(test);
|
|
1444
|
+
}
|
|
1445
|
+
onHookStart(hook) {
|
|
1446
|
+
this.summary?.onHookStart(hook);
|
|
1447
|
+
}
|
|
1448
|
+
onHookEnd(hook) {
|
|
1449
|
+
this.summary?.onHookEnd(hook);
|
|
1450
|
+
}
|
|
1451
|
+
onInit(ctx) {
|
|
1452
|
+
super.onInit(ctx);
|
|
1453
|
+
this.summary?.onInit(ctx, { verbose: this.verbose });
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1457
|
+
class DotReporter extends BaseReporter {
|
|
1458
|
+
renderer;
|
|
1459
|
+
tests = /* @__PURE__ */ new Map();
|
|
1460
|
+
finishedTests = /* @__PURE__ */ new Set();
|
|
1461
|
+
onInit(ctx) {
|
|
1462
|
+
super.onInit(ctx);
|
|
1463
|
+
if (this.isTTY) {
|
|
1464
|
+
this.renderer = new WindowRenderer({
|
|
1465
|
+
logger: ctx.logger,
|
|
1466
|
+
getWindow: () => this.createSummary()
|
|
1467
|
+
});
|
|
1468
|
+
this.ctx.onClose(() => this.renderer?.stop());
|
|
1469
|
+
}
|
|
1470
|
+
}
|
|
1471
|
+
// Ignore default logging of base reporter
|
|
1472
|
+
printTestModule() {}
|
|
1473
|
+
onWatcherRerun(files, trigger) {
|
|
1474
|
+
this.tests.clear();
|
|
1475
|
+
this.renderer?.start();
|
|
1476
|
+
super.onWatcherRerun(files, trigger);
|
|
1477
|
+
}
|
|
1478
|
+
onTestRunEnd(testModules, unhandledErrors, reason) {
|
|
1479
|
+
if (this.isTTY) {
|
|
1480
|
+
const finalLog = formatTests(Array.from(this.tests.values()));
|
|
1481
|
+
this.ctx.logger.log(finalLog);
|
|
1482
|
+
} else this.ctx.logger.log();
|
|
1483
|
+
this.tests.clear();
|
|
1484
|
+
this.renderer?.finish();
|
|
1485
|
+
super.onTestRunEnd(testModules, unhandledErrors, reason);
|
|
1486
|
+
}
|
|
1487
|
+
onTestModuleCollected(module) {
|
|
1488
|
+
for (const test of module.children.allTests())
|
|
1489
|
+
// Dot reporter marks pending tests as running
|
|
1490
|
+
this.onTestCaseReady(test);
|
|
1491
|
+
}
|
|
1492
|
+
onTestCaseReady(test) {
|
|
1493
|
+
if (this.finishedTests.has(test.id)) return;
|
|
1494
|
+
this.tests.set(test.id, test.result().state || "run");
|
|
1495
|
+
this.renderer?.schedule();
|
|
1496
|
+
}
|
|
1497
|
+
onTestCaseResult(test) {
|
|
1498
|
+
const result = test.result().state;
|
|
1499
|
+
// On non-TTY the finished tests are printed immediately
|
|
1500
|
+
if (!this.isTTY && result !== "pending") this.ctx.logger.outputStream.write(formatTests([result]));
|
|
1501
|
+
super.onTestCaseResult(test);
|
|
1502
|
+
this.finishedTests.add(test.id);
|
|
1503
|
+
this.tests.set(test.id, result || "skipped");
|
|
1504
|
+
this.renderer?.schedule();
|
|
1505
|
+
}
|
|
1506
|
+
onTestModuleEnd(testModule) {
|
|
1507
|
+
super.onTestModuleEnd(testModule);
|
|
1508
|
+
if (!this.isTTY) return;
|
|
1509
|
+
const columns = this.ctx.logger.getColumns();
|
|
1510
|
+
if (this.tests.size < columns) return;
|
|
1511
|
+
const finishedTests = Array.from(this.tests).filter((entry) => entry[1] !== "pending");
|
|
1512
|
+
if (finishedTests.length < columns) return;
|
|
1513
|
+
// Remove finished tests from state and render them in static output
|
|
1514
|
+
const states = [];
|
|
1515
|
+
let count = 0;
|
|
1516
|
+
for (const [id, state] of finishedTests) {
|
|
1517
|
+
if (count++ >= columns) break;
|
|
1518
|
+
this.tests.delete(id);
|
|
1519
|
+
states.push(state);
|
|
1520
|
+
}
|
|
1521
|
+
this.ctx.logger.log(formatTests(states));
|
|
1522
|
+
this.renderer?.schedule();
|
|
1523
|
+
}
|
|
1524
|
+
createSummary() {
|
|
1525
|
+
return [formatTests(Array.from(this.tests.values())), ""];
|
|
1526
|
+
}
|
|
1527
|
+
}
|
|
1528
|
+
// These are compared with reference equality in formatTests
|
|
1529
|
+
const pass = {
|
|
1530
|
+
char: "·",
|
|
1531
|
+
color: c.green
|
|
1532
|
+
};
|
|
1533
|
+
const fail = {
|
|
1534
|
+
char: "x",
|
|
1535
|
+
color: c.red
|
|
1536
|
+
};
|
|
1537
|
+
const pending = {
|
|
1538
|
+
char: "*",
|
|
1539
|
+
color: c.yellow
|
|
1540
|
+
};
|
|
1541
|
+
const skip = {
|
|
1542
|
+
char: "-",
|
|
1543
|
+
color: (char) => c.dim(c.gray(char))
|
|
1544
|
+
};
|
|
1545
|
+
function getIcon(state) {
|
|
1546
|
+
switch (state) {
|
|
1547
|
+
case "passed": return pass;
|
|
1548
|
+
case "failed": return fail;
|
|
1549
|
+
case "skipped": return skip;
|
|
1550
|
+
default: return pending;
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
/**
|
|
1554
|
+
* Format test states into string while keeping ANSI escapes at minimal.
|
|
1555
|
+
* Sibling icons with same color are merged into a single c.color() call.
|
|
1556
|
+
*/
|
|
1557
|
+
function formatTests(states) {
|
|
1558
|
+
let currentIcon = pending;
|
|
1559
|
+
let count = 0;
|
|
1560
|
+
let output = "";
|
|
1561
|
+
for (const state of states) {
|
|
1562
|
+
const icon = getIcon(state);
|
|
1563
|
+
if (currentIcon === icon) {
|
|
1564
|
+
count++;
|
|
1565
|
+
continue;
|
|
1566
|
+
}
|
|
1567
|
+
output += currentIcon.color(currentIcon.char.repeat(count));
|
|
1568
|
+
// Start tracking new group
|
|
1569
|
+
count = 1;
|
|
1570
|
+
currentIcon = icon;
|
|
1571
|
+
}
|
|
1572
|
+
output += currentIcon.color(currentIcon.char.repeat(count));
|
|
1573
|
+
return output;
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1576
|
+
// src/vlq.ts
|
|
1577
|
+
var comma = ",".charCodeAt(0);
|
|
1578
|
+
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1579
|
+
var intToChar = new Uint8Array(64);
|
|
1580
|
+
var charToInt = new Uint8Array(128);
|
|
1581
|
+
for (let i = 0; i < chars.length; i++) {
|
|
1582
|
+
const c = chars.charCodeAt(i);
|
|
1583
|
+
intToChar[i] = c;
|
|
1584
|
+
charToInt[c] = i;
|
|
1585
|
+
}
|
|
1586
|
+
function decodeInteger(reader, relative) {
|
|
1587
|
+
let value = 0;
|
|
1588
|
+
let shift = 0;
|
|
1589
|
+
let integer = 0;
|
|
1590
|
+
do {
|
|
1591
|
+
const c = reader.next();
|
|
1592
|
+
integer = charToInt[c];
|
|
1593
|
+
value |= (integer & 31) << shift;
|
|
1594
|
+
shift += 5;
|
|
1595
|
+
} while (integer & 32);
|
|
1596
|
+
const shouldNegate = value & 1;
|
|
1597
|
+
value >>>= 1;
|
|
1598
|
+
if (shouldNegate) {
|
|
1599
|
+
value = -2147483648 | -value;
|
|
1600
|
+
}
|
|
1601
|
+
return relative + value;
|
|
1602
|
+
}
|
|
1603
|
+
function hasMoreVlq(reader, max) {
|
|
1604
|
+
if (reader.pos >= max) return false;
|
|
1605
|
+
return reader.peek() !== comma;
|
|
1606
|
+
}
|
|
1607
|
+
var StringReader = class {
|
|
1608
|
+
constructor(buffer) {
|
|
1609
|
+
this.pos = 0;
|
|
1610
|
+
this.buffer = buffer;
|
|
1611
|
+
}
|
|
1612
|
+
next() {
|
|
1613
|
+
return this.buffer.charCodeAt(this.pos++);
|
|
1614
|
+
}
|
|
1615
|
+
peek() {
|
|
1616
|
+
return this.buffer.charCodeAt(this.pos);
|
|
1617
|
+
}
|
|
1618
|
+
indexOf(char) {
|
|
1619
|
+
const { buffer, pos } = this;
|
|
1620
|
+
const idx = buffer.indexOf(char, pos);
|
|
1621
|
+
return idx === -1 ? buffer.length : idx;
|
|
1622
|
+
}
|
|
1623
|
+
};
|
|
1624
|
+
|
|
1625
|
+
// src/sourcemap-codec.ts
|
|
1626
|
+
function decode(mappings) {
|
|
1627
|
+
const { length } = mappings;
|
|
1628
|
+
const reader = new StringReader(mappings);
|
|
1629
|
+
const decoded = [];
|
|
1630
|
+
let genColumn = 0;
|
|
1631
|
+
let sourcesIndex = 0;
|
|
1632
|
+
let sourceLine = 0;
|
|
1633
|
+
let sourceColumn = 0;
|
|
1634
|
+
let namesIndex = 0;
|
|
1635
|
+
do {
|
|
1636
|
+
const semi = reader.indexOf(";");
|
|
1637
|
+
const line = [];
|
|
1638
|
+
let sorted = true;
|
|
1639
|
+
let lastCol = 0;
|
|
1640
|
+
genColumn = 0;
|
|
1641
|
+
while (reader.pos < semi) {
|
|
1642
|
+
let seg;
|
|
1643
|
+
genColumn = decodeInteger(reader, genColumn);
|
|
1644
|
+
if (genColumn < lastCol) sorted = false;
|
|
1645
|
+
lastCol = genColumn;
|
|
1646
|
+
if (hasMoreVlq(reader, semi)) {
|
|
1647
|
+
sourcesIndex = decodeInteger(reader, sourcesIndex);
|
|
1648
|
+
sourceLine = decodeInteger(reader, sourceLine);
|
|
1649
|
+
sourceColumn = decodeInteger(reader, sourceColumn);
|
|
1650
|
+
if (hasMoreVlq(reader, semi)) {
|
|
1651
|
+
namesIndex = decodeInteger(reader, namesIndex);
|
|
1652
|
+
seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];
|
|
1653
|
+
} else {
|
|
1654
|
+
seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];
|
|
1655
|
+
}
|
|
1656
|
+
} else {
|
|
1657
|
+
seg = [genColumn];
|
|
1658
|
+
}
|
|
1659
|
+
line.push(seg);
|
|
1660
|
+
reader.pos++;
|
|
1661
|
+
}
|
|
1662
|
+
if (!sorted) sort(line);
|
|
1663
|
+
decoded.push(line);
|
|
1664
|
+
reader.pos = semi + 1;
|
|
1665
|
+
} while (reader.pos <= length);
|
|
1666
|
+
return decoded;
|
|
1667
|
+
}
|
|
1668
|
+
function sort(line) {
|
|
1669
|
+
line.sort(sortComparator$1);
|
|
1670
|
+
}
|
|
1671
|
+
function sortComparator$1(a, b) {
|
|
1672
|
+
return a[0] - b[0];
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
// Matches the scheme of a URL, eg "http://"
|
|
1676
|
+
const schemeRegex = /^[\w+.-]+:\/\//;
|
|
1677
|
+
/**
|
|
1678
|
+
* Matches the parts of a URL:
|
|
1679
|
+
* 1. Scheme, including ":", guaranteed.
|
|
1680
|
+
* 2. User/password, including "@", optional.
|
|
1681
|
+
* 3. Host, guaranteed.
|
|
1682
|
+
* 4. Port, including ":", optional.
|
|
1683
|
+
* 5. Path, including "/", optional.
|
|
1684
|
+
* 6. Query, including "?", optional.
|
|
1685
|
+
* 7. Hash, including "#", optional.
|
|
1686
|
+
*/
|
|
1687
|
+
const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
|
|
1688
|
+
/**
|
|
1689
|
+
* File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
|
|
1690
|
+
* with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
|
|
1691
|
+
*
|
|
1692
|
+
* 1. Host, optional.
|
|
1693
|
+
* 2. Path, which may include "/", guaranteed.
|
|
1694
|
+
* 3. Query, including "?", optional.
|
|
1695
|
+
* 4. Hash, including "#", optional.
|
|
1696
|
+
*/
|
|
1697
|
+
const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
|
|
1698
|
+
function isAbsoluteUrl(input) {
|
|
1699
|
+
return schemeRegex.test(input);
|
|
1700
|
+
}
|
|
1701
|
+
function isSchemeRelativeUrl(input) {
|
|
1702
|
+
return input.startsWith('//');
|
|
1703
|
+
}
|
|
1704
|
+
function isAbsolutePath(input) {
|
|
1705
|
+
return input.startsWith('/');
|
|
1706
|
+
}
|
|
1707
|
+
function isFileUrl(input) {
|
|
1708
|
+
return input.startsWith('file:');
|
|
1709
|
+
}
|
|
1710
|
+
function isRelative(input) {
|
|
1711
|
+
return /^[.?#]/.test(input);
|
|
1712
|
+
}
|
|
1713
|
+
function parseAbsoluteUrl(input) {
|
|
1714
|
+
const match = urlRegex.exec(input);
|
|
1715
|
+
return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
|
|
1716
|
+
}
|
|
1717
|
+
function parseFileUrl(input) {
|
|
1718
|
+
const match = fileRegex.exec(input);
|
|
1719
|
+
const path = match[2];
|
|
1720
|
+
return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
|
|
1721
|
+
}
|
|
1722
|
+
function makeUrl(scheme, user, host, port, path, query, hash) {
|
|
1723
|
+
return {
|
|
1724
|
+
scheme,
|
|
1725
|
+
user,
|
|
1726
|
+
host,
|
|
1727
|
+
port,
|
|
1728
|
+
path,
|
|
1729
|
+
query,
|
|
1730
|
+
hash,
|
|
1731
|
+
type: 7 /* Absolute */,
|
|
1732
|
+
};
|
|
1733
|
+
}
|
|
1734
|
+
function parseUrl(input) {
|
|
1735
|
+
if (isSchemeRelativeUrl(input)) {
|
|
1736
|
+
const url = parseAbsoluteUrl('http:' + input);
|
|
1737
|
+
url.scheme = '';
|
|
1738
|
+
url.type = 6 /* SchemeRelative */;
|
|
1739
|
+
return url;
|
|
1740
|
+
}
|
|
1741
|
+
if (isAbsolutePath(input)) {
|
|
1742
|
+
const url = parseAbsoluteUrl('http://foo.com' + input);
|
|
1743
|
+
url.scheme = '';
|
|
1744
|
+
url.host = '';
|
|
1745
|
+
url.type = 5 /* AbsolutePath */;
|
|
1746
|
+
return url;
|
|
1747
|
+
}
|
|
1748
|
+
if (isFileUrl(input))
|
|
1749
|
+
return parseFileUrl(input);
|
|
1750
|
+
if (isAbsoluteUrl(input))
|
|
1751
|
+
return parseAbsoluteUrl(input);
|
|
1752
|
+
const url = parseAbsoluteUrl('http://foo.com/' + input);
|
|
1753
|
+
url.scheme = '';
|
|
1754
|
+
url.host = '';
|
|
1755
|
+
url.type = input
|
|
1756
|
+
? input.startsWith('?')
|
|
1757
|
+
? 3 /* Query */
|
|
1758
|
+
: input.startsWith('#')
|
|
1759
|
+
? 2 /* Hash */
|
|
1760
|
+
: 4 /* RelativePath */
|
|
1761
|
+
: 1 /* Empty */;
|
|
1762
|
+
return url;
|
|
1763
|
+
}
|
|
1764
|
+
function stripPathFilename(path) {
|
|
1765
|
+
// If a path ends with a parent directory "..", then it's a relative path with excess parent
|
|
1766
|
+
// paths. It's not a file, so we can't strip it.
|
|
1767
|
+
if (path.endsWith('/..'))
|
|
1768
|
+
return path;
|
|
1769
|
+
const index = path.lastIndexOf('/');
|
|
1770
|
+
return path.slice(0, index + 1);
|
|
1771
|
+
}
|
|
1772
|
+
function mergePaths(url, base) {
|
|
1773
|
+
normalizePath(base, base.type);
|
|
1774
|
+
// If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
|
|
1775
|
+
// path).
|
|
1776
|
+
if (url.path === '/') {
|
|
1777
|
+
url.path = base.path;
|
|
1778
|
+
}
|
|
1779
|
+
else {
|
|
1780
|
+
// Resolution happens relative to the base path's directory, not the file.
|
|
1781
|
+
url.path = stripPathFilename(base.path) + url.path;
|
|
1782
|
+
}
|
|
1783
|
+
}
|
|
1784
|
+
/**
|
|
1785
|
+
* The path can have empty directories "//", unneeded parents "foo/..", or current directory
|
|
1786
|
+
* "foo/.". We need to normalize to a standard representation.
|
|
1787
|
+
*/
|
|
1788
|
+
function normalizePath(url, type) {
|
|
1789
|
+
const rel = type <= 4 /* RelativePath */;
|
|
1790
|
+
const pieces = url.path.split('/');
|
|
1791
|
+
// We need to preserve the first piece always, so that we output a leading slash. The item at
|
|
1792
|
+
// pieces[0] is an empty string.
|
|
1793
|
+
let pointer = 1;
|
|
1794
|
+
// Positive is the number of real directories we've output, used for popping a parent directory.
|
|
1795
|
+
// Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
|
|
1796
|
+
let positive = 0;
|
|
1797
|
+
// We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
|
|
1798
|
+
// generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
|
|
1799
|
+
// real directory, we won't need to append, unless the other conditions happen again.
|
|
1800
|
+
let addTrailingSlash = false;
|
|
1801
|
+
for (let i = 1; i < pieces.length; i++) {
|
|
1802
|
+
const piece = pieces[i];
|
|
1803
|
+
// An empty directory, could be a trailing slash, or just a double "//" in the path.
|
|
1804
|
+
if (!piece) {
|
|
1805
|
+
addTrailingSlash = true;
|
|
1806
|
+
continue;
|
|
1807
|
+
}
|
|
1808
|
+
// If we encounter a real directory, then we don't need to append anymore.
|
|
1809
|
+
addTrailingSlash = false;
|
|
1810
|
+
// A current directory, which we can always drop.
|
|
1811
|
+
if (piece === '.')
|
|
1812
|
+
continue;
|
|
1813
|
+
// A parent directory, we need to see if there are any real directories we can pop. Else, we
|
|
1814
|
+
// have an excess of parents, and we'll need to keep the "..".
|
|
1815
|
+
if (piece === '..') {
|
|
1816
|
+
if (positive) {
|
|
1817
|
+
addTrailingSlash = true;
|
|
1818
|
+
positive--;
|
|
1819
|
+
pointer--;
|
|
1820
|
+
}
|
|
1821
|
+
else if (rel) {
|
|
1822
|
+
// If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
|
|
1823
|
+
// URL, protocol relative URL, or an absolute path, we don't need to keep excess.
|
|
1824
|
+
pieces[pointer++] = piece;
|
|
1825
|
+
}
|
|
1826
|
+
continue;
|
|
1827
|
+
}
|
|
1828
|
+
// We've encountered a real directory. Move it to the next insertion pointer, which accounts for
|
|
1829
|
+
// any popped or dropped directories.
|
|
1830
|
+
pieces[pointer++] = piece;
|
|
1831
|
+
positive++;
|
|
1832
|
+
}
|
|
1833
|
+
let path = '';
|
|
1834
|
+
for (let i = 1; i < pointer; i++) {
|
|
1835
|
+
path += '/' + pieces[i];
|
|
1836
|
+
}
|
|
1837
|
+
if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
|
|
1838
|
+
path += '/';
|
|
1839
|
+
}
|
|
1840
|
+
url.path = path;
|
|
1841
|
+
}
|
|
1842
|
+
/**
|
|
1843
|
+
* Attempts to resolve `input` URL/path relative to `base`.
|
|
1844
|
+
*/
|
|
1845
|
+
function resolve(input, base) {
|
|
1846
|
+
if (!input && !base)
|
|
1847
|
+
return '';
|
|
1848
|
+
const url = parseUrl(input);
|
|
1849
|
+
let inputType = url.type;
|
|
1850
|
+
if (base && inputType !== 7 /* Absolute */) {
|
|
1851
|
+
const baseUrl = parseUrl(base);
|
|
1852
|
+
const baseType = baseUrl.type;
|
|
1853
|
+
switch (inputType) {
|
|
1854
|
+
case 1 /* Empty */:
|
|
1855
|
+
url.hash = baseUrl.hash;
|
|
1856
|
+
// fall through
|
|
1857
|
+
case 2 /* Hash */:
|
|
1858
|
+
url.query = baseUrl.query;
|
|
1859
|
+
// fall through
|
|
1860
|
+
case 3 /* Query */:
|
|
1861
|
+
case 4 /* RelativePath */:
|
|
1862
|
+
mergePaths(url, baseUrl);
|
|
1863
|
+
// fall through
|
|
1864
|
+
case 5 /* AbsolutePath */:
|
|
1865
|
+
// The host, user, and port are joined, you can't copy one without the others.
|
|
1866
|
+
url.user = baseUrl.user;
|
|
1867
|
+
url.host = baseUrl.host;
|
|
1868
|
+
url.port = baseUrl.port;
|
|
1869
|
+
// fall through
|
|
1870
|
+
case 6 /* SchemeRelative */:
|
|
1871
|
+
// The input doesn't have a schema at least, so we need to copy at least that over.
|
|
1872
|
+
url.scheme = baseUrl.scheme;
|
|
1873
|
+
}
|
|
1874
|
+
if (baseType > inputType)
|
|
1875
|
+
inputType = baseType;
|
|
1876
|
+
}
|
|
1877
|
+
normalizePath(url, inputType);
|
|
1878
|
+
const queryHash = url.query + url.hash;
|
|
1879
|
+
switch (inputType) {
|
|
1880
|
+
// This is impossible, because of the empty checks at the start of the function.
|
|
1881
|
+
// case UrlType.Empty:
|
|
1882
|
+
case 2 /* Hash */:
|
|
1883
|
+
case 3 /* Query */:
|
|
1884
|
+
return queryHash;
|
|
1885
|
+
case 4 /* RelativePath */: {
|
|
1886
|
+
// The first char is always a "/", and we need it to be relative.
|
|
1887
|
+
const path = url.path.slice(1);
|
|
1888
|
+
if (!path)
|
|
1889
|
+
return queryHash || '.';
|
|
1890
|
+
if (isRelative(base || input) && !isRelative(path)) {
|
|
1891
|
+
// If base started with a leading ".", or there is no base and input started with a ".",
|
|
1892
|
+
// then we need to ensure that the relative path starts with a ".". We don't know if
|
|
1893
|
+
// relative starts with a "..", though, so check before prepending.
|
|
1894
|
+
return './' + path + queryHash;
|
|
1895
|
+
}
|
|
1896
|
+
return path + queryHash;
|
|
1897
|
+
}
|
|
1898
|
+
case 5 /* AbsolutePath */:
|
|
1899
|
+
return url.path + queryHash;
|
|
1900
|
+
default:
|
|
1901
|
+
return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
|
|
1902
|
+
}
|
|
1903
|
+
}
|
|
1904
|
+
|
|
1905
|
+
// src/trace-mapping.ts
|
|
1906
|
+
|
|
1907
|
+
// src/strip-filename.ts
|
|
1908
|
+
function stripFilename(path) {
|
|
1909
|
+
if (!path) return "";
|
|
1910
|
+
const index = path.lastIndexOf("/");
|
|
1911
|
+
return path.slice(0, index + 1);
|
|
1912
|
+
}
|
|
1913
|
+
|
|
1914
|
+
// src/resolve.ts
|
|
1915
|
+
function resolver(mapUrl, sourceRoot) {
|
|
1916
|
+
const from = stripFilename(mapUrl);
|
|
1917
|
+
const prefix = sourceRoot ? sourceRoot + "/" : "";
|
|
1918
|
+
return (source) => resolve(prefix + (source || ""), from);
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
// src/sourcemap-segment.ts
|
|
1922
|
+
var COLUMN = 0;
|
|
1923
|
+
var SOURCES_INDEX = 1;
|
|
1924
|
+
var SOURCE_LINE = 2;
|
|
1925
|
+
var SOURCE_COLUMN = 3;
|
|
1926
|
+
var NAMES_INDEX = 4;
|
|
1927
|
+
var REV_GENERATED_LINE = 1;
|
|
1928
|
+
var REV_GENERATED_COLUMN = 2;
|
|
1929
|
+
|
|
1930
|
+
// src/sort.ts
|
|
1931
|
+
function maybeSort(mappings, owned) {
|
|
1932
|
+
const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);
|
|
1933
|
+
if (unsortedIndex === mappings.length) return mappings;
|
|
1934
|
+
if (!owned) mappings = mappings.slice();
|
|
1935
|
+
for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {
|
|
1936
|
+
mappings[i] = sortSegments(mappings[i], owned);
|
|
1937
|
+
}
|
|
1938
|
+
return mappings;
|
|
1939
|
+
}
|
|
1940
|
+
function nextUnsortedSegmentLine(mappings, start) {
|
|
1941
|
+
for (let i = start; i < mappings.length; i++) {
|
|
1942
|
+
if (!isSorted(mappings[i])) return i;
|
|
1943
|
+
}
|
|
1944
|
+
return mappings.length;
|
|
1945
|
+
}
|
|
1946
|
+
function isSorted(line) {
|
|
1947
|
+
for (let j = 1; j < line.length; j++) {
|
|
1948
|
+
if (line[j][COLUMN] < line[j - 1][COLUMN]) {
|
|
1949
|
+
return false;
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
return true;
|
|
1953
|
+
}
|
|
1954
|
+
function sortSegments(line, owned) {
|
|
1955
|
+
if (!owned) line = line.slice();
|
|
1956
|
+
return line.sort(sortComparator);
|
|
1957
|
+
}
|
|
1958
|
+
function sortComparator(a, b) {
|
|
1959
|
+
return a[COLUMN] - b[COLUMN];
|
|
1960
|
+
}
|
|
1961
|
+
|
|
1962
|
+
// src/by-source.ts
|
|
1963
|
+
function buildBySources(decoded, memos) {
|
|
1964
|
+
const sources = memos.map(() => []);
|
|
1965
|
+
for (let i = 0; i < decoded.length; i++) {
|
|
1966
|
+
const line = decoded[i];
|
|
1967
|
+
for (let j = 0; j < line.length; j++) {
|
|
1968
|
+
const seg = line[j];
|
|
1969
|
+
if (seg.length === 1) continue;
|
|
1970
|
+
const sourceIndex2 = seg[SOURCES_INDEX];
|
|
1971
|
+
const sourceLine = seg[SOURCE_LINE];
|
|
1972
|
+
const sourceColumn = seg[SOURCE_COLUMN];
|
|
1973
|
+
const source = sources[sourceIndex2];
|
|
1974
|
+
const segs = source[sourceLine] || (source[sourceLine] = []);
|
|
1975
|
+
segs.push([sourceColumn, i, seg[COLUMN]]);
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1979
|
+
const source = sources[i];
|
|
1980
|
+
for (let j = 0; j < source.length; j++) {
|
|
1981
|
+
const line = source[j];
|
|
1982
|
+
if (line) line.sort(sortComparator);
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1985
|
+
return sources;
|
|
1986
|
+
}
|
|
1987
|
+
|
|
1988
|
+
// src/binary-search.ts
|
|
1989
|
+
var found = false;
|
|
1990
|
+
function binarySearch(haystack, needle, low, high) {
|
|
1991
|
+
while (low <= high) {
|
|
1992
|
+
const mid = low + (high - low >> 1);
|
|
1993
|
+
const cmp = haystack[mid][COLUMN] - needle;
|
|
1994
|
+
if (cmp === 0) {
|
|
1995
|
+
found = true;
|
|
1996
|
+
return mid;
|
|
1997
|
+
}
|
|
1998
|
+
if (cmp < 0) {
|
|
1999
|
+
low = mid + 1;
|
|
2000
|
+
} else {
|
|
2001
|
+
high = mid - 1;
|
|
2002
|
+
}
|
|
2003
|
+
}
|
|
2004
|
+
found = false;
|
|
2005
|
+
return low - 1;
|
|
2006
|
+
}
|
|
2007
|
+
function upperBound(haystack, needle, index) {
|
|
2008
|
+
for (let i = index + 1; i < haystack.length; index = i++) {
|
|
2009
|
+
if (haystack[i][COLUMN] !== needle) break;
|
|
2010
|
+
}
|
|
2011
|
+
return index;
|
|
2012
|
+
}
|
|
2013
|
+
function lowerBound(haystack, needle, index) {
|
|
2014
|
+
for (let i = index - 1; i >= 0; index = i--) {
|
|
2015
|
+
if (haystack[i][COLUMN] !== needle) break;
|
|
2016
|
+
}
|
|
2017
|
+
return index;
|
|
2018
|
+
}
|
|
2019
|
+
function memoizedState() {
|
|
2020
|
+
return {
|
|
2021
|
+
lastKey: -1,
|
|
2022
|
+
lastNeedle: -1,
|
|
2023
|
+
lastIndex: -1
|
|
2024
|
+
};
|
|
2025
|
+
}
|
|
2026
|
+
function memoizedBinarySearch(haystack, needle, state, key) {
|
|
2027
|
+
const { lastKey, lastNeedle, lastIndex } = state;
|
|
2028
|
+
let low = 0;
|
|
2029
|
+
let high = haystack.length - 1;
|
|
2030
|
+
if (key === lastKey) {
|
|
2031
|
+
if (needle === lastNeedle) {
|
|
2032
|
+
found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;
|
|
2033
|
+
return lastIndex;
|
|
2034
|
+
}
|
|
2035
|
+
if (needle >= lastNeedle) {
|
|
2036
|
+
low = lastIndex === -1 ? 0 : lastIndex;
|
|
2037
|
+
} else {
|
|
2038
|
+
high = lastIndex;
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
state.lastKey = key;
|
|
2042
|
+
state.lastNeedle = needle;
|
|
2043
|
+
return state.lastIndex = binarySearch(haystack, needle, low, high);
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2046
|
+
// src/types.ts
|
|
2047
|
+
function parse(map) {
|
|
2048
|
+
return typeof map === "string" ? JSON.parse(map) : map;
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
// src/trace-mapping.ts
|
|
2052
|
+
var LINE_GTR_ZERO = "`line` must be greater than 0 (lines start at line 1)";
|
|
2053
|
+
var COL_GTR_EQ_ZERO = "`column` must be greater than or equal to 0 (columns start at column 0)";
|
|
2054
|
+
var LEAST_UPPER_BOUND = -1;
|
|
2055
|
+
var GREATEST_LOWER_BOUND = 1;
|
|
2056
|
+
var TraceMap = class {
|
|
2057
|
+
constructor(map, mapUrl) {
|
|
2058
|
+
const isString = typeof map === "string";
|
|
2059
|
+
if (!isString && map._decodedMemo) return map;
|
|
2060
|
+
const parsed = parse(map);
|
|
2061
|
+
const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;
|
|
2062
|
+
this.version = version;
|
|
2063
|
+
this.file = file;
|
|
2064
|
+
this.names = names || [];
|
|
2065
|
+
this.sourceRoot = sourceRoot;
|
|
2066
|
+
this.sources = sources;
|
|
2067
|
+
this.sourcesContent = sourcesContent;
|
|
2068
|
+
this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || void 0;
|
|
2069
|
+
const resolve = resolver(mapUrl, sourceRoot);
|
|
2070
|
+
this.resolvedSources = sources.map(resolve);
|
|
2071
|
+
const { mappings } = parsed;
|
|
2072
|
+
if (typeof mappings === "string") {
|
|
2073
|
+
this._encoded = mappings;
|
|
2074
|
+
this._decoded = void 0;
|
|
2075
|
+
} else if (Array.isArray(mappings)) {
|
|
2076
|
+
this._encoded = void 0;
|
|
2077
|
+
this._decoded = maybeSort(mappings, isString);
|
|
2078
|
+
} else if (parsed.sections) {
|
|
2079
|
+
throw new Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);
|
|
2080
|
+
} else {
|
|
2081
|
+
throw new Error(`invalid source map: ${JSON.stringify(parsed)}`);
|
|
2082
|
+
}
|
|
2083
|
+
this._decodedMemo = memoizedState();
|
|
2084
|
+
this._bySources = void 0;
|
|
2085
|
+
this._bySourceMemos = void 0;
|
|
2086
|
+
}
|
|
2087
|
+
};
|
|
2088
|
+
function cast(map) {
|
|
2089
|
+
return map;
|
|
2090
|
+
}
|
|
2091
|
+
function decodedMappings(map) {
|
|
2092
|
+
var _a;
|
|
2093
|
+
return (_a = cast(map))._decoded || (_a._decoded = decode(cast(map)._encoded));
|
|
2094
|
+
}
|
|
2095
|
+
function originalPositionFor(map, needle) {
|
|
2096
|
+
let { line, column, bias } = needle;
|
|
2097
|
+
line--;
|
|
2098
|
+
if (line < 0) throw new Error(LINE_GTR_ZERO);
|
|
2099
|
+
if (column < 0) throw new Error(COL_GTR_EQ_ZERO);
|
|
2100
|
+
const decoded = decodedMappings(map);
|
|
2101
|
+
if (line >= decoded.length) return OMapping(null, null, null, null);
|
|
2102
|
+
const segments = decoded[line];
|
|
2103
|
+
const index = traceSegmentInternal(
|
|
2104
|
+
segments,
|
|
2105
|
+
cast(map)._decodedMemo,
|
|
2106
|
+
line,
|
|
2107
|
+
column,
|
|
2108
|
+
bias || GREATEST_LOWER_BOUND
|
|
2109
|
+
);
|
|
2110
|
+
if (index === -1) return OMapping(null, null, null, null);
|
|
2111
|
+
const segment = segments[index];
|
|
2112
|
+
if (segment.length === 1) return OMapping(null, null, null, null);
|
|
2113
|
+
const { names, resolvedSources } = map;
|
|
2114
|
+
return OMapping(
|
|
2115
|
+
resolvedSources[segment[SOURCES_INDEX]],
|
|
2116
|
+
segment[SOURCE_LINE] + 1,
|
|
2117
|
+
segment[SOURCE_COLUMN],
|
|
2118
|
+
segment.length === 5 ? names[segment[NAMES_INDEX]] : null
|
|
2119
|
+
);
|
|
2120
|
+
}
|
|
2121
|
+
function generatedPositionFor(map, needle) {
|
|
2122
|
+
const { source, line, column, bias } = needle;
|
|
2123
|
+
return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);
|
|
2124
|
+
}
|
|
2125
|
+
function eachMapping(map, cb) {
|
|
2126
|
+
const decoded = decodedMappings(map);
|
|
2127
|
+
const { names, resolvedSources } = map;
|
|
2128
|
+
for (let i = 0; i < decoded.length; i++) {
|
|
2129
|
+
const line = decoded[i];
|
|
2130
|
+
for (let j = 0; j < line.length; j++) {
|
|
2131
|
+
const seg = line[j];
|
|
2132
|
+
const generatedLine = i + 1;
|
|
2133
|
+
const generatedColumn = seg[0];
|
|
2134
|
+
let source = null;
|
|
2135
|
+
let originalLine = null;
|
|
2136
|
+
let originalColumn = null;
|
|
2137
|
+
let name = null;
|
|
2138
|
+
if (seg.length !== 1) {
|
|
2139
|
+
source = resolvedSources[seg[1]];
|
|
2140
|
+
originalLine = seg[2] + 1;
|
|
2141
|
+
originalColumn = seg[3];
|
|
2142
|
+
}
|
|
2143
|
+
if (seg.length === 5) name = names[seg[4]];
|
|
2144
|
+
cb({
|
|
2145
|
+
generatedLine,
|
|
2146
|
+
generatedColumn,
|
|
2147
|
+
source,
|
|
2148
|
+
originalLine,
|
|
2149
|
+
originalColumn,
|
|
2150
|
+
name
|
|
2151
|
+
});
|
|
2152
|
+
}
|
|
2153
|
+
}
|
|
2154
|
+
}
|
|
2155
|
+
function OMapping(source, line, column, name) {
|
|
2156
|
+
return { source, line, column, name };
|
|
2157
|
+
}
|
|
2158
|
+
function GMapping(line, column) {
|
|
2159
|
+
return { line, column };
|
|
2160
|
+
}
|
|
2161
|
+
function traceSegmentInternal(segments, memo, line, column, bias) {
|
|
2162
|
+
let index = memoizedBinarySearch(segments, column, memo, line);
|
|
2163
|
+
if (found) {
|
|
2164
|
+
index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);
|
|
2165
|
+
} else if (bias === LEAST_UPPER_BOUND) index++;
|
|
2166
|
+
if (index === -1 || index === segments.length) return -1;
|
|
2167
|
+
return index;
|
|
2168
|
+
}
|
|
2169
|
+
function generatedPosition(map, source, line, column, bias, all) {
|
|
2170
|
+
var _a, _b;
|
|
2171
|
+
line--;
|
|
2172
|
+
if (line < 0) throw new Error(LINE_GTR_ZERO);
|
|
2173
|
+
if (column < 0) throw new Error(COL_GTR_EQ_ZERO);
|
|
2174
|
+
const { sources, resolvedSources } = map;
|
|
2175
|
+
let sourceIndex2 = sources.indexOf(source);
|
|
2176
|
+
if (sourceIndex2 === -1) sourceIndex2 = resolvedSources.indexOf(source);
|
|
2177
|
+
if (sourceIndex2 === -1) return all ? [] : GMapping(null, null);
|
|
2178
|
+
const bySourceMemos = (_a = cast(map))._bySourceMemos || (_a._bySourceMemos = sources.map(memoizedState));
|
|
2179
|
+
const generated = (_b = cast(map))._bySources || (_b._bySources = buildBySources(decodedMappings(map), bySourceMemos));
|
|
2180
|
+
const segments = generated[sourceIndex2][line];
|
|
2181
|
+
if (segments == null) return all ? [] : GMapping(null, null);
|
|
2182
|
+
const memo = bySourceMemos[sourceIndex2];
|
|
2183
|
+
const index = traceSegmentInternal(segments, memo, line, column, bias);
|
|
2184
|
+
if (index === -1) return GMapping(null, null);
|
|
2185
|
+
const segment = segments[index];
|
|
2186
|
+
return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
// AST walker module for ESTree compatible trees
|
|
2190
|
+
|
|
2191
|
+
|
|
2192
|
+
// An ancestor walk keeps an array of ancestor nodes (including the
|
|
2193
|
+
// current node) and passes them to the callback as third parameter
|
|
2194
|
+
// (and also as state parameter when no other state is present).
|
|
2195
|
+
function ancestor(node, visitors, baseVisitor, state, override) {
|
|
2196
|
+
var ancestors = [];
|
|
2197
|
+
if (!baseVisitor) { baseVisitor = base
|
|
2198
|
+
; }(function c(node, st, override) {
|
|
2199
|
+
var type = override || node.type;
|
|
2200
|
+
var isNew = node !== ancestors[ancestors.length - 1];
|
|
2201
|
+
if (isNew) { ancestors.push(node); }
|
|
2202
|
+
baseVisitor[type](node, st, c);
|
|
2203
|
+
if (visitors[type]) { visitors[type](node, st || ancestors, ancestors); }
|
|
2204
|
+
if (isNew) { ancestors.pop(); }
|
|
2205
|
+
})(node, state, override);
|
|
2206
|
+
}
|
|
2207
|
+
|
|
2208
|
+
function skipThrough(node, st, c) { c(node, st); }
|
|
2209
|
+
function ignore(_node, _st, _c) {}
|
|
2210
|
+
|
|
2211
|
+
// Node walkers.
|
|
2212
|
+
|
|
2213
|
+
var base = {};
|
|
2214
|
+
|
|
2215
|
+
base.Program = base.BlockStatement = base.StaticBlock = function (node, st, c) {
|
|
2216
|
+
for (var i = 0, list = node.body; i < list.length; i += 1)
|
|
2217
|
+
{
|
|
2218
|
+
var stmt = list[i];
|
|
2219
|
+
|
|
2220
|
+
c(stmt, st, "Statement");
|
|
2221
|
+
}
|
|
2222
|
+
};
|
|
2223
|
+
base.Statement = skipThrough;
|
|
2224
|
+
base.EmptyStatement = ignore;
|
|
2225
|
+
base.ExpressionStatement = base.ParenthesizedExpression = base.ChainExpression =
|
|
2226
|
+
function (node, st, c) { return c(node.expression, st, "Expression"); };
|
|
2227
|
+
base.IfStatement = function (node, st, c) {
|
|
2228
|
+
c(node.test, st, "Expression");
|
|
2229
|
+
c(node.consequent, st, "Statement");
|
|
2230
|
+
if (node.alternate) { c(node.alternate, st, "Statement"); }
|
|
2231
|
+
};
|
|
2232
|
+
base.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); };
|
|
2233
|
+
base.BreakStatement = base.ContinueStatement = ignore;
|
|
2234
|
+
base.WithStatement = function (node, st, c) {
|
|
2235
|
+
c(node.object, st, "Expression");
|
|
2236
|
+
c(node.body, st, "Statement");
|
|
2237
|
+
};
|
|
2238
|
+
base.SwitchStatement = function (node, st, c) {
|
|
2239
|
+
c(node.discriminant, st, "Expression");
|
|
2240
|
+
for (var i = 0, list = node.cases; i < list.length; i += 1) {
|
|
2241
|
+
var cs = list[i];
|
|
2242
|
+
|
|
2243
|
+
c(cs, st);
|
|
2244
|
+
}
|
|
2245
|
+
};
|
|
2246
|
+
base.SwitchCase = function (node, st, c) {
|
|
2247
|
+
if (node.test) { c(node.test, st, "Expression"); }
|
|
2248
|
+
for (var i = 0, list = node.consequent; i < list.length; i += 1)
|
|
2249
|
+
{
|
|
2250
|
+
var cons = list[i];
|
|
2251
|
+
|
|
2252
|
+
c(cons, st, "Statement");
|
|
2253
|
+
}
|
|
2254
|
+
};
|
|
2255
|
+
base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {
|
|
2256
|
+
if (node.argument) { c(node.argument, st, "Expression"); }
|
|
2257
|
+
};
|
|
2258
|
+
base.ThrowStatement = base.SpreadElement =
|
|
2259
|
+
function (node, st, c) { return c(node.argument, st, "Expression"); };
|
|
2260
|
+
base.TryStatement = function (node, st, c) {
|
|
2261
|
+
c(node.block, st, "Statement");
|
|
2262
|
+
if (node.handler) { c(node.handler, st); }
|
|
2263
|
+
if (node.finalizer) { c(node.finalizer, st, "Statement"); }
|
|
2264
|
+
};
|
|
2265
|
+
base.CatchClause = function (node, st, c) {
|
|
2266
|
+
if (node.param) { c(node.param, st, "Pattern"); }
|
|
2267
|
+
c(node.body, st, "Statement");
|
|
2268
|
+
};
|
|
2269
|
+
base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
|
|
2270
|
+
c(node.test, st, "Expression");
|
|
2271
|
+
c(node.body, st, "Statement");
|
|
2272
|
+
};
|
|
2273
|
+
base.ForStatement = function (node, st, c) {
|
|
2274
|
+
if (node.init) { c(node.init, st, "ForInit"); }
|
|
2275
|
+
if (node.test) { c(node.test, st, "Expression"); }
|
|
2276
|
+
if (node.update) { c(node.update, st, "Expression"); }
|
|
2277
|
+
c(node.body, st, "Statement");
|
|
2278
|
+
};
|
|
2279
|
+
base.ForInStatement = base.ForOfStatement = function (node, st, c) {
|
|
2280
|
+
c(node.left, st, "ForInit");
|
|
2281
|
+
c(node.right, st, "Expression");
|
|
2282
|
+
c(node.body, st, "Statement");
|
|
2283
|
+
};
|
|
2284
|
+
base.ForInit = function (node, st, c) {
|
|
2285
|
+
if (node.type === "VariableDeclaration") { c(node, st); }
|
|
2286
|
+
else { c(node, st, "Expression"); }
|
|
2287
|
+
};
|
|
2288
|
+
base.DebuggerStatement = ignore;
|
|
2289
|
+
|
|
2290
|
+
base.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); };
|
|
2291
|
+
base.VariableDeclaration = function (node, st, c) {
|
|
2292
|
+
for (var i = 0, list = node.declarations; i < list.length; i += 1)
|
|
2293
|
+
{
|
|
2294
|
+
var decl = list[i];
|
|
2295
|
+
|
|
2296
|
+
c(decl, st);
|
|
2297
|
+
}
|
|
2298
|
+
};
|
|
2299
|
+
base.VariableDeclarator = function (node, st, c) {
|
|
2300
|
+
c(node.id, st, "Pattern");
|
|
2301
|
+
if (node.init) { c(node.init, st, "Expression"); }
|
|
2302
|
+
};
|
|
2303
|
+
|
|
2304
|
+
base.Function = function (node, st, c) {
|
|
2305
|
+
if (node.id) { c(node.id, st, "Pattern"); }
|
|
2306
|
+
for (var i = 0, list = node.params; i < list.length; i += 1)
|
|
2307
|
+
{
|
|
2308
|
+
var param = list[i];
|
|
2309
|
+
|
|
2310
|
+
c(param, st, "Pattern");
|
|
2311
|
+
}
|
|
2312
|
+
c(node.body, st, node.expression ? "Expression" : "Statement");
|
|
2313
|
+
};
|
|
2314
|
+
|
|
2315
|
+
base.Pattern = function (node, st, c) {
|
|
2316
|
+
if (node.type === "Identifier")
|
|
2317
|
+
{ c(node, st, "VariablePattern"); }
|
|
2318
|
+
else if (node.type === "MemberExpression")
|
|
2319
|
+
{ c(node, st, "MemberPattern"); }
|
|
2320
|
+
else
|
|
2321
|
+
{ c(node, st); }
|
|
2322
|
+
};
|
|
2323
|
+
base.VariablePattern = ignore;
|
|
2324
|
+
base.MemberPattern = skipThrough;
|
|
2325
|
+
base.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); };
|
|
2326
|
+
base.ArrayPattern = function (node, st, c) {
|
|
2327
|
+
for (var i = 0, list = node.elements; i < list.length; i += 1) {
|
|
2328
|
+
var elt = list[i];
|
|
2329
|
+
|
|
2330
|
+
if (elt) { c(elt, st, "Pattern"); }
|
|
2331
|
+
}
|
|
2332
|
+
};
|
|
2333
|
+
base.ObjectPattern = function (node, st, c) {
|
|
2334
|
+
for (var i = 0, list = node.properties; i < list.length; i += 1) {
|
|
2335
|
+
var prop = list[i];
|
|
2336
|
+
|
|
2337
|
+
if (prop.type === "Property") {
|
|
2338
|
+
if (prop.computed) { c(prop.key, st, "Expression"); }
|
|
2339
|
+
c(prop.value, st, "Pattern");
|
|
2340
|
+
} else if (prop.type === "RestElement") {
|
|
2341
|
+
c(prop.argument, st, "Pattern");
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2344
|
+
};
|
|
2345
|
+
|
|
2346
|
+
base.Expression = skipThrough;
|
|
2347
|
+
base.ThisExpression = base.Super = base.MetaProperty = ignore;
|
|
2348
|
+
base.ArrayExpression = function (node, st, c) {
|
|
2349
|
+
for (var i = 0, list = node.elements; i < list.length; i += 1) {
|
|
2350
|
+
var elt = list[i];
|
|
2351
|
+
|
|
2352
|
+
if (elt) { c(elt, st, "Expression"); }
|
|
2353
|
+
}
|
|
2354
|
+
};
|
|
2355
|
+
base.ObjectExpression = function (node, st, c) {
|
|
2356
|
+
for (var i = 0, list = node.properties; i < list.length; i += 1)
|
|
2357
|
+
{
|
|
2358
|
+
var prop = list[i];
|
|
2359
|
+
|
|
2360
|
+
c(prop, st);
|
|
2361
|
+
}
|
|
2362
|
+
};
|
|
2363
|
+
base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;
|
|
2364
|
+
base.SequenceExpression = function (node, st, c) {
|
|
2365
|
+
for (var i = 0, list = node.expressions; i < list.length; i += 1)
|
|
2366
|
+
{
|
|
2367
|
+
var expr = list[i];
|
|
2368
|
+
|
|
2369
|
+
c(expr, st, "Expression");
|
|
2370
|
+
}
|
|
2371
|
+
};
|
|
2372
|
+
base.TemplateLiteral = function (node, st, c) {
|
|
2373
|
+
for (var i = 0, list = node.quasis; i < list.length; i += 1)
|
|
2374
|
+
{
|
|
2375
|
+
var quasi = list[i];
|
|
2376
|
+
|
|
2377
|
+
c(quasi, st);
|
|
2378
|
+
}
|
|
2379
|
+
|
|
2380
|
+
for (var i$1 = 0, list$1 = node.expressions; i$1 < list$1.length; i$1 += 1)
|
|
2381
|
+
{
|
|
2382
|
+
var expr = list$1[i$1];
|
|
2383
|
+
|
|
2384
|
+
c(expr, st, "Expression");
|
|
2385
|
+
}
|
|
2386
|
+
};
|
|
2387
|
+
base.TemplateElement = ignore;
|
|
2388
|
+
base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
|
|
2389
|
+
c(node.argument, st, "Expression");
|
|
2390
|
+
};
|
|
2391
|
+
base.BinaryExpression = base.LogicalExpression = function (node, st, c) {
|
|
2392
|
+
c(node.left, st, "Expression");
|
|
2393
|
+
c(node.right, st, "Expression");
|
|
2394
|
+
};
|
|
2395
|
+
base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {
|
|
2396
|
+
c(node.left, st, "Pattern");
|
|
2397
|
+
c(node.right, st, "Expression");
|
|
2398
|
+
};
|
|
2399
|
+
base.ConditionalExpression = function (node, st, c) {
|
|
2400
|
+
c(node.test, st, "Expression");
|
|
2401
|
+
c(node.consequent, st, "Expression");
|
|
2402
|
+
c(node.alternate, st, "Expression");
|
|
2403
|
+
};
|
|
2404
|
+
base.NewExpression = base.CallExpression = function (node, st, c) {
|
|
2405
|
+
c(node.callee, st, "Expression");
|
|
2406
|
+
if (node.arguments)
|
|
2407
|
+
{ for (var i = 0, list = node.arguments; i < list.length; i += 1)
|
|
2408
|
+
{
|
|
2409
|
+
var arg = list[i];
|
|
2410
|
+
|
|
2411
|
+
c(arg, st, "Expression");
|
|
2412
|
+
} }
|
|
2413
|
+
};
|
|
2414
|
+
base.MemberExpression = function (node, st, c) {
|
|
2415
|
+
c(node.object, st, "Expression");
|
|
2416
|
+
if (node.computed) { c(node.property, st, "Expression"); }
|
|
2417
|
+
};
|
|
2418
|
+
base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
|
|
2419
|
+
if (node.declaration)
|
|
2420
|
+
{ c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
|
|
2421
|
+
if (node.source) { c(node.source, st, "Expression"); }
|
|
2422
|
+
};
|
|
2423
|
+
base.ExportAllDeclaration = function (node, st, c) {
|
|
2424
|
+
if (node.exported)
|
|
2425
|
+
{ c(node.exported, st); }
|
|
2426
|
+
c(node.source, st, "Expression");
|
|
2427
|
+
};
|
|
2428
|
+
base.ImportDeclaration = function (node, st, c) {
|
|
2429
|
+
for (var i = 0, list = node.specifiers; i < list.length; i += 1)
|
|
2430
|
+
{
|
|
2431
|
+
var spec = list[i];
|
|
2432
|
+
|
|
2433
|
+
c(spec, st);
|
|
2434
|
+
}
|
|
2435
|
+
c(node.source, st, "Expression");
|
|
2436
|
+
};
|
|
2437
|
+
base.ImportExpression = function (node, st, c) {
|
|
2438
|
+
c(node.source, st, "Expression");
|
|
2439
|
+
};
|
|
2440
|
+
base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.PrivateIdentifier = base.Literal = ignore;
|
|
2441
|
+
|
|
2442
|
+
base.TaggedTemplateExpression = function (node, st, c) {
|
|
2443
|
+
c(node.tag, st, "Expression");
|
|
2444
|
+
c(node.quasi, st, "Expression");
|
|
2445
|
+
};
|
|
2446
|
+
base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); };
|
|
2447
|
+
base.Class = function (node, st, c) {
|
|
2448
|
+
if (node.id) { c(node.id, st, "Pattern"); }
|
|
2449
|
+
if (node.superClass) { c(node.superClass, st, "Expression"); }
|
|
2450
|
+
c(node.body, st);
|
|
2451
|
+
};
|
|
2452
|
+
base.ClassBody = function (node, st, c) {
|
|
2453
|
+
for (var i = 0, list = node.body; i < list.length; i += 1)
|
|
2454
|
+
{
|
|
2455
|
+
var elt = list[i];
|
|
2456
|
+
|
|
2457
|
+
c(elt, st);
|
|
2458
|
+
}
|
|
2459
|
+
};
|
|
2460
|
+
base.MethodDefinition = base.PropertyDefinition = base.Property = function (node, st, c) {
|
|
2461
|
+
if (node.computed) { c(node.key, st, "Expression"); }
|
|
2462
|
+
if (node.value) { c(node.value, st, "Expression"); }
|
|
2463
|
+
};
|
|
2464
|
+
|
|
2465
|
+
async function collectTests(ctx, filepath) {
|
|
2466
|
+
const request = await ctx.vite.environments.ssr.transformRequest(filepath);
|
|
2467
|
+
if (!request) return null;
|
|
2468
|
+
const ast = await parseAstAsync(request.code);
|
|
2469
|
+
const testFilepath = relative(ctx.config.root, filepath);
|
|
2470
|
+
const projectName = ctx.name;
|
|
2471
|
+
const file = {
|
|
2472
|
+
filepath,
|
|
2473
|
+
type: "suite",
|
|
2474
|
+
id: generateHash(`${testFilepath}${projectName ? `${projectName}:__typecheck__` : "__typecheck__"}`),
|
|
2475
|
+
name: testFilepath,
|
|
2476
|
+
fullName: testFilepath,
|
|
2477
|
+
mode: "run",
|
|
2478
|
+
tasks: [],
|
|
2479
|
+
start: ast.start,
|
|
2480
|
+
end: ast.end,
|
|
2481
|
+
projectName,
|
|
2482
|
+
meta: { typecheck: true },
|
|
2483
|
+
file: null
|
|
2484
|
+
};
|
|
2485
|
+
file.file = file;
|
|
2486
|
+
const definitions = [];
|
|
2487
|
+
const getName = (callee) => {
|
|
2488
|
+
if (!callee) return null;
|
|
2489
|
+
if (callee.type === "Identifier") return callee.name;
|
|
2490
|
+
if (callee.type === "CallExpression") return getName(callee.callee);
|
|
2491
|
+
if (callee.type === "TaggedTemplateExpression") return getName(callee.tag);
|
|
2492
|
+
if (callee.type === "MemberExpression") {
|
|
2493
|
+
if (callee.object?.type === "Identifier" && [
|
|
2494
|
+
"it",
|
|
2495
|
+
"test",
|
|
2496
|
+
"describe",
|
|
2497
|
+
"suite"
|
|
2498
|
+
].includes(callee.object.name)) return callee.object?.name;
|
|
2499
|
+
// direct call as `__vite_ssr_exports_0__.test()`
|
|
2500
|
+
if (callee.object?.name?.startsWith("__vite_ssr_")) return getName(callee.property);
|
|
2501
|
+
// call as `__vite_ssr__.test.skip()`
|
|
2502
|
+
return getName(callee.object?.property);
|
|
2503
|
+
}
|
|
2504
|
+
// unwrap (0, ...)
|
|
2505
|
+
if (callee.type === "SequenceExpression" && callee.expressions.length === 2) {
|
|
2506
|
+
const [e0, e1] = callee.expressions;
|
|
2507
|
+
if (e0.type === "Literal" && e0.value === 0) return getName(e1);
|
|
2508
|
+
}
|
|
2509
|
+
return null;
|
|
2510
|
+
};
|
|
2511
|
+
ancestor(ast, { CallExpression(node) {
|
|
2512
|
+
const { callee } = node;
|
|
2513
|
+
const name = getName(callee);
|
|
2514
|
+
if (!name) return;
|
|
2515
|
+
if (![
|
|
2516
|
+
"it",
|
|
2517
|
+
"test",
|
|
2518
|
+
"describe",
|
|
2519
|
+
"suite"
|
|
2520
|
+
].includes(name)) return;
|
|
2521
|
+
const property = callee?.property?.name;
|
|
2522
|
+
let mode = !property || property === name ? "run" : property;
|
|
2523
|
+
// they will be picked up in the next iteration
|
|
2524
|
+
if ([
|
|
2525
|
+
"each",
|
|
2526
|
+
"for",
|
|
2527
|
+
"skipIf",
|
|
2528
|
+
"runIf"
|
|
2529
|
+
].includes(mode)) return;
|
|
2530
|
+
let start;
|
|
2531
|
+
const end = node.end;
|
|
2532
|
+
// .each
|
|
2533
|
+
if (callee.type === "CallExpression") start = callee.end;
|
|
2534
|
+
else if (callee.type === "TaggedTemplateExpression") start = callee.end + 1;
|
|
2535
|
+
else start = node.start;
|
|
2536
|
+
const { arguments: [messageNode] } = node;
|
|
2537
|
+
const message = messageNode?.type === "Literal" || messageNode?.type === "TemplateLiteral" ? request.code.slice(messageNode.start + 1, messageNode.end - 1) : request.code.slice(messageNode.start, messageNode.end);
|
|
2538
|
+
// cannot statically analyze, so we always skip it
|
|
2539
|
+
if (mode === "skipIf" || mode === "runIf") mode = "skip";
|
|
2540
|
+
definitions.push({
|
|
2541
|
+
start,
|
|
2542
|
+
end,
|
|
2543
|
+
name: message,
|
|
2544
|
+
type: name === "it" || name === "test" ? "test" : "suite",
|
|
2545
|
+
mode,
|
|
2546
|
+
task: null
|
|
2547
|
+
});
|
|
2548
|
+
} });
|
|
2549
|
+
let lastSuite = file;
|
|
2550
|
+
const updateLatestSuite = (index) => {
|
|
2551
|
+
while (lastSuite.suite && lastSuite.end < index) lastSuite = lastSuite.suite;
|
|
2552
|
+
return lastSuite;
|
|
2553
|
+
};
|
|
2554
|
+
definitions.sort((a, b) => a.start - b.start).forEach((definition) => {
|
|
2555
|
+
const latestSuite = updateLatestSuite(definition.start);
|
|
2556
|
+
let mode = definition.mode;
|
|
2557
|
+
if (latestSuite.mode !== "run")
|
|
2558
|
+
// inherit suite mode, if it's set
|
|
2559
|
+
mode = latestSuite.mode;
|
|
2560
|
+
if (definition.type === "suite") {
|
|
2561
|
+
const task = {
|
|
2562
|
+
type: definition.type,
|
|
2563
|
+
id: "",
|
|
2564
|
+
suite: latestSuite,
|
|
2565
|
+
file,
|
|
2566
|
+
tasks: [],
|
|
2567
|
+
mode,
|
|
2568
|
+
name: definition.name,
|
|
2569
|
+
fullName: createTaskName([lastSuite.fullName, definition.name]),
|
|
2570
|
+
fullTestName: createTaskName([lastSuite.fullTestName, definition.name]),
|
|
2571
|
+
end: definition.end,
|
|
2572
|
+
start: definition.start,
|
|
2573
|
+
meta: { typecheck: true }
|
|
2574
|
+
};
|
|
2575
|
+
definition.task = task;
|
|
2576
|
+
latestSuite.tasks.push(task);
|
|
2577
|
+
lastSuite = task;
|
|
2578
|
+
return;
|
|
2579
|
+
}
|
|
2580
|
+
const task = {
|
|
2581
|
+
type: definition.type,
|
|
2582
|
+
id: "",
|
|
2583
|
+
suite: latestSuite,
|
|
2584
|
+
file,
|
|
2585
|
+
mode,
|
|
2586
|
+
timeout: 0,
|
|
2587
|
+
context: {},
|
|
2588
|
+
name: definition.name,
|
|
2589
|
+
fullName: createTaskName([lastSuite.fullName, definition.name]),
|
|
2590
|
+
fullTestName: createTaskName([lastSuite.fullTestName, definition.name]),
|
|
2591
|
+
end: definition.end,
|
|
2592
|
+
start: definition.start,
|
|
2593
|
+
annotations: [],
|
|
2594
|
+
artifacts: [],
|
|
2595
|
+
meta: { typecheck: true }
|
|
2596
|
+
};
|
|
2597
|
+
definition.task = task;
|
|
2598
|
+
latestSuite.tasks.push(task);
|
|
2599
|
+
});
|
|
2600
|
+
calculateSuiteHash(file);
|
|
2601
|
+
const hasOnly = someTasksAreOnly(file);
|
|
2602
|
+
interpretTaskModes(file, ctx.config.testNamePattern, void 0, hasOnly, false, ctx.config.allowOnly);
|
|
2603
|
+
return {
|
|
2604
|
+
file,
|
|
2605
|
+
parsed: request.code,
|
|
2606
|
+
filepath,
|
|
2607
|
+
map: request.map,
|
|
2608
|
+
definitions
|
|
2609
|
+
};
|
|
2610
|
+
}
|
|
2611
|
+
|
|
2612
|
+
const newLineRegExp = /\r?\n/;
|
|
2613
|
+
const errCodeRegExp = /error TS(?<errCode>\d+)/;
|
|
2614
|
+
async function makeTscErrorInfo(errInfo) {
|
|
2615
|
+
const [errFilePathPos = "", ...errMsgRawArr] = errInfo.split(":");
|
|
2616
|
+
if (!errFilePathPos || errMsgRawArr.length === 0 || errMsgRawArr.join("").length === 0) return ["unknown filepath", null];
|
|
2617
|
+
const errMsgRaw = errMsgRawArr.join("").trim();
|
|
2618
|
+
// get filePath, line, col
|
|
2619
|
+
const [errFilePath, errPos] = errFilePathPos.slice(0, -1).split("(");
|
|
2620
|
+
if (!errFilePath || !errPos) return ["unknown filepath", null];
|
|
2621
|
+
const [errLine, errCol] = errPos.split(",");
|
|
2622
|
+
if (!errLine || !errCol) return [errFilePath, null];
|
|
2623
|
+
// get errCode, errMsg
|
|
2624
|
+
const execArr = errCodeRegExp.exec(errMsgRaw);
|
|
2625
|
+
if (!execArr) return [errFilePath, null];
|
|
2626
|
+
const errCodeStr = execArr.groups?.errCode ?? "";
|
|
2627
|
+
if (!errCodeStr) return [errFilePath, null];
|
|
2628
|
+
const line = Number(errLine);
|
|
2629
|
+
const col = Number(errCol);
|
|
2630
|
+
const errCode = Number(errCodeStr);
|
|
2631
|
+
return [errFilePath, {
|
|
2632
|
+
filePath: errFilePath,
|
|
2633
|
+
errCode,
|
|
2634
|
+
line,
|
|
2635
|
+
column: col,
|
|
2636
|
+
errMsg: errMsgRaw.slice(`error TS${errCode} `.length)
|
|
2637
|
+
}];
|
|
2638
|
+
}
|
|
2639
|
+
async function getRawErrsMapFromTsCompile(tscErrorStdout) {
|
|
2640
|
+
const rawErrsMap = /* @__PURE__ */ new Map();
|
|
2641
|
+
(await Promise.all(tscErrorStdout.split(newLineRegExp).reduce((prev, next) => {
|
|
2642
|
+
if (!next) return prev;
|
|
2643
|
+
else if (next[0] !== " ") prev.push(next);
|
|
2644
|
+
else prev[prev.length - 1] += `\n${next}`;
|
|
2645
|
+
return prev;
|
|
2646
|
+
}, []).map((errInfoLine) => makeTscErrorInfo(errInfoLine)))).forEach(([errFilePath, errInfo]) => {
|
|
2647
|
+
if (!errInfo) return;
|
|
2648
|
+
if (!rawErrsMap.has(errFilePath)) rawErrsMap.set(errFilePath, [errInfo]);
|
|
2649
|
+
else rawErrsMap.get(errFilePath)?.push(errInfo);
|
|
2650
|
+
});
|
|
2651
|
+
return rawErrsMap;
|
|
2652
|
+
}
|
|
2653
|
+
|
|
2654
|
+
class TypeCheckError extends Error {
|
|
2655
|
+
name = "TypeCheckError";
|
|
2656
|
+
constructor(message, stacks) {
|
|
2657
|
+
super(message);
|
|
2658
|
+
this.message = message;
|
|
2659
|
+
this.stacks = stacks;
|
|
2660
|
+
}
|
|
2661
|
+
}
|
|
2662
|
+
class Typechecker {
|
|
2663
|
+
_onParseStart;
|
|
2664
|
+
_onParseEnd;
|
|
2665
|
+
_onWatcherRerun;
|
|
2666
|
+
_result = {
|
|
2667
|
+
files: [],
|
|
2668
|
+
sourceErrors: [],
|
|
2669
|
+
time: 0
|
|
2670
|
+
};
|
|
2671
|
+
_startTime = 0;
|
|
2672
|
+
_output = "";
|
|
2673
|
+
_tests = {};
|
|
2674
|
+
process;
|
|
2675
|
+
files = [];
|
|
2676
|
+
constructor(project) {
|
|
2677
|
+
this.project = project;
|
|
2678
|
+
}
|
|
2679
|
+
setFiles(files) {
|
|
2680
|
+
this.files = files;
|
|
2681
|
+
}
|
|
2682
|
+
onParseStart(fn) {
|
|
2683
|
+
this._onParseStart = fn;
|
|
2684
|
+
}
|
|
2685
|
+
onParseEnd(fn) {
|
|
2686
|
+
this._onParseEnd = fn;
|
|
2687
|
+
}
|
|
2688
|
+
onWatcherRerun(fn) {
|
|
2689
|
+
this._onWatcherRerun = fn;
|
|
2690
|
+
}
|
|
2691
|
+
async collectFileTests(filepath) {
|
|
2692
|
+
return collectTests(this.project, filepath);
|
|
2693
|
+
}
|
|
2694
|
+
getFiles() {
|
|
2695
|
+
return this.files;
|
|
2696
|
+
}
|
|
2697
|
+
async collectTests() {
|
|
2698
|
+
const tests = (await Promise.all(this.getFiles().map((filepath) => this.collectFileTests(filepath)))).reduce((acc, data) => {
|
|
2699
|
+
if (!data) return acc;
|
|
2700
|
+
acc[data.filepath] = data;
|
|
2701
|
+
return acc;
|
|
2702
|
+
}, {});
|
|
2703
|
+
this._tests = tests;
|
|
2704
|
+
return tests;
|
|
2705
|
+
}
|
|
2706
|
+
markPassed(file) {
|
|
2707
|
+
if (!file.result?.state) file.result = { state: "pass" };
|
|
2708
|
+
const markTasks = (tasks) => {
|
|
2709
|
+
for (const task of tasks) {
|
|
2710
|
+
if ("tasks" in task) markTasks(task.tasks);
|
|
2711
|
+
if (!task.result?.state && (task.mode === "run" || task.mode === "queued")) task.result = { state: "pass" };
|
|
2712
|
+
}
|
|
2713
|
+
};
|
|
2714
|
+
markTasks(file.tasks);
|
|
2715
|
+
}
|
|
2716
|
+
async prepareResults(output) {
|
|
2717
|
+
// Detect if tsc output is help text instead of error output
|
|
2718
|
+
// This happens when tsconfig.json is missing and tsc can't find any config
|
|
2719
|
+
if (output.includes("The TypeScript Compiler - Version") || output.includes("COMMON COMMANDS")) {
|
|
2720
|
+
const { typecheck } = this.project.config;
|
|
2721
|
+
const msg = `TypeScript compiler returned help text instead of type checking results.
|
|
2722
|
+
This usually means the tsconfig file was not found.
|
|
2723
|
+
|
|
2724
|
+
Possible solutions:
|
|
2725
|
+
1. Ensure '${typecheck.tsconfig || "tsconfig.json"}' exists in your project root\n 2. If using a custom tsconfig, verify the path in your Vitest config:\n test: { typecheck: { tsconfig: 'path/to/tsconfig.json' } }\n 3. Check that the tsconfig file is valid JSON`;
|
|
2726
|
+
throw new Error(msg);
|
|
2727
|
+
}
|
|
2728
|
+
const typeErrors = await this.parseTscLikeOutput(output);
|
|
2729
|
+
const testFiles = new Set(this.getFiles());
|
|
2730
|
+
if (!this._tests) this._tests = await this.collectTests();
|
|
2731
|
+
const sourceErrors = [];
|
|
2732
|
+
const files = [];
|
|
2733
|
+
testFiles.forEach((path) => {
|
|
2734
|
+
const { file, definitions, map, parsed } = this._tests[path];
|
|
2735
|
+
const errors = typeErrors.get(path);
|
|
2736
|
+
files.push(file);
|
|
2737
|
+
if (!errors) {
|
|
2738
|
+
this.markPassed(file);
|
|
2739
|
+
return;
|
|
2740
|
+
}
|
|
2741
|
+
const sortedDefinitions = [...definitions.sort((a, b) => b.start - a.start)];
|
|
2742
|
+
// has no map for ".js" files that use // @ts-check
|
|
2743
|
+
const traceMap = map && new TraceMap(map);
|
|
2744
|
+
const indexMap = createLocationsIndexMap(parsed);
|
|
2745
|
+
const markState = (task, state) => {
|
|
2746
|
+
task.result = { state: task.mode === "run" || task.mode === "only" ? state : task.mode };
|
|
2747
|
+
if (task.suite) markState(task.suite, state);
|
|
2748
|
+
else if (task.file && task !== task.file) markState(task.file, state);
|
|
2749
|
+
};
|
|
2750
|
+
errors.forEach(({ error, originalError }) => {
|
|
2751
|
+
const processedPos = traceMap ? findGeneratedPosition(traceMap, {
|
|
2752
|
+
line: originalError.line,
|
|
2753
|
+
column: originalError.column,
|
|
2754
|
+
source: basename(path)
|
|
2755
|
+
}) : originalError;
|
|
2756
|
+
const line = processedPos.line ?? originalError.line;
|
|
2757
|
+
const column = processedPos.column ?? originalError.column;
|
|
2758
|
+
const index = indexMap.get(`${line}:${column}`);
|
|
2759
|
+
const definition = index != null && sortedDefinitions.find((def) => def.start <= index && def.end >= index);
|
|
2760
|
+
const suite = definition ? definition.task : file;
|
|
2761
|
+
const state = suite.mode === "run" || suite.mode === "only" ? "fail" : suite.mode;
|
|
2762
|
+
const errors = suite.result?.errors || [];
|
|
2763
|
+
suite.result = {
|
|
2764
|
+
state,
|
|
2765
|
+
errors
|
|
2766
|
+
};
|
|
2767
|
+
errors.push(error);
|
|
2768
|
+
if (state === "fail") {
|
|
2769
|
+
if (suite.suite) markState(suite.suite, "fail");
|
|
2770
|
+
else if (suite.file && suite !== suite.file) markState(suite.file, "fail");
|
|
2771
|
+
}
|
|
2772
|
+
});
|
|
2773
|
+
this.markPassed(file);
|
|
2774
|
+
});
|
|
2775
|
+
typeErrors.forEach((errors, path) => {
|
|
2776
|
+
if (!testFiles.has(path)) sourceErrors.push(...errors.map(({ error }) => error));
|
|
2777
|
+
});
|
|
2778
|
+
return {
|
|
2779
|
+
files,
|
|
2780
|
+
sourceErrors,
|
|
2781
|
+
time: performance$1.now() - this._startTime
|
|
2782
|
+
};
|
|
2783
|
+
}
|
|
2784
|
+
async parseTscLikeOutput(output) {
|
|
2785
|
+
const errorsMap = await getRawErrsMapFromTsCompile(output);
|
|
2786
|
+
const typesErrors = /* @__PURE__ */ new Map();
|
|
2787
|
+
errorsMap.forEach((errors, path) => {
|
|
2788
|
+
const filepath = resolve$1(this.project.config.root, path);
|
|
2789
|
+
const suiteErrors = errors.map((info) => {
|
|
2790
|
+
const limit = Error.stackTraceLimit;
|
|
2791
|
+
Error.stackTraceLimit = 0;
|
|
2792
|
+
// Some expect-type errors have the most useful information on the second line e.g. `This expression is not callable.\n Type 'ExpectString<number>' has no call signatures.`
|
|
2793
|
+
const errMsg = info.errMsg.replace(/\r?\n\s*(Type .* has no call signatures)/g, " $1");
|
|
2794
|
+
const error = new TypeCheckError(errMsg, [{
|
|
2795
|
+
file: filepath,
|
|
2796
|
+
line: info.line,
|
|
2797
|
+
column: info.column,
|
|
2798
|
+
method: ""
|
|
2799
|
+
}]);
|
|
2800
|
+
Error.stackTraceLimit = limit;
|
|
2801
|
+
return {
|
|
2802
|
+
originalError: info,
|
|
2803
|
+
error: {
|
|
2804
|
+
name: error.name,
|
|
2805
|
+
message: errMsg,
|
|
2806
|
+
stacks: error.stacks,
|
|
2807
|
+
stack: ""
|
|
2808
|
+
}
|
|
2809
|
+
};
|
|
2810
|
+
});
|
|
2811
|
+
typesErrors.set(filepath, suiteErrors);
|
|
2812
|
+
});
|
|
2813
|
+
return typesErrors;
|
|
2814
|
+
}
|
|
2815
|
+
async stop() {
|
|
2816
|
+
this.process?.kill();
|
|
2817
|
+
this.process = void 0;
|
|
2818
|
+
}
|
|
2819
|
+
async ensurePackageInstalled(ctx, checker) {
|
|
2820
|
+
if (checker !== "tsc" && checker !== "vue-tsc") return;
|
|
2821
|
+
const packageName = checker === "tsc" ? "typescript" : "vue-tsc";
|
|
2822
|
+
await ctx.packageInstaller.ensureInstalled(packageName, ctx.config.root);
|
|
2823
|
+
}
|
|
2824
|
+
getExitCode() {
|
|
2825
|
+
return this.process?.exitCode != null && this.process.exitCode;
|
|
2826
|
+
}
|
|
2827
|
+
getOutput() {
|
|
2828
|
+
return this._output;
|
|
2829
|
+
}
|
|
2830
|
+
async spawn() {
|
|
2831
|
+
const { root, watch, typecheck } = this.project.config;
|
|
2832
|
+
const args = [
|
|
2833
|
+
"--noEmit",
|
|
2834
|
+
"--pretty",
|
|
2835
|
+
"false",
|
|
2836
|
+
"--incremental",
|
|
2837
|
+
"--tsBuildInfoFile",
|
|
2838
|
+
join(process.versions.pnp ? join(nodeos__default.tmpdir(), this.project.hash) : distDir, "tsconfig.tmp.tsbuildinfo")
|
|
2839
|
+
];
|
|
2840
|
+
// use builtin watcher because it's faster
|
|
2841
|
+
if (watch) args.push("--watch");
|
|
2842
|
+
if (typecheck.allowJs) args.push("--allowJs", "--checkJs");
|
|
2843
|
+
if (typecheck.tsconfig) args.push("-p", resolve$1(root, typecheck.tsconfig));
|
|
2844
|
+
this._output = "";
|
|
2845
|
+
this._startTime = performance$1.now();
|
|
2846
|
+
const child = x(typecheck.checker, args, {
|
|
2847
|
+
nodeOptions: {
|
|
2848
|
+
cwd: root,
|
|
2849
|
+
stdio: "pipe"
|
|
2850
|
+
},
|
|
2851
|
+
throwOnError: false
|
|
2852
|
+
});
|
|
2853
|
+
this.process = child.process;
|
|
2854
|
+
let rerunTriggered = false;
|
|
2855
|
+
let dataReceived = false;
|
|
2856
|
+
return new Promise((resolve, reject) => {
|
|
2857
|
+
if (!child.process || !child.process.stdout) {
|
|
2858
|
+
reject(/* @__PURE__ */ new Error(`Failed to initialize ${typecheck.checker}. This is a bug in Vitest - please, open an issue with reproduction.`));
|
|
2859
|
+
return;
|
|
2860
|
+
}
|
|
2861
|
+
let resolved = false;
|
|
2862
|
+
child.process.stdout.on("data", (chunk) => {
|
|
2863
|
+
dataReceived = true;
|
|
2864
|
+
this._output += chunk;
|
|
2865
|
+
if (!watch) return;
|
|
2866
|
+
if (this._output.includes("File change detected") && !rerunTriggered) {
|
|
2867
|
+
this._onWatcherRerun?.();
|
|
2868
|
+
this._startTime = performance$1.now();
|
|
2869
|
+
this._result.sourceErrors = [];
|
|
2870
|
+
this._result.files = [];
|
|
2871
|
+
this._tests = null;
|
|
2872
|
+
rerunTriggered = true;
|
|
2873
|
+
}
|
|
2874
|
+
if (/Found \w+ errors*. Watching for/.test(this._output)) {
|
|
2875
|
+
rerunTriggered = false;
|
|
2876
|
+
this.prepareResults(this._output).then((result) => {
|
|
2877
|
+
this._result = result;
|
|
2878
|
+
this._onParseEnd?.(result);
|
|
2879
|
+
});
|
|
2880
|
+
this._output = "";
|
|
2881
|
+
}
|
|
2882
|
+
});
|
|
2883
|
+
// Also capture stderr for configuration errors like missing tsconfig
|
|
2884
|
+
child.process.stderr?.on("data", (chunk) => {
|
|
2885
|
+
this._output += chunk;
|
|
2886
|
+
});
|
|
2887
|
+
const timeout = setTimeout(() => reject(/* @__PURE__ */ new Error(`${typecheck.checker} spawn timed out`)), this.project.config.typecheck.spawnTimeout);
|
|
2888
|
+
let winTimeout;
|
|
2889
|
+
function onError(cause) {
|
|
2890
|
+
if (resolved) return;
|
|
2891
|
+
clearTimeout(timeout);
|
|
2892
|
+
clearTimeout(winTimeout);
|
|
2893
|
+
resolved = true;
|
|
2894
|
+
reject(new Error("Spawning typechecker failed - is typescript installed?", { cause }));
|
|
2895
|
+
}
|
|
2896
|
+
child.process.once("spawn", () => {
|
|
2897
|
+
this._onParseStart?.();
|
|
2898
|
+
child.process?.off("error", onError);
|
|
2899
|
+
clearTimeout(timeout);
|
|
2900
|
+
if (process.platform === "win32")
|
|
2901
|
+
// on Windows, the process might be spawned but fail to start
|
|
2902
|
+
// we wait for a potential error here. if "close" event didn't trigger,
|
|
2903
|
+
// we resolve the promise
|
|
2904
|
+
winTimeout = setTimeout(() => {
|
|
2905
|
+
resolved = true;
|
|
2906
|
+
resolve({ result: child });
|
|
2907
|
+
}, 200);
|
|
2908
|
+
else {
|
|
2909
|
+
resolved = true;
|
|
2910
|
+
resolve({ result: child });
|
|
2911
|
+
}
|
|
2912
|
+
});
|
|
2913
|
+
if (process.platform === "win32") child.process.once("close", (code) => {
|
|
2914
|
+
if (code != null && code !== 0 && !dataReceived) onError(/* @__PURE__ */ new Error(`The ${typecheck.checker} command exited with code ${code}.`));
|
|
2915
|
+
});
|
|
2916
|
+
child.process.once("error", onError);
|
|
2917
|
+
});
|
|
2918
|
+
}
|
|
2919
|
+
async start() {
|
|
2920
|
+
if (this.process) return;
|
|
2921
|
+
const { watch } = this.project.config;
|
|
2922
|
+
const { result: child } = await this.spawn();
|
|
2923
|
+
if (!watch) {
|
|
2924
|
+
await child;
|
|
2925
|
+
this._result = await this.prepareResults(this._output);
|
|
2926
|
+
await this._onParseEnd?.(this._result);
|
|
2927
|
+
}
|
|
2928
|
+
}
|
|
2929
|
+
getResult() {
|
|
2930
|
+
return this._result;
|
|
2931
|
+
}
|
|
2932
|
+
getTestFiles() {
|
|
2933
|
+
return Object.values(this._tests || {}).map((i) => i.file);
|
|
2934
|
+
}
|
|
2935
|
+
getTestPacksAndEvents() {
|
|
2936
|
+
const packs = [];
|
|
2937
|
+
const events = [];
|
|
2938
|
+
for (const { file } of Object.values(this._tests || {})) {
|
|
2939
|
+
const result = convertTasksToEvents(file);
|
|
2940
|
+
packs.push(...result.packs);
|
|
2941
|
+
events.push(...result.events);
|
|
2942
|
+
}
|
|
2943
|
+
return {
|
|
2944
|
+
packs,
|
|
2945
|
+
events
|
|
2946
|
+
};
|
|
2947
|
+
}
|
|
2948
|
+
}
|
|
2949
|
+
function findGeneratedPosition(traceMap, { line, column, source }) {
|
|
2950
|
+
const found = generatedPositionFor(traceMap, {
|
|
2951
|
+
line,
|
|
2952
|
+
column,
|
|
2953
|
+
source
|
|
2954
|
+
});
|
|
2955
|
+
if (found.line !== null) return found;
|
|
2956
|
+
// find the next source token position when the exact error position doesn't exist in source map.
|
|
2957
|
+
// this can happen, for example, when the type error is in the comment "// @ts-expect-error"
|
|
2958
|
+
// and comments are stripped away in the generated code.
|
|
2959
|
+
const mappings = [];
|
|
2960
|
+
eachMapping(traceMap, (m) => {
|
|
2961
|
+
if (m.source === source && m.originalLine !== null && m.originalColumn !== null && (line === m.originalLine ? column < m.originalColumn : line < m.originalLine)) mappings.push(m);
|
|
2962
|
+
});
|
|
2963
|
+
const next = mappings.sort((a, b) => a.originalLine === b.originalLine ? a.originalColumn - b.originalColumn : a.originalLine - b.originalLine).at(0);
|
|
2964
|
+
if (next) return {
|
|
2965
|
+
line: next.generatedLine,
|
|
2966
|
+
column: next.generatedColumn
|
|
2967
|
+
};
|
|
2968
|
+
return {
|
|
2969
|
+
line: null,
|
|
2970
|
+
column: null
|
|
2971
|
+
};
|
|
2972
|
+
}
|
|
2973
|
+
|
|
2974
|
+
// use Logger with custom Console to capture entire error printing
|
|
2975
|
+
function capturePrintError(error, ctx, options) {
|
|
2976
|
+
let output = "";
|
|
2977
|
+
const console = new Console(new Writable({ write(chunk, _encoding, callback) {
|
|
2978
|
+
output += String(chunk);
|
|
2979
|
+
callback();
|
|
2980
|
+
} }));
|
|
2981
|
+
return {
|
|
2982
|
+
nearest: printError(error, ctx, {
|
|
2983
|
+
error: console.error.bind(console),
|
|
2984
|
+
highlight: ctx.logger.highlight.bind(ctx.logger)
|
|
2985
|
+
}, {
|
|
2986
|
+
showCodeFrame: false,
|
|
2987
|
+
...options
|
|
2988
|
+
})?.nearest,
|
|
2989
|
+
output
|
|
2990
|
+
};
|
|
2991
|
+
}
|
|
2992
|
+
function printError(error, ctx, logger, options) {
|
|
2993
|
+
const project = options.project ?? ctx.coreWorkspaceProject ?? ctx.projects[0];
|
|
2994
|
+
return printErrorInner(error, project, {
|
|
2995
|
+
logger,
|
|
2996
|
+
type: options.type,
|
|
2997
|
+
showCodeFrame: options.showCodeFrame,
|
|
2998
|
+
screenshotPaths: options.screenshotPaths,
|
|
2999
|
+
printProperties: options.verbose,
|
|
3000
|
+
parseErrorStacktrace(error) {
|
|
3001
|
+
if (error.stacks) if (options.fullStack) return error.stacks;
|
|
3002
|
+
else return error.stacks.filter((stack) => {
|
|
3003
|
+
return !defaultStackIgnorePatterns.some((p) => stack.file.match(p));
|
|
3004
|
+
});
|
|
3005
|
+
// browser stack trace needs to be processed differently,
|
|
3006
|
+
// so there is a separate method for that
|
|
3007
|
+
if (options.task?.file.pool === "browser" && project.browser) return project.browser.parseErrorStacktrace(error, {
|
|
3008
|
+
frameFilter: project.config.onStackTrace,
|
|
3009
|
+
ignoreStackEntries: options.fullStack ? [] : void 0
|
|
3010
|
+
});
|
|
3011
|
+
// node.js stack trace already has correct source map locations
|
|
3012
|
+
return parseErrorStacktrace(error, {
|
|
3013
|
+
frameFilter: project.config.onStackTrace,
|
|
3014
|
+
ignoreStackEntries: options.fullStack ? [] : void 0
|
|
3015
|
+
});
|
|
3016
|
+
}
|
|
3017
|
+
});
|
|
3018
|
+
}
|
|
3019
|
+
function printErrorInner(error, project, options) {
|
|
3020
|
+
const { showCodeFrame = true, type, printProperties = true } = options;
|
|
3021
|
+
const logger = options.logger;
|
|
3022
|
+
let e = error;
|
|
3023
|
+
if (isPrimitive(e)) e = {
|
|
3024
|
+
message: String(error).split(/\n/g)[0],
|
|
3025
|
+
stack: String(error)
|
|
3026
|
+
};
|
|
3027
|
+
if (!e) {
|
|
3028
|
+
const error = /* @__PURE__ */ new Error("unknown error");
|
|
3029
|
+
e = {
|
|
3030
|
+
message: e ?? error.message,
|
|
3031
|
+
stack: error.stack
|
|
3032
|
+
};
|
|
3033
|
+
}
|
|
3034
|
+
// Error may have occurred even before the configuration was resolved
|
|
3035
|
+
if (!project) {
|
|
3036
|
+
printErrorMessage(e, logger);
|
|
3037
|
+
return;
|
|
3038
|
+
}
|
|
3039
|
+
const stacks = options.parseErrorStacktrace(e);
|
|
3040
|
+
const nearest = error instanceof TypeCheckError ? error.stacks[0] : stacks.find((stack) => {
|
|
3041
|
+
// we are checking that this module was processed by us at one point
|
|
3042
|
+
try {
|
|
3043
|
+
return [...Object.values(project._vite?.environments || {}), ...Object.values(project.browser?.vite.environments || {})].some((environment) => {
|
|
3044
|
+
return [...environment.moduleGraph.getModulesByFile(stack.file)?.values() || []].some((module) => !!module.transformResult);
|
|
3045
|
+
}) && existsSync(stack.file);
|
|
3046
|
+
} catch {
|
|
3047
|
+
return false;
|
|
3048
|
+
}
|
|
3049
|
+
});
|
|
3050
|
+
if (type) printErrorType(type, project.vitest);
|
|
3051
|
+
printErrorMessage(e, logger);
|
|
3052
|
+
if (options.screenshotPaths?.length) {
|
|
3053
|
+
const uniqueScreenshots = Array.from(new Set(options.screenshotPaths));
|
|
3054
|
+
const length = uniqueScreenshots.length;
|
|
3055
|
+
logger.error(`\nFailure screenshot${length > 1 ? "s" : ""}:`);
|
|
3056
|
+
logger.error(uniqueScreenshots.map((p) => ` - ${c.dim(relative(process.cwd(), p))}`).join("\n"));
|
|
3057
|
+
if (!e.diff) logger.error();
|
|
3058
|
+
}
|
|
3059
|
+
if (e.codeFrame) logger.error(`${e.codeFrame}\n`);
|
|
3060
|
+
if ("__vitest_rollup_error__" in e) {
|
|
3061
|
+
// https://github.com/vitejs/vite/blob/95020ab49e12d143262859e095025cf02423c1d9/packages/vite/src/node/server/middlewares/error.ts#L25-L36
|
|
3062
|
+
const err = e.__vitest_rollup_error__;
|
|
3063
|
+
logger.error([
|
|
3064
|
+
err.plugin && ` Plugin: ${c.magenta(err.plugin)}`,
|
|
3065
|
+
err.id && ` File: ${c.cyan(err.id)}${err.loc ? `:${err.loc.line}:${err.loc.column}` : ""}`,
|
|
3066
|
+
err.frame && c.yellow(err.frame.split(/\r?\n/g).map((l) => ` `.repeat(2) + l).join(`\n`))
|
|
3067
|
+
].filter(Boolean).join("\n"));
|
|
3068
|
+
}
|
|
3069
|
+
// E.g. AssertionError from assert does not set showDiff but has both actual and expected properties
|
|
3070
|
+
if (e.diff) logger.error(`\n${e.diff}\n`);
|
|
3071
|
+
// if the error provide the frame
|
|
3072
|
+
if (e.frame) logger.error(c.yellow(e.frame));
|
|
3073
|
+
else printStack(logger, project, stacks, nearest, printProperties ? getErrorProperties(e) : {}, (s) => {
|
|
3074
|
+
if (showCodeFrame && s === nearest && nearest) {
|
|
3075
|
+
const sourceCode = readFileSync(nearest.file, "utf-8");
|
|
3076
|
+
logger.error(generateCodeFrame(sourceCode.length > 1e5 ? sourceCode : logger.highlight(nearest.file, sourceCode), 4, s));
|
|
3077
|
+
}
|
|
3078
|
+
});
|
|
3079
|
+
const testPath = e.VITEST_TEST_PATH;
|
|
3080
|
+
const testName = e.VITEST_TEST_NAME;
|
|
3081
|
+
// testName has testPath inside
|
|
3082
|
+
if (testPath) logger.error(c.red(`This error originated in "${c.bold(relative(project.config.root, testPath))}" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.`));
|
|
3083
|
+
if (testName) logger.error(c.red(`The latest test that might've caused the error is "${c.bold(testName)}". It might mean one of the following:
|
|
3084
|
+
- The error was thrown, while Vitest was running this test.
|
|
3085
|
+
- If the error occurred after the test had been completed, this was the last documented test before it was thrown.`));
|
|
3086
|
+
if (typeof e.cause === "object" && e.cause && "name" in e.cause) {
|
|
3087
|
+
e.cause.name = `Caused by: ${e.cause.name}`;
|
|
3088
|
+
printErrorInner(e.cause, project, {
|
|
3089
|
+
showCodeFrame: false,
|
|
3090
|
+
logger: options.logger,
|
|
3091
|
+
parseErrorStacktrace: options.parseErrorStacktrace
|
|
3092
|
+
});
|
|
3093
|
+
}
|
|
3094
|
+
handleImportOutsideModuleError(e.stack || "", logger);
|
|
3095
|
+
return { nearest };
|
|
3096
|
+
}
|
|
3097
|
+
function printErrorType(type, ctx) {
|
|
3098
|
+
ctx.logger.error(`\n${errorBanner(type)}`);
|
|
3099
|
+
}
|
|
3100
|
+
const skipErrorProperties = new Set([
|
|
3101
|
+
"cause",
|
|
3102
|
+
"stacks",
|
|
3103
|
+
"type",
|
|
3104
|
+
"showDiff",
|
|
3105
|
+
"ok",
|
|
3106
|
+
"operator",
|
|
3107
|
+
"diff",
|
|
3108
|
+
"codeFrame",
|
|
3109
|
+
"actual",
|
|
3110
|
+
"expected",
|
|
3111
|
+
"diffOptions",
|
|
3112
|
+
"runnerError",
|
|
3113
|
+
"sourceURL",
|
|
3114
|
+
"column",
|
|
3115
|
+
"line",
|
|
3116
|
+
"fileName",
|
|
3117
|
+
"lineNumber",
|
|
3118
|
+
"columnNumber",
|
|
3119
|
+
"VITEST_TEST_NAME",
|
|
3120
|
+
"VITEST_TEST_PATH",
|
|
3121
|
+
"__vitest_rollup_error__",
|
|
3122
|
+
...Object.getOwnPropertyNames(Error.prototype),
|
|
3123
|
+
...Object.getOwnPropertyNames(Object.prototype)
|
|
3124
|
+
]);
|
|
3125
|
+
function getErrorProperties(e) {
|
|
3126
|
+
const errorObject = Object.create(null);
|
|
3127
|
+
if (e.name === "AssertionError") return errorObject;
|
|
3128
|
+
for (const key of Object.getOwnPropertyNames(e))
|
|
3129
|
+
// print the original stack if it was ever changed manually by the user
|
|
3130
|
+
if (key === "stack" && e[key] != null && typeof e[key] !== "string") errorObject[key] = e[key];
|
|
3131
|
+
else if (key !== "stack" && !skipErrorProperties.has(key)) errorObject[key] = e[key];
|
|
3132
|
+
return errorObject;
|
|
3133
|
+
}
|
|
3134
|
+
const esmErrors = ["Cannot use import statement outside a module", "Unexpected token 'export'"];
|
|
3135
|
+
function handleImportOutsideModuleError(stack, logger) {
|
|
3136
|
+
if (!esmErrors.some((e) => stack.includes(e))) return;
|
|
3137
|
+
const path = normalize(stack.split("\n")[0].trim());
|
|
3138
|
+
let name = path.split("/node_modules/").pop() || "";
|
|
3139
|
+
if (name[0] === "@") name = name.split("/").slice(0, 2).join("/");
|
|
3140
|
+
else name = name.split("/")[0];
|
|
3141
|
+
if (name) printModuleWarningForPackage(logger, path, name);
|
|
3142
|
+
else printModuleWarningForSourceCode(logger, path);
|
|
3143
|
+
}
|
|
3144
|
+
function printModuleWarningForPackage(logger, path, name) {
|
|
3145
|
+
logger.error(c.yellow(`Module ${path} seems to be an ES Module but shipped in a CommonJS package. You might want to create an issue to the package ${c.bold(`"${name}"`)} asking them to ship the file in .mjs extension or add "type": "module" in their package.json.
|
|
3146
|
+
|
|
3147
|
+
As a temporary workaround you can try to inline the package by updating your config:
|
|
3148
|
+
|
|
3149
|
+
` + c.gray(c.dim("// vitest.config.js")) + "\n" + c.green(`export default {
|
|
3150
|
+
test: {
|
|
3151
|
+
server: {
|
|
3152
|
+
deps: {
|
|
3153
|
+
inline: [
|
|
3154
|
+
${c.yellow(c.bold(`"${name}"`))}
|
|
3155
|
+
]
|
|
3156
|
+
}
|
|
3157
|
+
}
|
|
3158
|
+
}
|
|
3159
|
+
}\n`)));
|
|
3160
|
+
}
|
|
3161
|
+
function printModuleWarningForSourceCode(logger, path) {
|
|
3162
|
+
logger.error(c.yellow(`Module ${path} seems to be an ES Module but shipped in a CommonJS package. To fix this issue, change the file extension to .mjs or add "type": "module" in your package.json.`));
|
|
3163
|
+
}
|
|
3164
|
+
function printErrorMessage(error, logger) {
|
|
3165
|
+
const errorName = error.name || "Unknown Error";
|
|
3166
|
+
if (!error.message) {
|
|
3167
|
+
logger.error(error);
|
|
3168
|
+
return;
|
|
3169
|
+
}
|
|
3170
|
+
if (error.message.length > 5e3)
|
|
3171
|
+
// Protect against infinite stack trace in tinyrainbow
|
|
3172
|
+
logger.error(`${c.red(c.bold(errorName))}: ${error.message}`);
|
|
3173
|
+
else logger.error(c.red(`${c.bold(errorName)}: ${error.message}`));
|
|
3174
|
+
}
|
|
3175
|
+
function printStack(logger, project, stack, highlight, errorProperties, onStack) {
|
|
3176
|
+
for (const frame of stack) {
|
|
3177
|
+
const color = frame === highlight ? c.cyan : c.gray;
|
|
3178
|
+
const path = relative(project.config.root, frame.file);
|
|
3179
|
+
logger.error(color(` ${c.dim(F_POINTER)} ${[frame.method, `${path}:${c.dim(`${frame.line}:${frame.column}`)}`].filter(Boolean).join(" ")}`));
|
|
3180
|
+
onStack?.(frame);
|
|
3181
|
+
}
|
|
3182
|
+
if (stack.length) logger.error();
|
|
3183
|
+
if (hasProperties(errorProperties)) {
|
|
3184
|
+
logger.error(c.red(c.dim(divider())));
|
|
3185
|
+
const propertiesString = inspect(errorProperties);
|
|
3186
|
+
logger.error(c.red(c.bold("Serialized Error:")), c.gray(propertiesString));
|
|
3187
|
+
}
|
|
3188
|
+
}
|
|
3189
|
+
function hasProperties(obj) {
|
|
3190
|
+
// eslint-disable-next-line no-unreachable-loop
|
|
3191
|
+
for (const _key in obj) return true;
|
|
3192
|
+
return false;
|
|
3193
|
+
}
|
|
3194
|
+
function generateCodeFrame(source, indent = 0, loc, range = 2) {
|
|
3195
|
+
const start = typeof loc === "object" ? positionToOffset(source, loc.line, loc.column) : loc;
|
|
3196
|
+
const end = start;
|
|
3197
|
+
const lines = source.split(lineSplitRE);
|
|
3198
|
+
const nl = /\r\n/.test(source) ? 2 : 1;
|
|
3199
|
+
let count = 0;
|
|
3200
|
+
let res = [];
|
|
3201
|
+
const columns = process.stdout?.columns || 80;
|
|
3202
|
+
for (let i = 0; i < lines.length; i++) {
|
|
3203
|
+
count += lines[i].length + nl;
|
|
3204
|
+
if (count >= start) {
|
|
3205
|
+
for (let j = i - range; j <= i + range || end > count; j++) {
|
|
3206
|
+
if (j < 0 || j >= lines.length) continue;
|
|
3207
|
+
const lineLength = lines[j].length;
|
|
3208
|
+
const strippedContent = stripVTControlCharacters(lines[j]);
|
|
3209
|
+
if (strippedContent.startsWith("//# sourceMappingURL")) continue;
|
|
3210
|
+
// too long, maybe it's a minified file, skip for codeframe
|
|
3211
|
+
if (strippedContent.length > 200) return "";
|
|
3212
|
+
res.push(lineNo(j + 1) + truncateString(lines[j].replace(/\t/g, " "), columns - 5 - indent));
|
|
3213
|
+
if (j === i) {
|
|
3214
|
+
// push underline
|
|
3215
|
+
const pad = start - (count - lineLength) + (nl - 1);
|
|
3216
|
+
const length = Math.max(1, end > count ? lineLength - pad : end - start);
|
|
3217
|
+
res.push(lineNo() + " ".repeat(pad) + c.red("^".repeat(length)));
|
|
3218
|
+
} else if (j > i) {
|
|
3219
|
+
if (end > count) {
|
|
3220
|
+
const length = Math.max(1, Math.min(end - count, lineLength));
|
|
3221
|
+
res.push(lineNo() + c.red("^".repeat(length)));
|
|
3222
|
+
}
|
|
3223
|
+
count += lineLength + 1;
|
|
3224
|
+
}
|
|
3225
|
+
}
|
|
3226
|
+
break;
|
|
3227
|
+
}
|
|
3228
|
+
}
|
|
3229
|
+
if (indent) res = res.map((line) => " ".repeat(indent) + line);
|
|
3230
|
+
return res.join("\n");
|
|
3231
|
+
}
|
|
3232
|
+
function lineNo(no = "") {
|
|
3233
|
+
return c.gray(`${String(no).padStart(3, " ")}| `);
|
|
3234
|
+
}
|
|
3235
|
+
|
|
3236
|
+
class GithubActionsReporter {
|
|
3237
|
+
ctx = void 0;
|
|
3238
|
+
options;
|
|
3239
|
+
constructor(options = {}) {
|
|
3240
|
+
this.options = options;
|
|
3241
|
+
}
|
|
3242
|
+
onInit(ctx) {
|
|
3243
|
+
this.ctx = ctx;
|
|
3244
|
+
}
|
|
3245
|
+
onTestCaseAnnotate(testCase, annotation) {
|
|
3246
|
+
if (!annotation.location || this.options.displayAnnotations === false) return;
|
|
3247
|
+
const type = getTitle(annotation.type);
|
|
3248
|
+
const formatted = formatMessage({
|
|
3249
|
+
command: getType(annotation.type),
|
|
3250
|
+
properties: {
|
|
3251
|
+
file: annotation.location.file,
|
|
3252
|
+
line: String(annotation.location.line),
|
|
3253
|
+
column: String(annotation.location.column),
|
|
3254
|
+
...type && { title: type }
|
|
3255
|
+
},
|
|
3256
|
+
message: stripVTControlCharacters(annotation.message)
|
|
3257
|
+
});
|
|
3258
|
+
this.ctx.logger.log(`\n${formatted}`);
|
|
3259
|
+
}
|
|
3260
|
+
onTestRunEnd(testModules, unhandledErrors) {
|
|
3261
|
+
const files = testModules.map((testModule) => testModule.task);
|
|
3262
|
+
const errors = [...unhandledErrors];
|
|
3263
|
+
// collect all errors and associate them with projects
|
|
3264
|
+
const projectErrors = new Array();
|
|
3265
|
+
for (const error of errors) projectErrors.push({
|
|
3266
|
+
project: this.ctx.getRootProject(),
|
|
3267
|
+
title: "Unhandled error",
|
|
3268
|
+
error
|
|
3269
|
+
});
|
|
3270
|
+
for (const file of files) {
|
|
3271
|
+
const tasks = getTasks(file);
|
|
3272
|
+
const project = this.ctx.getProjectByName(file.projectName || "");
|
|
3273
|
+
for (const task of tasks) {
|
|
3274
|
+
if (task.result?.state !== "fail") continue;
|
|
3275
|
+
const title = getFullName(task, " > ");
|
|
3276
|
+
for (const error of task.result?.errors ?? []) projectErrors.push({
|
|
3277
|
+
project,
|
|
3278
|
+
title: project.name ? `[${project.name}] ${title}` : title,
|
|
3279
|
+
error,
|
|
3280
|
+
file
|
|
3281
|
+
});
|
|
3282
|
+
}
|
|
3283
|
+
}
|
|
3284
|
+
const onWritePath = this.options.onWritePath ?? defaultOnWritePath;
|
|
3285
|
+
// format errors via `printError`
|
|
3286
|
+
for (const { project, title, error, file } of projectErrors) {
|
|
3287
|
+
const result = capturePrintError(error, this.ctx, {
|
|
3288
|
+
project,
|
|
3289
|
+
task: file
|
|
3290
|
+
});
|
|
3291
|
+
const stack = result?.nearest;
|
|
3292
|
+
if (!stack) continue;
|
|
3293
|
+
const formatted = formatMessage({
|
|
3294
|
+
command: "error",
|
|
3295
|
+
properties: {
|
|
3296
|
+
file: onWritePath(stack.file),
|
|
3297
|
+
title,
|
|
3298
|
+
line: String(stack.line),
|
|
3299
|
+
column: String(stack.column)
|
|
3300
|
+
},
|
|
3301
|
+
message: stripVTControlCharacters(result.output)
|
|
3302
|
+
});
|
|
3303
|
+
this.ctx.logger.log(`\n${formatted}`);
|
|
3304
|
+
}
|
|
3305
|
+
}
|
|
3306
|
+
}
|
|
3307
|
+
const BUILT_IN_TYPES = [
|
|
3308
|
+
"notice",
|
|
3309
|
+
"error",
|
|
3310
|
+
"warning"
|
|
3311
|
+
];
|
|
3312
|
+
function getTitle(type) {
|
|
3313
|
+
if (BUILT_IN_TYPES.includes(type)) return;
|
|
3314
|
+
return type;
|
|
3315
|
+
}
|
|
3316
|
+
function getType(type) {
|
|
3317
|
+
if (BUILT_IN_TYPES.includes(type)) return type;
|
|
3318
|
+
return "notice";
|
|
3319
|
+
}
|
|
3320
|
+
function defaultOnWritePath(path) {
|
|
3321
|
+
return path;
|
|
3322
|
+
}
|
|
3323
|
+
// workflow command formatting based on
|
|
3324
|
+
// https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message
|
|
3325
|
+
// https://github.com/actions/toolkit/blob/f1d9b4b985e6f0f728b4b766db73498403fd5ca3/packages/core/src/command.ts#L80-L85
|
|
3326
|
+
function formatMessage({ command, properties, message }) {
|
|
3327
|
+
let result = `::${command}`;
|
|
3328
|
+
Object.entries(properties).forEach(([k, v], i) => {
|
|
3329
|
+
result += i === 0 ? " " : ",";
|
|
3330
|
+
result += `${k}=${escapeProperty(v)}`;
|
|
3331
|
+
});
|
|
3332
|
+
result += `::${escapeData(message)}`;
|
|
3333
|
+
return result;
|
|
3334
|
+
}
|
|
3335
|
+
function escapeData(s) {
|
|
3336
|
+
return s.replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
|
|
3337
|
+
}
|
|
3338
|
+
function escapeProperty(s) {
|
|
3339
|
+
return s.replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C");
|
|
3340
|
+
}
|
|
3341
|
+
|
|
3342
|
+
class HangingProcessReporter {
|
|
3343
|
+
whyRunning;
|
|
3344
|
+
onInit() {
|
|
3345
|
+
this.whyRunning = createRequire(import.meta.url)("why-is-node-running");
|
|
3346
|
+
}
|
|
3347
|
+
onProcessTimeout() {
|
|
3348
|
+
this.whyRunning?.();
|
|
3349
|
+
}
|
|
3350
|
+
}
|
|
3351
|
+
|
|
3352
|
+
const StatusMap = {
|
|
3353
|
+
fail: "failed",
|
|
3354
|
+
only: "pending",
|
|
3355
|
+
pass: "passed",
|
|
3356
|
+
run: "pending",
|
|
3357
|
+
skip: "skipped",
|
|
3358
|
+
todo: "todo",
|
|
3359
|
+
queued: "pending"
|
|
3360
|
+
};
|
|
3361
|
+
class JsonReporter {
|
|
3362
|
+
start = 0;
|
|
3363
|
+
ctx;
|
|
3364
|
+
options;
|
|
3365
|
+
coverageMap;
|
|
3366
|
+
constructor(options) {
|
|
3367
|
+
this.options = options;
|
|
3368
|
+
}
|
|
3369
|
+
onInit(ctx) {
|
|
3370
|
+
this.ctx = ctx;
|
|
3371
|
+
this.start = Date.now();
|
|
3372
|
+
this.coverageMap = void 0;
|
|
3373
|
+
}
|
|
3374
|
+
onCoverage(coverageMap) {
|
|
3375
|
+
this.coverageMap = coverageMap;
|
|
3376
|
+
}
|
|
3377
|
+
async onTestRunEnd(testModules) {
|
|
3378
|
+
const files = testModules.map((testModule) => testModule.task);
|
|
3379
|
+
const suites = getSuites(files);
|
|
3380
|
+
const numTotalTestSuites = suites.length;
|
|
3381
|
+
const tests = getTests(files);
|
|
3382
|
+
const numTotalTests = tests.length;
|
|
3383
|
+
const numFailedTestSuites = suites.filter((s) => s.result?.state === "fail").length;
|
|
3384
|
+
const numPendingTestSuites = suites.filter((s) => s.result?.state === "run" || s.result?.state === "queued" || s.mode === "todo").length;
|
|
3385
|
+
const numPassedTestSuites = numTotalTestSuites - numFailedTestSuites - numPendingTestSuites;
|
|
3386
|
+
const numFailedTests = tests.filter((t) => t.result?.state === "fail").length;
|
|
3387
|
+
const numPassedTests = tests.filter((t) => t.result?.state === "pass").length;
|
|
3388
|
+
const numPendingTests = tests.filter((t) => t.result?.state === "run" || t.result?.state === "queued" || t.mode === "skip" || t.result?.state === "skip").length;
|
|
3389
|
+
const numTodoTests = tests.filter((t) => t.mode === "todo").length;
|
|
3390
|
+
const testResults = [];
|
|
3391
|
+
const success = !!(files.length > 0 || this.ctx.config.passWithNoTests) && numFailedTestSuites === 0 && numFailedTests === 0;
|
|
3392
|
+
for (const file of files) {
|
|
3393
|
+
const tests = getTests([file]);
|
|
3394
|
+
let startTime = tests.reduce((prev, next) => Math.min(prev, next.result?.startTime ?? Number.POSITIVE_INFINITY), Number.POSITIVE_INFINITY);
|
|
3395
|
+
if (startTime === Number.POSITIVE_INFINITY) startTime = this.start;
|
|
3396
|
+
const endTime = tests.reduce((prev, next) => Math.max(prev, (next.result?.startTime ?? 0) + (next.result?.duration ?? 0)), startTime);
|
|
3397
|
+
const assertionResults = tests.map((t) => {
|
|
3398
|
+
const ancestorTitles = [];
|
|
3399
|
+
let iter = t.suite;
|
|
3400
|
+
while (iter) {
|
|
3401
|
+
ancestorTitles.push(iter.name);
|
|
3402
|
+
iter = iter.suite;
|
|
3403
|
+
}
|
|
3404
|
+
ancestorTitles.reverse();
|
|
3405
|
+
return {
|
|
3406
|
+
ancestorTitles,
|
|
3407
|
+
fullName: t.name ? [...ancestorTitles, t.name].join(" ") : ancestorTitles.join(" "),
|
|
3408
|
+
status: StatusMap[t.result?.state || t.mode] || "skipped",
|
|
3409
|
+
title: t.name,
|
|
3410
|
+
duration: t.result?.duration,
|
|
3411
|
+
failureMessages: t.result?.errors?.map((e) => e.stack || e.message) || [],
|
|
3412
|
+
location: t.location,
|
|
3413
|
+
meta: t.meta
|
|
3414
|
+
};
|
|
3415
|
+
});
|
|
3416
|
+
if (tests.some((t) => t.result?.state === "run" || t.result?.state === "queued")) this.ctx.logger.warn("WARNING: Some tests are still running when generating the JSON report.This is likely an internal bug in Vitest.Please report it to https://github.com/vitest-dev/vitest/issues");
|
|
3417
|
+
const hasFailedTests = tests.some((t) => t.result?.state === "fail");
|
|
3418
|
+
testResults.push({
|
|
3419
|
+
assertionResults,
|
|
3420
|
+
startTime,
|
|
3421
|
+
endTime,
|
|
3422
|
+
status: file.result?.state === "fail" || hasFailedTests ? "failed" : "passed",
|
|
3423
|
+
message: file.result?.errors?.[0]?.message ?? "",
|
|
3424
|
+
name: file.filepath
|
|
3425
|
+
});
|
|
3426
|
+
}
|
|
3427
|
+
const result = {
|
|
3428
|
+
numTotalTestSuites,
|
|
3429
|
+
numPassedTestSuites,
|
|
3430
|
+
numFailedTestSuites,
|
|
3431
|
+
numPendingTestSuites,
|
|
3432
|
+
numTotalTests,
|
|
3433
|
+
numPassedTests,
|
|
3434
|
+
numFailedTests,
|
|
3435
|
+
numPendingTests,
|
|
3436
|
+
numTodoTests,
|
|
3437
|
+
snapshot: this.ctx.snapshot.summary,
|
|
3438
|
+
startTime: this.start,
|
|
3439
|
+
success,
|
|
3440
|
+
testResults,
|
|
3441
|
+
coverageMap: this.coverageMap
|
|
3442
|
+
};
|
|
3443
|
+
await this.writeReport(JSON.stringify(result));
|
|
3444
|
+
}
|
|
3445
|
+
/**
|
|
3446
|
+
* Writes the report to an output file if specified in the config,
|
|
3447
|
+
* or logs it to the console otherwise.
|
|
3448
|
+
* @param report
|
|
3449
|
+
*/
|
|
3450
|
+
async writeReport(report) {
|
|
3451
|
+
const outputFile = this.options.outputFile ?? getOutputFile(this.ctx.config, "json");
|
|
3452
|
+
if (outputFile) {
|
|
3453
|
+
const reportFile = resolve$1(this.ctx.config.root, outputFile);
|
|
3454
|
+
const outputDirectory = dirname(reportFile);
|
|
3455
|
+
if (!existsSync(outputDirectory)) await promises.mkdir(outputDirectory, { recursive: true });
|
|
3456
|
+
await promises.writeFile(reportFile, report, "utf-8");
|
|
3457
|
+
this.ctx.logger.log(`JSON report written to ${reportFile}`);
|
|
3458
|
+
} else this.ctx.logger.log(report);
|
|
3459
|
+
}
|
|
3460
|
+
}
|
|
3461
|
+
|
|
3462
|
+
class IndentedLogger {
|
|
3463
|
+
currentIndent = "";
|
|
3464
|
+
constructor(baseLog) {
|
|
3465
|
+
this.baseLog = baseLog;
|
|
3466
|
+
}
|
|
3467
|
+
indent() {
|
|
3468
|
+
this.currentIndent += " ";
|
|
3469
|
+
}
|
|
3470
|
+
unindent() {
|
|
3471
|
+
this.currentIndent = this.currentIndent.substring(0, this.currentIndent.length - 4);
|
|
3472
|
+
}
|
|
3473
|
+
log(text) {
|
|
3474
|
+
return this.baseLog(this.currentIndent + text);
|
|
3475
|
+
}
|
|
3476
|
+
}
|
|
3477
|
+
|
|
3478
|
+
function flattenTasks$1(task, baseName = "") {
|
|
3479
|
+
const base = baseName ? `${baseName} > ` : "";
|
|
3480
|
+
if (task.type === "suite") return task.tasks.flatMap((child) => flattenTasks$1(child, `${base}${task.name}`));
|
|
3481
|
+
else return [{
|
|
3482
|
+
...task,
|
|
3483
|
+
name: `${base}${task.name}`
|
|
3484
|
+
}];
|
|
3485
|
+
}
|
|
3486
|
+
// https://gist.github.com/john-doherty/b9195065884cdbfd2017a4756e6409cc
|
|
3487
|
+
function removeInvalidXMLCharacters(value, removeDiscouragedChars) {
|
|
3488
|
+
let regex = /([\0-\x08\v\f\x0E-\x1F\uFFFD\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;
|
|
3489
|
+
value = String(value || "").replace(regex, "");
|
|
3490
|
+
{
|
|
3491
|
+
// remove everything discouraged by XML 1.0 specifications
|
|
3492
|
+
regex = new RegExp(
|
|
3493
|
+
/* eslint-disable regexp/prefer-character-class, regexp/no-obscure-range, regexp/no-useless-non-capturing-group */
|
|
3494
|
+
"([\\x7F-\\x84]|[\\x86-\\x9F]|[\\uFDD0-\\uFDEF]|\\uD83F[\\uDFFE\\uDFFF]|(?:\\uD87F[\\uDFFE\\uDFFF])|\\uD8BF[\\uDFFE\\uDFFF]|\\uD8FF[\\uDFFE\\uDFFF]|(?:\\uD93F[\\uDFFE\\uDFFF])|\\uD97F[\\uDFFE\\uDFFF]|\\uD9BF[\\uDFFE\\uDFFF]|\\uD9FF[\\uDFFE\\uDFFF]|\\uDA3F[\\uDFFE\\uDFFF]|\\uDA7F[\\uDFFE\\uDFFF]|\\uDABF[\\uDFFE\\uDFFF]|(?:\\uDAFF[\\uDFFE\\uDFFF])|\\uDB3F[\\uDFFE\\uDFFF]|\\uDB7F[\\uDFFE\\uDFFF]|(?:\\uDBBF[\\uDFFE\\uDFFF])|\\uDBFF[\\uDFFE\\uDFFF](?:[\\0-\\t\\v\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))",
|
|
3495
|
+
"g"
|
|
3496
|
+
/* eslint-enable */
|
|
3497
|
+
);
|
|
3498
|
+
value = value.replace(regex, "");
|
|
3499
|
+
}
|
|
3500
|
+
return value;
|
|
3501
|
+
}
|
|
3502
|
+
function escapeXML(value) {
|
|
3503
|
+
return removeInvalidXMLCharacters(String(value).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">"));
|
|
3504
|
+
}
|
|
3505
|
+
function executionTime(durationMS) {
|
|
3506
|
+
return (durationMS / 1e3).toLocaleString("en-US", {
|
|
3507
|
+
useGrouping: false,
|
|
3508
|
+
maximumFractionDigits: 10
|
|
3509
|
+
});
|
|
3510
|
+
}
|
|
3511
|
+
function getDuration(task) {
|
|
3512
|
+
return executionTime(task.result?.duration ?? 0);
|
|
3513
|
+
}
|
|
3514
|
+
class JUnitReporter {
|
|
3515
|
+
ctx;
|
|
3516
|
+
reportFile;
|
|
3517
|
+
baseLog;
|
|
3518
|
+
logger;
|
|
3519
|
+
_timeStart = /* @__PURE__ */ new Date();
|
|
3520
|
+
fileFd;
|
|
3521
|
+
options;
|
|
3522
|
+
constructor(options) {
|
|
3523
|
+
this.options = { ...options };
|
|
3524
|
+
this.options.includeConsoleOutput ??= true;
|
|
3525
|
+
}
|
|
3526
|
+
async onInit(ctx) {
|
|
3527
|
+
this.ctx = ctx;
|
|
3528
|
+
const outputFile = this.options.outputFile ?? getOutputFile(this.ctx.config, "junit");
|
|
3529
|
+
if (outputFile) {
|
|
3530
|
+
this.reportFile = resolve$1(this.ctx.config.root, outputFile);
|
|
3531
|
+
const outputDirectory = dirname(this.reportFile);
|
|
3532
|
+
if (!existsSync(outputDirectory)) await promises.mkdir(outputDirectory, { recursive: true });
|
|
3533
|
+
this.fileFd = await promises.open(this.reportFile, "w+");
|
|
3534
|
+
this.baseLog = async (text) => {
|
|
3535
|
+
if (!this.fileFd) this.fileFd = await promises.open(this.reportFile, "w+");
|
|
3536
|
+
await promises.writeFile(this.fileFd, `${text}\n`);
|
|
3537
|
+
};
|
|
3538
|
+
} else this.baseLog = async (text) => this.ctx.logger.log(text);
|
|
3539
|
+
this._timeStart = /* @__PURE__ */ new Date();
|
|
3540
|
+
this.logger = new IndentedLogger(this.baseLog);
|
|
3541
|
+
}
|
|
3542
|
+
async writeElement(name, attrs, children) {
|
|
3543
|
+
const pairs = [];
|
|
3544
|
+
for (const key in attrs) {
|
|
3545
|
+
const attr = attrs[key];
|
|
3546
|
+
if (attr === void 0) continue;
|
|
3547
|
+
pairs.push(`${key}="${escapeXML(attr)}"`);
|
|
3548
|
+
}
|
|
3549
|
+
await this.logger.log(`<${name}${pairs.length ? ` ${pairs.join(" ")}` : ""}>`);
|
|
3550
|
+
this.logger.indent();
|
|
3551
|
+
await children.call(this);
|
|
3552
|
+
this.logger.unindent();
|
|
3553
|
+
await this.logger.log(`</${name}>`);
|
|
3554
|
+
}
|
|
3555
|
+
async writeLogs(task, type) {
|
|
3556
|
+
if (task.logs == null || task.logs.length === 0) return;
|
|
3557
|
+
const logType = type === "err" ? "stderr" : "stdout";
|
|
3558
|
+
const logs = task.logs.filter((log) => log.type === logType);
|
|
3559
|
+
if (logs.length === 0) return;
|
|
3560
|
+
await this.writeElement(`system-${type}`, {}, async () => {
|
|
3561
|
+
for (const log of logs) await this.baseLog(escapeXML(log.content));
|
|
3562
|
+
});
|
|
3563
|
+
}
|
|
3564
|
+
async writeTasks(tasks, filename) {
|
|
3565
|
+
for (const task of tasks) {
|
|
3566
|
+
let classname = filename;
|
|
3567
|
+
const templateVars = {
|
|
3568
|
+
filename: task.file.name,
|
|
3569
|
+
filepath: task.file.filepath
|
|
3570
|
+
};
|
|
3571
|
+
if (typeof this.options.classnameTemplate === "function") classname = this.options.classnameTemplate(templateVars);
|
|
3572
|
+
else if (typeof this.options.classnameTemplate === "string") classname = this.options.classnameTemplate.replace(/\{filename\}/g, templateVars.filename).replace(/\{filepath\}/g, templateVars.filepath);
|
|
3573
|
+
await this.writeElement("testcase", {
|
|
3574
|
+
classname,
|
|
3575
|
+
file: this.options.addFileAttribute ? filename : void 0,
|
|
3576
|
+
name: task.name,
|
|
3577
|
+
time: getDuration(task)
|
|
3578
|
+
}, async () => {
|
|
3579
|
+
if (this.options.includeConsoleOutput) {
|
|
3580
|
+
await this.writeLogs(task, "out");
|
|
3581
|
+
await this.writeLogs(task, "err");
|
|
3582
|
+
}
|
|
3583
|
+
if (task.mode === "skip" || task.mode === "todo") await this.logger.log("<skipped/>");
|
|
3584
|
+
if (task.type === "test" && task.annotations.length) {
|
|
3585
|
+
await this.logger.log("<properties>");
|
|
3586
|
+
this.logger.indent();
|
|
3587
|
+
for (const annotation of task.annotations) {
|
|
3588
|
+
await this.logger.log(`<property name="${escapeXML(annotation.type)}" value="${escapeXML(annotation.message)}">`);
|
|
3589
|
+
await this.logger.log("</property>");
|
|
3590
|
+
}
|
|
3591
|
+
this.logger.unindent();
|
|
3592
|
+
await this.logger.log("</properties>");
|
|
3593
|
+
}
|
|
3594
|
+
if (task.result?.state === "fail") {
|
|
3595
|
+
const errors = task.result.errors || [];
|
|
3596
|
+
for (const error of errors) await this.writeElement("failure", {
|
|
3597
|
+
message: error?.message,
|
|
3598
|
+
type: error?.name
|
|
3599
|
+
}, async () => {
|
|
3600
|
+
if (!error) return;
|
|
3601
|
+
const result = capturePrintError(error, this.ctx, {
|
|
3602
|
+
project: this.ctx.getProjectByName(task.file.projectName || ""),
|
|
3603
|
+
task
|
|
3604
|
+
});
|
|
3605
|
+
await this.baseLog(escapeXML(stripVTControlCharacters(result.output.trim())));
|
|
3606
|
+
});
|
|
3607
|
+
}
|
|
3608
|
+
});
|
|
3609
|
+
}
|
|
3610
|
+
}
|
|
3611
|
+
async onTestRunEnd(testModules) {
|
|
3612
|
+
const files = testModules.map((testModule) => testModule.task);
|
|
3613
|
+
await this.logger.log("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
|
|
3614
|
+
const transformed = files.map((file) => {
|
|
3615
|
+
const tasks = file.tasks.flatMap((task) => flattenTasks$1(task));
|
|
3616
|
+
const stats = tasks.reduce((stats, task) => {
|
|
3617
|
+
return {
|
|
3618
|
+
passed: stats.passed + Number(task.result?.state === "pass"),
|
|
3619
|
+
failures: stats.failures + Number(task.result?.state === "fail"),
|
|
3620
|
+
skipped: stats.skipped + Number(task.mode === "skip" || task.mode === "todo")
|
|
3621
|
+
};
|
|
3622
|
+
}, {
|
|
3623
|
+
passed: 0,
|
|
3624
|
+
failures: 0,
|
|
3625
|
+
skipped: 0
|
|
3626
|
+
});
|
|
3627
|
+
// inject failed suites to surface errors during beforeAll/afterAll
|
|
3628
|
+
const suites = getSuites(file);
|
|
3629
|
+
for (const suite of suites) if (suite.result?.errors) {
|
|
3630
|
+
tasks.push(suite);
|
|
3631
|
+
stats.failures += 1;
|
|
3632
|
+
}
|
|
3633
|
+
// If there are no tests, but the file failed to load, we still want to report it as a failure
|
|
3634
|
+
if (tasks.length === 0 && file.result?.state === "fail") {
|
|
3635
|
+
stats.failures = 1;
|
|
3636
|
+
tasks.push({
|
|
3637
|
+
id: file.id,
|
|
3638
|
+
type: "test",
|
|
3639
|
+
name: file.name,
|
|
3640
|
+
fullName: file.name,
|
|
3641
|
+
fullTestName: file.name,
|
|
3642
|
+
mode: "run",
|
|
3643
|
+
result: file.result,
|
|
3644
|
+
meta: {},
|
|
3645
|
+
timeout: 0,
|
|
3646
|
+
context: null,
|
|
3647
|
+
suite: null,
|
|
3648
|
+
file: null,
|
|
3649
|
+
annotations: [],
|
|
3650
|
+
artifacts: []
|
|
3651
|
+
});
|
|
3652
|
+
}
|
|
3653
|
+
return {
|
|
3654
|
+
...file,
|
|
3655
|
+
tasks,
|
|
3656
|
+
stats
|
|
3657
|
+
};
|
|
3658
|
+
});
|
|
3659
|
+
const stats = transformed.reduce((stats, file) => {
|
|
3660
|
+
stats.tests += file.tasks.length;
|
|
3661
|
+
stats.failures += file.stats.failures;
|
|
3662
|
+
stats.time += file.result?.duration || 0;
|
|
3663
|
+
return stats;
|
|
3664
|
+
}, {
|
|
3665
|
+
name: this.options.suiteName || "vitest tests",
|
|
3666
|
+
tests: 0,
|
|
3667
|
+
failures: 0,
|
|
3668
|
+
errors: 0,
|
|
3669
|
+
time: 0
|
|
3670
|
+
});
|
|
3671
|
+
await this.writeElement("testsuites", {
|
|
3672
|
+
...stats,
|
|
3673
|
+
time: executionTime(stats.time)
|
|
3674
|
+
}, async () => {
|
|
3675
|
+
for (const file of transformed) {
|
|
3676
|
+
const filename = relative(this.ctx.config.root, file.filepath);
|
|
3677
|
+
await this.writeElement("testsuite", {
|
|
3678
|
+
name: filename,
|
|
3679
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
3680
|
+
hostname: hostname(),
|
|
3681
|
+
tests: file.tasks.length,
|
|
3682
|
+
failures: file.stats.failures,
|
|
3683
|
+
errors: 0,
|
|
3684
|
+
skipped: file.stats.skipped,
|
|
3685
|
+
time: getDuration(file)
|
|
3686
|
+
}, async () => {
|
|
3687
|
+
await this.writeTasks(file.tasks, filename);
|
|
3688
|
+
});
|
|
3689
|
+
}
|
|
3690
|
+
});
|
|
3691
|
+
if (this.reportFile) this.ctx.logger.log(`JUNIT report written to ${this.reportFile}`);
|
|
3692
|
+
await this.fileFd?.close();
|
|
3693
|
+
this.fileFd = void 0;
|
|
3694
|
+
}
|
|
3695
|
+
}
|
|
3696
|
+
|
|
3697
|
+
function yamlString(str) {
|
|
3698
|
+
if (!str) return "";
|
|
3699
|
+
return `"${str.replace(/"/g, "\\\"")}"`;
|
|
3700
|
+
}
|
|
3701
|
+
function tapString(str) {
|
|
3702
|
+
return str.replace(/\\/g, "\\\\").replace(/#/g, "\\#").replace(/\n/g, " ");
|
|
3703
|
+
}
|
|
3704
|
+
class TapReporter {
|
|
3705
|
+
ctx;
|
|
3706
|
+
logger;
|
|
3707
|
+
onInit(ctx) {
|
|
3708
|
+
this.ctx = ctx;
|
|
3709
|
+
this.logger = new IndentedLogger(ctx.logger.log.bind(ctx.logger));
|
|
3710
|
+
}
|
|
3711
|
+
static getComment(task) {
|
|
3712
|
+
if (task.mode === "skip") return " # SKIP";
|
|
3713
|
+
else if (task.mode === "todo") return " # TODO";
|
|
3714
|
+
else if (task.result?.duration != null) return ` # time=${task.result.duration.toFixed(2)}ms`;
|
|
3715
|
+
else return "";
|
|
3716
|
+
}
|
|
3717
|
+
logErrorDetails(error, stack) {
|
|
3718
|
+
const errorName = error.name || "Unknown Error";
|
|
3719
|
+
this.logger.log(`name: ${yamlString(String(errorName))}`);
|
|
3720
|
+
this.logger.log(`message: ${yamlString(String(error.message))}`);
|
|
3721
|
+
if (stack)
|
|
3722
|
+
// For compatibility with tap-mocha-reporter
|
|
3723
|
+
this.logger.log(`stack: ${yamlString(`${stack.file}:${stack.line}:${stack.column}`)}`);
|
|
3724
|
+
}
|
|
3725
|
+
logTasks(tasks) {
|
|
3726
|
+
this.logger.log(`1..${tasks.length}`);
|
|
3727
|
+
for (const [i, task] of tasks.entries()) {
|
|
3728
|
+
const id = i + 1;
|
|
3729
|
+
const ok = task.result?.state === "pass" || task.mode === "skip" || task.mode === "todo" ? "ok" : "not ok";
|
|
3730
|
+
const comment = TapReporter.getComment(task);
|
|
3731
|
+
if (task.type === "suite" && task.tasks.length > 0) {
|
|
3732
|
+
this.logger.log(`${ok} ${id} - ${tapString(task.name)}${comment} {`);
|
|
3733
|
+
this.logger.indent();
|
|
3734
|
+
this.logTasks(task.tasks);
|
|
3735
|
+
this.logger.unindent();
|
|
3736
|
+
this.logger.log("}");
|
|
3737
|
+
} else {
|
|
3738
|
+
this.logger.log(`${ok} ${id} - ${tapString(task.name)}${comment}`);
|
|
3739
|
+
const project = this.ctx.getProjectByName(task.file.projectName || "");
|
|
3740
|
+
if (task.type === "test" && task.annotations) {
|
|
3741
|
+
this.logger.indent();
|
|
3742
|
+
task.annotations.forEach(({ type, message }) => {
|
|
3743
|
+
this.logger.log(`# ${type}: ${message}`);
|
|
3744
|
+
});
|
|
3745
|
+
this.logger.unindent();
|
|
3746
|
+
}
|
|
3747
|
+
if (task.result?.state === "fail" && task.result.errors) {
|
|
3748
|
+
this.logger.indent();
|
|
3749
|
+
task.result.errors.forEach((error) => {
|
|
3750
|
+
const stack = (task.file.pool === "browser" ? project.browser?.parseErrorStacktrace(error) || [] : parseErrorStacktrace(error, { frameFilter: this.ctx.config.onStackTrace }))[0];
|
|
3751
|
+
this.logger.log("---");
|
|
3752
|
+
this.logger.log("error:");
|
|
3753
|
+
this.logger.indent();
|
|
3754
|
+
this.logErrorDetails(error);
|
|
3755
|
+
this.logger.unindent();
|
|
3756
|
+
if (stack) this.logger.log(`at: ${yamlString(`${stack.file}:${stack.line}:${stack.column}`)}`);
|
|
3757
|
+
if (error.showDiff) {
|
|
3758
|
+
this.logger.log(`actual: ${yamlString(error.actual)}`);
|
|
3759
|
+
this.logger.log(`expected: ${yamlString(error.expected)}`);
|
|
3760
|
+
}
|
|
3761
|
+
});
|
|
3762
|
+
this.logger.log("...");
|
|
3763
|
+
this.logger.unindent();
|
|
3764
|
+
}
|
|
3765
|
+
}
|
|
3766
|
+
}
|
|
3767
|
+
}
|
|
3768
|
+
onTestRunEnd(testModules) {
|
|
3769
|
+
const files = testModules.map((testModule) => testModule.task);
|
|
3770
|
+
this.logger.log("TAP version 13");
|
|
3771
|
+
this.logTasks(files);
|
|
3772
|
+
}
|
|
3773
|
+
}
|
|
3774
|
+
|
|
3775
|
+
function flattenTasks(task, baseName = "") {
|
|
3776
|
+
const base = baseName ? `${baseName} > ` : "";
|
|
3777
|
+
if (task.type === "suite" && task.tasks.length > 0) return task.tasks.flatMap((child) => flattenTasks(child, `${base}${task.name}`));
|
|
3778
|
+
else return [{
|
|
3779
|
+
...task,
|
|
3780
|
+
name: `${base}${task.name}`
|
|
3781
|
+
}];
|
|
3782
|
+
}
|
|
3783
|
+
class TapFlatReporter extends TapReporter {
|
|
3784
|
+
onInit(ctx) {
|
|
3785
|
+
super.onInit(ctx);
|
|
3786
|
+
}
|
|
3787
|
+
onTestRunEnd(testModules) {
|
|
3788
|
+
this.ctx.logger.log("TAP version 13");
|
|
3789
|
+
const flatTasks = testModules.flatMap((testModule) => flattenTasks(testModule.task));
|
|
3790
|
+
this.logTasks(flatTasks);
|
|
3791
|
+
}
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3794
|
+
class TreeReporter extends DefaultReporter {
|
|
3795
|
+
verbose = true;
|
|
3796
|
+
renderSucceed = true;
|
|
3797
|
+
}
|
|
3798
|
+
|
|
3799
|
+
class VerboseReporter extends DefaultReporter {
|
|
3800
|
+
verbose = true;
|
|
3801
|
+
renderSucceed = true;
|
|
3802
|
+
printTestModule(_module) {
|
|
3803
|
+
// don't print test module, only print tests
|
|
3804
|
+
}
|
|
3805
|
+
onTestCaseResult(test) {
|
|
3806
|
+
super.onTestCaseResult(test);
|
|
3807
|
+
const testResult = test.result();
|
|
3808
|
+
if (this.ctx.config.hideSkippedTests && testResult.state === "skipped") return;
|
|
3809
|
+
let title = ` ${this.getEntityPrefix(test)} `;
|
|
3810
|
+
title += test.module.task.name;
|
|
3811
|
+
if (test.location) title += c.dim(`:${test.location.line}:${test.location.column}`);
|
|
3812
|
+
title += separator;
|
|
3813
|
+
title += getTestName(test.task, separator);
|
|
3814
|
+
title += this.getTestCaseSuffix(test);
|
|
3815
|
+
this.log(title);
|
|
3816
|
+
if (testResult.state === "failed") testResult.errors.forEach((error) => this.log(c.red(` ${F_RIGHT} ${error.message}`)));
|
|
3817
|
+
if (test.annotations().length) {
|
|
3818
|
+
this.log();
|
|
3819
|
+
this.printAnnotations(test, "log", 3);
|
|
3820
|
+
this.log();
|
|
3821
|
+
}
|
|
3822
|
+
}
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3825
|
+
const ReportersMap = {
|
|
3826
|
+
"default": DefaultReporter,
|
|
3827
|
+
"blob": BlobReporter,
|
|
3828
|
+
"verbose": VerboseReporter,
|
|
3829
|
+
"dot": DotReporter,
|
|
3830
|
+
"json": JsonReporter,
|
|
3831
|
+
"tap": TapReporter,
|
|
3832
|
+
"tap-flat": TapFlatReporter,
|
|
3833
|
+
"junit": JUnitReporter,
|
|
3834
|
+
"tree": TreeReporter,
|
|
3835
|
+
"hanging-process": HangingProcessReporter,
|
|
3836
|
+
"github-actions": GithubActionsReporter
|
|
3837
|
+
};
|
|
3838
|
+
|
|
3839
|
+
export { utils as A, BlobReporter as B, DefaultReporter as D, F_RIGHT as F, GithubActionsReporter as G, HangingProcessReporter as H, JsonReporter as J, ReportersMap as R, TapFlatReporter as T, VerboseReporter as V, DotReporter as a, JUnitReporter as b, TapReporter as c, stringify as d, createIndexLocationsMap as e, formatProjectName as f, getStateSymbol as g, TraceMap as h, ancestor as i, printError as j, errorBanner as k, divider as l, Typechecker as m, generateCodeFrame as n, originalPositionFor as o, parse$1 as p, escapeRegExp as q, createDefinesScript as r, separator as s, truncateString as t, groupBy as u, readBlobs as v, withLabel as w, convertTasksToEvents as x, wildcardPatternToRegExp as y, stdout as z };
|