@dxos/app-graph 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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.
Files changed (43) hide show
  1. package/dist/lib/browser/index.mjs +1014 -553
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +1013 -553
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/atoms.d.ts +8 -0
  8. package/dist/types/src/atoms.d.ts.map +1 -0
  9. package/dist/types/src/graph-builder.d.ts +108 -66
  10. package/dist/types/src/graph-builder.d.ts.map +1 -1
  11. package/dist/types/src/graph.d.ts +182 -212
  12. package/dist/types/src/graph.d.ts.map +1 -1
  13. package/dist/types/src/index.d.ts +6 -3
  14. package/dist/types/src/index.d.ts.map +1 -1
  15. package/dist/types/src/node-matcher.d.ts +218 -0
  16. package/dist/types/src/node-matcher.d.ts.map +1 -0
  17. package/dist/types/src/node-matcher.test.d.ts +2 -0
  18. package/dist/types/src/node-matcher.test.d.ts.map +1 -0
  19. package/dist/types/src/node.d.ts +32 -3
  20. package/dist/types/src/node.d.ts.map +1 -1
  21. package/dist/types/src/stories/EchoGraph.stories.d.ts.map +1 -1
  22. package/dist/types/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +35 -33
  24. package/src/atoms.ts +25 -0
  25. package/src/graph-builder.test.ts +520 -104
  26. package/src/graph-builder.ts +550 -255
  27. package/src/graph.test.ts +299 -106
  28. package/src/graph.ts +964 -394
  29. package/src/index.ts +9 -3
  30. package/src/node-matcher.test.ts +301 -0
  31. package/src/node-matcher.ts +284 -0
  32. package/src/node.ts +39 -6
  33. package/src/stories/EchoGraph.stories.tsx +104 -95
  34. package/src/stories/Tree.tsx +2 -2
  35. package/dist/types/src/experimental/graph-projections.test.d.ts +0 -25
  36. package/dist/types/src/experimental/graph-projections.test.d.ts.map +0 -1
  37. package/dist/types/src/signals-integration.test.d.ts +0 -2
  38. package/dist/types/src/signals-integration.test.d.ts.map +0 -1
  39. package/dist/types/src/testing.d.ts +0 -5
  40. package/dist/types/src/testing.d.ts.map +0 -1
  41. package/src/experimental/graph-projections.test.ts +0 -56
  42. package/src/signals-integration.test.ts +0 -218
  43. package/src/testing.ts +0 -20
@@ -1,27 +1,85 @@
1
- import { Registry, Rx } from '@effect-rx/rx-react';
1
+ import { Atom, Registry } from '@effect-atom/atom-react';
2
+ import * as Effect from 'effect/Effect';
2
3
  import * as Option from 'effect/Option';
3
- import { type MulticastObservable } from '@dxos/async';
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 { type ExpandableGraph, type GraphParams } from './graph';
6
- import { type ActionData, type Node, type NodeArg, type Relation, actionGroupSymbol } from './node';
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) => Rx.Rx<NodeArg<any> | null>;
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: Rx.Rx<Option.Option<Node>>) => Rx.Rx<NodeArg<any>[]>;
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: Rx.Rx<Option.Option<Node>>) => Rx.Rx<Omit<NodeArg<ActionData>, 'type' | 'nodes' | 'edges'>[]>;
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: Rx.Rx<Option.Option<Node>>) => Rx.Rx<Omit<NodeArg<typeof actionGroupSymbol>, 'type' | 'data' | 'nodes' | 'edges'>[]>;
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.Relation;
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.Relation;
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;
25
83
  /**
26
84
  * A graph builder extension is used to add nodes to the graph.
27
85
  *
@@ -33,9 +91,9 @@ export type ActionGroupsExtension = (node: Rx.Rx<Option.Option<Node>>) => Rx.Rx<
33
91
  * @param params.actions A function to add actions to the graph based on a connection to an existing node.
34
92
  * @param params.actionGroups A function to add action groups to the graph based on a connection to an existing node.
35
93
  */
36
- export type CreateExtensionOptions = {
94
+ export type CreateExtensionRawOptions = {
37
95
  id: string;
38
- relation?: Relation;
96
+ relation?: Node.Relation;
39
97
  position?: Position;
40
98
  resolver?: ResolverExtension;
41
99
  connector?: ConnectorExtension;
@@ -43,67 +101,51 @@ export type CreateExtensionOptions = {
43
101
  actionGroups?: ActionGroupsExtension;
44
102
  };
45
103
  /**
46
- * Create a graph builder extension.
104
+ * Create a graph builder extension (low-level API that works directly with Atoms).
47
105
  */
48
- export declare const createExtension: (extension: CreateExtensionOptions) => BuilderExtension[];
49
- export type GraphBuilderTraverseOptions = {
50
- visitor: (node: Node, path: string[]) => MaybePromise<boolean | void>;
51
- registry?: Registry.Registry;
52
- source?: string;
53
- relation?: Relation;
54
- };
55
- export type BuilderExtension = Readonly<{
106
+ export declare const createExtensionRaw: (extension: CreateExtensionRawOptions) => BuilderExtension[];
107
+ /**
108
+ * Options for creating a graph builder extension with simplified API.
109
+ * All callbacks must return Effects for dependency injection.
110
+ * Effects may fail - errors are caught, logged, and the extension returns empty results.
111
+ */
112
+ export type CreateExtensionOptions<TMatched = Node.Node, R = never> = {
56
113
  id: string;
57
- position: Position;
58
- relation?: Relation;
59
- resolver?: ResolverExtension;
60
- connector?: (node: Rx.Rx<Option.Option<Node>>) => Rx.Rx<NodeArg<any>[]>;
61
- }>;
62
- export type BuilderExtensions = BuilderExtension | BuilderExtension[] | BuilderExtensions[];
63
- export declare const flattenExtensions: (extension: BuilderExtensions, acc?: BuilderExtension[]) => BuilderExtension[];
114
+ match: (node: Node.Node) => Option.Option<TMatched>;
115
+ actions?: (matched: TMatched, get: Atom.Context) => Effect.Effect<Omit<Node.NodeArg<Node.ActionData<any>, any>, 'type'>[], Error, R>;
116
+ connector?: (matched: TMatched, get: Atom.Context) => Effect.Effect<Node.NodeArg<any, any>[], Error, R>;
117
+ resolver?: (id: string, get: Atom.Context) => Effect.Effect<Node.NodeArg<any, any> | null, Error, R>;
118
+ relation?: Node.Relation;
119
+ position?: Position;
120
+ };
64
121
  /**
65
- * The builder provides an extensible way to compose the construction of the graph.
66
- */
67
- export declare class GraphBuilder {
68
- private readonly _subscriptions;
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
- }
122
+ * Create a graph builder extension with simplified API.
123
+ * Returns an Effect to allow callbacks to access services via dependency injection.
124
+ */
125
+ export declare const createExtension: <TMatched = Node.Node, R = never>(options: CreateExtensionOptions<TMatched, R>) => Effect.Effect<BuilderExtension[], never, R>;
99
126
  /**
100
- * Creates an Rx.Rx<T> from a callback which accesses signals.
101
- * Will return a new rx instance each time.
127
+ * Create a connector extension from a matcher and factory function.
128
+ * The factory's data type is inferred from the matcher's return type.
102
129
  */
103
- export declare const rxFromSignal: <T>(cb: () => T) => Rx.Rx<T>;
130
+ export declare const createConnector: <TData>(matcher: (node: Node.Node) => Option.Option<TData>, factory: (data: TData, get: Atom.Context) => Node.NodeArg<any>[]) => ConnectorExtension;
104
131
  /**
105
- * Creates an Rx.Rx<T> from a MulticastObservable<T>
106
- * Will return the same rx instance for the same observable.
132
+ * Options for creating a type-based extension.
133
+ * All callbacks must return Effects for dependency injection.
134
+ * Effects may fail - errors are caught, logged, and the extension returns empty results.
107
135
  */
108
- export declare const rxFromObservable: <T>(observable: MulticastObservable<T>) => Rx.Rx<T>;
136
+ export type CreateTypeExtensionOptions<T extends Type.Entity.Any = Type.Entity.Any, R = never> = {
137
+ id: string;
138
+ type: T;
139
+ actions?: (object: Entity.Entity<Schema.Schema.Type<T>>, get: Atom.Context) => Effect.Effect<Omit<Node.NodeArg<Node.ActionData<any>>, 'type'>[], Error, R>;
140
+ connector?: (object: Entity.Entity<Schema.Schema.Type<T>>, get: Atom.Context) => Effect.Effect<Node.NodeArg<any>[], Error, R>;
141
+ relation?: Node.Relation;
142
+ position?: Position;
143
+ };
144
+ /**
145
+ * Create an extension that matches nodes by schema type.
146
+ * The entity type is inferred from the schema type and works for both object and relation schemas.
147
+ * Returns an Effect to allow callbacks to access services via dependency injection.
148
+ */
149
+ export declare const createTypeExtension: <T extends Type.Entity.Any, R = never>(options: CreateTypeExtensionOptions<T, R>) => Effect.Effect<BuilderExtension[], never, R>;
150
+ export declare const flattenExtensions: (extension: BuilderExtensions, acc?: BuilderExtension[]) => BuilderExtension[];
109
151
  //# sourceMappingURL=graph-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../../../src/graph-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../../../src/graph-builder.ts"],"names":[],"mappings":"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"}