@a11yst/source-analysis 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { AngularSourceCatalog, HtmlSourceCatalog, NextRouteCatalog, NuxtRouteCatalog, ReactSourceCatalog, SourceIndexResult, VueSourceCatalog } from "@a11yst/types";
2
+ import type { NormalizedFramework } from "./framework.js";
3
+ import { createSourceAnalysisDiagnostic } from "./diagnostics.js";
4
+ export type CatalogBundle = {
5
+ html?: HtmlSourceCatalog;
6
+ react?: ReactSourceCatalog;
7
+ next?: NextRouteCatalog;
8
+ vue?: VueSourceCatalog;
9
+ nuxt?: NuxtRouteCatalog;
10
+ angular?: AngularSourceCatalog;
11
+ };
12
+ export type CatalogBuildResult = {
13
+ catalogs: CatalogBundle;
14
+ diagnostics: ReturnType<typeof createSourceAnalysisDiagnostic>[];
15
+ partial: boolean;
16
+ };
17
+ export declare class CatalogCache {
18
+ private readonly repositoryRoot;
19
+ private readonly sourceIndex;
20
+ private readonly html;
21
+ private readonly react;
22
+ private readonly next;
23
+ private readonly vue;
24
+ private readonly nuxt;
25
+ private readonly angular;
26
+ constructor(repositoryRoot: string, sourceIndex: SourceIndexResult);
27
+ getHtml(scopeIds: string[]): Promise<HtmlSourceCatalog>;
28
+ getReact(scopeIds: string[]): Promise<ReactSourceCatalog>;
29
+ getNext(scopeIds: string[]): Promise<{
30
+ react: ReactSourceCatalog;
31
+ next: NextRouteCatalog;
32
+ }>;
33
+ getVue(scopeIds: string[]): Promise<VueSourceCatalog>;
34
+ getNuxt(scopeIds: string[]): Promise<{
35
+ vue: VueSourceCatalog;
36
+ nuxt: NuxtRouteCatalog;
37
+ }>;
38
+ getAngular(scopeIds: string[]): Promise<AngularSourceCatalog>;
39
+ }
40
+ export declare function buildRequiredCatalogs(cache: CatalogCache, frameworks: Set<NormalizedFramework>, scopeIds: string[]): Promise<CatalogBuildResult>;
41
+ //# sourceMappingURL=catalogs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogs.d.ts","sourceRoot":"","sources":["../src/catalogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAOvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC,OAAO,8BAA8B,CAAC,EAAE,CAAC;IACjE,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAMF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiD;IACtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkD;IACxE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgD;IACrE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgD;IACpE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgD;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;gBAEhE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB;IAKlE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAevD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAenD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,kBAAkB,CAAC;QAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAkBjG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe/C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAkB7F,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAc9D;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,EACpC,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAyD7B"}
@@ -0,0 +1,142 @@
1
+ import { createAngularSourceCatalog } from "@a11yst/source-mapping-angular";
2
+ import { createHtmlSourceCatalog } from "@a11yst/source-mapping-html";
3
+ import { createNextRouteCatalog } from "@a11yst/source-mapping-next";
4
+ import { createNuxtRouteCatalog } from "@a11yst/source-mapping-nuxt";
5
+ import { createReactSourceCatalog } from "@a11yst/source-mapping-react";
6
+ import { createVueSourceCatalog } from "@a11yst/source-mapping-vue";
7
+ import { createSourceAnalysisDiagnostic } from "./diagnostics.js";
8
+ function catalogKey(framework, scopeIds) {
9
+ return `${framework}:${[...scopeIds].sort().join(",")}`;
10
+ }
11
+ export class CatalogCache {
12
+ repositoryRoot;
13
+ sourceIndex;
14
+ html = new Map();
15
+ react = new Map();
16
+ next = new Map();
17
+ vue = new Map();
18
+ nuxt = new Map();
19
+ angular = new Map();
20
+ constructor(repositoryRoot, sourceIndex) {
21
+ this.repositoryRoot = repositoryRoot;
22
+ this.sourceIndex = sourceIndex;
23
+ }
24
+ getHtml(scopeIds) {
25
+ const key = catalogKey("html", scopeIds);
26
+ if (!this.html.has(key)) {
27
+ this.html.set(key, createHtmlSourceCatalog({
28
+ repositoryRoot: this.repositoryRoot,
29
+ sourceIndex: this.sourceIndex,
30
+ scopeIds,
31
+ }));
32
+ }
33
+ return this.html.get(key);
34
+ }
35
+ getReact(scopeIds) {
36
+ const key = catalogKey("react", scopeIds);
37
+ if (!this.react.has(key)) {
38
+ this.react.set(key, createReactSourceCatalog({
39
+ repositoryRoot: this.repositoryRoot,
40
+ sourceIndex: this.sourceIndex,
41
+ scopeIds,
42
+ }));
43
+ }
44
+ return this.react.get(key);
45
+ }
46
+ async getNext(scopeIds) {
47
+ const react = await this.getReact(scopeIds);
48
+ const key = catalogKey("next", scopeIds);
49
+ if (!this.next.has(key)) {
50
+ this.next.set(key, Promise.resolve(createNextRouteCatalog({
51
+ sourceIndex: this.sourceIndex,
52
+ reactCatalog: react,
53
+ scopeIds,
54
+ })));
55
+ }
56
+ return { react, next: await this.next.get(key) };
57
+ }
58
+ getVue(scopeIds) {
59
+ const key = catalogKey("vue", scopeIds);
60
+ if (!this.vue.has(key)) {
61
+ this.vue.set(key, createVueSourceCatalog({
62
+ repositoryRoot: this.repositoryRoot,
63
+ sourceIndex: this.sourceIndex,
64
+ scopeIds,
65
+ }));
66
+ }
67
+ return this.vue.get(key);
68
+ }
69
+ async getNuxt(scopeIds) {
70
+ const vue = await this.getVue(scopeIds);
71
+ const key = catalogKey("nuxt", scopeIds);
72
+ if (!this.nuxt.has(key)) {
73
+ this.nuxt.set(key, Promise.resolve(createNuxtRouteCatalog({
74
+ sourceIndex: this.sourceIndex,
75
+ vueCatalog: vue,
76
+ scopeIds,
77
+ })));
78
+ }
79
+ return { vue, nuxt: await this.nuxt.get(key) };
80
+ }
81
+ getAngular(scopeIds) {
82
+ const key = catalogKey("angular", scopeIds);
83
+ if (!this.angular.has(key)) {
84
+ this.angular.set(key, createAngularSourceCatalog({
85
+ repositoryRoot: this.repositoryRoot,
86
+ sourceIndex: this.sourceIndex,
87
+ scopeIds,
88
+ }));
89
+ }
90
+ return this.angular.get(key);
91
+ }
92
+ }
93
+ export async function buildRequiredCatalogs(cache, frameworks, scopeIds) {
94
+ const diagnostics = [];
95
+ let partial = false;
96
+ const catalogs = {};
97
+ if (frameworks.has("html")) {
98
+ catalogs.html = await cache.getHtml(scopeIds);
99
+ if (catalogs.html.status === "partial") {
100
+ partial = true;
101
+ }
102
+ }
103
+ if (frameworks.has("react")) {
104
+ catalogs.react = await cache.getReact(scopeIds);
105
+ if (catalogs.react.status === "partial") {
106
+ partial = true;
107
+ }
108
+ }
109
+ if (frameworks.has("next")) {
110
+ const nextBundle = await cache.getNext(scopeIds);
111
+ catalogs.react = nextBundle.react;
112
+ catalogs.next = nextBundle.next;
113
+ if (catalogs.next.status === "partial" || nextBundle.react.status === "partial") {
114
+ partial = true;
115
+ }
116
+ }
117
+ if (frameworks.has("vue")) {
118
+ catalogs.vue = await cache.getVue(scopeIds);
119
+ if (catalogs.vue.status === "partial") {
120
+ partial = true;
121
+ }
122
+ }
123
+ if (frameworks.has("nuxt")) {
124
+ const nuxtBundle = await cache.getNuxt(scopeIds);
125
+ catalogs.vue = nuxtBundle.vue;
126
+ catalogs.nuxt = nuxtBundle.nuxt;
127
+ if (catalogs.nuxt.status === "partial" || nuxtBundle.vue.status === "partial") {
128
+ partial = true;
129
+ }
130
+ }
131
+ if (frameworks.has("angular")) {
132
+ catalogs.angular = await cache.getAngular(scopeIds);
133
+ if (catalogs.angular.status === "partial") {
134
+ partial = true;
135
+ }
136
+ }
137
+ if (partial) {
138
+ diagnostics.push(createSourceAnalysisDiagnostic("source-analysis-catalog-partial", "warning", "One or more source catalogs completed with partial status"));
139
+ }
140
+ return { catalogs, diagnostics, partial };
141
+ }
142
+ //# sourceMappingURL=catalogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogs.js","sourceRoot":"","sources":["../src/catalogs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const DEFAULT_SOURCE_ANALYSIS_OPTIONS: {
2
+ readonly enabled: true;
3
+ readonly ranking: true;
4
+ readonly recommendations: true;
5
+ };
6
+ export declare const MAX_SELECTOR_LENGTH = 1024;
7
+ export declare const MAX_TEXT_LENGTH = 256;
8
+ export declare const MAX_ATTRIBUTES = 64;
9
+ export declare const MAX_ATTRIBUTE_VALUE_LENGTH = 256;
10
+ export declare const SUPPORTED_MAPPER_FRAMEWORKS: Set<string>;
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B;;;;CAIlC,CAAC;AAEX,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,eAAO,MAAM,2BAA2B,aAOtC,CAAC"}
@@ -0,0 +1,18 @@
1
+ export const DEFAULT_SOURCE_ANALYSIS_OPTIONS = {
2
+ enabled: true,
3
+ ranking: true,
4
+ recommendations: true,
5
+ };
6
+ export const MAX_SELECTOR_LENGTH = 1024;
7
+ export const MAX_TEXT_LENGTH = 256;
8
+ export const MAX_ATTRIBUTES = 64;
9
+ export const MAX_ATTRIBUTE_VALUE_LENGTH = 256;
10
+ export const SUPPORTED_MAPPER_FRAMEWORKS = new Set([
11
+ "html",
12
+ "react",
13
+ "next",
14
+ "vue",
15
+ "nuxt",
16
+ "angular",
17
+ ]);
18
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,IAAI;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IACjD,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;CACV,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SourceAnalysisDiagnostic, SourceAnalysisDiagnosticCode } from "@a11yst/types";
2
+ export declare function createSourceAnalysisDiagnostic(code: SourceAnalysisDiagnosticCode, level: SourceAnalysisDiagnostic["level"], message: string, details?: Partial<Pick<SourceAnalysisDiagnostic, "projectId" | "findingFingerprint" | "framework">>): SourceAnalysisDiagnostic;
3
+ export declare function sortSourceAnalysisDiagnostics(diagnostics: SourceAnalysisDiagnostic[]): SourceAnalysisDiagnostic[];
4
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAE5F,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,4BAA4B,EAClC,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACxC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,WAAW,GAAG,oBAAoB,GAAG,WAAW,CAAC,CAAC,GAClG,wBAAwB,CAS1B;AAQD,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,wBAAwB,EAAE,GACtC,wBAAwB,EAAE,CAoB5B"}
@@ -0,0 +1,37 @@
1
+ export function createSourceAnalysisDiagnostic(code, level, message, details) {
2
+ return {
3
+ code,
4
+ level,
5
+ message,
6
+ ...(details?.projectId ? { projectId: details.projectId } : {}),
7
+ ...(details?.findingFingerprint ? { findingFingerprint: details.findingFingerprint } : {}),
8
+ ...(details?.framework ? { framework: details.framework } : {}),
9
+ };
10
+ }
11
+ const LEVEL_ORDER = {
12
+ error: 0,
13
+ warning: 1,
14
+ info: 2,
15
+ };
16
+ export function sortSourceAnalysisDiagnostics(diagnostics) {
17
+ return [...diagnostics].sort((left, right) => {
18
+ const levelOrder = LEVEL_ORDER[left.level] - LEVEL_ORDER[right.level];
19
+ if (levelOrder !== 0) {
20
+ return levelOrder;
21
+ }
22
+ const codeOrder = left.code.localeCompare(right.code);
23
+ if (codeOrder !== 0) {
24
+ return codeOrder;
25
+ }
26
+ const projectOrder = (left.projectId ?? "").localeCompare(right.projectId ?? "");
27
+ if (projectOrder !== 0) {
28
+ return projectOrder;
29
+ }
30
+ const fingerprintOrder = (left.findingFingerprint ?? "").localeCompare(right.findingFingerprint ?? "");
31
+ if (fingerprintOrder !== 0) {
32
+ return fingerprintOrder;
33
+ }
34
+ return left.message.localeCompare(right.message);
35
+ });
36
+ }
37
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,8BAA8B,CAC5C,IAAkC,EAClC,KAAwC,EACxC,OAAe,EACf,OAAmG;IAEnG,OAAO;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAsD;IACrE,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAC3C,WAAuC;IAEvC,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACjF,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACvG,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { Finding } from "@a11yst/types";
2
+ import type { SourceAnalysisProject } from "@a11yst/types";
3
+ export declare function hasExactExistingSourceLocation(finding: Finding): boolean;
4
+ export declare function createSourceMappingEvidenceFromFinding(finding: Finding, project?: SourceAnalysisProject): Record<string, unknown>;
5
+ export declare function createRecommendationInputFromFinding(finding: Finding, project: SourceAnalysisProject | undefined, sourceMapping: Finding["sourceMapping"], sourceRanking: Finding["sourceRanking"]): {
6
+ ruleId: string;
7
+ impact: import("@a11yst/types").AxeImpact | undefined;
8
+ message: string | undefined;
9
+ help: string;
10
+ helpUrl: string | undefined;
11
+ tags: string[];
12
+ element: {
13
+ attributes?: Record<string, string | number | boolean> | undefined;
14
+ tagName?: string | undefined;
15
+ };
16
+ context: {
17
+ framework: import("./framework.js").NormalizedFramework;
18
+ route: string | undefined;
19
+ flow: string | undefined;
20
+ checkpoint: string | undefined;
21
+ profile: import("@a11yst/types").AccessibilityProfile;
22
+ viewport: string | undefined;
23
+ };
24
+ sourceMapping: import("@a11yst/types").SourceMappingResult | undefined;
25
+ sourceRanking: import("@a11yst/types").SourceRankingResult | undefined;
26
+ };
27
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,OAAO,EAAE,MAAM,eAAe,CAAC;AAOrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAqF3D,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGxE;AAED,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkCzB;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,EACvC,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;EAqCxC"}
@@ -0,0 +1,143 @@
1
+ import { MAX_ATTRIBUTES, MAX_ATTRIBUTE_VALUE_LENGTH, MAX_SELECTOR_LENGTH, MAX_TEXT_LENGTH, } from "./constants.js";
2
+ import { normalizeFramework } from "./framework.js";
3
+ const ALLOWED_ATTRIBUTE_NAMES = new Set([
4
+ "id",
5
+ "role",
6
+ "aria-label",
7
+ "aria-labelledby",
8
+ "aria-describedby",
9
+ "alt",
10
+ "title",
11
+ "name",
12
+ "type",
13
+ "data-testid",
14
+ "data-test",
15
+ "data-cy",
16
+ "class",
17
+ ]);
18
+ const SENSITIVE_PATTERN = /password|token|authorization|cookie|secret/i;
19
+ function stripControl(value) {
20
+ let result = "";
21
+ for (const char of value) {
22
+ const code = char.charCodeAt(0);
23
+ if (code === 0 || (code >= 1 && code <= 31) || code === 127) {
24
+ continue;
25
+ }
26
+ result += char;
27
+ }
28
+ return result.trim();
29
+ }
30
+ function sanitizeLimitedText(value, max) {
31
+ if (!value) {
32
+ return undefined;
33
+ }
34
+ const sanitized = stripControl(value);
35
+ if (!sanitized || SENSITIVE_PATTERN.test(sanitized)) {
36
+ return undefined;
37
+ }
38
+ return sanitized.slice(0, max);
39
+ }
40
+ function sanitizeSelector(value) {
41
+ const sanitized = sanitizeLimitedText(value, MAX_SELECTOR_LENGTH);
42
+ if (!sanitized || sanitized.includes("<") || sanitized.includes(">")) {
43
+ return undefined;
44
+ }
45
+ return sanitized;
46
+ }
47
+ function parseSimpleSelector(selector) {
48
+ const trimmed = selector.trim();
49
+ const tagMatch = /^([a-zA-Z][\w-]*)/.exec(trimmed);
50
+ const idMatch = /#([\w-]+)/.exec(trimmed);
51
+ const classMatches = [...trimmed.matchAll(/\.([\w-]+)/g)].map((match) => match[1]);
52
+ return {
53
+ tagName: tagMatch?.[1]?.toLowerCase(),
54
+ elementId: idMatch?.[1],
55
+ classNames: classMatches.length > 0 ? [...new Set(classMatches)].sort() : undefined,
56
+ };
57
+ }
58
+ function readExistingSourceLocation(finding) {
59
+ const extension = finding;
60
+ const source = extension.sourceLocation;
61
+ if (!source) {
62
+ return undefined;
63
+ }
64
+ return {
65
+ uri: source.uri,
66
+ startLine: source.startLine,
67
+ ...(source.startColumn !== undefined ? { startColumn: source.startColumn } : {}),
68
+ ...(source.endLine !== undefined ? { endLine: source.endLine } : {}),
69
+ ...(source.endColumn !== undefined ? { endColumn: source.endColumn } : {}),
70
+ };
71
+ }
72
+ export function hasExactExistingSourceLocation(finding) {
73
+ const existing = readExistingSourceLocation(finding);
74
+ return existing !== undefined && existing.uri.length > 0 && existing.startLine > 0;
75
+ }
76
+ export function createSourceMappingEvidenceFromFinding(finding, project) {
77
+ const selector = sanitizeSelector(finding.target[finding.target.length - 1] ?? finding.target.join(" "));
78
+ const parsed = selector ? parseSimpleSelector(selector) : {};
79
+ const attributes = {};
80
+ if (parsed.elementId) {
81
+ attributes.id = parsed.elementId.slice(0, MAX_ATTRIBUTE_VALUE_LENGTH);
82
+ }
83
+ if (parsed.classNames) {
84
+ attributes.class = parsed.classNames.join(" ").slice(0, MAX_ATTRIBUTE_VALUE_LENGTH);
85
+ }
86
+ const evidence = {
87
+ ...(selector ? { selector } : {}),
88
+ ...(parsed.tagName ? { tagName: parsed.tagName } : {}),
89
+ ...(parsed.elementId ? { elementId: parsed.elementId } : {}),
90
+ ...(parsed.classNames ? { classNames: parsed.classNames } : {}),
91
+ ...(finding.route ? { route: finding.route.slice(0, 1024) } : {}),
92
+ ...(finding.flowId ? { flow: finding.flowId.slice(0, 256) } : {}),
93
+ ...(finding.checkpointId ? { checkpoint: finding.checkpointId.slice(0, 256) } : {}),
94
+ ...(project ? { scopeIds: [project.id] } : {}),
95
+ ...(Object.keys(attributes).length > 0 ? { attributes: Object.fromEntries(Object.entries(attributes).slice(0, MAX_ATTRIBUTES)) } : {}),
96
+ };
97
+ const existing = readExistingSourceLocation(finding);
98
+ if (existing) {
99
+ evidence.existingSourceLocation = existing;
100
+ }
101
+ const accessibleName = sanitizeLimitedText(finding.title, MAX_TEXT_LENGTH);
102
+ if (accessibleName) {
103
+ evidence.accessibleName = accessibleName;
104
+ }
105
+ return evidence;
106
+ }
107
+ export function createRecommendationInputFromFinding(finding, project, sourceMapping, sourceRanking) {
108
+ const selector = sanitizeSelector(finding.target[finding.target.length - 1] ?? finding.target.join(" "));
109
+ const parsed = selector ? parseSimpleSelector(selector) : {};
110
+ const attributes = {};
111
+ for (const [name, value] of Object.entries(parsed.classNames ? { class: parsed.classNames.join(" ") } : {})) {
112
+ if (ALLOWED_ATTRIBUTE_NAMES.has(name) && !SENSITIVE_PATTERN.test(String(value))) {
113
+ attributes[name] = String(value).slice(0, MAX_ATTRIBUTE_VALUE_LENGTH);
114
+ }
115
+ }
116
+ if (parsed.elementId && ALLOWED_ATTRIBUTE_NAMES.has("id")) {
117
+ attributes.id = parsed.elementId;
118
+ }
119
+ return {
120
+ ruleId: finding.ruleId,
121
+ impact: finding.sourceImpact ?? undefined,
122
+ message: finding.message ?? finding.description,
123
+ help: finding.title,
124
+ helpUrl: finding.helpUrl,
125
+ tags: finding.standards,
126
+ element: {
127
+ ...(parsed.tagName ? { tagName: parsed.tagName } : {}),
128
+ ...(parsed.elementId ? { attributes: { id: parsed.elementId } } : {}),
129
+ ...(Object.keys(attributes).length > 0 ? { attributes } : {}),
130
+ },
131
+ context: {
132
+ framework: project ? normalizeFramework(project.framework) : "unknown",
133
+ route: finding.route,
134
+ flow: finding.flowId,
135
+ checkpoint: finding.checkpointId,
136
+ profile: finding.profile,
137
+ viewport: finding.viewport,
138
+ },
139
+ sourceMapping,
140
+ sourceRanking,
141
+ };
142
+ }
143
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type NormalizedFramework = "html" | "react" | "next" | "vue" | "nuxt" | "angular" | "unknown";
2
+ export declare function normalizeFramework(value: string | undefined): NormalizedFramework;
3
+ export declare function isSupportedMapperFramework(framework: NormalizedFramework): boolean;
4
+ //# sourceMappingURL=framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAMjF;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAElF"}
@@ -0,0 +1,22 @@
1
+ const FRAMEWORK_ALIASES = {
2
+ html: "html",
3
+ vanilla: "html",
4
+ react: "react",
5
+ next: "next",
6
+ nextjs: "next",
7
+ vue: "vue",
8
+ nuxt: "nuxt",
9
+ angular: "angular",
10
+ unknown: "unknown",
11
+ };
12
+ export function normalizeFramework(value) {
13
+ if (!value) {
14
+ return "unknown";
15
+ }
16
+ const normalized = value.trim().toLowerCase();
17
+ return FRAMEWORK_ALIASES[normalized] ?? "unknown";
18
+ }
19
+ export function isSupportedMapperFramework(framework) {
20
+ return framework !== "unknown";
21
+ }
22
+ //# sourceMappingURL=framework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.js","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAwC;IAC7D,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAWF,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,iBAAiB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAA8B;IACvE,OAAO,SAAS,KAAK,SAAS,CAAC;AACjC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Finding, SourceAnalysisInput, SourceAnalysisOptions } from "@a11yst/types";
2
+ export type { SourceAnalysisDiagnostic, SourceAnalysisDiagnosticCode, SourceAnalysisInput, SourceAnalysisOptions, SourceAnalysisProject, SourceAnalysisResult, SourceAnalysisStatus, SourceAnalysisSummary, } from "@a11yst/types";
3
+ export { DEFAULT_SOURCE_ANALYSIS_OPTIONS } from "./constants.js";
4
+ export { createSourceMappingEvidenceFromFinding, hasExactExistingSourceLocation } from "./evidence.js";
5
+ export { normalizeFramework } from "./framework.js";
6
+ export { buildSourceAnalysisScopes } from "./scopes.js";
7
+ export { analyzeFindingSources } from "./analyze.js";
8
+ export { applyRanking, shouldRunRanking } from "./ranking.js";
9
+ export declare function resolveSourceAnalysisOptions(options?: SourceAnalysisOptions): Required<SourceAnalysisOptions>;
10
+ export declare function cloneFindingForAnalysis(finding: Finding): Finding;
11
+ export declare function cloneFindingsForAnalysis(findings: Finding[]): Finding[];
12
+ export declare function cloneSourceAnalysisInput(input: SourceAnalysisInput): SourceAnalysisInput;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,wBAAwB,EACxB,4BAA4B,EAC5B,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,sCAAsC,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE9D,wBAAgB,4BAA4B,CAC1C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,QAAQ,CAAC,qBAAqB,CAAC,CAMjC;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEjE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAOxF"}
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ export { DEFAULT_SOURCE_ANALYSIS_OPTIONS } from "./constants.js";
2
+ export { createSourceMappingEvidenceFromFinding, hasExactExistingSourceLocation } from "./evidence.js";
3
+ export { normalizeFramework } from "./framework.js";
4
+ export { buildSourceAnalysisScopes } from "./scopes.js";
5
+ export { analyzeFindingSources } from "./analyze.js";
6
+ export { applyRanking, shouldRunRanking } from "./ranking.js";
7
+ export function resolveSourceAnalysisOptions(options) {
8
+ return {
9
+ enabled: options?.enabled ?? true,
10
+ ranking: options?.ranking ?? true,
11
+ recommendations: options?.recommendations ?? true,
12
+ };
13
+ }
14
+ export function cloneFindingForAnalysis(finding) {
15
+ return structuredClone(finding);
16
+ }
17
+ export function cloneFindingsForAnalysis(findings) {
18
+ return findings.map(cloneFindingForAnalysis);
19
+ }
20
+ export function cloneSourceAnalysisInput(input) {
21
+ return {
22
+ repositoryRoot: input.repositoryRoot,
23
+ projects: input.projects.map((project) => ({ ...project })),
24
+ findings: cloneFindingsForAnalysis(input.findings),
25
+ ...(input.options ? { options: { ...input.options } } : {}),
26
+ };
27
+ }
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,sCAAsC,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,4BAA4B,CAC1C,OAA+B;IAE/B,OAAO;QACL,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;QACjC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;QACjC,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI;KAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAmB;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA0B;IACjE,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC3D,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAClD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { SourceMappingResult } from "@a11yst/types";
2
+ import type { CatalogBundle } from "./catalogs.js";
3
+ import type { NormalizedFramework } from "./framework.js";
4
+ export declare function invokePrimaryMapper(framework: NormalizedFramework, catalogs: CatalogBundle, evidence: Record<string, unknown>): Promise<SourceMappingResult>;
5
+ //# sourceMappingURL=mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAuD9B"}