@fairfox/polly 0.85.1 → 0.86.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 (120) hide show
  1. package/dist/cli/polly.js.map +1 -1
  2. package/dist/gallery/gallery.css +1 -1
  3. package/dist/gallery/gallery.js +2 -27
  4. package/dist/scripts/build-extension.js.map +1 -1
  5. package/dist/src/actions/index.js +34 -32
  6. package/dist/src/actions/index.js.map +2 -2
  7. package/dist/src/background/index.js +24 -22
  8. package/dist/src/background/index.js.map +2 -2
  9. package/dist/src/background/message-router.js +21 -19
  10. package/dist/src/background/message-router.js.map +2 -2
  11. package/dist/src/client/index.js +9 -7
  12. package/dist/src/client/index.js.map +3 -3
  13. package/dist/src/client/wrapper.d.ts +3 -3
  14. package/dist/src/elysia/index.d.ts +1 -1
  15. package/dist/src/elysia/index.js +25 -23
  16. package/dist/src/elysia/index.js.map +2 -2
  17. package/dist/src/elysia/types.d.ts +11 -2
  18. package/dist/src/index.js +68 -64
  19. package/dist/src/index.js.map +3 -3
  20. package/dist/src/mesh-node.js +6 -6
  21. package/dist/src/mesh-node.js.map +1 -1
  22. package/dist/src/mesh.js +92 -90
  23. package/dist/src/mesh.js.map +2 -2
  24. package/dist/src/peer.js +83 -52
  25. package/dist/src/peer.js.map +3 -3
  26. package/dist/src/polly-ui/index.css +1 -1
  27. package/dist/src/polly-ui/index.js +37 -35
  28. package/dist/src/polly-ui/index.js.map +2 -2
  29. package/dist/src/polly-ui/markdown.js +233 -96
  30. package/dist/src/polly-ui/markdown.js.map +4 -4
  31. package/dist/src/polly-ui/styles.css +1 -1
  32. package/dist/src/shared/adapters/index.js +30 -28
  33. package/dist/src/shared/adapters/index.js.map +2 -2
  34. package/dist/src/shared/lib/context-helpers.js +23 -21
  35. package/dist/src/shared/lib/context-helpers.js.map +2 -2
  36. package/dist/src/shared/lib/errors.js +16 -14
  37. package/dist/src/shared/lib/errors.js.map +2 -2
  38. package/dist/src/shared/lib/guards.js +11 -9
  39. package/dist/src/shared/lib/guards.js.map +2 -2
  40. package/dist/src/shared/lib/message-bus.js +24 -22
  41. package/dist/src/shared/lib/message-bus.js.map +2 -2
  42. package/dist/src/shared/lib/peer-relay-adapter.d.ts +6 -0
  43. package/dist/src/shared/lib/resource.js +19 -15
  44. package/dist/src/shared/lib/resource.js.map +3 -3
  45. package/dist/src/shared/lib/state.js +26 -22
  46. package/dist/src/shared/lib/state.js.map +3 -3
  47. package/dist/src/shared/lib/test-helpers.js +11 -9
  48. package/dist/src/shared/lib/test-helpers.js.map +2 -2
  49. package/dist/src/shared/state/app-state.js +22 -18
  50. package/dist/src/shared/state/app-state.js.map +3 -3
  51. package/dist/src/shared/types/messages.js +11 -9
  52. package/dist/src/shared/types/messages.js.map +2 -2
  53. package/dist/tools/bdd/src/cli.js +44 -1
  54. package/dist/tools/bdd/src/cli.js.map +4 -4
  55. package/dist/tools/bdd/src/index.js +54 -11
  56. package/dist/tools/bdd/src/index.js.map +4 -4
  57. package/dist/tools/gallery/src/cli.js +1 -1
  58. package/dist/tools/gallery/src/cli.js.map +2 -2
  59. package/dist/tools/init/src/cli.js +1 -1
  60. package/dist/tools/init/src/cli.js.map +2 -2
  61. package/dist/tools/mutate/src/cli.js +1 -1
  62. package/dist/tools/mutate/src/cli.js.map +2 -2
  63. package/dist/tools/mutate/src/index.js +8 -8
  64. package/dist/tools/mutate/src/index.js.map +2 -2
  65. package/dist/tools/quality/src/cli.js +3 -2
  66. package/dist/tools/quality/src/cli.js.map +3 -3
  67. package/dist/tools/quality/src/index.js +37 -36
  68. package/dist/tools/quality/src/index.js.map +3 -3
  69. package/dist/tools/test/src/adapters/index.js +19 -17
  70. package/dist/tools/test/src/adapters/index.js.map +2 -2
  71. package/dist/tools/test/src/browser/index.js +15 -13
  72. package/dist/tools/test/src/browser/index.js.map +2 -2
  73. package/dist/tools/test/src/browser/run.js +12 -3
  74. package/dist/tools/test/src/browser/run.js.map +5 -4
  75. package/dist/tools/test/src/contrast/index.js +14 -12
  76. package/dist/tools/test/src/contrast/index.js.map +2 -2
  77. package/dist/tools/test/src/coverage-policy/cli.js +5 -5
  78. package/dist/tools/test/src/coverage-policy/cli.js.map +2 -2
  79. package/dist/tools/test/src/coverage-policy/index.js +12 -12
  80. package/dist/tools/test/src/coverage-policy/index.js.map +1 -1
  81. package/dist/tools/test/src/e2e-mesh/index.js +88 -50
  82. package/dist/tools/test/src/e2e-mesh/index.js.map +6 -5
  83. package/dist/tools/test/src/e2e-mesh/with-relay.d.ts +1 -1
  84. package/dist/tools/test/src/e2e-relay/index.js +3 -3
  85. package/dist/tools/test/src/e2e-relay/index.js.map +2 -2
  86. package/dist/tools/test/src/e2e-shared/ephemeral-port.d.ts +73 -0
  87. package/dist/tools/test/src/e2e-shared/index.d.ts +1 -0
  88. package/dist/tools/test/src/index.d.ts +1 -0
  89. package/dist/tools/test/src/index.js +68 -24
  90. package/dist/tools/test/src/index.js.map +4 -3
  91. package/dist/tools/test/src/test-utils.js +14 -12
  92. package/dist/tools/test/src/test-utils.js.map +2 -2
  93. package/dist/tools/test/src/tiers/budget.d.ts +32 -0
  94. package/dist/tools/test/src/tiers/cli.js +35 -5
  95. package/dist/tools/test/src/tiers/cli.js.map +6 -5
  96. package/dist/tools/test/src/tiers/index.d.ts +1 -0
  97. package/dist/tools/test/src/tiers/reporter.d.ts +0 -5
  98. package/dist/tools/test/src/tiers/types.d.ts +9 -0
  99. package/dist/tools/test/src/tiers/worker.js +1 -1
  100. package/dist/tools/test/src/tiers/worker.js.map +1 -1
  101. package/dist/tools/test/src/visual/index.js +121 -119
  102. package/dist/tools/test/src/visual/index.js.map +2 -2
  103. package/dist/tools/verify/specs/README.md +18 -0
  104. package/dist/tools/verify/specs/tla/MeshState.cfg +1 -1
  105. package/dist/tools/verify/specs/tla/MeshState.tla +7 -0
  106. package/dist/tools/verify/specs/tla/MessageRouter.cfg +4 -2
  107. package/dist/tools/verify/specs/tla/MessageRouter.tla +45 -10
  108. package/dist/tools/verify/specs/tla/PeerState.cfg +1 -1
  109. package/dist/tools/verify/specs/tla/PeerState.tla +7 -0
  110. package/dist/tools/verify/specs/tla/README.md +1 -1
  111. package/dist/tools/verify/src/cli.js +258 -202
  112. package/dist/tools/verify/src/cli.js.map +12 -11
  113. package/dist/tools/verify/src/config.d.ts +25 -0
  114. package/dist/tools/verify/src/config.js +18 -16
  115. package/dist/tools/verify/src/config.js.map +3 -3
  116. package/dist/tools/verify/src/stryker/index.js +6 -6
  117. package/dist/tools/verify/src/stryker/index.js.map +1 -1
  118. package/dist/tools/visualize/src/cli.js +439 -47
  119. package/dist/tools/visualize/src/cli.js.map +7 -5
  120. package/package.json +2 -2
@@ -12,7 +12,7 @@
12
12
  "/**\n * No-as-casting conformance check.\n *\n * Bans all TypeScript type assertions (`as Type`) except the allowed\n * patterns: `as const` (literal narrowing), `as unknown as` (explicit\n * escape hatch), import/export renames, and `as` inside strings or\n * comments. Violations include pattern-specific fix advice.\n *\n * This module exports the check logic as a library so consuming\n * applications can import it from `@fairfox/polly/quality` and run it\n * programmatically. Polly's own `scripts/check-no-as-casting.ts` is a\n * thin CLI wrapper around these exports.\n */\n\nimport { readFileSync } from \"node:fs\";\nimport { Glob } from \"bun\";\nimport { logger } from \"./logger\";\n\nexport interface Violation {\n file: string;\n line: number;\n content: string;\n advice?: string;\n}\n\nexport interface CheckResult {\n violations: Violation[];\n print: () => void;\n}\n\nexport interface CheckOptions {\n rootDir: string;\n exclude?: string[];\n excludePackages?: string[];\n excludeFiles?: string[];\n filePatterns?: string;\n}\n\n/**\n * Check whether a line contains a forbidden `as` type assertion.\n * Returns true if the line is clean (no violation), false if it violates.\n */\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Source-text scanning with many skip rules is inherently branchy.\nexport function isLineClean(line: string): boolean {\n if (!line.includes(\" as \")) return true;\n\n const trimmed = line.trim();\n\n // Full-line comments\n if (trimmed.startsWith(\"//\") || trimmed.startsWith(\"*\") || trimmed.startsWith(\"/*\")) {\n return true;\n }\n\n // as const (literal narrowing)\n if (line.match(/\\bas const\\b/)) {\n const withoutAsConst = line.replace(/\\bas const\\b/g, \"\");\n if (!withoutAsConst.includes(\" as \")) return true;\n }\n\n // as unknown as (explicit escape hatch)\n if (line.includes(\" as unknown as \") || line.trimEnd().endsWith(\"as unknown as\")) {\n const withoutEscapeHatch = line.replace(/\\bas unknown as\\b/g, \"\");\n if (!withoutEscapeHatch.includes(\" as \")) return true;\n }\n\n // Import/export renames\n if (\n line.match(/\\b(import|export)\\s+.*\\s+as\\s+\\w+/) ||\n line.match(/\\b(import|export)\\s+\\*\\s+as\\s+\\w+/) ||\n line.match(/\\b(import|export)\\s+type\\s+.*\\s+as\\s+\\w+/) ||\n line.match(/^\\s*\\w+\\s+as\\s+\\w+,?\\s*$/) ||\n line.match(/^\\s*type\\s+\\w+\\s+as\\s+\\w+,?\\s*$/)\n ) {\n return true;\n }\n\n // Property declarations: as= or as: or as,\n if (line.match(/\\bas\\s*[=:,]/)) return true;\n\n // String literal detection: count quotes before each ` as ` occurrence.\n // If any quote type has an odd count, the ` as ` is inside a string.\n if (everyAsInsideString(line)) return true;\n\n // JSX text: ` as ` between > and < with no code syntax around it\n if (isJsxText(trimmed)) return true;\n\n // Plain text heuristic: indented line with no code syntax characters\n // before ` as ` — catches multiline JSX text and template literal bodies.\n if (isPlainText(trimmed)) return true;\n\n // Inline comment: ` as ` appears only after //\n const commentIdx = line.indexOf(\"//\");\n if (commentIdx >= 0 && line.indexOf(\" as \", commentIdx) >= 0) {\n const beforeComment = line.substring(0, commentIdx);\n if (!beforeComment.includes(\" as \")) return true;\n }\n\n // SQL alias: `) as column_name`\n if (line.match(/\"\\)\\s+as\\s+\\w+\"/)) return true;\n\n if (line.includes(\" satisfies \")) return true;\n\n return false;\n}\n\n/**\n * Returns true when every ` as ` occurrence in the line falls inside a\n * string literal (single-quoted, double-quoted, or backtick).\n */\nfunction everyAsInsideString(line: string): boolean {\n let searchFrom = 0;\n while (true) {\n const idx = line.indexOf(\" as \", searchFrom);\n if (idx < 0) return true; // no more ` as ` to check\n const before = line.substring(0, idx);\n const singleQuotes = (before.match(/'/g) ?? []).length;\n const doubleQuotes = (before.match(/\"/g) ?? []).length;\n const backticks = (before.match(/`/g) ?? []).length;\n if (singleQuotes % 2 === 0 && doubleQuotes % 2 === 0 && backticks % 2 === 0) {\n return false; // this ` as ` is outside any string\n }\n searchFrom = idx + 4;\n }\n}\n\n/**\n * Detects JSX text content — ` as ` appearing between > and < with no\n * code-like syntax around it (no braces, semicolons, equals signs).\n */\nfunction isJsxText(trimmed: string): boolean {\n // Classic JSX text: starts after > or is plain text ending before <\n if (trimmed.match(/^[^{};=()]*\\bas\\b[^{};=()]*$/)) {\n // No code syntax at all — could be JSX text or template literal body.\n // Reject if it looks like a type assertion (word ` as ` TypeName pattern\n // where TypeName starts with uppercase, or is a known TS type).\n if (\n !trimmed.match(/\\bas\\s+[A-Z]\\w*/) &&\n !trimmed.match(/\\bas\\s+(string|number|boolean|any|unknown|never)\\b/)\n ) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Heuristic for plain text in template literals or JSX: the line has no\n * code-like characters before ` as ` — no `=`, `{`, `}`, `:`, `;`, `(`.\n */\nfunction isPlainText(trimmed: string): boolean {\n const idx = trimmed.indexOf(\" as \");\n if (idx < 0) return false;\n const before = trimmed.substring(0, idx);\n // If nothing before ` as ` looks like code, it's probably prose.\n return (\n !before.match(/[={}:;(]/) &&\n !before.match(/\\b(const|let|var|type|interface|function|return|await)\\b/)\n );\n}\n\n/**\n * Suggest a concrete fix for a specific violation pattern.\n */\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Pattern-matching advice is a linear chain of if-returns.\nexport function suggestFix(line: string): string | undefined {\n if (line.includes(\"JSON.parse\")) {\n return \"Use a validation function or type guard to parse and validate the result.\";\n }\n if (\n line.includes(\"as HTMLInputElement\") ||\n line.includes(\"as HTMLTextAreaElement\") ||\n line.includes(\"as HTMLButtonElement\")\n ) {\n return \"Use instanceof: if (el instanceof HTMLInputElement) { el.value ... }\";\n }\n if (line.includes(\"as HTMLElement\") || line.includes(\"as Element\")) {\n return \"Use instanceof: if (el instanceof HTMLElement) { ... }\";\n }\n if (line.includes(\".doc()\") && line.includes(\"as \")) {\n return \"Type the DocHandle generic: repo.find<MyType>(id) returns DocHandle<MyType>.\";\n }\n if (\n line.includes(\"Record<string, unknown>\") &&\n (line.includes(\"window\") || line.includes(\"globalThis\"))\n ) {\n return \"Extract a type guard: function getGlobalProp(name: string): unknown { ... }\";\n }\n if (line.includes(\"Record<string, unknown>\")) {\n return \"Use a type guard function that narrows the unknown value to the target shape.\";\n }\n if (line.includes(\"as PeerId\") || line.includes(\"as DocumentId\")) {\n return \"Use the library's branded-type constructor if available, or centralise the cast in a factory.\";\n }\n if (line.includes(\"as string\") || line.includes(\"as number\") || line.includes(\"as boolean\")) {\n return \"Narrow with typeof: if (typeof x === 'string') { ... }\";\n }\n if (line.includes(\"as any\")) {\n return \"Replace 'any' with 'unknown' and add a type guard or validation at the boundary.\";\n }\n return undefined;\n}\n\nfunction isFileExcluded(\n relative: string,\n excludeDirs: Set<string>,\n excludePackages: Set<string>,\n excludeFiles: Set<string>\n): boolean {\n const segments = relative.split(\"/\");\n if (segments.some((s) => excludeDirs.has(s))) return true;\n if (excludePackages.size > 0 && segments.some((s) => excludePackages.has(s))) return true;\n const basename = segments[segments.length - 1] ?? \"\";\n return excludeFiles.has(basename) || excludeFiles.has(relative);\n}\n\nfunction findViolations(relative: string, content: string): Violation[] {\n const results: Violation[] = [];\n const lines = content.split(\"\\n\");\n let insideTemplate = false;\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i] ?? \"\";\n const backticks = (line.match(/`/g) ?? []).length;\n const startedInTemplate = insideTemplate;\n if (backticks % 2 === 1) insideTemplate = !insideTemplate;\n\n // Line is entirely inside a multi-line template literal and has no\n // interpolation — treat as string content (e.g. SQL column aliases).\n if (startedInTemplate && backticks === 0 && !line.includes(\"${\")) continue;\n\n if (!isLineClean(line)) {\n results.push({\n file: relative,\n line: i + 1,\n content: line.trim(),\n advice: suggestFix(line.trim()),\n });\n }\n }\n return results;\n}\n\nfunction printViolations(violations: Violation[]): void {\n if (violations.length === 0) {\n logger.log(\"[no-as-casting] ✅ No violations found.\");\n return;\n }\n logger.log(`[no-as-casting] ❌ ${violations.length} violation(s) found:\\n`);\n for (const v of violations) {\n logger.log(` ${v.file}:${v.line}`);\n logger.log(` ${v.content}`);\n if (v.advice) logger.log(` 💡 ${v.advice}`);\n logger.log(\"\");\n }\n logger.log(\"[no-as-casting] Use type guards, validation, or fix the types at the source.\");\n logger.log('[no-as-casting] Only \"as const\" and \"as unknown as\" are allowed.');\n}\n\n/**\n * Run the no-as-casting check against a directory. Returns a result\n * object with the violations and a print function for CLI output.\n */\nexport async function checkNoAsCasting(options: CheckOptions): Promise<CheckResult> {\n const rootDir = options.rootDir;\n const excludeDirs = new Set(options.exclude ?? [\"node_modules\", \"dist\", \".git\", \".bun\"]);\n const excludePackages = new Set(options.excludePackages ?? []);\n const excludeFiles = new Set(options.excludeFiles ?? []);\n const pattern = options.filePatterns ?? \"**/*.{ts,tsx}\";\n const glob = new Glob(pattern);\n const violations: Violation[] = [];\n\n for await (const file of glob.scan({ cwd: rootDir, absolute: true })) {\n const relative = file.replace(`${rootDir}/`, \"\");\n if (isFileExcluded(relative, excludeDirs, excludePackages, excludeFiles)) continue;\n const content = readFileSync(file, \"utf-8\");\n violations.push(...findViolations(relative, content));\n }\n\n return { violations, print: () => printViolations(violations) };\n}\n",
13
13
  "/**\n * No-fixed-waits conformance check.\n *\n * Bans fixed-duration sleeps: `page.waitForTimeout(n)`, `Bun.sleep(n)`, and a\n * `setTimeout` wrapped in a promise purely to resolve it. A fixed sleep encodes\n * an assumption about how fast the machine is — it passes on an idle machine\n * and fails on a loaded one, which is the root cause of flaky tests. Wait on a\n * real condition instead (a poll loop, a web-first assertion, a microtask\n * flush), or use the project's one sanctioned delay primitive where the wait\n * itself is the behaviour (rate-limit backoff, deliberate pacing).\n *\n * A plain `setTimeout(realCallback, n)` — a debounce, a throttle, a recursive\n * poll step — is NOT flagged; only the promise-resolving shape is the\n * anti-pattern. Point `excludeFiles` at the modules that define the blessed\n * delay/poll primitives (they necessarily contain a `setTimeout`).\n *\n * Exported from `@fairfox/polly/quality` so consumers run it programmatically;\n * polly registers it as the `polly:no-fixed-waits` plugin check. Ported from\n * the rule lingua and fairfox each maintained independently.\n */\n\nimport { readFileSync } from \"node:fs\";\nimport { Glob } from \"bun\";\nimport { logger } from \"./logger\";\n\nexport interface FixedWaitViolation {\n file: string;\n line: number;\n content: string;\n message: string;\n}\n\nexport interface NoFixedWaitsResult {\n violations: FixedWaitViolation[];\n print: () => void;\n}\n\nexport interface NoFixedWaitsOptions {\n rootDir: string;\n /** Directory names skipped anywhere in the path. */\n exclude?: string[];\n /**\n * Path suffixes skipped entirely — point these at the blessed delay/poll\n * primitives (e.g. `src/utils/poll.ts`) which legitimately call setTimeout.\n */\n excludeFiles?: string[];\n /** Glob of files to scan. Defaults to `**\\/*.{ts,tsx}`. */\n filePatterns?: string;\n}\n\nconst HINT =\n \"wait on a real condition (poll loop, web-first assertion, microtask flush) or a sanctioned delay primitive\";\n\nconst RULES: Array<{ pattern: RegExp; message: string }> = [\n { pattern: /\\.waitForTimeout\\s*\\(/, message: `waitForTimeout is a fixed sleep — ${HINT}` },\n { pattern: /\\bBun\\.sleep\\s*\\(/, message: `Bun.sleep is a fixed sleep — ${HINT}` },\n {\n pattern: /\\bsetTimeout\\s*\\(\\s*(?:resolve|r|res|done)\\s*,/,\n message: `setTimeout resolving a promise is a fixed sleep — ${HINT}`,\n },\n {\n pattern: /\\bsetTimeout\\s*\\(\\s*\\(\\s*\\)\\s*=>\\s*(?:resolve|r|res|done)\\b/,\n message: `setTimeout resolving a promise is a fixed sleep — ${HINT}`,\n },\n {\n pattern: /new\\s+Promise\\b.*\\(\\s*\\(?\\s*([A-Za-z_$][\\w$]*)\\s*\\)?\\s*=>.*\\bsetTimeout\\s*\\(\\s*\\1\\b/,\n message: `Promise wrapping setTimeout is a fixed sleep — ${HINT}`,\n },\n];\n\nconst DEFAULT_EXCLUDE = [\"node_modules\", \"dist\", \".git\", \".bun\", \"build\", \"coverage\"];\n\n/** Advance past a string literal opened at `i`; returns the closing-quote index. */\nfunction skipString(text: string, i: number): number {\n const quote = text[i];\n if (quote !== '\"' && quote !== \"'\" && quote !== \"`\") return i;\n let j = i + 1;\n while (j < text.length && text[j] !== quote) {\n if (text[j] === \"\\\\\") j++;\n j++;\n }\n return j;\n}\n\n/**\n * Reduce a line to its executable code: string literal bodies are blanked and\n * any trailing `// …` comment is dropped. Keeps a banned pattern that only\n * appears inside a doc string or a comment from being flagged.\n */\nfunction codeOnly(line: string): string {\n let out = \"\";\n for (let i = 0; i < line.length; i++) {\n const ch = line[i];\n if (ch === '\"' || ch === \"'\" || ch === \"`\") {\n const end = skipString(line, i);\n out += \" \".repeat(end - i + 1);\n i = end;\n continue;\n }\n if (ch === \"/\" && line[i + 1] === \"/\") break;\n out += ch;\n }\n return out;\n}\n\n/**\n * Scan file text for fixed-wait violations. Exported so it can be unit-tested\n * directly without touching the filesystem.\n */\nexport function scanText(content: string, filePath = \"<text>\"): FixedWaitViolation[] {\n const violations: FixedWaitViolation[] = [];\n const lines = content.split(\"\\n\");\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i] ?? \"\";\n const trimmed = line.trim();\n if (\n trimmed === \"\" ||\n trimmed.startsWith(\"//\") ||\n trimmed.startsWith(\"*\") ||\n trimmed.startsWith(\"/*\")\n ) {\n continue;\n }\n const code = codeOnly(line);\n const rule = RULES.find((r) => r.pattern.test(code));\n if (rule)\n violations.push({ file: filePath, line: i + 1, content: trimmed, message: rule.message });\n }\n return violations;\n}\n\nfunction isExcluded(relative: string, excludeDirs: Set<string>, excludeFiles: string[]): boolean {\n if (relative.split(\"/\").some((s) => excludeDirs.has(s))) return true;\n const normalized = relative.replace(/\\\\/g, \"/\");\n return excludeFiles.some((suffix) => normalized.endsWith(suffix));\n}\n\nfunction printViolations(violations: FixedWaitViolation[]): void {\n if (violations.length === 0) {\n logger.log(\"[no-fixed-waits] ✅ No violations found.\");\n return;\n }\n logger.log(`[no-fixed-waits] ❌ ${violations.length} fixed-duration wait(s) found:\\n`);\n for (const v of violations) {\n logger.log(` ${v.file}:${v.line}`);\n logger.log(` ${v.content}`);\n logger.log(` 💡 ${v.message}`);\n logger.log(\"\");\n }\n}\n\n/**\n * Run the no-fixed-waits check against a directory. Returns the violations\n * plus a `print` for CLI output, mirroring `checkNoAsCasting`.\n */\nexport async function checkNoFixedWaits(options: NoFixedWaitsOptions): Promise<NoFixedWaitsResult> {\n const { rootDir } = options;\n const excludeDirs = new Set(options.exclude ?? DEFAULT_EXCLUDE);\n const excludeFiles = [...(options.excludeFiles ?? []), \"no-fixed-waits.ts\"];\n const glob = new Glob(options.filePatterns ?? \"**/*.{ts,tsx}\");\n const violations: FixedWaitViolation[] = [];\n\n for await (const file of glob.scan({ cwd: rootDir, absolute: true })) {\n const relative = file.replace(`${rootDir}/`, \"\");\n if (isExcluded(relative, excludeDirs, excludeFiles)) continue;\n violations.push(...scanText(readFileSync(file, \"utf-8\"), relative));\n }\n\n return { violations, print: () => printViolations(violations) };\n}\n",
14
14
  "/**\n * No-require conformance check.\n *\n * Bans `require(...)` calls in TypeScript source. Inline CommonJS\n * escapes defeat bundler static analysis, hide cross-module\n * dependencies, and quietly opt a module out of ESM semantics that\n * the rest of the codebase depends on. The motivating incident was a\n * consumer app that shipped\n *\n * const { renameSync } = require(\"node:fs\") as typeof import(\"node:fs\");\n *\n * wedged mid-function — the `as` cast alone violated no-as-casting,\n * but the underlying sin was the require call. Static ES imports\n * round-trip through every bundler and every IDE; `require` does\n * neither.\n *\n * Allowed: `import` / `export` syntax of any flavour, `import(...)`\n * dynamic imports (they're ESM), `require.resolve(...)` (sometimes\n * load-bearing for runtime path resolution), and occurrences inside\n * strings or comments.\n */\n\nimport { readFileSync } from \"node:fs\";\nimport { Glob } from \"bun\";\nimport { logger } from \"./logger\";\n\nexport interface NoRequireViolation {\n file: string;\n line: number;\n content: string;\n}\n\nexport interface NoRequireCheckResult {\n violations: NoRequireViolation[];\n print: () => void;\n}\n\nexport interface NoRequireCheckOptions {\n rootDir: string;\n exclude?: string[];\n /** Glob of files to scan. Defaults to `**` /`*.{ts,tsx}`. */\n filePatterns?: string;\n}\n\n/**\n * Returns true when the line contains no forbidden `require(` call.\n * Mirrors the shape of `isLineClean` in no-as-casting for\n * consistency; the two rules compose cleanly when both run against\n * the same file.\n */\nexport function isLineRequireClean(line: string): boolean {\n if (!line.includes(\"require\")) {\n return true;\n }\n const trimmed = line.trim();\n if (trimmed.startsWith(\"//\") || trimmed.startsWith(\"*\") || trimmed.startsWith(\"/*\")) {\n return true;\n }\n const match = line.match(/\\brequire\\s*\\(/);\n if (!match || match.index === undefined) {\n return true;\n }\n // Allow `require.resolve(...)` — a legitimate runtime-path helper\n // that preserves static analysis for the referenced module.\n if (line.slice(0, match.index + 8).endsWith(\"require.resolve(\")) {\n return true;\n }\n // String literal detection: odd number of unescaped quotes before\n // the match means we're mid-string.\n const before = line.slice(0, match.index);\n const singles = (before.match(/(?<!\\\\)'/g) ?? []).length;\n const doubles = (before.match(/(?<!\\\\)\"/g) ?? []).length;\n const backticks = (before.match(/(?<!\\\\)`/g) ?? []).length;\n if (singles % 2 === 1 || doubles % 2 === 1 || backticks % 2 === 1) {\n return true;\n }\n // Inline comment: `require(` appears only after `//`.\n const commentIdx = line.indexOf(\"//\");\n if (commentIdx >= 0 && match.index > commentIdx) {\n return true;\n }\n return false;\n}\n\nfunction findRequireViolations(relative: string, content: string): NoRequireViolation[] {\n const results: NoRequireViolation[] = [];\n const lines = content.split(\"\\n\");\n let insideTemplate = false;\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i] ?? \"\";\n const backticks = (line.match(/`/g) ?? []).length;\n const startedInTemplate = insideTemplate;\n if (backticks % 2 === 1) {\n insideTemplate = !insideTemplate;\n }\n // Skip lines that are entirely inside a multi-line template\n // literal (e.g. an embedded code example in a doc comment).\n if (startedInTemplate && backticks === 0 && !line.includes(\"${\")) {\n continue;\n }\n if (!isLineRequireClean(line)) {\n results.push({ file: relative, line: i + 1, content: line.trim() });\n }\n }\n return results;\n}\n\nfunction printRequireViolations(violations: NoRequireViolation[]): void {\n if (violations.length === 0) {\n logger.log(\"[no-require] ✅ No violations found.\");\n return;\n }\n logger.log(`[no-require] ❌ ${violations.length} violation(s) found:\\n`);\n for (const v of violations) {\n logger.log(` ${v.file}:${v.line}`);\n logger.log(` ${v.content}`);\n logger.log(\"\");\n }\n logger.log(\"[no-require] Replace with static ES imports or `await import(...)` for lazy ESM.\");\n}\n\nexport async function checkNoRequire(\n options: NoRequireCheckOptions\n): Promise<NoRequireCheckResult> {\n const rootDir = options.rootDir;\n const excludeDirs = new Set(options.exclude ?? [\"node_modules\", \"dist\", \".git\", \".bun\"]);\n const pattern = options.filePatterns ?? \"**/*.{ts,tsx}\";\n const glob = new Glob(pattern);\n const violations: NoRequireViolation[] = [];\n\n for await (const file of glob.scan({ cwd: rootDir, absolute: true })) {\n const relative = file.replace(`${rootDir}/`, \"\");\n const segments = relative.split(\"/\");\n if (segments.some((s) => excludeDirs.has(s))) {\n continue;\n }\n const content = readFileSync(file, \"utf-8\");\n violations.push(...findRequireViolations(relative, content));\n }\n\n return {\n violations,\n print: () => printRequireViolations(violations),\n };\n}\n",
15
- "/**\n * No-tautology-ensures conformance check.\n *\n * Refuses `ensures(...)` / `requires(...)` calls whose predicate (the\n * first positional argument) is a tautology: a bare literal (`true`,\n * `false`, `null`, `undefined`, a number, a string) or a comparison of\n * two literals (`1 === 1`). These primitives are Polly's formal-verify\n * contracts — `ensures`/`requires` (and the wider verify family the\n * Stryker ignorer lists in `tools/verify/src/stryker`) compile away at\n * runtime and translate to TLA+ assertions under verification. A\n * tautological predicate therefore asserts nothing, yet reads in review\n * like a genuine safety check. Swapping a real predicate for `true`\n * looks like a refactor and silently disables the only guard on a\n * one-step handler; this lint stops that rewrite from merging.\n *\n * This module exports the check logic as a library so consuming\n * applications can import it from `@fairfox/polly/quality` and run it\n * programmatically. It is registered as the `polly:no-tautology-ensures`\n * plugin check, so it also runs via `polly quality run`.\n *\n * The scan is text-based, not AST-based: the only call sites are\n * `ensures(<expr>, '<message>')` / `requires(<expr>, '<message>')` with\n * the predicate as the first argument, so a balanced-paren walk that\n * skips string and comment content is sufficient and keeps the false\n * positive rate at zero.\n */\n\nimport { readFileSync } from \"node:fs\";\nimport { Glob } from \"bun\";\nimport { logger } from \"./logger\";\n\nexport interface TautologyViolation {\n file: string;\n line: number;\n content: string;\n reason: string;\n}\n\nexport interface NoTautologyEnsuresResult {\n violations: TautologyViolation[];\n print: () => void;\n}\n\nexport interface NoTautologyEnsuresOptions {\n rootDir: string;\n /** Directory names skipped anywhere in the path. */\n exclude?: string[];\n /** Basenames or relative paths skipped entirely. */\n excludeFiles?: string[];\n /** Glob of files to scan. Defaults to `**\\/*.{ts,tsx}`. */\n filePatterns?: string;\n /**\n * Verify primitives whose first argument is a runtime-inert predicate.\n * Defaults to the predicate-taking pair `ensures` / `requires`; pass a\n * wider set (e.g. `invariant`, `stateConstraint`) to match a project's\n * own usage.\n */\n primitives?: string[];\n}\n\nconst DEFAULT_PRIMITIVES = [\"ensures\", \"requires\"];\n// `tests`, `__tests__`, and `examples` are excluded by default: a tautological\n// `ensures(true, …)` is legitimate there (fixtures exercising the primitive),\n// so flagging it would be noise. Consumers can override `exclude` to widen.\nconst DEFAULT_EXCLUDE = [\n \"node_modules\",\n \"dist\",\n \".git\",\n \".bun\",\n \"coverage\",\n \"specs\",\n \"tests\",\n \"__tests__\",\n \"examples\",\n];\n\nconst LITERAL = /^(true|false|null|undefined|\\d+(\\.\\d+)?|\"[^\"]*\"|'[^']*'|`[^`]*`)$/;\n\n/**\n * Classify a predicate string. Returns the tautology reason, or\n * `undefined` when the predicate references state and is therefore a\n * real assertion. Conservative by design: only the explicit literal and\n * literal-vs-literal forms are flagged, so anything touching an\n * identifier or property access passes.\n */\nexport function tautologyReason(predicate: string): string | undefined {\n const trimmed = predicate.trim();\n if (LITERAL.test(trimmed)) return `literal '${trimmed}'`;\n\n const cmp = trimmed.match(/^(.+?)\\s*(===|!==|==|!=)\\s*(.+)$/);\n if (cmp) {\n const lhs = cmp[1]?.trim() ?? \"\";\n const rhs = cmp[3]?.trim() ?? \"\";\n if (LITERAL.test(lhs) && LITERAL.test(rhs)) return `literal-vs-literal '${trimmed}'`;\n }\n return undefined;\n}\n\n/**\n * If `text[i]` opens a string literal, return the index of its closing\n * quote (skipping escapes); otherwise return `i` unchanged. Lets the\n * paren/comma walkers treat string bodies as opaque without inlining the\n * scan logic at each call site.\n */\nfunction skipString(text: string, i: number): number {\n const quote = text[i];\n if (quote !== '\"' && quote !== \"'\" && quote !== \"`\") return i;\n let j = i + 1;\n while (j < text.length && text[j] !== quote) {\n if (text[j] === \"\\\\\") j++;\n j++;\n }\n return j;\n}\n\n/** Index of the `)` that closes the `(` at `openIdx`, skipping strings. */\nfunction findClosingParen(text: string, openIdx: number): number {\n let depth = 0;\n for (let i = openIdx; i < text.length; i++) {\n const ch = text[i];\n if (ch === \"(\") {\n depth++;\n } else if (ch === \")\") {\n if (--depth === 0) return i;\n } else {\n i = skipString(text, i);\n }\n }\n return -1;\n}\n\n/** Split a call's argument list on top-level commas, skipping strings/nesting. */\nexport function splitTopLevelArgs(args: string): string[] {\n const parts: string[] = [];\n let depth = 0;\n let start = 0;\n for (let i = 0; i < args.length; i++) {\n const ch = args[i];\n if (ch === \"(\" || ch === \"[\" || ch === \"{\") {\n depth++;\n } else if (ch === \")\" || ch === \"]\" || ch === \"}\") {\n depth--;\n } else if (ch === \",\" && depth === 0) {\n parts.push(args.slice(start, i));\n start = i + 1;\n } else {\n i = skipString(args, i);\n }\n }\n parts.push(args.slice(start));\n return parts.map((p) => p.trim());\n}\n\nfunction isFileExcluded(\n relative: string,\n excludeDirs: Set<string>,\n excludeFiles: Set<string>\n): boolean {\n const segments = relative.split(\"/\");\n if (segments.some((s) => excludeDirs.has(s))) return true;\n const basename = segments[segments.length - 1] ?? \"\";\n return excludeFiles.has(basename) || excludeFiles.has(relative);\n}\n\n/** True when a matched occurrence is an import/re-export or a comment, not a call. */\nfunction isNonCall(line: string, lineBefore: string): boolean {\n const isImport = /\\b(import|export)\\b/.test(line) && line.includes(\"{\") && !line.includes(\";\");\n const isFrom = /\\b(import|export)\\b.*\\bfrom\\b/.test(line);\n return isImport || isFrom || lineBefore.includes(\"//\");\n}\n\nfunction findViolations(\n relative: string,\n content: string,\n callPattern: RegExp\n): TautologyViolation[] {\n const results: TautologyViolation[] = [];\n callPattern.lastIndex = 0;\n let match: RegExpExecArray | null = callPattern.exec(content);\n while (match !== null) {\n const current = match;\n match = callPattern.exec(content);\n\n const openIdx = current.index + current[0].length - 1;\n const lineStart = content.lastIndexOf(\"\\n\", current.index) + 1;\n const lineEnd = content.indexOf(\"\\n\", current.index);\n const line = content.slice(lineStart, lineEnd === -1 ? content.length : lineEnd);\n if (isNonCall(line, content.slice(lineStart, current.index))) continue;\n\n const closeIdx = findClosingParen(content, openIdx);\n if (closeIdx === -1) continue;\n const predicate = splitTopLevelArgs(content.slice(openIdx + 1, closeIdx))[0];\n const reason = predicate ? tautologyReason(predicate) : undefined;\n if (reason === undefined) continue;\n\n results.push({\n file: relative,\n line: content.slice(0, current.index).split(\"\\n\").length,\n content: line.trim(),\n reason: `${current[1] ?? \"ensures\"}(...) predicate is a ${reason}`,\n });\n }\n return results;\n}\n\nfunction printViolations(violations: TautologyViolation[]): void {\n if (violations.length === 0) {\n logger.log(\"[no-tautology-ensures] ✅ No violations found.\");\n return;\n }\n logger.log(`[no-tautology-ensures] ❌ ${violations.length} violation(s) found:\\n`);\n for (const v of violations) {\n logger.log(` ${v.file}:${v.line}`);\n logger.log(` ${v.content}`);\n logger.log(` 💡 ${v.reason}`);\n logger.log(\"\");\n }\n logger.log(\n \"[no-tautology-ensures] A verify predicate must reference state — a literal asserts nothing.\"\n );\n}\n\n/**\n * Run the no-tautology-ensures check against a directory. Returns the\n * violations plus a `print` for CLI output, mirroring `checkNoAsCasting`.\n */\nexport async function checkNoTautologyEnsures(\n options: NoTautologyEnsuresOptions\n): Promise<NoTautologyEnsuresResult> {\n const { rootDir } = options;\n const excludeDirs = new Set(options.exclude ?? DEFAULT_EXCLUDE);\n const excludeFiles = new Set([...(options.excludeFiles ?? []), \"no-tautology-ensures.ts\"]);\n const primitives = options.primitives ?? DEFAULT_PRIMITIVES;\n const callPattern = new RegExp(`\\\\b(${primitives.join(\"|\")})\\\\s*\\\\(`, \"g\");\n const glob = new Glob(options.filePatterns ?? \"**/*.{ts,tsx}\");\n const violations: TautologyViolation[] = [];\n\n for await (const file of glob.scan({ cwd: rootDir, absolute: true })) {\n const relative = file.replace(`${rootDir}/`, \"\");\n if (isFileExcluded(relative, excludeDirs, excludeFiles)) continue;\n violations.push(...findViolations(relative, readFileSync(file, \"utf-8\"), callPattern));\n }\n\n return { violations, print: () => printViolations(violations) };\n}\n",
15
+ "/**\n * No-tautology-ensures conformance check.\n *\n * Refuses `ensures(...)` / `requires(...)` calls whose predicate (the\n * first positional argument) is a tautology: a bare literal (`true`,\n * `false`, `null`, `undefined`, a number, a string) or a comparison of\n * two literals (`1 === 1`). These primitives are Polly's formal-verify\n * contracts — `ensures`/`requires` (and the wider verify family the\n * Stryker ignorer lists in `tools/verify/src/stryker`) compile away at\n * runtime and translate to TLA+ assertions under verification. A\n * tautological predicate therefore asserts nothing, yet reads in review\n * like a genuine safety check. Swapping a real predicate for `true`\n * looks like a refactor and silently disables the only guard on a\n * one-step handler; this lint stops that rewrite from merging.\n *\n * This module exports the check logic as a library so consuming\n * applications can import it from `@fairfox/polly/quality` and run it\n * programmatically. It is registered as the `polly:no-tautology-ensures`\n * plugin check, so it also runs via `polly quality run`.\n *\n * The scan is text-based, not AST-based: the only call sites are\n * `ensures(<expr>, '<message>')` / `requires(<expr>, '<message>')` with\n * the predicate as the first argument, so a balanced-paren walk that\n * skips string and comment content is sufficient and keeps the false\n * positive rate at zero.\n */\n\nimport { readFileSync } from \"node:fs\";\nimport { Glob } from \"bun\";\nimport { logger } from \"./logger\";\n\nexport interface TautologyViolation {\n file: string;\n line: number;\n content: string;\n reason: string;\n}\n\nexport interface NoTautologyEnsuresResult {\n violations: TautologyViolation[];\n print: () => void;\n}\n\nexport interface NoTautologyEnsuresOptions {\n rootDir: string;\n /** Directory names skipped anywhere in the path. */\n exclude?: string[];\n /** Basenames or relative paths skipped entirely. */\n excludeFiles?: string[];\n /** Glob of files to scan. Defaults to `**\\/*.{ts,tsx}`. */\n filePatterns?: string;\n /**\n * Verify primitives whose first argument is a runtime-inert predicate.\n * Defaults to the predicate-taking pair `ensures` / `requires`; pass a\n * wider set (e.g. `invariant`, `stateConstraint`) to match a project's\n * own usage.\n */\n primitives?: string[];\n}\n\nconst DEFAULT_PRIMITIVES = [\"ensures\", \"requires\"];\n// `tests`, `__tests__`, and `examples` are excluded by default: a tautological\n// `ensures(true, …)` is legitimate there (fixtures exercising the primitive),\n// so flagging it would be noise. Consumers can override `exclude` to widen.\nconst DEFAULT_EXCLUDE = [\n \"node_modules\",\n \"dist\",\n \".git\",\n \".bun\",\n \"coverage\",\n \"specs\",\n \"tests\",\n \"__tests__\",\n \"examples\",\n];\n\nconst LITERAL = /^(true|false|null|undefined|\\d+(\\.\\d+)?|\"[^\"]*\"|'[^']*'|`[^`]*`)$/;\n\n/**\n * Classify a predicate string. Returns the tautology reason, or\n * `undefined` when the predicate references state and is therefore a\n * real assertion. Conservative by design: only the explicit literal and\n * literal-vs-literal forms are flagged, so anything touching an\n * identifier or property access passes.\n */\nexport function tautologyReason(predicate: string): string | undefined {\n const trimmed = predicate.trim();\n if (LITERAL.test(trimmed)) return `literal '${trimmed}'`;\n\n const cmp = trimmed.match(/^(.+?)\\s*(===|!==|==|!=)\\s*(.+)$/);\n if (cmp) {\n const lhs = cmp[1]?.trim() ?? \"\";\n const rhs = cmp[3]?.trim() ?? \"\";\n if (LITERAL.test(lhs) && LITERAL.test(rhs)) return `literal-vs-literal '${trimmed}'`;\n }\n return undefined;\n}\n\n/**\n * If `text[i]` opens a string literal, return the index of its closing\n * quote (skipping escapes); otherwise return `i` unchanged. Lets the\n * paren/comma walkers treat string bodies as opaque without inlining the\n * scan logic at each call site.\n */\nfunction skipString(text: string, i: number): number {\n const quote = text[i];\n if (quote !== '\"' && quote !== \"'\" && quote !== \"`\") return i;\n let j = i + 1;\n while (j < text.length && text[j] !== quote) {\n if (text[j] === \"\\\\\") j++;\n j++;\n }\n return j;\n}\n\n/** Index of the `)` that closes the `(` at `openIdx`, skipping strings. */\nfunction findClosingParen(text: string, openIdx: number): number {\n let depth = 0;\n for (let i = openIdx; i < text.length; i++) {\n const ch = text[i];\n if (ch === \"(\") {\n depth++;\n } else if (ch === \")\") {\n if (--depth === 0) return i;\n } else {\n i = skipString(text, i);\n }\n }\n return -1;\n}\n\n/** Split a call's argument list on top-level commas, skipping strings/nesting. */\nexport function splitTopLevelArgs(args: string): string[] {\n const parts: string[] = [];\n let depth = 0;\n let start = 0;\n for (let i = 0; i < args.length; i++) {\n const ch = args[i];\n if (ch === \"(\" || ch === \"[\" || ch === \"{\") {\n depth++;\n } else if (ch === \")\" || ch === \"]\" || ch === \"}\") {\n depth--;\n } else if (ch === \",\" && depth === 0) {\n parts.push(args.slice(start, i));\n start = i + 1;\n } else {\n i = skipString(args, i);\n }\n }\n parts.push(args.slice(start));\n return parts.map((p) => p.trim());\n}\n\nfunction isFileExcluded(\n relative: string,\n excludeDirs: Set<string>,\n excludeFiles: Set<string>\n): boolean {\n const segments = relative.split(\"/\");\n if (segments.some((s) => excludeDirs.has(s))) return true;\n const basename = segments[segments.length - 1] ?? \"\";\n return excludeFiles.has(basename) || excludeFiles.has(relative);\n}\n\n/** True when a matched occurrence is an import/re-export or a comment, not a call. */\nfunction isNonCall(line: string, lineBefore: string): boolean {\n const isImport = /\\b(import|export)\\b/.test(line) && line.includes(\"{\") && !line.includes(\";\");\n const isFrom = /\\b(import|export)\\b.*\\bfrom\\b/.test(line);\n return isImport || isFrom || lineBefore.includes(\"//\");\n}\n\nfunction findViolations(\n relative: string,\n content: string,\n callPattern: RegExp\n): TautologyViolation[] {\n const results: TautologyViolation[] = [];\n callPattern.lastIndex = 0;\n let match: RegExpExecArray | null = callPattern.exec(content);\n while (match !== null) {\n const current = match;\n match = callPattern.exec(content);\n\n const openIdx = current.index + current[0].length - 1;\n const lineStart = content.lastIndexOf(\"\\n\", current.index) + 1;\n const lineEnd = content.indexOf(\"\\n\", current.index);\n const line = content.slice(lineStart, lineEnd === -1 ? content.length : lineEnd);\n if (isNonCall(line, content.slice(lineStart, current.index))) continue;\n\n const closeIdx = findClosingParen(content, openIdx);\n if (closeIdx === -1) continue;\n const predicate = splitTopLevelArgs(content.slice(openIdx + 1, closeIdx))[0];\n const reason = predicate ? tautologyReason(predicate) : undefined;\n if (reason === undefined) continue;\n\n results.push({\n file: relative,\n line: content.slice(0, current.index).split(\"\\n\").length,\n content: line.trim(),\n reason: `${current[1] ?? \"ensures\"}(...) predicate is a ${reason}`,\n });\n }\n return results;\n}\n\nfunction printViolations(violations: TautologyViolation[]): void {\n if (violations.length === 0) {\n logger.log(\"[no-tautology-ensures] ✅ No violations found.\");\n return;\n }\n logger.log(`[no-tautology-ensures] ❌ ${violations.length} violation(s) found:\\n`);\n for (const v of violations) {\n logger.log(` ${v.file}:${v.line}`);\n logger.log(` ${v.content}`);\n logger.log(` 💡 ${v.reason}`);\n logger.log(\"\");\n }\n logger.log(\n \"[no-tautology-ensures] A verify predicate must reference state — a literal asserts nothing.\"\n );\n}\n\n/**\n * Run the no-tautology-ensures check against a directory. Returns the\n * violations plus a `print` for CLI output, mirroring `checkNoAsCasting`.\n */\nexport async function checkNoTautologyEnsures(\n options: NoTautologyEnsuresOptions\n): Promise<NoTautologyEnsuresResult> {\n const { rootDir } = options;\n const excludeDirs = new Set(options.exclude ?? DEFAULT_EXCLUDE);\n const excludeFiles = new Set([...(options.excludeFiles ?? []), \"no-tautology-ensures.ts\"]);\n const primitives = options.primitives ?? DEFAULT_PRIMITIVES;\n const escaped = primitives.map((name) => name.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"));\n // nosemgrep: javascript.lang.security.audit.detect-non-literal-regexp.detect-non-literal-regexp — the alternation is built from caller-supplied identifiers, each escaped above; an alternation of literals has no nested quantifier and cannot backtrack exponentially.\n const callPattern = new RegExp(`\\\\b(${escaped.join(\"|\")})\\\\s*\\\\(`, \"g\");\n const glob = new Glob(options.filePatterns ?? \"**/*.{ts,tsx}\");\n const violations: TautologyViolation[] = [];\n\n for await (const file of glob.scan({ cwd: rootDir, absolute: true })) {\n const relative = file.replace(`${rootDir}/`, \"\");\n if (isFileExcluded(relative, excludeDirs, excludeFiles)) continue;\n violations.push(...findViolations(relative, readFileSync(file, \"utf-8\"), callPattern));\n }\n\n return { violations, print: () => printViolations(violations) };\n}\n",
16
16
  "/**\n * Secret-scanning conformance checks.\n *\n * Two paired checks that protect a repository from accidentally\n * committing credentials:\n *\n * - `checkSecrets` spawns `gitleaks detect` against the working\n * tree and returns the exit code + stdout. Consumers are\n * expected to have `gitleaks` on PATH (via `brew install\n * gitleaks` or equivalent); the check reports a clear failure\n * when the binary is missing.\n *\n * - `checkGitignoreCoversAllowlist` parses a `.gitleaks.toml`\n * config, pulls out the path patterns that sit in an allowlist\n * *section* marked as \"gitignored files\" (via comment\n * markers), and verifies each one is actually covered by\n * `.gitignore`. This catches the footgun where a repo\n * allowlists `.env` in gitleaks config but forgets to add it\n * to `.gitignore`, so the allowlist entry silently lets a real\n * secret slip through.\n *\n * Adapted from the devctl `check` command in the Lingua project.\n *\n * @example\n * ```typescript\n * import {\n * checkSecrets,\n * checkGitignoreCoversAllowlist,\n * } from \"@fairfox/polly/quality\";\n *\n * const scan = await checkSecrets({ root: process.cwd() });\n * if (scan.exitCode !== 0) process.exit(scan.exitCode);\n *\n * const cover = await checkGitignoreCoversAllowlist({\n * root: process.cwd(),\n * });\n * if (cover.missing.length > 0) {\n * cover.print();\n * process.exit(1);\n * }\n * ```\n */\n\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { logger } from \"./logger\";\n\nconst defaultWrite = (msg: string): void => logger.error(msg);\n\nexport interface CheckSecretsOptions {\n /** Repository root to scan. */\n root: string;\n /** Path to a gitleaks TOML config, relative to `root`. Defaults\n * to `.gitleaks.toml`. */\n configPath?: string;\n /** Scan the working tree (`--no-git`) or the git history.\n * Defaults to true (working tree only — faster, and what most\n * pre-commit / CI flows want). */\n noGit?: boolean;\n}\n\nexport interface SecretsCheckResult {\n /** Whether `gitleaks` was found on PATH at all. */\n binaryFound: boolean;\n /** `gitleaks detect` exit code, or null when the binary was\n * missing. 0 = clean, 1 = secrets found, other = gitleaks\n * error. */\n exitCode: number | null;\n /** Streamed gitleaks stdout + stderr. Empty when the scan was\n * skipped. */\n output: string;\n print: (write?: (msg: string) => void) => void;\n}\n\n/**\n * Run gitleaks against the working tree. Returns `binaryFound:\n * false` if the binary isn't on PATH — callers typically treat\n * that as a hard failure with an install hint.\n */\nexport async function checkSecrets(options: CheckSecretsOptions): Promise<SecretsCheckResult> {\n const which = Bun.spawn([\"which\", \"gitleaks\"], {\n stdout: \"ignore\",\n stderr: \"ignore\",\n });\n await which.exited;\n if (which.exitCode !== 0) {\n return {\n binaryFound: false,\n exitCode: null,\n output: \"\",\n print: (write = defaultWrite) => {\n write(\n \"gitleaks is not on PATH. Install with `brew install gitleaks` (macOS) or from https://github.com/gitleaks/gitleaks/releases.\"\n );\n },\n };\n }\n\n const args = [\"gitleaks\", \"detect\", \"--source\", options.root ?? \".\"];\n if (options.noGit !== false) {\n args.push(\"--no-git\");\n }\n if (options.configPath) {\n args.push(\"-c\", options.configPath);\n }\n\n const proc = Bun.spawn(args, {\n cwd: options.root,\n stdout: \"pipe\",\n stderr: \"pipe\",\n });\n const [stdout, stderr] = await Promise.all([\n new Response(proc.stdout).text(),\n new Response(proc.stderr).text(),\n ]);\n await proc.exited;\n const output = `${stdout}${stderr}`;\n return {\n binaryFound: true,\n exitCode: proc.exitCode,\n output,\n print: (write = defaultWrite) => {\n if (output) {\n write(output);\n }\n },\n };\n}\n\nexport interface CheckGitignoreOptions {\n /** Repository root. */\n root: string;\n /** Path to the gitleaks TOML config, relative to `root`. Defaults\n * to `.gitleaks.toml`. */\n tomlPath?: string;\n /** Path to the gitignore file, relative to `root`. Defaults to\n * `.gitignore`. */\n gitignorePath?: string;\n /** Strings that, when seen in a comment line of the TOML, mark\n * the start of a \"must be gitignored\" section. Defaults cover\n * \"Gitignored files\" and \"Local dev TLS certs\". */\n sectionStartMarkers?: string[];\n /** Strings that close a must-be-gitignored section. Defaults to\n * \"Test fixtures\" so the common lingua-style layout works\n * unchanged. */\n sectionEndMarkers?: string[];\n}\n\nexport interface GitignoreCheckResult {\n /** TOML-listed allowlisted paths that `.gitignore` does NOT\n * cover. Each string is the derived plain filename (e.g.\n * `.env`, `certs/key.pem`). */\n missing: string[];\n /** All paths the TOML required to be gitignored, whether or not\n * .gitignore covers them. Useful for audits. */\n required: string[];\n print: (write?: (msg: string) => void) => void;\n}\n\n/**\n * Parse a gitleaks TOML config and verify every allowlisted path\n * that the config marks as \"this file should be gitignored\" is in\n * fact present in `.gitignore`. Returns the list of allowlisted\n * paths that are NOT gitignored.\n *\n * The check trusts section markers in the TOML comments to decide\n * which allowlist entries apply. By default:\n *\n * - \"Gitignored files\" and \"Local dev TLS certs\" open a\n * must-be-gitignored section.\n * - \"Test fixtures\" closes it.\n *\n * Entries outside those sections (e.g. test-fixture paths) are\n * ignored by this check.\n */\nfunction parseRequiredPaths(toml: string, starts: string[], ends: string[]): string[] {\n const required: string[] = [];\n let inSection = false;\n for (const line of toml.split(\"\\n\")) {\n if (starts.some((m) => line.includes(m))) {\n inSection = true;\n continue;\n }\n if (ends.some((m) => line.includes(m))) {\n inSection = false;\n continue;\n }\n if (!inSection) {\n continue;\n }\n const match = line.match(/'''(.+?)'''/);\n if (!match?.[1]) {\n continue;\n }\n // Convert gitleaks regex to plain filename (strip backslash\n // escapes and trailing anchors) for a gitignore-style lookup.\n required.push(match[1].replace(/\\\\\\./g, \".\").replace(/\\$$/, \"\"));\n }\n return required;\n}\n\nfunction gitignoreLineCovers(giLine: string, filename: string): boolean {\n if (!giLine || giLine.startsWith(\"#\")) {\n return false;\n }\n if (giLine === filename) {\n return true;\n }\n const dirMatch = giLine.match(/^\\*?\\*?\\/?(.+)\\/$/);\n if (dirMatch?.[1] && filename.startsWith(dirMatch[1])) {\n return true;\n }\n if (giLine.endsWith(\"/\") && filename.startsWith(giLine)) {\n return true;\n }\n return false;\n}\n\nconst emptyGitignoreResult: GitignoreCheckResult = {\n missing: [],\n required: [],\n print: () => {\n // No TOML means nothing to enforce; callers typically treat\n // this as \"skipped\" and print their own hint. Leaving the\n // printer a no-op keeps the API uniform without emitting\n // spurious output.\n },\n};\n\nexport async function checkGitignoreCoversAllowlist(\n options: CheckGitignoreOptions\n): Promise<GitignoreCheckResult> {\n const tomlPath = join(options.root, options.tomlPath ?? \".gitleaks.toml\");\n const gitignorePath = join(options.root, options.gitignorePath ?? \".gitignore\");\n const starts = options.sectionStartMarkers ?? [\"Gitignored files\", \"Local dev TLS certs\"];\n const ends = options.sectionEndMarkers ?? [\"Test fixtures\"];\n\n let toml: string;\n try {\n toml = await readFile(tomlPath, \"utf8\");\n } catch {\n return emptyGitignoreResult;\n }\n let gitignore: string;\n try {\n gitignore = await readFile(gitignorePath, \"utf8\");\n } catch {\n gitignore = \"\";\n }\n\n const required = parseRequiredPaths(toml, starts, ends);\n const gitignoreLines = gitignore.split(\"\\n\").map((l) => l.trim());\n const missing = required.filter(\n (filename) => !gitignoreLines.some((gi) => gitignoreLineCovers(gi, filename))\n );\n\n return {\n missing,\n required,\n print: (write = defaultWrite) => {\n if (missing.length === 0) {\n return;\n }\n write(\"Paths allowed by .gitleaks.toml are NOT covered by .gitignore:\");\n for (const f of missing) {\n write(` ${f}`);\n }\n write(\n \"These files may contain secrets. Add them to .gitignore so the allowlist entry doesn't become a hiding place.\"\n );\n },\n };\n}\n",
17
17
  "/**\n * `polly quality attest` — sign a passing run and post a GitHub commit status.\n *\n * The flow:\n * 1. Refuse on a dirty working tree (porcelain non-empty).\n * 2. Resolve the current commit sha and the gh user.\n * 3. Run every registered check via the cache. A red result aborts\n * with no status posted.\n * 4. Compute a digest of the commit sha plus a sorted summary of\n * check results.\n * 5. Post a GitHub commit status named `polly/attested/<user>` to\n * that sha via the local `gh` CLI (which carries the user's\n * existing authentication).\n * 6. Cache the signed entry at\n * `.cache/polly-quality/attest/<commit>.json` so a re-invocation\n * on the same commit short-circuits to a status refresh.\n *\n * Auth lives in the user's `gh` CLI install rather than a `GITHUB_TOKEN`\n * env var: every contributor running `polly quality attest` already\n * authenticated `gh` for issue and PR work, and shelling out keeps the\n * dependency surface zero.\n */\n\nimport { createHash } from \"node:crypto\";\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { type RegisteredCheck, runChecks } from \"./host\";\nimport type { CheckRunResult, QualityRunConfig, RunReport } from \"./types\";\n\nexport type AttestOptions = {\n rootDir: string;\n registry: Map<string, RegisteredCheck>;\n runConfig: QualityRunConfig;\n /**\n * When set, the deploy preflight command (read from\n * `runConfig.attestDeploy`) runs before the post and the status\n * name becomes `polly/deploy-attested/<user>`.\n */\n deploy?: boolean;\n /** Override for the `polly` segment of the status context. */\n contextPrefix?: string;\n};\n\nexport type AttestResult = {\n ok: boolean;\n /** Posted (or would-have-posted) status context. */\n context: string;\n /** Commit sha the status was attached to. */\n sha: string;\n /** Fingerprint of the run. */\n digest: string;\n /** Summary lines for the CLI reporter. */\n messages: string[];\n /** When non-empty, attest aborted before posting. */\n error?: string;\n /** Underlying check report for downstream display. */\n report?: RunReport;\n};\n\nasync function spawnText(args: string[], cwd: string): Promise<{ ok: boolean; out: string }> {\n const proc = Bun.spawn(args, { cwd, stdout: \"pipe\", stderr: \"pipe\" });\n const [stdout, stderr] = await Promise.all([\n new Response(proc.stdout).text(),\n new Response(proc.stderr).text(),\n ]);\n await proc.exited;\n return { ok: proc.exitCode === 0, out: `${stdout}${stderr}` };\n}\n\nasync function workingTreeIsClean(rootDir: string): Promise<boolean> {\n const r = await spawnText([\"git\", \"status\", \"--porcelain\"], rootDir);\n if (!r.ok) return false;\n return r.out.trim().length === 0;\n}\n\nasync function currentCommit(rootDir: string): Promise<string | null> {\n const r = await spawnText([\"git\", \"rev-parse\", \"HEAD\"], rootDir);\n if (!r.ok) return null;\n const sha = r.out.trim();\n if (!/^[0-9a-f]{40}$/.test(sha)) return null;\n return sha;\n}\n\nasync function ghUser(rootDir: string): Promise<string | null> {\n const r = await spawnText([\"gh\", \"api\", \"user\", \"--jq\", \".login\"], rootDir);\n if (!r.ok) return null;\n const login = r.out.trim();\n return login.length > 0 ? login : null;\n}\n\nasync function ghRepoSlug(rootDir: string): Promise<string | null> {\n const r = await spawnText(\n [\"gh\", \"repo\", \"view\", \"--json\", \"nameWithOwner\", \"--jq\", \".nameWithOwner\"],\n rootDir\n );\n if (!r.ok) return null;\n const slug = r.out.trim();\n if (!slug.includes(\"/\")) return null;\n return slug;\n}\n\nexport function summariseRunReport(report: RunReport): string {\n const passed = report.results.filter((r) => r.ok).length;\n const total = report.results.length;\n return `${passed}/${total} checks passed`;\n}\n\nexport function digestRun(sha: string, results: CheckRunResult[]): string {\n // Stable per-id ordering plus the run-relevant fields. We deliberately\n // exclude durationMs and cached so a cache-warmed re-attest produces the\n // same digest as the original.\n const stable = results\n .slice()\n .sort((a, b) => a.id.localeCompare(b.id))\n .map((r) => ({ id: r.id, ok: r.ok, messages: r.messages }));\n const payload = JSON.stringify({ sha, results: stable });\n return createHash(\"sha256\").update(payload).digest(\"hex\");\n}\n\nfunction attestCachePath(rootDir: string, sha: string): string {\n return join(rootDir, \".cache\", \"polly-quality\", \"attest\", `${sha}.json`);\n}\n\nasync function readPriorAttestation(rootDir: string, sha: string): Promise<string | null> {\n try {\n const raw = await readFile(attestCachePath(rootDir, sha), \"utf8\");\n const parsed = JSON.parse(raw) as unknown as { digest?: string };\n return parsed.digest ?? null;\n } catch {\n return null;\n }\n}\n\nasync function writeAttestation(\n rootDir: string,\n sha: string,\n context: string,\n digest: string\n): Promise<void> {\n const path = attestCachePath(rootDir, sha);\n await mkdir(join(path, \"..\"), { recursive: true });\n const entry = {\n sha,\n context,\n digest,\n attestedAt: new Date().toISOString(),\n };\n await writeFile(path, JSON.stringify(entry, null, 2));\n}\n\nasync function postCommitStatus(\n rootDir: string,\n slug: string,\n sha: string,\n context: string,\n description: string\n): Promise<{ ok: boolean; output: string }> {\n const r = await spawnText(\n [\n \"gh\",\n \"api\",\n \"-X\",\n \"POST\",\n `repos/${slug}/statuses/${sha}`,\n \"-f\",\n \"state=success\",\n \"-f\",\n `context=${context}`,\n \"-f\",\n `description=${description}`,\n ],\n rootDir\n );\n return { ok: r.ok, output: r.out };\n}\n\nasync function preflightOk(\n rootDir: string\n): Promise<{ ok: boolean; reason?: string; sha?: string }> {\n if (!(await workingTreeIsClean(rootDir))) {\n return { ok: false, reason: \"Working tree is dirty; commit or stash before attesting.\" };\n }\n const sha = await currentCommit(rootDir);\n if (!sha) return { ok: false, reason: \"Could not resolve current commit (is this a git repo?)\" };\n return { ok: true, sha };\n}\n\nasync function resolveContext(\n rootDir: string,\n deploy: boolean,\n contextPrefix: string\n): Promise<{ ok: boolean; reason?: string; context?: string; user?: string }> {\n const user = await ghUser(rootDir);\n if (!user) return { ok: false, reason: \"gh CLI is not authenticated; run `gh auth login`.\" };\n const action = deploy ? \"deploy-attested\" : \"attested\";\n return { ok: true, user, context: `${contextPrefix}/${action}/${user}` };\n}\n\nexport async function runAttest(opts: AttestOptions): Promise<AttestResult> {\n const contextPrefix = opts.contextPrefix ?? \"polly\";\n const pre = await preflightOk(opts.rootDir);\n if (!pre.ok || !pre.sha) {\n return {\n ok: false,\n context: \"\",\n sha: \"\",\n digest: \"\",\n messages: [],\n error: pre.reason,\n };\n }\n const sha = pre.sha;\n\n const ctx = await resolveContext(opts.rootDir, opts.deploy === true, contextPrefix);\n if (!ctx.ok || !ctx.context) {\n return { ok: false, context: \"\", sha, digest: \"\", messages: [], error: ctx.reason };\n }\n\n const slug = await ghRepoSlug(opts.rootDir);\n if (!slug) {\n return {\n ok: false,\n context: ctx.context,\n sha,\n digest: \"\",\n messages: [],\n error: \"Could not resolve GitHub repo slug; is `gh` configured for this repo?\",\n };\n }\n\n const report = await runChecks(opts.registry, opts.runConfig, undefined, {\n rootDir: opts.rootDir,\n });\n if (!report.ok) {\n return {\n ok: false,\n context: ctx.context,\n sha,\n digest: \"\",\n messages: [\n `attest aborted: ${summariseRunReport(report)}`,\n ...report.results.filter((r) => !r.ok).map((r) => ` ✗ ${r.id}`),\n ],\n error: \"one or more checks failed\",\n report,\n };\n }\n\n const digest = digestRun(sha, report.results);\n const prior = await readPriorAttestation(opts.rootDir, sha);\n const description = `${summariseRunReport(report)} · ${digest.slice(0, 12)}`;\n const post = await postCommitStatus(opts.rootDir, slug, sha, ctx.context, description);\n if (!post.ok) {\n return {\n ok: false,\n context: ctx.context,\n sha,\n digest,\n messages: [post.output.trim()],\n error: \"GitHub status post failed\",\n report,\n };\n }\n\n await writeAttestation(opts.rootDir, sha, ctx.context, digest);\n\n const replayNote = prior === digest ? \"replay (cached digest)\" : \"fresh attestation\";\n return {\n ok: true,\n context: ctx.context,\n sha,\n digest,\n messages: [`${ctx.context} → ${sha.slice(0, 12)} (${replayNote})`, ` ${description}`],\n report,\n };\n}\n",
18
18
  "/**\n * Content-hash cache for the quality plugin host.\n *\n * Each check declares the files and extras that determine its result.\n * The cache hashes those into a key, looks up `.cache/polly-quality/<id>.json`,\n * and returns the prior result on hit. A miss re-runs the check body and\n * writes a fresh entry.\n *\n * Files that are missing on disk hash as the literal string `<absent>`\n * so removing a declared input invalidates the entry deterministically.\n * Atomic writes go through a temp file + rename so a process crashing\n * mid-write cannot leave a partial JSON behind that later parses to a\n * malformed entry. A corrupt entry is treated as a miss with a warning;\n * the check re-runs and overwrites it.\n */\n\nimport { createHash } from \"node:crypto\";\nimport { mkdir, readFile, rename, writeFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, join, resolve } from \"node:path\";\nimport type { CheckOutcome } from \"./types\";\n\nexport type CacheInputs = {\n files: string[];\n extras?: Record<string, string>;\n};\n\nexport type CacheEntry = {\n hash: string;\n outcome: CheckOutcome;\n /** Wall-clock time the entry was written; useful for debugging stale caches. */\n writtenAt: string;\n};\n\nconst ABSENT_MARKER = \"<absent>\";\n\nasync function hashFile(path: string): Promise<string> {\n try {\n const buf = await readFile(path);\n const h = createHash(\"sha256\");\n h.update(buf);\n return h.digest(\"hex\");\n } catch {\n return ABSENT_MARKER;\n }\n}\n\n/**\n * Compute a deterministic SHA-256 over (sorted file paths + content hashes\n * + sorted extras). Identical inputs in any order produce the same hash;\n * adding, removing, renaming, or modifying any input changes it.\n */\nexport async function computeInputsHash(inputs: CacheInputs, rootDir: string): Promise<string> {\n const filePairs: Array<{ path: string; hash: string }> = [];\n for (const f of inputs.files) {\n const abs = isAbsolute(f) ? f : resolve(rootDir, f);\n const hash = await hashFile(abs);\n // Store the relative-to-root form so caches survive a checkout move.\n const rel = abs.startsWith(`${rootDir}/`) ? abs.slice(rootDir.length + 1) : abs;\n filePairs.push({ path: rel, hash });\n }\n filePairs.sort((a, b) => a.path.localeCompare(b.path));\n\n const extras = inputs.extras ?? {};\n const extrasPairs = Object.keys(extras)\n .sort()\n .map((k) => ({ key: k, value: extras[k] ?? \"\" }));\n\n const payload = JSON.stringify({ files: filePairs, extras: extrasPairs });\n return createHash(\"sha256\").update(payload).digest(\"hex\");\n}\n\nfunction cachePath(rootDir: string, checkId: string): string {\n // Replace `:` with `__` so `polly:no-as-casting` becomes a valid filename\n // on every platform.\n const safe = checkId.replace(/:/g, \"__\");\n return join(rootDir, \".cache\", \"polly-quality\", `${safe}.json`);\n}\n\nexport async function getCachedOutcome(\n rootDir: string,\n checkId: string,\n hash: string\n): Promise<CheckOutcome | null> {\n const path = cachePath(rootDir, checkId);\n let raw: string;\n try {\n raw = await readFile(path, \"utf8\");\n } catch {\n return null;\n }\n let parsed: CacheEntry;\n try {\n parsed = JSON.parse(raw) as unknown as CacheEntry;\n } catch {\n // Treat corrupt entries as misses; the check will re-run and the next\n // write replaces the bad file. We deliberately don't throw — a busted\n // cache should not block a CI run.\n return null;\n }\n if (parsed.hash !== hash) return null;\n if (typeof parsed.outcome?.ok !== \"boolean\" || !Array.isArray(parsed.outcome?.messages)) {\n return null;\n }\n return parsed.outcome;\n}\n\nexport async function setCachedOutcome(\n rootDir: string,\n checkId: string,\n hash: string,\n outcome: CheckOutcome\n): Promise<void> {\n const path = cachePath(rootDir, checkId);\n await mkdir(dirname(path), { recursive: true });\n const entry: CacheEntry = { hash, outcome, writtenAt: new Date().toISOString() };\n const tmp = `${path}.tmp-${process.pid}-${Date.now()}`;\n await writeFile(tmp, JSON.stringify(entry, null, 2));\n await rename(tmp, path);\n}\n",
@@ -25,7 +25,7 @@
25
25
  "/**\n * Import-graph checks for `pollyCorePlugin`:\n *\n * - polly:relative-imports — ban `../` imports beyond a depth threshold (#84)\n * - polly:tsconfig-paths — ban `compilerOptions.paths` aliases (#84)\n * - polly:no-raw-http — force HTTP through a canonical client (#86)\n * - polly:types — multi-package tsc --noEmit orchestrator (#85)\n *\n * All four are parameterised. Defaults are silent or zero-impact unless a\n * consumer opts in via `polly.config.ts`. Polly's own pre-commit pipeline\n * does not currently run these — they exist primarily for downstream\n * consumers (lingua, fairfox, warehouse-experiments) and ship under the\n * core plugin namespace so adoption is one config-block change away.\n */\n\nimport { readdir } from \"node:fs/promises\";\nimport { join, relative } from \"node:path\";\nimport { Glob } from \"bun\";\nimport type { Check } from \"../types\";\n\nconst SKIP_DIRS_DEFAULT = [\"node_modules\", \".git\", \"dist\", \".bun\", \".cache\"];\n\nfunction isCommentLine(trimmed: string): boolean {\n return trimmed.startsWith(\"//\") || trimmed.startsWith(\"*\") || trimmed.startsWith(\"/*\");\n}\n\nfunction isTestFile(rel: string): boolean {\n return (\n rel.includes(\"__tests__\") ||\n rel.includes(\".test.\") ||\n rel.includes(\".spec.\") ||\n rel.startsWith(\"tests/\")\n );\n}\n\nasync function walkScannableFiles(\n dir: string,\n skipDirs: Set<string>,\n out: string[]\n): Promise<void> {\n let entries: import(\"node:fs\").Dirent[];\n try {\n entries = await readdir(dir, { withFileTypes: true });\n } catch {\n return;\n }\n for (const entry of entries) {\n const fullPath = join(dir, entry.name);\n if (entry.isDirectory()) {\n if (!skipDirs.has(entry.name)) await walkScannableFiles(fullPath, skipDirs, out);\n } else if (entry.isFile() && (entry.name.endsWith(\".ts\") || entry.name.endsWith(\".tsx\"))) {\n out.push(fullPath);\n }\n }\n}\n\nfunction isAllowedByGlob(rel: string, globs: string[]): boolean {\n for (const g of globs) {\n if (new Glob(g).match(rel)) return true;\n }\n return false;\n}\n\nconst IMPORT_REGEX =\n /(?:import|export)\\s+.*?from\\s+['\"]([^'\"]+)['\"]|require\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n\nfunction specifiersInLine(line: string): string[] {\n const out: string[] = [];\n IMPORT_REGEX.lastIndex = 0;\n let match = IMPORT_REGEX.exec(line);\n while (match !== null) {\n const s = match[1] || match[2];\n if (s) out.push(s);\n match = IMPORT_REGEX.exec(line);\n }\n return out;\n}\n\n// polly:relative-imports — ban deep `../` imports\n\ntype RelativeImportsConfig = {\n /** Maximum depth of `../` traversal allowed; default 1. */\n maxDepth?: number;\n allowedFiles?: string[];\n zones?: string[];\n skipDirs?: string[];\n};\n\nconst DEFAULT_RELATIVE: Required<RelativeImportsConfig> = {\n maxDepth: 1,\n allowedFiles: [],\n zones: [\"src\", \"tools\", \"cli\", \"scripts\"],\n skipDirs: SKIP_DIRS_DEFAULT,\n};\n\nfunction relativeDepth(specifier: string): number {\n if (!specifier.startsWith(\"..\")) return 0;\n let depth = 0;\n for (const segment of specifier.split(\"/\")) {\n if (segment === \"..\") depth++;\n else break;\n }\n return depth;\n}\n\nasync function scanFileForRelativeViolations(\n filePath: string,\n rel: string,\n maxDepth: number\n): Promise<string[]> {\n const content = await Bun.file(filePath).text();\n const lines = content.split(\"\\n\");\n const out: string[] = [];\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i] ?? \"\";\n if (isCommentLine(line.trim())) continue;\n for (const specifier of specifiersInLine(line)) {\n if (relativeDepth(specifier) > maxDepth) {\n out.push(`${rel}:${i + 1}: import \"${specifier}\" exceeds maxDepth ${maxDepth}`);\n }\n }\n }\n return out;\n}\n\nconst relativeImports: Check<RelativeImportsConfig | undefined> = {\n id: \"polly:relative-imports\",\n description: \"Ban `../` imports deeper than a configured threshold\",\n filesRead: async (cfg, root) => {\n const c = cfg ?? {};\n const skipDirs = new Set(c.skipDirs ?? DEFAULT_RELATIVE.skipDirs);\n const allowed = c.allowedFiles ?? DEFAULT_RELATIVE.allowedFiles;\n const out: string[] = [];\n for (const z of c.zones ?? DEFAULT_RELATIVE.zones) {\n await walkScannableFiles(join(root, z), skipDirs, out);\n }\n return out.filter((p) => {\n const rel = relative(root, p);\n return !isTestFile(rel) && !isAllowedByGlob(rel, allowed);\n });\n },\n run: async ({ rootDir, config }) => {\n const c = config ?? {};\n const maxDepth = c.maxDepth ?? DEFAULT_RELATIVE.maxDepth;\n const skipDirs = new Set(c.skipDirs ?? DEFAULT_RELATIVE.skipDirs);\n const allowed = c.allowedFiles ?? DEFAULT_RELATIVE.allowedFiles;\n const violations: string[] = [];\n for (const z of c.zones ?? DEFAULT_RELATIVE.zones) {\n const files: string[] = [];\n await walkScannableFiles(join(rootDir, z), skipDirs, files);\n for (const filePath of files) {\n const rel = relative(rootDir, filePath);\n if (isTestFile(rel) || isAllowedByGlob(rel, allowed)) continue;\n violations.push(...(await scanFileForRelativeViolations(filePath, rel, maxDepth)));\n }\n }\n return { ok: violations.length === 0, messages: violations };\n },\n};\n\n// polly:tsconfig-paths — ban `compilerOptions.paths` aliases\n\ntype TsconfigPathsConfig = {\n /** Filenames to scan; defaults to tsconfig.json variants. */\n files?: string[];\n /** Allowed alias patterns to keep (e.g. [\"@/*\"] for opt-in alias use). */\n allowedAliases?: string[];\n};\n\nconst DEFAULT_TSCONFIG_PATHS: Required<TsconfigPathsConfig> = {\n files: [\"tsconfig.json\", \"tsconfig.base.json\"],\n allowedAliases: [],\n};\n\nasync function findTsconfigs(rootDir: string, names: string[]): Promise<string[]> {\n const out: string[] = [];\n const skipDirs = new Set(SKIP_DIRS_DEFAULT);\n async function walk(dir: string): Promise<void> {\n let entries: import(\"node:fs\").Dirent[];\n try {\n entries = await readdir(dir, { withFileTypes: true });\n } catch {\n return;\n }\n for (const entry of entries) {\n const fullPath = join(dir, entry.name);\n if (entry.isDirectory()) {\n if (!skipDirs.has(entry.name)) await walk(fullPath);\n } else if (entry.isFile() && names.includes(entry.name)) {\n out.push(fullPath);\n }\n }\n }\n await walk(rootDir);\n return out;\n}\n\nconst tsconfigPaths: Check<TsconfigPathsConfig | undefined> = {\n id: \"polly:tsconfig-paths\",\n description: \"Flag `compilerOptions.paths` entries (use package.json subpath imports instead)\",\n filesRead: async (cfg, root) => findTsconfigs(root, cfg?.files ?? DEFAULT_TSCONFIG_PATHS.files),\n run: async ({ rootDir, config }) => {\n const c = config ?? {};\n const files = c.files ?? DEFAULT_TSCONFIG_PATHS.files;\n const allowed = new Set(c.allowedAliases ?? DEFAULT_TSCONFIG_PATHS.allowedAliases);\n const violations: string[] = [];\n for (const tsconfigPath of await findTsconfigs(rootDir, files)) {\n const raw = await Bun.file(tsconfigPath).text();\n const stripped = raw.replace(/\\/\\/[^\\n]*\\n/g, \"\\n\").replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\");\n let parsed: { compilerOptions?: { paths?: Record<string, unknown> } };\n try {\n parsed = JSON.parse(stripped) as unknown as {\n compilerOptions?: { paths?: Record<string, unknown> };\n };\n } catch {\n violations.push(`${relative(rootDir, tsconfigPath)}: failed to parse as JSON`);\n continue;\n }\n const paths = parsed.compilerOptions?.paths ?? {};\n for (const alias of Object.keys(paths)) {\n if (allowed.has(alias)) continue;\n violations.push(`${relative(rootDir, tsconfigPath)}: paths[\"${alias}\"] is set`);\n }\n }\n return { ok: violations.length === 0, messages: violations };\n },\n};\n\n// polly:no-raw-http — force HTTP through a canonical client\n\ntype NoRawHttpConfig = {\n /** Specifier for the canonical client (e.g. `#src/api/client`). Required. */\n canonicalClient?: string;\n banned?: string[];\n allowedFiles?: string[];\n zones?: string[];\n skipDirs?: string[];\n};\n\nconst DEFAULT_NO_RAW_HTTP: Omit<Required<NoRawHttpConfig>, \"canonicalClient\"> = {\n banned: [\"fetch\", \"XMLHttpRequest\", \"axios\"],\n allowedFiles: [],\n zones: [\"src\"],\n skipDirs: SKIP_DIRS_DEFAULT,\n};\n\nfunction buildBannedCallRegex(banned: string[]): RegExp {\n const alts = banned.map((s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n // nosemgrep: javascript.lang.security.audit.detect-non-literal-regexp.detect-non-literal-regexp\n return new RegExp(`\\\\b(${alts})\\\\s*[\\\\(.]`);\n}\n\nasync function scanFileForRawHttp(\n filePath: string,\n rel: string,\n canonicalClient: string,\n bannedRegex: RegExp\n): Promise<string[]> {\n const content = await Bun.file(filePath).text();\n const lines = content.split(\"\\n\");\n const out: string[] = [];\n // The canonical-client implementation file legitimately uses the banned\n // identifiers — that's where the wrapping happens. We detect it\n // structurally by checking for an `export ... from \"<canonicalClient>\"`\n // re-export line. A simple substring test is enough; the canonical\n // client is a fixed module specifier the consumer configured, not an\n // arbitrary regex.\n const isCanonicalImpl = lines.some(\n (l) => l.includes(`from \"${canonicalClient}\"`) || l.includes(`from '${canonicalClient}'`)\n );\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i] ?? \"\";\n const trimmed = line.trim();\n if (isCommentLine(trimmed)) continue;\n if (bannedRegex.test(line) && !isCanonicalImpl) {\n out.push(`${rel}:${i + 1}: ${trimmed}`);\n }\n }\n return out;\n}\n\nconst noRawHttp: Check<NoRawHttpConfig | undefined> = {\n id: \"polly:no-raw-http\",\n description: \"Force HTTP calls through a configured canonical client (opt-in)\",\n filesRead: async (cfg, root) => {\n if (!cfg?.canonicalClient) return [];\n const skipDirs = new Set(cfg.skipDirs ?? DEFAULT_NO_RAW_HTTP.skipDirs);\n const allowed = cfg.allowedFiles ?? DEFAULT_NO_RAW_HTTP.allowedFiles;\n const out: string[] = [];\n for (const z of cfg.zones ?? DEFAULT_NO_RAW_HTTP.zones) {\n await walkScannableFiles(join(root, z), skipDirs, out);\n }\n return out.filter((p) => {\n const rel = relative(root, p);\n return !isTestFile(rel) && !isAllowedByGlob(rel, allowed);\n });\n },\n run: async ({ rootDir, config }) => {\n const c = config ?? {};\n if (!c.canonicalClient) {\n // No canonical client configured: rule is no-op. The umbrella's\n // \"fail loud\" stance applies when the user has half-configured it,\n // not when they haven't engaged with the rule at all.\n return { ok: true, messages: [] };\n }\n const banned = c.banned ?? DEFAULT_NO_RAW_HTTP.banned;\n const skipDirs = new Set(c.skipDirs ?? DEFAULT_NO_RAW_HTTP.skipDirs);\n const allowed = c.allowedFiles ?? DEFAULT_NO_RAW_HTTP.allowedFiles;\n const bannedRegex = buildBannedCallRegex(banned);\n const violations: string[] = [];\n for (const z of c.zones ?? DEFAULT_NO_RAW_HTTP.zones) {\n const files: string[] = [];\n await walkScannableFiles(join(rootDir, z), skipDirs, files);\n for (const filePath of files) {\n const rel = relative(rootDir, filePath);\n if (isTestFile(rel) || isAllowedByGlob(rel, allowed)) continue;\n violations.push(\n ...(await scanFileForRawHttp(filePath, rel, c.canonicalClient, bannedRegex))\n );\n }\n }\n return { ok: violations.length === 0, messages: violations };\n },\n};\n\n// polly:types — multi-package tsc --noEmit orchestrator\n\ntype TypesConfig = {\n /** Workspace globs to discover packages. */\n workspaces?: string[];\n /** Concurrency cap; defaults to os.cpus().length capped at workspace count. */\n concurrency?: number;\n};\n\nasync function runTscFor(\n packagePath: string,\n rootDir: string\n): Promise<{ ok: boolean; output: string }> {\n const proc = Bun.spawn([\"bunx\", \"tsc\", \"--noEmit\", \"-p\", packagePath], {\n cwd: rootDir,\n stdout: \"pipe\",\n stderr: \"pipe\",\n });\n const [stdout, stderr] = await Promise.all([\n new Response(proc.stdout).text(),\n new Response(proc.stderr).text(),\n ]);\n await proc.exited;\n return { ok: proc.exitCode === 0, output: `${stdout}${stderr}` };\n}\n\nasync function findWorkspaces(rootDir: string, patterns: string[]): Promise<string[]> {\n const out: string[] = [];\n for (const pattern of patterns) {\n const glob = new Glob(`${pattern}/tsconfig.json`);\n for await (const file of glob.scan({ cwd: rootDir, absolute: true })) {\n // Trim the trailing /tsconfig.json to get the package directory.\n out.push(file.replace(/\\/tsconfig\\.json$/, \"\"));\n }\n }\n return [...new Set(out)];\n}\n\nconst types: Check<TypesConfig | undefined> = {\n id: \"polly:types\",\n description: \"Run `tsc --noEmit` against each workspace package in parallel\",\n filesRead: async () => {\n // The TypeScript compiler walks the entire dependency graph from\n // tsconfig.json out, which is far wider than what we can easily\n // declare here. We keep filesRead empty so the orchestrator cache\n // always misses on this check; tsc has its own incremental cache,\n // and that is the right place for that complexity to live.\n return [];\n },\n run: async ({ rootDir, config }) => {\n const patterns = config?.workspaces ?? [\"packages/*\", \".\"];\n const packages = await findWorkspaces(rootDir, patterns);\n if (packages.length === 0) return { ok: true, messages: [\"no workspace packages found\"] };\n const results = await Promise.all(packages.map((p) => runTscFor(p, rootDir)));\n return aggregateTypesResults(packages, results, rootDir);\n },\n};\n\nfunction appendTscFailure(messages: string[], relPkg: string, output: string): void {\n messages.push(`${relPkg}: tsc --noEmit failed`);\n const trimmed = output.trim();\n if (!trimmed) return;\n for (const ln of trimmed.split(\"\\n\").slice(0, 30)) messages.push(` ${ln}`);\n}\n\nfunction aggregateTypesResults(\n packages: string[],\n results: Array<{ ok: boolean; output: string }>,\n rootDir: string\n): { ok: boolean; messages: string[] } {\n const messages: string[] = [];\n let ok = true;\n for (let i = 0; i < packages.length; i++) {\n const pkg = packages[i];\n const r = results[i];\n if (!pkg || !r || r.ok) continue;\n ok = false;\n appendTscFailure(messages, relative(rootDir, pkg) || \".\", r.output);\n }\n return { ok, messages };\n}\n\nexport const importCoreChecks: Check<unknown>[] = [\n relativeImports as Check<unknown>,\n tsconfigPaths as Check<unknown>,\n noRawHttp as Check<unknown>,\n types as Check<unknown>,\n];\n",
26
26
  "/**\n * `pollyUiPlugin` — the polly-ui-provided plugin (#89, #90, #91–#94).\n *\n * Re-homes the CSS conformance family and shared-components ban under a\n * dedicated `polly-ui` namespace, and adds a new `no-inline-handlers`\n * check for JSX event handlers. Every wrap reuses the underlying\n * function from `tools/quality/src/css/*` and\n * `tools/quality/src/check-shared-components.ts` so behaviour is\n * identical to the pre-host invocation; only the integration surface\n * changes.\n *\n * Out of scope for this release:\n * - The data-action dispatcher *runtime* described in #90. The check\n * ships here so a project can ban inline handlers today; the\n * dispatcher needs a real Preact implementation that mounts near\n * <OverlayRoot> and registers a delegated event listener, and that\n * work belongs in `src/polly-ui/actions.tsx` rather than under the\n * quality plugin host. The check on its own is useful — it forces\n * the consumer to pick an alternative — and the runtime can land\n * in a follow-up release without changing the check's id.\n * - Registry-driven CSS validation. The four CSS checks currently\n * parse polly-ui's CSS at scan time. The new\n * `@fairfox/polly/ui/registry` (introduced alongside this plugin)\n * exposes the canonical token + component lists as data, and a\n * follow-up can swap the parse-time discovery for a registry\n * lookup. The shape of the wraps does not change when that\n * happens; only the inner implementation does.\n */\n\nimport { readdir } from \"node:fs/promises\";\nimport { join, relative } from \"node:path\";\nimport { Glob } from \"bun\";\nimport { checkSharedComponents } from \"../check-shared-components\";\nimport { checkCssLayout } from \"../css/check-layout\";\nimport { checkCssQuality } from \"../css/check-quality\";\nimport { checkCssUnused } from \"../css/check-unused\";\nimport { checkCssVars } from \"../css/check-vars\";\nimport type { Check, QualityPlugin } from \"../types\";\n\nconst SKIP_DIRS_DEFAULT = [\"node_modules\", \".git\", \"dist\", \".bun\", \".cache\"];\n\nfunction isCommentLine(trimmed: string): boolean {\n return trimmed.startsWith(\"//\") || trimmed.startsWith(\"*\") || trimmed.startsWith(\"/*\");\n}\n\nfunction isAllowedByGlob(rel: string, globs: string[]): boolean {\n for (const g of globs) {\n if (new Glob(g).match(rel)) return true;\n }\n return false;\n}\n\nasync function walkScannableFiles(\n dir: string,\n skipDirs: Set<string>,\n exts: string[],\n out: string[]\n): Promise<void> {\n let entries: import(\"node:fs\").Dirent[];\n try {\n entries = await readdir(dir, { withFileTypes: true });\n } catch {\n return;\n }\n for (const entry of entries) {\n const fullPath = join(dir, entry.name);\n if (entry.isDirectory()) {\n if (!skipDirs.has(entry.name)) await walkScannableFiles(fullPath, skipDirs, exts, out);\n } else if (entry.isFile() && exts.some((e) => entry.name.endsWith(e))) {\n out.push(fullPath);\n }\n }\n}\n\n// polly-ui:css-layout (#91)\n\ntype CssCheckConfig = {\n rootDir?: string;\n skipDirs?: string[];\n};\n\nconst cssLayout: Check<CssCheckConfig | undefined> = {\n id: \"polly-ui:css-layout\",\n description: \"Enforce that layout values come from the <Layout> primitive, not ad-hoc CSS\",\n run: async ({ rootDir, config }) => {\n const r = await checkCssLayout({\n rootDir,\n ...(config?.skipDirs ? { skipDirs: config.skipDirs } : {}),\n });\n return {\n ok: r.violations.length === 0,\n messages: r.violations.map((v) => `${v.file}:${v.line}: ${v.rule}`),\n };\n },\n};\n\nconst cssQuality: Check<CssCheckConfig | undefined> = {\n id: \"polly-ui:css-quality\",\n description: \"Enforce that styled values come from semantic tokens, not literals\",\n run: async ({ rootDir, config }) => {\n const r = await checkCssQuality({\n rootDir,\n ...(config?.skipDirs ? { skipDirs: config.skipDirs } : {}),\n });\n return {\n ok: r.violations.length === 0,\n messages: r.violations.map((v) => `${v.file}:${v.line}: ${v.rule}`),\n };\n },\n};\n\nconst cssVars: Check<CssCheckConfig | undefined> = {\n id: \"polly-ui:css-vars\",\n description: \"Flag `var(--name)` references that resolve to no `--name:` definition\",\n run: async ({ rootDir, config }) => {\n const r = await checkCssVars({\n rootDir,\n ...(config?.skipDirs ? { skipDirs: config.skipDirs } : {}),\n });\n return {\n ok: r.violations.length === 0,\n messages: r.violations.map((v) => `${v.file}:${v.line}: ${v.rule}`),\n };\n },\n};\n\nconst cssUnused: Check<CssCheckConfig | undefined> = {\n id: \"polly-ui:css-unused\",\n description: \"Surface CSS-module selectors that are never referenced from JS/TSX (advisory)\",\n run: async ({ rootDir, config }) => {\n const r = await checkCssUnused({\n rootDir,\n ...(config?.skipDirs ? { skipDirs: config.skipDirs } : {}),\n });\n return {\n // Advisory: never fails the run, just reports.\n ok: true,\n messages: r.violations.map((v) => `${v.file}:${v.line}: ${v.rule}`),\n };\n },\n};\n\n// polly-ui:shared-components (#92)\n\ntype SharedComponentsConfig = {\n scanRoot?: string;\n skipDirs?: string[];\n exemptPackages?: string[];\n};\n\nconst sharedComponents: Check<SharedComponentsConfig | undefined> = {\n id: \"polly-ui:shared-components\",\n description:\n \"Ban native interactive HTML elements; require the polly-ui primitive (<Button>, <Modal>, etc.)\",\n run: async ({ rootDir, config }) => {\n const c = config ?? {};\n const r = await checkSharedComponents({\n root: rootDir,\n ...(c.scanRoot ? { scanRoot: c.scanRoot } : {}),\n ...(c.skipDirs ? { skipDirs: new Set(c.skipDirs) } : {}),\n ...(c.exemptPackages ? { exemptPackages: new Set(c.exemptPackages) } : {}),\n });\n return {\n ok: r.violations.length === 0,\n messages: r.violations.map(\n (v) => `${v.file}:${v.line}: ${v.element} → ${v.replacement} — ${v.content}`\n ),\n };\n },\n};\n\n// polly-ui:no-inline-handlers (#90, check-only — runtime is a follow-up)\n\ntype NoInlineHandlersConfig = {\n banned?: string[];\n allowedFiles?: string[];\n zones?: string[];\n skipDirs?: string[];\n};\n\nconst DEFAULT_NO_INLINE_HANDLERS: Required<NoInlineHandlersConfig> = {\n banned: [\n \"onClick\",\n \"onSubmit\",\n \"onChange\",\n \"onInput\",\n \"onFocus\",\n \"onBlur\",\n \"onKeyDown\",\n \"onKeyUp\",\n \"onMouseDown\",\n \"onMouseUp\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n ],\n allowedFiles: [],\n zones: [\"src\"],\n skipDirs: SKIP_DIRS_DEFAULT,\n};\n\nfunction escapeRegex(name: string): string {\n return name.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction buildHandlerRegex(banned: string[]): RegExp {\n const alts = banned.map(escapeRegex).join(\"|\");\n // Match `onClick={…}` and `onClick=\"…\"` and `onClick='…'` opening forms.\n // nosemgrep: javascript.lang.security.audit.detect-non-literal-regexp.detect-non-literal-regexp\n return new RegExp(`\\\\b(${alts})\\\\s*=\\\\s*\\\\{`);\n}\n\nfunction isTestFile(rel: string): boolean {\n return (\n rel.includes(\"__tests__\") ||\n rel.includes(\".test.\") ||\n rel.includes(\".spec.\") ||\n rel.startsWith(\"tests/\")\n );\n}\n\nasync function scanFileForInlineHandlers(\n filePath: string,\n rel: string,\n regex: RegExp\n): Promise<string[]> {\n const content = await Bun.file(filePath).text();\n const lines = content.split(\"\\n\");\n const out: string[] = [];\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i] ?? \"\";\n if (isCommentLine(line.trim())) continue;\n if (regex.test(line)) {\n out.push(`${rel}:${i + 1}: ${line.trim()}`);\n }\n }\n return out;\n}\n\nconst noInlineHandlers: Check<NoInlineHandlersConfig | undefined> = {\n id: \"polly-ui:no-inline-handlers\",\n description:\n \"Ban inline JSX event handlers (use data-action delegation instead — see polly-ui actions runtime)\",\n filesRead: async (cfg, root) => {\n const c = cfg ?? {};\n const skipDirs = new Set(c.skipDirs ?? DEFAULT_NO_INLINE_HANDLERS.skipDirs);\n const allowed = c.allowedFiles ?? DEFAULT_NO_INLINE_HANDLERS.allowedFiles;\n const out: string[] = [];\n for (const z of c.zones ?? DEFAULT_NO_INLINE_HANDLERS.zones) {\n await walkScannableFiles(join(root, z), skipDirs, [\".tsx\"], out);\n }\n return out.filter((p) => {\n const rel = relative(root, p);\n return !isTestFile(rel) && !isAllowedByGlob(rel, allowed);\n });\n },\n run: async ({ rootDir, config }) => {\n const c = config ?? {};\n const banned = c.banned ?? DEFAULT_NO_INLINE_HANDLERS.banned;\n if (banned.length === 0) return { ok: true, messages: [] };\n const skipDirs = new Set(c.skipDirs ?? DEFAULT_NO_INLINE_HANDLERS.skipDirs);\n const allowed = c.allowedFiles ?? DEFAULT_NO_INLINE_HANDLERS.allowedFiles;\n const regex = buildHandlerRegex(banned);\n const violations: string[] = [];\n for (const z of c.zones ?? DEFAULT_NO_INLINE_HANDLERS.zones) {\n const files: string[] = [];\n await walkScannableFiles(join(rootDir, z), skipDirs, [\".tsx\"], files);\n for (const filePath of files) {\n const rel = relative(rootDir, filePath);\n if (isTestFile(rel) || isAllowedByGlob(rel, allowed)) continue;\n violations.push(...(await scanFileForInlineHandlers(filePath, rel, regex)));\n }\n }\n return { ok: violations.length === 0, messages: violations };\n },\n};\n\nexport const POLLY_UI_PLUGIN_VERSION = \"0.46.0\";\n\nexport const pollyUiPlugin: QualityPlugin = {\n name: \"polly-ui\",\n version: POLLY_UI_PLUGIN_VERSION,\n checks: [\n cssLayout as Check<unknown>,\n cssQuality as Check<unknown>,\n cssVars as Check<unknown>,\n cssUnused as Check<unknown>,\n sharedComponents as Check<unknown>,\n noInlineHandlers as Check<unknown>,\n ],\n};\n"
27
27
  ],
28
- "mappings": "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",
29
- "debugId": "553633575181BC3064756E2164756E21",
28
+ "mappings": "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",
29
+ "debugId": "77643514A1BFE0F864756E2164756E21",
30
30
  "names": []
31
31
  }