@xenolithengine/graph-core 0.7.0-beta.5 → 0.7.0-beta.7
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/command-bus.d.ts +18 -0
- package/dist/command-bus.d.ts.map +1 -1
- package/dist/command-bus.js +10 -0
- package/dist/command-bus.js.map +1 -1
- package/dist/graph-internals.d.ts +38 -0
- package/dist/graph-internals.d.ts.map +1 -0
- package/dist/graph-internals.js +2 -0
- package/dist/graph-internals.js.map +1 -0
- package/dist/graph.d.ts +7 -27
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +9 -0
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/command-bus.d.ts
CHANGED
|
@@ -26,7 +26,21 @@ export type CoreEvents = {
|
|
|
26
26
|
'transaction:reverted': {
|
|
27
27
|
commands: Command<unknown>[];
|
|
28
28
|
};
|
|
29
|
+
/** One event per undo()/redo() HISTORY STEP (ADR 0006): single commands and whole
|
|
30
|
+
* transactions/groups alike. Carries per-command results so listeners can reconstruct
|
|
31
|
+
* side effects (e.g. edges cascaded by RemoveNode) without diffing the graph. */
|
|
32
|
+
'history:undone': {
|
|
33
|
+
entries: readonly HistoryAppliedCommand[];
|
|
34
|
+
};
|
|
35
|
+
'history:redone': {
|
|
36
|
+
entries: readonly HistoryAppliedCommand[];
|
|
37
|
+
};
|
|
29
38
|
};
|
|
39
|
+
/** A command plus the result its apply() produced — the unit the history log stores. */
|
|
40
|
+
export interface HistoryAppliedCommand {
|
|
41
|
+
command: Command<unknown>;
|
|
42
|
+
result: unknown;
|
|
43
|
+
}
|
|
30
44
|
export interface CommandBusOptions {
|
|
31
45
|
/** Maximum number of undo entries to retain. Older entries are dropped when exceeded. */
|
|
32
46
|
maxHistory?: number;
|
|
@@ -48,6 +62,10 @@ export declare class CommandBus {
|
|
|
48
62
|
endGroup(): void;
|
|
49
63
|
undo(): boolean;
|
|
50
64
|
redo(): boolean;
|
|
65
|
+
/** True while applies are accumulating into a transaction or undo group — i.e. the commit
|
|
66
|
+
* (`transaction:committed`) has not fired yet. Bridges use this to buffer per-command
|
|
67
|
+
* events and emit ONE coalesced payload at commit (ADR 0006). */
|
|
68
|
+
get collecting(): boolean;
|
|
51
69
|
canUndo(): boolean;
|
|
52
70
|
canRedo(): boolean;
|
|
53
71
|
transaction<R>(fn: () => R): R;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-bus.d.ts","sourceRoot":"","sources":["../src/command-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAC5C;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,iBAAiB,EAAQ;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;IACvE,gBAAgB,EAAS;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IACtD,gBAAgB,EAAS;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IACtD,uBAAuB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAA;IACzD,sBAAsB,EAAG;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"command-bus.d.ts","sourceRoot":"","sources":["../src/command-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAC5C;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,iBAAiB,EAAQ;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;IACvE,gBAAgB,EAAS;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IACtD,gBAAgB,EAAS;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IACtD,uBAAuB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAA;IACzD,sBAAsB,EAAG;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAA;IACzD;;sFAEkF;IAClF,gBAAgB,EAAS;QAAE,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAA;KAAE,CAAA;IACtE,gBAAgB,EAAS;QAAE,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAA;KAAE,CAAA;CACvE,CAAA;AAED,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;CAChB;AAQD,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,UAAU;;gBAgBT,GAAG,EAAE,cAAc,EAAE,IAAI,GAAE,iBAAsB;IAK7D,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBhC;;;8EAG0E;IAC1E,UAAU,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAQvE;mEAC+D;IAC/D,QAAQ,IAAI,IAAI;IAsBhB,IAAI,IAAI,OAAO;IAgBf,IAAI,IAAI,OAAO;IAgBf;;sEAEkE;IAClE,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,OAAO,IAAI,OAAO;IAClB,OAAO,IAAI,OAAO;IAElB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAyC9B,YAAY,IAAI,IAAI;CA2BrB"}
|
package/dist/command-bus.js
CHANGED
|
@@ -84,11 +84,13 @@ export class CommandBus {
|
|
|
84
84
|
const entry = this.#log[this.#cursor];
|
|
85
85
|
if (entry.kind === 'single') {
|
|
86
86
|
this.#undoOne(entry.entry);
|
|
87
|
+
this.#ctx.events.emit('history:undone', { entries: [entry.entry] });
|
|
87
88
|
}
|
|
88
89
|
else {
|
|
89
90
|
for (let i = entry.entries.length - 1; i >= 0; i--) {
|
|
90
91
|
this.#undoOne(entry.entries[i]);
|
|
91
92
|
}
|
|
93
|
+
this.#ctx.events.emit('history:undone', { entries: entry.entries });
|
|
92
94
|
}
|
|
93
95
|
return true;
|
|
94
96
|
}
|
|
@@ -101,13 +103,21 @@ export class CommandBus {
|
|
|
101
103
|
this.#cursor++;
|
|
102
104
|
if (entry.kind === 'single') {
|
|
103
105
|
this.#redoOne(entry.entry);
|
|
106
|
+
this.#ctx.events.emit('history:redone', { entries: [entry.entry] });
|
|
104
107
|
}
|
|
105
108
|
else {
|
|
106
109
|
for (const e of entry.entries)
|
|
107
110
|
this.#redoOne(e);
|
|
111
|
+
this.#ctx.events.emit('history:redone', { entries: entry.entries });
|
|
108
112
|
}
|
|
109
113
|
return true;
|
|
110
114
|
}
|
|
115
|
+
/** True while applies are accumulating into a transaction or undo group — i.e. the commit
|
|
116
|
+
* (`transaction:committed`) has not fired yet. Bridges use this to buffer per-command
|
|
117
|
+
* events and emit ONE coalesced payload at commit (ADR 0006). */
|
|
118
|
+
get collecting() {
|
|
119
|
+
return this.#txBuffer !== null || this.#groupBuffer !== null;
|
|
120
|
+
}
|
|
111
121
|
canUndo() { return this.#cursor > 0; }
|
|
112
122
|
canRedo() { return this.#cursor < this.#log.length; }
|
|
113
123
|
transaction(fn) {
|
package/dist/command-bus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-bus.js","sourceRoot":"","sources":["../src/command-bus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-bus.js","sourceRoot":"","sources":["../src/command-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { CommentId, EdgeId, NodeId } from './ids.js';
|
|
2
|
+
import type { Comment, Edge, Node, Pin } from './graph.js';
|
|
3
|
+
import type { WidgetSpec } from './widget.js';
|
|
4
|
+
/**
|
|
5
|
+
* `Graph`'s command-bus mutation surface — the FRIEND interface (ADR 0008).
|
|
6
|
+
*
|
|
7
|
+
* `Graph` owns mutable storage (ADR 0005) but its underscore mutators carry internal markers
|
|
8
|
+
* and are stripped from the shipped `.d.ts`; the in-repo editor's command bus reaches them
|
|
9
|
+
* through `graph.internals()`, which returns this interface. Renaming or re-signaturing a
|
|
10
|
+
* member here breaks the editor's build at compile time — the drift lock is the point.
|
|
11
|
+
*
|
|
12
|
+
* NOT for hosts: mutating through this surface bypasses the command bus — no undo steps, no
|
|
13
|
+
* preventable events, no `graph:changed` commits. Hosts mutate through editor commands or
|
|
14
|
+
* `editor.applyChanges`. Same story for the doc comments on the concrete members.
|
|
15
|
+
*/
|
|
16
|
+
export interface GraphInternals {
|
|
17
|
+
/** Register a comment as-is (throws on duplicate id). */
|
|
18
|
+
_addComment(comment: Comment): void;
|
|
19
|
+
/** Remove a comment, returning it (or undefined if unknown). */
|
|
20
|
+
_removeComment(id: CommentId): Comment | undefined;
|
|
21
|
+
/** Patch mutable Comment fields in place (identity `id` is immutable). */
|
|
22
|
+
_patchComment(id: CommentId, patch: Partial<Pick<Comment, 'position' | 'size' | 'text' | 'color'>>): Readonly<Comment> | undefined;
|
|
23
|
+
/** Register a node as-is (throws on duplicate id). */
|
|
24
|
+
_addNode(node: Node): void;
|
|
25
|
+
/** Remove a node, returning it (or undefined if unknown). */
|
|
26
|
+
_removeNode(id: NodeId): Node | undefined;
|
|
27
|
+
/** Register an edge as-is (throws on duplicate id). */
|
|
28
|
+
_addEdge(edge: Edge): void;
|
|
29
|
+
/** Remove an edge, returning it (or undefined if unknown). */
|
|
30
|
+
_removeEdge(id: EdgeId): Edge | undefined;
|
|
31
|
+
/** Patch a subset of mutable Node fields in place (`position`/`size`/`state`/`type`). */
|
|
32
|
+
_patchNode(id: NodeId, patch: Partial<Pick<Node, 'position' | 'size' | 'state' | 'type'>>): Readonly<Node> | undefined;
|
|
33
|
+
/** Replace a node's pin list wholesale (incident-edge pruning is the caller's job). */
|
|
34
|
+
_setNodePins(id: NodeId, pins: Pin[]): Readonly<Node> | undefined;
|
|
35
|
+
/** Replace a node's widget list wholesale (per-widget state values are NOT touched). */
|
|
36
|
+
_setNodeWidgets(id: NodeId, widgets: WidgetSpec[] | undefined): Readonly<Node> | undefined;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=graph-internals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-internals.d.ts","sourceRoot":"","sources":["../src/graph-internals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACnC,gEAAgE;IAChE,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;IAClD,0EAA0E;IAC1E,aAAa,CACX,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GACpE,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IAChC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAC1B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACzC,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAC1B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACzC,yFAAyF;IACzF,UAAU,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,GACjE,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IAC7B,uFAAuF;IACvF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IACjE,wFAAwF;IACxF,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;CAC3F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-internals.js","sourceRoot":"","sources":["../src/graph-internals.ts"],"names":[],"mappings":""}
|
package/dist/graph.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { NodeId, EdgeId, PinId, CommentId, TypeId } from './ids.js';
|
|
2
2
|
import type { WidgetSpec } from './widget.js';
|
|
3
|
+
import type { GraphInternals } from './graph-internals.js';
|
|
3
4
|
export interface Vec2 {
|
|
4
5
|
x: number;
|
|
5
6
|
y: number;
|
|
@@ -61,7 +62,7 @@ export interface Comment {
|
|
|
61
62
|
text: string;
|
|
62
63
|
color?: string;
|
|
63
64
|
}
|
|
64
|
-
export declare class Graph {
|
|
65
|
+
export declare class Graph implements GraphInternals {
|
|
65
66
|
#private;
|
|
66
67
|
get version(): number;
|
|
67
68
|
get nodeCount(): number;
|
|
@@ -76,33 +77,12 @@ export declare class Graph {
|
|
|
76
77
|
getComment(id: CommentId): Readonly<Comment> | undefined;
|
|
77
78
|
hasComment(id: CommentId): boolean;
|
|
78
79
|
comments(): IterableIterator<Readonly<Comment>>;
|
|
79
|
-
/** @internal */
|
|
80
|
-
_addComment(comment: Comment): void;
|
|
81
|
-
/** @internal */
|
|
82
|
-
_removeComment(id: CommentId): Comment | undefined;
|
|
83
|
-
/** @internal — patch mutable Comment fields in place (identity `id` is immutable). */
|
|
84
|
-
_patchComment(id: CommentId, patch: Partial<Pick<Comment, 'position' | 'size' | 'text' | 'color'>>): Readonly<Comment> | undefined;
|
|
85
|
-
/** @internal — call only from CommandBus-applied commands. */
|
|
86
|
-
_addNode(node: Node): void;
|
|
87
|
-
/** @internal */
|
|
88
|
-
_removeNode(id: NodeId): Node | undefined;
|
|
89
|
-
/** @internal */
|
|
90
|
-
_addEdge(edge: Edge): void;
|
|
91
|
-
/** @internal */
|
|
92
|
-
_removeEdge(id: EdgeId): Edge | undefined;
|
|
93
80
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
81
|
+
* The command-bus mutation surface (ADR 0008) — the friend path to the underscore mutators
|
|
82
|
+
* (which carry internal markers and are stripped from the shipped `.d.ts`). Reserved for the
|
|
83
|
+
* in-repo editor bus; hosts mutate through editor commands or `editor.applyChanges`, never
|
|
84
|
+
* through this.
|
|
98
85
|
*/
|
|
99
|
-
|
|
100
|
-
/** @internal — replace a node's pin list wholesale. Pruning edges incident to dropped pins is the
|
|
101
|
-
* caller's job (the SetNodePins command does it so the change is undoable). */
|
|
102
|
-
_setNodePins(id: NodeId, pins: Pin[]): Readonly<Node> | undefined;
|
|
103
|
-
/** @internal — replace a node's widget list wholesale. Per-widget `node.state[key]` values are
|
|
104
|
-
* NOT touched: re-adding a previously-removed widget under the same key restores its value.
|
|
105
|
-
* Use via the `SetNodeWidgets` command so the change is undoable. */
|
|
106
|
-
_setNodeWidgets(id: NodeId, widgets: WidgetSpec[] | undefined): Readonly<Node> | undefined;
|
|
86
|
+
internals(): GraphInternals;
|
|
107
87
|
}
|
|
108
88
|
//# sourceMappingURL=graph.d.ts.map
|
package/dist/graph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/graph.js
CHANGED
|
@@ -137,5 +137,14 @@ export class Graph {
|
|
|
137
137
|
this.#version++;
|
|
138
138
|
return node;
|
|
139
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* The command-bus mutation surface (ADR 0008) — the friend path to the underscore mutators
|
|
142
|
+
* (which carry internal markers and are stripped from the shipped `.d.ts`). Reserved for the
|
|
143
|
+
* in-repo editor bus; hosts mutate through editor commands or `editor.applyChanges`, never
|
|
144
|
+
* through this.
|
|
145
|
+
*/
|
|
146
|
+
internals() {
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
140
149
|
}
|
|
141
150
|
//# sourceMappingURL=graph.js.map
|
package/dist/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,12 +4,13 @@ export type { EventMap, Listener, Unsubscribe, ErrorListener } from './event-emi
|
|
|
4
4
|
export { createNodeId, createEdgeId, createPinId, createCommentId, createTypeId, isUuidV7, } from './ids.js';
|
|
5
5
|
export type { NodeId, EdgeId, PinId, CommentId, TypeId } from './ids.js';
|
|
6
6
|
export { Graph } from './graph.js';
|
|
7
|
+
export type { GraphInternals } from './graph-internals.js';
|
|
7
8
|
export type { Node, Edge, Pin, Comment, Vec2, PinKind, PinDirection, NodeGlyph } from './graph.js';
|
|
8
9
|
export { incomers, outgoers, connectedEdges, roots, leaves, topoOrder, wouldCreateCycle, reachableFrom } from './traversal.js';
|
|
9
10
|
export { evaluateGraph } from './evaluate.js';
|
|
10
11
|
export type { NodeCompute, EvaluateGraphResult } from './evaluate.js';
|
|
11
12
|
export { CommandBus } from './command-bus.js';
|
|
12
|
-
export type { Command, CommandContext, CommandBusOptions, CoreEvents } from './command-bus.js';
|
|
13
|
+
export type { Command, CommandContext, CommandBusOptions, CoreEvents, HistoryAppliedCommand } from './command-bus.js';
|
|
13
14
|
export { AddNode, RemoveNode, ConnectPins, DisconnectEdge } from './commands.js';
|
|
14
15
|
export type { RemoveNodeUndo } from './commands.js';
|
|
15
16
|
export { MoveNode, ResizeNode, SetNodeState, SetNodePins, SetNodeWidgets } from './commands-mut.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,iBAAiB,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAExF,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,QAAQ,GACT,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAExE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9H,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,QAAQ,GACT,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,QAAQ,GACT,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9H,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGhF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGnG,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC7G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC3G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAGhM,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAU1B,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AAG5F,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xenolithengine/graph-core",
|
|
3
|
-
"version": "0.7.0-beta.
|
|
3
|
+
"version": "0.7.0-beta.7",
|
|
4
4
|
"description": "Headless graph model, type system, command bus, and event emitter for XenolithGraph. Zero runtime dependencies.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|