@toolproof-core/lib 1.0.9 → 1.0.11
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/dist/utils/bindInputRoleToResource.d.ts.map +1 -1
- package/dist/utils/bindInputRoleToResource.js.map +1 -1
- package/dist/utils/extractData.d.ts +4 -3
- package/dist/utils/extractData.d.ts.map +1 -1
- package/dist/utils/extractData.js +13 -4
- package/dist/utils/extractData.js.map +1 -1
- package/dist/utils/resolveResourceChain.d.ts.map +1 -1
- package/dist/utils/resolveResourceChain.js.map +1 -1
- package/package.json +2 -2
- package/src/utils/bindInputRoleToResource.ts +2 -3
- package/src/utils/extractData.ts +15 -4
- package/src/utils/resolveResourceChain.ts +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindInputRoleToResource.d.ts","sourceRoot":"","sources":["../../src/utils/bindInputRoleToResource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,
|
|
1
|
+
{"version":3,"file":"bindInputRoleToResource.d.ts","sourceRoot":"","sources":["../../src/utils/bindInputRoleToResource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EAKZ,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,wBAAwB,CAAC;AAKhC,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,YAAY,GACvB,iBAAiB,CASnB;AAED,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,mBAAmB,GAC5B,iBAAiB,CA6DnB;AAED,wBAAgB,gCAAgC,CAC5C,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,mBAAmB,GAC5B,iBAAiB,CAWnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindInputRoleToResource.js","sourceRoot":"","sources":["../../src/utils/bindInputRoleToResource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bindInputRoleToResource.js","sourceRoot":"","sources":["../../src/utils/bindInputRoleToResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { RawStrategyJson, JobIdentityJson, JobJson, JobStepJson, ResourceRoleJson, ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson } from '@toolproof-core/schema';
|
|
2
2
|
export declare function extractJobHandlesFromRawStrategy(rawStrategy: RawStrategyJson): JobIdentityJson[];
|
|
3
3
|
export declare function extractJobStepsFromRawStrategy(rawStrategy: RawStrategyJson): JobStepJson[];
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
4
|
+
export declare function extractRolesFromRawStrategy(rawStrategy: RawStrategyJson, jobMap: Map<JobIdentityJson, JobJson>): ResourceRoleJson[];
|
|
5
|
+
export declare function extractSingleNonErrorOutputTypeHandle(job: JobJson): ResourceTypeIdentityJson | null;
|
|
6
|
+
export declare function extractResourceMapForType<TResource extends ResourceJson = ResourceJson>(resourcesByTypeDict: Partial<Record<ResourceTypeIdentityJson, TResource[]>>, resourceTypeHandle: ResourceTypeIdentityJson): Map<ResourceIdentityJson, TResource>;
|
|
7
|
+
export declare function extractNucleusMapForType<TKey extends string = string, TNucleus extends {
|
|
7
8
|
identity: string | number | boolean;
|
|
8
9
|
} = {
|
|
9
10
|
identity: string | number | boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractData.d.ts","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,OAAO,EAEP,WAAW,EAGX,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,EAAE,CAOhG;AAED,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,eAAe,GAAG,WAAW,EAAE,CA2C1F;AAGD,wBAAgB,
|
|
1
|
+
{"version":3,"file":"extractData.d.ts","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,OAAO,EAEP,WAAW,EAGX,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,EAAE,CAOhG;AAED,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,eAAe,GAAG,WAAW,EAAE,CA2C1F;AAGD,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAuBnI;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB,GAAG,IAAI,CAQnG;AAID,wBAAgB,yBAAyB,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,EACnF,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3E,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAStC;AAGD,wBAAgB,wBAAwB,CACpC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,QAAQ,SAAS;IAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,EAClG,SAAS,SAAS,YAAY,GAAG,YAAY,EAE7C,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3E,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAyBrB"}
|
|
@@ -47,7 +47,7 @@ export function extractJobStepsFromRawStrategy(rawStrategy) {
|
|
|
47
47
|
}
|
|
48
48
|
return jobSteps;
|
|
49
49
|
}
|
|
50
|
-
export function
|
|
50
|
+
export function extractRolesFromRawStrategy(rawStrategy, jobMap) {
|
|
51
51
|
const map = new Map();
|
|
52
52
|
const jobHandles = extractJobHandlesFromRawStrategy(rawStrategy);
|
|
53
53
|
for (const jobHandle of jobHandles) {
|
|
@@ -69,7 +69,16 @@ export function extractResourceRolesFromRawStrategy(rawStrategy, jobMap) {
|
|
|
69
69
|
}
|
|
70
70
|
return Array.from(map.values());
|
|
71
71
|
}
|
|
72
|
-
export function
|
|
72
|
+
export function extractSingleNonErrorOutputTypeHandle(job) {
|
|
73
|
+
const errorRoleId = CONSTANTS.Cosmos.ROLE_ErrorOutput;
|
|
74
|
+
const outputEntries = Object.entries(job.roles.outputDict).filter(([roleId]) => roleId !== errorRoleId);
|
|
75
|
+
if (!outputEntries || !outputEntries[0] || outputEntries.length !== 1) {
|
|
76
|
+
throw new Error(`Job ${job.identity} must have exactly one non-error output role to be branchable/loopable`);
|
|
77
|
+
} // ATTENTION_PUREIFY
|
|
78
|
+
const outputRole = outputEntries[0][1];
|
|
79
|
+
return outputRole.resourceTypeHandle;
|
|
80
|
+
}
|
|
81
|
+
export function extractResourceMapForType(resourcesByTypeDict, resourceTypeHandle) {
|
|
73
82
|
const resources = resourcesByTypeDict[resourceTypeHandle] ?? [];
|
|
74
83
|
const map = new Map();
|
|
75
84
|
for (const resource of resources) {
|
|
@@ -78,8 +87,8 @@ export function extractResourceMapForResourceType(resourcesByTypeDict, resourceT
|
|
|
78
87
|
return map;
|
|
79
88
|
}
|
|
80
89
|
// ATTENTION: should only need standalone type as type parameter, then we could extract the nuclueus type and identity type
|
|
81
|
-
export function
|
|
82
|
-
const resourceMap =
|
|
90
|
+
export function extractNucleusMapForType(resourcesByTypeDict, resourceTypeHandle) {
|
|
91
|
+
const resourceMap = extractResourceMapForType(resourcesByTypeDict, resourceTypeHandle);
|
|
83
92
|
const out = new Map();
|
|
84
93
|
for (const resource of resourceMap.values()) {
|
|
85
94
|
const data = resource.nucleus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractData.js","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,MAAM,UAAU,gCAAgC,CAAC,WAA4B;IACzE,MAAM,QAAQ,GAAG,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,WAA4B;IACvE,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE5C,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAE,EAAE;QACxC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAc,EAAE,EAAE;QACjC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;YACX,CAAC;YACD,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC7B,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO;YACX,CAAC;YACD,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO;YACX,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,MAAM,WAAW,GAAU,IAAI,CAAC;gBAChC,OAAO,WAAW,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACnC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAGD,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"extractData.js","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveResourceChain.d.ts","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EAEnB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"resolveResourceChain.d.ts","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EAEnB,2BAA2B,EAE3B,iBAAiB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,MAAM,aAAa,GACnB;IAAE,MAAM,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,mBAAmB,EAAE,CAAA;CAAE,GACnH;IAAE,MAAM,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,mBAAmB,EAAE,CAAA;CAAE,GACrH;IAAE,MAAM,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC;IAAC,KAAK,EAAE,2BAA2B,CAAC;IAAC,IAAI,EAAE,mBAAmB,EAAE,CAAA;CAAE,GACrI;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,gBAAgB,CAAC;IAAC,IAAI,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAE9G,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,iBAAiB,EAChC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,aAAa,CA4Cf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveResourceChain.js","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolveResourceChain.js","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAQtD,MAAM,UAAU,oBAAoB,CAChC,aAAgC,EAChC,KAA0B,EAC1B,IAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAA0B,EAAE,CAAC;IACvC,IAAI,OAAO,GAAwB,KAAK,CAAC;IAEzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAI9C,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAEvE,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;YAC7E,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,KAAqB,EAAE,IAAI,EAAE,CAAC;QAC1G,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,KAA4B,EAAE,IAAI,EAAE,CAAC;QAC5G,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;YAChF,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,EAAE,KAAoC,EAAE,IAAI,EAAE,CAAC;QAC5H,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;YAC/E,OAAO,GAAI,KAAoC,CAAC,eAAe,CAAC;YAChE,SAAS;QACb,CAAC;QAED,eAAe;QACf,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AACpE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toolproof-core/lib",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [],
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@types/node": "^22.0.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@toolproof-core/schema": "^1.0.
|
|
55
|
+
"@toolproof-core/schema": "^1.0.17",
|
|
56
56
|
"firebase-admin": "^13.7.0"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
ResourceMissingJson,
|
|
4
4
|
ResourceInputPotentialJson,
|
|
5
5
|
ResourceOutputPotentialJson,
|
|
6
|
+
ResourcePotentialJson,
|
|
6
7
|
CreationContextJson,
|
|
7
8
|
StrategyStateJson,
|
|
8
9
|
} from '@toolproof-core/schema';
|
|
@@ -32,9 +33,7 @@ export function bindInputRefInStrategyState(
|
|
|
32
33
|
): StrategyStateJson {
|
|
33
34
|
const sourceEntry = strategyState?.[source.jobStepHandle]?.[source.resourceRoleHandle] as (
|
|
34
35
|
| ResourceJson
|
|
35
|
-
|
|
|
36
|
-
| ResourceInputPotentialJson
|
|
37
|
-
| ResourceOutputPotentialJson
|
|
36
|
+
| ResourcePotentialJson
|
|
38
37
|
| undefined
|
|
39
38
|
);
|
|
40
39
|
if (!sourceEntry) {
|
package/src/utils/extractData.ts
CHANGED
|
@@ -69,7 +69,7 @@ export function extractJobStepsFromRawStrategy(rawStrategy: RawStrategyJson): Jo
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
|
|
72
|
-
export function
|
|
72
|
+
export function extractRolesFromRawStrategy(rawStrategy: RawStrategyJson, jobMap: Map<JobIdentityJson, JobJson>): ResourceRoleJson[] {
|
|
73
73
|
const map = new Map<ResourceRoleIdentityJson, ResourceRoleJson>();
|
|
74
74
|
const jobHandles = extractJobHandlesFromRawStrategy(rawStrategy);
|
|
75
75
|
|
|
@@ -94,8 +94,19 @@ export function extractResourceRolesFromRawStrategy(rawStrategy: RawStrategyJson
|
|
|
94
94
|
return Array.from(map.values());
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
export function extractSingleNonErrorOutputTypeHandle(job: JobJson): ResourceTypeIdentityJson | null {
|
|
98
|
+
const errorRoleId = CONSTANTS.Cosmos.ROLE_ErrorOutput;
|
|
99
|
+
const outputEntries = Object.entries(job.roles.outputDict).filter(([roleId]) => roleId !== errorRoleId);
|
|
100
|
+
if (!outputEntries || !outputEntries[0] || outputEntries.length !== 1) {
|
|
101
|
+
throw new Error(`Job ${job.identity} must have exactly one non-error output role to be branchable/loopable`);
|
|
102
|
+
} // ATTENTION_PUREIFY
|
|
103
|
+
const outputRole = outputEntries[0][1];
|
|
104
|
+
return outputRole.resourceTypeHandle;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
|
|
97
108
|
|
|
98
|
-
export function
|
|
109
|
+
export function extractResourceMapForType<TResource extends ResourceJson = ResourceJson>(
|
|
99
110
|
resourcesByTypeDict: Partial<Record<ResourceTypeIdentityJson, TResource[]>>,
|
|
100
111
|
resourceTypeHandle: ResourceTypeIdentityJson
|
|
101
112
|
): Map<ResourceIdentityJson, TResource> {
|
|
@@ -110,7 +121,7 @@ export function extractResourceMapForResourceType<TResource extends ResourceJson
|
|
|
110
121
|
}
|
|
111
122
|
|
|
112
123
|
// ATTENTION: should only need standalone type as type parameter, then we could extract the nuclueus type and identity type
|
|
113
|
-
export function
|
|
124
|
+
export function extractNucleusMapForType<
|
|
114
125
|
TKey extends string = string,
|
|
115
126
|
TNucleus extends { identity: string | number | boolean } = { identity: string | number | boolean },
|
|
116
127
|
TResource extends ResourceJson = ResourceJson
|
|
@@ -118,7 +129,7 @@ export function extractNucleusMapForResourceType<
|
|
|
118
129
|
resourcesByTypeDict: Partial<Record<ResourceTypeIdentityJson, TResource[]>>,
|
|
119
130
|
resourceTypeHandle: ResourceTypeIdentityJson,
|
|
120
131
|
): Map<TKey, TNucleus> {
|
|
121
|
-
const resourceMap =
|
|
132
|
+
const resourceMap = extractResourceMapForType<TResource>(resourcesByTypeDict, resourceTypeHandle);
|
|
122
133
|
const out = new Map<TKey, TNucleus>();
|
|
123
134
|
|
|
124
135
|
for (const resource of resourceMap.values()) {
|
|
@@ -4,6 +4,7 @@ import type {
|
|
|
4
4
|
ResourceMissingJson,
|
|
5
5
|
ResourceInputPotentialJson,
|
|
6
6
|
ResourceOutputPotentialJson,
|
|
7
|
+
ResourcePotentialJson,
|
|
7
8
|
StrategyStateJson,
|
|
8
9
|
} from '@toolproof-core/schema';
|
|
9
10
|
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
@@ -36,9 +37,7 @@ export function resolveResourceChain(
|
|
|
36
37
|
if (!bucket) return { status: 'unresolved', reason: 'not-found', path };
|
|
37
38
|
const entry = bucket[current.resourceRoleHandle] as (
|
|
38
39
|
| ResourceJson
|
|
39
|
-
|
|
|
40
|
-
| ResourceInputPotentialJson
|
|
41
|
-
| ResourceOutputPotentialJson
|
|
40
|
+
| ResourcePotentialJson
|
|
42
41
|
| undefined
|
|
43
42
|
);
|
|
44
43
|
if (!entry) return { status: 'unresolved', reason: 'not-found', path };
|