@relkit/graph 0.0.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/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/diff-types.d.ts +31 -0
- package/dist/diff-types.d.ts.map +1 -0
- package/dist/diff-types.js +7 -0
- package/dist/diff-types.js.map +1 -0
- package/dist/diff-utils.d.ts +11 -0
- package/dist/diff-utils.d.ts.map +1 -0
- package/dist/diff-utils.js +167 -0
- package/dist/diff-utils.js.map +1 -0
- package/dist/diff.d.ts +8 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +103 -0
- package/dist/diff.js.map +1 -0
- package/dist/foundation-nodes.d.ts +30 -0
- package/dist/foundation-nodes.d.ts.map +1 -0
- package/dist/foundation-nodes.js +2 -0
- package/dist/foundation-nodes.js.map +1 -0
- package/dist/graph-edges.d.ts +21 -0
- package/dist/graph-edges.d.ts.map +1 -0
- package/dist/graph-edges.js +21 -0
- package/dist/graph-edges.js.map +1 -0
- package/dist/graph-types.d.ts +15 -0
- package/dist/graph-types.d.ts.map +1 -0
- package/dist/graph-types.js +2 -0
- package/dist/graph-types.js.map +1 -0
- package/dist/graph-validation.d.ts +2 -0
- package/dist/graph-validation.d.ts.map +1 -0
- package/dist/graph-validation.js +184 -0
- package/dist/graph-validation.js.map +1 -0
- package/dist/hash.d.ts +23 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +142 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/model.d.ts +140 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +21 -0
- package/dist/model.js.map +1 -0
- package/dist/production.d.ts +4 -0
- package/dist/production.d.ts.map +1 -0
- package/dist/production.js +14 -0
- package/dist/production.js.map +1 -0
- package/dist/provider-validation.d.ts +2 -0
- package/dist/provider-validation.d.ts.map +1 -0
- package/dist/provider-validation.js +25 -0
- package/dist/provider-validation.js.map +1 -0
- package/dist/registration-plan.d.ts +49 -0
- package/dist/registration-plan.d.ts.map +1 -0
- package/dist/registration-plan.js +117 -0
- package/dist/registration-plan.js.map +1 -0
- package/dist/service-nodes.d.ts +32 -0
- package/dist/service-nodes.d.ts.map +1 -0
- package/dist/service-nodes.js +2 -0
- package/dist/service-nodes.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function validateProviderNode(value, index, fail) {
|
|
2
|
+
const capabilities = ["buckets", "cache", "jobs", "events", "models", "observability"];
|
|
3
|
+
if (!capabilities.includes(String(value.capability)) ||
|
|
4
|
+
!nonEmpty(value.profile) ||
|
|
5
|
+
!nonEmpty(value.adapter) ||
|
|
6
|
+
(value.ownership !== "external" && value.ownership !== "managed") ||
|
|
7
|
+
!Array.isArray(value.environment)) {
|
|
8
|
+
fail(`Graph nodes[${index}] provider metadata is invalid.`);
|
|
9
|
+
}
|
|
10
|
+
value.environment.forEach((entry, environmentIndex) => {
|
|
11
|
+
if (!isRecord(entry) ||
|
|
12
|
+
!nonEmpty(entry.name) ||
|
|
13
|
+
!nonEmpty(entry.type) ||
|
|
14
|
+
typeof entry.sensitive !== "boolean") {
|
|
15
|
+
fail(`Graph nodes[${index}].environment[${environmentIndex}] is invalid.`);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function nonEmpty(value) {
|
|
20
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
21
|
+
}
|
|
22
|
+
function isRecord(value) {
|
|
23
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=provider-validation.js.map
|
|
@@ -0,0 +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,YAAY,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACvF,IACE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;QACjE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EACjC,CAAC;QACD,IAAI,CAAC,eAAe,KAAK,iCAAiC,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;QACpD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,EACpC,CAAC;YACD,IAAI,CAAC,eAAe,KAAK,iBAAiB,gBAAgB,eAAe,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type JsonValue, type SourceLocation } from "@relkit/contracts";
|
|
2
|
+
import { type GraphCanonicalizationOptions } from "./hash.js";
|
|
3
|
+
import type { AgentNode, ApplicationGraph, BucketNode, CacheNode, EventNode, EventTriggerConfig, FunctionNode, HttpTriggerConfig, JobNode, MiddlewareNode, ToolNode, TriggerNode } from "./model.js";
|
|
4
|
+
import type { ServiceNode } from "./service-nodes.js";
|
|
5
|
+
export interface FunctionRegistration extends FunctionNode {
|
|
6
|
+
readonly serviceId?: string;
|
|
7
|
+
}
|
|
8
|
+
export type HttpTriggerRegistration = TriggerNode<"http", HttpTriggerConfig> & {
|
|
9
|
+
readonly serviceId?: string;
|
|
10
|
+
};
|
|
11
|
+
export type QueueRegistration = JobNode | TriggerNode<"queue", JsonValue>;
|
|
12
|
+
export interface ScheduleRegistration {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly source: SourceLocation;
|
|
15
|
+
readonly jobId: string;
|
|
16
|
+
readonly schedule: JsonValue;
|
|
17
|
+
}
|
|
18
|
+
export type EventTriggerRegistration = TriggerNode<"event", EventTriggerConfig>;
|
|
19
|
+
export interface EventRegistration extends EventNode {
|
|
20
|
+
}
|
|
21
|
+
export interface BucketRegistration extends BucketNode {
|
|
22
|
+
}
|
|
23
|
+
export interface CacheRegistration extends CacheNode {
|
|
24
|
+
}
|
|
25
|
+
export interface ToolRegistration extends ToolNode {
|
|
26
|
+
}
|
|
27
|
+
export interface AgentRegistration extends AgentNode {
|
|
28
|
+
}
|
|
29
|
+
export interface ServiceRegistration extends ServiceNode {
|
|
30
|
+
}
|
|
31
|
+
export interface MiddlewareRegistration extends MiddlewareNode {
|
|
32
|
+
}
|
|
33
|
+
export interface RegistrationPlan {
|
|
34
|
+
readonly graphHash: string;
|
|
35
|
+
readonly functions: readonly FunctionRegistration[];
|
|
36
|
+
readonly httpTriggers: readonly HttpTriggerRegistration[];
|
|
37
|
+
readonly queues: readonly QueueRegistration[];
|
|
38
|
+
readonly schedules: readonly ScheduleRegistration[];
|
|
39
|
+
readonly eventTriggers: readonly EventTriggerRegistration[];
|
|
40
|
+
readonly events?: readonly EventRegistration[];
|
|
41
|
+
readonly buckets: readonly BucketRegistration[];
|
|
42
|
+
readonly caches: readonly CacheRegistration[];
|
|
43
|
+
readonly tools: readonly ToolRegistration[];
|
|
44
|
+
readonly agents: readonly AgentRegistration[];
|
|
45
|
+
readonly services?: readonly ServiceRegistration[];
|
|
46
|
+
readonly middlewares: readonly MiddlewareRegistration[];
|
|
47
|
+
}
|
|
48
|
+
export declare function createRegistrationPlan(graph: ApplicationGraph, options?: GraphCanonicalizationOptions): RegistrationPlan;
|
|
49
|
+
//# sourceMappingURL=registration-plan.d.ts.map
|
|
@@ -0,0 +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;AAC5F,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,CAyBlB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { deepFreeze } from "@relkit/contracts";
|
|
2
|
+
import { canonicalizeGraph, hashGraph } from "./hash.js";
|
|
3
|
+
export function createRegistrationPlan(graph, options = {}) {
|
|
4
|
+
const canonical = canonicalizeGraph(graph, options);
|
|
5
|
+
const plan = {
|
|
6
|
+
graphHash: hashGraph(canonical, options),
|
|
7
|
+
functions: [],
|
|
8
|
+
httpTriggers: [],
|
|
9
|
+
queues: [],
|
|
10
|
+
schedules: [],
|
|
11
|
+
eventTriggers: [],
|
|
12
|
+
events: [],
|
|
13
|
+
buckets: [],
|
|
14
|
+
caches: [],
|
|
15
|
+
tools: [],
|
|
16
|
+
agents: [],
|
|
17
|
+
services: [],
|
|
18
|
+
middlewares: [],
|
|
19
|
+
};
|
|
20
|
+
const serviceIds = new Map();
|
|
21
|
+
for (const node of canonical.nodes)
|
|
22
|
+
if (node.kind === "service")
|
|
23
|
+
for (const member of node.members)
|
|
24
|
+
serviceIds.set(member.functionId, node.id);
|
|
25
|
+
for (const node of canonical.nodes)
|
|
26
|
+
addNode(plan, node, serviceIds);
|
|
27
|
+
plan.httpTriggers.sort(compareHttpTrigger);
|
|
28
|
+
plan.schedules.sort(compareSchedule);
|
|
29
|
+
return deepFreeze(plan);
|
|
30
|
+
}
|
|
31
|
+
function addNode(plan, node, serviceIds) {
|
|
32
|
+
switch (node.kind) {
|
|
33
|
+
case "function":
|
|
34
|
+
{
|
|
35
|
+
const serviceId = serviceIds.get(node.id);
|
|
36
|
+
plan.functions.push(serviceId === undefined ? node : { ...node, serviceId });
|
|
37
|
+
}
|
|
38
|
+
return;
|
|
39
|
+
case "trigger":
|
|
40
|
+
addTrigger(plan, node, serviceIds);
|
|
41
|
+
return;
|
|
42
|
+
case "job":
|
|
43
|
+
plan.queues.push(node);
|
|
44
|
+
addSchedules(plan.schedules, node);
|
|
45
|
+
return;
|
|
46
|
+
case "bucket":
|
|
47
|
+
plan.buckets.push(node);
|
|
48
|
+
return;
|
|
49
|
+
case "cache":
|
|
50
|
+
plan.caches.push(node);
|
|
51
|
+
return;
|
|
52
|
+
case "tool":
|
|
53
|
+
plan.tools.push(node);
|
|
54
|
+
return;
|
|
55
|
+
case "agent":
|
|
56
|
+
plan.agents.push(node);
|
|
57
|
+
return;
|
|
58
|
+
case "service":
|
|
59
|
+
plan.services.push(node);
|
|
60
|
+
return;
|
|
61
|
+
case "event":
|
|
62
|
+
plan.events.push(node);
|
|
63
|
+
return;
|
|
64
|
+
case "middleware":
|
|
65
|
+
plan.middlewares.push(node);
|
|
66
|
+
return;
|
|
67
|
+
default:
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function addTrigger(plan, node, serviceIds) {
|
|
72
|
+
if (node.triggerType === "http") {
|
|
73
|
+
const serviceId = serviceIds.get(node.targetFunctionId);
|
|
74
|
+
plan.httpTriggers.push((serviceId === undefined
|
|
75
|
+
? node
|
|
76
|
+
: { ...node, serviceId }));
|
|
77
|
+
}
|
|
78
|
+
else if (node.triggerType === "event")
|
|
79
|
+
plan.eventTriggers.push(node);
|
|
80
|
+
else if (node.triggerType === "queue")
|
|
81
|
+
plan.queues.push(node);
|
|
82
|
+
else
|
|
83
|
+
plan.schedules.push(scheduleFromTrigger(node));
|
|
84
|
+
}
|
|
85
|
+
function addSchedules(output, node) {
|
|
86
|
+
if (!Array.isArray(node.schedule))
|
|
87
|
+
return;
|
|
88
|
+
node.schedule.forEach((schedule, index) => {
|
|
89
|
+
const id = isRecord(schedule) && typeof schedule.id === "string" ? schedule.id : String(index);
|
|
90
|
+
output.push({ id: `${node.id}:${id}`, source: node.source, jobId: node.id, schedule });
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function scheduleFromTrigger(node) {
|
|
94
|
+
const config = isRecord(node.config) ? node.config : {};
|
|
95
|
+
const schedule = config.schedule ?? node.config;
|
|
96
|
+
const jobId = typeof config.jobId === "string" ? config.jobId : node.targetFunctionId;
|
|
97
|
+
return { id: node.id, source: node.source, jobId, schedule };
|
|
98
|
+
}
|
|
99
|
+
function compareSchedule(left, right) {
|
|
100
|
+
return left.id.localeCompare(right.id) || left.jobId.localeCompare(right.jobId);
|
|
101
|
+
}
|
|
102
|
+
function compareHttpTrigger(left, right) {
|
|
103
|
+
// Keep all static routes ahead of parameters and wildcards; IDs make ties stable.
|
|
104
|
+
return (routePrecedence(left.config.path) - routePrecedence(right.config.path) ||
|
|
105
|
+
left.id.localeCompare(right.id));
|
|
106
|
+
}
|
|
107
|
+
function routePrecedence(path) {
|
|
108
|
+
if (path.includes("*") && path.endsWith("?"))
|
|
109
|
+
return 3;
|
|
110
|
+
if (path.includes("*"))
|
|
111
|
+
return 2;
|
|
112
|
+
return path.split("/").some((segment) => segment.startsWith(":")) ? 1 : 0;
|
|
113
|
+
}
|
|
114
|
+
function isRecord(value) {
|
|
115
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=registration-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-plan.js","sourceRoot":"","sources":["../src/registration-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { SourceLocation } from "@relkit/contracts";
|
|
2
|
+
export interface ServiceMemberRef {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly functionId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ServiceMiddlewareRef {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ServiceNode {
|
|
10
|
+
readonly kind: "service";
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly source: SourceLocation;
|
|
13
|
+
readonly title?: string;
|
|
14
|
+
readonly description?: string;
|
|
15
|
+
readonly tags?: readonly string[];
|
|
16
|
+
readonly members: readonly ServiceMemberRef[];
|
|
17
|
+
readonly middleware: readonly ServiceMiddlewareRef[];
|
|
18
|
+
}
|
|
19
|
+
export interface ServiceMemberEdge {
|
|
20
|
+
readonly kind: "contains-function";
|
|
21
|
+
readonly from: string;
|
|
22
|
+
readonly to: string;
|
|
23
|
+
readonly member: string;
|
|
24
|
+
readonly order: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ServiceMiddlewareEdge {
|
|
27
|
+
readonly kind: "uses-service-middleware";
|
|
28
|
+
readonly from: string;
|
|
29
|
+
readonly to: string;
|
|
30
|
+
readonly order: number;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=service-nodes.d.ts.map
|
|
@@ -0,0 +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;CACrB;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,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,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,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-nodes.js","sourceRoot":"","sources":["../src/service-nodes.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@relkit/graph",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Unsupported internal RELKIT graph model; use @relkit/app.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/rel-kit/relkit.git",
|
|
9
|
+
"directory": "packages/graph"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/rel-kit/relkit#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/rel-kit/relkit/issues"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"engines": {
|
|
22
|
+
"bun": ">=1.3.10"
|
|
23
|
+
},
|
|
24
|
+
"type": "module",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"import": "./dist/index.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@relkit/contracts": "0.0.0"
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsc -b",
|
|
36
|
+
"check": "tsc -b --pretty false",
|
|
37
|
+
"typecheck": "tsc -b --pretty false"
|
|
38
|
+
}
|
|
39
|
+
}
|