@overkill-dev/run 0.0.66 → 0.0.68

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 (306) hide show
  1. package/{run/attachment-json.js → attachments/json-snapshot.js} +4 -4
  2. package/attachments/json-snapshot.js.map +1 -0
  3. package/baselines/performance-adapter.d.ts +60 -0
  4. package/baselines/performance-adapter.d.ts.map +1 -0
  5. package/baselines/performance-baseline.d.ts +48 -0
  6. package/baselines/performance-baseline.d.ts.map +1 -0
  7. package/baselines/performance-baseline.js +9 -0
  8. package/baselines/performance-baseline.js.map +1 -0
  9. package/baselines/performance-evaluation.js +88 -0
  10. package/baselines/performance-evaluation.js.map +1 -0
  11. package/baselines/performance-plan.js +33 -0
  12. package/baselines/performance-plan.js.map +1 -0
  13. package/baselines/performance-report.js +57 -0
  14. package/baselines/performance-report.js.map +1 -0
  15. package/baselines/performance-schema.js +12 -0
  16. package/baselines/performance-schema.js.map +1 -0
  17. package/baselines/performance-store.js +134 -0
  18. package/baselines/performance-store.js.map +1 -0
  19. package/baselines/performance-workflow.js +180 -0
  20. package/baselines/performance-workflow.js.map +1 -0
  21. package/bench/calibration-schema.js +12 -0
  22. package/bench/calibration-schema.js.map +1 -0
  23. package/canonical-identity.js +54 -0
  24. package/canonical-identity.js.map +1 -0
  25. package/config/benchmark-execution.js +30 -0
  26. package/config/benchmark-execution.js.map +1 -0
  27. package/config/config-error.d.ts +4 -0
  28. package/config/config-error.d.ts.map +1 -0
  29. package/config/config-error.js +7 -0
  30. package/config/config-error.js.map +1 -0
  31. package/config/config.d.ts +57 -0
  32. package/config/config.d.ts.map +1 -0
  33. package/{run/run-config.js → config/config.js} +55 -19
  34. package/config/config.js.map +1 -0
  35. package/{run/coverage-config-schema.d.ts → config/coverage-schema.d.ts} +7 -7
  36. package/config/coverage-schema.d.ts.map +1 -0
  37. package/{run/coverage-config-schema.js → config/coverage-schema.js} +1 -1
  38. package/config/coverage-schema.js.map +1 -0
  39. package/{run/run-config-defaults.js → config/defaults.js} +6 -1
  40. package/config/defaults.js.map +1 -0
  41. package/{run/run-execution-config.d.ts → config/execution.d.ts} +5 -7
  42. package/config/execution.d.ts.map +1 -0
  43. package/config/host-process.js +41 -0
  44. package/config/host-process.js.map +1 -0
  45. package/config/performance-baselines.js +24 -0
  46. package/config/performance-baselines.js.map +1 -0
  47. package/config/profile-file-discovery.js +88 -0
  48. package/config/profile-file-discovery.js.map +1 -0
  49. package/{run/profile-config-normalization.js → config/profile-normalization.js} +13 -13
  50. package/config/profile-normalization.js.map +1 -0
  51. package/{run/profile-file-glob.js → config/profile-patterns.js} +6 -10
  52. package/config/profile-patterns.js.map +1 -0
  53. package/{run/run-config-schema.d.ts → config/schema.d.ts} +210 -28
  54. package/config/schema.d.ts.map +1 -0
  55. package/{run/run-config-schema.js → config/schema.js} +40 -12
  56. package/config/schema.js.map +1 -0
  57. package/config/snapshot.js +205 -0
  58. package/config/snapshot.js.map +1 -0
  59. package/config/types.d.ts +160 -0
  60. package/config/types.d.ts.map +1 -0
  61. package/config/validation.js +93 -0
  62. package/config/validation.js.map +1 -0
  63. package/{run/work-distribution-config.js → config/work-distribution.js} +3 -3
  64. package/config/work-distribution.js.map +1 -0
  65. package/{run/run-identity-schema.js → engine/identity-schema.js} +1 -1
  66. package/engine/identity-schema.js.map +1 -0
  67. package/file-store.js +48 -0
  68. package/file-store.js.map +1 -0
  69. package/package.json +23 -9
  70. package/packages/run/benchmark-calibration.entry-point.d.ts +22 -0
  71. package/packages/run/benchmark-calibration.entry-point.d.ts.map +1 -0
  72. package/packages/run/benchmark-calibration.entry-point.js +129 -0
  73. package/packages/run/benchmark-calibration.entry-point.js.map +1 -0
  74. package/packages/run/command-line.entry-point.d.ts +5 -3
  75. package/packages/run/command-line.entry-point.d.ts.map +1 -1
  76. package/packages/run/command-line.entry-point.js +28 -7
  77. package/packages/run/command-line.entry-point.js.map +1 -1
  78. package/packages/run/config.entry-point.d.ts +8 -6
  79. package/packages/run/config.entry-point.d.ts.map +1 -1
  80. package/packages/run/config.entry-point.js +4 -4
  81. package/packages/run/config.entry-point.js.map +1 -1
  82. package/packages/run/run.entry-point.d.ts +6 -4
  83. package/packages/run/run.entry-point.d.ts.map +1 -1
  84. package/packages/run/run.entry-point.js +3 -3
  85. package/packages/run/run.entry-point.js.map +1 -1
  86. package/readme.md +64 -13
  87. package/run/assertion-result-schema.js +1 -1
  88. package/run/assertion-result-schema.js.map +1 -1
  89. package/run/attachment-eligibility.js +1 -1
  90. package/run/attachment-eligibility.js.map +1 -1
  91. package/run/attachment-execution.js +2 -2
  92. package/run/attachment-execution.js.map +1 -1
  93. package/run/attachment-record.js +2 -2
  94. package/run/attachment-record.js.map +1 -1
  95. package/run/attachment-results.js.map +1 -1
  96. package/run/attachment-retention.js +2 -2
  97. package/run/attachment-retention.js.map +1 -1
  98. package/run/benchmark-baseline-commands.js +70 -0
  99. package/run/benchmark-baseline-commands.js.map +1 -0
  100. package/run/benchmark-baseline-finalization.js +67 -0
  101. package/run/benchmark-baseline-finalization.js.map +1 -0
  102. package/run/benchmark-baseline-operations.js +53 -0
  103. package/run/benchmark-baseline-operations.js.map +1 -0
  104. package/run/benchmark-baseline-run.js +58 -0
  105. package/run/benchmark-baseline-run.js.map +1 -0
  106. package/run/benchmark-baseline-session.js +72 -0
  107. package/run/benchmark-baseline-session.js.map +1 -0
  108. package/run/benchmark-calibration.entry-point.js +3 -0
  109. package/run/benchmark-calibration.entry-point.js.map +1 -0
  110. package/run/benchmark-calibration.js +41 -0
  111. package/run/benchmark-calibration.js.map +1 -0
  112. package/run/benchmark-command-policy.d.ts +8 -0
  113. package/run/benchmark-command-policy.d.ts.map +1 -0
  114. package/run/benchmark-command-policy.js +37 -0
  115. package/run/benchmark-command-policy.js.map +1 -0
  116. package/run/benchmark-commands.d.ts +4 -0
  117. package/run/benchmark-commands.d.ts.map +1 -0
  118. package/run/benchmark-commands.js +61 -0
  119. package/run/benchmark-commands.js.map +1 -0
  120. package/run/child-process-outbox.js +36 -0
  121. package/run/child-process-outbox.js.map +1 -0
  122. package/run/child-process-roles.js +1 -0
  123. package/run/child-process-roles.js.map +1 -1
  124. package/run/child-process.entry-point.js +5 -1
  125. package/run/child-process.entry-point.js.map +1 -1
  126. package/run/collected-run-plan-schema.js +1 -1
  127. package/run/collected-run-plan-schema.js.map +1 -1
  128. package/run/command-line-command-namespace.d.ts.map +1 -1
  129. package/run/command-line-command-namespace.js.map +1 -1
  130. package/run/command-line-command.d.ts +43 -18
  131. package/run/command-line-command.d.ts.map +1 -1
  132. package/run/command-line-command.js +3 -2
  133. package/run/command-line-command.js.map +1 -1
  134. package/run/command-line-config.d.ts +5 -0
  135. package/run/command-line-config.d.ts.map +1 -0
  136. package/run/command-line-config.js +51 -0
  137. package/run/command-line-config.js.map +1 -0
  138. package/run/command-line-execution.js +82 -0
  139. package/run/command-line-execution.js.map +1 -0
  140. package/run/command-line-runner.d.ts +4 -5
  141. package/run/command-line-runner.d.ts.map +1 -1
  142. package/run/command-line-runner.js +6 -124
  143. package/run/command-line-runner.js.map +1 -1
  144. package/run/command-line-unimplemented-commands.js +1 -8
  145. package/run/command-line-unimplemented-commands.js.map +1 -1
  146. package/run/coverage-loaded-sources.js +8 -9
  147. package/run/coverage-loaded-sources.js.map +1 -1
  148. package/run/coverage-method-ranges.js +100 -0
  149. package/run/coverage-method-ranges.js.map +1 -0
  150. package/run/coverage-paths.js.map +1 -1
  151. package/run/coverage-reporting.js.map +1 -1
  152. package/run/coverage-runtime-source.js +66 -28
  153. package/run/coverage-runtime-source.js.map +1 -1
  154. package/run/coverage-session.js.map +1 -1
  155. package/run/coverage-source-map.js +2 -3
  156. package/run/coverage-source-map.js.map +1 -1
  157. package/run/coverage-source-selection.js +9 -7
  158. package/run/coverage-source-selection.js.map +1 -1
  159. package/run/coverage-tokens.js +26 -0
  160. package/run/coverage-tokens.js.map +1 -0
  161. package/run/duration-history-schema.js +1 -1
  162. package/run/duration-history-schema.js.map +1 -1
  163. package/run/execution-plan-resolution.js +7 -0
  164. package/run/execution-plan-resolution.js.map +1 -1
  165. package/run/node-command-line-runner.d.ts +1 -1
  166. package/run/node-command-line-runner.d.ts.map +1 -1
  167. package/run/node-command-line-runner.js +18 -10
  168. package/run/node-command-line-runner.js.map +1 -1
  169. package/run/node-run-execution.js +2 -2
  170. package/run/node-run-execution.js.map +1 -1
  171. package/run/reporter-event-schema.js +1 -1
  172. package/run/reporter-event-schema.js.map +1 -1
  173. package/run/request-snapshot.js +40 -0
  174. package/run/request-snapshot.js.map +1 -0
  175. package/run/run-artifact-id-schema.js +1 -1
  176. package/run/run-artifact-id-schema.js.map +1 -1
  177. package/run/run-artifact-schema.js +1 -1
  178. package/run/run-artifact-schema.js.map +1 -1
  179. package/run/run-collected-planning.js +13 -7
  180. package/run/run-collected-planning.js.map +1 -1
  181. package/run/run-collected-resolution.js +1 -0
  182. package/run/run-collected-resolution.js.map +1 -1
  183. package/run/run-collection-error-result.js +3 -2
  184. package/run/run-collection-error-result.js.map +1 -1
  185. package/run/run-command-schema.js +1 -1
  186. package/run/run-command-schema.js.map +1 -1
  187. package/run/run-coverage.js.map +1 -1
  188. package/run/run-discovery-types.d.ts +2 -2
  189. package/run/run-discovery-types.d.ts.map +1 -1
  190. package/run/run-discovery.js +14 -96
  191. package/run/run-discovery.js.map +1 -1
  192. package/run/run-engine-primitives.d.ts.map +1 -1
  193. package/run/run-errors.d.ts +5 -7
  194. package/run/run-errors.d.ts.map +1 -1
  195. package/run/run-errors.js +0 -6
  196. package/run/run-errors.js.map +1 -1
  197. package/run/run-execution.js +54 -0
  198. package/run/run-execution.js.map +1 -0
  199. package/run/run-facts.js +6 -70
  200. package/run/run-facts.js.map +1 -1
  201. package/run/run-host-process.js +1 -40
  202. package/run/run-host-process.js.map +1 -1
  203. package/run/run-if-main-options.js.map +1 -1
  204. package/run/run-if-main-profile.d.ts +8 -10
  205. package/run/run-if-main-profile.d.ts.map +1 -1
  206. package/run/run-if-main-profile.js +25 -112
  207. package/run/run-if-main-profile.js.map +1 -1
  208. package/run/run-if-main.d.ts.map +1 -1
  209. package/run/run-if-main.js.map +1 -1
  210. package/run/run-in-process-execution.js +2 -0
  211. package/run/run-in-process-execution.js.map +1 -1
  212. package/run/run-input-resolution.js +32 -10
  213. package/run/run-input-resolution.js.map +1 -1
  214. package/run/run-isolated-command.js +3 -3
  215. package/run/run-isolated-command.js.map +1 -1
  216. package/run/run-isolated-process.js +24 -9
  217. package/run/run-isolated-process.js.map +1 -1
  218. package/run/run-local-command.js +12 -14
  219. package/run/run-local-command.js.map +1 -1
  220. package/run/run-local-execution.js.map +1 -1
  221. package/run/run-local-resolution.js +6 -5
  222. package/run/run-local-resolution.js.map +1 -1
  223. package/run/run-local-test-plan.js.map +1 -1
  224. package/run/run-orchestrator-dependencies.d.ts +4 -4
  225. package/run/run-orchestrator-dependencies.d.ts.map +1 -1
  226. package/run/run-ordering.js.map +1 -1
  227. package/run/run-process-engine.js.map +1 -1
  228. package/run/run-profile-facts.js +65 -0
  229. package/run/run-profile-facts.js.map +1 -0
  230. package/run/run-record-types.d.ts +5 -4
  231. package/run/run-record-types.d.ts.map +1 -1
  232. package/run/run-reporter-resolution.js +4 -1
  233. package/run/run-reporter-resolution.js.map +1 -1
  234. package/run/run-result-reporting.js.map +1 -1
  235. package/run/run-result-schema.js +2 -1
  236. package/run/run-result-schema.js.map +1 -1
  237. package/run/run-selection.js.map +1 -1
  238. package/run/run-sharding.js +3 -55
  239. package/run/run-sharding.js.map +1 -1
  240. package/run/run-supervised-finalization.js +2 -1
  241. package/run/run-supervised-finalization.js.map +1 -1
  242. package/run/run-supervised-process.js +6 -4
  243. package/run/run-supervised-process.js.map +1 -1
  244. package/run/run-support.js +1 -222
  245. package/run/run-support.js.map +1 -1
  246. package/run/run-types.d.ts +63 -168
  247. package/run/run-types.d.ts.map +1 -1
  248. package/run/run-types.js.map +1 -1
  249. package/run/run-validation.js +11 -63
  250. package/run/run-validation.js.map +1 -1
  251. package/run/run.d.ts.map +1 -1
  252. package/run/run.js +51 -21
  253. package/run/run.js.map +1 -1
  254. package/run/simulation-witness.js +2 -2
  255. package/run/simulation-witness.js.map +1 -1
  256. package/run/supervised-child-process.js +1 -1
  257. package/run/supervised-child-process.js.map +1 -1
  258. package/run/supervised-child.entry-point.js +9 -6
  259. package/run/supervised-child.entry-point.js.map +1 -1
  260. package/run/supervised-child.js +1 -1
  261. package/run/supervised-child.js.map +1 -1
  262. package/run/supervised-protocol-schema.js +1 -1
  263. package/run/supervised-protocol-schema.js.map +1 -1
  264. package/run/supervised-protocol.js.map +1 -1
  265. package/run/supervised-run-resource-policy.js.map +1 -1
  266. package/run/supervised-run-state.js.map +1 -1
  267. package/run/test-profile.js +21 -0
  268. package/run/test-profile.js.map +1 -0
  269. package/run/work-unit-identity.js.map +1 -1
  270. package/run/work-unit-planning.js +6 -6
  271. package/run/work-unit-planning.js.map +1 -1
  272. package/run/work-unit-resource-constraints.js +1 -1
  273. package/run/work-unit-resource-constraints.js.map +1 -1
  274. package/run/worker-pool-host-protocol-schema.js +2 -2
  275. package/run/worker-pool-host-protocol-schema.js.map +1 -1
  276. package/run/worker-pool-host.entry-point.js +7 -4
  277. package/run/worker-pool-host.entry-point.js.map +1 -1
  278. package/run/worker-pool-lanes.js.map +1 -1
  279. package/run/worker-pool-lifecycle-lanes.js.map +1 -1
  280. package/run/worker-pool-placement-planning.js.map +1 -1
  281. package/run/worker-pool-protocol.js.map +1 -1
  282. package/run/worker-pool-results.js +2 -2
  283. package/run/worker-pool-results.js.map +1 -1
  284. package/run/worker-pool-routing.js.map +1 -1
  285. package/run/worker-pool-run.js +5 -4
  286. package/run/worker-pool-run.js.map +1 -1
  287. package/run/worker-pool-runtime.js.map +1 -1
  288. package/run/worker-pool-task-schema.js +1 -1
  289. package/run/worker-pool-task-schema.js.map +1 -1
  290. package/sbom.cdx.json +26 -43
  291. package/run/attachment-json.js.map +0 -1
  292. package/run/coverage-config-schema.d.ts.map +0 -1
  293. package/run/coverage-config-schema.js.map +0 -1
  294. package/run/node-runtime-state-store.js +0 -38
  295. package/run/node-runtime-state-store.js.map +0 -1
  296. package/run/profile-config-normalization.js.map +0 -1
  297. package/run/profile-file-glob.js.map +0 -1
  298. package/run/run-config-defaults.js.map +0 -1
  299. package/run/run-config-schema.d.ts.map +0 -1
  300. package/run/run-config-schema.js.map +0 -1
  301. package/run/run-config.d.ts +0 -62
  302. package/run/run-config.d.ts.map +0 -1
  303. package/run/run-config.js.map +0 -1
  304. package/run/run-execution-config.d.ts.map +0 -1
  305. package/run/run-identity-schema.js.map +0 -1
  306. package/run/work-distribution-config.js.map +0 -1
@@ -47,6 +47,11 @@ export const defaultTimeoutPolicy = {
47
47
  hardMilliseconds: defaultMicrotestHardTimeoutMilliseconds,
48
48
  softMilliseconds: defaultMicrotestTimeoutMilliseconds
49
49
  };
50
+ export const defaultBenchmarkTimeoutPolicy = {
51
+ collectionMilliseconds: 5000,
52
+ hardMilliseconds: 60_000,
53
+ softMilliseconds: 40_000
54
+ };
50
55
  export const defaultIntegrationTimeoutPolicy = {
51
56
  collectionMilliseconds: defaultIntegrationCollectionTimeoutMilliseconds,
52
57
  hardMilliseconds: defaultIntegrationHardTimeoutMilliseconds,
@@ -66,4 +71,4 @@ export const defaultWorkerPoolDispatchPolicy = 'dynamic-lease';
66
71
  export const defaultWorkerPoolHedgingPolicy = { mode: 'off' };
67
72
  export const defaultWorkerLifecycle = 'reuse';
68
73
  export const defaultWorkDistribution = { mode: 'file' };
69
- //# sourceMappingURL=run-config-defaults.js.map
74
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../source/config/defaults.ts"],"names":[],"mappings":"AAcA,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,MAAM,UAAU,wBAAwB,CACpC,SAAuF;IAEvF,OAAO,SAAS,EAAE,cAAc,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAE,oBAAoB,EAAE,oBAAoB,CAAE,CAAC;AACrF,MAAM,CAAC,MAAM,gDAAgD,GAAG,GAAG,CAAC;AACpE,MAAM,6CAA6C,GAAG,IAAI,CAAC;AAC3D,MAAM,uCAAuC,GAAG,IAAI,CAAC;AACrD,MAAM,mCAAmC,GAAG,GAAG,CAAC;AAChD,MAAM,+CAA+C,GAAG,IAAI,CAAC;AAC7D,MAAM,yCAAyC,GAAG,IAAI,CAAC;AACvD,MAAM,qCAAqC,GAAG,IAAI,CAAC;AACnD,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAC1D,MAAM,0BAA0B,GAAG,YAAY,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,YAAY;CACjB,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAwB;IAC3D,OAAO,EAAE;QACL,mBAAmB,EAAE,IAAI;QACzB,yBAAyB,EAAE,IAAI;QAC/B,gBAAgB,EAAE,IAAI;QACtB,+BAA+B,EAAE,IAAI;KACxC;IACD,OAAO,EAAE,KAAK;IACd,4BAA4B,EAAE,gDAAgD;CACjF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAwB;IAC3D,UAAU,EAAE,SAAS;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACjD,eAAe,EAAE,IAAI;IACrB,OAAO,EAAE,CAAE,IAAI,EAAE,MAAM,CAAE;IACzB,OAAO,EAAE;QACL,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;KACjB;IACD,UAAU,EAAE;QACR,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;KACd;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IAC/C,sBAAsB,EAAE,6CAA6C;IACrE,gBAAgB,EAAE,uCAAuC;IACzD,gBAAgB,EAAE,mCAAmC;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAkB;IACxD,sBAAsB,EAAE,IAAI;IAC5B,gBAAgB,EAAE,MAAM;IACxB,gBAAgB,EAAE,MAAM;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAkB;IAC1D,sBAAsB,EAAE,+CAA+C;IACvE,gBAAgB,EAAE,yCAAyC;IAC3D,gBAAgB,EAAE,qCAAqC;CAC1D,CAAC;AAEF,MAAM,UAAU,2BAA2B,CACvC,SAAgD;IAEhD,OAAO;QACH,cAAc,EAAE,wBAAwB,CAAC,SAAS,CAAC;QACnD,YAAY,EAAE,SAAS,EAAE,YAAY,IAAI,4BAA4B;QACrE,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,0BAA0B;KAClE,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,aAAa,CAAC;AAC5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,YAAY,CAAC;AACzD,MAAM,CAAC,MAAM,iCAAiC,GAA+B,qBAAqB,CAAC;AACnG,MAAM,CAAC,MAAM,+BAA+B,GAA6B,eAAe,CAAC;AACzF,MAAM,CAAC,MAAM,8BAA8B,GAA4B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvF,MAAM,CAAC,MAAM,sBAAsB,GAAoB,OAAO,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAW,CAAC"}
@@ -1,22 +1,20 @@
1
1
  import type { TestRetryPolicy } from '../engine/retry-policy.ts';
2
- import type { ResourceOwnershipPlan } from './resource-ownership-plan.ts';
3
2
  export type RetryArtifactPolicy = 'all' | 'first-failure-and-final' | 'last-failure-and-final';
4
3
  export type IntegrationRetryPolicy = TestRetryPolicy & {
5
4
  readonly artifacts: RetryArtifactPolicy;
6
5
  };
7
- export type RunExecutionResourceOwnershipPlan = ResourceOwnershipPlan;
8
6
  type Either<First, Second> = First | Second;
9
- export type RunMicrotestExecutionShape<MaxConcurrency, ProcessModel, Scheduling> = {
7
+ export type MicrotestExecutionShape<MaxConcurrency, ProcessModel, Scheduling> = {
10
8
  readonly maxConcurrency: MaxConcurrency;
11
9
  readonly processModel: ProcessModel;
12
10
  readonly scheduling: Scheduling;
13
11
  };
14
- type RunSupervisedIntegrationExecution<MaxConcurrency, Scheduling> = {
12
+ type SupervisedIntegrationExecution<MaxConcurrency, Scheduling> = {
15
13
  readonly maxConcurrency: MaxConcurrency;
16
14
  readonly processModel: 'supervised-process';
17
15
  readonly scheduling: Scheduling;
18
16
  };
19
- type RunWorkerPoolExecution<AssignmentPolicy, DispatchPolicy, HedgingPolicy, HostProcess, MaxConcurrency, Scheduling, WorkerLifecycle, WorkDistribution> = {
17
+ type WorkerPoolExecution<AssignmentPolicy, DispatchPolicy, HedgingPolicy, HostProcess, MaxConcurrency, Scheduling, WorkerLifecycle, WorkDistribution> = {
20
18
  readonly assignmentPolicy: AssignmentPolicy;
21
19
  readonly dispatchPolicy: DispatchPolicy;
22
20
  readonly hedging: HedgingPolicy;
@@ -28,6 +26,6 @@ type RunWorkerPoolExecution<AssignmentPolicy, DispatchPolicy, HedgingPolicy, Hos
28
26
  readonly workerLifecycle: WorkerLifecycle;
29
27
  readonly workDistribution: WorkDistribution;
30
28
  };
31
- export type RunIntegrationExecutionShape<AssignmentPolicy, DispatchPolicy, HedgingPolicy, HostProcess, MaxConcurrency, Scheduling, WorkerLifecycle, WorkDistribution> = Either<RunSupervisedIntegrationExecution<MaxConcurrency, Scheduling>, RunWorkerPoolExecution<AssignmentPolicy, DispatchPolicy, HedgingPolicy, HostProcess, MaxConcurrency, Scheduling, WorkerLifecycle, WorkDistribution>>;
29
+ export type IntegrationExecutionShape<AssignmentPolicy, DispatchPolicy, HedgingPolicy, HostProcess, MaxConcurrency, Scheduling, WorkerLifecycle, WorkDistribution> = Either<SupervisedIntegrationExecution<MaxConcurrency, Scheduling>, WorkerPoolExecution<AssignmentPolicy, DispatchPolicy, HedgingPolicy, HostProcess, MaxConcurrency, Scheduling, WorkerLifecycle, WorkDistribution>>;
32
30
  export {};
33
- //# sourceMappingURL=run-execution-config.d.ts.map
31
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../source/config/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,yBAAyB,GAAG,wBAAwB,CAAC;AAC/F,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CAAE,CAAC;AAEpG,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,uBAAuB,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,IAAI;IAC5E,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACnC,CAAC;AAEF,KAAK,8BAA8B,CAAC,cAAc,EAAE,UAAU,IAAI;IAC9D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACnC,CAAC;AAEF,KAAK,mBAAmB,CACpB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,IAChB;IACA,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACjC,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,IAChB,MAAM,CACN,8BAA8B,CAAC,cAAc,EAAE,UAAU,CAAC,EAC1D,mBAAmB,CACf,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,CACnB,CACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { ConfigError } from "./config-error.js";
2
+ const deniedNodeArgumentNames = new Set([
3
+ '--env-file',
4
+ '--eval',
5
+ '--experimental-loader',
6
+ '--import',
7
+ '--loader',
8
+ '--print',
9
+ '--require',
10
+ '--run',
11
+ '--test',
12
+ '--watch'
13
+ ]);
14
+ function nodeArgumentName(argument) {
15
+ const assignmentIndex = argument.indexOf('=');
16
+ return assignmentIndex === -1 ? argument : argument.slice(0, assignmentIndex);
17
+ }
18
+ function validateNodeArgument(argument) {
19
+ if (argument.length === 0) {
20
+ throw new ConfigError('Host process Node argument must not be empty.');
21
+ }
22
+ if (argument.includes('\n') || argument.includes('\0')) {
23
+ throw new ConfigError('Host process Node argument must stay on one command-line token.');
24
+ }
25
+ if (!argument.startsWith('--')) {
26
+ throw new ConfigError(`Host process Node argument must use long-form syntax: ${argument}`);
27
+ }
28
+ const argumentName = nodeArgumentName(argument);
29
+ if (deniedNodeArgumentNames.has(argumentName)) {
30
+ throw new ConfigError(`Host process Node argument is not supported: ${argumentName}`);
31
+ }
32
+ }
33
+ export function validateHostProcess(hostProcess) {
34
+ if (hostProcess.kind === 'direct') {
35
+ return;
36
+ }
37
+ for (const argument of hostProcess.nodeArguments) {
38
+ validateNodeArgument(argument);
39
+ }
40
+ }
41
+ //# sourceMappingURL=host-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-process.js","sourceRoot":"","sources":["../../../../source/config/host-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACpC,YAAY;IACZ,QAAQ;IACR,uBAAuB;IACvB,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,OAAO;IACP,QAAQ;IACR,SAAS;CACZ,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,QAAgB;IACtC,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,WAAW,CAAC,+CAA+C,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,WAAW,CAAC,iEAAiE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,WAAW,CAAC,yDAAyD,QAAQ,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,gDAAgD,YAAY,EAAE,CAAC,CAAC;IAC1F,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAwB;IACxD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;IACX,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QAC/C,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;AACL,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod/v4';
2
+ function isPerformanceBaselineAdapter(value) {
3
+ if (typeof value !== 'object' || value === null) {
4
+ return false;
5
+ }
6
+ const id = Reflect.get(value, 'id');
7
+ return typeof id === 'string' && id.trim().length > 0 &&
8
+ ['observe', 'propose', 'compare'].every(function adapterMethod(method) {
9
+ return typeof Reflect.get(value, method) === 'function';
10
+ });
11
+ }
12
+ export const performanceBaselinePolicySchema = z
13
+ .strictObject({
14
+ adapters: z.array(z.custom(isPerformanceBaselineAdapter)).readonly(),
15
+ directory: z.string().trim().min(1)
16
+ })
17
+ .refine(function uniqueAdapterIds(policy) {
18
+ const ids = new Set(policy.adapters.map(function adapterId(adapter) {
19
+ return adapter.id.normalize('NFC');
20
+ }));
21
+ return ids.size === policy.adapters.length;
22
+ }, 'Performance baseline adapter IDs must be unique.')
23
+ .readonly();
24
+ //# sourceMappingURL=performance-baselines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-baselines.js","sourceRoot":"","sources":["../../../../source/config/performance-baselines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,SAAS,4BAA4B,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,GAAY,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACjD,CAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAE,CAAC,KAAK,CAAC,SAAS,aAAa,CAAC,MAAM;YACnE,OAAO,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,UAAU,CAAC;QAC5D,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAgE,CAAC;KACxG,YAAY,CAAC;IACV,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,4BAA4B,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC,CAAC;KACD,MAAM,CAAC,SAAS,gBAAgB,CAAC,MAAM;IACpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,OAAO;QAC9D,OAAO,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC,CAAC;IACJ,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC/C,CAAC,EAAE,kDAAkD,CAAC;KACrD,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { resolve } from 'node:path';
2
+ import { invalidProfileFileGlobMessage, invalidProfileFileSetNameMessage } from "./profile-patterns.js";
3
+ export class ProfileFileDiscoveryError extends Error {
4
+ failureReason;
5
+ constructor(message, options, reason) {
6
+ super(message, options);
7
+ this.name = 'ProfileFileDiscoveryError';
8
+ this.failureReason = reason;
9
+ }
10
+ reason() {
11
+ return this.failureReason;
12
+ }
13
+ }
14
+ function validatePatterns(files, fieldPrefix) {
15
+ const fields = ['include', 'exclude'];
16
+ for (const field of fields) {
17
+ const patterns = files[field];
18
+ for (const pattern of patterns) {
19
+ const message = invalidProfileFileGlobMessage(`${fieldPrefix}${field}`, pattern);
20
+ if (message !== null) {
21
+ throw new ProfileFileDiscoveryError(message, undefined, 'invalid-policy');
22
+ }
23
+ }
24
+ }
25
+ }
26
+ function validateSets(sets) {
27
+ const entries = Object.entries(sets);
28
+ if (entries.length === 0) {
29
+ throw new ProfileFileDiscoveryError('Invalid profile files.sets: at least one file set is required.', undefined, 'invalid-policy');
30
+ }
31
+ for (const [name, set] of entries) {
32
+ const message = invalidProfileFileSetNameMessage(name);
33
+ if (message !== null) {
34
+ throw new ProfileFileDiscoveryError(message, undefined, 'invalid-policy');
35
+ }
36
+ validatePatterns(set, `sets.${name}.`);
37
+ }
38
+ }
39
+ function validateFiles(files) {
40
+ if (files.sets === undefined) {
41
+ validatePatterns(files, '');
42
+ }
43
+ else {
44
+ validateSets(files.sets);
45
+ }
46
+ }
47
+ async function discoverPatterns(cwd, files, fileSet, dependencies) {
48
+ const discovered = new Map();
49
+ const matches = dependencies.glob(files.include, { cwd, exclude: files.exclude, followSymlinks: false });
50
+ for await (const match of matches) {
51
+ const path = await dependencies.realpath(resolve(cwd, match));
52
+ const stats = await dependencies.stat(path);
53
+ if (stats.isFile()) {
54
+ discovered.set(path, { path, fileSet });
55
+ }
56
+ }
57
+ return Array.from(discovered.values()).toSorted(function compareProfileFiles(first, second) {
58
+ return first.path.localeCompare(second.path);
59
+ });
60
+ }
61
+ function validateSetOwnership(files) {
62
+ const owners = new Map();
63
+ for (const file of files) {
64
+ if (owners.has(file.path)) {
65
+ throw new ProfileFileDiscoveryError(`Profile file sets must not overlap: ${file.path} matched ${owners.get(file.path)} and ${file.fileSet}.`, undefined, 'overlap');
66
+ }
67
+ owners.set(file.path, file.fileSet);
68
+ }
69
+ }
70
+ export async function discoverProfileFiles(request, dependencies) {
71
+ validateFiles(request.files);
72
+ if (request.files.sets === undefined) {
73
+ return await discoverPatterns(request.cwd, request.files, null, dependencies);
74
+ }
75
+ const sets = await Promise.all(Object.entries(request.files.sets).map(async function discoverSet([name, files]) {
76
+ const matches = await discoverPatterns(request.cwd, files, name, dependencies);
77
+ if (matches.length === 0) {
78
+ throw new ProfileFileDiscoveryError(`Profile files.sets.${name} matched no test files.`, undefined, 'empty-set');
79
+ }
80
+ return matches;
81
+ }));
82
+ const files = sets.flat();
83
+ validateSetOwnership(files);
84
+ return files.toSorted(function compareProfileFiles(first, second) {
85
+ return first.path.localeCompare(second.path);
86
+ });
87
+ }
88
+ //# sourceMappingURL=profile-file-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-file-discovery.js","sourceRoot":"","sources":["../../../../source/config/profile-file-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import path from 'node:path';
2
- import { invalidProfileFileGlobConfigMessage, invalidRunProfileFileSetNameMessage, invalidRunProfileNameMessage } from "./profile-file-glob.js";
3
- import { defaultCoveragePolicy, defaultWorkDistribution } from "./run-config-defaults.js";
4
- import { RunConfigError } from "./run-errors.js";
5
- import { invalidWorkDistributionConfigMessage, normalizeWorkDistribution } from "./work-distribution-config.js";
2
+ import { invalidProfileFileGlobConfigMessage, invalidProfileFileSetNameMessage, invalidProfileNameMessage } from "./profile-patterns.js";
3
+ import { defaultCoveragePolicy, defaultWorkDistribution } from "./defaults.js";
4
+ import { ConfigError } from "./config-error.js";
5
+ import { invalidWorkDistributionConfigMessage, normalizeWorkDistribution } from "./work-distribution.js";
6
6
  function assertValidProfileGlob(field, pattern) {
7
7
  const message = invalidProfileFileGlobConfigMessage(field, pattern);
8
8
  if (message !== null) {
9
- throw new RunConfigError(message);
9
+ throw new ConfigError(message);
10
10
  }
11
11
  }
12
12
  function normalizeCoverageOutputs(outputs) {
@@ -54,7 +54,7 @@ function normalizeCoverageOutputDirectory(outputDirectory, configPath) {
54
54
  return null;
55
55
  }
56
56
  if (configPath === null) {
57
- throw new RunConfigError('Coverage outputDir requires a loaded config file.');
57
+ throw new ConfigError('Coverage outputDir requires a loaded config file.');
58
58
  }
59
59
  return path.isAbsolute(outputDirectory)
60
60
  ? path.resolve(outputDirectory)
@@ -85,15 +85,15 @@ function normalizeProfileFilePatterns(files, fieldPrefix) {
85
85
  };
86
86
  }
87
87
  function assertValidProfileFileSetName(name) {
88
- const message = invalidRunProfileFileSetNameMessage(name);
88
+ const message = invalidProfileFileSetNameMessage(name);
89
89
  if (message !== null) {
90
- throw new RunConfigError(message);
90
+ throw new ConfigError(message);
91
91
  }
92
92
  }
93
93
  function normalizeProfileFileSets(files) {
94
94
  const entries = Object.entries(files.sets);
95
95
  if (entries.length === 0) {
96
- throw new RunConfigError('Invalid profile files.sets: at least one file set is required.');
96
+ throw new ConfigError('Invalid profile files.sets: at least one file set is required.');
97
97
  }
98
98
  return {
99
99
  sets: Object.fromEntries(entries.map(function normalizeProfileFileSet([name, set]) {
@@ -119,18 +119,18 @@ export function normalizeRequiredProfileFiles(files) {
119
119
  : normalizeProfileFilePatterns(files, null);
120
120
  }
121
121
  export function assertValidProfileName(profileName) {
122
- const message = invalidRunProfileNameMessage(profileName);
122
+ const message = invalidProfileNameMessage(profileName);
123
123
  if (message !== null) {
124
- throw new RunConfigError(message);
124
+ throw new ConfigError(message);
125
125
  }
126
126
  }
127
127
  export function assertValidWorkDistribution(execution, files) {
128
128
  const message = invalidWorkDistributionConfigMessage(execution, files);
129
129
  if (message !== null) {
130
- throw new RunConfigError(message);
130
+ throw new ConfigError(message);
131
131
  }
132
132
  }
133
133
  export function normalizedWorkDistribution(execution) {
134
134
  return normalizeWorkDistribution(execution, defaultWorkDistribution);
135
135
  }
136
- //# sourceMappingURL=profile-config-normalization.js.map
136
+ //# sourceMappingURL=profile-normalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-normalization.js","sourceRoot":"","sources":["../../../../source/config/profile-normalization.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,14 @@
1
1
  import { isAbsolute } from 'node:path';
2
- const runProfileNamePattern = /^[A-Za-z0-9._-]+$/u;
3
- const reservedBenchmarkProfileName = 'benchmark';
4
- export function invalidRunProfileNameMessage(profileName) {
5
- if (!runProfileNamePattern.test(profileName)) {
2
+ const profileNamePattern = /^[A-Za-z0-9._-]+$/u;
3
+ export function invalidProfileNameMessage(profileName) {
4
+ if (!profileNamePattern.test(profileName)) {
6
5
  return `Invalid profile name "${profileName}". ` +
7
6
  'Profile names may only contain letters, numbers, dots, underscores, and hyphens.';
8
7
  }
9
- if (profileName === reservedBenchmarkProfileName) {
10
- return 'Invalid profile name "benchmark". The "benchmark" profile name is reserved for benchmark commands.';
11
- }
12
8
  return null;
13
9
  }
14
- export function invalidRunProfileFileSetNameMessage(fileSetName) {
15
- return runProfileNamePattern.test(fileSetName)
10
+ export function invalidProfileFileSetNameMessage(fileSetName) {
11
+ return profileNamePattern.test(fileSetName)
16
12
  ? null
17
13
  : `Invalid profile file set name "${fileSetName}". ` +
18
14
  'Profile file set names may only contain letters, numbers, dots, underscores, and hyphens.';
@@ -43,4 +39,4 @@ export function invalidProfileFileGlobConfigMessage(field, pattern) {
43
39
  const message = invalidProfileFileGlobMessage(field, pattern);
44
40
  return message === null ? null : configMessage(message);
45
41
  }
46
- //# sourceMappingURL=profile-file-glob.js.map
42
+ //# sourceMappingURL=profile-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-patterns.js","sourceRoot":"","sources":["../../../../source/config/profile-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IACzD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO,yBAAyB,WAAW,KAAK;YAC5C,kFAAkF,CAAC;IAC3F,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,WAAmB;IAChE,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,kCAAkC,WAAW,KAAK;YAChD,2FAA2F,CAAC;AACxG,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,WAAW,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAa,EAAE,OAAe;IACxE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAEtC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,KAAK,kCAAkC,CAAC;IACpE,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,iBAAiB,KAAK,2CAA2C,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,iBAAiB,KAAK,wCAAwC,CAAC;IAC1E,CAAC;IAED,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,iBAAiB,KAAK,iDAAiD,CAAC;IACnF,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAAa,EAAE,OAAe;IAC9E,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE9D,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC"}