@svelte-vitals/core 0.55.2 → 0.55.4

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.
@@ -1,4 +1,3 @@
1
- //#region src/runtime.d.ts
2
1
  /**
3
2
  * Runtime abstraction (design §8). Core defines only the interface; concrete
4
3
  * adapters (Node / Deno / Bun) live in the CLI package and are the only place
@@ -36,8 +35,6 @@ interface Runtime {
36
35
  * deliberately not a dependency, and pure enough to live in core.
37
36
  */
38
37
  declare function withReadLimit(readFile: (path: string) => Promise<string>, limit?: number): (path: string) => Promise<string>;
39
- //#endregion
40
- //#region src/component.d.ts
41
38
  /** An `{#each}` block in a component template. */
42
39
  interface EachBlockFact {
43
40
  /** True when the block has a key, e.g. `{#each items as item (item.id)}`. */
@@ -181,7 +178,7 @@ interface AriaElementFact {
181
178
  /** Set when the element also carries a spread attribute — its full attribute set is
182
179
  * unknowable, so required-prop presence checks must treat it as satisfied (a11y/required-aria-props). */
183
180
  hasSpread?: true;
184
- /** Set when the element carries a `use:` action, which may set `role` at runtime (svelte-dnd-action's handles do). */
181
+ /** Set when the element carries a `use:` action or is an item of a svelte-dnd-action zone — either may set `role` at runtime. */
185
182
  hasAction?: true;
186
183
  }
187
184
  /**
@@ -387,8 +384,6 @@ declare function emptyComponentFacts(file: string): ComponentFacts;
387
384
  * must never throw).
388
385
  */
389
386
  declare function collectComponentFacts(rt: Runtime, cwd: string): Promise<ComponentFacts[]>;
390
- //#endregion
391
- //#region src/head.d.ts
392
387
  /**
393
388
  * A normalized head tag. The mode-independent boundary (design §8): the static
394
389
  * SourceHeadProvider (CLI, via the runtime-abstracted `HeadProvider` below) and
@@ -430,6 +425,10 @@ interface HeadTag {
430
425
  /** Source file the tag came from (static mode); unset on a rendered head. */
431
426
  file?: string;
432
427
  }
428
+ /** Whether a `<link>`'s `rel` holds `token`: `rel` is a set of space-separated keywords (`dns-prefetch preconnect`). */
429
+ declare function hasRel(tag: {
430
+ rel?: string;
431
+ }, token: string): boolean;
433
432
  /** Resolved effective head for a single route (design §8). */
434
433
  interface ResolvedHead {
435
434
  /** Route path, e.g. '/blog/[slug]'. */
@@ -448,8 +447,6 @@ interface ResolvedHead {
448
447
  * so a whitespace-only `type` is a data block, not a classic script.
449
448
  */
450
449
  declare function isClassicScriptType(type: string | undefined): boolean;
451
- //#endregion
452
- //#region src/types.d.ts
453
450
  type Severity = 'critical' | 'warning' | 'info';
454
451
  /** Where a head tag is set, relative to the route being evaluated (design §4). */
455
452
  type Presence = 'own' | 'inherited' | 'none';
@@ -529,6 +526,8 @@ interface Project {
529
526
  value?: string;
530
527
  file: string;
531
528
  };
529
+ /** `kit.router.type: 'hash'` in `svelte.config.{js,ts}`: SvelteKit then never server-renders or prerenders a page. */
530
+ kitHashRouter?: true;
532
531
  /**
533
532
  * The project's compiled SvelteKit alias entries, in Kit's own order (`$lib` first), read from
534
533
  * `svelte.config.{js,ts}`. Absent means no config was read — resolution then falls back to
@@ -566,6 +565,8 @@ interface Project {
566
565
  * `<link rel="canonical">`, rendered on every route beside `%sveltekit.head%` (static mode).
567
566
  */
568
567
  appHtmlHeadTags?: Omit<HeadTag, 'presence' | 'file'>[];
568
+ /** HTML comments inside the shell's `<head>` (`<!--seo-head-->`), which a `transformPageChunk` hook may replace with tags. */
569
+ appHtmlHeadComments?: string[];
569
570
  }
570
571
  declare const defaultProject: Project;
571
572
  /** A concrete, agent-actionable remediation for a finding (design §10, issue #18). */
@@ -662,8 +663,6 @@ interface Config {
662
663
  declare const defaultConfig: Config;
663
664
  /** Merge user config over defaults. Identity helper for config files (design §6). */
664
665
  declare function defineConfig(config?: Partial<Config>): Config;
665
- //#endregion
666
- //#region src/summary.d.ts
667
666
  interface Summary {
668
667
  critical: number;
669
668
  warning: number;
@@ -681,15 +680,11 @@ declare function effectiveSeverity(result: Result, config: Config): Severity;
681
680
  declare function summarize(results: Result[], config: Config): Summary;
682
681
  /** Whether the run should fail the build/CI per the minimum failing severity. */
683
682
  declare function hasFailureAtOrAbove(summary: Summary, min: Severity): boolean;
684
- //#endregion
685
- //#region src/reporter/github.d.ts
686
683
  /**
687
684
  * Render penalized findings as GitHub Actions workflow commands (issue #18, design slice 5).
688
685
  * GitHub turns these into inline PR annotations and run-annotation entries. Returns '' when clean.
689
686
  */
690
687
  declare function formatGithubReport(results: Result[], config: Config): string;
691
- //#endregion
692
- //#region src/reporter/markdown.d.ts
693
688
  /**
694
689
  * Render a compact Markdown summary — Health score, per-category table, severity counts, and
695
690
  * a findings table — suitable for a GitHub Actions job summary or a sticky PR comment
@@ -699,8 +694,6 @@ declare function formatGithubReport(results: Result[], config: Config): string;
699
694
  declare function formatMarkdownReport(results: Result[], config: Config, meta: {
700
695
  version: string;
701
696
  }): string;
702
- //#endregion
703
- //#region src/images.d.ts
704
697
  /**
705
698
  * A normalized <img> occurrence — the mode-independent boundary for Performance
706
699
  * rules (mirrors head.ts). Attribute presence only: a dynamically-bound attribute
@@ -718,6 +711,8 @@ interface ImageInfo {
718
711
  hasSrcset: boolean;
719
712
  /** True when the <img>'s src is known to be an SVG (`isSvgSrc`; performance/responsive-image). */
720
713
  svg?: boolean;
714
+ /** True when the <img>'s src is a binding named for a QR code (`qrDataUrl`, `setup.qrCode`): drawn at one fixed size (performance/responsive-image). */
715
+ qr?: boolean;
721
716
  /** 1-based source line, or 0 if unknown. */
722
717
  line: number;
723
718
  /** Source file the <img> came from. */
@@ -730,14 +725,16 @@ interface ResolvedImages {
730
725
  route: string;
731
726
  images: ImageInfo[];
732
727
  }
733
- //#endregion
734
- //#region src/a11y.d.ts
735
728
  /** One step of a template branch address: which exclusive block, and which arm of it. */
736
729
  interface BranchStep {
737
730
  /** index of the {#if}/{#await} block among its file's blocks (document order) */
738
731
  group: number;
739
732
  /** branch index within the group (if: 0..n consequent→else; await: 0=pending,1=then,2=catch) */
740
733
  branch: number;
734
+ /** A heading renders here whichever arm is taken: every arm of the block has one, a prop the use passes decides the arm, or the place's own conditions select it. */
735
+ always?: true;
736
+ /** The body of an `{#each}` (headings only): it may render any number of times, or none. */
737
+ repeat?: true;
741
738
  }
742
739
  /** Where a folded occurrence sits, for the finding location. */
743
740
  interface A11yOccurrenceInfo {
@@ -881,15 +878,13 @@ declare function isTopFragment(id: string): boolean;
881
878
  * nothing. Returns an empty string when the fragment is a directive and nothing else.
882
879
  */
883
880
  declare function stripTextDirective(fragment: string): string;
884
- //#endregion
885
- //#region src/headings.d.ts
886
881
  /**
887
882
  * A normalized page-body heading occurrence — the mode-independent boundary for
888
883
  * the heading-hierarchy rule (mirrors images.ts). Both providers collect these
889
884
  * so seo/single-h1 never needs to know which mode produced them.
890
885
  */
891
886
  interface HeadingInfo {
892
- /** Heading level 1–6 (the `n` in <hn>). */
887
+ /** Heading level: 1–6 (the `n` in <hn>), an ARIA heading's `aria-level`, or 0 when the source does not determine it (source mode). */
893
888
  level: number;
894
889
  /** 1-based source line, or 0 if unknown (rendered mode does not track lines). */
895
890
  line: number;
@@ -901,6 +896,15 @@ interface HeadingInfo {
901
896
  * above it. Group numbers are route-wide: each file instance has its own range.
902
897
  */
903
898
  path?: BranchStep[];
899
+ /**
900
+ * Its place in document order (source mode): the source offset of each placement from the route's
901
+ * outermost file down — a layout's `{@render children()}`, a component's tag, a snippet's
902
+ * `{@render}` — and last its own. Compared element by element (`documentOrder`); rendered-mode
903
+ * headings carry none and arrive in order.
904
+ */
905
+ order?: number[];
906
+ /** A `role="heading"` element: it holds its outline level for seo/heading-level-skip, but is not an `<h1>` for seo/single-h1. */
907
+ aria?: true;
904
908
  }
905
909
  /** Resolved page-body headings for a single route (page + layout chain). */
906
910
  interface ResolvedHeadings {
@@ -908,9 +912,8 @@ interface ResolvedHeadings {
908
912
  headings: HeadingInfo[];
909
913
  /**
910
914
  * Headings found in child components rendered (transitively) by this route's
911
- * chain files — source mode only; absent in rendered mode. Kept separate from
912
- * `headings` because their position in document order is unknown: safe for
913
- * counting (seo/single-h1), unusable for outline order (seo/heading-level-skip).
915
+ * chain files — source mode only; absent in rendered mode. Their `order` places
916
+ * them among `headings`.
914
917
  */
915
918
  componentHeadings?: HeadingInfo[];
916
919
  /**
@@ -923,8 +926,6 @@ interface ResolvedHeadings {
923
926
  /** `dynamicHeading`, but from a component loaded with `import()` — source-mode collection folds it in only on routes never server-rendered. */
924
927
  clientOnlyHeading?: boolean;
925
928
  }
926
- //#endregion
927
- //#region src/kit-module.d.ts
928
929
  /**
929
930
  * Facts parsed from one SvelteKit route/hooks file for the SSR shared-state rules
930
931
  * (the security kit-module rules). Collected by `collectKitModuleFacts` (static/CLI + vite build mode).
@@ -965,6 +966,13 @@ interface KitModuleFacts {
965
966
  resolved: string;
966
967
  line: number;
967
968
  }[];
969
+ /** The targets of the `.set()`/`.update()` writes recorded in `importedStateWrites` from a handler, for the collector to drop those that reach a persistence client. */
970
+ storeWriteTargets?: {
971
+ name: string;
972
+ imported: string;
973
+ resolved: string;
974
+ line: number;
975
+ }[];
968
976
  /** Value imports whose specifier resolves to a repo-local `.svelte.ts`/`.svelte.js` runes module (security/shared-state-import). */
969
977
  runesModuleImports: {
970
978
  source: string;
@@ -978,7 +986,7 @@ interface KitModuleFacts {
978
986
  line: number;
979
987
  inHandler: boolean;
980
988
  }[];
981
- /** Browser-global reads in server-executed positions — top level, handler bodies, the `init` hook (correctness/server-browser-global). Empty when the file itself exports `ssr = false`. */
989
+ /** Browser-global reads in server-executed positions — top level, handler bodies, the `init` hook (correctness/server-browser-global). Empty when the file itself exports a literal `ssr = false`. */
982
990
  browserGlobalRefs: {
983
991
  name: string;
984
992
  line: number;
@@ -986,18 +994,46 @@ interface KitModuleFacts {
986
994
  }[];
987
995
  /** Root-relative `redirect()` literals in this Kit module (correctness/base-path-navigation). */
988
996
  basePathLinks: BasePathLinkFact[];
989
- /** Set when this file disables SSR via `export const ssr = false` (inline or same-file alias export) — the declaration's line (seo/ssr-disabled). */
997
+ /** Set when this file disables SSR via `export const ssr = false` or `= dev` (inline or same-file alias export) — the declaration's line (seo/ssr-disabled). */
990
998
  ssrDisabled?: {
991
999
  line: number;
992
1000
  };
993
1001
  /** Set when this file exports `ssr` as anything but a literal `false` (`true`, a computed value, a re-export) — it may turn SSR back on under a layout's `ssr = false` (see `appSsrDisabled`, `routeNeverSsr`). */
994
1002
  ssrEnabled?: true;
1003
+ /** Set when this file exports `ssr` as the literal `true` (inline or same-file alias export); implies `ssrEnabled`. */
1004
+ ssrTrue?: true;
995
1005
  /** Set when this file disables client-side rendering via `export const csr = false` (inline or same-file alias export). With no client runtime, a universal load only runs during SSR — performance/load-waterfall's browser-waterfall premise doesn't hold. */
996
1006
  csrDisabled?: {
997
1007
  line: number;
998
1008
  };
1009
+ /** Set when this file exports `csr` as anything but `false` — it may turn CSR back on under a layout's `csr = false` (see `universalNeverCsr`). */
1010
+ csrEnabled?: true;
999
1011
  /** Set when the exported `load` redirects or throws `error()` on every call — every path through its body reaches a `redirect()`/`error()` before any `return`, directly or through a same-file top-level function that always does (see `loadNeverRenders` in kit-module-parse.ts). A `+page` module carrying it means the route never renders its own page. */
1000
1012
  loadNeverRenders?: true;
1013
+ /** Set when the exported `load` redirects or errors on every call once `if (building)` (from `$app/environment`) is read false, as on every request; the page renders only if its route is prerendered (see `prerenderExported`). */
1014
+ loadNeverRendersOutsideBuild?: true;
1015
+ /** The module exports `prerender`, in any form. */
1016
+ prerenderExported?: true;
1017
+ /** The request paths the exported `handle` of a hooks file answers before calling `resolve` (see `handleAnsweredPaths` in kit-module-parse.ts): a route they cover never renders. */
1018
+ answeredPaths?: {
1019
+ op: 'eq' | 'starts';
1020
+ v: string;
1021
+ }[];
1022
+ /** The string literals a `transformPageChunk` the exported `handle` passes to `resolve` replaces in the page HTML (`html.replace('<!--seo-head-->', …)`). */
1023
+ pageChunkTokens?: string[];
1024
+ /** The imported flag a load's leading guard reads (`if (!FLAG) redirect(…)`): `collectKitModuleFacts` sets `loadNeverRenders` when that export is the literal `false`. */
1025
+ pendingFlagGuard?: {
1026
+ resolved: string;
1027
+ name: string;
1028
+ member?: string;
1029
+ };
1030
+ /** The imported factory `export const load = factory(…)` calls: `collectKitModuleFacts` sets `loadNeverRenders` when the function it returns redirects or errors on every call. */
1031
+ pendingLoadFactory?: {
1032
+ resolved: string;
1033
+ name: string;
1034
+ };
1035
+ /** Set when the exported `load` sends a request without a session away before rendering (see `loadGatesOnLocals` in kit-module-parse.ts); every route under a `+layout` carrying it is behind a login. */
1036
+ loadGated?: true;
1001
1037
  /** Sequential-await analysis of the exported `load` function (performance/load-waterfall, performance/sequential-awaits): 1-based lines of await sites that depend on an earlier await's result, and of sites independent of all earlier awaits. Set only when at least one list is non-empty. */
1002
1038
  loadWaterfalls?: {
1003
1039
  dependentLines: number[];
@@ -1011,11 +1047,24 @@ interface KitModuleFacts {
1011
1047
  readFailed?: true;
1012
1048
  }
1013
1049
  /** The rule-context fields the per-route SSR resolution reads. */
1014
- type SsrScope = Pick<RuleContext, 'kitModules' | 'components' | 'sourceFiles'>;
1050
+ type SsrScope = Pick<RuleContext, 'kitModules' | 'components' | 'sourceFiles'> & {
1051
+ project?: Pick<Project, 'kitHashRouter'>;
1052
+ };
1053
+ /**
1054
+ * Whether a `+page` file's route never renders because a layout above it redirects or errors in its
1055
+ * `load` on every call (`loadNeverRenders`). Not the root layout: one that sent every request away
1056
+ * would leave the app nothing to serve, so that reading is more likely wrong than the app, and acting
1057
+ * on it would silence every route.
1058
+ */
1059
+ declare function layoutNeverRenders(file: string, scope: SsrScope): boolean;
1060
+ /**
1061
+ * Whether a `+page` file's route never renders because its own `load` redirects or errors on every
1062
+ * request, a build-time `if (building)` aside (`loadNeverRendersOutsideBuild`), and nothing on its chain
1063
+ * exports `prerender`, so the build never renders it either.
1064
+ */
1065
+ declare function pageRendersOnlyWhenBuilding(file: string, scope: SsrScope): boolean;
1015
1066
  /** Whether a `+page`/`+layout` file (module or component) belongs to a route that is never server-rendered. */
1016
1067
  declare function routeNeverSsr(file: string, scope: SsrScope): boolean;
1017
- //#endregion
1018
- //#region src/config-apply.d.ts
1019
1068
  /** The severity a setting selects: `'off'`, an explicit severity, or undefined (leave the built-in). */
1020
1069
  declare function settingSeverity(setting: RuleSetting | undefined): Severity | 'off' | undefined;
1021
1070
  /** Drop rules disabled via config (design §6), including a `defaultOff` rule with no entry. */
@@ -1059,8 +1108,6 @@ interface CompiledOverride {
1059
1108
  * targets (every component, every route) must hoist this out of their loop.
1060
1109
  */
1061
1110
  declare function compileOverrides(config: Config): CompiledOverride[];
1062
- //#endregion
1063
- //#region src/rule-options.d.ts
1064
1111
  /**
1065
1112
  * One configurable option. `kind` decides the merge semantics, so no rule
1066
1113
  * writes merge code of its own: `integer` replaces, and the two collection
@@ -1138,8 +1185,6 @@ declare function validateRuleSetting(label: string, ruleId: string, setting: unk
1138
1185
  baseline?: RuleOptions;
1139
1186
  skipRangeCheck?: boolean;
1140
1187
  }): string[];
1141
- //#endregion
1142
- //#region src/rule.d.ts
1143
1188
  /** Input given to every rule. Mode-independent: rules see only ResolvedHead[] (design §8, §10). */
1144
1189
  interface RuleContext {
1145
1190
  heads: ResolvedHead[];
@@ -1217,8 +1262,6 @@ declare function docsUrlFor(id: string): string;
1217
1262
  * otherwise (static/inherited) → not penalized
1218
1263
  */
1219
1264
  declare function isPenalized(detection: Detection, treatDynamicAs: TreatDynamicAs): boolean;
1220
- //#endregion
1221
- //#region src/scoring/score.d.ts
1222
1265
  interface ScoreModel {
1223
1266
  routeAverage: number;
1224
1267
  sitePenalty: number;
@@ -1261,8 +1304,6 @@ interface HealthResult {
1261
1304
  }
1262
1305
  /** Combined weighted Health score over the categories present in `results` (#10). */
1263
1306
  declare function computeHealth(results: Result[], config: Config): HealthResult;
1264
- //#endregion
1265
- //#region src/reporter/json.d.ts
1266
1307
  declare function issueOf(result: Result): {
1267
1308
  fix?: Fix | undefined;
1268
1309
  docsUrl?: string | undefined;
@@ -1343,8 +1384,12 @@ declare function buildJsonReport(results: Result[], config: Config, meta: {
1343
1384
  version: string;
1344
1385
  }, ruleIds?: readonly string[], examined?: Record<string, Record<string, number>>, skipped?: JsonReport['skipped']): JsonReport;
1345
1386
  /** Render results as the documented JSON report string (design §7). */
1346
- declare function formatJsonReport(results: Result[], config: Config, meta: {
1387
+ declare function formatJsonReport(...args: Parameters<typeof formatJsonReportChunks>): string;
1388
+ /**
1389
+ * `formatJsonReport`'s text in pieces, one route at a time: a large prerendered site's report is
1390
+ * longer than the longest string V8 can hold.
1391
+ */
1392
+ declare function formatJsonReportChunks(results: Result[], config: Config, meta: {
1347
1393
  version: string;
1348
- }, ruleIds?: readonly string[], examined?: Record<string, Record<string, number>>, skipped?: JsonReport['skipped']): string;
1349
- //#endregion
1350
- export { formatGithubReport as $, routeNeverSsr as A, EachBlockFact as At, NAMING_ATTRS as B, compileOverrides as C, defaultConfig as Ct, withFailedRulesOff as D, ResolvedHead as Dt, settingSeverity as E, HeadTag as Et, ANCESTRY_DEPENDENT_TAGS as F, collectComponentFacts as Ft, isTopFragment as G, SECTIONING_TAGS as H, ASIDE_DEMOTING_TAGS as I, emptyComponentFacts as It, stripTextDirective as J, resolveLandmark as K, BranchStep as L, skippedFileWarnings as Lt, ResolvedHeadings as M, OrphanEffectFact as Mt, A11yOccurrenceInfo as N, SourceSpan as Nt, withIndexableOff as O, isClassicScriptType as Ot, A11ySkipCause as P, SuppressionDirective as Pt, formatMarkdownReport as Q, IDREF_ATTRS as R, Runtime as Rt, SEARCH_RESULT_RULES as S, Value as St, selectRules as T, defineConfig as Tt, decodeFragmentId as U, ResolvedA11y as V, foldOccurrences as W, ResolvedImages as X, ImageInfo as Y, isSvgSrc as Z, isPlainObject as _, RuleSetting as _t, HealthResult as a, summarize as at, validateRuleSetting as b, Severity as bt, ScoreResult as c, Config as ct, Rule as d, KitAlias as dt, Classification as et, RuleContext as f, Presence as ft, RuleOptionsSpec as g, RuleOverride as gt, RuleOptionSpec as h, RuleOptions as ht, formatJsonReport as i, hasFailureAtOrAbove as it, HeadingInfo as j, EffectFact as jt, KitModuleFacts as k, ComponentFacts as kt, computeHealth as l, Detection as lt, isPenalized as m, Result as mt, RuleEvidence as n, classify as nt, ScoreModel as o, CATEGORIES as ot, docsUrlFor as p, Project as pt, splitTokens as q, buildJsonReport as r, effectiveSeverity as rt, ScoreOptions as s, Category as st, JsonReport as t, Summary as tt, computeScore as u, Fix as ut, resolveRuleOptions as v, RuleSettingObject as vt, formatFailedRuleWarning as w, defaultProject as wt, CompiledOverride as x, TreatDynamicAs as xt, shouldSkipRangeCheck as y, Scope as yt, LandmarkInput as z, withReadLimit as zt };
1394
+ }, ruleIds?: readonly string[], examined?: Record<string, Record<string, number>>, skipped?: JsonReport['skipped']): Generator<string>;
1395
+ export { ResolvedImages as $, KitModuleFacts as A, ResolvedHead as At, BranchStep as B, emptyComponentFacts as Bt, SEARCH_RESULT_RULES as C, Severity as Ct, settingSeverity as D, defaultProject as Dt, selectRules as E, defaultConfig as Et, ResolvedHeadings as F, EffectFact as Ft, SECTIONING_TAGS as G, LandmarkInput as H, Runtime as Ht, A11yOccurrenceInfo as I, OrphanEffectFact as It, isTopFragment as J, decodeFragmentId as K, A11ySkipCause as L, SourceSpan as Lt, pageRendersOnlyWhenBuilding as M, isClassicScriptType as Mt, routeNeverSsr as N, ComponentFacts as Nt, withFailedRulesOff as O, defineConfig as Ot, HeadingInfo as P, EachBlockFact as Pt, ImageInfo as Q, ANCESTRY_DEPENDENT_TAGS as R, SuppressionDirective as Rt, CompiledOverride as S, Scope as St, formatFailedRuleWarning as T, Value as Tt, NAMING_ATTRS as U, withReadLimit as Ut, IDREF_ATTRS as V, skippedFileWarnings as Vt, ResolvedA11y as W, splitTokens as X, resolveLandmark as Y, stripTextDirective as Z, RuleOptionsSpec as _, Result as _t, formatJsonReportChunks as a, classify as at, shouldSkipRangeCheck as b, RuleSetting as bt, ScoreOptions as c, summarize as ct, computeScore as d, Config as dt, isSvgSrc as et, Rule as f, Detection as ft, RuleOptionSpec as g, Project as gt, isPenalized as h, Presence as ht, formatJsonReport as i, Summary as it, layoutNeverRenders as j, hasRel as jt, withIndexableOff as k, HeadTag as kt, ScoreResult as l, CATEGORIES as lt, docsUrlFor as m, KitAlias as mt, RuleEvidence as n, formatGithubReport as nt, HealthResult as o, effectiveSeverity as ot, RuleContext as p, Fix as pt, foldOccurrences as q, buildJsonReport as r, Classification as rt, ScoreModel as s, hasFailureAtOrAbove as st, JsonReport as t, formatMarkdownReport as tt, computeHealth as u, Category as ut, isPlainObject as v, RuleOptions as vt, compileOverrides as w, TreatDynamicAs as wt, validateRuleSetting as x, RuleSettingObject as xt, resolveRuleOptions as y, RuleOverride as yt, ASIDE_DEMOTING_TAGS as z, collectComponentFacts as zt };