@codyswann/lisa 4.83.0 → 4.83.2
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/lisa-test-run-jest-merge.d.ts.map +1 -1
- package/dist/cli/lisa-test-run-jest-merge.js +52 -2
- package/dist/cli/lisa-test-run-jest-merge.js.map +1 -1
- package/dist/configs/eslint/slow-expo.d.ts +17 -0
- package/dist/configs/eslint/slow-expo.d.ts.map +1 -0
- package/dist/configs/eslint/slow-expo.js +54 -0
- package/dist/configs/eslint/slow-expo.js.map +1 -0
- package/dist/configs/eslint/slow.d.ts.map +1 -1
- package/dist/configs/eslint/slow.js +3 -0
- package/dist/configs/eslint/slow.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +9 -2
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/expo/copy-overwrite/eslint.slow.config.ts +2 -2
- package/expo/package-lisa/package.lisa.json +1 -0
- package/package.json +7 -5
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-test-run-jest-merge.d.ts","sourceRoot":"","sources":["../../src/cli/lisa-test-run-jest-merge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lisa-test-run-jest-merge.d.ts","sourceRoot":"","sources":["../../src/cli/lisa-test-run-jest-merge.ts"],"names":[],"mappings":"AA0BA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AA4LlC;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EACpC,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,GAAG,GAAE,MAAsB,GAC1B,MAAM,CAyDR"}
|
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
* same environment — so `LISA_COVERAGE_SCOPE=unit` still selects the unit
|
|
14
14
|
* floor — and the merge writes the reporters the project configured, into the
|
|
15
15
|
* directory it configured, which is where the SonarCloud hand-off looks.
|
|
16
|
+
* Jest configures no summarizer, so the merge uses the one Jest's reporter
|
|
17
|
+
* gets, with the watermarks and column limit Jest hands it, and each
|
|
18
|
+
* reporter's own options pass through on top.
|
|
16
19
|
* @module cli/lisa-test-run-jest-merge
|
|
17
20
|
*/
|
|
18
21
|
import { spawnSync } from "node:child_process";
|
|
@@ -21,6 +24,10 @@ import { createRequire } from "node:module";
|
|
|
21
24
|
import * as path from "node:path";
|
|
22
25
|
import { env } from "node:process";
|
|
23
26
|
import { checkJestThresholds, runnerEntry, } from "./lisa-test-run-shard.js";
|
|
27
|
+
/** The summarizer Jest's coverage reporter leaves istanbul on. */
|
|
28
|
+
const JEST_SUMMARIZER = "pkg";
|
|
29
|
+
/** The metrics whose watermark a `coverageThreshold.global` floor raises. */
|
|
30
|
+
const WATERMARK_METRICS = ["branches", "functions", "lines", "statements"];
|
|
24
31
|
/** Largest `--showConfig` document accepted, in bytes. */
|
|
25
32
|
const SHOW_CONFIG_LIMIT = 64 * 1024 * 1024;
|
|
26
33
|
/**
|
|
@@ -105,6 +112,39 @@ function manifestFrom(from, dependency) {
|
|
|
105
112
|
return undefined;
|
|
106
113
|
}
|
|
107
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* The watermarks Jest's coverage reporter uses: istanbul's defaults, with each
|
|
117
|
+
* upper bound raised to the project's global floor for that metric, so a
|
|
118
|
+
* report colours a file "high" exactly when it meets the floor.
|
|
119
|
+
* @param defaults - istanbul's default watermarks, a fresh copy
|
|
120
|
+
* @param thresholds - The project's resolved `coverageThreshold`
|
|
121
|
+
* @returns Watermarks per metric
|
|
122
|
+
*/
|
|
123
|
+
function jestWatermarks(defaults, thresholds) {
|
|
124
|
+
const floors = thresholds?.global ?? {};
|
|
125
|
+
return Object.fromEntries(Object.entries(defaults).map(([metric, [low, high]]) => {
|
|
126
|
+
const floor = WATERMARK_METRICS.includes(metric)
|
|
127
|
+
? floors[metric]
|
|
128
|
+
: undefined;
|
|
129
|
+
return [metric, [low, floor ?? high]];
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The column limit Jest 30.5's coverage reporter hands every reporter
|
|
134
|
+
* (`getMaxCols` in `@jest/reporters`): the terminal's width, else a numeric
|
|
135
|
+
* `COLUMNS`, else 80 on CI outside a Jest worker, else none. Jest 30.2 and
|
|
136
|
+
* earlier skipped the two middle steps; this follows the version Lisa pins.
|
|
137
|
+
* @returns The column limit
|
|
138
|
+
*/
|
|
139
|
+
function jestMaxCols() {
|
|
140
|
+
if (process.stdout.columns)
|
|
141
|
+
return process.stdout.columns;
|
|
142
|
+
const columns = Number.parseInt(env.COLUMNS ?? "", 10);
|
|
143
|
+
if (columns)
|
|
144
|
+
return columns;
|
|
145
|
+
const ci = env.CI === "true" || env.GITHUB_ACTIONS === "true";
|
|
146
|
+
return ci && !env.JEST_WORKER_ID ? 80 : Number.POSITIVE_INFINITY;
|
|
147
|
+
}
|
|
108
148
|
/**
|
|
109
149
|
* Merge every shard's Jest coverage, write the configured reports, and check
|
|
110
150
|
* the project's `coverageThreshold` once over the merged map.
|
|
@@ -135,14 +175,24 @@ export function mergeJestShards(argv, receipts, cwd = process.cwd()) {
|
|
|
135
175
|
throw new Error(`shard ${receipt.index} left no coverage (${file}).`);
|
|
136
176
|
map.merge(JSON.parse(fs.readFileSync(file, "utf8")));
|
|
137
177
|
}
|
|
178
|
+
// `pkg` is istanbul's default and the one Jest's own reporter gets, since
|
|
179
|
+
// Jest names none. `nested` breaks clover on a tree with three directories
|
|
180
|
+
// that hold only directories (#4488). A summarizer a reporter's options name
|
|
181
|
+
// still wins, for the reporters that read one, exactly as under Jest.
|
|
138
182
|
const context = istanbul.report.createContext({
|
|
139
183
|
dir: config.coverageDirectory,
|
|
140
184
|
coverageMap: map,
|
|
141
|
-
defaultSummarizer:
|
|
185
|
+
defaultSummarizer: JEST_SUMMARIZER,
|
|
186
|
+
watermarks: jestWatermarks(istanbul.report.getDefaultWatermarks(), config.coverageThreshold),
|
|
142
187
|
});
|
|
143
188
|
for (const reporter of config.coverageReporters) {
|
|
144
189
|
const [name, options] = typeof reporter === "string" ? [reporter, {}] : reporter;
|
|
145
|
-
|
|
190
|
+
// Jest's own default, ahead of the reporter's options: without it the
|
|
191
|
+
// text table falls back to istanbul's 80 columns and cuts long paths
|
|
192
|
+
// wherever Jest would not.
|
|
193
|
+
istanbul.reports
|
|
194
|
+
.create(name, { maxCols: jestMaxCols(), ...options })
|
|
195
|
+
.execute(context);
|
|
146
196
|
}
|
|
147
197
|
const failures = checkJestThresholds(config.coverageThreshold, map.getCoverageSummary().toJSON());
|
|
148
198
|
for (const failure of failures)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-test-run-jest-merge.js","sourceRoot":"","sources":["../../src/cli/lisa-test-run-jest-merge.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lisa-test-run-jest-merge.js","sourceRoot":"","sources":["../../src/cli/lisa-test-run-jest-merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates the slow ESLint configuration for Expo projects: the shared slow
|
|
3
|
+
* rules plus the two React rules the main Expo config turns off for speed.
|
|
4
|
+
*
|
|
5
|
+
* `react-compiler/react-compiler` and `react-hooks/static-components` moved
|
|
6
|
+
* here from the main Expo lint when lint:slow was introduced (0b58fe96a4).
|
|
7
|
+
* A later rewrite of this module kept only the import rules, so neither ran
|
|
8
|
+
* anywhere until they were restored (CodySwannGT/lisa#4507). The plugins are
|
|
9
|
+
* resolved from Lisa's own dependencies, so a project needs no extra install.
|
|
10
|
+
* @param options - Configuration options for the slow rules config
|
|
11
|
+
* @param options.ignorePatterns - Patterns to ignore in addition to built-in ignores
|
|
12
|
+
* @returns ESLint flat config array containing only slow rules
|
|
13
|
+
*/
|
|
14
|
+
export declare function getExpoSlowConfig({ ignorePatterns, }?: {
|
|
15
|
+
ignorePatterns?: readonly string[];
|
|
16
|
+
}): import("eslint").Linter.Config[];
|
|
17
|
+
//# sourceMappingURL=slow-expo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slow-expo.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/slow-expo.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,cAAmB,GACpB,GAAE;IACD,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,GAAG,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAmBxC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ESLint 9 Flat Config - Slow Rules Only (Expo)
|
|
3
|
+
*
|
|
4
|
+
* The shared slow rules plus the two React rules the main Expo config turns
|
|
5
|
+
* off for speed:
|
|
6
|
+
* - react-compiler/react-compiler - React Compiler compatibility checks (slow)
|
|
7
|
+
* - react-hooks/static-components - Static component optimization checks (slow)
|
|
8
|
+
*
|
|
9
|
+
* A module of its own, so only Expo's lint:slow loads the React plugins.
|
|
10
|
+
* When this lived in ./slow.ts, every stack loaded them, and in an isolated
|
|
11
|
+
* install react-hooks 7 could be given zod-validation-error 3, which lacks
|
|
12
|
+
* the `/v4` entry it imports: every stack's lint:slow crashed on load
|
|
13
|
+
* (CodySwannGT/lisa#4507). The Expo package template forces
|
|
14
|
+
* zod-validation-error 4 for the one stack that does load them.
|
|
15
|
+
* @see https://react.dev/learn/react-compiler
|
|
16
|
+
* @module configs/eslint/slow-expo
|
|
17
|
+
*/
|
|
18
|
+
import reactCompilerPlugin from "eslint-plugin-react-compiler";
|
|
19
|
+
import reactHooksPlugin from "eslint-plugin-react-hooks";
|
|
20
|
+
import { getSlowConfig } from "./slow.js";
|
|
21
|
+
/**
|
|
22
|
+
* Creates the slow ESLint configuration for Expo projects: the shared slow
|
|
23
|
+
* rules plus the two React rules the main Expo config turns off for speed.
|
|
24
|
+
*
|
|
25
|
+
* `react-compiler/react-compiler` and `react-hooks/static-components` moved
|
|
26
|
+
* here from the main Expo lint when lint:slow was introduced (0b58fe96a4).
|
|
27
|
+
* A later rewrite of this module kept only the import rules, so neither ran
|
|
28
|
+
* anywhere until they were restored (CodySwannGT/lisa#4507). The plugins are
|
|
29
|
+
* resolved from Lisa's own dependencies, so a project needs no extra install.
|
|
30
|
+
* @param options - Configuration options for the slow rules config
|
|
31
|
+
* @param options.ignorePatterns - Patterns to ignore in addition to built-in ignores
|
|
32
|
+
* @returns ESLint flat config array containing only slow rules
|
|
33
|
+
*/
|
|
34
|
+
export function getExpoSlowConfig({ ignorePatterns = [], } = {}) {
|
|
35
|
+
return [
|
|
36
|
+
...getSlowConfig({ ignorePatterns }),
|
|
37
|
+
{
|
|
38
|
+
files: ["**/*.tsx", "**/*.ts"],
|
|
39
|
+
plugins: {
|
|
40
|
+
"react-compiler": reactCompilerPlugin,
|
|
41
|
+
// Rules only: the package's `configs` shape does not fit ESLint's
|
|
42
|
+
// Plugin type, and this config needs none of its presets.
|
|
43
|
+
"react-hooks": { rules: reactHooksPlugin.rules },
|
|
44
|
+
},
|
|
45
|
+
rules: {
|
|
46
|
+
// React Compiler compatibility (slow)
|
|
47
|
+
"react-compiler/react-compiler": "error",
|
|
48
|
+
// Static component optimization (slow)
|
|
49
|
+
"react-hooks/static-components": "error",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=slow-expo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slow-expo.js","sourceRoot":"","sources":["../../../src/configs/eslint/slow-expo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,cAAc,GAAG,EAAE,MAGjB,EAAE;IACJ,OAAO;QACL,GAAG,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACpC;YACE,KAAK,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;YAC9B,OAAO,EAAE;gBACP,gBAAgB,EAAE,mBAAmB;gBACrC,kEAAkE;gBAClE,0DAA0D;gBAC1D,aAAa,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE;aACjD;YACD,KAAK,EAAE;gBACL,sCAAsC;gBACtC,+BAA+B,EAAE,OAAO;gBACxC,uCAAuC;gBACvC,+BAA+B,EAAE,OAAO;aACzC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slow.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/slow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slow.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/slow.ts"],"names":[],"mappings":"AAuBA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,cAAmB,GACpB,GAAE;IACD,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,GAAG,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CA+DxC;AAED,QAAA,MAAM,aAAa,EAAE,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAoB,CAAC;AACxE,eAAe,aAAa,CAAC"}
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
* Rules included:
|
|
9
9
|
* - import/namespace - Type checks all namespace imports (slow)
|
|
10
10
|
* - import/no-cycle - Detects circular dependencies (very slow)
|
|
11
|
+
*
|
|
12
|
+
* Expo's React rules live in ./slow-expo.ts, so this module loads no React
|
|
13
|
+
* plugin for the stacks that never need one (CodySwannGT/lisa#4507).
|
|
11
14
|
* @see https://github.com/import-js/eslint-plugin-import
|
|
12
15
|
* @module configs/eslint/slow
|
|
13
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slow.js","sourceRoot":"","sources":["../../../src/configs/eslint/slow.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"slow.js","sourceRoot":"","sources":["../../../src/configs/eslint/slow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,wDAAwD;AACxD,MAAM,sBAAsB,GAAG,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,cAAc,GAAG,EAAE,MAGjB,EAAE;IACJ,OAAO;QACL,gEAAgE;QAChE,iEAAiE;QACjE,yDAAyD;QACzD,mFAAmF;QACnF;YACE,OAAO,EAAE;gBACP,GAAG,cAAc;gBACjB,SAAS;gBACT,UAAU;gBACV,UAAU;gBACV,UAAU;gBACV,iBAAiB;gBACjB,QAAQ;gBACR,SAAS;gBACT,WAAW;gBACX,eAAe;gBACf,gBAAgB;aACjB;SACF;QAED,4CAA4C;QAC5C;YACE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;YAC9B,aAAa,EAAE;gBACb,mEAAmE;gBACnE,iEAAiE;gBACjE,cAAc,EAAE,IAAI;aACrB;YACD,eAAe,EAAE;gBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,aAAa,EAAE;oBACb,OAAO,EAAE,sBAAsB;iBAChC;aACF;YACD,OAAO,EAAE;gBACP,GAAG,sBAAsB,EAAE,OAAO;gBAClC,OAAO,EAAE,aAAa;aACvB;YACD,QAAQ,EAAE;gBACR,GAAG,sBAAsB,EAAE,QAAQ;gBACnC,iBAAiB,EAAE;oBACjB,GAAI,sBAAsB,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAGtD;oBACF,UAAU,EAAE,IAAI;iBACjB;gBACD,oEAAoE;gBACpE,0EAA0E;gBAC1E,eAAe,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;aAClE;YACD,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,kBAAkB,EAAE,OAAO;gBAC3B,iBAAiB,EAAE,OAAO;gBAC1B,oEAAoE;gBACpE,2DAA2D;gBAC3D,qBAAqB,EAAE,KAAK;aAC7B;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAqC,aAAa,EAAE,CAAC;AACxE,eAAe,aAAa,CAAC"}
|
|
@@ -41,9 +41,9 @@ export const NIGHTLY_E2E_GUARD_BEHAVIOR_CERTIFICATES = Object.freeze({
|
|
|
41
41
|
}),
|
|
42
42
|
d1b26caeaf65950e3b60ff41964d234c032c50470072e7643310b1f6722e34e6: Object.freeze({
|
|
43
43
|
contractVersion: "1.9.0",
|
|
44
|
-
packageVersions: Object.freeze(["4.83.
|
|
44
|
+
packageVersions: Object.freeze(["4.83.2"]),
|
|
45
45
|
provenances: Object.freeze([
|
|
46
|
-
"workspace package @codyswann/lisa@4.83.
|
|
46
|
+
"workspace package @codyswann/lisa@4.83.2 (typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs)",
|
|
47
47
|
]),
|
|
48
48
|
}),
|
|
49
49
|
dfd2fef680de5ef03e63075e8a61c62ca4d95cdfdff6201939b79c748d3397f6: Object.freeze({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAo4FpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAo4FpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA8gUjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -221,7 +221,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
221
221
|
"expo/copy-overwrite/.easignore.extra": "1d30dac09405c41e23f6212553abacea478d7759b69c18edac0c0053f00e0d37",
|
|
222
222
|
"expo/copy-overwrite/eslint.config.ts": "bb02718e1a809151c282d5fc54a1b570fe1cc86236dc1e5f2bcb570b06a22baa",
|
|
223
223
|
"expo/copy-overwrite/eslint.expo.ts": "e43d528568450ba2acfc943c5dea07a34f0a03550ec739ba531f6d5a4bf234d7",
|
|
224
|
-
"expo/copy-overwrite/eslint.slow.config.ts": "
|
|
224
|
+
"expo/copy-overwrite/eslint.slow.config.ts": "3189a36471d596f5d4c3ed43484a9b7a5d33ef27b4d0fdb93007b823cec6cad0",
|
|
225
225
|
"expo/copy-overwrite/jest.config.ts": "b58454a9cf55cf5c1449457fe8eae8390471c57787bdee05b5e34710aa89950a",
|
|
226
226
|
"expo/copy-overwrite/jest.expo.ts": "e6d7dffc4c83fccc02e0b2d2a52e10de30c8c00a12de44184e960bd6155edcd6",
|
|
227
227
|
"expo/copy-overwrite/jest.setup.pre.js": "04129982ab5caf2bafe79c524d3fa906ed5a524a9d0821c83757d358ae461fa1",
|
|
@@ -287,7 +287,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
287
287
|
"expo/github-rulesets/nightly-e2e-health.json": "af9556f52bbb04d303f557eb178d876d82348d15a991729b8a96fb1f06d5b03a",
|
|
288
288
|
"expo/merge/.claude/settings.json": "88dead1b9146e016fb2b2e63b7234d6adf94a3b3e5e30b98214e5660a219f737",
|
|
289
289
|
"expo/merge/.oxlintrc.json": "95b3069256c0040be0ef1a5adae46d14687ad56fb18f473a653ba2de45d106bb",
|
|
290
|
-
"expo/package-lisa/package.lisa.json": "
|
|
290
|
+
"expo/package-lisa/package.lisa.json": "e5bb649e5d3716885cc01c7142288494bb1f0d1881200228eef6ed62c9f34b7a",
|
|
291
291
|
"harper-fabric/copy-contents/.prettierignore": "478c782f4c5611187e21584dfd5522e37fc636c5eb03394fea3db45321c6712c",
|
|
292
292
|
"harper-fabric/copy-contents/gitignore": "d091c40fd0ea3068491f1be0d6510090ae872ca95d0d058ef4595d6492d13897",
|
|
293
293
|
"harper-fabric/copy-overwrite/.github/workflows/ci.yml": "fae46d9aa5c2ad33c8fd0665b345456da878d04bac842b237c6ab7f53206002d",
|
|
@@ -8977,6 +8977,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8977
8977
|
"src/configs/eslint/index.ts": true,
|
|
8978
8978
|
"src/configs/eslint/nestjs.ts": true,
|
|
8979
8979
|
"src/configs/eslint/phaser.ts": true,
|
|
8980
|
+
"src/configs/eslint/slow-expo.ts": true,
|
|
8980
8981
|
"src/configs/eslint/slow.ts": true,
|
|
8981
8982
|
"src/configs/eslint/typescript.ts": true,
|
|
8982
8983
|
"src/configs/eslint/view-gate.ts": true,
|
|
@@ -9606,6 +9607,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
9606
9607
|
"tests/integration/jest-expo-haste-pruning.test.ts": true,
|
|
9607
9608
|
"tests/integration/jira-shell-auth-destinations.test.ts": true,
|
|
9608
9609
|
"tests/integration/job-names-name-properties.test.ts": true,
|
|
9610
|
+
"tests/integration/lisa-test-run-jest-shards-fixture.ts": true,
|
|
9611
|
+
"tests/integration/lisa-test-run-jest-shards-reports.test.ts": true,
|
|
9609
9612
|
"tests/integration/lisa-test-run-jest-shards.test.ts": true,
|
|
9610
9613
|
"tests/integration/lisa-test-run-packed-bin.test.ts": true,
|
|
9611
9614
|
"tests/integration/lisa-test-run-shard-cli.test.ts": true,
|
|
@@ -10047,6 +10050,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
10047
10050
|
"tests/unit/config/eslint-typescript-worktree-scope.test.ts": true,
|
|
10048
10051
|
"tests/unit/config/expo-design-value-arming.test.ts": true,
|
|
10049
10052
|
"tests/unit/config/expo-eslint-local-config.test.ts": true,
|
|
10053
|
+
"tests/unit/config/expo-slow-react-rules.test.ts": true,
|
|
10050
10054
|
"tests/unit/config/expo-view-purity-gate.test.ts": true,
|
|
10051
10055
|
"tests/unit/config/fast-uri-audit-suppression.test.ts": true,
|
|
10052
10056
|
"tests/unit/config/fast-xml-parser-security-floor.test.ts": true,
|
|
@@ -10106,11 +10110,13 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
10106
10110
|
"tests/unit/config/scratch-tmpdir-trust.test.ts": true,
|
|
10107
10111
|
"tests/unit/config/security-pin-floors.test.ts": true,
|
|
10108
10112
|
"tests/unit/config/shipped-mjs-roster.test.ts": true,
|
|
10113
|
+
"tests/unit/config/slow-config-module-isolation.test.ts": true,
|
|
10109
10114
|
"tests/unit/config/socket-safe-temp-base.test.ts": true,
|
|
10110
10115
|
"tests/unit/config/sonar-coverage-handoff.test.ts": true,
|
|
10111
10116
|
"tests/unit/config/stale-deploy-guard.test.ts": true,
|
|
10112
10117
|
"tests/unit/config/synthesis-scratch-reclaim.test.ts": true,
|
|
10113
10118
|
"tests/unit/config/template-script-toolchain.test.ts": true,
|
|
10119
|
+
"tests/unit/config/template-security-floors.test.ts": true,
|
|
10114
10120
|
"tests/unit/config/test-run-child-process-analyzer.test.ts": true,
|
|
10115
10121
|
"tests/unit/config/test-run-supervision-wiring.test.ts": true,
|
|
10116
10122
|
"tests/unit/config/test-scratch-guard.test.ts": true,
|
|
@@ -10137,6 +10143,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
10137
10143
|
"tests/unit/config/work-item-traceability-scope-gate.test.ts": true,
|
|
10138
10144
|
"tests/unit/config/workspace-suite-collection.test.ts": true,
|
|
10139
10145
|
"tests/unit/config/worktree-exclusion-anchoring.test.ts": true,
|
|
10146
|
+
"tests/unit/config/zod-security-floor.test.ts": true,
|
|
10140
10147
|
"tests/unit/configs/ast-grep-language-reach.test.ts": true,
|
|
10141
10148
|
"tests/unit/configs/expo-jest-pre-setup.test.ts": true,
|
|
10142
10149
|
"tests/unit/configs/lighthouse-collect-config.test.ts": true,
|