@overkill-dev/run 0.0.45 → 0.0.46

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 (55) hide show
  1. package/package.json +8 -1
  2. package/packages/run/resource-lifecycle.entry-point.d.ts +5 -0
  3. package/packages/run/resource-lifecycle.entry-point.d.ts.map +1 -0
  4. package/packages/run/resource-lifecycle.entry-point.js +4 -0
  5. package/packages/run/resource-lifecycle.entry-point.js.map +1 -0
  6. package/readme.md +4 -0
  7. package/resources/resource-graph.d.ts +23 -0
  8. package/resources/resource-graph.d.ts.map +1 -0
  9. package/resources/resource-graph.js +132 -0
  10. package/resources/resource-graph.js.map +1 -0
  11. package/resources/resource-lifecycle-error.d.ts +19 -0
  12. package/resources/resource-lifecycle-error.d.ts.map +1 -0
  13. package/resources/resource-lifecycle-error.js +16 -0
  14. package/resources/resource-lifecycle-error.js.map +1 -0
  15. package/resources/resource-session.d.ts +28 -0
  16. package/resources/resource-session.d.ts.map +1 -0
  17. package/resources/resources.d.ts +175 -0
  18. package/resources/resources.d.ts.map +1 -0
  19. package/resources/resources.js +9 -0
  20. package/resources/resources.js.map +1 -0
  21. package/run/resource-lifecycle-composition.d.ts +37 -0
  22. package/run/resource-lifecycle-composition.d.ts.map +1 -0
  23. package/run/resource-lifecycle-composition.js +94 -0
  24. package/run/resource-lifecycle-composition.js.map +1 -0
  25. package/run/resource-lifecycle-error.d.ts +4 -0
  26. package/run/resource-lifecycle-error.d.ts.map +1 -0
  27. package/run/resource-lifecycle-error.js +17 -0
  28. package/run/resource-lifecycle-error.js.map +1 -0
  29. package/run/resource-lifecycle-managed-session.js +44 -0
  30. package/run/resource-lifecycle-managed-session.js.map +1 -0
  31. package/run/resource-lifecycle-state.d.ts +15 -0
  32. package/run/resource-lifecycle-state.d.ts.map +1 -0
  33. package/run/resource-lifecycle-state.js +16 -0
  34. package/run/resource-lifecycle-state.js.map +1 -0
  35. package/run/resource-lifecycle.js +320 -0
  36. package/run/resource-lifecycle.js.map +1 -0
  37. package/run/run-support.js +37 -0
  38. package/run/run-support.js.map +1 -1
  39. package/run/run-types.d.ts +9 -0
  40. package/run/run-types.d.ts.map +1 -1
  41. package/run/run-types.js +7 -0
  42. package/run/run-types.js.map +1 -1
  43. package/run/run.js +2 -2
  44. package/run/run.js.map +1 -1
  45. package/run/supervised-child.js +2 -1
  46. package/run/supervised-child.js.map +1 -1
  47. package/run/work-unit-planning.js +19 -3
  48. package/run/work-unit-planning.js.map +1 -1
  49. package/run/work-unit-resource-constraints.js +148 -0
  50. package/run/work-unit-resource-constraints.js.map +1 -0
  51. package/run/worker-pool-lanes.js +112 -1
  52. package/run/worker-pool-lanes.js.map +1 -1
  53. package/run/worker-pool-worker.js +4 -2
  54. package/run/worker-pool-worker.js.map +1 -1
  55. package/sbom.cdx.json +4 -4
@@ -0,0 +1,94 @@
1
+ import { resourceWrapperLifecycleError } from "./resource-lifecycle-error.js";
2
+ function entries(record) {
3
+ return Object.entries(record);
4
+ }
5
+ export function directResourceEntries(steps) {
6
+ return steps.flatMap(function stepResourceEntries(step) {
7
+ return step.kind === 'resources'
8
+ ? entries(step.resources).map(function resourceEntry([key, resource]) {
9
+ return { key, resource };
10
+ })
11
+ : [];
12
+ });
13
+ }
14
+ export function stepRuntimeGraphs(steps) {
15
+ return steps.flatMap(function stepRuntimeGraph(step) {
16
+ return step.kind === 'runtime' ? [step.runtime] : [];
17
+ });
18
+ }
19
+ export function resourceMapFromEntries(resourceEntries) {
20
+ const resources = {};
21
+ for (const entry of resourceEntries) {
22
+ resources[entry.key] = entry.resource;
23
+ }
24
+ return Object.freeze(resources);
25
+ }
26
+ function isResourceContext(context, resources) {
27
+ for (const key of Object.keys(resources)) {
28
+ if (!Object.hasOwn(context, key)) {
29
+ return false;
30
+ }
31
+ }
32
+ return true;
33
+ }
34
+ function isRuntimeContext(context, runtime) {
35
+ return isResourceContext(context, runtime.resources);
36
+ }
37
+ export function resourceContextForStep(resources, handles) {
38
+ const context = {};
39
+ for (const key of Object.keys(resources)) {
40
+ context[key] = Reflect.get(handles, key);
41
+ }
42
+ const frozenContext = Object.freeze(context);
43
+ if (isResourceContext(frozenContext, resources)) {
44
+ return frozenContext;
45
+ }
46
+ throw resourceWrapperLifecycleError('Resource scope composition failed.', resources);
47
+ }
48
+ export function runtimeContextForStep(runtime, session) {
49
+ const context = session.runtimeContexts.get(runtime);
50
+ if (context === undefined || !isRuntimeContext(context, runtime)) {
51
+ throw resourceWrapperLifecycleError('Runtime scope composition failed.', runtime);
52
+ }
53
+ return context;
54
+ }
55
+ function combinedResourceKey(prefix, parts) {
56
+ return `${prefix}:${parts.join(':')}`;
57
+ }
58
+ export function combinedResourceEntries(steps) {
59
+ const resources = {};
60
+ for (const entry of directResourceEntries(steps)) {
61
+ resources[combinedResourceKey('resource', [entry.key])] = entry.resource;
62
+ }
63
+ for (const runtime of stepRuntimeGraphs(steps)) {
64
+ for (const [key, resource] of entries(runtime.resources)) {
65
+ resources[combinedResourceKey('runtime', [runtime.name, key])] = resource;
66
+ }
67
+ }
68
+ return Object.freeze(resources);
69
+ }
70
+ function directResourceContext(directResources, session) {
71
+ const context = {};
72
+ for (const key of Object.keys(directResources)) {
73
+ context[key] = Reflect.get(session.context, combinedResourceKey('resource', [key]));
74
+ }
75
+ return Object.freeze(context);
76
+ }
77
+ function runtimeContexts(runtimes, session) {
78
+ return new Map(runtimes.map(function toRuntimeContext(runtime) {
79
+ const context = {};
80
+ for (const key of Object.keys(runtime.resources)) {
81
+ context[key] = Reflect.get(session.context, combinedResourceKey('runtime', [runtime.name, key]));
82
+ }
83
+ return [runtime, Object.freeze(context)];
84
+ }));
85
+ }
86
+ export function composedResourceSession(directResources, runtimes, session) {
87
+ return Object.freeze({
88
+ directResources: directResourceContext(directResources, session),
89
+ disposeOnce: session.disposeOnce,
90
+ runtimeContexts: runtimeContexts(runtimes, session)
91
+ });
92
+ }
93
+
94
+ //# sourceMappingURL=resource-lifecycle-composition.js.map
@@ -0,0 +1 @@
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,4 @@
1
+ import { CaseRunnerError } from '../engine/run-result.ts';
2
+ export declare function resourceWrapperLifecycleError(message: string, cause: unknown): CaseRunnerError;
3
+ export declare function resourceWrapperErrorFromUnknown(message: string, cause: unknown): CaseRunnerError;
4
+ //# sourceMappingURL=resource-lifecycle-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-error.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,eAAe,CAS9F;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,eAAe,CAIhG"}
@@ -0,0 +1,17 @@
1
+ import { CaseRunnerError } from "../engine/run-result.js";
2
+ import { ResourceLifecycleError } from "../resources/resource-lifecycle-error.js";
3
+ export function resourceWrapperLifecycleError(message, cause) {
4
+ const runnerCause = cause instanceof ResourceLifecycleError && cause.cause !== undefined
5
+ ? cause.cause
6
+ : cause;
7
+ return new CaseRunnerError(message, {
8
+ cause: runnerCause,
9
+ subtype: 'fixture'
10
+ });
11
+ }
12
+ export function resourceWrapperErrorFromUnknown(message, cause) {
13
+ return cause instanceof CaseRunnerError
14
+ ? cause
15
+ : resourceWrapperLifecycleError(message, cause);
16
+ }
17
+ //# sourceMappingURL=resource-lifecycle-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-error.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,MAAM,UAAU,6BAA6B,CAAC,OAAe,EAAE,KAAc;IACzE,MAAM,WAAW,GAAG,KAAK,YAAY,sBAAsB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QACpF,CAAC,CAAC,KAAK,CAAC,KAAK;QACb,CAAC,CAAC,KAAK,CAAC;IAEZ,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE;QAChC,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAAe,EAAE,KAAc;IAC3E,OAAO,KAAK,YAAY,eAAe;QACnC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { resourceEntries } from "../resources/resource-graph.js";
2
+ import { resourceWrapperLifecycleError } from "./resource-lifecycle-error.js";
3
+ function mutableDependencyContext() {
4
+ return {};
5
+ }
6
+ function asyncDisposeSymbol() {
7
+ const value = Reflect.get(Symbol, 'asyncDispose');
8
+ if (typeof value !== 'symbol') {
9
+ throw new TypeError('Runtime does not provide Symbol.asyncDispose.');
10
+ }
11
+ return value;
12
+ }
13
+ function isManagedResourceSession(session) {
14
+ return typeof session === 'object' &&
15
+ session !== null &&
16
+ typeof Reflect.get(session, 'disposeOnce') === 'function' &&
17
+ typeof Reflect.get(session, asyncDisposeSymbol()) === 'function';
18
+ }
19
+ function resourceContextFromManagedRecords(resources, handles) {
20
+ const context = mutableDependencyContext();
21
+ for (const [key, resource] of resourceEntries(resources)) {
22
+ context[key] = handles.get(resource);
23
+ }
24
+ return Object.freeze(context);
25
+ }
26
+ export function managedResourceSession(resources, handles) {
27
+ const session = {
28
+ context: resourceContextFromManagedRecords(resources, handles),
29
+ async disposeOnce() {
30
+ return undefined;
31
+ }
32
+ };
33
+ Object.defineProperty(session, asyncDisposeSymbol(), {
34
+ value: async function disposeManagedResourceSession() {
35
+ return undefined;
36
+ }
37
+ });
38
+ const frozenSession = Object.freeze(session);
39
+ if (isManagedResourceSession(frozenSession)) {
40
+ return frozenSession;
41
+ }
42
+ throw resourceWrapperLifecycleError('Resource scope composition failed.', resources);
43
+ }
44
+ //# sourceMappingURL=resource-lifecycle-managed-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle-managed-session.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-managed-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E,SAAS,wBAAwB;IAC7B,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAElD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgB;IAC9C,OAAO,OAAO,OAAO,KAAK,QAAQ;QAC9B,OAAO,KAAK,IAAI;QAChB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,UAAU;QACzD,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC,KAAK,UAAU,CAAC;AACzE,CAAC;AAED,SAAS,iCAAiC,CACtC,SAAsB,EACtB,OAAoD;IAEpD,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAE,GAAG,EAAE,QAAQ,CAAE,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAClC,SAAsB,EACtB,OAAoD;IAEpD,MAAM,OAAO,GAAG;QACZ,OAAO,EAAE,iCAAiC,CAAC,SAAS,EAAE,OAAO,CAAC;QAC9D,KAAK,CAAC,WAAW;YACb,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CAAC;IAEF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE;QACjD,KAAK,EAAE,KAAK,UAAU,6BAA6B;YAC/C,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,wBAAwB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1C,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,6BAA6B,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;AACzF,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { RunnerError } from '../engine/run-result.ts';
2
+ import type { TestPlanCase } from '../engine/test-plan.ts';
3
+ import type { ComposedResourceSession, LifecycleMessages, ResourceWrapperStep } from './resource-lifecycle-composition.ts';
4
+ export type ManagedRunnerError = RunnerError;
5
+ export type ManagedLifecycleState = {
6
+ readonly acquireComposedResources: (steps: readonly ResourceWrapperStep[], signal: AbortSignal, messages: LifecycleMessages) => Promise<ComposedResourceSession>;
7
+ readonly runCase: <Value>(testCase: TestPlanCase, run: () => Promise<Value>) => Promise<Value>;
8
+ readonly takeCaseErrors: (testCase: TestPlanCase) => readonly ManagedRunnerError[];
9
+ readonly takeRunErrors: () => readonly ManagedRunnerError[];
10
+ };
11
+ export declare function activeManagedLifecycle(): ManagedLifecycleState | null;
12
+ export declare function runWithManagedLifecycle<Value>(lifecycle: ManagedLifecycleState, run: () => Promise<Value>): Promise<Value>;
13
+ export declare function currentLifecycleCase(): TestPlanCase | null;
14
+ export declare function runWithLifecycleCase<Value>(testCase: TestPlanCase, run: () => Promise<Value>): Promise<Value>;
15
+ //# sourceMappingURL=resource-lifecycle-state.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1,16 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ const activeLifecycle = new AsyncLocalStorage();
3
+ const runningCase = new AsyncLocalStorage();
4
+ export function activeManagedLifecycle() {
5
+ return activeLifecycle.getStore() ?? null;
6
+ }
7
+ export async function runWithManagedLifecycle(lifecycle, run) {
8
+ return await activeLifecycle.run(lifecycle, run);
9
+ }
10
+ export function currentLifecycleCase() {
11
+ return runningCase.getStore() ?? null;
12
+ }
13
+ export async function runWithLifecycleCase(testCase, run) {
14
+ return await runningCase.run(testCase, run);
15
+ }
16
+ //# sourceMappingURL=resource-lifecycle-state.js.map
@@ -0,0 +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;AAsBrD,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"}
@@ -0,0 +1,320 @@
1
+ import { caseIdentityKey } from "../engine/identity.js";
2
+ import { assertResourceDependencyScopes, callableResourceDefinition, createResourceGraph, resourceEntries } from "../resources/resource-graph.js";
3
+ import { combinedResourceEntries, composedResourceSession, directResourceEntries, resourceMapFromEntries, stepRuntimeGraphs } from "./resource-lifecycle-composition.js";
4
+ import { currentLifecycleCase, runWithLifecycleCase, runWithManagedLifecycle } from "./resource-lifecycle-state.js";
5
+ import { resourceWrapperErrorFromUnknown, resourceWrapperLifecycleError } from "./resource-lifecycle-error.js";
6
+ import { managedResourceSession } from "./resource-lifecycle-managed-session.js";
7
+ const resourceScopes = new Set([
8
+ 'per-case',
9
+ 'per-file',
10
+ 'per-run',
11
+ 'per-suite',
12
+ 'shared-per-worker'
13
+ ]);
14
+ function isResourceScope(scope) {
15
+ return resourceScopes.has(scope);
16
+ }
17
+ function isProjectionScalar(value) {
18
+ return value === null ||
19
+ typeof value === 'string' ||
20
+ typeof value === 'boolean' ||
21
+ typeof value === 'number' && Number.isFinite(value);
22
+ }
23
+ function isProjectionObject(value) {
24
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
25
+ }
26
+ function isProjectionPayload(value) {
27
+ if (isProjectionScalar(value)) {
28
+ return true;
29
+ }
30
+ if (Array.isArray(value)) {
31
+ return value.every(isProjectionPayload);
32
+ }
33
+ return isProjectionObject(value) &&
34
+ Object.values(value).every(isProjectionPayload);
35
+ }
36
+ function resourceHasProjection(resource) {
37
+ return typeof resource.serializeHandle === 'function' &&
38
+ typeof resource.deserializeHandle === 'function';
39
+ }
40
+ function projectedHandle(resource, ownerHandle, dependencyContext) {
41
+ if (!resourceHasProjection(resource)) {
42
+ return ownerHandle;
43
+ }
44
+ const context = { dependencies: dependencyContext };
45
+ const payload = resource.serializeHandle(ownerHandle, context);
46
+ if (!isProjectionPayload(payload)) {
47
+ throw resourceWrapperLifecycleError(`Resource "${resource.name}" returned a non-JSON projection payload.`, payload);
48
+ }
49
+ return resource.deserializeHandle(payload, context);
50
+ }
51
+ function suiteBoundary(testCase) {
52
+ return JSON.stringify(testCase.id.suite);
53
+ }
54
+ function resourceBoundaryForCase(resourceName, scope, testCase) {
55
+ return scope === 'shared-per-worker'
56
+ ? { key: `worker:${resourceName}`, scope }
57
+ : { key: `case:${caseIdentityKey(testCase.id)}:${resourceName}`, scope };
58
+ }
59
+ function resourceBoundary(resourceName, scope, testCase) {
60
+ const file = testCase.id.file ?? '<no-file>';
61
+ if (scope === 'per-run') {
62
+ return { key: `run:${resourceName}`, scope };
63
+ }
64
+ if (scope === 'per-file') {
65
+ return { key: `file:${file}:${resourceName}`, scope };
66
+ }
67
+ if (scope === 'per-suite') {
68
+ return { key: `suite:${file}:${suiteBoundary(testCase)}:${resourceName}`, scope };
69
+ }
70
+ return resourceBoundaryForCase(resourceName, scope, testCase);
71
+ }
72
+ function currentRunningCase() {
73
+ const testCase = currentLifecycleCase();
74
+ if (testCase === null) {
75
+ throw resourceWrapperLifecycleError('Resource lifecycle is not attached to a running test case.', null);
76
+ }
77
+ return testCase;
78
+ }
79
+ function caseResourceBoundaries(testCase) {
80
+ return Array.from(new Set(testCase.resourceAttachments.resourceGraph.flatMap(function toBoundary(resource) {
81
+ return isResourceScope(resource.scope)
82
+ ? [resourceBoundary(resource.name, resource.scope, testCase).key]
83
+ : [];
84
+ })));
85
+ }
86
+ function initialBoundaryUseCounts(testCases) {
87
+ const counts = new Map();
88
+ for (const testCase of testCases) {
89
+ for (const boundary of caseResourceBoundaries(testCase)) {
90
+ counts.set(boundary, (counts.get(boundary) ?? 0) + 1);
91
+ }
92
+ }
93
+ return counts;
94
+ }
95
+ function caseKey(testCase) {
96
+ return caseIdentityKey(testCase.id);
97
+ }
98
+ function mutableDependencyContext() {
99
+ return {};
100
+ }
101
+ function createManagedStores(testCases) {
102
+ const acquisitions = new Map();
103
+ const boundaryUseCounts = new Map(initialBoundaryUseCounts(testCases));
104
+ const errorsByCase = new Map();
105
+ const records = new Map();
106
+ const runErrors = [];
107
+ return {
108
+ deleteAcquisition(boundaryKey) {
109
+ acquisitions.delete(boundaryKey);
110
+ },
111
+ deleteRecord(boundaryKey) {
112
+ records.delete(boundaryKey);
113
+ },
114
+ async existingAcquisition(boundaryKey) {
115
+ return await (acquisitions.get(boundaryKey) ?? Promise.resolve(null));
116
+ },
117
+ existingRecord(boundaryKey) {
118
+ return records.get(boundaryKey);
119
+ },
120
+ recordCaseError(testCase, message, cause) {
121
+ const key = caseKey(testCase);
122
+ const errors = errorsByCase.get(key) ?? [];
123
+ errors.push(resourceWrapperLifecycleError(message, cause).runnerError(testCase.id));
124
+ errorsByCase.set(key, errors);
125
+ },
126
+ remainingBoundaryUses(boundaryKey) {
127
+ const remaining = (boundaryUseCounts.get(boundaryKey) ?? 0) - 1;
128
+ boundaryUseCounts.set(boundaryKey, remaining);
129
+ return remaining;
130
+ },
131
+ rememberAcquisition(boundaryKey, acquisition) {
132
+ acquisitions.set(boundaryKey, acquisition);
133
+ },
134
+ rememberRecord(boundaryKey, record) {
135
+ records.set(boundaryKey, record);
136
+ },
137
+ takeCaseErrors(testCase) {
138
+ const key = caseKey(testCase);
139
+ const errors = errorsByCase.get(key) ?? [];
140
+ errorsByCase.delete(key);
141
+ return errors;
142
+ },
143
+ takeRunErrors() {
144
+ const errors = Array.from(runErrors);
145
+ runErrors.length = 0;
146
+ return errors;
147
+ }
148
+ };
149
+ }
150
+ function boundaryFor(resource, testCase) {
151
+ return resourceBoundary(resource.name, resource.scope, testCase);
152
+ }
153
+ function assertCompatibleResource(stores, boundary, resource) {
154
+ const record = stores.existingRecord(boundary.key);
155
+ if (record !== undefined && record.descriptor !== resource) {
156
+ throw resourceWrapperLifecycleError(`Resource name "${resource.name}" is used by multiple descriptors in one lifecycle boundary.`, resource);
157
+ }
158
+ }
159
+ function createManagedResourceAcquirer(stores) {
160
+ let acquireResource = async function acquireBeforeReady() {
161
+ throw resourceWrapperLifecycleError('Resource lifecycle is not ready.', null);
162
+ };
163
+ async function acquireDependencyContext(resource, testCase, signal) {
164
+ const context = mutableDependencyContext();
165
+ await Promise.all(resourceEntries(resource.dependencies).map(async function acquireDependency([key, dependency]) {
166
+ const record = await acquireResource(dependency, testCase, signal);
167
+ context[key] = record.exposedHandle;
168
+ }));
169
+ return Object.freeze(context);
170
+ }
171
+ async function startResource(resource, boundary, testCase, signal) {
172
+ const dependencyContext = await acquireDependencyContext(resource, testCase, signal);
173
+ const ownerHandle = await callableResourceDefinition(resource).acquire({
174
+ dependencies: dependencyContext,
175
+ signal
176
+ });
177
+ const record = {
178
+ boundary,
179
+ dependencyContext,
180
+ descriptor: resource,
181
+ exposedHandle: projectedHandle(resource, ownerHandle, dependencyContext),
182
+ ownerHandle
183
+ };
184
+ stores.rememberRecord(boundary.key, record);
185
+ return record;
186
+ }
187
+ async function acquireNewResource(resource, boundary, testCase, signal) {
188
+ const acquisition = startResource(resource, boundary, testCase, signal);
189
+ stores.rememberAcquisition(boundary.key, acquisition);
190
+ try {
191
+ return await acquisition;
192
+ }
193
+ catch (error) {
194
+ stores.deleteAcquisition(boundary.key);
195
+ throw error;
196
+ }
197
+ }
198
+ async function acquire(resource, testCase, signal) {
199
+ const boundary = boundaryFor(resource, testCase);
200
+ const existingRecord = stores.existingRecord(boundary.key);
201
+ assertCompatibleResource(stores, boundary, resource);
202
+ if (existingRecord !== undefined) {
203
+ return existingRecord;
204
+ }
205
+ const existingAcquisition = await stores.existingAcquisition(boundary.key);
206
+ return existingAcquisition ?? await acquireNewResource(resource, boundary, testCase, signal);
207
+ }
208
+ acquireResource = acquire;
209
+ return { acquire };
210
+ }
211
+ async function disposeBoundary(stores, boundaryKey, signal) {
212
+ const record = stores.existingRecord(boundaryKey);
213
+ if (record === undefined) {
214
+ return;
215
+ }
216
+ const { dispose } = callableResourceDefinition(record.descriptor);
217
+ stores.deleteRecord(boundaryKey);
218
+ stores.deleteAcquisition(boundaryKey);
219
+ if (dispose !== null) {
220
+ await dispose(record.ownerHandle, {
221
+ dependencies: record.dependencyContext,
222
+ signal
223
+ });
224
+ }
225
+ }
226
+ function freshDisposalSignal() {
227
+ const controller = new AbortController();
228
+ return controller.signal;
229
+ }
230
+ async function disposeCompletedBoundary(stores, boundary) {
231
+ const remaining = stores.remainingBoundaryUses(boundary);
232
+ if (remaining <= 0) {
233
+ await disposeBoundary(stores, boundary, freshDisposalSignal());
234
+ }
235
+ }
236
+ async function disposeCompletedBoundaries(stores, testCase) {
237
+ for (const boundary of caseResourceBoundaries(testCase)) {
238
+ try {
239
+ await disposeCompletedBoundary(stores, boundary);
240
+ }
241
+ catch (error) {
242
+ stores.recordCaseError(testCase, 'Resource disposal failed.', error);
243
+ }
244
+ }
245
+ }
246
+ async function acquireTopLevelResources(acquirer, graph, testCase, signal) {
247
+ await Promise.all(graph.topLevelEntries.map(async function acquireTopLevel([, resource]) {
248
+ await acquirer.acquire(resource, testCase, signal);
249
+ }));
250
+ }
251
+ async function managedResourceHandles(acquirer, graph, testCase, signal) {
252
+ const handles = new Map();
253
+ for (const node of graph.order) {
254
+ const record = await acquirer.acquire(node.descriptor, testCase, signal);
255
+ handles.set(node.descriptor, record.exposedHandle);
256
+ }
257
+ return handles;
258
+ }
259
+ async function acquireComposedResourcesWithLifecycle(stores, steps, signal) {
260
+ const directResources = resourceMapFromEntries(directResourceEntries(steps));
261
+ const runtimes = stepRuntimeGraphs(steps);
262
+ const combinedResources = combinedResourceEntries(steps);
263
+ const graph = createResourceGraph(combinedResources);
264
+ const testCase = currentRunningCase();
265
+ const acquirer = createManagedResourceAcquirer(stores);
266
+ assertResourceDependencyScopes(combinedResources);
267
+ await acquireTopLevelResources(acquirer, graph, testCase, signal);
268
+ const handles = await managedResourceHandles(acquirer, graph, testCase, signal);
269
+ return composedResourceSession(directResources, runtimes, managedResourceSession(combinedResources, handles));
270
+ }
271
+ async function acquireManagedComposedResources(stores, steps, signal, messages) {
272
+ try {
273
+ return await acquireComposedResourcesWithLifecycle(stores, steps, signal);
274
+ }
275
+ catch (error) {
276
+ throw resourceWrapperErrorFromUnknown(messages.acquisitionFailure, error);
277
+ }
278
+ }
279
+ function createManagedLifecycle(testCases) {
280
+ const stores = createManagedStores(testCases);
281
+ return {
282
+ async acquireComposedResources(steps, signal, messages) {
283
+ return await acquireManagedComposedResources(stores, steps, signal, messages);
284
+ },
285
+ async runCase(testCase, run) {
286
+ try {
287
+ return await runWithLifecycleCase(testCase, run);
288
+ }
289
+ finally {
290
+ await disposeCompletedBoundaries(stores, testCase);
291
+ }
292
+ },
293
+ takeCaseErrors(testCase) {
294
+ return stores.takeCaseErrors(testCase);
295
+ },
296
+ takeRunErrors() {
297
+ return stores.takeRunErrors();
298
+ }
299
+ };
300
+ }
301
+ export function createResourceLifecycleRuntimePolicy(testCases) {
302
+ const lifecycle = createManagedLifecycle(testCases);
303
+ return {
304
+ async runCase(testCase, run) {
305
+ return await runWithManagedLifecycle(lifecycle, async function runWithResourceLifecycle() {
306
+ return await lifecycle.runCase(testCase, run);
307
+ });
308
+ },
309
+ async runLoad(run) {
310
+ return await run();
311
+ },
312
+ takeCaseErrors(testCase) {
313
+ return lifecycle.takeCaseErrors(testCase);
314
+ },
315
+ takeRunErrors() {
316
+ return lifecycle.takeRunErrors();
317
+ }
318
+ };
319
+ }
320
+ //# sourceMappingURL=resource-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-lifecycle.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,43 @@
1
+ import { createResourceLifecycleRuntimePolicy } from "./resource-lifecycle.js";
1
2
  import { createRuntimeCapabilityPolicy } from "./capability-policy.js";
2
3
  import { copyRunSelection } from "./run-selection-filters.js";
3
4
  import { validateRunResourceUsagePolicy } from "./run-validation.js";
5
+ function composeRunRuntimePolicies(firstPolicy, secondPolicy) {
6
+ if (firstPolicy === null) {
7
+ return secondPolicy;
8
+ }
9
+ if (secondPolicy === null) {
10
+ return firstPolicy;
11
+ }
12
+ return {
13
+ async runCase(testCase, run) {
14
+ return await firstPolicy.runCase(testCase, async function runSecondPolicy() {
15
+ return await secondPolicy.runCase(testCase, run);
16
+ });
17
+ },
18
+ async runLoad(run) {
19
+ return await firstPolicy.runLoad(async function runSecondPolicyLoad() {
20
+ return await secondPolicy.runLoad(run);
21
+ });
22
+ },
23
+ takeCaseErrors(testCase) {
24
+ return [
25
+ ...firstPolicy.takeCaseErrors(testCase),
26
+ ...secondPolicy.takeCaseErrors(testCase)
27
+ ];
28
+ },
29
+ takeRunErrors() {
30
+ return [
31
+ ...firstPolicy.takeRunErrors(),
32
+ ...secondPolicy.takeRunErrors()
33
+ ];
34
+ }
35
+ };
36
+ }
37
+ export function createRunResourceRuntimePolicy(testCases, runtimePolicy) {
38
+ const resourcePolicy = createResourceLifecycleRuntimePolicy(testCases);
39
+ return composeRunRuntimePolicies(runtimePolicy, resourcePolicy) ?? resourcePolicy;
40
+ }
4
41
  export function freezeValue(value) {
5
42
  if (value !== null && typeof value === 'object') {
6
43
  for (const propertyValue of Object.values(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"run-support.js","sourceRoot":"","sources":["../../../../source/run/run-support.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,6BAA6B,EAEhC,MAAM,wBAAwB,CAAC;AAqBhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAQrE,MAAM,UAAU,WAAW,CAAQ,KAAY;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,OAAyB,EACzB,iBAAyC;IAEzC,OAAO,OAAO,CAAC,SAAS,IAAI,iBAAiB,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAuB;IAC7C,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC9B,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,KAAe;IACjC,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;KACrB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,eAAmC;IACnE,OAAO;QACH,mBAAmB,EAAE,eAAe,CAAC,mBAAmB;QACxD,yBAAyB,EAAE,eAAe,CAAC,yBAAyB;QACpE,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;QAClD,+BAA+B,EAAE,eAAe,CAAC,+BAA+B;KACnF,CAAC;AACN,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAoC;IACrE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA8B;IAC3D,OAAO;QACH,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;KACpE,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAwB;IAC/C,OAAO;QACH,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC5C,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAgC;IAC5D,OAAO;QACH,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,UAAU,EAAE,SAAS,CAAC,UAAU;KACnC,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB;IACtC,OAAO;QACH,QAAQ,EAAE,CAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;QAC3D,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;KACzC,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAiC;IAC3D,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,OAAO;QACH,MAAM,EAAE;YACJ,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrC,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;SACrD;QACD,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,YAAY,CAAC,SAAS;KACpC,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,WAA2B;IAChD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACH,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;KACvD,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAkC;IAChE,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO;YACH,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC;YACnD,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,gBAAgB,EAAE,oBAAoB,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClE,eAAe,EAAE,SAAS,CAAC,eAAe;SAC7C,CAAC;IACN,CAAC;IAED,OAAO;QACH,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,UAAU,EAAE,SAAS,CAAC,UAAU;KACnC,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAsB;IAC9C,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA6B;IACnD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACH,IAAI,EAAE,MAAM,CAAC,WAAW,CACpB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,kBAAkB,CAAC,CAAE,IAAI,EAAE,GAAG,CAAE;gBACpE,OAAO;oBACH,IAAI;oBACJ;wBACI,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;wBAChC,OAAO,EAAE,CAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;qBACvD;iBACJ,CAAC;YACN,CAAC,CAAC,CACL;SACJ,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAClC,OAAO,EAAE,CAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;KAC3D,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAyB;IAChD,IAAI,OAAO,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACH,SAAS,EAAE,wBAAwB,CAAC,OAAO,CAAC,SAAS,CAAC;YACtD,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAC5E,aAAa,EAAE,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC;YAC7D,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;SAChD,CAAC;IACN,CAAC;IAED,OAAO;QACH,SAAS,EAAE,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC;QACpD,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5E,aAAa,EAAE,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7D,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;KAChD,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA2B;IACtD,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,gBAAgB,CAAC,CAAE,IAAI,EAAE,OAAO,CAAE;QACpE,OAAO,CAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAE,CAAC;IAChD,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAmB;IAC9C,OAAO;QACH,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,sBAAsB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE;QACrE,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE;YACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;YACxB,SAAS,EAAE,EAAE;SAChB;QACD,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;QAC3C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,uBAAuB,EAAE,2BAA2B,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACrF,yCAAyC,EAAE,OAAO,CAAC,yCAAyC;QAC5F,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;QACnC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;QAC9C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC3C,OAAO;QACH,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACvC,eAAe,EAAE,MAAM,CAAC,eAAe;KAC1C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA0B;IAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC7B,OAAO;YACH,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,UAAU;SACnB,CAAC;IACN,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,MAAM,CAAC,SAAS;SAC9B,CAAC;IACN,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA0B;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,MAAM,CAAC,SAAS;SAC9B,CAAC;IACN,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAClC,OAAmB,EACnB,YAAyC;IAEzC,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,KAAK,SAAS;QACpD,CAAC,CAAC,6BAA6B,CAAC;YAC5B,YAAY,EAAE,YAAY,CAAC,uBAAuB;YAClD,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;SACxB,CAAC;QACF,CAAC,CAAC,IAAI,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,MAA8B;IAC5E,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"run-support.js","sourceRoot":"","sources":["../../../../source/run/run-support.ts"],"names":[],"mappings":"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"}