@overkill-dev/resources 0.0.1 → 0.0.2

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 (38) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +32 -6
  3. package/packages/resources/resources.entry-point.d.ts +18 -0
  4. package/packages/resources/resources.entry-point.d.ts.map +1 -0
  5. package/packages/resources/resources.entry-point.js +25 -0
  6. package/packages/resources/resources.entry-point.js.map +1 -0
  7. package/readme.md +127 -5
  8. package/resources/resource-definition-shape.d.ts +53 -0
  9. package/resources/resource-definition-shape.d.ts.map +1 -0
  10. package/resources/resource-graph.d.ts +23 -0
  11. package/resources/resource-graph.d.ts.map +1 -0
  12. package/resources/resource-graph.js +151 -0
  13. package/resources/resource-graph.js.map +1 -0
  14. package/resources/resource-lifecycle-error.d.ts +19 -0
  15. package/resources/resource-lifecycle-error.d.ts.map +1 -0
  16. package/resources/resource-lifecycle-error.js +32 -0
  17. package/resources/resource-lifecycle-error.js.map +1 -0
  18. package/resources/resource-session.d.ts +28 -0
  19. package/resources/resource-session.d.ts.map +1 -0
  20. package/resources/resource-session.js +182 -0
  21. package/resources/resource-session.js.map +1 -0
  22. package/resources/resources.d.ts +149 -0
  23. package/resources/resources.d.ts.map +1 -0
  24. package/resources/resources.js +99 -0
  25. package/resources/resources.js.map +1 -0
  26. package/resources/runtime-definition.d.ts +23 -0
  27. package/resources/runtime-definition.d.ts.map +1 -0
  28. package/resources/runtime-definition.js +19 -0
  29. package/resources/runtime-definition.js.map +1 -0
  30. package/resources/runtime-lifecycle.d.ts +14 -0
  31. package/resources/runtime-lifecycle.d.ts.map +1 -0
  32. package/resources/runtime-lifecycle.js +83 -0
  33. package/resources/runtime-lifecycle.js.map +1 -0
  34. package/resources/runtime-matrix-definition.d.ts +53 -0
  35. package/resources/runtime-matrix-definition.d.ts.map +1 -0
  36. package/resources/runtime-matrix-definition.js +159 -0
  37. package/resources/runtime-matrix-definition.js.map +1 -0
  38. package/sbom.cdx.json +30 -0
@@ -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":"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"}
@@ -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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"}
package/sbom.cdx.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
3
+ "bomFormat": "CycloneDX",
4
+ "specVersion": "1.6",
5
+ "version": 1,
6
+ "metadata": {
7
+ "tools": {
8
+ "components": [
9
+ {
10
+ "type": "application",
11
+ "name": "packtory",
12
+ "version": "0.0.97"
13
+ }
14
+ ]
15
+ },
16
+ "component": {
17
+ "type": "library",
18
+ "name": "@overkill-dev/resources",
19
+ "version": "0.0.2",
20
+ "bom-ref": "pkg:npm/@overkill-dev/resources@0.0.2",
21
+ "purl": "pkg:npm/@overkill-dev/resources@0.0.2"
22
+ }
23
+ },
24
+ "components": [],
25
+ "dependencies": [
26
+ {
27
+ "ref": "pkg:npm/@overkill-dev/resources@0.0.2"
28
+ }
29
+ ]
30
+ }