@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.
- package/package.json +10 -2
- package/packages/resources/resources.entry-point.d.ts +4 -2
- package/packages/resources/resources.entry-point.d.ts.map +1 -1
- package/packages/resources/resources.entry-point.js +1 -1
- package/packages/resources/resources.entry-point.js.map +1 -1
- package/readme.md +21 -4
- package/resources/resource-definition-brand.d.ts +2 -0
- package/resources/resource-definition-brand.d.ts.map +1 -0
- package/resources/resource-definition-brand.js +2 -0
- package/resources/resource-definition-brand.js.map +1 -0
- package/resources/resource-definition-shape.d.ts +8 -1
- package/resources/resource-definition-shape.d.ts.map +1 -1
- package/resources/resource-definition-types.d.ts +104 -0
- package/resources/resource-definition-types.d.ts.map +1 -0
- package/resources/resource-definition.js +52 -0
- package/resources/resource-definition.js.map +1 -0
- package/resources/resource-graph.d.ts +3 -3
- package/resources/resource-graph.d.ts.map +1 -1
- package/resources/resource-graph.js.map +1 -1
- package/resources/resource-scenario-binding.d.ts +37 -0
- package/resources/resource-scenario-binding.d.ts.map +1 -0
- package/resources/resource-scenario-binding.js +99 -0
- package/resources/resource-scenario-binding.js.map +1 -0
- package/resources/resource-scenario.d.ts +31 -0
- package/resources/resource-scenario.d.ts.map +1 -0
- package/resources/resource-scenario.js +68 -0
- package/resources/resource-scenario.js.map +1 -0
- package/resources/resource-session.d.ts +3 -2
- package/resources/resource-session.d.ts.map +1 -1
- package/resources/resource-session.js +24 -17
- package/resources/resource-session.js.map +1 -1
- package/resources/resources.d.ts +46 -76
- package/resources/resources.d.ts.map +1 -1
- package/resources/resources.js +19 -23
- package/resources/resources.js.map +1 -1
- package/resources/runtime-definition.d.ts +11 -2
- package/resources/runtime-definition.d.ts.map +1 -1
- package/resources/runtime-definition.js +50 -2
- package/resources/runtime-definition.js.map +1 -1
- package/resources/runtime-lifecycle.d.ts.map +1 -1
- package/resources/runtime-lifecycle.js +39 -2
- package/resources/runtime-lifecycle.js.map +1 -1
- package/resources/runtime-matrix-definition.d.ts +25 -6
- package/resources/runtime-matrix-definition.d.ts.map +1 -1
- package/resources/runtime-matrix-definition.js +78 -8
- package/resources/runtime-matrix-definition.js.map +1 -1
- package/resources/simulated-http-server-resource.d.ts +3 -2
- package/resources/simulated-http-server-resource.d.ts.map +1 -1
- package/resources/simulated-http-server-resource.js +66 -6
- package/resources/simulated-http-server-resource.js.map +1 -1
- package/sbom.cdx.json +22 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../source/resources/resources.ts"],"names":[],"mappings":"
|
|
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
|
|
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;
|
|
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
|
-
|
|
3
|
-
|
|
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":"
|
|
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,
|
|
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.
|
|
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
|
|
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":"AAAA,OAAO,EACH,gBAAgB,
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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":"AAAA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-matrix-definition.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-matrix-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
142
|
+
scenario,
|
|
143
|
+
scenarios: firstVariant.runtime.scenarios,
|
|
144
|
+
variants,
|
|
116
145
|
[runtimeMatrixDefinitionBrand]: true
|
|
117
146
|
});
|
|
118
147
|
}
|
|
119
|
-
|
|
148
|
+
function isDefinedRuntimeMatrix(runtime) {
|
|
120
149
|
return typeof runtime === 'object' &&
|
|
121
150
|
runtime !== null &&
|
|
122
151
|
Reflect.get(runtime, runtimeMatrixDefinitionBrand) === true;
|
|
123
152
|
}
|
|
124
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EACH,gBAAgB,EAGnB,MAAM,yBAAyB,CAAC;
|
|
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
|
|
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,
|
|
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"}
|