@relkit/graph 0.0.5 → 0.2.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/diff-types.d.ts +1 -6
- package/dist/diff-types.d.ts.map +1 -1
- package/dist/diff-utils.d.ts +2 -4
- package/dist/diff-utils.d.ts.map +1 -1
- package/dist/diff-utils.js +7 -36
- package/dist/diff-utils.js.map +1 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +7 -17
- package/dist/diff.js.map +1 -1
- package/dist/domain-nodes.d.ts +2 -0
- package/dist/domain-nodes.d.ts.map +1 -1
- package/dist/event-validation.d.ts +4 -0
- package/dist/event-validation.d.ts.map +1 -0
- package/dist/event-validation.js +47 -0
- package/dist/event-validation.js.map +1 -0
- package/dist/foundation-nodes.d.ts +4 -9
- package/dist/foundation-nodes.d.ts.map +1 -1
- package/dist/graph-validation.d.ts.map +1 -1
- package/dist/graph-validation.js +16 -3
- package/dist/graph-validation.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +6 -17
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js.map +1 -1
- package/dist/provider-nodes.d.ts +57 -0
- package/dist/provider-nodes.d.ts.map +1 -0
- package/dist/provider-nodes.js +2 -0
- package/dist/provider-nodes.js.map +1 -0
- package/dist/provider-validation.d.ts +1 -0
- package/dist/provider-validation.d.ts.map +1 -1
- package/dist/provider-validation.js +132 -9
- package/dist/provider-validation.js.map +1 -1
- package/dist/registration-plan.d.ts.map +1 -1
- package/dist/registration-plan.js +2 -0
- package/dist/registration-plan.js.map +1 -1
- package/dist/telemetry-validation.d.ts +2 -0
- package/dist/telemetry-validation.d.ts.map +1 -0
- package/dist/telemetry-validation.js +95 -0
- package/dist/telemetry-validation.js.map +1 -0
- package/package.json +2 -2
package/dist/diff-types.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import type { JsonValue, SourceLocation } from "@relkit/contracts";
|
|
2
2
|
export declare const GRAPH_DIFF_CLASSIFICATIONS: readonly ["informational", "compatible", "potentially-breaking", "breaking"];
|
|
3
3
|
export type GraphDiffClassification = (typeof GRAPH_DIFF_CLASSIFICATIONS)[number];
|
|
4
|
-
export type GraphDiffCategory = "route" | "function/error" | "event
|
|
4
|
+
export type GraphDiffCategory = "route" | "function/error" | "event" | "job" | "bucket/cache" | "tool" | "agent" | "profile" | "service";
|
|
5
5
|
export type GraphDiffChange = "added" | "removed" | "changed" | "source-moved";
|
|
6
|
-
export interface SelectorExpansionDiff {
|
|
7
|
-
readonly added: readonly string[];
|
|
8
|
-
readonly removed: readonly string[];
|
|
9
|
-
}
|
|
10
6
|
export interface GraphChange {
|
|
11
7
|
readonly category: GraphDiffCategory;
|
|
12
8
|
readonly kind: string;
|
|
@@ -19,7 +15,6 @@ export interface GraphChange {
|
|
|
19
15
|
readonly before: SourceLocation;
|
|
20
16
|
readonly after: SourceLocation;
|
|
21
17
|
};
|
|
22
|
-
readonly selectorExpansion?: SelectorExpansionDiff;
|
|
23
18
|
readonly before?: JsonValue;
|
|
24
19
|
readonly after?: JsonValue;
|
|
25
20
|
}
|
package/dist/diff-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-types.d.ts","sourceRoot":"","sources":["../src/diff-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,0BAA0B,8EAK7B,CAAC;AACX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,gBAAgB,GAChB,
|
|
1
|
+
{"version":3,"file":"diff-types.d.ts","sourceRoot":"","sources":["../src/diff-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,0BAA0B,8EAK7B,CAAC;AACX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,gBAAgB,GAChB,OAAO,GACP,KAAK,GACL,cAAc,GACd,MAAM,GACN,OAAO,GACP,SAAS,GACT,SAAS,CAAC;AACd,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AAE/E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC;IACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,qBAAqB,EAAE,uBAAuB,GAAG,SAAS,CAAC;CACrE"}
|
package/dist/diff-utils.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { type JsonValue } from "@relkit/contracts";
|
|
2
2
|
import type { GraphNode } from "./model.js";
|
|
3
|
-
import type { GraphDiffCategory, GraphDiffChange, GraphDiffClassification
|
|
3
|
+
import type { GraphDiffCategory, GraphDiffChange, GraphDiffClassification } from "./diff-types.js";
|
|
4
4
|
export declare function nodeKey(node: GraphNode): string;
|
|
5
5
|
export declare function categoryFor(node: GraphNode): GraphDiffCategory | undefined;
|
|
6
6
|
export declare function contractValue(node: GraphNode): JsonValue;
|
|
7
7
|
export declare function changedFields(before: JsonValue, after: JsonValue): readonly string[];
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function hasExpansionChange(value: SelectorExpansionDiff): boolean;
|
|
10
|
-
export declare function classifyChange(category: GraphDiffCategory, change: GraphDiffChange, fields: readonly string[], before: GraphNode | undefined, after: GraphNode | undefined, expansion: SelectorExpansionDiff | undefined): GraphDiffClassification;
|
|
8
|
+
export declare function classifyChange(category: GraphDiffCategory, change: GraphDiffChange, fields: readonly string[], before: GraphNode | undefined, after: GraphNode | undefined): GraphDiffClassification;
|
|
11
9
|
//# sourceMappingURL=diff-utils.d.ts.map
|
package/dist/diff-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-utils.d.ts","sourceRoot":"","sources":["../src/diff-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"diff-utils.d.ts","sourceRoot":"","sources":["../src/diff-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAe1E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAExD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,MAAM,EAAE,CAIpF;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,KAAK,EAAE,SAAS,GAAG,SAAS,GAC3B,uBAAuB,CAazB"}
|
package/dist/diff-utils.js
CHANGED
|
@@ -7,13 +7,13 @@ export function categoryFor(node) {
|
|
|
7
7
|
if (node.triggerType === "http")
|
|
8
8
|
return "route";
|
|
9
9
|
if (node.triggerType === "event")
|
|
10
|
-
return "event
|
|
10
|
+
return "event";
|
|
11
11
|
return "job";
|
|
12
12
|
}
|
|
13
13
|
if (node.kind === "function")
|
|
14
14
|
return "function/error";
|
|
15
15
|
if (node.kind === "event")
|
|
16
|
-
return "event
|
|
16
|
+
return "event";
|
|
17
17
|
if (node.kind === "job")
|
|
18
18
|
return "job";
|
|
19
19
|
if (node.kind === "bucket" || node.kind === "cache")
|
|
@@ -29,11 +29,7 @@ export function categoryFor(node) {
|
|
|
29
29
|
return undefined;
|
|
30
30
|
}
|
|
31
31
|
export function contractValue(node) {
|
|
32
|
-
|
|
33
|
-
return withoutSource(node);
|
|
34
|
-
}
|
|
35
|
-
const { expansion: _expansion, ...config } = node.config;
|
|
36
|
-
return withoutSource({ ...node, config });
|
|
32
|
+
return withoutSource(node);
|
|
37
33
|
}
|
|
38
34
|
export function changedFields(before, after) {
|
|
39
35
|
if (!isRecord(before) || !isRecord(after))
|
|
@@ -41,18 +37,7 @@ export function changedFields(before, after) {
|
|
|
41
37
|
const keys = new Set([...Object.keys(before), ...Object.keys(after)]);
|
|
42
38
|
return [...keys].filter((key) => !same(before[key], after[key])).sort();
|
|
43
39
|
}
|
|
44
|
-
export function
|
|
45
|
-
const left = expansion(before);
|
|
46
|
-
const right = expansion(after);
|
|
47
|
-
return {
|
|
48
|
-
added: right.filter((value) => !left.includes(value)),
|
|
49
|
-
removed: left.filter((value) => !right.includes(value)),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
export function hasExpansionChange(value) {
|
|
53
|
-
return value.added.length > 0 || value.removed.length > 0;
|
|
54
|
-
}
|
|
55
|
-
export function classifyChange(category, change, fields, before, after, expansion) {
|
|
40
|
+
export function classifyChange(category, change, fields, before, after) {
|
|
56
41
|
if (change === "source-moved")
|
|
57
42
|
return "informational";
|
|
58
43
|
if (change === "added")
|
|
@@ -63,8 +48,8 @@ export function classifyChange(category, change, fields, before, after, expansio
|
|
|
63
48
|
return "breaking";
|
|
64
49
|
if (category === "function/error")
|
|
65
50
|
return classifyFunction(fields, before, after);
|
|
66
|
-
if (category === "event
|
|
67
|
-
return
|
|
51
|
+
if (category === "event")
|
|
52
|
+
return fields.length === 0 ? "informational" : "breaking";
|
|
68
53
|
if (category === "job")
|
|
69
54
|
return classifyJob(fields);
|
|
70
55
|
if (category === "bucket/cache")
|
|
@@ -78,19 +63,12 @@ export function classifyChange(category, change, fields, before, after, expansio
|
|
|
78
63
|
return fields.length === 0 ? "informational" : "potentially-breaking";
|
|
79
64
|
}
|
|
80
65
|
function classifyFunction(fields, before, after) {
|
|
81
|
-
if (fields.includes("output") || fields.includes("errors"))
|
|
66
|
+
if (fields.includes("output") || fields.includes("errors") || fields.includes("invocationMode"))
|
|
82
67
|
return "breaking";
|
|
83
68
|
if (fields.includes("input"))
|
|
84
69
|
return inputSchemaClass(before, after);
|
|
85
70
|
return fields.length === 0 ? "informational" : "potentially-breaking";
|
|
86
71
|
}
|
|
87
|
-
function classifyEvent(fields, expansion) {
|
|
88
|
-
if (expansion?.removed.length)
|
|
89
|
-
return "breaking";
|
|
90
|
-
if (expansion?.added.length)
|
|
91
|
-
return "potentially-breaking";
|
|
92
|
-
return fields.length === 0 ? "informational" : "breaking";
|
|
93
|
-
}
|
|
94
72
|
function classifyJob(fields) {
|
|
95
73
|
if (fields.some((field) => ["input", "targetFunctionId", "idempotency"].includes(field)))
|
|
96
74
|
return "breaking";
|
|
@@ -142,13 +120,6 @@ function objectSchema(value) {
|
|
|
142
120
|
: [];
|
|
143
121
|
return { required };
|
|
144
122
|
}
|
|
145
|
-
function expansion(node) {
|
|
146
|
-
if (node.kind !== "trigger" || node.triggerType !== "event" || !isRecord(node.config))
|
|
147
|
-
return [];
|
|
148
|
-
return Array.isArray(node.config.expansion)
|
|
149
|
-
? node.config.expansion.filter((entry) => typeof entry === "string").sort()
|
|
150
|
-
: [];
|
|
151
|
-
}
|
|
152
123
|
function withoutSource(node) {
|
|
153
124
|
const { source: _source, ...value } = node;
|
|
154
125
|
return value;
|
package/dist/diff-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-utils.js","sourceRoot":"","sources":["../src/diff-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"diff-utils.js","sourceRoot":"","sources":["../src/diff-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAQ9D,OAAO,KAAK,EAAe,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAEvF,oFAAoF;AACpF,wBAAgB,SAAS,CACvB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,4BAAiC,GACzC,SAAS,CAaX;AAED,6EAA6E;AAC7E,eAAO,MAAM,UAAU,kBAAY,CAAC"}
|
package/dist/diff.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { canonicalJson } from "@relkit/contracts";
|
|
2
2
|
import { canonicalizeGraph } from "./hash.js";
|
|
3
|
-
import { categoryFor, changedFields, classifyChange, contractValue,
|
|
3
|
+
import { categoryFor, changedFields, classifyChange, contractValue, nodeKey, } from "./diff-utils.js";
|
|
4
4
|
/** Compares canonical graph contracts while ignoring source-only identity moves. */
|
|
5
5
|
export function diffGraph(before, after, options = {}) {
|
|
6
6
|
const left = canonicalizeGraph(before, options);
|
|
@@ -30,20 +30,15 @@ function makeChanges(left, right) {
|
|
|
30
30
|
return [entry(category, right, "added", [], undefined, right)];
|
|
31
31
|
if (right === undefined)
|
|
32
32
|
return [entry(category, left, "removed", [], left, undefined)];
|
|
33
|
-
const expansion = selectorExpansionDiff(left, right);
|
|
34
|
-
const expansionChanged = category === "event/selector" && hasExpansionChange(expansion);
|
|
35
33
|
const fields = changedFields(contractValue(left), contractValue(right));
|
|
36
|
-
|
|
37
|
-
if (allFields.length === 0) {
|
|
34
|
+
if (fields.length === 0) {
|
|
38
35
|
if (canonicalJson(left.source) === canonicalJson(right.source))
|
|
39
36
|
return [];
|
|
40
37
|
return [entry(category, right, "source-moved", ["source"], left, right)];
|
|
41
38
|
}
|
|
42
|
-
return [
|
|
43
|
-
entry(category, right, "changed", allFields, left, right, expansionChanged ? expansion : undefined),
|
|
44
|
-
];
|
|
39
|
+
return [entry(category, right, "changed", fields, left, right)];
|
|
45
40
|
}
|
|
46
|
-
function entry(category, node, change, fields, before, after
|
|
41
|
+
function entry(category, node, change, fields, before, after) {
|
|
47
42
|
const source = before && after && !sameSource(before, after)
|
|
48
43
|
? { before: before.source, after: after.source }
|
|
49
44
|
: undefined;
|
|
@@ -52,17 +47,16 @@ function entry(category, node, change, fields, before, after, selectorExpansion)
|
|
|
52
47
|
kind: node.kind,
|
|
53
48
|
id: node.id,
|
|
54
49
|
change,
|
|
55
|
-
classification: classifyChange(category, change, fields, before, after
|
|
50
|
+
classification: classifyChange(category, change, fields, before, after),
|
|
56
51
|
fields: [...fields].sort(),
|
|
57
|
-
details: details(change, fields
|
|
52
|
+
details: details(change, fields),
|
|
58
53
|
...(source === undefined ? {} : { source }),
|
|
59
|
-
...(selectorExpansion === undefined ? {} : { selectorExpansion }),
|
|
60
54
|
...(before === undefined ? {} : { before: before }),
|
|
61
55
|
...(after === undefined ? {} : { after: after }),
|
|
62
56
|
};
|
|
63
57
|
return result;
|
|
64
58
|
}
|
|
65
|
-
function details(change, fields
|
|
59
|
+
function details(change, fields) {
|
|
66
60
|
const values = [...fields];
|
|
67
61
|
if (change === "added")
|
|
68
62
|
values.push("added");
|
|
@@ -70,10 +64,6 @@ function details(change, fields, expansion) {
|
|
|
70
64
|
values.push("removed");
|
|
71
65
|
if (change === "source-moved")
|
|
72
66
|
values.push("source moved");
|
|
73
|
-
if (expansion !== undefined) {
|
|
74
|
-
values.push(...expansion.added.map((value) => `selector added ${value}`));
|
|
75
|
-
values.push(...expansion.removed.map((value) => `selector removed ${value}`));
|
|
76
|
-
}
|
|
77
67
|
return [...new Set(values)].sort();
|
|
78
68
|
}
|
|
79
69
|
function sameSource(left, right) {
|
package/dist/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAqC,MAAM,WAAW,CAAC;AAEjF,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
|
package/dist/domain-nodes.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { GeneratedFunctionMarker } from "./foundation-nodes.js";
|
|
|
3
3
|
import type { GraphNodeBase } from "./model.js";
|
|
4
4
|
export type DomainExposure = "public" | "internal";
|
|
5
5
|
export interface FunctionNode extends GraphNodeBase<"function"> {
|
|
6
|
+
readonly invocationMode: "callable" | "event-only";
|
|
7
|
+
readonly publishes?: JsonValue;
|
|
6
8
|
readonly exposure?: DomainExposure;
|
|
7
9
|
readonly input: JsonValue;
|
|
8
10
|
readonly output: JsonValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-nodes.d.ts","sourceRoot":"","sources":["../src/domain-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,UAAU,CAAC;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,OAAO,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC"}
|
|
1
|
+
{"version":3,"file":"domain-nodes.d.ts","sourceRoot":"","sources":["../src/domain-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,UAAU,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,YAAY,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,OAAO,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-validation.d.ts","sourceRoot":"","sources":["../src/event-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAoDlE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Rejects forged graph references before any runtime or deployment registration. */
|
|
2
|
+
export function validateEventTargets(graph) {
|
|
3
|
+
const functions = new Map(graph.nodes.filter((node) => node.kind === "function").map((node) => [node.id, node]));
|
|
4
|
+
const nodes = new Map(graph.nodes.map((node) => [node.id, node]));
|
|
5
|
+
const reject = (owner, target) => {
|
|
6
|
+
if (functions.get(target)?.invocationMode === "event-only") {
|
|
7
|
+
throw new TypeError(`"${owner}" cannot target event-only function "${target}"; use a callable defineFunction.`);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
for (const node of graph.nodes) {
|
|
11
|
+
if (node.kind === "trigger" && node.triggerType === "event") {
|
|
12
|
+
const config = node.config;
|
|
13
|
+
if (typeof config.eventId !== "string" ||
|
|
14
|
+
!Number.isSafeInteger(config.eventVersion) ||
|
|
15
|
+
config.eventVersion < 1 ||
|
|
16
|
+
"selector" in config ||
|
|
17
|
+
"expansion" in config) {
|
|
18
|
+
throw new TypeError(`Event trigger "${node.id}" requires exact eventId and eventVersion.`);
|
|
19
|
+
}
|
|
20
|
+
if (functions.get(node.targetFunctionId)?.invocationMode !== "event-only") {
|
|
21
|
+
throw new TypeError(`Event trigger "${node.id}" must target an event-only function, not "${node.targetFunctionId}".`);
|
|
22
|
+
}
|
|
23
|
+
const event = nodes.get(config.eventId);
|
|
24
|
+
if (event?.kind !== "event" || event.version !== config.eventVersion) {
|
|
25
|
+
throw new TypeError(`Event trigger "${node.id}" references unknown event "${config.eventId}@${config.eventVersion}".`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if ("targetFunctionId" in node)
|
|
29
|
+
reject(node.id, node.targetFunctionId);
|
|
30
|
+
if (node.kind === "service")
|
|
31
|
+
for (const member of node.functions)
|
|
32
|
+
reject(node.id, member.functionId);
|
|
33
|
+
if (node.kind === "agent")
|
|
34
|
+
for (const target of node.toolIds)
|
|
35
|
+
reject(node.id, target);
|
|
36
|
+
}
|
|
37
|
+
for (const edge of graph.edges) {
|
|
38
|
+
if (!["calls-function", "targets-function", "exposes-function", "exposes-as-tool"].includes(edge.kind))
|
|
39
|
+
continue;
|
|
40
|
+
const source = nodes.get(edge.from);
|
|
41
|
+
if (edge.kind === "exposes-as-tool")
|
|
42
|
+
reject(edge.to, edge.from);
|
|
43
|
+
else if (!(source?.kind === "trigger" && source.triggerType === "event"))
|
|
44
|
+
reject(edge.from, edge.to);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=event-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-validation.js","sourceRoot":"","sources":["../src/event-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { JsonValue } from "@relkit/contracts";
|
|
2
2
|
import type { GraphNodeBase } from "./model.js";
|
|
3
|
+
import type { DeploymentRoleProjection } from "./provider-nodes.js";
|
|
3
4
|
export interface AppNode extends GraphNodeBase<"app"> {
|
|
4
5
|
readonly environment?: JsonValue;
|
|
5
|
-
readonly
|
|
6
|
-
readonly observability?: JsonValue;
|
|
6
|
+
readonly telemetry?: JsonValue;
|
|
7
7
|
readonly defaults?: JsonValue;
|
|
8
|
+
readonly deploymentRoles?: readonly DeploymentRoleProjection[];
|
|
8
9
|
}
|
|
9
10
|
export interface EnvironmentVariableNode extends GraphNodeBase<"env"> {
|
|
10
11
|
readonly name: string;
|
|
@@ -20,11 +21,5 @@ export interface GeneratedAgentMarker {
|
|
|
20
21
|
readonly agentId: string;
|
|
21
22
|
readonly functionId: string;
|
|
22
23
|
}
|
|
23
|
-
export
|
|
24
|
-
readonly generated: true;
|
|
25
|
-
readonly generatedBy: "event-listener";
|
|
26
|
-
readonly listenerId: string;
|
|
27
|
-
readonly functionId: string;
|
|
28
|
-
}
|
|
29
|
-
export type GeneratedFunctionMarker = GeneratedAgentMarker | GeneratedEventListenerMarker;
|
|
24
|
+
export type GeneratedFunctionMarker = GeneratedAgentMarker;
|
|
30
25
|
//# sourceMappingURL=foundation-nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation-nodes.d.ts","sourceRoot":"","sources":["../src/foundation-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"foundation-nodes.d.ts","sourceRoot":"","sources":["../src/foundation-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,OAAQ,SAAQ,aAAa,CAAC,KAAK,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAChE;AAED,MAAM,WAAW,uBAAwB,SAAQ,aAAa,CAAC,KAAK,CAAC;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-validation.d.ts","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-validation.d.ts","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAatE"}
|
package/dist/graph-validation.js
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
import { isStableId, normalizeSourceLocation } from "@relkit/contracts";
|
|
1
|
+
import { GRAPH_VERSION, isStableId, normalizeSourceLocation } from "@relkit/contracts";
|
|
2
2
|
import { isGraphEdgeKind, isGraphNodeKind } from "./model.js";
|
|
3
|
-
import { validateProviderNode } from "./provider-validation.js";
|
|
3
|
+
import { validateDeploymentRoles, validateProviderNode } from "./provider-validation.js";
|
|
4
4
|
import { validateServiceNode } from "./service-validation.js";
|
|
5
|
+
import { validateEventTargets } from "./event-validation.js";
|
|
6
|
+
import { validateTelemetryConfiguration } from "./telemetry-validation.js";
|
|
5
7
|
export function validateGraphShape(value, root) {
|
|
6
8
|
if (!isRecord(value) || !Array.isArray(value.nodes) || !Array.isArray(value.edges)) {
|
|
7
9
|
fail("A graph must contain nodes and edges arrays.");
|
|
8
10
|
}
|
|
11
|
+
if (value.contractVersion !== GRAPH_VERSION)
|
|
12
|
+
fail(`Graph contract version ${String(value.contractVersion)} is unsupported; expected ${GRAPH_VERSION}. Regenerate with \`relkit check\`.`);
|
|
9
13
|
rejectUnboundIdentities(value);
|
|
10
14
|
if (value.appId !== undefined && !isCanonicalId(value.appId))
|
|
11
15
|
fail("Graph appId is invalid.");
|
|
12
16
|
value.nodes.forEach((node, index) => validateNode(node, root, index));
|
|
13
17
|
value.edges.forEach((edge, index) => validateEdge(edge, index));
|
|
18
|
+
validateEventTargets(value);
|
|
14
19
|
}
|
|
15
20
|
function validateNode(value, root, index) {
|
|
16
21
|
if (!isRecord(value) || !isGraphNodeKind(value.kind) || !isCanonicalId(value.id)) {
|
|
@@ -28,6 +33,8 @@ function validateNode(value, root, index) {
|
|
|
28
33
|
if (value.domainId !== undefined)
|
|
29
34
|
validateId(value.domainId, `Graph nodes[${index}].domainId`);
|
|
30
35
|
if (value.kind === "function") {
|
|
36
|
+
if (value.invocationMode !== "callable" && value.invocationMode !== "event-only")
|
|
37
|
+
fail(`Function "${value.id}" requires a valid invocationMode.`);
|
|
31
38
|
validateGenerated(value.generated, index, "generated");
|
|
32
39
|
validateExposure(value.exposure, index);
|
|
33
40
|
}
|
|
@@ -44,6 +51,12 @@ function validateNode(value, root, index) {
|
|
|
44
51
|
validateServiceNode(value, index, validateId);
|
|
45
52
|
if (value.kind === "provider")
|
|
46
53
|
validateProviderNode(value, index, fail);
|
|
54
|
+
if (value.kind === "app") {
|
|
55
|
+
if ("providerBindings" in value || "observability" in value)
|
|
56
|
+
fail(`Graph nodes[${index}] contains legacy provider data.`);
|
|
57
|
+
validateDeploymentRoles(value.deploymentRoles, index, "app", fail);
|
|
58
|
+
validateTelemetryConfiguration(value.telemetry, index, fail);
|
|
59
|
+
}
|
|
47
60
|
if (value.kind === "middleware") {
|
|
48
61
|
if (typeof value.path !== "string" || !Number.isSafeInteger(value.order)) {
|
|
49
62
|
fail(`Graph nodes[${index}] middleware metadata is invalid.`);
|
|
@@ -69,7 +82,7 @@ function validateGenerated(value, index, field) {
|
|
|
69
82
|
return;
|
|
70
83
|
if (!isRecord(value))
|
|
71
84
|
fail(`Graph nodes[${index}].${field} is invalid.`);
|
|
72
|
-
for (const key of ["agentId", "
|
|
85
|
+
for (const key of ["agentId", "functionId"]) {
|
|
73
86
|
if (value[key] !== undefined)
|
|
74
87
|
validateId(value[key], `Graph nodes[${index}].${field}.${key}`);
|
|
75
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-validation.js","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-validation.js","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { JsonValue, SourceLocation } from "@relkit/contracts";
|
|
2
2
|
import type { AppNode, EnvironmentVariableNode, GeneratedAgentMarker } from "./foundation-nodes.js";
|
|
3
3
|
import type { DomainExposure, ErrorNode, FunctionNode } from "./domain-nodes.js";
|
|
4
|
+
import type { ProviderBindingNode } from "./provider-nodes.js";
|
|
4
5
|
import type { ServiceNode } from "./service-nodes.js";
|
|
5
6
|
export declare const GRAPH_NODE_KINDS: readonly ["app", "env", "function", "error", "trigger", "job", "event", "bucket", "cache", "tool", "agent", "provider", "service", "middleware", "hook"];
|
|
6
7
|
export type GraphNodeKind = (typeof GRAPH_NODE_KINDS)[number];
|
|
@@ -44,14 +45,14 @@ export interface HttpTriggerConfig {
|
|
|
44
45
|
readonly maxBodyBytes?: number;
|
|
45
46
|
readonly timeoutMs?: number;
|
|
46
47
|
}
|
|
47
|
-
export type SelectorExpansion = `${string}@${number}`;
|
|
48
48
|
export interface EventTriggerConfig {
|
|
49
|
-
readonly
|
|
50
|
-
readonly
|
|
49
|
+
readonly eventId: string;
|
|
50
|
+
readonly eventVersion: number;
|
|
51
51
|
readonly delivery: "ephemeral" | "durable";
|
|
52
52
|
readonly profile?: string;
|
|
53
53
|
readonly retry?: JsonValue;
|
|
54
54
|
readonly concurrency?: number;
|
|
55
|
+
readonly timeoutMs?: number;
|
|
55
56
|
}
|
|
56
57
|
export interface TriggerNode<Trigger extends GraphTriggerType = GraphTriggerType, Config = JsonValue> extends GraphNodeBase<"trigger"> {
|
|
57
58
|
readonly triggerType: Trigger;
|
|
@@ -71,7 +72,7 @@ export interface JobNode extends GraphNodeBase<"job"> {
|
|
|
71
72
|
export interface EventNode extends GraphNodeBase<"event"> {
|
|
72
73
|
readonly exposure?: DomainExposure;
|
|
73
74
|
readonly version: number;
|
|
74
|
-
readonly
|
|
75
|
+
readonly input: JsonValue;
|
|
75
76
|
readonly sensitiveFields?: readonly string[];
|
|
76
77
|
readonly profile: string;
|
|
77
78
|
}
|
|
@@ -115,19 +116,7 @@ export interface AgentNode extends GraphNodeBase<"agent"> {
|
|
|
115
116
|
readonly generatedFunction: GeneratedAgentMarker;
|
|
116
117
|
readonly profile: string;
|
|
117
118
|
}
|
|
118
|
-
export
|
|
119
|
-
readonly profile: string;
|
|
120
|
-
readonly capability: string;
|
|
121
|
-
readonly adapter: string;
|
|
122
|
-
readonly ownership: "external" | "managed";
|
|
123
|
-
readonly configuration: JsonValue;
|
|
124
|
-
readonly environment: readonly {
|
|
125
|
-
readonly name: string;
|
|
126
|
-
readonly type: string;
|
|
127
|
-
readonly sensitive: boolean;
|
|
128
|
-
}[];
|
|
129
|
-
}
|
|
130
|
-
export type GraphNode = AppNode | EnvironmentVariableNode | FunctionNode | ErrorNode | TriggerNode | JobNode | EventNode | BucketNode | CacheNode | ToolNode | AgentNode | ProviderProfileNode | ServiceNode | MiddlewareNode | HookNode;
|
|
119
|
+
export type GraphNode = AppNode | EnvironmentVariableNode | FunctionNode | ErrorNode | TriggerNode | JobNode | EventNode | BucketNode | CacheNode | ToolNode | AgentNode | ProviderBindingNode | ServiceNode | MiddlewareNode | HookNode;
|
|
131
120
|
export { GRAPH_EDGE_KINDS, isGraphEdgeKind, type GraphEdge, type GraphEdgeBase, type GraphEdgeKind, type TargetsFunctionEdge, type UsesHookEdge, type UsesMiddlewareEdge, } from "./graph-edges.js";
|
|
132
121
|
export type TargetFunctionRole = "primary";
|
|
133
122
|
export type { ApplicationGraph, Graph, ObservedEdge } from "./graph-types.js";
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,0JAgBnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AACvE,MAAM,WAAW,aAAa,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa;IACvE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,YAAY,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAAC;CAC1C;AACD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B;AACD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;QACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK;IACL,KAAK;IACL,UAAU;IACV,OAAO;IACP,SAAS;IACT,KAAK;IACL,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,UAAU;IACV,SAAS;IACT,YAAY;IACZ,MAAM;CACE,CAAC;AAoIX,OAAO,EACL,gBAAgB,EAChB,eAAe,GAOhB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { JsonValue } from "@relkit/contracts";
|
|
2
|
+
import type { GraphNodeBase } from "./model.js";
|
|
3
|
+
export declare const PROVIDER_CAPABILITIES: readonly ["bucket", "cache", "job", "event", "model"];
|
|
4
|
+
export type ProviderCapability = (typeof PROVIDER_CAPABILITIES)[number];
|
|
5
|
+
export interface ProviderConnectionFieldProjection {
|
|
6
|
+
readonly required: boolean;
|
|
7
|
+
readonly sensitive: boolean;
|
|
8
|
+
readonly authoredValue: "fixed" | "fallback";
|
|
9
|
+
readonly default?: JsonValue;
|
|
10
|
+
}
|
|
11
|
+
export interface ProviderAdapterProjection {
|
|
12
|
+
readonly integrationId: string;
|
|
13
|
+
readonly adapterId: string;
|
|
14
|
+
readonly protocolVersion: 1;
|
|
15
|
+
readonly behavior: JsonValue;
|
|
16
|
+
readonly connectionContract: Readonly<Record<string, ProviderConnectionFieldProjection>>;
|
|
17
|
+
readonly connection: Readonly<Record<string, JsonValue>>;
|
|
18
|
+
readonly features: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
export type ProviderSourceProjection = Readonly<{
|
|
21
|
+
kind: "connected";
|
|
22
|
+
}> | Readonly<{
|
|
23
|
+
kind: "local-only";
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
kind: "infrastructure";
|
|
26
|
+
integrationId: string;
|
|
27
|
+
options: JsonValue;
|
|
28
|
+
}>;
|
|
29
|
+
export interface ProviderNamedValueProjection {
|
|
30
|
+
readonly field: string;
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly type: string;
|
|
33
|
+
readonly sensitive: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface ProviderLocalRecipeProjection {
|
|
36
|
+
readonly integrationId: string;
|
|
37
|
+
readonly recipeId: string;
|
|
38
|
+
readonly recipeVersion: number;
|
|
39
|
+
}
|
|
40
|
+
export type DeploymentRole = "engine" | "host" | "infrastructure" | "access";
|
|
41
|
+
export interface DeploymentRoleProjection {
|
|
42
|
+
readonly role: DeploymentRole;
|
|
43
|
+
readonly integrationId: string;
|
|
44
|
+
readonly protocolVersion: 1;
|
|
45
|
+
readonly configuration: JsonValue;
|
|
46
|
+
}
|
|
47
|
+
export interface ProviderBindingNode extends GraphNodeBase<"provider"> {
|
|
48
|
+
readonly capability: ProviderCapability;
|
|
49
|
+
readonly profile: string;
|
|
50
|
+
readonly adapter: ProviderAdapterProjection;
|
|
51
|
+
readonly providerSource: ProviderSourceProjection;
|
|
52
|
+
readonly namedValues: readonly ProviderNamedValueProjection[];
|
|
53
|
+
readonly local?: ProviderLocalRecipeProjection;
|
|
54
|
+
readonly access?: JsonValue;
|
|
55
|
+
readonly deploymentRoles: readonly DeploymentRoleProjection[];
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=provider-nodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-nodes.d.ts","sourceRoot":"","sources":["../src/provider-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,qBAAqB,uDAAwD,CAAC;AAE3F,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,UAAU,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;IACzF,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,wBAAwB,GAChC,QAAQ,CAAC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAC/B,QAAQ,CAAC;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,GAChC,QAAQ,CAAC;IACP,IAAI,EAAE,gBAAgB,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC,CAAC;AAEP,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,UAAU,CAAC;IACpE,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-nodes.js","sourceRoot":"","sources":["../src/provider-nodes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare function validateProviderNode(value: Record<string, unknown>, index: number, fail: (message: string) => never): void;
|
|
2
|
+
export declare function validateDeploymentRoles(value: unknown, index: number, owner: "app" | "provider", fail: (message: string) => never): void;
|
|
2
3
|
//# sourceMappingURL=provider-validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-validation.d.ts","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-validation.d.ts","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"AAaA,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GAC/B,IAAI,CAkBN;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,GAAG,UAAU,EACzB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GAC/B,IAAI,CAyBN"}
|
|
@@ -1,21 +1,144 @@
|
|
|
1
|
+
import { PROVIDER_CAPABILITIES } from "./provider-nodes.js";
|
|
2
|
+
const bindingValueTypes = [
|
|
3
|
+
"string",
|
|
4
|
+
"number",
|
|
5
|
+
"boolean",
|
|
6
|
+
"port",
|
|
7
|
+
"url",
|
|
8
|
+
"json",
|
|
9
|
+
"secret-string",
|
|
10
|
+
];
|
|
11
|
+
const deploymentRoles = ["engine", "host", "infrastructure", "access"];
|
|
1
12
|
export function validateProviderNode(value, index, fail) {
|
|
2
|
-
|
|
3
|
-
if (!capabilities.includes(String(value.capability)) ||
|
|
13
|
+
if (!PROVIDER_CAPABILITIES.includes(value.capability) ||
|
|
4
14
|
!nonEmpty(value.profile) ||
|
|
5
|
-
!
|
|
6
|
-
(value.
|
|
7
|
-
!Array.isArray(value.
|
|
15
|
+
!isRecord(value.adapter) ||
|
|
16
|
+
!isRecord(value.providerSource) ||
|
|
17
|
+
!Array.isArray(value.namedValues) ||
|
|
18
|
+
!Array.isArray(value.deploymentRoles) ||
|
|
19
|
+
"ownership" in value) {
|
|
8
20
|
fail(`Graph nodes[${index}] provider metadata is invalid.`);
|
|
9
21
|
}
|
|
10
|
-
value.
|
|
22
|
+
validateAdapter(value.adapter, index, fail);
|
|
23
|
+
validateProviderSource(value.providerSource, index, fail);
|
|
24
|
+
validateNamedValues(value, index, fail);
|
|
25
|
+
validateLocal(value.local, index, fail);
|
|
26
|
+
validateDeploymentRoles(value.deploymentRoles, index, "provider", fail);
|
|
27
|
+
validateRoleConsistency(value, index, fail);
|
|
28
|
+
}
|
|
29
|
+
export function validateDeploymentRoles(value, index, owner, fail) {
|
|
30
|
+
if (value === undefined && owner === "app")
|
|
31
|
+
return;
|
|
32
|
+
if (!Array.isArray(value))
|
|
33
|
+
fail(`Graph nodes[${index}].deploymentRoles is invalid.`);
|
|
34
|
+
const seen = new Set();
|
|
35
|
+
value.forEach((entry, roleIndex) => {
|
|
36
|
+
if (isRecord(entry) && entry.protocolVersion !== 1)
|
|
37
|
+
fail(`Graph nodes[${index}].deploymentRoles[${roleIndex}] protocol version ${String(entry.protocolVersion)} is unsupported; regenerate with \`relkit check\`.`);
|
|
38
|
+
if (!isRecord(entry) ||
|
|
39
|
+
!deploymentRoles.includes(entry.role) ||
|
|
40
|
+
!nonEmpty(entry.integrationId) ||
|
|
41
|
+
entry.protocolVersion !== 1 ||
|
|
42
|
+
!Object.hasOwn(entry, "configuration")) {
|
|
43
|
+
fail(`Graph nodes[${index}].deploymentRoles[${roleIndex}] is invalid.`);
|
|
44
|
+
}
|
|
45
|
+
const role = entry.role;
|
|
46
|
+
if ((owner === "app") !== (role === "engine" || role === "host")) {
|
|
47
|
+
fail(`Graph nodes[${index}].deploymentRoles[${roleIndex}] has an invalid role.`);
|
|
48
|
+
}
|
|
49
|
+
if (seen.has(role))
|
|
50
|
+
fail(`Graph nodes[${index}] has duplicate ${role} deployment roles.`);
|
|
51
|
+
seen.add(role);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function validateAdapter(adapter, index, fail) {
|
|
55
|
+
if (adapter.protocolVersion !== 1)
|
|
56
|
+
fail(`Graph nodes[${index}].adapter protocol version ${String(adapter.protocolVersion)} is unsupported; regenerate with \`relkit check\`.`);
|
|
57
|
+
if (!nonEmpty(adapter.integrationId) ||
|
|
58
|
+
!nonEmpty(adapter.adapterId) ||
|
|
59
|
+
adapter.protocolVersion !== 1 ||
|
|
60
|
+
!Object.hasOwn(adapter, "behavior") ||
|
|
61
|
+
!isRecord(adapter.connectionContract) ||
|
|
62
|
+
!isRecord(adapter.connection) ||
|
|
63
|
+
!textList(adapter.features)) {
|
|
64
|
+
fail(`Graph nodes[${index}].adapter is invalid.`);
|
|
65
|
+
}
|
|
66
|
+
for (const [field, metadata] of Object.entries(adapter.connectionContract)) {
|
|
67
|
+
if (!nonEmpty(field) ||
|
|
68
|
+
!isRecord(metadata) ||
|
|
69
|
+
typeof metadata.required !== "boolean" ||
|
|
70
|
+
typeof metadata.sensitive !== "boolean" ||
|
|
71
|
+
(metadata.authoredValue !== "fixed" && metadata.authoredValue !== "fallback") ||
|
|
72
|
+
(metadata.sensitive === true && Object.hasOwn(metadata, "default"))) {
|
|
73
|
+
fail(`Graph nodes[${index}].adapter.connectionContract.${field} is invalid.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
for (const field of Object.keys(adapter.connection)) {
|
|
77
|
+
const metadata = adapter.connectionContract[field];
|
|
78
|
+
if (!isRecord(metadata) || metadata.sensitive === true) {
|
|
79
|
+
fail(`Graph nodes[${index}].adapter.connection.${field} is invalid.`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function validateProviderSource(source, index, fail) {
|
|
84
|
+
if (source.kind === "connected" || source.kind === "local-only")
|
|
85
|
+
return;
|
|
86
|
+
if (source.kind !== "infrastructure" ||
|
|
87
|
+
!nonEmpty(source.integrationId) ||
|
|
88
|
+
!Object.hasOwn(source, "options")) {
|
|
89
|
+
fail(`Graph nodes[${index}].providerSource is invalid.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function validateNamedValues(value, index, fail) {
|
|
93
|
+
const adapter = value.adapter;
|
|
94
|
+
const contract = adapter.connectionContract;
|
|
95
|
+
const connection = adapter.connection;
|
|
96
|
+
const seen = new Set();
|
|
97
|
+
value.namedValues.forEach((entry, namedIndex) => {
|
|
11
98
|
if (!isRecord(entry) ||
|
|
99
|
+
!nonEmpty(entry.field) ||
|
|
12
100
|
!nonEmpty(entry.name) ||
|
|
13
|
-
!
|
|
14
|
-
typeof entry.sensitive !== "boolean"
|
|
15
|
-
|
|
101
|
+
!bindingValueTypes.includes(entry.type) ||
|
|
102
|
+
typeof entry.sensitive !== "boolean" ||
|
|
103
|
+
Object.hasOwn(entry, "value")) {
|
|
104
|
+
fail(`Graph nodes[${index}].namedValues[${namedIndex}] is invalid.`);
|
|
105
|
+
}
|
|
106
|
+
const field = entry.field;
|
|
107
|
+
const metadata = contract[field];
|
|
108
|
+
if (seen.has(field) ||
|
|
109
|
+
Object.hasOwn(connection, field) ||
|
|
110
|
+
!isRecord(metadata) ||
|
|
111
|
+
metadata.sensitive !== entry.sensitive) {
|
|
112
|
+
fail(`Graph nodes[${index}].namedValues[${namedIndex}] does not match its contract.`);
|
|
16
113
|
}
|
|
114
|
+
seen.add(field);
|
|
17
115
|
});
|
|
18
116
|
}
|
|
117
|
+
function validateLocal(value, index, fail) {
|
|
118
|
+
if (value === undefined)
|
|
119
|
+
return;
|
|
120
|
+
if (!isRecord(value) ||
|
|
121
|
+
!nonEmpty(value.integrationId) ||
|
|
122
|
+
!nonEmpty(value.recipeId) ||
|
|
123
|
+
!Number.isSafeInteger(value.recipeVersion) ||
|
|
124
|
+
value.recipeVersion < 1) {
|
|
125
|
+
fail(`Graph nodes[${index}].local is invalid.`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function validateRoleConsistency(value, index, fail) {
|
|
129
|
+
const source = value.providerSource;
|
|
130
|
+
const roles = value.deploymentRoles;
|
|
131
|
+
const infrastructure = roles.find((entry) => entry.role === "infrastructure");
|
|
132
|
+
const access = roles.find((entry) => entry.role === "access");
|
|
133
|
+
if ((source.kind === "infrastructure") !== (infrastructure !== undefined) ||
|
|
134
|
+
(infrastructure !== undefined && infrastructure.integrationId !== source.integrationId) ||
|
|
135
|
+
(value.access !== undefined) !== (access !== undefined)) {
|
|
136
|
+
fail(`Graph nodes[${index}] deployment roles do not match its provider source.`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function textList(value) {
|
|
140
|
+
return Array.isArray(value) && value.every(nonEmpty) && new Set(value).size === value.length;
|
|
141
|
+
}
|
|
19
142
|
function nonEmpty(value) {
|
|
20
143
|
return typeof value === "string" && value.trim().length > 0;
|
|
21
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-validation.js","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAClC,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,MAAM,
|
|
1
|
+
{"version":3,"file":"provider-validation.js","sourceRoot":"","sources":["../src/provider-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAuB,MAAM,qBAAqB,CAAC;AAEjF,MAAM,iBAAiB,GAAG;IACxB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,KAAK;IACL,MAAM;IACN,eAAe;CACP,CAAC;AACX,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAU,CAAC;AAEhF,MAAM,UAAU,oBAAoB,CAClC,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,IACE,CAAE,qBAA4C,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QACzE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QACjC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;QACrC,WAAW,IAAI,KAAK,EACpB,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,iCAAiC,CAAC,CAAC;IAC9D,CAAC;IACD,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,sBAAsB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,uBAAuB,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,KAAa,EACb,KAAyB,EACzB,IAAgC;IAEhC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,eAAe,KAAK,+BAA+B,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACjC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC;YAChD,IAAI,CACF,eAAe,KAAK,qBAAqB,SAAS,sBAAsB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,oDAAoD,CAC1J,CAAC;QACJ,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAE,eAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7D,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9B,KAAK,CAAC,eAAe,KAAK,CAAC;YAC3B,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,EACtC,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,qBAAqB,SAAS,eAAe,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAsB,CAAC;QAC1C,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,eAAe,KAAK,qBAAqB,SAAS,wBAAwB,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,eAAe,KAAK,mBAAmB,IAAI,oBAAoB,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,OAAgC,EAChC,KAAa,EACb,IAAgC;IAEhC,IAAI,OAAO,CAAC,eAAe,KAAK,CAAC;QAC/B,IAAI,CACF,eAAe,KAAK,8BAA8B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,oDAAoD,CACtI,CAAC;IACJ,IACE,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;QAChC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,OAAO,CAAC,eAAe,KAAK,CAAC;QAC7B,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;QACnC,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACrC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7B,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC3B,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3E,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnB,OAAO,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACtC,OAAO,QAAQ,CAAC,SAAS,KAAK,SAAS;YACvC,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,IAAI,QAAQ,CAAC,aAAa,KAAK,UAAU,CAAC;YAC7E,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EACnE,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,gCAAgC,KAAK,cAAc,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,KAAK,wBAAwB,KAAK,cAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAA+B,EAC/B,KAAa,EACb,IAAgC;IAEhC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO;IACxE,IACE,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAChC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/B,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,8BAA8B,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkC,CAAC;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAA6C,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAqC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,CAAC,WAAyB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QAC7D,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YACtB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,CAAE,iBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/D,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS;YACpC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAC7B,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,iBAAiB,UAAU,eAAe,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IACE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC;YAChC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnB,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EACtC,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,iBAAiB,UAAU,gCAAgC,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa,EAAE,IAAgC;IACpF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;QAC9B,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;QACzC,KAAK,CAAC,aAAwB,GAAG,CAAC,EACnC,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,qBAAqB,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAA8B,EAC9B,KAAa,EACb,IAAgC;IAEhC,MAAM,MAAM,GAAG,KAAK,CAAC,cAAyC,CAAC;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,eAA4C,CAAC;IACjE,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC;QACrE,CAAC,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,CAAC;QACvF,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EACvD,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,sDAAsD,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;AAC/F,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration-plan.d.ts","sourceRoot":"","sources":["../src/registration-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAgC,KAAK,4BAA4B,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registration-plan.d.ts","sourceRoot":"","sources":["../src/registration-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAgC,KAAK,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAE5F,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,EAEZ,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,QAAQ,EACR,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AACD,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAChF,MAAM,WAAW,iBAAkB,SAAQ,SAAS;CAAG;AACvD,MAAM,WAAW,kBAAmB,SAAQ,UAAU;CAAG;AACzD,MAAM,WAAW,iBAAkB,SAAQ,SAAS;CAAG;AACvD,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;CAAG;AACrD,MAAM,WAAW,iBAAkB,SAAQ,SAAS;CAAG;AACvD,MAAM,WAAW,mBAAoB,SAAQ,WAAW;CAAG;AAC3D,MAAM,WAAW,sBAAuB,SAAQ,cAAc;CAAG;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACzD;AASD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,4BAAiC,GACzC,gBAAgB,CA2BlB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { deepFreeze } from "@relkit/contracts";
|
|
2
2
|
import { canonicalizeGraph, hashGraph } from "./hash.js";
|
|
3
|
+
import { validateEventTargets } from "./event-validation.js";
|
|
3
4
|
export function createRegistrationPlan(graph, options = {}) {
|
|
4
5
|
const canonical = canonicalizeGraph(graph, options);
|
|
6
|
+
validateEventTargets(canonical);
|
|
5
7
|
const plan = {
|
|
6
8
|
graphHash: hashGraph(canonical, options),
|
|
7
9
|
functions: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration-plan.js","sourceRoot":"","sources":["../src/registration-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAqC,MAAM,WAAW,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"registration-plan.js","sourceRoot":"","sources":["../src/registration-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-validation.d.ts","sourceRoot":"","sources":["../src/telemetry-validation.ts"],"names":[],"mappings":"AAiBA,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GAC/B,IAAI,CAqBN"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { isStableId } from "@relkit/contracts";
|
|
2
|
+
const signals = new Set([
|
|
3
|
+
"request",
|
|
4
|
+
"invocation",
|
|
5
|
+
"job",
|
|
6
|
+
"event",
|
|
7
|
+
"resource",
|
|
8
|
+
"tool",
|
|
9
|
+
"agent",
|
|
10
|
+
"log",
|
|
11
|
+
"span",
|
|
12
|
+
"trace",
|
|
13
|
+
"diagnostic",
|
|
14
|
+
"generation",
|
|
15
|
+
]);
|
|
16
|
+
export function validateTelemetryConfiguration(value, index, fail) {
|
|
17
|
+
if (value === undefined)
|
|
18
|
+
return;
|
|
19
|
+
if (!record(value))
|
|
20
|
+
fail(`Graph nodes[${index}].telemetry is invalid.`);
|
|
21
|
+
exact(value, ["capture", "redaction", "localRetention", "exportSampling", "exporters"], index, fail);
|
|
22
|
+
if (value.capture !== undefined)
|
|
23
|
+
validateCapture(value.capture, index, fail);
|
|
24
|
+
if (value.redaction !== undefined)
|
|
25
|
+
validateRedaction(value.redaction, index, fail);
|
|
26
|
+
if (value.localRetention !== undefined)
|
|
27
|
+
validatePositiveMap(value.localRetention, ["maxRecords", "maxAgeMs", "maxBytes", "maxEntries"], index, "localRetention", fail);
|
|
28
|
+
if (value.exportSampling !== undefined)
|
|
29
|
+
validateSampling(value.exportSampling, index, fail);
|
|
30
|
+
if (value.exporters !== undefined)
|
|
31
|
+
validateExporters(value.exporters, index, fail);
|
|
32
|
+
}
|
|
33
|
+
function validateCapture(value, index, fail) {
|
|
34
|
+
if (!record(value))
|
|
35
|
+
fail(`Graph nodes[${index}].telemetry.capture is invalid.`);
|
|
36
|
+
exact(value, ["signals"], index, fail);
|
|
37
|
+
if (value.signals !== undefined &&
|
|
38
|
+
(!Array.isArray(value.signals) || value.signals.some((signal) => !signals.has(String(signal)))))
|
|
39
|
+
fail(`Graph nodes[${index}].telemetry.capture.signals is invalid.`);
|
|
40
|
+
}
|
|
41
|
+
function validateRedaction(value, index, fail) {
|
|
42
|
+
if (!record(value))
|
|
43
|
+
fail(`Graph nodes[${index}].telemetry.redaction is invalid.`);
|
|
44
|
+
exact(value, ["mode", "maxBytes", "redactKeys"], index, fail);
|
|
45
|
+
if (value.mode !== undefined && value.mode !== "off" && value.mode !== "development-redacted")
|
|
46
|
+
fail(`Graph nodes[${index}].telemetry.redaction.mode is invalid.`);
|
|
47
|
+
if (value.maxBytes !== undefined &&
|
|
48
|
+
(!Number.isSafeInteger(value.maxBytes) || Number(value.maxBytes) < 1))
|
|
49
|
+
fail(`Graph nodes[${index}].telemetry.redaction.maxBytes is invalid.`);
|
|
50
|
+
if (value.redactKeys !== undefined &&
|
|
51
|
+
(!Array.isArray(value.redactKeys) ||
|
|
52
|
+
value.redactKeys.some((key) => typeof key !== "string" || key === "")))
|
|
53
|
+
fail(`Graph nodes[${index}].telemetry.redaction.redactKeys is invalid.`);
|
|
54
|
+
}
|
|
55
|
+
function validateSampling(value, index, fail) {
|
|
56
|
+
if (!record(value))
|
|
57
|
+
fail(`Graph nodes[${index}].telemetry.exportSampling is invalid.`);
|
|
58
|
+
exact(value, ["traceRate", "minimumLogLevel"], index, fail);
|
|
59
|
+
if (value.traceRate !== undefined &&
|
|
60
|
+
(typeof value.traceRate !== "number" || value.traceRate < 0 || value.traceRate > 1))
|
|
61
|
+
fail(`Graph nodes[${index}].telemetry.exportSampling.traceRate is invalid.`);
|
|
62
|
+
if (value.minimumLogLevel !== undefined &&
|
|
63
|
+
!["trace", "debug", "info", "warn", "error", "fatal"].includes(String(value.minimumLogLevel)))
|
|
64
|
+
fail(`Graph nodes[${index}].telemetry.exportSampling.minimumLogLevel is invalid.`);
|
|
65
|
+
}
|
|
66
|
+
function validateExporters(value, index, fail) {
|
|
67
|
+
if (!record(value))
|
|
68
|
+
fail(`Graph nodes[${index}].telemetry.exporters is invalid.`);
|
|
69
|
+
for (const [name, exporter] of Object.entries(value)) {
|
|
70
|
+
if (!isStableId(name) ||
|
|
71
|
+
!record(exporter) ||
|
|
72
|
+
Reflect.ownKeys(exporter).length !== 5 ||
|
|
73
|
+
exporter.kind !== "telemetry-exporter" ||
|
|
74
|
+
exporter.protocolVersion !== 1 ||
|
|
75
|
+
!isStableId(exporter.integrationId) ||
|
|
76
|
+
!isStableId(exporter.adapterId) ||
|
|
77
|
+
!record(exporter.configuration))
|
|
78
|
+
fail(`Graph nodes[${index}].telemetry.exporters.${name} is invalid.`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function validatePositiveMap(value, keys, index, field, fail) {
|
|
82
|
+
if (!record(value))
|
|
83
|
+
fail(`Graph nodes[${index}].telemetry.${field} is invalid.`);
|
|
84
|
+
exact(value, keys, index, fail);
|
|
85
|
+
if (Object.values(value).some((entry) => !Number.isSafeInteger(entry) || Number(entry) < 1))
|
|
86
|
+
fail(`Graph nodes[${index}].telemetry.${field} is invalid.`);
|
|
87
|
+
}
|
|
88
|
+
function exact(value, keys, index, fail) {
|
|
89
|
+
if (Object.keys(value).some((key) => !keys.includes(key)))
|
|
90
|
+
fail(`Graph nodes[${index}].telemetry contains unknown fields.`);
|
|
91
|
+
}
|
|
92
|
+
function record(value) {
|
|
93
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=telemetry-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-validation.js","sourceRoot":"","sources":["../src/telemetry-validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relkit/graph",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Unsupported internal RELKIT graph model; use @relkit/app.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@relkit/contracts": "0.0
|
|
32
|
+
"@relkit/contracts": "0.2.0"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc -b",
|