@toolproof-core/lib 1.0.2 → 1.0.4
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/artifacts/artifacts.d.ts +4 -3
- package/dist/artifacts/artifacts.d.ts.map +1 -1
- package/dist/firebase/firebaseAdminHelpers.d.ts +2 -2
- package/dist/firebase/firebaseAdminHelpers.d.ts.map +1 -1
- package/dist/firebase/firebaseAdminHelpers.js +10 -4
- package/dist/firebase/firebaseAdminHelpers.js.map +1 -1
- package/dist/types/types.d.ts +2 -5
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js.map +1 -1
- package/dist/utils/extractFrom.d.ts +5 -0
- package/dist/utils/extractFrom.d.ts.map +1 -0
- package/dist/utils/extractFrom.js +72 -0
- package/dist/utils/extractFrom.js.map +1 -0
- package/dist/utils/extractFromCosmosData.d.ts +9 -0
- package/dist/utils/extractFromCosmosData.d.ts.map +1 -0
- package/dist/utils/extractFromCosmosData.js +20 -0
- package/dist/utils/extractFromCosmosData.js.map +1 -0
- package/dist/utils/extractFromResourceDict.d.ts +12 -0
- package/dist/utils/extractFromResourceDict.d.ts.map +1 -0
- package/dist/utils/extractFromResourceDict.js +23 -0
- package/dist/utils/extractFromResourceDict.js.map +1 -0
- package/dist/utils/extractFromResourceMap.d.ts +12 -0
- package/dist/utils/extractFromResourceMap.d.ts.map +1 -0
- package/dist/utils/extractFromResourceMap.js +23 -0
- package/dist/utils/extractFromResourceMap.js.map +1 -0
- package/dist/utils/extractFromResourcesByResourceTypeHandle.d.ts +8 -0
- package/dist/utils/extractFromResourcesByResourceTypeHandle.d.ts.map +1 -0
- package/dist/utils/extractFromResourcesByResourceTypeHandle.js +31 -0
- package/dist/utils/extractFromResourcesByResourceTypeHandle.js.map +1 -0
- package/dist/utils/extractFromStrategy.d.ts +5 -0
- package/dist/utils/extractFromStrategy.d.ts.map +1 -0
- package/dist/utils/extractFromStrategy.js +72 -0
- package/dist/utils/extractFromStrategy.js.map +1 -0
- package/dist/utils/generateFrom.d.ts +4 -0
- package/dist/utils/generateFrom.d.ts.map +1 -0
- package/dist/utils/generateFrom.js +18 -0
- package/dist/utils/generateFrom.js.map +1 -0
- package/dist/utils/generateFromTo.d.ts +4 -0
- package/dist/utils/generateFromTo.d.ts.map +1 -0
- package/dist/utils/generateFromTo.js +18 -0
- package/dist/utils/generateFromTo.js.map +1 -0
- package/package.json +13 -9
- package/src/firebase/firebaseAdminHelpers.ts +3 -3
- package/src/types/types.ts +1 -5
- package/src/utils/extractFrom.ts +93 -0
- package/src/utils/extractFromResourcesByResourceTypeHandle.ts +55 -0
- package/src/utils/{creation.ts → generateFrom.ts} +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/utils/resourceMapExtraction.ts +0 -47
|
@@ -71,6 +71,7 @@ export declare const CONSTANTS: {
|
|
|
71
71
|
readonly ResourceMissing: "ResourceMissing";
|
|
72
72
|
readonly ResourceOutputPotential: "ResourceOutputPotential";
|
|
73
73
|
readonly ResourcePotential: "ResourcePotential";
|
|
74
|
+
readonly ResourceRole: "ResourceRole";
|
|
74
75
|
readonly ResourceRoleIdentity: "ResourceRoleIdentity";
|
|
75
76
|
readonly ResourceRoleValue: "ResourceRoleValue";
|
|
76
77
|
readonly ResourceShellBase: "ResourceShellBase";
|
|
@@ -81,7 +82,7 @@ export declare const CONSTANTS: {
|
|
|
81
82
|
readonly RoleBindingArray: "RoleBindingArray";
|
|
82
83
|
readonly RoleBindings: "RoleBindings";
|
|
83
84
|
readonly RoleBindingsFacet: "RoleBindingsFacet";
|
|
84
|
-
readonly
|
|
85
|
+
readonly RoleDict: "RoleDict";
|
|
85
86
|
readonly Roles: "Roles";
|
|
86
87
|
readonly RolesFacet: "RolesFacet";
|
|
87
88
|
readonly RunEvent: "RunEvent";
|
|
@@ -111,9 +112,9 @@ export declare const CONSTANTS: {
|
|
|
111
112
|
readonly StrategyState: "StrategyState";
|
|
112
113
|
readonly StrategyStateDelta: "StrategyStateDelta";
|
|
113
114
|
readonly StrategyStateFacet: "StrategyStateFacet";
|
|
115
|
+
readonly StrategyThreadDict: "StrategyThreadDict";
|
|
116
|
+
readonly StrategyThreadDictFacet: "StrategyThreadDictFacet";
|
|
114
117
|
readonly StrategyThreadIdentity: "StrategyThreadIdentity";
|
|
115
|
-
readonly StrategyThreadMap: "StrategyThreadMap";
|
|
116
|
-
readonly StrategyThreadMapFacet: "StrategyThreadMapFacet";
|
|
117
118
|
readonly TickRunEvent: "TickRunEvent";
|
|
118
119
|
readonly Timestamp: "Timestamp";
|
|
119
120
|
readonly TimestampFacet: "TimestampFacet";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/artifacts/artifacts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/artifacts/artifacts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCZ,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAEX,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ResourceTypeIdentityJson, StepKindJson } from '@toolproof-core/schema';
|
|
2
|
-
import type { IdentityName, IdentityStringByIdentityName, StepIdentityStringByStepKind,
|
|
2
|
+
import type { IdentityName, IdentityStringByIdentityName, StepIdentityStringByStepKind, ResourcesByResourceTypeHandle } from '../types/types.js';
|
|
3
3
|
export declare function getNewIdentity<K extends IdentityName>(identityName: K): IdentityStringByIdentityName<K>;
|
|
4
4
|
export declare function getNewStepIdentity<K extends StepKindJson>(stepKind: K): StepIdentityStringByStepKind<K>;
|
|
5
|
-
export declare function listResources(resourceTypeHandles: ResourceTypeIdentityJson[]): Promise<
|
|
5
|
+
export declare function listResources(resourceTypeHandles: ResourceTypeIdentityJson[]): Promise<ResourcesByResourceTypeHandle>;
|
|
6
6
|
//# sourceMappingURL=firebaseAdminHelpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebaseAdminHelpers.d.ts","sourceRoot":"","sources":["../../src/firebase/firebaseAdminHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,
|
|
1
|
+
{"version":3,"file":"firebaseAdminHelpers.d.ts","sourceRoot":"","sources":["../../src/firebase/firebaseAdminHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAWjJ,wBAAgB,cAAc,CAAC,CAAC,SAAS,YAAY,EAAE,YAAY,EAAE,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAQvG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAMvG;AAED,wBAAsB,aAAa,CAC/B,mBAAmB,EAAE,wBAAwB,EAAE,GAChD,OAAO,CAAC,6BAA6B,CAAC,CAsHxC"}
|
|
@@ -114,14 +114,19 @@ export async function listResources(resourceTypeHandles) {
|
|
|
114
114
|
// const resourceTypeHandle = root.resourceTypeHandle; // we already have this
|
|
115
115
|
const resourceRoleHandle = root.creationContext.resourceRoleHandle;
|
|
116
116
|
const jobStepHandle = root.creationContext.jobStepHandle;
|
|
117
|
-
const
|
|
117
|
+
const resourceShellKind = root.resourceShellKind;
|
|
118
|
+
const versionRaw = root.version;
|
|
119
|
+
const version = typeof versionRaw === 'number'
|
|
120
|
+
? versionRaw
|
|
121
|
+
: parseInt(String(versionRaw ?? ''), 10);
|
|
118
122
|
const path = root.path;
|
|
119
123
|
const timestamp = root.timestamp;
|
|
120
124
|
const missing = [
|
|
121
125
|
['identity', identity],
|
|
122
126
|
['resourceRoleHandle', resourceRoleHandle],
|
|
123
127
|
['jobStepHandle', jobStepHandle],
|
|
124
|
-
['
|
|
128
|
+
['resourceShellKind', resourceShellKind],
|
|
129
|
+
['version', Number.isFinite(version) ? String(version) : ''],
|
|
125
130
|
['timestamp', timestamp],
|
|
126
131
|
['path', path],
|
|
127
132
|
].filter(([_, v]) => typeof v !== 'string' || v.length === 0);
|
|
@@ -136,9 +141,10 @@ export async function listResources(resourceTypeHandles) {
|
|
|
136
141
|
resourceRoleHandle,
|
|
137
142
|
jobStepHandle,
|
|
138
143
|
},
|
|
139
|
-
|
|
140
|
-
|
|
144
|
+
resourceShellKind,
|
|
145
|
+
version,
|
|
141
146
|
timestamp: timestamp,
|
|
147
|
+
path: path,
|
|
142
148
|
nucleus: data,
|
|
143
149
|
};
|
|
144
150
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebaseAdminHelpers.js","sourceRoot":"","sources":["../../src/firebase/firebaseAdminHelpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"firebaseAdminHelpers.js","sourceRoot":"","sources":["../../src/firebase/firebaseAdminHelpers.ts"],"names":[],"mappings":"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"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import type { StepKindJson, ResourceJson,
|
|
1
|
+
import type { StepKindJson, ResourceJson, ResourceTypeIdentityJson } from '@toolproof-core/schema';
|
|
2
2
|
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
3
3
|
import { MAPPINGS } from '../artifacts/artifacts.js';
|
|
4
4
|
export type Bucket = typeof CONSTANTS.Persistence.Buckets.tp_resources;
|
|
5
5
|
export type Collection = keyof typeof CONSTANTS.Persistence.Collections;
|
|
6
6
|
export type SchemaLike = Record<string, unknown>;
|
|
7
|
-
export type
|
|
8
|
-
identity: ResourceRoleIdentityJson;
|
|
9
|
-
} & ResourceRoleValueJson;
|
|
10
|
-
export type ResourceMap = Record<ResourceTypeIdentityJson, ResourceJson[]>;
|
|
7
|
+
export type ResourcesByResourceTypeHandle = Record<ResourceTypeIdentityJson, ResourceJson[]>;
|
|
11
8
|
export type IdentityName = keyof typeof MAPPINGS.IdentityNameToIdentityPrefix;
|
|
12
9
|
export type IdentityStringByIdentityName<K extends IdentityName> = `${(typeof MAPPINGS.IdentityNameToIdentityPrefix)[K]}${string}`;
|
|
13
10
|
export type StepIdentityStringByStepKind<K extends StepKindJson> = `${(typeof MAPPINGS.StepKindToStepIdentityPrefix)[K]}${string}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,MAAM,MAAM,GAAG,OAAO,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;AAEvE,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC;AAExE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAC,wBAAwB,EAAE,YAAY,EAAE,CAAC,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,QAAQ,CAAC,4BAA4B,CAAC;AAE9E,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,YAAY,IAAI,GAAG,CAAC,OAAO,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;AAEnI,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,YAAY,IAAI,GAAG,CAAC,OAAO,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC"}
|
package/dist/types/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RawStrategyJson, JobIdentityJson, JobJson, JobStepJson, ResourceRoleJson } from '@toolproof-core/schema';
|
|
2
|
+
export declare function extractJobHandlesFromRawStrategy(rawStrategy: RawStrategyJson): JobIdentityJson[];
|
|
3
|
+
export declare function extractJobStepsFromRawStrategy(rawStrategy: RawStrategyJson): JobStepJson[];
|
|
4
|
+
export declare function extractResourceRolesFromRawStrategy(rawStrategy: RawStrategyJson, jobMap: Map<JobIdentityJson, JobJson>): ResourceRoleJson[];
|
|
5
|
+
//# sourceMappingURL=extractFrom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFrom.d.ts","sourceRoot":"","sources":["../../src/utils/extractFrom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,OAAO,EAEP,WAAW,EAGX,gBAAgB,EAEnB,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,mCAAmC,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAuB3I"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
2
|
+
export function extractJobHandlesFromRawStrategy(rawStrategy) {
|
|
3
|
+
const jobSteps = extractJobStepsFromRawStrategy(rawStrategy);
|
|
4
|
+
const ids = new Set();
|
|
5
|
+
for (const jStep of jobSteps) {
|
|
6
|
+
ids.add(jStep.jobHandle);
|
|
7
|
+
}
|
|
8
|
+
return Array.from(ids);
|
|
9
|
+
}
|
|
10
|
+
export function extractJobStepsFromRawStrategy(rawStrategy) {
|
|
11
|
+
const jobSteps = [];
|
|
12
|
+
const seen = new Set();
|
|
13
|
+
const addJobStep = (jobStep) => {
|
|
14
|
+
if (seen.has(jobStep.identity)) {
|
|
15
|
+
throw new Error(`Duplicate job step identity encountered: ${jobStep.identity}`);
|
|
16
|
+
}
|
|
17
|
+
seen.add(jobStep.identity);
|
|
18
|
+
jobSteps.push(jobStep);
|
|
19
|
+
};
|
|
20
|
+
const visitStep = (step) => {
|
|
21
|
+
switch (step.stepKind) {
|
|
22
|
+
case CONSTANTS.Enums.StepKind.job: {
|
|
23
|
+
addJobStep(step);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
case CONSTANTS.Enums.StepKind.branch: {
|
|
27
|
+
for (const conditional of step.cases) {
|
|
28
|
+
addJobStep(conditional.when);
|
|
29
|
+
addJobStep(conditional.what);
|
|
30
|
+
}
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
case CONSTANTS.Enums.StepKind.while:
|
|
34
|
+
case CONSTANTS.Enums.StepKind.for: {
|
|
35
|
+
addJobStep(step.case.when);
|
|
36
|
+
addJobStep(step.case.what);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
default: {
|
|
40
|
+
const _exhaustive = step;
|
|
41
|
+
return _exhaustive;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
for (const step of rawStrategy.steps) {
|
|
46
|
+
visitStep(step);
|
|
47
|
+
}
|
|
48
|
+
return jobSteps;
|
|
49
|
+
}
|
|
50
|
+
export function extractResourceRolesFromRawStrategy(rawStrategy, jobMap) {
|
|
51
|
+
const map = new Map();
|
|
52
|
+
const jobHandles = extractJobHandlesFromRawStrategy(rawStrategy);
|
|
53
|
+
for (const jobHandle of jobHandles) {
|
|
54
|
+
const job = jobMap.get(jobHandle);
|
|
55
|
+
if (!job)
|
|
56
|
+
continue;
|
|
57
|
+
for (const [rid, role] of Object.entries(job.roles.inputDict)) {
|
|
58
|
+
map.set(rid, {
|
|
59
|
+
identity: rid,
|
|
60
|
+
...role,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
for (const [rid, role] of Object.entries(job.roles.outputDict)) {
|
|
64
|
+
map.set(rid, {
|
|
65
|
+
identity: rid,
|
|
66
|
+
...role,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return Array.from(map.values());
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=extractFrom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFrom.js","sourceRoot":"","sources":["../../src/utils/extractFrom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson } from '@toolproof-core/schema';
|
|
2
|
+
import type { ResourcesByResourceTypeHandle } from '../types/types.js';
|
|
3
|
+
export declare function extractResourceDictForResourceType<TResource extends ResourceJson = ResourceJson>(resourcesByResourceTypeHandle: ResourcesByResourceTypeHandle, resourceTypeHandle: ResourceTypeIdentityJson): Record<ResourceIdentityJson, TResource>;
|
|
4
|
+
export declare function extractNucleusMapForResourceType<TKey extends string = string, TNucleus extends {
|
|
5
|
+
identity: string | number | boolean;
|
|
6
|
+
} = {
|
|
7
|
+
identity: string | number | boolean;
|
|
8
|
+
}, TResource extends ResourceJson = ResourceJson>(resourcesByResourceTypeHandle: ResourcesByResourceTypeHandle, resourceTypeHandle: ResourceTypeIdentityJson): Map<TKey, TNucleus>;
|
|
9
|
+
//# sourceMappingURL=extractFromCosmosData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromCosmosData.d.ts","sourceRoot":"","sources":["../../src/utils/extractFromCosmosData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAGvE,wBAAgB,kCAAkC,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC5F,6BAA6B,EAAE,6BAA6B,EAC5D,kBAAkB,EAAE,wBAAwB,GAC7C,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASzC;AAGD,wBAAgB,gCAAgC,CAC5C,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,6BAA6B,EAAE,6BAA6B,EAC5D,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAcrB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function extractResourceDictForResourceType(resourcesByResourceTypeHandle, resourceTypeHandle) {
|
|
2
|
+
const resources = (resourcesByResourceTypeHandle[resourceTypeHandle] ?? []);
|
|
3
|
+
const result = {};
|
|
4
|
+
for (const resource of resources) {
|
|
5
|
+
result[resource.identity] = resource;
|
|
6
|
+
}
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
export function extractNucleusMapForResourceType(resourcesByResourceTypeHandle, resourceTypeHandle) {
|
|
10
|
+
const resources = extractResourceDictForResourceType(resourcesByResourceTypeHandle, resourceTypeHandle);
|
|
11
|
+
const out = new Map();
|
|
12
|
+
for (const resource of Object.values(resources)) {
|
|
13
|
+
const data = resource.nucleus;
|
|
14
|
+
const value = data;
|
|
15
|
+
const key = String(value.identity);
|
|
16
|
+
out.set(key, value);
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=extractFromCosmosData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromCosmosData.js","sourceRoot":"","sources":["../../src/utils/extractFromCosmosData.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,kCAAkC,CAC9C,6BAA4D,EAC5D,kBAA4C;IAE5C,MAAM,SAAS,GAAG,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAgB,CAAC;IAC3F,MAAM,MAAM,GAA4C,EAA6C,CAAC;IAEtG,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,MAAM,UAAU,gCAAgC,CAK5C,6BAA4D,EAC5D,kBAA4C;IAE5C,MAAM,SAAS,GAAG,kCAAkC,CAAY,6BAA6B,EAAE,kBAAkB,CAAC,CAAC;IACnH,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAI,QAAgB,CAAC,OAAkB,CAAC;QAElD,MAAM,KAAK,GAAG,IAAgB,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAS,CAAC;QAE3C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson } from '@toolproof-core/schema';
|
|
2
|
+
import type { ResourceDict } from '../types/types.js';
|
|
3
|
+
export declare function extractResourcesByType<TResource extends ResourceJson = ResourceJson>(resourceDict: ResourceDict, resourceTypeHandle: ResourceTypeIdentityJson): Record<ResourceIdentityJson, TResource>;
|
|
4
|
+
/**
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractNucleusMap<TKey extends string = string, TNucleus extends {
|
|
8
|
+
identity: string | number | boolean;
|
|
9
|
+
} = {
|
|
10
|
+
identity: string | number | boolean;
|
|
11
|
+
}, TResource extends ResourceJson = ResourceJson>(resourceDict: ResourceDict, resourceTypeHandle: ResourceTypeIdentityJson): Map<TKey, TNucleus>;
|
|
12
|
+
//# sourceMappingURL=extractFromResourceDict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromResourceDict.d.ts","sourceRoot":"","sources":["../../src/utils/extractFromResourceDict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,EAChF,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,wBAAwB,GAC7C,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,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,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAcrB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function extractResourcesByType(resourceDict, resourceTypeHandle) {
|
|
2
|
+
const resources = (resourceDict[resourceTypeHandle] ?? []);
|
|
3
|
+
const result = {};
|
|
4
|
+
for (const resource of resources) {
|
|
5
|
+
result[resource.identity] = resource;
|
|
6
|
+
}
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
|
|
11
|
+
*/
|
|
12
|
+
export function extractNucleusMap(resourceDict, resourceTypeHandle) {
|
|
13
|
+
const resources = extractResourcesByType(resourceDict, resourceTypeHandle);
|
|
14
|
+
const out = new Map();
|
|
15
|
+
for (const resource of Object.values(resources)) {
|
|
16
|
+
const data = resource.nucleus;
|
|
17
|
+
const value = data;
|
|
18
|
+
const key = String(value.identity);
|
|
19
|
+
out.set(key, value);
|
|
20
|
+
}
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=extractFromResourceDict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromResourceDict.js","sourceRoot":"","sources":["../../src/utils/extractFromResourceDict.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,sBAAsB,CAClC,YAA0B,EAC1B,kBAA4C;IAE5C,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAgB,CAAC;IAC1E,MAAM,MAAM,GAA4C,EAA6C,CAAC;IAEtG,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAK7B,YAA0B,EAC1B,kBAA4C;IAE5C,MAAM,SAAS,GAAG,sBAAsB,CAAY,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACtF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAI,QAAgB,CAAC,OAAkB,CAAC;QAElD,MAAM,KAAK,GAAG,IAAgB,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAS,CAAC;QAE3C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson } from '@toolproof-core/schema';
|
|
2
|
+
import type { ResourceMap } from '../types/types.js';
|
|
3
|
+
export declare function extractResourcesByType<TResource extends ResourceJson = ResourceJson>(resourceMap: ResourceMap, resourceTypeHandle: ResourceTypeIdentityJson): Record<ResourceIdentityJson, TResource>;
|
|
4
|
+
/**
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractNucleusMap<TKey extends string = string, TNucleus extends {
|
|
8
|
+
identity: string | number | boolean;
|
|
9
|
+
} = {
|
|
10
|
+
identity: string | number | boolean;
|
|
11
|
+
}, TResource extends ResourceJson = ResourceJson>(resourceMap: ResourceMap, resourceTypeHandle: ResourceTypeIdentityJson): Map<TKey, TNucleus>;
|
|
12
|
+
//# sourceMappingURL=extractFromResourceMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromResourceMap.d.ts","sourceRoot":"","sources":["../../src/utils/extractFromResourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,EAChF,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,wBAAwB,GAC7C,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,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,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAcrB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function extractResourcesByType(resourceMap, resourceTypeHandle) {
|
|
2
|
+
const resources = (resourceMap[resourceTypeHandle] ?? []);
|
|
3
|
+
const result = {};
|
|
4
|
+
for (const resource of resources) {
|
|
5
|
+
result[resource.identity] = resource;
|
|
6
|
+
}
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
|
|
11
|
+
*/
|
|
12
|
+
export function extractNucleusMap(resourceMap, resourceTypeHandle) {
|
|
13
|
+
const resources = extractResourcesByType(resourceMap, resourceTypeHandle);
|
|
14
|
+
const out = new Map();
|
|
15
|
+
for (const resource of Object.values(resources)) {
|
|
16
|
+
const data = resource.nucleus;
|
|
17
|
+
const value = data;
|
|
18
|
+
const key = String(value.identity);
|
|
19
|
+
out.set(key, value);
|
|
20
|
+
}
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=extractFromResourceMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromResourceMap.js","sourceRoot":"","sources":["../../src/utils/extractFromResourceMap.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,sBAAsB,CAClC,WAAwB,EACxB,kBAA4C;IAE5C,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAgB,CAAC;IACzE,MAAM,MAAM,GAA4C,EAA6C,CAAC;IAEtG,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAK7B,WAAwB,EACxB,kBAA4C;IAE5C,MAAM,SAAS,GAAG,sBAAsB,CAAY,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAI,QAAgB,CAAC,OAAkB,CAAC;QAElD,MAAM,KAAK,GAAG,IAAgB,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAS,CAAC;QAE3C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson } from '@toolproof-core/schema';
|
|
2
|
+
export declare function extractResourceMapForResourceType<TResource extends ResourceJson = ResourceJson>(resourcesByResourceTypeHandle: Partial<Record<ResourceTypeIdentityJson, TResource[]>>, resourceTypeHandle: ResourceTypeIdentityJson): Map<ResourceIdentityJson, TResource>;
|
|
3
|
+
export declare function extractNucleusMapForResourceType<TKey extends string = string, TNucleus extends {
|
|
4
|
+
identity: string | number | boolean;
|
|
5
|
+
} = {
|
|
6
|
+
identity: string | number | boolean;
|
|
7
|
+
}, TResource extends ResourceJson = ResourceJson>(resourcesByResourceTypeHandle: Partial<Record<ResourceTypeIdentityJson, TResource[]>>, resourceTypeHandle: ResourceTypeIdentityJson): Map<TKey, TNucleus>;
|
|
8
|
+
//# sourceMappingURL=extractFromResourcesByResourceTypeHandle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromResourcesByResourceTypeHandle.d.ts","sourceRoot":"","sources":["../../src/utils/extractFromResourcesByResourceTypeHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAGhC,wBAAgB,iCAAiC,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC3F,6BAA6B,EAAE,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,EAAE,CAAC,CAAC,EACrF,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAStC;AAGD,wBAAgB,gCAAgC,CAC5C,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,6BAA6B,EAAE,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,EAAE,CAAC,CAAC,EACrF,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAyBrB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function extractResourceMapForResourceType(resourcesByResourceTypeHandle, resourceTypeHandle) {
|
|
2
|
+
const resources = resourcesByResourceTypeHandle[resourceTypeHandle] ?? [];
|
|
3
|
+
const map = new Map();
|
|
4
|
+
for (const resource of resources) {
|
|
5
|
+
map.set(resource.identity, resource);
|
|
6
|
+
}
|
|
7
|
+
return map;
|
|
8
|
+
}
|
|
9
|
+
// ATTENTION: should only need standalone type as type parameter, then we could extract the nuclueus type and identity type
|
|
10
|
+
export function extractNucleusMapForResourceType(resourcesByResourceTypeHandle, resourceTypeHandle) {
|
|
11
|
+
const resourceMap = extractResourceMapForResourceType(resourcesByResourceTypeHandle, resourceTypeHandle);
|
|
12
|
+
const out = new Map();
|
|
13
|
+
for (const resource of resourceMap.values()) {
|
|
14
|
+
const data = resource.nucleus;
|
|
15
|
+
if (data === null || data === undefined) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (typeof data !== 'object') {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const maybeIdentity = data.identity;
|
|
22
|
+
if (maybeIdentity === null || maybeIdentity === undefined) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const value = data;
|
|
26
|
+
const key = String(maybeIdentity);
|
|
27
|
+
out.set(key, value);
|
|
28
|
+
}
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=extractFromResourcesByResourceTypeHandle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromResourcesByResourceTypeHandle.js","sourceRoot":"","sources":["../../src/utils/extractFromResourcesByResourceTypeHandle.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,iCAAiC,CAC7C,6BAAqF,EACrF,kBAA4C;IAE5C,MAAM,SAAS,GAAG,6BAA6B,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEvD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,2HAA2H;AAC3H,MAAM,UAAU,gCAAgC,CAK5C,6BAAqF,EACrF,kBAA4C;IAE5C,MAAM,WAAW,GAAG,iCAAiC,CAAY,6BAA6B,EAAE,kBAAkB,CAAC,CAAC;IACpH,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAI,QAAgB,CAAC,OAAkB,CAAC;QAClD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,SAAS;QACb,CAAC;QAED,MAAM,aAAa,GAAI,IAAY,CAAC,QAAmB,CAAC;QACxD,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACxD,SAAS;QACb,CAAC;QAED,MAAM,KAAK,GAAG,IAAgB,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAS,CAAC;QAE1C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RawStrategyJson, JobIdentityJson, JobJson, JobStepJson, ResourceRoleJson } from '@toolproof-core/schema';
|
|
2
|
+
export declare function extractJobHandlesFromRawStrategy(rawStrategy: RawStrategyJson): JobIdentityJson[];
|
|
3
|
+
export declare function extractJobStepsFromRawStrategy(rawStrategy: RawStrategyJson): JobStepJson[];
|
|
4
|
+
export declare function extractResourceRolesFromRawStrategy(rawStrategy: RawStrategyJson, jobMap: Map<JobIdentityJson, JobJson>): ResourceRoleJson[];
|
|
5
|
+
//# sourceMappingURL=extractFromStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromStrategy.d.ts","sourceRoot":"","sources":["../../src/utils/extractFromStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,OAAO,EAEP,WAAW,EAGX,gBAAgB,EAEnB,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,mCAAmC,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAuB3I"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
2
|
+
export function extractJobHandlesFromRawStrategy(rawStrategy) {
|
|
3
|
+
const jobSteps = extractJobStepsFromRawStrategy(rawStrategy);
|
|
4
|
+
const ids = new Set();
|
|
5
|
+
for (const jStep of jobSteps) {
|
|
6
|
+
ids.add(jStep.jobHandle);
|
|
7
|
+
}
|
|
8
|
+
return Array.from(ids);
|
|
9
|
+
}
|
|
10
|
+
export function extractJobStepsFromRawStrategy(rawStrategy) {
|
|
11
|
+
const jobSteps = [];
|
|
12
|
+
const seen = new Set();
|
|
13
|
+
const addJobStep = (jobStep) => {
|
|
14
|
+
if (seen.has(jobStep.identity)) {
|
|
15
|
+
throw new Error(`Duplicate job step identity encountered: ${jobStep.identity}`);
|
|
16
|
+
}
|
|
17
|
+
seen.add(jobStep.identity);
|
|
18
|
+
jobSteps.push(jobStep);
|
|
19
|
+
};
|
|
20
|
+
const visitStep = (step) => {
|
|
21
|
+
switch (step.stepKind) {
|
|
22
|
+
case CONSTANTS.Enums.StepKind.job: {
|
|
23
|
+
addJobStep(step);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
case CONSTANTS.Enums.StepKind.branch: {
|
|
27
|
+
for (const conditional of step.cases) {
|
|
28
|
+
addJobStep(conditional.when);
|
|
29
|
+
addJobStep(conditional.what);
|
|
30
|
+
}
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
case CONSTANTS.Enums.StepKind.while:
|
|
34
|
+
case CONSTANTS.Enums.StepKind.for: {
|
|
35
|
+
addJobStep(step.case.when);
|
|
36
|
+
addJobStep(step.case.what);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
default: {
|
|
40
|
+
const _exhaustive = step;
|
|
41
|
+
return _exhaustive;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
for (const step of rawStrategy.steps) {
|
|
46
|
+
visitStep(step);
|
|
47
|
+
}
|
|
48
|
+
return jobSteps;
|
|
49
|
+
}
|
|
50
|
+
export function extractResourceRolesFromRawStrategy(rawStrategy, jobMap) {
|
|
51
|
+
const map = new Map();
|
|
52
|
+
const jobHandles = extractJobHandlesFromRawStrategy(rawStrategy);
|
|
53
|
+
for (const jobHandle of jobHandles) {
|
|
54
|
+
const job = jobMap.get(jobHandle);
|
|
55
|
+
if (!job)
|
|
56
|
+
continue;
|
|
57
|
+
for (const [rid, role] of Object.entries(job.roles.inputMap)) {
|
|
58
|
+
map.set(rid, {
|
|
59
|
+
identity: rid,
|
|
60
|
+
...role,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
for (const [rid, role] of Object.entries(job.roles.outputMap)) {
|
|
64
|
+
map.set(rid, {
|
|
65
|
+
identity: rid,
|
|
66
|
+
...role,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return Array.from(map.values());
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=extractFromStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractFromStrategy.js","sourceRoot":"","sources":["../../src/utils/extractFromStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson, ResourceOutputPotentialJson } from '@toolproof-core/schema';
|
|
2
|
+
export declare function generatePath(resourceTypeHandle: ResourceTypeIdentityJson, identity: ResourceIdentityJson): string;
|
|
3
|
+
export declare function generateMaterializedFromOutputPotential(outputPotential: ResourceOutputPotentialJson, nucleus: unknown, timestamp?: string): ResourceJson;
|
|
4
|
+
//# sourceMappingURL=generateFrom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateFrom.d.ts","sourceRoot":"","sources":["../../src/utils/generateFrom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAGxI,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAEjH;AAED,wBAAgB,uCAAuC,CACnD,eAAe,EAAE,2BAA2B,EAC5C,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACnB,YAAY,CAed"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function generatePath(resourceTypeHandle, identity) {
|
|
2
|
+
return `${resourceTypeHandle}/${identity}.json`;
|
|
3
|
+
}
|
|
4
|
+
export function generateMaterializedFromOutputPotential(outputPotential, nucleus, timestamp) {
|
|
5
|
+
const { identity, resourceTypeHandle, creationContext } = outputPotential;
|
|
6
|
+
const path = generatePath(resourceTypeHandle, identity);
|
|
7
|
+
return {
|
|
8
|
+
identity,
|
|
9
|
+
resourceTypeHandle,
|
|
10
|
+
creationContext,
|
|
11
|
+
resourceShellKind: 'materialized',
|
|
12
|
+
version: 1,
|
|
13
|
+
timestamp: timestamp ?? new Date().toISOString(), // Preserve original timestamp when copying
|
|
14
|
+
path,
|
|
15
|
+
nucleus,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=generateFrom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateFrom.js","sourceRoot":"","sources":["../../src/utils/generateFrom.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAAC,kBAA4C,EAAE,QAA8B;IACrG,OAAO,GAAG,kBAAkB,IAAI,QAAQ,OAAO,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,uCAAuC,CACnD,eAA4C,EAC5C,OAAgB,EAChB,SAAkB;IAElB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC;IAE1E,MAAM,IAAI,GAAG,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO;QACH,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,iBAAiB,EAAE,cAAc;QACjC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,2CAA2C;QAC7F,IAAI;QACJ,OAAO;KACV,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson, ResourceOutputPotentialJson } from '@toolproof-core/schema';
|
|
2
|
+
export declare function generatePath(resourceTypeHandle: ResourceTypeIdentityJson, identity: ResourceIdentityJson): string;
|
|
3
|
+
export declare function fromOutputPotentialToMaterialized(outputPotential: ResourceOutputPotentialJson, nucleus: unknown, timestamp?: string): ResourceJson;
|
|
4
|
+
//# sourceMappingURL=generateFromTo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateFromTo.d.ts","sourceRoot":"","sources":["../../src/utils/generateFromTo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAGxI,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAEjH;AAED,wBAAgB,iCAAiC,CAC7C,eAAe,EAAE,2BAA2B,EAC5C,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACnB,YAAY,CAed"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function generatePath(resourceTypeHandle, identity) {
|
|
2
|
+
return `${resourceTypeHandle}/${identity}.json`;
|
|
3
|
+
}
|
|
4
|
+
export function fromOutputPotentialToMaterialized(outputPotential, nucleus, timestamp) {
|
|
5
|
+
const { identity, resourceTypeHandle, creationContext } = outputPotential;
|
|
6
|
+
const path = generatePath(resourceTypeHandle, identity);
|
|
7
|
+
return {
|
|
8
|
+
identity,
|
|
9
|
+
resourceTypeHandle,
|
|
10
|
+
creationContext,
|
|
11
|
+
resourceShellKind: 'materialized',
|
|
12
|
+
version: 1,
|
|
13
|
+
timestamp: timestamp ?? new Date().toISOString(), // Preserve original timestamp when copying
|
|
14
|
+
path,
|
|
15
|
+
nucleus,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=generateFromTo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateFromTo.js","sourceRoot":"","sources":["../../src/utils/generateFromTo.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAAC,kBAA4C,EAAE,QAA8B;IACrG,OAAO,GAAG,kBAAkB,IAAI,QAAQ,OAAO,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,eAA4C,EAC5C,OAAgB,EAChB,SAAkB;IAElB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC;IAE1E,MAAM,IAAI,GAAG,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO;QACH,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,iBAAiB,EAAE,cAAc;QACjC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,2CAA2C;QAC7F,IAAI;QACJ,OAAO;KACV,CAAC;AACN,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.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,13 +15,17 @@
|
|
|
15
15
|
"types": "./dist/types/types.d.ts",
|
|
16
16
|
"import": "./dist/types/types.js"
|
|
17
17
|
},
|
|
18
|
-
"./
|
|
19
|
-
"types": "./dist/utils/
|
|
20
|
-
"import": "./dist/utils/
|
|
18
|
+
"./extract-from": {
|
|
19
|
+
"types": "./dist/utils/extractFrom.d.ts",
|
|
20
|
+
"import": "./dist/utils/extractFrom.js"
|
|
21
21
|
},
|
|
22
|
-
"./
|
|
23
|
-
"types": "./dist/utils/
|
|
24
|
-
"import": "./dist/utils/
|
|
22
|
+
"./extract-from-resources-by-resource-type-handle": {
|
|
23
|
+
"types": "./dist/utils/extractFromResourcesByResourceTypeHandle.d.ts",
|
|
24
|
+
"import": "./dist/utils/extractFromResourcesByResourceTypeHandle.js"
|
|
25
|
+
},
|
|
26
|
+
"./generate-from": {
|
|
27
|
+
"types": "./dist/utils/generateFrom.d.ts",
|
|
28
|
+
"import": "./dist/utils/generateFrom.js"
|
|
25
29
|
},
|
|
26
30
|
"./firebase-admin-init": {
|
|
27
31
|
"types": "./dist/_lib/setup/firebaseAdminInit.d.ts",
|
|
@@ -36,8 +40,8 @@
|
|
|
36
40
|
"@types/node": "^22.0.0"
|
|
37
41
|
},
|
|
38
42
|
"dependencies": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
43
|
+
"@toolproof-core/schema": "^1.0.11",
|
|
44
|
+
"firebase-admin": "^13.7.0"
|
|
41
45
|
},
|
|
42
46
|
"scripts": {
|
|
43
47
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -3,7 +3,7 @@ import type {
|
|
|
3
3
|
ResourceTypeIdentityJson,
|
|
4
4
|
StepKindJson,
|
|
5
5
|
} from '@toolproof-core/schema';
|
|
6
|
-
import type { IdentityName, IdentityStringByIdentityName, StepIdentityStringByStepKind,
|
|
6
|
+
import type { IdentityName, IdentityStringByIdentityName, StepIdentityStringByStepKind, ResourcesByResourceTypeHandle } from '../types/types.js';
|
|
7
7
|
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
8
8
|
import { MAPPINGS } from '../artifacts/artifacts.js';
|
|
9
9
|
import { dbAdmin, storageAdmin } from "../_lib/setup/firebaseAdminInit.js";
|
|
@@ -34,7 +34,7 @@ export function getNewStepIdentity<K extends StepKindJson>(stepKind: K): StepIde
|
|
|
34
34
|
|
|
35
35
|
export async function listResources(
|
|
36
36
|
resourceTypeHandles: ResourceTypeIdentityJson[]
|
|
37
|
-
): Promise<
|
|
37
|
+
): Promise<ResourcesByResourceTypeHandle> {
|
|
38
38
|
const bucket_resources = storageAdmin.bucket(CONSTANTS.Persistence.Buckets.tp_resources);
|
|
39
39
|
const bucket_strategies = storageAdmin.bucket(CONSTANTS.Persistence.Buckets.tp_strategies);
|
|
40
40
|
|
|
@@ -151,7 +151,7 @@ export async function listResources(
|
|
|
151
151
|
return [resourceTypeHandle, items] as const;
|
|
152
152
|
})
|
|
153
153
|
);
|
|
154
|
-
return Object.fromEntries(entries) as
|
|
154
|
+
return Object.fromEntries(entries) as ResourcesByResourceTypeHandle;
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
|
package/src/types/types.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
StepKindJson,
|
|
3
3
|
ResourceJson,
|
|
4
|
-
ResourceRoleIdentityJson,
|
|
5
|
-
ResourceRoleValueJson,
|
|
6
4
|
ResourceTypeIdentityJson,
|
|
7
5
|
} from '@toolproof-core/schema';
|
|
8
6
|
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
@@ -14,9 +12,7 @@ export type Collection = keyof typeof CONSTANTS.Persistence.Collections;
|
|
|
14
12
|
|
|
15
13
|
export type SchemaLike = Record<string, unknown>;
|
|
16
14
|
|
|
17
|
-
export type
|
|
18
|
-
|
|
19
|
-
export type ResourceMap = Record<ResourceTypeIdentityJson, ResourceJson[]>;
|
|
15
|
+
export type ResourcesByResourceTypeHandle = Record<ResourceTypeIdentityJson, ResourceJson[]>;
|
|
20
16
|
|
|
21
17
|
export type IdentityName = keyof typeof MAPPINGS.IdentityNameToIdentityPrefix;
|
|
22
18
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
RawStrategyJson,
|
|
3
|
+
JobIdentityJson,
|
|
4
|
+
JobJson,
|
|
5
|
+
JobStepIdentityJson,
|
|
6
|
+
JobStepJson,
|
|
7
|
+
StepJson,
|
|
8
|
+
ResourceRoleIdentityJson,
|
|
9
|
+
ResourceRoleJson,
|
|
10
|
+
ErrorJson
|
|
11
|
+
} from '@toolproof-core/schema';
|
|
12
|
+
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
export function extractJobHandlesFromRawStrategy(rawStrategy: RawStrategyJson): JobIdentityJson[] {
|
|
16
|
+
const jobSteps = extractJobStepsFromRawStrategy(rawStrategy);
|
|
17
|
+
const ids = new Set<JobIdentityJson>();
|
|
18
|
+
for (const jStep of jobSteps) {
|
|
19
|
+
ids.add(jStep.jobHandle);
|
|
20
|
+
}
|
|
21
|
+
return Array.from(ids);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function extractJobStepsFromRawStrategy(rawStrategy: RawStrategyJson): JobStepJson[] {
|
|
25
|
+
const jobSteps: JobStepJson[] = [];
|
|
26
|
+
const seen = new Set<JobStepIdentityJson>();
|
|
27
|
+
|
|
28
|
+
const addJobStep = (jobStep: JobStepJson) => {
|
|
29
|
+
if (seen.has(jobStep.identity)) {
|
|
30
|
+
throw new Error(`Duplicate job step identity encountered: ${jobStep.identity}`);
|
|
31
|
+
}
|
|
32
|
+
seen.add(jobStep.identity);
|
|
33
|
+
jobSteps.push(jobStep);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const visitStep = (step: StepJson) => {
|
|
37
|
+
switch (step.stepKind) {
|
|
38
|
+
case CONSTANTS.Enums.StepKind.job: {
|
|
39
|
+
addJobStep(step);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
case CONSTANTS.Enums.StepKind.branch: {
|
|
43
|
+
for (const conditional of step.cases) {
|
|
44
|
+
addJobStep(conditional.when);
|
|
45
|
+
addJobStep(conditional.what);
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
case CONSTANTS.Enums.StepKind.while:
|
|
50
|
+
case CONSTANTS.Enums.StepKind.for: {
|
|
51
|
+
addJobStep(step.case.when);
|
|
52
|
+
addJobStep(step.case.what);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
default: {
|
|
56
|
+
const _exhaustive: never = step;
|
|
57
|
+
return _exhaustive;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
for (const step of rawStrategy.steps) {
|
|
63
|
+
visitStep(step);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return jobSteps;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
export function extractResourceRolesFromRawStrategy(rawStrategy: RawStrategyJson, jobMap: Map<JobIdentityJson, JobJson>): ResourceRoleJson[] {
|
|
71
|
+
const map = new Map<ResourceRoleIdentityJson, ResourceRoleJson>();
|
|
72
|
+
const jobHandles = extractJobHandlesFromRawStrategy(rawStrategy);
|
|
73
|
+
|
|
74
|
+
for (const jobHandle of jobHandles) {
|
|
75
|
+
const job = jobMap.get(jobHandle);
|
|
76
|
+
if (!job) continue;
|
|
77
|
+
|
|
78
|
+
for (const [rid, role] of Object.entries(job.roles.inputDict)) {
|
|
79
|
+
map.set(rid as ResourceRoleIdentityJson, {
|
|
80
|
+
identity: rid as ResourceRoleIdentityJson,
|
|
81
|
+
...role,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
for (const [rid, role] of Object.entries(job.roles.outputDict)) {
|
|
85
|
+
map.set(rid as ResourceRoleIdentityJson, {
|
|
86
|
+
identity: rid as ResourceRoleIdentityJson,
|
|
87
|
+
...role,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return Array.from(map.values());
|
|
93
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ResourceIdentityJson,
|
|
3
|
+
ResourceTypeIdentityJson,
|
|
4
|
+
ResourceJson,
|
|
5
|
+
} from '@toolproof-core/schema';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export function extractResourceMapForResourceType<TResource extends ResourceJson = ResourceJson>(
|
|
9
|
+
resourcesByResourceTypeHandle: Partial<Record<ResourceTypeIdentityJson, TResource[]>>,
|
|
10
|
+
resourceTypeHandle: ResourceTypeIdentityJson
|
|
11
|
+
): Map<ResourceIdentityJson, TResource> {
|
|
12
|
+
const resources = resourcesByResourceTypeHandle[resourceTypeHandle] ?? [];
|
|
13
|
+
const map = new Map<ResourceIdentityJson, TResource>();
|
|
14
|
+
|
|
15
|
+
for (const resource of resources) {
|
|
16
|
+
map.set(resource.identity, resource);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return map;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ATTENTION: should only need standalone type as type parameter, then we could extract the nuclueus type and identity type
|
|
23
|
+
export function extractNucleusMapForResourceType<
|
|
24
|
+
TKey extends string = string,
|
|
25
|
+
TNucleus extends { identity: string | number | boolean } = { identity: string | number | boolean },
|
|
26
|
+
TResource extends ResourceJson = ResourceJson
|
|
27
|
+
>(
|
|
28
|
+
resourcesByResourceTypeHandle: Partial<Record<ResourceTypeIdentityJson, TResource[]>>,
|
|
29
|
+
resourceTypeHandle: ResourceTypeIdentityJson,
|
|
30
|
+
): Map<TKey, TNucleus> {
|
|
31
|
+
const resourceMap = extractResourceMapForResourceType<TResource>(resourcesByResourceTypeHandle, resourceTypeHandle);
|
|
32
|
+
const out = new Map<TKey, TNucleus>();
|
|
33
|
+
|
|
34
|
+
for (const resource of resourceMap.values()) {
|
|
35
|
+
const data = (resource as any).nucleus as unknown;
|
|
36
|
+
if (data === null || data === undefined) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (typeof data !== 'object') {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const maybeIdentity = (data as any).identity as unknown;
|
|
44
|
+
if (maybeIdentity === null || maybeIdentity === undefined) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const value = data as TNucleus;
|
|
49
|
+
const key = String(maybeIdentity) as TKey;
|
|
50
|
+
|
|
51
|
+
out.set(key, value);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
@@ -5,7 +5,7 @@ export function generatePath(resourceTypeHandle: ResourceTypeIdentityJson, ident
|
|
|
5
5
|
return `${resourceTypeHandle}/${identity}.json`;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export function
|
|
8
|
+
export function generateMaterializedFromOutputPotential(
|
|
9
9
|
outputPotential: ResourceOutputPotentialJson,
|
|
10
10
|
nucleus: unknown,
|
|
11
11
|
timestamp?: string
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/_lib/setup/firebaseadmininit.ts","./src/artifacts/artifacts.ts","./src/firebase/firebaseadminhelpers.ts","./src/types/types.ts","./src/utils/
|
|
1
|
+
{"root":["./src/_lib/setup/firebaseadmininit.ts","./src/artifacts/artifacts.ts","./src/firebase/firebaseadminhelpers.ts","./src/types/types.ts","./src/utils/extractfrom.ts","./src/utils/extractfromresourcesbyresourcetypehandle.ts","./src/utils/generatefrom.ts"],"version":"5.9.3"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
ResourceIdentityJson,
|
|
3
|
-
ResourceTypeIdentityJson,
|
|
4
|
-
ResourceJson,
|
|
5
|
-
} from '@toolproof-core/schema';
|
|
6
|
-
import type { ResourceMap } from '../types/types.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export function extractResourcesByType<TResource extends ResourceJson = ResourceJson>(
|
|
10
|
-
resourceMap: ResourceMap,
|
|
11
|
-
resourceTypeHandle: ResourceTypeIdentityJson
|
|
12
|
-
): Record<ResourceIdentityJson, TResource> {
|
|
13
|
-
const resources = (resourceMap[resourceTypeHandle] ?? []) as TResource[];
|
|
14
|
-
const result: Record<ResourceIdentityJson, TResource> = {} as Record<ResourceIdentityJson, TResource>;
|
|
15
|
-
|
|
16
|
-
for (const resource of resources) {
|
|
17
|
-
result[resource.identity] = resource;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
*/
|
|
26
|
-
export function extractNucleusMap<
|
|
27
|
-
TKey extends string = string,
|
|
28
|
-
TNucleus extends { identity: string | number | boolean } = { identity: string | number | boolean },
|
|
29
|
-
TResource extends ResourceJson = ResourceJson
|
|
30
|
-
>(
|
|
31
|
-
resourceMap: ResourceMap,
|
|
32
|
-
resourceTypeHandle: ResourceTypeIdentityJson,
|
|
33
|
-
): Map<TKey, TNucleus> {
|
|
34
|
-
const resources = extractResourcesByType<TResource>(resourceMap, resourceTypeHandle);
|
|
35
|
-
const out = new Map<TKey, TNucleus>();
|
|
36
|
-
|
|
37
|
-
for (const resource of Object.values(resources)) {
|
|
38
|
-
const data = (resource as any).nucleus as unknown;
|
|
39
|
-
|
|
40
|
-
const value = data as TNucleus;
|
|
41
|
-
const key = String(value.identity) as TKey;
|
|
42
|
-
|
|
43
|
-
out.set(key, value);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return out;
|
|
47
|
-
}
|