@codyswann/lisa 4.33.14 → 4.34.1

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 (116) hide show
  1. package/dist/cli/doctor-nightly-e2e-bypass-arming.d.ts +29 -0
  2. package/dist/cli/doctor-nightly-e2e-bypass-arming.d.ts.map +1 -0
  3. package/dist/cli/doctor-nightly-e2e-bypass-arming.js +135 -0
  4. package/dist/cli/doctor-nightly-e2e-bypass-arming.js.map +1 -0
  5. package/dist/cli/doctor.d.ts.map +1 -1
  6. package/dist/cli/doctor.js +10 -0
  7. package/dist/cli/doctor.js.map +1 -1
  8. package/dist/cli/ui-detected-stacks.d.ts.map +1 -1
  9. package/dist/cli/ui-detected-stacks.js +1 -3
  10. package/dist/cli/ui-detected-stacks.js.map +1 -1
  11. package/dist/configs/vitest/base.d.ts +12 -0
  12. package/dist/configs/vitest/base.d.ts.map +1 -1
  13. package/dist/configs/vitest/base.js +18 -4
  14. package/dist/configs/vitest/base.js.map +1 -1
  15. package/dist/configs/vitest/cdk.d.ts +2 -2
  16. package/dist/configs/vitest/cdk.d.ts.map +1 -1
  17. package/dist/configs/vitest/cdk.js +3 -3
  18. package/dist/configs/vitest/cdk.js.map +1 -1
  19. package/dist/configs/vitest/coverage-include-authority.d.ts +41 -0
  20. package/dist/configs/vitest/coverage-include-authority.d.ts.map +1 -0
  21. package/dist/configs/vitest/coverage-include-authority.js +108 -0
  22. package/dist/configs/vitest/coverage-include-authority.js.map +1 -0
  23. package/dist/configs/vitest/coverage-include-global-setup.d.ts +32 -0
  24. package/dist/configs/vitest/coverage-include-global-setup.d.ts.map +1 -0
  25. package/dist/configs/vitest/coverage-include-global-setup.js +62 -0
  26. package/dist/configs/vitest/coverage-include-global-setup.js.map +1 -0
  27. package/dist/configs/vitest/harper-fabric.d.ts +2 -2
  28. package/dist/configs/vitest/harper-fabric.d.ts.map +1 -1
  29. package/dist/configs/vitest/harper-fabric.js +3 -3
  30. package/dist/configs/vitest/harper-fabric.js.map +1 -1
  31. package/dist/configs/vitest/nestjs.d.ts +2 -2
  32. package/dist/configs/vitest/nestjs.d.ts.map +1 -1
  33. package/dist/configs/vitest/nestjs.js +3 -3
  34. package/dist/configs/vitest/nestjs.js.map +1 -1
  35. package/dist/configs/vitest/phaser.d.ts +2 -2
  36. package/dist/configs/vitest/phaser.d.ts.map +1 -1
  37. package/dist/configs/vitest/phaser.js +3 -3
  38. package/dist/configs/vitest/phaser.js.map +1 -1
  39. package/dist/configs/vitest/typescript.d.ts +2 -2
  40. package/dist/configs/vitest/typescript.d.ts.map +1 -1
  41. package/dist/configs/vitest/typescript.js +3 -3
  42. package/dist/configs/vitest/typescript.js.map +1 -1
  43. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  44. package/dist/core/nightly-e2e-guard-behavior-certificate.js.map +1 -1
  45. package/dist/core/nightly-e2e-pull-request-triggers.d.ts +54 -0
  46. package/dist/core/nightly-e2e-pull-request-triggers.d.ts.map +1 -0
  47. package/dist/core/nightly-e2e-pull-request-triggers.js +331 -0
  48. package/dist/core/nightly-e2e-pull-request-triggers.js.map +1 -0
  49. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  50. package/dist/core/upstream-evidence-manifest.js +9 -1
  51. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  52. package/dist/detection/detectors/cdk.d.ts +21 -4
  53. package/dist/detection/detectors/cdk.d.ts.map +1 -1
  54. package/dist/detection/detectors/cdk.js +23 -30
  55. package/dist/detection/detectors/cdk.js.map +1 -1
  56. package/dist/health/template-inspection.js +1 -1
  57. package/dist/health/template-inspection.js.map +1 -1
  58. package/dist/migrations/ensure-nightly-e2e-workflow-pins.d.ts +11 -2
  59. package/dist/migrations/ensure-nightly-e2e-workflow-pins.d.ts.map +1 -1
  60. package/dist/migrations/ensure-nightly-e2e-workflow-pins.js +21 -4
  61. package/dist/migrations/ensure-nightly-e2e-workflow-pins.js.map +1 -1
  62. package/dist/strategies/package-lisa.d.ts.map +1 -1
  63. package/dist/strategies/package-lisa.js +3 -3
  64. package/dist/strategies/package-lisa.js.map +1 -1
  65. package/expo/create-only/.github/workflows/nightly-e2e-health.yml +16 -1
  66. package/package.json +4 -4
  67. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  69. package/plugins/lisa-agy/plugin.json +1 -1
  70. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  72. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  73. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  76. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  79. package/plugins/lisa-expo-agy/plugin.json +1 -1
  80. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  81. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  82. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  84. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  85. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  86. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  88. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  89. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  90. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  93. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  94. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  95. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  98. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  99. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  100. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  102. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  103. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  104. package/plugins/lisa-rails-agy/plugin.json +1 -1
  105. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  108. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  109. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  110. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  113. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  114. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  115. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The shape vitest hands `globalSetup`, narrowed to what this guard reads.
3
+ *
4
+ * Declared structurally rather than imported from vitest's own types: this
5
+ * module is compiled into the published package and loaded by consumer
6
+ * projects, whose vitest may be a different minor than the one Lisa builds
7
+ * against. Reading four fields off a plain object survives that; a nominal type
8
+ * import does not.
9
+ */
10
+ export interface CoverageProject {
11
+ readonly config?: {
12
+ readonly coverage?: {
13
+ readonly enabled?: boolean | undefined;
14
+ readonly include?: readonly string[] | undefined;
15
+ } | undefined;
16
+ readonly root?: string | undefined;
17
+ } | undefined;
18
+ }
19
+ /**
20
+ * Refuses the run when coverage would be measured over an empty file set.
21
+ *
22
+ * Degrades to allowing the run when vitest hands over something this guard
23
+ * cannot read — no config, or no root. An unrecognised argument shape means the
24
+ * guard does not know what it is looking at, and refusing on that would block
25
+ * every run on a vitest whose internals moved, which is a worse failure than
26
+ * the one being prevented. The refusal is reserved for the case it can actually
27
+ * prove.
28
+ * @param project - The test project vitest passes to `globalSetup`
29
+ * @throws {Error} When coverage is enabled and no include pattern resolves.
30
+ */
31
+ export declare const setup: (project?: CoverageProject) => void;
32
+ //# sourceMappingURL=coverage-include-global-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-include-global-setup.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/coverage-include-global-setup.ts"],"names":[],"mappings":"AAiCA;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EACZ;QACE,QAAQ,CAAC,QAAQ,CAAC,EACd;YACE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;YACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;SAClD,GACD,SAAS,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACpC,GACD,SAAS,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,eAAe,KAAG,IAiBjD,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Vitest Configuration - Coverage include guard (global setup)
3
+ *
4
+ * Refuses a coverage run whose `coverage.include` resolves to no files. The
5
+ * reasoning for the check, and the measurements behind it, live in
6
+ * {@link module:configs/vitest/coverage-include-authority}; this module is only
7
+ * the hook that acts on the verdict.
8
+ *
9
+ * IT LIVES IN `setup`, NOT `teardown`, and that placement is load-bearing for
10
+ * the same measured reason the scratch guard records: vitest SWALLOWS a throw
11
+ * from `globalSetup` teardown — it prints `error during close` and the process
12
+ * still exits 0 — while the same throw from `setup` exits 1. A guard placed in
13
+ * a hook the runner ignores is the very defect this file exists to stop,
14
+ * reproduced inside the guard.
15
+ *
16
+ * IT ONLY BITES WHEN COVERAGE IS ON. `coverage.enabled` is false on a plain
17
+ * `vitest run` and true under `--coverage` — measured on vitest 4.1.9 rather
18
+ * than assumed — so a project whose layout does not match its preset can still
19
+ * run its tests. Only the measurement it cannot honestly make is refused. That
20
+ * boundary is deliberate: the claim being protected is "coverage met the
21
+ * threshold", and nothing else here is a claim about coverage.
22
+ *
23
+ * It reuses the scratch guard's two-part announcement rather than growing its
24
+ * own. A refusal speaks twice, a banner before collection and a summary line at
25
+ * exit, because those are the top and the bottom of a transcript nobody reads
26
+ * in full — and the summary line already says the exact thing that is true
27
+ * here: the run was refused before collection, so no coverage was measured.
28
+ * @see {@link module:configs/vitest/coverage-include-authority} for why config time is the only honest place
29
+ * @module configs/vitest/coverage-include-global-setup
30
+ */
31
+ import { describeCoverageIncludeFailure } from "./coverage-include-authority.js";
32
+ import { announceRefusal } from "./scratch-global-setup.js";
33
+ /**
34
+ * Refuses the run when coverage would be measured over an empty file set.
35
+ *
36
+ * Degrades to allowing the run when vitest hands over something this guard
37
+ * cannot read — no config, or no root. An unrecognised argument shape means the
38
+ * guard does not know what it is looking at, and refusing on that would block
39
+ * every run on a vitest whose internals moved, which is a worse failure than
40
+ * the one being prevented. The refusal is reserved for the case it can actually
41
+ * prove.
42
+ * @param project - The test project vitest passes to `globalSetup`
43
+ * @throws {Error} When coverage is enabled and no include pattern resolves.
44
+ */
45
+ export const setup = (project) => {
46
+ const config = project?.config;
47
+ const root = config?.root;
48
+ if (config === undefined || root === undefined)
49
+ return;
50
+ const failure = describeCoverageIncludeFailure({
51
+ enabled: config.coverage?.enabled === true,
52
+ include: config.coverage?.include,
53
+ root,
54
+ });
55
+ if (failure !== undefined) {
56
+ // Both halves of the announcement happen before the throw, because the
57
+ // throw is what ends this function.
58
+ announceRefusal(failure);
59
+ throw new Error(failure);
60
+ }
61
+ };
62
+ //# sourceMappingURL=coverage-include-global-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-include-global-setup.js","sourceRoot":"","sources":["../../../src/configs/vitest/coverage-include-global-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAyB5D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAyB,EAAQ,EAAE;IACvD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,CAAC;IAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAEvD,MAAM,OAAO,GAAG,8BAA8B,CAAC;QAC7C,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI;QAC1C,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;QACjC,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,uEAAuE;QACvE,oCAAoC;QACpC,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC"}
@@ -5,9 +5,9 @@
5
5
  * @module configs/vitest/harper-fabric
6
6
  */
7
7
  import type { ViteUserConfig } from "vitest/config";
8
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
8
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
9
9
  import type { PortableThresholds } from "./base.js";
10
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
10
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
11
11
  export type { PortableThresholds };
12
12
  /**
13
13
  * Options for configuring the Harper/Fabric Vitest config factory.
@@ -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,iBAAiB,EACjB,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,iBAAiB,EACjB,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,cA2BlC,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,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,cA2BlC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
1
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
3
3
  /**
4
4
  * Creates a Vitest configuration for Harper/Fabric projects.
5
5
  * @param options - Configuration options
@@ -9,7 +9,7 @@ export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, ma
9
9
  export const getHarperFabricVitestConfig = ({ thresholds, } = {}) => ({
10
10
  test: {
11
11
  setupFiles: [...scratchSetupFiles()],
12
- globalSetup: [...scratchGlobalSetup()],
12
+ globalSetup: [...scratchGlobalSetup(), ...coverageGlobalSetup()],
13
13
  sequence: { setupFiles: "list", hooks: "stack" },
14
14
  // Bounded so k concurrent runs do not claim k x cores. See resolveMaxWorkers.
15
15
  maxWorkers: resolveMaxWorkers(),
@@ -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,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,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,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,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"}
@@ -13,9 +13,9 @@
13
13
  import type { ViteUserConfig } from "vitest/config";
14
14
  /** Vite UserConfig augmented with Vitest's `test` property */
15
15
  type UserConfig = ViteUserConfig;
16
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions } from "./base.js";
16
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions } from "./base.js";
17
17
  import type { PortableThresholds } from "./base.js";
18
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
18
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
19
19
  export type { PortableThresholds };
20
20
  /**
21
21
  * Options for configuring the NestJS Vitest config factory.
@@ -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,iBAAiB,EACjB,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,iBAAiB,EACjB,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,UAoB5B,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,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,UAoB5B,CAAC"}
@@ -1,6 +1,6 @@
1
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, } from "./base.js";
1
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, } from "./base.js";
2
2
  // Re-export base utilities for entry-point configs
3
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
3
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
4
4
  /**
5
5
  * NestJS-specific patterns excluded from coverage collection.
6
6
  * These are generated or boilerplate files that don't benefit from coverage tracking.
@@ -35,7 +35,7 @@ const nestjsCoverageExclusions = [
35
35
  export const getNestjsVitestConfig = ({ thresholds = defaultThresholds, } = {}) => ({
36
36
  test: {
37
37
  setupFiles: [...scratchSetupFiles()],
38
- globalSetup: [...scratchGlobalSetup()],
38
+ globalSetup: [...scratchGlobalSetup(), ...coverageGlobalSetup()],
39
39
  sequence: { setupFiles: "list", hooks: "stack" },
40
40
  // Bounded so k concurrent runs do not claim k x cores. See resolveMaxWorkers.
41
41
  maxWorkers: resolveMaxWorkers(),
@@ -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,iBAAiB,EACjB,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,iBAAiB,EACjB,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,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,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,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAInB,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,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"}
@@ -8,9 +8,9 @@
8
8
  * @module configs/vitest/phaser
9
9
  */
10
10
  import type { ViteUserConfig } from "vitest/config";
11
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
11
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
12
12
  import type { PortableThresholds } from "./base.js";
13
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
13
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
14
14
  export type { PortableThresholds };
15
15
  /**
16
16
  * Options for configuring the Phaser Vitest config factory.
@@ -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,iBAAiB,EACjB,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,iBAAiB,EACjB,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,cA8B5B,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,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,cA8B5B,CAAC"}
@@ -1,5 +1,5 @@
1
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
1
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
3
3
  /**
4
4
  * Creates a Vitest configuration for Phaser projects.
5
5
  * @param options - Configuration options
@@ -9,7 +9,7 @@ export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, ma
9
9
  export const getPhaserVitestConfig = ({ thresholds, } = {}) => ({
10
10
  test: {
11
11
  setupFiles: [...scratchSetupFiles()],
12
- globalSetup: [...scratchGlobalSetup()],
12
+ globalSetup: [...scratchGlobalSetup(), ...coverageGlobalSetup()],
13
13
  sequence: { setupFiles: "list", hooks: "stack" },
14
14
  // Bounded so k concurrent runs do not claim k x cores. See resolveMaxWorkers.
15
15
  maxWorkers: resolveMaxWorkers(),
@@ -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,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,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,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,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,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,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"}
@@ -9,9 +9,9 @@
9
9
  import type { ViteUserConfig } from "vitest/config";
10
10
  /** Vite UserConfig augmented with Vitest's `test` property */
11
11
  type UserConfig = ViteUserConfig;
12
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions } from "./base.js";
12
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions } from "./base.js";
13
13
  import type { PortableThresholds } from "./base.js";
14
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
14
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
15
15
  export type { PortableThresholds };
16
16
  /**
17
17
  * Options for configuring the TypeScript Vitest config factory.
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/typescript.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,iBAAiB,EACjB,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,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,uBAAuB;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAAI,kBAEvC,uBAA4B,KAAG,UAmBhC,CAAC"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/typescript.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,uBAAuB;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAAI,kBAEvC,uBAA4B,KAAG,UAmBhC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, } from "./base.js";
1
+ import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, } from "./base.js";
2
2
  // Re-export base utilities for stack-specific configs to use
3
- export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
3
+ export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
4
4
  /**
5
5
  * Creates a Vitest configuration for TypeScript/Node projects.
6
6
  *
@@ -14,7 +14,7 @@ export { defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, ma
14
14
  export const getTypescriptVitestConfig = ({ thresholds = defaultThresholds, } = {}) => ({
15
15
  test: {
16
16
  setupFiles: [...scratchSetupFiles()],
17
- globalSetup: [...scratchGlobalSetup()],
17
+ globalSetup: [...scratchGlobalSetup(), ...coverageGlobalSetup()],
18
18
  sequence: { setupFiles: "list", hooks: "stack" },
19
19
  // Bounded so k concurrent runs do not claim k x cores. See resolveMaxWorkers.
20
20
  maxWorkers: resolveMaxWorkers(),
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/configs/vitest/typescript.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAInB,6DAA6D;AAC7D,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAYF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,UAAU,GAAG,iBAAiB,MACH,EAAE,EAAc,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,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,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,aAAa,CAAC;YACxB,OAAO,EAAE,CAAC,GAAG,yBAAyB,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAChE,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;SACtC;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/configs/vitest/typescript.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAInB,6DAA6D;AAC7D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAYF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,UAAU,GAAG,iBAAiB,MACH,EAAE,EAAc,EAAE,CAAC,CAAC;IAC/C,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,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,aAAa,CAAC;YACxB,OAAO,EAAE,CAAC,GAAG,yBAAyB,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAChE,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;SACtC;KACF;CACF,CAAC,CAAC"}
@@ -20,9 +20,9 @@ export const NIGHTLY_E2E_GUARD_BEHAVIOR_CERTIFICATES = Object.freeze({
20
20
  }),
21
21
  "312e8962e21be2f3c6c6c0235b0c6159b8dc39425508b4965c7df87fb1333380": Object.freeze({
22
22
  contractVersion: "1.9.0",
23
- packageVersions: Object.freeze(["4.33.14"]),
23
+ packageVersions: Object.freeze(["4.34.1"]),
24
24
  provenances: Object.freeze([
25
- "workspace package @codyswann/lisa@4.33.14 (typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs)",
25
+ "workspace package @codyswann/lisa@4.34.1 (typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs)",
26
26
  ]),
27
27
  }),
28
28
  "898ee0247806c7aa6e98328662d80bcff22ff067999298865462a58daef8bb22": Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"nightly-e2e-guard-behavior-certificate.js","sourceRoot":"","sources":["../../src/core/nightly-e2e-guard-behavior-certificate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,4CAA4C,GAAG,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,MAAM,CAAC,MAAM,CAAC;IACnE,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,mHAAmH;SACpH,CAAC;KACH,CAAC;IACJ,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,4GAA4G;SAC7G,CAAC;KACH,CAAC;IACJ,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,iHAAiH;SAClH,CAAC;KACH,CAAC;IACJ,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,mHAAmH;SACpH,CAAC;KACH,CAAC;CACL,CAAC,CAAC"}
1
+ {"version":3,"file":"nightly-e2e-guard-behavior-certificate.js","sourceRoot":"","sources":["../../src/core/nightly-e2e-guard-behavior-certificate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,4CAA4C,GAAG,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,MAAM,CAAC,MAAM,CAAC;IACnE,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,mHAAmH;SACpH,CAAC;KACH,CAAC;IACJ,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,2GAA2G;SAC5G,CAAC;KACH,CAAC;IACJ,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,iHAAiH;SAClH,CAAC;KACH,CAAC;IACJ,kEAAkE,EAChE,MAAM,CAAC,MAAM,CAAC;QACZ,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,mHAAmH;SACpH,CAAC;KACH,CAAC;CACL,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * The activity type whose absence is the defect.
3
+ *
4
+ * A pull-request body rewrite raises `edited` and nothing else.
5
+ */
6
+ export declare const BODY_CHANGE_ACTIVITY_TYPE = "edited";
7
+ /**
8
+ * GitHub's implicit `types:` for `pull_request` when the key is omitted.
9
+ *
10
+ * Recorded because the omission is NOT a neutral state: the default set does
11
+ * not include `edited`, so a caller with no `types:` at all is vulnerable in
12
+ * exactly the same way as one that lists types and leaves `edited` out. Writing
13
+ * this list explicitly alongside `edited` is behaviour-preserving — it states
14
+ * what GitHub was already doing and adds the missing one.
15
+ */
16
+ export declare const IMPLICIT_PULL_REQUEST_TYPES: readonly string[];
17
+ /** Why a caller's trigger list leaves the bypass gate half-armed. */
18
+ export type TriggerGap = "types-omit-edited" | "types-absent" | "pull-request-absent";
19
+ /** What a caller's `on:` block says about body-change re-evaluation. */
20
+ export interface TriggerAssessment {
21
+ /** True when a body rewrite re-evaluates the gate. */
22
+ readonly armed: boolean;
23
+ /** Why it is not armed; absent when it is. */
24
+ readonly gap?: TriggerGap;
25
+ /** The activity types actually in force, implicit ones included. */
26
+ readonly effectiveTypes: readonly string[];
27
+ }
28
+ /**
29
+ * Decide whether a caller re-evaluates when the pull-request body changes.
30
+ *
31
+ * Fails toward "not armed": an unreadable document, a missing `pull_request`
32
+ * trigger, or a `types:` shape this cannot read all report a gap rather than
33
+ * claiming the gate is fine. A check that reports "armed" when it means "I
34
+ * could not tell" is the whole failure mode being repaired here.
35
+ * @param source - Workflow YAML source
36
+ * @returns What the trigger list means for body-change re-evaluation
37
+ */
38
+ export declare const assessBodyChangeTrigger: (source: string) => TriggerAssessment;
39
+ /**
40
+ * Add `edited` to a caller's pull-request trigger list, in place and in style.
41
+ *
42
+ * Idempotent, and fails SAFE in both directions: a caller that is already armed
43
+ * is returned untouched, and a shape this cannot confidently edit is also
44
+ * returned untouched rather than guessed at. Every rewrite is verified by
45
+ * re-parsing the result and confirming the gate is now armed — if the surgical
46
+ * edit did not achieve that, the original source is returned and `doctor`
47
+ * reports the caller for a human instead. Writing a broken workflow into a
48
+ * consumer repository would take their gate from half-armed to not running at
49
+ * all, which is strictly worse than the defect.
50
+ * @param source - Workflow YAML source
51
+ * @returns The armed source, or the original when no safe edit exists
52
+ */
53
+ export declare const ensureBodyChangeTrigger: (source: string) => string;
54
+ //# sourceMappingURL=nightly-e2e-pull-request-triggers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nightly-e2e-pull-request-triggers.d.ts","sourceRoot":"","sources":["../../src/core/nightly-e2e-pull-request-triggers.ts"],"names":[],"mappings":"AAuCA;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAIxD,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,cAAc,GACd,qBAAqB,CAAC;AAE1B,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAkED;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,iBAoBxD,CAAC;AA+NF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAMxD,CAAC"}