svelte-plugin-svelte-5-doctor 0.1.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.
@@ -0,0 +1,4 @@
1
+
2
+ > svelte-plugin-svelte-5-doctor@0.1.0 build C:\Users\admin\Documents\Default Project\svelte-doctor\packages\svelte-plugin-svelte-doctor
3
+ > tsc -p tsconfig.json
4
+
@@ -0,0 +1,10 @@
1
+ /**
2
+ * defineRule helper — mirrors react-doctor HOW_TO_WRITE_A_RULE.md pattern
3
+ * Create single file src/plugin/rules/<bucket>/<id>.ts with defineRule({ id, category, create })
4
+ * Then `pnpm gen` regenerates rule-registry.ts (see react-doctor docs)
5
+ */
6
+ import type { RuleMeta, RuleContext } from "svelte-5-doctor-core";
7
+ export interface DefineRuleOptions extends RuleMeta {
8
+ create: (ctx: RuleContext) => void;
9
+ }
10
+ export declare const defineRule: (opts: DefineRuleOptions) => DefineRuleOptions;
@@ -0,0 +1 @@
1
+ export const defineRule = (opts) => opts;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * svelte-plugin-svelte-doctor — ported from oxlint-plugin-react-doctor
3
+ * Oxlint plugin had 287 rules via Rust. Here we expose same rule registry
4
+ * via pure JS visitors using svelte/compiler for Svelte 5.
5
+ * Consumers: svelte-doctor CLI (via @svelte-doctor/core) and eslint-plugin.
6
+ */
7
+ export { SVELTE_DOCTOR_RULES, RULE_MAP, RULE_IDS } from "svelte-5-doctor-core";
8
+ export { defineRule } from "./define-rule.js";
9
+ export declare const plugin: {
10
+ name: string;
11
+ version: string;
12
+ rules: {
13
+ [k: string]: import("svelte-5-doctor-core").RuleMeta;
14
+ };
15
+ };
16
+ export declare const recommended: {
17
+ plugins: string[];
18
+ rules: {
19
+ [k: string]: import("svelte-5-doctor-core").Severity;
20
+ };
21
+ };
22
+ export default plugin;
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * svelte-plugin-svelte-doctor — ported from oxlint-plugin-react-doctor
3
+ * Oxlint plugin had 287 rules via Rust. Here we expose same rule registry
4
+ * via pure JS visitors using svelte/compiler for Svelte 5.
5
+ * Consumers: svelte-doctor CLI (via @svelte-doctor/core) and eslint-plugin.
6
+ */
7
+ export { SVELTE_DOCTOR_RULES, RULE_MAP, RULE_IDS } from "svelte-5-doctor-core";
8
+ export { defineRule } from "./define-rule.js";
9
+ import { SVELTE_DOCTOR_RULES } from "svelte-5-doctor-core";
10
+ export const plugin = {
11
+ name: "svelte-plugin-svelte-5-doctor",
12
+ version: "0.1.0",
13
+ rules: Object.fromEntries(SVELTE_DOCTOR_RULES.map((r) => [r.id, r])),
14
+ };
15
+ export const recommended = {
16
+ plugins: ["svelte-doctor"],
17
+ rules: Object.fromEntries(SVELTE_DOCTOR_RULES.filter((r) => r.severity !== "off").map((r) => [r.id, r.severity])),
18
+ };
19
+ export default plugin;
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "svelte-plugin-svelte-5-doctor",
3
+ "version": "0.1.0",
4
+ "description": "Svelte plugin for Svelte 5 Doctor — 48 rules for Svelte 5 (port of oxlint-plugin-react-doctor's 287 rules). Renamed for svelte-5-doctor publish.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "dependencies": {
9
+ "svelte": "^5.35.0",
10
+ "svelte-5-doctor-core": "0.1.0"
11
+ },
12
+ "devDependencies": {
13
+ "typescript": "^5.9.2",
14
+ "vitest": "^3.2.4"
15
+ },
16
+ "keywords": [
17
+ "svelte",
18
+ "svelte5",
19
+ "eslint",
20
+ "oxlint",
21
+ "linter"
22
+ ],
23
+ "scripts": {
24
+ "build": "tsc -p tsconfig.json",
25
+ "typecheck": "tsc -p tsconfig.json --noEmit",
26
+ "test": "vitest run"
27
+ }
28
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * defineRule helper — mirrors react-doctor HOW_TO_WRITE_A_RULE.md pattern
3
+ * Create single file src/plugin/rules/<bucket>/<id>.ts with defineRule({ id, category, create })
4
+ * Then `pnpm gen` regenerates rule-registry.ts (see react-doctor docs)
5
+ */
6
+ import type { RuleMeta, RuleContext } from "svelte-5-doctor-core";
7
+
8
+ export interface DefineRuleOptions extends RuleMeta {
9
+ create: (ctx: RuleContext) => void;
10
+ }
11
+
12
+ export const defineRule = (opts: DefineRuleOptions) => opts;
package/src/index.ts ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * svelte-plugin-svelte-doctor — ported from oxlint-plugin-react-doctor
3
+ * Oxlint plugin had 287 rules via Rust. Here we expose same rule registry
4
+ * via pure JS visitors using svelte/compiler for Svelte 5.
5
+ * Consumers: svelte-doctor CLI (via @svelte-doctor/core) and eslint-plugin.
6
+ */
7
+ export { SVELTE_DOCTOR_RULES, RULE_MAP, RULE_IDS } from "svelte-5-doctor-core";
8
+ export { defineRule } from "./define-rule.js";
9
+ import { SVELTE_DOCTOR_RULES } from "svelte-5-doctor-core";
10
+
11
+ export const plugin = {
12
+ name: "svelte-plugin-svelte-5-doctor",
13
+ version: "0.1.0",
14
+ rules: Object.fromEntries(SVELTE_DOCTOR_RULES.map((r) => [r.id, r])),
15
+ };
16
+
17
+ export const recommended = {
18
+ plugins: ["svelte-doctor"],
19
+ rules: Object.fromEntries(
20
+ SVELTE_DOCTOR_RULES.filter((r) => r.severity !== "off").map((r) => [r.id, r.severity])
21
+ ),
22
+ };
23
+
24
+ export default plugin;
package/tsconfig.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist",
5
+ "rootDir": "src",
6
+ "module": "ESNext",
7
+ "moduleResolution": "bundler"
8
+ },
9
+ "include": ["src"]
10
+ }