@intentic/graph 1.125.1 → 1.126.0

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/index.d.ts CHANGED
@@ -6,10 +6,11 @@ export declare const httpOk: (url: string | Ref<string>, options?: {
6
6
  status?: number;
7
7
  }) => Readiness;
8
8
  export declare const linearize: (graph: DesiredStateGraph) => string[];
9
+ export declare const subgraph: (graph: DesiredStateGraph, targets: readonly string[]) => DesiredStateGraph;
9
10
  export declare const toNodeMap: (nodes: readonly RawNode[]) => Map<string, RawNode>;
10
11
  export { compile } from "./compile.js";
11
12
  export { isRef, makeRef, refKey } from "./ref.js";
12
13
  export { collectSecretUsage, type SecretUsage, secretRef } from "./secrets.js";
13
- export { formatStamp, parseStamp, STAMP_KEY } from "./stamp.js";
14
+ export { formatStamp, HASH_KEY, hashInputs, parseStamp, STAMP_KEY } from "./stamp.js";
14
15
  export type { DesiredStateGraph, Input, Move, RawNode, Readiness, Ref, ResourceNode, SecretRef, SecretSource, SerializedReadiness, SerializedValue, } from "./types.js";
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,KAAG,SAAkE,CAAC;AAIrG,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,SAAwE,CAAC;AAEjH,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,SAO9F,CAAC;AAEP,eAAO,MAAM,SAAS,GAAI,OAAO,iBAAiB,KAAG,MAAM,EAO1D,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,OAAO,SAAS,OAAO,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CASxE,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhE,YAAY,EACR,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,GAAG,EACH,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,KAAG,SAAkE,CAAC;AAIrG,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,SAAwE,CAAC;AAEjH,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,SAO9F,CAAC;AAEP,eAAO,MAAM,SAAS,GAAI,OAAO,iBAAiB,KAAG,MAAM,EAO1D,CAAC;AAKF,eAAO,MAAM,QAAQ,GAAI,OAAO,iBAAiB,EAAE,SAAS,SAAS,MAAM,EAAE,KAAG,iBAmB/E,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,OAAO,SAAS,OAAO,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CASxE,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtF,YAAY,EACR,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,GAAG,EACH,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAClB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -16,6 +16,26 @@ export const linearize = (graph) => {
16
16
  }
17
17
  return topoSort(ids, dependsOn);
18
18
  };
19
+ export const subgraph = (graph, targets) => {
20
+ const keep = new Set();
21
+ const visit = (id) => {
22
+ if (keep.has(id)) {
23
+ return;
24
+ }
25
+ const node = graph.resources[id];
26
+ if (node === undefined) {
27
+ throw new Error(`target "${id}" is not in the graph`);
28
+ }
29
+ keep.add(id);
30
+ for (const dep of node.dependsOn) {
31
+ visit(dep);
32
+ }
33
+ };
34
+ for (const id of targets) {
35
+ visit(id);
36
+ }
37
+ return { version: graph.version, resources: Object.fromEntries(Object.entries(graph.resources).filter(([id]) => keep.has(id))) };
38
+ };
19
39
  export const toNodeMap = (nodes) => {
20
40
  const map = new Map();
21
41
  for (const node of nodes) {
@@ -29,5 +49,5 @@ export const toNodeMap = (nodes) => {
29
49
  export { compile } from "./compile.js";
30
50
  export { isRef, makeRef, refKey } from "./ref.js";
31
51
  export { collectSecretUsage, secretRef } from "./secrets.js";
32
- export { formatStamp, parseStamp, STAMP_KEY } from "./stamp.js";
52
+ export { formatStamp, HASH_KEY, hashInputs, parseStamp, STAMP_KEY } from "./stamp.js";
33
53
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAa,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAIrG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAa,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;AAEjH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAyB,EAAE,OAA+C,EAAa,EAAE,CAC5G,MAAM,CAAC,MAAM,CAAC;IACV,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,QAAQ;IACf,GAAG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACvE,CAAC,CAAC;AAEP,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAwB,EAAY,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;IACvD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACnB,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAyB,EAAwB,EAAE;IACzE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKnF,eAAO,MAAM,SAAS,GAAI,OAAO,eAAe,GAAG,SAAS,KAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAaxH,CAAC;AAEF,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClF;AAOD,eAAO,MAAM,kBAAkB,GAAI,OAAO,iBAAiB,KAAG,WAAW,EA0CxE,CAAC"}
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKnF,eAAO,MAAM,SAAS,GAAI,OAAO,eAAe,GAAG,SAAS,KAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAaxH,CAAC;AAEF,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClF;AAOD,eAAO,MAAM,kBAAkB,GAAI,OAAO,iBAAiB,KAAG,WAAW,EAwCxE,CAAC"}
package/dist/secrets.js CHANGED
@@ -50,9 +50,7 @@ export const collectSecretUsage = (graph) => {
50
50
  .map(([key, { source, requiredBy }]) => ({
51
51
  key,
52
52
  source,
53
- requiredBy: [...requiredBy]
54
- .toSorted(([a], [b]) => a.localeCompare(b))
55
- .map(([id, type]) => ({ id, type })),
53
+ requiredBy: [...requiredBy].toSorted(([a], [b]) => a.localeCompare(b)).map(([id, type]) => ({ id, type })),
56
54
  }));
57
55
  };
58
56
  //# sourceMappingURL=secrets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
package/dist/stamp.d.ts CHANGED
@@ -1,4 +1,7 @@
1
+ import type { SerializedValue } from "./types.js";
1
2
  export declare const STAMP_KEY = "intentic.id";
2
3
  export declare const formatStamp: (id: string) => string;
3
4
  export declare const parseStamp: (encoded: string) => string | undefined;
5
+ export declare const HASH_KEY = "intentic.hash";
6
+ export declare const hashInputs: (inputs: Readonly<Record<string, SerializedValue>>) => string;
4
7
  //# sourceMappingURL=stamp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stamp.d.ts","sourceRoot":"","sources":["../src/stamp.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS,gBAAgB,CAAC;AAEvC,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,MAA8B,CAAC;AAExE,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAGrD,CAAC"}
1
+ {"version":3,"file":"stamp.d.ts","sourceRoot":"","sources":["../src/stamp.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,SAAS,gBAAgB,CAAC;AAEvC,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,MAA8B,CAAC;AAExE,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAGrD,CAAC;AAOF,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AAgBxC,eAAO,MAAM,UAAU,GAAI,QAAQ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,KAAG,MAI1D,CAAC"}
package/dist/stamp.js CHANGED
@@ -1,7 +1,24 @@
1
+ import { createHash } from "node:crypto";
1
2
  export const STAMP_KEY = "intentic.id";
2
3
  export const formatStamp = (id) => `${STAMP_KEY}=${id}`;
3
4
  export const parseStamp = (encoded) => {
4
5
  const prefix = `${STAMP_KEY}=`;
5
6
  return encoded.startsWith(prefix) ? encoded.slice(prefix.length) : undefined;
6
7
  };
8
+ export const HASH_KEY = "intentic.hash";
9
+ const sortKeys = (value) => {
10
+ if (Array.isArray(value)) {
11
+ return value.map(sortKeys);
12
+ }
13
+ if (typeof value === "object" && value !== null) {
14
+ return Object.fromEntries(Object.entries(value)
15
+ .toSorted(([a], [b]) => a.localeCompare(b))
16
+ .map(([key, entry]) => [key, sortKeys(entry)]));
17
+ }
18
+ return value;
19
+ };
20
+ export const hashInputs = (inputs) => createHash("sha256")
21
+ .update(JSON.stringify(sortKeys(inputs)))
22
+ .digest("hex")
23
+ .slice(0, 16);
7
24
  //# sourceMappingURL=stamp.js.map
package/dist/stamp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stamp.js","sourceRoot":"","sources":["../src/stamp.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,GAAG,SAAS,IAAI,EAAE,EAAE,CAAC;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAsB,EAAE;IAC9D,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC,CAAC"}
1
+ {"version":3,"file":"stamp.js","sourceRoot":"","sources":["../src/stamp.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,GAAG,SAAS,IAAI,EAAE,EAAE,CAAC;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAsB,EAAE;IAC9D,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;AAExC,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAmB,EAAE;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAChB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CACrD,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAiD,EAAU,EAAE,CACpF,UAAU,CAAC,QAAQ,CAAC;KACf,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;KACxC,MAAM,CAAC,KAAK,CAAC;KACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@intentic/graph",
3
- "version": "1.125.1",
3
+ "version": "1.126.0",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/radarsu/intentic.git",
9
+ "url": "git+https://gitlab.com/radarsu/intentic.git",
10
10
  "directory": "_libs/graph"
11
11
  },
12
12
  "files": [