@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA+CnD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD,MAAM,EAAE;QACN,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;KACV;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,WAAW;IACX,aAAa;IACb,oBAAoB;IACpB,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,oBAAoB;IACpB,YAAY;CACb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,EAAE;QACvB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,KAAK,QAAQ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,OAAO,UAAU,CAAC,KAAK,CAAC;QACtB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,KAAK,QAAQ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,
|
|
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;
|
|
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,
|
|
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,
|
|
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,
|
|
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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem authority for destructive scratch cleanup.
|
|
3
|
+
*
|
|
4
|
+
* Every removal is constrained to one direct child of a canonical, uid-owned,
|
|
5
|
+
* mode-0700 `lisa-scratch` namespace. The child is renamed to a random
|
|
6
|
+
* quarantine name inside that same namespace, then its inode and owner token
|
|
7
|
+
* are revalidated before a no-follow recursive unlink.
|
|
8
|
+
* @module configs/vitest/scratch-authority
|
|
9
|
+
*/
|
|
10
|
+
import * as fs from "node:fs";
|
|
11
|
+
import * as path from "node:path";
|
|
12
|
+
import { classifyScratchOwner, readScratchOwnerRecord, } from "./scratch-owner.js";
|
|
13
|
+
import { SCRATCH_QUARANTINE_PREFIX, authorityForExistingScratchNamespace, readBoundedScratchNamespace, } from "./scratch-namespace-authority.js";
|
|
14
|
+
import { removeAuthorizedScratchRoot } from "./scratch-bound-root-cleanup.js";
|
|
15
|
+
/**
|
|
16
|
+
* Whether a marker is bound to the exact root and namespace inspected.
|
|
17
|
+
* @param authority - Pinned namespace authority
|
|
18
|
+
* @param root - Direct namespace child
|
|
19
|
+
* @param allowQuarantine - Whether the root canonical path may reflect quarantine
|
|
20
|
+
* @returns Parsed marker and whether every authority fact matches
|
|
21
|
+
*/
|
|
22
|
+
function ownerMatchesPath(authority, root, allowQuarantine) {
|
|
23
|
+
const owner = readScratchOwnerRecord(root);
|
|
24
|
+
const stat = fs.lstatSync(root);
|
|
25
|
+
const matches = owner.namespace.canonicalPath === authority.namespace.canonicalPath &&
|
|
26
|
+
owner.namespace.dev === authority.namespace.dev &&
|
|
27
|
+
owner.namespace.ino === authority.namespace.ino &&
|
|
28
|
+
owner.root.dev === stat.dev &&
|
|
29
|
+
owner.root.ino === stat.ino &&
|
|
30
|
+
(allowQuarantine || owner.root.canonicalPath === fs.realpathSync(root));
|
|
31
|
+
return { owner, matches };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Remove a marked entry only when ownership says its process is gone or reused.
|
|
35
|
+
* @param authority - Pinned namespace authority
|
|
36
|
+
* @param name - Direct child basename
|
|
37
|
+
* @param root - Direct child path
|
|
38
|
+
* @param quarantine - Whether the child is an interrupted quarantine
|
|
39
|
+
* @param options - Process probes and self name
|
|
40
|
+
* @returns Removal disposition
|
|
41
|
+
*/
|
|
42
|
+
function sweepMarkedEntry(authority, name, root, quarantine, options) {
|
|
43
|
+
const marked = ownerMatchesPath(authority, root, quarantine);
|
|
44
|
+
if (!marked.matches)
|
|
45
|
+
return "kept";
|
|
46
|
+
const disposition = classifyScratchOwner(marked.owner, options);
|
|
47
|
+
if (disposition === "preserve")
|
|
48
|
+
return "kept";
|
|
49
|
+
removeAuthorizedScratchRoot({
|
|
50
|
+
authority,
|
|
51
|
+
basename: name,
|
|
52
|
+
expectedToken: marked.owner.token,
|
|
53
|
+
});
|
|
54
|
+
return "removed";
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Judge one direct namespace entry without ever following a symlink.
|
|
58
|
+
* @param authority - Pinned namespace authority
|
|
59
|
+
* @param name - Direct child basename
|
|
60
|
+
* @param options - Process probes and self name
|
|
61
|
+
* @returns Removal disposition
|
|
62
|
+
*/
|
|
63
|
+
function sweepAuthorizedEntry(authority, name, options) {
|
|
64
|
+
if (name === options.selfName)
|
|
65
|
+
return "kept";
|
|
66
|
+
const root = path.join(authority.namespace.canonicalPath, name);
|
|
67
|
+
try {
|
|
68
|
+
const stat = fs.lstatSync(root);
|
|
69
|
+
if (stat.isSymbolicLink() || !stat.isDirectory())
|
|
70
|
+
return "kept";
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
return error.code === "ENOENT"
|
|
74
|
+
? "removed"
|
|
75
|
+
: "kept";
|
|
76
|
+
}
|
|
77
|
+
const quarantine = name.startsWith(SCRATCH_QUARANTINE_PREFIX);
|
|
78
|
+
const recognized = /^run-\d+-\d+-[^/\\]+$/u.test(name);
|
|
79
|
+
if (!recognized && !quarantine)
|
|
80
|
+
return "kept";
|
|
81
|
+
try {
|
|
82
|
+
return sweepMarkedEntry(authority, name, root, quarantine, options);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// A recognizable name is never deletion authority. Missing, malformed,
|
|
86
|
+
// unreadable, oversized, or identity-mismatched markers remain in place
|
|
87
|
+
// for the namespace audit to refuse with an actionable diagnosis.
|
|
88
|
+
return "kept";
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Sweep one canonical namespace using durable owner/process-birth authority.
|
|
93
|
+
* @param options - Namespace and process probes
|
|
94
|
+
* @returns Names removed and preserved
|
|
95
|
+
*/
|
|
96
|
+
export function sweepAuthorizedScratchNamespace(options) {
|
|
97
|
+
const authority = authorityForExistingScratchNamespace();
|
|
98
|
+
if (authority === undefined)
|
|
99
|
+
return { removed: [], kept: [] };
|
|
100
|
+
return readBoundedScratchNamespace(authority.namespace.canonicalPath).reduce((result, name) => sweepAuthorizedEntry(authority, name, options) === "removed"
|
|
101
|
+
? { removed: [...result.removed, name], kept: result.kept }
|
|
102
|
+
: { removed: result.removed, kept: [...result.kept, name] }, { removed: [], kept: [] });
|
|
103
|
+
}
|
|
104
|
+
export { BOUND_DIRECTORY_CLEANUP_PROGRAM, removeAuthorizedScratchChild, removeAuthorizedScratchChildren, } from "./scratch-bound-cleanup.js";
|
|
105
|
+
export { removeAuthorizedScratchRoot };
|
|
106
|
+
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";
|
|
107
|
+
//# sourceMappingURL=scratch-authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scratch-authority.js","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Synchronous deletion program whose cwd is bound before traversal. */
|
|
2
|
+
export declare const BOUND_DIRECTORY_CLEANUP_PROGRAM: string;
|
|
3
|
+
/** Parent-cwd-bound program removing every preclassified direct child. */
|
|
4
|
+
export declare const BOUND_CHILDREN_CLEANUP_PROGRAM: string;
|
|
5
|
+
//# sourceMappingURL=scratch-bound-cleanup-programs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scratch-bound-cleanup-programs.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-bound-cleanup-programs.ts"],"names":[],"mappings":"AAIA,wEAAwE;AACxE,eAAO,MAAM,+BAA+B,QAuE3C,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,QA4I1C,CAAC"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/** Inert CommonJS programs executed in kernel-bound scratch cwd handles. */
|
|
2
|
+
/** Exit status used when the child cwd does not match the expected inode. */
|
|
3
|
+
const BOUND_CLEANUP_IDENTITY_EXIT = 73;
|
|
4
|
+
/** Synchronous deletion program whose cwd is bound before traversal. */
|
|
5
|
+
export const BOUND_DIRECTORY_CLEANUP_PROGRAM = String.raw `
|
|
6
|
+
const fs = require("node:fs");
|
|
7
|
+
const path = require("node:path");
|
|
8
|
+
const expectedDev = process.argv[1];
|
|
9
|
+
const expectedIno = process.argv[2];
|
|
10
|
+
const root = fs.lstatSync(".");
|
|
11
|
+
if (!root.isDirectory() || root.isSymbolicLink() || String(root.dev) !== expectedDev || String(root.ino) !== expectedIno) {
|
|
12
|
+
process.stderr.write("scratch directory identity changed before bound cleanup\n");
|
|
13
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
14
|
+
}
|
|
15
|
+
const deadline = Date.now() + 30000;
|
|
16
|
+
let entries = 0;
|
|
17
|
+
const readChildren = candidate => {
|
|
18
|
+
const handle = fs.opendirSync(candidate);
|
|
19
|
+
const names = [];
|
|
20
|
+
try {
|
|
21
|
+
for (;;) {
|
|
22
|
+
const entry = handle.readSync();
|
|
23
|
+
if (entry === null) break;
|
|
24
|
+
if (Buffer.byteLength(entry.name, "utf8") > 1024) throw new Error("scratch cleanup basename exceeds 1024 bytes");
|
|
25
|
+
entries += 1;
|
|
26
|
+
if (entries > 100000) throw new Error("scratch cleanup entry bound exceeded");
|
|
27
|
+
names.push(entry.name);
|
|
28
|
+
}
|
|
29
|
+
} finally {
|
|
30
|
+
handle.closeSync();
|
|
31
|
+
}
|
|
32
|
+
return names;
|
|
33
|
+
};
|
|
34
|
+
const pending = [{ candidate: ".", depth: 0 }];
|
|
35
|
+
const scanned = [];
|
|
36
|
+
while (pending.length > 0) {
|
|
37
|
+
if (Date.now() > deadline) throw new Error("scratch cleanup time bound exceeded");
|
|
38
|
+
const item = pending.pop();
|
|
39
|
+
if (item.depth > 128) throw new Error("scratch cleanup depth bound exceeded");
|
|
40
|
+
let stat;
|
|
41
|
+
try {
|
|
42
|
+
stat = fs.lstatSync(item.candidate);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
if (error.code === "ENOENT") continue;
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
if (item.candidate !== ".") {
|
|
48
|
+
scanned.push({ candidate: item.candidate, depth: item.depth, dev: String(stat.dev), ino: String(stat.ino), directory: stat.isDirectory(), symlink: stat.isSymbolicLink() });
|
|
49
|
+
}
|
|
50
|
+
if (stat.isDirectory() && !stat.isSymbolicLink()) {
|
|
51
|
+
for (const child of readChildren(item.candidate)) {
|
|
52
|
+
pending.push({ candidate: path.join(item.candidate, child), depth: item.depth + 1 });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
scanned.sort((left, right) => right.depth - left.depth);
|
|
57
|
+
for (const item of scanned) {
|
|
58
|
+
let stat;
|
|
59
|
+
try {
|
|
60
|
+
stat = fs.lstatSync(item.candidate);
|
|
61
|
+
} catch (error) {
|
|
62
|
+
if (error.code === "ENOENT") continue;
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
if (String(stat.dev) !== item.dev || String(stat.ino) !== item.ino || stat.isDirectory() !== item.directory || stat.isSymbolicLink() !== item.symlink) {
|
|
66
|
+
process.stderr.write("scratch entry identity changed before bound cleanup: " + item.candidate + "\n");
|
|
67
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
if (item.directory && !item.symlink) fs.rmdirSync(item.candidate);
|
|
71
|
+
else fs.unlinkSync(item.candidate);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (error.code !== "ENOENT") throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
77
|
+
/** Parent-cwd-bound program removing every preclassified direct child. */
|
|
78
|
+
export const BOUND_CHILDREN_CLEANUP_PROGRAM = String.raw `
|
|
79
|
+
const crypto = require("node:crypto");
|
|
80
|
+
const fs = require("node:fs");
|
|
81
|
+
const path = require("node:path");
|
|
82
|
+
const expectedDev = process.argv[1];
|
|
83
|
+
const expectedIno = process.argv[2];
|
|
84
|
+
const parent = fs.lstatSync(".");
|
|
85
|
+
if (!parent.isDirectory() || parent.isSymbolicLink() || String(parent.dev) !== expectedDev || String(parent.ino) !== expectedIno) {
|
|
86
|
+
process.stderr.write("scratch parent identity changed before bound cleanup\n");
|
|
87
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
88
|
+
}
|
|
89
|
+
const items = JSON.parse(fs.readFileSync(0, "utf8"));
|
|
90
|
+
const deadline = Date.now() + 30000;
|
|
91
|
+
let entries = 0;
|
|
92
|
+
const readChildren = candidate => {
|
|
93
|
+
const handle = fs.opendirSync(candidate);
|
|
94
|
+
const names = [];
|
|
95
|
+
try {
|
|
96
|
+
for (;;) {
|
|
97
|
+
const entry = handle.readSync();
|
|
98
|
+
if (entry === null) break;
|
|
99
|
+
if (Buffer.byteLength(entry.name, "utf8") > 1024) throw new Error("scratch cleanup basename exceeds 1024 bytes");
|
|
100
|
+
entries += 1;
|
|
101
|
+
if (entries > 100000) throw new Error("scratch cleanup entry bound exceeded");
|
|
102
|
+
names.push(entry.name);
|
|
103
|
+
}
|
|
104
|
+
} finally {
|
|
105
|
+
handle.closeSync();
|
|
106
|
+
}
|
|
107
|
+
return names;
|
|
108
|
+
};
|
|
109
|
+
const scanDirectory = rootName => {
|
|
110
|
+
const pending = [{ candidate: rootName, relative: "", depth: 0 }];
|
|
111
|
+
const scanned = [];
|
|
112
|
+
while (pending.length > 0) {
|
|
113
|
+
if (Date.now() > deadline) throw new Error("scratch cleanup time bound exceeded");
|
|
114
|
+
const item = pending.pop();
|
|
115
|
+
if (item.depth > 128) throw new Error("scratch cleanup depth bound exceeded");
|
|
116
|
+
let stat;
|
|
117
|
+
try {
|
|
118
|
+
stat = fs.lstatSync(item.candidate);
|
|
119
|
+
} catch (error) {
|
|
120
|
+
if (error.code === "ENOENT") continue;
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
if (item.relative !== "") {
|
|
124
|
+
scanned.push({ relative: item.relative, depth: item.depth, dev: String(stat.dev), ino: String(stat.ino), directory: stat.isDirectory(), symlink: stat.isSymbolicLink() });
|
|
125
|
+
}
|
|
126
|
+
if (stat.isDirectory() && !stat.isSymbolicLink()) {
|
|
127
|
+
for (const child of readChildren(item.candidate)) {
|
|
128
|
+
pending.push({ candidate: path.join(item.candidate, child), relative: item.relative === "" ? child : path.join(item.relative, child), depth: item.depth + 1 });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return scanned;
|
|
133
|
+
};
|
|
134
|
+
const prepared = [];
|
|
135
|
+
for (const item of items) {
|
|
136
|
+
if (typeof item.basename !== "string" || item.basename === "" || path.basename(item.basename) !== item.basename || Buffer.byteLength(item.basename, "utf8") > 1024) {
|
|
137
|
+
throw new Error("scratch cleanup candidate must be a bounded direct basename");
|
|
138
|
+
}
|
|
139
|
+
let before;
|
|
140
|
+
try {
|
|
141
|
+
before = fs.lstatSync(item.basename);
|
|
142
|
+
} catch (error) {
|
|
143
|
+
if (error.code === "ENOENT") continue;
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
if (String(before.dev) !== item.dev || String(before.ino) !== item.ino || before.isDirectory() !== item.directory || before.isSymbolicLink() !== item.symlink) {
|
|
147
|
+
process.stderr.write("scratch child identity changed before bound cleanup: " + item.basename + "\n");
|
|
148
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
149
|
+
}
|
|
150
|
+
prepared.push({ item });
|
|
151
|
+
}
|
|
152
|
+
for (const preparedItem of prepared) {
|
|
153
|
+
const item = preparedItem.item;
|
|
154
|
+
let before;
|
|
155
|
+
try {
|
|
156
|
+
before = fs.lstatSync(item.basename);
|
|
157
|
+
} catch (error) {
|
|
158
|
+
if (error.code === "ENOENT") continue;
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
if (String(before.dev) !== item.dev || String(before.ino) !== item.ino || before.isDirectory() !== item.directory || before.isSymbolicLink() !== item.symlink) {
|
|
162
|
+
process.stderr.write("scratch child identity changed before quarantine: " + item.basename + "\n");
|
|
163
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
164
|
+
}
|
|
165
|
+
// Deterministic seam for the scan-after-quarantine control, in the shape the
|
|
166
|
+
// rest of this subsystem already uses for protocol faults. It writes only
|
|
167
|
+
// inside a child already authorized for deletion, and only under an explicit
|
|
168
|
+
// environment opt-in, so it cannot fire in a real run.
|
|
169
|
+
if (process.env.LISA_TEST_SCRATCH_CLEANUP_FAULT === "write-before-quarantine" && item.directory && !item.symlink) {
|
|
170
|
+
fs.writeFileSync(path.join(item.basename, "late-writer.txt"), "late");
|
|
171
|
+
}
|
|
172
|
+
const quarantine = ".lisa-child-quarantine-" + crypto.randomBytes(16).toString("hex");
|
|
173
|
+
fs.renameSync(item.basename, quarantine);
|
|
174
|
+
const quarantined = fs.lstatSync(quarantine);
|
|
175
|
+
if (String(quarantined.dev) !== item.dev || String(quarantined.ino) !== item.ino) {
|
|
176
|
+
process.stderr.write("scratch child identity changed during quarantine: " + item.basename + "\n");
|
|
177
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
178
|
+
}
|
|
179
|
+
if (item.directory && !item.symlink) {
|
|
180
|
+
// Scanned AFTER the quarantine rename, never before it. A pre-rename scan
|
|
181
|
+
// leaves a window in which a writer creates an entry that is therefore
|
|
182
|
+
// absent from the recorded list, never deleted, and left to fail the final
|
|
183
|
+
// rmdirSync with ENOTEMPTY -- so the cleanup that exists to remove a tree
|
|
184
|
+
// leaves the whole quarantined tree behind. After the rename the directory
|
|
185
|
+
// sits at an unguessable name no other writer holds a path to, so what is
|
|
186
|
+
// scanned here is what is there.
|
|
187
|
+
const scanned = scanDirectory(quarantine).sort((left, right) => right.depth - left.depth);
|
|
188
|
+
for (const child of scanned) {
|
|
189
|
+
const candidate = path.join(quarantine, child.relative);
|
|
190
|
+
let stat;
|
|
191
|
+
try {
|
|
192
|
+
stat = fs.lstatSync(candidate);
|
|
193
|
+
} catch (error) {
|
|
194
|
+
if (error.code === "ENOENT") continue;
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
197
|
+
if (String(stat.dev) !== child.dev || String(stat.ino) !== child.ino || stat.isDirectory() !== child.directory || stat.isSymbolicLink() !== child.symlink) {
|
|
198
|
+
process.stderr.write("scratch descendant identity changed during bound cleanup: " + item.basename + "\n");
|
|
199
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
if (child.directory && !child.symlink) fs.rmdirSync(candidate);
|
|
203
|
+
else fs.unlinkSync(candidate);
|
|
204
|
+
} catch (error) {
|
|
205
|
+
if (error.code !== "ENOENT") throw error;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const after = fs.lstatSync(quarantine);
|
|
209
|
+
if (String(after.dev) !== item.dev || String(after.ino) !== item.ino) {
|
|
210
|
+
process.stderr.write("scratch child identity changed during bound cleanup: " + item.basename + "\n");
|
|
211
|
+
process.exit(${String(BOUND_CLEANUP_IDENTITY_EXIT)});
|
|
212
|
+
}
|
|
213
|
+
fs.rmdirSync(quarantine);
|
|
214
|
+
} else {
|
|
215
|
+
fs.unlinkSync(quarantine);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
`;
|
|
219
|
+
//# sourceMappingURL=scratch-bound-cleanup-programs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scratch-bound-cleanup-programs.js","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-bound-cleanup-programs.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC,wEAAwE;AACxE,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;iBAQxC,MAAM,CAAC,2BAA2B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAsDjC,MAAM,CAAC,2BAA2B,CAAC;;;;;;;;;CASrD,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;iBASvC,MAAM,CAAC,2BAA2B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA6DjC,MAAM,CAAC,2BAA2B,CAAC;;;;;;;;;;;;;;;mBAenC,MAAM,CAAC,2BAA2B,CAAC;;;;;;;;;;;;;;mBAcnC,MAAM,CAAC,2BAA2B,CAAC;;;;;;;;;;;;;;;;;;;;;;uBAsB/B,MAAM,CAAC,2BAA2B,CAAC;;;;;;;;;;;;qBAYrC,MAAM,CAAC,2BAA2B,CAAC;;;;;;;CAOvD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ScratchPathIdentity } from "./scratch-owner.js";
|
|
2
|
+
export { BOUND_DIRECTORY_CLEANUP_PROGRAM } from "./scratch-bound-cleanup-programs.js";
|
|
3
|
+
/** Options for removing one direct child of an already-owned run root. */
|
|
4
|
+
export interface RemoveAuthorizedScratchChildOptions {
|
|
5
|
+
readonly parent: ScratchPathIdentity;
|
|
6
|
+
readonly basename: string;
|
|
7
|
+
readonly beforeIdentityCheck?: (candidate: string) => void;
|
|
8
|
+
readonly afterIdentityCheck?: (candidate: string) => void;
|
|
9
|
+
}
|
|
10
|
+
/** Options for one batched removal under an already-owned run root. */
|
|
11
|
+
export interface RemoveAuthorizedScratchChildrenOptions {
|
|
12
|
+
readonly parent: ScratchPathIdentity;
|
|
13
|
+
readonly basenames: readonly string[];
|
|
14
|
+
readonly beforeIdentityCheck?: (candidate: string) => void;
|
|
15
|
+
readonly afterIdentityCheck?: (candidate: string) => void;
|
|
16
|
+
readonly beforeBoundCleanup?: () => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Remove direct children through one process bound to the parent inode.
|
|
20
|
+
* @param options - Batched child-removal options
|
|
21
|
+
*/
|
|
22
|
+
export declare function removeAuthorizedScratchChildren(options: RemoveAuthorizedScratchChildrenOptions): void;
|
|
23
|
+
/**
|
|
24
|
+
* Remove one direct child through the batched authority.
|
|
25
|
+
* @param options - Single child-removal options
|
|
26
|
+
*/
|
|
27
|
+
export declare function removeAuthorizedScratchChild(options: RemoveAuthorizedScratchChildOptions): void;
|
|
28
|
+
//# sourceMappingURL=scratch-bound-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scratch-bound-cleanup.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-bound-cleanup.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAEtF,0EAA0E;AAC1E,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D;AAED,uEAAuE;AACvE,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1C;AA+HD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,IAAI,CAwBN;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mCAAmC,GAC3C,IAAI,CAWN"}
|