@dxos/app-graph 0.8.3 → 0.8.4-main.03d5cd7b56

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 (73) hide show
  1. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  2. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  3. package/dist/lib/neutral/chunk-WJJ5KEOH.mjs +1477 -0
  4. package/dist/lib/neutral/chunk-WJJ5KEOH.mjs.map +7 -0
  5. package/dist/lib/neutral/index.mjs +40 -0
  6. package/dist/lib/neutral/index.mjs.map +7 -0
  7. package/dist/lib/neutral/meta.json +1 -0
  8. package/dist/lib/neutral/scheduler.mjs +15 -0
  9. package/dist/lib/neutral/scheduler.mjs.map +7 -0
  10. package/dist/lib/neutral/testing/index.mjs +40 -0
  11. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  12. package/dist/types/src/atoms.d.ts +8 -0
  13. package/dist/types/src/atoms.d.ts.map +1 -0
  14. package/dist/types/src/graph-builder.d.ts +117 -60
  15. package/dist/types/src/graph-builder.d.ts.map +1 -1
  16. package/dist/types/src/graph.d.ts +188 -218
  17. package/dist/types/src/graph.d.ts.map +1 -1
  18. package/dist/types/src/index.d.ts +7 -3
  19. package/dist/types/src/index.d.ts.map +1 -1
  20. package/dist/types/src/node-matcher.d.ts +244 -0
  21. package/dist/types/src/node-matcher.d.ts.map +1 -0
  22. package/dist/types/src/node-matcher.test.d.ts +2 -0
  23. package/dist/types/src/node-matcher.test.d.ts.map +1 -0
  24. package/dist/types/src/node.d.ts +50 -5
  25. package/dist/types/src/node.d.ts.map +1 -1
  26. package/dist/types/src/scheduler.browser.d.ts +2 -0
  27. package/dist/types/src/scheduler.browser.d.ts.map +1 -0
  28. package/dist/types/src/scheduler.d.ts +8 -0
  29. package/dist/types/src/scheduler.d.ts.map +1 -0
  30. package/dist/types/src/stories/EchoGraph.stories.d.ts +6 -13
  31. package/dist/types/src/stories/EchoGraph.stories.d.ts.map +1 -1
  32. package/dist/types/src/testing/index.d.ts +2 -0
  33. package/dist/types/src/testing/index.d.ts.map +1 -0
  34. package/dist/types/src/testing/setup-graph-builder.d.ts +31 -0
  35. package/dist/types/src/testing/setup-graph-builder.d.ts.map +1 -0
  36. package/dist/types/src/util.d.ts +40 -0
  37. package/dist/types/src/util.d.ts.map +1 -0
  38. package/dist/types/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +53 -42
  40. package/src/atoms.ts +25 -0
  41. package/src/graph-builder.test.ts +1193 -126
  42. package/src/graph-builder.ts +753 -264
  43. package/src/graph.test.ts +451 -123
  44. package/src/graph.ts +1057 -407
  45. package/src/index.ts +10 -3
  46. package/src/node-matcher.test.ts +301 -0
  47. package/src/node-matcher.ts +314 -0
  48. package/src/node.ts +83 -7
  49. package/src/scheduler.browser.ts +5 -0
  50. package/src/scheduler.ts +17 -0
  51. package/src/stories/EchoGraph.stories.tsx +178 -255
  52. package/src/stories/Tree.tsx +1 -1
  53. package/src/testing/index.ts +5 -0
  54. package/src/testing/setup-graph-builder.ts +41 -0
  55. package/src/util.ts +101 -0
  56. package/dist/lib/browser/index.mjs +0 -778
  57. package/dist/lib/browser/index.mjs.map +0 -7
  58. package/dist/lib/browser/meta.json +0 -1
  59. package/dist/lib/node/index.cjs +0 -816
  60. package/dist/lib/node/index.cjs.map +0 -7
  61. package/dist/lib/node/meta.json +0 -1
  62. package/dist/lib/node-esm/index.mjs +0 -780
  63. package/dist/lib/node-esm/index.mjs.map +0 -7
  64. package/dist/lib/node-esm/meta.json +0 -1
  65. package/dist/types/src/experimental/graph-projections.test.d.ts +0 -25
  66. package/dist/types/src/experimental/graph-projections.test.d.ts.map +0 -1
  67. package/dist/types/src/signals-integration.test.d.ts +0 -2
  68. package/dist/types/src/signals-integration.test.d.ts.map +0 -1
  69. package/dist/types/src/testing.d.ts +0 -5
  70. package/dist/types/src/testing.d.ts.map +0 -1
  71. package/src/experimental/graph-projections.test.ts +0 -56
  72. package/src/signals-integration.test.ts +0 -218
  73. package/src/testing.ts +0 -20
package/package.json CHANGED
@@ -1,69 +1,80 @@
1
1
  {
2
2
  "name": "@dxos/app-graph",
3
- "version": "0.8.3",
3
+ "version": "0.8.4-main.03d5cd7b56",
4
4
  "description": "Constructs knowledge graphs for the purpose of building applications on top of",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/dxos/dxos"
10
+ },
7
11
  "license": "MIT",
8
12
  "author": "DXOS.org",
9
- "sideEffects": true,
13
+ "sideEffects": false,
10
14
  "type": "module",
15
+ "imports": {
16
+ "#scheduler": {
17
+ "source": {
18
+ "browser": "./src/scheduler.browser.ts",
19
+ "default": "./src/scheduler.ts"
20
+ },
21
+ "types": "./dist/types/src/scheduler.d.ts",
22
+ "default": "./dist/lib/neutral/scheduler.mjs"
23
+ }
24
+ },
11
25
  "exports": {
12
26
  ".": {
27
+ "source": "./src/index.ts",
13
28
  "types": "./dist/types/src/index.d.ts",
14
- "browser": "./dist/lib/browser/index.mjs",
15
- "node": "./dist/lib/node-esm/index.mjs"
29
+ "default": "./dist/lib/neutral/index.mjs"
30
+ },
31
+ "./testing": {
32
+ "source": "./src/testing/index.ts",
33
+ "types": "./dist/types/src/testing/index.d.ts",
34
+ "default": "./dist/lib/neutral/testing/index.mjs"
16
35
  }
17
36
  },
18
37
  "types": "dist/types/src/index.d.ts",
19
- "typesVersions": {
20
- "*": {}
21
- },
22
38
  "files": [
23
39
  "dist",
24
40
  "src"
25
41
  ],
26
42
  "dependencies": {
27
- "@preact/signals-core": "^1.9.0",
28
43
  "main-thread-scheduling": "^14.1.1",
29
- "@dxos/async": "0.8.3",
30
- "@dxos/debug": "0.8.3",
31
- "@dxos/echo": "0.8.3",
32
- "@dxos/invariant": "0.8.3",
33
- "@dxos/echo-signals": "0.8.3",
34
- "@dxos/echo-schema": "0.8.3",
35
- "@dxos/live-object": "0.8.3",
36
- "@dxos/util": "0.8.3",
37
- "@dxos/log": "0.8.3"
44
+ "@dxos/echo-atom": "0.8.4-main.03d5cd7b56",
45
+ "@dxos/async": "0.8.4-main.03d5cd7b56",
46
+ "@dxos/echo": "0.8.4-main.03d5cd7b56",
47
+ "@dxos/debug": "0.8.4-main.03d5cd7b56",
48
+ "@dxos/invariant": "0.8.4-main.03d5cd7b56",
49
+ "@dxos/log": "0.8.4-main.03d5cd7b56",
50
+ "@dxos/util": "0.8.4-main.03d5cd7b56"
38
51
  },
39
52
  "devDependencies": {
40
- "@effect-rx/rx-react": "^0.34.1",
41
- "@effect/platform": "0.80.12",
42
- "@phosphor-icons/react": "^2.1.5",
43
- "@types/react": "~18.2.0",
44
- "@types/react-dom": "~18.2.0",
45
- "effect": "3.14.21",
46
- "react": "~18.2.0",
47
- "react-dom": "~18.2.0",
48
- "vite": "5.4.7",
49
- "@dxos/random": "0.8.3",
50
- "@dxos/react-client": "0.8.3",
51
- "@dxos/react-ui": "0.8.3",
52
- "@dxos/react-ui-list": "0.8.3",
53
- "@dxos/echo-db": "0.8.3",
54
- "@dxos/react-ui-tabs": "0.8.3",
55
- "@dxos/react-ui-theme": "0.8.3",
56
- "@dxos/storybook-utils": "0.8.3"
53
+ "@effect-atom/atom-react": "^0.5.0",
54
+ "@effect/platform": "0.94.4",
55
+ "@types/react": "~19.2.7",
56
+ "@types/react-dom": "~19.2.3",
57
+ "effect": "3.20.0",
58
+ "react": "~19.2.3",
59
+ "react-dom": "~19.2.3",
60
+ "vite": "^8.0.10",
61
+ "@dxos/random": "0.8.4-main.03d5cd7b56",
62
+ "@dxos/echo-db": "0.8.4-main.03d5cd7b56",
63
+ "@dxos/react-client": "0.8.4-main.03d5cd7b56",
64
+ "@dxos/react-ui": "0.8.4-main.03d5cd7b56",
65
+ "@dxos/react-ui-list": "0.8.4-main.03d5cd7b56",
66
+ "@dxos/react-ui-tabs": "0.8.4-main.03d5cd7b56",
67
+ "@dxos/storybook-utils": "0.8.4-main.03d5cd7b56",
68
+ "@dxos/ui-theme": "0.8.4-main.03d5cd7b56"
57
69
  },
58
70
  "peerDependencies": {
59
- "@effect-rx/rx-react": "^0.34.1",
60
- "@effect/platform": "0.80.12",
61
- "@phosphor-icons/react": "^2.1.5",
62
- "effect": "3.14.21",
63
- "react": "~18.2.0",
64
- "react-dom": "~18.2.0",
65
- "@dxos/react-ui": "0.8.3",
66
- "@dxos/react-ui-theme": "0.8.3"
71
+ "@effect-atom/atom-react": "^0.5.0",
72
+ "@effect/platform": "0.94.4",
73
+ "effect": "3.20.0",
74
+ "react": "~19.2.3",
75
+ "react-dom": "~19.2.3",
76
+ "@dxos/ui-theme": "0.8.4-main.03d5cd7b56",
77
+ "@dxos/react-ui": "0.8.4-main.03d5cd7b56"
67
78
  },
68
79
  "publishConfig": {
69
80
  "access": "public"
package/src/atoms.ts ADDED
@@ -0,0 +1,25 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Atom } from '@effect-atom/atom-react';
6
+
7
+ import { type MulticastObservable } from '@dxos/async';
8
+
9
+ const observableFamily = Atom.family((observable: MulticastObservable<any>) => {
10
+ return Atom.make((get) => {
11
+ const subscription = observable.subscribe((value) => get.setSelf(value));
12
+
13
+ get.addFinalizer(() => subscription.unsubscribe());
14
+
15
+ return observable.get();
16
+ });
17
+ });
18
+
19
+ /**
20
+ * Creates an Atom.Atom<T> from a MulticastObservable<T>
21
+ * Will return the same atom instance for the same observable.
22
+ */
23
+ export const fromObservable = <T>(observable: MulticastObservable<T>): Atom.Atom<T> => {
24
+ return observableFamily(observable) as Atom.Atom<T>;
25
+ };