@overkill-dev/resources 0.0.12 → 0.0.14
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/attachments/json-snapshot.js +110 -0
- package/attachments/json-snapshot.js.map +1 -0
- package/canonical-identity.js +54 -0
- package/canonical-identity.js.map +1 -0
- package/engine/workload-input.d.ts +8 -0
- package/engine/workload-input.d.ts.map +1 -0
- package/engine/workload-input.js +54 -0
- package/engine/workload-input.js.map +1 -0
- package/engine/workload-parameters.d.ts +3 -0
- package/engine/workload-parameters.d.ts.map +1 -0
- package/engine/workload-parameters.js +67 -0
- package/engine/workload-parameters.js.map +1 -0
- package/package.json +3 -1
- package/packages/resources/resources.entry-point.d.ts +5 -0
- package/packages/resources/resources.entry-point.d.ts.map +1 -1
- package/packages/resources/resources.entry-point.js +2 -0
- package/packages/resources/resources.entry-point.js.map +1 -1
- package/readme.md +18 -0
- package/resources/local-service-resource.d.ts +26 -26
- package/resources/local-service-resource.d.ts.map +1 -1
- package/resources/local-service-resource.js +9 -5
- package/resources/local-service-resource.js.map +1 -1
- package/resources/resource-authoring-types.d.ts +22 -0
- package/resources/resource-authoring-types.d.ts.map +1 -0
- package/resources/resource-definition-shape.d.ts +2 -0
- package/resources/resource-definition-shape.d.ts.map +1 -1
- package/resources/resource-definition-types.d.ts +23 -15
- package/resources/resource-definition-types.d.ts.map +1 -1
- package/resources/resource-definition.d.ts +9 -0
- package/resources/resource-definition.d.ts.map +1 -0
- package/resources/resource-definition.js +17 -2
- package/resources/resource-definition.js.map +1 -1
- package/resources/resource-scenario-binding.js +9 -5
- package/resources/resource-scenario-binding.js.map +1 -1
- package/resources/resource-scenario.d.ts +3 -0
- package/resources/resource-scenario.d.ts.map +1 -1
- package/resources/resource-session.d.ts +5 -0
- package/resources/resource-session.d.ts.map +1 -1
- package/resources/resource-session.js +26 -5
- package/resources/resource-session.js.map +1 -1
- package/resources/resource-workload-binding.d.ts +9 -0
- package/resources/resource-workload-binding.d.ts.map +1 -0
- package/resources/resource-workload-binding.js +94 -0
- package/resources/resource-workload-binding.js.map +1 -0
- package/resources/resource-workload-types.d.ts +8 -0
- package/resources/resource-workload-types.d.ts.map +1 -0
- package/resources/resource-workload-types.js +4 -0
- package/resources/resource-workload-types.js.map +1 -0
- package/resources/resources.d.ts +12 -16
- package/resources/resources.d.ts.map +1 -1
- package/resources/resources.js.map +1 -1
- package/resources/runtime-lifecycle.d.ts +5 -0
- package/resources/runtime-lifecycle.d.ts.map +1 -1
- package/resources/runtime-lifecycle.js +5 -1
- package/resources/runtime-lifecycle.js.map +1 -1
- package/resources/runtime-matrix-definition.d.ts +13 -2
- package/resources/runtime-matrix-definition.d.ts.map +1 -1
- package/resources/runtime-matrix-definition.js +7 -1
- package/resources/runtime-matrix-definition.js.map +1 -1
- package/resources/runtime-workload-binding.d.ts +4 -0
- package/resources/runtime-workload-binding.d.ts.map +1 -0
- package/resources/runtime-workload-binding.js +32 -0
- package/resources/runtime-workload-binding.js.map +1 -0
- package/resources/simulated-http-server-resource.d.ts.map +1 -1
- package/resources/simulated-http-server-resource.js +4 -2
- package/resources/simulated-http-server-resource.js.map +1 -1
- package/sbom.cdx.json +5 -5
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { createStoredValue } from "../stored-value.js";
|
|
2
|
+
const maxJsonDepth = 64;
|
|
3
|
+
const containerBytes = 2;
|
|
4
|
+
class JsonByteLimitError extends Error {
|
|
5
|
+
constructor() {
|
|
6
|
+
super('JSON attachment exceeds its byte limit.');
|
|
7
|
+
this.name = 'JsonByteLimitError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function createJsonSnapshotBudget(maxBytes) {
|
|
11
|
+
const ancestors = new Set();
|
|
12
|
+
const remaining = createStoredValue(maxBytes);
|
|
13
|
+
return {
|
|
14
|
+
reserve(bytes) {
|
|
15
|
+
if (bytes > remaining.read()) {
|
|
16
|
+
throw new JsonByteLimitError();
|
|
17
|
+
}
|
|
18
|
+
remaining.write(remaining.read() - bytes);
|
|
19
|
+
},
|
|
20
|
+
enter(value) {
|
|
21
|
+
ancestors.add(value);
|
|
22
|
+
},
|
|
23
|
+
leave(value) {
|
|
24
|
+
ancestors.delete(value);
|
|
25
|
+
},
|
|
26
|
+
contains(value) {
|
|
27
|
+
return ancestors.has(value);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function scalar(value) {
|
|
32
|
+
return value === null || typeof value === 'boolean' || typeof value === 'string' ||
|
|
33
|
+
typeof value === 'number' && Number.isFinite(value);
|
|
34
|
+
}
|
|
35
|
+
function descriptorValue(descriptor) {
|
|
36
|
+
if (descriptor === undefined || !Object.hasOwn(descriptor, 'value')) {
|
|
37
|
+
throw new TypeError('JSON attachments cannot contain sparse arrays or accessors.');
|
|
38
|
+
}
|
|
39
|
+
return descriptor.value;
|
|
40
|
+
}
|
|
41
|
+
function arraySnapshot(value, budget, depth, visit) {
|
|
42
|
+
const entries = [];
|
|
43
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
44
|
+
budget.reserve(index === 0 ? 0 : 1);
|
|
45
|
+
entries.push(visit(descriptorValue(Object.getOwnPropertyDescriptor(value, String(index))), depth + 1));
|
|
46
|
+
}
|
|
47
|
+
return Object.freeze(entries);
|
|
48
|
+
}
|
|
49
|
+
function objectSnapshot(value, budget, depth, visit) {
|
|
50
|
+
const entries = {};
|
|
51
|
+
const keys = Reflect.ownKeys(value).filter(function enumerableKey(key) {
|
|
52
|
+
return Object.getOwnPropertyDescriptor(value, key)?.enumerable === true;
|
|
53
|
+
});
|
|
54
|
+
for (const [index, key] of keys.entries()) {
|
|
55
|
+
if (typeof key !== 'string') {
|
|
56
|
+
throw new TypeError('JSON attachments cannot contain symbol keys.');
|
|
57
|
+
}
|
|
58
|
+
budget.reserve(Buffer.byteLength(JSON.stringify(key)) + 1 + (index === 0 ? 0 : 1));
|
|
59
|
+
Object.defineProperty(entries, key, {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
value: visit(descriptorValue(Object.getOwnPropertyDescriptor(value, key)), depth + 1)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return Object.freeze(entries);
|
|
65
|
+
}
|
|
66
|
+
function isContainer(value) {
|
|
67
|
+
return typeof value === 'object' && value !== null;
|
|
68
|
+
}
|
|
69
|
+
function validateContainer(value, budget, depth) {
|
|
70
|
+
if (depth > maxJsonDepth || budget.contains(value)) {
|
|
71
|
+
throw new TypeError('Attachments require finite, acyclic JSON values with depth at most 64.');
|
|
72
|
+
}
|
|
73
|
+
const prototype = Object.getPrototypeOf(value);
|
|
74
|
+
if (!Array.isArray(value) && prototype !== Object.prototype && prototype !== null) {
|
|
75
|
+
throw new TypeError('JSON attachments require plain objects and arrays.');
|
|
76
|
+
}
|
|
77
|
+
budget.reserve(containerBytes);
|
|
78
|
+
budget.enter(value);
|
|
79
|
+
}
|
|
80
|
+
function containerSnapshot(value, budget, depth, visit) {
|
|
81
|
+
return Array.isArray(value)
|
|
82
|
+
? arraySnapshot(value, budget, depth, visit)
|
|
83
|
+
: objectSnapshot(value, budget, depth, visit);
|
|
84
|
+
}
|
|
85
|
+
function createJsonVisit(budget, validate) {
|
|
86
|
+
return function visit(value, depth) {
|
|
87
|
+
validate(value);
|
|
88
|
+
if (scalar(value)) {
|
|
89
|
+
budget.reserve(Buffer.byteLength(JSON.stringify(value)));
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
92
|
+
if (!isContainer(value)) {
|
|
93
|
+
throw new TypeError('Attachments require finite JSON values.');
|
|
94
|
+
}
|
|
95
|
+
validateContainer(value, budget, depth);
|
|
96
|
+
try {
|
|
97
|
+
return containerSnapshot(value, budget, depth, visit);
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
budget.leave(value);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function snapshotValidatedJson(value, validate) {
|
|
106
|
+
const copy = createJsonVisit(createJsonSnapshotBudget(Number.POSITIVE_INFINITY), validate)(value, 0);
|
|
107
|
+
return { value: copy, encoded: JSON.stringify(copy) };
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
//# sourceMappingURL=json-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-snapshot.js","sourceRoot":"","sources":["../../../../source/attachments/json-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function sortedObjectKeys(value) {
|
|
2
|
+
return Object.keys(value).toSorted(function compareKeys(left, right) {
|
|
3
|
+
return left.localeCompare(right);
|
|
4
|
+
});
|
|
5
|
+
}
|
|
6
|
+
function canonicalNumber(value) {
|
|
7
|
+
if (Number.isFinite(value)) {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
throw new TypeError('Cannot serialize number value for shard partitioning.');
|
|
11
|
+
}
|
|
12
|
+
function canonicalScalar(value) {
|
|
13
|
+
if (typeof value === 'boolean') {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === 'number') {
|
|
17
|
+
return canonicalNumber(value);
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'string') {
|
|
20
|
+
return value.normalize('NFC');
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function isRecord(value) {
|
|
25
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
26
|
+
}
|
|
27
|
+
function canonicalArray(value, canonicalize) {
|
|
28
|
+
return value.map(canonicalize);
|
|
29
|
+
}
|
|
30
|
+
function canonicalRecord(value, canonicalize) {
|
|
31
|
+
return Object.fromEntries(sortedObjectKeys(value).map(function toCanonicalEntry(key) {
|
|
32
|
+
return [key.normalize('NFC'), canonicalize(value[key])];
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
function canonicalJsonValue(value) {
|
|
36
|
+
const scalar = canonicalScalar(value);
|
|
37
|
+
if (scalar !== undefined) {
|
|
38
|
+
return scalar;
|
|
39
|
+
}
|
|
40
|
+
if (value === null) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (Array.isArray(value)) {
|
|
44
|
+
return canonicalArray(value, canonicalJsonValue);
|
|
45
|
+
}
|
|
46
|
+
if (isRecord(value)) {
|
|
47
|
+
return canonicalRecord(value, canonicalJsonValue);
|
|
48
|
+
}
|
|
49
|
+
throw new TypeError(`Cannot serialize ${typeof value} value for shard partitioning.`);
|
|
50
|
+
}
|
|
51
|
+
export function canonicalIdentityJson(value) {
|
|
52
|
+
return JSON.stringify(canonicalJsonValue(value));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=canonical-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-identity.js","sourceRoot":"","sources":["../../../source/canonical-identity.ts"],"names":[],"mappings":"AAIA,SAAS,gBAAgB,CAAC,KAAwC;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,IAAI,EAAE,KAAK;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,cAAc,CACnB,KAAyB,EACzB,YAAmD;IAEnD,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CACpB,KAAwC,EACxC,YAAmD;IAEnD,OAAO,MAAM,CAAC,WAAW,CACrB,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,gBAAgB,CAAC,GAAG;QACrD,OAAO,CAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;IAC9D,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,oBAAoB,OAAO,KAAK,gCAAgC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { WorkloadId } from './identity.ts';
|
|
2
|
+
import { type WorkloadParameters as WorkloadParameterRecord } from './workload-parameters.ts';
|
|
3
|
+
export type WorkloadParameters = WorkloadParameterRecord;
|
|
4
|
+
export type WorkloadInput = {
|
|
5
|
+
readonly id: WorkloadId;
|
|
6
|
+
readonly parameters: WorkloadParameters;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=workload-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workload-input.d.ts","sourceRoot":"","sources":["../../../../source/engine/workload-input.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAEH,KAAK,kBAAkB,IAAI,uBAAuB,EACrD,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CAC3C,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { canonicalIdentityJson } from "../canonical-identity.js";
|
|
2
|
+
import { snapshotWorkloadParameters } from "./workload-parameters.js";
|
|
3
|
+
export function workloadParameterIdentity(parameters) {
|
|
4
|
+
return Object.freeze(Object.fromEntries(Object
|
|
5
|
+
.entries(parameters)
|
|
6
|
+
.map(function encodeParameter([key, value]) {
|
|
7
|
+
return [key.normalize('NFC'), canonicalIdentityJson(value)];
|
|
8
|
+
})
|
|
9
|
+
.toSorted(function compareNames([left], [right]) {
|
|
10
|
+
return left.localeCompare(right);
|
|
11
|
+
})));
|
|
12
|
+
}
|
|
13
|
+
export function isWorkloadRecord(value) {
|
|
14
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
15
|
+
}
|
|
16
|
+
function readWorkloadName(value) {
|
|
17
|
+
if (typeof value !== 'string' || value.trim().length === 0 || /\p{Cc}/v.test(value)) {
|
|
18
|
+
throw new TypeError('Workload identities require non-empty names without control characters.');
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
function readIdentityParameters(value) {
|
|
23
|
+
if (!isWorkloadRecord(value)) {
|
|
24
|
+
throw new TypeError('Workload identities require a string parameter record.');
|
|
25
|
+
}
|
|
26
|
+
const keys = new Set();
|
|
27
|
+
const entries = Object.entries(value).map(function readParameter([key, parameter]) {
|
|
28
|
+
const canonicalKey = key.normalize('NFC');
|
|
29
|
+
if (typeof parameter !== 'string' || keys.has(canonicalKey)) {
|
|
30
|
+
throw new TypeError('Workload identity parameters must be strings with distinct canonical keys.');
|
|
31
|
+
}
|
|
32
|
+
keys.add(canonicalKey);
|
|
33
|
+
return [canonicalKey, parameter];
|
|
34
|
+
});
|
|
35
|
+
return Object.freeze(Object.fromEntries(entries));
|
|
36
|
+
}
|
|
37
|
+
export function readWorkloadId(value) {
|
|
38
|
+
if (!isWorkloadRecord(value)) {
|
|
39
|
+
throw new TypeError('Workload identities require a name and string parameter record.');
|
|
40
|
+
}
|
|
41
|
+
return Object.freeze({ name: readWorkloadName(value.name), params: readIdentityParameters(value.params) });
|
|
42
|
+
}
|
|
43
|
+
export function snapshotWorkloadInput(input) {
|
|
44
|
+
const id = readWorkloadId(input.id);
|
|
45
|
+
const parameters = snapshotWorkloadParameters(input.parameters);
|
|
46
|
+
if (canonicalIdentityJson(workloadParameterIdentity(parameters)) !== canonicalIdentityJson(id.params)) {
|
|
47
|
+
throw new TypeError(`Workload "${input.id.name}" parameters do not match its identity.`);
|
|
48
|
+
}
|
|
49
|
+
return Object.freeze({
|
|
50
|
+
id,
|
|
51
|
+
parameters
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=workload-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workload-input.js","sourceRoot":"","sources":["../../../../source/engine/workload-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workload-parameters.d.ts","sourceRoot":"","sources":["../../../../source/engine/workload-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,YAAY,EAAE,MAAM,WAAW,CAAC;AAGrE,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { snapshotValidatedJson } from "../attachments/json-snapshot.js";
|
|
2
|
+
function isParameterRecord(value) {
|
|
3
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
4
|
+
}
|
|
5
|
+
function isContainer(value) {
|
|
6
|
+
return typeof value === 'object' && value !== null;
|
|
7
|
+
}
|
|
8
|
+
function readDataKey(value, key) {
|
|
9
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
10
|
+
if (typeof key !== 'string' || descriptor?.enumerable !== true || !Object.hasOwn(descriptor, 'value')) {
|
|
11
|
+
throw new TypeError('Workload parameters require enumerable string data properties.');
|
|
12
|
+
}
|
|
13
|
+
return key;
|
|
14
|
+
}
|
|
15
|
+
function isArrayIndex(key, length) {
|
|
16
|
+
return /^(?:0|[1-9]\d*)$/v.test(key) && Number(key) < length;
|
|
17
|
+
}
|
|
18
|
+
function parameterKeys(value) {
|
|
19
|
+
return Reflect
|
|
20
|
+
.ownKeys(value)
|
|
21
|
+
.filter(function dataKey(key) {
|
|
22
|
+
return !Array.isArray(value) || key !== 'length';
|
|
23
|
+
})
|
|
24
|
+
.map(function validatedKey(key) {
|
|
25
|
+
const name = readDataKey(value, key);
|
|
26
|
+
if (Array.isArray(value) && !isArrayIndex(name, value.length)) {
|
|
27
|
+
throw new TypeError('Workload arrays cannot contain additional properties.');
|
|
28
|
+
}
|
|
29
|
+
return name.normalize('NFC');
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function validateParameterContainer(value) {
|
|
33
|
+
if (Array.isArray(value) && Object.getPrototypeOf(value) !== Array.prototype) {
|
|
34
|
+
throw new TypeError('Workload parameters require ordinary JSON arrays.');
|
|
35
|
+
}
|
|
36
|
+
const keys = parameterKeys(value);
|
|
37
|
+
const distinctKeys = new Set(keys);
|
|
38
|
+
if (distinctKeys.size !== keys.length) {
|
|
39
|
+
throw new TypeError('Workload parameter keys must be distinct after Unicode normalization.');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function validateParameterValue(value) {
|
|
43
|
+
if (Object.is(value, -0)) {
|
|
44
|
+
throw new TypeError('Workload parameters cannot contain negative zero.');
|
|
45
|
+
}
|
|
46
|
+
if (isContainer(value)) {
|
|
47
|
+
validateParameterContainer(value);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function snapshotParameters(value) {
|
|
51
|
+
try {
|
|
52
|
+
return snapshotValidatedJson(value, validateParameterValue).value;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
throw new TypeError('workload() requires lossless, acyclic JSON parameters with depth at most 64.', {
|
|
56
|
+
cause: error
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function snapshotWorkloadParameters(value) {
|
|
61
|
+
const snapshot = snapshotParameters(value);
|
|
62
|
+
if (!isParameterRecord(snapshot)) {
|
|
63
|
+
throw new TypeError('workload() requires a JSON parameter record.');
|
|
64
|
+
}
|
|
65
|
+
return snapshot;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=workload-parameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workload-parameters.js","sourceRoot":"","sources":["../../../../source/engine/workload-parameters.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"sideEffects": [
|
|
40
40
|
"./attachments/attachment-context.js",
|
|
41
41
|
"./attachments/failure-artifact-stream.js",
|
|
42
|
+
"./attachments/json-snapshot.js",
|
|
42
43
|
"./attachments/resource-failure-context.js",
|
|
43
44
|
"./engine/runtime-attachment.js",
|
|
44
45
|
"./package-version.js",
|
|
@@ -50,10 +51,11 @@
|
|
|
50
51
|
"./resources/resource-definition.js",
|
|
51
52
|
"./resources/resource-lifecycle-error.js",
|
|
52
53
|
"./resources/resource-scenario-binding.js",
|
|
54
|
+
"./resources/resource-workload-binding.js",
|
|
53
55
|
"./resources/resources.js",
|
|
54
56
|
"./resources/runtime-definition.js",
|
|
55
57
|
"./resources/runtime-matrix-definition.js"
|
|
56
58
|
],
|
|
57
59
|
"type": "module",
|
|
58
|
-
"version": "0.0.
|
|
60
|
+
"version": "0.0.14"
|
|
59
61
|
}
|
|
@@ -29,4 +29,9 @@ export type { ResourceSession, ResourceSessionDisposalContext, StartResourcesReq
|
|
|
29
29
|
export type { RuntimeSession, RuntimeSessionDisposalContext, StartRuntimeRequest } from '../../resources/runtime-lifecycle.ts';
|
|
30
30
|
export { withFailureArtifacts } from '../../resources/failure-artifacts.ts';
|
|
31
31
|
export type { FailureArtifactAttachments, ResourceFailureCapture, SimulationWitnessArtifact, SimulationWitnessInput } from '../../resources/failure-artifacts.ts';
|
|
32
|
+
export type { ResourceWorkload, ResourceWorkloadParser } from '../../resources/resources.ts';
|
|
33
|
+
export type { WorkloadInput, WorkloadParameters } from '../../engine/workload-input.ts';
|
|
34
|
+
export { createWorkloadResourceBinding, resourceWorkloadIdentity } from '../../resources/resource-workload-binding.ts';
|
|
35
|
+
export type { WorkloadResourceBinding } from '../../resources/resource-workload-binding.ts';
|
|
36
|
+
export { bindRuntimeWorkload } from '../../resources/runtime-workload-binding.ts';
|
|
32
37
|
//# sourceMappingURL=resources.entry-point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/resources/resources.entry-point.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resources.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/resources/resources.entry-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,4 +27,6 @@ export { startResources } from "../../resources/resource-session.js";
|
|
|
27
27
|
export { ResourceLifecycleError } from "../../resources/resource-lifecycle-error.js";
|
|
28
28
|
export { startRuntime } from "../../resources/runtime-lifecycle.js";
|
|
29
29
|
export { withFailureArtifacts } from "../../resources/failure-artifacts.js";
|
|
30
|
+
export { createWorkloadResourceBinding, resourceWorkloadIdentity } from "../../resources/resource-workload-binding.js";
|
|
31
|
+
export { bindRuntimeWorkload } from "../../resources/runtime-workload-binding.js";
|
|
30
32
|
//# sourceMappingURL=resources.entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/resources/resources.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAwB,MAAM,8BAA8B,CAAC;AAU3F,OAAO,EACH,0BAA0B,EAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACH,8BAA8B,EACjC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACH,iCAAiC,EACpC,MAAM,mDAAmD,CAAC;AAE3D,MAAM,eAAe,GAAG,qBAAqB,CAAC;IAC1C,4BAA4B,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC;IAC7E,KAAK,CAAC,wBAAwB,CAAC,UAAU;QACrC,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,IAAI;QACtB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAA6C,eAAe,CAAC,qBAAqB,CAAC;AACrH,MAAM,CAAC,MAAM,eAAe,GAAuC,eAAe,CAAC,eAAe,CAAC;AACnG,MAAM,CAAC,MAAM,gCAAgC,GACzC,eAAe,CAAC,gCAAgC,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAsC,eAAe,CAAC,cAAc,CAAC;AAChG,MAAM,CAAC,MAAM,aAAa,GAAqC,eAAe,CAAC,aAAa,CAAC;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAA2C,eAAe,CAAC,mBAAmB,CAAC;AAE/G,OAAO,EACH,iCAAiC,EACpC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,kBAAkB,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,0BAA0B,EAC1B,8BAA8B,EACjC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,cAAc,EACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,sBAAsB,EACzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACH,YAAY,EACf,MAAM,sCAAsC,CAAC;AA4G9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"resources.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/resources/resources.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAwB,MAAM,8BAA8B,CAAC;AAU3F,OAAO,EACH,0BAA0B,EAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACH,8BAA8B,EACjC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACH,iCAAiC,EACpC,MAAM,mDAAmD,CAAC;AAE3D,MAAM,eAAe,GAAG,qBAAqB,CAAC;IAC1C,4BAA4B,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC;IAC7E,KAAK,CAAC,wBAAwB,CAAC,UAAU;QACrC,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,IAAI;QACtB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAA6C,eAAe,CAAC,qBAAqB,CAAC;AACrH,MAAM,CAAC,MAAM,eAAe,GAAuC,eAAe,CAAC,eAAe,CAAC;AACnG,MAAM,CAAC,MAAM,gCAAgC,GACzC,eAAe,CAAC,gCAAgC,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAsC,eAAe,CAAC,cAAc,CAAC;AAChG,MAAM,CAAC,MAAM,aAAa,GAAqC,eAAe,CAAC,aAAa,CAAC;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAA2C,eAAe,CAAC,mBAAmB,CAAC;AAE/G,OAAO,EACH,iCAAiC,EACpC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,kBAAkB,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,0BAA0B,EAC1B,8BAA8B,EACjC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,cAAc,EACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,sBAAsB,EACzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACH,YAAY,EACf,MAAM,sCAAsC,CAAC;AA4G9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAW5E,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAEvH,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC"}
|
package/readme.md
CHANGED
|
@@ -118,6 +118,24 @@ Dependency context uses the keys from the resource's `dependencies` object.
|
|
|
118
118
|
Omitting `dependencies` is accepted for compatibility and produces
|
|
119
119
|
`dependencies: {}` on the returned descriptor.
|
|
120
120
|
|
|
121
|
+
Resources can declare workload dependence with `workload: parseParameters`.
|
|
122
|
+
This pure synchronous parser validates original JSON parameters during collection
|
|
123
|
+
and executor recollection. Acquisition and disposal receive the same parsed
|
|
124
|
+
`{ id, parameters }` through `context.workload`; independent callbacks receive
|
|
125
|
+
`null`. Local service callbacks carry this input through `start`, `ready`, and
|
|
126
|
+
`dispose`. Explicit `startResources` and `startRuntime` sessions accept a
|
|
127
|
+
`workload` input containing its identity and parameters.
|
|
128
|
+
|
|
129
|
+
Workload-dependent resources and their consumers share by scope and full workload
|
|
130
|
+
identity. Independent dependencies retain their existing sharing across workloads
|
|
131
|
+
and runtime variants. Ordinary scenarios, projections, startup budgets, placement
|
|
132
|
+
requirements, and attachments still apply. Equal canonical workload identities
|
|
133
|
+
with different original inputs cannot share one resource boundary.
|
|
134
|
+
|
|
135
|
+
Advanced DSLs bind graphs through `createWorkloadResourceBinding` and
|
|
136
|
+
`bindRuntimeWorkload`; `resourceWorkloadIdentity` reads a bound descriptor's
|
|
137
|
+
workload identity. Engine input snapshots preserve original parameter spelling.
|
|
138
|
+
|
|
121
139
|
`createTemporaryDirectoryResource(name)` returns a per-case resource descriptor
|
|
122
140
|
whose handle exposes `path` and an empty `transcript`. Each acquisition creates
|
|
123
141
|
a unique directory with an Overkill prefix. Disposal removes that directory
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import type { Merge } from 'type-fest';
|
|
2
|
+
import type { WorkloadParameters } from '../engine/workload-input.ts';
|
|
1
3
|
import type { RuntimeAttachments } from '../engine/runtime-attachment.ts';
|
|
2
|
-
import
|
|
4
|
+
import type { ResourceWorkload } from './resource-workload-types.ts';
|
|
5
|
+
import type { Awaitable, EmptyResourceDependencies, ExecutionRequirement, ResourceContext, ResourceDefinition, ResourceDependencies, ResourceProjectionContext, ResourceProjectionPayload, ResourceScope } from './resources.ts';
|
|
3
6
|
import type { ValueOf } from './resource-definition-shape.ts';
|
|
4
7
|
export type LocalServiceLoopbackAddressRequest = {
|
|
5
8
|
readonly kind: 'loopback';
|
|
@@ -15,17 +18,19 @@ export type LocalServiceAddress = {
|
|
|
15
18
|
readonly host: string;
|
|
16
19
|
readonly port: number;
|
|
17
20
|
};
|
|
18
|
-
export type LocalServiceCreationContext<Dependencies extends ResourceDependencies = EmptyResourceDependencies> = {
|
|
21
|
+
export type LocalServiceCreationContext<Dependencies extends ResourceDependencies = EmptyResourceDependencies, Parameters extends WorkloadParameters = never> = {
|
|
19
22
|
readonly attachments: RuntimeAttachments;
|
|
20
23
|
readonly address: LocalServiceAddress;
|
|
21
24
|
readonly dependencies: ResourceContext<Dependencies>;
|
|
22
25
|
readonly signal: AbortSignal;
|
|
26
|
+
readonly workload: readonly [Parameters] extends readonly [never] ? null : ResourceWorkload<Parameters>;
|
|
23
27
|
};
|
|
24
|
-
export type LocalServiceDisposalContext<Dependencies extends ResourceDependencies = EmptyResourceDependencies> = {
|
|
28
|
+
export type LocalServiceDisposalContext<Dependencies extends ResourceDependencies = EmptyResourceDependencies, Parameters extends WorkloadParameters = never> = {
|
|
25
29
|
readonly attachments: RuntimeAttachments;
|
|
26
30
|
readonly address: LocalServiceAddress;
|
|
27
31
|
readonly dependencies: ResourceContext<Dependencies>;
|
|
28
32
|
readonly signal: AbortSignal;
|
|
33
|
+
readonly workload: readonly [Parameters] extends readonly [never] ? null : ResourceWorkload<Parameters>;
|
|
29
34
|
};
|
|
30
35
|
export type LocalServiceConsumerHandle = Readonly<Partial<Record<PropertyKey, unknown>>>;
|
|
31
36
|
export type ProjectedLocalServiceScope = 'per-file' | 'per-run' | 'per-suite';
|
|
@@ -33,36 +38,31 @@ export type LocalServiceHandleProjection<ConsumerHandle extends LocalServiceCons
|
|
|
33
38
|
readonly deserializeHandle: (payload: Projection, context: ResourceProjectionContext<Dependencies>) => ProjectedConsumerHandle;
|
|
34
39
|
readonly serializeHandle: (handle: ConsumerHandle, context: ResourceProjectionContext<Dependencies>) => Projection;
|
|
35
40
|
};
|
|
36
|
-
type LocalServiceDefinitionDisposal<OwnerHandle, Dependencies extends ResourceDependencies> = {
|
|
37
|
-
readonly dispose: (owner: OwnerHandle, context: LocalServiceDisposalContext<Dependencies>) => Awaitable<void>;
|
|
41
|
+
type LocalServiceDefinitionDisposal<OwnerHandle, Dependencies extends ResourceDependencies, Parameters extends WorkloadParameters = never> = {
|
|
42
|
+
readonly dispose: (owner: OwnerHandle, context: LocalServiceDisposalContext<Dependencies, Parameters>) => Awaitable<void>;
|
|
38
43
|
};
|
|
39
|
-
type LocalServiceResourceDefinitionBaseInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends ResourceScope, Dependencies extends ResourceDependencies> = LocalServiceDefinitionDisposal<OwnerHandle, Dependencies> & {
|
|
44
|
+
type LocalServiceResourceDefinitionBaseInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends ResourceScope, Dependencies extends ResourceDependencies, Parameters extends WorkloadParameters = never> = LocalServiceDefinitionDisposal<OwnerHandle, Dependencies, Parameters> & {
|
|
40
45
|
readonly address: LocalServiceAddressRequest;
|
|
41
46
|
readonly dependencies: Dependencies;
|
|
42
47
|
readonly name: Name;
|
|
43
|
-
readonly ready: (owner: OwnerHandle, context: LocalServiceCreationContext<Dependencies>) => Awaitable<ConsumerHandle>;
|
|
48
|
+
readonly ready: (owner: OwnerHandle, context: LocalServiceCreationContext<Dependencies, Parameters>) => Awaitable<ConsumerHandle>;
|
|
44
49
|
readonly requirements: readonly ExecutionRequirement[];
|
|
45
50
|
readonly scope: Scope;
|
|
46
|
-
readonly start: (context: LocalServiceCreationContext<Dependencies>) => Awaitable<OwnerHandle>;
|
|
51
|
+
readonly start: (context: LocalServiceCreationContext<Dependencies, Parameters>) => Awaitable<OwnerHandle>;
|
|
47
52
|
};
|
|
48
|
-
export type LocalOnlyLocalServiceResourceDefinitionInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends Exclude<ResourceScope, 'per-run'>, Dependencies extends ResourceDependencies = EmptyResourceDependencies> = LocalServiceResourceDefinitionBaseInput<Name, OwnerHandle, ConsumerHandle, Scope, Dependencies>;
|
|
49
|
-
export type ProjectedLocalServiceResourceDefinitionInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Projection extends ResourceProjectionPayload, ProjectedConsumerHandle, Scope extends ProjectedLocalServiceScope, Dependencies extends ResourceDependencies = EmptyResourceDependencies> =
|
|
50
|
-
|
|
51
|
-
readonly
|
|
52
|
-
readonly
|
|
53
|
-
readonly dispose: LocalServiceDefinitionDisposal<OwnerHandle, Dependencies>['dispose'];
|
|
54
|
-
readonly name: Name;
|
|
55
|
-
readonly ready: (owner: OwnerHandle, context: LocalServiceCreationContext<Dependencies>) => Awaitable<ConsumerHandle>;
|
|
56
|
-
readonly requirements: readonly ExecutionRequirement[];
|
|
57
|
-
readonly scope: Scope;
|
|
58
|
-
readonly serializeHandle: LocalServiceHandleProjection<ConsumerHandle, Projection, ProjectedConsumerHandle, Dependencies>['serializeHandle'];
|
|
59
|
-
readonly start: (context: LocalServiceCreationContext<Dependencies>) => Awaitable<OwnerHandle>;
|
|
60
|
-
};
|
|
61
|
-
export type LocalServiceResourceDefinitionInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Dependencies extends ResourceDependencies = EmptyResourceDependencies, Projection extends ResourceProjectionPayload = ResourceProjectionPayload, ProjectedConsumerHandle = ConsumerHandle> = ValueOf<{
|
|
62
|
-
readonly local: LocalOnlyLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Exclude<ResourceScope, 'per-run'>, Dependencies>;
|
|
63
|
-
readonly projected: ProjectedLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Projection, ProjectedConsumerHandle, ProjectedLocalServiceScope, Dependencies>;
|
|
53
|
+
export type LocalOnlyLocalServiceResourceDefinitionInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends Exclude<ResourceScope, 'per-run'>, Dependencies extends ResourceDependencies = EmptyResourceDependencies, Parameters extends WorkloadParameters = never> = LocalServiceResourceDefinitionBaseInput<Name, OwnerHandle, ConsumerHandle, Scope, Dependencies, Parameters>;
|
|
54
|
+
export type ProjectedLocalServiceResourceDefinitionInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Projection extends ResourceProjectionPayload, ProjectedConsumerHandle, Scope extends ProjectedLocalServiceScope, Dependencies extends ResourceDependencies = EmptyResourceDependencies, Parameters extends WorkloadParameters = never> = Merge<LocalServiceHandleProjection<ConsumerHandle, Projection, ProjectedConsumerHandle, Dependencies>, LocalServiceResourceDefinitionBaseInput<Name, OwnerHandle, ConsumerHandle, Scope, Dependencies, Parameters>>;
|
|
55
|
+
export type LocalServiceResourceDefinitionInput<Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Dependencies extends ResourceDependencies = EmptyResourceDependencies, Projection extends ResourceProjectionPayload = ResourceProjectionPayload, ProjectedConsumerHandle = ConsumerHandle, Parameters extends WorkloadParameters = never> = ValueOf<{
|
|
56
|
+
readonly local: LocalOnlyLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Exclude<ResourceScope, 'per-run'>, Dependencies, Parameters>;
|
|
57
|
+
readonly projected: ProjectedLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Projection, ProjectedConsumerHandle, ProjectedLocalServiceScope, Dependencies, Parameters>;
|
|
64
58
|
}>;
|
|
65
|
-
export declare function defineLocalServiceResource<const Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends Exclude<ResourceScope, 'per-run'>, const Dependencies extends ResourceDependencies>(definition: LocalOnlyLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Scope, Dependencies
|
|
66
|
-
|
|
59
|
+
export declare function defineLocalServiceResource<const Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends Exclude<ResourceScope, 'per-run'>, const Dependencies extends ResourceDependencies, Parameters extends WorkloadParameters>(definition: Merge<LocalOnlyLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Scope, Dependencies, Parameters>, {
|
|
60
|
+
readonly workload: (parameters: WorkloadParameters) => Parameters;
|
|
61
|
+
}>): ResourceDefinition<Name, ConsumerHandle, Dependencies, ConsumerHandle, Readonly<Record<PropertyKey, never>>, Parameters>;
|
|
62
|
+
export declare function defineLocalServiceResource<const Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Projection extends ResourceProjectionPayload, ProjectedConsumerHandle, Scope extends ProjectedLocalServiceScope, const Dependencies extends ResourceDependencies, Parameters extends WorkloadParameters>(definition: Merge<ProjectedLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Projection, ProjectedConsumerHandle, Scope, Dependencies, Parameters>, {
|
|
63
|
+
readonly workload: (parameters: WorkloadParameters) => Parameters;
|
|
64
|
+
}>): ResourceDefinition<Name, ConsumerHandle, Dependencies, ProjectedConsumerHandle, Readonly<Record<PropertyKey, never>>, Parameters>;
|
|
65
|
+
export declare function defineLocalServiceResource<const Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends Exclude<ResourceScope, 'per-run'>, const Dependencies extends ResourceDependencies, Parameters extends WorkloadParameters = never>(definition: LocalOnlyLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Scope, Dependencies, Parameters>): ResourceDefinition<Name, ConsumerHandle, Dependencies>;
|
|
66
|
+
export declare function defineLocalServiceResource<const Name extends string, OwnerHandle, ConsumerHandle extends LocalServiceConsumerHandle, Projection extends ResourceProjectionPayload, ProjectedConsumerHandle, Scope extends ProjectedLocalServiceScope, const Dependencies extends ResourceDependencies, Parameters extends WorkloadParameters = never>(definition: ProjectedLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Projection, ProjectedConsumerHandle, Scope, Dependencies, Parameters>): ResourceDefinition<Name, ConsumerHandle, Dependencies, ProjectedConsumerHandle>;
|
|
67
67
|
export {};
|
|
68
68
|
//# sourceMappingURL=local-service-resource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-service-resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"local-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-service-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { normalizeResourceDefinition } from "./resource-definition.js";
|
|
2
2
|
const localServiceAcquireFailures = new WeakMap();
|
|
3
3
|
function localServiceAcquireFailureError(failure) {
|
|
4
4
|
const error = new Error('Local service acquisition failed.', { cause: failure.cause });
|
|
@@ -32,7 +32,8 @@ async function cleanupStartedService(owner, definition, context) {
|
|
|
32
32
|
address: context.address,
|
|
33
33
|
attachments: context.attachments,
|
|
34
34
|
dependencies: context.dependencies,
|
|
35
|
-
signal: internalCleanupSignal()
|
|
35
|
+
signal: internalCleanupSignal(),
|
|
36
|
+
workload: context.workload
|
|
36
37
|
});
|
|
37
38
|
return null;
|
|
38
39
|
}
|
|
@@ -88,7 +89,8 @@ function localServiceDispose(definition, address, owners) {
|
|
|
88
89
|
address,
|
|
89
90
|
attachments: context.attachments,
|
|
90
91
|
dependencies: context.dependencies,
|
|
91
|
-
signal: context.signal
|
|
92
|
+
signal: context.signal,
|
|
93
|
+
workload: context.workload
|
|
92
94
|
});
|
|
93
95
|
};
|
|
94
96
|
}
|
|
@@ -101,7 +103,8 @@ export function defineLocalServiceResource(definition) {
|
|
|
101
103
|
const acquire = localServiceAcquire(definition, address, owners);
|
|
102
104
|
const dispose = localServiceDispose(definition, address, owners);
|
|
103
105
|
if (isProjectedLocalService(definition)) {
|
|
104
|
-
return
|
|
106
|
+
return normalizeResourceDefinition({
|
|
107
|
+
workload: Reflect.get(definition, 'workload'),
|
|
105
108
|
name: definition.name,
|
|
106
109
|
scope: definition.scope,
|
|
107
110
|
requirements: definition.requirements,
|
|
@@ -112,7 +115,8 @@ export function defineLocalServiceResource(definition) {
|
|
|
112
115
|
deserializeHandle: definition.deserializeHandle
|
|
113
116
|
});
|
|
114
117
|
}
|
|
115
|
-
return
|
|
118
|
+
return normalizeResourceDefinition({
|
|
119
|
+
workload: Reflect.get(definition, 'workload'),
|
|
116
120
|
name: definition.name,
|
|
117
121
|
scope: definition.scope,
|
|
118
122
|
requirements: definition.requirements,
|