@overkill-dev/resources 0.0.1 → 0.0.3

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 (46) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +35 -6
  3. package/packages/resources/resources.entry-point.d.ts +22 -0
  4. package/packages/resources/resources.entry-point.d.ts.map +1 -0
  5. package/packages/resources/resources.entry-point.js +27 -0
  6. package/packages/resources/resources.entry-point.js.map +1 -0
  7. package/readme.md +139 -5
  8. package/resources/local-service-resource.d.ts +55 -0
  9. package/resources/local-service-resource.d.ts.map +1 -0
  10. package/resources/local-service-resource.js +66 -0
  11. package/resources/local-service-resource.js.map +1 -0
  12. package/resources/resource-definition-shape.d.ts +53 -0
  13. package/resources/resource-definition-shape.d.ts.map +1 -0
  14. package/resources/resource-graph.d.ts +23 -0
  15. package/resources/resource-graph.d.ts.map +1 -0
  16. package/resources/resource-graph.js +151 -0
  17. package/resources/resource-graph.js.map +1 -0
  18. package/resources/resource-lifecycle-error.d.ts +19 -0
  19. package/resources/resource-lifecycle-error.d.ts.map +1 -0
  20. package/resources/resource-lifecycle-error.js +32 -0
  21. package/resources/resource-lifecycle-error.js.map +1 -0
  22. package/resources/resource-session.d.ts +28 -0
  23. package/resources/resource-session.d.ts.map +1 -0
  24. package/resources/resource-session.js +182 -0
  25. package/resources/resource-session.js.map +1 -0
  26. package/resources/resources.d.ts +149 -0
  27. package/resources/resources.d.ts.map +1 -0
  28. package/resources/resources.js +99 -0
  29. package/resources/resources.js.map +1 -0
  30. package/resources/runtime-definition.d.ts +23 -0
  31. package/resources/runtime-definition.d.ts.map +1 -0
  32. package/resources/runtime-definition.js +19 -0
  33. package/resources/runtime-definition.js.map +1 -0
  34. package/resources/runtime-lifecycle.d.ts +14 -0
  35. package/resources/runtime-lifecycle.d.ts.map +1 -0
  36. package/resources/runtime-lifecycle.js +83 -0
  37. package/resources/runtime-lifecycle.js.map +1 -0
  38. package/resources/runtime-matrix-definition.d.ts +53 -0
  39. package/resources/runtime-matrix-definition.d.ts.map +1 -0
  40. package/resources/runtime-matrix-definition.js +159 -0
  41. package/resources/runtime-matrix-definition.js.map +1 -0
  42. package/resources/simulated-http-server-resource.d.ts +14 -0
  43. package/resources/simulated-http-server-resource.d.ts.map +1 -0
  44. package/resources/simulated-http-server-resource.js +26 -0
  45. package/resources/simulated-http-server-resource.js.map +1 -0
  46. package/sbom.cdx.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../source/resources/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { defineRuntime as createRuntimeDefinition, isDefinedRuntime as isRuntimeDefinition } from "./runtime-definition.js";
2
+ import { composeRuntimes as composeRuntimeGraphs, defineRuntimeMatrix as createRuntimeMatrixDefinition, isComposedRuntimeGraph, isDefinedRuntimeMatrix as isRuntimeMatrixDefinition, runtimeGraphLeaves as runtimeGraphLeafDescriptors } from "./runtime-matrix-definition.js";
3
+ export const defineRuntime = createRuntimeDefinition;
4
+ export const isDefinedRuntime = isRuntimeDefinition;
5
+ export const isDefinedRuntimeMatrix = isRuntimeMatrixDefinition;
6
+ export const composeRuntimes = composeRuntimeGraphs;
7
+ const resourceDefinitionBrand = Symbol('overkill.resourceDefinition');
8
+ function assertRuntimeContextHandles(runtime, nextRuntimes) {
9
+ if (!isComposedRuntimeGraph(runtime)) {
10
+ return;
11
+ }
12
+ for (const childRuntime of runtime.runtimes) {
13
+ if (!Object.hasOwn(nextRuntimes, childRuntime.name)) {
14
+ throw new TypeError(`Runtime scope "${childRuntime.name}" is missing.`);
15
+ }
16
+ }
17
+ }
18
+ function runtimeContextHandles(runtime, resourceHandles) {
19
+ return isComposedRuntimeGraph(runtime)
20
+ ? resourceHandles
21
+ : { [runtime.name]: resourceHandles };
22
+ }
23
+ export function defineResource(definition) {
24
+ if (definition.dependencies === undefined) {
25
+ const dependencies = Object.freeze({});
26
+ return Object.freeze({
27
+ ...definition,
28
+ dependencies,
29
+ [resourceDefinitionBrand]: true
30
+ });
31
+ }
32
+ return Object.freeze({
33
+ ...definition,
34
+ dependencies: Object.freeze(definition.dependencies),
35
+ [resourceDefinitionBrand]: true
36
+ });
37
+ }
38
+ function createTemporaryDirectoryResource(dependencies, name) {
39
+ return defineResource({
40
+ name,
41
+ scope: 'per-case',
42
+ requirements: [],
43
+ async acquire(context) {
44
+ context.signal.throwIfAborted();
45
+ return Object.freeze({
46
+ path: await dependencies.createTemporaryDirectory(dependencies.temporaryDirectoryPathPrefix)
47
+ });
48
+ },
49
+ async dispose(handle) {
50
+ await dependencies.removeDirectory(handle.path);
51
+ }
52
+ });
53
+ }
54
+ function composeRuntimeContext(context, runtime, resourceHandles) {
55
+ const runtimes = Object.hasOwn(context, 'runtimes') ? Reflect.get(context, 'runtimes') : {};
56
+ if (typeof runtimes !== 'object' || runtimes === null || Array.isArray(runtimes)) {
57
+ throw new TypeError('composeRuntimeContext() requires context.runtimes to be an object when present.');
58
+ }
59
+ const nextRuntimes = runtimeContextHandles(runtime, resourceHandles);
60
+ const duplicateRuntimeName = Object.keys(nextRuntimes).find(function runtimeNameExists(runtimeName) {
61
+ return Object.hasOwn(runtimes, runtimeName);
62
+ });
63
+ assertRuntimeContextHandles(runtime, nextRuntimes);
64
+ if (duplicateRuntimeName !== undefined) {
65
+ throw new TypeError(`Runtime scope "${duplicateRuntimeName}" already exists.`);
66
+ }
67
+ return Object.freeze({
68
+ ...context,
69
+ runtimes: Object.freeze({
70
+ ...runtimes,
71
+ ...nextRuntimes
72
+ })
73
+ });
74
+ }
75
+ export function createResourcesModule(dependencies) {
76
+ return Object.freeze({
77
+ composeRuntimeContext,
78
+ createTemporaryDirectoryResource(name) {
79
+ return createTemporaryDirectoryResource(dependencies, name);
80
+ },
81
+ composeRuntimes,
82
+ defineResource,
83
+ defineRuntime,
84
+ defineRuntimeMatrix: createRuntimeMatrixDefinition
85
+ });
86
+ }
87
+ export function isDefinedResource(resource) {
88
+ return typeof resource === 'object' &&
89
+ resource !== null &&
90
+ Reflect.get(resource, resourceDefinitionBrand) === true;
91
+ }
92
+ export function isDefinedRuntimeGraph(runtime) {
93
+ return isDefinedRuntime(runtime) || isDefinedRuntimeMatrix(runtime) || isComposedRuntimeGraph(runtime);
94
+ }
95
+ export function runtimeGraphLeaves(runtime) {
96
+ const leaves = runtimeGraphLeafDescriptors(runtime);
97
+ return leaves;
98
+ }
99
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../source/resources/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ExecutionRequirement, RuntimeResourceMap } from './resource-definition-shape.ts';
2
+ declare const runtimeDefinitionBrand: unique symbol;
3
+ export type RuntimeDimensions = Readonly<Record<string, string>>;
4
+ export type RuntimeId<Name extends string = string, Dimensions extends RuntimeDimensions = RuntimeDimensions> = {
5
+ readonly name: Name;
6
+ readonly dimensions: Dimensions;
7
+ readonly variantId: string | null;
8
+ };
9
+ export type RuntimeDefinitionInput<Name extends string, Dimensions extends RuntimeDimensions, Resources extends RuntimeResourceMap> = {
10
+ readonly dimensions: Dimensions;
11
+ readonly name: Name;
12
+ readonly requirements: readonly ExecutionRequirement[];
13
+ readonly resources: Resources;
14
+ };
15
+ export type RuntimeDefinition<Name extends string = string, Dimensions extends RuntimeDimensions = RuntimeDimensions, Resources extends RuntimeResourceMap = RuntimeResourceMap> = RuntimeDefinitionInput<Name, Dimensions, Resources> & {
16
+ readonly id: RuntimeId<Name, Dimensions>;
17
+ readonly kind: 'runtime';
18
+ readonly [runtimeDefinitionBrand]: true;
19
+ };
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>;
21
+ export declare function isDefinedRuntime(runtime: unknown): runtime is RuntimeDefinition;
22
+ export {};
23
+ //# sourceMappingURL=runtime-definition.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,19 @@
1
+ const runtimeDefinitionBrand = Symbol('overkill.runtimeDefinition');
2
+ export function defineRuntime(definition) {
3
+ return Object.freeze({
4
+ ...definition,
5
+ id: Object.freeze({
6
+ name: definition.name,
7
+ dimensions: definition.dimensions,
8
+ variantId: null
9
+ }),
10
+ kind: 'runtime',
11
+ [runtimeDefinitionBrand]: true
12
+ });
13
+ }
14
+ export function isDefinedRuntime(runtime) {
15
+ return typeof runtime === 'object' &&
16
+ runtime !== null &&
17
+ Reflect.get(runtime, runtimeDefinitionBrand) === true;
18
+ }
19
+ //# sourceMappingURL=runtime-definition.js.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { type RuntimeContext, type RuntimeDefinition } from './resources.ts';
2
+ export type StartRuntimeRequest<Runtime extends RuntimeDefinition> = {
3
+ readonly runtime: Runtime;
4
+ readonly signal: AbortSignal;
5
+ };
6
+ export type RuntimeSessionDisposalContext = {
7
+ readonly signal: AbortSignal;
8
+ };
9
+ export type RuntimeSession<Runtime extends RuntimeDefinition> = AsyncDisposable & {
10
+ readonly context: RuntimeContext<Runtime>;
11
+ readonly disposeOnce: (context: RuntimeSessionDisposalContext) => Promise<void>;
12
+ };
13
+ export declare function startRuntime<Runtime extends RuntimeDefinition>(request: StartRuntimeRequest<Runtime>): Promise<RuntimeSession<Runtime>>;
14
+ //# sourceMappingURL=runtime-lifecycle.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,83 @@
1
+ import { isDefinedRuntime } from "./resources.js";
2
+ import { resourceLifecycleError } from "./resource-lifecycle-error.js";
3
+ import { acquireResourceGraph, disposeResources, runtimeAsyncDisposeSymbol } from "./resource-session.js";
4
+ const runtimeResourceAcquisitionContext = {
5
+ acquisitionFailureMessage: 'Runtime resource acquisition failed.',
6
+ fallbackResourceName: 'runtime'
7
+ };
8
+ function assertRuntimeDefinition(runtime) {
9
+ if (isDefinedRuntime(runtime)) {
10
+ return;
11
+ }
12
+ throw resourceLifecycleError('Runtime descriptor is invalid.', [
13
+ { cause: runtime, phase: 'graph', resourceName: 'runtime' }
14
+ ], runtime);
15
+ }
16
+ function isRuntimeContext(context, resources) {
17
+ for (const key of Object.keys(resources)) {
18
+ if (!Object.hasOwn(context, key)) {
19
+ return false;
20
+ }
21
+ }
22
+ return true;
23
+ }
24
+ function runtimeContext(resources, handles) {
25
+ const context = {};
26
+ for (const key of Object.keys(resources)) {
27
+ context[key] = Reflect.get(handles, key);
28
+ }
29
+ const frozenContext = Object.freeze(context);
30
+ if (isRuntimeContext(frozenContext, resources)) {
31
+ return frozenContext;
32
+ }
33
+ throw resourceLifecycleError('Runtime resource context is incomplete.', [
34
+ { cause: resources, phase: 'graph', resourceName: 'runtime' }
35
+ ], resources);
36
+ }
37
+ function internalDisposalSignal() {
38
+ const controller = new AbortController();
39
+ return controller.signal;
40
+ }
41
+ function isRuntimeSession(session) {
42
+ return Reflect.has(session, runtimeAsyncDisposeSymbol());
43
+ }
44
+ async function disposeRuntimeResources(acquisition, signal) {
45
+ const failures = await disposeResources(acquisition.order, acquisition.handles, signal);
46
+ if (failures.length > 0) {
47
+ throw resourceLifecycleError('Runtime resource disposal failed.', failures, failures[0]?.cause);
48
+ }
49
+ }
50
+ function runtimeSession(context, acquisition) {
51
+ let disposal = null;
52
+ const session = {
53
+ context,
54
+ async disposeOnce(disposalContext) {
55
+ if (disposal === null) {
56
+ disposal = disposeRuntimeResources(acquisition, disposalContext.signal);
57
+ }
58
+ await disposal;
59
+ }
60
+ };
61
+ Object.defineProperty(session, runtimeAsyncDisposeSymbol(), {
62
+ value: async function disposeRuntimeWithInternalSignal() {
63
+ await session.disposeOnce({ signal: internalDisposalSignal() });
64
+ }
65
+ });
66
+ const frozenSession = Object.freeze(session);
67
+ if (isRuntimeSession(frozenSession)) {
68
+ return frozenSession;
69
+ }
70
+ throw resourceLifecycleError('Runtime session is incomplete.', [
71
+ { cause: session, phase: 'graph', resourceName: 'runtime' }
72
+ ], session);
73
+ }
74
+ export async function startRuntime(request) {
75
+ assertRuntimeDefinition(request.runtime);
76
+ const acquisition = await acquireResourceGraph({
77
+ resources: request.runtime.resources,
78
+ signal: request.signal
79
+ }, runtimeResourceAcquisitionContext);
80
+ const context = runtimeContext(request.runtime.resources, acquisition.context);
81
+ return runtimeSession(context, acquisition);
82
+ }
83
+ //# sourceMappingURL=runtime-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-lifecycle.js","sourceRoot":"","sources":["../../../../source/resources/runtime-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAKnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,sBAAsB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACH,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,uBAAuB,CAAC;AAM/B,MAAM,iCAAiC,GAAG;IACtC,yBAAyB,EAAE,sCAAsC;IACjE,oBAAoB,EAAE,SAAS;CAClC,CAAC;AAgBF,SAAS,uBAAuB,CAAC,OAA0B;IACvD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO;IACX,CAAC;IAED,MAAM,sBAAsB,CAAC,gCAAgC,EAAE;QAC3D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE;KAC9D,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CACrB,OAA0C,EAC1C,SAAoB;IAEpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CACnB,SAAoB,EACpB,OAAmC;IAEnC,MAAM,OAAO,GAA4B,EAAE,CAAC;IAE5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,sBAAsB,CAAC,yCAAyC,EAAE;QACpE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE;KAChE,EAAE,SAAS,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB;IAC3B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,OAAO,UAAU,CAAC,MAAM,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CACrB,OAAoC;IAEpC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,uBAAuB,CAClC,WAA6D,EAC7D,MAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAExF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,sBAAsB,CAAC,mCAAmC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CACnB,OAAgC,EAChC,WAA6D;IAE7D,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG;QACZ,OAAO;QACP,KAAK,CAAC,WAAW,CAAC,eAA8C;YAC5D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,QAAQ,GAAG,uBAAuB,CAAC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,QAAQ,CAAC;QACnB,CAAC;KACJ,CAAC;IAEF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,yBAAyB,EAAE,EAAE;QACxD,KAAK,EAAE,KAAK,UAAU,gCAAgC;YAClD,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;KACJ,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,sBAAsB,CAAC,gCAAgC,EAAE;QAC3D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE;KAC9D,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,OAAqC;IAErC,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC;QAC3C,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,EAAE,iCAAiC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,cAAc,CAAuB,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAErG,OAAO,cAAc,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { type RuntimeDefinition, type RuntimeDimensions } from './runtime-definition.ts';
2
+ import type { RuntimeResourceMap } from './resource-definition-shape.ts';
3
+ declare const runtimeMatrixDefinitionBrand: unique symbol;
4
+ declare const composedRuntimeGraphBrand: unique symbol;
5
+ type RuntimeMatrixVariantValue<Shared, Dimensions extends RuntimeDimensions, Resources extends RuntimeResourceMap> = RuntimeMatrixVariantValueOptions<Shared, Dimensions, Resources>[keyof RuntimeMatrixVariantValueOptions<Shared, Dimensions, Resources>];
6
+ type RuntimeMatrixVariantValueOptions<Shared, Dimensions extends RuntimeDimensions, Resources extends RuntimeResourceMap> = {
7
+ readonly factory: (shared: Shared) => RuntimeDefinition<string, Dimensions, Resources>;
8
+ readonly runtime: RuntimeDefinition<string, Dimensions, Resources>;
9
+ };
10
+ type RuntimeVariantFactoryResult<Variant, Shared> = Variant extends (shared: Shared) => infer Runtime ? Runtime : never;
11
+ type ResolvedRuntimeVariant<Variant, Shared> = Extract<RuntimeVariantFactoryResult<Variant, Shared> | Variant, RuntimeDefinition>;
12
+ export type RuntimeMatrixVariant<VariantId extends string = string, Runtime extends RuntimeDefinition = RuntimeDefinition> = {
13
+ readonly id: VariantId;
14
+ readonly runtime: Runtime;
15
+ };
16
+ type RuntimeMatrixVariantMap = Readonly<Record<string, RuntimeMatrixVariant>>;
17
+ type ResolvedRuntimeMatrixVariants<Variants extends Readonly<Record<string, RuntimeMatrixVariantValue<Shared, RuntimeDimensions, RuntimeResourceMap>>>, Shared> = {
18
+ readonly [VariantId in keyof Variants]: RuntimeMatrixVariant<VariantId & string, ResolvedRuntimeVariant<Variants[VariantId], Shared>>;
19
+ };
20
+ export type RuntimeMatrixDefinition<Name extends string = string, Variants extends RuntimeMatrixVariantMap = RuntimeMatrixVariantMap> = {
21
+ readonly kind: 'runtime-matrix';
22
+ readonly name: Name;
23
+ readonly variants: Variants;
24
+ readonly [runtimeMatrixDefinitionBrand]: true;
25
+ };
26
+ export type RuntimeGraphLeaf = RuntimeDefinition | RuntimeMatrixDefinition;
27
+ export type ComposedRuntimeGraph<Runtimes extends readonly RuntimeGraphLeaf[] = readonly RuntimeGraphLeaf[]> = {
28
+ readonly kind: 'composed-runtimes';
29
+ readonly runtimes: Runtimes;
30
+ readonly [composedRuntimeGraphBrand]: true;
31
+ };
32
+ export type RuntimeGraph = ComposedRuntimeGraph | RuntimeGraphLeaf;
33
+ type FlattenRuntimeGraph<Graph extends RuntimeGraph> = Graph extends ComposedRuntimeGraph<infer Runtimes> ? Runtimes[number] : Extract<Graph, RuntimeGraphLeaf>;
34
+ type FlattenRuntimeGraphs<Graphs extends readonly RuntimeGraph[]> = {
35
+ readonly [Key in keyof Graphs]: FlattenRuntimeGraph<Graphs[Key]>;
36
+ };
37
+ export type RuntimeMatrixDefinitionInput<Name extends string, Variants extends Readonly<Record<string, RuntimeMatrixVariantValue<never, RuntimeDimensions, RuntimeResourceMap>>>> = {
38
+ readonly name: Name;
39
+ readonly variants: Variants;
40
+ };
41
+ export type SharedRuntimeMatrixDefinitionInput<Name extends string, Shared, Variants extends Readonly<Record<string, RuntimeMatrixVariantValue<Shared, RuntimeDimensions, RuntimeResourceMap>>>> = {
42
+ readonly name: Name;
43
+ readonly shared: Shared;
44
+ readonly variants: Variants;
45
+ };
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;
52
+ export {};
53
+ //# sourceMappingURL=runtime-matrix-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-matrix-definition.d.ts","sourceRoot":"","sources":["../../../../source/resources/runtime-matrix-definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { isDefinedRuntime } from "./runtime-definition.js";
2
+ const runtimeMatrixDefinitionBrand = Symbol('overkill.runtimeMatrixDefinition');
3
+ const composedRuntimeGraphBrand = Symbol('overkill.composedRuntimeGraph');
4
+ const descriptorNamePattern = /^[A-Za-z0-9._-]+$/u;
5
+ function assertDescriptorName(kind, name) {
6
+ if (!descriptorNamePattern.test(name)) {
7
+ throw new TypeError(`${kind} "${name}" must match ${descriptorNamePattern.source}.`);
8
+ }
9
+ }
10
+ function compareStrings(left, right) {
11
+ return left.localeCompare(right);
12
+ }
13
+ function sortedKeys(record) {
14
+ return Object.keys(record).toSorted(compareStrings);
15
+ }
16
+ function sameStringItems(left, right) {
17
+ return left.length === right.length && left.every(function itemMatches(item, index) {
18
+ return item === right[index];
19
+ });
20
+ }
21
+ function dimensionIdentity(dimensions) {
22
+ return JSON.stringify(sortedKeys(dimensions).map(function toEntry(key) {
23
+ return [key, dimensions[key]];
24
+ }));
25
+ }
26
+ function resolveMatrixRuntime(variant, shared) {
27
+ return typeof variant === 'function' ? variant(shared) : variant;
28
+ }
29
+ function assertMatrixVariantRuntime(variantId, runtime) {
30
+ if (!isDefinedRuntime(runtime)) {
31
+ throw new TypeError(`Runtime matrix variant "${variantId}" must resolve to a runtime descriptor.`);
32
+ }
33
+ }
34
+ function assertSameShape(matrixName, variantId, runtime, state) {
35
+ if (!sameStringItems(sortedKeys(runtime.dimensions), state.dimensionKeys)) {
36
+ throw new TypeError(`Runtime matrix "${matrixName}" variant "${variantId}" has different dimension keys.`);
37
+ }
38
+ if (!sameStringItems(sortedKeys(runtime.resources), state.resourceKeys)) {
39
+ throw new TypeError(`Runtime matrix "${matrixName}" variant "${variantId}" has different resource keys.`);
40
+ }
41
+ }
42
+ function nextVariantState(matrixName, variantId, runtime, state) {
43
+ const key = dimensionIdentity(runtime.dimensions);
44
+ if (state.dimensionIdentities.has(key)) {
45
+ throw new TypeError(`Runtime matrix "${matrixName}" variant "${variantId}" duplicates another dimension tuple.`);
46
+ }
47
+ return {
48
+ ...state,
49
+ dimensionIdentities: new Set([...state.dimensionIdentities, key])
50
+ };
51
+ }
52
+ function runtimeMatrixVariant(variantId, runtime) {
53
+ return Object.freeze({
54
+ id: variantId,
55
+ runtime
56
+ });
57
+ }
58
+ function readShared(definition) {
59
+ return Object.hasOwn(definition, 'shared') ? Reflect.get(definition, 'shared') : undefined;
60
+ }
61
+ function initialVariantState(runtime) {
62
+ return {
63
+ dimensionIdentities: new Set(),
64
+ dimensionKeys: sortedKeys(runtime.dimensions),
65
+ resourceKeys: sortedKeys(runtime.resources)
66
+ };
67
+ }
68
+ function runtimeMatrixEntries(definition) {
69
+ const variantEntries = Object.entries(definition.variants);
70
+ const firstVariant = variantEntries[0];
71
+ if (firstVariant === undefined) {
72
+ throw new TypeError(`Runtime matrix "${definition.name}" requires at least one variant.`);
73
+ }
74
+ return [firstVariant, ...variantEntries.slice(1)];
75
+ }
76
+ function firstRuntime(variantId, variantInput, shared) {
77
+ assertDescriptorName('Runtime matrix variant', variantId);
78
+ const runtime = resolveMatrixRuntime(variantInput, shared);
79
+ assertMatrixVariantRuntime(variantId, runtime);
80
+ return runtime;
81
+ }
82
+ function matrixVariantEntry(matrixName, variantId, runtime, state) {
83
+ assertDescriptorName('Runtime matrix variant', variantId);
84
+ assertMatrixVariantRuntime(variantId, runtime);
85
+ assertSameShape(matrixName, variantId, runtime, state);
86
+ return [
87
+ variantId,
88
+ runtimeMatrixVariant(variantId, runtime),
89
+ nextVariantState(matrixName, variantId, runtime, state)
90
+ ];
91
+ }
92
+ function variantRecord(entries) {
93
+ const variants = Object.fromEntries(entries);
94
+ return Object.freeze(variants);
95
+ }
96
+ function runtimeMatrixVariants(definition) {
97
+ const variantEntries = runtimeMatrixEntries(definition);
98
+ const shared = readShared(definition);
99
+ const [firstVariantId, firstVariantInput] = variantEntries[0];
100
+ const firstRuntimeValue = firstRuntime(firstVariantId, firstVariantInput, shared);
101
+ let state = initialVariantState(firstRuntimeValue);
102
+ const variants = variantEntries.map(function matrixVariant([variantId, variantInput]) {
103
+ const runtime = variantId === firstVariantId ? firstRuntimeValue : resolveMatrixRuntime(variantInput, shared);
104
+ const [key, variant, nextState] = matrixVariantEntry(definition.name, variantId, runtime, state);
105
+ state = nextState;
106
+ return [key, variant];
107
+ });
108
+ return variantRecord(variants);
109
+ }
110
+ export function defineRuntimeMatrix(definition) {
111
+ assertDescriptorName('Runtime matrix', definition.name);
112
+ return Object.freeze({
113
+ kind: 'runtime-matrix',
114
+ name: definition.name,
115
+ variants: runtimeMatrixVariants(definition),
116
+ [runtimeMatrixDefinitionBrand]: true
117
+ });
118
+ }
119
+ export function isDefinedRuntimeMatrix(runtime) {
120
+ return typeof runtime === 'object' &&
121
+ runtime !== null &&
122
+ Reflect.get(runtime, runtimeMatrixDefinitionBrand) === true;
123
+ }
124
+ export function runtimeGraphLeaves(runtime) {
125
+ return runtime.kind === 'composed-runtimes' ? runtime.runtimes : [runtime];
126
+ }
127
+ function duplicateRuntimeName(name) {
128
+ return new TypeError(`Runtime scope "${name}" is attached multiple times.`);
129
+ }
130
+ function assertUniqueRuntimeNames(runtimes) {
131
+ const names = new Set();
132
+ for (const runtime of runtimes) {
133
+ if (names.has(runtime.name)) {
134
+ throw duplicateRuntimeName(runtime.name);
135
+ }
136
+ names.add(runtime.name);
137
+ }
138
+ }
139
+ function flattenRuntimeGraphs(runtimes) {
140
+ return runtimes.flatMap(runtimeGraphLeaves);
141
+ }
142
+ export function composeRuntimes(...runtimes) {
143
+ if (runtimes.length === 0) {
144
+ throw new TypeError('composeRuntimes() requires at least one runtime graph.');
145
+ }
146
+ const flattened = flattenRuntimeGraphs(runtimes);
147
+ assertUniqueRuntimeNames(flattened);
148
+ return Object.freeze({
149
+ kind: 'composed-runtimes',
150
+ runtimes: Object.freeze(Array.from(flattened)),
151
+ [composedRuntimeGraphBrand]: true
152
+ });
153
+ }
154
+ export function isComposedRuntimeGraph(runtime) {
155
+ return typeof runtime === 'object' &&
156
+ runtime !== null &&
157
+ Reflect.get(runtime, composedRuntimeGraphBrand) === true;
158
+ }
159
+ //# sourceMappingURL=runtime-matrix-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-matrix-definition.js","sourceRoot":"","sources":["../../../../source/resources/runtime-matrix-definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type SimulatedHttpServerHandle } from '@overkill-dev/simulation/http';
2
+ import type { SimulatedHttpServerDefinition, SimulationScenarioCatalog } from '@overkill-dev/simulation';
3
+ import type { EmptyResourceDependencies, ResourceDefinition } from './resources.ts';
4
+ export type SimulatedHttpServerResourceOptions<Name extends string, Scenarios extends SimulationScenarioCatalog> = {
5
+ readonly host?: string;
6
+ readonly port?: number;
7
+ readonly simulation: SimulatedHttpServerDefinition<Name, Scenarios>;
8
+ };
9
+ export type SimulatedHttpServerResource<Simulation extends {
10
+ readonly name: string;
11
+ readonly scenarios: SimulationScenarioCatalog;
12
+ }> = ResourceDefinition<Simulation['name'], SimulatedHttpServerHandle<Simulation>, EmptyResourceDependencies>;
13
+ export declare function createSimulatedHttpServerResource<const Name extends string, const Scenarios extends SimulationScenarioCatalog>(options: SimulatedHttpServerResourceOptions<Name, Scenarios>): SimulatedHttpServerResource<SimulatedHttpServerDefinition<Name, Scenarios>>;
14
+ //# sourceMappingURL=simulated-http-server-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulated-http-server-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/simulated-http-server-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,yBAAyB,EACjC,MAAM,+BAAwC,CAAC;AAChD,OAAO,KAAK,EACR,6BAA6B,EAC7B,yBAAyB,EAC5B,MAAM,0BAA6B,CAAC;AACrC,OAAO,KAAK,EACR,yBAAyB,EACzB,kBAAkB,EACrB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,kCAAkC,CAC1C,IAAI,SAAS,MAAM,EACnB,SAAS,SAAS,yBAAyB,IAC3C;IACA,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACvE,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,yBAAyB,CAAC,UAAU,CAAC,EACrC,yBAAyB,CAC5B,CAAC;AAEF,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,CAwB7E"}
@@ -0,0 +1,26 @@
1
+ import { startSimulatedHttpServer } from "@overkill-dev/simulation/http";
2
+ import { defineLocalServiceResource } from "./local-service-resource.js";
3
+ export function createSimulatedHttpServerResource(options) {
4
+ const addressOptions = {
5
+ ...options.host === undefined ? {} : { host: options.host },
6
+ ...options.port === undefined ? {} : { port: options.port }
7
+ };
8
+ return defineLocalServiceResource({
9
+ name: options.simulation.name,
10
+ scope: 'per-case',
11
+ requirements: [],
12
+ ...addressOptions,
13
+ async start(context) {
14
+ context.signal.throwIfAborted();
15
+ return await startSimulatedHttpServer({
16
+ simulation: options.simulation,
17
+ host: context.address.host,
18
+ port: context.address.port
19
+ });
20
+ },
21
+ async dispose(handle) {
22
+ await handle.dispose();
23
+ }
24
+ });
25
+ }
26
+ //# sourceMappingURL=simulated-http-server-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulated-http-server-resource.js","sourceRoot":"","sources":["../../../../source/resources/simulated-http-server-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EAE3B,MAAM,+BAAwC,CAAC;AAShD,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAsBzE,MAAM,UAAU,iCAAiC,CAI7C,OAA4D;IAE5D,MAAM,cAAc,GAAG;QACnB,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QAC3D,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;KAC9D,CAAC;IAEF,OAAO,0BAA0B,CAAC;QAC9B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;QAC7B,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,EAAE;QAChB,GAAG,cAAc;QACjB,KAAK,CAAC,KAAK,CAAC,OAAO;YACf,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAEhC,OAAO,MAAM,wBAAwB,CAAC;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAC1B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;aAC7B,CAAC,CAAC;QACP,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,MAAM;YAChB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}