@overkill-dev/resources 0.0.12 → 0.0.13

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 (63) hide show
  1. package/attachments/json-snapshot.js +110 -0
  2. package/attachments/json-snapshot.js.map +1 -0
  3. package/canonical-identity.js +54 -0
  4. package/canonical-identity.js.map +1 -0
  5. package/engine/workload-input.d.ts +8 -0
  6. package/engine/workload-input.d.ts.map +1 -0
  7. package/engine/workload-input.js +54 -0
  8. package/engine/workload-input.js.map +1 -0
  9. package/engine/workload-parameters.d.ts +3 -0
  10. package/engine/workload-parameters.d.ts.map +1 -0
  11. package/engine/workload-parameters.js +67 -0
  12. package/engine/workload-parameters.js.map +1 -0
  13. package/package.json +3 -1
  14. package/packages/resources/resources.entry-point.d.ts +5 -0
  15. package/packages/resources/resources.entry-point.d.ts.map +1 -1
  16. package/packages/resources/resources.entry-point.js +2 -0
  17. package/packages/resources/resources.entry-point.js.map +1 -1
  18. package/readme.md +18 -0
  19. package/resources/local-service-resource.d.ts +26 -26
  20. package/resources/local-service-resource.d.ts.map +1 -1
  21. package/resources/local-service-resource.js +9 -5
  22. package/resources/local-service-resource.js.map +1 -1
  23. package/resources/resource-authoring-types.d.ts +22 -0
  24. package/resources/resource-authoring-types.d.ts.map +1 -0
  25. package/resources/resource-definition-shape.d.ts +2 -0
  26. package/resources/resource-definition-shape.d.ts.map +1 -1
  27. package/resources/resource-definition-types.d.ts +23 -15
  28. package/resources/resource-definition-types.d.ts.map +1 -1
  29. package/resources/resource-definition.d.ts +9 -0
  30. package/resources/resource-definition.d.ts.map +1 -0
  31. package/resources/resource-definition.js +17 -2
  32. package/resources/resource-definition.js.map +1 -1
  33. package/resources/resource-scenario-binding.js +9 -5
  34. package/resources/resource-scenario-binding.js.map +1 -1
  35. package/resources/resource-scenario.d.ts +3 -0
  36. package/resources/resource-scenario.d.ts.map +1 -1
  37. package/resources/resource-session.d.ts +5 -0
  38. package/resources/resource-session.d.ts.map +1 -1
  39. package/resources/resource-session.js +26 -5
  40. package/resources/resource-session.js.map +1 -1
  41. package/resources/resource-workload-binding.d.ts +9 -0
  42. package/resources/resource-workload-binding.d.ts.map +1 -0
  43. package/resources/resource-workload-binding.js +94 -0
  44. package/resources/resource-workload-binding.js.map +1 -0
  45. package/resources/resource-workload-types.d.ts +8 -0
  46. package/resources/resource-workload-types.d.ts.map +1 -0
  47. package/resources/resource-workload-types.js +4 -0
  48. package/resources/resource-workload-types.js.map +1 -0
  49. package/resources/resources.d.ts +12 -16
  50. package/resources/resources.d.ts.map +1 -1
  51. package/resources/resources.js.map +1 -1
  52. package/resources/runtime-lifecycle.d.ts +5 -0
  53. package/resources/runtime-lifecycle.d.ts.map +1 -1
  54. package/resources/runtime-lifecycle.js +5 -1
  55. package/resources/runtime-lifecycle.js.map +1 -1
  56. package/resources/runtime-workload-binding.d.ts +4 -0
  57. package/resources/runtime-workload-binding.d.ts.map +1 -0
  58. package/resources/runtime-workload-binding.js +32 -0
  59. package/resources/runtime-workload-binding.js.map +1 -0
  60. package/resources/simulated-http-server-resource.d.ts.map +1 -1
  61. package/resources/simulated-http-server-resource.js +4 -2
  62. package/resources/simulated-http-server-resource.js.map +1 -1
  63. 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,3 @@
1
+ import type { JsonObject, ReadonlyDeep } from 'type-fest';
2
+ export type WorkloadParameters = ReadonlyDeep<JsonObject>;
3
+ //# sourceMappingURL=workload-parameters.d.ts.map
@@ -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.12"
60
+ "version": "0.0.13"
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":"AAGA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE3F,YAAY,EACR,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EAC5B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACH,0BAA0B,EAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACH,8BAA8B,EACjC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACH,iCAAiC,EACpC,MAAM,mDAAmD,CAAC;AAY3D,eAAO,MAAM,qBAAqB,EAAE,eAAe,CAAC,uBAAuB,CAAyC,CAAC;AACrH,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAmC,CAAC;AACnG,eAAO,MAAM,gCAAgC,EAAE,eAAe,CAAC,kCAAkC,CAC7C,CAAC;AACrD,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAkC,CAAC;AAChG,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,eAAe,CAAiC,CAAC;AAC7F,eAAO,MAAM,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAuC,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;AAC9C,YAAY,EACR,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,kCAAkC,EAClC,wBAAwB,EAC3B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAClG,YAAY,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,YAAY,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,8BAA8B,EAC9B,kCAAkC,EAClC,mCAAmC,EACnC,4CAA4C,EAC5C,4CAA4C,EAC/C,MAAM,2CAA2C,CAAC;AACnD,YAAY,EACR,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EAC5B,MAAM,gDAAgD,CAAC;AACxD,YAAY,EACR,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,gCAAgC,EAChC,oBAAoB,EACpB,kBAAkB,EACrB,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EACR,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EACrC,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EACR,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,2BAA2B,EAC9B,MAAM,qCAAyC,CAAC;AACjD,YAAY,EACR,iBAAiB,IAAI,OAAO,EAC5B,kBAAkB,IAAI,WAAW,EACpC,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACR,wBAAwB,EACxB,sBAAsB,EACzB,MAAM,6CAA6C,CAAC;AACrD,YAAY,EACR,eAAe,EACf,8BAA8B,EAC9B,qBAAqB,EACxB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACR,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACtB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EACR,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACzB,MAAM,sCAAsC,CAAC"}
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 { type Awaitable, type EmptyResourceDependencies, type ExecutionRequirement, type ResourceContext, type ResourceDefinition, type ResourceDependencies, type ResourceProjectionContext, type ResourceProjectionPayload, type ResourceScope } from './resources.ts';
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
- readonly address: LocalServiceAddressRequest;
51
- readonly dependencies: Dependencies;
52
- readonly deserializeHandle: LocalServiceHandleProjection<ConsumerHandle, Projection, ProjectedConsumerHandle, Dependencies>['deserializeHandle'];
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>): 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>(definition: ProjectedLocalServiceResourceDefinitionInput<Name, OwnerHandle, ConsumerHandle, Projection, ProjectedConsumerHandle, Scope, Dependencies>): ResourceDefinition<Name, ConsumerHandle, Dependencies, ProjectedConsumerHandle>;
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":"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"}
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 { defineResource } from "./resources.js";
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 defineResource({
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 defineResource({
118
+ return normalizeResourceDefinition({
119
+ workload: Reflect.get(definition, 'workload'),
116
120
  name: definition.name,
117
121
  scope: definition.scope,
118
122
  requirements: definition.requirements,