@toolproof-core/lib 1.0.14 → 1.0.16
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 +3 -3
- package/dist/integrations/firebase/createRunnableStrategy.d.ts +3 -0
- package/dist/integrations/firebase/createRunnableStrategy.d.ts.map +1 -0
- package/dist/integrations/firebase/createRunnableStrategy.js +10 -0
- package/dist/integrations/firebase/createRunnableStrategy.js.map +1 -0
- package/dist/integrations/firebase/createStep.d.ts +11 -0
- package/dist/integrations/firebase/createStep.d.ts.map +1 -0
- package/dist/integrations/firebase/createStep.js +43 -0
- package/dist/integrations/firebase/createStep.js.map +1 -0
- package/dist/integrations/firebase/firebaseAdminHelpers.d.ts +6 -0
- package/dist/integrations/firebase/firebaseAdminHelpers.d.ts.map +1 -0
- package/dist/integrations/firebase/firebaseAdminHelpers.js +154 -0
- package/dist/integrations/firebase/firebaseAdminHelpers.js.map +1 -0
- package/dist/integrations/firebase/firebaseAdminInit.d.ts +4 -0
- package/dist/integrations/firebase/firebaseAdminInit.d.ts.map +1 -0
- package/{src/_lib/setup/firebaseAdminInit.ts → dist/integrations/firebase/firebaseAdminInit.js} +33 -38
- package/dist/integrations/firebase/firebaseAdminInit.js.map +1 -0
- package/dist/utils/creation/resourceCreation.d.ts +9 -0
- package/dist/utils/creation/resourceCreation.d.ts.map +1 -0
- package/dist/utils/creation/resourceCreation.js +62 -0
- package/dist/utils/creation/resourceCreation.js.map +1 -0
- package/dist/utils/creation/runnableStrategyCreation.d.ts +4 -0
- package/dist/utils/creation/runnableStrategyCreation.d.ts.map +1 -0
- package/dist/utils/creation/runnableStrategyCreation.js +27 -0
- package/dist/utils/creation/runnableStrategyCreation.js.map +1 -0
- package/dist/utils/creation/stepCreation.d.ts +34 -0
- package/dist/utils/creation/stepCreation.d.ts.map +1 -0
- package/dist/utils/creation/stepCreation.js +89 -0
- package/dist/utils/creation/stepCreation.js.map +1 -0
- package/dist/utils/extractData.js +3 -3
- package/dist/utils/extractData.js.map +1 -1
- package/package.json +12 -12
- package/src/integrations/firebase/createRunnableStrategy.ts +20 -0
- package/src/integrations/firebase/createStep.ts +71 -0
- package/src/{firebase → integrations/firebase}/firebaseAdminHelpers.ts +87 -49
- package/src/integrations/firebase/firebaseAdminInit.ts +39 -0
- package/src/utils/{createResource.ts → creation/resourceCreation.ts} +9 -11
- package/src/utils/creation/runnableStrategyCreation.ts +46 -0
- package/src/utils/creation/stepCreation.ts +159 -0
- package/src/utils/extractData.ts +3 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/src/utils/createRunnableStrategy.ts +0 -31
- package/src/utils/createStep.ts +0 -111
|
@@ -86,9 +86,9 @@ export declare const CONSTANTS: {
|
|
|
86
86
|
readonly RoleBindingArray: "RoleBindingArray";
|
|
87
87
|
readonly RoleBindings: "RoleBindings";
|
|
88
88
|
readonly RoleBindingsFacet: "RoleBindingsFacet";
|
|
89
|
-
readonly RoleDict: "RoleDict";
|
|
90
89
|
readonly Roles: "Roles";
|
|
91
90
|
readonly RolesFacet: "RolesFacet";
|
|
91
|
+
readonly RoleValueByIdentity: "RoleValueByIdentity";
|
|
92
92
|
readonly RunEvent: "RunEvent";
|
|
93
93
|
readonly RunEventBase: "RunEventBase";
|
|
94
94
|
readonly RunEventCounters: "RunEventCounters";
|
|
@@ -111,14 +111,14 @@ export declare const CONSTANTS: {
|
|
|
111
111
|
readonly StepIdentity: "StepIdentity";
|
|
112
112
|
readonly StepKind: "StepKind";
|
|
113
113
|
readonly StepKindFacet: "StepKindFacet";
|
|
114
|
+
readonly StepsByStrategyThread: "StepsByStrategyThread";
|
|
115
|
+
readonly StepsByStrategyThreadFacet: "StepsByStrategyThreadFacet";
|
|
114
116
|
readonly StepsFacet: "StepsFacet";
|
|
115
117
|
readonly StrategyRun: "StrategyRun";
|
|
116
118
|
readonly StrategyRunIdentity: "StrategyRunIdentity";
|
|
117
119
|
readonly StrategyState: "StrategyState";
|
|
118
120
|
readonly StrategyStateDelta: "StrategyStateDelta";
|
|
119
121
|
readonly StrategyStateFacet: "StrategyStateFacet";
|
|
120
|
-
readonly StrategyThreadDict: "StrategyThreadDict";
|
|
121
|
-
readonly StrategyThreadDictFacet: "StrategyThreadDictFacet";
|
|
122
122
|
readonly StrategyThreadIdentity: "StrategyThreadIdentity";
|
|
123
123
|
readonly TickRunEvent: "TickRunEvent";
|
|
124
124
|
readonly Timestamp: "Timestamp";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRunnableStrategy.d.ts","sourceRoot":"","sources":["../../../src/integrations/firebase/createRunnableStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAQpF,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,oBAAoB,CAWzF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
2
|
+
import { buildRunnableStrategy, getRunnableStrategyThreadGroups, } from '../../utils/creation/runnableStrategyCreation.js';
|
|
3
|
+
import { getNewIdentity } from './firebaseAdminHelpers.js';
|
|
4
|
+
export function createRunnableStrategy(rawStrategy) {
|
|
5
|
+
const threadStepGroups = getRunnableStrategyThreadGroups(rawStrategy);
|
|
6
|
+
const runnableStrategyIdentity = getNewIdentity(CONSTANTS.Names.RunnableStrategyIdentity);
|
|
7
|
+
const threadIdentities = threadStepGroups.map(() => getNewIdentity(CONSTANTS.Names.StrategyThreadIdentity));
|
|
8
|
+
return buildRunnableStrategy(rawStrategy, runnableStrategyIdentity, threadStepGroups, threadIdentities);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=createRunnableStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRunnableStrategy.js","sourceRoot":"","sources":["../../../src/integrations/firebase/createRunnableStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACH,qBAAqB,EACrB,+BAA+B,GAClC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,UAAU,sBAAsB,CAAC,WAA4B;IAC/D,MAAM,gBAAgB,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;IACtE,MAAM,wBAAwB,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC1F,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE5G,OAAO,qBAAqB,CACxB,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,CACnB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BranchStepJson, ForStepJson, JobJson, JobStepJson, WhileStepJson } from '@toolproof-core/schema';
|
|
2
|
+
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
3
|
+
export declare function createJobStepFromJob(job: JobJson): JobStepJson;
|
|
4
|
+
export declare function createLoopStepFromJobPair(whatJob: JobJson, whenJob: JobJson, stepKind: typeof CONSTANTS.Enums.StepKind.for | typeof CONSTANTS.Enums.StepKind.while): ForStepJson | WhileStepJson;
|
|
5
|
+
export declare function createBranchStepFromJobPairs(cases: Array<{
|
|
6
|
+
whatJob: JobJson;
|
|
7
|
+
whenJob: JobJson;
|
|
8
|
+
}>): BranchStepJson;
|
|
9
|
+
export declare function cloneForStep(forStep: ForStepJson): ForStepJson;
|
|
10
|
+
export declare function cloneWhileStep(whileStep: WhileStepJson): WhileStepJson;
|
|
11
|
+
//# sourceMappingURL=createStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStep.d.ts","sourceRoot":"","sources":["../../../src/integrations/firebase/createStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EACd,WAAW,EACX,OAAO,EACP,WAAW,EACX,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAUzD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAE9D;AAED,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GACtF,WAAW,GAAG,aAAa,CAgB7B;AAED,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,GACrD,cAAc,CAShB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAM9D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,CAMtE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
2
|
+
import { buildBranchStepFromJobPairs, buildJobStepFromJob, buildLoopStepFromJobPair, cloneForStepWithIdentities, cloneWhileStepWithIdentities, } from '../../utils/creation/stepCreation.js';
|
|
3
|
+
import { getNewStepIdentity } from './firebaseAdminHelpers.js';
|
|
4
|
+
export function createJobStepFromJob(job) {
|
|
5
|
+
return buildJobStepFromJob(job, getNewStepIdentity(CONSTANTS.Enums.StepKind.job));
|
|
6
|
+
}
|
|
7
|
+
export function createLoopStepFromJobPair(whatJob, whenJob, stepKind) {
|
|
8
|
+
if (stepKind === CONSTANTS.Enums.StepKind.for) {
|
|
9
|
+
return buildLoopStepFromJobPair(whatJob, whenJob, {
|
|
10
|
+
stepKind,
|
|
11
|
+
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.for),
|
|
12
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
13
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return buildLoopStepFromJobPair(whatJob, whenJob, {
|
|
17
|
+
stepKind,
|
|
18
|
+
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.while),
|
|
19
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
20
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function createBranchStepFromJobPairs(cases) {
|
|
24
|
+
return buildBranchStepFromJobPairs(cases, getNewStepIdentity(CONSTANTS.Enums.StepKind.branch), cases.map(() => ({
|
|
25
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
26
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
27
|
+
})));
|
|
28
|
+
}
|
|
29
|
+
export function cloneForStep(forStep) {
|
|
30
|
+
return cloneForStepWithIdentities(forStep, {
|
|
31
|
+
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.for),
|
|
32
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
33
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export function cloneWhileStep(whileStep) {
|
|
37
|
+
return cloneWhileStepWithIdentities(whileStep, {
|
|
38
|
+
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.while),
|
|
39
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
40
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.job),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=createStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStep.js","sourceRoot":"","sources":["../../../src/integrations/firebase/createStep.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,GAC/B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC7C,OAAO,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,OAAgB,EAChB,OAAgB,EAChB,QAAqF;IAErF,IAAI,QAAQ,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC5C,OAAO,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE;YAC9C,QAAQ;YACR,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9D,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9D,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;SACjE,CAAC,CAAC;IACP,CAAC;IAED,OAAO,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE;QAC9C,QAAQ;QACR,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChE,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;KACjE,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,4BAA4B,CACxC,KAAoD;IAEpD,OAAO,2BAA2B,CAC9B,KAAK,EACL,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EACnD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;KACjE,CAAC,CAAC,CACN,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC7C,OAAO,0BAA0B,CAAC,OAAO,EAAE;QACvC,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;KACjE,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAwB;IACnD,OAAO,4BAA4B,CAAC,SAAS,EAAE;QAC3C,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChE,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;KACjE,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ResourceTypeIdentityJson, StepKindJson } from '@toolproof-core/schema';
|
|
2
|
+
import type { IdentityName, IdentityStringByIdentityName, ResourcesByTypeDict, StepIdentityStringByStepKind } from '../../types/types.js';
|
|
3
|
+
export declare function getNewIdentity<K extends IdentityName>(identityName: K): IdentityStringByIdentityName<K>;
|
|
4
|
+
export declare function getNewStepIdentity<K extends StepKindJson>(stepKind: K): StepIdentityStringByStepKind<K>;
|
|
5
|
+
export declare function listResources(resourceTypeHandles: ResourceTypeIdentityJson[]): Promise<ResourcesByTypeDict>;
|
|
6
|
+
//# sourceMappingURL=firebaseAdminHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebaseAdminHelpers.d.ts","sourceRoot":"","sources":["../../../src/integrations/firebase/firebaseAdminHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,wBAAwB,EACxB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACR,YAAY,EACZ,4BAA4B,EAC5B,mBAAmB,EACnB,4BAA4B,EAC/B,MAAM,sBAAsB,CAAC;AAY9B,wBAAgB,cAAc,CAAC,CAAC,SAAS,YAAY,EAAE,YAAY,EAAE,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CASvG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAQvG;AAED,wBAAsB,aAAa,CAC/B,mBAAmB,EAAE,wBAAwB,EAAE,GAChD,OAAO,CAAC,mBAAmB,CAAC,CAqJ9B"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { CONSTANTS, MAPPINGS } from '../../artifacts/artifacts.js';
|
|
2
|
+
import { dbAdmin, storageAdmin } from './firebaseAdminInit.js';
|
|
3
|
+
function capitalizeFirst(value) {
|
|
4
|
+
if (!value) {
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
7
|
+
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
8
|
+
}
|
|
9
|
+
export function getNewIdentity(identityName) {
|
|
10
|
+
const prefix = MAPPINGS.IdentityNameToIdentityPrefix[identityName];
|
|
11
|
+
const docRef = dbAdmin
|
|
12
|
+
.collection(CONSTANTS.Persistence.Collections.resources)
|
|
13
|
+
.doc(identityName)
|
|
14
|
+
.collection(CONSTANTS.Persistence.Collections.members)
|
|
15
|
+
.doc();
|
|
16
|
+
return (prefix + docRef.id);
|
|
17
|
+
}
|
|
18
|
+
export function getNewStepIdentity(stepKind) {
|
|
19
|
+
const identityName = `${capitalizeFirst(stepKind)}StepIdentity`;
|
|
20
|
+
if (!(identityName in MAPPINGS.IdentityNameToIdentityPrefix)) {
|
|
21
|
+
throw new Error(`No IdentityNameToIdentityPrefix entry for derived step identity name: ${identityName}`);
|
|
22
|
+
}
|
|
23
|
+
return getNewIdentity(identityName);
|
|
24
|
+
}
|
|
25
|
+
export async function listResources(resourceTypeHandles) {
|
|
26
|
+
const bucketResources = storageAdmin.bucket(CONSTANTS.Persistence.Buckets.tp_resources);
|
|
27
|
+
const bucketStrategies = storageAdmin.bucket(CONSTANTS.Persistence.Buckets.tp_strategies);
|
|
28
|
+
async function fetchFilesUnder(resourceTypeHandle) {
|
|
29
|
+
const bucket = resourceTypeHandle === CONSTANTS.Cosmos.TYPE_RunnableStrategy
|
|
30
|
+
? bucketStrategies
|
|
31
|
+
: bucketResources;
|
|
32
|
+
const prefix = `${resourceTypeHandle}/`;
|
|
33
|
+
const [found] = await bucket.getFiles({ prefix });
|
|
34
|
+
const files = found.filter((file) => {
|
|
35
|
+
const name = file.name || '';
|
|
36
|
+
return !!name && !name.endsWith('/');
|
|
37
|
+
});
|
|
38
|
+
if (!files.length) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
const items = await Promise.all(files.map(async (file) => {
|
|
42
|
+
try {
|
|
43
|
+
const [buf] = await file.download();
|
|
44
|
+
const meta = file.metadata || (await file.getMetadata())[0];
|
|
45
|
+
const data = JSON.parse(buf.toString('utf8'));
|
|
46
|
+
return { data, meta, name: file.name };
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
return items.filter(Boolean);
|
|
53
|
+
}
|
|
54
|
+
const entries = await Promise.all(resourceTypeHandles.map(async (resourceTypeHandle) => {
|
|
55
|
+
const rows = await fetchFilesUnder(resourceTypeHandle);
|
|
56
|
+
const items = rows.map(({ data, meta, name }) => {
|
|
57
|
+
const flat = meta?.metadata ?? {};
|
|
58
|
+
const root = {};
|
|
59
|
+
for (const [key, valueRaw] of Object.entries(flat)) {
|
|
60
|
+
if (typeof valueRaw !== 'string') {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const valueString = valueRaw.trim();
|
|
64
|
+
let value = valueString;
|
|
65
|
+
if ((valueString.startsWith('{') && valueString.endsWith('}')) || (valueString.startsWith('[') && valueString.endsWith(']'))) {
|
|
66
|
+
try {
|
|
67
|
+
value = JSON.parse(valueString);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
value = valueString;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const segments = key.split('.');
|
|
74
|
+
let cursor = root;
|
|
75
|
+
for (const [index, segment] of segments.entries()) {
|
|
76
|
+
const arrIdxMatch = segment.match(/^(.*)\[(\d+)\]$/);
|
|
77
|
+
if (arrIdxMatch) {
|
|
78
|
+
const base = arrIdxMatch[1];
|
|
79
|
+
const idxStr = arrIdxMatch[2];
|
|
80
|
+
if (base === undefined || idxStr === undefined) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const idx = parseInt(idxStr, 10);
|
|
84
|
+
if (!cursor[base] || !Array.isArray(cursor[base])) {
|
|
85
|
+
cursor[base] = [];
|
|
86
|
+
}
|
|
87
|
+
while (cursor[base].length <= idx) {
|
|
88
|
+
cursor[base].push(undefined);
|
|
89
|
+
}
|
|
90
|
+
if (index === segments.length - 1) {
|
|
91
|
+
cursor[base][idx] = value;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
if (!cursor[base][idx]) {
|
|
95
|
+
cursor[base][idx] = {};
|
|
96
|
+
}
|
|
97
|
+
cursor = cursor[base][idx];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
if (index === segments.length - 1) {
|
|
102
|
+
cursor[segment] = value;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
if (!cursor[segment] || typeof cursor[segment] !== 'object') {
|
|
106
|
+
cursor[segment] = {};
|
|
107
|
+
}
|
|
108
|
+
cursor = cursor[segment];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const identity = root.identity;
|
|
114
|
+
const resourceRoleHandle = root.creationContext.resourceRoleHandle;
|
|
115
|
+
const jobStepHandle = root.creationContext.jobStepHandle;
|
|
116
|
+
const resourceShellKind = root.resourceShellKind;
|
|
117
|
+
const versionRaw = root.version;
|
|
118
|
+
const version = typeof versionRaw === 'number'
|
|
119
|
+
? versionRaw
|
|
120
|
+
: parseInt(String(versionRaw ?? ''), 10);
|
|
121
|
+
const resourcePath = root.path;
|
|
122
|
+
const timestamp = root.timestamp;
|
|
123
|
+
const missing = [
|
|
124
|
+
['identity', identity],
|
|
125
|
+
['resourceRoleHandle', resourceRoleHandle],
|
|
126
|
+
['jobStepHandle', jobStepHandle],
|
|
127
|
+
['resourceShellKind', resourceShellKind],
|
|
128
|
+
['version', Number.isFinite(version) ? String(version) : ''],
|
|
129
|
+
['timestamp', timestamp],
|
|
130
|
+
['path', resourcePath],
|
|
131
|
+
].filter(([_, value]) => typeof value !== 'string' || value.length === 0);
|
|
132
|
+
if (missing.length) {
|
|
133
|
+
const keys = missing.map(([key]) => key).join(', ');
|
|
134
|
+
throw new Error(`Missing required metadata keys [${keys}] for resource file: ${name}`);
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
identity,
|
|
138
|
+
resourceTypeHandle,
|
|
139
|
+
creationContext: {
|
|
140
|
+
resourceRoleHandle,
|
|
141
|
+
jobStepHandle,
|
|
142
|
+
},
|
|
143
|
+
resourceShellKind,
|
|
144
|
+
version,
|
|
145
|
+
timestamp: timestamp,
|
|
146
|
+
path: resourcePath,
|
|
147
|
+
nucleus: data,
|
|
148
|
+
};
|
|
149
|
+
});
|
|
150
|
+
return [resourceTypeHandle, items];
|
|
151
|
+
}));
|
|
152
|
+
return Object.fromEntries(entries);
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=firebaseAdminHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebaseAdminHelpers.js","sourceRoot":"","sources":["../../../src/integrations/firebase/firebaseAdminHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebaseAdminInit.d.ts","sourceRoot":"","sources":["../../../src/integrations/firebase/firebaseAdminInit.ts"],"names":[],"mappings":"AAmCA,QAAA,MAAM,OAAO,6BAAoB,CAAC;AAClC,QAAA,MAAM,YAAY,0CAAkB,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/{src/_lib/setup/firebaseAdminInit.ts → dist/integrations/firebase/firebaseAdminInit.js}
RENAMED
|
@@ -1,38 +1,33 @@
|
|
|
1
|
-
import { getApp, getApps, initializeApp, applicationDefault, cert } from 'firebase-admin/app';
|
|
2
|
-
import { getFirestore } from 'firebase-admin/firestore';
|
|
3
|
-
import { getStorage } from 'firebase-admin/storage';
|
|
4
|
-
import { existsSync, readFileSync } from 'fs';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return cert(
|
|
16
|
-
}
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
35
|
-
const dbAdmin = getFirestore(app);
|
|
36
|
-
const storageAdmin = getStorage(app);
|
|
37
|
-
|
|
38
|
-
export { dbAdmin, storageAdmin };
|
|
1
|
+
import { getApp, getApps, initializeApp, applicationDefault, cert } from 'firebase-admin/app';
|
|
2
|
+
import { getFirestore } from 'firebase-admin/firestore';
|
|
3
|
+
import { getStorage } from 'firebase-admin/storage';
|
|
4
|
+
import { existsSync, readFileSync } from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
function resolveCredential() {
|
|
7
|
+
const jsonString = process.env.GOOGLE_APPLICATION_CREDENTIALS_JSON;
|
|
8
|
+
const envPath = process.env.GOOGLE_APPLICATION_CREDENTIALS;
|
|
9
|
+
const localKeyPath = path.join(process.cwd(), 'gcp-key.json');
|
|
10
|
+
try {
|
|
11
|
+
if (jsonString) {
|
|
12
|
+
return cert(JSON.parse(jsonString));
|
|
13
|
+
}
|
|
14
|
+
if (envPath && existsSync(envPath)) {
|
|
15
|
+
return cert(JSON.parse(readFileSync(envPath, 'utf8')));
|
|
16
|
+
}
|
|
17
|
+
if (existsSync(localKeyPath)) {
|
|
18
|
+
return cert(JSON.parse(readFileSync(localKeyPath, 'utf8')));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return applicationDefault();
|
|
23
|
+
}
|
|
24
|
+
return applicationDefault();
|
|
25
|
+
}
|
|
26
|
+
const app = getApps().length ? getApp() : initializeApp({
|
|
27
|
+
credential: resolveCredential(),
|
|
28
|
+
projectId: 'toolproof-563fe',
|
|
29
|
+
});
|
|
30
|
+
const dbAdmin = getFirestore(app);
|
|
31
|
+
const storageAdmin = getStorage(app);
|
|
32
|
+
export { dbAdmin, storageAdmin };
|
|
33
|
+
//# sourceMappingURL=firebaseAdminInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebaseAdminInit.js","sourceRoot":"","sources":["../../../src/integrations/firebase/firebaseAdminInit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,SAAS,iBAAiB;IACtB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAE9D,IAAI,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,kBAAkB,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,kBAAkB,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IACpD,UAAU,EAAE,iBAAiB,EAAE;IAC/B,SAAS,EAAE,iBAAiB;CAC/B,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CreationContextJson, ResourceIdentityJson, ResourceInputPotentialJson, ResourceJson, ResourceMissingJson, ResourceOutputPotentialJson, ResourceTypeIdentityJson } from '@toolproof-core/schema';
|
|
2
|
+
export declare function generatePath(resourceTypeHandle: ResourceTypeIdentityJson, identity: ResourceIdentityJson): string;
|
|
3
|
+
export declare function createMaterializedFromOutputPotential(outputPotential: ResourceOutputPotentialJson, nucleus: unknown, timestamp?: string): ResourceJson;
|
|
4
|
+
export declare function createMaterializedFromInputPotential(inputPotential: ResourceInputPotentialJson, nucleus: unknown, timestamp?: string): ResourceJson;
|
|
5
|
+
export declare function createMaterializedFromPotential(potential: ResourceInputPotentialJson | ResourceOutputPotentialJson, nucleus: unknown, timestamp?: string): ResourceJson;
|
|
6
|
+
export declare function createMissing(identity: ResourceIdentityJson, resourceTypeHandle: ResourceTypeIdentityJson): ResourceMissingJson;
|
|
7
|
+
export declare function createInputPotential(identity: ResourceIdentityJson, resourceTypeHandle: ResourceTypeIdentityJson, creationContext: CreationContextJson): ResourceInputPotentialJson;
|
|
8
|
+
export declare function createOutputPotential(identity: ResourceIdentityJson, resourceTypeHandle: ResourceTypeIdentityJson, creationContext: CreationContextJson): ResourceOutputPotentialJson;
|
|
9
|
+
//# sourceMappingURL=resourceCreation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resourceCreation.d.ts","sourceRoot":"","sources":["../../../src/utils/creation/resourceCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EAC3B,MAAM,wBAAwB,CAAC;AAGhC,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAEjH;AAED,wBAAgB,qCAAqC,CACjD,eAAe,EAAE,2BAA2B,EAC5C,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACnB,YAAY,CAcd;AAED,wBAAgB,oCAAoC,CAChD,cAAc,EAAE,0BAA0B,EAC1C,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACnB,YAAY,CAcd;AAED,wBAAgB,+BAA+B,CAC3C,SAAS,EAAE,0BAA0B,GAAG,2BAA2B,EACnE,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACnB,YAAY,CAMd;AAED,wBAAgB,aAAa,CACzB,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,EAAE,wBAAwB,GAC7C,mBAAmB,CAMrB;AAED,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,EAAE,wBAAwB,EAC5C,eAAe,EAAE,mBAAmB,GACrC,0BAA0B,CAO5B;AAED,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,EAAE,wBAAwB,EAC5C,eAAe,EAAE,mBAAmB,GACrC,2BAA2B,CAO7B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
2
|
+
export function generatePath(resourceTypeHandle, identity) {
|
|
3
|
+
return `${resourceTypeHandle}/${identity}.json`;
|
|
4
|
+
}
|
|
5
|
+
export function createMaterializedFromOutputPotential(outputPotential, nucleus, timestamp) {
|
|
6
|
+
const { identity, resourceTypeHandle, creationContext } = outputPotential;
|
|
7
|
+
const path = generatePath(resourceTypeHandle, identity);
|
|
8
|
+
return {
|
|
9
|
+
identity,
|
|
10
|
+
resourceTypeHandle,
|
|
11
|
+
creationContext,
|
|
12
|
+
resourceShellKind: CONSTANTS.Enums.ResourceShellKind.materialized,
|
|
13
|
+
version: 1,
|
|
14
|
+
timestamp: timestamp ?? new Date().toISOString(),
|
|
15
|
+
path,
|
|
16
|
+
nucleus,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function createMaterializedFromInputPotential(inputPotential, nucleus, timestamp) {
|
|
20
|
+
const { identity, resourceTypeHandle, creationContext } = inputPotential;
|
|
21
|
+
const path = generatePath(resourceTypeHandle, identity);
|
|
22
|
+
return {
|
|
23
|
+
identity,
|
|
24
|
+
resourceTypeHandle,
|
|
25
|
+
creationContext,
|
|
26
|
+
resourceShellKind: CONSTANTS.Enums.ResourceShellKind.materialized,
|
|
27
|
+
version: 1,
|
|
28
|
+
timestamp: timestamp ?? new Date().toISOString(),
|
|
29
|
+
path,
|
|
30
|
+
nucleus,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function createMaterializedFromPotential(potential, nucleus, timestamp) {
|
|
34
|
+
if (potential.resourceShellKind === CONSTANTS.Enums.ResourceShellKind.inputPotential) {
|
|
35
|
+
return createMaterializedFromInputPotential(potential, nucleus, timestamp);
|
|
36
|
+
}
|
|
37
|
+
return createMaterializedFromOutputPotential(potential, nucleus, timestamp);
|
|
38
|
+
}
|
|
39
|
+
export function createMissing(identity, resourceTypeHandle) {
|
|
40
|
+
return {
|
|
41
|
+
identity,
|
|
42
|
+
resourceTypeHandle,
|
|
43
|
+
resourceShellKind: CONSTANTS.Enums.ResourceShellKind.missing,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function createInputPotential(identity, resourceTypeHandle, creationContext) {
|
|
47
|
+
return {
|
|
48
|
+
identity,
|
|
49
|
+
resourceTypeHandle,
|
|
50
|
+
creationContext,
|
|
51
|
+
resourceShellKind: CONSTANTS.Enums.ResourceShellKind.inputPotential,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export function createOutputPotential(identity, resourceTypeHandle, creationContext) {
|
|
55
|
+
return {
|
|
56
|
+
identity,
|
|
57
|
+
resourceTypeHandle,
|
|
58
|
+
creationContext,
|
|
59
|
+
resourceShellKind: CONSTANTS.Enums.ResourceShellKind.outputPotential,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=resourceCreation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resourceCreation.js","sourceRoot":"","sources":["../../../src/utils/creation/resourceCreation.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,MAAM,UAAU,YAAY,CAAC,kBAA4C,EAAE,QAA8B;IACrG,OAAO,GAAG,kBAAkB,IAAI,QAAQ,OAAO,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,qCAAqC,CACjD,eAA4C,EAC5C,OAAgB,EAChB,SAAkB;IAElB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC;IAC1E,MAAM,IAAI,GAAG,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO;QACH,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY;QACjE,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAChD,IAAI;QACJ,OAAO;KACV,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oCAAoC,CAChD,cAA0C,EAC1C,OAAgB,EAChB,SAAkB;IAElB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;IACzE,MAAM,IAAI,GAAG,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO;QACH,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY;QACjE,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAChD,IAAI;QACJ,OAAO;KACV,CAAC;AACN,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC3C,SAAmE,EACnE,OAAgB,EAChB,SAAkB;IAElB,IAAI,SAAS,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACnF,OAAO,oCAAoC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,qCAAqC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa,CACzB,QAA8B,EAC9B,kBAA4C;IAE5C,OAAO;QACH,QAAQ;QACR,kBAAkB;QAClB,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO;KAC/D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,QAA8B,EAC9B,kBAA4C,EAC5C,eAAoC;IAEpC,OAAO;QACH,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc;KACtE,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,QAA8B,EAC9B,kBAA4C,EAC5C,eAAoC;IAEpC,OAAO;QACH,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe;KACvE,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RawStrategyJson, RunnableStrategyIdentityJson, RunnableStrategyJson, StepJson, StrategyThreadIdentityJson } from '@toolproof-core/schema';
|
|
2
|
+
export declare function getRunnableStrategyThreadGroups(rawStrategy: RawStrategyJson): StepJson[][];
|
|
3
|
+
export declare function buildRunnableStrategy(rawStrategy: RawStrategyJson, runnableStrategyIdentity: RunnableStrategyIdentityJson, threadStepGroups: StepJson[][], threadIdentities: StrategyThreadIdentityJson[]): RunnableStrategyJson;
|
|
4
|
+
//# sourceMappingURL=runnableStrategyCreation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runnableStrategyCreation.d.ts","sourceRoot":"","sources":["../../../src/utils/creation/runnableStrategyCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,4BAA4B,EAC5B,oBAAoB,EACpB,QAAQ,EAER,0BAA0B,EAC7B,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,eAAe,GAAG,QAAQ,EAAE,EAAE,CAE1F;AAED,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,eAAe,EAC5B,wBAAwB,EAAE,4BAA4B,EACtD,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAC9B,gBAAgB,EAAE,0BAA0B,EAAE,GAC/C,oBAAoB,CAyBtB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
2
|
+
import { getIndependentThreads } from '../parallelizeSteps.js';
|
|
3
|
+
export function getRunnableStrategyThreadGroups(rawStrategy) {
|
|
4
|
+
return getIndependentThreads(rawStrategy.steps, rawStrategy.strategyState);
|
|
5
|
+
}
|
|
6
|
+
export function buildRunnableStrategy(rawStrategy, runnableStrategyIdentity, threadStepGroups, threadIdentities) {
|
|
7
|
+
if (threadStepGroups.length !== threadIdentities.length) {
|
|
8
|
+
throw new Error('buildRunnableStrategy requires one thread identity per thread group');
|
|
9
|
+
}
|
|
10
|
+
const stepsByStrategyThread = {};
|
|
11
|
+
for (const [index, group] of threadStepGroups.entries()) {
|
|
12
|
+
const threadIdentity = threadIdentities[index];
|
|
13
|
+
if (!threadIdentity) {
|
|
14
|
+
throw new Error(`Missing thread identity for thread group index ${index}`);
|
|
15
|
+
}
|
|
16
|
+
stepsByStrategyThread[threadIdentity] = group;
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
identity: runnableStrategyIdentity,
|
|
20
|
+
runnableStrategyContext: {
|
|
21
|
+
status: CONSTANTS.Enums.RunnableStrategyStatus.pending,
|
|
22
|
+
},
|
|
23
|
+
stepsByStrategyThread,
|
|
24
|
+
strategyState: rawStrategy.strategyState,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=runnableStrategyCreation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runnableStrategyCreation.js","sourceRoot":"","sources":["../../../src/utils/creation/runnableStrategyCreation.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,UAAU,+BAA+B,CAAC,WAA4B;IACxE,OAAO,qBAAqB,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,WAA4B,EAC5B,wBAAsD,EACtD,gBAA8B,EAC9B,gBAA8C;IAE9C,IAAI,gBAAgB,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,qBAAqB,GAA8B,EAAE,CAAC;IAE5D,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kDAAkD,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,qBAAqB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;IAClD,CAAC;IAED,OAAO;QACH,QAAQ,EAAE,wBAAwB;QAClC,uBAAuB,EAAE;YACrB,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO;SACzD;QACD,qBAAqB;QACrB,aAAa,EAAE,WAAW,CAAC,aAAa;KAC3C,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { BranchStepIdentityJson, BranchStepJson, ForStepIdentityJson, ForStepJson, JobJson, JobStepIdentityJson, JobStepJson, WhileStepIdentityJson, WhileStepJson } from '@toolproof-core/schema';
|
|
2
|
+
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
3
|
+
export type LoopStepBuildIdentities = {
|
|
4
|
+
stepKind: typeof CONSTANTS.Enums.StepKind.for;
|
|
5
|
+
stepIdentity: ForStepIdentityJson;
|
|
6
|
+
whatIdentity: JobStepIdentityJson;
|
|
7
|
+
whenIdentity: JobStepIdentityJson;
|
|
8
|
+
} | {
|
|
9
|
+
stepKind: typeof CONSTANTS.Enums.StepKind.while;
|
|
10
|
+
stepIdentity: WhileStepIdentityJson;
|
|
11
|
+
whatIdentity: JobStepIdentityJson;
|
|
12
|
+
whenIdentity: JobStepIdentityJson;
|
|
13
|
+
};
|
|
14
|
+
export type BranchCaseBuildIdentities = {
|
|
15
|
+
whatIdentity: JobStepIdentityJson;
|
|
16
|
+
whenIdentity: JobStepIdentityJson;
|
|
17
|
+
};
|
|
18
|
+
export declare function buildJobStepFromJob(job: JobJson, identity: JobStepIdentityJson): JobStepJson;
|
|
19
|
+
export declare function buildLoopStepFromJobPair(whatJob: JobJson, whenJob: JobJson, identities: LoopStepBuildIdentities): ForStepJson | WhileStepJson;
|
|
20
|
+
export declare function buildBranchStepFromJobPairs(cases: Array<{
|
|
21
|
+
whatJob: JobJson;
|
|
22
|
+
whenJob: JobJson;
|
|
23
|
+
}>, branchIdentity: BranchStepIdentityJson, caseIdentities: BranchCaseBuildIdentities[]): BranchStepJson;
|
|
24
|
+
export declare function cloneForStepWithIdentities(forStep: ForStepJson, identities: {
|
|
25
|
+
stepIdentity: ForStepIdentityJson;
|
|
26
|
+
whatIdentity: JobStepIdentityJson;
|
|
27
|
+
whenIdentity: JobStepIdentityJson;
|
|
28
|
+
}): ForStepJson;
|
|
29
|
+
export declare function cloneWhileStepWithIdentities(whileStep: WhileStepJson, identities: {
|
|
30
|
+
stepIdentity: WhileStepIdentityJson;
|
|
31
|
+
whatIdentity: JobStepIdentityJson;
|
|
32
|
+
whenIdentity: JobStepIdentityJson;
|
|
33
|
+
}): WhileStepJson;
|
|
34
|
+
//# sourceMappingURL=stepCreation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepCreation.d.ts","sourceRoot":"","sources":["../../../src/utils/creation/stepCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,sBAAsB,EACtB,cAAc,EAEd,mBAAmB,EACnB,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,WAAW,EAEX,qBAAqB,EACrB,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAC7B;IACE,QAAQ,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC9C,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;CACrC,GACC;IACE,QAAQ,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAChD,YAAY,EAAE,qBAAqB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAEN,MAAM,MAAM,yBAAyB,GAAG;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAeF,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,mBAAmB,GAC9B,WAAW,CAOb;AAED,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,uBAAuB,GACpC,WAAW,GAAG,aAAa,CAiB7B;AAED,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EACpD,cAAc,EAAE,sBAAsB,EACtC,cAAc,EAAE,yBAAyB,EAAE,GAC5C,cAAc,CAwBhB;AAED,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE;IACR,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;CACrC,GACF,WAAW,CAeb;AAED,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE;IACR,YAAY,EAAE,qBAAqB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;CACrC,GACF,aAAa,CAef"}
|