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.
Files changed (70) hide show
  1. package/LICENSE +21 -0
  2. package/dist/biome.d.ts +18 -0
  3. package/dist/biome.d.ts.map +1 -0
  4. package/dist/biome.js +312 -0
  5. package/dist/biome.js.map +1 -0
  6. package/dist/cli.d.ts +7 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +149 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/companion-closure.d.ts +2 -0
  11. package/dist/companion-closure.d.ts.map +1 -0
  12. package/dist/companion-closure.js +29 -0
  13. package/dist/companion-closure.js.map +1 -0
  14. package/dist/config.d.ts +51 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +222 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/default-providers.d.ts +5 -0
  19. package/dist/default-providers.d.ts.map +1 -0
  20. package/dist/default-providers.js +5 -0
  21. package/dist/default-providers.js.map +1 -0
  22. package/dist/define-rule.d.ts +9 -0
  23. package/dist/define-rule.d.ts.map +1 -0
  24. package/dist/define-rule.js +5 -0
  25. package/dist/define-rule.js.map +1 -0
  26. package/dist/define-rule.types.d.ts +2 -0
  27. package/dist/define-rule.types.d.ts.map +1 -0
  28. package/dist/define-rule.types.js +33 -0
  29. package/dist/define-rule.types.js.map +1 -0
  30. package/dist/engine.d.ts +10 -0
  31. package/dist/engine.d.ts.map +1 -0
  32. package/dist/engine.js +447 -0
  33. package/dist/engine.js.map +1 -0
  34. package/dist/git-seed.d.ts +2 -0
  35. package/dist/git-seed.d.ts.map +1 -0
  36. package/dist/git-seed.js +52 -0
  37. package/dist/git-seed.js.map +1 -0
  38. package/dist/index.d.ts +138 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +13 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/record.d.ts +2 -0
  43. package/dist/record.d.ts.map +1 -0
  44. package/dist/record.js +4 -0
  45. package/dist/record.js.map +1 -0
  46. package/dist/ruff.d.ts +17 -0
  47. package/dist/ruff.d.ts.map +1 -0
  48. package/dist/ruff.js +303 -0
  49. package/dist/ruff.js.map +1 -0
  50. package/dist/rule-options.d.ts +3 -0
  51. package/dist/rule-options.d.ts.map +1 -0
  52. package/dist/rule-options.js +78 -0
  53. package/dist/rule-options.js.map +1 -0
  54. package/dist/run-command.d.ts +13 -0
  55. package/dist/run-command.d.ts.map +1 -0
  56. package/dist/run-command.js +60 -0
  57. package/dist/run-command.js.map +1 -0
  58. package/dist/schemas.d.ts +125 -0
  59. package/dist/schemas.d.ts.map +1 -0
  60. package/dist/schemas.js +79 -0
  61. package/dist/schemas.js.map +1 -0
  62. package/dist/standalone-wasm.d.ts +7 -0
  63. package/dist/standalone-wasm.d.ts.map +1 -0
  64. package/dist/standalone-wasm.js +31 -0
  65. package/dist/standalone-wasm.js.map +1 -0
  66. package/dist/typescript-frontend.d.ts +4 -0
  67. package/dist/typescript-frontend.d.ts.map +1 -0
  68. package/dist/typescript-frontend.js +105 -0
  69. package/dist/typescript-frontend.js.map +1 -0
  70. 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"}
@@ -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
+ }