@svelte-vitals/core 0.51.1 → 0.54.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as Summary, Ct as defineConfig, X as formatMarkdownReport, Z as formatGithubReport, at as Category, bt as Value, ct as Fix, ft as Result, gt as RuleSettingObject, ht as RuleSetting, it as CATEGORIES, mt as RuleOverride, n as RuleEvidence, nt as hasFailureAtOrAbove, o as ScoreModel, ot as Config, pt as RuleOptions, rt as summarize, st as Detection, t as JsonReport, ut as Presence, vt as Severity, yt as TreatDynamicAs } from "./json-D26FMrh-.js";
1
+ import { Q as formatGithubReport, Z as formatMarkdownReport, _t as RuleSettingObject, at as CATEGORIES, bt as TreatDynamicAs, ct as Detection, dt as Presence, et as Summary, gt as RuleSetting, ht as RuleOverride, it as summarize, lt as Fix, mt as RuleOptions, n as RuleEvidence, o as ScoreModel, ot as Category, pt as Result, rt as hasFailureAtOrAbove, st as Config, t as JsonReport, wt as defineConfig, xt as Value, yt as Severity } from "./json-D573DxEG.js";
2
2
  export { CATEGORIES, type Category, type Config, type Detection, type Fix, type JsonReport, type Presence, type Result, type RuleEvidence, type RuleOptions, type RuleOverride, type RuleSetting, type RuleSettingObject, type ScoreModel, type Severity, type Summary, type TreatDynamicAs, type Value, defineConfig, formatGithubReport, formatMarkdownReport, hasFailureAtOrAbove, summarize };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { Cr as CATEGORIES, Er as defineConfig, br as summarize, c as formatGithubReport, t as formatMarkdownReport, yr as hasFailureAtOrAbove } from "./markdown-B6TPN1ND.js";
1
+ import { Dr as defineConfig, br as hasFailureAtOrAbove, c as formatGithubReport, t as formatMarkdownReport, wr as CATEGORIES, xr as summarize } from "./markdown-MAU66kv0.js";
2
2
  export { CATEGORIES, defineConfig, formatGithubReport, formatMarkdownReport, hasFailureAtOrAbove, summarize };
@@ -1,4 +1,4 @@
1
- import { A as ASIDE_DEMOTING_TAGS, At as collectComponentFacts, B as resolveLandmark, C as selectRules, D as A11yOccurrenceInfo, Dt as OrphanEffectFact, E as KitModuleFacts, Et as EffectFact, F as ResolvedA11y, G as ImageInfo, H as stripTextDirective, I as SECTIONING_TAGS, J as ResolvedHead, K as ResolvedImages, L as decodeFragmentId, M as IDREF_ATTRS, Mt as Runtime, N as LandmarkInput, Nt as withReadLimit, O as A11ySkipCause, Ot as SourceSpan, P as NAMING_ATTRS, Q as Classification, R as foldOccurrences, S as formatFailedRuleWarning, St as defaultProject, T as withFailedRulesOff, Tt as EachBlockFact, U as HeadingInfo, V as splitTokens, W as ResolvedHeadings, X as formatMarkdownReport, Y as isClassicScriptType, Z as formatGithubReport, _ as resolveRuleOptions, _t as Scope, a as HealthResult, at as Category, b as CompiledOverride, bt as Value, c as ScoreResult, ct as Fix, d as Rule, dt as Project, et as classify, f as RuleContext, ft as Result, g as RuleOptionsSpec, h as RuleOptionSpec, i as formatJsonReport, j as BranchStep, jt as skippedFileWarnings, k as ANCESTRY_DEPENDENT_TAGS, kt as SuppressionDirective, l as computeHealth, lt as KitAlias, m as isPenalized, nt as hasFailureAtOrAbove, ot as Config, p as docsUrlFor, q as HeadTag, r as buildJsonReport, rt as summarize, s as ScoreOptions, t as JsonReport, tt as effectiveSeverity, u as computeScore, v as shouldSkipRangeCheck, vt as Severity, w as settingSeverity, wt as ComponentFacts, x as compileOverrides, xt as defaultConfig, y as validateRuleSetting, z as isTopFragment } from "./json-D26FMrh-.js";
1
+ import { $ as Classification, A as ANCESTRY_DEPENDENT_TAGS, At as SuppressionDirective, B as isTopFragment, C as formatFailedRuleWarning, Ct as defaultProject, D as KitModuleFacts, Dt as EffectFact, E as withFailedRulesOff, Et as EachBlockFact, F as NAMING_ATTRS, G as ResolvedHeadings, H as splitTokens, I as ResolvedA11y, J as HeadTag, K as ImageInfo, L as SECTIONING_TAGS, M as BranchStep, Mt as skippedFileWarnings, N as IDREF_ATTRS, Nt as Runtime, O as A11yOccurrenceInfo, Ot as OrphanEffectFact, P as LandmarkInput, Pt as withReadLimit, Q as formatGithubReport, R as decodeFragmentId, S as compileOverrides, St as defaultConfig, T as settingSeverity, Tt as ComponentFacts, U as stripTextDirective, V as resolveLandmark, W as HeadingInfo, X as isClassicScriptType, Y as ResolvedHead, Z as formatMarkdownReport, _ as isPlainObject, a as HealthResult, b as validateRuleSetting, c as ScoreResult, d as Rule, f as RuleContext, ft as Project, g as RuleOptionsSpec, h as RuleOptionSpec, i as formatJsonReport, it as summarize, j as ASIDE_DEMOTING_TAGS, jt as collectComponentFacts, k as A11ySkipCause, kt as SourceSpan, l as computeHealth, lt as Fix, m as isPenalized, nt as effectiveSeverity, ot as Category, p as docsUrlFor, pt as Result, q as ResolvedImages, r as buildJsonReport, rt as hasFailureAtOrAbove, s as ScoreOptions, st as Config, t as JsonReport, tt as classify, u as computeScore, ut as KitAlias, v as resolveRuleOptions, vt as Scope, w as selectRules, x as CompiledOverride, xt as Value, y as shouldSkipRangeCheck, yt as Severity, z as foldOccurrences } from "./json-D573DxEG.js";
2
2
  import { AST } from "svelte/compiler";
3
3
  //#region src/component-parse.d.ts
4
4
  /** What the per-file parsers produce — `ComponentFacts` minus `file`, with `suppressions` always present. */
@@ -974,4 +974,4 @@ declare function formatHtmlReport(results: Result[], config: Config, meta: {
974
974
  coreVersion?: string;
975
975
  }): string;
976
976
  //#endregion
977
- export { type A11yOccurrenceInfo, type A11ySkipCause, ANCESTRY_DEPENDENT_TAGS, APP_SCRIPT, ASIDE_DEMOTING_TAGS, type AppSnapshot, type BranchStep, CHILD_NODE_KEYS, type Classification, type CompiledOverride, type ComponentFacts, type ConsoleReportOptions, type DirectiveIndex, type EachBlockFact, type EffectFact, type FailedRule, type HeadTag, type HeadingInfo, type HealthResult, IDREF_ATTRS, type ImageInfo, type KitAlias, type KitModuleFacts, type LandmarkInput, NAMING_ATTRS, type OrphanEffectFact, type Palette, type Project, ROBOTS_SOURCE_PATHS, type ResolvedA11y, type ResolvedHead, type ResolvedHeadings, type ResolvedImages, type RouteBadge, type Rule, type RuleContext, RuleInfo, RuleOptionInfo, type RuleOptionSpec, type RuleOptionsSpec, type Runtime, SECTIONING_TAGS, SITEMAP_SOURCE_PATHS, SVELTE_CONFIG_FILES, type Scope, type ScoreOptions, type ScoreResult, type SourceSpan, type SuppressionDirective, VITE_CONFIG_FILES, a11yAbbrTitle, a11yAccessibleName, a11yAriaHiddenFocus, a11yDeprecatedAria, a11yDeprecatedAttr, a11yDeprecatedElement, a11yDisallowedAriaProps, a11yDisallowedElement, a11yDoctype, a11yDuplicateLandmark, a11yIdDuplication, a11yInteractiveNesting, a11yInvalidAriaValue, a11yInvalidRole, a11yLabelHasControl, a11yNoAccesskey, a11yNoAutofocus, a11yNoDuplicateDt, a11yNoMissingIdRef, a11yPatternTitle, a11yPermittedContents, a11yPlaceholderLabelOption, a11yPositiveTabindex, a11yRequireDatetime, a11yRequiredAriaProps, a11yRequiredElement, a11yTopLevelLandmark, a11yUnknownAriaAttribute, a11yUnverifiedIdRef, a11yUseList, addFactsDirectives, allRules, architectureComponentSize, architectureDirectoryNaming, architectureDocLinkTarget, architecturePrivateScopeImport, architecturePropCount, architectureReservedDirectoryNames, architectureReservedNamePlacement, architectureRouteComponentImport, architectureUnitEntryFile, attrText, attrTextOf, attrValue, attrValueOf, buildHtmlDocument, buildJsonReport, classify, collectComponentFacts, collectKitModuleFacts, collectSourceFiles, collectSuppressions, compileOverrides, computeHealth, computeScore, correctnessAutoplayMuted, correctnessBasePathNavigation, correctnessCheckableBindValue, correctnessEachIndexKey, correctnessEachKey, correctnessEffectAsDerived, correctnessEffectAsOnMount, correctnessInstanceBrowserGlobal, correctnessNonreactiveBuiltinState, correctnessOrphanEffect, correctnessOrphanLifecycle, correctnessPropMutation, correctnessServerBrowserGlobal, correctnessStalePropDerivation, correctnessUnmutatedState, decodeFragmentId, defaultConfig, defaultProject, docsUrlFor, effectiveSeverity, escapeHtml, explainRule, findAttr, findMinifyDisabled, foldOccurrences, formatAgentReport, formatConsoleReport, formatFailedRuleWarning, formatGithubReport, formatHtmlReport, formatJsonReport, formatMarkdownReport, formatSarifReport, hasFailureAtOrAbove, isClassicScriptType, isPenalized, isTopFragment, lineOf, noColorPalette, parseComponentFacts, parseSvelte, performanceFontPreloadCrossorigin, performanceHeavyImport, performanceIframeLoading, performanceImageDimensions, performanceImageLoadingHint, performanceLcpImage, performanceLoadWaterfall, performanceMinifyDisabled, performanceNamespaceImport, performancePreconnect, performancePreloadMissingAs, performanceRenderBlockingScript, performanceResponsiveImage, performanceSequentialAwaits, performanceStateRaw, renderAppShell, resolveKitAliases, resolveKitPathsBase, resolveLandmark, resolveRepoLocalPath, resolveRuleOptions, runAnalysis, runRules, safeHref, scoreColor, securityHandlerStateWrite, securityJavascriptUrl, securityRawHtml, securityServerModuleState, securitySharedStateImport, selectRules, seoCanonicalUrl, seoCharset, seoDescriptionLength, seoDescriptionPresence, seoDuplicateDescription, seoDuplicateTitle, seoHeadingLevelSkip, seoHreflang, seoHtmlLang, seoImageAlt, seoIndexability, seoJsonLd, seoJsonLdDateFormat, seoJsonLdDeprecatedType, seoJsonLdPlaceholder, seoJsonLdRelativeUrl, seoJsonLdRequiredProps, seoJsonLdValidity, seoOgDescription, seoOgImage, seoOgTitle, seoOgUrl, seoRobotsTxt, seoSingleH1, seoSitemapInRobots, seoSitemapXml, seoSsrDisabled, seoTitleLength, seoTitlePresence, seoTwitterCard, seoViewport, settingSeverity, shouldSkipRangeCheck, skippedFileWarnings, splitTokens, stripTextDirective, summarize, terminalSafe, textFromNodes, unknownDirectiveIds, validateRuleSetting, valueFromNodes, withFailedRulesOff, withReadLimit };
977
+ export { type A11yOccurrenceInfo, type A11ySkipCause, ANCESTRY_DEPENDENT_TAGS, APP_SCRIPT, ASIDE_DEMOTING_TAGS, type AppSnapshot, type BranchStep, CHILD_NODE_KEYS, type Classification, type CompiledOverride, type ComponentFacts, type ConsoleReportOptions, type DirectiveIndex, type EachBlockFact, type EffectFact, type FailedRule, type HeadTag, type HeadingInfo, type HealthResult, IDREF_ATTRS, type ImageInfo, type KitAlias, type KitModuleFacts, type LandmarkInput, NAMING_ATTRS, type OrphanEffectFact, type Palette, type Project, ROBOTS_SOURCE_PATHS, type ResolvedA11y, type ResolvedHead, type ResolvedHeadings, type ResolvedImages, type RouteBadge, type Rule, type RuleContext, RuleInfo, RuleOptionInfo, type RuleOptionSpec, type RuleOptionsSpec, type Runtime, SECTIONING_TAGS, SITEMAP_SOURCE_PATHS, SVELTE_CONFIG_FILES, type Scope, type ScoreOptions, type ScoreResult, type SourceSpan, type SuppressionDirective, VITE_CONFIG_FILES, a11yAbbrTitle, a11yAccessibleName, a11yAriaHiddenFocus, a11yDeprecatedAria, a11yDeprecatedAttr, a11yDeprecatedElement, a11yDisallowedAriaProps, a11yDisallowedElement, a11yDoctype, a11yDuplicateLandmark, a11yIdDuplication, a11yInteractiveNesting, a11yInvalidAriaValue, a11yInvalidRole, a11yLabelHasControl, a11yNoAccesskey, a11yNoAutofocus, a11yNoDuplicateDt, a11yNoMissingIdRef, a11yPatternTitle, a11yPermittedContents, a11yPlaceholderLabelOption, a11yPositiveTabindex, a11yRequireDatetime, a11yRequiredAriaProps, a11yRequiredElement, a11yTopLevelLandmark, a11yUnknownAriaAttribute, a11yUnverifiedIdRef, a11yUseList, addFactsDirectives, allRules, architectureComponentSize, architectureDirectoryNaming, architectureDocLinkTarget, architecturePrivateScopeImport, architecturePropCount, architectureReservedDirectoryNames, architectureReservedNamePlacement, architectureRouteComponentImport, architectureUnitEntryFile, attrText, attrTextOf, attrValue, attrValueOf, buildHtmlDocument, buildJsonReport, classify, collectComponentFacts, collectKitModuleFacts, collectSourceFiles, collectSuppressions, compileOverrides, computeHealth, computeScore, correctnessAutoplayMuted, correctnessBasePathNavigation, correctnessCheckableBindValue, correctnessEachIndexKey, correctnessEachKey, correctnessEffectAsDerived, correctnessEffectAsOnMount, correctnessInstanceBrowserGlobal, correctnessNonreactiveBuiltinState, correctnessOrphanEffect, correctnessOrphanLifecycle, correctnessPropMutation, correctnessServerBrowserGlobal, correctnessStalePropDerivation, correctnessUnmutatedState, decodeFragmentId, defaultConfig, defaultProject, docsUrlFor, effectiveSeverity, escapeHtml, explainRule, findAttr, findMinifyDisabled, foldOccurrences, formatAgentReport, formatConsoleReport, formatFailedRuleWarning, formatGithubReport, formatHtmlReport, formatJsonReport, formatMarkdownReport, formatSarifReport, hasFailureAtOrAbove, isClassicScriptType, isPenalized, isPlainObject, isTopFragment, lineOf, noColorPalette, parseComponentFacts, parseSvelte, performanceFontPreloadCrossorigin, performanceHeavyImport, performanceIframeLoading, performanceImageDimensions, performanceImageLoadingHint, performanceLcpImage, performanceLoadWaterfall, performanceMinifyDisabled, performanceNamespaceImport, performancePreconnect, performancePreloadMissingAs, performanceRenderBlockingScript, performanceResponsiveImage, performanceSequentialAwaits, performanceStateRaw, renderAppShell, resolveKitAliases, resolveKitPathsBase, resolveLandmark, resolveRepoLocalPath, resolveRuleOptions, runAnalysis, runRules, safeHref, scoreColor, securityHandlerStateWrite, securityJavascriptUrl, securityRawHtml, securityServerModuleState, securitySharedStateImport, selectRules, seoCanonicalUrl, seoCharset, seoDescriptionLength, seoDescriptionPresence, seoDuplicateDescription, seoDuplicateTitle, seoHeadingLevelSkip, seoHreflang, seoHtmlLang, seoImageAlt, seoIndexability, seoJsonLd, seoJsonLdDateFormat, seoJsonLdDeprecatedType, seoJsonLdPlaceholder, seoJsonLdRelativeUrl, seoJsonLdRequiredProps, seoJsonLdValidity, seoOgDescription, seoOgImage, seoOgTitle, seoOgUrl, seoRobotsTxt, seoSingleH1, seoSitemapInRobots, seoSitemapXml, seoSsrDisabled, seoTitleLength, seoTitlePresence, seoTwitterCard, seoViewport, settingSeverity, shouldSkipRangeCheck, skippedFileWarnings, splitTokens, stripTextDirective, summarize, terminalSafe, textFromNodes, unknownDirectiveIds, validateRuleSetting, valueFromNodes, withFailedRulesOff, withReadLimit };
package/dist/internal.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as SECTIONING_TAGS, $n as settingSeverity, $t as valueFromNodes, A as a11yAbbrTitle, An as seoDescriptionLength, At as collectDerivedGuardBindings, B as a11yUseList, Bn as seoOgUrl, Bt as unwrapTs, C as a11yDisallowedElement, Cn as seoHeadingLevelSkip, Ct as parseKitModuleFacts, D as a11yDeprecatedElement, Dn as seoHreflang, Dt as addBoundNames, E as a11yDeprecatedAttr, En as seoSingleH1, Et as WALK_IGNORED_KEYS, F as isInteractiveContainer, Fn as seoJsonLdRelativeUrl, Ft as matchLifecycleCall, G as a11yInvalidAriaValue, Gn as resolveRuleOptions, Gt as attrText, H as a11yAccessibleName, Hn as seoTwitterCard, Ht as walkEvalScope, I as isInteractiveElement, In as seoJsonLdDeprecatedType, It as parseModuleProgram, J as a11yInvalidRole, Jn as applyOverrides, Jt as attrValueOf, K as a11yRequiredAriaProps, Kn as shouldSkipRangeCheck, Kt as attrTextOf, L as literalTabindexValue, Ln as seoJsonLdValidity, Lt as rootObjectName, M as a11yNoAutofocus, Mn as seoJsonLdRequiredProps, Mt as collectProgramBindings, N as a11yNoAccesskey, Nn as seoJsonLdPlaceholder, Nt as collectSuppressions, O as HTML_SPEC, On as seoImageAlt, Ot as collectBrowserGlobalRefs, P as a11yPositiveTabindex, Pn as seoJsonLdDateFormat, Pt as collectSvelteLifecycleImports, Q as NAMING_ATTRS, Qn as selectRules, Qt as textFromNodes, R as a11yRequireDatetime, Rn as seoSitemapInRobots, Rt as scopeIntroducedNames, S as a11yPermittedContents, Sn as seoSsrDisabled, Sr as isPenalized, St as parseInMemoryExports, T as a11yDisallowedAriaProps, Tn as seoDuplicateTitle, Tr as defaultProject, Tt as isRootRelativePath, U as a11yAriaHiddenFocus, Un as seoIndexability, Ut as walkScoped, V as a11yLabelHasControl, Vn as seoOgDescription, Vt as walkEstree, W as a11yInteractiveNesting, Wn as performancePreconnect, Wt as CHILD_NODE_KEYS, X as ASIDE_DEMOTING_TAGS, Xn as compileOverrides, Xt as lineOf, Y as ANCESTRY_DEPENDENT_TAGS, Yn as applyRuleSeverities, Yt as findAttr, Z as IDREF_ATTRS, Zn as formatFailedRuleWarning, Zt as parseSvelte, _ as a11yIdDuplication, _n as correctnessUnmutatedState, _r as classify, _t as architectureReservedDirectoryNames, a as formatJsonReport, an as securityJavascriptUrl, ar as performanceResponsiveImage, at as stripTextDirective, b as a11yDoctype, bn as correctnessEachIndexKey, br as summarize, bt as architecturePrivateScopeImport, c as formatGithubReport, cn as correctnessServerBrowserGlobal, cr as seoHtmlLang, ct as performanceStateRaw, d as ruleMetaById, dn as correctnessOrphanEffect, dr as seoJsonLd, dt as performanceMinifyDisabled, en as architecturePropCount, er as withFailedRulesOff, et as decodeFragmentId, f as severityToSarifLevel, fn as correctnessAutoplayMuted, fr as seoOgTitle, ft as performanceNamespaceImport, g as a11yNoMissingIdRef, gn as correctnessPropMutation, gr as seoTitlePresence, gt as architectureReservedNamePlacement, h as a11yUnverifiedIdRef, hn as correctnessStalePropDerivation, hr as seoDescriptionPresence, ht as architectureRouteComponentImport, i as buildJsonReport, in as securityHandlerStateWrite, ir as performancePreloadMissingAs, it as splitTokens, j as a11yNoDuplicateDt, jn as seoTitleLength, jt as collectNamedImportAliases, k as a11yPatternTitle, kn as seoCharset, kt as collectBrowserGuardImports, l as SEVERITY_RANK, ln as correctnessBasePathNavigation, lr as seoSitemapXml, lt as performanceSequentialAwaits, m as explainRule, mn as correctnessNonreactiveBuiltinState, mr as seoCanonicalUrl, mt as architectureDocLinkTarget, n as mdEscape, nn as securitySharedStateImport, nr as performanceLcpImage, nt as isTopFragment, o as computeHealth, on as securityRawHtml, or as performanceImageLoadingHint, ot as resolveRole, p as allRules, pn as correctnessCheckableBindValue, pr as seoOgImage, pt as performanceHeavyImport, q as a11yUnknownAriaAttribute, qn as validateRuleSetting, qt as attrValue, r as terminalSafe, rn as securityServerModuleState, rr as performanceFontPreloadCrossorigin, rt as resolveLandmark, s as computeScore, sn as correctnessInstanceBrowserGlobal, sr as performanceImageDimensions, st as performanceIframeLoading, t as formatMarkdownReport, tn as architectureComponentSize, tr as performanceRenderBlockingScript, tt as foldOccurrences, u as messageText, un as correctnessOrphanLifecycle, ur as seoRobotsTxt, ut as performanceLoadWaterfall, v as a11yTopLevelLandmark, vn as correctnessEffectAsOnMount, vr as effectiveSeverity, vt as architectureDirectoryNaming, w as a11yDeprecatedAria, wn as seoDuplicateDescription, wr as defaultConfig, wt as resolveRepoLocalPath, x as a11yRequiredElement, xn as correctnessEachKey, xr as docsUrlFor, xt as collectTopLevelBindings, y as a11yDuplicateLandmark, yn as correctnessEffectAsDerived, yr as hasFailureAtOrAbove, yt as architectureUnitEntryFile, z as a11yPlaceholderLabelOption, zn as seoViewport, zt as unwrapExport } from "./markdown-B6TPN1ND.js";
1
+ import { $ as SECTIONING_TAGS, $n as selectRules, $t as valueFromNodes, A as a11yAbbrTitle, An as seoDescriptionLength, At as collectDerivedGuardBindings, B as a11yUseList, Bn as seoOgUrl, Bt as unwrapTs, C as a11yDisallowedElement, Cn as seoHeadingLevelSkip, Cr as isPenalized, Ct as parseKitModuleFacts, D as a11yDeprecatedElement, Dn as seoHreflang, Dt as addBoundNames, E as a11yDeprecatedAttr, En as seoSingleH1, Er as defaultProject, Et as WALK_IGNORED_KEYS, F as isInteractiveContainer, Fn as seoJsonLdRelativeUrl, Ft as matchLifecycleCall, G as a11yInvalidAriaValue, Gn as isPlainObject, Gt as attrText, H as a11yAccessibleName, Hn as seoTwitterCard, Ht as walkEvalScope, I as isInteractiveElement, In as seoJsonLdDeprecatedType, It as parseModuleProgram, J as a11yInvalidRole, Jn as validateRuleSetting, Jt as attrValueOf, K as a11yRequiredAriaProps, Kn as resolveRuleOptions, Kt as attrTextOf, L as literalTabindexValue, Ln as seoJsonLdValidity, Lt as rootObjectName, M as a11yNoAutofocus, Mn as seoJsonLdRequiredProps, Mt as collectProgramBindings, N as a11yNoAccesskey, Nn as seoJsonLdPlaceholder, Nt as collectSuppressions, O as HTML_SPEC, On as seoImageAlt, Ot as collectBrowserGlobalRefs, P as a11yPositiveTabindex, Pn as seoJsonLdDateFormat, Pt as collectSvelteLifecycleImports, Q as NAMING_ATTRS, Qn as formatFailedRuleWarning, Qt as textFromNodes, R as a11yRequireDatetime, Rn as seoSitemapInRobots, Rt as scopeIntroducedNames, S as a11yPermittedContents, Sn as seoSsrDisabled, Sr as docsUrlFor, St as parseInMemoryExports, T as a11yDisallowedAriaProps, Tn as seoDuplicateTitle, Tr as defaultConfig, Tt as isRootRelativePath, U as a11yAriaHiddenFocus, Un as seoIndexability, Ut as walkScoped, V as a11yLabelHasControl, Vn as seoOgDescription, Vt as walkEstree, W as a11yInteractiveNesting, Wn as performancePreconnect, Wt as CHILD_NODE_KEYS, X as ASIDE_DEMOTING_TAGS, Xn as applyRuleSeverities, Xt as lineOf, Y as ANCESTRY_DEPENDENT_TAGS, Yn as applyOverrides, Yt as findAttr, Z as IDREF_ATTRS, Zn as compileOverrides, Zt as parseSvelte, _ as a11yIdDuplication, _n as correctnessUnmutatedState, _r as seoTitlePresence, _t as architectureReservedDirectoryNames, a as formatJsonReport, an as securityJavascriptUrl, ar as performancePreloadMissingAs, at as stripTextDirective, b as a11yDoctype, bn as correctnessEachIndexKey, br as hasFailureAtOrAbove, bt as architecturePrivateScopeImport, c as formatGithubReport, cn as correctnessServerBrowserGlobal, cr as performanceImageDimensions, ct as performanceStateRaw, d as ruleMetaById, dn as correctnessOrphanEffect, dr as seoRobotsTxt, dt as performanceMinifyDisabled, en as architecturePropCount, er as settingSeverity, et as decodeFragmentId, f as severityToSarifLevel, fn as correctnessAutoplayMuted, fr as seoJsonLd, ft as performanceNamespaceImport, g as a11yNoMissingIdRef, gn as correctnessPropMutation, gr as seoDescriptionPresence, gt as architectureReservedNamePlacement, h as a11yUnverifiedIdRef, hn as correctnessStalePropDerivation, hr as seoCanonicalUrl, ht as architectureRouteComponentImport, i as buildJsonReport, in as securityHandlerStateWrite, ir as performanceFontPreloadCrossorigin, it as splitTokens, j as a11yNoDuplicateDt, jn as seoTitleLength, jt as collectNamedImportAliases, k as a11yPatternTitle, kn as seoCharset, kt as collectBrowserGuardImports, l as SEVERITY_RANK, ln as correctnessBasePathNavigation, lr as seoHtmlLang, lt as performanceSequentialAwaits, m as explainRule, mn as correctnessNonreactiveBuiltinState, mr as seoOgImage, mt as architectureDocLinkTarget, n as mdEscape, nn as securitySharedStateImport, nr as performanceRenderBlockingScript, nt as isTopFragment, o as computeHealth, on as securityRawHtml, or as performanceResponsiveImage, ot as resolveRole, p as allRules, pn as correctnessCheckableBindValue, pr as seoOgTitle, pt as performanceHeavyImport, q as a11yUnknownAriaAttribute, qn as shouldSkipRangeCheck, qt as attrValue, r as terminalSafe, rn as securityServerModuleState, rr as performanceLcpImage, rt as resolveLandmark, s as computeScore, sn as correctnessInstanceBrowserGlobal, sr as performanceImageLoadingHint, st as performanceIframeLoading, t as formatMarkdownReport, tn as architectureComponentSize, tr as withFailedRulesOff, tt as foldOccurrences, u as messageText, un as correctnessOrphanLifecycle, ur as seoSitemapXml, ut as performanceLoadWaterfall, v as a11yTopLevelLandmark, vn as correctnessEffectAsOnMount, vr as classify, vt as architectureDirectoryNaming, w as a11yDeprecatedAria, wn as seoDuplicateDescription, wt as resolveRepoLocalPath, x as a11yRequiredElement, xn as correctnessEachKey, xr as summarize, xt as collectTopLevelBindings, y as a11yDuplicateLandmark, yn as correctnessEffectAsDerived, yr as effectiveSeverity, yt as architectureUnitEntryFile, z as a11yPlaceholderLabelOption, zn as seoViewport, zt as unwrapExport } from "./markdown-MAU66kv0.js";
2
2
  //#region src/head.ts
3
3
  const JS_MIME_TYPES = /* @__PURE__ */ new Set([
4
4
  "application/ecmascript",
@@ -2894,11 +2894,24 @@ const VITE_CONFIG_FILES = [
2894
2894
  ];
2895
2895
  /** SvelteKit's config resolution order (`@sveltejs/kit` checks js before ts). */
2896
2896
  const SVELTE_CONFIG_FILES = ["svelte.config.js", "svelte.config.ts"];
2897
+ //#endregion
2898
+ //#region src/runtime.ts
2899
+ /**
2900
+ * How many file reads may be in flight at once. Analysis reads every `.svelte` file in a project
2901
+ * in parallel, which on a large project opens more descriptors than the process is allowed: at
2902
+ * `ulimit -n 1024` — a common container default — a 1 681-route project raised `EMFILE`, and
2903
+ * because a failed read lands in the same `catch` as a malformed component, 682 files were dropped
2904
+ * and the run still reported a normal score. The cap is what keeps the analysis whole.
2905
+ *
2906
+ * 64 is chosen to sit well under the stock 256 on macOS while leaving descriptors for everything
2907
+ * else the process holds open. It is not a throughput knob: reads are a few percent of the work.
2908
+ */
2909
+ const READ_CONCURRENCY = 64;
2897
2910
  /**
2898
2911
  * `readFile` with at most `limit` reads in flight. A plain counter plus a queue of waiters —
2899
2912
  * deliberately not a dependency, and pure enough to live in core.
2900
2913
  */
2901
- function withReadLimit(readFile, limit = 64) {
2914
+ function withReadLimit(readFile, limit = READ_CONCURRENCY) {
2902
2915
  let active = 0;
2903
2916
  const waiting = [];
2904
2917
  const release = () => {
@@ -3161,6 +3174,15 @@ function formatAgentReport(results, config) {
3161
3174
  }
3162
3175
  //#endregion
3163
3176
  //#region src/reporter/sarif.ts
3177
+ /**
3178
+ * SARIF `artifactLocation.uri` is a URI reference: `#`, `?`, `%`, spaces and non-ASCII in a raw
3179
+ * path would be read as fragment/query/escape/invalid and mis-attribute (or drop) the alert in
3180
+ * code scanning. `encodeURI` keeps `/` and `+` (both legal in a path, and `+page.svelte` is every
3181
+ * SvelteKit route) but leaves `#` and `?` alone, so those two are encoded explicitly.
3182
+ */
3183
+ function toArtifactUri(location) {
3184
+ return encodeURI(location).replace(/#/g, "%23").replace(/\?/g, "%3F");
3185
+ }
3164
3186
  /** Render penalized findings as a SARIF 2.1.0 log string (issue #18, design slice 5). */
3165
3187
  function formatSarifReport(results, config, meta) {
3166
3188
  const penalized = results.filter((r) => isPenalized(r.detection, config.treatDynamicAs));
@@ -3187,7 +3209,7 @@ function formatSarifReport(results, config, meta) {
3187
3209
  partialFingerprints: { "svelteVitals/v1": `${r.id}:${r.route ?? "project"}${r.line !== void 0 ? `:${r.location ?? ""}:${r.line}` : ""}` }
3188
3210
  };
3189
3211
  if (r.location) result.locations = [{ physicalLocation: {
3190
- artifactLocation: { uri: r.location },
3212
+ artifactLocation: { uri: toArtifactUri(r.location) },
3191
3213
  ...r.line !== void 0 ? { region: { startLine: r.line } } : {}
3192
3214
  } }];
3193
3215
  return result;
@@ -3967,4 +3989,4 @@ function formatHtmlReport(results, config, meta) {
3967
3989
  return buildHtmlDocument(buildJsonReport(results, config, meta), meta);
3968
3990
  }
3969
3991
  //#endregion
3970
- export { ANCESTRY_DEPENDENT_TAGS, APP_SCRIPT, ASIDE_DEMOTING_TAGS, CHILD_NODE_KEYS, IDREF_ATTRS, NAMING_ATTRS, ROBOTS_SOURCE_PATHS, SECTIONING_TAGS, SITEMAP_SOURCE_PATHS, SVELTE_CONFIG_FILES, VITE_CONFIG_FILES, a11yAbbrTitle, a11yAccessibleName, a11yAriaHiddenFocus, a11yDeprecatedAria, a11yDeprecatedAttr, a11yDeprecatedElement, a11yDisallowedAriaProps, a11yDisallowedElement, a11yDoctype, a11yDuplicateLandmark, a11yIdDuplication, a11yInteractiveNesting, a11yInvalidAriaValue, a11yInvalidRole, a11yLabelHasControl, a11yNoAccesskey, a11yNoAutofocus, a11yNoDuplicateDt, a11yNoMissingIdRef, a11yPatternTitle, a11yPermittedContents, a11yPlaceholderLabelOption, a11yPositiveTabindex, a11yRequireDatetime, a11yRequiredAriaProps, a11yRequiredElement, a11yTopLevelLandmark, a11yUnknownAriaAttribute, a11yUnverifiedIdRef, a11yUseList, addFactsDirectives, allRules, architectureComponentSize, architectureDirectoryNaming, architectureDocLinkTarget, architecturePrivateScopeImport, architecturePropCount, architectureReservedDirectoryNames, architectureReservedNamePlacement, architectureRouteComponentImport, architectureUnitEntryFile, attrText, attrTextOf, attrValue, attrValueOf, buildHtmlDocument, buildJsonReport, classify, collectComponentFacts, collectKitModuleFacts, collectSourceFiles, collectSuppressions, compileOverrides, computeHealth, computeScore, correctnessAutoplayMuted, correctnessBasePathNavigation, correctnessCheckableBindValue, correctnessEachIndexKey, correctnessEachKey, correctnessEffectAsDerived, correctnessEffectAsOnMount, correctnessInstanceBrowserGlobal, correctnessNonreactiveBuiltinState, correctnessOrphanEffect, correctnessOrphanLifecycle, correctnessPropMutation, correctnessServerBrowserGlobal, correctnessStalePropDerivation, correctnessUnmutatedState, decodeFragmentId, defaultConfig, defaultProject, docsUrlFor, effectiveSeverity, escapeHtml, explainRule, findAttr, findMinifyDisabled, foldOccurrences, formatAgentReport, formatConsoleReport, formatFailedRuleWarning, formatGithubReport, formatHtmlReport, formatJsonReport, formatMarkdownReport, formatSarifReport, hasFailureAtOrAbove, isClassicScriptType, isPenalized, isTopFragment, lineOf, noColorPalette, parseComponentFacts, parseSvelte, performanceFontPreloadCrossorigin, performanceHeavyImport, performanceIframeLoading, performanceImageDimensions, performanceImageLoadingHint, performanceLcpImage, performanceLoadWaterfall, performanceMinifyDisabled, performanceNamespaceImport, performancePreconnect, performancePreloadMissingAs, performanceRenderBlockingScript, performanceResponsiveImage, performanceSequentialAwaits, performanceStateRaw, renderAppShell, resolveKitAliases, resolveKitPathsBase, resolveLandmark, resolveRepoLocalPath, resolveRuleOptions, runAnalysis, runRules, safeHref, scoreColor, securityHandlerStateWrite, securityJavascriptUrl, securityRawHtml, securityServerModuleState, securitySharedStateImport, selectRules, seoCanonicalUrl, seoCharset, seoDescriptionLength, seoDescriptionPresence, seoDuplicateDescription, seoDuplicateTitle, seoHeadingLevelSkip, seoHreflang, seoHtmlLang, seoImageAlt, seoIndexability, seoJsonLd, seoJsonLdDateFormat, seoJsonLdDeprecatedType, seoJsonLdPlaceholder, seoJsonLdRelativeUrl, seoJsonLdRequiredProps, seoJsonLdValidity, seoOgDescription, seoOgImage, seoOgTitle, seoOgUrl, seoRobotsTxt, seoSingleH1, seoSitemapInRobots, seoSitemapXml, seoSsrDisabled, seoTitleLength, seoTitlePresence, seoTwitterCard, seoViewport, settingSeverity, shouldSkipRangeCheck, skippedFileWarnings, splitTokens, stripTextDirective, summarize, terminalSafe, textFromNodes, unknownDirectiveIds, validateRuleSetting, valueFromNodes, withFailedRulesOff, withReadLimit };
3992
+ export { ANCESTRY_DEPENDENT_TAGS, APP_SCRIPT, ASIDE_DEMOTING_TAGS, CHILD_NODE_KEYS, IDREF_ATTRS, NAMING_ATTRS, ROBOTS_SOURCE_PATHS, SECTIONING_TAGS, SITEMAP_SOURCE_PATHS, SVELTE_CONFIG_FILES, VITE_CONFIG_FILES, a11yAbbrTitle, a11yAccessibleName, a11yAriaHiddenFocus, a11yDeprecatedAria, a11yDeprecatedAttr, a11yDeprecatedElement, a11yDisallowedAriaProps, a11yDisallowedElement, a11yDoctype, a11yDuplicateLandmark, a11yIdDuplication, a11yInteractiveNesting, a11yInvalidAriaValue, a11yInvalidRole, a11yLabelHasControl, a11yNoAccesskey, a11yNoAutofocus, a11yNoDuplicateDt, a11yNoMissingIdRef, a11yPatternTitle, a11yPermittedContents, a11yPlaceholderLabelOption, a11yPositiveTabindex, a11yRequireDatetime, a11yRequiredAriaProps, a11yRequiredElement, a11yTopLevelLandmark, a11yUnknownAriaAttribute, a11yUnverifiedIdRef, a11yUseList, addFactsDirectives, allRules, architectureComponentSize, architectureDirectoryNaming, architectureDocLinkTarget, architecturePrivateScopeImport, architecturePropCount, architectureReservedDirectoryNames, architectureReservedNamePlacement, architectureRouteComponentImport, architectureUnitEntryFile, attrText, attrTextOf, attrValue, attrValueOf, buildHtmlDocument, buildJsonReport, classify, collectComponentFacts, collectKitModuleFacts, collectSourceFiles, collectSuppressions, compileOverrides, computeHealth, computeScore, correctnessAutoplayMuted, correctnessBasePathNavigation, correctnessCheckableBindValue, correctnessEachIndexKey, correctnessEachKey, correctnessEffectAsDerived, correctnessEffectAsOnMount, correctnessInstanceBrowserGlobal, correctnessNonreactiveBuiltinState, correctnessOrphanEffect, correctnessOrphanLifecycle, correctnessPropMutation, correctnessServerBrowserGlobal, correctnessStalePropDerivation, correctnessUnmutatedState, decodeFragmentId, defaultConfig, defaultProject, docsUrlFor, effectiveSeverity, escapeHtml, explainRule, findAttr, findMinifyDisabled, foldOccurrences, formatAgentReport, formatConsoleReport, formatFailedRuleWarning, formatGithubReport, formatHtmlReport, formatJsonReport, formatMarkdownReport, formatSarifReport, hasFailureAtOrAbove, isClassicScriptType, isPenalized, isPlainObject, isTopFragment, lineOf, noColorPalette, parseComponentFacts, parseSvelte, performanceFontPreloadCrossorigin, performanceHeavyImport, performanceIframeLoading, performanceImageDimensions, performanceImageLoadingHint, performanceLcpImage, performanceLoadWaterfall, performanceMinifyDisabled, performanceNamespaceImport, performancePreconnect, performancePreloadMissingAs, performanceRenderBlockingScript, performanceResponsiveImage, performanceSequentialAwaits, performanceStateRaw, renderAppShell, resolveKitAliases, resolveKitPathsBase, resolveLandmark, resolveRepoLocalPath, resolveRuleOptions, runAnalysis, runRules, safeHref, scoreColor, securityHandlerStateWrite, securityJavascriptUrl, securityRawHtml, securityServerModuleState, securitySharedStateImport, selectRules, seoCanonicalUrl, seoCharset, seoDescriptionLength, seoDescriptionPresence, seoDuplicateDescription, seoDuplicateTitle, seoHeadingLevelSkip, seoHreflang, seoHtmlLang, seoImageAlt, seoIndexability, seoJsonLd, seoJsonLdDateFormat, seoJsonLdDeprecatedType, seoJsonLdPlaceholder, seoJsonLdRelativeUrl, seoJsonLdRequiredProps, seoJsonLdValidity, seoOgDescription, seoOgImage, seoOgTitle, seoOgUrl, seoRobotsTxt, seoSingleH1, seoSitemapInRobots, seoSitemapXml, seoSsrDisabled, seoTitleLength, seoTitlePresence, seoTwitterCard, seoViewport, settingSeverity, shouldSkipRangeCheck, skippedFileWarnings, splitTokens, stripTextDirective, summarize, terminalSafe, textFromNodes, unknownDirectiveIds, validateRuleSetting, valueFromNodes, withFailedRulesOff, withReadLimit };
@@ -1010,6 +1010,8 @@ declare function resolveRuleOptions(ruleId: string, spec: RuleOptionsSpec | unde
1010
1010
  route?: string;
1011
1011
  file?: string;
1012
1012
  }, compiled?: CompiledOverride[]): RuleOptions;
1013
+ /** Whether `value` is a plain object (not null, not an array) — usable with Object.keys/entries. */
1014
+ declare function isPlainObject(value: unknown): value is Record<string, unknown>;
1013
1015
  /**
1014
1016
  * Whether `validateRuleOptions` should skip the min/max cross-check for
1015
1017
  * `overrides[selfIndex].rules[key]` — the whole decision, so the CLI's
@@ -1147,7 +1149,12 @@ interface ScoreResult {
1147
1149
  }
1148
1150
  interface ScoreOptions {
1149
1151
  applyCriticalCap?: boolean;
1150
- /** The rules that ran. Defaults to the selected registry; supplied by tests and custom rule sets. */
1152
+ /**
1153
+ * The rules that ran. Defaults to the selected registry; supplied by tests and custom rule sets.
1154
+ * Treated as immutable for as long as the same `config` object is in use: the registry projection
1155
+ * is cached by the identity of this array and of `config`, so mutate neither in place — pass a
1156
+ * new array or a new config instead.
1157
+ */
1151
1158
  rules?: readonly Rule[];
1152
1159
  }
1153
1160
  /** Compute the headline score and its breakdown (design §12). */
@@ -1247,4 +1254,4 @@ declare function formatJsonReport(results: Result[], config: Config, meta: {
1247
1254
  version: string;
1248
1255
  }, ruleIds?: readonly string[], examined?: Record<string, Record<string, number>>, skipped?: JsonReport['skipped']): string;
1249
1256
  //#endregion
1250
- export { Summary as $, ASIDE_DEMOTING_TAGS as A, collectComponentFacts as At, resolveLandmark as B, selectRules as C, defineConfig as Ct, A11yOccurrenceInfo as D, OrphanEffectFact as Dt, KitModuleFacts as E, EffectFact as Et, ResolvedA11y as F, ImageInfo as G, stripTextDirective as H, SECTIONING_TAGS as I, ResolvedHead as J, ResolvedImages as K, decodeFragmentId as L, IDREF_ATTRS as M, Runtime as Mt, LandmarkInput as N, withReadLimit as Nt, A11ySkipCause as O, SourceSpan as Ot, NAMING_ATTRS as P, Classification as Q, foldOccurrences as R, formatFailedRuleWarning as S, defaultProject as St, withFailedRulesOff as T, EachBlockFact as Tt, HeadingInfo as U, splitTokens as V, ResolvedHeadings as W, formatMarkdownReport as X, isClassicScriptType as Y, formatGithubReport as Z, resolveRuleOptions as _, Scope as _t, HealthResult as a, Category as at, CompiledOverride as b, Value as bt, ScoreResult as c, Fix as ct, Rule as d, Project as dt, classify as et, RuleContext as f, Result as ft, RuleOptionsSpec as g, RuleSettingObject as gt, RuleOptionSpec as h, RuleSetting as ht, formatJsonReport as i, CATEGORIES as it, BranchStep as j, skippedFileWarnings as jt, ANCESTRY_DEPENDENT_TAGS as k, SuppressionDirective as kt, computeHealth as l, KitAlias as lt, isPenalized as m, RuleOverride as mt, RuleEvidence as n, hasFailureAtOrAbove as nt, ScoreModel as o, Config as ot, docsUrlFor as p, RuleOptions as pt, HeadTag as q, buildJsonReport as r, summarize as rt, ScoreOptions as s, Detection as st, JsonReport as t, effectiveSeverity as tt, computeScore as u, Presence as ut, shouldSkipRangeCheck as v, Severity as vt, settingSeverity as w, ComponentFacts as wt, compileOverrides as x, defaultConfig as xt, validateRuleSetting as y, TreatDynamicAs as yt, isTopFragment as z };
1257
+ export { Classification as $, ANCESTRY_DEPENDENT_TAGS as A, SuppressionDirective as At, isTopFragment as B, formatFailedRuleWarning as C, defaultProject as Ct, KitModuleFacts as D, EffectFact as Dt, withFailedRulesOff as E, EachBlockFact as Et, NAMING_ATTRS as F, ResolvedHeadings as G, splitTokens as H, ResolvedA11y as I, HeadTag as J, ImageInfo as K, SECTIONING_TAGS as L, BranchStep as M, skippedFileWarnings as Mt, IDREF_ATTRS as N, Runtime as Nt, A11yOccurrenceInfo as O, OrphanEffectFact as Ot, LandmarkInput as P, withReadLimit as Pt, formatGithubReport as Q, decodeFragmentId as R, compileOverrides as S, defaultConfig as St, settingSeverity as T, ComponentFacts as Tt, stripTextDirective as U, resolveLandmark as V, HeadingInfo as W, isClassicScriptType as X, ResolvedHead as Y, formatMarkdownReport as Z, isPlainObject as _, RuleSettingObject as _t, HealthResult as a, CATEGORIES as at, validateRuleSetting as b, TreatDynamicAs as bt, ScoreResult as c, Detection as ct, Rule as d, Presence as dt, Summary as et, RuleContext as f, Project as ft, RuleOptionsSpec as g, RuleSetting as gt, RuleOptionSpec as h, RuleOverride as ht, formatJsonReport as i, summarize as it, ASIDE_DEMOTING_TAGS as j, collectComponentFacts as jt, A11ySkipCause as k, SourceSpan as kt, computeHealth as l, Fix as lt, isPenalized as m, RuleOptions as mt, RuleEvidence as n, effectiveSeverity as nt, ScoreModel as o, Category as ot, docsUrlFor as p, Result as pt, ResolvedImages as q, buildJsonReport as r, hasFailureAtOrAbove as rt, ScoreOptions as s, Config as st, JsonReport as t, classify as tt, computeScore as u, KitAlias as ut, resolveRuleOptions as v, Scope as vt, selectRules as w, defineConfig as wt, CompiledOverride as x, Value as xt, shouldSkipRangeCheck as y, Severity as yt, foldOccurrences as z };
@@ -860,7 +860,7 @@ function listOption(options, key) {
860
860
  /** As `intOption`, for a `string-map` option. */
861
861
  function mapOption(options, key) {
862
862
  const v = options[key];
863
- return typeof v === "object" && v !== null && !Array.isArray(v) ? v : {};
863
+ return isPlainObject(v) ? v : {};
864
864
  }
865
865
  /**
866
866
  * Whether any config layer so much as mentions `ruleId` — its `rules` entry, or any `overrides`
@@ -901,7 +901,7 @@ function resolveRuleOptions(ruleId, spec, config, target, compiled) {
901
901
  for (const layer of layers) {
902
902
  if (!layer) continue;
903
903
  for (const [key, value] of Object.entries(layer)) {
904
- const s = spec[key];
904
+ const s = Object.hasOwn(spec, key) ? spec[key] : void 0;
905
905
  if (!s) continue;
906
906
  if (s.kind === "integer") out[key] = value;
907
907
  else if (s.kind === "string-list") out[key] = [...out[key], ...value];
@@ -943,7 +943,7 @@ function validateRuleOptions(ruleId, spec, options, baseline, skipRangeCheck) {
943
943
  const badKeys = /* @__PURE__ */ new Set();
944
944
  const isNonEmptyString = (v) => typeof v === "string" && v.length > 0;
945
945
  for (const [key, value] of Object.entries(options)) {
946
- const s = spec[key];
946
+ const s = Object.hasOwn(spec, key) ? spec[key] : void 0;
947
947
  if (!s) {
948
948
  errors.push(`${ruleId}: unknown option '${key}'. Known options: ${Object.keys(spec).join(", ")}.`);
949
949
  continue;
@@ -964,7 +964,7 @@ function validateRuleOptions(ruleId, spec, options, baseline, skipRangeCheck) {
964
964
  else if (s.pattern) {
965
965
  for (const v of value) if (!s.pattern.regex.test(v)) errors.push(`${ruleId}.${key}: '${v}' is not ${s.pattern.describe}.`);
966
966
  }
967
- } else if (typeof value !== "object" || value === null || Array.isArray(value) || !Object.values(value).every(isNonEmptyString)) errors.push(`${ruleId}.${key} must be an object of string → non-empty string.`);
967
+ } else if (!isPlainObject(value) || !Object.values(value).every(isNonEmptyString)) errors.push(`${ruleId}.${key} must be an object of string → non-empty string.`);
968
968
  }
969
969
  const minSpec = spec.min;
970
970
  const maxSpec = spec.max;
@@ -1805,7 +1805,7 @@ const seoJsonLdRequiredProps = jsonldRule({
1805
1805
  problem: (nodes) => {
1806
1806
  let hasKnownType = false;
1807
1807
  for (const node of nodes) for (const t of typeOf(node)) {
1808
- const required = REQUIRED_PROPS[t];
1808
+ const required = Object.hasOwn(REQUIRED_PROPS, t) ? REQUIRED_PROPS[t] : void 0;
1809
1809
  if (!required) continue;
1810
1810
  hasKnownType = true;
1811
1811
  const missing = missingRequiredProps(node, required);
@@ -5435,17 +5435,18 @@ const architectureReservedNamePlacement = {
5435
5435
  const inCapUnits = Object.hasOwn(capUnits, name);
5436
5436
  const inAnyUnits = Object.hasOwn(anyUnits, name);
5437
5437
  if (!inPlacements && !inCapUnits && !inAnyUnits) continue;
5438
+ const declaredValue = (map, present) => present ? map[name] : void 0;
5438
5439
  const emptyValue = (present, value) => present && globsOf(value ?? "").length === 0;
5439
- if (emptyValue(inPlacements, placements[name]) || emptyValue(inCapUnits, capUnits[name]) || emptyValue(inAnyUnits, anyUnits[name])) continue;
5440
+ if (emptyValue(inPlacements, declaredValue(placements, inPlacements)) || emptyValue(inCapUnits, declaredValue(capUnits, inCapUnits)) || emptyValue(inAnyUnits, declaredValue(anyUnits, inAnyUnits))) continue;
5440
5441
  const excluded = compile(listOption(o, "exclude"));
5441
5442
  const parent = parentOf(dir);
5442
5443
  if (parent === void 0) continue;
5443
5444
  if (isExcluded(dir, ancestorDirs(dir), excluded)) continue;
5444
5445
  const judged = /* @__PURE__ */ new Set();
5445
5446
  const resolvedValues = [
5446
- ["placements", placements[name]],
5447
- ["capitalisedUnitPlacements", capUnits[name]],
5448
- ["anyCaseUnitPlacements", anyUnits[name]]
5447
+ ["placements", declaredValue(placements, inPlacements)],
5448
+ ["capitalisedUnitPlacements", declaredValue(capUnits, inCapUnits)],
5449
+ ["anyCaseUnitPlacements", declaredValue(anyUnits, inAnyUnits)]
5449
5450
  ];
5450
5451
  for (const [map, value] of resolvedValues) {
5451
5452
  if (value === void 0) continue;
@@ -5460,9 +5461,9 @@ const architectureReservedNamePlacement = {
5460
5461
  for (const glob of matched) usedAlternatives.add(label(map, name, glob));
5461
5462
  return true;
5462
5463
  };
5463
- const byPlacement = record("placements", placements[name], true);
5464
- const byCapUnit = record("capitalisedUnitPlacements", capUnits[name], isUnitDir(parent, filesIn));
5465
- const byAnyUnit = record("anyCaseUnitPlacements", anyUnits[name], isAnyCaseUnitDir(parent, filesIn));
5464
+ const byPlacement = record("placements", declaredValue(placements, inPlacements), true);
5465
+ const byCapUnit = record("capitalisedUnitPlacements", declaredValue(capUnits, inCapUnits), isUnitDir(parent, filesIn));
5466
+ const byAnyUnit = record("anyCaseUnitPlacements", declaredValue(anyUnits, inAnyUnits), isAnyCaseUnitDir(parent, filesIn));
5466
5467
  if (byPlacement || byCapUnit || byAnyUnit) continue;
5467
5468
  const at = reportAt(dir, files);
5468
5469
  if (at === void 0) continue;
@@ -7910,13 +7911,26 @@ const CRITICAL_CAP = 79;
7910
7911
  function clamp(n) {
7911
7912
  return Math.max(0, Math.min(100, n));
7912
7913
  }
7914
+ const projections = /* @__PURE__ */ new WeakMap();
7915
+ function projectRegistry(config, rulesList) {
7916
+ let byRules = projections.get(config);
7917
+ if (!byRules) projections.set(config, byRules = /* @__PURE__ */ new WeakMap());
7918
+ let projection = byRules.get(rulesList);
7919
+ if (!projection) {
7920
+ const rules = selectRules([...rulesList], config);
7921
+ projection = {
7922
+ inventory: buildInventory(config, rules),
7923
+ pairOf: ruleScopes(rules)
7924
+ };
7925
+ byRules.set(rulesList, projection);
7926
+ }
7927
+ return projection;
7928
+ }
7913
7929
  /** Compute the headline score and its breakdown (design §12). */
7914
7930
  function computeScore(results, config, options = {}) {
7915
7931
  const routeResults = results.filter((r) => r.route !== void 0);
7916
7932
  const projectResults = results.filter((r) => r.route === void 0);
7917
- const rules = selectRules([...options.rules ?? allRules], config);
7918
- const inventory = buildInventory(config, rules);
7919
- const pairOf = ruleScopes(rules);
7933
+ const { inventory, pairOf } = projectRegistry(config, options.rules ?? allRules);
7920
7934
  let anyCritical = false;
7921
7935
  const observed = /* @__PURE__ */ new Map();
7922
7936
  const ruleMax = /* @__PURE__ */ new Map();
@@ -8240,4 +8254,4 @@ function formatMarkdownReport(results, config, meta) {
8240
8254
  return lines.join("\n");
8241
8255
  }
8242
8256
  //#endregion
8243
- export { SECTIONING_TAGS as $, settingSeverity as $n, valueFromNodes as $t, a11yAbbrTitle as A, seoDescriptionLength as An, collectDerivedGuardBindings as At, a11yUseList as B, seoOgUrl as Bn, unwrapTs as Bt, a11yDisallowedElement as C, seoHeadingLevelSkip as Cn, CATEGORIES as Cr, parseKitModuleFacts as Ct, a11yDeprecatedElement as D, seoHreflang as Dn, addBoundNames as Dt, a11yDeprecatedAttr as E, seoSingleH1 as En, defineConfig as Er, WALK_IGNORED_KEYS as Et, isInteractiveContainer as F, seoJsonLdRelativeUrl as Fn, matchLifecycleCall as Ft, a11yInvalidAriaValue as G, resolveRuleOptions as Gn, attrText as Gt, a11yAccessibleName as H, seoTwitterCard as Hn, walkEvalScope as Ht, isInteractiveElement as I, seoJsonLdDeprecatedType as In, parseModuleProgram as It, a11yInvalidRole as J, applyOverrides as Jn, attrValueOf as Jt, a11yRequiredAriaProps as K, shouldSkipRangeCheck as Kn, attrTextOf as Kt, literalTabindexValue as L, seoJsonLdValidity as Ln, rootObjectName as Lt, a11yNoAutofocus as M, seoJsonLdRequiredProps as Mn, collectProgramBindings as Mt, a11yNoAccesskey as N, seoJsonLdPlaceholder as Nn, collectSuppressions as Nt, HTML_SPEC as O, seoImageAlt as On, collectBrowserGlobalRefs as Ot, a11yPositiveTabindex as P, seoJsonLdDateFormat as Pn, collectSvelteLifecycleImports as Pt, NAMING_ATTRS$1 as Q, selectRules as Qn, textFromNodes as Qt, a11yRequireDatetime as R, seoSitemapInRobots as Rn, scopeIntroducedNames as Rt, a11yPermittedContents as S, seoSsrDisabled as Sn, isPenalized as Sr, parseInMemoryExports as St, a11yDisallowedAriaProps as T, seoDuplicateTitle as Tn, defaultProject as Tr, isRootRelativePath as Tt, a11yAriaHiddenFocus as U, seoIndexability as Un, walkScoped as Ut, a11yLabelHasControl as V, seoOgDescription as Vn, walkEstree as Vt, a11yInteractiveNesting as W, performancePreconnect as Wn, CHILD_NODE_KEYS as Wt, ASIDE_DEMOTING_TAGS as X, compileOverrides as Xn, lineOf as Xt, ANCESTRY_DEPENDENT_TAGS as Y, applyRuleSeverities as Yn, findAttr as Yt, IDREF_ATTRS as Z, formatFailedRuleWarning as Zn, parseSvelte as Zt, a11yIdDuplication as _, correctnessUnmutatedState as _n, classify as _r, architectureReservedDirectoryNames as _t, formatJsonReport as a, securityJavascriptUrl as an, performanceResponsiveImage as ar, stripTextDirective as at, a11yDoctype as b, correctnessEachIndexKey as bn, summarize as br, architecturePrivateScopeImport as bt, formatGithubReport as c, correctnessServerBrowserGlobal as cn, seoHtmlLang as cr, performanceStateRaw as ct, ruleMetaById as d, correctnessOrphanEffect as dn, seoJsonLd as dr, performanceMinifyDisabled as dt, architecturePropCount as en, withFailedRulesOff as er, decodeFragmentId as et, severityToSarifLevel as f, correctnessAutoplayMuted as fn, seoOgTitle as fr, performanceNamespaceImport as ft, a11yNoMissingIdRef as g, correctnessPropMutation as gn, seoTitlePresence as gr, architectureReservedNamePlacement as gt, a11yUnverifiedIdRef as h, correctnessStalePropDerivation as hn, seoDescriptionPresence as hr, architectureRouteComponentImport as ht, buildJsonReport as i, securityHandlerStateWrite as in, performancePreloadMissingAs as ir, splitTokens as it, a11yNoDuplicateDt as j, seoTitleLength as jn, collectNamedImportAliases as jt, a11yPatternTitle as k, seoCharset as kn, collectBrowserGuardImports as kt, SEVERITY_RANK as l, correctnessBasePathNavigation as ln, seoSitemapXml as lr, performanceSequentialAwaits as lt, explainRule as m, correctnessNonreactiveBuiltinState as mn, seoCanonicalUrl as mr, architectureDocLinkTarget as mt, mdEscape as n, securitySharedStateImport as nn, performanceLcpImage as nr, isTopFragment as nt, computeHealth as o, securityRawHtml as on, performanceImageLoadingHint as or, resolveRole as ot, allRules as p, correctnessCheckableBindValue as pn, seoOgImage as pr, performanceHeavyImport as pt, a11yUnknownAriaAttribute as q, validateRuleSetting as qn, attrValue as qt, terminalSafe as r, securityServerModuleState as rn, performanceFontPreloadCrossorigin as rr, resolveLandmark as rt, computeScore as s, correctnessInstanceBrowserGlobal as sn, performanceImageDimensions as sr, performanceIframeLoading as st, formatMarkdownReport as t, architectureComponentSize as tn, performanceRenderBlockingScript as tr, foldOccurrences as tt, messageText as u, correctnessOrphanLifecycle as un, seoRobotsTxt as ur, performanceLoadWaterfall as ut, a11yTopLevelLandmark as v, correctnessEffectAsOnMount as vn, effectiveSeverity as vr, architectureDirectoryNaming as vt, a11yDeprecatedAria as w, seoDuplicateDescription as wn, defaultConfig as wr, resolveRepoLocalPath as wt, a11yRequiredElement as x, correctnessEachKey as xn, docsUrlFor as xr, collectTopLevelBindings as xt, a11yDuplicateLandmark as y, correctnessEffectAsDerived as yn, hasFailureAtOrAbove as yr, architectureUnitEntryFile as yt, a11yPlaceholderLabelOption as z, seoViewport as zn, unwrapExport as zt };
8257
+ export { SECTIONING_TAGS as $, selectRules as $n, valueFromNodes as $t, a11yAbbrTitle as A, seoDescriptionLength as An, collectDerivedGuardBindings as At, a11yUseList as B, seoOgUrl as Bn, unwrapTs as Bt, a11yDisallowedElement as C, seoHeadingLevelSkip as Cn, isPenalized as Cr, parseKitModuleFacts as Ct, a11yDeprecatedElement as D, seoHreflang as Dn, defineConfig as Dr, addBoundNames as Dt, a11yDeprecatedAttr as E, seoSingleH1 as En, defaultProject as Er, WALK_IGNORED_KEYS as Et, isInteractiveContainer as F, seoJsonLdRelativeUrl as Fn, matchLifecycleCall as Ft, a11yInvalidAriaValue as G, isPlainObject as Gn, attrText as Gt, a11yAccessibleName as H, seoTwitterCard as Hn, walkEvalScope as Ht, isInteractiveElement as I, seoJsonLdDeprecatedType as In, parseModuleProgram as It, a11yInvalidRole as J, validateRuleSetting as Jn, attrValueOf as Jt, a11yRequiredAriaProps as K, resolveRuleOptions as Kn, attrTextOf as Kt, literalTabindexValue as L, seoJsonLdValidity as Ln, rootObjectName as Lt, a11yNoAutofocus as M, seoJsonLdRequiredProps as Mn, collectProgramBindings as Mt, a11yNoAccesskey as N, seoJsonLdPlaceholder as Nn, collectSuppressions as Nt, HTML_SPEC as O, seoImageAlt as On, collectBrowserGlobalRefs as Ot, a11yPositiveTabindex as P, seoJsonLdDateFormat as Pn, collectSvelteLifecycleImports as Pt, NAMING_ATTRS$1 as Q, formatFailedRuleWarning as Qn, textFromNodes as Qt, a11yRequireDatetime as R, seoSitemapInRobots as Rn, scopeIntroducedNames as Rt, a11yPermittedContents as S, seoSsrDisabled as Sn, docsUrlFor as Sr, parseInMemoryExports as St, a11yDisallowedAriaProps as T, seoDuplicateTitle as Tn, defaultConfig as Tr, isRootRelativePath as Tt, a11yAriaHiddenFocus as U, seoIndexability as Un, walkScoped as Ut, a11yLabelHasControl as V, seoOgDescription as Vn, walkEstree as Vt, a11yInteractiveNesting as W, performancePreconnect as Wn, CHILD_NODE_KEYS as Wt, ASIDE_DEMOTING_TAGS as X, applyRuleSeverities as Xn, lineOf as Xt, ANCESTRY_DEPENDENT_TAGS as Y, applyOverrides as Yn, findAttr as Yt, IDREF_ATTRS as Z, compileOverrides as Zn, parseSvelte as Zt, a11yIdDuplication as _, correctnessUnmutatedState as _n, seoTitlePresence as _r, architectureReservedDirectoryNames as _t, formatJsonReport as a, securityJavascriptUrl as an, performancePreloadMissingAs as ar, stripTextDirective as at, a11yDoctype as b, correctnessEachIndexKey as bn, hasFailureAtOrAbove as br, architecturePrivateScopeImport as bt, formatGithubReport as c, correctnessServerBrowserGlobal as cn, performanceImageDimensions as cr, performanceStateRaw as ct, ruleMetaById as d, correctnessOrphanEffect as dn, seoRobotsTxt as dr, performanceMinifyDisabled as dt, architecturePropCount as en, settingSeverity as er, decodeFragmentId as et, severityToSarifLevel as f, correctnessAutoplayMuted as fn, seoJsonLd as fr, performanceNamespaceImport as ft, a11yNoMissingIdRef as g, correctnessPropMutation as gn, seoDescriptionPresence as gr, architectureReservedNamePlacement as gt, a11yUnverifiedIdRef as h, correctnessStalePropDerivation as hn, seoCanonicalUrl as hr, architectureRouteComponentImport as ht, buildJsonReport as i, securityHandlerStateWrite as in, performanceFontPreloadCrossorigin as ir, splitTokens as it, a11yNoDuplicateDt as j, seoTitleLength as jn, collectNamedImportAliases as jt, a11yPatternTitle as k, seoCharset as kn, collectBrowserGuardImports as kt, SEVERITY_RANK as l, correctnessBasePathNavigation as ln, seoHtmlLang as lr, performanceSequentialAwaits as lt, explainRule as m, correctnessNonreactiveBuiltinState as mn, seoOgImage as mr, architectureDocLinkTarget as mt, mdEscape as n, securitySharedStateImport as nn, performanceRenderBlockingScript as nr, isTopFragment as nt, computeHealth as o, securityRawHtml as on, performanceResponsiveImage as or, resolveRole as ot, allRules as p, correctnessCheckableBindValue as pn, seoOgTitle as pr, performanceHeavyImport as pt, a11yUnknownAriaAttribute as q, shouldSkipRangeCheck as qn, attrValue as qt, terminalSafe as r, securityServerModuleState as rn, performanceLcpImage as rr, resolveLandmark as rt, computeScore as s, correctnessInstanceBrowserGlobal as sn, performanceImageLoadingHint as sr, performanceIframeLoading as st, formatMarkdownReport as t, architectureComponentSize as tn, withFailedRulesOff as tr, foldOccurrences as tt, messageText as u, correctnessOrphanLifecycle as un, seoSitemapXml as ur, performanceLoadWaterfall as ut, a11yTopLevelLandmark as v, correctnessEffectAsOnMount as vn, classify as vr, architectureDirectoryNaming as vt, a11yDeprecatedAria as w, seoDuplicateDescription as wn, CATEGORIES as wr, resolveRepoLocalPath as wt, a11yRequiredElement as x, correctnessEachKey as xn, summarize as xr, collectTopLevelBindings as xt, a11yDuplicateLandmark as y, correctnessEffectAsDerived as yn, effectiveSeverity as yr, architectureUnitEntryFile as yt, a11yPlaceholderLabelOption as z, seoViewport as zn, unwrapExport as zt };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@svelte-vitals/core",
3
- "version": "0.51.1",
3
+ "version": "0.54.5",
4
4
  "description": "Shared, runtime-agnostic core for svelte-vitals (types, rule engine, scorer, reporter).",
5
5
  "type": "module",
6
6
  "license": "MIT",