@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.
Files changed (43) hide show
  1. package/dist/artifacts/artifacts.d.ts +3 -3
  2. package/dist/integrations/firebase/createRunnableStrategy.d.ts +3 -0
  3. package/dist/integrations/firebase/createRunnableStrategy.d.ts.map +1 -0
  4. package/dist/integrations/firebase/createRunnableStrategy.js +10 -0
  5. package/dist/integrations/firebase/createRunnableStrategy.js.map +1 -0
  6. package/dist/integrations/firebase/createStep.d.ts +11 -0
  7. package/dist/integrations/firebase/createStep.d.ts.map +1 -0
  8. package/dist/integrations/firebase/createStep.js +43 -0
  9. package/dist/integrations/firebase/createStep.js.map +1 -0
  10. package/dist/integrations/firebase/firebaseAdminHelpers.d.ts +6 -0
  11. package/dist/integrations/firebase/firebaseAdminHelpers.d.ts.map +1 -0
  12. package/dist/integrations/firebase/firebaseAdminHelpers.js +154 -0
  13. package/dist/integrations/firebase/firebaseAdminHelpers.js.map +1 -0
  14. package/dist/integrations/firebase/firebaseAdminInit.d.ts +4 -0
  15. package/dist/integrations/firebase/firebaseAdminInit.d.ts.map +1 -0
  16. package/{src/_lib/setup/firebaseAdminInit.ts → dist/integrations/firebase/firebaseAdminInit.js} +33 -38
  17. package/dist/integrations/firebase/firebaseAdminInit.js.map +1 -0
  18. package/dist/utils/creation/resourceCreation.d.ts +9 -0
  19. package/dist/utils/creation/resourceCreation.d.ts.map +1 -0
  20. package/dist/utils/creation/resourceCreation.js +62 -0
  21. package/dist/utils/creation/resourceCreation.js.map +1 -0
  22. package/dist/utils/creation/runnableStrategyCreation.d.ts +4 -0
  23. package/dist/utils/creation/runnableStrategyCreation.d.ts.map +1 -0
  24. package/dist/utils/creation/runnableStrategyCreation.js +27 -0
  25. package/dist/utils/creation/runnableStrategyCreation.js.map +1 -0
  26. package/dist/utils/creation/stepCreation.d.ts +34 -0
  27. package/dist/utils/creation/stepCreation.d.ts.map +1 -0
  28. package/dist/utils/creation/stepCreation.js +89 -0
  29. package/dist/utils/creation/stepCreation.js.map +1 -0
  30. package/dist/utils/extractData.js +3 -3
  31. package/dist/utils/extractData.js.map +1 -1
  32. package/package.json +12 -12
  33. package/src/integrations/firebase/createRunnableStrategy.ts +20 -0
  34. package/src/integrations/firebase/createStep.ts +71 -0
  35. package/src/{firebase → integrations/firebase}/firebaseAdminHelpers.ts +87 -49
  36. package/src/integrations/firebase/firebaseAdminInit.ts +39 -0
  37. package/src/utils/{createResource.ts → creation/resourceCreation.ts} +9 -11
  38. package/src/utils/creation/runnableStrategyCreation.ts +46 -0
  39. package/src/utils/creation/stepCreation.ts +159 -0
  40. package/src/utils/extractData.ts +3 -3
  41. package/tsconfig.tsbuildinfo +1 -1
  42. package/src/utils/createRunnableStrategy.ts +0 -31
  43. 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,3 @@
1
+ import type { RawStrategyJson, RunnableStrategyJson } from '@toolproof-core/schema';
2
+ export declare function createRunnableStrategy(rawStrategy: RawStrategyJson): RunnableStrategyJson;
3
+ //# sourceMappingURL=createRunnableStrategy.d.ts.map
@@ -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,4 @@
1
+ declare const dbAdmin: FirebaseFirestore.Firestore;
2
+ declare const storageAdmin: import("firebase-admin/storage").Storage;
3
+ export { dbAdmin, storageAdmin };
4
+ //# sourceMappingURL=firebaseAdminInit.d.ts.map
@@ -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"}
@@ -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
- // Resolve credentials: prefer GOOGLE_APPLICATION_CREDENTIALS, fallback to local gcp-key.json, else ADC
8
- function resolveCredential() {
9
- const jsonString = process.env.GOOGLE_APPLICATION_CREDENTIALS_JSON;
10
- const envPath = process.env.GOOGLE_APPLICATION_CREDENTIALS;
11
- const localKeyPath = path.join(process.cwd(), 'gcp-key.json');
12
- try {
13
- if (jsonString) {
14
- const json = JSON.parse(jsonString);
15
- return cert(json);
16
- }
17
- if (envPath && existsSync(envPath)) {
18
- const json = JSON.parse(readFileSync(envPath, 'utf8'));
19
- return cert(json);
20
- }
21
- if (existsSync(localKeyPath)) {
22
- const json = JSON.parse(readFileSync(localKeyPath, 'utf8'));
23
- return cert(json);
24
- }
25
- } catch {
26
- // fall through to ADC
27
- }
28
- return applicationDefault();
29
- }
30
-
31
- const app = getApps().length ? getApp() : initializeApp({
32
- credential: resolveCredential(),
33
- projectId: "toolproof-563fe",
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"}