@svelte-vitals/core 0.55.0 → 0.55.1

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 formatMarkdownReport, Ct as Value, Et as defineConfig, St as TreatDynamicAs, _t as RuleOverride, at as hasFailureAtOrAbove, ct as Category, dt as Fix, et as formatGithubReport, gt as RuleOptions, ht as Result, lt as Config, n as RuleEvidence, nt as Summary, o as ScoreModel, ot as summarize, pt as Presence, st as CATEGORIES, t as JsonReport, ut as Detection, vt as RuleSetting, xt as Severity, yt as RuleSettingObject } from "./json-DcTYXhKc.js";
1
+ import { $ as formatMarkdownReport, Ct as Value, Et as defineConfig, St as TreatDynamicAs, _t as RuleOverride, at as hasFailureAtOrAbove, ct as Category, dt as Fix, et as formatGithubReport, gt as RuleOptions, ht as Result, lt as Config, n as RuleEvidence, nt as Summary, o as ScoreModel, ot as summarize, pt as Presence, st as CATEGORIES, t as JsonReport, ut as Detection, vt as RuleSetting, xt as Severity, yt as RuleSettingObject } from "./json-TIGneC1p.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 summarize, Er as CATEGORIES, Sr as hasFailureAtOrAbove, c as formatGithubReport, kr as defineConfig, t as formatMarkdownReport } from "./markdown-CgcwmqWX.js";
1
+ import { Cr as summarize, Er as CATEGORIES, Sr as hasFailureAtOrAbove, c as formatGithubReport, kr as defineConfig, t as formatMarkdownReport } from "./markdown-BOH3FPQl.js";
2
2
  export { CATEGORIES, defineConfig, formatGithubReport, formatMarkdownReport, hasFailureAtOrAbove, summarize };
@@ -1,4 +1,4 @@
1
- import { $ as formatMarkdownReport, A as A11yOccurrenceInfo, At as OrphanEffectFact, B as decodeFragmentId, C as compileOverrides, Ct as Value, D as withFailedRulesOff, Dt as ComponentFacts, E as settingSeverity, F as IDREF_ATTRS, Ft as skippedFileWarnings, G as stripTextDirective, H as isTopFragment, I as LandmarkInput, It as Runtime, J as ImageInfo, K as HeadingInfo, L as NAMING_ATTRS, Lt as withReadLimit, M as ANCESTRY_DEPENDENT_TAGS, Mt as SuppressionDirective, N as ASIDE_DEMOTING_TAGS, Nt as collectComponentFacts, O as withIndexableOff, Ot as EachBlockFact, P as BranchStep, Pt as emptyComponentFacts, Q as isClassicScriptType, R as ResolvedA11y, S as SEARCH_RESULT_RULES, T as selectRules, Tt as defaultProject, U as resolveLandmark, V as foldOccurrences, W as splitTokens, X as HeadTag, Y as ResolvedImages, Z as ResolvedHead, _ as isPlainObject, a as HealthResult, at as hasFailureAtOrAbove, b as validateRuleSetting, bt as Scope, c as ScoreResult, ct as Category, d as Rule, dt as Fix, et as formatGithubReport, f as RuleContext, ft as KitAlias, g as RuleOptionsSpec, h as RuleOptionSpec, ht as Result, i as formatJsonReport, it as effectiveSeverity, j as A11ySkipCause, jt as SourceSpan, k as KitModuleFacts, kt as EffectFact, l as computeHealth, lt as Config, m as isPenalized, mt as Project, ot as summarize, p as docsUrlFor, q as ResolvedHeadings, r as buildJsonReport, rt as classify, s as ScoreOptions, t as JsonReport, tt as Classification, u as computeScore, v as resolveRuleOptions, w as formatFailedRuleWarning, wt as defaultConfig, x as CompiledOverride, xt as Severity, y as shouldSkipRangeCheck, z as SECTIONING_TAGS } from "./json-DcTYXhKc.js";
1
+ import { $ as formatMarkdownReport, A as A11yOccurrenceInfo, At as OrphanEffectFact, B as decodeFragmentId, C as compileOverrides, Ct as Value, D as withFailedRulesOff, Dt as ComponentFacts, E as settingSeverity, F as IDREF_ATTRS, Ft as skippedFileWarnings, G as stripTextDirective, H as isTopFragment, I as LandmarkInput, It as Runtime, J as ImageInfo, K as HeadingInfo, L as NAMING_ATTRS, Lt as withReadLimit, M as ANCESTRY_DEPENDENT_TAGS, Mt as SuppressionDirective, N as ASIDE_DEMOTING_TAGS, Nt as collectComponentFacts, O as withIndexableOff, Ot as EachBlockFact, P as BranchStep, Pt as emptyComponentFacts, Q as isClassicScriptType, R as ResolvedA11y, S as SEARCH_RESULT_RULES, T as selectRules, Tt as defaultProject, U as resolveLandmark, V as foldOccurrences, W as splitTokens, X as HeadTag, Y as ResolvedImages, Z as ResolvedHead, _ as isPlainObject, a as HealthResult, at as hasFailureAtOrAbove, b as validateRuleSetting, bt as Scope, c as ScoreResult, ct as Category, d as Rule, dt as Fix, et as formatGithubReport, f as RuleContext, ft as KitAlias, g as RuleOptionsSpec, h as RuleOptionSpec, ht as Result, i as formatJsonReport, it as effectiveSeverity, j as A11ySkipCause, jt as SourceSpan, k as KitModuleFacts, kt as EffectFact, l as computeHealth, lt as Config, m as isPenalized, mt as Project, ot as summarize, p as docsUrlFor, q as ResolvedHeadings, r as buildJsonReport, rt as classify, s as ScoreOptions, t as JsonReport, tt as Classification, u as computeScore, v as resolveRuleOptions, w as formatFailedRuleWarning, wt as defaultConfig, x as CompiledOverride, xt as Severity, y as shouldSkipRangeCheck, z as SECTIONING_TAGS } from "./json-TIGneC1p.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. */
package/dist/internal.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as SECTIONING_TAGS, $n as formatFailedRuleWarning, $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 summarize, Ct as parseKitModuleFacts, D as a11yDeprecatedElement, Dn as seoHreflang, Dr as defaultConfig, 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 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, Or as defaultProject, Ot as collectBrowserGlobalRefs, P as a11yPositiveTabindex, Pn as seoJsonLdDateFormat, Pt as collectSvelteLifecycleImports, Q as NAMING_ATTRS, Qn as compileOverrides, Qt as textFromNodes, R as a11yRequireDatetime, Rn as seoSitemapInRobots, Rt as scopeIntroducedNames, S as a11yPermittedContents, Sn as seoSsrDisabled, Sr as hasFailureAtOrAbove, St as parseInMemoryExports, T as a11yDisallowedAriaProps, Tn as seoDuplicateTitle, Tr as isPenalized, 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 applyOverrides, Xt as lineOf, Y as ANCESTRY_DEPENDENT_TAGS, Yn as SEARCH_RESULT_RULES, Yt as findAttr, Z as IDREF_ATTRS, Zn as applyRuleSeverities, Zt as parseSvelte, _ as a11yIdDuplication, _n as correctnessUnmutatedState, _r as seoCanonicalUrl, _t as architectureReservedDirectoryNames, a as formatJsonReport, an as securityJavascriptUrl, ar as performanceLcpImage, at as stripTextDirective, b as a11yDoctype, bn as correctnessEachIndexKey, br as classify, bt as architecturePrivateScopeImport, c as formatGithubReport, cn as correctnessServerBrowserGlobal, cr as performanceResponsiveImage, ct as performanceStateRaw, d as ruleMetaById, dn as correctnessOrphanEffect, dr as seoHtmlLang, dt as performanceMinifyDisabled, en as architecturePropCount, er as selectRules, et as decodeFragmentId, f as severityToSarifLevel, fn as correctnessAutoplayMuted, fr as seoSitemapXml, ft as performanceNamespaceImport, g as a11yNoMissingIdRef, gn as correctnessPropMutation, gr as seoOgImage, gt as architectureReservedNamePlacement, h as a11yUnverifiedIdRef, hn as correctnessStalePropDerivation, hr as seoOgTitle, ht as architectureRouteComponentImport, i as buildJsonReport, in as securityHandlerStateWrite, ir as performanceRenderBlockingScript, 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 performanceImageLoadingHint, lt as performanceSequentialAwaits, m as explainRule, mn as correctnessNonreactiveBuiltinState, mr as seoJsonLd, mt as architectureDocLinkTarget, n as mdEscape, nn as securitySharedStateImport, nr as withFailedRulesOff, nt as isTopFragment, o as computeHealth, on as securityRawHtml, or as performanceFontPreloadCrossorigin, ot as resolveRole, p as allRules, pn as correctnessCheckableBindValue, pr as seoRobotsTxt, pt as performanceHeavyImport, q as a11yUnknownAriaAttribute, qn as shouldSkipRangeCheck, qt as attrValue, r as terminalSafe, rn as securityServerModuleState, rr as withIndexableOff, rt as resolveLandmark, s as computeScore, sn as correctnessInstanceBrowserGlobal, sr as performancePreloadMissingAs, st as performanceIframeLoading, t as formatMarkdownReport, tn as architectureComponentSize, tr as settingSeverity, tt as foldOccurrences, u as messageText, un as correctnessOrphanLifecycle, ur as performanceImageDimensions, ut as performanceLoadWaterfall, v as a11yTopLevelLandmark, vn as correctnessEffectAsOnMount, vr as seoDescriptionPresence, vt as architectureDirectoryNaming, w as a11yDeprecatedAria, wn as seoDuplicateDescription, wr as docsUrlFor, wt as resolveRepoLocalPath, x as a11yRequiredElement, xn as correctnessEachKey, xr as effectiveSeverity, xt as collectTopLevelBindings, y as a11yDuplicateLandmark, yn as correctnessEffectAsDerived, yr as seoTitlePresence, yt as architectureUnitEntryFile, z as a11yPlaceholderLabelOption, zn as seoViewport, zt as unwrapExport } from "./markdown-CgcwmqWX.js";
1
+ import { $ as SECTIONING_TAGS, $n as formatFailedRuleWarning, $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 summarize, Ct as parseKitModuleFacts, D as a11yDeprecatedElement, Dn as seoHreflang, Dr as defaultConfig, 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 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, Or as defaultProject, Ot as collectBrowserGlobalRefs, P as a11yPositiveTabindex, Pn as seoJsonLdDateFormat, Pt as collectSvelteLifecycleImports, Q as NAMING_ATTRS, Qn as compileOverrides, Qt as textFromNodes, R as a11yRequireDatetime, Rn as seoSitemapInRobots, Rt as scopeIntroducedNames, S as a11yPermittedContents, Sn as seoSsrDisabled, Sr as hasFailureAtOrAbove, St as parseInMemoryExports, T as a11yDisallowedAriaProps, Tn as seoDuplicateTitle, Tr as isPenalized, 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 applyOverrides, Xt as lineOf, Y as ANCESTRY_DEPENDENT_TAGS, Yn as SEARCH_RESULT_RULES, Yt as findAttr, Z as IDREF_ATTRS, Zn as applyRuleSeverities, Zt as parseSvelte, _ as a11yIdDuplication, _n as correctnessUnmutatedState, _r as seoCanonicalUrl, _t as architectureReservedDirectoryNames, a as formatJsonReport, an as securityJavascriptUrl, ar as performanceLcpImage, at as stripTextDirective, b as a11yDoctype, bn as correctnessEachIndexKey, br as classify, bt as architecturePrivateScopeImport, c as formatGithubReport, cn as correctnessServerBrowserGlobal, cr as performanceResponsiveImage, ct as performanceStateRaw, d as ruleMetaById, dn as correctnessOrphanEffect, dr as seoHtmlLang, dt as performanceMinifyDisabled, en as architecturePropCount, er as selectRules, et as decodeFragmentId, f as severityToSarifLevel, fn as correctnessAutoplayMuted, fr as seoSitemapXml, ft as performanceNamespaceImport, g as a11yNoMissingIdRef, gn as correctnessPropMutation, gr as seoOgImage, gt as architectureReservedNamePlacement, h as a11yUnverifiedIdRef, hn as correctnessStalePropDerivation, hr as seoOgTitle, ht as architectureRouteComponentImport, i as buildJsonReport, in as securityHandlerStateWrite, ir as performanceRenderBlockingScript, 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 performanceImageLoadingHint, lt as performanceSequentialAwaits, m as explainRule, mn as correctnessNonreactiveBuiltinState, mr as seoJsonLd, mt as architectureDocLinkTarget, n as mdEscape, nn as securitySharedStateImport, nr as withFailedRulesOff, nt as isTopFragment, o as computeHealth, on as securityRawHtml, or as performanceFontPreloadCrossorigin, ot as resolveRole, p as allRules, pn as correctnessCheckableBindValue, pr as seoRobotsTxt, pt as performanceHeavyImport, q as a11yUnknownAriaAttribute, qn as shouldSkipRangeCheck, qt as attrValue, r as terminalSafe, rn as securityServerModuleState, rr as withIndexableOff, rt as resolveLandmark, s as computeScore, sn as correctnessInstanceBrowserGlobal, sr as performancePreloadMissingAs, st as performanceIframeLoading, t as formatMarkdownReport, tn as architectureComponentSize, tr as settingSeverity, tt as foldOccurrences, u as messageText, un as correctnessOrphanLifecycle, ur as performanceImageDimensions, ut as performanceLoadWaterfall, v as a11yTopLevelLandmark, vn as correctnessEffectAsOnMount, vr as seoDescriptionPresence, vt as architectureDirectoryNaming, w as a11yDeprecatedAria, wn as seoDuplicateDescription, wr as docsUrlFor, wt as resolveRepoLocalPath, x as a11yRequiredElement, xn as correctnessEachKey, xr as effectiveSeverity, xt as collectTopLevelBindings, y as a11yDuplicateLandmark, yn as correctnessEffectAsDerived, yr as seoTitlePresence, yt as architectureUnitEntryFile, z as a11yPlaceholderLabelOption, zn as seoViewport, zt as unwrapExport } from "./markdown-BOH3FPQl.js";
2
2
  //#region src/head.ts
3
3
  const JS_MIME_TYPES = /* @__PURE__ */ new Set([
4
4
  "application/ecmascript",
@@ -969,12 +969,12 @@ declare function selectRules(rules: Rule[], config: Config): Rule[];
969
969
  declare function withFailedRulesOff(config: Config, failedRuleIds: readonly string[]): Config;
970
970
  /**
971
971
  * The rules that only pay off for a page that appears in a search result, turned off by
972
- * `seo: { indexable: false }`. `seo/single-h1` and `seo/robots-txt` are deliberately absent:
973
- * a primary heading is document structure either way, and a `noindex` meta is only read after
974
- * the page is crawled, so robots.txt still does real work. Design:
972
+ * `seo: { indexable: false }` — plus `seo/indexability`, whose "is this noindex intentional?"
973
+ * the switch answers. Every other SEO rule is deliberately absent, and a test fails on an SEO
974
+ * rule classified neither way. Design:
975
975
  * docs/superpowers/specs/2026-09-21-noindex-seo-rules-design.md.
976
976
  */
977
- declare const SEARCH_RESULT_RULES: readonly ["seo/canonical-url", "seo/og-title", "seo/og-description", "seo/og-image", "seo/og-url", "seo/twitter-card", "seo/json-ld", "seo/sitemap-xml", "seo/sitemap-in-robots", "seo/title-length", "seo/description-length"];
977
+ declare const SEARCH_RESULT_RULES: readonly ["seo/canonical-url", "seo/og-title", "seo/og-description", "seo/og-image", "seo/og-url", "seo/twitter-card", "seo/json-ld", "seo/sitemap-xml", "seo/sitemap-in-robots", "seo/title-length", "seo/description-length", "seo/description-presence", "seo/duplicate-title", "seo/duplicate-description", "seo/hreflang", "seo/ssr-disabled", "seo/indexability"];
978
978
  /**
979
979
  * Expand `seo: { indexable: false }` into the `'off'` entries a user writes by hand today, so
980
980
  * nothing downstream needs a second notion of "not counted". The caller's own map is spread
@@ -730,9 +730,9 @@ function withFailedRulesOff(config, failedRuleIds) {
730
730
  }
731
731
  /**
732
732
  * The rules that only pay off for a page that appears in a search result, turned off by
733
- * `seo: { indexable: false }`. `seo/single-h1` and `seo/robots-txt` are deliberately absent:
734
- * a primary heading is document structure either way, and a `noindex` meta is only read after
735
- * the page is crawled, so robots.txt still does real work. Design:
733
+ * `seo: { indexable: false }` — plus `seo/indexability`, whose "is this noindex intentional?"
734
+ * the switch answers. Every other SEO rule is deliberately absent, and a test fails on an SEO
735
+ * rule classified neither way. Design:
736
736
  * docs/superpowers/specs/2026-09-21-noindex-seo-rules-design.md.
737
737
  */
738
738
  const SEARCH_RESULT_RULES = [
@@ -746,7 +746,13 @@ const SEARCH_RESULT_RULES = [
746
746
  "seo/sitemap-xml",
747
747
  "seo/sitemap-in-robots",
748
748
  "seo/title-length",
749
- "seo/description-length"
749
+ "seo/description-length",
750
+ "seo/description-presence",
751
+ "seo/duplicate-title",
752
+ "seo/duplicate-description",
753
+ "seo/hreflang",
754
+ "seo/ssr-disabled",
755
+ "seo/indexability"
750
756
  ];
751
757
  /**
752
758
  * Expand `seo: { indexable: false }` into the `'off'` entries a user writes by hand today, so
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@svelte-vitals/core",
3
- "version": "0.55.0",
3
+ "version": "0.55.1",
4
4
  "description": "Shared, runtime-agnostic core for svelte-vitals (types, rule engine, scorer, reporter).",
5
5
  "type": "module",
6
6
  "license": "MIT",