@gate-forge/pack-playwright 0.7.1 → 0.9.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.
- package/README.md +31 -0
- package/dist/constants.d.ts +13 -140
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +13 -148
- package/dist/constants.js.map +1 -1
- package/dist/cypress/plugin.d.ts +53 -0
- package/dist/cypress/plugin.d.ts.map +1 -0
- package/dist/cypress/plugin.js +369 -0
- package/dist/cypress/plugin.js.map +1 -0
- package/dist/cypress/spec-scan.d.ts +39 -0
- package/dist/cypress/spec-scan.d.ts.map +1 -0
- package/dist/cypress/spec-scan.js +301 -0
- package/dist/cypress/spec-scan.js.map +1 -0
- package/dist/diagnosis.d.ts +39 -0
- package/dist/diagnosis.d.ts.map +1 -0
- package/dist/diagnosis.js +63 -0
- package/dist/diagnosis.js.map +1 -0
- package/dist/discovery/adapter-projection.d.ts +13 -0
- package/dist/discovery/adapter-projection.d.ts.map +1 -0
- package/dist/discovery/adapter-projection.js +84 -0
- package/dist/discovery/adapter-projection.js.map +1 -0
- package/dist/discovery/config-locations.d.ts +5 -0
- package/dist/discovery/config-locations.d.ts.map +1 -0
- package/dist/discovery/config-locations.js +19 -0
- package/dist/discovery/config-locations.js.map +1 -0
- package/dist/discovery/cypress-runner-adapter.d.ts +112 -0
- package/dist/discovery/cypress-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/cypress-runner-adapter.js +501 -0
- package/dist/discovery/cypress-runner-adapter.js.map +1 -0
- package/dist/discovery/discover.d.ts +53 -1
- package/dist/discovery/discover.d.ts.map +1 -1
- package/dist/discovery/discover.js +290 -30
- package/dist/discovery/discover.js.map +1 -1
- package/dist/discovery/git-ignore.d.ts +13 -0
- package/dist/discovery/git-ignore.d.ts.map +1 -0
- package/dist/discovery/git-ignore.js +62 -0
- package/dist/discovery/git-ignore.js.map +1 -0
- package/dist/discovery/index.d.ts +10 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +10 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/playwright-runner-adapter.d.ts +108 -0
- package/dist/discovery/playwright-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/playwright-runner-adapter.js +185 -0
- package/dist/discovery/playwright-runner-adapter.js.map +1 -0
- package/dist/discovery/prepare-barrier.d.ts +522 -0
- package/dist/discovery/prepare-barrier.d.ts.map +1 -0
- package/dist/discovery/prepare-barrier.js +739 -0
- package/dist/discovery/prepare-barrier.js.map +1 -0
- package/dist/discovery/pytest-adapter.d.ts.map +1 -1
- package/dist/discovery/pytest-adapter.js +6 -2
- package/dist/discovery/pytest-adapter.js.map +1 -1
- package/dist/discovery/pytest-runner-adapter.d.ts +124 -0
- package/dist/discovery/pytest-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/pytest-runner-adapter.js +454 -0
- package/dist/discovery/pytest-runner-adapter.js.map +1 -0
- package/dist/discovery/reconcile.d.ts +89 -11
- package/dist/discovery/reconcile.d.ts.map +1 -1
- package/dist/discovery/reconcile.js +440 -78
- package/dist/discovery/reconcile.js.map +1 -1
- package/dist/discovery/runner-env.d.ts +88 -2
- package/dist/discovery/runner-env.d.ts.map +1 -1
- package/dist/discovery/runner-env.js +142 -4
- package/dist/discovery/runner-env.js.map +1 -1
- package/dist/discovery/runner-file-scope.d.ts +114 -0
- package/dist/discovery/runner-file-scope.d.ts.map +1 -0
- package/dist/discovery/runner-file-scope.js +638 -0
- package/dist/discovery/runner-file-scope.js.map +1 -0
- package/dist/discovery/static-discovery.d.ts +49 -3
- package/dist/discovery/static-discovery.d.ts.map +1 -1
- package/dist/discovery/static-discovery.js +477 -18
- package/dist/discovery/static-discovery.js.map +1 -1
- package/dist/discovery/supervised-run.d.ts +199 -10
- package/dist/discovery/supervised-run.d.ts.map +1 -1
- package/dist/discovery/supervised-run.js +350 -39
- package/dist/discovery/supervised-run.js.map +1 -1
- package/dist/discovery/trusted-config.d.ts +180 -6
- package/dist/discovery/trusted-config.d.ts.map +1 -1
- package/dist/discovery/trusted-config.js +279 -10
- package/dist/discovery/trusted-config.js.map +1 -1
- package/dist/discovery/vitest-runner-adapter.d.ts +172 -0
- package/dist/discovery/vitest-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/vitest-runner-adapter.js +607 -0
- package/dist/discovery/vitest-runner-adapter.js.map +1 -0
- package/dist/fixture/consumer-runner.d.ts +4 -0
- package/dist/fixture/consumer-runner.d.ts.map +1 -0
- package/dist/fixture/consumer-runner.js +38 -0
- package/dist/fixture/consumer-runner.js.map +1 -0
- package/dist/fixture/evidence.d.ts +27 -0
- package/dist/fixture/evidence.d.ts.map +1 -1
- package/dist/fixture/evidence.js +12 -0
- package/dist/fixture/evidence.js.map +1 -1
- package/dist/fixture/fixture.d.ts +2 -1
- package/dist/fixture/fixture.d.ts.map +1 -1
- package/dist/fixture/fixture.js +1 -17
- package/dist/fixture/fixture.js.map +1 -1
- package/dist/fixture/witness-client.d.ts +6 -174
- package/dist/fixture/witness-client.d.ts.map +1 -1
- package/dist/fixture/witness-client.js +6 -267
- package/dist/fixture/witness-client.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +6 -12
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +6 -17
- package/dist/json.js.map +1 -1
- package/dist/reporter/project-graph-reporter.d.ts +121 -0
- package/dist/reporter/project-graph-reporter.d.ts.map +1 -0
- package/dist/reporter/project-graph-reporter.js +132 -0
- package/dist/reporter/project-graph-reporter.js.map +1 -0
- package/dist/reporter/reporter.cjs.map +1 -1
- package/dist/reporter/reporter.d.ts +93 -4
- package/dist/reporter/reporter.d.ts.map +1 -1
- package/dist/reporter/reporter.js +174 -18
- package/dist/reporter/reporter.js.map +1 -1
- package/dist/runner-claims.d.ts +13 -0
- package/dist/runner-claims.d.ts.map +1 -0
- package/dist/runner-claims.js +46 -0
- package/dist/runner-claims.js.map +1 -0
- package/dist/runner-resolution.d.ts +3 -0
- package/dist/runner-resolution.d.ts.map +1 -0
- package/dist/runner-resolution.js +14 -0
- package/dist/runner-resolution.js.map +1 -0
- package/dist/supervisor/client.d.ts +23 -1
- package/dist/supervisor/client.d.ts.map +1 -1
- package/dist/supervisor/client.js +49 -0
- package/dist/supervisor/client.js.map +1 -1
- package/dist/supervisor/drain.d.ts +65 -0
- package/dist/supervisor/drain.d.ts.map +1 -1
- package/dist/supervisor/drain.js +353 -9
- package/dist/supervisor/drain.js.map +1 -1
- package/dist/supervisor/index.d.ts +7 -3
- package/dist/supervisor/index.d.ts.map +1 -1
- package/dist/supervisor/index.js +7 -3
- package/dist/supervisor/index.js.map +1 -1
- package/dist/supervisor/spool.d.ts +65 -2
- package/dist/supervisor/spool.d.ts.map +1 -1
- package/dist/supervisor/spool.js +47 -0
- package/dist/supervisor/spool.js.map +1 -1
- package/dist/surface.d.ts +6 -207
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +6 -264
- package/dist/surface.js.map +1 -1
- package/dist/vitest/index.d.ts +23 -0
- package/dist/vitest/index.d.ts.map +1 -0
- package/dist/vitest/index.js +356 -0
- package/dist/vitest/index.js.map +1 -0
- package/dist/vitest/reporter.d.ts +83 -0
- package/dist/vitest/reporter.d.ts.map +1 -0
- package/dist/vitest/reporter.js +211 -0
- package/dist/vitest/reporter.js.map +1 -0
- package/dist/vitest/worker-slot.d.ts +36 -0
- package/dist/vitest/worker-slot.d.ts.map +1 -0
- package/dist/vitest/worker-slot.js +51 -0
- package/dist/vitest/worker-slot.js.map +1 -0
- package/dist/witness/adapter-registry.d.ts +6 -50
- package/dist/witness/adapter-registry.d.ts.map +1 -1
- package/dist/witness/adapter-registry.js +6 -257
- package/dist/witness/adapter-registry.js.map +1 -1
- package/dist/witness/behavior-request.d.ts +6 -76
- package/dist/witness/behavior-request.d.ts.map +1 -1
- package/dist/witness/behavior-request.js +6 -273
- package/dist/witness/behavior-request.js.map +1 -1
- package/dist/witness/behavior.d.ts +6 -48
- package/dist/witness/behavior.d.ts.map +1 -1
- package/dist/witness/behavior.js +6 -114
- package/dist/witness/behavior.js.map +1 -1
- package/dist/witness/bin.d.ts +6 -17
- package/dist/witness/bin.d.ts.map +1 -1
- package/dist/witness/bin.js +6 -168
- package/dist/witness/bin.js.map +1 -1
- package/dist/witness/browser.d.ts +14 -206
- package/dist/witness/browser.d.ts.map +1 -1
- package/dist/witness/browser.js +15 -654
- package/dist/witness/browser.js.map +1 -1
- package/dist/witness/classifications.d.ts +6 -38
- package/dist/witness/classifications.d.ts.map +1 -1
- package/dist/witness/classifications.js +6 -83
- package/dist/witness/classifications.js.map +1 -1
- package/dist/witness/env-attestation.d.ts +6 -94
- package/dist/witness/env-attestation.d.ts.map +1 -1
- package/dist/witness/env-attestation.js +6 -198
- package/dist/witness/env-attestation.js.map +1 -1
- package/dist/witness/fixture-provider.d.ts +6 -82
- package/dist/witness/fixture-provider.d.ts.map +1 -1
- package/dist/witness/fixture-provider.js +6 -105
- package/dist/witness/fixture-provider.js.map +1 -1
- package/dist/witness/loopback-pins.d.ts +6 -75
- package/dist/witness/loopback-pins.d.ts.map +1 -1
- package/dist/witness/loopback-pins.js +6 -240
- package/dist/witness/loopback-pins.js.map +1 -1
- package/dist/witness/server.d.ts +8 -26
- package/dist/witness/server.d.ts.map +1 -1
- package/dist/witness/server.js +24 -3761
- package/dist/witness/server.js.map +1 -1
- package/dist/witness/types.d.ts +6 -882
- package/dist/witness/types.d.ts.map +1 -1
- package/dist/witness/types.js +9 -1
- package/dist/witness/types.js.map +1 -1
- package/examples/overlay-proof.spec.js +75 -0
- package/package.json +12 -3
- package/python/gateforge_pytest_plugin.py +462 -0
- package/python/__pycache__/gateforge_persistence_intents.cpython-314.pyc +0 -0
|
@@ -10,6 +10,15 @@ export interface ScanBudget {
|
|
|
10
10
|
/** Max import-chain depth when resolving an alias (default 16). */
|
|
11
11
|
maxImportDepth?: number;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* A caller-supplied veto over one repo-relative posix file. Returning
|
|
15
|
+
* true means the file is NOT a static-discovery candidate. It is
|
|
16
|
+
* consulted at the candidate-seed boundary only, so it never removes
|
|
17
|
+
* a file the runner legitimately enumerates, and never shortens
|
|
18
|
+
* import traversal (a traversed import target is read for bindings
|
|
19
|
+
* whatever the seed says about it).
|
|
20
|
+
*/
|
|
21
|
+
export type RepoRelativeFileFilter = (repoRelativePath: string) => boolean;
|
|
13
22
|
/** Options for one static test scan. */
|
|
14
23
|
export interface StaticScanOptions {
|
|
15
24
|
/** Absolute repo root. */
|
|
@@ -18,6 +27,29 @@ export interface StaticScanOptions {
|
|
|
18
27
|
include: readonly string[];
|
|
19
28
|
/** Repo-root-relative exclude globs (any match wins). */
|
|
20
29
|
exclude: readonly string[];
|
|
30
|
+
/**
|
|
31
|
+
* Optional veto over seeded candidates (repo-relative posix paths).
|
|
32
|
+
*
|
|
33
|
+
* The seed is the ONLY place this applies: a file the caller hides
|
|
34
|
+
* here contributes no static rows, while import traversal from a
|
|
35
|
+
* kept file and the native runner's own enumeration are untouched.
|
|
36
|
+
* Gateforge's CLI passes the engine's own generated run-state
|
|
37
|
+
* artifacts (see `cli/src/state-artifacts.ts`) so the controller
|
|
38
|
+
* spec a first run persists into the state directory cannot be
|
|
39
|
+
* harvested back as a test the repository never declared.
|
|
40
|
+
*/
|
|
41
|
+
excludeFile?: RepoRelativeFileFilter;
|
|
42
|
+
/**
|
|
43
|
+
* Per-file runner-globals predicate (repo-relative posix paths).
|
|
44
|
+
*
|
|
45
|
+
* TRUE when the file's own runner injects `test`/`it`/`describe` as
|
|
46
|
+
* GLOBALS (vitest `globals: true`): in such a file a bare
|
|
47
|
+
* `it('…')`/`test('…')` IS a test registration the runner owns, not
|
|
48
|
+
* an alias the scan could not resolve. Without this predicate every
|
|
49
|
+
* unbound call stays `unresolved-test-alias`, which is what a file
|
|
50
|
+
* without runner globals must keep.
|
|
51
|
+
*/
|
|
52
|
+
testGlobals?: RepoRelativeFileFilter;
|
|
21
53
|
/** Traversal budgets (defaults documented on {@link ScanBudget}). */
|
|
22
54
|
budget?: ScanBudget;
|
|
23
55
|
}
|
|
@@ -27,6 +59,8 @@ export interface StaticTestFacts {
|
|
|
27
59
|
signatureParams: string[];
|
|
28
60
|
/** `page.route(...)` (or any `<x>.route(`) inside the test body. */
|
|
29
61
|
pageRoute: Location | null;
|
|
62
|
+
/** Literal URL patterns passed to `page.route(...)`, when statically known. */
|
|
63
|
+
pageRouteTargets?: string[];
|
|
30
64
|
/** fetch/axios call inside the test body. */
|
|
31
65
|
httpClientCall: Location | null;
|
|
32
66
|
/** fetch/axios call anywhere in the file (app-boundary import hint). */
|
|
@@ -61,6 +95,10 @@ export interface StaticTestEntry {
|
|
|
61
95
|
}>;
|
|
62
96
|
/** Inference facts from the call + callback body. */
|
|
63
97
|
facts: StaticTestFacts;
|
|
98
|
+
/** Literal claims from this test's Gateforge annotations, when present. */
|
|
99
|
+
annotationClaims?: string[];
|
|
100
|
+
/** Why a Gateforge annotation could not be resolved without execution. */
|
|
101
|
+
annotationIssue?: string;
|
|
64
102
|
}
|
|
65
103
|
/** One statically detected gap (unresolvable call, budget, dynamic title). */
|
|
66
104
|
export interface StaticUnresolved {
|
|
@@ -81,11 +119,19 @@ export interface StaticParseError {
|
|
|
81
119
|
message: string;
|
|
82
120
|
location: Location;
|
|
83
121
|
}
|
|
122
|
+
/** A test registration is controlled by a Gateforge environment variable. */
|
|
123
|
+
export interface StaticRegistrationWarning {
|
|
124
|
+
file: string;
|
|
125
|
+
titlePath: string[];
|
|
126
|
+
environmentVariable: string;
|
|
127
|
+
location: Location;
|
|
128
|
+
}
|
|
84
129
|
/** Result of one static scan. */
|
|
85
130
|
export interface StaticScanResult {
|
|
86
131
|
entries: StaticTestEntry[];
|
|
87
132
|
unresolved: StaticUnresolved[];
|
|
88
133
|
parseErrors: StaticParseError[];
|
|
134
|
+
registrationWarnings: StaticRegistrationWarning[];
|
|
89
135
|
/** Repo-relative files that were parsed (seeded + traversed). */
|
|
90
136
|
scannedFiles: string[];
|
|
91
137
|
/** True when the import-traversal budget cut resolution short. */
|
|
@@ -120,9 +166,9 @@ export declare const BROWSER_FIXTURE_PARAMS: Set<string>;
|
|
|
120
166
|
* options: cwd, include/exclude globs, and optional budgets.
|
|
121
167
|
*
|
|
122
168
|
* Returns:
|
|
123
|
-
* StaticScanResult: entries, unresolved rows, parse errors,
|
|
124
|
-
* files, and the budget flag. Never throws for
|
|
125
|
-
* problems — those are rows (fail closed as data, not silence).
|
|
169
|
+
* StaticScanResult: entries, unresolved rows, parse errors, registration
|
|
170
|
+
* warnings, scanned files, and the budget flag. Never throws for
|
|
171
|
+
* scanner-detectable problems — those are rows (fail closed as data, not silence).
|
|
126
172
|
*/
|
|
127
173
|
export declare function scanTestFiles(options: StaticScanOptions): StaticScanResult;
|
|
128
174
|
//# sourceMappingURL=static-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/static-discovery.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"static-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/static-discovery.ts"],"names":[],"mappings":"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"}
|