@e2edev/e2e 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/README.md +32 -3
  2. package/dist/agent/act.d.ts.map +1 -1
  3. package/dist/agent/act.js +124 -71
  4. package/dist/agent/act.js.map +1 -1
  5. package/dist/agent/actions.d.ts +15 -0
  6. package/dist/agent/actions.d.ts.map +1 -1
  7. package/dist/agent/actions.js +59 -1
  8. package/dist/agent/actions.js.map +1 -1
  9. package/dist/agent/default-agent.d.ts +34 -4
  10. package/dist/agent/default-agent.d.ts.map +1 -1
  11. package/dist/agent/default-agent.js +28 -150
  12. package/dist/agent/default-agent.js.map +1 -1
  13. package/dist/agent/derived.d.ts +17 -0
  14. package/dist/agent/derived.d.ts.map +1 -0
  15. package/dist/agent/derived.js +45 -0
  16. package/dist/agent/derived.js.map +1 -0
  17. package/dist/agent/executor.d.ts +122 -2
  18. package/dist/agent/executor.d.ts.map +1 -1
  19. package/dist/agent/executor.js.map +1 -1
  20. package/dist/agent/index.js +1 -1
  21. package/dist/agent/index.js.map +1 -1
  22. package/dist/agent/invocation.d.ts +4 -8
  23. package/dist/agent/invocation.d.ts.map +1 -1
  24. package/dist/agent/invocation.js +16 -42
  25. package/dist/agent/invocation.js.map +1 -1
  26. package/dist/agent/ledger.d.ts +14 -4
  27. package/dist/agent/ledger.d.ts.map +1 -1
  28. package/dist/agent/ledger.js +26 -5
  29. package/dist/agent/ledger.js.map +1 -1
  30. package/dist/agent/loop-guards.d.ts +14 -1
  31. package/dist/agent/loop-guards.d.ts.map +1 -1
  32. package/dist/agent/loop-guards.js +11 -8
  33. package/dist/agent/loop-guards.js.map +1 -1
  34. package/dist/agent/observation.d.ts +28 -7
  35. package/dist/agent/observation.d.ts.map +1 -1
  36. package/dist/agent/observation.js +52 -5
  37. package/dist/agent/observation.js.map +1 -1
  38. package/dist/agent/primitives.d.ts +86 -0
  39. package/dist/agent/primitives.d.ts.map +1 -0
  40. package/dist/agent/primitives.js +255 -0
  41. package/dist/agent/primitives.js.map +1 -0
  42. package/dist/agent/prompts.d.ts.map +1 -1
  43. package/dist/agent/prompts.js.map +1 -1
  44. package/dist/agent/public.d.ts +6 -3
  45. package/dist/agent/public.d.ts.map +1 -1
  46. package/dist/agent/public.js +4 -2
  47. package/dist/agent/public.js.map +1 -1
  48. package/dist/agent/replay.d.ts +1 -1
  49. package/dist/agent/replay.d.ts.map +1 -1
  50. package/dist/agent/replay.js +19 -2
  51. package/dist/agent/replay.js.map +1 -1
  52. package/dist/agent/step-cache.d.ts +5 -2
  53. package/dist/agent/step-cache.d.ts.map +1 -1
  54. package/dist/agent/step-cache.js +37 -5
  55. package/dist/agent/step-cache.js.map +1 -1
  56. package/dist/agent/tool-loop.d.ts +59 -5
  57. package/dist/agent/tool-loop.d.ts.map +1 -1
  58. package/dist/agent/tool-loop.js +77 -105
  59. package/dist/agent/tool-loop.js.map +1 -1
  60. package/dist/agent/tool.d.ts +11 -16
  61. package/dist/agent/tool.d.ts.map +1 -1
  62. package/dist/agent/tool.js +19 -13
  63. package/dist/agent/tool.js.map +1 -1
  64. package/dist/agent/usage.d.ts +27 -0
  65. package/dist/agent/usage.d.ts.map +1 -0
  66. package/dist/agent/usage.js +54 -0
  67. package/dist/agent/usage.js.map +1 -0
  68. package/dist/backend/index.d.ts +72 -6
  69. package/dist/backend/index.d.ts.map +1 -1
  70. package/dist/backend/index.js +4 -1
  71. package/dist/backend/index.js.map +1 -1
  72. package/dist/backend/session.d.ts.map +1 -1
  73. package/dist/backend/session.js +1 -0
  74. package/dist/backend/session.js.map +1 -1
  75. package/dist/backend/surface.d.ts +2 -0
  76. package/dist/backend/surface.d.ts.map +1 -1
  77. package/dist/backend/timing.d.ts +3 -0
  78. package/dist/backend/timing.d.ts.map +1 -0
  79. package/dist/backend/timing.js +8 -0
  80. package/dist/backend/timing.js.map +1 -0
  81. package/dist/cache/recorder.d.ts +2 -0
  82. package/dist/cache/recorder.d.ts.map +1 -1
  83. package/dist/cache/recorder.js +4 -1
  84. package/dist/cache/recorder.js.map +1 -1
  85. package/dist/cache/relocate.d.ts.map +1 -1
  86. package/dist/cache/relocate.js +11 -2
  87. package/dist/cache/relocate.js.map +1 -1
  88. package/dist/cache/trace.d.ts +11 -0
  89. package/dist/cache/trace.d.ts.map +1 -1
  90. package/dist/cache/trace.js +9 -0
  91. package/dist/cache/trace.js.map +1 -1
  92. package/dist/cli/index.d.ts.map +1 -1
  93. package/dist/cli/index.js +32 -22
  94. package/dist/cli/index.js.map +1 -1
  95. package/dist/cli/init/backends.d.ts +75 -0
  96. package/dist/cli/init/backends.d.ts.map +1 -0
  97. package/dist/cli/init/backends.js +98 -0
  98. package/dist/cli/init/backends.js.map +1 -0
  99. package/dist/cli/init/package.d.ts +43 -0
  100. package/dist/cli/init/package.d.ts.map +1 -0
  101. package/dist/cli/init/package.js +64 -0
  102. package/dist/cli/init/package.js.map +1 -0
  103. package/dist/cli/init/scaffold.d.ts +12 -0
  104. package/dist/cli/init/scaffold.d.ts.map +1 -0
  105. package/dist/cli/init/scaffold.js +36 -0
  106. package/dist/cli/init/scaffold.js.map +1 -0
  107. package/dist/cli/init.d.ts +8 -3
  108. package/dist/cli/init.d.ts.map +1 -1
  109. package/dist/cli/init.js +99 -72
  110. package/dist/cli/init.js.map +1 -1
  111. package/dist/cli/signals.d.ts +23 -0
  112. package/dist/cli/signals.d.ts.map +1 -0
  113. package/dist/cli/signals.js +42 -0
  114. package/dist/cli/signals.js.map +1 -0
  115. package/dist/collect/registry.d.ts +14 -4
  116. package/dist/collect/registry.d.ts.map +1 -1
  117. package/dist/collect/registry.js +10 -10
  118. package/dist/collect/registry.js.map +1 -1
  119. package/dist/config/app.d.ts +50 -0
  120. package/dist/config/app.d.ts.map +1 -0
  121. package/dist/config/app.js +168 -0
  122. package/dist/config/app.js.map +1 -0
  123. package/dist/config/esm.d.ts +4 -0
  124. package/dist/config/esm.d.ts.map +1 -0
  125. package/dist/config/esm.js +35 -0
  126. package/dist/config/esm.js.map +1 -0
  127. package/dist/config/load.d.ts.map +1 -1
  128. package/dist/config/load.js +4 -0
  129. package/dist/config/load.js.map +1 -1
  130. package/dist/config/resolve.d.ts +6 -16
  131. package/dist/config/resolve.d.ts.map +1 -1
  132. package/dist/config/resolve.js +18 -110
  133. package/dist/config/resolve.js.map +1 -1
  134. package/dist/config/validate.d.ts +3 -1
  135. package/dist/config/validate.d.ts.map +1 -1
  136. package/dist/config/validate.js +17 -1
  137. package/dist/config/validate.js.map +1 -1
  138. package/dist/index.d.ts +3 -2
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +1 -1
  141. package/dist/index.js.map +1 -1
  142. package/dist/internal/errors.d.ts +9 -0
  143. package/dist/internal/errors.d.ts.map +1 -1
  144. package/dist/internal/errors.js +15 -0
  145. package/dist/internal/errors.js.map +1 -1
  146. package/dist/internal/time.d.ts +10 -0
  147. package/dist/internal/time.d.ts.map +1 -1
  148. package/dist/internal/time.js +45 -0
  149. package/dist/internal/time.js.map +1 -1
  150. package/dist/internal/urls.d.ts +2 -1
  151. package/dist/internal/urls.d.ts.map +1 -1
  152. package/dist/internal/urls.js +22 -2
  153. package/dist/internal/urls.js.map +1 -1
  154. package/dist/locator/engine.d.ts +5 -3
  155. package/dist/locator/engine.d.ts.map +1 -1
  156. package/dist/locator/engine.js +7 -6
  157. package/dist/locator/engine.js.map +1 -1
  158. package/dist/report/build.d.ts +0 -1
  159. package/dist/report/build.d.ts.map +1 -1
  160. package/dist/report/build.js +2 -3
  161. package/dist/report/build.js.map +1 -1
  162. package/dist/report/junit.d.ts +11 -0
  163. package/dist/report/junit.d.ts.map +1 -0
  164. package/dist/report/junit.js +202 -0
  165. package/dist/report/junit.js.map +1 -0
  166. package/dist/report/list.d.ts +2 -0
  167. package/dist/report/list.d.ts.map +1 -1
  168. package/dist/report/list.js +15 -0
  169. package/dist/report/list.js.map +1 -1
  170. package/dist/report/live-status.d.ts.map +1 -1
  171. package/dist/report/live-status.js +2 -1
  172. package/dist/report/live-status.js.map +1 -1
  173. package/dist/report/write.d.ts +2 -0
  174. package/dist/report/write.d.ts.map +1 -1
  175. package/dist/report/write.js +7 -3
  176. package/dist/report/write.js.map +1 -1
  177. package/dist/run/budget.d.ts +25 -0
  178. package/dist/run/budget.d.ts.map +1 -0
  179. package/dist/run/budget.js +38 -0
  180. package/dist/run/budget.js.map +1 -0
  181. package/dist/run/events.d.ts +15 -0
  182. package/dist/run/events.d.ts.map +1 -1
  183. package/dist/run/events.js.map +1 -1
  184. package/dist/run/execute.d.ts +8 -0
  185. package/dist/run/execute.d.ts.map +1 -1
  186. package/dist/run/execute.js +53 -8
  187. package/dist/run/execute.js.map +1 -1
  188. package/dist/run/fixture-legacy.d.ts +36 -0
  189. package/dist/run/fixture-legacy.d.ts.map +1 -0
  190. package/dist/run/fixture-legacy.js +143 -0
  191. package/dist/run/fixture-legacy.js.map +1 -0
  192. package/dist/run/fixture-recording.d.ts +15 -0
  193. package/dist/run/fixture-recording.d.ts.map +1 -0
  194. package/dist/run/fixture-recording.js +75 -0
  195. package/dist/run/fixture-recording.js.map +1 -0
  196. package/dist/run/fixtures.d.ts +6 -3
  197. package/dist/run/fixtures.d.ts.map +1 -1
  198. package/dist/run/fixtures.js +32 -166
  199. package/dist/run/fixtures.js.map +1 -1
  200. package/dist/run/in-process.d.ts.map +1 -1
  201. package/dist/run/in-process.js +11 -2
  202. package/dist/run/in-process.js.map +1 -1
  203. package/dist/run/managed-process.d.ts +49 -0
  204. package/dist/run/managed-process.d.ts.map +1 -0
  205. package/dist/run/managed-process.js +202 -0
  206. package/dist/run/managed-process.js.map +1 -0
  207. package/dist/run/realm.d.ts +43 -8
  208. package/dist/run/realm.d.ts.map +1 -1
  209. package/dist/run/realm.js +67 -24
  210. package/dist/run/realm.js.map +1 -1
  211. package/dist/run/runner.d.ts +11 -1
  212. package/dist/run/runner.d.ts.map +1 -1
  213. package/dist/run/runner.js +151 -33
  214. package/dist/run/runner.js.map +1 -1
  215. package/dist/run/scheduler.d.ts +8 -0
  216. package/dist/run/scheduler.d.ts.map +1 -1
  217. package/dist/run/scheduler.js +37 -3
  218. package/dist/run/scheduler.js.map +1 -1
  219. package/dist/run/serial.d.ts +2 -0
  220. package/dist/run/serial.d.ts.map +1 -1
  221. package/dist/run/serial.js +10 -0
  222. package/dist/run/serial.js.map +1 -1
  223. package/dist/run/steps.d.ts +1 -1
  224. package/dist/run/steps.d.ts.map +1 -1
  225. package/dist/run/steps.js +12 -9
  226. package/dist/run/steps.js.map +1 -1
  227. package/dist/run/worker/entry.js +17 -2
  228. package/dist/run/worker/entry.js.map +1 -1
  229. package/dist/run/worker/protocol.d.ts +9 -1
  230. package/dist/run/worker/protocol.d.ts.map +1 -1
  231. package/dist/run/worker/protocol.js.map +1 -1
  232. package/dist/run/worker/session.d.ts +12 -0
  233. package/dist/run/worker/session.d.ts.map +1 -1
  234. package/dist/run/worker/session.js +23 -1
  235. package/dist/run/worker/session.js.map +1 -1
  236. package/dist/types.d.ts +33 -2
  237. package/dist/types.d.ts.map +1 -1
  238. package/package.json +2 -2
  239. package/dist/run/app-process.d.ts +0 -18
  240. package/dist/run/app-process.d.ts.map +0 -1
  241. package/dist/run/app-process.js +0 -112
  242. package/dist/run/app-process.js.map +0 -1
package/dist/cli/init.js CHANGED
@@ -1,101 +1,128 @@
1
1
  /** Non-destructive project scaffolding (spec 06-cli.md). */
2
+ import * as clack from '@clack/prompts';
3
+ import { spawnSync } from 'node:child_process';
2
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
5
  import path from 'node:path';
4
- import * as clack from '@clack/prompts';
5
- const CONFIG_TEMPLATE = `import { defineConfig } from '@e2edev/e2e';
6
- import { createAgent } from '@e2edev/e2e/agent';
7
- import { playwright } from '@e2edev/playwright';
8
-
9
- export default defineConfig({
10
- specVersion: '0.1',
11
- app: {
12
- url: process.env.APP_URL ?? 'http://localhost:3000',
13
- },
14
- // The runner ships no intelligence: you construct the agent and pass it in.
15
- // createAgent builds the built-in one; its model comes from E2E_MODEL.
16
- agent: createAgent({
17
- system: 'You are a thorough QA agent. Verify every outcome on screen.',
18
- }),
19
- // The runner knows no platform: a target is served by the backend you pass.
20
- targets: [{ name: 'web', platform: 'web', backend: playwright({ browser: 'chromium' }) }],
21
- });
22
- `;
23
- const EXAMPLE_TEMPLATE = `import { test } from '@e2edev/playwright';
24
- import { expect } from '@e2edev/e2e';
25
-
26
- test('app opens', async ({ app, web }) => {
27
- await app.open();
28
- await expect(web).toHaveURL('/');
29
- });
30
-
31
- // Runs when E2E_MODEL and E2E_MODEL_API_KEY are set:
32
- // test('the agent drives a flow', async ({ app, agent }) => {
33
- // await app.open();
34
- // await agent.act('one goal in plain language');
35
- // await agent.assert('one question about the screen');
36
- // });
37
- `;
6
+ import { esmPackageHint } from '../config/esm.js';
7
+ import { getBackendPresets, DEFAULT_BACKEND_ID } from './init/backends.js';
8
+ import { addDependencies, detectPackageManager, readPackage, serializePackage } from './init/package.js';
9
+ import { createScaffold } from './init/scaffold.js';
38
10
  const GITIGNORE_ENTRIES = [
11
+ 'node_modules/',
39
12
  '.e2e/artifacts/',
40
13
  '.e2e/cache/',
41
14
  '.e2e/sessions/',
42
15
  '.e2e/report.json',
43
16
  '.e2e/ai-trace.json',
17
+ '.e2e/junit.xml',
44
18
  ];
45
- /** Runs `e2e init`. Creates only missing files and stops before any conflict. */
19
+ /**
20
+ * Runs `e2e init`. Every prompt happens before the first write, existing
21
+ * config and test files are never touched, and dependencies install only when
22
+ * the user asks.
23
+ */
46
24
  export async function init(cwd, options = {}) {
47
25
  clack.intro('e2e init');
48
- const planned = [
49
- { relative: 'e2e.config.ts', content: CONFIG_TEMPLATE },
50
- { relative: path.join('tests', 'example.e2e.ts'), content: EXAMPLE_TEMPLATE },
51
- ];
52
- const exists = (file) => existsSync(path.join(cwd, file.relative));
53
- const conflicts = planned.filter(exists);
54
- const remaining = planned.filter((file) => !exists(file));
55
- for (const conflict of conflicts) {
56
- clack.log.warn(`exists, not touching: ${conflict.relative}`);
26
+ let pkg;
27
+ try {
28
+ pkg = readPackage(cwd);
29
+ }
30
+ catch {
31
+ clack.log.error('invalid package.json; fix it before running e2e init');
32
+ return 2;
33
+ }
34
+ const existingConfig = ['e2e.config.ts', 'e2e.config.mts'].find((file) => existsSync(path.join(cwd, file)));
35
+ const examplePath = path.join('tests', 'example.e2e.ts');
36
+ const exampleExists = existsSync(path.join(cwd, examplePath));
37
+ if (existingConfig !== undefined)
38
+ clack.log.warn(`exists, not touching: ${existingConfig}`);
39
+ if (exampleExists)
40
+ clack.log.warn(`exists, not touching: ${examplePath}`);
41
+ if (pkg.original !== undefined) {
42
+ const hint = esmPackageHint(path.join(cwd, existingConfig ?? 'e2e.config.ts'));
43
+ if (hint !== undefined)
44
+ clack.log.warn(hint);
57
45
  }
58
- // The ignore list is reconciled on every run, not only the first: a project
59
- // initialized before an entry existed (`.e2e/ai-trace.json`, say) picks it
60
- // up by re-running init, without touching any scaffold file.
61
46
  const gitignorePath = path.join(cwd, '.gitignore');
62
- const existing = existsSync(gitignorePath) ? readFileSync(gitignorePath, 'utf8') : '';
63
- // A CRLF .gitignore must not re-append every entry on each init.
64
- const lines = existing.split(/\r?\n/);
65
- const missing = GITIGNORE_ENTRIES.filter((entry) => !lines.includes(entry));
66
- if (remaining.length === 0 && missing.length === 0) {
47
+ const existingIgnore = existsSync(gitignorePath) ? readFileSync(gitignorePath, 'utf8') : '';
48
+ const ignoreLines = existingIgnore.split(/\r?\n/);
49
+ const missingIgnore = GITIGNORE_ENTRIES.filter((entry) => !ignoreLines.includes(entry));
50
+ // Backend and AI are choices for a new config only; an existing config keeps its own dependencies.
51
+ let backend = DEFAULT_BACKEND_ID;
52
+ let ai = existingConfig === undefined;
53
+ if (existingConfig === undefined && !options.yes) {
54
+ const selectedBackend = await clack.select({
55
+ message: 'Which backend?',
56
+ initialValue: DEFAULT_BACKEND_ID,
57
+ options: getBackendPresets().map(({ id, label, hint }) => ({ value: id, label, hint })),
58
+ });
59
+ if (clack.isCancel(selectedBackend))
60
+ return cancelled();
61
+ backend = selectedBackend;
62
+ const enableAi = await clack.confirm({ message: 'Enable AI testing? Adds AI SDK v7.', initialValue: true });
63
+ if (clack.isCancel(enableAi))
64
+ return cancelled();
65
+ ai = enableAi;
66
+ }
67
+ const scaffold = createScaffold(backend, ai);
68
+ const { manifest, additions } = addDependencies(pkg.manifest, scaffold.dependencies);
69
+ if (additions.length > 0) {
70
+ clack.log.info(`add dev dependencies: ${additions.map(([name, version]) => `${name}@${version}`).join(', ')}`);
71
+ }
72
+ const files = [
73
+ ...(pkg.original === undefined || additions.length > 0
74
+ ? [{ relative: 'package.json', content: serializePackage(manifest, pkg.original), existing: pkg.original !== undefined }]
75
+ : []),
76
+ ...(existingConfig === undefined ? [{ relative: 'e2e.config.ts', content: scaffold.config, existing: false }] : []),
77
+ ...(exampleExists ? [] : [{ relative: examplePath, content: scaffold.example, existing: false }]),
78
+ ];
79
+ if (files.length === 0 && missingIgnore.length === 0) {
67
80
  clack.outro('nothing to create; project already initialized');
68
81
  return 0;
69
82
  }
70
- if (options.yes !== true) {
83
+ if (!options.yes) {
71
84
  const actions = [
72
- ...(remaining.length === 0
73
- ? []
74
- : [`create ${remaining.map((file) => file.relative).join(', ')}`]),
75
- ...(missing.length === 0 ? [] : ['update .gitignore']),
85
+ ...files.map((file) => `${file.existing ? 'update' : 'create'} ${file.relative}`),
86
+ ...(missingIgnore.length > 0 ? ['update .gitignore'] : []),
76
87
  ];
77
- const proceed = await clack.confirm({ message: `${actions.join(' and ')}?` });
78
- if (clack.isCancel(proceed) || proceed !== true) {
79
- clack.cancel('cancelled; no changes were made');
80
- return 0;
81
- }
88
+ const proceed = await clack.confirm({ message: `${actions.join(', ')}?` });
89
+ if (clack.isCancel(proceed) || !proceed)
90
+ return cancelled();
82
91
  }
83
- for (const file of remaining) {
92
+ const manager = detectPackageManager(cwd, manifest);
93
+ let install = false;
94
+ if (!options.yes) {
95
+ const selected = await clack.confirm({ message: `Install dependencies with ${manager}?`, initialValue: true });
96
+ if (clack.isCancel(selected))
97
+ return cancelled();
98
+ install = selected;
99
+ }
100
+ for (const file of files) {
84
101
  const absolute = path.join(cwd, file.relative);
85
102
  mkdirSync(path.dirname(absolute), { recursive: true });
86
103
  writeFileSync(absolute, file.content, 'utf8');
87
- clack.log.success(`created ${file.relative}`);
104
+ clack.log.success(`${file.existing ? 'updated' : 'created'} ${file.relative}`);
88
105
  }
89
- if (missing.length > 0) {
90
- const prefix = existing === '' || existing.endsWith('\n') ? '' : '\n';
91
- writeFileSync(gitignorePath, `${existing}${prefix}${missing.join('\n')}\n`, 'utf8');
92
- clack.log.success(`updated .gitignore (${missing.length} entries)`);
106
+ if (missingIgnore.length > 0) {
107
+ const prefix = existingIgnore === '' || existingIgnore.endsWith('\n') ? '' : '\n';
108
+ writeFileSync(gitignorePath, `${existingIgnore}${prefix}${missingIgnore.join('\n')}\n`, 'utf8');
109
+ clack.log.success(`updated .gitignore (${missingIgnore.length} entries)`);
93
110
  }
94
- if (remaining.length === 0) {
95
- clack.outro('project already initialized; .gitignore brought up to date');
96
- return 0;
111
+ if (install) {
112
+ const result = spawnSync(manager, ['install'], { cwd, stdio: 'inherit', shell: process.platform === 'win32' });
113
+ if (result.error !== undefined || result.status !== 0) {
114
+ const reason = result.error?.message ?? `exit ${result.status ?? result.signal}`;
115
+ clack.log.error(`installation failed (${reason}); retry with ${manager} install`);
116
+ clack.outro('scaffold saved');
117
+ return result.signal === 'SIGINT' ? 130 : 2;
118
+ }
97
119
  }
98
- clack.outro('next: install @e2edev/playwright, then APP_URL=http://localhost:3000 npx --no-install e2e run');
120
+ clack.outro(`next: ${install ? '' : `${manager} install, then `}${scaffold.runCommand}`);
121
+ return 0;
122
+ }
123
+ /** Cancellation is only reachable before the first write, so nothing needs undoing. */
124
+ function cancelled() {
125
+ clack.cancel('cancelled; no changes were made');
99
126
  return 0;
100
127
  }
101
128
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * What Ctrl-C means to the CLI, press by press. The runner installs no
3
+ * process handlers and never exits the process — a host embedding it passes
4
+ * its own signals — so process termination is owned here, by the one caller
5
+ * that is the process.
6
+ */
7
+ /**
8
+ * The escalation ladder behind SIGINT and SIGTERM. The next rung is the first
9
+ * one not yet reached, so the state is the signals themselves: the first
10
+ * signal interrupts, the second forces, the third exits on the spot — the
11
+ * last resort for a teardown that is itself stuck.
12
+ */
13
+ export declare class SignalLadder {
14
+ private readonly graceful;
15
+ private readonly forced;
16
+ /** Aborts on the first signal: the run interrupts and tears down. */
17
+ get interruptSignal(): AbortSignal;
18
+ /** Aborts on the second signal: every worker tears its backend down at once. */
19
+ get forceSignal(): AbortSignal;
20
+ /** Installs the process handlers; returns their removal. */
21
+ arm(exit?: (code: number) => void): () => void;
22
+ }
23
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/cli/signals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD,qEAAqE;IACrE,IAAI,eAAe,IAAI,WAAW,CAEjC;IAED,gFAAgF;IAChF,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,4DAA4D;IAC5D,GAAG,CAAC,IAAI,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAmC,GAAG,MAAM,IAAI,CAY3E;CACF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * What Ctrl-C means to the CLI, press by press. The runner installs no
3
+ * process handlers and never exits the process — a host embedding it passes
4
+ * its own signals — so process termination is owned here, by the one caller
5
+ * that is the process.
6
+ */
7
+ /**
8
+ * The escalation ladder behind SIGINT and SIGTERM. The next rung is the first
9
+ * one not yet reached, so the state is the signals themselves: the first
10
+ * signal interrupts, the second forces, the third exits on the spot — the
11
+ * last resort for a teardown that is itself stuck.
12
+ */
13
+ export class SignalLadder {
14
+ graceful = new AbortController();
15
+ forced = new AbortController();
16
+ /** Aborts on the first signal: the run interrupts and tears down. */
17
+ get interruptSignal() {
18
+ return this.graceful.signal;
19
+ }
20
+ /** Aborts on the second signal: every worker tears its backend down at once. */
21
+ get forceSignal() {
22
+ return this.forced.signal;
23
+ }
24
+ /** Installs the process handlers; returns their removal. */
25
+ arm(exit = (code) => process.exit(code)) {
26
+ const escalate = () => {
27
+ if (!this.graceful.signal.aborted)
28
+ this.graceful.abort();
29
+ else if (!this.forced.signal.aborted)
30
+ this.forced.abort();
31
+ else
32
+ exit(130);
33
+ };
34
+ process.on('SIGINT', escalate);
35
+ process.on('SIGTERM', escalate);
36
+ return () => {
37
+ process.removeListener('SIGINT', escalate);
38
+ process.removeListener('SIGTERM', escalate);
39
+ };
40
+ }
41
+ }
42
+ //# sourceMappingURL=signals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/cli/signals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACN,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAEhD,qEAAqE;IACrE,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,gFAAgF;IAChF,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,4DAA4D;IAC5D,GAAG,CAAC,IAAI,GAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7D,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;iBACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;;gBACrD,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -24,13 +24,22 @@ export interface RegisteredTest {
24
24
  readonly mode: TestMode;
25
25
  readonly source: SourceLocation | undefined;
26
26
  }
27
- export type HookKind = 'beforeEach' | 'afterEach' | 'beforeAll' | 'afterAll';
28
- export interface RegisteredHook {
29
- readonly kind: HookKind;
30
- readonly fn: TestHookFn | SuiteHookFn;
27
+ interface HookBase {
31
28
  readonly group: GroupNode | undefined;
32
29
  readonly declarationIndex: number;
33
30
  }
31
+ /** A per-test hook: runs with the attempt's fixtures. */
32
+ export interface TestHook extends HookBase {
33
+ readonly kind: 'beforeEach' | 'afterEach';
34
+ readonly fn: TestHookFn;
35
+ }
36
+ /** A suite hook: runs once per scope instance with suite fixtures only. */
37
+ export interface SuiteHook extends HookBase {
38
+ readonly kind: 'beforeAll' | 'afterAll';
39
+ readonly fn: SuiteHookFn;
40
+ }
41
+ export type RegisteredHook = TestHook | SuiteHook;
42
+ export type HookKind = RegisteredHook['kind'];
34
43
  export interface ModuleRegistration {
35
44
  readonly tests: readonly RegisteredTest[];
36
45
  readonly hooks: readonly RegisteredHook[];
@@ -44,4 +53,5 @@ export declare function outermostSerialGroup(group: GroupNode | undefined): Grou
44
53
  /** Runs `load` with a fresh collector active and returns everything it registered. */
45
54
  export declare function collectModule(load: () => Promise<unknown>): Promise<ModuleRegistration>;
46
55
  export declare const test: TestAPI;
56
+ export {};
47
57
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/collect/registry.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAQhF,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EAEP,WAAW,EACX,OAAO,EAEP,MAAM,EACN,UAAU,EACV,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C;AAyHD,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EAAE,CAMpE;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAElE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAExF;AAqDD,sFAAsF;AACtF,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAY7F;AAkDD,eAAO,MAAM,IAAI,EAAE,OAyCN,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/collect/registry.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAQhF,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EAEP,WAAW,EACX,OAAO,EAEP,MAAM,EACN,UAAU,EACV,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;CAC7C;AAED,UAAU,QAAQ;IAChB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,yDAAyD;AACzD,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAAC;IAC1C,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAG9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C;AA0HD,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EAAE,CAMpE;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAElE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAExF;AAqDD,sFAAsF;AACtF,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAY7F;AAkDD,eAAO,MAAM,IAAI,EAAE,OAyCN,CAAC"}
@@ -89,13 +89,13 @@ class Collector {
89
89
  this.currentGroup = previous;
90
90
  }
91
91
  }
92
- registerHook(kind, fn) {
93
- this.assertOpen(`test.${kind}()`);
94
- if (typeof fn !== 'function')
95
- throw new CollectionError(`${kind} hook must be a function`);
92
+ registerHook(hook) {
93
+ this.assertOpen(`test.${hook.kind}()`);
94
+ if (typeof hook.fn !== 'function') {
95
+ throw new CollectionError(`${hook.kind} hook must be a function`);
96
+ }
96
97
  this.hooks.push({
97
- kind,
98
- fn,
98
+ ...hook,
99
99
  group: this.currentGroup,
100
100
  declarationIndex: this.declarationCounter,
101
101
  });
@@ -242,16 +242,16 @@ export const test = Object.assign(testFunction, {
242
242
  requireCollector('test.describe()').registerDescribe(title, options, body);
243
243
  },
244
244
  beforeEach(fn) {
245
- requireCollector('test.beforeEach()').registerHook('beforeEach', fn);
245
+ requireCollector('test.beforeEach()').registerHook({ kind: 'beforeEach', fn });
246
246
  },
247
247
  afterEach(fn) {
248
- requireCollector('test.afterEach()').registerHook('afterEach', fn);
248
+ requireCollector('test.afterEach()').registerHook({ kind: 'afterEach', fn });
249
249
  },
250
250
  beforeAll(fn) {
251
- requireCollector('test.beforeAll()').registerHook('beforeAll', fn);
251
+ requireCollector('test.beforeAll()').registerHook({ kind: 'beforeAll', fn });
252
252
  },
253
253
  afterAll(fn) {
254
- requireCollector('test.afterAll()').registerHook('afterAll', fn);
254
+ requireCollector('test.afterAll()').registerHook({ kind: 'afterAll', fn });
255
255
  },
256
256
  // Type-only refinement: contributed fixtures are resolved from the backend
257
257
  // at runtime, so the same test object serves every fixture shape.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/collect/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/collect/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /** App, command, and service resolution (spec 05-config.md). */
2
+ import { type NormalizedBaseUrl } from '../internal/urls.ts';
3
+ import type { AppConfig, CommandConfig, E2EConfig } from '../types.ts';
4
+ /**
5
+ * How a spawned process counts as ready: a URL that answers, or the process
6
+ * itself exiting with code 0 (a migration, `docker compose up --wait`).
7
+ */
8
+ export type Readiness = {
9
+ readonly readyUrl: string;
10
+ } | {
11
+ readonly waitForExit: true;
12
+ };
13
+ /** A command the runner spawns, named for error messages. */
14
+ export interface ResolvedCommand {
15
+ readonly label: string;
16
+ readonly command: CommandConfig;
17
+ }
18
+ /** One `app.services` entry with its readiness contract already decided. */
19
+ export interface ResolvedService extends ResolvedCommand {
20
+ readonly readiness: Readiness;
21
+ readonly teardown: ResolvedCommand | undefined;
22
+ }
23
+ export interface ResolvedApp {
24
+ /** False when no app URL was configured and `base` is a synthetic loopback placeholder. */
25
+ readonly configured: boolean;
26
+ readonly base: NormalizedBaseUrl;
27
+ readonly readyUrl: string;
28
+ readonly allowedOrigins: readonly string[];
29
+ readonly environment: 'test' | 'staging' | 'production';
30
+ readonly command: CommandConfig | undefined;
31
+ /** Dependency processes started in order before `command` and torn down in reverse. */
32
+ readonly services: readonly ResolvedService[];
33
+ /** Stable logical app identity; overrides the origin for cache/session keying. */
34
+ readonly identity: string | undefined;
35
+ }
36
+ export declare function resolveApp(raw: E2EConfig, env: NodeJS.ProcessEnv): ResolvedApp;
37
+ /**
38
+ * Resolves `app.services`: every service is a command with exactly one
39
+ * readiness contract (`readyUrl` or `waitForExit`), and a `teardown` is a
40
+ * command of its own. The service fields that only steer the runner
41
+ * (`readyUrl`, `waitForExit`, `teardown`) are lifted out of the command.
42
+ */
43
+ export declare function resolveServices(raw: AppConfig['services']): readonly ResolvedService[];
44
+ /**
45
+ * The digest view of `app`: `app.command.env`, every service's env, and every
46
+ * service teardown's env become names, so no environment value contributes to
47
+ * the digest. Live values never appear under `app`, so nothing else changes.
48
+ */
49
+ export declare function digestApp(app: AppConfig): Record<string, unknown>;
50
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/config/app.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAGhE,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AAGtF;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvF,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED,4EAA4E;AAC5E,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,WAAW;IAC1B,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAeD,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,WAAW,CAqF9E;AAuBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,eAAe,EAAE,CA6BtF;AAaD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAajE"}