supercov 0.0.7 → 0.0.9

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 (78) hide show
  1. package/README.md +18 -1
  2. package/dist/agentJson.d.ts +1 -1
  3. package/dist/agentJson.d.ts.map +1 -1
  4. package/dist/agentJson.js.map +1 -1
  5. package/dist/analyze.d.ts.map +1 -1
  6. package/dist/analyze.js +0 -1
  7. package/dist/analyze.js.map +1 -1
  8. package/dist/cli.js +62 -10
  9. package/dist/cli.js.map +1 -1
  10. package/dist/directInstrumenter.d.ts +1 -1
  11. package/dist/directInstrumenter.d.ts.map +1 -1
  12. package/dist/directInstrumenter.js +30 -6
  13. package/dist/directInstrumenter.js.map +1 -1
  14. package/dist/instrumenter.d.ts.map +1 -1
  15. package/dist/instrumenter.js +107 -33
  16. package/dist/instrumenter.js.map +1 -1
  17. package/dist/integrity.d.ts.map +1 -1
  18. package/dist/integrity.js +11 -0
  19. package/dist/integrity.js.map +1 -1
  20. package/dist/nodeAssert.d.ts +31 -0
  21. package/dist/nodeAssert.d.ts.map +1 -0
  22. package/dist/nodeAssert.js +30 -0
  23. package/dist/nodeAssert.js.map +1 -0
  24. package/dist/nodeAssertAdapter.d.ts +6 -0
  25. package/dist/nodeAssertAdapter.d.ts.map +1 -0
  26. package/dist/nodeAssertAdapter.js +94 -0
  27. package/dist/nodeAssertAdapter.js.map +1 -0
  28. package/dist/nodeAssertStrict.d.ts +31 -0
  29. package/dist/nodeAssertStrict.d.ts.map +1 -0
  30. package/dist/nodeAssertStrict.js +28 -0
  31. package/dist/nodeAssertStrict.js.map +1 -0
  32. package/dist/nodeAssertionInstrumenter.d.ts +8 -0
  33. package/dist/nodeAssertionInstrumenter.d.ts.map +1 -0
  34. package/dist/nodeAssertionInstrumenter.js +263 -0
  35. package/dist/nodeAssertionInstrumenter.js.map +1 -0
  36. package/dist/nodeTest.d.ts.map +1 -1
  37. package/dist/nodeTest.js +6 -2
  38. package/dist/nodeTest.js.map +1 -1
  39. package/dist/playwright.d.ts.map +1 -1
  40. package/dist/playwright.js +8 -18
  41. package/dist/playwright.js.map +1 -1
  42. package/dist/project.d.ts +1 -0
  43. package/dist/project.d.ts.map +1 -1
  44. package/dist/project.js +4 -0
  45. package/dist/project.js.map +1 -1
  46. package/dist/query.d.ts +3 -2
  47. package/dist/query.d.ts.map +1 -1
  48. package/dist/query.js +74 -11
  49. package/dist/query.js.map +1 -1
  50. package/dist/register.mjs +46 -5
  51. package/dist/register.mjs.map +1 -1
  52. package/dist/resolve-loader.d.mts.map +1 -1
  53. package/dist/resolve-loader.mjs +20 -0
  54. package/dist/resolve-loader.mjs.map +1 -1
  55. package/dist/runAnalysis.d.ts.map +1 -1
  56. package/dist/runAnalysis.js +37 -18
  57. package/dist/runAnalysis.js.map +1 -1
  58. package/dist/runnerEvidence.d.ts +2 -2
  59. package/dist/runnerEvidence.d.ts.map +1 -1
  60. package/dist/runnerEvidence.js +3 -2
  61. package/dist/runnerEvidence.js.map +1 -1
  62. package/dist/runtime.d.ts +37 -1
  63. package/dist/runtime.d.ts.map +1 -1
  64. package/dist/runtime.js +713 -526
  65. package/dist/runtime.js.map +1 -1
  66. package/dist/runtimeIsolation.d.ts +3 -0
  67. package/dist/runtimeIsolation.d.ts.map +1 -0
  68. package/dist/runtimeIsolation.js +9 -0
  69. package/dist/runtimeIsolation.js.map +1 -0
  70. package/dist/sourceDiscovery.d.ts.map +1 -1
  71. package/dist/sourceDiscovery.js +11 -0
  72. package/dist/sourceDiscovery.js.map +1 -1
  73. package/dist/types.d.ts +2 -0
  74. package/dist/types.d.ts.map +1 -1
  75. package/dist/workspace.d.ts.map +1 -1
  76. package/dist/workspace.js +4 -1
  77. package/dist/workspace.js.map +1 -1
  78. package/package.json +2 -2
@@ -0,0 +1,94 @@
1
+ import { withNodeAssertionPhase } from "./runtime.js";
2
+ const ASSERTION_METHODS = new Set([
3
+ "deepEqual",
4
+ "deepStrictEqual",
5
+ "doesNotMatch",
6
+ "doesNotReject",
7
+ "doesNotThrow",
8
+ "equal",
9
+ "fail",
10
+ "ifError",
11
+ "match",
12
+ "notDeepEqual",
13
+ "notDeepStrictEqual",
14
+ "notEqual",
15
+ "notStrictEqual",
16
+ "ok",
17
+ "partialDeepStrictEqual",
18
+ "rejects",
19
+ "strictEqual",
20
+ "throws",
21
+ ]);
22
+ function assertionSource() {
23
+ const lines = new Error().stack?.split("\n").slice(2) ?? [];
24
+ const entry = lines.find((line) => !/(?:nodeAssert|nodeAssertion|runtime)\.[cm]?[jt]s/.test(line) &&
25
+ !line.includes("node:internal"));
26
+ if (!entry)
27
+ return undefined;
28
+ return entry.trim().replace(/^at\s+/, "");
29
+ }
30
+ function wrapAssertion(original, operation) {
31
+ return new Proxy(original, {
32
+ apply(target, thisArgument, argumentsList) {
33
+ return withNodeAssertionPhase(operation, assertionSource(), () => Reflect.apply(target, thisArgument, argumentsList));
34
+ },
35
+ });
36
+ }
37
+ function wrapAssertInstance(instance, operation) {
38
+ const cache = new Map();
39
+ return new Proxy(instance, {
40
+ get(target, property, receiver) {
41
+ const value = Reflect.get(target, property, receiver);
42
+ if (typeof value !== "function" || !ASSERTION_METHODS.has(String(property)))
43
+ return value;
44
+ const existing = cache.get(property);
45
+ if (existing)
46
+ return existing;
47
+ const wrapped = wrapAssertion(value.bind(target), `${operation}.${String(property)}`);
48
+ cache.set(property, wrapped);
49
+ return wrapped;
50
+ },
51
+ });
52
+ }
53
+ function wrappedAssertConstructor(original, operation) {
54
+ return new Proxy(original, {
55
+ construct(target, argumentsList, newTarget) {
56
+ return wrapAssertInstance(Reflect.construct(target, argumentsList, newTarget), operation);
57
+ },
58
+ });
59
+ }
60
+ export function createNodeAssertAdapter(native, moduleName) {
61
+ const adapter = wrapAssertion(native, `${moduleName}.ok`);
62
+ const nativeRecord = native;
63
+ for (const property of Reflect.ownKeys(nativeRecord)) {
64
+ if (["name", "length", "prototype", "arguments", "caller"].includes(String(property)))
65
+ continue;
66
+ const descriptor = Reflect.getOwnPropertyDescriptor(nativeRecord, property);
67
+ if (!descriptor)
68
+ continue;
69
+ let value = descriptor.value;
70
+ if (typeof value === "function" && ASSERTION_METHODS.has(String(property)))
71
+ value = wrapAssertion(value, `${moduleName}.${String(property)}`);
72
+ else if (property === "Assert" && typeof value === "function")
73
+ value = wrappedAssertConstructor(value, `${moduleName}.Assert`);
74
+ try {
75
+ Reflect.defineProperty(adapter, property, {
76
+ ...descriptor,
77
+ value,
78
+ });
79
+ }
80
+ catch {
81
+ // Exotic builtin descriptors are not required for assertion dispatch.
82
+ }
83
+ }
84
+ return adapter;
85
+ }
86
+ export function setStrictAssertAdapter(adapter, strict) {
87
+ Reflect.defineProperty(adapter, "strict", {
88
+ configurable: true,
89
+ enumerable: true,
90
+ value: strict,
91
+ writable: true,
92
+ });
93
+ }
94
+ //# sourceMappingURL=nodeAssertAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeAssertAdapter.js","sourceRoot":"","sources":["../src/nodeAssertAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import nativeAssert from "node:assert/strict";
2
+ declare const adapter: typeof nativeAssert;
3
+ export default adapter;
4
+ export declare const Assert: {
5
+ new (options?: nativeAssert.AssertOptions & {
6
+ strict?: true | undefined;
7
+ }): nativeAssert.AssertStrict;
8
+ new (options: nativeAssert.AssertOptions): nativeAssert.Assert;
9
+ };
10
+ export declare const AssertionError: typeof nativeAssert.AssertionError;
11
+ export declare const CallTracker: typeof nativeAssert.CallTracker;
12
+ export declare const deepEqual: typeof nativeAssert.deepStrictEqual;
13
+ export declare const deepStrictEqual: typeof nativeAssert.deepStrictEqual;
14
+ export declare const doesNotMatch: typeof nativeAssert.doesNotMatch;
15
+ export declare const doesNotReject: typeof nativeAssert.doesNotReject;
16
+ export declare const doesNotThrow: typeof nativeAssert.doesNotThrow;
17
+ export declare const equal: typeof nativeAssert.strictEqual;
18
+ export declare const fail: typeof nativeAssert.fail;
19
+ export declare const ifError: typeof nativeAssert.ifError;
20
+ export declare const match: typeof nativeAssert.match;
21
+ export declare const notDeepEqual: typeof nativeAssert.notDeepStrictEqual;
22
+ export declare const notDeepStrictEqual: typeof nativeAssert.notDeepStrictEqual;
23
+ export declare const notEqual: typeof nativeAssert.notStrictEqual;
24
+ export declare const notStrictEqual: typeof nativeAssert.notStrictEqual;
25
+ export declare const ok: typeof nativeAssert.ok;
26
+ export declare const partialDeepStrictEqual: typeof nativeAssert.partialDeepStrictEqual;
27
+ export declare const rejects: typeof nativeAssert.rejects;
28
+ export declare const strict: typeof nativeAssert;
29
+ export declare const strictEqual: typeof nativeAssert.strictEqual;
30
+ export declare const throws: typeof nativeAssert.throws;
31
+ //# sourceMappingURL=nodeAssertStrict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeAssertStrict.d.ts","sourceRoot":"","sources":["../src/nodeAssertStrict.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAG9C,QAAA,MAAM,OAAO,qBAA8D,CAAC;eAG7D,OAAO;AACtB,eAAO,MAAM,MAAM;;;;;CAAiB,CAAC;AACrC,eAAO,MAAM,cAAc,oCAAyB,CAAC;AACrD,eAAO,MAAM,WAAW,iCAAsB,CAAC;AAC/C,eAAO,MAAM,SAAS,qCAAoB,CAAC;AAC3C,eAAO,MAAM,eAAe,qCAA0B,CAAC;AACvD,eAAO,MAAM,YAAY,kCAAuB,CAAC;AACjD,eAAO,MAAM,aAAa,mCAAwB,CAAC;AACnD,eAAO,MAAM,YAAY,kCAAuB,CAAC;AACjD,eAAO,MAAM,KAAK,iCAAgB,CAAC;AACnC,eAAO,MAAM,IAAI,0BAAe,CAAC;AACjC,eAAO,MAAM,OAAO,6BAAkB,CAAC;AACvC,eAAO,MAAM,KAAK,2BAAgB,CAAC;AACnC,eAAO,MAAM,YAAY,wCAAuB,CAAC;AACjD,eAAO,MAAM,kBAAkB,wCAA6B,CAAC;AAC7D,eAAO,MAAM,QAAQ,oCAAmB,CAAC;AACzC,eAAO,MAAM,cAAc,oCAAyB,CAAC;AACrD,eAAO,MAAM,EAAE,wBAAa,CAAC;AAC7B,eAAO,MAAM,sBAAsB,4CAAiC,CAAC;AACrE,eAAO,MAAM,OAAO,6BAAkB,CAAC;AACvC,eAAO,MAAM,MAAM,qBAAU,CAAC;AAC9B,eAAO,MAAM,WAAW,iCAAsB,CAAC;AAC/C,eAAO,MAAM,MAAM,4BAAiB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import nativeAssert from "node:assert/strict";
2
+ import { createNodeAssertAdapter, setStrictAssertAdapter } from "./nodeAssertAdapter.js";
3
+ const adapter = createNodeAssertAdapter(nativeAssert, "node:assert/strict");
4
+ setStrictAssertAdapter(adapter, adapter);
5
+ export default adapter;
6
+ export const Assert = adapter.Assert;
7
+ export const AssertionError = adapter.AssertionError;
8
+ export const CallTracker = adapter.CallTracker;
9
+ export const deepEqual = adapter.deepEqual;
10
+ export const deepStrictEqual = adapter.deepStrictEqual;
11
+ export const doesNotMatch = adapter.doesNotMatch;
12
+ export const doesNotReject = adapter.doesNotReject;
13
+ export const doesNotThrow = adapter.doesNotThrow;
14
+ export const equal = adapter.equal;
15
+ export const fail = adapter.fail;
16
+ export const ifError = adapter.ifError;
17
+ export const match = adapter.match;
18
+ export const notDeepEqual = adapter.notDeepEqual;
19
+ export const notDeepStrictEqual = adapter.notDeepStrictEqual;
20
+ export const notEqual = adapter.notEqual;
21
+ export const notStrictEqual = adapter.notStrictEqual;
22
+ export const ok = adapter.ok;
23
+ export const partialDeepStrictEqual = adapter.partialDeepStrictEqual;
24
+ export const rejects = adapter.rejects;
25
+ export const strict = adapter;
26
+ export const strictEqual = adapter.strictEqual;
27
+ export const throws = adapter.throws;
28
+ //# sourceMappingURL=nodeAssertStrict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeAssertStrict.js","sourceRoot":"","sources":["../src/nodeAssertStrict.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,OAAO,GAAG,uBAAuB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC5E,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEzC,eAAe,OAAO,CAAC;AACvB,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface NodeAssertionInstrumentationResult {
2
+ code: string;
3
+ assertions: number;
4
+ }
5
+ /** Wrap native node:assert calls before their arguments are evaluated. */
6
+ export declare function instrumentNodeAssertionPhases(code: string, file: string): NodeAssertionInstrumentationResult;
7
+ export declare function instrumentNodeAssertionsInWorkspace(root: string, files: string[]): number;
8
+ //# sourceMappingURL=nodeAssertionInstrumenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeAssertionInstrumenter.d.ts","sourceRoot":"","sources":["../src/nodeAssertionInstrumenter.ts"],"names":[],"mappings":"AAyFA,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0EAA0E;AAC1E,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,kCAAkC,CAkMpC;AAED,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAYR"}
@@ -0,0 +1,263 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import generate from "@babel/generator";
4
+ import { parse } from "@babel/parser";
5
+ import traverse from "@babel/traverse";
6
+ import * as t from "@babel/types";
7
+ import { atomicWriteFileSync } from "./atomic.js";
8
+ const ASSERT_MODULES = new Set([
9
+ "assert",
10
+ "assert/strict",
11
+ "node:assert",
12
+ "node:assert/strict",
13
+ ]);
14
+ const ASSERTION_EXPORTS = new Set([
15
+ "deepEqual",
16
+ "deepStrictEqual",
17
+ "doesNotMatch",
18
+ "doesNotReject",
19
+ "doesNotThrow",
20
+ "equal",
21
+ "fail",
22
+ "ifError",
23
+ "match",
24
+ "notDeepEqual",
25
+ "notDeepStrictEqual",
26
+ "notEqual",
27
+ "notStrictEqual",
28
+ "ok",
29
+ "partialDeepStrictEqual",
30
+ "rejects",
31
+ "strictEqual",
32
+ "throws",
33
+ ]);
34
+ function moduleName(node) {
35
+ return t.isStringLiteral(node) && ASSERT_MODULES.has(node.value)
36
+ ? node.value.startsWith("node:")
37
+ ? node.value
38
+ : `node:${node.value}`
39
+ : undefined;
40
+ }
41
+ function requiredModule(node) {
42
+ if (!t.isCallExpression(node) ||
43
+ !t.isIdentifier(node.callee, { name: "require" }) ||
44
+ node.arguments.length !== 1)
45
+ return undefined;
46
+ return moduleName(node.arguments[0]);
47
+ }
48
+ function containsAwaitOrYield(path) {
49
+ let found = false;
50
+ path.traverse({
51
+ Function(inner) {
52
+ inner.skip();
53
+ },
54
+ AwaitExpression(inner) {
55
+ found = true;
56
+ inner.stop();
57
+ },
58
+ YieldExpression(inner) {
59
+ found = true;
60
+ inner.stop();
61
+ },
62
+ });
63
+ return found;
64
+ }
65
+ function memberNames(node) {
66
+ const names = [];
67
+ let current = node;
68
+ while (t.isMemberExpression(current)) {
69
+ const property = current.computed
70
+ ? t.isStringLiteral(current.property)
71
+ ? current.property.value
72
+ : undefined
73
+ : t.isIdentifier(current.property)
74
+ ? current.property.name
75
+ : undefined;
76
+ if (!property)
77
+ return undefined;
78
+ names.unshift(property);
79
+ current = current.object;
80
+ }
81
+ return t.isIdentifier(current) ? [current.name, ...names] : undefined;
82
+ }
83
+ /** Wrap native node:assert calls before their arguments are evaluated. */
84
+ export function instrumentNodeAssertionPhases(code, file) {
85
+ const mayUseNodeAssert = /(?:node:)?assert(?:\/strict)?["']/.test(code);
86
+ const mayUseNodeExpect = /["']node:test["']/.test(code) && /\bexpect\b/.test(code);
87
+ if (!mayUseNodeAssert && !mayUseNodeExpect)
88
+ return { code, assertions: 0 };
89
+ const plugins = [
90
+ "typescript",
91
+ "decorators-legacy",
92
+ "sourcePhaseImports",
93
+ ...(file.endsWith("x") ? ["jsx"] : []),
94
+ ];
95
+ const ast = parse(code, {
96
+ sourceType: "unambiguous",
97
+ sourceFilename: file,
98
+ errorRecovery: true,
99
+ plugins,
100
+ });
101
+ const objectBindings = new Map();
102
+ const directBindings = new Map();
103
+ const expectBindings = new Set();
104
+ traverse(ast, {
105
+ ImportDeclaration(path) {
106
+ const importedModule = moduleName(path.node.source);
107
+ if (!importedModule) {
108
+ if (!mayUseNodeExpect)
109
+ return;
110
+ for (const specifier of path.node.specifiers) {
111
+ if (t.isImportSpecifier(specifier) &&
112
+ ((t.isIdentifier(specifier.imported) && specifier.imported.name === "expect") ||
113
+ (t.isStringLiteral(specifier.imported) && specifier.imported.value === "expect")))
114
+ expectBindings.add(specifier.local.name);
115
+ else if (t.isImportDefaultSpecifier(specifier) &&
116
+ specifier.local.name === "expect")
117
+ expectBindings.add(specifier.local.name);
118
+ }
119
+ return;
120
+ }
121
+ for (const specifier of path.node.specifiers) {
122
+ if (t.isImportDefaultSpecifier(specifier) || t.isImportNamespaceSpecifier(specifier)) {
123
+ objectBindings.set(specifier.local.name, importedModule);
124
+ continue;
125
+ }
126
+ const imported = t.isIdentifier(specifier.imported)
127
+ ? specifier.imported.name
128
+ : specifier.imported.value;
129
+ if (imported === "strict")
130
+ objectBindings.set(specifier.local.name, "node:assert/strict");
131
+ else if (ASSERTION_EXPORTS.has(imported))
132
+ directBindings.set(specifier.local.name, `${importedModule}.${imported}`);
133
+ }
134
+ },
135
+ VariableDeclarator(path) {
136
+ let importedModule = requiredModule(path.node.init);
137
+ if (!importedModule &&
138
+ t.isMemberExpression(path.node.init) &&
139
+ !path.node.init.computed &&
140
+ t.isIdentifier(path.node.init.property, { name: "strict" })) {
141
+ const base = requiredModule(path.node.init.object);
142
+ if (base)
143
+ importedModule = "node:assert/strict";
144
+ }
145
+ if (!importedModule)
146
+ return;
147
+ if (t.isIdentifier(path.node.id)) {
148
+ objectBindings.set(path.node.id.name, importedModule);
149
+ return;
150
+ }
151
+ if (!t.isObjectPattern(path.node.id))
152
+ return;
153
+ for (const property of path.node.id.properties) {
154
+ if (!t.isObjectProperty(property) ||
155
+ !t.isIdentifier(property.value))
156
+ continue;
157
+ const imported = t.isIdentifier(property.key)
158
+ ? property.key.name
159
+ : t.isStringLiteral(property.key)
160
+ ? property.key.value
161
+ : undefined;
162
+ if (!imported)
163
+ continue;
164
+ if (imported === "strict")
165
+ objectBindings.set(property.value.name, "node:assert/strict");
166
+ else if (ASSERTION_EXPORTS.has(imported))
167
+ directBindings.set(property.value.name, `${importedModule}.${imported}`);
168
+ }
169
+ },
170
+ });
171
+ if (objectBindings.size === 0 &&
172
+ directBindings.size === 0 &&
173
+ expectBindings.size === 0)
174
+ return { code, assertions: 0 };
175
+ let assertions = 0;
176
+ let phaseBinding;
177
+ traverse(ast, {
178
+ CallExpression(path) {
179
+ if (containsAwaitOrYield(path))
180
+ return;
181
+ let operation;
182
+ if (t.isIdentifier(path.node.callee)) {
183
+ operation = directBindings.get(path.node.callee.name);
184
+ const importedModule = objectBindings.get(path.node.callee.name);
185
+ if (importedModule)
186
+ operation = `${importedModule}.ok`;
187
+ }
188
+ else if (t.isMemberExpression(path.node.callee)) {
189
+ const names = memberNames(path.node.callee);
190
+ const importedModule = names ? objectBindings.get(names[0]) : undefined;
191
+ const method = names?.at(-1);
192
+ if (importedModule &&
193
+ method &&
194
+ ASSERTION_EXPORTS.has(method)) {
195
+ const strict = names?.slice(1, -1).includes("strict");
196
+ operation = `${strict ? "node:assert/strict" : importedModule}.${method}`;
197
+ }
198
+ if (!operation) {
199
+ const matcherNames = [];
200
+ let current = path.node.callee;
201
+ while (t.isMemberExpression(current)) {
202
+ const property = current.computed
203
+ ? t.isStringLiteral(current.property)
204
+ ? current.property.value
205
+ : undefined
206
+ : t.isIdentifier(current.property)
207
+ ? current.property.name
208
+ : undefined;
209
+ if (!property)
210
+ break;
211
+ matcherNames.unshift(property);
212
+ current = current.object;
213
+ }
214
+ if (t.isCallExpression(current) &&
215
+ t.isIdentifier(current.callee) &&
216
+ expectBindings.has(current.callee.name) &&
217
+ /^to[A-Z]/.test(matcherNames.at(-1) ?? ""))
218
+ operation = `expect.${matcherNames.join(".")}`;
219
+ }
220
+ }
221
+ if (!operation || !path.node.loc)
222
+ return;
223
+ phaseBinding ??= path.scope.getProgramParent().generateUidIdentifier("supercovNodeAssertion");
224
+ const original = path.node;
225
+ const source = `${file}:${path.node.loc.start.line}:${path.node.loc.start.column + 1}`;
226
+ path.replaceWith(t.callExpression(t.cloneNode(phaseBinding), [
227
+ t.stringLiteral(operation),
228
+ t.stringLiteral(source),
229
+ t.arrowFunctionExpression([], original),
230
+ ]));
231
+ assertions += 1;
232
+ path.skip();
233
+ },
234
+ });
235
+ if (!phaseBinding || assertions === 0)
236
+ return { code, assertions: 0 };
237
+ ast.program.body.unshift(t.variableDeclaration("const", [
238
+ t.variableDeclarator(phaseBinding, t.memberExpression(t.memberExpression(t.identifier("globalThis"), t.stringLiteral("__SUPERCOV_DIRECT_RUNTIME__"), true), t.identifier("withNodeAssertionPhase"))),
239
+ ]));
240
+ const output = generate(ast, {
241
+ retainLines: true,
242
+ comments: true,
243
+ sourceMaps: false,
244
+ sourceFileName: file,
245
+ }, code);
246
+ return { code: output.code, assertions };
247
+ }
248
+ export function instrumentNodeAssertionsInWorkspace(root, files) {
249
+ let assertions = 0;
250
+ for (const file of files) {
251
+ const path = resolve(root, file);
252
+ if (!existsSync(path))
253
+ continue;
254
+ const code = readFileSync(path, "utf8");
255
+ const transformed = instrumentNodeAssertionPhases(code, file);
256
+ if (transformed.assertions === 0)
257
+ continue;
258
+ atomicWriteFileSync(path, transformed.code);
259
+ assertions += transformed.assertions;
260
+ }
261
+ return assertions;
262
+ }
263
+ //# sourceMappingURL=nodeAssertionInstrumenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeAssertionInstrumenter.js","sourceRoot":"","sources":["../src/nodeAssertionInstrumenter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTest.d.ts","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AA8IpC,eAAO,MAAM,IAAI,EAAsE,OAAO,MAAM,CAAC,IAAI,CAAC;AAC1G,eAAO,MAAM,EAAE,EAAoE,OAAO,MAAM,CAAC,EAAE,CAAC;AACpG,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,QAAQ,qBAAkB,CAAC;AACxC,eAAO,MAAM,MAAM,sBAAgB,CAAC;AACpC,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,UAAU,0BAAoB,CAAC;AAC5C,eAAO,MAAM,SAAS,yBAAmB,CAAC;AAC1C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAChC,eAAO,MAAM,QAAQ,wBAAkB,CAAC;AACxC,eAAO,MAAM,GAAG,mBAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,sBAAgB,CAAC;eACrB,IAAI"}
1
+ {"version":3,"file":"nodeTest.d.ts","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAyJpC,eAAO,MAAM,IAAI,EAAsE,OAAO,MAAM,CAAC,IAAI,CAAC;AAC1G,eAAO,MAAM,EAAE,EAAoE,OAAO,MAAM,CAAC,EAAE,CAAC;AACpG,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,QAAQ,qBAAkB,CAAC;AACxC,eAAO,MAAM,MAAM,sBAAgB,CAAC;AACpC,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,UAAU,0BAAoB,CAAC;AAC5C,eAAO,MAAM,SAAS,yBAAmB,CAAC;AAC1C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAChC,eAAO,MAAM,QAAQ,wBAAkB,CAAC;AACxC,eAAO,MAAM,GAAG,mBAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,sBAAgB,CAAC;eACrB,IAAI"}
package/dist/nodeTest.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as native from "node:test";
2
- import { beginBufferedServerEvidence, flushBufferedServerEvidence, withCoverageCarrier, } from "./runtime.js";
2
+ import { beginBufferedServerEvidence, flushBufferedServerEvidence, takeNodeAssertionPhases, withCoverageCarrier, } from "./runtime.js";
3
3
  import { callerLocation, runnerExecutionScope, writeRunnerEvidence, } from "./runnerEvidence.js";
4
4
  function callbackIndex(args) {
5
5
  for (let index = args.length - 1; index >= 0; index -= 1)
@@ -28,8 +28,12 @@ function wrappedRegistration(original) {
28
28
  };
29
29
  const scope = runnerExecutionScope(identity);
30
30
  const options = testOptions(args, index);
31
+ const evidenceDirectory = process.env["SUPERCOV_EVIDENCE_DIR"];
31
32
  const next = [...args];
32
33
  const execute = (callbackThis, context, done) => {
34
+ // A test or its hooks may intentionally modify Supercov's public
35
+ // environment while testing integrations. Keep this attempt's transport
36
+ // destination fixed to the value present when the test was registered.
33
37
  beginBufferedServerEvidence(scope);
34
38
  let status = options?.skip || options?.todo
35
39
  ? "skipped"
@@ -54,7 +58,7 @@ function wrappedRegistration(original) {
54
58
  return;
55
59
  emitted = true;
56
60
  flushBufferedServerEvidence(scope);
57
- writeRunnerEvidence(identity, nextStatus, scope);
61
+ writeRunnerEvidence(identity, nextStatus, scope, evidenceDirectory, takeNodeAssertionPhases(scope));
58
62
  };
59
63
  try {
60
64
  if (callback.length >= 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTest.js","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeTest.js","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAMV,kBAAkB,EAClB,oBAAoB,EAGpB,QAAQ,EAET,MAAM,kBAAkB,CAAC;AAqB1B,cAAc,kBAAkB,CAAC;AA2BjC,QAAA,MAAM,UAAU,+BAAiB,CAAC;AAstBlC,eAAO,MAAM,MAAM,EAEd,OAAO,UAAU,CAAC;AAmOvB,eAAO,MAAM,IAAI;qBAzKuC,IAAI;kDAyKxB,CAAC"}
1
+ {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAMV,kBAAkB,EAClB,oBAAoB,EAEpB,QAAQ,EAET,MAAM,kBAAkB,CAAC;AAqB1B,cAAc,kBAAkB,CAAC;AA2BjC,QAAA,MAAM,UAAU,+BAAiB,CAAC;AA8sBlC,eAAO,MAAM,MAAM,EAEd,OAAO,UAAU,CAAC;AAmOvB,eAAO,MAAM,IAAI;qBAzKuC,IAAI;kDAyKxB,CAAC"}
@@ -100,7 +100,6 @@ class CoveragePhaseController {
100
100
  workers = new Set();
101
101
  contexts = new Set();
102
102
  contextConfiguredHeaders = new Map();
103
- contextRoutes = new Map();
104
103
  cdpSessions = new Map();
105
104
  newDocumentScriptIds = new Map();
106
105
  pendingRegistrations = new Set();
@@ -167,18 +166,6 @@ class CoveragePhaseController {
167
166
  scopeValue: encodeCoverageScope(this.scope),
168
167
  scopeCookie: COVERAGE_SCOPE_COOKIE,
169
168
  });
170
- const attachPhase = async (route) => {
171
- const phaseId = this.requestPhaseId();
172
- await route.continue({
173
- headers: {
174
- ...route.request().headers(),
175
- [COVERAGE_SCOPE_HEADER]: encodeCoverageScope(this.scope),
176
- ...(phaseId ? { [COVERAGE_PHASE_HEADER]: phaseId } : {}),
177
- },
178
- });
179
- };
180
- this.contextRoutes.set(context, attachPhase);
181
- await context.route("**/*", attachPhase);
182
169
  const register = (page) => {
183
170
  const pending = this.registerPage(page).finally(() => this.pendingRegistrations.delete(pending));
184
171
  this.pendingRegistrations.add(pending);
@@ -255,8 +242,6 @@ class CoveragePhaseController {
255
242
  .catch(() => undefined);
256
243
  await cdp.detach().catch(() => undefined);
257
244
  }
258
- for (const [context, route] of this.contextRoutes)
259
- await context.unroute("**/*", route).catch(() => undefined);
260
245
  }
261
246
  finish(phase, error) {
262
247
  phase.endedAtMs = Date.now();
@@ -573,10 +558,15 @@ function installChildProcessScopePropagation() {
573
558
  installChildProcessScopePropagation();
574
559
  function wrapMatchers(matchers, path = "expect") {
575
560
  return new Proxy(matchers, {
576
- get(target, property, receiver) {
577
- const value = Reflect.get(target, property, receiver);
561
+ get(target, property) {
562
+ // Matcher objects and built-ins can expose getters whose internal slots
563
+ // require the original receiver (for example RegExp.prototype.dotAll).
564
+ // Passing this proxy as the receiver changes observable behaviour.
565
+ const value = Reflect.get(target, property, target);
578
566
  const name = String(property);
579
- if (value && typeof value === "object")
567
+ if (value &&
568
+ typeof value === "object" &&
569
+ (name === "not" || name === "resolves" || name === "rejects"))
580
570
  return wrapMatchers(value, `${path}.${name}`);
581
571
  if (typeof value !== "function")
582
572
  return value;