@relkit/graph 0.0.4 → 0.1.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 +9 -38
- 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 +26 -0
- package/dist/domain-nodes.d.ts.map +1 -0
- package/dist/domain-nodes.js +2 -0
- package/dist/domain-nodes.js.map +1 -0
- 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 +1 -7
- package/dist/foundation-nodes.d.ts.map +1 -1
- package/dist/graph-edges.d.ts +3 -3
- package/dist/graph-edges.d.ts.map +1 -1
- package/dist/graph-edges.js +5 -2
- package/dist/graph-edges.js.map +1 -1
- package/dist/graph-validation.d.ts.map +1 -1
- package/dist/graph-validation.js +23 -36
- package/dist/graph-validation.js.map +1 -1
- package/dist/hash.js +1 -1
- package/dist/hash.js.map +1 -1
- package/dist/model.d.ts +11 -16
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +1 -0
- package/dist/model.js.map +1 -1
- package/dist/registration-plan.d.ts.map +1 -1
- package/dist/registration-plan.js +5 -3
- package/dist/registration-plan.js.map +1 -1
- package/dist/service-nodes.d.ts +36 -8
- package/dist/service-nodes.d.ts.map +1 -1
- package/dist/service-validation.d.ts +2 -0
- package/dist/service-validation.d.ts.map +1 -0
- package/dist/service-validation.js +41 -0
- package/dist/service-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";
|
|
@@ -118,9 +96,9 @@ function classifyAgent(fields) {
|
|
|
118
96
|
return fields.length === 0 ? "informational" : "potentially-breaking";
|
|
119
97
|
}
|
|
120
98
|
function classifyService(fields) {
|
|
121
|
-
if (fields.includes("
|
|
99
|
+
if (fields.includes("functions") || fields.includes("events"))
|
|
122
100
|
return "breaking";
|
|
123
|
-
if (fields.includes("
|
|
101
|
+
if (fields.includes("capability"))
|
|
124
102
|
return "potentially-breaking";
|
|
125
103
|
return fields.length === 0 ? "informational" : "compatible";
|
|
126
104
|
}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { JsonValue } from "@relkit/contracts";
|
|
2
|
+
import type { GeneratedFunctionMarker } from "./foundation-nodes.js";
|
|
3
|
+
import type { GraphNodeBase } from "./model.js";
|
|
4
|
+
export type DomainExposure = "public" | "internal";
|
|
5
|
+
export interface FunctionNode extends GraphNodeBase<"function"> {
|
|
6
|
+
readonly invocationMode: "callable" | "event-only";
|
|
7
|
+
readonly publishes?: JsonValue;
|
|
8
|
+
readonly exposure?: DomainExposure;
|
|
9
|
+
readonly input: JsonValue;
|
|
10
|
+
readonly output: JsonValue;
|
|
11
|
+
readonly errors?: JsonValue;
|
|
12
|
+
readonly dependencies?: JsonValue;
|
|
13
|
+
readonly timeoutMs?: number;
|
|
14
|
+
readonly concurrency?: number;
|
|
15
|
+
readonly generated?: GeneratedFunctionMarker;
|
|
16
|
+
}
|
|
17
|
+
export interface ErrorNode extends GraphNodeBase<"error"> {
|
|
18
|
+
readonly exposure: DomainExposure;
|
|
19
|
+
readonly data: JsonValue;
|
|
20
|
+
readonly http?: JsonValue;
|
|
21
|
+
readonly retry: JsonValue;
|
|
22
|
+
readonly title?: string;
|
|
23
|
+
readonly description?: string;
|
|
24
|
+
readonly tags?: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=domain-nodes.d.ts.map
|
|
@@ -0,0 +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,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":"domain-nodes.js","sourceRoot":"","sources":["../src/domain-nodes.ts"],"names":[],"mappings":""}
|
|
@@ -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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"}
|
|
@@ -20,11 +20,5 @@ export interface GeneratedAgentMarker {
|
|
|
20
20
|
readonly agentId: string;
|
|
21
21
|
readonly functionId: string;
|
|
22
22
|
}
|
|
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;
|
|
23
|
+
export type GeneratedFunctionMarker = GeneratedAgentMarker;
|
|
30
24
|
//# 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;AAEhD,MAAM,WAAW,OAAQ,SAAQ,aAAa,CAAC,KAAK,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;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,
|
|
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;AAEhD,MAAM,WAAW,OAAQ,SAAQ,aAAa,CAAC,KAAK,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;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"}
|
package/dist/graph-edges.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const GRAPH_EDGE_KINDS: readonly ["targets-function", "calls-function", "enqueues-job", "publishes-event", "listens-to-event", "uses-bucket", "uses-cache", "invokes-agent", "exposes-as-tool", "uses-tool", "uses-provider-profile", "
|
|
1
|
+
import type { ExposesEventEdge, ExposesFunctionEdge } from "./service-nodes.js";
|
|
2
|
+
export declare const GRAPH_EDGE_KINDS: readonly ["targets-function", "calls-function", "enqueues-job", "publishes-event", "listens-to-event", "uses-bucket", "uses-cache", "invokes-agent", "exposes-as-tool", "uses-tool", "uses-provider-profile", "exposes-function", "exposes-event", "depends-on-service", "mounts-service", "declares-error", "uses-middleware", "uses-hook"];
|
|
3
3
|
export type GraphEdgeKind = (typeof GRAPH_EDGE_KINDS)[number];
|
|
4
4
|
export interface GraphEdgeBase<Kind extends GraphEdgeKind = GraphEdgeKind> {
|
|
5
5
|
readonly kind: Kind;
|
|
@@ -16,6 +16,6 @@ export interface UsesMiddlewareEdge extends GraphEdgeBase<"uses-middleware"> {
|
|
|
16
16
|
export interface UsesHookEdge extends GraphEdgeBase<"uses-hook"> {
|
|
17
17
|
readonly phase: "before" | "after";
|
|
18
18
|
}
|
|
19
|
-
export type GraphEdge = TargetsFunctionEdge | GraphEdgeBase<"calls-function"> | GraphEdgeBase<"enqueues-job"> | GraphEdgeBase<"publishes-event"> | GraphEdgeBase<"listens-to-event"> | GraphEdgeBase<"uses-bucket"> | GraphEdgeBase<"uses-cache"> | GraphEdgeBase<"invokes-agent"> | GraphEdgeBase<"exposes-as-tool"> | GraphEdgeBase<"uses-tool"> | GraphEdgeBase<"uses-provider-profile"> |
|
|
19
|
+
export type GraphEdge = TargetsFunctionEdge | GraphEdgeBase<"calls-function"> | GraphEdgeBase<"enqueues-job"> | GraphEdgeBase<"publishes-event"> | GraphEdgeBase<"listens-to-event"> | GraphEdgeBase<"uses-bucket"> | GraphEdgeBase<"uses-cache"> | GraphEdgeBase<"invokes-agent"> | GraphEdgeBase<"exposes-as-tool"> | GraphEdgeBase<"uses-tool"> | GraphEdgeBase<"uses-provider-profile"> | ExposesFunctionEdge | ExposesEventEdge | GraphEdgeBase<"depends-on-service"> | GraphEdgeBase<"mounts-service"> | GraphEdgeBase<"declares-error"> | UsesMiddlewareEdge | UsesHookEdge;
|
|
20
20
|
export declare function isGraphEdgeKind(value: unknown): value is GraphEdgeKind;
|
|
21
21
|
//# sourceMappingURL=graph-edges.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-edges.d.ts","sourceRoot":"","sources":["../src/graph-edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"graph-edges.d.ts","sourceRoot":"","sources":["../src/graph-edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,eAAO,MAAM,gBAAgB,8UAmBnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,WAAW,aAAa,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa;IACvE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AACD,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IAC5E,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AACD,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAAC;CAC1C;AACD,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,WAAW,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;CACpC;AACD,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,aAAa,CAAC,gBAAgB,CAAC,GAC/B,aAAa,CAAC,cAAc,CAAC,GAC7B,aAAa,CAAC,iBAAiB,CAAC,GAChC,aAAa,CAAC,kBAAkB,CAAC,GACjC,aAAa,CAAC,aAAa,CAAC,GAC5B,aAAa,CAAC,YAAY,CAAC,GAC3B,aAAa,CAAC,eAAe,CAAC,GAC9B,aAAa,CAAC,iBAAiB,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,GAC1B,aAAa,CAAC,uBAAuB,CAAC,GACtC,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,CAAC,oBAAoB,CAAC,GACnC,aAAa,CAAC,gBAAgB,CAAC,GAC/B,aAAa,CAAC,gBAAgB,CAAC,GAC/B,kBAAkB,GAClB,YAAY,CAAC;AAEjB,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
|
package/dist/graph-edges.js
CHANGED
|
@@ -10,8 +10,11 @@ export const GRAPH_EDGE_KINDS = [
|
|
|
10
10
|
"exposes-as-tool",
|
|
11
11
|
"uses-tool",
|
|
12
12
|
"uses-provider-profile",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
13
|
+
"exposes-function",
|
|
14
|
+
"exposes-event",
|
|
15
|
+
"depends-on-service",
|
|
16
|
+
"mounts-service",
|
|
17
|
+
"declares-error",
|
|
15
18
|
"uses-middleware",
|
|
16
19
|
"uses-hook",
|
|
17
20
|
];
|
package/dist/graph-edges.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-edges.js","sourceRoot":"","sources":["../src/graph-edges.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,WAAW;IACX,uBAAuB;IACvB,
|
|
1
|
+
{"version":3,"file":"graph-edges.js","sourceRoot":"","sources":["../src/graph-edges.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,WAAW;IACX,uBAAuB;IACvB,kBAAkB;IAClB,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;CACH,CAAC;AAqCX,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,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":"AAMA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAStE"}
|
package/dist/graph-validation.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { isStableId, normalizeSourceLocation } from "@relkit/contracts";
|
|
2
2
|
import { isGraphEdgeKind, isGraphNodeKind } from "./model.js";
|
|
3
3
|
import { validateProviderNode } from "./provider-validation.js";
|
|
4
|
+
import { validateServiceNode } from "./service-validation.js";
|
|
5
|
+
import { validateEventTargets } from "./event-validation.js";
|
|
4
6
|
export function validateGraphShape(value, root) {
|
|
5
7
|
if (!isRecord(value) || !Array.isArray(value.nodes) || !Array.isArray(value.edges)) {
|
|
6
8
|
fail("A graph must contain nodes and edges arrays.");
|
|
@@ -10,6 +12,7 @@ export function validateGraphShape(value, root) {
|
|
|
10
12
|
fail("Graph appId is invalid.");
|
|
11
13
|
value.nodes.forEach((node, index) => validateNode(node, root, index));
|
|
12
14
|
value.edges.forEach((edge, index) => validateEdge(edge, index));
|
|
15
|
+
validateEventTargets(value);
|
|
13
16
|
}
|
|
14
17
|
function validateNode(value, root, index) {
|
|
15
18
|
if (!isRecord(value) || !isGraphNodeKind(value.kind) || !isCanonicalId(value.id)) {
|
|
@@ -24,8 +27,16 @@ function validateNode(value, root, index) {
|
|
|
24
27
|
if ("targetFunctionId" in value) {
|
|
25
28
|
validateId(value.targetFunctionId, `Graph nodes[${index}].targetFunctionId`);
|
|
26
29
|
}
|
|
27
|
-
if (value.
|
|
30
|
+
if (value.domainId !== undefined)
|
|
31
|
+
validateId(value.domainId, `Graph nodes[${index}].domainId`);
|
|
32
|
+
if (value.kind === "function") {
|
|
33
|
+
if (value.invocationMode !== "callable" && value.invocationMode !== "event-only")
|
|
34
|
+
fail(`Function "${value.id}" requires a valid invocationMode.`);
|
|
28
35
|
validateGenerated(value.generated, index, "generated");
|
|
36
|
+
validateExposure(value.exposure, index);
|
|
37
|
+
}
|
|
38
|
+
if (value.kind === "event" || value.kind === "error")
|
|
39
|
+
validateExposure(value.exposure, index);
|
|
29
40
|
if (value.kind === "agent") {
|
|
30
41
|
validateIds(value.toolIds, `Graph nodes[${index}].toolIds`);
|
|
31
42
|
validateGenerated(value.generatedFunction, index, "generatedFunction");
|
|
@@ -34,7 +45,7 @@ function validateNode(value, root, index) {
|
|
|
34
45
|
validateHttpIdentities(value.config, index);
|
|
35
46
|
}
|
|
36
47
|
if (value.kind === "service")
|
|
37
|
-
|
|
48
|
+
validateServiceNode(value, index, validateId);
|
|
38
49
|
if (value.kind === "provider")
|
|
39
50
|
validateProviderNode(value, index, fail);
|
|
40
51
|
if (value.kind === "middleware") {
|
|
@@ -52,12 +63,17 @@ function validateNode(value, root, index) {
|
|
|
52
63
|
}
|
|
53
64
|
}
|
|
54
65
|
}
|
|
66
|
+
function validateExposure(value, index) {
|
|
67
|
+
if (value !== undefined && value !== "public" && value !== "internal") {
|
|
68
|
+
fail(`Graph nodes[${index}].exposure is invalid.`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
55
71
|
function validateGenerated(value, index, field) {
|
|
56
72
|
if (value === undefined || value === null)
|
|
57
73
|
return;
|
|
58
74
|
if (!isRecord(value))
|
|
59
75
|
fail(`Graph nodes[${index}].${field} is invalid.`);
|
|
60
|
-
for (const key of ["agentId", "
|
|
76
|
+
for (const key of ["agentId", "functionId"]) {
|
|
61
77
|
if (value[key] !== undefined)
|
|
62
78
|
validateId(value[key], `Graph nodes[${index}].${field}.${key}`);
|
|
63
79
|
}
|
|
@@ -87,33 +103,6 @@ function validateHttpIdentities(value, index) {
|
|
|
87
103
|
validateId(value.rateLimit.storeId, `Graph nodes[${index}].config.rateLimit.storeId`);
|
|
88
104
|
}
|
|
89
105
|
}
|
|
90
|
-
function validateService(value, index) {
|
|
91
|
-
if (!Array.isArray(value.members) || value.members.length === 0) {
|
|
92
|
-
fail(`Graph nodes[${index}].members must be a non-empty array.`);
|
|
93
|
-
}
|
|
94
|
-
const names = new Set();
|
|
95
|
-
value.members.forEach((member, memberIndex) => {
|
|
96
|
-
if (!isRecord(member) || !nonEmpty(member.name) || names.has(member.name)) {
|
|
97
|
-
fail(`Graph nodes[${index}].members[${memberIndex}] is invalid.`);
|
|
98
|
-
}
|
|
99
|
-
names.add(member.name);
|
|
100
|
-
validateId(member.functionId, `Graph nodes[${index}].members[${memberIndex}].functionId`);
|
|
101
|
-
});
|
|
102
|
-
if (!Array.isArray(value.middleware))
|
|
103
|
-
fail(`Graph nodes[${index}].middleware must be an array.`);
|
|
104
|
-
value.middleware.forEach((entry, middlewareIndex) => {
|
|
105
|
-
if (!isRecord(entry))
|
|
106
|
-
fail(`Graph nodes[${index}].middleware[${middlewareIndex}] is invalid.`);
|
|
107
|
-
validateId(entry.id, `Graph nodes[${index}].middleware[${middlewareIndex}].id`);
|
|
108
|
-
});
|
|
109
|
-
if (value.tags !== undefined && !textArray(value.tags))
|
|
110
|
-
fail(`Graph nodes[${index}].tags is invalid.`);
|
|
111
|
-
for (const field of ["title", "description"]) {
|
|
112
|
-
if (value[field] !== undefined && typeof value[field] !== "string") {
|
|
113
|
-
fail(`Graph nodes[${index}].${field} is invalid.`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
106
|
function validateEdge(value, index) {
|
|
118
107
|
if (!isRecord(value) || !isGraphEdgeKind(value.kind)) {
|
|
119
108
|
fail(`Graph edges[${index}] has an invalid kind.`);
|
|
@@ -123,11 +112,12 @@ function validateEdge(value, index) {
|
|
|
123
112
|
if (value.kind === "targets-function" && value.role !== "primary") {
|
|
124
113
|
fail(`Graph edges[${index}].role is invalid.`);
|
|
125
114
|
}
|
|
126
|
-
if (value.kind === "
|
|
115
|
+
if ((value.kind === "exposes-function" || value.kind === "exposes-event") &&
|
|
116
|
+
!nonEmpty(value.member)) {
|
|
127
117
|
fail(`Graph edges[${index}].member is invalid.`);
|
|
128
118
|
}
|
|
129
|
-
if ((value.kind === "
|
|
130
|
-
value.kind === "
|
|
119
|
+
if ((value.kind === "exposes-function" ||
|
|
120
|
+
value.kind === "exposes-event" ||
|
|
131
121
|
value.kind === "uses-middleware") &&
|
|
132
122
|
(!Number.isSafeInteger(value.order) || value.order < 0)) {
|
|
133
123
|
fail(`Graph edges[${index}].order is invalid.`);
|
|
@@ -153,9 +143,6 @@ function isCanonicalId(value) {
|
|
|
153
143
|
function nonEmpty(value) {
|
|
154
144
|
return typeof value === "string" && value.trim().length > 0;
|
|
155
145
|
}
|
|
156
|
-
function textArray(value) {
|
|
157
|
-
return Array.isArray(value) && value.every((entry) => typeof entry === "string");
|
|
158
|
-
}
|
|
159
146
|
function rejectUnboundIdentities(value, path = "graph", identityField = false) {
|
|
160
147
|
if (typeof value === "string") {
|
|
161
148
|
if (identityField && value.startsWith("unbound."))
|
|
@@ -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;AACxE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-validation.js","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/hash.js
CHANGED
|
@@ -79,7 +79,7 @@ function compareGraphValues(left, right, kind) {
|
|
|
79
79
|
return compareStrings(canonicalJson(left), canonicalJson(right));
|
|
80
80
|
}
|
|
81
81
|
function isOrderedServiceEdge(value) {
|
|
82
|
-
return value.kind === "
|
|
82
|
+
return value.kind === "exposes-function" || value.kind === "exposes-event";
|
|
83
83
|
}
|
|
84
84
|
function numberValue(value) {
|
|
85
85
|
return typeof value === "number" ? value : Number.MAX_SAFE_INTEGER;
|
package/dist/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import type { JsonValue, SourceLocation } from "@relkit/contracts";
|
|
2
|
-
import type { AppNode, EnvironmentVariableNode, GeneratedAgentMarker
|
|
2
|
+
import type { AppNode, EnvironmentVariableNode, GeneratedAgentMarker } from "./foundation-nodes.js";
|
|
3
|
+
import type { DomainExposure, ErrorNode, FunctionNode } from "./domain-nodes.js";
|
|
3
4
|
import type { ServiceNode } from "./service-nodes.js";
|
|
4
|
-
export declare const GRAPH_NODE_KINDS: readonly ["app", "env", "function", "trigger", "job", "event", "bucket", "cache", "tool", "agent", "provider", "service", "middleware", "hook"];
|
|
5
|
+
export declare const GRAPH_NODE_KINDS: readonly ["app", "env", "function", "error", "trigger", "job", "event", "bucket", "cache", "tool", "agent", "provider", "service", "middleware", "hook"];
|
|
5
6
|
export type GraphNodeKind = (typeof GRAPH_NODE_KINDS)[number];
|
|
6
7
|
export type GraphTriggerType = "http" | "queue" | "schedule" | "event";
|
|
7
8
|
export interface GraphNodeBase<Kind extends GraphNodeKind = GraphNodeKind> {
|
|
8
9
|
readonly kind: Kind;
|
|
9
10
|
readonly id: string;
|
|
10
11
|
readonly source: SourceLocation;
|
|
12
|
+
readonly domainId?: string;
|
|
11
13
|
}
|
|
12
|
-
export
|
|
13
|
-
readonly input: JsonValue;
|
|
14
|
-
readonly output: JsonValue;
|
|
15
|
-
readonly errors?: JsonValue;
|
|
16
|
-
readonly dependencies?: JsonValue;
|
|
17
|
-
readonly timeoutMs?: number;
|
|
18
|
-
readonly concurrency?: number;
|
|
19
|
-
readonly generated?: GeneratedFunctionMarker;
|
|
20
|
-
}
|
|
14
|
+
export type { DomainExposure, ErrorNode, FunctionNode } from "./domain-nodes.js";
|
|
21
15
|
export type { AppNode, EnvironmentVariableNode } from "./foundation-nodes.js";
|
|
22
16
|
export interface MiddlewareRouteRef {
|
|
23
17
|
readonly id: string;
|
|
@@ -50,14 +44,14 @@ export interface HttpTriggerConfig {
|
|
|
50
44
|
readonly maxBodyBytes?: number;
|
|
51
45
|
readonly timeoutMs?: number;
|
|
52
46
|
}
|
|
53
|
-
export type SelectorExpansion = `${string}@${number}`;
|
|
54
47
|
export interface EventTriggerConfig {
|
|
55
|
-
readonly
|
|
56
|
-
readonly
|
|
48
|
+
readonly eventId: string;
|
|
49
|
+
readonly eventVersion: number;
|
|
57
50
|
readonly delivery: "ephemeral" | "durable";
|
|
58
51
|
readonly profile?: string;
|
|
59
52
|
readonly retry?: JsonValue;
|
|
60
53
|
readonly concurrency?: number;
|
|
54
|
+
readonly timeoutMs?: number;
|
|
61
55
|
}
|
|
62
56
|
export interface TriggerNode<Trigger extends GraphTriggerType = GraphTriggerType, Config = JsonValue> extends GraphNodeBase<"trigger"> {
|
|
63
57
|
readonly triggerType: Trigger;
|
|
@@ -75,8 +69,9 @@ export interface JobNode extends GraphNodeBase<"job"> {
|
|
|
75
69
|
readonly idempotency?: JsonValue;
|
|
76
70
|
}
|
|
77
71
|
export interface EventNode extends GraphNodeBase<"event"> {
|
|
72
|
+
readonly exposure?: DomainExposure;
|
|
78
73
|
readonly version: number;
|
|
79
|
-
readonly
|
|
74
|
+
readonly input: JsonValue;
|
|
80
75
|
readonly sensitiveFields?: readonly string[];
|
|
81
76
|
readonly profile: string;
|
|
82
77
|
}
|
|
@@ -132,7 +127,7 @@ export interface ProviderProfileNode extends GraphNodeBase<"provider"> {
|
|
|
132
127
|
readonly sensitive: boolean;
|
|
133
128
|
}[];
|
|
134
129
|
}
|
|
135
|
-
export type GraphNode = AppNode | EnvironmentVariableNode | FunctionNode | TriggerNode | JobNode | EventNode | BucketNode | CacheNode | ToolNode | AgentNode | ProviderProfileNode | ServiceNode | MiddlewareNode | HookNode;
|
|
130
|
+
export type GraphNode = AppNode | EnvironmentVariableNode | FunctionNode | ErrorNode | TriggerNode | JobNode | EventNode | BucketNode | CacheNode | ToolNode | AgentNode | ProviderProfileNode | ServiceNode | MiddlewareNode | HookNode;
|
|
136
131
|
export { GRAPH_EDGE_KINDS, isGraphEdgeKind, type GraphEdge, type GraphEdgeBase, type GraphEdgeKind, type TargetsFunctionEdge, type UsesHookEdge, type UsesMiddlewareEdge, } from "./graph-edges.js";
|
|
137
132
|
export type TargetFunctionRole = "primary";
|
|
138
133
|
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,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model.js
CHANGED
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":"AAKA,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;AAgJX,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"}
|
|
@@ -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: [],
|
|
@@ -19,9 +21,9 @@ export function createRegistrationPlan(graph, options = {}) {
|
|
|
19
21
|
};
|
|
20
22
|
const serviceIds = new Map();
|
|
21
23
|
for (const node of canonical.nodes)
|
|
22
|
-
if (node.kind === "
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
if (node.kind === "function" && node.domainId !== undefined) {
|
|
25
|
+
serviceIds.set(node.id, node.domainId);
|
|
26
|
+
}
|
|
25
27
|
for (const node of canonical.nodes)
|
|
26
28
|
addNode(plan, node, serviceIds);
|
|
27
29
|
plan.httpTriggers.sort(compareHttpTrigger);
|
|
@@ -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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"}
|
package/dist/service-nodes.d.ts
CHANGED
|
@@ -3,8 +3,34 @@ export interface ServiceMemberRef {
|
|
|
3
3
|
readonly name: string;
|
|
4
4
|
readonly functionId: string;
|
|
5
5
|
}
|
|
6
|
-
export interface
|
|
7
|
-
readonly
|
|
6
|
+
export interface DrizzleColumnMetadata {
|
|
7
|
+
readonly key: string;
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly dataType: string;
|
|
10
|
+
readonly notNull: boolean;
|
|
11
|
+
readonly hasDefault: boolean;
|
|
12
|
+
readonly primaryKey: boolean;
|
|
13
|
+
readonly unique: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface DrizzleTableMetadata {
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly databaseName: string;
|
|
18
|
+
readonly columns: readonly DrizzleColumnMetadata[];
|
|
19
|
+
readonly selectors: readonly (readonly string[])[];
|
|
20
|
+
readonly customMethods: readonly string[];
|
|
21
|
+
}
|
|
22
|
+
export type ServiceCapability = {
|
|
23
|
+
readonly kind: "drizzle";
|
|
24
|
+
readonly dialect: "pg" | "mysql" | "sqlite";
|
|
25
|
+
readonly tables: readonly DrizzleTableMetadata[];
|
|
26
|
+
} | {
|
|
27
|
+
readonly kind: "better-auth";
|
|
28
|
+
readonly basePath: string;
|
|
29
|
+
readonly databaseServiceId: string;
|
|
30
|
+
};
|
|
31
|
+
export interface ServiceEventRef {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly eventId: string;
|
|
8
34
|
}
|
|
9
35
|
export interface ServiceNode {
|
|
10
36
|
readonly kind: "service";
|
|
@@ -13,20 +39,22 @@ export interface ServiceNode {
|
|
|
13
39
|
readonly title?: string;
|
|
14
40
|
readonly description?: string;
|
|
15
41
|
readonly tags?: readonly string[];
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
42
|
+
readonly functions: readonly ServiceMemberRef[];
|
|
43
|
+
readonly events: readonly ServiceEventRef[];
|
|
44
|
+
readonly capability?: ServiceCapability;
|
|
18
45
|
}
|
|
19
|
-
export interface
|
|
20
|
-
readonly kind: "
|
|
46
|
+
export interface ExposesFunctionEdge {
|
|
47
|
+
readonly kind: "exposes-function";
|
|
21
48
|
readonly from: string;
|
|
22
49
|
readonly to: string;
|
|
23
50
|
readonly member: string;
|
|
24
51
|
readonly order: number;
|
|
25
52
|
}
|
|
26
|
-
export interface
|
|
27
|
-
readonly kind: "
|
|
53
|
+
export interface ExposesEventEdge {
|
|
54
|
+
readonly kind: "exposes-event";
|
|
28
55
|
readonly from: string;
|
|
29
56
|
readonly to: string;
|
|
57
|
+
readonly member: string;
|
|
30
58
|
readonly order: number;
|
|
31
59
|
}
|
|
32
60
|
//# sourceMappingURL=service-nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-nodes.d.ts","sourceRoot":"","sources":["../src/service-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"service-nodes.d.ts","sourceRoot":"","sources":["../src/service-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,CAAC;AAEN,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,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,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-validation.d.ts","sourceRoot":"","sources":["../src/service-validation.ts"],"names":[],"mappings":"AAYA,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAClD,IAAI,CAyBN"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function fail(message) {
|
|
2
|
+
throw new TypeError(message);
|
|
3
|
+
}
|
|
4
|
+
function isRecord(value) {
|
|
5
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
function nonEmpty(value) {
|
|
8
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
9
|
+
}
|
|
10
|
+
export function validateServiceNode(value, index, validateId) {
|
|
11
|
+
if (!Array.isArray(value.functions))
|
|
12
|
+
fail(`Graph nodes[${index}].functions must be an array.`);
|
|
13
|
+
if (!Array.isArray(value.events))
|
|
14
|
+
fail(`Graph nodes[${index}].events must be an array.`);
|
|
15
|
+
const names = new Set();
|
|
16
|
+
value.functions.forEach((member, memberIndex) => {
|
|
17
|
+
if (!isRecord(member) || !nonEmpty(member.name) || names.has(member.name)) {
|
|
18
|
+
fail(`Graph nodes[${index}].functions[${memberIndex}] is invalid.`);
|
|
19
|
+
}
|
|
20
|
+
names.add(member.name);
|
|
21
|
+
validateId(member.functionId, `Graph nodes[${index}].functions[${memberIndex}].functionId`);
|
|
22
|
+
});
|
|
23
|
+
value.events.forEach((member, memberIndex) => {
|
|
24
|
+
if (!isRecord(member) || !nonEmpty(member.name) || names.has(member.name)) {
|
|
25
|
+
fail(`Graph nodes[${index}].events[${memberIndex}] is invalid.`);
|
|
26
|
+
}
|
|
27
|
+
names.add(member.name);
|
|
28
|
+
validateId(member.eventId, `Graph nodes[${index}].events[${memberIndex}].eventId`);
|
|
29
|
+
});
|
|
30
|
+
if (value.tags !== undefined && !textArray(value.tags))
|
|
31
|
+
fail(`Graph nodes[${index}].tags is invalid.`);
|
|
32
|
+
for (const field of ["title", "description"]) {
|
|
33
|
+
if (value[field] !== undefined && typeof value[field] !== "string") {
|
|
34
|
+
fail(`Graph nodes[${index}].${field} is invalid.`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function textArray(value) {
|
|
39
|
+
return Array.isArray(value) && value.every((entry) => typeof entry === "string");
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=service-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-validation.js","sourceRoot":"","sources":["../src/service-validation.ts"],"names":[],"mappings":"AAAA,SAAS,IAAI,CAAC,OAAe;IAC3B,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAC/B,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;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAA8B,EAC9B,KAAa,EACb,UAAmD;IAEnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,IAAI,CAAC,eAAe,KAAK,+BAA+B,CAAC,CAAC;IAC/F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,eAAe,KAAK,4BAA4B,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,eAAe,KAAK,eAAe,WAAW,eAAe,CAAC,CAAC;QACtE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,KAAK,eAAe,WAAW,cAAc,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,eAAe,KAAK,YAAY,WAAW,eAAe,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,KAAK,YAAY,WAAW,WAAW,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,eAAe,KAAK,oBAAoB,CAAC,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,aAAa,CAAU,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnE,IAAI,CAAC,eAAe,KAAK,KAAK,KAAK,cAAc,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AACnF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relkit/graph",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.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.1.0"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc -b",
|