@lyse-labs/lyse 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +45 -0
- package/PRIVACY.md +181 -0
- package/README.md +34 -0
- package/SECURITY.md +43 -0
- package/dist/bench/evidence-pack/anti-dummy.d.ts +11 -0
- package/dist/bench/evidence-pack/anti-dummy.js +20 -0
- package/dist/bench/evidence-pack/anti-dummy.js.map +1 -0
- package/dist/bench/evidence-pack/builder.d.ts +14 -0
- package/dist/bench/evidence-pack/builder.js +77 -0
- package/dist/bench/evidence-pack/builder.js.map +1 -0
- package/dist/bench/evidence-pack/histograms.d.ts +2 -0
- package/dist/bench/evidence-pack/histograms.js +131 -0
- package/dist/bench/evidence-pack/histograms.js.map +1 -0
- package/dist/bench/evidence-pack/manifest-detector.d.ts +2 -0
- package/dist/bench/evidence-pack/manifest-detector.js +65 -0
- package/dist/bench/evidence-pack/manifest-detector.js.map +1 -0
- package/dist/bench/evidence-pack/package-json-digest.d.ts +2 -0
- package/dist/bench/evidence-pack/package-json-digest.js +51 -0
- package/dist/bench/evidence-pack/package-json-digest.js.map +1 -0
- package/dist/bench/evidence-pack/sampler.d.ts +2 -0
- package/dist/bench/evidence-pack/sampler.js +140 -0
- package/dist/bench/evidence-pack/sampler.js.map +1 -0
- package/dist/bench/evidence-pack/types.d.ts +127 -0
- package/dist/bench/evidence-pack/types.js +2 -0
- package/dist/bench/evidence-pack/types.js.map +1 -0
- package/dist/bench/evidence-pack/verifier-corpus.d.ts +5 -0
- package/dist/bench/evidence-pack/verifier-corpus.js +13 -0
- package/dist/bench/evidence-pack/verifier-corpus.js.map +1 -0
- package/dist/bench/taxonomy-loader.d.ts +20 -0
- package/dist/bench/taxonomy-loader.js +28 -0
- package/dist/bench/taxonomy-loader.js.map +1 -0
- package/dist/bench/taxonomy.v3.json +20 -0
- package/dist/cli/__tests__/version-migration.test.d.ts +1 -0
- package/dist/cli/__tests__/version-migration.test.js +69 -0
- package/dist/cli/__tests__/version-migration.test.js.map +1 -0
- package/dist/cli/output/__tests__/eslint-style.test.d.ts +1 -0
- package/dist/cli/output/__tests__/eslint-style.test.js +205 -0
- package/dist/cli/output/__tests__/eslint-style.test.js.map +1 -0
- package/dist/cli/output/__tests__/limit.test.d.ts +1 -0
- package/dist/cli/output/__tests__/limit.test.js +65 -0
- package/dist/cli/output/__tests__/limit.test.js.map +1 -0
- package/dist/cli/output/eslint-style.d.ts +18 -0
- package/dist/cli/output/eslint-style.js +42 -0
- package/dist/cli/output/eslint-style.js.map +1 -0
- package/dist/cli/output/limit.d.ts +5 -0
- package/dist/cli/output/limit.js +32 -0
- package/dist/cli/output/limit.js.map +1 -0
- package/dist/cli/output/score-gauge.d.ts +4 -0
- package/dist/cli/output/score-gauge.js +15 -0
- package/dist/cli/output/score-gauge.js.map +1 -0
- package/dist/cli/version-migration.d.ts +18 -0
- package/dist/cli/version-migration.js +49 -0
- package/dist/cli/version-migration.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +856 -0
- package/dist/cli.js.map +1 -0
- package/dist/codemods/diff.d.ts +17 -0
- package/dist/codemods/diff.js +77 -0
- package/dist/codemods/diff.js.map +1 -0
- package/dist/codemods/git-helpers.d.ts +10 -0
- package/dist/codemods/git-helpers.js +75 -0
- package/dist/codemods/git-helpers.js.map +1 -0
- package/dist/codemods/index.d.ts +27 -0
- package/dist/codemods/index.js +40 -0
- package/dist/codemods/index.js.map +1 -0
- package/dist/codemods/naming-component-pascalcase.d.ts +13 -0
- package/dist/codemods/naming-component-pascalcase.js +106 -0
- package/dist/codemods/naming-component-pascalcase.js.map +1 -0
- package/dist/codemods/naming-hook-prefix.d.ts +13 -0
- package/dist/codemods/naming-hook-prefix.js +86 -0
- package/dist/codemods/naming-hook-prefix.js.map +1 -0
- package/dist/codemods/safety.d.ts +50 -0
- package/dist/codemods/safety.js +109 -0
- package/dist/codemods/safety.js.map +1 -0
- package/dist/codemods/safety.test.d.ts +1 -0
- package/dist/codemods/safety.test.js +154 -0
- package/dist/codemods/safety.test.js.map +1 -0
- package/dist/codemods/shadow-native.d.ts +2 -0
- package/dist/codemods/shadow-native.js +103 -0
- package/dist/codemods/shadow-native.js.map +1 -0
- package/dist/codemods/tokens-color.d.ts +2 -0
- package/dist/codemods/tokens-color.js +69 -0
- package/dist/codemods/tokens-color.js.map +1 -0
- package/dist/codemods/tokens-spacing.d.ts +2 -0
- package/dist/codemods/tokens-spacing.js +66 -0
- package/dist/codemods/tokens-spacing.js.map +1 -0
- package/dist/commands/__tests__/email-prompt.test.d.ts +1 -0
- package/dist/commands/__tests__/email-prompt.test.js +126 -0
- package/dist/commands/__tests__/email-prompt.test.js.map +1 -0
- package/dist/commands/__tests__/explain-score.test.d.ts +1 -0
- package/dist/commands/__tests__/explain-score.test.js +88 -0
- package/dist/commands/__tests__/explain-score.test.js.map +1 -0
- package/dist/commands/__tests__/feedback.test.d.ts +1 -0
- package/dist/commands/__tests__/feedback.test.js +186 -0
- package/dist/commands/__tests__/feedback.test.js.map +1 -0
- package/dist/commands/audit-flags.d.ts +49 -0
- package/dist/commands/audit-flags.js +17 -0
- package/dist/commands/audit-flags.js.map +1 -0
- package/dist/commands/audit-pipeline.d.ts +31 -0
- package/dist/commands/audit-pipeline.js +342 -0
- package/dist/commands/audit-pipeline.js.map +1 -0
- package/dist/commands/bench-pack.d.ts +5 -0
- package/dist/commands/bench-pack.js +61 -0
- package/dist/commands/bench-pack.js.map +1 -0
- package/dist/commands/ci-setup.d.ts +9 -0
- package/dist/commands/ci-setup.js +42 -0
- package/dist/commands/ci-setup.js.map +1 -0
- package/dist/commands/email-prompt.d.ts +36 -0
- package/dist/commands/email-prompt.js +160 -0
- package/dist/commands/email-prompt.js.map +1 -0
- package/dist/commands/explain-score.d.ts +35 -0
- package/dist/commands/explain-score.js +137 -0
- package/dist/commands/explain-score.js.map +1 -0
- package/dist/commands/explain.d.ts +6 -0
- package/dist/commands/explain.js +93 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/feedback.d.ts +31 -0
- package/dist/commands/feedback.js +155 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/fix.d.ts +48 -0
- package/dist/commands/fix.js +191 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/init-detect.d.ts +20 -0
- package/dist/commands/init-detect.js +124 -0
- package/dist/commands/init-detect.js.map +1 -0
- package/dist/commands/init-write-agents-md.d.ts +14 -0
- package/dist/commands/init-write-agents-md.js +71 -0
- package/dist/commands/init-write-agents-md.js.map +1 -0
- package/dist/commands/init-write-lyse-md.d.ts +14 -0
- package/dist/commands/init-write-lyse-md.js +253 -0
- package/dist/commands/init-write-lyse-md.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.js +147 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp-entry.d.ts +33 -0
- package/dist/commands/mcp-entry.js +47 -0
- package/dist/commands/mcp-entry.js.map +1 -0
- package/dist/commands/mcp-setup.d.ts +10 -0
- package/dist/commands/mcp-setup.js +74 -0
- package/dist/commands/mcp-setup.js.map +1 -0
- package/dist/commands/share.d.ts +4 -0
- package/dist/commands/share.js +60 -0
- package/dist/commands/share.js.map +1 -0
- package/dist/commands/telemetry.d.ts +4 -0
- package/dist/commands/telemetry.js +27 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/templates/lyse-workflow.yml.template +30 -0
- package/dist/config/schema.d.ts +158 -0
- package/dist/config/schema.js +136 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/credentials/keychain.d.ts +20 -0
- package/dist/credentials/keychain.js +35 -0
- package/dist/credentials/keychain.js.map +1 -0
- package/dist/credentials/keychain.test.d.ts +1 -0
- package/dist/credentials/keychain.test.js +32 -0
- package/dist/credentials/keychain.test.js.map +1 -0
- package/dist/credentials/paths.d.ts +1 -0
- package/dist/credentials/paths.js +6 -0
- package/dist/credentials/paths.js.map +1 -0
- package/dist/credentials/store.d.ts +17 -0
- package/dist/credentials/store.js +60 -0
- package/dist/credentials/store.js.map +1 -0
- package/dist/credentials/store.test.d.ts +1 -0
- package/dist/credentials/store.test.js +48 -0
- package/dist/credentials/store.test.js.map +1 -0
- package/dist/detection/from-filesystem.d.ts +2 -0
- package/dist/detection/from-filesystem.js +26 -0
- package/dist/detection/from-filesystem.js.map +1 -0
- package/dist/detection/from-git.d.ts +2 -0
- package/dist/detection/from-git.js +53 -0
- package/dist/detection/from-git.js.map +1 -0
- package/dist/detection/from-package-json.d.ts +2 -0
- package/dist/detection/from-package-json.js +194 -0
- package/dist/detection/from-package-json.js.map +1 -0
- package/dist/detection/pre-flight.d.ts +5 -0
- package/dist/detection/pre-flight.js +47 -0
- package/dist/detection/pre-flight.js.map +1 -0
- package/dist/detection/types.d.ts +27 -0
- package/dist/detection/types.js +2 -0
- package/dist/detection/types.js.map +1 -0
- package/dist/entitlement/check.d.ts +7 -0
- package/dist/entitlement/check.js +37 -0
- package/dist/entitlement/check.js.map +1 -0
- package/dist/entitlement/index.d.ts +1 -0
- package/dist/entitlement/index.js +2 -0
- package/dist/entitlement/index.js.map +1 -0
- package/dist/entitlement/keys.d.ts +10 -0
- package/dist/entitlement/keys.js +14 -0
- package/dist/entitlement/keys.js.map +1 -0
- package/dist/history/ndjson-store.d.ts +70 -0
- package/dist/history/ndjson-store.js +102 -0
- package/dist/history/ndjson-store.js.map +1 -0
- package/dist/identity/index.d.ts +1 -0
- package/dist/identity/index.js +2 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/repo-bucket.d.ts +22 -0
- package/dist/identity/repo-bucket.js +78 -0
- package/dist/identity/repo-bucket.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/layer4-stage.d.ts +18 -0
- package/dist/llm/layer4-stage.js +12 -0
- package/dist/llm/layer4-stage.js.map +1 -0
- package/dist/loaders/components.d.ts +26 -0
- package/dist/loaders/components.js +285 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/stories.d.ts +2 -0
- package/dist/loaders/stories.js +231 -0
- package/dist/loaders/stories.js.map +1 -0
- package/dist/loaders/token-graph.d.ts +39 -0
- package/dist/loaders/token-graph.js +146 -0
- package/dist/loaders/token-graph.js.map +1 -0
- package/dist/loaders/tokens.d.ts +2 -0
- package/dist/loaders/tokens.js +521 -0
- package/dist/loaders/tokens.js.map +1 -0
- package/dist/mcp/_find-root.d.ts +12 -0
- package/dist/mcp/_find-root.js +28 -0
- package/dist/mcp/_find-root.js.map +1 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +42 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/audit-file.d.ts +25 -0
- package/dist/mcp/tools/audit-file.js +147 -0
- package/dist/mcp/tools/audit-file.js.map +1 -0
- package/dist/mcp/tools/suggest-fix.d.ts +13 -0
- package/dist/mcp/tools/suggest-fix.js +100 -0
- package/dist/mcp/tools/suggest-fix.js.map +1 -0
- package/dist/menu/action-menu.d.ts +6 -0
- package/dist/menu/action-menu.js +15 -0
- package/dist/menu/action-menu.js.map +1 -0
- package/dist/menu/prompts.d.ts +7 -0
- package/dist/menu/prompts.js +30 -0
- package/dist/menu/prompts.js.map +1 -0
- package/dist/menu/repl.d.ts +17 -0
- package/dist/menu/repl.js +77 -0
- package/dist/menu/repl.js.map +1 -0
- package/dist/parsers/css-in-js.d.ts +2 -0
- package/dist/parsers/css-in-js.js +69 -0
- package/dist/parsers/css-in-js.js.map +1 -0
- package/dist/parsers/css.d.ts +2 -0
- package/dist/parsers/css.js +32 -0
- package/dist/parsers/css.js.map +1 -0
- package/dist/parsers/scss-transform.d.ts +25 -0
- package/dist/parsers/scss-transform.js +55 -0
- package/dist/parsers/scss-transform.js.map +1 -0
- package/dist/parsers/tailwind-v4.d.ts +8 -0
- package/dist/parsers/tailwind-v4.js +90 -0
- package/dist/parsers/tailwind-v4.js.map +1 -0
- package/dist/parsers/ts-morph-project.d.ts +16 -0
- package/dist/parsers/ts-morph-project.js +77 -0
- package/dist/parsers/ts-morph-project.js.map +1 -0
- package/dist/parsers/ts.d.ts +2 -0
- package/dist/parsers/ts.js +61 -0
- package/dist/parsers/ts.js.map +1 -0
- package/dist/reliability/__tests__/types.test.d.ts +1 -0
- package/dist/reliability/__tests__/types.test.js +14 -0
- package/dist/reliability/__tests__/types.test.js.map +1 -0
- package/dist/reliability/catalogue/__tests__/promotion.test.d.ts +1 -0
- package/dist/reliability/catalogue/__tests__/promotion.test.js +23 -0
- package/dist/reliability/catalogue/__tests__/promotion.test.js.map +1 -0
- package/dist/reliability/catalogue/__tests__/sub-axes.test.d.ts +1 -0
- package/dist/reliability/catalogue/__tests__/sub-axes.test.js +27 -0
- package/dist/reliability/catalogue/__tests__/sub-axes.test.js.map +1 -0
- package/dist/reliability/catalogue/promotion.d.ts +8 -0
- package/dist/reliability/catalogue/promotion.js +25 -0
- package/dist/reliability/catalogue/promotion.js.map +1 -0
- package/dist/reliability/catalogue/sub-axes.d.ts +3 -0
- package/dist/reliability/catalogue/sub-axes.js +18 -0
- package/dist/reliability/catalogue/sub-axes.js.map +1 -0
- package/dist/reliability/confidence/__tests__/manifest-loader.test.d.ts +1 -0
- package/dist/reliability/confidence/__tests__/manifest-loader.test.js +103 -0
- package/dist/reliability/confidence/__tests__/manifest-loader.test.js.map +1 -0
- package/dist/reliability/confidence/bundled-manifest.d.ts +2 -0
- package/dist/reliability/confidence/bundled-manifest.js +8 -0
- package/dist/reliability/confidence/bundled-manifest.js.map +1 -0
- package/dist/reliability/confidence/index.d.ts +3 -0
- package/dist/reliability/confidence/index.js +3 -0
- package/dist/reliability/confidence/index.js.map +1 -0
- package/dist/reliability/confidence/manifest-loader.d.ts +8 -0
- package/dist/reliability/confidence/manifest-loader.js +53 -0
- package/dist/reliability/confidence/manifest-loader.js.map +1 -0
- package/dist/reliability/feedback/__tests__/interactive.test.d.ts +1 -0
- package/dist/reliability/feedback/__tests__/interactive.test.js +85 -0
- package/dist/reliability/feedback/__tests__/interactive.test.js.map +1 -0
- package/dist/reliability/feedback/__tests__/repo-bucket.test.d.ts +1 -0
- package/dist/reliability/feedback/__tests__/repo-bucket.test.js +18 -0
- package/dist/reliability/feedback/__tests__/repo-bucket.test.js.map +1 -0
- package/dist/reliability/feedback/__tests__/sender.test.d.ts +1 -0
- package/dist/reliability/feedback/__tests__/sender.test.js +101 -0
- package/dist/reliability/feedback/__tests__/sender.test.js.map +1 -0
- package/dist/reliability/feedback/interactive.d.ts +20 -0
- package/dist/reliability/feedback/interactive.js +150 -0
- package/dist/reliability/feedback/interactive.js.map +1 -0
- package/dist/reliability/feedback/repo-bucket.d.ts +2 -0
- package/dist/reliability/feedback/repo-bucket.js +9 -0
- package/dist/reliability/feedback/repo-bucket.js.map +1 -0
- package/dist/reliability/feedback/sender.d.ts +16 -0
- package/dist/reliability/feedback/sender.js +28 -0
- package/dist/reliability/feedback/sender.js.map +1 -0
- package/dist/reliability/index.d.ts +1 -0
- package/dist/reliability/index.js +2 -0
- package/dist/reliability/index.js.map +1 -0
- package/dist/reliability/llm-eval/__tests__/budget.test.d.ts +1 -0
- package/dist/reliability/llm-eval/__tests__/budget.test.js +39 -0
- package/dist/reliability/llm-eval/__tests__/budget.test.js.map +1 -0
- package/dist/reliability/llm-eval/budget.d.ts +14 -0
- package/dist/reliability/llm-eval/budget.js +43 -0
- package/dist/reliability/llm-eval/budget.js.map +1 -0
- package/dist/reliability/score/__tests__/formula-v1.test.d.ts +1 -0
- package/dist/reliability/score/__tests__/formula-v1.test.js +29 -0
- package/dist/reliability/score/__tests__/formula-v1.test.js.map +1 -0
- package/dist/reliability/score/formula-v1.d.ts +13 -0
- package/dist/reliability/score/formula-v1.js +19 -0
- package/dist/reliability/score/formula-v1.js.map +1 -0
- package/dist/reliability/score/version-pin.d.ts +1 -0
- package/dist/reliability/score/version-pin.js +2 -0
- package/dist/reliability/score/version-pin.js.map +1 -0
- package/dist/reliability/score/weight.d.ts +1 -0
- package/dist/reliability/score/weight.js +5 -0
- package/dist/reliability/score/weight.js.map +1 -0
- package/dist/reliability/types.d.ts +39 -0
- package/dist/reliability/types.js +2 -0
- package/dist/reliability/types.js.map +1 -0
- package/dist/reporters/coverage-footer.d.ts +2 -0
- package/dist/reporters/coverage-footer.js +7 -0
- package/dist/reporters/coverage-footer.js.map +1 -0
- package/dist/reporters/json.d.ts +5 -0
- package/dist/reporters/json.js +51 -0
- package/dist/reporters/json.js.map +1 -0
- package/dist/reporters/markdown.d.ts +7 -0
- package/dist/reporters/markdown.js +35 -0
- package/dist/reporters/markdown.js.map +1 -0
- package/dist/reporters/sarif.d.ts +5 -0
- package/dist/reporters/sarif.js +109 -0
- package/dist/reporters/sarif.js.map +1 -0
- package/dist/reporters/terminal-format.d.ts +34 -0
- package/dist/reporters/terminal-format.js +97 -0
- package/dist/reporters/terminal-format.js.map +1 -0
- package/dist/reporters/terminal.d.ts +4 -0
- package/dist/reporters/terminal.js +201 -0
- package/dist/reporters/terminal.js.map +1 -0
- package/dist/rule-runner.d.ts +8 -0
- package/dist/rule-runner.js +22 -0
- package/dist/rule-runner.js.map +1 -0
- package/dist/rules/_codemod-adapter.d.ts +16 -0
- package/dist/rules/_codemod-adapter.js +49 -0
- package/dist/rules/_codemod-adapter.js.map +1 -0
- package/dist/rules/_exclude.d.ts +11 -0
- package/dist/rules/_exclude.js +17 -0
- package/dist/rules/_exclude.js.map +1 -0
- package/dist/rules/_function-body-analysis.d.ts +82 -0
- package/dist/rules/_function-body-analysis.js +379 -0
- package/dist/rules/_function-body-analysis.js.map +1 -0
- package/dist/rules/_rule-module.d.ts +31 -0
- package/dist/rules/_rule-module.js +32 -0
- package/dist/rules/_rule-module.js.map +1 -0
- package/dist/rules/_skip-context.d.ts +36 -0
- package/dist/rules/_skip-context.js +128 -0
- package/dist/rules/_skip-context.js.map +1 -0
- package/dist/rules/a11y-essentials.d.ts +1 -0
- package/dist/rules/a11y-essentials.js +140 -0
- package/dist/rules/a11y-essentials.js.map +1 -0
- package/dist/rules/ai-surface-agents-md-quality.d.ts +22 -0
- package/dist/rules/ai-surface-agents-md-quality.js +233 -0
- package/dist/rules/ai-surface-agents-md-quality.js.map +1 -0
- package/dist/rules/ai-surface-component-manifest-json.d.ts +19 -0
- package/dist/rules/ai-surface-component-manifest-json.js +232 -0
- package/dist/rules/ai-surface-component-manifest-json.js.map +1 -0
- package/dist/rules/ai-surface-ds-index-exported.d.ts +19 -0
- package/dist/rules/ai-surface-ds-index-exported.js +239 -0
- package/dist/rules/ai-surface-ds-index-exported.js.map +1 -0
- package/dist/rules/components-shadow-native.d.ts +2 -0
- package/dist/rules/components-shadow-native.js +118 -0
- package/dist/rules/components-shadow-native.js.map +1 -0
- package/dist/rules/manifest.d.ts +5 -0
- package/dist/rules/manifest.js +20 -0
- package/dist/rules/manifest.js.map +1 -0
- package/dist/rules/naming-component-pascalcase.d.ts +7 -0
- package/dist/rules/naming-component-pascalcase.js +197 -0
- package/dist/rules/naming-component-pascalcase.js.map +1 -0
- package/dist/rules/naming-hook-prefix.d.ts +6 -0
- package/dist/rules/naming-hook-prefix.js +185 -0
- package/dist/rules/naming-hook-prefix.js.map +1 -0
- package/dist/rules/pack-loader.d.ts +30 -0
- package/dist/rules/pack-loader.js +60 -0
- package/dist/rules/pack-loader.js.map +1 -0
- package/dist/rules/pack-validator.d.ts +8 -0
- package/dist/rules/pack-validator.js +97 -0
- package/dist/rules/pack-validator.js.map +1 -0
- package/dist/rules/registry.d.ts +3 -0
- package/dist/rules/registry.js +28 -0
- package/dist/rules/registry.js.map +1 -0
- package/dist/rules/storybook-coverage.d.ts +1 -0
- package/dist/rules/storybook-coverage.js +49 -0
- package/dist/rules/storybook-coverage.js.map +1 -0
- package/dist/rules/templates/_regex-utils.d.ts +5 -0
- package/dist/rules/templates/_regex-utils.js +8 -0
- package/dist/rules/templates/_regex-utils.js.map +1 -0
- package/dist/rules/templates/a11y-jsx-template.d.ts +15 -0
- package/dist/rules/templates/a11y-jsx-template.js +69 -0
- package/dist/rules/templates/a11y-jsx-template.js.map +1 -0
- package/dist/rules/templates/css-property-token-compliance.d.ts +18 -0
- package/dist/rules/templates/css-property-token-compliance.js +56 -0
- package/dist/rules/templates/css-property-token-compliance.js.map +1 -0
- package/dist/rules/templates/import-source-restriction.d.ts +18 -0
- package/dist/rules/templates/import-source-restriction.js +60 -0
- package/dist/rules/templates/import-source-restriction.js.map +1 -0
- package/dist/rules/templates/js-call-token-compliance.d.ts +18 -0
- package/dist/rules/templates/js-call-token-compliance.js +61 -0
- package/dist/rules/templates/js-call-token-compliance.js.map +1 -0
- package/dist/rules/templates/js-prop-token-compliance.d.ts +21 -0
- package/dist/rules/templates/js-prop-token-compliance.js +56 -0
- package/dist/rules/templates/js-prop-token-compliance.js.map +1 -0
- package/dist/rules/templates/naming-convention.d.ts +18 -0
- package/dist/rules/templates/naming-convention.js +76 -0
- package/dist/rules/templates/naming-convention.js.map +1 -0
- package/dist/rules/templates/registry.d.ts +5 -0
- package/dist/rules/templates/registry.js +30 -0
- package/dist/rules/templates/registry.js.map +1 -0
- package/dist/rules/templates/storybook-coverage-template.d.ts +15 -0
- package/dist/rules/templates/storybook-coverage-template.js +58 -0
- package/dist/rules/templates/storybook-coverage-template.js.map +1 -0
- package/dist/rules/templates/tailwind-utility-class-compliance.d.ts +15 -0
- package/dist/rules/templates/tailwind-utility-class-compliance.js +70 -0
- package/dist/rules/templates/tailwind-utility-class-compliance.js.map +1 -0
- package/dist/rules/templates/types.d.ts +16 -0
- package/dist/rules/templates/types.js +2 -0
- package/dist/rules/templates/types.js.map +1 -0
- package/dist/rules/tokens-description-coverage.d.ts +15 -0
- package/dist/rules/tokens-description-coverage.js +193 -0
- package/dist/rules/tokens-description-coverage.js.map +1 -0
- package/dist/rules/tokens-dtcg-conformance.d.ts +47 -0
- package/dist/rules/tokens-dtcg-conformance.js +363 -0
- package/dist/rules/tokens-dtcg-conformance.js.map +1 -0
- package/dist/rules/tokens-no-hardcoded-color.d.ts +18 -0
- package/dist/rules/tokens-no-hardcoded-color.js +436 -0
- package/dist/rules/tokens-no-hardcoded-color.js.map +1 -0
- package/dist/rules/tokens-no-hardcoded-spacing.d.ts +8 -0
- package/dist/rules/tokens-no-hardcoded-spacing.js +193 -0
- package/dist/rules/tokens-no-hardcoded-spacing.js.map +1 -0
- package/dist/scorer.d.ts +38 -0
- package/dist/scorer.js +126 -0
- package/dist/scorer.js.map +1 -0
- package/dist/share/clipboard.d.ts +26 -0
- package/dist/share/clipboard.js +76 -0
- package/dist/share/clipboard.js.map +1 -0
- package/dist/suppression/__tests__/inline.test.d.ts +1 -0
- package/dist/suppression/__tests__/inline.test.js +25 -0
- package/dist/suppression/__tests__/inline.test.js.map +1 -0
- package/dist/suppression/__tests__/lyseignore.test.d.ts +1 -0
- package/dist/suppression/__tests__/lyseignore.test.js +32 -0
- package/dist/suppression/__tests__/lyseignore.test.js.map +1 -0
- package/dist/suppression/defaults.d.ts +1 -0
- package/dist/suppression/defaults.js +14 -0
- package/dist/suppression/defaults.js.map +1 -0
- package/dist/suppression/inline.d.ts +7 -0
- package/dist/suppression/inline.js +32 -0
- package/dist/suppression/inline.js.map +1 -0
- package/dist/suppression/lyseignore.d.ts +2 -0
- package/dist/suppression/lyseignore.js +22 -0
- package/dist/suppression/lyseignore.js.map +1 -0
- package/dist/telemetry/consent.d.ts +48 -0
- package/dist/telemetry/consent.js +139 -0
- package/dist/telemetry/consent.js.map +1 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.js +3 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/local-log.d.ts +64 -0
- package/dist/telemetry/local-log.js +123 -0
- package/dist/telemetry/local-log.js.map +1 -0
- package/dist/tokens/dtcg-model.d.ts +53 -0
- package/dist/tokens/dtcg-model.js +18 -0
- package/dist/tokens/dtcg-model.js.map +1 -0
- package/dist/tokens/normalizer.d.ts +17 -0
- package/dist/tokens/normalizer.js +360 -0
- package/dist/tokens/normalizer.js.map +1 -0
- package/dist/types.d.ts +300 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/util/git.d.ts +6 -0
- package/dist/util/git.js +40 -0
- package/dist/util/git.js.map +1 -0
- package/dist/util/git.test.d.ts +5 -0
- package/dist/util/git.test.js +42 -0
- package/dist/util/git.test.js.map +1 -0
- package/dist/util/gitignore.d.ts +9 -0
- package/dist/util/gitignore.js +39 -0
- package/dist/util/gitignore.js.map +1 -0
- package/dist/util/hash-deps.d.ts +6 -0
- package/dist/util/hash-deps.js +24 -0
- package/dist/util/hash-deps.js.map +1 -0
- package/dist/util/spinner.d.ts +41 -0
- package/dist/util/spinner.js +126 -0
- package/dist/util/spinner.js.map +1 -0
- package/dist/util/with-spinner.d.ts +11 -0
- package/dist/util/with-spinner.js +19 -0
- package/dist/util/with-spinner.js.map +1 -0
- package/dist/walker.d.ts +14 -0
- package/dist/walker.js +91 -0
- package/dist/walker.js.map +1 -0
- package/package.json +83 -0
- package/rules-manifest.json +289 -0
- package/schemas/v1/lyse-config.json +82 -0
- package/schemas/v1/lyse-event.json +68 -0
- package/schemas/v1/lyse-license.json +19 -0
- package/schemas/v1/lyse-llm-payload.json +53 -0
- package/schemas/v1/lyse-llm-response.json +45 -0
- package/schemas/v1/lyse-result.json +98 -0
- package/schemas/v1/lyse-rules.json +42 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal in-house spinner — issue #97.
|
|
3
|
+
*
|
|
4
|
+
* Why in-house? `ora` / `nanospinner` / `cli-spinners` would each pull a small
|
|
5
|
+
* dep tree we don't need. The full spec for an audit-time spinner is a redraw
|
|
6
|
+
* loop + ANSI cursor codes — well under 100 LOC. picocolors (already a dep)
|
|
7
|
+
* handles color.
|
|
8
|
+
*
|
|
9
|
+
* Design contract:
|
|
10
|
+
* - Always writes to stderr by default. stdout is reserved for the audit
|
|
11
|
+
* JSON / SARIF payload; the spinner must never contaminate it.
|
|
12
|
+
* - No-op when `enabled` is false OR `isTTY` is false. Callers can pass the
|
|
13
|
+
* spinner unconditionally; suppression logic lives here.
|
|
14
|
+
* - On `start()` we hide the cursor and install signal handlers so a
|
|
15
|
+
* ^C-killed audit doesn't leave the terminal in a cursor-hidden state.
|
|
16
|
+
* - On `succeed()` / `fail()` / `stop()` we clear the spinner line first,
|
|
17
|
+
* then optionally write the final state (succeed/fail). The final line
|
|
18
|
+
* persists; the in-progress frame does not.
|
|
19
|
+
*/
|
|
20
|
+
import pc from "picocolors";
|
|
21
|
+
const FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
22
|
+
const FRAME_MS = 80;
|
|
23
|
+
// ANSI control sequences kept inline for readability.
|
|
24
|
+
const HIDE_CURSOR = "\x1b[?25l";
|
|
25
|
+
const SHOW_CURSOR = "\x1b[?25h";
|
|
26
|
+
const CLEAR_LINE = "\r\x1b[K";
|
|
27
|
+
function noopSpinner() {
|
|
28
|
+
return {
|
|
29
|
+
start: () => { },
|
|
30
|
+
update: () => { },
|
|
31
|
+
succeed: () => { },
|
|
32
|
+
fail: () => { },
|
|
33
|
+
stop: () => { },
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function createSpinner(opts) {
|
|
37
|
+
if (!opts.enabled || !opts.isTTY)
|
|
38
|
+
return noopSpinner();
|
|
39
|
+
const stream = opts.stream ?? process.stderr;
|
|
40
|
+
const noColorEnv = typeof process.env["NO_COLOR"] === "string" && process.env["NO_COLOR"] !== "";
|
|
41
|
+
const color = opts.color ?? (opts.isTTY && !noColorEnv);
|
|
42
|
+
let label = "";
|
|
43
|
+
let frameIdx = 0;
|
|
44
|
+
let interval = null;
|
|
45
|
+
let active = false;
|
|
46
|
+
const colorFrame = (frame) => (color ? pc.cyan(frame) : frame);
|
|
47
|
+
const colorSuccess = (s) => (color ? pc.green(s) : s);
|
|
48
|
+
const colorFail = (s) => (color ? pc.red(s) : s);
|
|
49
|
+
const writeFrame = () => {
|
|
50
|
+
const frame = FRAMES[frameIdx % FRAMES.length] ?? FRAMES[0];
|
|
51
|
+
stream.write(`${CLEAR_LINE}${colorFrame(frame)} ${label}`);
|
|
52
|
+
frameIdx = (frameIdx + 1) % FRAMES.length;
|
|
53
|
+
};
|
|
54
|
+
const clearLine = () => {
|
|
55
|
+
stream.write(CLEAR_LINE);
|
|
56
|
+
};
|
|
57
|
+
// Restore terminal state on process exit / signal. Without this, a Ctrl-C
|
|
58
|
+
// during audit leaves the terminal with a hidden cursor — surprising and
|
|
59
|
+
// requires a `reset` to recover.
|
|
60
|
+
const restore = () => {
|
|
61
|
+
if (interval) {
|
|
62
|
+
clearInterval(interval);
|
|
63
|
+
interval = null;
|
|
64
|
+
}
|
|
65
|
+
if (active) {
|
|
66
|
+
stream.write(`${CLEAR_LINE}${SHOW_CURSOR}`);
|
|
67
|
+
active = false;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
// Best-effort: only register once per process. We can't fully scope these
|
|
71
|
+
// to the spinner instance because Node fires them on the whole process.
|
|
72
|
+
const onSignal = () => {
|
|
73
|
+
restore();
|
|
74
|
+
};
|
|
75
|
+
process.once("SIGINT", onSignal);
|
|
76
|
+
process.once("SIGTERM", onSignal);
|
|
77
|
+
process.once("exit", restore);
|
|
78
|
+
return {
|
|
79
|
+
start(initialLabel) {
|
|
80
|
+
// Multiple start() calls without stop() — clear the previous line so we
|
|
81
|
+
// don't accumulate orphan frames.
|
|
82
|
+
if (active) {
|
|
83
|
+
clearLine();
|
|
84
|
+
}
|
|
85
|
+
label = initialLabel;
|
|
86
|
+
frameIdx = 0;
|
|
87
|
+
active = true;
|
|
88
|
+
stream.write(HIDE_CURSOR);
|
|
89
|
+
writeFrame();
|
|
90
|
+
interval = setInterval(writeFrame, FRAME_MS);
|
|
91
|
+
if (typeof interval.unref === "function")
|
|
92
|
+
interval.unref();
|
|
93
|
+
},
|
|
94
|
+
update(nextLabel) {
|
|
95
|
+
if (!active) {
|
|
96
|
+
// update() without start() — treat as start() for resilience.
|
|
97
|
+
this.start(nextLabel);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
label = nextLabel;
|
|
101
|
+
writeFrame();
|
|
102
|
+
},
|
|
103
|
+
succeed(finalLabel) {
|
|
104
|
+
if (interval) {
|
|
105
|
+
clearInterval(interval);
|
|
106
|
+
interval = null;
|
|
107
|
+
}
|
|
108
|
+
clearLine();
|
|
109
|
+
stream.write(`${colorSuccess("✔")} ${finalLabel}\n${SHOW_CURSOR}`);
|
|
110
|
+
active = false;
|
|
111
|
+
},
|
|
112
|
+
fail(finalLabel) {
|
|
113
|
+
if (interval) {
|
|
114
|
+
clearInterval(interval);
|
|
115
|
+
interval = null;
|
|
116
|
+
}
|
|
117
|
+
clearLine();
|
|
118
|
+
stream.write(`${colorFail("✗")} ${finalLabel}\n${SHOW_CURSOR}`);
|
|
119
|
+
active = false;
|
|
120
|
+
},
|
|
121
|
+
stop() {
|
|
122
|
+
restore();
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/util/spinner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Spinner } from "./spinner.js";
|
|
2
|
+
export interface WithSpinnerOptions<T> {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
isTTY?: boolean;
|
|
5
|
+
quiet?: boolean;
|
|
6
|
+
machineFormat?: boolean;
|
|
7
|
+
startLabel: string;
|
|
8
|
+
successLabel: (result: T) => string;
|
|
9
|
+
failLabel?: (errMsg: string) => string;
|
|
10
|
+
}
|
|
11
|
+
export declare function withSpinner<T>(opts: WithSpinnerOptions<T>, fn: (spinner: Spinner) => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createSpinner } from "./spinner.js";
|
|
2
|
+
export async function withSpinner(opts, fn) {
|
|
3
|
+
const isTTY = opts.isTTY ?? (process.stderr.isTTY ?? false);
|
|
4
|
+
const isQuiet = opts.quiet === true || process.env["LYSE_QUIET"] === "1";
|
|
5
|
+
const enabled = opts.enabled ?? (isTTY && !isQuiet && !opts.machineFormat);
|
|
6
|
+
const spinner = createSpinner({ isTTY, enabled });
|
|
7
|
+
spinner.start(opts.startLabel);
|
|
8
|
+
try {
|
|
9
|
+
const result = await fn(spinner);
|
|
10
|
+
spinner.succeed(opts.successLabel(result));
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
const msg = err instanceof Error ? (err.message.split("\n")[0] ?? err.message) : String(err);
|
|
15
|
+
spinner.fail((opts.failLabel ?? ((m) => `Failed: ${m}`))(msg));
|
|
16
|
+
throw err;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=with-spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-spinner.js","sourceRoot":"","sources":["../../src/util/with-spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAY3D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA2B,EAC3B,EAAoC;IAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAElD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/walker.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conventional non-DS directories present in mature design-system monorepos.
|
|
3
|
+
* Including examples, docs sites, sandboxes, test infrastructure, and dev tooling
|
|
4
|
+
* prevents noise from non-DS-public-surface code from drowning out real findings.
|
|
5
|
+
*
|
|
6
|
+
* These extend DEFAULT_IGNORES (both are applied). Users can add more via
|
|
7
|
+
* config.designSystem.excludePaths — user paths EXTEND these defaults.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_EXCLUDE_PATHS: string[];
|
|
10
|
+
export interface WalkOptions {
|
|
11
|
+
/** Additional glob patterns to ignore on top of DEFAULT_IGNORES + DEFAULT_EXCLUDE_PATHS. */
|
|
12
|
+
extraIgnores?: string[];
|
|
13
|
+
}
|
|
14
|
+
export declare function walk(root: string, opts?: WalkOptions | string[]): Promise<string[]>;
|
package/dist/walker.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import fg from "fast-glob";
|
|
2
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
const SOURCE_GLOBS = [
|
|
5
|
+
"**/*.ts",
|
|
6
|
+
"**/*.tsx",
|
|
7
|
+
"**/*.js",
|
|
8
|
+
"**/*.jsx",
|
|
9
|
+
"**/*.mjs",
|
|
10
|
+
"**/*.cjs",
|
|
11
|
+
"**/*.css",
|
|
12
|
+
"**/*.scss",
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* Hardcoded ignores for generated/tooling directories that are never DS source.
|
|
16
|
+
* Separate from DEFAULT_EXCLUDE_PATHS so both lists can be combined at runtime.
|
|
17
|
+
*/
|
|
18
|
+
const DEFAULT_IGNORES = [
|
|
19
|
+
"**/node_modules/**",
|
|
20
|
+
"**/dist/**",
|
|
21
|
+
"**/build/**",
|
|
22
|
+
"**/.next/**",
|
|
23
|
+
"**/.turbo/**",
|
|
24
|
+
"**/coverage/**",
|
|
25
|
+
"**/.git/**",
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* Conventional non-DS directories present in mature design-system monorepos.
|
|
29
|
+
* Including examples, docs sites, sandboxes, test infrastructure, and dev tooling
|
|
30
|
+
* prevents noise from non-DS-public-surface code from drowning out real findings.
|
|
31
|
+
*
|
|
32
|
+
* These extend DEFAULT_IGNORES (both are applied). Users can add more via
|
|
33
|
+
* config.designSystem.excludePaths — user paths EXTEND these defaults.
|
|
34
|
+
*/
|
|
35
|
+
export const DEFAULT_EXCLUDE_PATHS = [
|
|
36
|
+
// Documentation and demo sites — never DS public API
|
|
37
|
+
"apps/docs/**",
|
|
38
|
+
"apps/www/**",
|
|
39
|
+
"apps/*.dev/**",
|
|
40
|
+
"apps/*.com/**",
|
|
41
|
+
"docs/**",
|
|
42
|
+
"docs-site/**",
|
|
43
|
+
"website/**",
|
|
44
|
+
"site/**",
|
|
45
|
+
// Example apps, starter templates, sandboxes
|
|
46
|
+
"examples/**",
|
|
47
|
+
"starters/**",
|
|
48
|
+
"starter/**",
|
|
49
|
+
"templates/**",
|
|
50
|
+
"sandbox/**",
|
|
51
|
+
"playground/**",
|
|
52
|
+
// Test infrastructure
|
|
53
|
+
"test/**",
|
|
54
|
+
"tests/**",
|
|
55
|
+
"e2e/**",
|
|
56
|
+
"**/fixtures/**",
|
|
57
|
+
"**/test-utils/**",
|
|
58
|
+
"**/__tests__/**",
|
|
59
|
+
// Build/dev tooling
|
|
60
|
+
"scripts/**",
|
|
61
|
+
"script/**",
|
|
62
|
+
"packages-internal/**",
|
|
63
|
+
"packages/dev/**",
|
|
64
|
+
"packages/@*/dev*/**",
|
|
65
|
+
"**/build-tools/**",
|
|
66
|
+
// Storybook config (stories are scanned elsewhere)
|
|
67
|
+
"**/.storybook/**",
|
|
68
|
+
];
|
|
69
|
+
function readGitignore(root) {
|
|
70
|
+
const path = join(root, ".gitignore");
|
|
71
|
+
if (!existsSync(path))
|
|
72
|
+
return [];
|
|
73
|
+
const lines = readFileSync(path, "utf8").split("\n");
|
|
74
|
+
return lines
|
|
75
|
+
.map((l) => l.trim())
|
|
76
|
+
.filter((l) => l && !l.startsWith("#"));
|
|
77
|
+
}
|
|
78
|
+
export async function walk(root, opts = {}) {
|
|
79
|
+
// Backward-compat: legacy callers passed extraIgnores as a plain string[].
|
|
80
|
+
const extraIgnores = Array.isArray(opts) ? opts : (opts.extraIgnores ?? []);
|
|
81
|
+
const ignores = [...DEFAULT_IGNORES, ...DEFAULT_EXCLUDE_PATHS, ...readGitignore(root), ...extraIgnores];
|
|
82
|
+
const matches = await fg(SOURCE_GLOBS, {
|
|
83
|
+
cwd: root,
|
|
84
|
+
absolute: true,
|
|
85
|
+
ignore: ignores,
|
|
86
|
+
dot: false,
|
|
87
|
+
followSymbolicLinks: false,
|
|
88
|
+
});
|
|
89
|
+
return matches;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=walker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../src/walker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,eAAe,GAAG;IACtB,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,YAAY;CACb,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qDAAqD;IACrD,cAAc;IACd,aAAa;IACb,eAAe;IACf,eAAe;IACf,SAAS;IACT,cAAc;IACd,YAAY;IACZ,SAAS;IAET,6CAA6C;IAC7C,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,eAAe;IAEf,sBAAsB;IACtB,SAAS;IACT,UAAU;IACV,QAAQ;IACR,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IAEjB,oBAAoB;IACpB,YAAY;IACZ,WAAW;IACX,sBAAsB;IACtB,iBAAiB;IACjB,qBAAqB;IACrB,mBAAmB;IAEnB,mDAAmD;IACnD,kBAAkB;CACnB,CAAC;AAEF,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAY,EAAE,OAA+B,EAAE;IACxE,2EAA2E;IAC3E,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,qBAAqB,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC;IACxG,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,EAAE;QACrC,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,OAAO;QACf,GAAG,EAAE,KAAK;QACV,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lyse-labs/lyse",
|
|
3
|
+
"version": "0.1.0-alpha.2",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"description": "Lyse — measure design system health. Audit, explain, fix. Free CLI + GitHub Action + MCP server.",
|
|
8
|
+
"license": "AGPL-3.0-only",
|
|
9
|
+
"type": "module",
|
|
10
|
+
"main": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"bin": {
|
|
13
|
+
"lyse": "dist/cli.js"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/lyse-labs/lyse.git"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/lyse-labs/lyse",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/lyse-labs/lyse/issues"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist/",
|
|
25
|
+
"schemas/",
|
|
26
|
+
"rules-manifest.json",
|
|
27
|
+
"README.md",
|
|
28
|
+
"LICENSE",
|
|
29
|
+
"PRIVACY.md",
|
|
30
|
+
"SECURITY.md"
|
|
31
|
+
],
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "node scripts/copy-root-docs.mjs && tsc -p tsconfig.json && node scripts/copy-templates.mjs && node scripts/copy-bench-assets.mjs && node scripts/generate-rules-manifest.mjs",
|
|
34
|
+
"test": "pnpm build && vitest run",
|
|
35
|
+
"test:watch": "vitest",
|
|
36
|
+
"lint": "eslint src",
|
|
37
|
+
"typecheck": "tsc --noEmit",
|
|
38
|
+
"docs:reliability": "tsx ../../scripts/render-coverage.ts"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@anthropic-ai/sdk": "^0.30.0",
|
|
42
|
+
"@babel/parser": "^7.29.7",
|
|
43
|
+
"@babel/traverse": "^7.29.7",
|
|
44
|
+
"@babel/types": "^7.29.7",
|
|
45
|
+
"@eslint/js": "^9.13.0",
|
|
46
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
47
|
+
"@swc/core": "1.15.33",
|
|
48
|
+
"@typescript-eslint/parser": "^8.60.1",
|
|
49
|
+
"@typescript-eslint/utils": "^8.60.1",
|
|
50
|
+
"citty": "0.1.6",
|
|
51
|
+
"eslint": "9.13.0",
|
|
52
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
53
|
+
"fast-glob": "3.3.3",
|
|
54
|
+
"jose": "^6.2.3",
|
|
55
|
+
"lightningcss": "^1.32.0",
|
|
56
|
+
"minimatch": "^10.2.5",
|
|
57
|
+
"openai": "^4.70.0",
|
|
58
|
+
"picocolors": "^1.1.1",
|
|
59
|
+
"postcss": "^8.4.49",
|
|
60
|
+
"postcss-scss": "^4.0.9",
|
|
61
|
+
"prompts": "^2.4.2",
|
|
62
|
+
"string-width": "^8.2.1",
|
|
63
|
+
"ts-morph": "^28.0.0",
|
|
64
|
+
"typescript": "6.0.3",
|
|
65
|
+
"yaml": "2.6.0",
|
|
66
|
+
"zod": "^3.23.8"
|
|
67
|
+
},
|
|
68
|
+
"optionalDependencies": {
|
|
69
|
+
"keytar": "^7.9.0"
|
|
70
|
+
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@types/babel__traverse": "^7.28.0",
|
|
73
|
+
"@types/node": "22.7.5",
|
|
74
|
+
"@types/prompts": "^2.4.9",
|
|
75
|
+
"ajv": "^8.20.0",
|
|
76
|
+
"ajv-formats": "^3.0.1",
|
|
77
|
+
"tsx": "^4.22.4",
|
|
78
|
+
"vitest": "4.1.8"
|
|
79
|
+
},
|
|
80
|
+
"engines": {
|
|
81
|
+
"node": ">=22"
|
|
82
|
+
}
|
|
83
|
+
}
|