@overkill-dev/run 0.0.56 → 0.0.58

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 (196) hide show
  1. package/engine/test-body-resource-attachment.d.ts +15 -0
  2. package/engine/test-body-resource-attachment.d.ts.map +1 -1
  3. package/engine/test-body-resource-attachment.js +16 -0
  4. package/engine/test-body-resource-attachment.js.map +1 -1
  5. package/package.json +14 -4
  6. package/packages/engine/engine.entry-point.d.ts +1 -1
  7. package/packages/engine/engine.entry-point.d.ts.map +1 -1
  8. package/packages/run/run.entry-point.d.ts +2 -1
  9. package/packages/run/run.entry-point.d.ts.map +1 -1
  10. package/readme.md +16 -1
  11. package/reporters/human-reporter-rendering.js +1 -1
  12. package/reporters/human-reporter-rendering.js.map +1 -1
  13. package/reporters/line-reporter.js +5 -2
  14. package/reporters/line-reporter.js.map +1 -1
  15. package/reporters/run-summary-rendering.js +80 -0
  16. package/reporters/run-summary-rendering.js.map +1 -0
  17. package/resources/resource-definition-brand.d.ts +2 -0
  18. package/resources/resource-definition-brand.d.ts.map +1 -0
  19. package/resources/resource-definition-brand.js +2 -0
  20. package/resources/resource-definition-brand.js.map +1 -0
  21. package/resources/resource-definition-shape.d.ts +3 -0
  22. package/resources/resource-definition-shape.d.ts.map +1 -1
  23. package/resources/resource-definition-types.d.ts +104 -0
  24. package/resources/resource-definition-types.d.ts.map +1 -0
  25. package/resources/resource-definition.js +52 -0
  26. package/resources/resource-definition.js.map +1 -0
  27. package/resources/resource-graph.d.ts +3 -3
  28. package/resources/resource-graph.d.ts.map +1 -1
  29. package/resources/resource-graph.js.map +1 -1
  30. package/resources/resource-scenario-binding.d.ts +37 -0
  31. package/resources/resource-scenario-binding.d.ts.map +1 -0
  32. package/resources/resource-scenario-binding.js +99 -0
  33. package/resources/resource-scenario-binding.js.map +1 -0
  34. package/resources/resource-scenario.d.ts +31 -0
  35. package/resources/resource-scenario.d.ts.map +1 -0
  36. package/resources/resource-scenario.js +68 -0
  37. package/resources/resource-scenario.js.map +1 -0
  38. package/resources/resource-session.d.ts +3 -2
  39. package/resources/resource-session.d.ts.map +1 -1
  40. package/resources/resources.d.ts +46 -76
  41. package/resources/resources.d.ts.map +1 -1
  42. package/resources/resources.js +90 -10
  43. package/resources/resources.js.map +1 -1
  44. package/resources/runtime-definition.d.ts +11 -2
  45. package/resources/runtime-definition.d.ts.map +1 -1
  46. package/resources/runtime-definition.js +66 -0
  47. package/resources/runtime-definition.js.map +1 -1
  48. package/resources/runtime-matrix-definition.d.ts +25 -6
  49. package/resources/runtime-matrix-definition.d.ts.map +1 -1
  50. package/resources/runtime-matrix-definition.js +226 -4
  51. package/resources/runtime-matrix-definition.js.map +1 -1
  52. package/run/command-line-runner.d.ts.map +1 -1
  53. package/run/command-line-runner.js +10 -5
  54. package/run/command-line-runner.js.map +1 -1
  55. package/run/duration-history.d.ts +10 -1
  56. package/run/duration-history.d.ts.map +1 -1
  57. package/run/duration-history.js +2 -2
  58. package/run/duration-history.js.map +1 -1
  59. package/run/node-child-process-starters.js +1 -1
  60. package/run/node-child-process-starters.js.map +1 -1
  61. package/run/resource-lifecycle-boundaries.js +182 -0
  62. package/run/resource-lifecycle-boundaries.js.map +1 -0
  63. package/run/resource-lifecycle-cache-identity.js +65 -0
  64. package/run/resource-lifecycle-cache-identity.js.map +1 -0
  65. package/run/resource-lifecycle-composition.d.ts +2 -0
  66. package/run/resource-lifecycle-composition.d.ts.map +1 -1
  67. package/run/resource-lifecycle-composition.js +48 -11
  68. package/run/resource-lifecycle-composition.js.map +1 -1
  69. package/run/resource-lifecycle-projection.js +48 -0
  70. package/run/resource-lifecycle-projection.js.map +1 -0
  71. package/run/resource-lifecycle-session-acquirer.js +182 -0
  72. package/run/resource-lifecycle-session-acquirer.js.map +1 -0
  73. package/run/resource-lifecycle-startup-budget.js +82 -0
  74. package/run/resource-lifecycle-startup-budget.js.map +1 -0
  75. package/run/resource-lifecycle-state.d.ts +2 -0
  76. package/run/resource-lifecycle-state.d.ts.map +1 -1
  77. package/run/resource-lifecycle-state.js.map +1 -1
  78. package/run/resource-lifecycle-timing.js +85 -0
  79. package/run/resource-lifecycle-timing.js.map +1 -0
  80. package/run/resource-lifecycle.js +133 -237
  81. package/run/resource-lifecycle.js.map +1 -1
  82. package/run/run-collected-planning.js +34 -6
  83. package/run/run-collected-planning.js.map +1 -1
  84. package/run/run-collected-resolution.js +4 -2
  85. package/run/run-collected-resolution.js.map +1 -1
  86. package/run/run-collection-error-result.js +2 -2
  87. package/run/run-collection-error-result.js.map +1 -1
  88. package/run/run-config-schema.d.ts +7 -0
  89. package/run/run-config-schema.d.ts.map +1 -1
  90. package/run/run-config-schema.js +4 -0
  91. package/run/run-config-schema.js.map +1 -1
  92. package/run/run-config.d.ts.map +1 -1
  93. package/run/run-config.js +4 -4
  94. package/run/run-config.js.map +1 -1
  95. package/run/run-empty-shard.js +2 -2
  96. package/run/run-empty-shard.js.map +1 -1
  97. package/run/run-facts.js +5 -1
  98. package/run/run-facts.js.map +1 -1
  99. package/run/run-if-main-facts.js +2 -1
  100. package/run/run-if-main-facts.js.map +1 -1
  101. package/run/run-in-process-execution.js +3 -3
  102. package/run/run-in-process-execution.js.map +1 -1
  103. package/run/run-input-resolution.js +6 -0
  104. package/run/run-input-resolution.js.map +1 -1
  105. package/run/run-isolated-process.js +39 -24
  106. package/run/run-isolated-process.js.map +1 -1
  107. package/run/run-local-execution.js +12 -3
  108. package/run/run-local-execution.js.map +1 -1
  109. package/run/run-local-resolution.js +6 -2
  110. package/run/run-local-resolution.js.map +1 -1
  111. package/run/run-orchestrator-dependencies.d.ts +2 -0
  112. package/run/run-orchestrator-dependencies.d.ts.map +1 -1
  113. package/run/run-orchestrator-dependencies.js.map +1 -1
  114. package/run/run-support.js +14 -6
  115. package/run/run-support.js.map +1 -1
  116. package/run/run-timing-collection.d.ts +43 -0
  117. package/run/run-timing-collection.d.ts.map +1 -0
  118. package/run/run-timing-collection.js +173 -8
  119. package/run/run-timing-collection.js.map +1 -1
  120. package/run/run-types.d.ts +13 -3
  121. package/run/run-types.d.ts.map +1 -1
  122. package/run/run-types.js.map +1 -1
  123. package/run/run-validation.js +2 -0
  124. package/run/run-validation.js.map +1 -1
  125. package/run/run.js +31 -20
  126. package/run/run.js.map +1 -1
  127. package/run/supervised-child-process.d.ts +1 -0
  128. package/run/supervised-child-process.d.ts.map +1 -1
  129. package/run/supervised-child-process.js +5 -0
  130. package/run/supervised-child-process.js.map +1 -1
  131. package/run/supervised-child.js +3 -2
  132. package/run/supervised-child.js.map +1 -1
  133. package/run/supervised-protocol.js +14 -0
  134. package/run/supervised-protocol.js.map +1 -1
  135. package/run/supervised-run-collection.js +123 -0
  136. package/run/supervised-run-collection.js.map +1 -0
  137. package/run/supervised-run-runtime.js +8 -13
  138. package/run/supervised-run-runtime.js.map +1 -1
  139. package/run/supervised-run.js +74 -106
  140. package/run/supervised-run.js.map +1 -1
  141. package/run/work-unit-planning.js +4 -2
  142. package/run/work-unit-planning.js.map +1 -1
  143. package/run/work-unit-resource-constraints.js +23 -6
  144. package/run/work-unit-resource-constraints.js.map +1 -1
  145. package/run/worker-pool-collection.js +46 -20
  146. package/run/worker-pool-collection.js.map +1 -1
  147. package/run/worker-pool-command.js +68 -0
  148. package/run/worker-pool-command.js.map +1 -0
  149. package/run/worker-pool-dispatch-state.js +2 -4
  150. package/run/worker-pool-dispatch-state.js.map +1 -1
  151. package/run/worker-pool-execution.js +48 -73
  152. package/run/worker-pool-execution.js.map +1 -1
  153. package/run/worker-pool-hedge-dispatch.js +2 -1
  154. package/run/worker-pool-hedge-dispatch.js.map +1 -1
  155. package/run/worker-pool-host-process-starter.js +13 -0
  156. package/run/worker-pool-host-process-starter.js.map +1 -0
  157. package/run/worker-pool-host-process.js +53 -79
  158. package/run/worker-pool-host-process.js.map +1 -1
  159. package/run/worker-pool-host-protocol.js.map +1 -1
  160. package/run/worker-pool-host-signal.js +21 -0
  161. package/run/worker-pool-host-signal.js.map +1 -0
  162. package/run/worker-pool-host-task.js +55 -0
  163. package/run/worker-pool-host-task.js.map +1 -0
  164. package/run/worker-pool-lanes.js +51 -24
  165. package/run/worker-pool-lanes.js.map +1 -1
  166. package/run/worker-pool-lifecycle-lanes.js +4 -56
  167. package/run/worker-pool-lifecycle-lanes.js.map +1 -1
  168. package/run/worker-pool-placement-planning.js +9 -4
  169. package/run/worker-pool-placement-planning.js.map +1 -1
  170. package/run/worker-pool-protocol.js +2 -0
  171. package/run/worker-pool-protocol.js.map +1 -0
  172. package/run/worker-pool-resource-lifecycle-execution.js +155 -0
  173. package/run/worker-pool-resource-lifecycle-execution.js.map +1 -0
  174. package/run/worker-pool-routing.js +6 -3
  175. package/run/worker-pool-routing.js.map +1 -1
  176. package/run/worker-pool-run.js +74 -19
  177. package/run/worker-pool-run.js.map +1 -1
  178. package/run/worker-pool-runtime.js +87 -20
  179. package/run/worker-pool-runtime.js.map +1 -1
  180. package/run/worker-pool-task-events.js +3 -0
  181. package/run/worker-pool-task-events.js.map +1 -1
  182. package/run/worker-pool-task-validation.js +11 -0
  183. package/run/worker-pool-task-validation.js.map +1 -0
  184. package/run/worker-pool-work-dispatcher.js +27 -21
  185. package/run/worker-pool-work-dispatcher.js.map +1 -1
  186. package/run/worker-pool-worker-resources.js +99 -0
  187. package/run/worker-pool-worker-resources.js.map +1 -0
  188. package/run/worker-pool-worker-timing.js +63 -0
  189. package/run/worker-pool-worker-timing.js.map +1 -0
  190. package/run/worker-pool-worker.js +93 -32
  191. package/run/worker-pool-worker.js.map +1 -1
  192. package/sbom.cdx.json +9 -9
  193. package/reporters/run-fact-summary.js +0 -20
  194. package/reporters/run-fact-summary.js.map +0 -1
  195. package/reporters/run-timing-summary.js +0 -11
  196. package/reporters/run-timing-summary.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-boundaries.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-boundaries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { resolvedResourceScenarioBindings } from "../resources/resources.js";
2
+ import { sourceResourceDefinition } from "../resources/resource-scenario-binding.js";
3
+ function compareText(left, right) {
4
+ return left.localeCompare(right);
5
+ }
6
+ function scenarioIdentity(node, timing) {
7
+ return node
8
+ .scenarios
9
+ .filter(function timingMatches(binding) {
10
+ return binding.timing === timing;
11
+ })
12
+ .toSorted(function compareBindings(left, right) {
13
+ return compareText(left.name, right.name);
14
+ })
15
+ .map(function toIdentity(binding) {
16
+ return [binding.name, binding.value];
17
+ });
18
+ }
19
+ function resourceIdentities(node) {
20
+ const scenarios = scenarioIdentity(node, 'acquire');
21
+ const dependencies = node
22
+ .dependencies
23
+ .toSorted(function compareDependencies(left, right) {
24
+ return compareText(left.key, right.key);
25
+ })
26
+ .flatMap(function dependencyIdentity(dependency) {
27
+ const identity = resourceIdentities(dependency.resource).handle;
28
+ return identity === null ? [] : [[dependency.key, identity]];
29
+ });
30
+ const acquisition = scenarios.length === 0 && dependencies.length === 0
31
+ ? null
32
+ : { dependencies, scenarios };
33
+ const routedScenarios = scenarioIdentity(node, 'request-routed');
34
+ const handle = acquisition === null && routedScenarios.length === 0
35
+ ? null
36
+ : { acquisition, scenarios: routedScenarios };
37
+ return { acquisition, handle };
38
+ }
39
+ export function resourceAcquisitionCacheIdentity(node) {
40
+ const identity = resourceIdentities(node).acquisition;
41
+ return identity === null ? '' : JSON.stringify(identity);
42
+ }
43
+ export function resourceHandleCacheIdentity(node) {
44
+ const identity = resourceIdentities(node).handle;
45
+ return identity === null ? '' : JSON.stringify(identity);
46
+ }
47
+ export function resourceDescriptorCacheIdentityNode(resource) {
48
+ const bindings = resolvedResourceScenarioBindings(resource);
49
+ return {
50
+ dependencies: Object.values(resource.dependencies).map(function dependencyNode(dependency) {
51
+ return {
52
+ key: sourceResourceDefinition(dependency).name,
53
+ resource: resourceDescriptorCacheIdentityNode(dependency)
54
+ };
55
+ }),
56
+ scenarios: Object.entries(resource.scenarios).map(function scenarioBinding([name, slot]) {
57
+ return {
58
+ name,
59
+ timing: slot.timing,
60
+ value: bindings[name] ?? slot.default
61
+ };
62
+ })
63
+ };
64
+ }
65
+ //# sourceMappingURL=resource-lifecycle-cache-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-cache-identity.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-cache-identity.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type RuntimeGraph, type RuntimeGraphContext, type AnyResourceDefinition, type ResourceContext, type RuntimeResourceMap as ResourceMap } from '../resources/resources.ts';
2
+ import { type ResolvedResourceScenarioBindings } from '../resources/resource-scenario-binding.ts';
2
3
  import { type WorkId } from '../engine/identity.ts';
3
4
  import type { ResourceSession } from '../resources/resource-session.ts';
4
5
  type DisposalContext = {
@@ -26,6 +27,7 @@ export type ResourceEntry = {
26
27
  readonly key: string;
27
28
  readonly resource: AnyResourceDefinition;
28
29
  };
30
+ export declare function lifecycleScenarioBindings(resource: AnyResourceDefinition): ResolvedResourceScenarioBindings;
29
31
  export declare function directResourceEntries(steps: readonly ResourceWrapperStep[]): readonly ResourceEntry[];
30
32
  export declare function stepRuntimeGraphs(steps: readonly ResourceWrapperStep[]): readonly RuntimeGraph[];
31
33
  export declare function resourceMapFromEntries(resourceEntries: readonly ResourceEntry[]): ResourceMap;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-lifecycle-composition.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EAIpB,KAAK,kBAAkB,IAAI,WAAW,EACzC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOxE,KAAK,eAAe,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,GAAG,0BAA0B,CAAC;AAQ5F,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1F,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC5C,CAAC;AA6FF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,aAAa,EAAE,CAQrG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,YAAY,EAAE,CAIhG;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,GAAG,WAAW,CAQ7F;AA0BD,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,WAAW,EAChE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,GACtC,eAAe,CAAC,SAAS,CAAC,CAc5B;AAsBD,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,YAAY,EAC5D,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,uBAAuB,GACjC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AA6D9B,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,MAAM,GAAE,MAAM,GAAG,IAAW,GAC7B,WAAW,CAmBb;AAqCD,wBAAgB,uBAAuB,CACnC,eAAe,EAAE,WAAW,EAC5B,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,EACrC,MAAM,GAAE,MAAM,GAAG,IAAW,GAC7B,uBAAuB,CAazB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,iBAAiB,CAc1F"}
1
+ {"version":3,"file":"resource-lifecycle-composition.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EAIpB,KAAK,kBAAkB,IAAI,WAAW,EACzC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAGH,KAAK,gCAAgC,EACxC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAWxE,KAAK,eAAe,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,GAAG,0BAA0B,CAAC;AAQ5F,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1F,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC5C,CAAC;AAEF,wBAAgB,yBAAyB,CACrC,QAAQ,EAAE,qBAAqB,GAChC,gCAAgC,CAElC;AA6FD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,aAAa,EAAE,CAQrG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,YAAY,EAAE,CAIhG;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,GAAG,WAAW,CAQ7F;AA0BD,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,WAAW,EAChE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,GACtC,eAAe,CAAC,SAAS,CAAC,CAc5B;AAsBD,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,YAAY,EAC5D,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,uBAAuB,GACjC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AA0H9B,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,MAAM,GAAE,MAAM,GAAG,IAAW,GAC7B,WAAW,CAqBb;AAqCD,wBAAgB,uBAAuB,CACnC,eAAe,EAAE,WAAW,EAC5B,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,EACrC,MAAM,GAAE,MAAM,GAAG,IAAW,GAC7B,uBAAuB,CAazB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,iBAAiB,CAc1F"}
@@ -1,6 +1,13 @@
1
1
  import { runtimeGraphLeaves } from "../resources/resources.js";
2
+ import { resolvedRuntimeScenarioOwners } from "../resources/runtime-definition.js";
3
+ import { acquisitionResourceScenarioBindings, bindResourceScenarios } from "../resources/resource-scenario-binding.js";
4
+ import { defaultScenarioBindings } from "../resources/resource-scenario.js";
2
5
  import { runtimeIdentityKey } from "../engine/identity.js";
3
6
  import { resourceWrapperLifecycleError } from "./resource-lifecycle-error.js";
7
+ import { resourceHandleCacheIdentity } from "./resource-lifecycle-cache-identity.js";
8
+ export function lifecycleScenarioBindings(resource) {
9
+ return Object.freeze({ ...acquisitionResourceScenarioBindings(resource) });
10
+ }
4
11
  function entries(record) {
5
12
  return Object.entries(record);
6
13
  }
@@ -132,24 +139,53 @@ const scopedRuntimeResources = new WeakMap();
132
139
  function cacheScopedRuntimeResource(resource, runtimeKey, scoped, cachedResources) {
133
140
  scopedRuntimeResources.set(resource, new Map([...cachedResources, [runtimeKey, scoped]]));
134
141
  }
135
- function scopedRuntimeResource(resource, runtimeKey) {
142
+ function scopedRuntimeDependencies(resource, runtimeKey, bindingsByResource, bindDependency) {
143
+ return Object.freeze(Object.fromEntries(entries(resource.dependencies).map(function scopedDependency([key, dependency]) {
144
+ return [key, bindDependency(dependency, runtimeKey, bindingsByResource)];
145
+ })));
146
+ }
147
+ function resourceCacheIdentityNode(resource, bindingsByResource) {
148
+ const bindings = bindingsByResource.get(resource) ?? defaultScenarioBindings(resource.scenarios);
149
+ return {
150
+ dependencies: entries(resource.dependencies).map(function dependencyNode([, dependency]) {
151
+ return { key: dependency.name, resource: resourceCacheIdentityNode(dependency, bindingsByResource) };
152
+ }),
153
+ scenarios: Object.entries(resource.scenarios).map(function scenarioBinding([name, slot]) {
154
+ return {
155
+ name,
156
+ timing: slot.timing,
157
+ value: bindings[name] ?? slot.default
158
+ };
159
+ })
160
+ };
161
+ }
162
+ function scopedRuntimeResource(resource, runtimeKey, bindingsByResource) {
136
163
  const cachedResources = scopedRuntimeResources.get(resource) ?? new Map();
137
- const cached = cachedResources.get(runtimeKey);
164
+ const bindings = bindingsByResource.get(resource) ?? defaultScenarioBindings(resource.scenarios);
165
+ const scopedResourceKey = `${runtimeKey}:${resourceHandleCacheIdentity(resourceCacheIdentityNode(resource, bindingsByResource))}`;
166
+ const cached = cachedResources.get(scopedResourceKey);
138
167
  if (cached !== undefined) {
139
168
  return cached;
140
169
  }
141
- const dependencies = {};
142
- for (const [key, dependency] of entries(resource.dependencies)) {
143
- dependencies[key] = scopedRuntimeResource(dependency, runtimeKey);
144
- }
145
- const scoped = Object.freeze({
170
+ const scoped = bindResourceScenarios(Object.freeze({
146
171
  ...resource,
147
- dependencies: Object.freeze(dependencies),
172
+ dependencies: scopedRuntimeDependencies(resource, runtimeKey, bindingsByResource, scopedRuntimeResource),
148
173
  name: `${resource.name}@${runtimeKey}`
149
- });
150
- cacheScopedRuntimeResource(resource, runtimeKey, scoped, cachedResources);
174
+ }), bindings);
175
+ cacheScopedRuntimeResource(resource, scopedResourceKey, scoped, cachedResources);
151
176
  return scoped;
152
177
  }
178
+ function runtimeScenarioBindings(runtime) {
179
+ const mutableBindings = new Map();
180
+ for (const [name, owner] of resolvedRuntimeScenarioOwners(runtime)) {
181
+ const bindings = mutableBindings.get(owner.resource) ?? {};
182
+ bindings[name] = owner.value;
183
+ mutableBindings.set(owner.resource, bindings);
184
+ }
185
+ return new Map(Array.from(mutableBindings, function freezeBindings([resource, bindings]) {
186
+ return [resource, Object.freeze(bindings)];
187
+ }));
188
+ }
153
189
  export function combinedResourceEntries(steps, workId = null) {
154
190
  const resources = {};
155
191
  for (const entry of directResourceEntries(steps)) {
@@ -157,8 +193,9 @@ export function combinedResourceEntries(steps, workId = null) {
157
193
  }
158
194
  for (const runtime of resolvedRuntimeGraphs(steps, workId)) {
159
195
  const runtimeKey = runtimeIdentityKey(runtime.id);
196
+ const bindingsByResource = runtimeScenarioBindings(runtime.runtime);
160
197
  for (const [key, resource] of entries(runtime.runtime.resources)) {
161
- resources[combinedResourceKey('runtime', [runtimeKey, key])] = scopedRuntimeResource(resource, runtimeKey);
198
+ resources[combinedResourceKey('runtime', [runtimeKey, key])] = scopedRuntimeResource(resource, runtimeKey, bindingsByResource);
162
199
  }
163
200
  }
164
201
  return Object.freeze(resources);
@@ -1 +1 @@
1
- {"version":3,"file":"resource-lifecycle-composition.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-lifecycle-composition.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { resourceWrapperLifecycleError } from "./resource-lifecycle-error.js";
2
+ function isProjectionScalar(value) {
3
+ return value === null ||
4
+ typeof value === 'string' ||
5
+ typeof value === 'boolean' ||
6
+ typeof value === 'number' && Number.isFinite(value);
7
+ }
8
+ function isProjectionObject(value) {
9
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
10
+ }
11
+ function isProjectionPayload(value) {
12
+ if (isProjectionScalar(value)) {
13
+ return true;
14
+ }
15
+ if (Array.isArray(value)) {
16
+ return value.every(isProjectionPayload);
17
+ }
18
+ return isProjectionObject(value) &&
19
+ Object.values(value).every(isProjectionPayload);
20
+ }
21
+ function resourceHasProjection(resource) {
22
+ return typeof resource.serializeHandle === 'function' &&
23
+ typeof resource.deserializeHandle === 'function';
24
+ }
25
+ export function deserializeProjectedHandle(resource, payload, dependencyContext) {
26
+ if (!resourceHasProjection(resource)) {
27
+ throw resourceWrapperLifecycleError(`Resource "${resource.name}" requires a projection for worker-pool per-run ownership.`, resource);
28
+ }
29
+ return resource.deserializeHandle(payload, { dependencies: dependencyContext });
30
+ }
31
+ export function serializeProjectedHandle(resource, ownerHandle, dependencyContext) {
32
+ if (!resourceHasProjection(resource)) {
33
+ return null;
34
+ }
35
+ const context = { dependencies: dependencyContext };
36
+ const payload = resource.serializeHandle(ownerHandle, context);
37
+ if (!isProjectionPayload(payload)) {
38
+ throw resourceWrapperLifecycleError(`Resource "${resource.name}" returned a non-JSON projection payload.`, payload);
39
+ }
40
+ return payload;
41
+ }
42
+ export function projectedHandle(resource, ownerHandle, dependencyContext) {
43
+ const payload = serializeProjectedHandle(resource, ownerHandle, dependencyContext);
44
+ return payload === null
45
+ ? ownerHandle
46
+ : deserializeProjectedHandle(resource, payload, dependencyContext);
47
+ }
48
+ //# sourceMappingURL=resource-lifecycle-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-projection.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-projection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAsB9E,SAAS,kBAAkB,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,IAAI;QACjB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACvC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,kBAAkB,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA+B;IAC1D,OAAO,OAAO,QAAQ,CAAC,eAAe,KAAK,UAAU;QACjD,OAAO,QAAQ,CAAC,iBAAiB,KAAK,UAAU,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,QAA+B,EAC/B,OAAkC,EAClC,iBAA+C;IAE/C,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,6BAA6B,CAC/B,aAAa,QAAQ,CAAC,IAAI,4DAA4D,EACtF,QAAQ,CACX,CAAC;IACN,CAAC;IAED,OAAO,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,QAA+B,EAC/B,WAAoB,EACpB,iBAA+C;IAE/C,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE/D,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,6BAA6B,CAC/B,aAAa,QAAQ,CAAC,IAAI,2CAA2C,EACrE,OAAO,CACV,CAAC;IACN,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,QAA+B,EAC/B,WAAoB,EACpB,iBAA+C;IAE/C,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAEnF,OAAO,OAAO,KAAK,IAAI;QACnB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,182 @@
1
+ import { workIdentityKey } from "../engine/identity.js";
2
+ import { acquisitionResourceScenarioBindings, exposeResourceHandle, sourceResourceDefinition } from "../resources/resource-scenario-binding.js";
3
+ import { boundaryFor, initialBoundaryUseCountsFromRecords } from "./resource-lifecycle-boundaries.js";
4
+ import { resourceWrapperLifecycleError } from "./resource-lifecycle-error.js";
5
+ import { acquireResourceWithStartupBudget } from "./resource-lifecycle-startup-budget.js";
6
+ import { deserializeProjectedHandle, projectedHandle, serializeProjectedHandle } from "./resource-lifecycle-projection.js";
7
+ function caseKey(testCase) {
8
+ return workIdentityKey(testCase.workId);
9
+ }
10
+ function mutableDependencyContext() {
11
+ return {};
12
+ }
13
+ export function createManagedStores(options) {
14
+ const acquisitions = new Map();
15
+ const boundaryUseCounts = new Map(initialBoundaryUseCountsFromRecords(options.boundaryUseCounts));
16
+ const errorsByCase = new Map();
17
+ const records = new Map();
18
+ const runErrors = [];
19
+ return {
20
+ deleteAcquisition(boundaryKey) {
21
+ acquisitions.delete(boundaryKey);
22
+ },
23
+ deleteRecord(boundaryKey) {
24
+ records.delete(boundaryKey);
25
+ },
26
+ async existingAcquisition(boundaryKey) {
27
+ return await (acquisitions.get(boundaryKey) ?? Promise.resolve(null));
28
+ },
29
+ existingRecord(boundaryKey) {
30
+ return records.get(boundaryKey);
31
+ },
32
+ recordCaseError(testCase, message, cause) {
33
+ const key = caseKey(testCase);
34
+ const errors = errorsByCase.get(key) ?? [];
35
+ errors.push(resourceWrapperLifecycleError(message, cause).runnerError(testCase.id, testCase.workId));
36
+ errorsByCase.set(key, errors);
37
+ },
38
+ remainingBoundaryUses(boundaryKey) {
39
+ const remaining = (boundaryUseCounts.get(boundaryKey) ?? 0) - 1;
40
+ boundaryUseCounts.set(boundaryKey, remaining);
41
+ return remaining;
42
+ },
43
+ rememberAcquisition(boundaryKey, acquisition) {
44
+ acquisitions.set(boundaryKey, acquisition);
45
+ },
46
+ rememberRecord(boundaryKey, record) {
47
+ records.set(boundaryKey, record);
48
+ },
49
+ records() {
50
+ return Array.from(records.values());
51
+ },
52
+ takeCaseErrors(testCase) {
53
+ const key = caseKey(testCase);
54
+ const errors = errorsByCase.get(key) ?? [];
55
+ errorsByCase.delete(key);
56
+ return errors;
57
+ },
58
+ takePendingRunErrors() {
59
+ const errors = Array.from(runErrors);
60
+ runErrors.length = 0;
61
+ return errors;
62
+ },
63
+ takeRunErrors() {
64
+ const errors = Array.from(runErrors);
65
+ runErrors.length = 0;
66
+ return errors;
67
+ }
68
+ };
69
+ }
70
+ export function resourceProjectionRecordsFromStores(stores) {
71
+ return {
72
+ resources: stores.records().flatMap(function toProjectionRecord(record) {
73
+ const payload = serializeProjectedHandle(record.descriptor, record.ownerHandle, record.dependencyContext);
74
+ return payload === null
75
+ ? []
76
+ : [{ boundaryKey: record.boundary.key, payload }];
77
+ })
78
+ };
79
+ }
80
+ export function managedResourceHandle(record, resource) {
81
+ return exposeResourceHandle(resource, record.consumerHandle);
82
+ }
83
+ function assertCompatibleResource(stores, boundary, resource) {
84
+ const record = stores.existingRecord(boundary.key);
85
+ if (record !== undefined &&
86
+ sourceResourceDefinition(record.descriptor) !== sourceResourceDefinition(resource)) {
87
+ throw resourceWrapperLifecycleError(`Resource name "${resource.name}" is used by multiple descriptors in one lifecycle boundary.`, resource);
88
+ }
89
+ }
90
+ function projectionRecords(records) {
91
+ return new Map(records.resources.map(function toEntry(record) {
92
+ return [record.boundaryKey, record.payload];
93
+ }));
94
+ }
95
+ export function createManagedResourceAcquirer(stores, options) {
96
+ const externalProjections = projectionRecords(options.projectedResources);
97
+ let acquireResource = async function acquireBeforeReady() {
98
+ throw resourceWrapperLifecycleError('Resource lifecycle is not ready.', null);
99
+ };
100
+ async function acquireDependencyContext(resource, testCase, signal) {
101
+ const context = mutableDependencyContext();
102
+ await Promise.all(Object.entries(resource.dependencies).map(async function acquireDependency([key, dependency]) {
103
+ const record = await acquireResource(dependency, testCase, signal);
104
+ context[key] = managedResourceHandle(record, dependency);
105
+ }));
106
+ return Object.freeze(context);
107
+ }
108
+ async function startResource(resource, boundary, testCase, signal) {
109
+ const dependencyContext = await acquireDependencyContext(resource, testCase, signal);
110
+ const acquireHandle = async function acquireResourceHandle() {
111
+ return await acquireResourceWithStartupBudget(resource, {
112
+ dependencies: dependencyContext,
113
+ scenarios: acquisitionResourceScenarioBindings(resource),
114
+ signal
115
+ });
116
+ };
117
+ const ownerHandle = options.timing === null
118
+ ? await acquireHandle()
119
+ : await options.timing.measure({
120
+ phase: 'acquire',
121
+ resource: { name: resource.name, scope: resource.scope },
122
+ signal
123
+ }, acquireHandle);
124
+ const record = {
125
+ boundary,
126
+ dependencyContext,
127
+ descriptor: resource,
128
+ external: false,
129
+ consumerHandle: projectedHandle(resource, ownerHandle, dependencyContext),
130
+ ownerHandle
131
+ };
132
+ stores.rememberRecord(boundary.key, record);
133
+ return record;
134
+ }
135
+ async function startExternalResource(resource, boundary, testCase, signal) {
136
+ const payload = externalProjections.get(boundary.key);
137
+ if (payload === undefined) {
138
+ return null;
139
+ }
140
+ const dependencyContext = await acquireDependencyContext(resource, testCase, signal);
141
+ const record = {
142
+ boundary,
143
+ dependencyContext,
144
+ descriptor: resource,
145
+ external: true,
146
+ consumerHandle: deserializeProjectedHandle(resource, payload, dependencyContext),
147
+ ownerHandle: null
148
+ };
149
+ stores.rememberRecord(boundary.key, record);
150
+ return record;
151
+ }
152
+ async function acquireNewResource(resource, boundary, testCase, signal) {
153
+ const acquisition = startResource(resource, boundary, testCase, signal);
154
+ stores.rememberAcquisition(boundary.key, acquisition);
155
+ try {
156
+ return await acquisition;
157
+ }
158
+ catch (error) {
159
+ stores.deleteAcquisition(boundary.key);
160
+ throw error;
161
+ }
162
+ }
163
+ async function acquire(resource, testCase, signal) {
164
+ const boundary = boundaryFor(resource, testCase);
165
+ const existingRecord = stores.existingRecord(boundary.key);
166
+ assertCompatibleResource(stores, boundary, resource);
167
+ if (existingRecord !== undefined) {
168
+ return existingRecord;
169
+ }
170
+ const externalRecord = boundary.scope === 'per-run'
171
+ ? await startExternalResource(resource, boundary, testCase, signal)
172
+ : null;
173
+ if (externalRecord !== null) {
174
+ return externalRecord;
175
+ }
176
+ const existingAcquisition = await stores.existingAcquisition(boundary.key);
177
+ return existingAcquisition ?? await acquireNewResource(resource, boundary, testCase, signal);
178
+ }
179
+ acquireResource = acquire;
180
+ return { acquire };
181
+ }
182
+ //# sourceMappingURL=resource-lifecycle-session-acquirer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-session-acquirer.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-session-acquirer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { clearTimeout as clearNodeTimeout, setTimeout as setNodeTimeout } from 'node:timers';
2
+ import { callableResourceDefinition } from "../resources/resource-graph.js";
3
+ const resourceStartupTimeoutBrand = Symbol('ResourceStartupTimeout');
4
+ function resourceStartupTimeoutError(message) {
5
+ const error = new Error(message);
6
+ Object.defineProperty(error, resourceStartupTimeoutBrand, { value: true });
7
+ return error;
8
+ }
9
+ export function isResourceStartupTimeoutError(error) {
10
+ return typeof error === 'object' &&
11
+ error !== null &&
12
+ Reflect.get(error, resourceStartupTimeoutBrand) === true;
13
+ }
14
+ function isStartupBudgetRequirement(requirement) {
15
+ if (requirement === null || typeof requirement !== 'object') {
16
+ return false;
17
+ }
18
+ const kind = Reflect.get(requirement, 'kind');
19
+ const minimumMilliseconds = Reflect.get(requirement, 'minimumMilliseconds');
20
+ return kind === 'startup-budget-milliseconds' &&
21
+ typeof minimumMilliseconds === 'number' &&
22
+ Number.isFinite(minimumMilliseconds) &&
23
+ minimumMilliseconds >= 0;
24
+ }
25
+ function startupBudgetMilliseconds(resource) {
26
+ const budgets = resource.requirements.flatMap(function toBudget(requirement) {
27
+ return isStartupBudgetRequirement(requirement) ? [requirement.minimumMilliseconds] : [];
28
+ });
29
+ return budgets.length === 0 ? null : Math.max(...budgets);
30
+ }
31
+ function createStartupBudgetTimer(resource, budgetMilliseconds, controller) {
32
+ let rejectTimeout = function rejectBeforeTimeoutReady(error) {
33
+ throw error;
34
+ };
35
+ const timeout = new Promise(function createStartupTimeout(_resolve, reject) {
36
+ rejectTimeout = reject;
37
+ });
38
+ const timer = setNodeTimeout(function abortForStartupBudget() {
39
+ const error = resourceStartupTimeoutError(`Resource "${resource.name}" exceeded startup budget of ${budgetMilliseconds} ms.`);
40
+ controller.abort(error);
41
+ rejectTimeout(error);
42
+ }, budgetMilliseconds);
43
+ return {
44
+ cancel() {
45
+ clearNodeTimeout(timer);
46
+ },
47
+ timeout
48
+ };
49
+ }
50
+ function linkParentSignal(parentSignal, controller) {
51
+ const abortForParentSignal = function abortForParentSignal() {
52
+ controller.abort(parentSignal.reason);
53
+ };
54
+ parentSignal.addEventListener('abort', abortForParentSignal, { once: true });
55
+ return function unlinkParentSignal() {
56
+ parentSignal.removeEventListener('abort', abortForParentSignal);
57
+ };
58
+ }
59
+ export async function acquireResourceWithStartupBudget(resource, context) {
60
+ const budgetMilliseconds = startupBudgetMilliseconds(resource);
61
+ if (budgetMilliseconds === null) {
62
+ return await callableResourceDefinition(resource).acquire(context);
63
+ }
64
+ const controller = new AbortController();
65
+ const timer = createStartupBudgetTimer(resource, budgetMilliseconds, controller);
66
+ const unlinkParentSignal = linkParentSignal(context.signal, controller);
67
+ try {
68
+ return await Promise.race([
69
+ callableResourceDefinition(resource).acquire({
70
+ dependencies: context.dependencies,
71
+ scenarios: context.scenarios,
72
+ signal: controller.signal
73
+ }),
74
+ timer.timeout
75
+ ]);
76
+ }
77
+ finally {
78
+ timer.cancel();
79
+ unlinkParentSignal();
80
+ }
81
+ }
82
+ //# sourceMappingURL=resource-lifecycle-startup-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-startup-budget.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-startup-budget.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import type { ComposedResourceSession, LifecycleMessages, ResourceWrapperStep }
4
4
  export type ManagedRunnerError = RunnerError;
5
5
  export type ManagedLifecycleState = {
6
6
  readonly acquireComposedResources: (steps: readonly ResourceWrapperStep[], signal: AbortSignal, messages: LifecycleMessages) => Promise<ComposedResourceSession>;
7
+ readonly acquireResourceScopes: (steps: readonly ResourceWrapperStep[], testCase: TestPlanCase, signal: AbortSignal, scopes: ReadonlySet<string>) => Promise<void>;
8
+ readonly disposeAll: (signal: AbortSignal) => Promise<readonly ManagedRunnerError[]>;
7
9
  readonly runCase: <Value>(testCase: TestPlanCase, run: () => Promise<Value>) => Promise<Value>;
8
10
  readonly takeCaseErrors: (testCase: TestPlanCase) => readonly ManagedRunnerError[];
9
11
  readonly takePendingRunErrors: () => readonly ManagedRunnerError[];
@@ -1 +1 @@
1
- {"version":3,"file":"resource-lifecycle-state.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EACR,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,wBAAwB,EAAE,CAC/B,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB,KAC1B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/F,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS,kBAAkB,EAAE,CAAC;IACnF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,SAAS,kBAAkB,EAAE,CAAC;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,kBAAkB,EAAE,CAAC;CAC/D,CAAC;AAKF,wBAAgB,sBAAsB,IAAI,qBAAqB,GAAG,IAAI,CAErE;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAC/C,SAAS,EAAE,qBAAqB,EAChC,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED,wBAAgB,oBAAoB,IAAI,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAC5C,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB"}
1
+ {"version":3,"file":"resource-lifecycle-state.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EACR,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,wBAAwB,EAAE,CAC/B,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB,KAC1B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,CAC5B,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAAC;IACrF,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/F,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS,kBAAkB,EAAE,CAAC;IACnF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,SAAS,kBAAkB,EAAE,CAAC;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,kBAAkB,EAAE,CAAC;CAC/D,CAAC;AAKF,wBAAgB,sBAAsB,IAAI,qBAAqB,GAAG,IAAI,CAErE;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAC/C,SAAS,EAAE,qBAAqB,EAChC,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED,wBAAgB,oBAAoB,IAAI,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAC5C,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-lifecycle-state.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAuBrD,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAAyB,CAAC;AACvE,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAgB,CAAC;AAE1D,MAAM,UAAU,sBAAsB;IAClC,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CACzC,SAAgC,EAChC,GAAyB;IAEzB,OAAO,MAAM,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,oBAAoB;IAChC,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAAsB,EACtB,GAAyB;IAEzB,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"resource-lifecycle-state.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA8BrD,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAAyB,CAAC;AACvE,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAgB,CAAC;AAE1D,MAAM,UAAU,sBAAsB;IAClC,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CACzC,SAAgC,EAChC,GAAyB;IAEzB,OAAO,MAAM,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,oBAAoB;IAChC,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAAsB,EACtB,GAAyB;IAEzB,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC"}