atom.io 0.25.6 → 0.27.0

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 (108) hide show
  1. package/data/dist/index.d.ts +3 -3
  2. package/data/dist/index.js +33 -25
  3. package/data/package.json +1 -4
  4. package/data/src/dict.ts +3 -3
  5. package/dist/chunk-AK23DRMD.js +21 -0
  6. package/dist/{chunk-HYXKCFVY.js → chunk-IBTHB2PI.js} +59 -60
  7. package/dist/{chunk-MR5NETHW.js → chunk-IW6WYRS7.js} +4 -5
  8. package/dist/chunk-XWL6SNVU.js +7 -0
  9. package/dist/index.d.ts +32 -54
  10. package/dist/index.js +33 -21
  11. package/ephemeral/dist/index.d.ts +7 -7
  12. package/ephemeral/dist/index.js +1 -1
  13. package/ephemeral/package.json +1 -4
  14. package/ephemeral/src/find-state.ts +7 -7
  15. package/eslint-plugin/dist/index.js +7 -8
  16. package/eslint-plugin/package.json +1 -4
  17. package/immortal/dist/index.d.ts +7 -7
  18. package/immortal/dist/index.js +1 -1
  19. package/immortal/package.json +1 -4
  20. package/immortal/src/seek-state.ts +8 -8
  21. package/internal/dist/index.d.ts +56 -59
  22. package/internal/dist/index.js +178 -170
  23. package/internal/package.json +1 -4
  24. package/internal/src/families/create-atom-family.ts +4 -4
  25. package/internal/src/families/create-readonly-selector-family.ts +2 -2
  26. package/internal/src/families/create-regular-atom-family.ts +2 -2
  27. package/internal/src/families/create-selector-family.ts +4 -4
  28. package/internal/src/families/create-writable-selector-family.ts +2 -2
  29. package/internal/src/families/dispose-from-store.ts +3 -7
  30. package/internal/src/families/find-in-store.ts +9 -9
  31. package/internal/src/families/init-family-member.ts +25 -37
  32. package/internal/src/families/seek-in-store.ts +11 -10
  33. package/internal/src/get-state/get-from-store.ts +3 -3
  34. package/internal/src/molecule/grow-molecule-in-store.ts +9 -9
  35. package/internal/src/mutable/index.ts +0 -1
  36. package/internal/src/mutable/tracker-family.ts +2 -2
  37. package/internal/src/set-state/set-into-store.ts +4 -4
  38. package/internal/src/store/deposit.ts +3 -3
  39. package/internal/src/store/withdraw.ts +10 -9
  40. package/introspection/dist/index.js +32 -30
  41. package/introspection/package.json +1 -4
  42. package/json/dist/index.d.ts +10 -27
  43. package/json/dist/index.js +3 -3
  44. package/json/package.json +1 -4
  45. package/json/src/index.ts +8 -3
  46. package/json/src/select-json-family.ts +4 -4
  47. package/package.json +36 -65
  48. package/react/dist/index.d.ts +4 -4
  49. package/react/dist/index.js +2 -2
  50. package/react/package.json +1 -4
  51. package/react/src/parse-state-overloads.ts +4 -4
  52. package/react/src/use-i.ts +3 -3
  53. package/react/src/use-json.ts +3 -3
  54. package/react/src/use-o.ts +3 -3
  55. package/react-devtools/dist/index.d.ts +1 -1
  56. package/react-devtools/dist/index.js +90 -72
  57. package/react-devtools/package.json +1 -4
  58. package/react-devtools/src/StateIndex.tsx +5 -4
  59. package/realtime/dist/index.d.ts +3 -3
  60. package/realtime/dist/index.js +8 -9
  61. package/realtime/package.json +1 -4
  62. package/realtime/src/realtime-continuity.ts +2 -2
  63. package/realtime-client/dist/index.js +6 -6
  64. package/realtime-client/package.json +1 -4
  65. package/realtime-react/dist/index.d.ts +4 -4
  66. package/realtime-react/dist/index.js +9 -11
  67. package/realtime-react/package.json +1 -4
  68. package/realtime-react/src/use-pull-atom-family-member.ts +2 -2
  69. package/realtime-react/src/use-pull-mutable-family-member.ts +2 -2
  70. package/realtime-react/src/use-pull-selector-family-member.ts +2 -2
  71. package/realtime-server/dist/index.d.ts +9 -9
  72. package/realtime-server/dist/index.js +59 -54
  73. package/realtime-server/package.json +1 -4
  74. package/realtime-server/src/ipc-sockets/custom-socket.ts +2 -2
  75. package/realtime-server/src/realtime-family-provider.ts +3 -2
  76. package/realtime-server/src/realtime-mutable-family-provider.ts +2 -2
  77. package/realtime-testing/dist/index.js +3 -3
  78. package/realtime-testing/package.json +1 -4
  79. package/src/atom.ts +15 -42
  80. package/src/dispose-state.ts +2 -2
  81. package/src/get-state.ts +4 -4
  82. package/src/index.ts +5 -5
  83. package/src/molecule.ts +4 -3
  84. package/src/selector.ts +17 -39
  85. package/src/set-state.ts +3 -2
  86. package/src/silo.ts +4 -4
  87. package/transceivers/set-rtx/dist/index.js +11 -11
  88. package/transceivers/set-rtx/package.json +1 -4
  89. package/transceivers/set-rtx/src/set-rtx.ts +5 -5
  90. package/data/dist/index.cjs +0 -953
  91. package/dist/chunk-BF4MVQF6.js +0 -44
  92. package/dist/chunk-S4N6XNPH.js +0 -38
  93. package/dist/index.cjs +0 -215
  94. package/ephemeral/dist/index.cjs +0 -11
  95. package/eslint-plugin/dist/index.cjs +0 -388
  96. package/immortal/dist/index.cjs +0 -14
  97. package/internal/dist/index.cjs +0 -3405
  98. package/internal/src/mutable/is-mutable.ts +0 -16
  99. package/introspection/dist/index.cjs +0 -449
  100. package/json/dist/index.cjs +0 -128
  101. package/react/dist/index.cjs +0 -118
  102. package/react-devtools/dist/index.cjs +0 -2191
  103. package/realtime/dist/index.cjs +0 -120
  104. package/realtime-client/dist/index.cjs +0 -569
  105. package/realtime-react/dist/index.cjs +0 -189
  106. package/realtime-server/dist/index.cjs +0 -965
  107. package/realtime-testing/dist/index.cjs +0 -201
  108. package/transceivers/set-rtx/dist/index.cjs +0 -215
@@ -2,14 +2,11 @@
2
2
  "name": "atom.io-internal",
3
3
  "type": "module",
4
4
  "private": true,
5
- "main": "dist/index.cjs",
6
- "module": "dist/index.js",
5
+ "main": "dist/index.js",
7
6
  "types": "dist/index.d.ts",
8
7
  "exports": {
9
8
  ".": {
10
9
  "import": "./dist/index.js",
11
- "browser": "./dist/index.js",
12
- "require": "./dist/index.cjs",
13
10
  "types": "./dist/index.d.ts"
14
11
  }
15
12
  }
@@ -4,7 +4,7 @@ import type {
4
4
  RegularAtomFamily,
5
5
  RegularAtomFamilyOptions,
6
6
  } from "atom.io"
7
- import type { Json } from "atom.io/json"
7
+ import type { Canonical, Json } from "atom.io/json"
8
8
 
9
9
  import { createMutableAtomFamily, type Transceiver } from "../mutable"
10
10
  import type { Store } from "../store"
@@ -13,16 +13,16 @@ import { createRegularAtomFamily } from "./create-regular-atom-family"
13
13
  export function createAtomFamily<
14
14
  T extends Transceiver<any>,
15
15
  J extends Json.Serializable,
16
- K extends Json.Serializable,
16
+ K extends Canonical,
17
17
  >(
18
18
  options: MutableAtomFamilyOptions<T, J, K>,
19
19
  store: Store,
20
20
  ): MutableAtomFamily<T, J, K>
21
- export function createAtomFamily<T, K extends Json.Serializable>(
21
+ export function createAtomFamily<T, K extends Canonical>(
22
22
  options: RegularAtomFamilyOptions<T, K>,
23
23
  store: Store,
24
24
  ): RegularAtomFamily<T, K>
25
- export function createAtomFamily<T, K extends Json.Serializable>(
25
+ export function createAtomFamily<T, K extends Canonical>(
26
26
  options:
27
27
  | MutableAtomFamilyOptions<any, any, any>
28
28
  | RegularAtomFamilyOptions<T, K>,
@@ -6,7 +6,7 @@ import type {
6
6
  StateCreation,
7
7
  StateDisposal,
8
8
  } from "atom.io"
9
- import type { Json } from "atom.io/json"
9
+ import type { Canonical } from "atom.io/json"
10
10
  import { stringifyJson } from "atom.io/json"
11
11
 
12
12
  import { newest } from "../lineage"
@@ -14,7 +14,7 @@ import { createReadonlySelector } from "../selector"
14
14
  import type { Store } from "../store"
15
15
  import { Subject } from "../subject"
16
16
 
17
- export function createReadonlySelectorFamily<T, K extends Json.Serializable>(
17
+ export function createReadonlySelectorFamily<T, K extends Canonical>(
18
18
  options: ReadonlySelectorFamilyOptions<T, K>,
19
19
  store: Store,
20
20
  ): ReadonlySelectorFamily<T, K> {
@@ -7,7 +7,7 @@ import type {
7
7
  StateCreation,
8
8
  StateDisposal,
9
9
  } from "atom.io"
10
- import type { Json } from "atom.io/json"
10
+ import type { Canonical } from "atom.io/json"
11
11
  import { stringifyJson } from "atom.io/json"
12
12
 
13
13
  import { createRegularAtom } from "../atom"
@@ -15,7 +15,7 @@ import { newest } from "../lineage"
15
15
  import type { Store } from "../store"
16
16
  import { Subject } from "../subject"
17
17
 
18
- export function createRegularAtomFamily<T, K extends Json.Serializable>(
18
+ export function createRegularAtomFamily<T, K extends Canonical>(
19
19
  options: RegularAtomFamilyOptions<T, K>,
20
20
  store: Store,
21
21
  ): RegularAtomFamily<T, K> {
@@ -4,21 +4,21 @@ import type {
4
4
  WritableSelectorFamily,
5
5
  WritableSelectorFamilyOptions,
6
6
  } from "atom.io"
7
- import type { Json } from "atom.io/json"
7
+ import type { Canonical } from "atom.io/json"
8
8
 
9
9
  import type { Store } from "../store"
10
10
  import { createReadonlySelectorFamily } from "./create-readonly-selector-family"
11
11
  import { createWritableSelectorFamily } from "./create-writable-selector-family"
12
12
 
13
- export function createSelectorFamily<T, K extends Json.Serializable>(
13
+ export function createSelectorFamily<T, K extends Canonical>(
14
14
  options: WritableSelectorFamilyOptions<T, K>,
15
15
  store: Store,
16
16
  ): WritableSelectorFamily<T, K>
17
- export function createSelectorFamily<T, K extends Json.Serializable>(
17
+ export function createSelectorFamily<T, K extends Canonical>(
18
18
  options: ReadonlySelectorFamilyOptions<T, K>,
19
19
  store: Store,
20
20
  ): ReadonlySelectorFamily<T, K>
21
- export function createSelectorFamily<T, K extends Json.Serializable>(
21
+ export function createSelectorFamily<T, K extends Canonical>(
22
22
  options:
23
23
  | ReadonlySelectorFamilyOptions<T, K>
24
24
  | WritableSelectorFamilyOptions<T, K>,
@@ -6,7 +6,7 @@ import type {
6
6
  WritableSelectorFamilyOptions,
7
7
  WritableSelectorToken,
8
8
  } from "atom.io"
9
- import type { Json } from "atom.io/json"
9
+ import type { Canonical } from "atom.io/json"
10
10
  import { stringifyJson } from "atom.io/json"
11
11
 
12
12
  import { newest } from "../lineage"
@@ -14,7 +14,7 @@ import { createWritableSelector } from "../selector"
14
14
  import type { Store } from "../store"
15
15
  import { Subject } from "../subject"
16
16
 
17
- export function createWritableSelectorFamily<T, K extends Json.Serializable>(
17
+ export function createWritableSelectorFamily<T, K extends Canonical>(
18
18
  options: WritableSelectorFamilyOptions<T, K>,
19
19
  store: Store,
20
20
  ): WritableSelectorFamily<T, K> {
@@ -6,7 +6,7 @@ import type {
6
6
  ReadableFamilyToken,
7
7
  ReadableToken,
8
8
  } from "atom.io"
9
- import type { Json } from "atom.io/json"
9
+ import type { Canonical } from "atom.io/json"
10
10
 
11
11
  import { disposeAtom } from "../atom"
12
12
  import { disposeMolecule } from "../molecule/dispose-molecule"
@@ -21,7 +21,7 @@ export function disposeFromStore(
21
21
  store: Store,
22
22
  ): void
23
23
 
24
- export function disposeFromStore<K extends Json.Serializable>(
24
+ export function disposeFromStore<K extends Canonical>(
25
25
  token: ReadableFamilyToken<any, K>,
26
26
  key: K,
27
27
  store: Store,
@@ -35,13 +35,9 @@ export function disposeFromStore<M extends MoleculeConstructor>(
35
35
 
36
36
  export function disposeFromStore(
37
37
  ...params:
38
- | [
39
- token: ReadableFamilyToken<any, any>,
40
- key: Json.Serializable,
41
- store: Store,
42
- ]
43
38
  | [token: MoleculeFamilyToken<any>, key: MoleculeKey<any>, store: Store]
44
39
  | [token: MoleculeToken<any> | ReadableToken<any>, store: Store]
40
+ | [token: ReadableFamilyToken<any, any>, key: Canonical, store: Store]
45
41
  ): void {
46
42
  let token: MoleculeToken<any> | ReadableToken<any>
47
43
  let store: Store
@@ -16,7 +16,7 @@ import type {
16
16
  WritableSelectorToken,
17
17
  WritableToken,
18
18
  } from "atom.io"
19
- import type { Json } from "atom.io/json"
19
+ import type { Canonical, Json } from "atom.io/json"
20
20
 
21
21
  import type { Transceiver } from "../mutable"
22
22
  import type { Store } from "../store"
@@ -26,7 +26,7 @@ import { seekInStore } from "./seek-in-store"
26
26
  export function findInStore<
27
27
  T extends Transceiver<any>,
28
28
  J extends Json.Serializable,
29
- K extends Json.Serializable,
29
+ K extends Canonical,
30
30
  Key extends K,
31
31
  >(
32
32
  token: MutableAtomFamilyToken<T, J, K>,
@@ -34,43 +34,43 @@ export function findInStore<
34
34
  store: Store,
35
35
  ): MutableAtomToken<T, J>
36
36
 
37
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
37
+ export function findInStore<T, K extends Canonical, Key extends K>(
38
38
  token: RegularAtomFamilyToken<T, K>,
39
39
  key: Key,
40
40
  store: Store,
41
41
  ): RegularAtomToken<T>
42
42
 
43
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
43
+ export function findInStore<T, K extends Canonical, Key extends K>(
44
44
  token: AtomFamilyToken<T, K>,
45
45
  key: Key,
46
46
  store: Store,
47
47
  ): AtomToken<T>
48
48
 
49
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
49
+ export function findInStore<T, K extends Canonical, Key extends K>(
50
50
  token: WritableSelectorFamilyToken<T, K>,
51
51
  key: Key,
52
52
  store: Store,
53
53
  ): WritableSelectorToken<T>
54
54
 
55
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
55
+ export function findInStore<T, K extends Canonical, Key extends K>(
56
56
  token: ReadonlySelectorFamilyToken<T, K>,
57
57
  key: Key,
58
58
  store: Store,
59
59
  ): ReadonlySelectorToken<T>
60
60
 
61
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
61
+ export function findInStore<T, K extends Canonical, Key extends K>(
62
62
  token: SelectorFamilyToken<T, K>,
63
63
  key: Key,
64
64
  store: Store,
65
65
  ): SelectorToken<T>
66
66
 
67
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
67
+ export function findInStore<T, K extends Canonical, Key extends K>(
68
68
  token: WritableFamilyToken<T, K>,
69
69
  key: Key,
70
70
  store: Store,
71
71
  ): WritableToken<T>
72
72
 
73
- export function findInStore<T, K extends Json.Serializable, Key extends K>(
73
+ export function findInStore<T, K extends Canonical, Key extends K>(
74
74
  token: ReadableFamilyToken<T, K>,
75
75
  key: Key,
76
76
  store: Store,
@@ -16,7 +16,7 @@ import type {
16
16
  WritableSelectorToken,
17
17
  WritableToken,
18
18
  } from "atom.io"
19
- import type { Json } from "atom.io/json"
19
+ import type { Canonical, Json } from "atom.io/json"
20
20
 
21
21
  import { newest } from "../lineage"
22
22
  import type { Transceiver } from "../mutable"
@@ -27,7 +27,7 @@ import { isChildStore, isRootStore } from "../transaction"
27
27
  export function initFamilyMemberInStore<
28
28
  T extends Transceiver<any>,
29
29
  J extends Json.Serializable,
30
- K extends Json.Serializable,
30
+ K extends Canonical,
31
31
  Key extends K,
32
32
  >(
33
33
  token: MutableAtomFamilyToken<T, J, K>,
@@ -35,59 +35,47 @@ export function initFamilyMemberInStore<
35
35
  store: Store,
36
36
  ): MutableAtomToken<T, J>
37
37
 
38
- export function initFamilyMemberInStore<
39
- T,
40
- K extends Json.Serializable,
41
- Key extends K,
42
- >(
38
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
43
39
  token: RegularAtomFamilyToken<T, K>,
44
40
  key: Key,
45
41
  store: Store,
46
42
  ): RegularAtomToken<T>
47
43
 
48
- export function initFamilyMemberInStore<
49
- T,
50
- K extends Json.Serializable,
51
- Key extends K,
52
- >(token: AtomFamilyToken<T, K>, key: Key, store: Store): AtomToken<T>
44
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
45
+ token: AtomFamilyToken<T, K>,
46
+ key: Key,
47
+ store: Store,
48
+ ): AtomToken<T>
53
49
 
54
- export function initFamilyMemberInStore<
55
- T,
56
- K extends Json.Serializable,
57
- Key extends K,
58
- >(
50
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
59
51
  token: WritableSelectorFamilyToken<T, K>,
60
52
  key: Key,
61
53
  store: Store,
62
54
  ): WritableSelectorToken<T>
63
55
 
64
- export function initFamilyMemberInStore<
65
- T,
66
- K extends Json.Serializable,
67
- Key extends K,
68
- >(
56
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
69
57
  token: ReadonlySelectorFamilyToken<T, K>,
70
58
  key: Key,
71
59
  store: Store,
72
60
  ): ReadonlySelectorToken<T>
73
61
 
74
- export function initFamilyMemberInStore<
75
- T,
76
- K extends Json.Serializable,
77
- Key extends K,
78
- >(token: SelectorFamilyToken<T, K>, key: Key, store: Store): SelectorToken<T>
62
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
63
+ token: SelectorFamilyToken<T, K>,
64
+ key: Key,
65
+ store: Store,
66
+ ): SelectorToken<T>
79
67
 
80
- export function initFamilyMemberInStore<
81
- T,
82
- K extends Json.Serializable,
83
- Key extends K,
84
- >(token: WritableFamilyToken<T, K>, key: Key, store: Store): WritableToken<T>
68
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
69
+ token: WritableFamilyToken<T, K>,
70
+ key: Key,
71
+ store: Store,
72
+ ): WritableToken<T>
85
73
 
86
- export function initFamilyMemberInStore<
87
- T,
88
- K extends Json.Serializable,
89
- Key extends K,
90
- >(token: ReadableFamilyToken<T, K>, key: Key, store: Store): ReadableToken<T>
74
+ export function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(
75
+ token: ReadableFamilyToken<T, K>,
76
+ key: Key,
77
+ store: Store,
78
+ ): ReadableToken<T>
91
79
 
92
80
  export function initFamilyMemberInStore(
93
81
  token: ReadableFamilyToken<any, any>,
@@ -20,7 +20,8 @@ import type {
20
20
  WritableSelectorToken,
21
21
  WritableToken,
22
22
  } from "atom.io"
23
- import { type Json, stringifyJson } from "atom.io/json"
23
+ import type { Canonical, Json } from "atom.io/json"
24
+ import { stringifyJson } from "atom.io/json"
24
25
 
25
26
  import type { Molecule, ReadableState } from ".."
26
27
  import { newest } from "../lineage"
@@ -30,7 +31,7 @@ import { deposit, type Store } from "../store"
30
31
  export function seekInStore<
31
32
  T extends Transceiver<any>,
32
33
  J extends Json.Serializable,
33
- K extends Json.Serializable,
34
+ K extends Canonical,
34
35
  Key extends K,
35
36
  >(
36
37
  token: MutableAtomFamilyToken<T, J, K>,
@@ -38,43 +39,43 @@ export function seekInStore<
38
39
  store: Store,
39
40
  ): MutableAtomToken<T, J> | undefined
40
41
 
41
- export function seekInStore<T, K extends Json.Serializable, Key extends K>(
42
+ export function seekInStore<T, K extends Canonical, Key extends K>(
42
43
  token: RegularAtomFamilyToken<T, K>,
43
44
  key: Key,
44
45
  store: Store,
45
46
  ): RegularAtomToken<T> | undefined
46
47
 
47
- export function seekInStore<T, K extends Json.Serializable, Key extends K>(
48
+ export function seekInStore<T, K extends Canonical, Key extends K>(
48
49
  token: AtomFamilyToken<T, K>,
49
50
  key: Key,
50
51
  store: Store,
51
52
  ): AtomToken<T> | undefined
52
53
 
53
- export function seekInStore<T, K extends Json.Serializable, Key extends K>(
54
+ export function seekInStore<T, K extends Canonical, Key extends K>(
54
55
  token: WritableSelectorFamilyToken<T, K>,
55
56
  key: Key,
56
57
  store: Store,
57
58
  ): WritableSelectorToken<T> | undefined
58
59
 
59
- export function seekInStore<T, K extends Json.Serializable, Key extends K>(
60
+ export function seekInStore<T, K extends Canonical, Key extends K>(
60
61
  token: ReadonlySelectorFamilyToken<T, K>,
61
62
  key: Key,
62
63
  store: Store,
63
64
  ): ReadonlySelectorToken<T> | undefined
64
65
 
65
- export function seekInStore<T, K extends Json.Serializable, Key extends K>(
66
+ export function seekInStore<T, K extends Canonical, Key extends K>(
66
67
  token: SelectorFamilyToken<T, K>,
67
68
  key: Key,
68
69
  store: Store,
69
70
  ): SelectorToken<T> | undefined
70
71
 
71
- export function seekInStore<T, K extends Json.Serializable, Key extends K>(
72
+ export function seekInStore<T, K extends Canonical, Key extends K>(
72
73
  token: WritableFamilyToken<T, K>,
73
74
  key: Key,
74
75
  store: Store,
75
76
  ): WritableToken<T> | undefined
76
77
 
77
- export function seekInStore<T, K extends Json.Serializable, Key extends K>(
78
+ export function seekInStore<T, K extends Canonical, Key extends K>(
78
79
  token: ReadableFamilyToken<T, K>,
79
80
  key: Key,
80
81
  store: Store,
@@ -88,7 +89,7 @@ export function seekInStore<M extends MoleculeConstructor>(
88
89
 
89
90
  export function seekInStore(
90
91
  token: MoleculeFamilyToken<any> | ReadableFamilyToken<any, any>,
91
- key: Json.Serializable,
92
+ key: Canonical,
92
93
  store: Store,
93
94
  ): MoleculeToken<any> | ReadableToken<any> | undefined {
94
95
  const subKey = stringifyJson(key)
@@ -6,7 +6,7 @@ import type {
6
6
  ReadableFamilyToken,
7
7
  ReadableToken,
8
8
  } from "atom.io"
9
- import type { Json } from "atom.io/json"
9
+ import type { Canonical } from "atom.io/json"
10
10
 
11
11
  import { findInStore, seekInStore } from "../families"
12
12
  import { NotFoundError } from "../not-found-error"
@@ -21,7 +21,7 @@ export function getFromStore<M extends MoleculeConstructor>(
21
21
  store: Store,
22
22
  ): InstanceType<M> | undefined
23
23
 
24
- export function getFromStore<T, K extends Json.Serializable>(
24
+ export function getFromStore<T, K extends Canonical>(
25
25
  token: ReadableFamilyToken<T, K>,
26
26
  key: K,
27
27
  store: Store,
@@ -37,7 +37,7 @@ export function getFromStore<T>(
37
37
  ...params:
38
38
  | [token: MoleculeFamilyToken<any>, key: MoleculeKey<any>, store: Store]
39
39
  | [token: MoleculeToken<any>, store: Store]
40
- | [token: ReadableFamilyToken<T, any>, key: Json.Serializable, store: Store]
40
+ | [token: ReadableFamilyToken<T, any>, key: Canonical, store: Store]
41
41
  | [token: ReadableToken<T>, store: Store]
42
42
  ): any {
43
43
  let token: MoleculeToken<any> | ReadableToken<T>
@@ -16,7 +16,7 @@ import type {
16
16
  WritableSelectorToken,
17
17
  WritableToken,
18
18
  } from "atom.io"
19
- import type { Json } from "atom.io/json"
19
+ import type { Canonical, Json } from "atom.io/json"
20
20
 
21
21
  import { initFamilyMemberInStore } from "../families"
22
22
  import type { Transceiver } from "../mutable"
@@ -27,43 +27,43 @@ import type { Molecule } from "./molecule-internal"
27
27
  export function growMoleculeInStore<
28
28
  T extends Transceiver<any>,
29
29
  J extends Json.Serializable,
30
- K extends Json.Serializable,
30
+ K extends Canonical,
31
31
  >(
32
32
  molecule: Molecule<any>,
33
33
  family: MutableAtomFamily<T, J, K>,
34
34
  store: Store,
35
35
  ): MutableAtomToken<T, J>
36
- export function growMoleculeInStore<T, K extends Json.Serializable>(
36
+ export function growMoleculeInStore<T, K extends Canonical>(
37
37
  molecule: Molecule<any>,
38
38
  family: RegularAtomFamily<T, K>,
39
39
  store: Store,
40
40
  ): RegularAtomToken<T>
41
- export function growMoleculeInStore<T, K extends Json.Serializable>(
41
+ export function growMoleculeInStore<T, K extends Canonical>(
42
42
  molecule: Molecule<any>,
43
43
  family: AtomFamily<T, K>,
44
44
  store: Store,
45
45
  ): AtomToken<T>
46
- export function growMoleculeInStore<T, K extends Json.Serializable>(
46
+ export function growMoleculeInStore<T, K extends Canonical>(
47
47
  molecule: Molecule<any>,
48
48
  family: WritableSelectorFamily<T, K>,
49
49
  store: Store,
50
50
  ): WritableSelectorToken<T>
51
- export function growMoleculeInStore<T, K extends Json.Serializable>(
51
+ export function growMoleculeInStore<T, K extends Canonical>(
52
52
  molecule: Molecule<any>,
53
53
  family: ReadonlySelectorFamily<T, K>,
54
54
  store: Store,
55
55
  ): ReadonlySelectorToken<T>
56
- export function growMoleculeInStore<T, K extends Json.Serializable>(
56
+ export function growMoleculeInStore<T, K extends Canonical>(
57
57
  molecule: Molecule<any>,
58
58
  family: SelectorFamily<T, K>,
59
59
  store: Store,
60
60
  ): SelectorToken<T>
61
- export function growMoleculeInStore<T, K extends Json.Serializable>(
61
+ export function growMoleculeInStore<T, K extends Canonical>(
62
62
  molecule: Molecule<any>,
63
63
  family: WritableFamily<T, K>,
64
64
  store: Store,
65
65
  ): WritableToken<T>
66
- export function growMoleculeInStore<T, K extends Json.Serializable>(
66
+ export function growMoleculeInStore<T, K extends Canonical>(
67
67
  molecule: Molecule<any>,
68
68
  family: ReadableFamily<T, K>,
69
69
  store: Store,
@@ -3,7 +3,6 @@ export * from "./create-mutable-atom-family"
3
3
  export * from "./get-json-family"
4
4
  export * from "./get-json-token"
5
5
  export * from "./get-update-token"
6
- export * from "./is-mutable"
7
6
  export * from "./tracker"
8
7
  export * from "./tracker-family"
9
8
  export * from "./transceiver"
@@ -1,5 +1,5 @@
1
1
  import type { MutableAtomFamily, RegularAtomFamily } from "atom.io"
2
- import type { Json } from "atom.io/json"
2
+ import type { Canonical } from "atom.io/json"
3
3
  import { parseJson } from "atom.io/json"
4
4
 
5
5
  import { createRegularAtomFamily, seekInStore } from "../families"
@@ -9,7 +9,7 @@ import type { Transceiver } from "./transceiver"
9
9
 
10
10
  export class FamilyTracker<
11
11
  Core extends Transceiver<any>,
12
- FamilyMemberKey extends Json.Serializable,
12
+ FamilyMemberKey extends Canonical,
13
13
  > {
14
14
  private readonly Update: Core extends Transceiver<infer Signal>
15
15
  ? Signal
@@ -1,5 +1,5 @@
1
1
  import type { WritableFamilyToken, WritableToken } from "atom.io"
2
- import type { Json } from "atom.io/json"
2
+ import type { Canonical } from "atom.io/json"
3
3
 
4
4
  import { findInStore, seekInStore } from "../families"
5
5
  import { NotFoundError } from "../not-found-error"
@@ -14,7 +14,7 @@ export function setIntoStore<T, New extends T>(
14
14
  store: Store,
15
15
  ): void
16
16
 
17
- export function setIntoStore<T, K extends Json.Serializable, New extends T>(
17
+ export function setIntoStore<T, K extends Canonical, New extends T>(
18
18
  token: WritableFamilyToken<T, K>,
19
19
  key: K,
20
20
  value: New | ((oldValue: T) => New),
@@ -24,8 +24,8 @@ export function setIntoStore<T, K extends Json.Serializable, New extends T>(
24
24
  export function setIntoStore<T, New extends T>(
25
25
  ...params:
26
26
  | [
27
- token: WritableFamilyToken<T, Json.Serializable>,
28
- key: Json.Serializable,
27
+ token: WritableFamilyToken<T, Canonical>,
28
+ key: Canonical,
29
29
  value: New | ((oldValue: T) => New),
30
30
  store: Store,
31
31
  ]
@@ -12,7 +12,7 @@ import type {
12
12
  WritableSelectorToken,
13
13
  WritableToken,
14
14
  } from "atom.io"
15
- import type { Json } from "atom.io/json"
15
+ import type { Canonical } from "atom.io/json"
16
16
 
17
17
  import type {
18
18
  Atom,
@@ -39,12 +39,12 @@ export function deposit<T>(state: ReadonlySelector<T>): ReadonlySelectorToken<T>
39
39
  export function deposit<T>(state: Selector<T>): SelectorToken<T>
40
40
  export function deposit<T>(state: WritableState<T>): WritableToken<T>
41
41
  export function deposit<
42
- K extends Json.Serializable,
42
+ K extends Canonical,
43
43
  S extends { [key: string]: any },
44
44
  P extends any[],
45
45
  >(state: Molecule<any>): MoleculeToken<any>
46
46
  export function deposit<
47
- K extends Json.Serializable,
47
+ K extends Canonical,
48
48
  S extends { [key: string]: any },
49
49
  P extends any[],
50
50
  >(state: MoleculeFamily<any>): MoleculeFamilyToken<any>
@@ -31,7 +31,8 @@ import type {
31
31
  WritableSelectorToken,
32
32
  WritableToken,
33
33
  } from "atom.io"
34
- import { type Json, stringifyJson } from "atom.io/json"
34
+ import type { Canonical, Json } from "atom.io/json"
35
+ import { stringifyJson } from "atom.io/json"
35
36
 
36
37
  import type {
37
38
  Atom,
@@ -100,39 +101,39 @@ export function withdraw<T>(
100
101
  store: Store,
101
102
  ): ReadableState<T>
102
103
 
103
- export function withdraw<T, K extends Json.Serializable>(
104
+ export function withdraw<T, K extends Canonical>(
104
105
  token: RegularAtomFamilyToken<T, K>,
105
106
  store: Store,
106
107
  ): RegularAtomFamily<T, K>
107
108
  export function withdraw<
108
109
  T extends Transceiver<any>,
109
110
  J extends Json.Serializable,
110
- K extends Json.Serializable,
111
+ K extends Canonical,
111
112
  >(
112
113
  token: MutableAtomFamilyToken<T, J, K>,
113
114
  store: Store,
114
115
  ): MutableAtomFamily<T, J, K>
115
- export function withdraw<T, K extends Json.Serializable>(
116
+ export function withdraw<T, K extends Canonical>(
116
117
  token: AtomFamilyToken<T>,
117
118
  store: Store,
118
119
  ): AtomFamily<T, any>
119
- export function withdraw<T, K extends Json.Serializable>(
120
+ export function withdraw<T, K extends Canonical>(
120
121
  token: ReadonlySelectorFamilyToken<T, K>,
121
122
  store: Store,
122
123
  ): ReadonlySelectorFamily<T, any>
123
- export function withdraw<T, K extends Json.Serializable>(
124
+ export function withdraw<T, K extends Canonical>(
124
125
  token: WritableSelectorFamilyToken<T, K>,
125
126
  store: Store,
126
127
  ): WritableSelectorFamily<T, any>
127
- export function withdraw<T, K extends Json.Serializable>(
128
+ export function withdraw<T, K extends Canonical>(
128
129
  token: SelectorFamilyToken<T, K>,
129
130
  store: Store,
130
131
  ): SelectorFamily<T, any>
131
- export function withdraw<T, K extends Json.Serializable>(
132
+ export function withdraw<T, K extends Canonical>(
132
133
  token: ReadableFamilyToken<T, K>,
133
134
  store: Store,
134
135
  ): ReadableFamily<T, any>
135
- export function withdraw<T, K extends Json.Serializable>(
136
+ export function withdraw<T, K extends Canonical>(
136
137
  token: WritableFamilyToken<T, K>,
137
138
  store: Store,
138
139
  ): WritableFamily<T, any>