@a11yst/core 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.
Files changed (106) hide show
  1. package/LICENSE +373 -0
  2. package/dist/aggregate.d.ts +7 -0
  3. package/dist/aggregate.d.ts.map +1 -0
  4. package/dist/aggregate.js +181 -0
  5. package/dist/aggregate.js.map +1 -0
  6. package/dist/apply-source-analysis.d.ts +5 -0
  7. package/dist/apply-source-analysis.d.ts.map +1 -0
  8. package/dist/apply-source-analysis.js +66 -0
  9. package/dist/apply-source-analysis.js.map +1 -0
  10. package/dist/baseline-comparison.d.ts +16 -0
  11. package/dist/baseline-comparison.d.ts.map +1 -0
  12. package/dist/baseline-comparison.js +47 -0
  13. package/dist/baseline-comparison.js.map +1 -0
  14. package/dist/create-audit-plan.d.ts +20 -0
  15. package/dist/create-audit-plan.d.ts.map +1 -0
  16. package/dist/create-audit-plan.js +117 -0
  17. package/dist/create-audit-plan.js.map +1 -0
  18. package/dist/create-github-annotations-input.d.ts +4 -0
  19. package/dist/create-github-annotations-input.d.ts.map +1 -0
  20. package/dist/create-github-annotations-input.js +8 -0
  21. package/dist/create-github-annotations-input.js.map +1 -0
  22. package/dist/create-junit-input.d.ts +4 -0
  23. package/dist/create-junit-input.d.ts.map +1 -0
  24. package/dist/create-junit-input.js +26 -0
  25. package/dist/create-junit-input.js.map +1 -0
  26. package/dist/create-markdown-input.d.ts +4 -0
  27. package/dist/create-markdown-input.d.ts.map +1 -0
  28. package/dist/create-markdown-input.js +57 -0
  29. package/dist/create-markdown-input.js.map +1 -0
  30. package/dist/create-sarif-input.d.ts +4 -0
  31. package/dist/create-sarif-input.d.ts.map +1 -0
  32. package/dist/create-sarif-input.js +23 -0
  33. package/dist/create-sarif-input.js.map +1 -0
  34. package/dist/emit-report.d.ts +59 -0
  35. package/dist/emit-report.d.ts.map +1 -0
  36. package/dist/emit-report.js +89 -0
  37. package/dist/emit-report.js.map +1 -0
  38. package/dist/execute-audit.d.ts +96 -0
  39. package/dist/execute-audit.d.ts.map +1 -0
  40. package/dist/execute-audit.js +646 -0
  41. package/dist/execute-audit.js.map +1 -0
  42. package/dist/generate-github-annotations-report.d.ts +18 -0
  43. package/dist/generate-github-annotations-report.d.ts.map +1 -0
  44. package/dist/generate-github-annotations-report.js +51 -0
  45. package/dist/generate-github-annotations-report.js.map +1 -0
  46. package/dist/generate-junit-report.d.ts +18 -0
  47. package/dist/generate-junit-report.d.ts.map +1 -0
  48. package/dist/generate-junit-report.js +51 -0
  49. package/dist/generate-junit-report.js.map +1 -0
  50. package/dist/generate-markdown-report.d.ts +24 -0
  51. package/dist/generate-markdown-report.d.ts.map +1 -0
  52. package/dist/generate-markdown-report.js +62 -0
  53. package/dist/generate-markdown-report.js.map +1 -0
  54. package/dist/generate-sarif-report.d.ts +18 -0
  55. package/dist/generate-sarif-report.d.ts.map +1 -0
  56. package/dist/generate-sarif-report.js +53 -0
  57. package/dist/generate-sarif-report.js.map +1 -0
  58. package/dist/index.d.ts +31 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +31 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/plan-flows.d.ts +7 -0
  63. package/dist/plan-flows.d.ts.map +1 -0
  64. package/dist/plan-flows.js +79 -0
  65. package/dist/plan-flows.js.map +1 -0
  66. package/dist/policy-evaluation.d.ts +4 -0
  67. package/dist/policy-evaluation.d.ts.map +1 -0
  68. package/dist/policy-evaluation.js +13 -0
  69. package/dist/policy-evaluation.js.map +1 -0
  70. package/dist/readiness-strategy.d.ts +7 -0
  71. package/dist/readiness-strategy.d.ts.map +1 -0
  72. package/dist/readiness-strategy.js +24 -0
  73. package/dist/readiness-strategy.js.map +1 -0
  74. package/dist/report-manifest.d.ts +21 -0
  75. package/dist/report-manifest.d.ts.map +1 -0
  76. package/dist/report-manifest.js +66 -0
  77. package/dist/report-manifest.js.map +1 -0
  78. package/dist/resolve-github-report-options.d.ts +30 -0
  79. package/dist/resolve-github-report-options.d.ts.map +1 -0
  80. package/dist/resolve-github-report-options.js +43 -0
  81. package/dist/resolve-github-report-options.js.map +1 -0
  82. package/dist/resolve-junit-report-options.d.ts +18 -0
  83. package/dist/resolve-junit-report-options.d.ts.map +1 -0
  84. package/dist/resolve-junit-report-options.js +29 -0
  85. package/dist/resolve-junit-report-options.js.map +1 -0
  86. package/dist/resolve-markdown-report-options.d.ts +18 -0
  87. package/dist/resolve-markdown-report-options.d.ts.map +1 -0
  88. package/dist/resolve-markdown-report-options.js +32 -0
  89. package/dist/resolve-markdown-report-options.js.map +1 -0
  90. package/dist/resolve-project-routes.d.ts +17 -0
  91. package/dist/resolve-project-routes.d.ts.map +1 -0
  92. package/dist/resolve-project-routes.js +95 -0
  93. package/dist/resolve-project-routes.js.map +1 -0
  94. package/dist/resolve-sarif-report-options.d.ts +18 -0
  95. package/dist/resolve-sarif-report-options.d.ts.map +1 -0
  96. package/dist/resolve-sarif-report-options.js +29 -0
  97. package/dist/resolve-sarif-report-options.js.map +1 -0
  98. package/dist/run-id.d.ts +13 -0
  99. package/dist/run-id.d.ts.map +1 -0
  100. package/dist/run-id.js +27 -0
  101. package/dist/run-id.js.map +1 -0
  102. package/dist/select-runs.d.ts +41 -0
  103. package/dist/select-runs.d.ts.map +1 -0
  104. package/dist/select-runs.js +128 -0
  105. package/dist/select-runs.js.map +1 -0
  106. package/package.json +51 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Human-readable summary of the readiness settings applied to a planned run.
3
+ */
4
+ export function describeReadinessStrategy(config, strategy) {
5
+ const parts = [];
6
+ const waitUntil = config.waitUntil ?? strategy?.waitUntil ?? "domcontentloaded";
7
+ parts.push(`waitUntil=${waitUntil}`);
8
+ if (config.selector) {
9
+ parts.push(`selector=${config.selector} (required)`);
10
+ }
11
+ else if (strategy?.selectors && strategy.selectors.length > 0) {
12
+ parts.push(`recommended=${strategy.selectors.join("|")}`);
13
+ }
14
+ const timeout = config.timeout ?? strategy?.timeout;
15
+ if (timeout !== undefined) {
16
+ parts.push(`timeout=${timeout}ms`);
17
+ }
18
+ const settleFrames = config.settleFrames ?? strategy?.settleFrames;
19
+ if (settleFrames !== undefined && settleFrames > 0) {
20
+ parts.push(`settleFrames=${settleFrames}`);
21
+ }
22
+ return parts.join("; ");
23
+ }
24
+ //# sourceMappingURL=readiness-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness-strategy.js","sourceRoot":"","sources":["../src/readiness-strategy.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAA+B,EAC/B,QAA4B;IAE5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC;IAErC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,aAAa,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,QAAQ,EAAE,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,QAAQ,EAAE,YAAY,CAAC;IACnE,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { AuditReportManifest, AuditReportReferences, GitHubAnnotationsReportManifestEntry, GitHubAnnotationsReportResultReference, JunitReportManifestEntry, JunitReportResultReference, MarkdownReportManifestEntry, MarkdownReportResultReference, SarifReportManifestEntry, SarifReportResultReference } from "@a11yst/types";
2
+ export declare function buildReportManifestEntry(reportGenerated: boolean, reportPath: string | undefined, sarifEntry?: SarifReportManifestEntry, junitEntry?: JunitReportManifestEntry, markdownEntry?: MarkdownReportManifestEntry, githubAnnotationsEntry?: GitHubAnnotationsReportManifestEntry, githubStepSummaryWritten?: boolean): AuditReportManifest | undefined;
3
+ export declare function buildReportsManifest(input: {
4
+ html?: {
5
+ path: string;
6
+ };
7
+ sarif?: SarifReportManifestEntry;
8
+ junit?: JunitReportManifestEntry;
9
+ markdown?: MarkdownReportManifestEntry;
10
+ githubAnnotations?: GitHubAnnotationsReportManifestEntry;
11
+ githubStepSummary?: {
12
+ written: boolean;
13
+ };
14
+ }): AuditReportManifest | undefined;
15
+ export declare function mergeReportReferences(current: AuditReportReferences | undefined, patch: AuditReportReferences): AuditReportReferences;
16
+ export declare function buildSarifReportReference(reference: SarifReportResultReference): AuditReportReferences;
17
+ export declare function buildJunitReportReference(reference: JunitReportResultReference): AuditReportReferences;
18
+ export declare function buildMarkdownReportReference(reference: MarkdownReportResultReference): AuditReportReferences;
19
+ export declare function buildGitHubAnnotationsReportReference(reference: GitHubAnnotationsReportResultReference): AuditReportReferences;
20
+ export declare function buildGitHubStepSummaryReference(): AuditReportReferences;
21
+ //# sourceMappingURL=report-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-manifest.d.ts","sourceRoot":"","sources":["../src/report-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oCAAoC,EACpC,sCAAsC,EACtC,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AAEvB,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,CAAC,EAAE,wBAAwB,EACrC,UAAU,CAAC,EAAE,wBAAwB,EACrC,aAAa,CAAC,EAAE,2BAA2B,EAC3C,sBAAsB,CAAC,EAAE,oCAAoC,EAC7D,wBAAwB,CAAC,EAAE,OAAO,GACjC,mBAAmB,GAAG,SAAS,CAqBjC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC,iBAAiB,CAAC,EAAE,oCAAoC,CAAC;IACzD,iBAAiB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1C,GAAG,mBAAmB,GAAG,SAAS,CAqBlC;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,KAAK,EAAE,qBAAqB,GAC3B,qBAAqB,CAKvB;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,0BAA0B,GACpC,qBAAqB,CAEvB;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,0BAA0B,GACpC,qBAAqB,CAEvB;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,6BAA6B,GACvC,qBAAqB,CAEvB;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,sCAAsC,GAChD,qBAAqB,CAEvB;AAED,wBAAgB,+BAA+B,IAAI,qBAAqB,CAEvE"}
@@ -0,0 +1,66 @@
1
+ export function buildReportManifestEntry(reportGenerated, reportPath, sarifEntry, junitEntry, markdownEntry, githubAnnotationsEntry, githubStepSummaryWritten) {
2
+ const reports = {};
3
+ if (reportGenerated && reportPath) {
4
+ reports.html = { path: reportPath };
5
+ }
6
+ if (sarifEntry) {
7
+ reports.sarif = sarifEntry;
8
+ }
9
+ if (junitEntry) {
10
+ reports.junit = junitEntry;
11
+ }
12
+ if (markdownEntry) {
13
+ reports.markdown = markdownEntry;
14
+ }
15
+ if (githubAnnotationsEntry) {
16
+ reports.githubAnnotations = githubAnnotationsEntry;
17
+ }
18
+ if (githubStepSummaryWritten) {
19
+ reports.githubStepSummary = { written: true };
20
+ }
21
+ return Object.keys(reports).length > 0 ? reports : undefined;
22
+ }
23
+ export function buildReportsManifest(input) {
24
+ const reports = {};
25
+ if (input.html) {
26
+ reports.html = input.html;
27
+ }
28
+ if (input.sarif) {
29
+ reports.sarif = input.sarif;
30
+ }
31
+ if (input.junit) {
32
+ reports.junit = input.junit;
33
+ }
34
+ if (input.markdown) {
35
+ reports.markdown = input.markdown;
36
+ }
37
+ if (input.githubAnnotations) {
38
+ reports.githubAnnotations = input.githubAnnotations;
39
+ }
40
+ if (input.githubStepSummary) {
41
+ reports.githubStepSummary = input.githubStepSummary;
42
+ }
43
+ return Object.keys(reports).length > 0 ? reports : undefined;
44
+ }
45
+ export function mergeReportReferences(current, patch) {
46
+ return {
47
+ ...(current ?? {}),
48
+ ...patch,
49
+ };
50
+ }
51
+ export function buildSarifReportReference(reference) {
52
+ return { sarif: reference };
53
+ }
54
+ export function buildJunitReportReference(reference) {
55
+ return { junit: reference };
56
+ }
57
+ export function buildMarkdownReportReference(reference) {
58
+ return { markdown: reference };
59
+ }
60
+ export function buildGitHubAnnotationsReportReference(reference) {
61
+ return { githubAnnotations: reference };
62
+ }
63
+ export function buildGitHubStepSummaryReference() {
64
+ return { githubStepSummary: { written: true } };
65
+ }
66
+ //# sourceMappingURL=report-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-manifest.js","sourceRoot":"","sources":["../src/report-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ResolvedReportsConfig } from "@a11yst/types";
2
+ export interface GitHubAnnotationsCliOptions {
3
+ githubAnnotations?: boolean;
4
+ noGitHubAnnotations?: boolean;
5
+ githubAnnotationsOutput?: string;
6
+ }
7
+ export interface ResolvedGitHubAnnotationsOptions {
8
+ enabled: boolean;
9
+ outputPath?: string;
10
+ }
11
+ export declare function resolveGitHubAnnotationsOptions(input: {
12
+ config?: Pick<ResolvedReportsConfig, "githubAnnotations" | "githubAnnotationsOutput"> | {
13
+ githubAnnotations?: boolean;
14
+ githubAnnotationsOutput?: string;
15
+ };
16
+ cli?: GitHubAnnotationsCliOptions;
17
+ }): ResolvedGitHubAnnotationsOptions;
18
+ export interface GitHubStepSummaryCliOptions {
19
+ githubStepSummary?: boolean;
20
+ noGitHubStepSummary?: boolean;
21
+ }
22
+ export declare function resolveGitHubStepSummaryOptions(input: {
23
+ config?: Pick<ResolvedReportsConfig, "githubStepSummary"> | {
24
+ githubStepSummary?: boolean;
25
+ };
26
+ cli?: GitHubStepSummaryCliOptions;
27
+ }): {
28
+ enabled: boolean;
29
+ };
30
+ //# sourceMappingURL=resolve-github-report-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-github-report-options.d.ts","sourceRoot":"","sources":["../src/resolve-github-report-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,MAAM,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,GAAG,yBAAyB,CAAC,GAAG;QACtF,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,GAAG,CAAC,EAAE,2BAA2B,CAAC;CACnC,GAAG,gCAAgC,CAgCnC;AAED,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,MAAM,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,GAAG;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5F,GAAG,CAAC,EAAE,2BAA2B,CAAC;CACnC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAcvB"}
@@ -0,0 +1,43 @@
1
+ export function resolveGitHubAnnotationsOptions(input) {
2
+ const config = input.config ?? { githubAnnotations: false };
3
+ const cli = input.cli ?? {};
4
+ if (cli.noGitHubAnnotations) {
5
+ return { enabled: false };
6
+ }
7
+ const cliOutput = cli.githubAnnotationsOutput?.trim();
8
+ if (cliOutput === "") {
9
+ throw new Error("GitHub annotations output path must not be empty.");
10
+ }
11
+ if (cli.githubAnnotations || cliOutput) {
12
+ return {
13
+ enabled: true,
14
+ ...(cliOutput ? { outputPath: cliOutput } : {}),
15
+ };
16
+ }
17
+ if (config.githubAnnotations) {
18
+ const configOutput = config.githubAnnotationsOutput?.trim();
19
+ if (configOutput === "") {
20
+ throw new Error("GitHub annotations output path in configuration must not be empty.");
21
+ }
22
+ return {
23
+ enabled: true,
24
+ ...(configOutput ? { outputPath: configOutput } : {}),
25
+ };
26
+ }
27
+ return { enabled: false };
28
+ }
29
+ export function resolveGitHubStepSummaryOptions(input) {
30
+ const config = input.config ?? { githubStepSummary: false };
31
+ const cli = input.cli ?? {};
32
+ if (cli.noGitHubStepSummary) {
33
+ return { enabled: false };
34
+ }
35
+ if (cli.githubStepSummary) {
36
+ return { enabled: true };
37
+ }
38
+ if (config.githubStepSummary) {
39
+ return { enabled: true };
40
+ }
41
+ return { enabled: false };
42
+ }
43
+ //# sourceMappingURL=resolve-github-report-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-github-report-options.js","sourceRoot":"","sources":["../src/resolve-github-report-options.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,+BAA+B,CAAC,KAM/C;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAE5B,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,GAAG,CAAC,iBAAiB,IAAI,SAAS,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC;QAC5D,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAOD,MAAM,UAAU,+BAA+B,CAAC,KAG/C;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAE5B,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ResolvedReportsConfig } from "@a11yst/types";
2
+ export interface JunitReportCliOptions {
3
+ junit?: boolean;
4
+ noJunit?: boolean;
5
+ junitOutput?: string;
6
+ }
7
+ export interface ResolvedJunitReportOptions {
8
+ enabled: boolean;
9
+ outputPath?: string;
10
+ }
11
+ export declare function resolveJunitReportOptions(input: {
12
+ config?: Pick<ResolvedReportsConfig, "junit" | "junitOutput"> | {
13
+ junit?: boolean;
14
+ junitOutput?: string;
15
+ };
16
+ cli?: JunitReportCliOptions;
17
+ }): ResolvedJunitReportOptions;
18
+ //# sourceMappingURL=resolve-junit-report-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-junit-report-options.d.ts","sourceRoot":"","sources":["../src/resolve-junit-report-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,MAAM,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,aAAa,CAAC,GAAG;QAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,CAAC,EAAE,qBAAqB,CAAC;CAC7B,GAAG,0BAA0B,CAgC7B"}
@@ -0,0 +1,29 @@
1
+ export function resolveJunitReportOptions(input) {
2
+ const config = input.config ?? { junit: false };
3
+ const cli = input.cli ?? {};
4
+ if (cli.noJunit) {
5
+ return { enabled: false };
6
+ }
7
+ const cliOutput = cli.junitOutput?.trim();
8
+ if (cliOutput === "") {
9
+ throw new Error("JUnit output path must not be empty.");
10
+ }
11
+ if (cli.junit || cliOutput) {
12
+ return {
13
+ enabled: true,
14
+ ...(cliOutput ? { outputPath: cliOutput } : {}),
15
+ };
16
+ }
17
+ if (config.junit) {
18
+ const configOutput = config.junitOutput?.trim();
19
+ if (configOutput === "") {
20
+ throw new Error("JUnit output path in configuration must not be empty.");
21
+ }
22
+ return {
23
+ enabled: true,
24
+ ...(configOutput ? { outputPath: configOutput } : {}),
25
+ };
26
+ }
27
+ return { enabled: false };
28
+ }
29
+ //# sourceMappingURL=resolve-junit-report-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-junit-report-options.js","sourceRoot":"","sources":["../src/resolve-junit-report-options.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,yBAAyB,CAAC,KAMzC;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAE5B,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ResolvedReportsConfig } from "@a11yst/types";
2
+ export interface MarkdownReportCliOptions {
3
+ markdown?: boolean;
4
+ noMarkdown?: boolean;
5
+ markdownOutput?: string;
6
+ }
7
+ export interface ResolvedMarkdownReportOptions {
8
+ enabled: boolean;
9
+ outputPath?: string;
10
+ }
11
+ export declare function resolveMarkdownReportOptions(input: {
12
+ config?: Pick<ResolvedReportsConfig, "markdown" | "markdownOutput"> | {
13
+ markdown?: boolean;
14
+ markdownOutput?: string;
15
+ };
16
+ cli?: MarkdownReportCliOptions;
17
+ }): ResolvedMarkdownReportOptions;
18
+ //# sourceMappingURL=resolve-markdown-report-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-markdown-report-options.d.ts","sourceRoot":"","sources":["../src/resolve-markdown-report-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,MAAM,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,UAAU,GAAG,gBAAgB,CAAC,GAAG;QACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,GAAG,CAAC,EAAE,wBAAwB,CAAC;CAChC,GAAG,6BAA6B,CAoChC"}
@@ -0,0 +1,32 @@
1
+ export function resolveMarkdownReportOptions(input) {
2
+ const config = input.config ?? { markdown: true };
3
+ const cli = input.cli ?? {};
4
+ if (cli.noMarkdown || cli.markdown === false) {
5
+ return { enabled: false };
6
+ }
7
+ const cliOutput = cli.markdownOutput?.trim();
8
+ if (cliOutput === "") {
9
+ throw new Error("Markdown output path must not be empty.");
10
+ }
11
+ if (cli.markdown || cliOutput) {
12
+ return {
13
+ enabled: true,
14
+ ...(cliOutput ? { outputPath: cliOutput } : {}),
15
+ };
16
+ }
17
+ if (config.markdown === false) {
18
+ return { enabled: false };
19
+ }
20
+ const configOutput = config.markdownOutput?.trim();
21
+ if (configOutput === "") {
22
+ throw new Error("Markdown output path in configuration must not be empty.");
23
+ }
24
+ if (configOutput) {
25
+ return {
26
+ enabled: true,
27
+ outputPath: configOutput,
28
+ };
29
+ }
30
+ return { enabled: true };
31
+ }
32
+ //# sourceMappingURL=resolve-markdown-report-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-markdown-report-options.js","sourceRoot":"","sources":["../src/resolve-markdown-report-options.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,4BAA4B,CAAC,KAM5C;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAE5B,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,YAAY;SACzB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Diagnostic, NormalizedRoute, ProgressReporter, ResolvedConfig, ResolvedWebProject } from "@a11yst/types";
2
+ export interface ResolveProjectRoutesForProjectResult {
3
+ routes: NormalizedRoute[];
4
+ diagnostics: Diagnostic[];
5
+ }
6
+ /**
7
+ * Resolve routes for one web project using the framework adapter and route
8
+ * discovery settings. Explicit config routes are always preserved; discovery
9
+ * supplements or replaces them according to `routeDiscovery.mode`.
10
+ */
11
+ export declare function resolveProjectRoutesForProject(project: ResolvedWebProject, configDir: string): Promise<ResolveProjectRoutesForProjectResult>;
12
+ /**
13
+ * Resolve adapter-discovered routes for every web project and return a cloned
14
+ * config ready for synchronous planning via {@link createAuditPlan}.
15
+ */
16
+ export declare function prepareAuditConfig(config: ResolvedConfig, progress?: ProgressReporter): Promise<ResolvedConfig>;
17
+ //# sourceMappingURL=resolve-project-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-project-routes.d.ts","sourceRoot":"","sources":["../src/resolve-project-routes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAEnB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAeD;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oCAAoC,CAAC,CA0D/C;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,cAAc,CAAC,CA4BzB"}
@@ -0,0 +1,95 @@
1
+ import { resolve } from "node:path";
2
+ import { createAdapterContext, resolveAdapter, resolveProjectRoutes, } from "@a11yst/adapters";
3
+ function skippedPatternDiagnostics(skippedPatterns, projectName) {
4
+ return skippedPatterns.map((entry) => ({
5
+ code: "ROUTE_PATTERN_SKIPPED",
6
+ severity: "info",
7
+ message: `Route pattern "${entry.pattern}" was skipped: ${entry.reason}`,
8
+ path: `projects.${projectName}.routeDiscovery`,
9
+ ...(entry.sourceFile !== undefined ? { hint: entry.sourceFile } : {}),
10
+ }));
11
+ }
12
+ /**
13
+ * Resolve routes for one web project using the framework adapter and route
14
+ * discovery settings. Explicit config routes are always preserved; discovery
15
+ * supplements or replaces them according to `routeDiscovery.mode`.
16
+ */
17
+ export async function resolveProjectRoutesForProject(project, configDir) {
18
+ const mode = project.routeDiscovery.mode;
19
+ if (mode === "off") {
20
+ return {
21
+ routes: project.routes.map((route) => ({ ...route })),
22
+ diagnostics: [],
23
+ };
24
+ }
25
+ if (mode === "fallback" && project.routes.length > 0) {
26
+ return {
27
+ routes: project.routes.map((route) => ({ ...route })),
28
+ diagnostics: [],
29
+ };
30
+ }
31
+ const projectRoot = resolve(configDir, project.rootDir);
32
+ const context = createAdapterContext(projectRoot, configDir, project);
33
+ const adapter = resolveAdapter({
34
+ framework: project.framework,
35
+ platform: project.platform,
36
+ });
37
+ if (!adapter) {
38
+ return {
39
+ routes: project.routes.map((route) => ({ ...route })),
40
+ diagnostics: [
41
+ {
42
+ code: "ADAPTER_NOT_FOUND",
43
+ severity: "warning",
44
+ message: `No adapter found for framework "${project.framework}". Using explicit routes only.`,
45
+ path: `projects.${project.name}.framework`,
46
+ },
47
+ ],
48
+ };
49
+ }
50
+ const discovery = await adapter.discoverRoutes(context);
51
+ const adapterDiagnostics = await adapter.getDiagnostics(context);
52
+ const merged = resolveProjectRoutes({
53
+ explicitRoutes: project.routes,
54
+ discovery,
55
+ mode,
56
+ samples: project.routeDiscovery.samples,
57
+ });
58
+ const diagnostics = [
59
+ ...adapterDiagnostics,
60
+ ...merged.diagnostics,
61
+ ...skippedPatternDiagnostics(merged.skippedPatterns, project.name),
62
+ ];
63
+ return {
64
+ routes: merged.routes,
65
+ diagnostics,
66
+ };
67
+ }
68
+ /**
69
+ * Resolve adapter-discovered routes for every web project and return a cloned
70
+ * config ready for synchronous planning via {@link createAuditPlan}.
71
+ */
72
+ export async function prepareAuditConfig(config, progress) {
73
+ progress?.start("Discovering routes…");
74
+ const diagnostics = [...config.diagnostics];
75
+ let routeCount = 0;
76
+ const projects = await Promise.all(config.projects.map(async (project) => {
77
+ if (project.platform !== "web") {
78
+ return structuredClone(project);
79
+ }
80
+ const resolved = await resolveProjectRoutesForProject(project, config.configDir);
81
+ diagnostics.push(...resolved.diagnostics);
82
+ routeCount += resolved.routes.length;
83
+ return {
84
+ ...structuredClone(project),
85
+ routes: resolved.routes,
86
+ };
87
+ }));
88
+ progress?.succeed(`${routeCount} route${routeCount === 1 ? "" : "s"} resolved`);
89
+ return {
90
+ ...structuredClone(config),
91
+ projects,
92
+ diagnostics,
93
+ };
94
+ }
95
+ //# sourceMappingURL=resolve-project-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-project-routes.js","sourceRoot":"","sources":["../src/resolve-project-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ResolvedReportsConfig } from "@a11yst/types";
2
+ export interface SarifReportCliOptions {
3
+ sarif?: boolean;
4
+ noSarif?: boolean;
5
+ sarifOutput?: string;
6
+ }
7
+ export interface ResolvedSarifReportOptions {
8
+ enabled: boolean;
9
+ outputPath?: string;
10
+ }
11
+ export declare function resolveSarifReportOptions(input: {
12
+ config?: Pick<ResolvedReportsConfig, "sarif" | "sarifOutput"> | {
13
+ sarif?: boolean;
14
+ sarifOutput?: string;
15
+ };
16
+ cli?: SarifReportCliOptions;
17
+ }): ResolvedSarifReportOptions;
18
+ //# sourceMappingURL=resolve-sarif-report-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-sarif-report-options.d.ts","sourceRoot":"","sources":["../src/resolve-sarif-report-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC7C,MAAM,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,aAAa,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5G,GAAG,CAAC,EAAE,qBAAqB,CAAC;CAC7B,GAAG,0BAA0B,CAgC7B"}
@@ -0,0 +1,29 @@
1
+ export function resolveSarifReportOptions(input) {
2
+ const config = input.config ?? { sarif: false };
3
+ const cli = input.cli ?? {};
4
+ if (cli.noSarif) {
5
+ return { enabled: false };
6
+ }
7
+ const cliOutput = cli.sarifOutput?.trim();
8
+ if (cliOutput === "") {
9
+ throw new Error("SARIF output path must not be empty.");
10
+ }
11
+ if (cli.sarif || cliOutput) {
12
+ return {
13
+ enabled: true,
14
+ ...(cliOutput ? { outputPath: cliOutput } : {}),
15
+ };
16
+ }
17
+ if (config.sarif) {
18
+ const configOutput = config.sarifOutput?.trim();
19
+ if (configOutput === "") {
20
+ throw new Error("SARIF output path in configuration must not be empty.");
21
+ }
22
+ return {
23
+ enabled: true,
24
+ ...(configOutput ? { outputPath: configOutput } : {}),
25
+ };
26
+ }
27
+ return { enabled: false };
28
+ }
29
+ //# sourceMappingURL=resolve-sarif-report-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-sarif-report-options.js","sourceRoot":"","sources":["../src/resolve-sarif-report-options.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,yBAAyB,CAAC,KAGzC;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAE5B,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Build a deterministic, stable identifier for a planned run.
3
+ * Same inputs always produce the same id.
4
+ */
5
+ export declare function buildRunId(parts: {
6
+ projectName: string;
7
+ platform: string;
8
+ framework: string;
9
+ profile: string;
10
+ routePath?: string;
11
+ viewportName?: string;
12
+ }): string;
13
+ //# sourceMappingURL=run-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-id.d.ts","sourceRoot":"","sources":["../src/run-id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAyBT"}
package/dist/run-id.js ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Build a deterministic, stable identifier for a planned run.
3
+ * Same inputs always produce the same id.
4
+ */
5
+ export function buildRunId(parts) {
6
+ const segments = [
7
+ parts.platform,
8
+ parts.projectName,
9
+ parts.framework,
10
+ parts.profile,
11
+ ];
12
+ if (parts.routePath !== undefined) {
13
+ segments.push(parts.routePath === "/" ? "root" : parts.routePath);
14
+ }
15
+ if (parts.viewportName !== undefined) {
16
+ segments.push(parts.viewportName);
17
+ }
18
+ return segments
19
+ .map((segment) => segment
20
+ .trim()
21
+ .toLowerCase()
22
+ .replace(/[^a-z0-9]+/g, "-")
23
+ .replace(/^-+|-+$/g, ""))
24
+ .filter(Boolean)
25
+ .join("::");
26
+ }
27
+ //# sourceMappingURL=run-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-id.js","sourceRoot":"","sources":["../src/run-id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAO1B;IACC,MAAM,QAAQ,GAAG;QACf,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,OAAO;KACd,CAAC;IAEF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,OAAO;SACJ,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAC3B;SACA,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { AccessibilityProfile, AuditPlan, PlannedRun } from "@a11yst/types";
2
+ /**
3
+ * Web accessibility profiles are executable for web platform runs.
4
+ */
5
+ export declare function isExecutableRun(run: PlannedRun): boolean;
6
+ export declare function isFlowCheckpointRun(run: PlannedRun): boolean;
7
+ export declare function isRouteRun(run: PlannedRun): boolean;
8
+ export declare function skipReasonForRun(_run: PlannedRun): string | undefined;
9
+ export declare class UnknownProjectError extends Error {
10
+ readonly unknownNames: string[];
11
+ readonly knownNames: string[];
12
+ constructor(unknownNames: string[], knownNames: string[]);
13
+ }
14
+ export declare class UnknownProfileError extends Error {
15
+ readonly unknownProfiles: AccessibilityProfile[];
16
+ readonly knownProfiles: AccessibilityProfile[];
17
+ constructor(unknownProfiles: AccessibilityProfile[], knownProfiles: AccessibilityProfile[]);
18
+ }
19
+ export declare class UnknownFlowError extends Error {
20
+ readonly unknownFlows: string[];
21
+ readonly knownFlows: string[];
22
+ constructor(unknownFlows: string[], knownFlows: string[]);
23
+ }
24
+ export declare class AuditSelectionError extends Error {
25
+ constructor(message: string);
26
+ }
27
+ export interface SelectRunsOptions {
28
+ projectNames?: string[];
29
+ profileNames?: AccessibilityProfile[];
30
+ flowNames?: string[];
31
+ routesOnly?: boolean;
32
+ flowsOnly?: boolean;
33
+ }
34
+ export interface SelectRunsResult {
35
+ executable: PlannedRun[];
36
+ skipped: PlannedRun[];
37
+ }
38
+ export declare function selectRuns(plan: Pick<AuditPlan, "runs"> & {
39
+ projects?: AuditPlan["projects"];
40
+ }, options?: SelectRunsOptions): SelectRunsResult;
41
+ //# sourceMappingURL=select-runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-runs.d.ts","sourceRoot":"","sources":["../src/select-runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEjF;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAExD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAE5D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAErE;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBAElB,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;CASzD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,oBAAoB,EAAE,CAAC;gBAEnC,eAAe,EAAE,oBAAoB,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE;CAS3F;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBAElB,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;CASzD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAaD,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;CAAE,EACpE,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAoElB"}