@svelte-vitals/core 0.30.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +187 -8
- package/dist/index.js +760 -54
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,33 @@ interface Detection {
|
|
|
17
17
|
presence: Presence;
|
|
18
18
|
value: Value;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* One compiled SvelteKit alias entry, in the order Kit builds them (`get_config_aliases` in
|
|
22
|
+
* `@sveltejs/kit/src/exports/vite/utils.js`): `$lib` first, then `kit.alias` in declaration
|
|
23
|
+
* order. Resolution takes the FIRST matching entry, exactly as Vite's alias plugin does, so
|
|
24
|
+
* **position is precedence** — the list is never sorted and a longer `find` never wins on
|
|
25
|
+
* length alone.
|
|
26
|
+
*/
|
|
27
|
+
interface KitAlias {
|
|
28
|
+
/** The alias key, with any trailing `/*` removed. */
|
|
29
|
+
find: string;
|
|
30
|
+
/**
|
|
31
|
+
* The project-relative target: posixified, with any trailing `/*` and any trailing slashes
|
|
32
|
+
* removed. `null` when the config's value is not a string literal — such an entry still
|
|
33
|
+
* matches (holding its position and its mode) but resolves to undefined, so a specifier we
|
|
34
|
+
* cannot resolve stays unresolved instead of falling through to a later entry.
|
|
35
|
+
*/
|
|
36
|
+
replacement: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* How `find` matches a specifier, mirroring Kit's three compiled entry shapes:
|
|
39
|
+
* - `prefix` — `spec === find` or `spec.startsWith(find + '/')`; a plain key.
|
|
40
|
+
* - `contents` — `spec.startsWith(find + '/')` only; from a `key/*` key, which Kit
|
|
41
|
+
* documents as matching "the contents of a directory, not the directory itself".
|
|
42
|
+
* - `exact` — `spec === find` only; a plain key whose `key/*` form is ALSO declared, which
|
|
43
|
+
* is how Kit stops the plain key from swallowing the nested specifiers.
|
|
44
|
+
*/
|
|
45
|
+
match: 'prefix' | 'contents' | 'exact';
|
|
46
|
+
}
|
|
20
47
|
/** Project-wide facts precomputed by the runtime layer for project-scope rules (design §10). */
|
|
21
48
|
interface Project {
|
|
22
49
|
hasRobotsTxt: boolean;
|
|
@@ -47,6 +74,13 @@ interface Project {
|
|
|
47
74
|
value?: string;
|
|
48
75
|
file: string;
|
|
49
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* The project's compiled SvelteKit alias entries, in Kit's own order (`$lib` first), read from
|
|
79
|
+
* `svelte.config.{js,ts}`. Absent means no config was read — resolution then falls back to
|
|
80
|
+
* `$lib` → `src/lib`, which is what this analyzer assumed unconditionally before. A collected
|
|
81
|
+
* list is never empty: `$lib` is always prepended.
|
|
82
|
+
*/
|
|
83
|
+
kitAliases?: KitAlias[];
|
|
50
84
|
}
|
|
51
85
|
declare const defaultProject: Project;
|
|
52
86
|
/** A concrete, agent-actionable remediation for a finding (design §10, issue #18). */
|
|
@@ -152,7 +186,21 @@ interface Runtime {
|
|
|
152
186
|
readFile(path: string): Promise<string>;
|
|
153
187
|
/** Whether a path exists. */
|
|
154
188
|
exists(path: string): Promise<boolean>;
|
|
155
|
-
/**
|
|
189
|
+
/**
|
|
190
|
+
* Paths matching `pattern`, relative to `cwd`.
|
|
191
|
+
*
|
|
192
|
+
* **Dot files and dot directories are excluded**, and an adapter must keep it that way: the
|
|
193
|
+
* directory-shaped Architecture rules derive their directory set from these paths, and one of them
|
|
194
|
+
* enumerates a parent's children exhaustively, so a `.server/` appearing here would be reported as
|
|
195
|
+
* an undeclared name. Both shipped adapters pass `dot: false`.
|
|
196
|
+
*
|
|
197
|
+
* **Every returned path is a file, never a directory**, and an adapter must keep that true too:
|
|
198
|
+
* `architecture/reserved-directory-names`' unit test takes a directory's immediate children from
|
|
199
|
+
* this same inventory and asks whether one of them is a file named after the directory, so an
|
|
200
|
+
* adapter that let a directory through here would let a bare `Card/Card` satisfy that test as if it
|
|
201
|
+
* were an entry file. Both shipped adapters get this for free from their glob library's default,
|
|
202
|
+
* which returns files only unless asked to include directories.
|
|
203
|
+
*/
|
|
156
204
|
glob(pattern: string, cwd: string): Promise<string[]>;
|
|
157
205
|
/** Join path segments without depending on `node:path`. */
|
|
158
206
|
join(...parts: string[]): string;
|
|
@@ -363,10 +411,17 @@ interface ComponentFacts {
|
|
|
363
411
|
propCount: number;
|
|
364
412
|
/** Module specifiers of every `import` in the instance + module scripts (performance/heavy-import). */
|
|
365
413
|
imports: string[];
|
|
366
|
-
/**
|
|
414
|
+
/**
|
|
415
|
+
* Module specifiers of every `import`, each with its source line (performance/heavy-import,
|
|
416
|
+
* architecture/route-component-import). `type` marks a declaration that contributes **no runtime
|
|
417
|
+
* value binding** — either `import type …`, or one whose every specifier is inline-typed
|
|
418
|
+
* (`import { type A } from …`). A specifier-less side-effect import is not marked: it still loads
|
|
419
|
+
* the module. Optional, so existing external constructors of `ComponentFacts` are unaffected.
|
|
420
|
+
*/
|
|
367
421
|
importSpans: {
|
|
368
422
|
source: string;
|
|
369
423
|
line: number;
|
|
424
|
+
type?: true;
|
|
370
425
|
}[];
|
|
371
426
|
/** Value `import * as X from '<bare pkg>'` namespace imports (type-only excluded) — performance/namespace-import. */
|
|
372
427
|
namespaceImports: {
|
|
@@ -448,6 +503,21 @@ declare function emptyComponentFacts(file: string): ComponentFacts;
|
|
|
448
503
|
*/
|
|
449
504
|
declare function collectComponentFacts(rt: Runtime, cwd: string): Promise<ComponentFacts[]>;
|
|
450
505
|
|
|
506
|
+
/**
|
|
507
|
+
* Every file under `src/`, as project-relative paths, sorted. Paths only — nothing is
|
|
508
|
+
* read, so this is the cheaper of the two passes over `src/` (the component collector
|
|
509
|
+
* already walks the same tree and reads every `.svelte`).
|
|
510
|
+
*
|
|
511
|
+
* Directory-shaped rules derive their directory set from these paths' ancestor prefixes
|
|
512
|
+
* rather than globbing a second time; see `architecture/unit-entry-file`. The list is
|
|
513
|
+
* sorted so anything that picks "the first file under a directory" is deterministic.
|
|
514
|
+
*
|
|
515
|
+
* Two properties of the result the directory-shaped rules depend on: a directory containing no file
|
|
516
|
+
* at any depth does not appear among these paths' ancestor prefixes and so does not exist as far as
|
|
517
|
+
* those rules are concerned, and dot directories never appear at all (see `Runtime.glob`).
|
|
518
|
+
*/
|
|
519
|
+
declare function collectSourceFiles(rt: Runtime, cwd: string): Promise<string[]>;
|
|
520
|
+
|
|
451
521
|
/**
|
|
452
522
|
* Facts parsed from one SvelteKit route/hooks file for the SSR shared-state rules
|
|
453
523
|
* (the security kit-module rules). Collected by `collectKitModuleFacts` (static/CLI + vite build mode).
|
|
@@ -514,19 +584,21 @@ interface KitModuleFacts {
|
|
|
514
584
|
|
|
515
585
|
/**
|
|
516
586
|
* Resolve an import specifier to a repo-relative `.svelte.ts`/`.svelte.js` path, or
|
|
517
|
-
* undefined when it cannot be a runes module:
|
|
518
|
-
*
|
|
587
|
+
* undefined when it cannot be a runes module: delegates to `resolveRepoLocalPath` with
|
|
588
|
+
* `aliases` (defaulting to `$lib` → `src/lib` when omitted), so a project's declared
|
|
589
|
+
* `kit.alias`/`kit.files.lib` resolve here exactly as they do at rule time; `./`/`../`
|
|
590
|
+
* resolve against the importing file's directory; bare packages, unmatched aliases, and
|
|
519
591
|
* a relative specifier whose `..` segments escape the repo root are skipped. An
|
|
520
592
|
* extensionless `…/x.svelte` specifier canonicalises to `….svelte.ts` (security/shared-state-import also
|
|
521
593
|
* tries the `.js` sibling when matching).
|
|
522
594
|
*/
|
|
523
|
-
declare function resolveRunesModuleSpecifier(spec: string, importerFile: string): string | undefined;
|
|
595
|
+
declare function resolveRunesModuleSpecifier(spec: string, importerFile: string, aliases?: readonly KitAlias[]): string | undefined;
|
|
524
596
|
/**
|
|
525
597
|
* Parse one SvelteKit route/hooks file's SSR shared-state facts (the security kit-module rules). Uses
|
|
526
598
|
* the shared wrap parser (`parseModuleProgram`), so reported lines subtract the
|
|
527
599
|
* 1-line wrap prefix; suppressions are scanned on the unwrapped source.
|
|
528
600
|
*/
|
|
529
|
-
declare function parseKitModuleFacts(source: string, filename: string): Omit<KitModuleFacts, 'file' | 'kind'>;
|
|
601
|
+
declare function parseKitModuleFacts(source: string, filename: string, aliases?: readonly KitAlias[]): Omit<KitModuleFacts, 'file' | 'kind'>;
|
|
530
602
|
|
|
531
603
|
/** Fallback facts for a Kit file that fails to read or parse (dev tooling must never throw). */
|
|
532
604
|
declare function emptyKitModuleFacts(file: string, kind: KitModuleFacts['kind']): KitModuleFacts;
|
|
@@ -536,8 +608,11 @@ declare function emptyKitModuleFacts(file: string, kind: KitModuleFacts['kind'])
|
|
|
536
608
|
* `src/hooks.server`. `src/lib/server/**` is deliberately NOT scanned — legitimate
|
|
537
609
|
* module singletons (DB connections, clients) live there (design). A file that
|
|
538
610
|
* fails to read or parse contributes empty facts instead of aborting the scan.
|
|
611
|
+
*
|
|
612
|
+
* `aliases` is the project's compiled alias list (`Project.kitAliases`); omitted,
|
|
613
|
+
* specifiers resolve through `$lib` → `src/lib` only.
|
|
539
614
|
*/
|
|
540
|
-
declare function collectKitModuleFacts(rt: Runtime, cwd: string): Promise<KitModuleFacts[]>;
|
|
615
|
+
declare function collectKitModuleFacts(rt: Runtime, cwd: string, aliases?: readonly KitAlias[]): Promise<KitModuleFacts[]>;
|
|
541
616
|
|
|
542
617
|
/**
|
|
543
618
|
* The `build: { minify: false }` override, when present as a literal: returns the
|
|
@@ -566,6 +641,44 @@ type ViteKitConfigResult =
|
|
|
566
641
|
value?: string;
|
|
567
642
|
};
|
|
568
643
|
};
|
|
644
|
+
/** `kit.alias` and `kit.files.lib` as written, before Kit compiles them into ordered entries. */
|
|
645
|
+
type RawKitAliases = {
|
|
646
|
+
/**
|
|
647
|
+
* `kit.alias` entries in declaration order, `value: null` where the config's value is not a
|
|
648
|
+
* string literal. **Undefined means the key set is unknowable** — a spread or a computed key
|
|
649
|
+
* puts an unknown key at a known position, and an unknown key could shadow anything after it,
|
|
650
|
+
* with no `find` to record that with. The caller then discards every user entry.
|
|
651
|
+
*/
|
|
652
|
+
entries?: {
|
|
653
|
+
key: string;
|
|
654
|
+
value: string | null;
|
|
655
|
+
}[];
|
|
656
|
+
/**
|
|
657
|
+
* `kit.files.lib`, in three distinct states: **absent** (`undefined`) — there is no `lib`
|
|
658
|
+
* property, or `files` itself does not resolve to an object literal; a **literal** (the
|
|
659
|
+
* string) — `files.lib` is a string literal; **present but unreadable** (`null`) — the `lib`
|
|
660
|
+
* property exists but its value is not statically a string (e.g. a computed expression). The
|
|
661
|
+
* `null` state must not collapse into "absent": the caller cannot fall back to `src/lib`
|
|
662
|
+
* without risking a wrong answer, because the project may have moved `$lib` to something this
|
|
663
|
+
* parser simply couldn't read.
|
|
664
|
+
*/
|
|
665
|
+
filesLib?: string | null;
|
|
666
|
+
};
|
|
667
|
+
/** `kit.alias` and `kit.files.lib` from a `svelte.config.{js,ts}` source. */
|
|
668
|
+
declare function findKitAliasesInSvelteConfig(source: string): RawKitAliases;
|
|
669
|
+
/**
|
|
670
|
+
* The project's compiled alias list, following SvelteKit's config precedence: options passed to
|
|
671
|
+
* the `sveltekit()` Vite plugin make `svelte.config` irrelevant (Kit logs "svelte.config.js is
|
|
672
|
+
* ignored when options are passed via your Vite config"), so aliases are read from
|
|
673
|
+
* `svelte.config` only when the Vite config carries no plugin config. Reading `kit.alias` out of
|
|
674
|
+
* a plugin config is deliberately not done — that costs reach, not correctness, and such a
|
|
675
|
+
* project keeps the resolver's default `$lib` behaviour. Undefined means "no config was read".
|
|
676
|
+
*/
|
|
677
|
+
declare function resolveKitAliases(viteConfig: {
|
|
678
|
+
source: string;
|
|
679
|
+
} | undefined, svelteConfig: {
|
|
680
|
+
source: string;
|
|
681
|
+
} | undefined): KitAlias[] | undefined;
|
|
569
682
|
/** `kit.paths.base` from a `svelte.config.{js,ts}` source. */
|
|
570
683
|
declare function findKitPathsBaseInSvelteConfig(source: string): {
|
|
571
684
|
value?: string;
|
|
@@ -716,6 +829,23 @@ declare function intOption(options: RuleOptions, key: string, fallback?: number)
|
|
|
716
829
|
declare function listOption(options: RuleOptions, key: string): string[];
|
|
717
830
|
/** As `intOption`, for a `string-map` option. */
|
|
718
831
|
declare function mapOption(options: RuleOptions, key: string): Record<string, string>;
|
|
832
|
+
/**
|
|
833
|
+
* Whether any config layer so much as mentions `ruleId` — its `rules` entry, or any `overrides`
|
|
834
|
+
* entry's.
|
|
835
|
+
*
|
|
836
|
+
* A rule that is inert until declared can return early on `false` instead of resolving options once
|
|
837
|
+
* per target and discarding the result. That waste is not hypothetical: the three directory-shaped
|
|
838
|
+
* Architecture rules resolve per directory, so an unconfigured project pays it for every directory
|
|
839
|
+
* under `src/` three times over, on every dev-server save. Measured 2026-07-30 over a synthetic tree
|
|
840
|
+
* of 1,523 directories: 5.4 ms per analysis, for rules that are off by default and therefore produce
|
|
841
|
+
* nothing.
|
|
842
|
+
*
|
|
843
|
+
* Deliberately conservative. It asks only whether the rule is *mentioned*, not whether the mention
|
|
844
|
+
* resolves to a non-empty value, so a `'off'` severity with no options still answers `true` and the
|
|
845
|
+
* caller does its normal work. A cheaper-but-wrong version of this would make a rule skip work it
|
|
846
|
+
* owed; this one can only ever fail to save time.
|
|
847
|
+
*/
|
|
848
|
+
declare function isMentionedAnywhere(config: Config, ruleId: string): boolean;
|
|
719
849
|
/**
|
|
720
850
|
* Effective options for a rule at a target: built-in defaults, then
|
|
721
851
|
* `config.rules[ruleId].options`, then every matching `config.overrides` entry
|
|
@@ -799,6 +929,12 @@ interface RuleContext {
|
|
|
799
929
|
components?: ComponentFacts[];
|
|
800
930
|
/** Per-file SvelteKit route/hooks facts for the SSR shared-state rules (static/CLI + vite build mode only). */
|
|
801
931
|
kitModules?: KitModuleFacts[];
|
|
932
|
+
/**
|
|
933
|
+
* Every file under `src/`, as project-relative paths, for directory-shaped Architecture rules
|
|
934
|
+
* (static/CLI + vite build mode only). Sorted — see `collectSourceFiles`, which is what both
|
|
935
|
+
* adapters use to build it.
|
|
936
|
+
*/
|
|
937
|
+
sourceFiles?: string[];
|
|
802
938
|
project: Project;
|
|
803
939
|
config: Config;
|
|
804
940
|
}
|
|
@@ -1073,6 +1209,49 @@ declare const architecturePropCount: Rule;
|
|
|
1073
1209
|
*/
|
|
1074
1210
|
declare const architecturePrivateScopeImport: Rule;
|
|
1075
1211
|
|
|
1212
|
+
/**
|
|
1213
|
+
* architecture/unit-entry-file — a directory declared to be a unit must contain a file named
|
|
1214
|
+
* after it (design 2026-07-28). L3: the declarations come from the project's own `units`,
|
|
1215
|
+
* `pascalCaseUnits` and `exclude` options and are never inferred, so the rule is inert until then.
|
|
1216
|
+
*
|
|
1217
|
+
* The directory set is every ancestor path prefix of every file, so a directory holding only
|
|
1218
|
+
* subdirectories is checked too. Violations report at a file inside the directory rather than at
|
|
1219
|
+
* the directory, because `filterToChangedFiles` keeps only locations git lists as changed.
|
|
1220
|
+
*/
|
|
1221
|
+
declare const architectureUnitEntryFile: Rule;
|
|
1222
|
+
|
|
1223
|
+
/**
|
|
1224
|
+
* architecture/directory-naming — a directory must be named in the casing its location declares
|
|
1225
|
+
* (design 2026-07-29). L3: the declarations come from the project's own `directories` and `exclude`
|
|
1226
|
+
* options and are never inferred, so the rule is inert until then.
|
|
1227
|
+
*
|
|
1228
|
+
* Violations report at a file inside the directory rather than at the directory, because
|
|
1229
|
+
* `filterToChangedFiles` keeps only locations git lists as changed and git never lists a directory.
|
|
1230
|
+
*
|
|
1231
|
+
* There are no pass results. `architecture/unit-entry-file` emits one per conforming unit and can
|
|
1232
|
+
* afford to, because it keys the pass on the unit's entry file — a `.svelte` path already present as
|
|
1233
|
+
* a score key. This rule's subject is the directory itself, with no such pre-existing key, and
|
|
1234
|
+
* `computeScore` seeds every distinct `route` at 100 and averages: a pass per directory would add
|
|
1235
|
+
* hundreds of 100s from one `'src/routes/**'` declaration and dilute every real finding.
|
|
1236
|
+
*/
|
|
1237
|
+
declare const architectureDirectoryNaming: Rule;
|
|
1238
|
+
|
|
1239
|
+
/**
|
|
1240
|
+
* architecture/reserved-directory-names — a directory's immediate subdirectories may only take names
|
|
1241
|
+
* the project declared for that position (design 2026-07-29). L3: inert until a scope is declared.
|
|
1242
|
+
*
|
|
1243
|
+
* Two option maps, differing in what their key names. A `scopes` key names the parent directly. A
|
|
1244
|
+
* `unitScopes` key names a root, and the rule governs the children of whichever directories beneath
|
|
1245
|
+
* it are units — the shape a glob cannot reach, because units nest to arbitrary depth.
|
|
1246
|
+
*
|
|
1247
|
+
* There are no pass results. `computeScore` seeds every distinct `route` at 100 and averages, and the
|
|
1248
|
+
* subject here is a directory with no pre-existing score key, so a pass per directory would add
|
|
1249
|
+
* hundreds of 100s from one broad declaration and dilute every real finding.
|
|
1250
|
+
*/
|
|
1251
|
+
declare const architectureReservedDirectoryNames: Rule;
|
|
1252
|
+
|
|
1253
|
+
declare const architectureRouteComponentImport: Rule;
|
|
1254
|
+
|
|
1076
1255
|
declare const performanceHeavyImport: Rule;
|
|
1077
1256
|
|
|
1078
1257
|
declare const performanceNamespaceImport: Rule;
|
|
@@ -1402,4 +1581,4 @@ declare function escapeHtml(s: string): string;
|
|
|
1402
1581
|
*/
|
|
1403
1582
|
declare function safeHref(url: string): string | null;
|
|
1404
1583
|
|
|
1405
|
-
export { APP_SCRIPT, APP_STYLE, type AppSnapshot, BAND_COLOR, CATEGORIES, CHILD_NODE_KEYS, type Category, type Classification, type CompiledOverride, type ComponentFacts, type Config, type ConsoleReportOptions, type Detection, type EachBlockFact, type EffectFact, type Fix, type HeadProvider, type HeadTag, type HeadingInfo, type HealthResult, type ImageInfo, type JsonReport, type KitModuleFacts, type OrphanEffectFact, type Palette, type Presence, type Project, ROBOTS_SOURCE_PATHS, type ResolvedHead, type ResolvedHeadings, type ResolvedImages, type Result, type RouteBadge, type Rule, type RuleContext, type RuleInfo, type RuleOptionInfo, type RuleOptionSpec, type RuleOptions, type RuleOptionsSpec, type RuleOverride, type RuleSetting, type RuleSettingObject, type Runtime, SITEMAP_SOURCE_PATHS, SVELTE_CONFIG_FILES, type Scope, type ScoreModel, type ScoreOptions, type ScoreResult, type Severity, type SourceSpan, type Summary, type SuppressionDirective, type TreatDynamicAs, VITE_CONFIG_FILES, type Value, type ViteKitConfigResult, allRules, applyOverrides, applyRuleSeverities, architectureComponentSize, architecturePrivateScopeImport, architecturePropCount, attrText, attrTextOf, attrValue, attrValueOf, buildHtmlDocument, buildJsonReport, classify, collectComponentFacts, collectKitModuleFacts, compileOverrides, computeHealth, computeScore, correctnessBasePathNavigation, correctnessCheckableBindValue, correctnessEachIndexKey, correctnessEachKey, correctnessEffectAsDerived, correctnessEffectAsOnMount, correctnessInstanceBrowserGlobal, correctnessNonreactiveBuiltinState, correctnessOrphanEffect, correctnessOrphanLifecycle, correctnessPropMutation, correctnessServerBrowserGlobal, correctnessStalePropDerivation, correctnessUnmutatedState, defaultConfig, defaultProject, defineConfig, docsUrlFor, effectiveSeverity, emptyComponentFacts, emptyKitModuleFacts, escapeHtml, explainRule, findAttr, findKitPathsBaseInSvelteConfig, findKitPathsBaseInViteConfig, findMinifyDisabled, formatAgentReport, formatConsoleReport, formatGithubReport, formatHtmlReport, formatJsonReport, formatMarkdownReport, formatSarifReport, hasFailureAtOrAbove, headTagRule, imageRule, intOption, isPenalized, lineOf, linkRule, listOption, mapOption, noColorPalette, overrideMatches, parseComponentFacts, parseKitModuleFacts, performanceFontPreloadCrossorigin, performanceHeavyImport, performanceImageDimensions, performanceImageLoadingHint, performanceLcpImage, performanceLoadWaterfall, performanceMinifyDisabled, performanceNamespaceImport, performancePreconnect, performancePreloadMissingAs, performanceRenderBlockingScript, performanceResponsiveImage, performanceSequentialAwaits, performanceStateRaw, renderAppShell, resolveKitPathsBase, resolveRuleOptions, resolveRunesModuleSpecifier, runRules, safeHref, scoreBand, scoreColor, scoresByCategory, 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, settingOptions, settingSeverity, shouldSkipRangeCheck, summarize, textFromNodes, validateRuleOptions, validateRuleSetting, valueFromNodes };
|
|
1584
|
+
export { APP_SCRIPT, APP_STYLE, type AppSnapshot, BAND_COLOR, CATEGORIES, CHILD_NODE_KEYS, type Category, type Classification, type CompiledOverride, type ComponentFacts, type Config, type ConsoleReportOptions, type Detection, type EachBlockFact, type EffectFact, type Fix, type HeadProvider, type HeadTag, type HeadingInfo, type HealthResult, type ImageInfo, type JsonReport, type KitAlias, type KitModuleFacts, type OrphanEffectFact, type Palette, type Presence, type Project, ROBOTS_SOURCE_PATHS, type RawKitAliases, type ResolvedHead, type ResolvedHeadings, type ResolvedImages, type Result, type RouteBadge, type Rule, type RuleContext, type RuleInfo, type RuleOptionInfo, type RuleOptionSpec, type RuleOptions, type RuleOptionsSpec, type RuleOverride, type RuleSetting, type RuleSettingObject, type Runtime, SITEMAP_SOURCE_PATHS, SVELTE_CONFIG_FILES, type Scope, type ScoreModel, type ScoreOptions, type ScoreResult, type Severity, type SourceSpan, type Summary, type SuppressionDirective, type TreatDynamicAs, VITE_CONFIG_FILES, type Value, type ViteKitConfigResult, allRules, applyOverrides, applyRuleSeverities, architectureComponentSize, architectureDirectoryNaming, architecturePrivateScopeImport, architecturePropCount, architectureReservedDirectoryNames, architectureRouteComponentImport, architectureUnitEntryFile, attrText, attrTextOf, attrValue, attrValueOf, buildHtmlDocument, buildJsonReport, classify, collectComponentFacts, collectKitModuleFacts, collectSourceFiles, compileOverrides, computeHealth, computeScore, correctnessBasePathNavigation, correctnessCheckableBindValue, correctnessEachIndexKey, correctnessEachKey, correctnessEffectAsDerived, correctnessEffectAsOnMount, correctnessInstanceBrowserGlobal, correctnessNonreactiveBuiltinState, correctnessOrphanEffect, correctnessOrphanLifecycle, correctnessPropMutation, correctnessServerBrowserGlobal, correctnessStalePropDerivation, correctnessUnmutatedState, defaultConfig, defaultProject, defineConfig, docsUrlFor, effectiveSeverity, emptyComponentFacts, emptyKitModuleFacts, escapeHtml, explainRule, findAttr, findKitAliasesInSvelteConfig, findKitPathsBaseInSvelteConfig, findKitPathsBaseInViteConfig, findMinifyDisabled, formatAgentReport, formatConsoleReport, formatGithubReport, formatHtmlReport, formatJsonReport, formatMarkdownReport, formatSarifReport, hasFailureAtOrAbove, headTagRule, imageRule, intOption, isMentionedAnywhere, isPenalized, lineOf, linkRule, listOption, mapOption, noColorPalette, overrideMatches, parseComponentFacts, parseKitModuleFacts, performanceFontPreloadCrossorigin, performanceHeavyImport, performanceImageDimensions, performanceImageLoadingHint, performanceLcpImage, performanceLoadWaterfall, performanceMinifyDisabled, performanceNamespaceImport, performancePreconnect, performancePreloadMissingAs, performanceRenderBlockingScript, performanceResponsiveImage, performanceSequentialAwaits, performanceStateRaw, renderAppShell, resolveKitAliases, resolveKitPathsBase, resolveRuleOptions, resolveRunesModuleSpecifier, runRules, safeHref, scoreBand, scoreColor, scoresByCategory, 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, settingOptions, settingSeverity, shouldSkipRangeCheck, summarize, textFromNodes, validateRuleOptions, validateRuleSetting, valueFromNodes };
|