@codyswann/lisa 4.28.5 → 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.
Files changed (188) hide show
  1. package/all/copy-overwrite/scripts/lisa-gates.mjs +2 -1
  2. package/all/copy-overwrite/scripts/lisa-hooks/sonar-secrets.sh +3 -2
  3. package/cdk/create-only/vitest.config.local.ts +5 -1
  4. package/cdk/package-lisa/package.lisa.json +14 -7
  5. package/dist/cli/lisa-test-run-bootstrap.d.ts +3 -0
  6. package/dist/cli/lisa-test-run-bootstrap.d.ts.map +1 -0
  7. package/dist/cli/lisa-test-run-bootstrap.js +201 -0
  8. package/dist/cli/lisa-test-run-bootstrap.js.map +1 -0
  9. package/dist/cli/lisa-test-run-ipc.d.ts +42 -0
  10. package/dist/cli/lisa-test-run-ipc.d.ts.map +1 -0
  11. package/dist/cli/lisa-test-run-ipc.js +200 -0
  12. package/dist/cli/lisa-test-run-ipc.js.map +1 -0
  13. package/dist/cli/lisa-test-run-process-group.d.ts +30 -0
  14. package/dist/cli/lisa-test-run-process-group.d.ts.map +1 -0
  15. package/dist/cli/lisa-test-run-process-group.js +123 -0
  16. package/dist/cli/lisa-test-run-process-group.js.map +1 -0
  17. package/dist/cli/lisa-test-run-reaper.d.ts +3 -0
  18. package/dist/cli/lisa-test-run-reaper.d.ts.map +1 -0
  19. package/dist/cli/lisa-test-run-reaper.js +195 -0
  20. package/dist/cli/lisa-test-run-reaper.js.map +1 -0
  21. package/dist/cli/lisa-test-run-runtime.d.ts +46 -0
  22. package/dist/cli/lisa-test-run-runtime.d.ts.map +1 -0
  23. package/dist/cli/lisa-test-run-runtime.js +123 -0
  24. package/dist/cli/lisa-test-run-runtime.js.map +1 -0
  25. package/dist/cli/lisa-test-run-supervisor.d.ts +13 -0
  26. package/dist/cli/lisa-test-run-supervisor.d.ts.map +1 -0
  27. package/dist/cli/lisa-test-run-supervisor.js +268 -0
  28. package/dist/cli/lisa-test-run-supervisor.js.map +1 -0
  29. package/dist/cli/lisa-test-run.d.ts +3 -0
  30. package/dist/cli/lisa-test-run.d.ts.map +1 -0
  31. package/dist/cli/lisa-test-run.js +66 -0
  32. package/dist/cli/lisa-test-run.js.map +1 -0
  33. package/dist/configs/vitest/base.d.ts.map +1 -1
  34. package/dist/configs/vitest/base.js +5 -2
  35. package/dist/configs/vitest/base.js.map +1 -1
  36. package/dist/configs/vitest/cdk.d.ts +4 -0
  37. package/dist/configs/vitest/cdk.d.ts.map +1 -1
  38. package/dist/configs/vitest/cdk.js +5 -0
  39. package/dist/configs/vitest/cdk.js.map +1 -1
  40. package/dist/configs/vitest/harper-fabric.d.ts.map +1 -1
  41. package/dist/configs/vitest/harper-fabric.js +1 -0
  42. package/dist/configs/vitest/harper-fabric.js.map +1 -1
  43. package/dist/configs/vitest/nestjs.d.ts.map +1 -1
  44. package/dist/configs/vitest/nestjs.js +1 -0
  45. package/dist/configs/vitest/nestjs.js.map +1 -1
  46. package/dist/configs/vitest/phaser.d.ts.map +1 -1
  47. package/dist/configs/vitest/phaser.js +1 -0
  48. package/dist/configs/vitest/phaser.js.map +1 -1
  49. package/dist/configs/vitest/scratch-authority.d.ts +25 -0
  50. package/dist/configs/vitest/scratch-authority.d.ts.map +1 -0
  51. package/dist/configs/vitest/scratch-authority.js +107 -0
  52. package/dist/configs/vitest/scratch-authority.js.map +1 -0
  53. package/dist/configs/vitest/scratch-bound-cleanup-programs.d.ts +5 -0
  54. package/dist/configs/vitest/scratch-bound-cleanup-programs.d.ts.map +1 -0
  55. package/dist/configs/vitest/scratch-bound-cleanup-programs.js +219 -0
  56. package/dist/configs/vitest/scratch-bound-cleanup-programs.js.map +1 -0
  57. package/dist/configs/vitest/scratch-bound-cleanup.d.ts +28 -0
  58. package/dist/configs/vitest/scratch-bound-cleanup.d.ts.map +1 -0
  59. package/dist/configs/vitest/scratch-bound-cleanup.js +155 -0
  60. package/dist/configs/vitest/scratch-bound-cleanup.js.map +1 -0
  61. package/dist/configs/vitest/scratch-bound-root-cleanup.d.ts +17 -0
  62. package/dist/configs/vitest/scratch-bound-root-cleanup.d.ts.map +1 -0
  63. package/dist/configs/vitest/scratch-bound-root-cleanup.js +149 -0
  64. package/dist/configs/vitest/scratch-bound-root-cleanup.js.map +1 -0
  65. package/dist/configs/vitest/scratch-global-setup.d.ts +17 -9
  66. package/dist/configs/vitest/scratch-global-setup.d.ts.map +1 -1
  67. package/dist/configs/vitest/scratch-global-setup.js +103 -35
  68. package/dist/configs/vitest/scratch-global-setup.js.map +1 -1
  69. package/dist/configs/vitest/scratch-leak-setup.d.ts +2 -0
  70. package/dist/configs/vitest/scratch-leak-setup.d.ts.map +1 -0
  71. package/dist/configs/vitest/scratch-leak-setup.js +108 -0
  72. package/dist/configs/vitest/scratch-leak-setup.js.map +1 -0
  73. package/dist/configs/vitest/scratch-namespace-authority.d.ts +80 -0
  74. package/dist/configs/vitest/scratch-namespace-authority.d.ts.map +1 -0
  75. package/dist/configs/vitest/scratch-namespace-authority.js +291 -0
  76. package/dist/configs/vitest/scratch-namespace-authority.js.map +1 -0
  77. package/dist/configs/vitest/scratch-owner.d.ts +131 -0
  78. package/dist/configs/vitest/scratch-owner.d.ts.map +1 -0
  79. package/dist/configs/vitest/scratch-owner.js +297 -0
  80. package/dist/configs/vitest/scratch-owner.js.map +1 -0
  81. package/dist/configs/vitest/scratch-route-profile.d.ts +36 -0
  82. package/dist/configs/vitest/scratch-route-profile.d.ts.map +1 -0
  83. package/dist/configs/vitest/scratch-route-profile.js +217 -0
  84. package/dist/configs/vitest/scratch-route-profile.js.map +1 -0
  85. package/dist/configs/vitest/scratch-run-root-compatibility.d.ts +33 -0
  86. package/dist/configs/vitest/scratch-run-root-compatibility.d.ts.map +1 -0
  87. package/dist/configs/vitest/scratch-run-root-compatibility.js +137 -0
  88. package/dist/configs/vitest/scratch-run-root-compatibility.js.map +1 -0
  89. package/dist/configs/vitest/scratch-run-root-intent.d.ts +66 -0
  90. package/dist/configs/vitest/scratch-run-root-intent.d.ts.map +1 -0
  91. package/dist/configs/vitest/scratch-run-root-intent.js +183 -0
  92. package/dist/configs/vitest/scratch-run-root-intent.js.map +1 -0
  93. package/dist/configs/vitest/scratch-setup.d.ts.map +1 -1
  94. package/dist/configs/vitest/scratch-setup.js +45 -15
  95. package/dist/configs/vitest/scratch-setup.js.map +1 -1
  96. package/dist/configs/vitest/scratch-supervision-intent.d.ts +8 -0
  97. package/dist/configs/vitest/scratch-supervision-intent.d.ts.map +1 -0
  98. package/dist/configs/vitest/scratch-supervision-intent.js +125 -0
  99. package/dist/configs/vitest/scratch-supervision-intent.js.map +1 -0
  100. package/dist/configs/vitest/scratch-supervision-protocol.d.ts +12 -0
  101. package/dist/configs/vitest/scratch-supervision-protocol.d.ts.map +1 -0
  102. package/dist/configs/vitest/scratch-supervision-protocol.js +230 -0
  103. package/dist/configs/vitest/scratch-supervision-protocol.js.map +1 -0
  104. package/dist/configs/vitest/scratch-supervision.d.ts +64 -0
  105. package/dist/configs/vitest/scratch-supervision.d.ts.map +1 -0
  106. package/dist/configs/vitest/scratch-supervision.js +209 -0
  107. package/dist/configs/vitest/scratch-supervision.js.map +1 -0
  108. package/dist/configs/vitest/scratch-sweep.d.ts +66 -0
  109. package/dist/configs/vitest/scratch-sweep.d.ts.map +1 -0
  110. package/dist/configs/vitest/scratch-sweep.js +82 -0
  111. package/dist/configs/vitest/scratch-sweep.js.map +1 -0
  112. package/dist/configs/vitest/scratch.d.ts +14 -187
  113. package/dist/configs/vitest/scratch.d.ts.map +1 -1
  114. package/dist/configs/vitest/scratch.js +18 -285
  115. package/dist/configs/vitest/scratch.js.map +1 -1
  116. package/dist/configs/vitest/typescript.d.ts.map +1 -1
  117. package/dist/configs/vitest/typescript.js +1 -0
  118. package/dist/configs/vitest/typescript.js.map +1 -1
  119. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  120. package/dist/core/lisa-owned-hash-ledger.js +4 -0
  121. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  122. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  123. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  124. package/dist/core/upstream-evidence-manifest.js +59 -13
  125. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  126. package/expo/package-lisa/package.lisa.json +14 -14
  127. package/harper-fabric/package-lisa/package.lisa.json +8 -3
  128. package/nestjs/create-only/vitest.config.local.ts +5 -1
  129. package/nestjs/package-lisa/package.lisa.json +14 -8
  130. package/npm-package/package-lisa/package.lisa.json +8 -0
  131. package/package.json +17 -13
  132. package/phaser/package-lisa/package.lisa.json +9 -3
  133. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  134. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  135. package/plugins/lisa/hooks/sonar-secrets.sh +3 -2
  136. package/plugins/lisa-agy/plugin.json +1 -1
  137. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  138. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  139. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  140. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  141. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  142. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  143. package/plugins/lisa-copilot/hooks/sonar-secrets.sh +3 -2
  144. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  145. package/plugins/lisa-cursor/hooks/sonar-secrets.sh +3 -2
  146. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  147. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  148. package/plugins/lisa-expo-agy/plugin.json +1 -1
  149. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  150. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  151. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  152. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  153. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  154. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  155. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  156. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  157. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  158. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  159. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  160. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  161. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  162. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  163. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  164. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  165. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  166. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  167. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  168. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  169. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  170. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  171. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  172. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  173. package/plugins/lisa-rails-agy/plugin.json +1 -1
  174. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  175. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  176. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  177. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  178. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  179. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  180. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  181. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  182. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  183. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  184. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  185. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  186. package/plugins/src/base/hooks/sonar-secrets.sh +3 -2
  187. package/typescript/create-only/vitest.config.local.ts +5 -1
  188. package/typescript/package-lisa/package.lisa.json +14 -8
@@ -0,0 +1,268 @@
1
+ import { env } from "node:process";
2
+ import { openOwnedScratchRunRoot, prepareOwnedScratchRunRoot, removeOwnedScratchRunRoot, } from "../configs/vitest/scratch.js";
3
+ import { readBoundedScratchNames, removeAuthorizedScratchChildren, } from "../configs/vitest/scratch-authority.js";
4
+ import { SCRATCH_OWNER_FILE } from "../configs/vitest/scratch-owner.js";
5
+ import { processBirthFingerprint } from "../configs/vitest/scratch-owner.js";
6
+ import { SCRATCH_SUPERVISION_LEASE_ENV, createScratchSupervisionLease, } from "../configs/vitest/scratch-supervision.js";
7
+ import { sendMessage, stopBootstrap, waitForExit, waitForMessage, waitForPayload, } from "./lisa-test-run-ipc.js";
8
+ import { assertTestRunPlatform } from "./lisa-test-run-process-group.js";
9
+ import { FORWARDED_SIGNALS, createSignalEscalation, drainSupervisedTarget, forkDetachedSibling, payloadEnvironment, rejectOnReaperExit, } from "./lisa-test-run-runtime.js";
10
+ /** Private deterministic protocol-fault seam, never inherited by the payload. */
11
+ const TEST_FAULT_ENV = "LISA_TEST_RUN_TEST_FAULT";
12
+ /**
13
+ * Prepare the immutable root intent before starting protocol companions.
14
+ * @param profile - Frozen wrapper route profile
15
+ * @returns Immutable root intent
16
+ */
17
+ function prepareIntent(profile) {
18
+ return prepareOwnedScratchRunRoot(env[TEST_FAULT_ENV] === "birth-unavailable-on-prepare"
19
+ ? {
20
+ platform: process.platform,
21
+ processBirthFingerprint: () => undefined,
22
+ suiteLabel: profile.suiteLabel,
23
+ registeredPrefixes: profile.registeredPrefixes,
24
+ }
25
+ : {
26
+ suiteLabel: profile.suiteLabel,
27
+ registeredPrefixes: profile.registeredPrefixes,
28
+ });
29
+ }
30
+ /**
31
+ * Arm both companions and materialize only after root/target acknowledgements.
32
+ * @param state - One foreground supervision state
33
+ */
34
+ async function armAuthorities(state) {
35
+ await waitForMessage(state.reaper, "REAPER_READY");
36
+ const bootstrap = forkDetachedSibling("lisa-test-run-bootstrap");
37
+ // eslint-disable-next-line functional/immutable-data -- companion handle captured once
38
+ state.bootstrap = bootstrap;
39
+ await waitForMessage(bootstrap, "BOOTSTRAP_READY");
40
+ const birth = processBirthFingerprint(bootstrap.pid ?? 0);
41
+ if (bootstrap.pid === undefined || birth === undefined) {
42
+ throw new Error("Could not bind bootstrap process birth");
43
+ }
44
+ const target = {
45
+ pid: bootstrap.pid,
46
+ pgid: bootstrap.pid,
47
+ processBirthFingerprint: birth,
48
+ };
49
+ // eslint-disable-next-line functional/immutable-data -- target authority captured once
50
+ state.target = target;
51
+ const rootAck = waitForMessage(state.reaper, "ROOT_INTENT_ARMED", state.intent.token);
52
+ await sendMessage(state.reaper, {
53
+ type: "ROOT_INTENT",
54
+ correlation: state.intent.token,
55
+ intent: state.intent,
56
+ });
57
+ await rootAck;
58
+ const targetAck = waitForMessage(state.reaper, "TARGET_ARMED", state.intent.token);
59
+ await sendMessage(state.reaper, {
60
+ type: "TARGET_INTENT",
61
+ correlation: state.intent.token,
62
+ target,
63
+ });
64
+ await targetAck;
65
+ const rootArmed = waitForMessage(state.reaper, "ROOT_ARMED", state.intent.token);
66
+ await sendMessage(state.reaper, {
67
+ type: "MATERIALIZE_ROOT",
68
+ correlation: state.intent.token,
69
+ });
70
+ const acknowledgement = await rootArmed;
71
+ const opened = openOwnedScratchRunRoot(state.intent);
72
+ const acknowledgedRoot = acknowledgement["root"];
73
+ if (opened === undefined ||
74
+ acknowledgedRoot?.canonicalPath !== opened.owner.root.canonicalPath ||
75
+ acknowledgedRoot.dev !== opened.owner.root.dev ||
76
+ acknowledgedRoot.ino !== opened.owner.root.ino) {
77
+ throw new Error("Detached reaper acknowledged a different scratch root identity");
78
+ }
79
+ // eslint-disable-next-line functional/immutable-data -- exact materialization acknowledgement transition
80
+ state.rootMaterialized = true;
81
+ if (env[TEST_FAULT_ENV] === "kill-reaper-after-root") {
82
+ state.reaper.kill("SIGKILL");
83
+ await waitForExit(state.reaper);
84
+ throw new Error("Detached reaper exited after root materialization");
85
+ }
86
+ }
87
+ /**
88
+ * Send one immutable command after root and target authority are armed.
89
+ * @param state - One foreground supervision state
90
+ * @param argv - Exact payload argv
91
+ * @param profile - Frozen wrapper route profile
92
+ * @param adapter - Explicit payload delivery adapter
93
+ */
94
+ async function configurePayload(state, argv, profile, adapter) {
95
+ if (state.bootstrap === undefined)
96
+ throw new Error("Bootstrap is not armed");
97
+ const lease = createScratchSupervisionLease(state.intent, {
98
+ suiteLabel: state.intent.suiteLabel,
99
+ registeredPrefixes: state.intent.registeredPrefixes,
100
+ });
101
+ const command = {
102
+ schema: 1,
103
+ argv,
104
+ env: payloadEnvironment(JSON.stringify(lease), profile, adapter === "direct" ? state.intent.rootPath : undefined),
105
+ };
106
+ if (adapter === "direct") {
107
+ // eslint-disable-next-line functional/immutable-data -- immutable invocation snapshot captured once
108
+ state.directBaseline = new Set(readBoundedScratchNames(state.intent.rootPath));
109
+ }
110
+ const commandReady = waitForMessage(state.bootstrap, "COMMAND_READY");
111
+ await sendMessage(state.bootstrap, { type: "COMMAND", command });
112
+ await commandReady;
113
+ }
114
+ /**
115
+ * Attribute and remove direct-adapter scratch additions after the payload drains.
116
+ * @param state - One foreground supervision state
117
+ */
118
+ function auditDirectScratch(state) {
119
+ if (state.directBaseline === undefined)
120
+ return;
121
+ const opened = openOwnedScratchRunRoot(state.intent);
122
+ if (opened === undefined) {
123
+ throw new Error("Direct scratch root disappeared before invocation audit");
124
+ }
125
+ const additions = readBoundedScratchNames(opened.path).filter(name => name !== SCRATCH_OWNER_FILE && !state.directBaseline?.has(name));
126
+ const unregistered = additions.filter(name => !opened.owner.registeredPrefixes.some(prefix => name.startsWith(prefix)));
127
+ removeAuthorizedScratchChildren({
128
+ parent: opened.owner.root,
129
+ basenames: additions,
130
+ });
131
+ if (unregistered.length > 0) {
132
+ const names = [...unregistered].sort((left, right) => left === right ? 0 : left < right ? -1 : 1);
133
+ throw new Error(`Suite ${opened.owner.suiteLabel} leaked ${String(names.length)} unregistered direct scratch fixture(s): ${names.join(", ")}`);
134
+ }
135
+ }
136
+ /**
137
+ * Report a cleanup verdict without replacing an already-failing payload.
138
+ * @param error - Secondary direct-audit failure
139
+ */
140
+ function reportPreservedAuditFailure(error) {
141
+ process.stderr.write(`lisa-test-run direct scratch audit also failed: ${error instanceof Error ? error.message : String(error)}\n`);
142
+ }
143
+ /**
144
+ * Execute the armed payload while retaining the first forwarded signal.
145
+ * @param state - One foreground supervision state
146
+ * @returns Exact payload outcome
147
+ */
148
+ async function executePayload(state) {
149
+ const bootstrap = state.bootstrap;
150
+ const target = state.target;
151
+ if (bootstrap === undefined || target === undefined) {
152
+ throw new Error("Payload authority is not fully armed");
153
+ }
154
+ const escalation = createSignalEscalation(target);
155
+ // eslint-disable-next-line functional/immutable-data -- cancellable handle scoped to this run
156
+ state.signalEscalation = escalation;
157
+ for (const signal of FORWARDED_SIGNALS) {
158
+ // Persistent, not `once`. A one-shot listener is removed the first time it
159
+ // fires, and Node restores that signal's DEFAULT disposition the moment its
160
+ // last listener goes. A second delivery of the same signal during the grace
161
+ // window then kills this process outright — skipping the scratch removal
162
+ // this supervisor exists to guarantee. Ctrl-C pressed twice, or a scheduler
163
+ // that re-sends SIGTERM, is the ordinary case. The `finally` in
164
+ // superviseTestRun removes every one of these before the outcome is
165
+ // re-raised, so staying armed costs nothing.
166
+ process.on(signal, () => {
167
+ if (state.forwardedSignal !== undefined)
168
+ return;
169
+ // eslint-disable-next-line functional/immutable-data -- first observed terminal signal is preserved
170
+ state.forwardedSignal = signal;
171
+ void sendMessage(bootstrap, { type: "SIGNAL", signal }).catch(() => undefined);
172
+ escalation.begin(signal);
173
+ });
174
+ }
175
+ const outcomePromise = waitForPayload(bootstrap, () => state.forwardedSignal !== undefined);
176
+ await sendMessage(bootstrap, { type: "GO" });
177
+ if (env[TEST_FAULT_ENV] === "kill-reaper-after-go") {
178
+ state.reaper.kill("SIGKILL");
179
+ }
180
+ return await Promise.race([
181
+ outcomePromise,
182
+ rejectOnReaperExit(state.reaper),
183
+ escalation.promise,
184
+ ]);
185
+ }
186
+ /**
187
+ * Drain, clean, and disarm after one payload result.
188
+ * @param state - One foreground supervision state
189
+ * @param outcome - Exact payload outcome
190
+ * @returns Outcome after cleanup and disarm
191
+ */
192
+ async function finishSuccess(state, outcome) {
193
+ state.signalEscalation?.cancel();
194
+ await drainSupervisedTarget(state.target);
195
+ if (state.bootstrap !== undefined)
196
+ await stopBootstrap(state.bootstrap);
197
+ try {
198
+ auditDirectScratch(state);
199
+ }
200
+ catch (error) {
201
+ if (outcome.code === 0 && outcome.signal === null)
202
+ throw error;
203
+ reportPreservedAuditFailure(error);
204
+ }
205
+ removeOwnedScratchRunRoot(state.intent);
206
+ // eslint-disable-next-line code-organization/enforce-statement-order -- disarm is meaningful only after foreground removal
207
+ const disarmedAck = waitForMessage(state.reaper, "DISARMED");
208
+ await sendMessage(state.reaper, { type: "CLEANED" });
209
+ await disarmedAck;
210
+ await waitForExit(state.reaper);
211
+ // eslint-disable-next-line functional/immutable-data -- terminal verified state
212
+ state.disarmed = true;
213
+ return state.forwardedSignal === undefined
214
+ ? outcome
215
+ : { code: null, signal: state.forwardedSignal };
216
+ }
217
+ /**
218
+ * Best-effort foreground cleanup that never hides a drain authority failure.
219
+ * @param state - One foreground supervision state
220
+ */
221
+ async function cleanupFailure(state) {
222
+ await drainSupervisedTarget(state.target);
223
+ if (state.bootstrap !== undefined) {
224
+ try {
225
+ await stopBootstrap(state.bootstrap);
226
+ }
227
+ catch {
228
+ state.bootstrap.kill("SIGKILL");
229
+ }
230
+ }
231
+ if (state.rootMaterialized)
232
+ removeOwnedScratchRunRoot(state.intent);
233
+ }
234
+ /**
235
+ * Arm and execute one supervised command.
236
+ * @param argv - Exact payload argv
237
+ * @param profile - Frozen wrapper route profile
238
+ * @param adapter - Explicit payload delivery adapter
239
+ * @returns Payload outcome after proven cleanup
240
+ */
241
+ export async function superviseTestRun(argv, profile, adapter) {
242
+ assertTestRunPlatform();
243
+ delete env[SCRATCH_SUPERVISION_LEASE_ENV];
244
+ // eslint-disable-next-line code-organization/enforce-statement-order -- inherited authority must be cleared before intent preparation
245
+ const state = {
246
+ intent: prepareIntent(profile),
247
+ reaper: forkDetachedSibling("lisa-test-run-reaper"),
248
+ rootMaterialized: false,
249
+ disarmed: false,
250
+ };
251
+ try {
252
+ await armAuthorities(state);
253
+ await configurePayload(state, argv, profile, adapter);
254
+ return await finishSuccess(state, await executePayload(state));
255
+ }
256
+ catch (error) {
257
+ await cleanupFailure(state);
258
+ throw error;
259
+ }
260
+ finally {
261
+ for (const signal of FORWARDED_SIGNALS)
262
+ process.removeAllListeners(signal);
263
+ state.signalEscalation?.cancel();
264
+ if (!state.disarmed && state.reaper.connected)
265
+ state.reaper.disconnect();
266
+ }
267
+ }
268
+ //# sourceMappingURL=lisa-test-run-supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lisa-test-run-supervisor.js","sourceRoot":"","sources":["../../src/cli/lisa-test-run-supervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export { assertTestRunPlatform } from "./lisa-test-run-process-group.js";
3
+ //# sourceMappingURL=lisa-test-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lisa-test-run.d.ts","sourceRoot":"","sources":["../../src/cli/lisa-test-run.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ /** Public entrypoint for birth-bound test supervision and scratch cleanup. */
3
+ // @ts-expect-error -- the shipped JavaScript helper carries the same checked JSDoc signature
4
+ import { invokedAsScript } from "../../scripts/lib/invoked-as-script.mjs";
5
+ import { resolveScratchRouteProfile, } from "../configs/vitest/scratch-route-profile.js";
6
+ import { superviseTestRun, } from "./lisa-test-run-supervisor.js";
7
+ export { assertTestRunPlatform } from "./lisa-test-run-process-group.js";
8
+ /** Dedicated operational-failure exit status. */
9
+ const OPERATIONAL_FAILURE_EXIT = 1;
10
+ /**
11
+ * Parse the exact public `--profile <route> --adapter <kind> -- <command>` syntax.
12
+ * @param argv - Public CLI arguments
13
+ * @returns Validated route profile and payload argv
14
+ */
15
+ function commandArgv(argv) {
16
+ if (argv[0] !== "--profile" ||
17
+ argv[1] === undefined ||
18
+ argv[2] !== "--adapter" ||
19
+ (argv[3] !== "vitest" && argv[3] !== "direct") ||
20
+ argv[4] !== "--" ||
21
+ argv.length < 6 ||
22
+ argv[5] === undefined) {
23
+ throw new Error("Usage: lisa-test-run --profile <route> --adapter vitest|direct -- <executable> [args...]");
24
+ }
25
+ return {
26
+ profile: resolveScratchRouteProfile(argv[1]),
27
+ adapter: argv[3],
28
+ argv: argv.slice(5),
29
+ };
30
+ }
31
+ /**
32
+ * Parse public input or emit the usage verdict without starting companions.
33
+ * @returns Validated invocation or undefined after a usage verdict
34
+ */
35
+ function invocationOrExit() {
36
+ try {
37
+ return commandArgv(process.argv.slice(2));
38
+ }
39
+ catch (error) {
40
+ process.stderr.write(`${error.message}\n`);
41
+ process.exitCode = 2;
42
+ return undefined;
43
+ }
44
+ }
45
+ /** Run the public CLI and preserve the child result only after cleanup. */
46
+ async function main() {
47
+ const invocation = invocationOrExit();
48
+ if (invocation === undefined)
49
+ return;
50
+ try {
51
+ const outcome = await superviseTestRun(invocation.argv, invocation.profile, invocation.adapter);
52
+ if (outcome.signal !== null) {
53
+ process.removeAllListeners(outcome.signal);
54
+ process.kill(process.pid, outcome.signal);
55
+ return;
56
+ }
57
+ process.exit(outcome.code ?? OPERATIONAL_FAILURE_EXIT);
58
+ }
59
+ catch (error) {
60
+ process.stderr.write(`lisa-test-run failed: ${error instanceof Error ? error.message : String(error)}\n`);
61
+ process.exit(OPERATIONAL_FAILURE_EXIT);
62
+ }
63
+ }
64
+ if (invokedAsScript(import.meta.url))
65
+ void main();
66
+ //# sourceMappingURL=lisa-test-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lisa-test-run.js","sourceRoot":"","sources":["../../src/cli/lisa-test-run.ts"],"names":[],"mappings":";AACA,8EAA8E;AAC9E,6FAA6F;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EACL,0BAA0B,GAE3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,gBAAgB,GAEjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,iDAAiD;AACjD,MAAM,wBAAwB,GAAG,CAAC,CAAC;AASnC;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAuB;IAC1C,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;QACvB,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;QACrB,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;QACvB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;QAC9C,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;QAChB,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EACrB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAChB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAA0B;KAC7C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,KAAe,CAAC,OAAO,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,IAAI;IACjB,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO;IACrC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,OAAO,CACnB,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,wBAAwB,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CACpF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAAE,KAAK,IAAI,EAAE,CAAC"}
@@ -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;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"}
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,CAKrD;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"}
@@ -5,7 +5,7 @@
5
5
  * project-specific vitest.config.ts files. Reduces duplication between
6
6
  * typescript, nestjs, and other project type configurations.
7
7
  *
8
- * Published as part of the @codyswann/lisa npm package so downstream
8
+ * Published as part of the `@codyswann/lisa` npm package so downstream
9
9
  * projects can import these utilities directly from the package.
10
10
  * @see https://vitest.dev/config/
11
11
  * @module configs/vitest/base
@@ -112,7 +112,10 @@ const resolveScratchModule = (basename) => {
112
112
  * @see {@link module:configs/vitest/scratch} for the measurements behind this
113
113
  */
114
114
  export function scratchSetupFiles() {
115
- return [resolveScratchModule("scratch-setup")];
115
+ return [
116
+ resolveScratchModule("scratch-setup"),
117
+ resolveScratchModule("scratch-leak-setup"),
118
+ ];
116
119
  }
117
120
  /**
118
121
  * Global setup that reclaims residue before a run and audits the namespace after it.
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,10 @@ import type { ViteUserConfig } from "vitest/config";
15
15
  type UserConfig = ViteUserConfig;
16
16
  import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
17
17
  import type { PortableThresholds } from "./base.js";
18
+ /** Prefix used by AWS CDK's default CloudAssemblyBuilder output directory. */
19
+ export declare const CDK_SCRATCH_PREFIX = "cdk.out";
20
+ /** Opaque owner label recorded before a CDK suite is collected. */
21
+ export declare const CDK_SCRATCH_SUITE = "cdk";
18
22
  export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, scratchGlobalSetup, scratchSetupFiles, };
19
23
  export type { PortableThresholds };
20
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,gBAAgB;IACxB,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,kBAEhC,gBAAqB,KAAG,UAyBzB,CAAC"}
1
+ {"version":3,"file":"cdk.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAGvC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,gBAAgB;IACxB,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,kBAEhC,gBAAqB,KAAG,UA0BzB,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
+ /** Prefix used by AWS CDK's default CloudAssemblyBuilder output directory. */
3
+ export const CDK_SCRATCH_PREFIX = "cdk.out";
4
+ /** Opaque owner label recorded before a CDK suite is collected. */
5
+ export const CDK_SCRATCH_SUITE = "cdk";
2
6
  // Re-export base utilities for entry-point configs
3
7
  export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, scratchGlobalSetup, scratchSetupFiles, };
4
8
  /**
@@ -16,6 +20,7 @@ export const getCdkVitestConfig = ({ thresholds, } = {}) => ({
16
20
  test: {
17
21
  setupFiles: [...scratchSetupFiles()],
18
22
  globalSetup: [...scratchGlobalSetup()],
23
+ sequence: { setupFiles: "list", hooks: "stack" },
19
24
  globals: true,
20
25
  environment: "node",
21
26
  include: [
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.js","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAInB,mDAAmD;AACnD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,UAAU,MACU,EAAE,EAAc,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE;YACP,mBAAmB;YACnB,mBAAmB;YACnB,+BAA+B;YAC/B,+BAA+B;SAChC;QACD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;YACxC,OAAO,EAAE,CAAC,GAAG,yBAAyB,CAAC;YACvC,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"cdk.js","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAInB,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,mDAAmD;AACnD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,UAAU,MACU,EAAE,EAAc,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE;YACP,mBAAmB;YACnB,mBAAmB;YACnB,+BAA+B;YAC/B,+BAA+B;SAChC;QACD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;YACxC,OAAO,EAAE,CAAC,GAAG,yBAAyB,CAAC;YACvC,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"harper-fabric.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,yBAAyB;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,kBAEzC,yBAA8B,KAAG,cAwBlC,CAAC"}
1
+ {"version":3,"file":"harper-fabric.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,yBAAyB;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,kBAEzC,yBAA8B,KAAG,cAyBlC,CAAC"}
@@ -10,6 +10,7 @@ export const getHarperFabricVitestConfig = ({ thresholds, } = {}) => ({
10
10
  test: {
11
11
  setupFiles: [...scratchSetupFiles()],
12
12
  globalSetup: [...scratchGlobalSetup()],
13
+ sequence: { setupFiles: "list", hooks: "stack" },
13
14
  globals: true,
14
15
  environment: "node",
15
16
  include: ["tests/**/*.test.ts", "src/**/*.test.ts"],
@@ -1 +1 @@
1
- {"version":3,"file":"harper-fabric.js","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,UAAU,MACmB,EAAE,EAAkB,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,OAAO,EAAE;gBACP,GAAG,yBAAyB;gBAC5B,cAAc;gBACd,iBAAiB;aAClB;YACD,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"harper-fabric.js","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,UAAU,MACmB,EAAE,EAAkB,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,OAAO,EAAE;gBACP,GAAG,yBAAyB;gBAC5B,cAAc;gBACd,iBAAiB;aAClB;YACD,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAwBD;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,UAiB5B,CAAC"}
1
+ {"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAwBD;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,UAkB5B,CAAC"}
@@ -36,6 +36,7 @@ export const getNestjsVitestConfig = ({ thresholds = defaultThresholds, } = {})
36
36
  test: {
37
37
  setupFiles: [...scratchSetupFiles()],
38
38
  globalSetup: [...scratchGlobalSetup()],
39
+ sequence: { setupFiles: "list", hooks: "stack" },
39
40
  globals: true,
40
41
  environment: "node",
41
42
  root: "src",
@@ -1 +1 @@
1
- {"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAInB,mDAAmD;AACnD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAYF;;;GAGG;AACH,MAAM,wBAAwB,GAAsB;IAClD,GAAG,yBAAyB;IAC5B,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,2BAA2B;IAC3B,sBAAsB;IACtB,eAAe;IACf,YAAY;CACb,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,GAAG,iBAAiB,MACP,EAAE,EAAc,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,cAAc,CAAC;QACzB,OAAO,EAAE,CAAC,GAAG,qBAAqB,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAC5D,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,CAAC,GAAG,wBAAwB,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAC/D,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;SACtC;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAInB,mDAAmD;AACnD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAYF;;;GAGG;AACH,MAAM,wBAAwB,GAAsB;IAClD,GAAG,yBAAyB;IAC5B,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,2BAA2B;IAC3B,sBAAsB;IACtB,eAAe;IACf,YAAY;CACb,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,GAAG,iBAAiB,MACP,EAAE,EAAc,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,cAAc,CAAC;QACzB,OAAO,EAAE,CAAC,GAAG,qBAAqB,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAC5D,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,CAAC,GAAG,wBAAwB,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAC/D,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;SACtC;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"phaser.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/phaser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,cA2B5B,CAAC"}
1
+ {"version":3,"file":"phaser.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/phaser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,cA4B5B,CAAC"}
@@ -10,6 +10,7 @@ export const getPhaserVitestConfig = ({ thresholds, } = {}) => ({
10
10
  test: {
11
11
  setupFiles: [...scratchSetupFiles()],
12
12
  globalSetup: [...scratchGlobalSetup()],
13
+ sequence: { setupFiles: "list", hooks: "stack" },
13
14
  globals: true,
14
15
  environment: "node",
15
16
  include: ["tests/**/*.test.ts", "src/**/*.test.ts"],
@@ -1 +1 @@
1
- {"version":3,"file":"phaser.js","sourceRoot":"","sources":["../../../src/configs/vitest/phaser.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,MACa,EAAE,EAAkB,EAAE,CAAC,CAAC;IAC/C,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,OAAO,EAAE,CAAC,GAAG,qBAAqB,EAAE,cAAc,CAAC;QACnD,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,OAAO,EAAE;gBACP,GAAG,yBAAyB;gBAC5B,cAAc;gBACd,aAAa;gBACb,eAAe;gBACf,iBAAiB;gBACjB,mBAAmB;aACpB;YACD,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"phaser.js","sourceRoot":"","sources":["../../../src/configs/vitest/phaser.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,MACa,EAAE,EAAkB,EAAE,CAAC,CAAC;IAC/C,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,OAAO,EAAE,CAAC,GAAG,qBAAqB,EAAE,cAAc,CAAC;QACnD,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,OAAO,EAAE;gBACP,GAAG,yBAAyB;gBAC5B,cAAc;gBACd,aAAa;gBACb,eAAe;gBACf,iBAAiB;gBACjB,mBAAmB;aACpB;YACD,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { removeAuthorizedScratchRoot } from "./scratch-bound-root-cleanup.js";
2
+ /** Inputs for one authority-bound namespace sweep. */
3
+ export interface AuthorizedScratchSweepOptions {
4
+ readonly isProcessAlive: (pid: number) => boolean;
5
+ readonly processBirthFingerprint: (pid: number) => string | undefined;
6
+ readonly selfName?: string;
7
+ }
8
+ /** Names removed and preserved by one authority-bound sweep. */
9
+ export interface AuthorizedScratchSweepResult {
10
+ readonly removed: readonly string[];
11
+ readonly kept: readonly string[];
12
+ }
13
+ /**
14
+ * Sweep one canonical namespace using durable owner/process-birth authority.
15
+ * @param options - Namespace and process probes
16
+ * @returns Names removed and preserved
17
+ */
18
+ export declare function sweepAuthorizedScratchNamespace(options: AuthorizedScratchSweepOptions): AuthorizedScratchSweepResult;
19
+ export { BOUND_DIRECTORY_CLEANUP_PROGRAM, removeAuthorizedScratchChild, removeAuthorizedScratchChildren, } from "./scratch-bound-cleanup.js";
20
+ export { removeAuthorizedScratchRoot };
21
+ export { DEFAULT_RECLAIM_AGE_MS, MAX_SCRATCH_NAMESPACE_NAME_BYTES, MAX_SCRATCH_NAMESPACE_SCAN_ENTRIES, RUN_ROOT_PREFIX, SCRATCH_DIRECT_ENTRY_LIMIT, SCRATCH_DIRECT_NAME_BYTES, SCRATCH_QUARANTINE_PREFIX, SCRATCH_NAMESPACE, assertScratchNamespaceAuthority, collectBoundedScratchNames, collectBoundedScratchNamespaceNames, createScratchNamespaceAuthority, parseRunRootName, readBoundedScratchNames, readBoundedScratchNamespace, runRootName, scratchBaseDir, scratchNamespaceDir, } from "./scratch-namespace-authority.js";
22
+ export type { RemoveAuthorizedScratchChildOptions, RemoveAuthorizedScratchChildrenOptions, } from "./scratch-bound-cleanup.js";
23
+ export type { RemoveAuthorizedScratchRootOptions } from "./scratch-bound-root-cleanup.js";
24
+ export type { ScratchNamespaceAuthority, ScratchNamespaceIdentity, } from "./scratch-namespace-authority.js";
25
+ //# sourceMappingURL=scratch-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scratch-authority.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-authority.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,sDAAsD;AACtD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD,QAAQ,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,gEAAgE;AAChE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AA+FD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,6BAA6B,GACrC,4BAA4B,CAU9B;AAED,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,kCAAkC,EAClC,eAAe,EACf,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,+BAA+B,EAC/B,0BAA0B,EAC1B,mCAAmC,EACnC,+BAA+B,EAC/B,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,mCAAmC,EACnC,sCAAsC,GACvC,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAE1F,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC"}