@fairfox/polly 0.88.1 → 0.89.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/polly.js +4 -4
- package/dist/cli/polly.js.map +2 -2
- package/dist/gallery/gallery.css +53 -59
- package/dist/gallery/gallery.js +1240 -1073
- package/dist/src/actions/index.js +5 -78
- package/dist/src/actions/index.js.map +2 -2
- package/dist/src/background/index.js +126 -152
- package/dist/src/background/index.js.map +4 -4
- package/dist/src/background/message-router.js +126 -152
- package/dist/src/background/message-router.js.map +4 -4
- package/dist/src/client/index.js +186 -259
- package/dist/src/client/index.js.map +5 -5
- package/dist/src/elysia/index.js +21 -35
- package/dist/src/elysia/index.js.map +2 -2
- package/dist/src/index.js +218 -246
- package/dist/src/index.js.map +10 -10
- package/dist/src/mesh.js +49 -61
- package/dist/src/mesh.js.map +4 -4
- package/dist/src/peer.js +23 -52
- package/dist/src/peer.js.map +2 -2
- package/dist/src/polly-ui/ActionSelect.d.ts +4 -0
- package/dist/src/polly-ui/Button.d.ts +7 -0
- package/dist/src/polly-ui/Collapsible.d.ts +3 -1
- package/dist/src/polly-ui/Layout.d.ts +16 -1
- package/dist/src/polly-ui/index.css +49 -59
- package/dist/src/polly-ui/index.js +227 -237
- package/dist/src/polly-ui/index.js.map +16 -15
- package/dist/src/polly-ui/internal/select-trigger.d.ts +33 -0
- package/dist/src/polly-ui/markdown.js +72 -145
- package/dist/src/polly-ui/markdown.js.map +2 -2
- package/dist/src/polly-ui/styles.css +49 -59
- package/dist/src/polly-ui/theme.css +10 -0
- package/dist/src/shared/adapters/index.js +31 -44
- package/dist/src/shared/adapters/index.js.map +2 -2
- package/dist/src/shared/lib/context-helpers.js +126 -152
- package/dist/src/shared/lib/context-helpers.js.map +4 -4
- package/dist/src/shared/lib/errors.js +1 -74
- package/dist/src/shared/lib/errors.js.map +2 -2
- package/dist/src/shared/lib/guards.js +1 -74
- package/dist/src/shared/lib/guards.js.map +2 -2
- package/dist/src/shared/lib/message-bus.js +126 -152
- package/dist/src/shared/lib/message-bus.js.map +4 -4
- package/dist/src/shared/lib/resource.js +16 -27
- package/dist/src/shared/lib/resource.js.map +5 -5
- package/dist/src/shared/lib/state.js +13 -26
- package/dist/src/shared/lib/state.js.map +2 -2
- package/dist/src/shared/lib/test-helpers.js +1 -74
- package/dist/src/shared/lib/test-helpers.js.map +2 -2
- package/dist/src/shared/state/app-state.js +35 -46
- package/dist/src/shared/state/app-state.js.map +5 -5
- package/dist/src/shared/types/messages.js +1 -74
- package/dist/src/shared/types/messages.js.map +2 -2
- package/dist/tools/bdd/src/cli.js +11 -15
- package/dist/tools/bdd/src/cli.js.map +2 -2
- package/dist/tools/bdd/src/index.js +11 -19
- package/dist/tools/bdd/src/index.js.map +2 -2
- package/dist/tools/gallery/src/cli.js +1 -18
- package/dist/tools/gallery/src/cli.js.map +2 -2
- package/dist/tools/init/src/cli.js +1 -18
- package/dist/tools/init/src/cli.js.map +2 -2
- package/dist/tools/mutate/src/cli.js +8 -25
- package/dist/tools/mutate/src/cli.js.map +2 -2
- package/dist/tools/mutate/src/index.js +8 -26
- package/dist/tools/mutate/src/index.js.map +2 -2
- package/dist/tools/quality/src/cli.js +39 -46
- package/dist/tools/quality/src/cli.js.map +3 -3
- package/dist/tools/quality/src/css/check-layout.d.ts +5 -3
- package/dist/tools/quality/src/index.js +39 -47
- package/dist/tools/quality/src/index.js.map +3 -3
- package/dist/tools/test/src/adapters/index.js +4 -77
- package/dist/tools/test/src/adapters/index.js.map +2 -2
- package/dist/tools/test/src/browser/index.js +1 -74
- package/dist/tools/test/src/browser/index.js.map +2 -2
- package/dist/tools/test/src/browser/run.js +5 -22
- package/dist/tools/test/src/browser/run.js.map +2 -2
- package/dist/tools/test/src/contrast/index.js +1 -74
- package/dist/tools/test/src/contrast/index.js.map +2 -2
- package/dist/tools/test/src/coverage-policy/cli.js +13 -25
- package/dist/tools/test/src/coverage-policy/cli.js.map +2 -2
- package/dist/tools/test/src/coverage-policy/index.js +11 -23
- package/dist/tools/test/src/coverage-policy/index.js.map +2 -2
- package/dist/tools/test/src/e2e-mesh/index.js +18 -43
- package/dist/tools/test/src/e2e-mesh/index.js.map +2 -2
- package/dist/tools/test/src/e2e-relay/index.js +615 -623
- package/dist/tools/test/src/e2e-relay/index.js.map +2 -2
- package/dist/tools/test/src/index.js +30 -103
- package/dist/tools/test/src/index.js.map +5 -5
- package/dist/tools/test/src/test-utils.js +1 -74
- package/dist/tools/test/src/test-utils.js.map +2 -2
- package/dist/tools/test/src/tiers/cli.js +1 -18
- package/dist/tools/test/src/tiers/cli.js.map +2 -2
- package/dist/tools/test/src/tiers/worker.js +11 -15
- package/dist/tools/test/src/tiers/worker.js.map +2 -2
- package/dist/tools/test/src/visual/index.js +1112 -1134
- package/dist/tools/test/src/visual/index.js.map +3 -3
- package/dist/tools/verify/src/cli.js +103 -169
- package/dist/tools/verify/src/cli.js.map +2 -2
- package/dist/tools/verify/src/config.js +1 -74
- package/dist/tools/verify/src/config.js.map +2 -2
- package/dist/tools/verify/src/stryker/index.js +1 -19
- package/dist/tools/verify/src/stryker/index.js.map +2 -2
- package/dist/tools/visualize/src/cli.js +69 -85
- package/dist/tools/visualize/src/cli.js.map +2 -2
- package/package.json +1 -1
|
@@ -1,31 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
configurable: true,
|
|
14
|
-
set: __exportSetter.bind(all, name)
|
|
15
|
-
});
|
|
3
|
+
var __esm = (fn, res, err) => () => {
|
|
4
|
+
if (fn)
|
|
5
|
+
try {
|
|
6
|
+
res = fn(fn = 0);
|
|
7
|
+
} catch (e) {
|
|
8
|
+
err = [e];
|
|
9
|
+
}
|
|
10
|
+
if (err)
|
|
11
|
+
throw err[0];
|
|
12
|
+
return res;
|
|
16
13
|
};
|
|
17
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
18
14
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
19
15
|
|
|
20
16
|
// tools/test/src/coverage-policy/enforce.ts
|
|
21
|
-
var exports_enforce = {};
|
|
22
|
-
__export(exports_enforce, {
|
|
23
|
-
enforceCoverage: () => enforceCoverage,
|
|
24
|
-
evaluateCoverage: () => evaluateCoverage,
|
|
25
|
-
hasFailure: () => hasFailure,
|
|
26
|
-
parseCoverageTable: () => parseCoverageTable,
|
|
27
|
-
runCoverage: () => runCoverage
|
|
28
|
-
});
|
|
29
17
|
import { existsSync as existsSync2 } from "node:fs";
|
|
30
18
|
import { join as join2, resolve as resolve2 } from "node:path";
|
|
31
19
|
import { Glob } from "bun";
|
|
@@ -316,9 +304,9 @@ async function main() {
|
|
|
316
304
|
}
|
|
317
305
|
const { config, source } = await loadCoverageConfig(args.root, args.configPath);
|
|
318
306
|
const srcDir = config.srcDir ?? "src";
|
|
319
|
-
const findings = args.stdin ? await Promise.resolve().then(() => (init_enforce(),
|
|
307
|
+
const findings = args.stdin ? await Promise.resolve().then(() => (init_enforce(), {})).then(async (m) => {
|
|
320
308
|
const rows = parseCoverageTable(await readStdin(), srcDir);
|
|
321
|
-
return
|
|
309
|
+
return evaluateCoverage(args.root, rows, config);
|
|
322
310
|
}) : await enforceCoverage(args.root, config);
|
|
323
311
|
reportPolicy(findings);
|
|
324
312
|
reportOrphans(findings, args);
|
|
@@ -340,4 +328,4 @@ async function main() {
|
|
|
340
328
|
}
|
|
341
329
|
await main();
|
|
342
330
|
|
|
343
|
-
//# debugId=
|
|
331
|
+
//# debugId=884F02B6F826750564756E2164756E21
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"#!/usr/bin/env bun\n\n/**\n * @fairfox/polly/test/coverage — consumer-facing `polly coverage`.\n *\n * Zero-config: run it in any Polly project and it reports per-file coverage,\n * orphan source files, and (if a Stryker config is present) dead mutate/test\n * globs. Add a `coverage.config.ts` with a `defaultThreshold` to turn the\n * report into an enforced gate, and `exempt` entries to record which\n * higher-tier test covers a unit-thin file.\n *\n * Usage:\n * polly coverage # report (zero-config) or enforce (with config)\n * polly coverage --strict-orphans # fail on source no unit test imports\n * polly coverage --orphans # list the orphan files\n * polly coverage --no-mutate # skip the Stryker target check\n * polly coverage --config <path> # explicit coverage.config.ts\n * bun test --coverage | polly coverage --stdin\n */\n\nimport { loadCoverageConfig } from \"./discover\";\nimport { type CoverageFindings, enforceCoverage, hasFailure, parseCoverageTable } from \"./enforce\";\nimport { type MutateTargetReport, validateMutateTargets } from \"./mutate-targets\";\n\ninterface Args {\n root: string;\n configPath?: string;\n strictOrphans: boolean;\n listOrphans: boolean;\n stdin: boolean;\n mutate: boolean;\n help: boolean;\n}\n\nfunction parseArgs(argv: string[]): Args {\n const flag = (name: string) => argv.includes(name);\n const argValue = (name: string): string | undefined => {\n const i = argv.indexOf(name);\n return i >= 0 ? argv[i + 1] : undefined;\n };\n const strictOrphans = flag(\"--strict-orphans\");\n return {\n root: process.cwd(),\n configPath: argValue(\"--config\"),\n strictOrphans,\n listOrphans: strictOrphans || flag(\"--orphans\"),\n stdin: flag(\"--stdin\"),\n mutate: !flag(\"--no-mutate\"),\n help: flag(\"--help\") || flag(\"-h\"),\n };\n}\n\nasync function readStdin(): Promise<string> {\n const chunks: string[] = [];\n for await (const chunk of Bun.stdin.stream()) chunks.push(new TextDecoder().decode(chunk));\n return chunks.join(\"\");\n}\n\nfunction reportPolicy(f: CoverageFindings): void {\n for (const m of f.missingExemptFiles) {\n process.stderr.write(`❌ exempt source missing: ${m}\\n`);\n }\n for (const { file, claimedBy } of f.missingClaimedBy) {\n process.stderr.write(`❌ ${file} → claimedBy missing: ${claimedBy}\\n`);\n }\n for (const s of f.staleExempts) {\n process.stderr.write(`❌ exempt file now meets the floor — promote it: ${s}\\n`);\n }\n for (const v of f.violations) {\n process.stderr.write(\n `❌ ${v.file} ${v.metric}=${v.observed.toFixed(2)}% (need ≥ ${v.required}%)\\n`\n );\n }\n}\n\nfunction reportOrphans(f: CoverageFindings, args: Args): void {\n if (f.orphans.length === 0) return;\n process.stderr.write(\n `${args.strictOrphans ? \"❌\" : \"⚠️ \"} ${f.orphans.length} src file(s) no unit test imports\\n`\n );\n if (args.listOrphans) for (const o of f.orphans) process.stderr.write(` ${o}\\n`);\n else process.stderr.write(\" --orphans to list, --strict-orphans to fail\\n\");\n}\n\nfunction reportMutate(report: MutateTargetReport): void {\n if (report.issues.length === 0) return;\n process.stderr.write(`❌ ${report.issues.length} Stryker target(s) resolve to no files:\\n`);\n for (const i of report.issues) {\n process.stderr.write(` ${i.config} [${i.field}] ${i.pattern}\\n`);\n }\n}\n\nfunction showHelp(): void {\n process.stdout.write(\n \"polly coverage — coverage policy, orphan detection, Stryker target validation\\n\\n\" +\n \" Coverage that a line ran isn't proof anything checks it. This enforces a\\n\" +\n \" per-file floor with explicit, owned exemptions so test debt stays visible,\\n\" +\n \" and flags orphans (source no test imports) and drifted Stryker targets.\\n\\n\" +\n \" --strict-orphans fail on source no unit test imports\\n\" +\n \" --orphans list orphan files\\n\" +\n \" --no-mutate skip the Stryker mutate/testFiles check\\n\" +\n \" --config <path> explicit coverage.config.ts\\n\" +\n \" --stdin read a `bun test --coverage` table from stdin\\n\"\n );\n}\n\nasync function main(): Promise<void> {\n const args = parseArgs(process.argv.slice(2));\n if (args.help) {\n showHelp();\n return;\n }\n\n const { config, source } = await loadCoverageConfig(args.root, args.configPath);\n const srcDir = config.srcDir ?? \"src\";\n\n const findings = args.stdin\n ? await import(\"./enforce\").then(async (m) => {\n const rows = parseCoverageTable(await readStdin(), srcDir);\n return m.evaluateCoverage(args.root, rows, config);\n })\n : await enforceCoverage(args.root, config);\n\n reportPolicy(findings);\n reportOrphans(findings, args);\n\n let mutate: MutateTargetReport = { configs: [], issues: [] };\n if (args.mutate) {\n mutate = await validateMutateTargets(args.root);\n reportMutate(mutate);\n }\n\n const failed = hasFailure(findings, args.strictOrphans) || mutate.issues.length > 0;\n if (!failed) {\n const mode = findings.enforced ? `floor enforced` : \"report-only (no defaultThreshold)\";\n const where = source ? \"\" : \" — zero-config\";\n const orphanNote = findings.orphans.length ? `, ${findings.orphans.length} orphan` : \"\";\n const mutateNote = mutate.configs.length\n ? `, ${mutate.configs.length} stryker config(s) ok`\n : \"\";\n process.stdout.write(\n `✅ coverage ok — ${findings.rowCount} src files, ${mode}${where}${orphanNote}${mutateNote}\\n`\n );\n }\n process.exit(failed ? 1 : 0);\n}\n\nawait main();\n",
|
|
8
8
|
"/**\n * @fairfox/polly/test/coverage — Stryker mutate-/test-target validation.\n *\n * A Stryker config's `mutate` and `testFiles` lists are hand-curated. A path\n * that is renamed, or a glob whose directory moves, silently resolves to\n * nothing — Stryker mutates fewer files (or none) and the only signal is a\n * long mutation run whose score quietly drops. This asserts, in milliseconds,\n * that every entry still resolves to at least one file.\n *\n * Discovers configs two ways, covering both layouts in the wild: a single\n * `stryker.conf.json` at the root, and a `stryker/` directory of per-package\n * shards.\n */\n\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { Glob } from \"bun\";\n\ninterface StrykerConfig {\n mutate?: string[];\n testFiles?: string[];\n bun?: { testFiles?: string[] };\n}\n\nexport interface MutateTargetIssue {\n config: string;\n field: \"mutate\" | \"testFiles\";\n pattern: string;\n}\n\nexport interface MutateTargetReport {\n configs: string[];\n issues: MutateTargetIssue[];\n}\n\n/** Locate every Stryker config under the project root. */\nexport async function findStrykerConfigs(root: string): Promise<string[]> {\n const found: string[] = [];\n const single = join(root, \"stryker.conf.json\");\n if (existsSync(single)) found.push(single);\n\n const glob = new Glob(\"stryker/*.{json,conf.json}\");\n for await (const rel of glob.scan({ cwd: root, onlyFiles: true })) {\n found.push(join(root, rel));\n }\n return found.sort();\n}\n\nfunction isGlob(pattern: string): boolean {\n return pattern.includes(\"*\") || pattern.includes(\"?\") || pattern.includes(\"[\");\n}\n\nasync function resolvesToFile(pattern: string, cwd: string): Promise<boolean> {\n if (pattern.startsWith(\"!\")) return true; // negations are filters, not targets\n if (!isGlob(pattern)) return existsSync(resolve(cwd, pattern));\n const glob = new Glob(pattern);\n for await (const _ of glob.scan({ cwd, onlyFiles: true })) return true;\n return false;\n}\n\nasync function checkField(\n configPath: string,\n field: \"mutate\" | \"testFiles\",\n patterns: string[] | undefined,\n cwd: string\n): Promise<MutateTargetIssue[]> {\n const issues: MutateTargetIssue[] = [];\n for (const pattern of patterns ?? []) {\n if (!(await resolvesToFile(pattern, cwd))) {\n issues.push({ config: configPath, field, pattern });\n }\n }\n return issues;\n}\n\n/**\n * Validate every Stryker config under `root`. Paths in a Stryker config are\n * relative to that config's directory; for the monorepo-root configs that is\n * the root, so we resolve globs against `root`.\n */\nexport async function validateMutateTargets(root: string): Promise<MutateTargetReport> {\n const configs = await findStrykerConfigs(root);\n const issues: MutateTargetIssue[] = [];\n for (const configPath of configs) {\n const config = JSON.parse(readFileSync(configPath, \"utf8\")) as unknown as StrykerConfig;\n const testFiles = config.testFiles ?? config.bun?.testFiles;\n issues.push(...(await checkField(configPath, \"mutate\", config.mutate, root)));\n issues.push(...(await checkField(configPath, \"testFiles\", testFiles, root)));\n }\n return { configs, issues };\n}\n"
|
|
9
9
|
],
|
|
10
|
-
"mappings": "
|
|
11
|
-
"debugId": "
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "884F02B6F826750564756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
2
|
+
var __esm = (fn, res, err) => () => {
|
|
3
|
+
if (fn)
|
|
4
|
+
try {
|
|
5
|
+
res = fn(fn = 0);
|
|
6
|
+
} catch (e) {
|
|
7
|
+
err = [e];
|
|
8
|
+
}
|
|
9
|
+
if (err)
|
|
10
|
+
throw err[0];
|
|
11
|
+
return res;
|
|
15
12
|
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
13
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
18
14
|
|
|
19
15
|
// tools/test/src/coverage-policy/enforce.ts
|
|
20
|
-
var exports_enforce = {};
|
|
21
|
-
__export(exports_enforce, {
|
|
22
|
-
enforceCoverage: () => enforceCoverage,
|
|
23
|
-
evaluateCoverage: () => evaluateCoverage,
|
|
24
|
-
hasFailure: () => hasFailure,
|
|
25
|
-
parseCoverageTable: () => parseCoverageTable,
|
|
26
|
-
runCoverage: () => runCoverage
|
|
27
|
-
});
|
|
28
16
|
import { existsSync as existsSync2 } from "node:fs";
|
|
29
17
|
import { join as join2, resolve as resolve2 } from "node:path";
|
|
30
18
|
import { Glob } from "bun";
|
|
@@ -239,4 +227,4 @@ export {
|
|
|
239
227
|
validateMutateTargets
|
|
240
228
|
};
|
|
241
229
|
|
|
242
|
-
//# debugId=
|
|
230
|
+
//# debugId=5C2B3898BBAEBE0B64756E2164756E21
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"/**\n * @fairfox/polly/test/coverage — programmatic API behind `polly coverage`.\n *\n * Use the CLI (`polly coverage`) for the common case; import these to script\n * the policy yourself or to add a coverage tier to a custom runner.\n */\n\nexport { type LoadedConfig, loadCoverageConfig } from \"./discover\";\nexport {\n type CoverageFindings,\n type CoverageRow,\n enforceCoverage,\n evaluateCoverage,\n hasFailure,\n parseCoverageTable,\n runCoverage,\n type Violation,\n} from \"./enforce\";\nexport {\n findStrykerConfigs,\n type MutateTargetIssue,\n type MutateTargetReport,\n validateMutateTargets,\n} from \"./mutate-targets\";\nexport type { CoverageConfig, ExemptEntry, FileThreshold } from \"./types\";\n",
|
|
8
8
|
"/**\n * @fairfox/polly/test/coverage — Stryker mutate-/test-target validation.\n *\n * A Stryker config's `mutate` and `testFiles` lists are hand-curated. A path\n * that is renamed, or a glob whose directory moves, silently resolves to\n * nothing — Stryker mutates fewer files (or none) and the only signal is a\n * long mutation run whose score quietly drops. This asserts, in milliseconds,\n * that every entry still resolves to at least one file.\n *\n * Discovers configs two ways, covering both layouts in the wild: a single\n * `stryker.conf.json` at the root, and a `stryker/` directory of per-package\n * shards.\n */\n\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { Glob } from \"bun\";\n\ninterface StrykerConfig {\n mutate?: string[];\n testFiles?: string[];\n bun?: { testFiles?: string[] };\n}\n\nexport interface MutateTargetIssue {\n config: string;\n field: \"mutate\" | \"testFiles\";\n pattern: string;\n}\n\nexport interface MutateTargetReport {\n configs: string[];\n issues: MutateTargetIssue[];\n}\n\n/** Locate every Stryker config under the project root. */\nexport async function findStrykerConfigs(root: string): Promise<string[]> {\n const found: string[] = [];\n const single = join(root, \"stryker.conf.json\");\n if (existsSync(single)) found.push(single);\n\n const glob = new Glob(\"stryker/*.{json,conf.json}\");\n for await (const rel of glob.scan({ cwd: root, onlyFiles: true })) {\n found.push(join(root, rel));\n }\n return found.sort();\n}\n\nfunction isGlob(pattern: string): boolean {\n return pattern.includes(\"*\") || pattern.includes(\"?\") || pattern.includes(\"[\");\n}\n\nasync function resolvesToFile(pattern: string, cwd: string): Promise<boolean> {\n if (pattern.startsWith(\"!\")) return true; // negations are filters, not targets\n if (!isGlob(pattern)) return existsSync(resolve(cwd, pattern));\n const glob = new Glob(pattern);\n for await (const _ of glob.scan({ cwd, onlyFiles: true })) return true;\n return false;\n}\n\nasync function checkField(\n configPath: string,\n field: \"mutate\" | \"testFiles\",\n patterns: string[] | undefined,\n cwd: string\n): Promise<MutateTargetIssue[]> {\n const issues: MutateTargetIssue[] = [];\n for (const pattern of patterns ?? []) {\n if (!(await resolvesToFile(pattern, cwd))) {\n issues.push({ config: configPath, field, pattern });\n }\n }\n return issues;\n}\n\n/**\n * Validate every Stryker config under `root`. Paths in a Stryker config are\n * relative to that config's directory; for the monorepo-root configs that is\n * the root, so we resolve globs against `root`.\n */\nexport async function validateMutateTargets(root: string): Promise<MutateTargetReport> {\n const configs = await findStrykerConfigs(root);\n const issues: MutateTargetIssue[] = [];\n for (const configPath of configs) {\n const config = JSON.parse(readFileSync(configPath, \"utf8\")) as unknown as StrykerConfig;\n const testFiles = config.testFiles ?? config.bun?.testFiles;\n issues.push(...(await checkField(configPath, \"mutate\", config.mutate, root)));\n issues.push(...(await checkField(configPath, \"testFiles\", testFiles, root)));\n }\n return { configs, issues };\n}\n"
|
|
9
9
|
],
|
|
10
|
-
"mappings": "
|
|
11
|
-
"debugId": "
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "5C2B3898BBAEBE0B64756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
|
@@ -18,7 +18,7 @@ var __toESM = (mod, isNodeMode, target) => {
|
|
|
18
18
|
return cached;
|
|
19
19
|
}
|
|
20
20
|
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
21
|
-
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
21
|
+
const to = isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
22
22
|
if (mod && typeof mod === "object" || typeof mod === "function") {
|
|
23
23
|
for (let key of __getOwnPropNames(mod))
|
|
24
24
|
if (!__hasOwnProp.call(to, key))
|
|
@@ -62,31 +62,19 @@ var __export = (target, all) => {
|
|
|
62
62
|
set: __exportSetter.bind(all, name)
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
|
-
var __esm = (fn, res) => () =>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
65
|
+
var __esm = (fn, res, err) => () => {
|
|
66
|
+
if (fn)
|
|
67
|
+
try {
|
|
68
|
+
res = fn(fn = 0);
|
|
69
|
+
} catch (e) {
|
|
70
|
+
err = [e];
|
|
71
|
+
}
|
|
72
|
+
if (err)
|
|
73
|
+
throw err[0];
|
|
74
|
+
return res;
|
|
75
|
+
};
|
|
73
76
|
|
|
74
77
|
// src/shared/lib/encryption.ts
|
|
75
|
-
var exports_encryption = {};
|
|
76
|
-
__export(exports_encryption, {
|
|
77
|
-
EncryptionError: () => EncryptionError,
|
|
78
|
-
KEY_BYTES: () => KEY_BYTES,
|
|
79
|
-
NONCE_BYTES: () => NONCE_BYTES,
|
|
80
|
-
TAG_BYTES: () => TAG_BYTES,
|
|
81
|
-
decodeEncryptedEnvelope: () => decodeEncryptedEnvelope,
|
|
82
|
-
decrypt: () => decrypt,
|
|
83
|
-
decryptOrThrow: () => decryptOrThrow,
|
|
84
|
-
encodeEncryptedEnvelope: () => encodeEncryptedEnvelope,
|
|
85
|
-
encrypt: () => encrypt,
|
|
86
|
-
generateDocumentKey: () => generateDocumentKey,
|
|
87
|
-
openEnvelope: () => openEnvelope,
|
|
88
|
-
sealEnvelope: () => sealEnvelope
|
|
89
|
-
});
|
|
90
78
|
import nacl from "tweetnacl";
|
|
91
79
|
function generateDocumentKey() {
|
|
92
80
|
return nacl.randomBytes(KEY_BYTES);
|
|
@@ -167,21 +155,9 @@ var init_encryption = __esm(() => {
|
|
|
167
155
|
// node:path
|
|
168
156
|
var exports_path = {};
|
|
169
157
|
__export(exports_path, {
|
|
170
|
-
_makeLong: () => _makeLong,
|
|
171
|
-
basename: () => basename,
|
|
172
|
-
default: () => path_default,
|
|
173
|
-
delimiter: () => delimiter,
|
|
174
158
|
dirname: () => dirname,
|
|
175
|
-
extname: () => extname,
|
|
176
|
-
format: () => format,
|
|
177
|
-
isAbsolute: () => isAbsolute,
|
|
178
159
|
join: () => join,
|
|
179
|
-
|
|
180
|
-
parse: () => parse,
|
|
181
|
-
posix: () => posix,
|
|
182
|
-
relative: () => relative,
|
|
183
|
-
resolve: () => resolve,
|
|
184
|
-
sep: () => sep
|
|
160
|
+
resolve: () => resolve
|
|
185
161
|
});
|
|
186
162
|
function assertPath(path) {
|
|
187
163
|
if (typeof path !== "string")
|
|
@@ -498,10 +474,9 @@ function parse(path) {
|
|
|
498
474
|
ret.dir = "/";
|
|
499
475
|
return ret;
|
|
500
476
|
}
|
|
501
|
-
var sep = "/", delimiter = ":", posix
|
|
477
|
+
var sep = "/", delimiter = ":", posix;
|
|
502
478
|
var init_path = __esm(() => {
|
|
503
479
|
posix = ((p) => (p.posix = p, p))({ resolve, normalize, isAbsolute, join, relative, _makeLong, dirname, basename, extname, format, parse, sep, delimiter, win32: null, posix: null });
|
|
504
|
-
path_default = posix;
|
|
505
480
|
});
|
|
506
481
|
|
|
507
482
|
// tools/test/src/e2e-mesh/console-allowlist.ts
|
|
@@ -1229,12 +1204,12 @@ async function withRelay(options = {}) {
|
|
|
1229
1204
|
const mode = options.mode ?? "embedded";
|
|
1230
1205
|
const path = options.path ?? "/polly/signaling";
|
|
1231
1206
|
if (mode === "env") {
|
|
1232
|
-
const
|
|
1233
|
-
if (!
|
|
1207
|
+
const url = process.env["SIGNALING_URL"];
|
|
1208
|
+
if (!url) {
|
|
1234
1209
|
throw new Error("withRelay({ mode: 'env' }) requires SIGNALING_URL to be set in the environment.");
|
|
1235
1210
|
}
|
|
1236
1211
|
return {
|
|
1237
|
-
url
|
|
1212
|
+
url,
|
|
1238
1213
|
close: async () => {}
|
|
1239
1214
|
};
|
|
1240
1215
|
}
|
|
@@ -1263,4 +1238,4 @@ export {
|
|
|
1263
1238
|
withRelay
|
|
1264
1239
|
};
|
|
1265
1240
|
|
|
1266
|
-
//# debugId=
|
|
1241
|
+
//# debugId=9DD3BC71E0F60DB064756E2164756E21
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"// @ts-nocheck - Optional peer dependencies (elysia, @elysiajs/eden)\n/**\n * signalingServer — Phase 2 Elysia plugin that exposes a stateless\n * WebSocket route for SDP/ICE relay between $meshState peers.\n *\n * The mesh transport is a star-of-data-channels: peers establish direct\n * WebRTC connections to each other and exchange document operations\n * peer-to-peer once those channels are open. WebRTC connection setup\n * needs an out-of-band channel for SDP offer/answer and ICE candidate\n * exchange, and that channel is what this plugin provides. The plugin\n * does not own any document state, does not hold any encryption keys,\n * and never inspects the contents of the messages it relays. It is a\n * pure pub-sub by peer id.\n *\n * Once two peers have completed the SDP exchange and opened a direct\n * data channel, the signalling server is no longer on the critical\n * path — the peers talk directly. The signalling server's role is\n * therefore intermittent: peers connect to it only during the brief\n * windows when they are establishing or re-establishing connections.\n *\n * Wire protocol:\n *\n * Client → server (join):\n * { type: \"join\", peerId: \"peer-alice\" }\n *\n * Client → server (signal to another peer):\n * { type: \"signal\", peerId: \"peer-alice\", targetPeerId: \"peer-bob\",\n * payload: { ... } }\n *\n * Server → client (delivered signal):\n * { type: \"signal\", peerId: \"peer-alice\", targetPeerId: \"peer-bob\",\n * payload: { ... } }\n *\n * Server → client (notification of unknown target):\n * { type: \"error\", reason: \"unknown-target\", targetPeerId: \"...\" }\n *\n * The `payload` is opaque to the signalling server — typically it\n * carries an SDP offer, SDP answer, or ICE candidate. Applications can\n * also use the relay for any other peer-to-peer message that needs an\n * intermediary, such as the initial handshake of a pairing flow.\n *\n * @example\n * ```ts\n * import { Elysia } from \"elysia\";\n * import { signalingServer } from \"@fairfox/polly/elysia\";\n *\n * const app = new Elysia()\n * .use(signalingServer({ path: \"/polly/signaling\" }))\n * .listen(8080);\n * ```\n */\n\nimport { Elysia } from \"elysia\";\n\n/** A signalling message. The `type` discriminates between client-to-server\n * requests (join, signal), the error envelope, and the server-to-client\n * discovery frames (peers-present, peer-joined, peer-left) that let\n * peers learn about each other without polling. */\nexport type SignalingMessage =\n | {\n type: \"join\";\n /** The peer registering itself with the signalling server. */\n peerId: string;\n }\n | {\n type: \"signal\";\n /** The peer sending the signal. */\n peerId: string;\n /** The peer the signal is being relayed to. */\n targetPeerId: string;\n /** Opaque payload, typically SDP or ICE. */\n payload: unknown;\n }\n | {\n type: \"error\";\n reason: \"unknown-target\" | \"not-joined\" | \"malformed\";\n targetPeerId?: string;\n }\n | {\n /** Sent to a newcomer immediately after it joins, listing every\n * peer that was already joined at that moment. Empty for a lone\n * newcomer. */\n type: \"peers-present\";\n peerIds: string[];\n }\n | {\n /** Broadcast to every incumbent when a new peer joins. */\n type: \"peer-joined\";\n peerId: string;\n }\n | {\n /** Broadcast to every remaining incumbent when a joined peer\n * closes its socket. Never emitted for a connection that never\n * sent a join frame. */\n type: \"peer-left\";\n peerId: string;\n };\n\n/** A frame whose `type` is outside the built-in signalling vocabulary.\n * Consumers who pass an {@link SignalingServerOptions.onCustomFrame}\n * handler receive these on the server side; everything else — including\n * routing them to a specific peer, storing a session, or rejecting the\n * frame — is the consumer's call. Polly does not touch the body. */\nexport interface CustomSignalingFrame {\n type: string;\n [key: string]: unknown;\n}\n\n/** Minimal surface the custom-frame handler receives in place of the\n * Elysia-specific `ws` object so the plugin stays portable. Exposes the\n * `data` bag (used to stash the authenticated peerId under the existing\n * join handshake) and a `send` method. */\nexport interface CustomFrameSocket {\n data: Record<string, unknown>;\n send: (msg: unknown) => void;\n}\n\nexport interface SignalingServerOptions {\n /** WebSocket route path. Defaults to \"/polly/signaling\". */\n path?: string;\n /** Optional hook for frames whose `type` is outside the built-in\n * vocabulary. The plugin invokes it in place of returning a\n * `malformed` error, so consumers can layer their own application\n * protocol (pairing return tokens, presence pings, etc.) on the\n * existing socket. The `peerId` argument is the sender's\n * authenticated peer id from their prior `join` frame, or\n * `undefined` if they haven't joined yet. */\n onCustomFrame?: (\n socket: CustomFrameSocket,\n frame: CustomSignalingFrame,\n peerId: string | undefined\n ) => void;\n}\n\n/**\n * Construct the signalling-server Elysia plugin. The plugin keeps a\n * per-instance map of peer id → WebSocket connection so that incoming\n * \"signal\" messages can be routed to the right target socket. The map\n * is local to the plugin instance, not shared across processes; for\n * multi-instance deployments behind a load balancer, applications need\n * sticky connection routing or a shared backplane (Redis pub-sub or\n * similar). That is a follow-up.\n */\nexport function signalingServer(options: SignalingServerOptions = {}) {\n const path = options.path ?? \"/polly/signaling\";\n const onCustomFrame = options.onCustomFrame;\n // Per-peer-id map of joined sockets. The inverse mapping is stored\n // directly on ws.data (a mutable property bag that Elysia preserves\n // across message callbacks for a given connection); the webrtc-p2p-chat\n // example in examples/ confirms this pattern is stable under Bun.\n const peerSockets = new Map<string, { send: (msg: unknown) => void }>();\n\n // Intentionally unnamed — Elysia deduplicates plugins by name, and each\n // signalingServer() call needs its own closure-captured peer map.\n const parseMessage = (raw: unknown): SignalingMessage | undefined => {\n try {\n return typeof raw === \"string\" ? JSON.parse(raw) : (raw as unknown as SignalingMessage);\n } catch {\n return undefined;\n }\n };\n\n const handleJoin = (ws: unknown, peerId: string): void => {\n const newcomer = ws as unknown as { send: (m: unknown) => void };\n // Collect the peers that were already joined so we can (a) tell the\n // newcomer who is present and (b) tell each of them about the\n // newcomer. A rejoin with the same peerId replaces the prior entry\n // but is otherwise treated as a fresh arrival.\n const incumbents: Array<{ peerId: string; socket: { send: (m: unknown) => void } }> = [];\n for (const [existingPeerId, existingSocket] of peerSockets) {\n if (existingPeerId === peerId) continue;\n incumbents.push({ peerId: existingPeerId, socket: existingSocket });\n }\n peerSockets.set(peerId, newcomer);\n const wsWithData = ws as unknown as { data: Record<string, unknown> };\n wsWithData.data.peerId = peerId;\n\n newcomer.send({\n type: \"peers-present\",\n peerIds: incumbents.map((i) => i.peerId),\n } as unknown as SignalingMessage);\n\n for (const incumbent of incumbents) {\n try {\n incumbent.socket.send({ type: \"peer-joined\", peerId } as unknown as SignalingMessage);\n } catch {\n // If a send fails we leave the stale socket to its own close\n // handler to evict. Dropping here would open a window where\n // the next signal to this peer still thinks it's alive.\n }\n }\n };\n\n const sendUnknownTarget = (ws: unknown, targetPeerId: string): void => {\n (ws as unknown as { send: (m: unknown) => void }).send({\n type: \"error\",\n reason: \"unknown-target\",\n targetPeerId,\n } as unknown as SignalingMessage);\n };\n\n /** Look up a target socket and confirm it is still open. */\n const findOpenTarget = (targetPeerId: string): { send: (msg: unknown) => void } | undefined => {\n const target = peerSockets.get(targetPeerId);\n if (!target) return undefined;\n const readyState = (target as unknown as { readyState?: number }).readyState;\n const OPEN = 1;\n if (readyState !== undefined && readyState !== OPEN) {\n peerSockets.delete(targetPeerId);\n return undefined;\n }\n return target;\n };\n\n const handleSignal = (ws: unknown, msg: Extract<SignalingMessage, { type: \"signal\" }>): void => {\n const wsWithData = ws as unknown as {\n data: Record<string, unknown>;\n send: (m: unknown) => void;\n };\n const senderId = wsWithData.data.peerId as unknown as string | undefined;\n if (!senderId) {\n wsWithData.send({ type: \"error\", reason: \"not-joined\" } as unknown as SignalingMessage);\n return;\n }\n const target = findOpenTarget(msg.targetPeerId);\n if (!target) {\n sendUnknownTarget(ws, msg.targetPeerId);\n return;\n }\n const relayed: SignalingMessage = {\n type: \"signal\",\n peerId: senderId,\n targetPeerId: msg.targetPeerId,\n payload: msg.payload,\n };\n try {\n target.send(relayed);\n } catch {\n peerSockets.delete(msg.targetPeerId);\n sendUnknownTarget(ws, msg.targetPeerId);\n }\n };\n\n return new Elysia().ws(path, {\n message(ws, raw) {\n const msg = parseMessage(raw);\n if (!msg) {\n ws.send({ type: \"error\", reason: \"malformed\" } as unknown as SignalingMessage);\n return;\n }\n if (msg.type === \"join\") {\n handleJoin(ws, msg.peerId);\n return;\n }\n if (msg.type === \"signal\") {\n handleSignal(ws, msg);\n return;\n }\n // Unknown types route to the consumer's custom-frame hook when\n // one is configured. Without a hook they still fall through to\n // the `malformed` error — same behaviour as before this branch\n // existed.\n if (onCustomFrame !== undefined) {\n const wsWithData = ws as unknown as CustomFrameSocket;\n const senderId = wsWithData.data[\"peerId\"];\n const peerId = typeof senderId === \"string\" ? senderId : undefined;\n onCustomFrame(wsWithData, msg as unknown as CustomSignalingFrame, peerId);\n return;\n }\n ws.send({ type: \"error\", reason: \"malformed\" } as unknown as SignalingMessage);\n },\n\n close(ws) {\n const peerId = (ws.data as unknown as Record<string, unknown>).peerId as unknown as\n | string\n | undefined;\n if (!peerId) {\n // Connection that never sent a join — nothing to broadcast and\n // nothing to evict. A bystander coming and going leaves no trace.\n return;\n }\n // Only evict if the map still points at *this* socket. A stale\n // close after the same peerId rejoined on a new socket should not\n // take the fresh entry with it. The comparison uses the `data` bag\n // Elysia attaches to each connection because it is preserved across\n // message and close callbacks, unlike the `ws` wrapper object which\n // Elysia may or may not reuse.\n const mapped = peerSockets.get(peerId);\n const wsData = (ws as unknown as { data: Record<string, unknown> }).data;\n const mappedData = (mapped as unknown as { data?: Record<string, unknown> } | undefined)\n ?.data;\n if (mapped === undefined || mappedData !== wsData) {\n return;\n }\n peerSockets.delete(peerId);\n for (const [_incumbentId, incumbentSocket] of peerSockets) {\n try {\n incumbentSocket.send({ type: \"peer-left\", peerId } as unknown as SignalingMessage);\n } catch {\n // Incumbent socket is gone; its own close handler will tidy.\n }\n }\n },\n });\n}\n",
|
|
19
19
|
"/**\n * @fairfox/polly/test — ephemeral listen ports.\n *\n * A test that draws a listen port at random from a fixed window can collide\n * with itself, with a second copy of the suite, or with any other process\n * holding a port in that window. The integration suite drew 27 ports from a\n * 10,000-port window, which is a 3.45% self-collision probability per run\n * (birthday bound, `1 - exp(-n(n-1)/2N)`) and a lower bound at that. A\n * collision fails `listen()` and reads as flake, so the natural response is a\n * retry — which narrows the window instead of removing it (polly#174).\n *\n * Port 0 asks the kernel for a free port. The server owns that port from the\n * moment it is assigned, so no other process can take it in between. These\n * helpers read the assigned port back off the two server shapes polly binds:\n *\n * - Bun/Elysia — `app.server.port`, after `.listen(0)`\n * - `ws` WebSocketServer — `wss.address().port`, after `{ port: 0 }`\n *\n * `retryOnPortInUse` covers the one case port 0 cannot: a port that must be\n * known before the server starts, such as a restart on the same port.\n */\n\n/** Elysia hangs the underlying Bun server off `.server`. */\ninterface BunServerHost {\n server?: { port?: number | null } | null;\n}\n\n/** `ws`'s WebSocketServer reports its bound address as an AddressInfo. */\ninterface AddressHost {\n address?: () => string | { port?: number | null } | null;\n}\n\n/**\n * Read the port a Bun/Elysia app was actually assigned.\n *\n * @param app An Elysia app (or any Bun server host) already `.listen(0)`-ed.\n * @throws If the app is not listening — a caller reading the port before the\n * listen resolves gets a named failure, not a URL containing `undefined`.\n *\n * @example\n * ```typescript\n * const app = new Elysia().use(signalingServer({ path })).listen(0);\n * const url = `ws://127.0.0.1:${resolveListenPort(app)}${path}`;\n * ```\n */\nexport function resolveListenPort(app: unknown): number {\n const port = (app as unknown as BunServerHost).server?.port;\n if (typeof port !== \"number\" || port <= 0) {\n throw new Error(\n `resolveListenPort: app is not listening (server.port = ${String(port)}). ` +\n \"Call .listen(0) and read the port from the returned app.\"\n );\n }\n return port;\n}\n\n/**\n * Read the port a `ws` WebSocketServer was actually assigned.\n *\n * @param wss A WebSocketServer constructed with `{ port: 0 }` and already\n * listening — `createPeerRepoServer` awaits that before it returns.\n * @throws If the server is not listening on a TCP port.\n *\n * @example\n * ```typescript\n * const server = await createPeerRepoServer({ port: 0, host: \"127.0.0.1\", storagePath });\n * const url = `ws://127.0.0.1:${resolveWebSocketPort(server.webSocketServer)}`;\n * ```\n */\nexport function resolveWebSocketPort(wss: unknown): number {\n const address = (wss as unknown as AddressHost).address?.();\n const port = typeof address === \"object\" && address !== null ? address.port : undefined;\n if (typeof port !== \"number\" || port <= 0) {\n throw new Error(\n `resolveWebSocketPort: server is not listening on a TCP port (address = ${JSON.stringify(address)}).`\n );\n }\n return port;\n}\n\n/** Bun, Node and `ws` all word an occupied-port failure differently. */\nfunction isPortInUse(error: unknown): boolean {\n if (error instanceof Error && \"code\" in error && error.code === \"EADDRINUSE\") return true;\n const message = error instanceof Error ? error.message : String(error);\n return /EADDRINUSE|address already in use|is port \\d+ in use|Failed to start server/i.test(\n message\n );\n}\n\nexport interface RetryOnPortInUseOptions {\n /** How many times to call `start` in total. Defaults to 5. */\n attempts?: number;\n /** Pause between attempts, in milliseconds. Defaults to 100. */\n delayMs?: number;\n}\n\n/**\n * Start a server on a port that is already decided, retrying a bounded number\n * of times while the port is still held.\n *\n * Only for the case port 0 cannot serve: the port must be known before the\n * server starts — a restart on the same port, or a URL handed out in advance.\n * A retry narrows the collision window rather than removing it, so prefer\n * `.listen(0)` plus {@link resolveListenPort} everywhere else.\n *\n * The final failure is the bind error itself, so the test reports \"port in\n * use\" rather than timing out on a connection to a server that never started.\n *\n * @example\n * ```typescript\n * const app = await retryOnPortInUse(() => startSignaling(port));\n * ```\n */\nexport async function retryOnPortInUse<T>(\n start: () => T | Promise<T>,\n options: RetryOnPortInUseOptions = {}\n): Promise<T> {\n const attempts = options.attempts ?? 5;\n const delayMs = options.delayMs ?? 100;\n let lastError: unknown;\n for (let attempt = 1; attempt <= attempts; attempt += 1) {\n try {\n return await start();\n } catch (error) {\n if (!isPortInUse(error)) throw error;\n lastError = error;\n if (attempt < attempts) await new Promise((r) => setTimeout(r, delayMs));\n }\n }\n throw lastError;\n}\n"
|
|
20
20
|
],
|
|
21
|
-
"mappings": "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",
|
|
22
|
-
"debugId": "
|
|
21
|
+
"mappings": "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",
|
|
22
|
+
"debugId": "9DD3BC71E0F60DB064756E2164756E21",
|
|
23
23
|
"names": []
|
|
24
24
|
}
|