Teach package runtime edge endpoints

This commit is contained in:
Timothy J. Aveni
2026-07-14 07:57:20 -07:00
parent b4ab4c49c9
commit 85e0dafbeb
16 changed files with 425 additions and 62 deletions
+13 -1
View File
@@ -12,7 +12,7 @@ export type FunctionRef = {
versionRef?: string;
};
export type ConflictStrategy = "replace" | "preserve_conflicts" | "crdt";
export type Cardinality = "optional_one" | "exactly_one" | "many" | "many_unique" | "many_ordered";
export type Cardinality = "optional_one" | "exactly_one" | "many" | "many_unique" | "many_ordered" | "many_unique_ordered";
export type FieldStorageKind = "stored" | "derived" | "lazy" | "external" | "static_final";
export type FieldStorage = {
kind: FieldStorageKind;
@@ -56,6 +56,13 @@ export type FieldSchema = {
interfaceContract?: InterfaceFieldContract;
isDisplayLabel: boolean;
};
export type EdgeEndpointSchema = {
class?: SymbolRef;
interface?: SymbolRef;
projection: string;
cardinality: Cardinality;
indexed: boolean;
};
export type EdgeSchema = {
id: SymbolRef;
sourceField: string;
@@ -64,6 +71,11 @@ export type EdgeSchema = {
cardinality: Cardinality;
inverse?: string;
fields: FieldSchema[];
fromEndpoint: EdgeEndpointSchema;
toEndpoint: EdgeEndpointSchema;
declaringClass: SymbolRef;
tags: SymbolRef[];
implements: SymbolRef[];
};
export type MethodSchema = {
name: string;