@kevinrabun/judges 3.23.7 → 3.23.8

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 (54) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +1 -1
  3. package/dist/api.d.ts +6 -1
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +6 -1
  6. package/dist/api.js.map +1 -1
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +86 -3
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/fix.d.ts +27 -1
  11. package/dist/commands/fix.d.ts.map +1 -1
  12. package/dist/commands/fix.js +137 -13
  13. package/dist/commands/fix.js.map +1 -1
  14. package/dist/commands/lsp.d.ts +24 -0
  15. package/dist/commands/lsp.d.ts.map +1 -0
  16. package/dist/commands/lsp.js +287 -0
  17. package/dist/commands/lsp.js.map +1 -0
  18. package/dist/commands/scaffold-plugin.d.ts +16 -0
  19. package/dist/commands/scaffold-plugin.d.ts.map +1 -0
  20. package/dist/commands/scaffold-plugin.js +271 -0
  21. package/dist/commands/scaffold-plugin.js.map +1 -0
  22. package/dist/config.d.ts +12 -0
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +128 -0
  25. package/dist/config.js.map +1 -1
  26. package/dist/disk-cache.d.ts +40 -0
  27. package/dist/disk-cache.d.ts.map +1 -0
  28. package/dist/disk-cache.js +196 -0
  29. package/dist/disk-cache.js.map +1 -0
  30. package/dist/evaluators/index.d.ts.map +1 -1
  31. package/dist/evaluators/index.js +50 -3
  32. package/dist/evaluators/index.js.map +1 -1
  33. package/dist/evaluators/v2.d.ts.map +1 -1
  34. package/dist/evaluators/v2.js +2 -2
  35. package/dist/evaluators/v2.js.map +1 -1
  36. package/dist/formatters/github-actions.d.ts +7 -0
  37. package/dist/formatters/github-actions.d.ts.map +1 -0
  38. package/dist/formatters/github-actions.js +69 -0
  39. package/dist/formatters/github-actions.js.map +1 -0
  40. package/dist/scoring.d.ts +8 -0
  41. package/dist/scoring.d.ts.map +1 -1
  42. package/dist/scoring.js +66 -26
  43. package/dist/scoring.js.map +1 -1
  44. package/dist/tools/register-evaluation.d.ts +1 -1
  45. package/dist/tools/register-evaluation.d.ts.map +1 -1
  46. package/dist/tools/register-evaluation.js +90 -1
  47. package/dist/tools/register-evaluation.js.map +1 -1
  48. package/dist/tools/register-workflow.d.ts.map +1 -1
  49. package/dist/tools/register-workflow.js +23 -20
  50. package/dist/tools/register-workflow.js.map +1 -1
  51. package/dist/types.d.ts +36 -2
  52. package/dist/types.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/server.json +2 -2
@@ -0,0 +1,271 @@
1
+ /**
2
+ * `judges scaffold-plugin` — Generate a starter custom plugin project.
3
+ *
4
+ * Creates a directory structure with:
5
+ * - package.json (with @kevinrabun/judges as peer dependency)
6
+ * - tsconfig.json
7
+ * - src/index.ts (plugin entry-point with example rule & judge)
8
+ * - src/rules/example-rule.ts
9
+ * - README.md
10
+ *
11
+ * Usage:
12
+ * judges scaffold-plugin my-org-rules
13
+ * judges scaffold-plugin my-org-rules --dir ./plugins
14
+ */
15
+ import { existsSync, mkdirSync, writeFileSync } from "fs";
16
+ import { join, resolve } from "path";
17
+ // ─── Templates ───────────────────────────────────────────────────────────────
18
+ function packageJsonTemplate(name) {
19
+ return JSON.stringify({
20
+ name,
21
+ version: "0.1.0",
22
+ description: `Custom Judges Panel plugin: ${name}`,
23
+ type: "module",
24
+ main: "dist/index.js",
25
+ types: "dist/index.d.ts",
26
+ scripts: {
27
+ build: "tsc",
28
+ watch: "tsc --watch",
29
+ test: "node --test dist/**/*.test.js",
30
+ },
31
+ peerDependencies: {
32
+ "@anthropic-ai/sdk": ">=0.39.0",
33
+ "@kevinrabun/judges": "*",
34
+ },
35
+ devDependencies: {
36
+ typescript: "^5.7.0",
37
+ },
38
+ keywords: ["judges-plugin", "code-review", "static-analysis"],
39
+ license: "MIT",
40
+ }, null, 2);
41
+ }
42
+ function tsconfigTemplate() {
43
+ return JSON.stringify({
44
+ compilerOptions: {
45
+ target: "ES2022",
46
+ module: "Node16",
47
+ moduleResolution: "Node16",
48
+ declaration: true,
49
+ outDir: "dist",
50
+ rootDir: "src",
51
+ strict: true,
52
+ esModuleInterop: true,
53
+ skipLibCheck: true,
54
+ },
55
+ include: ["src"],
56
+ }, null, 2);
57
+ }
58
+ function indexTemplate(name) {
59
+ return `/**
60
+ * ${name} — Custom Judges Panel Plugin
61
+ *
62
+ * Register this plugin in your .judgesrc or via the API:
63
+ *
64
+ * import { registerPlugin } from "@kevinrabun/judges/api";
65
+ * import plugin from "${name}";
66
+ * registerPlugin(plugin);
67
+ */
68
+
69
+ import type { JudgesPlugin, CustomRule } from "@kevinrabun/judges/api";
70
+ import { exampleNoTodoRule } from "./rules/example-rule.js";
71
+
72
+ const plugin: JudgesPlugin = {
73
+ name: "${name}",
74
+ version: "0.1.0",
75
+ description: "Custom rules and judges for ${name}",
76
+
77
+ // Register custom rules
78
+ rules: [exampleNoTodoRule],
79
+
80
+ // Optionally add custom judges (uncomment to use):
81
+ // judges: [],
82
+
83
+ // Hook: post-process findings (e.g., add org metadata)
84
+ // afterEvaluate: (findings) => {
85
+ // return findings.map((f) => ({
86
+ // ...f,
87
+ // tags: [...(f.tags || []), "${name}"],
88
+ // }));
89
+ // },
90
+ };
91
+
92
+ export default plugin;
93
+ `;
94
+ }
95
+ function exampleRuleTemplate() {
96
+ return `/**
97
+ * Example custom rule: no-todo-comments
98
+ *
99
+ * Flags TODO / FIXME / HACK comments as findings.
100
+ * This is a pattern-based rule — the simplest form.
101
+ */
102
+
103
+ import type { CustomRule } from "@kevinrabun/judges/api";
104
+
105
+ export const exampleNoTodoRule: CustomRule = {
106
+ id: "CUSTOM-001",
107
+ title: "TODO/FIXME comment detected",
108
+ severity: "info",
109
+ judgeId: "code-structure",
110
+ description: "Flags TODO, FIXME, and HACK comments that should be tracked in an issue tracker.",
111
+ languages: [], // empty = all languages
112
+ pattern: /\\b(TODO|FIXME|HACK|XXX)\\b/i,
113
+ suggestedFix: "Convert this comment into a tracked issue and reference the issue ID.",
114
+ tags: ["tech-debt", "comments"],
115
+ };
116
+
117
+ /**
118
+ * For more complex rules, use the \`analyze\` function instead of \`pattern\`:
119
+ *
120
+ * export const complexRule: CustomRule = {
121
+ * id: "CUSTOM-002",
122
+ * title: "Complex custom check",
123
+ * severity: "medium",
124
+ * judgeId: "cybersecurity",
125
+ * description: "Example of a custom rule with analyze function.",
126
+ * analyze: (code, language) => {
127
+ * const findings: Finding[] = [];
128
+ * // Your custom analysis logic here
129
+ * return findings;
130
+ * },
131
+ * };
132
+ */
133
+ `;
134
+ }
135
+ function readmeTemplate(name) {
136
+ return `# ${name}
137
+
138
+ A custom plugin for [Judges Panel](https://github.com/KevinRabun/judges).
139
+
140
+ ## Quick Start
141
+
142
+ \`\`\`bash
143
+ npm install
144
+ npm run build
145
+ \`\`\`
146
+
147
+ ## Usage
148
+
149
+ ### Via API
150
+
151
+ \`\`\`ts
152
+ import { registerPlugin } from "@kevinrabun/judges/api";
153
+ import plugin from "${name}";
154
+
155
+ registerPlugin(plugin);
156
+ \`\`\`
157
+
158
+ ### Via .judgesrc
159
+
160
+ \`\`\`json
161
+ {
162
+ "plugins": ["${name}"]
163
+ }
164
+ \`\`\`
165
+
166
+ ## Adding Rules
167
+
168
+ Create a new file in \`src/rules/\` and add it to the plugin's \`rules\` array in \`src/index.ts\`.
169
+
170
+ ### Pattern-Based Rule
171
+
172
+ \`\`\`ts
173
+ import type { CustomRule } from "@kevinrabun/judges/api";
174
+
175
+ export const myRule: CustomRule = {
176
+ id: "MYORG-001",
177
+ title: "My custom rule",
178
+ severity: "medium",
179
+ judgeId: "cybersecurity",
180
+ description: "What this rule checks.",
181
+ pattern: /dangerousFunction\\(/,
182
+ suggestedFix: "Use safeFunction() instead.",
183
+ };
184
+ \`\`\`
185
+
186
+ ### Function-Based Rule
187
+
188
+ \`\`\`ts
189
+ import type { CustomRule, Finding } from "@kevinrabun/judges/api";
190
+
191
+ export const myAdvancedRule: CustomRule = {
192
+ id: "MYORG-002",
193
+ title: "Advanced custom check",
194
+ severity: "high",
195
+ judgeId: "cybersecurity",
196
+ description: "Complex analysis with custom logic.",
197
+ analyze: (code: string, language: string): Finding[] => {
198
+ const findings: Finding[] = [];
199
+ // Your analysis logic here
200
+ return findings;
201
+ },
202
+ };
203
+ \`\`\`
204
+
205
+ ## License
206
+
207
+ MIT
208
+ `;
209
+ }
210
+ function parseScaffoldArgs(argv) {
211
+ const args = { name: undefined, dir: "." };
212
+ for (let i = 3; i < argv.length; i++) {
213
+ const arg = argv[i];
214
+ if (arg === "--dir" || arg === "-d") {
215
+ args.dir = argv[++i];
216
+ }
217
+ else if (!arg.startsWith("-") && !args.name) {
218
+ args.name = arg;
219
+ }
220
+ }
221
+ return args;
222
+ }
223
+ export function runScaffoldPlugin(argv) {
224
+ const args = parseScaffoldArgs(argv);
225
+ if (!args.name) {
226
+ console.error("Error: Plugin name required.");
227
+ console.error("Usage: judges scaffold-plugin <name> [--dir <path>]");
228
+ process.exit(1);
229
+ }
230
+ const name = args.name;
231
+ const root = resolve(args.dir, name);
232
+ if (existsSync(root)) {
233
+ console.error(`Error: Directory already exists: ${root}`);
234
+ process.exit(1);
235
+ }
236
+ // Create directory structure
237
+ mkdirSync(join(root, "src", "rules"), { recursive: true });
238
+ // Write files
239
+ const files = [
240
+ ["package.json", packageJsonTemplate(name)],
241
+ ["tsconfig.json", tsconfigTemplate()],
242
+ ["README.md", readmeTemplate(name)],
243
+ [join("src", "index.ts"), indexTemplate(name)],
244
+ [join("src", "rules", "example-rule.ts"), exampleRuleTemplate()],
245
+ ];
246
+ for (const [rel, content] of files) {
247
+ writeFileSync(join(root, rel), content, "utf-8");
248
+ }
249
+ console.log("");
250
+ console.log("╔══════════════════════════════════════════════════════════════╗");
251
+ console.log("║ Judges Panel — Plugin Scaffolded ║");
252
+ console.log("╚══════════════════════════════════════════════════════════════╝");
253
+ console.log("");
254
+ console.log(` Created: ${root}`);
255
+ console.log("");
256
+ console.log(" Files:");
257
+ for (const [rel] of files) {
258
+ console.log(` ${rel}`);
259
+ }
260
+ console.log("");
261
+ console.log(" Next steps:");
262
+ console.log(` cd ${name}`);
263
+ console.log(" npm install");
264
+ console.log(" npm run build");
265
+ console.log("");
266
+ console.log(" Then register in your project:");
267
+ console.log(` import plugin from "${name}";`);
268
+ console.log(" registerPlugin(plugin);");
269
+ console.log("");
270
+ }
271
+ //# sourceMappingURL=scaffold-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-plugin.js","sourceRoot":"","sources":["../../src/commands/scaffold-plugin.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -56,4 +56,16 @@ export declare function loadPluginJudges(pluginSpecifiers: string[], baseDir?: s
56
56
  * Returns an array of validation error messages (empty if all valid).
57
57
  */
58
58
  export declare function validatePluginSpecifiers(specifiers: string[]): string[];
59
+ /**
60
+ * Apply path-scoped overrides to a base config for a specific file.
61
+ *
62
+ * Each override entry carries a glob `files` pattern (e.g. `"**\/*.test.ts"`).
63
+ * If the file path matches, the override's partial config is merged on top
64
+ * of the base config. Multiple matching overrides are applied in order.
65
+ *
66
+ * @param config - The resolved base config
67
+ * @param filePath - The relative file path to match against override globs
68
+ * @returns A new config with matching overrides applied
69
+ */
70
+ export declare function applyOverridesForFile(config: JudgesConfig, filePath: string): JudgesConfig;
59
71
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ1E;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA4IzD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,YAAY,CAE5C;AAOD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAgC3F;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAuCrE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAIpF;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAY3E;AAWD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAoB,GAC9C,OAAO,CAAC,eAAe,EAAE,CAAC,CAyD5B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgBvE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ1E;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA8LzD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,YAAY,CAE5C;AAOD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAgC3F;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAkDrE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAIpF;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAY3E;AAWD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAoB,GAC9C,OAAO,CAAC,eAAe,EAAE,CAAC,CAyD5B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgBvE;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAwB1F"}
package/dist/config.js CHANGED
@@ -133,6 +133,54 @@ export function parseConfig(jsonStr) {
133
133
  }
134
134
  config.plugins = obj.plugins;
135
135
  }
136
+ // failOnScoreBelow
137
+ if (obj.failOnScoreBelow !== undefined) {
138
+ if (typeof obj.failOnScoreBelow !== "number" || obj.failOnScoreBelow < 0 || obj.failOnScoreBelow > 10) {
139
+ throw new ConfigError('Invalid .judgesrc: "failOnScoreBelow" must be a number between 0 and 10');
140
+ }
141
+ config.failOnScoreBelow = obj.failOnScoreBelow;
142
+ }
143
+ // judgeWeights
144
+ if (obj.judgeWeights !== undefined) {
145
+ if (typeof obj.judgeWeights !== "object" || obj.judgeWeights === null || Array.isArray(obj.judgeWeights)) {
146
+ throw new ConfigError('Invalid .judgesrc: "judgeWeights" must be an object mapping judge IDs to numbers');
147
+ }
148
+ const weights = {};
149
+ for (const [key, val] of Object.entries(obj.judgeWeights)) {
150
+ if (typeof val !== "number" || val < 0) {
151
+ throw new ConfigError(`Invalid .judgesrc: judgeWeights["${key}"] must be a non-negative number`);
152
+ }
153
+ weights[key] = val;
154
+ }
155
+ config.judgeWeights = weights;
156
+ }
157
+ // overrides
158
+ if (obj.overrides !== undefined) {
159
+ if (!Array.isArray(obj.overrides)) {
160
+ throw new ConfigError('Invalid .judgesrc: "overrides" must be an array of override objects');
161
+ }
162
+ const parsedOverrides = [];
163
+ for (let i = 0; i < obj.overrides.length; i++) {
164
+ const entry = obj.overrides[i];
165
+ if (typeof entry !== "object" || entry === null || typeof entry.files !== "string") {
166
+ throw new ConfigError(`Invalid .judgesrc: overrides[${i}] must have a "files" glob string`);
167
+ }
168
+ // Clone the entry, strip 'files', parse the rest as partial config
169
+ const { files, ...rest } = entry;
170
+ let partial = {};
171
+ if (Object.keys(rest).length > 0) {
172
+ try {
173
+ partial = parseConfig(JSON.stringify(rest));
174
+ }
175
+ catch (e) {
176
+ const msg = e instanceof Error ? e.message : String(e);
177
+ throw new ConfigError(`Invalid .judgesrc: overrides[${i}]: ${msg}`);
178
+ }
179
+ }
180
+ parsedOverrides.push({ files: files, ...partial });
181
+ }
182
+ config.overrides = parsedOverrides;
183
+ }
136
184
  return config;
137
185
  }
138
186
  /**
@@ -222,10 +270,20 @@ export function mergeConfigs(...configs) {
222
270
  merged.baseline = cfg.baseline;
223
271
  if (cfg.format !== undefined)
224
272
  merged.format = cfg.format;
273
+ if (cfg.failOnScoreBelow !== undefined)
274
+ merged.failOnScoreBelow = cfg.failOnScoreBelow;
225
275
  // Deep-merge ruleOverrides
226
276
  if (cfg.ruleOverrides) {
227
277
  merged.ruleOverrides = { ...(merged.ruleOverrides ?? {}), ...cfg.ruleOverrides };
228
278
  }
279
+ // Deep-merge judgeWeights
280
+ if (cfg.judgeWeights) {
281
+ merged.judgeWeights = { ...(merged.judgeWeights ?? {}), ...cfg.judgeWeights };
282
+ }
283
+ // Overrides: concatenate (later entries take precedence naturally)
284
+ if (cfg.overrides) {
285
+ merged.overrides = [...(merged.overrides ?? []), ...cfg.overrides];
286
+ }
229
287
  }
230
288
  return merged;
231
289
  }
@@ -353,4 +411,74 @@ export function validatePluginSpecifiers(specifiers) {
353
411
  }
354
412
  return errors;
355
413
  }
414
+ // ─── Per-File Config Overrides ──────────────────────────────────────────────
415
+ /**
416
+ * Apply path-scoped overrides to a base config for a specific file.
417
+ *
418
+ * Each override entry carries a glob `files` pattern (e.g. `"**\/*.test.ts"`).
419
+ * If the file path matches, the override's partial config is merged on top
420
+ * of the base config. Multiple matching overrides are applied in order.
421
+ *
422
+ * @param config - The resolved base config
423
+ * @param filePath - The relative file path to match against override globs
424
+ * @returns A new config with matching overrides applied
425
+ */
426
+ export function applyOverridesForFile(config, filePath) {
427
+ if (!config.overrides || config.overrides.length === 0) {
428
+ return config;
429
+ }
430
+ // Normalize path separators for glob matching
431
+ const normalized = filePath.replace(/\\/g, "/");
432
+ const matchingOverrides = [];
433
+ for (const override of config.overrides) {
434
+ if (globMatch(normalized, override.files)) {
435
+ // Extract config fields (everything except 'files')
436
+ const { files: _files, ...partial } = override;
437
+ matchingOverrides.push(partial);
438
+ }
439
+ }
440
+ if (matchingOverrides.length === 0) {
441
+ return config;
442
+ }
443
+ // Merge: base config first, then matching overrides in order
444
+ const { overrides: _overrides, ...baseWithoutOverrides } = config;
445
+ return mergeConfigs(baseWithoutOverrides, ...matchingOverrides);
446
+ }
447
+ /**
448
+ * Simple glob matcher supporting `*`, `**`, and `?`.
449
+ * - `*` matches any characters except `/`
450
+ * - `**` matches any characters including `/` (directory recursion)
451
+ * - `?` matches exactly one character except `/`
452
+ */
453
+ function globMatch(path, pattern) {
454
+ // Escape regex special chars except *, ?, and /
455
+ let regex = "";
456
+ for (let i = 0; i < pattern.length; i++) {
457
+ const ch = pattern[i];
458
+ if (ch === "*") {
459
+ if (pattern[i + 1] === "*") {
460
+ // ** — match anything including path separators
461
+ regex += ".*";
462
+ i++; // skip second *
463
+ // Skip optional trailing /
464
+ if (pattern[i + 1] === "/")
465
+ i++;
466
+ }
467
+ else {
468
+ // * — match anything except /
469
+ regex += "[^/]*";
470
+ }
471
+ }
472
+ else if (ch === "?") {
473
+ regex += "[^/]";
474
+ }
475
+ else if (".+^${}()|[]\\".includes(ch)) {
476
+ regex += "\\" + ch;
477
+ }
478
+ else {
479
+ regex += ch;
480
+ }
481
+ }
482
+ return new RegExp("^" + regex + "$", "i").test(path);
483
+ }
356
484
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export declare class DiskCache<T = unknown> {
2
+ private dir;
3
+ private maxEntries;
4
+ private maxAgeMs;
5
+ private index;
6
+ constructor(options?: {
7
+ cacheDir?: string;
8
+ maxEntries?: number;
9
+ maxAgeMs?: number;
10
+ });
11
+ /** Compute a cache key from code + language. */
12
+ static key(code: string, language: string): string;
13
+ /** Retrieve a cached result, or undefined if miss / stale. */
14
+ get(key: string): T | undefined;
15
+ /** Store a result on disk. */
16
+ set(key: string, value: T, filePath?: string): void;
17
+ /** Check if a key exists (not stale). */
18
+ has(key: string): boolean;
19
+ /** Remove all cache entries. */
20
+ clear(): void;
21
+ /** Number of entries currently cached. */
22
+ get size(): number;
23
+ private entryPath;
24
+ private indexPath;
25
+ private ensureDir;
26
+ private loadIndex;
27
+ private saveIndex;
28
+ private evictEntry;
29
+ private enforceLimit;
30
+ }
31
+ /**
32
+ * Get or create the shared disk cache instance.
33
+ * Returns null if disk caching is disabled via JUDGES_NO_DISK_CACHE=1.
34
+ */
35
+ export declare function getSharedDiskCache(): DiskCache | null;
36
+ /**
37
+ * Clear the shared disk cache (useful in tests).
38
+ */
39
+ export declare function clearSharedDiskCache(): void;
40
+ //# sourceMappingURL=disk-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-cache.d.ts","sourceRoot":"","sources":["../src/disk-cache.ts"],"names":[],"mappings":"AA6CA,qBAAa,SAAS,CAAC,CAAC,GAAG,OAAO;IAChC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAa;gBAEd,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IASnF,gDAAgD;IAChD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIlD,8DAA8D;IAC9D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IA4B/B,8BAA8B;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBnD,yCAAyC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAWzB,gCAAgC;IAChC,KAAK,IAAI,IAAI;IAgBb,0CAA0C;IAC1C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,YAAY;CAgBrB;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,GAAG,IAAI,CAMrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}