atom.io 0.15.6 → 0.16.1

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 (141) hide show
  1. package/data/dist/index.cjs +49 -37
  2. package/data/dist/index.cjs.map +1 -1
  3. package/data/dist/index.d.ts +6 -6
  4. package/data/dist/index.js +50 -38
  5. package/data/dist/index.js.map +1 -1
  6. package/data/src/dict.ts +6 -7
  7. package/data/src/join.ts +52 -38
  8. package/data/src/struct-family.ts +2 -2
  9. package/data/src/struct.ts +4 -5
  10. package/dist/index.cjs +12 -5
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.ts +67 -60
  13. package/dist/index.js +13 -6
  14. package/dist/index.js.map +1 -1
  15. package/internal/dist/index.cjs +911 -888
  16. package/internal/dist/index.cjs.map +1 -1
  17. package/internal/dist/index.d.ts +157 -162
  18. package/internal/dist/index.js +486 -462
  19. package/internal/dist/index.js.map +1 -1
  20. package/internal/src/atom/create-regular-atom.ts +9 -12
  21. package/internal/src/atom/create-standalone-atom.ts +33 -0
  22. package/internal/src/atom/delete-atom.ts +5 -2
  23. package/internal/src/atom/index.ts +1 -16
  24. package/internal/src/atom/is-default.ts +0 -1
  25. package/internal/src/caching.ts +6 -3
  26. package/internal/src/families/create-atom-family.ts +11 -7
  27. package/internal/src/families/create-readonly-selector-family.ts +4 -3
  28. package/internal/src/families/create-regular-atom-family.ts +12 -27
  29. package/internal/src/families/create-selector-family.ts +13 -49
  30. package/internal/src/families/create-writable-selector-family.ts +51 -0
  31. package/internal/src/index.ts +44 -3
  32. package/internal/src/lineage.ts +0 -7
  33. package/internal/src/mutable/create-mutable-atom-family.ts +61 -15
  34. package/internal/src/mutable/create-mutable-atom.ts +70 -25
  35. package/internal/src/mutable/get-json-family.ts +4 -5
  36. package/internal/src/mutable/get-json-token.ts +6 -3
  37. package/internal/src/mutable/get-update-token.ts +3 -3
  38. package/internal/src/mutable/index.ts +1 -7
  39. package/internal/src/mutable/is-mutable.ts +6 -7
  40. package/internal/src/mutable/tracker-family.ts +4 -4
  41. package/internal/src/mutable/tracker.ts +6 -6
  42. package/internal/src/read-or-compute-value.ts +6 -3
  43. package/internal/src/selector/create-readonly-selector.ts +4 -5
  44. package/internal/src/selector/create-standalone-selector.ts +32 -0
  45. package/internal/src/selector/{create-read-write-selector.ts → create-writable-selector.ts} +13 -10
  46. package/internal/src/selector/delete-selector.ts +2 -2
  47. package/internal/src/selector/index.ts +3 -1
  48. package/internal/src/selector/trace-selector-atoms.ts +3 -2
  49. package/internal/src/selector/update-selector-atoms.ts +1 -1
  50. package/internal/src/set-state/copy-mutable-if-needed.ts +5 -8
  51. package/internal/src/set-state/copy-mutable-in-transaction.ts +4 -36
  52. package/internal/src/set-state/emit-update.ts +2 -3
  53. package/internal/src/set-state/evict-downstream.ts +1 -1
  54. package/internal/src/set-state/set-atom-or-selector.ts +3 -3
  55. package/internal/src/set-state/set-atom.ts +1 -2
  56. package/internal/src/set-state/stow-update.ts +1 -1
  57. package/internal/src/store/deposit.ts +25 -13
  58. package/internal/src/store/store.ts +20 -21
  59. package/internal/src/store/withdraw-new-family-member.ts +16 -9
  60. package/internal/src/store/withdraw.ts +43 -19
  61. package/internal/src/subscribe/recall-state.ts +2 -6
  62. package/internal/src/subscribe/subscribe-to-root-atoms.ts +39 -41
  63. package/internal/src/subscribe/subscribe-to-state.ts +3 -1
  64. package/internal/src/timeline/add-atom-to-timeline.ts +5 -5
  65. package/internal/src/timeline/create-timeline.ts +19 -22
  66. package/introspection/dist/index.cjs +4 -8
  67. package/introspection/dist/index.cjs.map +1 -1
  68. package/introspection/dist/index.d.ts +5 -5
  69. package/introspection/dist/index.js +5 -9
  70. package/introspection/dist/index.js.map +1 -1
  71. package/introspection/src/attach-atom-index.ts +4 -5
  72. package/introspection/src/attach-selector-index.ts +4 -5
  73. package/introspection/src/attach-timeline-index.ts +6 -3
  74. package/introspection/src/attach-transaction-index.ts +6 -3
  75. package/introspection/src/index.ts +9 -5
  76. package/json/dist/index.cjs +3 -4
  77. package/json/dist/index.cjs.map +1 -1
  78. package/json/dist/index.d.ts +4 -3
  79. package/json/dist/index.js +4 -5
  80. package/json/dist/index.js.map +1 -1
  81. package/json/src/select-json-family.ts +24 -4
  82. package/json/src/select-json.ts +3 -4
  83. package/package.json +11 -11
  84. package/react-devtools/dist/index.cjs +0 -2
  85. package/react-devtools/dist/index.cjs.map +1 -1
  86. package/react-devtools/dist/index.d.ts +9 -9
  87. package/react-devtools/dist/index.js +0 -2
  88. package/react-devtools/dist/index.js.map +1 -1
  89. package/react-devtools/src/StateIndex.tsx +18 -10
  90. package/react-devtools/src/TimelineIndex.tsx +6 -2
  91. package/react-devtools/src/TransactionIndex.tsx +2 -2
  92. package/realtime-client/dist/index.cjs +27 -13
  93. package/realtime-client/dist/index.cjs.map +1 -1
  94. package/realtime-client/dist/index.d.ts +6 -4
  95. package/realtime-client/dist/index.js +20 -7
  96. package/realtime-client/dist/index.js.map +1 -1
  97. package/realtime-client/src/index.ts +4 -3
  98. package/realtime-client/src/server-action.ts +2 -55
  99. package/realtime-client/src/sync-server-action.ts +75 -0
  100. package/realtime-react/dist/index.cjs +22 -13
  101. package/realtime-react/dist/index.cjs.map +1 -1
  102. package/realtime-react/dist/index.d.ts +3 -1
  103. package/realtime-react/dist/index.js +20 -12
  104. package/realtime-react/dist/index.js.map +1 -1
  105. package/realtime-react/src/index.ts +1 -0
  106. package/realtime-react/src/use-server-action.ts +2 -4
  107. package/realtime-react/src/use-sync-server-action.ts +19 -0
  108. package/realtime-server/dist/index.cjs +83 -81
  109. package/realtime-server/dist/index.cjs.map +1 -1
  110. package/realtime-server/dist/index.d.ts +8 -8
  111. package/realtime-server/dist/index.js +58 -56
  112. package/realtime-server/dist/index.js.map +1 -1
  113. package/realtime-server/src/index.ts +15 -1
  114. package/realtime-server/src/{hook-composition/receive-transaction.ts → realtime-action-receiver.ts} +6 -2
  115. package/realtime-server/src/{hook-composition/sync-transaction.ts → realtime-action-synchronizer.ts} +10 -43
  116. package/realtime-server/src/{hook-composition/expose-family.ts → realtime-family-provider.ts} +9 -23
  117. package/realtime-server/src/{hook-composition/expose-mutable-family.ts → realtime-mutable-family-provider.ts} +4 -4
  118. package/realtime-server/src/{hook-composition/expose-mutable.ts → realtime-mutable-provider.ts} +4 -5
  119. package/realtime-server/src/realtime-server-store.ts +39 -0
  120. package/realtime-server/src/{hook-composition/expose-single.ts → realtime-state-provider.ts} +7 -8
  121. package/realtime-server/src/{hook-composition/receive-state.ts → realtime-state-receiver.ts} +7 -4
  122. package/src/atom.ts +39 -24
  123. package/src/find-state.ts +20 -19
  124. package/src/index.ts +41 -28
  125. package/src/logger.ts +1 -0
  126. package/src/selector.ts +31 -16
  127. package/src/silo.ts +45 -6
  128. package/src/subscribe.ts +1 -0
  129. package/src/validators.ts +35 -25
  130. package/transceivers/set-rtx/dist/index.cjs +2 -2
  131. package/transceivers/set-rtx/dist/index.cjs.map +1 -1
  132. package/transceivers/set-rtx/dist/index.js +2 -2
  133. package/transceivers/set-rtx/dist/index.js.map +1 -1
  134. package/transceivers/set-rtx/src/set-rtx.ts +2 -2
  135. package/internal/src/atom/create-atom.ts +0 -21
  136. package/internal/src/mutable/get-update-family.ts +0 -23
  137. package/internal/src/selector/create-selector.ts +0 -65
  138. package/realtime-server/src/hook-composition/index.ts +0 -15
  139. /package/realtime-client/src/{pull.ts → pull-state.ts} +0 -0
  140. /package/realtime-client/src/{push.ts → push-state.ts} +0 -0
  141. /package/realtime-client/src/{realtime-state.ts → realtime-client-store.ts} +0 -0
@@ -2,21 +2,20 @@ import type * as AtomIO from "atom.io"
2
2
  import type { Store } from "atom.io/internal"
3
3
  import { IMPLICIT } from "atom.io/internal"
4
4
 
5
- import { createSelector } from "atom.io/internal"
5
+ import { createStandaloneSelector } from "atom.io/internal"
6
6
  import type { Json, JsonInterface } from "."
7
7
 
8
8
  export const selectJson = <T, J extends Json.Serializable>(
9
9
  atom: AtomIO.AtomToken<T>,
10
10
  transform: JsonInterface<T, J>,
11
11
  store: Store = IMPLICIT.STORE,
12
- ): AtomIO.SelectorToken<J> => {
13
- return createSelector(
12
+ ): AtomIO.WritableSelectorToken<J> => {
13
+ return createStandaloneSelector(
14
14
  {
15
15
  key: `${atom.key}:JSON`,
16
16
  get: ({ get }) => transform.toJson(get(atom)),
17
17
  set: ({ set }, newValue) => set(atom, transform.fromJson(newValue)),
18
18
  },
19
- undefined,
20
19
  store,
21
20
  )
22
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atom.io",
3
- "version": "0.15.6",
3
+ "version": "0.16.1",
4
4
  "description": "Composable and testable reactive data library.",
5
5
  "homepage": "https://atom.io.fyi",
6
6
  "sideEffects": false,
@@ -53,29 +53,29 @@
53
53
  "@types/npmlog": "7.0.0",
54
54
  "@types/react": "18.2.47",
55
55
  "@types/tmp": "0.2.6",
56
- "@vitest/coverage-v8": "1.1.3",
57
- "@vitest/ui": "1.1.3",
56
+ "@vitest/coverage-v8": "1.2.0",
57
+ "@vitest/ui": "1.2.0",
58
58
  "concurrently": "8.2.2",
59
- "drizzle-kit": "0.20.10",
59
+ "drizzle-kit": "0.20.12",
60
60
  "drizzle-orm": "0.29.3",
61
61
  "eslint": "8.56.0",
62
- "framer-motion": "10.17.9",
63
- "happy-dom": "12.10.3",
62
+ "framer-motion": "10.18.0",
63
+ "happy-dom": "13.0.6",
64
64
  "http-proxy": "1.18.1",
65
65
  "npmlog": "7.0.1",
66
66
  "postgres": "3.4.3",
67
67
  "preact": "10.19.3",
68
68
  "react": "18.2.0",
69
69
  "react-dom": "18.2.0",
70
- "react-router-dom": "6.21.1",
71
- "socket.io": "4.7.3",
72
- "socket.io-client": "4.7.3",
70
+ "react-router-dom": "6.21.2",
71
+ "socket.io": "4.7.4",
72
+ "socket.io-client": "4.7.4",
73
73
  "tmp": "0.2.1",
74
74
  "tsup": "8.0.1",
75
75
  "typescript": "5.3.3",
76
76
  "vite": "5.0.11",
77
77
  "vite-tsconfig-paths": "4.2.3",
78
- "vitest": "1.1.3"
78
+ "vitest": "1.2.0"
79
79
  },
80
80
  "main": "dist/index.js",
81
81
  "types": "dist/index.d.ts",
@@ -220,7 +220,7 @@
220
220
  "build:realtime-server": "cd realtime-server && tsup",
221
221
  "build:realtime-testing": "cd realtime-testing && tsup",
222
222
  "build:transceivers:set-rtx": "cd transceivers/set-rtx && tsup",
223
- "lint:biome": "biome check .",
223
+ "lint:biome": "biome check --diagnostic-level=warn -- .",
224
224
  "lint:eslint": "eslint .",
225
225
  "lint": "npm run lint:biome && npm run lint:eslint",
226
226
  "test": "vitest",
@@ -2302,7 +2302,6 @@ var Id = ({ id }) => {
2302
2302
  /* @__PURE__ */ jsxRuntime.jsx(
2303
2303
  "span",
2304
2304
  __spreadProps(__spreadValues({
2305
- role: "content",
2306
2305
  ref: refs.setReference
2307
2306
  }, getReferenceProps()), {
2308
2307
  style: {
@@ -2319,7 +2318,6 @@ var Id = ({ id }) => {
2319
2318
  isOpen && /* @__PURE__ */ jsxRuntime.jsx(react$1.FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2320
2319
  "span",
2321
2320
  __spreadProps(__spreadValues({
2322
- role: "popup",
2323
2321
  ref: refs.setFloating
2324
2322
  }, getFloatingProps()), {
2325
2323
  style: __spreadProps(__spreadValues({}, floatingStyles), {