qualety 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.
- package/LICENSE +21 -0
- package/dist/biome.d.ts +18 -0
- package/dist/biome.d.ts.map +1 -0
- package/dist/biome.js +312 -0
- package/dist/biome.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +149 -0
- package/dist/cli.js.map +1 -0
- package/dist/companion-closure.d.ts +2 -0
- package/dist/companion-closure.d.ts.map +1 -0
- package/dist/companion-closure.js +29 -0
- package/dist/companion-closure.js.map +1 -0
- package/dist/config.d.ts +51 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +222 -0
- package/dist/config.js.map +1 -0
- package/dist/default-providers.d.ts +5 -0
- package/dist/default-providers.d.ts.map +1 -0
- package/dist/default-providers.js +5 -0
- package/dist/default-providers.js.map +1 -0
- package/dist/define-rule.d.ts +9 -0
- package/dist/define-rule.d.ts.map +1 -0
- package/dist/define-rule.js +5 -0
- package/dist/define-rule.js.map +1 -0
- package/dist/define-rule.types.d.ts +2 -0
- package/dist/define-rule.types.d.ts.map +1 -0
- package/dist/define-rule.types.js +33 -0
- package/dist/define-rule.types.js.map +1 -0
- package/dist/engine.d.ts +10 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +447 -0
- package/dist/engine.js.map +1 -0
- package/dist/git-seed.d.ts +2 -0
- package/dist/git-seed.d.ts.map +1 -0
- package/dist/git-seed.js +52 -0
- package/dist/git-seed.js.map +1 -0
- package/dist/index.d.ts +138 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/record.d.ts +2 -0
- package/dist/record.d.ts.map +1 -0
- package/dist/record.js +4 -0
- package/dist/record.js.map +1 -0
- package/dist/ruff.d.ts +17 -0
- package/dist/ruff.d.ts.map +1 -0
- package/dist/ruff.js +303 -0
- package/dist/ruff.js.map +1 -0
- package/dist/rule-options.d.ts +3 -0
- package/dist/rule-options.d.ts.map +1 -0
- package/dist/rule-options.js +78 -0
- package/dist/rule-options.js.map +1 -0
- package/dist/run-command.d.ts +13 -0
- package/dist/run-command.d.ts.map +1 -0
- package/dist/run-command.js +60 -0
- package/dist/run-command.js.map +1 -0
- package/dist/schemas.d.ts +125 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +79 -0
- package/dist/schemas.js.map +1 -0
- package/dist/standalone-wasm.d.ts +7 -0
- package/dist/standalone-wasm.d.ts.map +1 -0
- package/dist/standalone-wasm.js +31 -0
- package/dist/standalone-wasm.js.map +1 -0
- package/dist/typescript-frontend.d.ts +4 -0
- package/dist/typescript-frontend.d.ts.map +1 -0
- package/dist/typescript-frontend.js +105 -0
- package/dist/typescript-frontend.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
export function runTimedCommand(bin, args, cwd, timeoutMs, options) {
|
|
3
|
+
return new Promise((ok) => {
|
|
4
|
+
let settled = false;
|
|
5
|
+
const finish = (result) => {
|
|
6
|
+
if (settled) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
settled = true;
|
|
10
|
+
ok(result);
|
|
11
|
+
};
|
|
12
|
+
let child;
|
|
13
|
+
try {
|
|
14
|
+
child = spawn(bin, args, { cwd, env: options?.env });
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
finish({
|
|
18
|
+
code: null,
|
|
19
|
+
stdout: "",
|
|
20
|
+
stderr: "",
|
|
21
|
+
timedOut: false,
|
|
22
|
+
error: e instanceof Error ? e.message : String(e),
|
|
23
|
+
});
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
let stdout = "";
|
|
27
|
+
let stderr = "";
|
|
28
|
+
let timedOut = false;
|
|
29
|
+
const timer = setTimeout(() => {
|
|
30
|
+
timedOut = true;
|
|
31
|
+
child.kill("SIGKILL");
|
|
32
|
+
}, timeoutMs);
|
|
33
|
+
child.stdout?.setEncoding("utf8");
|
|
34
|
+
child.stderr?.setEncoding("utf8");
|
|
35
|
+
child.stdout?.on("data", (chunk) => {
|
|
36
|
+
stdout += chunk;
|
|
37
|
+
});
|
|
38
|
+
child.stderr?.on("data", (chunk) => {
|
|
39
|
+
stderr += chunk;
|
|
40
|
+
});
|
|
41
|
+
if (options?.stdin !== undefined) {
|
|
42
|
+
child.stdin?.end(options.stdin);
|
|
43
|
+
}
|
|
44
|
+
child.on("error", (e) => {
|
|
45
|
+
clearTimeout(timer);
|
|
46
|
+
finish({
|
|
47
|
+
code: null,
|
|
48
|
+
stdout,
|
|
49
|
+
stderr,
|
|
50
|
+
timedOut,
|
|
51
|
+
error: e.message,
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
child.on("close", (code) => {
|
|
55
|
+
clearTimeout(timer);
|
|
56
|
+
finish({ code, stdout, stderr, timedOut, error: undefined });
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=run-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAU3C,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,IAAuB,EACvB,GAAW,EACX,SAAiB,EACjB,OAAqD;IAErD,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACxB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,MAA0B,EAAE,EAAE;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,CAAC;QACb,CAAC,CAAC;QACF,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC;gBACL,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aAClD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC;gBACL,IAAI,EAAE,IAAI;gBACV,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,KAAK,EAAE,CAAC,CAAC,OAAO;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const requiresSchema: z.ZodArray<z.ZodString>;
|
|
3
|
+
export declare const ruleMetaSchema: z.ZodObject<{
|
|
4
|
+
docs: z.ZodObject<{
|
|
5
|
+
description: z.ZodString;
|
|
6
|
+
url: z.ZodOptional<z.ZodString>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
|
+
schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
10
|
+
fixable: z.ZodOptional<z.ZodEnum<{
|
|
11
|
+
code: "code";
|
|
12
|
+
whitespace: "whitespace";
|
|
13
|
+
}>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export declare const functionSchema: z.ZodCustom<(...args: never[]) => unknown, (...args: never[]) => unknown>;
|
|
16
|
+
export declare const ruleSchema: z.ZodObject<{
|
|
17
|
+
meta: z.ZodObject<{
|
|
18
|
+
docs: z.ZodObject<{
|
|
19
|
+
description: z.ZodString;
|
|
20
|
+
url: z.ZodOptional<z.ZodString>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
24
|
+
fixable: z.ZodOptional<z.ZodEnum<{
|
|
25
|
+
code: "code";
|
|
26
|
+
whitespace: "whitespace";
|
|
27
|
+
}>>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
create: z.ZodCustom<(...args: never[]) => unknown, (...args: never[]) => unknown>;
|
|
30
|
+
}, z.core.$strip>;
|
|
31
|
+
export declare const artifactProviderSchema: z.ZodObject<{
|
|
32
|
+
build: z.ZodCustom<(...args: never[]) => unknown, (...args: never[]) => unknown>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export declare const pluginProvidesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
35
|
+
build: z.ZodCustom<(...args: never[]) => unknown, (...args: never[]) => unknown>;
|
|
36
|
+
}, z.core.$strip>>;
|
|
37
|
+
export declare const ruleSettingSchema: z.ZodUnion<readonly [z.ZodEnum<{
|
|
38
|
+
error: "error";
|
|
39
|
+
off: "off";
|
|
40
|
+
warn: "warn";
|
|
41
|
+
}>, z.ZodTuple<[z.ZodEnum<{
|
|
42
|
+
error: "error";
|
|
43
|
+
warn: "warn";
|
|
44
|
+
}>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>;
|
|
45
|
+
export declare const userBiomeSchema: z.ZodObject<{
|
|
46
|
+
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
|
|
47
|
+
error: "error";
|
|
48
|
+
off: "off";
|
|
49
|
+
warn: "warn";
|
|
50
|
+
}>, z.ZodTuple<[z.ZodEnum<{
|
|
51
|
+
error: "error";
|
|
52
|
+
off: "off";
|
|
53
|
+
warn: "warn";
|
|
54
|
+
}>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>>;
|
|
55
|
+
format: z.ZodOptional<z.ZodBoolean>;
|
|
56
|
+
}, z.core.$strict>;
|
|
57
|
+
export declare const userRuffSchema: z.ZodObject<{
|
|
58
|
+
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
|
|
59
|
+
error: "error";
|
|
60
|
+
off: "off";
|
|
61
|
+
warn: "warn";
|
|
62
|
+
}>, z.ZodTuple<[z.ZodEnum<{
|
|
63
|
+
error: "error";
|
|
64
|
+
off: "off";
|
|
65
|
+
warn: "warn";
|
|
66
|
+
}>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>>;
|
|
67
|
+
format: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
}, z.core.$strict>;
|
|
69
|
+
export declare const pluginSchema: z.ZodObject<{
|
|
70
|
+
name: z.ZodString;
|
|
71
|
+
version: z.ZodOptional<z.ZodString>;
|
|
72
|
+
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
73
|
+
meta: z.ZodObject<{
|
|
74
|
+
docs: z.ZodObject<{
|
|
75
|
+
description: z.ZodString;
|
|
76
|
+
url: z.ZodOptional<z.ZodString>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
79
|
+
schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
80
|
+
fixable: z.ZodOptional<z.ZodEnum<{
|
|
81
|
+
code: "code";
|
|
82
|
+
whitespace: "whitespace";
|
|
83
|
+
}>>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
create: z.ZodCustom<(...args: never[]) => unknown, (...args: never[]) => unknown>;
|
|
86
|
+
}, z.core.$strip>>>;
|
|
87
|
+
provides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
88
|
+
build: z.ZodCustom<(...args: never[]) => unknown, (...args: never[]) => unknown>;
|
|
89
|
+
}, z.core.$strip>>>;
|
|
90
|
+
configs: z.ZodOptional<z.ZodObject<{
|
|
91
|
+
recommended: z.ZodOptional<z.ZodObject<{
|
|
92
|
+
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
|
|
93
|
+
error: "error";
|
|
94
|
+
off: "off";
|
|
95
|
+
warn: "warn";
|
|
96
|
+
}>, z.ZodTuple<[z.ZodEnum<{
|
|
97
|
+
error: "error";
|
|
98
|
+
warn: "warn";
|
|
99
|
+
}>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>>;
|
|
100
|
+
}, z.core.$strip>>;
|
|
101
|
+
}, z.core.$strip>>;
|
|
102
|
+
biome: z.ZodOptional<z.ZodObject<{
|
|
103
|
+
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
|
|
104
|
+
error: "error";
|
|
105
|
+
off: "off";
|
|
106
|
+
warn: "warn";
|
|
107
|
+
}>, z.ZodTuple<[z.ZodEnum<{
|
|
108
|
+
error: "error";
|
|
109
|
+
off: "off";
|
|
110
|
+
warn: "warn";
|
|
111
|
+
}>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>>;
|
|
112
|
+
}, z.core.$strict>>;
|
|
113
|
+
ruff: z.ZodOptional<z.ZodObject<{
|
|
114
|
+
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
|
|
115
|
+
error: "error";
|
|
116
|
+
off: "off";
|
|
117
|
+
warn: "warn";
|
|
118
|
+
}>, z.ZodTuple<[z.ZodEnum<{
|
|
119
|
+
error: "error";
|
|
120
|
+
off: "off";
|
|
121
|
+
warn: "warn";
|
|
122
|
+
}>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>>;
|
|
123
|
+
}, z.core.$strict>>;
|
|
124
|
+
}, z.core.$strip>;
|
|
125
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc,yBAA6B,CAAC;AAEzD,eAAO,MAAM,cAAc;;;;;;;;;;;iBAQzB,CAAC;AAEH,eAAO,MAAM,cAAc,wBAAsB,KAAK,EAAE,KAAK,OAAO,gCAEnE,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;kCAJ0B,KAAK,EAAE,KAAK,OAAO;iBAOlE,CAAC;AAEH,eAAO,MAAM,sBAAsB;iCATc,KAAK,EAAE,KAAK,OAAO;iBAWlE,CAAC;AAEH,eAAO,MAAM,oBAAoB;iCAbgB,KAAK,EAAE,KAAK,OAAO;kBAamB,CAAC;AAExF,eAAO,MAAM,iBAAiB;;;;;;;oDAG5B,CAAC;AAiBH,eAAO,MAAM,eAAe;;;;;;;;;;;kBAKjB,CAAC;AAoBZ,eAAO,MAAM,cAAc;;;;;;;;;;;kBAKhB,CAAC;AAEZ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;sCAnEwB,KAAK,EAAE,KAAK,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmFlE,CAAC"}
|
package/dist/schemas.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const requiresSchema = z.array(z.string().min(1));
|
|
3
|
+
export const ruleMetaSchema = z.object({
|
|
4
|
+
docs: z.object({
|
|
5
|
+
description: z.string().min(1),
|
|
6
|
+
url: z.string().optional(),
|
|
7
|
+
}),
|
|
8
|
+
requires: requiresSchema.optional(),
|
|
9
|
+
schema: z.record(z.string(), z.unknown()).optional(),
|
|
10
|
+
fixable: z.enum(["code", "whitespace"]).optional(),
|
|
11
|
+
});
|
|
12
|
+
export const functionSchema = z.custom((value) => typeof value === "function");
|
|
13
|
+
export const ruleSchema = z.object({
|
|
14
|
+
meta: ruleMetaSchema,
|
|
15
|
+
create: functionSchema,
|
|
16
|
+
});
|
|
17
|
+
export const artifactProviderSchema = z.object({
|
|
18
|
+
build: functionSchema,
|
|
19
|
+
});
|
|
20
|
+
export const pluginProvidesSchema = z.record(z.string().min(1), artifactProviderSchema);
|
|
21
|
+
export const ruleSettingSchema = z.union([
|
|
22
|
+
z.enum(["error", "warn", "off"]),
|
|
23
|
+
z.tuple([z.enum(["error", "warn"]), z.record(z.string(), z.unknown())]),
|
|
24
|
+
]);
|
|
25
|
+
const biomeRuleIdSchema = z.string().regex(/^[^/]+\/[^/]+$/, "Biome rule id must be group/name");
|
|
26
|
+
const biomeRuleSettingSchema = z.union([
|
|
27
|
+
z.enum(["off", "warn", "error"]),
|
|
28
|
+
z.tuple([z.enum(["off", "warn", "error"]), z.record(z.string(), z.unknown())]),
|
|
29
|
+
]);
|
|
30
|
+
const biomeRulesSchema = z.record(biomeRuleIdSchema, biomeRuleSettingSchema);
|
|
31
|
+
const pluginBiomeSchema = z
|
|
32
|
+
.object({
|
|
33
|
+
rules: biomeRulesSchema.optional(),
|
|
34
|
+
})
|
|
35
|
+
.strict();
|
|
36
|
+
export const userBiomeSchema = z
|
|
37
|
+
.object({
|
|
38
|
+
rules: biomeRulesSchema.optional(),
|
|
39
|
+
format: z.boolean().optional(),
|
|
40
|
+
})
|
|
41
|
+
.strict();
|
|
42
|
+
const ruffRuleIdSchema = z
|
|
43
|
+
.string()
|
|
44
|
+
.regex(/^[A-Z]+[0-9]*$/, "Ruff rule id must be a code or prefix")
|
|
45
|
+
.refine((id) => id !== "ALL", "Ruff rule id must be a code or prefix");
|
|
46
|
+
const ruffRuleSettingSchema = z.union([
|
|
47
|
+
z.enum(["off", "warn", "error"]),
|
|
48
|
+
z.tuple([z.enum(["off", "warn", "error"]), z.record(z.string(), z.unknown())]),
|
|
49
|
+
]);
|
|
50
|
+
const ruffRulesSchema = z.record(ruffRuleIdSchema, ruffRuleSettingSchema);
|
|
51
|
+
const pluginRuffSchema = z
|
|
52
|
+
.object({
|
|
53
|
+
rules: ruffRulesSchema.optional(),
|
|
54
|
+
})
|
|
55
|
+
.strict();
|
|
56
|
+
export const userRuffSchema = z
|
|
57
|
+
.object({
|
|
58
|
+
rules: ruffRulesSchema.optional(),
|
|
59
|
+
format: z.boolean().optional(),
|
|
60
|
+
})
|
|
61
|
+
.strict();
|
|
62
|
+
export const pluginSchema = z.object({
|
|
63
|
+
name: z.string().min(1),
|
|
64
|
+
version: z.string().optional(),
|
|
65
|
+
rules: z.record(z.string().min(1), ruleSchema).optional(),
|
|
66
|
+
provides: pluginProvidesSchema.optional(),
|
|
67
|
+
configs: z
|
|
68
|
+
.object({
|
|
69
|
+
recommended: z
|
|
70
|
+
.object({
|
|
71
|
+
rules: z.record(z.string(), ruleSettingSchema).optional(),
|
|
72
|
+
})
|
|
73
|
+
.optional(),
|
|
74
|
+
})
|
|
75
|
+
.optional(),
|
|
76
|
+
biome: pluginBiomeSchema.optional(),
|
|
77
|
+
ruff: pluginRuffSchema.optional(),
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Workspace } from "@astral-sh/ruff-wasm-web";
|
|
2
|
+
import { Biome } from "@biomejs/js-api/web";
|
|
3
|
+
export declare function loadStandaloneBiome(): Promise<typeof Biome>;
|
|
4
|
+
export declare function loadStandaloneRuff(): Promise<{
|
|
5
|
+
Workspace: typeof Workspace;
|
|
6
|
+
}>;
|
|
7
|
+
//# sourceMappingURL=standalone-wasm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-wasm.d.ts","sourceRoot":"","sources":["../src/standalone-wasm.ts"],"names":[],"mappings":"AAQA,OAAiB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAS5C,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,CAMjE;AAGD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,SAAS,CAAA;CAAE,CAAC,CAMnF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Loaded only by the bun-compiled binary, never by node.
|
|
2
|
+
//
|
|
3
|
+
// bun --compile cannot use either of the obvious wasm builds: the "nodejs" ones
|
|
4
|
+
// readFileSync a __dirname baked at compile time (so the binary reads the build
|
|
5
|
+
// machine's node_modules), and the "bundler" ones call wasm.__wbindgen_start(),
|
|
6
|
+
// which bun's wasm module namespace does not expose. The "web" builds take the
|
|
7
|
+
// wasm as bytes, so both gates are initialised explicitly from assets embedded
|
|
8
|
+
// by `with { type: "file" }`.
|
|
9
|
+
import initRuff, { Workspace } from "@astral-sh/ruff-wasm-web";
|
|
10
|
+
import ruffWasm from "@astral-sh/ruff-wasm-web/ruff_wasm_bg.wasm" with { type: "file" };
|
|
11
|
+
import { Biome } from "@biomejs/js-api/web";
|
|
12
|
+
import initBiome from "@biomejs/wasm-web";
|
|
13
|
+
import biomeWasm from "@biomejs/wasm-web/biome_wasm_bg.wasm" with { type: "file" };
|
|
14
|
+
let biomeReady;
|
|
15
|
+
let ruffReady;
|
|
16
|
+
export async function loadStandaloneBiome() {
|
|
17
|
+
biomeReady ??= Bun.file(biomeWasm)
|
|
18
|
+
.arrayBuffer()
|
|
19
|
+
.then((bytes) => initBiome({ module_or_path: bytes }));
|
|
20
|
+
await biomeReady;
|
|
21
|
+
return Biome;
|
|
22
|
+
}
|
|
23
|
+
// Shaped like the module namespace loadRuffWasm() inspects, so both paths agree.
|
|
24
|
+
export async function loadStandaloneRuff() {
|
|
25
|
+
ruffReady ??= Bun.file(ruffWasm)
|
|
26
|
+
.arrayBuffer()
|
|
27
|
+
.then((bytes) => initRuff({ module_or_path: bytes }));
|
|
28
|
+
await ruffReady;
|
|
29
|
+
return { Workspace };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=standalone-wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-wasm.js","sourceRoot":"","sources":["../src/standalone-wasm.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,+EAA+E;AAC/E,8BAA8B;AAC9B,OAAO,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,QAAQ,MAAM,4CAA4C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,SAAS,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAInF,IAAI,UAAwC,CAAC;AAC7C,IAAI,SAAuC,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,UAAU,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;SAC/B,WAAW,EAAE;SACb,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,CAAC;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,SAAS,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B,WAAW,EAAE;SACb,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,CAAC;IAChB,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ArtifactProvider } from "./index.ts";
|
|
2
|
+
export declare function createTypeScriptProvider(): ArtifactProvider;
|
|
3
|
+
export declare function expandTypeScriptClosure(cwd: string, workspaceFiles: readonly string[], seedFiles: readonly string[]): string[];
|
|
4
|
+
//# sourceMappingURL=typescript-frontend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-frontend.d.ts","sourceRoot":"","sources":["../src/typescript-frontend.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,YAAY,CAAC;AAK/D,wBAAgB,wBAAwB,IAAI,gBAAgB,CAkB3D;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,EAAE,CAeV"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { dirname, extname, join, resolve } from "node:path";
|
|
2
|
+
import { Project } from "ts-morph";
|
|
3
|
+
const TS_EXTS = [".ts", ".tsx", ".mts", ".cts"];
|
|
4
|
+
const TS_EXTENSIONS = new Set(TS_EXTS);
|
|
5
|
+
export function createTypeScriptProvider() {
|
|
6
|
+
const project = new Project({
|
|
7
|
+
skipAddingFilesFromTsConfig: true,
|
|
8
|
+
skipFileDependencyResolution: true,
|
|
9
|
+
skipLoadingLibFiles: true,
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
build: (context) => {
|
|
13
|
+
const absolutePaths = context.files
|
|
14
|
+
.map((file) => resolve(context.cwd, file))
|
|
15
|
+
.filter((path) => TS_EXTENSIONS.has(extname(path)));
|
|
16
|
+
const sources = new Map();
|
|
17
|
+
for (const path of absolutePaths) {
|
|
18
|
+
sources.set(path, project.addSourceFileAtPath(path));
|
|
19
|
+
}
|
|
20
|
+
return { project, sources };
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function expandTypeScriptClosure(cwd, workspaceFiles, seedFiles) {
|
|
25
|
+
const workspace = new Set(workspaceFiles.map((file) => resolve(cwd, file)));
|
|
26
|
+
const seeds = seedFiles.map((file) => resolve(cwd, file)).filter((file) => workspace.has(file));
|
|
27
|
+
const tsFiles = [...workspace].filter((file) => TS_EXTENSIONS.has(extname(file)));
|
|
28
|
+
const project = new Project({
|
|
29
|
+
skipAddingFilesFromTsConfig: true,
|
|
30
|
+
skipFileDependencyResolution: true,
|
|
31
|
+
skipLoadingLibFiles: true,
|
|
32
|
+
});
|
|
33
|
+
const sources = new Map();
|
|
34
|
+
for (const path of tsFiles) {
|
|
35
|
+
sources.set(path, project.addSourceFileAtPath(path));
|
|
36
|
+
}
|
|
37
|
+
const neighbors = collectImportEdges(sources);
|
|
38
|
+
return [...walkImportClosure(seeds, neighbors, sources)].sort();
|
|
39
|
+
}
|
|
40
|
+
function collectImportEdges(sources) {
|
|
41
|
+
const neighbors = new Map();
|
|
42
|
+
for (const [from, source] of sources) {
|
|
43
|
+
for (const specifier of specifiersOf(source)) {
|
|
44
|
+
const target = resolveRelative(from, specifier, sources);
|
|
45
|
+
if (target === undefined) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
addUndirected(neighbors, from, target);
|
|
49
|
+
addUndirected(neighbors, target, from);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return neighbors;
|
|
53
|
+
}
|
|
54
|
+
function specifiersOf(source) {
|
|
55
|
+
const specs = [];
|
|
56
|
+
for (const decl of source.getImportDeclarations()) {
|
|
57
|
+
specs.push(decl.getModuleSpecifierValue());
|
|
58
|
+
}
|
|
59
|
+
for (const decl of source.getExportDeclarations()) {
|
|
60
|
+
const spec = decl.getModuleSpecifierValue();
|
|
61
|
+
if (spec !== undefined) {
|
|
62
|
+
specs.push(spec);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return specs;
|
|
66
|
+
}
|
|
67
|
+
function resolveRelative(fromFile, specifier, sources) {
|
|
68
|
+
let target;
|
|
69
|
+
if (specifier.startsWith(".")) {
|
|
70
|
+
const resolved = resolve(dirname(fromFile), specifier);
|
|
71
|
+
const hits = [resolved];
|
|
72
|
+
for (const ext of TS_EXTS) {
|
|
73
|
+
hits.push(resolved + ext);
|
|
74
|
+
hits.push(join(resolved, `index${ext}`));
|
|
75
|
+
}
|
|
76
|
+
target = hits.find((path) => sources.has(path));
|
|
77
|
+
}
|
|
78
|
+
return target;
|
|
79
|
+
}
|
|
80
|
+
function walkImportClosure(seeds, neighbors, sources) {
|
|
81
|
+
const closure = new Set(seeds);
|
|
82
|
+
const queue = seeds.filter((file) => sources.has(file));
|
|
83
|
+
const seen = new Set(queue);
|
|
84
|
+
while (queue.length > 0) {
|
|
85
|
+
const current = queue.pop();
|
|
86
|
+
if (current === undefined) {
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
for (const next of neighbors.get(current) ?? []) {
|
|
90
|
+
if (seen.has(next)) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
seen.add(next);
|
|
94
|
+
queue.push(next);
|
|
95
|
+
closure.add(next);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return closure;
|
|
99
|
+
}
|
|
100
|
+
function addUndirected(neighbors, from, to) {
|
|
101
|
+
const set = neighbors.get(from) ?? new Set();
|
|
102
|
+
set.add(to);
|
|
103
|
+
neighbors.set(from, set);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=typescript-frontend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-frontend.js","sourceRoot":"","sources":["../src/typescript-frontend.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "qualety",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Executable code invariants and complex best-practice enforcement beyond traditional linting.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/NavehBrenner/qualety.git",
|
|
9
|
+
"directory": "packages/qualety"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/NavehBrenner/qualety/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/NavehBrenner/qualety",
|
|
15
|
+
"type": "module",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"import": "./dist/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"bin": {
|
|
24
|
+
"qualety": "./dist/cli.js"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=22"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@biomejs/biome": "^2.5.10",
|
|
34
|
+
"ts-morph": "^28.0.0",
|
|
35
|
+
"zod": "^4.0.17"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@astral-sh/ruff-wasm-web": "^0.16.5",
|
|
39
|
+
"@biomejs/js-api": "^6.0.0",
|
|
40
|
+
"@biomejs/wasm-web": "2.5.10",
|
|
41
|
+
"@types/node": "^26.2.0"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "tsc -b"
|
|
45
|
+
}
|
|
46
|
+
}
|