@ploaness/cli 1.12.0 → 1.13.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/dist/bin.js +38 -15
- package/dist/bin.js.map +1 -1
- package/dist/change-scope.d.ts +24 -0
- package/dist/change-scope.d.ts.map +1 -0
- package/dist/change-scope.js +132 -0
- package/dist/change-scope.js.map +1 -0
- package/dist/checks/assets.d.ts +7 -0
- package/dist/checks/assets.d.ts.map +1 -1
- package/dist/checks/assets.js +15 -1
- package/dist/checks/assets.js.map +1 -1
- package/dist/checks/history.js +1 -1
- package/dist/checks/history.js.map +1 -1
- package/dist/checks/infra.d.ts.map +1 -1
- package/dist/checks/infra.js +16 -5
- package/dist/checks/infra.js.map +1 -1
- package/dist/checks/tests.d.ts +6 -3
- package/dist/checks/tests.d.ts.map +1 -1
- package/dist/checks/tests.js +55 -19
- package/dist/checks/tests.js.map +1 -1
- package/dist/checks/toolchain.d.ts +7 -0
- package/dist/checks/toolchain.d.ts.map +1 -1
- package/dist/checks/toolchain.js +19 -6
- package/dist/checks/toolchain.js.map +1 -1
- package/dist/checks/wiring.d.ts.map +1 -1
- package/dist/checks/wiring.js +4 -7
- package/dist/checks/wiring.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +7 -27
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/scope.d.ts +9 -0
- package/dist/commands/scope.d.ts.map +1 -0
- package/dist/commands/scope.js +32 -0
- package/dist/commands/scope.js.map +1 -0
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +29 -2
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/verify.d.ts +7 -4
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +33 -23
- package/dist/commands/verify.js.map +1 -1
- package/dist/context.d.ts +10 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +5 -3
- package/dist/context.js.map +1 -1
- package/dist/gates.d.ts +11 -10
- package/dist/gates.d.ts.map +1 -1
- package/dist/gates.js +68 -67
- package/dist/gates.js.map +1 -1
- package/dist/pinned-browsers.d.ts +25 -0
- package/dist/pinned-browsers.d.ts.map +1 -0
- package/dist/pinned-browsers.js +138 -0
- package/dist/pinned-browsers.js.map +1 -0
- package/dist/report.d.ts +4 -3
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +7 -7
- package/dist/report.js.map +1 -1
- package/dist/test-invocation.d.ts.map +1 -1
- package/dist/test-invocation.js +4 -1
- package/dist/test-invocation.js.map +1 -1
- package/dist/working-tree.d.ts +2 -0
- package/dist/working-tree.d.ts.map +1 -1
- package/dist/working-tree.js +9 -0
- package/dist/working-tree.js.map +1 -1
- package/package.json +4 -4
package/dist/bin.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { parseComplianceReportArguments, parseSbomArguments } from '@ploaness/governance';
|
|
2
|
+
import { DEFAULT_VERIFICATION_LEVEL, isVerificationLevel, parseComplianceReportArguments, parseSbomArguments, } from '@ploaness/governance';
|
|
3
3
|
import { commitMessage } from './commands/commit-message.js';
|
|
4
4
|
import { complianceReport } from './commands/compliance-report.js';
|
|
5
5
|
import { format } from './commands/format.js';
|
|
6
6
|
import { init } from './commands/init.js';
|
|
7
7
|
import { sbom } from './commands/sbom.js';
|
|
8
|
+
import { scope } from './commands/scope.js';
|
|
8
9
|
import { sync } from './commands/sync.js';
|
|
9
10
|
import { verify, verifyOne } from './commands/verify.js';
|
|
10
11
|
// The `ploaness` command. Argument handling is deliberately small: ploaness offers commands, not
|
|
11
|
-
// options that change what is checked.
|
|
12
|
-
//
|
|
13
|
-
// a gate.
|
|
12
|
+
// options that change what is checked. A verification level is a word, not a flag, and each level
|
|
13
|
+
// contains the one before it. Three flags exist and none reaches a rule: --enforce=false changes whether
|
|
14
|
+
// findings are fatal, and --verbose and --json change what is shown. There is no flag that skips a gate.
|
|
14
15
|
import { createRepository, memberAt } from './context.js';
|
|
15
16
|
import { ALL_GATES, gateById } from './gates.js';
|
|
16
17
|
// argv begins with the node binary and the script path; the command follows them.
|
|
@@ -19,22 +20,28 @@ const ARGV_COMMAND_OFFSET = 2;
|
|
|
19
20
|
const GATE_ID_COLUMN = 22;
|
|
20
21
|
const USAGE = `ploaness, the quality harness for Payload CMS projects
|
|
21
22
|
|
|
22
|
-
ploaness verify [
|
|
23
|
+
ploaness verify [quick|delta|full] [--enforce=false]
|
|
24
|
+
run verification; bare \`verify\` is quick
|
|
25
|
+
ploaness scope [--json] show what delta's browser sweep covers here
|
|
23
26
|
ploaness format apply formatting and safe fixes
|
|
24
27
|
ploaness sync materialise the managed files
|
|
25
28
|
ploaness init scaffold the consumer wiring
|
|
26
29
|
ploaness sbom --artifact <file> [--output <dir>] export a release dependency inventory
|
|
27
30
|
ploaness compliance-report [--output <dir>] write the shareable compliance report
|
|
28
|
-
ploaness gate <id> [--verbose] run one gate, for debugging
|
|
29
|
-
ploaness gates list the gates in run order
|
|
31
|
+
ploaness gate <id> [--verbose] run one gate at the delta level, for debugging
|
|
32
|
+
ploaness gates list the gates in run order, with their level
|
|
30
33
|
ploaness commit-message <file|--range R|--all> check one message, a range, or the history
|
|
31
34
|
|
|
35
|
+
quick runs the static gates, delta adds history, build, bundle and the browser suite with its sweep
|
|
36
|
+
scoped to the change, and full sweeps every route and story in every engine.
|
|
32
37
|
Report-only mode (--enforce=false) prints findings and exits 0. It is not a pass.
|
|
33
38
|
Verbose mode (--verbose) prints what the gate's tool wrote, passing or failing.`;
|
|
34
39
|
const HELP_COMMANDS = new Set(['--help', '-h', 'help']);
|
|
35
40
|
const GATE_SCOPES = new Set(['repository', 'package', 'payload']);
|
|
36
41
|
// Wide enough for the longest scope name, so the titles beside them line up.
|
|
37
42
|
const GATE_SCOPE_COLUMN = 10;
|
|
43
|
+
// Wide enough for the longest level a gate declares.
|
|
44
|
+
const LEVEL_COLUMN = 5;
|
|
38
45
|
// `--scope` and `--ids` exist so a script can ask which gates judge a repository's shape rather than
|
|
39
46
|
// keeping its own copy of the answer. ploaness's own verification runs such a list, in an order it
|
|
40
47
|
// chooses deliberately; what it could not do before was notice a NEW repository-scope gate that nobody
|
|
@@ -51,8 +58,13 @@ const listGates = (rest) => {
|
|
|
51
58
|
console.info(gate.id);
|
|
52
59
|
}
|
|
53
60
|
else {
|
|
54
|
-
const
|
|
55
|
-
|
|
61
|
+
const columns = [
|
|
62
|
+
gate.level.padEnd(LEVEL_COLUMN),
|
|
63
|
+
` ${gate.id.padEnd(GATE_ID_COLUMN)}`,
|
|
64
|
+
gate.scope.padEnd(GATE_SCOPE_COLUMN),
|
|
65
|
+
gate.title,
|
|
66
|
+
];
|
|
67
|
+
console.info(columns.join(' '));
|
|
56
68
|
}
|
|
57
69
|
}
|
|
58
70
|
return 0;
|
|
@@ -69,8 +81,11 @@ const runOneGate = async (repository, id, isVerbose) => {
|
|
|
69
81
|
const member = gate.scope === 'repository' ? undefined : memberAt(repository, process.cwd());
|
|
70
82
|
return await verifyOne(repository, { gate, member }, isVerbose);
|
|
71
83
|
};
|
|
84
|
+
const levelOf = (rest) => rest.find((argument) => isVerificationLevel(argument)) ??
|
|
85
|
+
DEFAULT_VERIFICATION_LEVEL;
|
|
72
86
|
const COMMANDS = {
|
|
73
|
-
verify: async (repository, rest) => await verify(repository, rest
|
|
87
|
+
verify: async (repository, rest) => await verify(repository, levelOf(rest)),
|
|
88
|
+
scope: (repository, rest) => scope(repository, rest.includes(JSON_OPTION)),
|
|
74
89
|
format: (repository) => format(repository),
|
|
75
90
|
sync: (repository) => sync(repository),
|
|
76
91
|
init: (repository) => init(repository),
|
|
@@ -81,10 +96,11 @@ const COMMANDS = {
|
|
|
81
96
|
'commit-message': (repository, rest) => commitMessage(repository, rest[0], rest[1]),
|
|
82
97
|
};
|
|
83
98
|
// Each command owns its grammar. A global allowlist rejected the documented `commit-message --all` and
|
|
84
|
-
// `--range` modes while accepting
|
|
85
|
-
// also stops extra positional arguments and single-dash options from disappearing silently.
|
|
86
|
-
const
|
|
99
|
+
// `--range` modes while accepting a verification option on commands that do not use it; checking the
|
|
100
|
+
// whole shape also stops extra positional arguments and single-dash options from disappearing silently.
|
|
101
|
+
const ENFORCE_OPTION = '--enforce=false';
|
|
87
102
|
const VERBOSE_OPTION = '--verbose';
|
|
103
|
+
const JSON_OPTION = '--json';
|
|
88
104
|
const GATE_OPTIONS = new Set([VERBOSE_OPTION]);
|
|
89
105
|
const RANGE_ARGUMENT_COUNT = 2;
|
|
90
106
|
const hasDistinctMembersOf = (values, allowed) => values.every((value) => allowed.has(value)) && new Set(values).size === values.length;
|
|
@@ -97,8 +113,15 @@ const isCommitMessageArguments = (rest) => {
|
|
|
97
113
|
? rest.length === RANGE_ARGUMENT_COUNT && value !== undefined && !value.startsWith('-')
|
|
98
114
|
: rest.length === 1 && mode !== undefined && !mode.startsWith('-');
|
|
99
115
|
};
|
|
116
|
+
// At most one level, anywhere among the arguments, beside the report-only option.
|
|
117
|
+
const isVerifyArguments = (rest) => {
|
|
118
|
+
const levels = rest.filter((argument) => isVerificationLevel(argument));
|
|
119
|
+
const options = rest.filter((argument) => !isVerificationLevel(argument));
|
|
120
|
+
return levels.length <= 1 && hasDistinctMembersOf(options, new Set([ENFORCE_OPTION]));
|
|
121
|
+
};
|
|
100
122
|
const acceptsArguments = {
|
|
101
|
-
verify:
|
|
123
|
+
verify: isVerifyArguments,
|
|
124
|
+
scope: (rest) => hasDistinctMembersOf(rest, new Set([JSON_OPTION])),
|
|
102
125
|
format: (rest) => rest.length === 0,
|
|
103
126
|
sync: (rest) => rest.length === 0,
|
|
104
127
|
init: (rest) => rest.length === 0,
|
|
@@ -138,7 +161,7 @@ const main = async () => {
|
|
|
138
161
|
console.error(`unknown command "${command}"\n\n${USAGE}`);
|
|
139
162
|
return 1;
|
|
140
163
|
}
|
|
141
|
-
const isEnforce = !rest.includes(
|
|
164
|
+
const isEnforce = !rest.includes(ENFORCE_OPTION);
|
|
142
165
|
return await runCommand(createRepository(process.cwd(), isEnforce), rest);
|
|
143
166
|
};
|
|
144
167
|
// A command outside a gate has nothing above it to catch a throw, so an unreadable package.json used to
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type SweepScope } from '@ploaness/governance';
|
|
2
|
+
import { type Member, type Repository } from './context.js';
|
|
3
|
+
import { type GateResult } from './exec.js';
|
|
4
|
+
/**
|
|
5
|
+
* The scope a `delta` run hands one application's browser sweep.
|
|
6
|
+
* @param repository the repository, whose other members a change may reach this one through.
|
|
7
|
+
* @param member the application.
|
|
8
|
+
* @returns the scope, or the failure that kept it from being read.
|
|
9
|
+
*/
|
|
10
|
+
export declare const sweepScopeFor: (repository: Repository, member: Member) => SweepScope | GateResult;
|
|
11
|
+
/**
|
|
12
|
+
* Whether a scope could not be read.
|
|
13
|
+
* @param scope what `sweepScopeFor` answered.
|
|
14
|
+
* @returns true for the failure.
|
|
15
|
+
*/
|
|
16
|
+
export declare const isScopeFailure: (scope: SweepScope | GateResult) => scope is GateResult;
|
|
17
|
+
/**
|
|
18
|
+
* Write a scope where the browser sweep reads it for the length of one run, outside the working tree.
|
|
19
|
+
* @param scope the scope.
|
|
20
|
+
* @param use what runs while the file exists.
|
|
21
|
+
* @returns what `use` returned.
|
|
22
|
+
*/
|
|
23
|
+
export declare const withScopeFile: <Result>(scope: SweepScope, use: (file: string) => Promise<Result>) => Promise<Result>;
|
|
24
|
+
//# sourceMappingURL=change-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-scope.d.ts","sourceRoot":"","sources":["../src/change-scope.ts"],"names":[],"mappings":"AAMA,OAAO,EAQL,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAoB,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAU,KAAK,UAAU,EAAuB,MAAM,WAAW,CAAA;AAiFxE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,YAAY,UAAU,EAAE,QAAQ,MAAM,KAAG,UAAU,GAAG,UAgCnF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,GAAG,UAAU,KAAG,KAAK,IAAI,UAA8B,CAAA;AAEvG;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAU,MAAM,EACxC,OAAO,UAAU,EACjB,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,KACrC,OAAO,CAAC,MAAM,CAShB,CAAA"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// What a change is, read from Git, and what it reaches, read from the import graph, handed to the scope
|
|
2
|
+
// policy in governance. Nothing here decides anything: which baseline counts, which file is global and
|
|
3
|
+
// which page a module reaches are `sweepScopeOf`'s, measured by its own specs.
|
|
4
|
+
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { asRecord, baselineRemote, changeBaseline, declaredDependencies, ROOT_MEMBER_PATH, sweepScopeOf, trackingBranch, } from '@ploaness/governance';
|
|
8
|
+
import { importGraph } from './checks/toolchain.js';
|
|
9
|
+
import { workingTreeFiles } from './context.js';
|
|
10
|
+
import { failed, run } from './exec.js';
|
|
11
|
+
import { untrackedWorkingTreeFiles } from './working-tree.js';
|
|
12
|
+
// Git's answer, or undefined when it has none: a missing ref and a failed merge-base are facts the
|
|
13
|
+
// policy names, not errors.
|
|
14
|
+
const gitAnswer = (root, commandArguments) => {
|
|
15
|
+
const result = run('git', commandArguments, { cwd: root });
|
|
16
|
+
const answer = result.stdout.trim();
|
|
17
|
+
return result.code === 0 && answer.length > 0 ? answer : undefined;
|
|
18
|
+
};
|
|
19
|
+
const remoteHead = (root, remote) => gitAnswer(root, ['symbolic-ref', '--quiet', `refs/remotes/${remote}/HEAD`]);
|
|
20
|
+
const existingBranch = (root, branch) => gitAnswer(root, ['rev-parse', '--verify', '--quiet', `refs/remotes/${branch}`]) === undefined ? undefined : branch;
|
|
21
|
+
const baselineOf = (root) => {
|
|
22
|
+
const remote = baselineRemote((gitAnswer(root, ['remote']) ?? '').split('\n'));
|
|
23
|
+
const branch = remote === undefined || remote === ''
|
|
24
|
+
? undefined
|
|
25
|
+
: existingBranch(root, trackingBranch(remote, remoteHead(root, remote)));
|
|
26
|
+
return changeBaseline({
|
|
27
|
+
branch,
|
|
28
|
+
isShallow: gitAnswer(root, ['rev-parse', '--is-shallow-repository']) === 'true',
|
|
29
|
+
mergeBase: branch === undefined ? undefined : gitAnswer(root, ['merge-base', 'HEAD', `refs/remotes/${branch}`]),
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const DELETED = 'D';
|
|
33
|
+
// `--name-status -z` writes a status and a path per file, each ended by a NUL.
|
|
34
|
+
const FIELDS_PER_FILE = 2;
|
|
35
|
+
const statusEntries = (fields) => Array.from({ length: Math.floor(fields.length / FIELDS_PER_FILE) }, (_unused, index) => ({
|
|
36
|
+
path: fields[index * FIELDS_PER_FILE + 1] ?? '',
|
|
37
|
+
isDeleted: fields[index * FIELDS_PER_FILE] === DELETED,
|
|
38
|
+
}));
|
|
39
|
+
// `git diff <commit>` compares the commit with the working tree, so it holds every commit since the
|
|
40
|
+
// baseline and every staged and unstaged edit at once; renames are split into a deletion and an
|
|
41
|
+
// addition, so both paths count. `--relative` reports paths from the repository root, as the untracked
|
|
42
|
+
// listing does, even where that root sits below Git's own.
|
|
43
|
+
const changedSince = (root, baseline) => {
|
|
44
|
+
const result = run('git', ['diff', '--name-status', '--no-renames', '--relative', '-z', baseline, '--'], {
|
|
45
|
+
cwd: root,
|
|
46
|
+
});
|
|
47
|
+
if (result.code !== 0) {
|
|
48
|
+
return failed('the change since the baseline could not be read', [result.output]);
|
|
49
|
+
}
|
|
50
|
+
return [
|
|
51
|
+
...statusEntries(result.stdout.split('\0').filter((field) => field !== '')),
|
|
52
|
+
...untrackedWorkingTreeFiles(root).map((file) => ({ path: file, isDeleted: false })),
|
|
53
|
+
];
|
|
54
|
+
};
|
|
55
|
+
const repositoryPath = (member, relative) => path.posix.normalize(member.path === ROOT_MEMBER_PATH ? relative : `${member.path}/${relative}`);
|
|
56
|
+
// The members whose change reaches this application without an import: each it starts as an auxiliary
|
|
57
|
+
// server from that member's directory, and each it declares as a dependency.
|
|
58
|
+
const relatedMembers = (repository, member) => {
|
|
59
|
+
const serverDirectories = new Set(member.settings.auxiliaryServers.flatMap((server) => server.cwd === undefined ? [] : [repositoryPath(member, server.cwd)]));
|
|
60
|
+
const dependencies = new Set(Object.keys(declaredDependencies(member.packageJson)));
|
|
61
|
+
return repository.members
|
|
62
|
+
.filter((other) => other.path !== member.path)
|
|
63
|
+
.filter((other) => {
|
|
64
|
+
const name = asRecord(other.packageJson)['name'];
|
|
65
|
+
return serverDirectories.has(other.path) || (typeof name === 'string' && dependencies.has(name));
|
|
66
|
+
})
|
|
67
|
+
.map((other) => other.path);
|
|
68
|
+
};
|
|
69
|
+
const isFailure = (value) => 'ok' in value && value.ok === false;
|
|
70
|
+
/**
|
|
71
|
+
* The scope a `delta` run hands one application's browser sweep.
|
|
72
|
+
* @param repository the repository, whose other members a change may reach this one through.
|
|
73
|
+
* @param member the application.
|
|
74
|
+
* @returns the scope, or the failure that kept it from being read.
|
|
75
|
+
*/
|
|
76
|
+
export const sweepScopeFor = (repository, member) => {
|
|
77
|
+
const baseline = baselineOf(repository.root);
|
|
78
|
+
if (baseline.commit === undefined) {
|
|
79
|
+
return sweepScopeOf({
|
|
80
|
+
baseline,
|
|
81
|
+
changed: [],
|
|
82
|
+
member: member.path,
|
|
83
|
+
sourceRoots: member.settings.sourceRoots,
|
|
84
|
+
members: [],
|
|
85
|
+
related: [],
|
|
86
|
+
files: [],
|
|
87
|
+
graph: {},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const changed = changedSince(repository.root, baseline.commit);
|
|
91
|
+
if (isFailure(changed)) {
|
|
92
|
+
return changed;
|
|
93
|
+
}
|
|
94
|
+
const graph = importGraph(member);
|
|
95
|
+
if (isFailure(graph)) {
|
|
96
|
+
return graph;
|
|
97
|
+
}
|
|
98
|
+
return sweepScopeOf({
|
|
99
|
+
baseline,
|
|
100
|
+
changed,
|
|
101
|
+
member: member.path,
|
|
102
|
+
sourceRoots: member.settings.sourceRoots,
|
|
103
|
+
members: repository.members.map((other) => other.path),
|
|
104
|
+
related: relatedMembers(repository, member),
|
|
105
|
+
files: workingTreeFiles(member.root),
|
|
106
|
+
graph,
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Whether a scope could not be read.
|
|
111
|
+
* @param scope what `sweepScopeFor` answered.
|
|
112
|
+
* @returns true for the failure.
|
|
113
|
+
*/
|
|
114
|
+
export const isScopeFailure = (scope) => isFailure(scope);
|
|
115
|
+
/**
|
|
116
|
+
* Write a scope where the browser sweep reads it for the length of one run, outside the working tree.
|
|
117
|
+
* @param scope the scope.
|
|
118
|
+
* @param use what runs while the file exists.
|
|
119
|
+
* @returns what `use` returned.
|
|
120
|
+
*/
|
|
121
|
+
export const withScopeFile = async (scope, use) => {
|
|
122
|
+
const directory = mkdtempSync(path.join(tmpdir(), 'ploaness-scope-'));
|
|
123
|
+
const file = path.join(directory, 'scope.json');
|
|
124
|
+
writeFileSync(file, `${JSON.stringify(scope)}\n`);
|
|
125
|
+
try {
|
|
126
|
+
return await use(file);
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
rmSync(directory, { recursive: true, force: true });
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=change-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-scope.js","sourceRoot":"","sources":["../src/change-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/checks/assets.d.ts
CHANGED
|
@@ -39,4 +39,11 @@ export declare const hasCopiedChange: (source: string, target: string) => boolea
|
|
|
39
39
|
export declare const syncAssets: (repository: Repository) => readonly SyncChange[];
|
|
40
40
|
/** Write a managed file only when the path is absent, used by `ploaness init`. */
|
|
41
41
|
export declare const hasSeededFile: (root: string, assetPath: string, body: string) => boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Write each scaffold the catalogue lists at the repository root where it is absent, used by
|
|
44
|
+
* `ploaness init`. Sync never writes one, so a project that removes it keeps it removed.
|
|
45
|
+
* @param repository the repository being scaffolded.
|
|
46
|
+
* @returns each scaffold's path and whether it was written.
|
|
47
|
+
*/
|
|
48
|
+
export declare const writeScaffolds: (repository: Repository) => readonly (readonly [string, boolean])[];
|
|
42
49
|
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,OAAO,EAAe,KAAK,UAAU,EAAsC,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAuF5D,mGAAmG;AACnG,eAAO,MAAM,MAAM,GAAI,YAAY,UAAU,KAAG,UAwC/C,CAAA;
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,OAAO,EAAe,KAAK,UAAU,EAAsC,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAuF5D,mGAAmG;AACnG,eAAO,MAAM,MAAM,GAAI,YAAY,UAAU,KAAG,UAwC/C,CAAA;AAKD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,KAAG,WAAW,CAAC,MAAM,CAOjE,CAAA;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;CAC7D;AAoCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAQhE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,YAAY,UAAU,KAAG,SAAS,UAAU,EAetE,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,EAAE,MAAM,MAAM,KAAG,OAQ7E,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,UAAU,KAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAMvF,CAAA"}
|
package/dist/checks/assets.js
CHANGED
|
@@ -98,6 +98,8 @@ export const assets = (repository) => {
|
|
|
98
98
|
? failed(`${String(findings.length)} managed-file defect(s)`, findings)
|
|
99
99
|
: passed(`${String(checked)} managed path(s) match the catalogue`);
|
|
100
100
|
};
|
|
101
|
+
// A forbidden path is one ploaness keeps out, and a scaffold is the project's once `init` wrote it.
|
|
102
|
+
const PROJECT_OWNED = new Set(['FORBIDDEN', 'SCAFFOLD']);
|
|
101
103
|
/**
|
|
102
104
|
* The paths ploaness owns in this working tree, minus any the project has taken over.
|
|
103
105
|
*
|
|
@@ -111,7 +113,7 @@ export const assets = (repository) => {
|
|
|
111
113
|
export const managedPaths = (context) => {
|
|
112
114
|
const owned = new Set(unmanagedPaths(context));
|
|
113
115
|
return new Set(catalogue()
|
|
114
|
-
.assets.filter((asset) => asset.disposition
|
|
116
|
+
.assets.filter((asset) => !(PROJECT_OWNED.has(asset.disposition) || owned.has(asset.path)))
|
|
115
117
|
.map((asset) => asset.path));
|
|
116
118
|
};
|
|
117
119
|
const spliceSection = (assetPath, target, source) => {
|
|
@@ -196,4 +198,16 @@ export const hasSeededFile = (root, assetPath, body) => {
|
|
|
196
198
|
writeFileSync(target, body);
|
|
197
199
|
return true;
|
|
198
200
|
};
|
|
201
|
+
/**
|
|
202
|
+
* Write each scaffold the catalogue lists at the repository root where it is absent, used by
|
|
203
|
+
* `ploaness init`. Sync never writes one, so a project that removes it keeps it removed.
|
|
204
|
+
* @param repository the repository being scaffolded.
|
|
205
|
+
* @returns each scaffold's path and whether it was written.
|
|
206
|
+
*/
|
|
207
|
+
export const writeScaffolds = (repository) => repositoryAssets(catalogue().assets)
|
|
208
|
+
.filter((asset) => asset.disposition === 'SCAFFOLD')
|
|
209
|
+
.flatMap((asset) => {
|
|
210
|
+
const body = shippedBody(asset.path);
|
|
211
|
+
return body === undefined ? [] : [[asset.path, hasSeededFile(repository.root, asset.path, body)]];
|
|
212
|
+
});
|
|
199
213
|
//# sourceMappingURL=assets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"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"}
|
package/dist/checks/history.js
CHANGED
|
@@ -5,7 +5,7 @@ import { git } from '../context.js';
|
|
|
5
5
|
import { failed, passed } from '../exec.js';
|
|
6
6
|
const nonEmptyLines = (raw) => raw.split('\n').filter((line) => line.trim().length > 0);
|
|
7
7
|
const shasOf = (context, revisionArguments) => nonEmptyLines(git(context, ['rev-list', ...revisionArguments]));
|
|
8
|
-
/**
|
|
8
|
+
/** Delta and full verification walk every commit, so a shallow clone is rejected up front. */
|
|
9
9
|
// Enough of a commit hash to identify it in a report without filling the line.
|
|
10
10
|
const SHORT_SHA_LENGTH = 9;
|
|
11
11
|
export const requireFullHistory = (context) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/checks/history.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,iDAAiD;AACjD,OAAO,EAEL,gBAAgB,EAEhB,YAAY,EACZ,uBAAuB,EAEvB,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,GAAG,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,aAAa,GAAG,CAAC,GAAW,EAAqB,EAAE,CACvD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAE3E,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,iBAAoC,EAAqB,EAAE,CAC3F,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAEjE,
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/checks/history.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,iDAAiD;AACjD,OAAO,EAEL,gBAAgB,EAEhB,YAAY,EACZ,uBAAuB,EAEvB,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,GAAG,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,aAAa,GAAG,CAAC,GAAW,EAAqB,EAAE,CACvD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAE3E,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,iBAAoC,EAAqB,EAAE,CAC3F,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAEjE,8FAA8F;AAC9F,+EAA+E;AAC/E,MAAM,gBAAgB,GAAW,CAAC,CAAA;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAc,EAAE;IACjE,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,KAAK,MAAM;YACtE,CAAC,CAAC,MAAM,CAAC,2BAA2B,EAAE;gBAClC,uFAAuF;aACxF,CAAC;YACJ,CAAC,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,8BAA8B,EAAE,CAAC,2CAA2C,CAAC,CAAC,CAAA;IAC9F,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAgB,EAChB,oBAAuC,uBAAuB,EAClD,EAAE;IACd,MAAM,IAAI,GAAsB,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAsB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,EAAqB,EAAE;QAClF,MAAM,OAAO,GAAkB,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACjG,MAAM,cAAc,GAAY,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACjH,OAAO,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,GAAG,CACjD,CAAC,OAAe,EAAU,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,OAAO,EAAE,CAC5E,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,qCAAqC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC;QAClH,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAChE,CAAC,CAAA;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,GAAW,EAAqB,EAAE;IACxF,MAAM,aAAa,GAAY,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1G,OAAO,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED,wGAAwG;AACxG,0GAA0G;AAC1G,kDAAkD;AAClD,MAAM,aAAa,GAAW,gBAAgB,CAAA;AAE9C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAc,EAAE;IAC5D,MAAM,OAAO,GAA2B,aAAa,CACnD,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,uBAAuB,EAAE,aAAa,CAAC,CAAC,CACjE,CAAC,GAAG,CAAC,CAAC,IAAY,EAAe,EAAE;QAClC,MAAM,MAAM,GAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxD,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5C,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,UAAU,GAAgC,gBAAgB,CAC9D,OAAO,CAAC,GAAG,CACT,CAAC,MAAmB,EAAe,EAAE,CAAC,CAAC;QACrC,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;KACnG,CAAC,CACH,CACF,CAAA;IACD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,MAAM,CACJ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,iCAAiC,EAC7D,UAAU,CAAC,GAAG,CACZ,CAAC,SAA2B,EAAU,EAAE,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAC3G,CACF;QACH,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAA;AACzE,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infra.d.ts","sourceRoot":"","sources":["../../src/checks/infra.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"infra.d.ts","sourceRoot":"","sources":["../../src/checks/infra.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAsB,KAAK,UAAU,EAA2C,MAAM,YAAY,CAAA;AAoOzG,uEAAuE;AACvE,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,KAAG,UAoBjD,CAAA"}
|
package/dist/checks/infra.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// passed on the pattern rules with a summary that says exactly that.
|
|
12
12
|
import { readFileSync } from 'node:fs';
|
|
13
13
|
import path from 'node:path';
|
|
14
|
-
import { CONTAINER_IMAGES, checkovCheckList, checkovConfigsIn, checksFor, classifyProviders, failedCheckCount, findTerraformViolations, providerDeclarationsIn, providersOf, resourceCountOf, terraformFilesIn, } from '@ploaness/governance';
|
|
14
|
+
import { CONTAINER_IMAGES, checkovCheckList, checkovConfigsIn, checksFor, classifyProviders, failedCheckCount, findCloudFrontRuntimeViolations, findTerraformViolations, providerDeclarationsIn, providersOf, resourceCountOf, terraformFilesIn, } from '@ploaness/governance';
|
|
15
15
|
import { workingTreeFiles } from '../context.js';
|
|
16
16
|
import { asFindings, failed, passed, run, withOutput } from '../exec.js';
|
|
17
17
|
import { acquireImage, dockerFault } from './container-run.js';
|
|
@@ -24,7 +24,17 @@ const readSources = (context, files) => files.map((file) => ({
|
|
|
24
24
|
file,
|
|
25
25
|
text: readFileSync(path.join(context.root, file), 'utf8'),
|
|
26
26
|
}));
|
|
27
|
-
|
|
27
|
+
// The CloudFront linkage is decided from the same text, so it reports beside the pattern rules and
|
|
28
|
+
// reaches every verdict they do, whichever providers the tree declares.
|
|
29
|
+
const patternFindingsIn = (context, sources, tracked) => {
|
|
30
|
+
const trackedFiles = new Set(tracked);
|
|
31
|
+
return sources.flatMap((source) => [
|
|
32
|
+
...findTerraformViolations(source.text),
|
|
33
|
+
...findCloudFrontRuntimeViolations(source.file, source.text, trackedFiles, context.settings.javascriptRuntimes),
|
|
34
|
+
]
|
|
35
|
+
.toSorted((left, right) => left.line - right.line)
|
|
36
|
+
.map((violation) => `${source.file}:${String(violation.line)} [${violation.rule}] ${violation.reason}`));
|
|
37
|
+
};
|
|
28
38
|
const declarationsIn = (sources) => sources.flatMap((source) => providerDeclarationsIn(source.text).map((declaration) => ({
|
|
29
39
|
...declaration,
|
|
30
40
|
file: source.file,
|
|
@@ -134,8 +144,8 @@ const analyzerVerdict = (result, patterns, passSummary) => {
|
|
|
134
144
|
// What the tree declares decides whether the analyzer runs at all. A tree of variables and modules
|
|
135
145
|
// declares nothing it could judge; a tree on a cloud it has no check for would pass without looking.
|
|
136
146
|
// Neither pulls an image, and neither claims a check it did not run.
|
|
137
|
-
const judge = (context,
|
|
138
|
-
const patterns =
|
|
147
|
+
const judge = (context, reading, standing) => {
|
|
148
|
+
const { sources, declarations, patterns } = reading;
|
|
139
149
|
if (standing.unclassified.length > 0) {
|
|
140
150
|
return unclassifiedFailure(standing, declarations, patterns);
|
|
141
151
|
}
|
|
@@ -168,6 +178,7 @@ export const infrastructure = (context) => {
|
|
|
168
178
|
}
|
|
169
179
|
const sources = readSources(context, files);
|
|
170
180
|
const declarations = declarationsIn(sources);
|
|
171
|
-
|
|
181
|
+
const patterns = patternFindingsIn(context, sources, tracked);
|
|
182
|
+
return judge(context, { sources, declarations, patterns }, classifyProviders(providersOf(declarations)));
|
|
172
183
|
};
|
|
173
184
|
//# sourceMappingURL=infra.js.map
|
package/dist/checks/infra.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infra.js","sourceRoot":"","sources":["../../src/checks/infra.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,oGAAoG;AACpG,sGAAsG;AACtG,0FAA0F;AAC1F,EAAE;AACF,qGAAqG;AACrG,qGAAqG;AACrG,sGAAsG;AACtG,qGAAqG;AACrG,qEAAqE;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EAGvB,sBAAsB,EACtB,WAAW,EACX,eAAe,EAEf,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAmB,MAAM,EAAkB,GAAG,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACzG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,aAAa,GAAW,gBAAgB,CAAC,OAAO,CAAA;AACtD,MAAM,UAAU,GAAW,yBAAyB,CAAA;AAEpD,6FAA6F;AAC7F,MAAM,gBAAgB,GAAW,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"infra.js","sourceRoot":"","sources":["../../src/checks/infra.ts"],"names":[],"mappings":"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"}
|
package/dist/checks/tests.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { type Context, type Member } from '../context.js';
|
|
1
|
+
import { type Context, type GateRun, type Member } from '../context.js';
|
|
2
2
|
import { type GateResult } from '../exec.js';
|
|
3
3
|
export declare const tests: (context: Member) => GateResult;
|
|
4
4
|
/** Refuse occupied browser endpoints before building or starting a test wrapper. */
|
|
5
5
|
export declare const browserReadiness: (context: Context) => Promise<GateResult | undefined>;
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Run the Playwright end-to-end suite. At `delta` the browser sweep covers the routes and stories the
|
|
8
|
+
* change reaches, in Chromium; at `full` it covers everything, in every engine.
|
|
9
|
+
*/
|
|
10
|
+
export declare const endToEnd: (context: Member, gateRun: GateRun) => Promise<GateResult>;
|
|
8
11
|
/** Produce the production build, which the bundle gate then measures. */
|
|
9
12
|
export declare const build: (context: Context) => GateResult;
|
|
10
13
|
//# sourceMappingURL=tests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/checks/tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/checks/tests.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,MAAM,EAGZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAmB,KAAK,UAAU,EAA+B,MAAM,YAAY,CAAA;AA+B1F,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,KAAG,UA0BpC,CAAA;AAEJ,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CASvF,CAAA;AA4CD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAU,SAAS,MAAM,EAAE,SAAS,OAAO,KAAG,OAAO,CAAC,UAAU,CA6BpF,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,KAAG,UA2BxC,CAAA"}
|