@dxos/app-graph 0.8.4-main.dedc0f3 → 0.8.4-main.dfabb4ec29
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/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WJJ5KEOH.mjs +1477 -0
- package/dist/lib/neutral/chunk-WJJ5KEOH.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +40 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/scheduler.mjs +15 -0
- package/dist/lib/neutral/scheduler.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +40 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/types/src/atoms.d.ts +8 -0
- package/dist/types/src/atoms.d.ts.map +1 -0
- package/dist/types/src/graph-builder.d.ts +113 -67
- package/dist/types/src/graph-builder.d.ts.map +1 -1
- package/dist/types/src/graph.d.ts +188 -222
- package/dist/types/src/graph.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +7 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/node-matcher.d.ts +244 -0
- package/dist/types/src/node-matcher.d.ts.map +1 -0
- package/dist/types/src/node-matcher.test.d.ts +2 -0
- package/dist/types/src/node-matcher.test.d.ts.map +1 -0
- package/dist/types/src/node.d.ts +50 -5
- package/dist/types/src/node.d.ts.map +1 -1
- package/dist/types/src/scheduler.browser.d.ts +2 -0
- package/dist/types/src/scheduler.browser.d.ts.map +1 -0
- package/dist/types/src/scheduler.d.ts +8 -0
- package/dist/types/src/scheduler.d.ts.map +1 -0
- package/dist/types/src/stories/EchoGraph.stories.d.ts +0 -1
- package/dist/types/src/stories/EchoGraph.stories.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/testing/setup-graph-builder.d.ts +31 -0
- package/dist/types/src/testing/setup-graph-builder.d.ts.map +1 -0
- package/dist/types/src/util.d.ts +40 -0
- package/dist/types/src/util.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +52 -40
- package/src/atoms.ts +25 -0
- package/src/graph-builder.test.ts +1154 -144
- package/src/graph-builder.ts +738 -293
- package/src/graph.test.ts +451 -123
- package/src/graph.ts +1054 -403
- package/src/index.ts +10 -3
- package/src/node-matcher.test.ts +301 -0
- package/src/node-matcher.ts +314 -0
- package/src/node.ts +82 -8
- package/src/scheduler.browser.ts +5 -0
- package/src/scheduler.ts +17 -0
- package/src/stories/EchoGraph.stories.tsx +167 -131
- package/src/stories/Tree.tsx +1 -1
- package/src/testing/index.ts +5 -0
- package/src/testing/setup-graph-builder.ts +41 -0
- package/src/util.ts +101 -0
- package/dist/lib/browser/index.mjs +0 -853
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/node-esm/index.mjs +0 -855
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/types/src/experimental/graph-projections.test.d.ts +0 -25
- package/dist/types/src/experimental/graph-projections.test.d.ts.map +0 -1
- package/dist/types/src/signals-integration.test.d.ts +0 -2
- package/dist/types/src/signals-integration.test.d.ts.map +0 -1
- package/dist/types/src/testing.d.ts +0 -5
- package/dist/types/src/testing.d.ts.map +0 -1
- package/src/experimental/graph-projections.test.ts +0 -56
- package/src/signals-integration.test.ts +0 -218
- package/src/testing.ts +0 -20
|
@@ -1,27 +1,89 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { Atom, Registry } from '@effect-atom/atom-react';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import * as Option from 'effect/Option';
|
|
4
|
+
import * as Pipeable from 'effect/Pipeable';
|
|
5
|
+
import type * as Schema from 'effect/Schema';
|
|
6
|
+
import { type Entity, type Type } from '@dxos/echo';
|
|
4
7
|
import { type MaybePromise, type Position } from '@dxos/util';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
8
|
+
import * as Graph from './graph';
|
|
9
|
+
import * as Node from './node';
|
|
7
10
|
/**
|
|
8
11
|
* Graph builder extension for adding nodes to the graph based on a node id.
|
|
9
12
|
*/
|
|
10
|
-
export type ResolverExtension = (id: string) =>
|
|
13
|
+
export type ResolverExtension = (id: string) => Atom.Atom<Node.NodeArg<any> | null>;
|
|
11
14
|
/**
|
|
12
15
|
* Graph builder extension for adding nodes to the graph based on a connection to an existing node.
|
|
13
16
|
*
|
|
14
17
|
* @param params.node The existing node the returned nodes will be connected to.
|
|
15
18
|
*/
|
|
16
|
-
export type ConnectorExtension = (node:
|
|
19
|
+
export type ConnectorExtension = (node: Atom.Atom<Option.Option<Node.Node>>) => Atom.Atom<Node.NodeArg<any>[]>;
|
|
17
20
|
/**
|
|
18
21
|
* Constrained case of the connector extension for more easily adding actions to the graph.
|
|
19
22
|
*/
|
|
20
|
-
export type ActionsExtension = (node:
|
|
23
|
+
export type ActionsExtension = (node: Atom.Atom<Option.Option<Node.Node>>) => Atom.Atom<Omit<Node.NodeArg<Node.ActionData<any>>, 'type' | 'nodes' | 'edges'>[]>;
|
|
21
24
|
/**
|
|
22
25
|
* Constrained case of the connector extension for more easily adding action groups to the graph.
|
|
23
26
|
*/
|
|
24
|
-
export type ActionGroupsExtension = (node:
|
|
27
|
+
export type ActionGroupsExtension = (node: Atom.Atom<Option.Option<Node.Node>>) => Atom.Atom<Omit<Node.NodeArg<typeof Node.actionGroupSymbol>, 'type' | 'data' | 'nodes' | 'edges'>[]>;
|
|
28
|
+
export type BuilderExtension = Readonly<{
|
|
29
|
+
id: string;
|
|
30
|
+
position: Position;
|
|
31
|
+
relation?: Node.RelationInput;
|
|
32
|
+
resolver?: ResolverExtension;
|
|
33
|
+
connector?: (node: Atom.Atom<Option.Option<Node.Node>>) => Atom.Atom<Node.NodeArg<any>[]>;
|
|
34
|
+
}>;
|
|
35
|
+
export type BuilderExtensions = BuilderExtension | BuilderExtension[] | BuilderExtensions[];
|
|
36
|
+
export type GraphBuilderTraverseOptions = {
|
|
37
|
+
visitor: (node: Node.Node, path: string[]) => MaybePromise<boolean | void>;
|
|
38
|
+
registry?: Registry.Registry;
|
|
39
|
+
source?: string;
|
|
40
|
+
relation: Node.RelationInput | Node.RelationInput[];
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Identifier denoting a GraphBuilder.
|
|
44
|
+
*/
|
|
45
|
+
export declare const GraphBuilderTypeId: unique symbol;
|
|
46
|
+
export type GraphBuilderTypeId = typeof GraphBuilderTypeId;
|
|
47
|
+
/**
|
|
48
|
+
* GraphBuilder interface.
|
|
49
|
+
*/
|
|
50
|
+
export interface GraphBuilder extends Pipeable.Pipeable {
|
|
51
|
+
readonly [GraphBuilderTypeId]: GraphBuilderTypeId;
|
|
52
|
+
readonly graph: Graph.ExpandableGraph;
|
|
53
|
+
readonly extensions: Atom.Atom<Record<string, BuilderExtension>>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates a new GraphBuilder instance.
|
|
57
|
+
*/
|
|
58
|
+
export declare const make: (params?: Pick<Graph.GraphProps, 'registry' | 'nodes' | 'edges'>) => GraphBuilder;
|
|
59
|
+
/**
|
|
60
|
+
* Creates a GraphBuilder from a serialized pickle string.
|
|
61
|
+
*/
|
|
62
|
+
export declare const from: (pickle?: string, registry?: Registry.Registry) => GraphBuilder;
|
|
63
|
+
/**
|
|
64
|
+
* Add extensions to the graph builder.
|
|
65
|
+
*/
|
|
66
|
+
export declare function addExtension(builder: GraphBuilder, extensions: BuilderExtensions): GraphBuilder;
|
|
67
|
+
export declare function addExtension(extensions: BuilderExtensions): (builder: GraphBuilder) => GraphBuilder;
|
|
68
|
+
/**
|
|
69
|
+
* Remove an extension from the graph builder.
|
|
70
|
+
*/
|
|
71
|
+
export declare function removeExtension(builder: GraphBuilder, id: string): GraphBuilder;
|
|
72
|
+
export declare function removeExtension(id: string): (builder: GraphBuilder) => GraphBuilder;
|
|
73
|
+
/**
|
|
74
|
+
* Explore the graph by traversing it with the given options.
|
|
75
|
+
*/
|
|
76
|
+
export declare function explore(builder: GraphBuilder, options: GraphBuilderTraverseOptions, path?: string[]): Promise<void>;
|
|
77
|
+
export declare function explore(options: GraphBuilderTraverseOptions, path?: string[]): (builder: GraphBuilder) => Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Destroy the graph builder and clean up resources.
|
|
80
|
+
*/
|
|
81
|
+
export declare function destroy(builder: GraphBuilder): void;
|
|
82
|
+
export declare function destroy(): (builder: GraphBuilder) => void;
|
|
83
|
+
/**
|
|
84
|
+
* Wait for all pending connector updates to be flushed.
|
|
85
|
+
*/
|
|
86
|
+
export declare const flush: (builder: GraphBuilder) => Promise<void>;
|
|
25
87
|
/**
|
|
26
88
|
* A graph builder extension is used to add nodes to the graph.
|
|
27
89
|
*
|
|
@@ -33,9 +95,9 @@ export type ActionGroupsExtension = (node: Rx.Rx<Option.Option<Node>>) => Rx.Rx<
|
|
|
33
95
|
* @param params.actions A function to add actions to the graph based on a connection to an existing node.
|
|
34
96
|
* @param params.actionGroups A function to add action groups to the graph based on a connection to an existing node.
|
|
35
97
|
*/
|
|
36
|
-
export type
|
|
98
|
+
export type CreateExtensionRawOptions = {
|
|
37
99
|
id: string;
|
|
38
|
-
relation?:
|
|
100
|
+
relation?: Node.RelationInput;
|
|
39
101
|
position?: Position;
|
|
40
102
|
resolver?: ResolverExtension;
|
|
41
103
|
connector?: ConnectorExtension;
|
|
@@ -43,67 +105,51 @@ export type CreateExtensionOptions = {
|
|
|
43
105
|
actionGroups?: ActionGroupsExtension;
|
|
44
106
|
};
|
|
45
107
|
/**
|
|
46
|
-
* Create a graph builder extension.
|
|
108
|
+
* Create a graph builder extension (low-level API that works directly with Atoms).
|
|
47
109
|
*/
|
|
48
|
-
export declare const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
export type BuilderExtension = Readonly<{
|
|
110
|
+
export declare const createExtensionRaw: (extension: CreateExtensionRawOptions) => BuilderExtension[];
|
|
111
|
+
/**
|
|
112
|
+
* Options for creating a graph builder extension with simplified API.
|
|
113
|
+
* All callbacks must return Effects for dependency injection.
|
|
114
|
+
* Effects may fail - errors are caught, logged, and the extension returns empty results.
|
|
115
|
+
*/
|
|
116
|
+
export type CreateExtensionOptions<TMatched = Node.Node, R = never> = {
|
|
56
117
|
id: string;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
118
|
+
match: (node: Node.Node) => Option.Option<TMatched>;
|
|
119
|
+
actions?: (matched: TMatched, get: Atom.Context) => Effect.Effect<Omit<Node.NodeArg<Node.ActionData<any>, any>, 'type'>[], Error, R>;
|
|
120
|
+
connector?: (matched: TMatched, get: Atom.Context) => Effect.Effect<Node.NodeArg<any, any>[], Error, R>;
|
|
121
|
+
resolver?: (id: string, get: Atom.Context) => Effect.Effect<Node.NodeArg<any, any> | null, Error, R>;
|
|
122
|
+
relation?: Node.RelationInput;
|
|
123
|
+
position?: Position;
|
|
124
|
+
};
|
|
64
125
|
/**
|
|
65
|
-
*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
private readonly _extensions;
|
|
70
|
-
private readonly _initialized;
|
|
71
|
-
private readonly _registry;
|
|
72
|
-
private readonly _graph;
|
|
73
|
-
constructor({ registry, ...params }?: Pick<GraphParams, 'registry' | 'nodes' | 'edges'>);
|
|
74
|
-
static from(pickle?: string, registry?: Registry.Registry): GraphBuilder;
|
|
75
|
-
get graph(): ExpandableGraph;
|
|
76
|
-
get extensions(): Rx.Writable<Record<string, Readonly<{
|
|
77
|
-
id: string;
|
|
78
|
-
position: Position;
|
|
79
|
-
relation?: Relation;
|
|
80
|
-
resolver?: ResolverExtension;
|
|
81
|
-
connector?: (node: Rx.Rx<Option.Option<Node>>) => Rx.Rx<NodeArg<any>[]>;
|
|
82
|
-
}>>, Record<string, Readonly<{
|
|
83
|
-
id: string;
|
|
84
|
-
position: Position;
|
|
85
|
-
relation?: Relation;
|
|
86
|
-
resolver?: ResolverExtension;
|
|
87
|
-
connector?: (node: Rx.Rx<Option.Option<Node>>) => Rx.Rx<NodeArg<any>[]>;
|
|
88
|
-
}>>>;
|
|
89
|
-
addExtension(extensions: BuilderExtensions): GraphBuilder;
|
|
90
|
-
removeExtension(id: string): GraphBuilder;
|
|
91
|
-
explore({ registry, source, relation, visitor }: GraphBuilderTraverseOptions, path?: string[]): Promise<void>;
|
|
92
|
-
destroy(): void;
|
|
93
|
-
private readonly _resolvers;
|
|
94
|
-
private readonly _connectors;
|
|
95
|
-
private _onExpand;
|
|
96
|
-
private _onInitialize;
|
|
97
|
-
private _onRemoveNode;
|
|
98
|
-
}
|
|
126
|
+
* Create a graph builder extension with simplified API.
|
|
127
|
+
* Returns an Effect to allow callbacks to access services via dependency injection.
|
|
128
|
+
*/
|
|
129
|
+
export declare const createExtension: <TMatched = Node.Node, R = never>(options: CreateExtensionOptions<TMatched, R>) => Effect.Effect<BuilderExtension[], never, R>;
|
|
99
130
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
131
|
+
* Create a connector extension from a matcher and factory function.
|
|
132
|
+
* The factory's data type is inferred from the matcher's return type.
|
|
102
133
|
*/
|
|
103
|
-
export declare const
|
|
134
|
+
export declare const createConnector: <TData>(matcher: (node: Node.Node) => Option.Option<TData>, factory: (data: TData, get: Atom.Context) => Node.NodeArg<any>[]) => ConnectorExtension;
|
|
104
135
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
136
|
+
* Options for creating a type-based extension.
|
|
137
|
+
* All callbacks must return Effects for dependency injection.
|
|
138
|
+
* Effects may fail - errors are caught, logged, and the extension returns empty results.
|
|
107
139
|
*/
|
|
108
|
-
export
|
|
140
|
+
export type CreateTypeExtensionOptions<T extends Type.AnyEntity = Type.AnyEntity, R = never> = {
|
|
141
|
+
id: string;
|
|
142
|
+
type: T;
|
|
143
|
+
actions?: (object: Entity.Entity<Schema.Schema.Type<T>>, get: Atom.Context) => Effect.Effect<Omit<Node.NodeArg<Node.ActionData<any>>, 'type'>[], Error, R>;
|
|
144
|
+
connector?: (object: Entity.Entity<Schema.Schema.Type<T>>, get: Atom.Context) => Effect.Effect<Node.NodeArg<any>[], Error, R>;
|
|
145
|
+
relation?: Node.RelationInput;
|
|
146
|
+
position?: Position;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Create an extension that matches nodes by schema type.
|
|
150
|
+
* The entity type is inferred from the schema type and works for both object and relation schemas.
|
|
151
|
+
* Returns an Effect to allow callbacks to access services via dependency injection.
|
|
152
|
+
*/
|
|
153
|
+
export declare const createTypeExtension: <T extends Type.AnyEntity, R = never>(options: CreateTypeExtensionOptions<T, R>) => Effect.Effect<BuilderExtension[], never, R>;
|
|
154
|
+
export declare const flattenExtensions: (extension: BuilderExtensions, acc?: BuilderExtension[]) => BuilderExtension[];
|
|
109
155
|
//# sourceMappingURL=graph-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../../../src/graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../../../src/graph-builder.ts"],"names":[],"mappings":"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"}
|