@codyswann/lisa 4.10.8 → 4.10.10
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/all/copy-overwrite/scripts/lisa-environment-prepare.mjs +31 -12
- package/all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh +2 -2
- package/all/copy-overwrite/scripts/lisa-run-gates.mjs +73 -19
- package/dist/codex/scripts/block-no-verify.sh +1 -1
- package/dist/configs/coverage-scope.d.ts +39 -0
- package/dist/configs/coverage-scope.d.ts.map +1 -0
- package/dist/configs/coverage-scope.js +41 -0
- package/dist/configs/coverage-scope.js.map +1 -0
- package/dist/configs/jest/base.d.ts +4 -0
- package/dist/configs/jest/base.d.ts.map +1 -1
- package/dist/configs/jest/base.js +24 -6
- package/dist/configs/jest/base.js.map +1 -1
- package/dist/configs/vitest/base.d.ts +23 -0
- package/dist/configs/vitest/base.d.ts.map +1 -1
- package/dist/configs/vitest/base.js +25 -6
- package/dist/configs/vitest/base.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +6 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +16 -11
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/block-no-verify.sh +2 -2
- package/expo/package-lisa/package.lisa.json +1 -1
- package/nestjs/package-lisa/package.lisa.json +1 -1
- package/package.json +2 -2
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/block-no-verify.agy.sh +1 -1
- package/plugins/lisa/hooks/block-no-verify.sh +2 -2
- package/plugins/lisa-agy/hooks/block-no-verify.agy.sh +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-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/hooks/block-no-verify.sh +2 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/block-no-verify.sh +2 -2
- 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-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-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-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-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-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-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-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/src/base/hooks/block-no-verify.agy.sh +1 -1
- package/plugins/src/base/hooks/block-no-verify.sh +2 -2
- package/typescript/copy-contents/.husky/pre-push +8 -1
- package/typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs +19 -14
- package/typescript/copy-overwrite/scripts/lisa-mutation.mjs +19 -1
- package/typescript/package-lisa/package.lisa.json +1 -1
|
@@ -53,7 +53,7 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
53
53
|
import { join } from "node:path";
|
|
54
54
|
|
|
55
55
|
import { classifyEnvironment } from "./lisa-destructive-guard.mjs";
|
|
56
|
-
import { boundedSpawnSync } from "./lib/bounded-spawn.mjs";
|
|
56
|
+
import { boundedSpawnSync, isChildTimeout } from "./lib/bounded-spawn.mjs";
|
|
57
57
|
import { invokedAsScript } from "./lib/invoked-as-script.mjs";
|
|
58
58
|
import { readGates } from "./lisa-gates.mjs";
|
|
59
59
|
|
|
@@ -186,22 +186,41 @@ const ENVIRONMENT_VERB_BUDGET_MS = 20 * 60 * 1000;
|
|
|
186
186
|
* this module's own timeout the ordinary outcome. It is a hang detector, not a
|
|
187
187
|
* budget: a reset still running after this long is not going to finish.
|
|
188
188
|
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
189
|
+
* The killed-child verdict downstream is right — the caller reports "was killed
|
|
190
|
+
* before it finished. Nothing after it ran", which is correct because a reseed
|
|
191
|
+
* layered onto a failed reset produces fixture data on top of whatever the last
|
|
192
|
+
* run left behind. Reaching it is what this has to get right.
|
|
193
|
+
*
|
|
194
|
+
* `boundedSpawnSync` reports a kill by THROWING, deliberately, so that a call
|
|
195
|
+
* site which does nothing inherits fail-closed behaviour. This one did
|
|
196
|
+
* something: it read `child.error` on the RETURNED result, which is the shape
|
|
197
|
+
* plain `spawnSync` produces and the shape the helper exists to remove. That
|
|
198
|
+
* branch was therefore unreachable for a kill, and the throw went past
|
|
199
|
+
* `prepareEnvironment` entirely — so the deadline produced a stack trace rather
|
|
200
|
+
* than the refusal the caller already knew how to print.
|
|
201
|
+
*
|
|
202
|
+
* The `catch` is narrow on purpose. Only a killed child converts to a verdict;
|
|
203
|
+
* anything else is re-raised, because a fault this module cannot name is not
|
|
204
|
+
* evidence about the environment and must not be reported as one.
|
|
194
205
|
* @param {string[]} argv The argument vector.
|
|
195
206
|
* @returns {number|null} Exit code, or null when the child was killed.
|
|
196
207
|
*/
|
|
197
208
|
function spawnExec(argv) {
|
|
198
209
|
const [file, ...args] = argv;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
210
|
+
try {
|
|
211
|
+
const child = boundedSpawnSync(file, args, {
|
|
212
|
+
stdio: "inherit",
|
|
213
|
+
timeout: ENVIRONMENT_VERB_BUDGET_MS,
|
|
214
|
+
});
|
|
215
|
+
// Not dead code: a non-timeout `spawnSync` failure — `ENOENT` for a runner
|
|
216
|
+
// that is not installed — still arrives on the result rather than as a
|
|
217
|
+
// throw, and it means the verb did not run, which is the same verdict.
|
|
218
|
+
if (child.error) return null;
|
|
219
|
+
return child.status;
|
|
220
|
+
} catch (error) {
|
|
221
|
+
if (isChildTimeout(error)) return null;
|
|
222
|
+
throw error;
|
|
223
|
+
}
|
|
205
224
|
}
|
|
206
225
|
|
|
207
226
|
/**
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
# Add a name here in the same commit that closes a vector. A hardening that
|
|
27
27
|
# forgets to is invisible to refresh, and shows up as an unexplained diff at
|
|
28
28
|
# review time instead of a named capability.
|
|
29
|
-
# lisa-guard-capabilities: no-verify-abbrev, husky-env, hookspath-allowlist, config-env, git-config-key, git-config-parameters, herestring-aware, no-verify-short
|
|
29
|
+
# lisa-guard-capabilities: no-verify-abbrev, husky-env, hookspath-allowlist, config-env, git-config-key, git-config-parameters, git-config-parameters-append, herestring-aware, no-verify-short
|
|
30
30
|
#
|
|
31
31
|
# Shell-token matching avoids false positives from issue bodies, heredocs, and
|
|
32
32
|
# commit-message prose while still catching quoted real argv values such as
|
|
@@ -452,7 +452,7 @@ for i, token in enumerate(normalized_tokens):
|
|
|
452
452
|
# `git -c` propagates command-scope config through GIT_CONFIG_PARAMETERS.
|
|
453
453
|
# Parsing the value as Git's shell-quoted parameter list distinguishes the
|
|
454
454
|
# key from an unrelated value that merely contains the same text.
|
|
455
|
-
if
|
|
455
|
+
if re.match(r"git_config_parameters\+?=", lowered):
|
|
456
456
|
parameters = token.split("=", 1)[1]
|
|
457
457
|
try:
|
|
458
458
|
configured = shlex.split(parameters, posix=True)
|
|
@@ -55,7 +55,7 @@ import { dirname, join, parse, relative } from "node:path";
|
|
|
55
55
|
import { fileURLToPath } from "node:url";
|
|
56
56
|
|
|
57
57
|
import { DIAGNOSIS, diagnoseFailure } from "./lib/gate-failure-diagnosis.mjs";
|
|
58
|
-
import { boundedSpawnSync } from "./lib/bounded-spawn.mjs";
|
|
58
|
+
import { boundedSpawnSync, isChildTimeout } from "./lib/bounded-spawn.mjs";
|
|
59
59
|
import { invokedAsScript } from "./lib/invoked-as-script.mjs";
|
|
60
60
|
import {
|
|
61
61
|
compareCodeUnits,
|
|
@@ -560,9 +560,25 @@ function summarise(result) {
|
|
|
560
560
|
|
|
561
561
|
// Every count is stated, including the ones that are zero, so the headline
|
|
562
562
|
// can never imply more was proved than actually ran.
|
|
563
|
+
//
|
|
564
|
+
// `unprovable` and `killed` are in the line because they are REACHABLE here,
|
|
565
|
+
// which is easy to miss: this branch runs only when the run is not blocked,
|
|
566
|
+
// and `blocked` is set exclusively by a REQUIRED gate going unproved. An
|
|
567
|
+
// OPTIONAL gate the machine killed, or one that ran and proved nothing,
|
|
568
|
+
// leaves the run unblocked and lands in a bucket the headline used to omit —
|
|
569
|
+
// while the lines directly above named that gate individually. The two halves
|
|
570
|
+
// of one report disagreeing is worse than a headline that never promised
|
|
571
|
+
// completeness, because the promise is what makes `total` minus the stated
|
|
572
|
+
// numbers mean anything.
|
|
573
|
+
//
|
|
574
|
+
// These five are exhaustive on this path, so they sum to `total`: a required
|
|
575
|
+
// FAILED/UNPROVABLE/KILLED gate would have blocked and returned above, and
|
|
576
|
+
// `notRun` is populated only once something has blocked.
|
|
563
577
|
const counts =
|
|
564
578
|
`${result.passed.length} proved, ${failedOptional.length} failed ` +
|
|
565
|
-
`(optional), ${result.
|
|
579
|
+
`(optional), ${result.unprovable.length} not proved, ` +
|
|
580
|
+
`${result.killed.length} killed, ` +
|
|
581
|
+
`${result.skipped.length} not applicable here`;
|
|
566
582
|
lines.push(
|
|
567
583
|
`${failedOptional.length ? "⚠️ " : "✅"} ${result.moment}: ${counts}, ` +
|
|
568
584
|
`of ${result.total} gate(s) declared.${
|
|
@@ -860,14 +876,35 @@ const CAPTURE_TAIL_BYTES = 512 * 1024;
|
|
|
860
876
|
* long should this take". A gate still running after two hours is not going to
|
|
861
877
|
* finish, and every CI job that would host one caps out well below it.
|
|
862
878
|
*
|
|
863
|
-
*
|
|
864
|
-
*
|
|
865
|
-
*
|
|
866
|
-
*
|
|
867
|
-
*
|
|
879
|
+
* `code: null` routes into the KILLED diagnosis, which prints `NOT PROVED —
|
|
880
|
+
* KILLED` and counts the gate among those this run did not prove (#3032). That
|
|
881
|
+
* verdict was right; REACHING it was the part that was wrong. The executors
|
|
882
|
+
* below read `child.error` on the RETURNED result, which is plain `spawnSync`'s
|
|
883
|
+
* shape — `boundedSpawnSync` reports a kill by throwing instead, so the branch
|
|
884
|
+
* that produced `code: null` never ran for a kill and the throw surfaced as
|
|
885
|
+
* "Gate runner crashed". A crashed runner and a killed gate ask an operator for
|
|
886
|
+
* opposite things, so the one outcome this file exists to name was the one it
|
|
887
|
+
* stopped naming.
|
|
868
888
|
*/
|
|
869
889
|
const GATE_COMMAND_BUDGET_MS = 2 * 60 * 60 * 1000;
|
|
870
890
|
|
|
891
|
+
/**
|
|
892
|
+
* Convert a killed child into this file's no-verdict answer, or re-raise.
|
|
893
|
+
*
|
|
894
|
+
* One helper rather than the same three lines at each executor, because the
|
|
895
|
+
* two halves have to stay welded together: returning the no-verdict answer for
|
|
896
|
+
* a killed child is what makes the KILLED diagnosis reachable, and re-raising
|
|
897
|
+
* everything else is what stops an unrecognised fault being reported as a
|
|
898
|
+
* measurement. Split them across call sites and one of the two eventually drifts.
|
|
899
|
+
* @param {unknown} error A value caught around a bounded child start.
|
|
900
|
+
* @returns {{code: null, output: null}} The no-verdict answer, for a kill.
|
|
901
|
+
* @throws {unknown} The original value, when it is not a killed child.
|
|
902
|
+
*/
|
|
903
|
+
function killedOrRethrow(error) {
|
|
904
|
+
if (isChildTimeout(error)) return { code: null, output: null };
|
|
905
|
+
throw error;
|
|
906
|
+
}
|
|
907
|
+
|
|
871
908
|
/**
|
|
872
909
|
* Run the command in a shell with stdio inherited, capturing nothing.
|
|
873
910
|
*
|
|
@@ -878,13 +915,19 @@ const GATE_COMMAND_BUDGET_MS = 2 * 60 * 60 * 1000;
|
|
|
878
915
|
* @returns {{code: number|null, output: null}} Exit code; null when killed.
|
|
879
916
|
*/
|
|
880
917
|
function plainExec(command) {
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
918
|
+
try {
|
|
919
|
+
const child = boundedSpawnSync(command, [], {
|
|
920
|
+
shell: true,
|
|
921
|
+
stdio: "inherit",
|
|
922
|
+
timeout: GATE_COMMAND_BUDGET_MS,
|
|
923
|
+
});
|
|
924
|
+
// Still reachable: a non-timeout `spawnSync` failure arrives on the result,
|
|
925
|
+
// and it means nothing ran, which is the same "no verdict" answer.
|
|
926
|
+
if (child.error) return { code: null, output: null };
|
|
927
|
+
return { code: child.status, output: null };
|
|
928
|
+
} catch (error) {
|
|
929
|
+
return killedOrRethrow(error);
|
|
930
|
+
}
|
|
888
931
|
}
|
|
889
932
|
|
|
890
933
|
/**
|
|
@@ -901,10 +944,19 @@ function captureAvailable() {
|
|
|
901
944
|
// The one child in this file that is NOT a project gate command, so it takes
|
|
902
945
|
// the shared default rather than the two-hour ceiling: `command -v tee`
|
|
903
946
|
// answers immediately or the shell is broken.
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
947
|
+
try {
|
|
948
|
+
const probe = boundedSpawnSync("sh", ["-c", "command -v tee"], {
|
|
949
|
+
stdio: "ignore",
|
|
950
|
+
});
|
|
951
|
+
return !probe.error && probe.status === 0;
|
|
952
|
+
} catch (error) {
|
|
953
|
+
// A probe killed at its deadline has not confirmed anything, and this
|
|
954
|
+
// function's whole contract is that an unconfirmed capability goes unused.
|
|
955
|
+
// Letting the throw escape would convert "cannot tell" into a crash, and
|
|
956
|
+
// the fallback path it guards answers the question perfectly well.
|
|
957
|
+
if (isChildTimeout(error)) return false;
|
|
958
|
+
throw error;
|
|
959
|
+
}
|
|
908
960
|
}
|
|
909
961
|
|
|
910
962
|
/**
|
|
@@ -951,7 +1003,7 @@ function readCaptured(statusPath, logPath) {
|
|
|
951
1003
|
* @param {string} command The command line to run.
|
|
952
1004
|
* @returns {{code: number|null, output: string|null}} Exit code and output.
|
|
953
1005
|
*/
|
|
954
|
-
function spawnExec(command) {
|
|
1006
|
+
export function spawnExec(command) {
|
|
955
1007
|
if (!captureAvailable()) return plainExec(command);
|
|
956
1008
|
let dir;
|
|
957
1009
|
try {
|
|
@@ -971,6 +1023,8 @@ function spawnExec(command) {
|
|
|
971
1023
|
});
|
|
972
1024
|
if (child.error) return { code: null, output: null };
|
|
973
1025
|
return readCaptured(statusPath, logPath);
|
|
1026
|
+
} catch (error) {
|
|
1027
|
+
return killedOrRethrow(error);
|
|
974
1028
|
} finally {
|
|
975
1029
|
rmSync(dir, { force: true, recursive: true });
|
|
976
1030
|
}
|
|
@@ -332,7 +332,7 @@ for i, token in enumerate(normalized_tokens):
|
|
|
332
332
|
key_match = re.match(r"git_config_key_\d+=(.*)$", lowered, re.DOTALL)
|
|
333
333
|
if key_match and key_match.group(1).strip().strip("'\"") == "core.hookspath":
|
|
334
334
|
sys.exit(1)
|
|
335
|
-
if
|
|
335
|
+
if re.match(r"git_config_parameters\+?=", lowered):
|
|
336
336
|
parameters = token.split("=", 1)[1]
|
|
337
337
|
try:
|
|
338
338
|
configured = shlex.split(parameters, posix=True)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which population of tests a coverage run is measuring.
|
|
3
|
+
*
|
|
4
|
+
* `test:cov` and `test:cov:unit` run the same instrumentation over the same
|
|
5
|
+
* source, and differ only in which tests are DISCOVERED — the unit script
|
|
6
|
+
* excludes the integration tree. Nothing excludes the source that those
|
|
7
|
+
* integration tests were the only cover for, so the denominator is unchanged
|
|
8
|
+
* while the numerator shrinks, and the two runs report different percentages
|
|
9
|
+
* about identical code.
|
|
10
|
+
*
|
|
11
|
+
* Both were then checked against one `global` threshold block. The defect that
|
|
12
|
+
* causes is not a wrong number, it is a missing lever: a project whose unit run
|
|
13
|
+
* legitimately cannot reach the full-suite floor could only lower the one block,
|
|
14
|
+
* which lowered the floor its CI `test:cov` run answers to as well. Making a
|
|
15
|
+
* push stop failing on unchanged code meant weakening the gate everywhere.
|
|
16
|
+
*
|
|
17
|
+
* This is the marker that lets the threshold factories tell the two runs apart.
|
|
18
|
+
* It is set by the pinned `test:cov:unit` script, and it is what the push hook
|
|
19
|
+
* looks for before selecting that script — a unit run with no marker has no
|
|
20
|
+
* floor of its own, so the honest command for that project is still `test:cov`,
|
|
21
|
+
* whose floor was written for what it actually runs.
|
|
22
|
+
* @module configs/coverage-scope
|
|
23
|
+
*/
|
|
24
|
+
/** The variable the unit-scoped coverage script sets. */
|
|
25
|
+
export declare const COVERAGE_SCOPE_ENV = "LISA_COVERAGE_SCOPE";
|
|
26
|
+
/** The one scope value that changes which threshold block is enforced. */
|
|
27
|
+
export declare const UNIT_COVERAGE_SCOPE = "unit";
|
|
28
|
+
/**
|
|
29
|
+
* Whether this process is a unit-scoped coverage run.
|
|
30
|
+
*
|
|
31
|
+
* Exact match on the one recognised value, never a truthiness test. An
|
|
32
|
+
* unrecognised scope must inherit the full-suite floor rather than pick up a
|
|
33
|
+
* narrower one — the failure direction that matters here is a run measured
|
|
34
|
+
* against a floor lower than the one written for it, and a truthiness test
|
|
35
|
+
* hands that to every typo.
|
|
36
|
+
* @returns True when the unit scope is in force.
|
|
37
|
+
*/
|
|
38
|
+
export declare const isUnitCoverageScope: () => boolean;
|
|
39
|
+
//# sourceMappingURL=coverage-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-scope.d.ts","sourceRoot":"","sources":["../../src/configs/coverage-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,QAAO,OAE0B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which population of tests a coverage run is measuring.
|
|
3
|
+
*
|
|
4
|
+
* `test:cov` and `test:cov:unit` run the same instrumentation over the same
|
|
5
|
+
* source, and differ only in which tests are DISCOVERED — the unit script
|
|
6
|
+
* excludes the integration tree. Nothing excludes the source that those
|
|
7
|
+
* integration tests were the only cover for, so the denominator is unchanged
|
|
8
|
+
* while the numerator shrinks, and the two runs report different percentages
|
|
9
|
+
* about identical code.
|
|
10
|
+
*
|
|
11
|
+
* Both were then checked against one `global` threshold block. The defect that
|
|
12
|
+
* causes is not a wrong number, it is a missing lever: a project whose unit run
|
|
13
|
+
* legitimately cannot reach the full-suite floor could only lower the one block,
|
|
14
|
+
* which lowered the floor its CI `test:cov` run answers to as well. Making a
|
|
15
|
+
* push stop failing on unchanged code meant weakening the gate everywhere.
|
|
16
|
+
*
|
|
17
|
+
* This is the marker that lets the threshold factories tell the two runs apart.
|
|
18
|
+
* It is set by the pinned `test:cov:unit` script, and it is what the push hook
|
|
19
|
+
* looks for before selecting that script — a unit run with no marker has no
|
|
20
|
+
* floor of its own, so the honest command for that project is still `test:cov`,
|
|
21
|
+
* whose floor was written for what it actually runs.
|
|
22
|
+
* @module configs/coverage-scope
|
|
23
|
+
*/
|
|
24
|
+
/** The variable the unit-scoped coverage script sets. */
|
|
25
|
+
export const COVERAGE_SCOPE_ENV = "LISA_COVERAGE_SCOPE";
|
|
26
|
+
/** The one scope value that changes which threshold block is enforced. */
|
|
27
|
+
export const UNIT_COVERAGE_SCOPE = "unit";
|
|
28
|
+
/**
|
|
29
|
+
* Whether this process is a unit-scoped coverage run.
|
|
30
|
+
*
|
|
31
|
+
* Exact match on the one recognised value, never a truthiness test. An
|
|
32
|
+
* unrecognised scope must inherit the full-suite floor rather than pick up a
|
|
33
|
+
* narrower one — the failure direction that matters here is a run measured
|
|
34
|
+
* against a floor lower than the one written for it, and a truthiness test
|
|
35
|
+
* hands that to every typo.
|
|
36
|
+
* @returns True when the unit scope is in force.
|
|
37
|
+
*/
|
|
38
|
+
export const isUnitCoverageScope = () =>
|
|
39
|
+
// eslint-disable-next-line no-restricted-syntax -- a test-runner config factory loads before any config service and the scope arrives only as an env var
|
|
40
|
+
process.env[COVERAGE_SCOPE_ENV]?.trim() === UNIT_COVERAGE_SCOPE;
|
|
41
|
+
//# sourceMappingURL=coverage-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-scope.js","sourceRoot":"","sources":["../../src/configs/coverage-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAExD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE;AAC/C,yJAAyJ;AACzJ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,mBAAmB,CAAC"}
|
|
@@ -51,6 +51,10 @@ export declare const defaultCoverageExclusions: readonly string[];
|
|
|
51
51
|
* The `global` key receives special treatment: its properties are
|
|
52
52
|
* shallow-merged so individual metrics can be overridden without
|
|
53
53
|
* replacing the entire global object.
|
|
54
|
+
*
|
|
55
|
+
* The `unit` key is the second special case: it is the floor for a unit-scoped
|
|
56
|
+
* run, applied over the effective `global` only when the process is one, and
|
|
57
|
+
* stripped from the result either way so Jest never treats it as a path.
|
|
54
58
|
* @param defaults - Base thresholds from the stack config
|
|
55
59
|
* @param overrides - Project-specific overrides from jest.thresholds.json
|
|
56
60
|
* @returns Merged thresholds with overrides taking precedence
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/configs/jest/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/configs/jest/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAOzD,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,IAAI,SAAS,MAAM,EAAE,CAElE;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAatD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,CAAC,mBAAmB,CAAC,EACrC,WAAW,MAAM,CAAC,mBAAmB,CAAC,KACrC,MAAM,CAAC,mBAAmB,CA0B5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,GAAG,SAAS,MAAM,EAAE,KAAG,MAyBjD,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isUnitCoverageScope } from "../coverage-scope.js";
|
|
1
2
|
import { isInsideWorktree } from "../worktrees.js";
|
|
2
3
|
/**
|
|
3
4
|
* Default coverage thresholds used when not specified in project config.
|
|
@@ -61,18 +62,35 @@ export const defaultCoverageExclusions = [
|
|
|
61
62
|
* The `global` key receives special treatment: its properties are
|
|
62
63
|
* shallow-merged so individual metrics can be overridden without
|
|
63
64
|
* replacing the entire global object.
|
|
65
|
+
*
|
|
66
|
+
* The `unit` key is the second special case: it is the floor for a unit-scoped
|
|
67
|
+
* run, applied over the effective `global` only when the process is one, and
|
|
68
|
+
* stripped from the result either way so Jest never treats it as a path.
|
|
64
69
|
* @param defaults - Base thresholds from the stack config
|
|
65
70
|
* @param overrides - Project-specific overrides from jest.thresholds.json
|
|
66
71
|
* @returns Merged thresholds with overrides taking precedence
|
|
67
72
|
*/
|
|
68
|
-
export const mergeThresholds = (defaults, overrides) =>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
export const mergeThresholds = (defaults, overrides) => {
|
|
74
|
+
// Cast to a record before destructuring: Jest's `coverageThreshold` type is a
|
|
75
|
+
// union whose empty-object arm has no index signature, so `unit` is not
|
|
76
|
+
// nameable on it even though the shape permits any key.
|
|
77
|
+
const { unit: _defaultUnit, ...restDefaults } = (defaults ?? {});
|
|
78
|
+
const { unit: overrideUnit, ...restOverrides } = (overrides ?? {});
|
|
79
|
+
const global = {
|
|
72
80
|
...defaults?.global,
|
|
73
81
|
...overrides?.global,
|
|
74
|
-
}
|
|
75
|
-
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
...restDefaults,
|
|
85
|
+
...restOverrides,
|
|
86
|
+
// See the vitest twin: layered over the EFFECTIVE global floor so a raised
|
|
87
|
+
// global is never quietly lowered, and stripped so Jest never reads `unit`
|
|
88
|
+
// as a path pattern.
|
|
89
|
+
global: isUnitCoverageScope()
|
|
90
|
+
? { ...global, ...overrideUnit }
|
|
91
|
+
: global,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
76
94
|
/**
|
|
77
95
|
* Merges multiple Jest configs together with array concatenation and
|
|
78
96
|
* shallow object merging. Later configs take precedence for scalar values.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/jest/base.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAgC;IAC5D,MAAM,EAAE;QACN,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;KACV;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,YAAY;IACZ,cAAc;IACd,qBAAqB;IACrB,aAAa;IACb,eAAe;IACf,eAAe;IACf,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,sBAAsB;CACvB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/jest/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,21 @@ export interface PortableThresholds {
|
|
|
24
24
|
readonly functions?: number;
|
|
25
25
|
readonly lines?: number;
|
|
26
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* The floor a unit-scoped run answers to, layered over `global`.
|
|
29
|
+
*
|
|
30
|
+
* Never reaches the runner under this name — `mergeThresholds` folds it into
|
|
31
|
+
* `global` when the scope is unit and strips it either way, because both
|
|
32
|
+
* runners read any non-`global` key as a path or glob and would go looking
|
|
33
|
+
* for a directory called `unit`. That is a threshold that is not enforced and
|
|
34
|
+
* does not complain, which is worse than one that errors.
|
|
35
|
+
*/
|
|
36
|
+
readonly unit?: {
|
|
37
|
+
readonly statements?: number;
|
|
38
|
+
readonly branches?: number;
|
|
39
|
+
readonly functions?: number;
|
|
40
|
+
readonly lines?: number;
|
|
41
|
+
};
|
|
27
42
|
readonly [path: string]: unknown;
|
|
28
43
|
}
|
|
29
44
|
/**
|
|
@@ -100,6 +115,14 @@ export declare const mapThresholds: (thresholds: PortableThresholds) => VitestTh
|
|
|
100
115
|
*
|
|
101
116
|
* Uses the portable format (with `global` wrapper) for compatibility
|
|
102
117
|
* with both Jest and Vitest threshold JSON files.
|
|
118
|
+
*
|
|
119
|
+
* A `unit` block in the overrides is the floor for a unit-scoped run, and is
|
|
120
|
+
* applied only when {@link isUnitCoverageScope} says this process is one. It is
|
|
121
|
+
* layered over the EFFECTIVE global floor rather than over the stack default,
|
|
122
|
+
* so a project that raised its global and declared no unit block keeps the
|
|
123
|
+
* higher number. It is stripped from the result either way: both runners read a
|
|
124
|
+
* non-`global` key as a path glob, and a surviving `unit` key would become a
|
|
125
|
+
* threshold that is never enforced and never complains.
|
|
103
126
|
* @param defaults - Base thresholds from the stack config
|
|
104
127
|
* @param overrides - Project-specific overrides from vitest.thresholds.json
|
|
105
128
|
* @returns Merged thresholds with overrides taking precedence
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAO/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAatD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAGlD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAItD;AAoBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEtD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,kBAAkB,KAC7B,gBAaD,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,kBAAkB,EAC5B,WAAW,kBAAkB,KAC5B,kBAiBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,SAAS,UAAU,EAAE,KAAG,UA4C7D,CAAC"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { existsSync } from "node:fs";
|
|
14
14
|
import { fileURLToPath } from "node:url";
|
|
15
|
+
import { isUnitCoverageScope } from "../coverage-scope.js";
|
|
15
16
|
import { isInsideWorktree } from "../worktrees.js";
|
|
16
17
|
/**
|
|
17
18
|
* Default coverage thresholds used when not specified in project config.
|
|
@@ -148,18 +149,36 @@ export const mapThresholds = (thresholds) => ({
|
|
|
148
149
|
*
|
|
149
150
|
* Uses the portable format (with `global` wrapper) for compatibility
|
|
150
151
|
* with both Jest and Vitest threshold JSON files.
|
|
152
|
+
*
|
|
153
|
+
* A `unit` block in the overrides is the floor for a unit-scoped run, and is
|
|
154
|
+
* applied only when {@link isUnitCoverageScope} says this process is one. It is
|
|
155
|
+
* layered over the EFFECTIVE global floor rather than over the stack default,
|
|
156
|
+
* so a project that raised its global and declared no unit block keeps the
|
|
157
|
+
* higher number. It is stripped from the result either way: both runners read a
|
|
158
|
+
* non-`global` key as a path glob, and a surviving `unit` key would become a
|
|
159
|
+
* threshold that is never enforced and never complains.
|
|
151
160
|
* @param defaults - Base thresholds from the stack config
|
|
152
161
|
* @param overrides - Project-specific overrides from vitest.thresholds.json
|
|
153
162
|
* @returns Merged thresholds with overrides taking precedence
|
|
154
163
|
*/
|
|
155
|
-
export const mergeThresholds = (defaults, overrides) =>
|
|
156
|
-
...defaults
|
|
157
|
-
...overrides
|
|
158
|
-
global
|
|
164
|
+
export const mergeThresholds = (defaults, overrides) => {
|
|
165
|
+
const { unit: _defaultUnit, ...restDefaults } = defaults;
|
|
166
|
+
const { unit: overrideUnit, ...restOverrides } = overrides;
|
|
167
|
+
const global = {
|
|
159
168
|
...defaults.global,
|
|
160
169
|
...overrides.global,
|
|
161
|
-
}
|
|
162
|
-
|
|
170
|
+
};
|
|
171
|
+
return {
|
|
172
|
+
...restDefaults,
|
|
173
|
+
...restOverrides,
|
|
174
|
+
// Layered over the effective global floor, not over Lisa's default one: a
|
|
175
|
+
// project that raised its global and declared no unit block must keep the
|
|
176
|
+
// higher number, or a "scope fix" would silently hand it a lower bar.
|
|
177
|
+
global: isUnitCoverageScope()
|
|
178
|
+
? { ...global, ...overrideUnit }
|
|
179
|
+
: global,
|
|
180
|
+
};
|
|
181
|
+
};
|
|
163
182
|
/**
|
|
164
183
|
* Deep merges the `test` key of multiple Vitest UserConfig objects.
|
|
165
184
|
* Arrays are concatenated and deduplicated. Nested objects (like
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAqpBjC,CAAC"}
|
|
@@ -157,6 +157,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
157
157
|
"8838707288126308932196f8d2d8e5195572e173c28b2b57164bacfa8847c394",
|
|
158
158
|
"8b01530e8eda16d93a4e13e47e17b20b22355507cf72cf9af4a7e49fe33efb8e",
|
|
159
159
|
"8fa4d22caf08a53a13a47838d25d0a9cf4dfb51f2bd9fb422d92e5a04401cc40",
|
|
160
|
+
"92a95288ee845ceb20342bbd52fc796d45bf5cd0afa513c058bf37e23985b9b8",
|
|
160
161
|
"9e6f8b161863ff7f47211ad8ae5cdd0a72f593022129651f987d4ca50bb773eb",
|
|
161
162
|
"a244b7fcf6e1b61dda7d90e6f95db9b7459b0676c494a9b4ca5367fd0fc83400",
|
|
162
163
|
"af81a23bd135657aef8f640edca91a30a305735d35812b31b5f3b92b0712c51d",
|
|
@@ -286,6 +287,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
286
287
|
"e17c45f7cadf0fb55dd07270776caf211af99b7d4771a4fde75aafe5919e8dbe",
|
|
287
288
|
]),
|
|
288
289
|
"scripts/lisa-environment-prepare.mjs": Object.freeze([
|
|
290
|
+
"5cce1e1cd585d5b82db05c0fcea9fe4e24171f54c3ddba82cde151a97e277745",
|
|
289
291
|
"63879152ebb67f289e900167daf035f2d03d7773c6e110ed5ab708c95417c55c",
|
|
290
292
|
"c765c7a44ea81d54c7820f2068c8811fb73ca3e5f063cb55a8c30391d1326323",
|
|
291
293
|
"f8c8e276fa6d68ed661f07882f20ee095d18a5e8a90136f78f1ed2b032ce33d4",
|
|
@@ -452,6 +454,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
452
454
|
"031ef7a53fc49cb18665105b834b7b50ad6a43317e0821949809e877e0562ce4",
|
|
453
455
|
"08399603387ff80240777dffa4b564a9d6ee82e64a329d3790f99ccaf6dbff04",
|
|
454
456
|
"18b7bb8867c5e6f719a9c503a38525f4c05e3d611717c3e1a503cf58dfb2832f",
|
|
457
|
+
"19e520180322247dd3ab61c80b13960115ae48ccd739ec3c0b4216cd8a2555a8",
|
|
455
458
|
"2df476aacebcb2544a12f459a0092e88eb28c0d00e45fd7ed909c75dfe441027",
|
|
456
459
|
"33e2bd341eb992036059b0c4606db35a218adcfeca7e44d174fedf8ebdff29d2",
|
|
457
460
|
"3b93a0affab6413e3c14a6f43de5acb586286ed1819ece0a66b30429b4d00490",
|
|
@@ -506,6 +509,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
506
509
|
"ce4bc224a102e3ac2bc29d8f2038eefd619129d4639c25954c93f05011f7f977",
|
|
507
510
|
]),
|
|
508
511
|
"scripts/lisa-mutation.mjs": Object.freeze([
|
|
512
|
+
"0cd013a51a81d8eeebced9f2646bdb3fe0a9247fcd74b57c03e95cc2db3fe7de",
|
|
509
513
|
"20bc2e58a54d7ef3c99b91393b85aa2f59d42984cbcbdb0a710b2c8d12d46b39",
|
|
510
514
|
"227dfa273802d6a5c03c3bf67136b743de98370127c7417db454f2e7424e98a0",
|
|
511
515
|
"48394f771485db4b7863d2307f9ca0750cba4ce3750c615dd3c54fa47178a50e",
|
|
@@ -565,12 +569,14 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
565
569
|
"6e419a489d0605cc0743af207ff4ff3428d8bcdfbabb7207d164593b9644dfa5",
|
|
566
570
|
"79055f89eb9c5bf1739867c12dc2d9e30320f86a2a3dd470300ba706c3c9d85e",
|
|
567
571
|
"94453bdae8ab3dd2eba0883c4b278027396090e0bdc8e2f102414abc6415912a",
|
|
572
|
+
"9fa363107aa5ff033f150ff1a1bb5550d286de383b3d1f7b6c2ac2947730c8f2",
|
|
568
573
|
"a58af06f1d677d82b780a6857916c1684a44649ba742b2b329d408057ae5700d",
|
|
569
574
|
"ba610745a8878bb9a21af249d6ab5b384fcf88e7c530db846f4f8163faba7a8e",
|
|
570
575
|
"beffca5715f5c1309efd95d7a4895a980ae48498501c0cff163820ed5530730f",
|
|
571
576
|
"c069c03c42b6ae63fb7f0b73ab164d651756c54b72b472f54394e7c74f56f8fe",
|
|
572
577
|
"c24b5dfe1fb36d79a88c573a5951ca212645dea13595f0f2e14dcd41f8462218",
|
|
573
578
|
"c705d400f51a3a08ada085fc1107c3dce558f9a717528fc1fe9315aa6b97a5e6",
|
|
579
|
+
"c8f5c6d9fb3bb341feac51e64fbc14e83233b376eb0a047795cb72d302b771b4",
|
|
574
580
|
"cd79864ea6ccfbf33341d537a08436aefbb9eff55a78bb3ff5002f8b3b9cfe55",
|
|
575
581
|
"d078570b2a7964eb481cd05e118e2a6559968020392c6e570d90cec8f20c5487",
|
|
576
582
|
"e00f16cdc399c8ee61c7a3972469fbb4b662e0fff00bd9d3d6910f3f27a5f04c",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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EAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAk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"}
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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EAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAk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"}
|