@overkill-dev/resources 0.0.4 → 0.0.6

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 (51) hide show
  1. package/package.json +10 -2
  2. package/packages/resources/resources.entry-point.d.ts +4 -2
  3. package/packages/resources/resources.entry-point.d.ts.map +1 -1
  4. package/packages/resources/resources.entry-point.js +1 -1
  5. package/packages/resources/resources.entry-point.js.map +1 -1
  6. package/readme.md +21 -4
  7. package/resources/resource-definition-brand.d.ts +2 -0
  8. package/resources/resource-definition-brand.d.ts.map +1 -0
  9. package/resources/resource-definition-brand.js +2 -0
  10. package/resources/resource-definition-brand.js.map +1 -0
  11. package/resources/resource-definition-shape.d.ts +8 -1
  12. package/resources/resource-definition-shape.d.ts.map +1 -1
  13. package/resources/resource-definition-types.d.ts +104 -0
  14. package/resources/resource-definition-types.d.ts.map +1 -0
  15. package/resources/resource-definition.js +52 -0
  16. package/resources/resource-definition.js.map +1 -0
  17. package/resources/resource-graph.d.ts +3 -3
  18. package/resources/resource-graph.d.ts.map +1 -1
  19. package/resources/resource-graph.js.map +1 -1
  20. package/resources/resource-scenario-binding.d.ts +37 -0
  21. package/resources/resource-scenario-binding.d.ts.map +1 -0
  22. package/resources/resource-scenario-binding.js +99 -0
  23. package/resources/resource-scenario-binding.js.map +1 -0
  24. package/resources/resource-scenario.d.ts +31 -0
  25. package/resources/resource-scenario.d.ts.map +1 -0
  26. package/resources/resource-scenario.js +68 -0
  27. package/resources/resource-scenario.js.map +1 -0
  28. package/resources/resource-session.d.ts +3 -2
  29. package/resources/resource-session.d.ts.map +1 -1
  30. package/resources/resource-session.js +24 -17
  31. package/resources/resource-session.js.map +1 -1
  32. package/resources/resources.d.ts +46 -76
  33. package/resources/resources.d.ts.map +1 -1
  34. package/resources/resources.js +19 -23
  35. package/resources/resources.js.map +1 -1
  36. package/resources/runtime-definition.d.ts +11 -2
  37. package/resources/runtime-definition.d.ts.map +1 -1
  38. package/resources/runtime-definition.js +50 -2
  39. package/resources/runtime-definition.js.map +1 -1
  40. package/resources/runtime-lifecycle.d.ts.map +1 -1
  41. package/resources/runtime-lifecycle.js +39 -2
  42. package/resources/runtime-lifecycle.js.map +1 -1
  43. package/resources/runtime-matrix-definition.d.ts +25 -6
  44. package/resources/runtime-matrix-definition.d.ts.map +1 -1
  45. package/resources/runtime-matrix-definition.js +78 -8
  46. package/resources/runtime-matrix-definition.js.map +1 -1
  47. package/resources/simulated-http-server-resource.d.ts +3 -2
  48. package/resources/simulated-http-server-resource.d.ts.map +1 -1
  49. package/resources/simulated-http-server-resource.js +66 -6
  50. package/resources/simulated-http-server-resource.js.map +1 -1
  51. package/sbom.cdx.json +22 -5
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../source/resources/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../source/resources/resources.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { ExecutionRequirement, RuntimeResourceMap } from './resource-definition-shape.ts';
2
+ import { type ResourceMapScenarioSlots, type ResourceScenarioOwner } from './resource-scenario-binding.ts';
3
+ import type { ResourceScenarioSlots, ScenarioBindingInput } from './resource-scenario.ts';
2
4
  declare const runtimeDefinitionBrand: unique symbol;
3
5
  export type RuntimeDimensions = Readonly<Record<string, string>>;
4
6
  export type RuntimeId<Name extends string = string, Dimensions extends RuntimeDimensions = RuntimeDimensions> = {
@@ -12,12 +14,19 @@ export type RuntimeDefinitionInput<Name extends string, Dimensions extends Runti
12
14
  readonly requirements: readonly ExecutionRequirement[];
13
15
  readonly resources: Resources;
14
16
  };
15
- export type RuntimeDefinition<Name extends string = string, Dimensions extends RuntimeDimensions = RuntimeDimensions, Resources extends RuntimeResourceMap = RuntimeResourceMap> = RuntimeDefinitionInput<Name, Dimensions, Resources> & {
17
+ export type RuntimeScenarioOwner = ResourceScenarioOwner & {
18
+ readonly value: string;
19
+ };
20
+ type RuntimeScenarioMethod<Name extends string, Dimensions extends RuntimeDimensions, Resources extends RuntimeResourceMap, Scenarios extends ResourceScenarioSlots> = <const Bindings extends Readonly<Record<string, string>>>(bindings: Bindings & ScenarioBindingInput<Scenarios, Bindings>) => RuntimeDefinition<Name, Dimensions, Resources, Scenarios>;
21
+ export type RuntimeDefinition<Name extends string = string, Dimensions extends RuntimeDimensions = RuntimeDimensions, Resources extends RuntimeResourceMap = RuntimeResourceMap, Scenarios extends ResourceScenarioSlots = ResourceScenarioSlots> = RuntimeDefinitionInput<Name, Dimensions, Resources> & {
16
22
  readonly id: RuntimeId<Name, Dimensions>;
17
23
  readonly kind: 'runtime';
24
+ readonly scenario: RuntimeScenarioMethod<Name, Dimensions, Resources, Scenarios>;
25
+ readonly scenarios: Scenarios;
18
26
  readonly [runtimeDefinitionBrand]: true;
19
27
  };
20
- export declare function defineRuntime<const Name extends string, const Dimensions extends RuntimeDimensions, const Resources extends RuntimeResourceMap>(definition: RuntimeDefinitionInput<Name, Dimensions, Resources>): RuntimeDefinition<Name, Dimensions, Resources>;
28
+ export declare function defineRuntime<const Name extends string, const Dimensions extends RuntimeDimensions, const Resources extends RuntimeResourceMap>(definition: RuntimeDefinitionInput<Name, Dimensions, Resources>): RuntimeDefinition<Name, Dimensions, Resources, ResourceMapScenarioSlots<Resources>>;
29
+ export declare function resolvedRuntimeScenarioOwners(runtime: RuntimeDefinition): ReadonlyMap<string, RuntimeScenarioOwner>;
21
30
  export declare function isDefinedRuntime(runtime: unknown): runtime is RuntimeDefinition;
22
31
  export {};
23
32
  //# sourceMappingURL=runtime-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-definition.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE/F,QAAA,MAAM,sBAAsB,EAAE,OAAO,MAA6C,CAAC;AAEnF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjE,MAAM,MAAM,SAAS,CACjB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,UAAU,SAAS,iBAAiB,GAAG,iBAAiB,IACxD;IACA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAC9B,IAAI,SAAS,MAAM,EACnB,UAAU,SAAS,iBAAiB,EACpC,SAAS,SAAS,kBAAkB,IACpC;IACA,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CACzB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,UAAU,SAAS,iBAAiB,GAAG,iBAAiB,EACxD,SAAS,SAAS,kBAAkB,GAAG,kBAAkB,IACzD,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG;IACtD,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;CAC3C,CAAC;AAEF,wBAAgB,aAAa,CACzB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,UAAU,SAAS,iBAAiB,EAC1C,KAAK,CAAC,SAAS,SAAS,kBAAkB,EAE1C,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,GAChE,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAWhD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,iBAAiB,CAI/E"}
1
+ {"version":3,"file":"runtime-definition.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-definition.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,44 @@
1
+ import { resourceScenarioOwners } from "./resource-scenario-binding.js";
1
2
  const runtimeDefinitionBrand = Symbol('overkill.runtimeDefinition');
2
- export function defineRuntime(definition) {
3
- return Object.freeze({
3
+ const runtimeScenarioOwners = new WeakMap();
4
+ function scenarioSlots(owners) {
5
+ return Object.freeze(Object.fromEntries(Array.from(owners, function scenarioEntry([name, owner]) {
6
+ return [name, owner.slot];
7
+ })));
8
+ }
9
+ function resolveScenarioOwners(owners, current, overrides) {
10
+ for (const [name, value] of Object.entries(overrides)) {
11
+ const owner = owners.get(name);
12
+ if (owner === undefined) {
13
+ throw new TypeError(`Runtime scenario slot "${name}" is not declared.`);
14
+ }
15
+ if (!owner.slot.values.includes(value)) {
16
+ throw new TypeError(`Runtime scenario slot "${name}" does not declare value "${value}".`);
17
+ }
18
+ }
19
+ return new Map(Array.from(owners, function resolvedOwner([name, owner]) {
20
+ return [name, {
21
+ ...owner,
22
+ value: overrides[name] ?? current[name] ?? owner.slot.default
23
+ }];
24
+ }));
25
+ }
26
+ function ownerBindings(owners) {
27
+ return Object.freeze(Object.fromEntries(Array.from(owners, function bindingEntry([name, owner]) {
28
+ return [name, owner.value];
29
+ })));
30
+ }
31
+ function createRuntimeDefinition(definition, bindings) {
32
+ const owners = resourceScenarioOwners(definition.resources);
33
+ const slots = scenarioSlots(owners);
34
+ const resolvedOwners = resolveScenarioOwners(owners, {}, bindings);
35
+ const scenario = function bindRuntimeScenario(overrides) {
36
+ return createRuntimeDefinition(definition, {
37
+ ...ownerBindings(resolvedOwners),
38
+ ...overrides
39
+ });
40
+ };
41
+ const descriptor = Object.freeze({
4
42
  ...definition,
5
43
  id: Object.freeze({
6
44
  name: definition.name,
@@ -8,8 +46,18 @@ export function defineRuntime(definition) {
8
46
  variantId: null
9
47
  }),
10
48
  kind: 'runtime',
49
+ scenario,
50
+ scenarios: slots,
11
51
  [runtimeDefinitionBrand]: true
12
52
  });
53
+ runtimeScenarioOwners.set(descriptor, resolvedOwners);
54
+ return descriptor;
55
+ }
56
+ export function defineRuntime(definition) {
57
+ return createRuntimeDefinition(definition, {});
58
+ }
59
+ export function resolvedRuntimeScenarioOwners(runtime) {
60
+ return runtimeScenarioOwners.get(runtime) ?? new Map();
13
61
  }
14
62
  export function isDefinedRuntime(runtime) {
15
63
  return typeof runtime === 'object' &&
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-definition.js","sourceRoot":"","sources":["../../../../source/resources/runtime-definition.ts"],"names":[],"mappings":"AAEA,MAAM,sBAAsB,GAAkB,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAkCnF,MAAM,UAAU,aAAa,CAKzB,UAA+D;IAE/D,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,UAAU;QACb,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,SAAS,EAAE,IAAI;SAClB,CAAC;QACF,IAAI,EAAE,SAAS;QACf,CAAC,sBAAsB,CAAC,EAAE,IAAa;KAC1C,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC7C,OAAO,OAAO,OAAO,KAAK,QAAQ;QAC9B,OAAO,KAAK,IAAI;QAChB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,CAAC,KAAK,IAAI,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"runtime-definition.js","sourceRoot":"","sources":["../../../../source/resources/runtime-definition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-lifecycle.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEzB,MAAM,gBAAgB,CAAC;AAoBxB,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,iBAAiB,IAAI;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,iBAAiB,IAAI,eAAe,GAAG;IAC9E,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnF,CAAC;AAqGF,wBAAsB,YAAY,CAAC,OAAO,SAAS,iBAAiB,EAChE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CASlC"}
1
+ {"version":3,"file":"runtime-lifecycle.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEzB,MAAM,gBAAgB,CAAC;AA0BxB,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,iBAAiB,IAAI;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,iBAAiB,IAAI,eAAe,GAAG;IAC9E,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnF,CAAC;AAgKF,wBAAsB,YAAY,CAAC,OAAO,SAAS,iBAAiB,EAChE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAUlC"}
@@ -1,4 +1,7 @@
1
1
  import { isDefinedRuntime } from "./resources.js";
2
+ import { resolvedRuntimeScenarioOwners } from "./runtime-definition.js";
3
+ import { bindResourceScenarios } from "./resource-scenario-binding.js";
4
+ import { defaultScenarioBindings } from "./resource-scenario.js";
2
5
  import { resourceLifecycleError } from "./resource-lifecycle-error.js";
3
6
  import { acquireResourceGraph, disposeResources, runtimeAsyncDisposeSymbol } from "./resource-session.js";
4
7
  const runtimeResourceAcquisitionContext = {
@@ -38,11 +41,44 @@ function internalDisposalSignal() {
38
41
  const controller = new AbortController();
39
42
  return controller.signal;
40
43
  }
44
+ function scenarioBindingsByResource(runtime) {
45
+ const bindingsByResource = new Map();
46
+ for (const [name, owner] of resolvedRuntimeScenarioOwners(runtime)) {
47
+ const bindings = bindingsByResource.get(owner.resource) ?? {};
48
+ bindings[name] = owner.value;
49
+ bindingsByResource.set(owner.resource, bindings);
50
+ }
51
+ return bindingsByResource;
52
+ }
53
+ function boundRuntimeResources(runtime) {
54
+ const scenarioOwners = resolvedRuntimeScenarioOwners(runtime);
55
+ if (scenarioOwners.size === 0) {
56
+ return runtime.resources;
57
+ }
58
+ const bindingsByResource = scenarioBindingsByResource(runtime);
59
+ const boundResources = new Map();
60
+ function bindResource(resource) {
61
+ const existing = boundResources.get(resource);
62
+ if (existing !== undefined) {
63
+ return existing;
64
+ }
65
+ const dependencies = Object.freeze(Object.fromEntries(Object.entries(resource.dependencies).map(function bindDependency([key, dependency]) {
66
+ return [key, bindResource(dependency)];
67
+ })));
68
+ const bindings = Object.freeze(bindingsByResource.get(resource) ?? defaultScenarioBindings(resource.scenarios));
69
+ const bound = bindResourceScenarios(Object.freeze({ ...resource, dependencies }), bindings);
70
+ boundResources.set(resource, bound);
71
+ return bound;
72
+ }
73
+ return Object.freeze(Object.fromEntries(Object.entries(runtime.resources).map(function bindTopLevelResource([key, resource]) {
74
+ return [key, bindResource(resource)];
75
+ })));
76
+ }
41
77
  function isRuntimeSession(session) {
42
78
  return Reflect.has(session, runtimeAsyncDisposeSymbol());
43
79
  }
44
80
  async function disposeRuntimeResources(acquisition, signal) {
45
- const failures = await disposeResources(acquisition.order, acquisition.handles, signal);
81
+ const failures = await disposeResources(acquisition.order, acquisition.ownerHandles, acquisition.resourceHandles, signal);
46
82
  if (failures.length > 0) {
47
83
  throw resourceLifecycleError('Runtime resource disposal failed.', failures, failures[0]?.cause);
48
84
  }
@@ -73,8 +109,9 @@ function runtimeSession(context, acquisition) {
73
109
  }
74
110
  export async function startRuntime(request) {
75
111
  assertRuntimeDefinition(request.runtime);
112
+ const resources = boundRuntimeResources(request.runtime);
76
113
  const acquisition = await acquireResourceGraph({
77
- resources: request.runtime.resources,
114
+ resources,
78
115
  signal: request.signal
79
116
  }, runtimeResourceAcquisitionContext);
80
117
  const context = runtimeContext(request.runtime.resources, acquisition.context);
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-lifecycle.js","sourceRoot":"","sources":["../../../../source/resources/runtime-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-lifecycle.js","sourceRoot":"","sources":["../../../../source/resources/runtime-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type RuntimeDefinition, type RuntimeDimensions } from './runtime-definition.ts';
2
2
  import type { RuntimeResourceMap } from './resource-definition-shape.ts';
3
+ import type { EmptyResourceScenarioSlots, ResourceScenarioSlots, ScenarioBindingInput } from './resource-scenario.ts';
3
4
  declare const runtimeMatrixDefinitionBrand: unique symbol;
4
5
  declare const composedRuntimeGraphBrand: unique symbol;
5
6
  type RuntimeMatrixVariantValue<Shared, Dimensions extends RuntimeDimensions, Resources extends RuntimeResourceMap> = RuntimeMatrixVariantValueOptions<Shared, Dimensions, Resources>[keyof RuntimeMatrixVariantValueOptions<Shared, Dimensions, Resources>];
@@ -14,18 +15,29 @@ export type RuntimeMatrixVariant<VariantId extends string = string, Runtime exte
14
15
  readonly runtime: Runtime;
15
16
  };
16
17
  type RuntimeMatrixVariantMap = Readonly<Record<string, RuntimeMatrixVariant>>;
18
+ type UnionToIntersection<Value> = (Value extends unknown ? (value: Value) => void : never) extends (value: infer Intersection) => void ? Intersection : never;
19
+ type RuntimeDefinitionScenarios<Runtime> = Runtime extends RuntimeDefinition<string, RuntimeDimensions, RuntimeResourceMap, infer Scenarios> ? Scenarios : EmptyResourceScenarioSlots;
20
+ type RuntimeVariantsScenarios<Variants extends RuntimeMatrixVariantMap> = UnionToIntersection<RuntimeDefinitionScenarios<Variants[keyof Variants]['runtime']>> extends infer Scenarios extends ResourceScenarioSlots ? Scenarios : EmptyResourceScenarioSlots;
21
+ type CombinedRuntimeScenarios<Runtime extends RuntimeGraph> = UnionToIntersection<RuntimeGraphScenarioSlots<Runtime>> extends infer Scenarios extends ResourceScenarioSlots ? Scenarios : EmptyResourceScenarioSlots;
22
+ type RuntimeLeafScenarioSlots<Graph extends RuntimeGraph> = Graph extends RuntimeMatrixDefinition<string, infer Variants> ? RuntimeVariantsScenarios<Variants> : RuntimeDefinitionScenarios<Graph>;
23
+ type RuntimeGraphScenarioSlots<Graph extends RuntimeGraph> = Graph extends ComposedRuntimeGraph<infer Runtimes> ? CombinedRuntimeScenarios<Runtimes[number]> : RuntimeLeafScenarioSlots<Graph>;
24
+ type RuntimeGraphScenarioMethod<Scenarios extends ResourceScenarioSlots, Result> = <const Bindings extends Readonly<Record<string, string>>>(bindings: Bindings & ScenarioBindingInput<Scenarios, Bindings>) => Result;
17
25
  type ResolvedRuntimeMatrixVariants<Variants extends Readonly<Record<string, RuntimeMatrixVariantValue<Shared, RuntimeDimensions, RuntimeResourceMap>>>, Shared> = {
18
26
  readonly [VariantId in keyof Variants]: RuntimeMatrixVariant<VariantId & string, ResolvedRuntimeVariant<Variants[VariantId], Shared>>;
19
27
  };
20
28
  export type RuntimeMatrixDefinition<Name extends string = string, Variants extends RuntimeMatrixVariantMap = RuntimeMatrixVariantMap> = {
21
29
  readonly kind: 'runtime-matrix';
22
30
  readonly name: Name;
31
+ readonly scenario: RuntimeGraphScenarioMethod<RuntimeVariantsScenarios<Variants>, RuntimeMatrixDefinition<Name, Variants>>;
32
+ readonly scenarios: RuntimeVariantsScenarios<Variants>;
23
33
  readonly variants: Variants;
24
34
  readonly [runtimeMatrixDefinitionBrand]: true;
25
35
  };
26
36
  export type RuntimeGraphLeaf = RuntimeDefinition | RuntimeMatrixDefinition;
27
37
  export type ComposedRuntimeGraph<Runtimes extends readonly RuntimeGraphLeaf[] = readonly RuntimeGraphLeaf[]> = {
28
38
  readonly kind: 'composed-runtimes';
39
+ readonly scenario: RuntimeGraphScenarioMethod<CombinedRuntimeScenarios<Runtimes[number]>, ComposedRuntimeGraph<Runtimes>>;
40
+ readonly scenarios: CombinedRuntimeScenarios<Runtimes[number]>;
29
41
  readonly runtimes: Runtimes;
30
42
  readonly [composedRuntimeGraphBrand]: true;
31
43
  };
@@ -43,11 +55,18 @@ export type SharedRuntimeMatrixDefinitionInput<Name extends string, Shared, Vari
43
55
  readonly shared: Shared;
44
56
  readonly variants: Variants;
45
57
  };
46
- export declare function defineRuntimeMatrix<const Name extends string, const Dimensions extends RuntimeDimensions, const Resources extends RuntimeResourceMap, const Variants extends Readonly<Record<string, RuntimeDefinition<string, Dimensions, Resources>>>>(definition: RuntimeMatrixDefinitionInput<Name, Variants>): RuntimeMatrixDefinition<Name, ResolvedRuntimeMatrixVariants<Variants, never>>;
47
- export declare function defineRuntimeMatrix<const Name extends string, Shared, const Dimensions extends RuntimeDimensions, const Resources extends RuntimeResourceMap, const Variants extends Readonly<Record<string, RuntimeMatrixVariantValue<Shared, Dimensions, Resources>>>>(definition: SharedRuntimeMatrixDefinitionInput<Name, Shared, Variants>): RuntimeMatrixDefinition<Name, ResolvedRuntimeMatrixVariants<Variants, Shared>>;
48
- export declare function isDefinedRuntimeMatrix(runtime: unknown): runtime is RuntimeMatrixDefinition;
49
- export declare function runtimeGraphLeaves(runtime: RuntimeGraph): readonly RuntimeGraphLeaf[];
50
- export declare function composeRuntimes<const Runtimes extends readonly [RuntimeGraph, ...RuntimeGraph[]]>(...runtimes: Runtimes): ComposedRuntimeGraph<FlattenRuntimeGraphs<Runtimes>>;
51
- export declare function isComposedRuntimeGraph(runtime: unknown): runtime is ComposedRuntimeGraph;
58
+ declare function defineRuntimeMatrix<const Name extends string, const Dimensions extends RuntimeDimensions, const Resources extends RuntimeResourceMap, const Variants extends Readonly<Record<string, RuntimeDefinition<string, Dimensions, Resources>>>>(definition: RuntimeMatrixDefinitionInput<Name, Variants>): RuntimeMatrixDefinition<Name, ResolvedRuntimeMatrixVariants<Variants, never>>;
59
+ declare function defineRuntimeMatrix<const Name extends string, Shared, const Dimensions extends RuntimeDimensions, const Resources extends RuntimeResourceMap, const Variants extends Readonly<Record<string, RuntimeMatrixVariantValue<Shared, Dimensions, Resources>>>>(definition: SharedRuntimeMatrixDefinitionInput<Name, Shared, Variants>): RuntimeMatrixDefinition<Name, ResolvedRuntimeMatrixVariants<Variants, Shared>>;
60
+ declare function isDefinedRuntimeMatrix(runtime: unknown): runtime is RuntimeMatrixDefinition;
61
+ declare function runtimeGraphLeaves(runtime: RuntimeGraph): readonly RuntimeGraphLeaf[];
62
+ declare function composeRuntimes<const Runtimes extends readonly [RuntimeGraph, ...RuntimeGraph[]]>(...runtimes: Runtimes): ComposedRuntimeGraph<FlattenRuntimeGraphs<Runtimes>>;
63
+ declare function isComposedRuntimeGraph(runtime: unknown): runtime is ComposedRuntimeGraph;
64
+ export declare const runtimeMatrixDefinitionApi: Readonly<{
65
+ composeRuntimes: typeof composeRuntimes;
66
+ defineRuntimeMatrix: typeof defineRuntimeMatrix;
67
+ isComposedRuntimeGraph: typeof isComposedRuntimeGraph;
68
+ isDefinedRuntimeMatrix: typeof isDefinedRuntimeMatrix;
69
+ runtimeGraphLeaves: typeof runtimeGraphLeaves;
70
+ }>;
52
71
  export {};
53
72
  //# sourceMappingURL=runtime-matrix-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-matrix-definition.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-matrix-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-matrix-definition.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-matrix-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EACR,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,QAAA,MAAM,4BAA4B,EAAE,OAAO,MAAmD,CAAC;AAC/F,QAAA,MAAM,yBAAyB,EAAE,OAAO,MAAgD,CAAC;AAEzF,KAAK,yBAAyB,CAC1B,MAAM,EACN,UAAU,SAAS,iBAAiB,EACpC,SAAS,SAAS,kBAAkB,IACpC,gCAAgC,CAChC,MAAM,EACN,UAAU,EACV,SAAS,CACZ,CAAC,MAAM,gCAAgC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzE,KAAK,gCAAgC,CACjC,MAAM,EACN,UAAU,SAAS,iBAAiB,EACpC,SAAS,SAAS,kBAAkB,IACpC;IACA,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACvF,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;CACtE,CAAC;AAEF,KAAK,2BAA2B,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AACxH,KAAK,sBAAsB,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAClD,2BAA2B,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,EACtD,iBAAiB,CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC5B,SAAS,SAAS,MAAM,GAAG,MAAM,EACjC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,IACrD;IACA,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE9E,KAAK,mBAAmB,CAAC,KAAK,IAAI,CAC9B,KAAK,SAAS,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CACzD,SAAS,CAAC,KAAK,EAAE,MAAM,YAAY,KAAK,IAAI,GAAG,YAAY,GAAG,KAAK,CAAC;AAErE,KAAK,0BAA0B,CAAC,OAAO,IAAI,OAAO,SAAS,iBAAiB,CACxE,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,SAAS,CAClB,GAAG,SAAS,GACP,0BAA0B,CAAC;AAEjC,KAAK,wBAAwB,CAAC,QAAQ,SAAS,uBAAuB,IAAI,mBAAmB,CACzF,0BAA0B,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAClE,SAAS,MAAM,SAAS,SAAS,qBAAqB,GAAG,SAAS,GAAG,0BAA0B,CAAC;AAEjG,KAAK,wBAAwB,CAAC,OAAO,SAAS,YAAY,IAAI,mBAAmB,CAC7E,yBAAyB,CAAC,OAAO,CAAC,CACrC,SAAS,MAAM,SAAS,SAAS,qBAAqB,GAAG,SAAS,GAAG,0BAA0B,CAAC;AAEjG,KAAK,wBAAwB,CAAC,KAAK,SAAS,YAAY,IAAI,KAAK,SAAS,uBAAuB,CAC7F,MAAM,EACN,MAAM,QAAQ,CACjB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,GAChC,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAExC,KAAK,yBAAyB,CAAC,KAAK,SAAS,YAAY,IAAI,KAAK,SAAS,oBAAoB,CAAC,MAAM,QAAQ,CAAC,GACzG,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAC1C,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEtC,KAAK,0BAA0B,CAAC,SAAS,SAAS,qBAAqB,EAAE,MAAM,IAAI,CAC/E,KAAK,CAAC,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzD,QAAQ,EAAE,QAAQ,GAAG,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,MAAM,CAAC;AAE5E,KAAK,6BAA6B,CAC9B,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACnH,MAAM,IACN;IACA,QAAQ,EAAE,SAAS,IAAI,MAAM,QAAQ,GAAG,oBAAoB,CACxD,SAAS,GAAG,MAAM,EAClB,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CACtD;CACJ,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAC/B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,QAAQ,SAAS,uBAAuB,GAAG,uBAAuB,IAClE;IACA,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CACzC,wBAAwB,CAAC,QAAQ,CAAC,EAClC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,CAAC,4BAA4B,CAAC,EAAE,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAE3E,MAAM,MAAM,oBAAoB,CAC5B,QAAQ,SAAS,SAAS,gBAAgB,EAAE,GAAG,SAAS,gBAAgB,EAAE,IAC1E;IACA,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CACzC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC1C,oBAAoB,CAAC,QAAQ,CAAC,CACjC,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;AAEnE,KAAK,mBAAmB,CAAC,KAAK,SAAS,YAAY,IAAI,KAAK,SAAS,oBAAoB,CAAC,MAAM,QAAQ,CAAC,GACnG,QAAQ,CAAC,MAAM,CAAC,GAChB,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AACvC,KAAK,oBAAoB,CAAC,MAAM,SAAS,SAAS,YAAY,EAAE,IAAI;IAChE,QAAQ,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,4BAA4B,CACpC,IAAI,SAAS,MAAM,EACnB,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAClH;IACA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kCAAkC,CAC1C,IAAI,SAAS,MAAM,EACnB,MAAM,EACN,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,IACnH;IACA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B,CAAC;AAmMF,iBAAS,mBAAmB,CACxB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,UAAU,SAAS,iBAAiB,EAC1C,KAAK,CAAC,SAAS,SAAS,kBAAkB,EAC1C,KAAK,CAAC,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAEjG,UAAU,EAAE,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,GACzD,uBAAuB,CAAC,IAAI,EAAE,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACjF,iBAAS,mBAAmB,CACxB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,MAAM,EACN,KAAK,CAAC,UAAU,SAAS,iBAAiB,EAC1C,KAAK,CAAC,SAAS,SAAS,kBAAkB,EAC1C,KAAK,CAAC,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAEzG,UAAU,EAAE,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GACvE,uBAAuB,CAAC,IAAI,EAAE,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AA0ClF,iBAAS,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,uBAAuB,CAIpF;AAED,iBAAS,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,gBAAgB,EAAE,CAE9E;AA0CD,iBAAS,eAAe,CACpB,KAAK,CAAC,QAAQ,SAAS,SAAS,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,EAEjE,GAAG,QAAQ,EAAE,QAAQ,GACtB,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;AA+CxD,iBAAS,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,oBAAoB,CAIjF;AAED,eAAO,MAAM,0BAA0B;;;;;;EAMrC,CAAC"}
@@ -23,6 +23,11 @@ function dimensionIdentity(dimensions) {
23
23
  return [key, dimensions[key]];
24
24
  }));
25
25
  }
26
+ function scenarioShape(scenarios) {
27
+ return JSON.stringify(Object.entries(scenarios).toSorted(function compareScenarioEntries(left, right) {
28
+ return left[0].localeCompare(right[0]);
29
+ }));
30
+ }
26
31
  function resolveMatrixRuntime(variant, shared) {
27
32
  return typeof variant === 'function' ? variant(shared) : variant;
28
33
  }
@@ -38,6 +43,9 @@ function assertSameShape(matrixName, variantId, runtime, state) {
38
43
  if (!sameStringItems(sortedKeys(runtime.resources), state.resourceKeys)) {
39
44
  throw new TypeError(`Runtime matrix "${matrixName}" variant "${variantId}" has different resource keys.`);
40
45
  }
46
+ if (scenarioShape(runtime.scenarios) !== state.scenarioShape) {
47
+ throw new TypeError(`Runtime matrix "${matrixName}" variant "${variantId}" has different scenario slots.`);
48
+ }
41
49
  }
42
50
  function nextVariantState(matrixName, variantId, runtime, state) {
43
51
  const key = dimensionIdentity(runtime.dimensions);
@@ -62,7 +70,8 @@ function initialVariantState(runtime) {
62
70
  return {
63
71
  dimensionIdentities: new Set(),
64
72
  dimensionKeys: sortedKeys(runtime.dimensions),
65
- resourceKeys: sortedKeys(runtime.resources)
73
+ resourceKeys: sortedKeys(runtime.resources),
74
+ scenarioShape: scenarioShape(runtime.scenarios)
66
75
  };
67
76
  }
68
77
  function runtimeMatrixEntries(definition) {
@@ -107,21 +116,41 @@ function runtimeMatrixVariants(definition) {
107
116
  });
108
117
  return variantRecord(variants);
109
118
  }
110
- export function defineRuntimeMatrix(definition) {
119
+ function defineRuntimeMatrix(definition) {
111
120
  assertDescriptorName('Runtime matrix', definition.name);
121
+ const variants = runtimeMatrixVariants(definition);
122
+ const firstVariant = Object.values(variants)[0];
123
+ if (firstVariant === undefined) {
124
+ throw new TypeError(`Runtime matrix "${definition.name}" requires at least one variant.`);
125
+ }
126
+ const scenario = function bindRuntimeMatrixScenario(bindings) {
127
+ const boundVariants = Object.fromEntries(Object.entries(variants).map(function bindVariant([id, variant]) {
128
+ return [id, { id: variant.id, runtime: variant.runtime.scenario(bindings) }];
129
+ }));
130
+ return Object.freeze({
131
+ kind: 'runtime-matrix',
132
+ name: definition.name,
133
+ scenario,
134
+ scenarios: firstVariant.runtime.scenarios,
135
+ variants: Object.freeze(boundVariants),
136
+ [runtimeMatrixDefinitionBrand]: true
137
+ });
138
+ };
112
139
  return Object.freeze({
113
140
  kind: 'runtime-matrix',
114
141
  name: definition.name,
115
- variants: runtimeMatrixVariants(definition),
142
+ scenario,
143
+ scenarios: firstVariant.runtime.scenarios,
144
+ variants,
116
145
  [runtimeMatrixDefinitionBrand]: true
117
146
  });
118
147
  }
119
- export function isDefinedRuntimeMatrix(runtime) {
148
+ function isDefinedRuntimeMatrix(runtime) {
120
149
  return typeof runtime === 'object' &&
121
150
  runtime !== null &&
122
151
  Reflect.get(runtime, runtimeMatrixDefinitionBrand) === true;
123
152
  }
124
- export function runtimeGraphLeaves(runtime) {
153
+ function runtimeGraphLeaves(runtime) {
125
154
  return runtime.kind === 'composed-runtimes' ? runtime.runtimes : [runtime];
126
155
  }
127
156
  function duplicateRuntimeName(name) {
@@ -136,24 +165,65 @@ function assertUniqueRuntimeNames(runtimes) {
136
165
  names.add(runtime.name);
137
166
  }
138
167
  }
168
+ function assertUniqueScenarioSlots(runtimes) {
169
+ const slots = new Set();
170
+ for (const runtime of runtimes) {
171
+ for (const slot of Object.keys(runtime.scenarios)) {
172
+ if (slots.has(slot)) {
173
+ throw new TypeError(`Scenario slot "${slot}" is attached multiple times.`);
174
+ }
175
+ slots.add(slot);
176
+ }
177
+ }
178
+ }
139
179
  function flattenRuntimeGraphs(runtimes) {
140
180
  return runtimes.flatMap(runtimeGraphLeaves);
141
181
  }
142
- export function composeRuntimes(...runtimes) {
182
+ function combinedScenarioSlots(runtimes) {
183
+ return Object.freeze(Object.fromEntries(runtimes.flatMap(function runtimeScenarioEntries(runtime) {
184
+ return Object.entries(runtime.scenarios);
185
+ })));
186
+ }
187
+ function composeRuntimes(...runtimes) {
143
188
  if (runtimes.length === 0) {
144
189
  throw new TypeError('composeRuntimes() requires at least one runtime graph.');
145
190
  }
146
191
  const flattened = flattenRuntimeGraphs(runtimes);
147
192
  assertUniqueRuntimeNames(flattened);
148
- return Object.freeze({
193
+ assertUniqueScenarioSlots(flattened);
194
+ const scenarios = combinedScenarioSlots(flattened);
195
+ const scenario = function bindComposedRuntimeScenario(bindings) {
196
+ const boundRuntimes = flattened.map(function bindChildRuntime(runtime) {
197
+ const childBindings = Object.fromEntries(Object.entries(bindings).filter(function childBinding([name]) {
198
+ return Object.hasOwn(runtime.scenarios, name);
199
+ }));
200
+ return runtime.scenario(childBindings);
201
+ });
202
+ const [firstBoundRuntime, ...remainingBoundRuntimes] = boundRuntimes;
203
+ if (firstBoundRuntime === undefined) {
204
+ throw new TypeError('Composed runtime graph requires at least one runtime.');
205
+ }
206
+ return composeRuntimes(firstBoundRuntime, ...remainingBoundRuntimes);
207
+ };
208
+ const descriptor = Object.freeze({
149
209
  kind: 'composed-runtimes',
210
+ scenario,
211
+ scenarios,
150
212
  runtimes: Object.freeze(Array.from(flattened)),
151
213
  [composedRuntimeGraphBrand]: true
152
214
  });
215
+ return descriptor;
153
216
  }
154
- export function isComposedRuntimeGraph(runtime) {
217
+ function isComposedRuntimeGraph(runtime) {
155
218
  return typeof runtime === 'object' &&
156
219
  runtime !== null &&
157
220
  Reflect.get(runtime, composedRuntimeGraphBrand) === true;
158
221
  }
222
+ export const runtimeMatrixDefinitionApi = Object.freeze({
223
+ composeRuntimes,
224
+ defineRuntimeMatrix,
225
+ isComposedRuntimeGraph,
226
+ isDefinedRuntimeMatrix,
227
+ runtimeGraphLeaves
228
+ });
159
229
  //# sourceMappingURL=runtime-matrix-definition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-matrix-definition.js","sourceRoot":"","sources":["../../../../source/resources/runtime-matrix-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-matrix-definition.js","sourceRoot":"","sources":["../../../../source/resources/runtime-matrix-definition.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { SimulatedHttpServerDefinition, SimulationScenarioCatalog } from '@overkill-dev/simulation';
2
- import type { EmptyResourceDependencies, ResourceDefinition } from './resources.ts';
2
+ import { type EmptyResourceDependencies, type ResourceDefinition } from './resources.ts';
3
+ import type { ResourceScenarioSlot } from './resource-scenario.ts';
3
4
  import { type LocalHttpServiceHandle } from './local-http-service-resource.ts';
4
5
  import type { LocalServiceAddressRequest } from './local-service-resource.ts';
5
6
  export type SimulatedHttpServerResourceOptions<Name extends string, Scenarios extends SimulationScenarioCatalog> = {
@@ -16,6 +17,6 @@ export type SimulatedHttpServerResourceHandle<Simulation extends {
16
17
  export type SimulatedHttpServerResource<Simulation extends {
17
18
  readonly name: string;
18
19
  readonly scenarios: SimulationScenarioCatalog;
19
- }> = ResourceDefinition<Simulation['name'], SimulatedHttpServerResourceHandle<Simulation>, EmptyResourceDependencies>;
20
+ }> = ResourceDefinition<Simulation['name'], SimulatedHttpServerResourceHandle<Simulation>, EmptyResourceDependencies, SimulatedHttpServerResourceHandle<Simulation>, Readonly<Record<Simulation['name'], ResourceScenarioSlot<string & keyof Simulation['scenarios'], 'request-routed'>>>>;
20
21
  export declare function createSimulatedHttpServerResource<const Name extends string, const Scenarios extends SimulationScenarioCatalog>(options: SimulatedHttpServerResourceOptions<Name, Scenarios>): SimulatedHttpServerResource<SimulatedHttpServerDefinition<Name, Scenarios>>;
21
22
  //# sourceMappingURL=simulated-http-server-resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"simulated-http-server-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/simulated-http-server-resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,6BAA6B,EAC7B,yBAAyB,EAC5B,MAAM,0BAA6B,CAAC;AACrC,OAAO,KAAK,EACR,yBAAyB,EACzB,kBAAkB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGH,KAAK,sBAAsB,EAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACR,0BAA0B,EAC7B,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,kCAAkC,CAC1C,IAAI,SAAS,MAAM,EACnB,SAAS,SAAS,yBAAyB,IAC3C;IACA,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,iCAAiC,CACzC,UAAU,SAAS;IACf,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CACjD,IACD;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpG,CAAC;AAEF,MAAM,MAAM,2BAA2B,CACnC,UAAU,SAAS;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CACjD,IACD,kBAAkB,CAClB,UAAU,CAAC,MAAM,CAAC,EAClB,iCAAiC,CAAC,UAAU,CAAC,EAC7C,yBAAyB,CAC5B,CAAC;AA4BF,wBAAgB,iCAAiC,CAC7C,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,SAAS,SAAS,yBAAyB,EAEjD,OAAO,EAAE,kCAAkC,CAAC,IAAI,EAAE,SAAS,CAAC,GAC7D,2BAA2B,CAAC,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAyB7E"}
1
+ {"version":3,"file":"simulated-http-server-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/simulated-http-server-resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,6BAA6B,EAC7B,yBAAyB,EAC5B,MAAM,0BAA6B,CAAC;AACrC,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAA6B,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAGH,KAAK,sBAAsB,EAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACR,0BAA0B,EAC7B,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,kCAAkC,CAC1C,IAAI,SAAS,MAAM,EACnB,SAAS,SAAS,yBAAyB,IAC3C;IACA,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,iCAAiC,CACzC,UAAU,SAAS;IACf,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CACjD,IACD;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpG,CAAC;AAEF,MAAM,MAAM,2BAA2B,CACnC,UAAU,SAAS;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CACjD,IACD,kBAAkB,CAClB,UAAU,CAAC,MAAM,CAAC,EAClB,iCAAiC,CAAC,UAAU,CAAC,EAC7C,yBAAyB,EACzB,iCAAiC,CAAC,UAAU,CAAC,EAC7C,QAAQ,CACJ,MAAM,CACF,UAAU,CAAC,MAAM,CAAC,EAClB,oBAAoB,CAAC,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CACjF,CACJ,CACJ,CAAC;AAmEF,wBAAgB,iCAAiC,CAC7C,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,SAAS,SAAS,yBAAyB,EAEjD,OAAO,EAAE,kCAAkC,CAAC,IAAI,EAAE,SAAS,CAAC,GAC7D,2BAA2B,CAAC,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CA0E7E"}