@codyswann/lisa 4.28.4 → 4.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/all/copy-overwrite/scripts/lisa-gates.mjs +2 -1
- package/all/copy-overwrite/scripts/lisa-hooks/sonar-secrets.sh +3 -2
- package/all/copy-overwrite/scripts/lisa-postinstall.mjs +6 -2
- package/cdk/create-only/vitest.config.local.ts +5 -1
- package/cdk/package-lisa/package.lisa.json +14 -7
- package/dist/cli/apply.d.ts +20 -0
- package/dist/cli/apply.d.ts.map +1 -1
- package/dist/cli/apply.js +70 -3
- package/dist/cli/apply.js.map +1 -1
- package/dist/cli/doctor-apply-freshness.d.ts.map +1 -1
- package/dist/cli/doctor-apply-freshness.js +10 -4
- package/dist/cli/doctor-apply-freshness.js.map +1 -1
- package/dist/cli/lisa-test-run-bootstrap.d.ts +3 -0
- package/dist/cli/lisa-test-run-bootstrap.d.ts.map +1 -0
- package/dist/cli/lisa-test-run-bootstrap.js +201 -0
- package/dist/cli/lisa-test-run-bootstrap.js.map +1 -0
- package/dist/cli/lisa-test-run-ipc.d.ts +42 -0
- package/dist/cli/lisa-test-run-ipc.d.ts.map +1 -0
- package/dist/cli/lisa-test-run-ipc.js +200 -0
- package/dist/cli/lisa-test-run-ipc.js.map +1 -0
- package/dist/cli/lisa-test-run-process-group.d.ts +30 -0
- package/dist/cli/lisa-test-run-process-group.d.ts.map +1 -0
- package/dist/cli/lisa-test-run-process-group.js +123 -0
- package/dist/cli/lisa-test-run-process-group.js.map +1 -0
- package/dist/cli/lisa-test-run-reaper.d.ts +3 -0
- package/dist/cli/lisa-test-run-reaper.d.ts.map +1 -0
- package/dist/cli/lisa-test-run-reaper.js +195 -0
- package/dist/cli/lisa-test-run-reaper.js.map +1 -0
- package/dist/cli/lisa-test-run-runtime.d.ts +46 -0
- package/dist/cli/lisa-test-run-runtime.d.ts.map +1 -0
- package/dist/cli/lisa-test-run-runtime.js +123 -0
- package/dist/cli/lisa-test-run-runtime.js.map +1 -0
- package/dist/cli/lisa-test-run-supervisor.d.ts +13 -0
- package/dist/cli/lisa-test-run-supervisor.d.ts.map +1 -0
- package/dist/cli/lisa-test-run-supervisor.js +268 -0
- package/dist/cli/lisa-test-run-supervisor.js.map +1 -0
- package/dist/cli/lisa-test-run.d.ts +3 -0
- package/dist/cli/lisa-test-run.d.ts.map +1 -0
- package/dist/cli/lisa-test-run.js +66 -0
- package/dist/cli/lisa-test-run.js.map +1 -0
- package/dist/cli/shared-options.d.ts +11 -4
- package/dist/cli/shared-options.d.ts.map +1 -1
- package/dist/cli/shared-options.js +8 -8
- package/dist/cli/shared-options.js.map +1 -1
- package/dist/configs/vitest/base.d.ts.map +1 -1
- package/dist/configs/vitest/base.js +5 -2
- package/dist/configs/vitest/base.js.map +1 -1
- package/dist/configs/vitest/cdk.d.ts +4 -0
- package/dist/configs/vitest/cdk.d.ts.map +1 -1
- package/dist/configs/vitest/cdk.js +5 -0
- package/dist/configs/vitest/cdk.js.map +1 -1
- package/dist/configs/vitest/harper-fabric.d.ts.map +1 -1
- package/dist/configs/vitest/harper-fabric.js +1 -0
- package/dist/configs/vitest/harper-fabric.js.map +1 -1
- package/dist/configs/vitest/nestjs.d.ts.map +1 -1
- package/dist/configs/vitest/nestjs.js +1 -0
- package/dist/configs/vitest/nestjs.js.map +1 -1
- package/dist/configs/vitest/phaser.d.ts.map +1 -1
- package/dist/configs/vitest/phaser.js +1 -0
- package/dist/configs/vitest/phaser.js.map +1 -1
- package/dist/configs/vitest/scratch-authority.d.ts +25 -0
- package/dist/configs/vitest/scratch-authority.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-authority.js +107 -0
- package/dist/configs/vitest/scratch-authority.js.map +1 -0
- package/dist/configs/vitest/scratch-bound-cleanup-programs.d.ts +5 -0
- package/dist/configs/vitest/scratch-bound-cleanup-programs.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-bound-cleanup-programs.js +219 -0
- package/dist/configs/vitest/scratch-bound-cleanup-programs.js.map +1 -0
- package/dist/configs/vitest/scratch-bound-cleanup.d.ts +28 -0
- package/dist/configs/vitest/scratch-bound-cleanup.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-bound-cleanup.js +155 -0
- package/dist/configs/vitest/scratch-bound-cleanup.js.map +1 -0
- package/dist/configs/vitest/scratch-bound-root-cleanup.d.ts +17 -0
- package/dist/configs/vitest/scratch-bound-root-cleanup.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-bound-root-cleanup.js +149 -0
- package/dist/configs/vitest/scratch-bound-root-cleanup.js.map +1 -0
- package/dist/configs/vitest/scratch-global-setup.d.ts +17 -9
- package/dist/configs/vitest/scratch-global-setup.d.ts.map +1 -1
- package/dist/configs/vitest/scratch-global-setup.js +103 -35
- package/dist/configs/vitest/scratch-global-setup.js.map +1 -1
- package/dist/configs/vitest/scratch-leak-setup.d.ts +2 -0
- package/dist/configs/vitest/scratch-leak-setup.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-leak-setup.js +108 -0
- package/dist/configs/vitest/scratch-leak-setup.js.map +1 -0
- package/dist/configs/vitest/scratch-namespace-authority.d.ts +80 -0
- package/dist/configs/vitest/scratch-namespace-authority.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-namespace-authority.js +291 -0
- package/dist/configs/vitest/scratch-namespace-authority.js.map +1 -0
- package/dist/configs/vitest/scratch-owner.d.ts +131 -0
- package/dist/configs/vitest/scratch-owner.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-owner.js +297 -0
- package/dist/configs/vitest/scratch-owner.js.map +1 -0
- package/dist/configs/vitest/scratch-route-profile.d.ts +36 -0
- package/dist/configs/vitest/scratch-route-profile.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-route-profile.js +217 -0
- package/dist/configs/vitest/scratch-route-profile.js.map +1 -0
- package/dist/configs/vitest/scratch-run-root-compatibility.d.ts +33 -0
- package/dist/configs/vitest/scratch-run-root-compatibility.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-run-root-compatibility.js +137 -0
- package/dist/configs/vitest/scratch-run-root-compatibility.js.map +1 -0
- package/dist/configs/vitest/scratch-run-root-intent.d.ts +66 -0
- package/dist/configs/vitest/scratch-run-root-intent.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-run-root-intent.js +183 -0
- package/dist/configs/vitest/scratch-run-root-intent.js.map +1 -0
- package/dist/configs/vitest/scratch-setup.d.ts.map +1 -1
- package/dist/configs/vitest/scratch-setup.js +45 -15
- package/dist/configs/vitest/scratch-setup.js.map +1 -1
- package/dist/configs/vitest/scratch-supervision-intent.d.ts +8 -0
- package/dist/configs/vitest/scratch-supervision-intent.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-supervision-intent.js +125 -0
- package/dist/configs/vitest/scratch-supervision-intent.js.map +1 -0
- package/dist/configs/vitest/scratch-supervision-protocol.d.ts +12 -0
- package/dist/configs/vitest/scratch-supervision-protocol.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-supervision-protocol.js +230 -0
- package/dist/configs/vitest/scratch-supervision-protocol.js.map +1 -0
- package/dist/configs/vitest/scratch-supervision.d.ts +64 -0
- package/dist/configs/vitest/scratch-supervision.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-supervision.js +209 -0
- package/dist/configs/vitest/scratch-supervision.js.map +1 -0
- package/dist/configs/vitest/scratch-sweep.d.ts +66 -0
- package/dist/configs/vitest/scratch-sweep.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-sweep.js +82 -0
- package/dist/configs/vitest/scratch-sweep.js.map +1 -0
- package/dist/configs/vitest/scratch.d.ts +14 -187
- package/dist/configs/vitest/scratch.d.ts.map +1 -1
- package/dist/configs/vitest/scratch.js +18 -285
- package/dist/configs/vitest/scratch.js.map +1 -1
- package/dist/configs/vitest/typescript.d.ts.map +1 -1
- package/dist/configs/vitest/typescript.js +1 -0
- package/dist/configs/vitest/typescript.js.map +1 -1
- package/dist/core/apply-mode.d.ts +80 -29
- package/dist/core/apply-mode.d.ts.map +1 -1
- package/dist/core/apply-mode.js +23 -2
- package/dist/core/apply-mode.js.map +1 -1
- package/dist/core/apply-receipt.d.ts +5 -1
- package/dist/core/apply-receipt.d.ts.map +1 -1
- package/dist/core/apply-receipt.js.map +1 -1
- package/dist/core/config.d.ts +24 -12
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +8 -0
- package/dist/core/lisa-owned-hash-ledger.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 +63 -15
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/migrations/ensure-lisa-postinstall.d.ts +1 -1
- package/dist/migrations/ensure-lisa-postinstall.d.ts.map +1 -1
- package/dist/migrations/ensure-lisa-postinstall.js +28 -5
- package/dist/migrations/ensure-lisa-postinstall.js.map +1 -1
- package/dist/utils/postinstall-trampoline-source.js +10 -1
- package/dist/utils/postinstall-trampoline-source.js.map +1 -1
- package/expo/package-lisa/package.lisa.json +14 -14
- package/harper-fabric/package-lisa/package.lisa.json +8 -3
- package/nestjs/create-only/vitest.config.local.ts +5 -1
- package/nestjs/package-lisa/package.lisa.json +14 -8
- package/npm-package/package-lisa/package.lisa.json +8 -0
- package/package.json +17 -13
- package/phaser/package-lisa/package.lisa.json +9 -3
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/sonar-secrets.sh +3 -2
- 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/sonar-secrets.sh +3 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/sonar-secrets.sh +3 -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/sonar-secrets.sh +3 -2
- package/scripts/install-claude-plugins.sh +7 -2
- package/typescript/create-only/vitest.config.local.ts +5 -1
- package/typescript/package-lisa/package.lisa.json +14 -8
|
@@ -31,7 +31,7 @@ export declare const APPLY_FAILURE_NOTICE: string;
|
|
|
31
31
|
* Exported so tests can execute the real script under `sh` rather than assert
|
|
32
32
|
* on a string.
|
|
33
33
|
*/
|
|
34
|
-
export declare const LISA_INVOCATION = "[ -n \"$CI\" ] || LISA_BOOTSTRAP=1 node node_modules/@codyswann/lisa/dist/index.js --yes --skip-git-check . || echo \"lisa: TEMPLATE APPLY FAILED - this project is NOT receiving Lisa template or guardrail updates. The error is above. Reproduce it with: node node_modules/@codyswann/lisa/dist/index.js --yes --skip-git-check . - then run: node node_modules/@codyswann/lisa/dist/index.js doctor\" >&2";
|
|
34
|
+
export declare const LISA_INVOCATION = "[ -n \"$CI\" ] || LISA_BOOTSTRAP=1 LISA_POSTINSTALL=1 node node_modules/@codyswann/lisa/dist/index.js --yes --skip-git-check . || echo \"lisa: TEMPLATE APPLY FAILED - this project is NOT receiving Lisa template or guardrail updates. The error is above. Reproduce it with: LISA_POSTINSTALL=1 node node_modules/@codyswann/lisa/dist/index.js --yes --skip-git-check . - then run: node node_modules/@codyswann/lisa/dist/index.js doctor\" >&2";
|
|
35
35
|
/**
|
|
36
36
|
* Migration: ensure Node-based projects chain Lisa into their postinstall script.
|
|
37
37
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-lisa-postinstall.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-lisa-postinstall.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure-lisa-postinstall.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-lisa-postinstall.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAqBlC;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,QAG8C,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,eAAe,ybAA0H,CAAC;AAuFvJ;;;;;;;;;GASG;AACH,qBAAa,8BAA+B,YAAW,SAAS;IAC9D,QAAQ,CAAC,IAAI,6BAA6B;IAC1C,QAAQ,CAAC,WAAW,qEACgD;IAEpE;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBtD;;;;OAIG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAqC7D"}
|
|
@@ -4,8 +4,21 @@ import { readJsonOrNull, writeJson } from "../utils/json-utils.js";
|
|
|
4
4
|
const PACKAGE_JSON = "package.json";
|
|
5
5
|
const CI_GUARD_PREFIX = '[ -n "$CI" ] || ';
|
|
6
6
|
const BOOTSTRAP_PREFIX = "LISA_BOOTSTRAP=1 ";
|
|
7
|
+
/**
|
|
8
|
+
* The hook's declaration that it is a package-manager install lifecycle.
|
|
9
|
+
*
|
|
10
|
+
* This — not `--skip-git-check` — is what selects the reduced
|
|
11
|
+
* `postinstall-safe` apply (CodySwannGT/lisa#3066). It is spelled as an
|
|
12
|
+
* environment prefix rather than a flag on purpose: the command tail stays
|
|
13
|
+
* byte-identical, so {@link LISA_INVOCATION_RE} keeps matching every hook
|
|
14
|
+
* already installed in a consumer's `package.json` with one added alternative
|
|
15
|
+
* in a group it already had.
|
|
16
|
+
*/
|
|
17
|
+
const POSTINSTALL_PREFIX = "LISA_POSTINSTALL=1 ";
|
|
7
18
|
const LISA_MARKER = "node_modules/@codyswann/lisa/dist/index.js";
|
|
8
19
|
const LISA_APPLY_COMMAND = `node ${LISA_MARKER} --yes --skip-git-check .`;
|
|
20
|
+
/** The apply command with the declaration, as an operator would reproduce it. */
|
|
21
|
+
const LISA_APPLY_COMMAND_AS_POSTINSTALL = `${POSTINSTALL_PREFIX}${LISA_APPLY_COMMAND}`;
|
|
9
22
|
/**
|
|
10
23
|
* What the operator sees on stderr when the bootstrap apply fails.
|
|
11
24
|
*
|
|
@@ -16,8 +29,8 @@ const LISA_APPLY_COMMAND = `node ${LISA_MARKER} --yes --skip-git-check .`;
|
|
|
16
29
|
* it survives being embedded in a JSON string inside a `sh -c` command.
|
|
17
30
|
*/
|
|
18
31
|
export const APPLY_FAILURE_NOTICE = "lisa: TEMPLATE APPLY FAILED - this project is NOT receiving Lisa template " +
|
|
19
|
-
|
|
20
|
-
|
|
32
|
+
"or guardrail updates. The error is above. Reproduce it with: " +
|
|
33
|
+
`${LISA_APPLY_COMMAND_AS_POSTINSTALL} - then run: node ${LISA_MARKER} doctor`;
|
|
21
34
|
/**
|
|
22
35
|
* The bootstrap invocation chained into a host project's `postinstall`.
|
|
23
36
|
*
|
|
@@ -40,7 +53,7 @@ export const APPLY_FAILURE_NOTICE = "lisa: TEMPLATE APPLY FAILED - this project
|
|
|
40
53
|
* Exported so tests can execute the real script under `sh` rather than assert
|
|
41
54
|
* on a string.
|
|
42
55
|
*/
|
|
43
|
-
export const LISA_INVOCATION = `${CI_GUARD_PREFIX}${BOOTSTRAP_PREFIX}${LISA_APPLY_COMMAND} || echo "${APPLY_FAILURE_NOTICE}" >&2`;
|
|
56
|
+
export const LISA_INVOCATION = `${CI_GUARD_PREFIX}${BOOTSTRAP_PREFIX}${POSTINSTALL_PREFIX}${LISA_APPLY_COMMAND} || echo "${APPLY_FAILURE_NOTICE}" >&2`;
|
|
44
57
|
/**
|
|
45
58
|
* Project types that do not use Node.js postinstall hooks (e.g. Rails).
|
|
46
59
|
* Projects detected as only these types are skipped by this migration.
|
|
@@ -62,9 +75,19 @@ async function readPackageJson(projectDir) {
|
|
|
62
75
|
* (`2>/dev/null || true`), the current loud-but-non-fatal form
|
|
63
76
|
* (`|| echo "..." >&2`), and a bare invocation with no tail at all. Guard
|
|
64
77
|
* prefixes are optional and repeatable because older Lisa versions introduced
|
|
65
|
-
* them one at a time
|
|
78
|
+
* them one at a time — `LISA_POSTINSTALL=1` being the newest
|
|
79
|
+
* (CodySwannGT/lisa#3066).
|
|
80
|
+
*
|
|
81
|
+
* **Every alternative here is permanent.** There is no cutover date: this text
|
|
82
|
+
* lives in the consumer's own repository, and nothing updates it until an
|
|
83
|
+
* apply runs — an apply that only rewrites it if this pattern matched it
|
|
84
|
+
* first. A miss does not fail, it CHAINS a second invocation in front of the
|
|
85
|
+
* old one, so the project quietly runs two applies per install and every
|
|
86
|
+
* instrument reads normal (the CodySwannGT/lisa#3050 shape). A project that
|
|
87
|
+
* never re-applies keeps its old spelling forever, which is why an old
|
|
88
|
+
* alternative may never be removed.
|
|
66
89
|
*/
|
|
67
|
-
const LISA_INVOCATION_RE = new RegExp('(?:(?:\\[ -n "\\$CI" \\] \\|\\| )|(?:LISA_BOOTSTRAP=1 ))*' +
|
|
90
|
+
const LISA_INVOCATION_RE = new RegExp('(?:(?:\\[ -n "\\$CI" \\] \\|\\| )|(?:LISA_BOOTSTRAP=1 )|(?:LISA_POSTINSTALL=1 ))*' +
|
|
68
91
|
"node node_modules/@codyswann/lisa/dist/index\\.js --yes --skip-git-check \\." +
|
|
69
92
|
'(?: 2>/dev/null \\|\\| true| \\|\\| echo "[^"]*" >&2)?');
|
|
70
93
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-lisa-postinstall.js","sourceRoot":"","sources":["../../src/migrations/ensure-lisa-postinstall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnE,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAC3C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,WAAW,GAAG,4CAA4C,CAAC;AACjE,MAAM,kBAAkB,GAAG,QAAQ,WAAW,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure-lisa-postinstall.js","sourceRoot":"","sources":["../../src/migrations/ensure-lisa-postinstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -201,7 +201,16 @@ function buildTrampolineHelpers(literals) {
|
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
function runLisa() {
|
|
204
|
-
|
|
204
|
+
// BOTH flags, and they mean different things since
|
|
205
|
+
// CodySwannGT/lisa#3066: --skip-git-check waives the clean-tree check,
|
|
206
|
+
// which this child needs because the install it follows has already
|
|
207
|
+
// rewritten package.json and the lockfile; --postinstall-safe declares
|
|
208
|
+
// the install-lifecycle context that selects the reduced apply, so a
|
|
209
|
+
// trampoline never regenerates committed agent trees. It is a FLAG
|
|
210
|
+
// rather than LISA_POSTINSTALL=1 because sanitizeEnv strips this child's
|
|
211
|
+
// environment, and a declaration that can be stripped can be lost
|
|
212
|
+
// silently.
|
|
213
|
+
return spawnChild(${literals.nodeBin}, [${literals.lisaEntry}, "--yes", "--skip-git-check", "--postinstall-safe", ${literals.projectDir}]);
|
|
205
214
|
}
|
|
206
215
|
|
|
207
216
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postinstall-trampoline-source.js","sourceRoot":"","sources":["../../src/utils/postinstall-trampoline-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAKtE,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2CAA2C,CAAC;AAoDnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,wEAAwE;IACxE,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC;QACrD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;QACnD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;QAC7C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACvC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACzD,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACxD,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QACnD,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QAC7C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QACvD,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;QACzE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QACzD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC;KAC9D,CAAC;IAEX,OAAO;QACL,sBAAsB,CAAC,QAAQ,CAAC;QAChC,uBAAuB,CAAC,QAAQ,CAAC;QACjC,wBAAwB,CAAC,QAAQ,CAAC;QAClC,sBAAsB,CAAC,QAAQ,CAAC;QAChC,4BAA4B,EAAE;QAC9B,mBAAmB,CAAC,QAAQ,CAAC;KAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAAC,QAI/B;IACC,OAAO;;;;;;;;;;;;6BAYoB,QAAQ,CAAC,aAAa;8BACrB,QAAQ,CAAC,aAAa;2BACzB,QAAQ,CAAC,UAAU;;;;;;GAM3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAAC,QAEjC;IACC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;+CAwBsC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;GAgB/D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,sBAAsB,CAAC,QAQ/B;IACC,OAAO;;;;;;;;;;;;sCAY6B,QAAQ,CAAC,SAAS;;uBAEjC,QAAQ,CAAC,SAAS;iDACQ,QAAQ,CAAC,cAAc;;;;;;;;;mBASrD,QAAQ,CAAC,UAAU;;8DAEwB,QAAQ,CAAC,gBAAgB
|
|
1
|
+
{"version":3,"file":"postinstall-trampoline-source.js","sourceRoot":"","sources":["../../src/utils/postinstall-trampoline-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAKtE,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2CAA2C,CAAC;AAoDnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,wEAAwE;IACxE,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC;QACrD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;QACnD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;QAC7C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACvC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACzD,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACxD,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QACnD,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QAC7C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QACvD,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;QACzE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QACzD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC;KAC9D,CAAC;IAEX,OAAO;QACL,sBAAsB,CAAC,QAAQ,CAAC;QAChC,uBAAuB,CAAC,QAAQ,CAAC;QACjC,wBAAwB,CAAC,QAAQ,CAAC;QAClC,sBAAsB,CAAC,QAAQ,CAAC;QAChC,4BAA4B,EAAE;QAC9B,mBAAmB,CAAC,QAAQ,CAAC;KAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAAC,QAI/B;IACC,OAAO;;;;;;;;;;;;6BAYoB,QAAQ,CAAC,aAAa;8BACrB,QAAQ,CAAC,aAAa;2BACzB,QAAQ,CAAC,UAAU;;;;;;GAM3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAAC,QAEjC;IACC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;+CAwBsC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;GAgB/D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,sBAAsB,CAAC,QAQ/B;IACC,OAAO;;;;;;;;;;;;sCAY6B,QAAQ,CAAC,SAAS;;uBAEjC,QAAQ,CAAC,SAAS;iDACQ,QAAQ,CAAC,cAAc;;;;;;;;;mBASrD,QAAQ,CAAC,UAAU;;8DAEwB,QAAQ,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;0BAoB7D,QAAQ,CAAC,OAAO,MAAM,QAAQ,CAAC,SAAS,wDAAwD,QAAQ,CAAC,UAAU;;;GAG1I,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAS,mBAAmB,CAAC,QAI5B;IACC,OAAO;;;;;;;;;;;;;;;;;;;;iDAoBwC,QAAQ,CAAC,aAAa;;oCAEnC,QAAQ,CAAC,UAAU;+BACxB,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CjD,CAAC;AACJ,CAAC"}
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
"setup:deploy-key": "setup-deploy-key",
|
|
5
5
|
"lighthouse:check": "lhci autorun --collect.settings.chromeFlags='--no-sandbox --disable-gpu --headless' --assert.assertions.forced-reflow-insight=off && node scripts/check-lighthouse-details.mjs",
|
|
6
6
|
"playwright:build": "expo export --platform web",
|
|
7
|
-
"playwright:test": "bun run playwright:build && playwright test",
|
|
8
|
-
"playwright:test:ui": "bun run playwright:build && playwright test --ui",
|
|
9
|
-
"maestro:test": "maestro test .maestro/flows",
|
|
10
|
-
"maestro:test:ios": "maestro test -p ios .maestro/flows",
|
|
11
|
-
"maestro:test:android": "maestro test -p android .maestro/flows",
|
|
12
|
-
"maestro:test:smoke": "maestro test -p ios --include-tags=smoke .maestro/flows",
|
|
7
|
+
"playwright:test": "bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test",
|
|
8
|
+
"playwright:test:ui": "bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test --ui",
|
|
9
|
+
"maestro:test": "lisa-test-run --profile expo --adapter direct -- maestro test .maestro/flows",
|
|
10
|
+
"maestro:test:ios": "lisa-test-run --profile expo --adapter direct -- maestro test -p ios .maestro/flows",
|
|
11
|
+
"maestro:test:android": "lisa-test-run --profile expo --adapter direct -- maestro test -p android .maestro/flows",
|
|
12
|
+
"maestro:test:smoke": "lisa-test-run --profile expo --adapter direct -- maestro test -p ios --include-tags=smoke .maestro/flows",
|
|
13
13
|
"maestro:studio": "maestro studio",
|
|
14
14
|
"maestro:classify": "node scripts/classify-maestro-failures.mjs",
|
|
15
15
|
"bdd:coverage": "node scripts/check-bdd-coverage.mjs",
|
|
@@ -51,17 +51,17 @@
|
|
|
51
51
|
"eas:publish:staging": "eas update --channel staging --environment preview --non-interactive",
|
|
52
52
|
"eas:publish:production": "eas update --channel production --environment production --non-interactive",
|
|
53
53
|
"security:zap": "bash scripts/zap-baseline.sh",
|
|
54
|
-
"test": "NODE_ENV=test jest",
|
|
55
|
-
"test:unit": "NODE_ENV=test jest --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
56
|
-
"test:integration:lisa": "NODE_ENV=test jest --testPathPatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
57
|
-
"test:cov": "NODE_ENV=test jest --coverage",
|
|
58
|
-
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit NODE_ENV=test jest --coverage --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
59
|
-
"test:mutation": "node scripts/lisa-mutation.mjs",
|
|
60
|
-
"test:watch": "NODE_ENV=test jest --watch",
|
|
54
|
+
"test": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest",
|
|
55
|
+
"test:unit": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
56
|
+
"test:integration:lisa": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --testPathPatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
57
|
+
"test:cov": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --coverage",
|
|
58
|
+
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --coverage --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
59
|
+
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile expo --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
60
|
+
"test:watch": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --watch",
|
|
61
61
|
"lint:lisa": "oxlint && eslint . --quiet",
|
|
62
62
|
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
63
63
|
"start:atlas": "cp .env.development .env.local && STAGE=development EXPO_ATLAS=true expo start",
|
|
64
|
-
"test:node": "node scripts/lisa-test-node.mjs"
|
|
64
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile expo --adapter direct -- node scripts/lisa-test-node.mjs"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@apollo/client": "^3.10.8",
|
|
@@ -4,8 +4,13 @@
|
|
|
4
4
|
"bootstrap": "bash scripts/bootstrap.sh",
|
|
5
5
|
"setup:deploy-key": "setup-deploy-key",
|
|
6
6
|
"typecheck:lisa": "tsc --noEmit",
|
|
7
|
-
"test": "vitest run",
|
|
8
|
-
"test:
|
|
7
|
+
"test": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run",
|
|
8
|
+
"test:unit": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --exclude='**/integration/**'",
|
|
9
|
+
"test:integration:lisa": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
10
|
+
"test:cov": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage",
|
|
11
|
+
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage --exclude='**/integration/**'",
|
|
12
|
+
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile harper-fabric --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
13
|
+
"test:watch": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest",
|
|
9
14
|
"lint:lisa": "oxlint && eslint . --quiet",
|
|
10
15
|
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
11
16
|
"lint:slow:lisa": "eslint . --config eslint.slow.config.ts --quiet",
|
|
@@ -20,7 +25,7 @@
|
|
|
20
25
|
"status": "harperdb status",
|
|
21
26
|
"reset": "harperdb stop || true; [ -n \"$HOME\" ] && rm -rf \"$HOME/.harperdb\" && bun run bootstrap && bun run seed && bun run verify",
|
|
22
27
|
"prepare": "husky install || true",
|
|
23
|
-
"test:node": "node scripts/lisa-test-node.mjs"
|
|
28
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile harper-fabric --adapter direct -- node scripts/lisa-test-node.mjs"
|
|
24
29
|
},
|
|
25
30
|
"dependencies": {
|
|
26
31
|
"harperdb": "^4.7.29"
|
|
@@ -28,7 +28,11 @@
|
|
|
28
28
|
import type { ViteUserConfig } from "vitest/config";
|
|
29
29
|
|
|
30
30
|
const config: ViteUserConfig = {
|
|
31
|
-
|
|
31
|
+
test: {
|
|
32
|
+
// Scratch redirection must install before the leak guard, and the guard's
|
|
33
|
+
// afterAll must run after project hooks so cleanup is attributed correctly.
|
|
34
|
+
sequence: { setupFiles: "list", hooks: "stack" },
|
|
35
|
+
},
|
|
32
36
|
};
|
|
33
37
|
|
|
34
38
|
export default config;
|
|
@@ -41,16 +41,16 @@
|
|
|
41
41
|
"deploy:staging": "sls deploy --stage staging",
|
|
42
42
|
"deploy:production": "sls deploy --stage production",
|
|
43
43
|
"security:zap": "bash scripts/zap-baseline.sh",
|
|
44
|
-
"test": "vitest run",
|
|
45
|
-
"test:unit": "vitest run --exclude='**/integration/**'",
|
|
46
|
-
"test:integration:lisa": "vitest run '.integration.' 'integration/'",
|
|
47
|
-
"test:cov": "vitest run --coverage",
|
|
48
|
-
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
49
|
-
"test:mutation": "node scripts/lisa-mutation.mjs",
|
|
50
|
-
"test:watch": "vitest",
|
|
44
|
+
"test": "lisa-test-run --profile nestjs --adapter vitest -- vitest run",
|
|
45
|
+
"test:unit": "lisa-test-run --profile nestjs --adapter vitest -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
46
|
+
"test:integration:lisa": "lisa-test-run --profile nestjs --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
47
|
+
"test:cov": "lisa-test-run --profile nestjs --adapter vitest -- vitest run --coverage",
|
|
48
|
+
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile nestjs --adapter vitest -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
49
|
+
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile nestjs --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
50
|
+
"test:watch": "lisa-test-run --profile nestjs --adapter vitest -- vitest",
|
|
51
51
|
"lint:lisa": "oxlint && eslint . --quiet",
|
|
52
52
|
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
53
|
-
"test:node": "node scripts/lisa-test-node.mjs"
|
|
53
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile nestjs --adapter direct -- node scripts/lisa-test-node.mjs"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@apollo/server": "^5.4.0",
|
|
@@ -110,6 +110,12 @@
|
|
|
110
110
|
"adopt": {
|
|
111
111
|
"scripts": {
|
|
112
112
|
"test:integration": [
|
|
113
|
+
"lisa-test-run --profile nestjs --adapter vitest -- vitest run '.integration.' 'integration/' --passWithNoTests",
|
|
114
|
+
"lisa-test-run --profile nestjs --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
115
|
+
"lisa-test-run --profile nestjs -- vitest run '.integration.' 'integration/' --passWithNoTests",
|
|
116
|
+
"lisa-test-run --profile nestjs -- vitest run '.integration.' 'integration/'",
|
|
117
|
+
"lisa-test-run -- vitest run '.integration.' 'integration/' --passWithNoTests",
|
|
118
|
+
"lisa-test-run -- vitest run '.integration.' 'integration/'",
|
|
113
119
|
"vitest run '.integration.' 'integration/' --passWithNoTests",
|
|
114
120
|
"vitest run '.integration.' 'integration/'",
|
|
115
121
|
"vitest run '.integration.'",
|
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
"scripts": {
|
|
4
4
|
"prepublishOnly": "$npm_execpath run build",
|
|
5
5
|
"setup:deploy-key": "setup-deploy-key",
|
|
6
|
+
"test": "lisa-test-run --profile npm-package --adapter vitest -- vitest run",
|
|
7
|
+
"test:unit": "lisa-test-run --profile npm-package --adapter vitest -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
8
|
+
"test:integration:lisa": "lisa-test-run --profile npm-package --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
9
|
+
"test:cov": "lisa-test-run --profile npm-package --adapter vitest -- vitest run --coverage",
|
|
10
|
+
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile npm-package --adapter vitest -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
11
|
+
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile npm-package --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
12
|
+
"test:watch": "lisa-test-run --profile npm-package --adapter vitest -- vitest",
|
|
13
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile npm-package --adapter direct -- node scripts/lisa-test-node.mjs",
|
|
6
14
|
"prepare": "$npm_execpath run build && husky install || true"
|
|
7
15
|
},
|
|
8
16
|
"devDependencies": {
|
package/package.json
CHANGED
|
@@ -3,17 +3,18 @@
|
|
|
3
3
|
"build": "bun run build:dist && bun run build:plugins",
|
|
4
4
|
"build:dist": "node scripts/clean-dist.mjs && tsc && node scripts/copy-codex-scripts.mjs && node scripts/copy-opencode-plugin-templates.mjs",
|
|
5
5
|
"build:dist:in-place": "tsc && node scripts/copy-codex-scripts.mjs && node scripts/copy-opencode-plugin-templates.mjs",
|
|
6
|
-
"test
|
|
7
|
-
"test:integration
|
|
6
|
+
"lisa-test-run": "([ -d dist/configs ] || bun run build) && node dist/cli/lisa-test-run.js --profile lisa",
|
|
7
|
+
"test:integration": "$npm_execpath run lisa-test-run -- --adapter vitest -- vitest run tests/integration",
|
|
8
|
+
"test:integration:push": "$npm_execpath run lisa-test-run -- --adapter vitest -- vitest run tests/integration --exclude='**/mutation-gate-bite.test.ts' --exclude='**/mutation-gate-diff-bite.test.ts' --exclude='**/mutation-sigterm-control.test.ts' --exclude='**/mutation-performance-fixture.test.ts' --exclude='**/mutation-performance-packed-apply.test.ts'",
|
|
8
9
|
"postinstall": "bash ./scripts/install-claude-plugins.sh || true; node ./scripts/install-generated-artifact-merge-driver.mjs || true; [ -d dist/configs ] || tsc || true",
|
|
9
10
|
"pretest": "[ -d dist/configs ] || bun run build",
|
|
10
|
-
"test": "vitest run",
|
|
11
|
-
"test:unit": "vitest run --exclude='**/integration/**'",
|
|
12
|
-
"test:cov": "vitest run --coverage",
|
|
13
|
-
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit vitest run --coverage --exclude='**/integration/**'",
|
|
11
|
+
"test": "$npm_execpath run lisa-test-run -- --adapter vitest -- vitest run",
|
|
12
|
+
"test:unit": "$npm_execpath run lisa-test-run -- --adapter vitest -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
13
|
+
"test:cov": "$npm_execpath run lisa-test-run -- --adapter vitest -- vitest run --coverage",
|
|
14
|
+
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit $npm_execpath run lisa-test-run -- --adapter vitest -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
14
15
|
"pretest:mutation": "[ -d dist/configs ] || bun run build",
|
|
15
|
-
"test:mutation": "node scripts/lisa-mutation.mjs",
|
|
16
|
-
"test:mutation:full": "node scripts/lisa-mutation.mjs --all",
|
|
16
|
+
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' $npm_execpath run lisa-test-run -- --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
17
|
+
"test:mutation:full": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' $npm_execpath run lisa-test-run -- --adapter direct -- node scripts/lisa-mutation.mjs --all",
|
|
17
18
|
"lint": "oxlint --disable-nested-config && eslint . --quiet",
|
|
18
19
|
"lint:fix": "oxlint --fix --disable-nested-config && eslint . --fix",
|
|
19
20
|
"lint:slow": "eslint . --config eslint.slow.config.ts --quiet",
|
|
@@ -28,7 +29,7 @@
|
|
|
28
29
|
"prepare": "node -e \"if (process.env.INIT_CWD?.includes('.serverless')) process.exit(0); process.exit(1);\" || husky install || true",
|
|
29
30
|
"start": "node dist/index.js",
|
|
30
31
|
"dev": "tsx src/index.ts",
|
|
31
|
-
"test:watch": "vitest",
|
|
32
|
+
"test:watch": "$npm_execpath run lisa-test-run -- --adapter vitest -- vitest",
|
|
32
33
|
"update-node-version": "tsx scripts/update-node-version.ts",
|
|
33
34
|
"cleanup:amplify-branches": "bash scripts/cleanup-amplify-branches.sh",
|
|
34
35
|
"cleanup:github-branches": "bash scripts/cleanup-github-branches.sh",
|
|
@@ -58,7 +59,7 @@
|
|
|
58
59
|
"check:rules-pairing": "bash scripts/check-rules-pairing.sh",
|
|
59
60
|
"check:pipeline-status-reads": "node scripts/check-pipeline-status-reads.mjs",
|
|
60
61
|
"check:whole-output-guards": "node scripts/check-whole-output-guards.mjs",
|
|
61
|
-
"check:shell-guard-refusals": "([ -d dist/configs ] || bun run build) && node scripts/check-shell-guard-refusal-coverage.mjs",
|
|
62
|
+
"check:shell-guard-refusals": "([ -d dist/configs ] || bun run build) && $npm_execpath run lisa-test-run -- --adapter direct -- node scripts/check-shell-guard-refusal-coverage.mjs",
|
|
62
63
|
"check:workflow-inputs": "node scripts/detect-stale-workflow-inputs.mjs --project . --project typescript/create-only --project rails/create-only --json",
|
|
63
64
|
"check:conflict-markers": "node all/copy-overwrite/scripts/check-conflict-markers.mjs",
|
|
64
65
|
"check:vacuous-required-checks": "node typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs --vacuity",
|
|
@@ -162,7 +163,7 @@
|
|
|
162
163
|
"zod-validation-error": "^4.0.0"
|
|
163
164
|
},
|
|
164
165
|
"name": "@codyswann/lisa",
|
|
165
|
-
"version": "4.
|
|
166
|
+
"version": "4.29.0",
|
|
166
167
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
167
168
|
"main": "dist/index.js",
|
|
168
169
|
"exports": {
|
|
@@ -211,6 +212,7 @@
|
|
|
211
212
|
},
|
|
212
213
|
"bin": {
|
|
213
214
|
"lisa": "dist/index.js",
|
|
215
|
+
"lisa-test-run": "dist/cli/lisa-test-run.js",
|
|
214
216
|
"setup-deploy-key": "scripts/setup-deploy-key.sh"
|
|
215
217
|
},
|
|
216
218
|
"keywords": [
|
|
@@ -295,6 +297,8 @@
|
|
|
295
297
|
"@stryker-mutator/vitest-runner": "^9.0.0",
|
|
296
298
|
"@types/js-yaml": "^4.0.9",
|
|
297
299
|
"@types/semver": "^7.7.1",
|
|
300
|
+
"aws-cdk-lib": "2.260.0",
|
|
301
|
+
"constructs": "^10.5.0",
|
|
298
302
|
"eslint-plugin-oxlint": "^1.62.0",
|
|
299
303
|
"fast-check": "^4.9.0",
|
|
300
304
|
"oxlint": "^1.62.0",
|
|
@@ -307,6 +311,6 @@
|
|
|
307
311
|
"test": "tests"
|
|
308
312
|
},
|
|
309
313
|
"types": "./dist/index.d.ts",
|
|
310
|
-
"lisaReleaseCommit": "
|
|
311
|
-
"gitHead": "
|
|
314
|
+
"lisaReleaseCommit": "1d601d3045b937aeb2465350044fee99c37bdc39",
|
|
315
|
+
"gitHead": "1d601d3045b937aeb2465350044fee99c37bdc39"
|
|
312
316
|
}
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
"scripts": {
|
|
4
4
|
"setup:deploy-key": "setup-deploy-key",
|
|
5
5
|
"typecheck:lisa": "tsc --noEmit",
|
|
6
|
-
"test": "vitest run",
|
|
7
|
-
"test:
|
|
6
|
+
"test": "lisa-test-run --profile phaser --adapter vitest -- vitest run",
|
|
7
|
+
"test:unit": "lisa-test-run --profile phaser --adapter vitest -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
8
|
+
"test:integration:lisa": "lisa-test-run --profile phaser --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
9
|
+
"test:cov": "lisa-test-run --profile phaser --adapter vitest -- vitest run --coverage",
|
|
10
|
+
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile phaser --adapter vitest -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
11
|
+
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile phaser --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
12
|
+
"test:watch": "lisa-test-run --profile phaser --adapter vitest -- vitest",
|
|
13
|
+
"test:e2e": "lisa-test-run --profile phaser --adapter direct -- playwright test",
|
|
8
14
|
"lint:lisa": "oxlint && eslint . --quiet",
|
|
9
15
|
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
10
16
|
"lint:slow:lisa": "eslint . --config eslint.slow.config.ts --quiet",
|
|
@@ -15,7 +21,7 @@
|
|
|
15
21
|
"sg:scan:lisa": "ast-grep scan",
|
|
16
22
|
"sg:test": "ast-grep test",
|
|
17
23
|
"prepare": "husky install || true",
|
|
18
|
-
"test:node": "node scripts/lisa-test-node.mjs"
|
|
24
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile phaser --adapter direct -- node scripts/lisa-test-node.mjs"
|
|
19
25
|
},
|
|
20
26
|
"devDependencies": {
|
|
21
27
|
"@ast-grep/cli": "^0.40.4",
|
|
@@ -134,10 +134,11 @@ is_inactive() {
|
|
|
134
134
|
# The FIFO is a rendezvous, not storage: a named pipe holds no data at rest, so
|
|
135
135
|
# the value still never lands on disk (CWE-922) and a kill at any point leaves an
|
|
136
136
|
# empty pipe behind rather than a readable token. The directory is `mktemp -d`,
|
|
137
|
-
# which is 0700.
|
|
137
|
+
# which is 0700. Its explicit Lisa prefix makes an interrupted resolver
|
|
138
|
+
# attributable to the owning scratch lifecycle instead of anonymous `tmp.*`.
|
|
138
139
|
resolve_secret() {
|
|
139
140
|
local resolver="$1" name="$2" value="" child="" dir="" fifo=""
|
|
140
|
-
dir="$(mktemp -d)" || return 0
|
|
141
|
+
dir="$(mktemp -d "${TMPDIR:-/tmp}/lisa-sonar-resolver.XXXXXXXX")" || return 0
|
|
141
142
|
fifo="$dir/resolver"
|
|
142
143
|
if ! mkfifo -m 600 "$fifo" 2>/dev/null; then
|
|
143
144
|
rm -rf "$dir"
|
|
@@ -134,10 +134,11 @@ is_inactive() {
|
|
|
134
134
|
# The FIFO is a rendezvous, not storage: a named pipe holds no data at rest, so
|
|
135
135
|
# the value still never lands on disk (CWE-922) and a kill at any point leaves an
|
|
136
136
|
# empty pipe behind rather than a readable token. The directory is `mktemp -d`,
|
|
137
|
-
# which is 0700.
|
|
137
|
+
# which is 0700. Its explicit Lisa prefix makes an interrupted resolver
|
|
138
|
+
# attributable to the owning scratch lifecycle instead of anonymous `tmp.*`.
|
|
138
139
|
resolve_secret() {
|
|
139
140
|
local resolver="$1" name="$2" value="" child="" dir="" fifo=""
|
|
140
|
-
dir="$(mktemp -d)" || return 0
|
|
141
|
+
dir="$(mktemp -d "${TMPDIR:-/tmp}/lisa-sonar-resolver.XXXXXXXX")" || return 0
|
|
141
142
|
fifo="$dir/resolver"
|
|
142
143
|
if ! mkfifo -m 600 "$fifo" 2>/dev/null; then
|
|
143
144
|
rm -rf "$dir"
|
|
@@ -134,10 +134,11 @@ is_inactive() {
|
|
|
134
134
|
# The FIFO is a rendezvous, not storage: a named pipe holds no data at rest, so
|
|
135
135
|
# the value still never lands on disk (CWE-922) and a kill at any point leaves an
|
|
136
136
|
# empty pipe behind rather than a readable token. The directory is `mktemp -d`,
|
|
137
|
-
# which is 0700.
|
|
137
|
+
# which is 0700. Its explicit Lisa prefix makes an interrupted resolver
|
|
138
|
+
# attributable to the owning scratch lifecycle instead of anonymous `tmp.*`.
|
|
138
139
|
resolve_secret() {
|
|
139
140
|
local resolver="$1" name="$2" value="" child="" dir="" fifo=""
|
|
140
|
-
dir="$(mktemp -d)" || return 0
|
|
141
|
+
dir="$(mktemp -d "${TMPDIR:-/tmp}/lisa-sonar-resolver.XXXXXXXX")" || return 0
|
|
141
142
|
fifo="$dir/resolver"
|
|
142
143
|
if ! mkfifo -m 600 "$fifo" 2>/dev/null; then
|
|
143
144
|
rm -rf "$dir"
|