@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.
Files changed (49) hide show
  1. package/dist/artifacts/artifacts.d.ts +4 -3
  2. package/dist/artifacts/artifacts.d.ts.map +1 -1
  3. package/dist/firebase/firebaseAdminHelpers.d.ts +2 -2
  4. package/dist/firebase/firebaseAdminHelpers.d.ts.map +1 -1
  5. package/dist/firebase/firebaseAdminHelpers.js +10 -4
  6. package/dist/firebase/firebaseAdminHelpers.js.map +1 -1
  7. package/dist/types/types.d.ts +2 -5
  8. package/dist/types/types.d.ts.map +1 -1
  9. package/dist/types/types.js.map +1 -1
  10. package/dist/utils/extractFrom.d.ts +5 -0
  11. package/dist/utils/extractFrom.d.ts.map +1 -0
  12. package/dist/utils/extractFrom.js +72 -0
  13. package/dist/utils/extractFrom.js.map +1 -0
  14. package/dist/utils/extractFromCosmosData.d.ts +9 -0
  15. package/dist/utils/extractFromCosmosData.d.ts.map +1 -0
  16. package/dist/utils/extractFromCosmosData.js +20 -0
  17. package/dist/utils/extractFromCosmosData.js.map +1 -0
  18. package/dist/utils/extractFromResourceDict.d.ts +12 -0
  19. package/dist/utils/extractFromResourceDict.d.ts.map +1 -0
  20. package/dist/utils/extractFromResourceDict.js +23 -0
  21. package/dist/utils/extractFromResourceDict.js.map +1 -0
  22. package/dist/utils/extractFromResourceMap.d.ts +12 -0
  23. package/dist/utils/extractFromResourceMap.d.ts.map +1 -0
  24. package/dist/utils/extractFromResourceMap.js +23 -0
  25. package/dist/utils/extractFromResourceMap.js.map +1 -0
  26. package/dist/utils/extractFromResourcesByResourceTypeHandle.d.ts +8 -0
  27. package/dist/utils/extractFromResourcesByResourceTypeHandle.d.ts.map +1 -0
  28. package/dist/utils/extractFromResourcesByResourceTypeHandle.js +31 -0
  29. package/dist/utils/extractFromResourcesByResourceTypeHandle.js.map +1 -0
  30. package/dist/utils/extractFromStrategy.d.ts +5 -0
  31. package/dist/utils/extractFromStrategy.d.ts.map +1 -0
  32. package/dist/utils/extractFromStrategy.js +72 -0
  33. package/dist/utils/extractFromStrategy.js.map +1 -0
  34. package/dist/utils/generateFrom.d.ts +4 -0
  35. package/dist/utils/generateFrom.d.ts.map +1 -0
  36. package/dist/utils/generateFrom.js +18 -0
  37. package/dist/utils/generateFrom.js.map +1 -0
  38. package/dist/utils/generateFromTo.d.ts +4 -0
  39. package/dist/utils/generateFromTo.d.ts.map +1 -0
  40. package/dist/utils/generateFromTo.js +18 -0
  41. package/dist/utils/generateFromTo.js.map +1 -0
  42. package/package.json +13 -9
  43. package/src/firebase/firebaseAdminHelpers.ts +3 -3
  44. package/src/types/types.ts +1 -5
  45. package/src/utils/extractFrom.ts +93 -0
  46. package/src/utils/extractFromResourcesByResourceTypeHandle.ts +55 -0
  47. package/src/utils/{creation.ts → generateFrom.ts} +1 -1
  48. package/tsconfig.tsbuildinfo +1 -1
  49. 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 RoleMap: "RoleMap";
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCZ,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAEX,CAAC"}
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, ResourceMap } from '../types/types.js';
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<ResourceMap>;
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,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAW/H,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,WAAW,CAAC,CAgHtB"}
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 stepKind = root.stepKind;
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
- ['stepKind', stepKind],
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
- stepKind,
140
- path: path,
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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"}
@@ -1,13 +1,10 @@
1
- import type { StepKindJson, ResourceJson, ResourceRoleIdentityJson, ResourceRoleValueJson, ResourceTypeIdentityJson } from '@toolproof-core/schema';
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 Role = {
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,qBAAqB,EACrB,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,IAAI,GAAG;IAAE,QAAQ,EAAE,wBAAwB,CAAA;CAAE,GAAG,qBAAqB,CAAC;AAElF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,wBAAwB,EAAE,YAAY,EAAE,CAAC,CAAC;AAE3E,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
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.2",
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
- "./resource-map-extraction": {
19
- "types": "./dist/utils/resourceMapExtraction.d.ts",
20
- "import": "./dist/utils/resourceMapExtraction.js"
18
+ "./extract-from": {
19
+ "types": "./dist/utils/extractFrom.d.ts",
20
+ "import": "./dist/utils/extractFrom.js"
21
21
  },
22
- "./creation": {
23
- "types": "./dist/utils/creation.d.ts",
24
- "import": "./dist/utils/creation.js"
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
- "firebase-admin": "^13.7.0",
40
- "@toolproof-core/schema": "1.0.10"
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, ResourceMap } from '../types/types.js';
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<ResourceMap> {
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 ResourceMap;
154
+ return Object.fromEntries(entries) as ResourcesByResourceTypeHandle;
155
155
  }
156
156
 
157
157
 
@@ -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 Role = { identity: ResourceRoleIdentityJson } & ResourceRoleValueJson;
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 fromOutputPotentialToMaterialized(
8
+ export function generateMaterializedFromOutputPotential(
9
9
  outputPotential: ResourceOutputPotentialJson,
10
10
  nucleus: unknown,
11
11
  timestamp?: string
@@ -1 +1 @@
1
- {"root":["./src/_lib/setup/firebaseadmininit.ts","./src/artifacts/artifacts.ts","./src/firebase/firebaseadminhelpers.ts","./src/types/types.ts","./src/utils/creation.ts","./src/utils/resourcemapextraction.ts"],"version":"5.9.3"}
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
- }