{"_id":"@a11yst/source-analysis","_rev":"3-2bd6c762186db1cf0aa7efef17c70f27","name":"@a11yst/source-analysis","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@a11yst/source-analysis","version":"1.0.0","license":"MPL-2.0","_id":"@a11yst/source-analysis@1.0.0","maintainers":[{"name":"angelabenavente","email":"ang.ben.dev@gmail.com"}],"homepage":"https://github.com/angelabenavente/a11yst#readme","bugs":{"url":"https://github.com/angelabenavente/a11yst/issues"},"dist":{"shasum":"47111fef97617f81749374eac162bf8b97d61687","tarball":"https://registry.npmjs.org/@a11yst/source-analysis/-/source-analysis-1.0.0.tgz","fileCount":43,"integrity":"sha512-DPngOpQ9T/7gcdkgyCBPJ02fF5g+y0rScfyLV8zp1DrvHbEhfkaPozVgpNoUV5h0kse/bLwmHb2NxnJb1AApnQ==","signatures":[{"sig":"MEUCIQDw59R+WYC6W9U2ZT9Jn9vkP2PZstvZXrQKhl2EobqX9AIgVgubm80nUTdSuSUfPpy9z+uK4GPBf2o3YA1PoW5fSWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96030},"main":"./dist/index.js","type":"module","_from":"file:a11yst-source-analysis-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"angelabenavente","email":"ang.ben.dev@gmail.com"},"_resolved":"/private/var/folders/tf/l5jz90dj0yncc_ds04tbfs5c0000gn/T/91e66932903ed9a5906e91af26e610ca/a11yst-source-analysis-1.0.0.tgz","_integrity":"sha512-DPngOpQ9T/7gcdkgyCBPJ02fF5g+y0rScfyLV8zp1DrvHbEhfkaPozVgpNoUV5h0kse/bLwmHb2NxnJb1AApnQ==","repository":{"url":"git+https://github.com/angelabenavente/a11yst.git","type":"git"},"_npmVersion":"10.9.0","description":"Orchestrates source indexing, mapping, ranking, and recommendations for a11yst audits","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@a11yst/types":"1.0.0","@a11yst/source-index":"1.0.0","@a11yst/source-mapping":"1.0.0","@a11yst/source-ranking":"1.0.0","@a11yst/recommendations":"1.0.0","@a11yst/source-mapping-vue":"1.0.0","@a11yst/source-mapping-html":"1.0.0","@a11yst/source-mapping-next":"1.0.0","@a11yst/source-mapping-nuxt":"1.0.0","@a11yst/source-mapping-react":"1.0.0","@a11yst/source-mapping-angular":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/source-analysis_1.0.0_1787506267672_0.3899569158310965","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@a11yst/source-analysis","version":"1.0.1","license":"MPL-2.0","_id":"@a11yst/source-analysis@1.0.1","maintainers":[{"name":"angelabenavente","email":"ang.ben.dev@gmail.com"}],"homepage":"https://github.com/angelabenavente/a11yst#readme","bugs":{"url":"https://github.com/angelabenavente/a11yst/issues"},"dist":{"shasum":"cae40563b87d200836bf53f5fc3660aba88cd906","tarball":"https://registry.npmjs.org/@a11yst/source-analysis/-/source-analysis-1.0.1.tgz","fileCount":43,"integrity":"sha512-4bVpMnwuKESW0AMIZOhiG8YT+ZpXJ//9oxdza+r6tPM9Tmi6B4mur06U+4bIUyAtGWEUngUt1QXAiPCvrlg8VA==","signatures":[{"sig":"MEUCIAHAYB8uisG4utKchsfjQ+wqpUMPjn7s0yQed2nrA8QuAiEA9LIKf2vxa+uqtCG7YmkA2GZnZF1ygOu3dAv5r/xMKl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96030},"main":"./dist/index.js","type":"module","_from":"file:a11yst-source-analysis-1.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"angelabenavente","email":"ang.ben.dev@gmail.com"},"_resolved":"/private/var/folders/tf/l5jz90dj0yncc_ds04tbfs5c0000gn/T/09f0ba6e2e7999c3df9726b2af04a8bf/a11yst-source-analysis-1.0.1.tgz","_integrity":"sha512-4bVpMnwuKESW0AMIZOhiG8YT+ZpXJ//9oxdza+r6tPM9Tmi6B4mur06U+4bIUyAtGWEUngUt1QXAiPCvrlg8VA==","repository":{"url":"git+https://github.com/angelabenavente/a11yst.git","type":"git"},"_npmVersion":"10.9.8","description":"Orchestrates source indexing, mapping, ranking, and recommendations for a11yst audits","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@a11yst/types":"1.0.1","@a11yst/source-index":"1.0.1","@a11yst/source-mapping":"1.0.1","@a11yst/source-ranking":"1.0.1","@a11yst/recommendations":"1.0.1","@a11yst/source-mapping-vue":"1.0.1","@a11yst/source-mapping-html":"1.0.1","@a11yst/source-mapping-next":"1.0.1","@a11yst/source-mapping-nuxt":"1.0.1","@a11yst/source-mapping-react":"1.0.1","@a11yst/source-mapping-angular":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/source-analysis_1.0.1_1787508693015_0.7269785624198517","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@a11yst/source-analysis","version":"1.0.2","description":"Orchestrates source indexing, mapping, ranking, and recommendations for a11yst audits","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@a11yst/source-mapping-html":"1.0.2","@a11yst/source-index":"1.0.2","@a11yst/source-mapping":"1.0.2","@a11yst/source-mapping-next":"1.0.2","@a11yst/source-mapping-vue":"1.0.2","@a11yst/source-mapping-nuxt":"1.0.2","@a11yst/source-mapping-react":"1.0.2","@a11yst/source-mapping-angular":"1.0.2","@a11yst/types":"1.0.2","@a11yst/recommendations":"1.0.2","@a11yst/source-ranking":"1.0.2"},"devDependencies":{"@types/node":"^22.10.2","typescript":"^5.7.2"},"license":"MPL-2.0","repository":{"type":"git","url":"git+https://github.com/angelabenavente/a11yst.git"},"homepage":"https://www.a11yst.dev","bugs":{"url":"https://github.com/angelabenavente/a11yst/issues"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","clean":"rm -rf dist *.tsbuildinfo"},"_id":"@a11yst/source-analysis@1.0.2","_integrity":"sha512-2gGuWsHDVFCLoDkmM403IVdgpjiiL59Htqv2JgDNA9PPXJ7/2JY/LcC5e/gB2T/6hHhaMG5Dep+INMqXYCzNEA==","_resolved":"/private/var/folders/tf/l5jz90dj0yncc_ds04tbfs5c0000gn/T/15121606e5f08d528e652798a9d860e9/a11yst-source-analysis-1.0.2.tgz","_from":"file:a11yst-source-analysis-1.0.2.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-2gGuWsHDVFCLoDkmM403IVdgpjiiL59Htqv2JgDNA9PPXJ7/2JY/LcC5e/gB2T/6hHhaMG5Dep+INMqXYCzNEA==","shasum":"c3e4eea071434ec8cbf0e50afb730ff4a2cb5d52","tarball":"https://registry.npmjs.org/@a11yst/source-analysis/-/source-analysis-1.0.2.tgz","fileCount":43,"unpackedSize":96382,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC/ahExzOa4UshekpmtSKyd8y4pKan3yEIv4EqxZ5MdjAiAqGpC3b4XmrxE+ZRKeOnBaZnak2DOIME4axNZ7UYnktQ=="}]},"_npmUser":{"name":"angelabenavente","email":"ang.ben.dev@gmail.com"},"directories":{},"maintainers":[{"name":"angelabenavente","email":"ang.ben.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/source-analysis_1.0.2_1787683132152_0.3493534763039263"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-23T17:31:07.479Z","modified":"2026-08-25T18:38:52.453Z","1.0.0":"2026-08-23T17:31:07.810Z","1.0.1":"2026-08-23T18:11:33.160Z","1.0.2":"2026-08-25T18:38:52.275Z"},"bugs":{"url":"https://github.com/angelabenavente/a11yst/issues"},"license":"MPL-2.0","homepage":"https://www.a11yst.dev","repository":{"type":"git","url":"git+https://github.com/angelabenavente/a11yst.git"},"description":"Orchestrates source indexing, mapping, ranking, and recommendations for a11yst audits","maintainers":[{"name":"angelabenavente","email":"ang.ben.dev@gmail.com"}],"readme":"# @a11yst/source-analysis [![NPM version](https://img.shields.io/npm/v/@a11yst/source-analysis.svg?style=flat)](https://www.npmjs.com/package/@a11yst/source-analysis) [![License: MPL-2.0](https://img.shields.io/badge/License-MPL--2.0-blue.svg)](LICENSE) [![NPM total downloads](https://img.shields.io/npm/dt/@a11yst/source-analysis.svg?style=flat)](https://www.npmjs.com/package/@a11yst/source-analysis)\n\nOrchestrates repository source indexing, framework mapping, candidate ranking, and\naccessibility recommendations for a11yst audit findings.\n\n## Execution model\n\nSource analysis runs **once per audit** after findings are normalized and fingerprinted.\nIt builds the source index once, memoizes framework catalogs, enriches findings with\noptional `sourceMapping`, `sourceRanking`, and `recommendations`, and writes a\n`sourceAnalysis` summary on the audit result.\n\nReporters and `a11yst report --from-results` consume stored enrichment only — they do\nnot re-index, re-map, or regenerate recommendations.\n\n## Configuration\n\n```ts\nsourceAnalysis?: {\n  enabled?: boolean;        // default true\n  ranking?: boolean;        // default true\n  recommendations?: boolean; // default true\n};\n```\n\nWhen `enabled: false`, findings are unchanged. When `ranking: false`, mapper results are\nkept without ranking. When `recommendations: false`, mapping/ranking still run but\nrecommendations are omitted.\n\n## Fail-soft\n\nSource analysis enriches findings but does not change fingerprints, baseline comparison,\npolicy evaluation, or exit codes. Recoverable mapper/ranking/recommendation failures\nproduce diagnostics and preserve original finding data.\n\n## Supported frameworks\n\nHTML/Vanilla, React, Next.js, Vue, Nuxt, and Angular mappers are invoked based on\ndetected project framework. Unknown or unsupported frameworks leave findings unmapped\nwithout incorrect fallbacks.\n\n## Security\n\nNo source snippets, absolute repository roots, or secrets are written to results or\nreports. Recommendations use generic examples only.\n\n## Future work\n\nPhase 10k adds real multi-framework fixtures. Phase 10l runs full integration\nregression. Phase 10m closes with clean install verification.\n","readmeFilename":"README.md"}