cojson 0.8.12 → 0.8.17

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 (164) hide show
  1. package/CHANGELOG.md +95 -83
  2. package/dist/native/PeerKnownStates.js +6 -1
  3. package/dist/native/PeerKnownStates.js.map +1 -1
  4. package/dist/native/PeerState.js +4 -3
  5. package/dist/native/PeerState.js.map +1 -1
  6. package/dist/native/PriorityBasedMessageQueue.js +1 -10
  7. package/dist/native/PriorityBasedMessageQueue.js.map +1 -1
  8. package/dist/native/SyncStateSubscriptionManager.js +70 -0
  9. package/dist/native/SyncStateSubscriptionManager.js.map +1 -0
  10. package/dist/native/base64url.js.map +1 -1
  11. package/dist/native/base64url.test.js +1 -1
  12. package/dist/native/base64url.test.js.map +1 -1
  13. package/dist/native/coValue.js.map +1 -1
  14. package/dist/native/coValueCore.js +141 -149
  15. package/dist/native/coValueCore.js.map +1 -1
  16. package/dist/native/coValueState.js.map +1 -1
  17. package/dist/native/coValues/account.js +6 -6
  18. package/dist/native/coValues/account.js.map +1 -1
  19. package/dist/native/coValues/coList.js +2 -3
  20. package/dist/native/coValues/coList.js.map +1 -1
  21. package/dist/native/coValues/coMap.js +1 -1
  22. package/dist/native/coValues/coMap.js.map +1 -1
  23. package/dist/native/coValues/coStream.js +3 -5
  24. package/dist/native/coValues/coStream.js.map +1 -1
  25. package/dist/native/coValues/group.js +11 -11
  26. package/dist/native/coValues/group.js.map +1 -1
  27. package/dist/native/coreToCoValue.js +2 -2
  28. package/dist/native/coreToCoValue.js.map +1 -1
  29. package/dist/native/crypto/PureJSCrypto.js +4 -4
  30. package/dist/native/crypto/PureJSCrypto.js.map +1 -1
  31. package/dist/native/crypto/crypto.js.map +1 -1
  32. package/dist/native/exports.js +12 -12
  33. package/dist/native/exports.js.map +1 -1
  34. package/dist/native/ids.js.map +1 -1
  35. package/dist/native/jsonStringify.js.map +1 -1
  36. package/dist/native/localNode.js +5 -7
  37. package/dist/native/localNode.js.map +1 -1
  38. package/dist/native/permissions.js +4 -7
  39. package/dist/native/permissions.js.map +1 -1
  40. package/dist/native/priority.js.map +1 -1
  41. package/dist/native/storage/FileSystem.js.map +1 -1
  42. package/dist/native/storage/chunksAndKnownStates.js +2 -4
  43. package/dist/native/storage/chunksAndKnownStates.js.map +1 -1
  44. package/dist/native/storage/index.js +6 -15
  45. package/dist/native/storage/index.js.map +1 -1
  46. package/dist/native/streamUtils.js.map +1 -1
  47. package/dist/native/sync.js +57 -7
  48. package/dist/native/sync.js.map +1 -1
  49. package/dist/native/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -1
  50. package/dist/native/typeUtils/expectGroup.js.map +1 -1
  51. package/dist/native/typeUtils/isAccountID.js.map +1 -1
  52. package/dist/native/typeUtils/isCoValue.js +1 -1
  53. package/dist/native/typeUtils/isCoValue.js.map +1 -1
  54. package/dist/web/PeerKnownStates.js +6 -1
  55. package/dist/web/PeerKnownStates.js.map +1 -1
  56. package/dist/web/PeerState.js +4 -3
  57. package/dist/web/PeerState.js.map +1 -1
  58. package/dist/web/PriorityBasedMessageQueue.js +1 -10
  59. package/dist/web/PriorityBasedMessageQueue.js.map +1 -1
  60. package/dist/web/SyncStateSubscriptionManager.js +70 -0
  61. package/dist/web/SyncStateSubscriptionManager.js.map +1 -0
  62. package/dist/web/base64url.js.map +1 -1
  63. package/dist/web/base64url.test.js +1 -1
  64. package/dist/web/base64url.test.js.map +1 -1
  65. package/dist/web/coValue.js.map +1 -1
  66. package/dist/web/coValueCore.js +141 -149
  67. package/dist/web/coValueCore.js.map +1 -1
  68. package/dist/web/coValueState.js.map +1 -1
  69. package/dist/web/coValues/account.js +6 -6
  70. package/dist/web/coValues/account.js.map +1 -1
  71. package/dist/web/coValues/coList.js +2 -3
  72. package/dist/web/coValues/coList.js.map +1 -1
  73. package/dist/web/coValues/coMap.js +1 -1
  74. package/dist/web/coValues/coMap.js.map +1 -1
  75. package/dist/web/coValues/coStream.js +3 -5
  76. package/dist/web/coValues/coStream.js.map +1 -1
  77. package/dist/web/coValues/group.js +11 -11
  78. package/dist/web/coValues/group.js.map +1 -1
  79. package/dist/web/coreToCoValue.js +2 -2
  80. package/dist/web/coreToCoValue.js.map +1 -1
  81. package/dist/web/crypto/PureJSCrypto.js +4 -4
  82. package/dist/web/crypto/PureJSCrypto.js.map +1 -1
  83. package/dist/web/crypto/WasmCrypto.js +5 -5
  84. package/dist/web/crypto/WasmCrypto.js.map +1 -1
  85. package/dist/web/crypto/crypto.js.map +1 -1
  86. package/dist/web/exports.js +12 -12
  87. package/dist/web/exports.js.map +1 -1
  88. package/dist/web/ids.js.map +1 -1
  89. package/dist/web/jsonStringify.js.map +1 -1
  90. package/dist/web/localNode.js +5 -7
  91. package/dist/web/localNode.js.map +1 -1
  92. package/dist/web/permissions.js +4 -7
  93. package/dist/web/permissions.js.map +1 -1
  94. package/dist/web/priority.js.map +1 -1
  95. package/dist/web/storage/FileSystem.js.map +1 -1
  96. package/dist/web/storage/chunksAndKnownStates.js +2 -4
  97. package/dist/web/storage/chunksAndKnownStates.js.map +1 -1
  98. package/dist/web/storage/index.js +6 -15
  99. package/dist/web/storage/index.js.map +1 -1
  100. package/dist/web/streamUtils.js.map +1 -1
  101. package/dist/web/sync.js +57 -7
  102. package/dist/web/sync.js.map +1 -1
  103. package/dist/web/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -1
  104. package/dist/web/typeUtils/expectGroup.js.map +1 -1
  105. package/dist/web/typeUtils/isAccountID.js.map +1 -1
  106. package/dist/web/typeUtils/isCoValue.js +1 -1
  107. package/dist/web/typeUtils/isCoValue.js.map +1 -1
  108. package/package.json +4 -14
  109. package/src/PeerKnownStates.ts +98 -90
  110. package/src/PeerState.ts +92 -73
  111. package/src/PriorityBasedMessageQueue.ts +42 -49
  112. package/src/SyncStateSubscriptionManager.ts +124 -0
  113. package/src/base64url.test.ts +24 -24
  114. package/src/base64url.ts +44 -45
  115. package/src/coValue.ts +45 -45
  116. package/src/coValueCore.ts +746 -785
  117. package/src/coValueState.ts +82 -72
  118. package/src/coValues/account.ts +143 -150
  119. package/src/coValues/coList.ts +520 -522
  120. package/src/coValues/coMap.ts +283 -285
  121. package/src/coValues/coStream.ts +320 -324
  122. package/src/coValues/group.ts +306 -305
  123. package/src/coreToCoValue.ts +28 -31
  124. package/src/crypto/PureJSCrypto.ts +188 -194
  125. package/src/crypto/WasmCrypto.ts +236 -254
  126. package/src/crypto/crypto.ts +302 -309
  127. package/src/exports.ts +116 -116
  128. package/src/ids.ts +9 -9
  129. package/src/jsonStringify.ts +46 -46
  130. package/src/jsonValue.ts +24 -10
  131. package/src/localNode.ts +635 -660
  132. package/src/media.ts +3 -3
  133. package/src/permissions.ts +272 -278
  134. package/src/priority.ts +21 -19
  135. package/src/storage/FileSystem.ts +91 -99
  136. package/src/storage/chunksAndKnownStates.ts +110 -115
  137. package/src/storage/index.ts +466 -497
  138. package/src/streamUtils.ts +60 -60
  139. package/src/sync.ts +656 -608
  140. package/src/tests/PeerKnownStates.test.ts +38 -34
  141. package/src/tests/PeerState.test.ts +101 -64
  142. package/src/tests/PriorityBasedMessageQueue.test.ts +91 -91
  143. package/src/tests/SyncStateSubscriptionManager.test.ts +232 -0
  144. package/src/tests/account.test.ts +59 -59
  145. package/src/tests/coList.test.ts +65 -65
  146. package/src/tests/coMap.test.ts +137 -137
  147. package/src/tests/coStream.test.ts +254 -257
  148. package/src/tests/coValueCore.test.ts +153 -156
  149. package/src/tests/crypto.test.ts +136 -144
  150. package/src/tests/cryptoImpl.test.ts +205 -197
  151. package/src/tests/group.test.ts +24 -24
  152. package/src/tests/permissions.test.ts +1306 -1371
  153. package/src/tests/priority.test.ts +65 -82
  154. package/src/tests/sync.test.ts +1573 -1263
  155. package/src/tests/testUtils.ts +85 -53
  156. package/src/typeUtils/accountOrAgentIDfromSessionID.ts +4 -4
  157. package/src/typeUtils/expectGroup.ts +9 -9
  158. package/src/typeUtils/isAccountID.ts +1 -1
  159. package/src/typeUtils/isCoValue.ts +9 -9
  160. package/tsconfig.json +4 -6
  161. package/tsconfig.native.json +9 -11
  162. package/tsconfig.web.json +4 -10
  163. package/.eslintrc.cjs +0 -25
  164. package/.prettierrc.js +0 -9
@@ -1,74 +1,74 @@
1
- import { Peer, PeerID, SyncMessage } from "./sync.js";
2
1
  import { Channel } from "queueueue";
2
+ import { Peer, PeerID, SyncMessage } from "./sync.js";
3
3
  export { Channel } from "queueueue";
4
4
 
5
5
  export function connectedPeers(
6
- peer1id: PeerID,
7
- peer2id: PeerID,
8
- {
9
- trace = false,
10
- peer1role = "peer",
11
- peer2role = "peer",
12
- crashOnClose = false,
13
- }: {
14
- trace?: boolean;
15
- peer1role?: Peer["role"];
16
- peer2role?: Peer["role"];
17
- crashOnClose?: boolean;
18
- } = {},
6
+ peer1id: PeerID,
7
+ peer2id: PeerID,
8
+ {
9
+ trace = false,
10
+ peer1role = "peer",
11
+ peer2role = "peer",
12
+ crashOnClose = false,
13
+ }: {
14
+ trace?: boolean;
15
+ peer1role?: Peer["role"];
16
+ peer2role?: Peer["role"];
17
+ crashOnClose?: boolean;
18
+ } = {},
19
19
  ): [Peer, Peer] {
20
- const [from1to2Rx, from1to2Tx] = newQueuePair(
21
- trace ? { traceAs: `${peer1id} -> ${peer2id}` } : undefined,
22
- );
23
- const [from2to1Rx, from2to1Tx] = newQueuePair(
24
- trace ? { traceAs: `${peer2id} -> ${peer1id}` } : undefined,
25
- );
20
+ const [from1to2Rx, from1to2Tx] = newQueuePair(
21
+ trace ? { traceAs: `${peer1id} -> ${peer2id}` } : undefined,
22
+ );
23
+ const [from2to1Rx, from2to1Tx] = newQueuePair(
24
+ trace ? { traceAs: `${peer2id} -> ${peer1id}` } : undefined,
25
+ );
26
26
 
27
- const peer2AsPeer: Peer = {
28
- id: peer2id,
29
- incoming: from2to1Rx,
30
- outgoing: from1to2Tx,
31
- role: peer2role,
32
- crashOnClose: crashOnClose,
33
- };
27
+ const peer2AsPeer: Peer = {
28
+ id: peer2id,
29
+ incoming: from2to1Rx,
30
+ outgoing: from1to2Tx,
31
+ role: peer2role,
32
+ crashOnClose: crashOnClose,
33
+ };
34
34
 
35
- const peer1AsPeer: Peer = {
36
- id: peer1id,
37
- incoming: from1to2Rx,
38
- outgoing: from2to1Tx,
39
- role: peer1role,
40
- crashOnClose: crashOnClose,
41
- };
35
+ const peer1AsPeer: Peer = {
36
+ id: peer1id,
37
+ incoming: from1to2Rx,
38
+ outgoing: from2to1Tx,
39
+ role: peer1role,
40
+ crashOnClose: crashOnClose,
41
+ };
42
42
 
43
- return [peer1AsPeer, peer2AsPeer];
43
+ return [peer1AsPeer, peer2AsPeer];
44
44
  }
45
45
 
46
46
  export function newQueuePair(
47
- options: { traceAs?: string } = {},
47
+ options: { traceAs?: string } = {},
48
48
  ): [AsyncIterable<SyncMessage>, Channel<SyncMessage>] {
49
- const channel = new Channel<SyncMessage>();
49
+ const channel = new Channel<SyncMessage>();
50
50
 
51
- if (options.traceAs) {
52
- return [
53
- (async function* () {
54
- for await (const msg of channel) {
55
- console.debug(
56
- options.traceAs,
57
- JSON.stringify(
58
- msg,
59
- (k, v) =>
60
- k === "changes" || k === "encryptedChanges"
61
- ? v.slice(0, 20) + "..."
62
- : v,
63
- 2,
64
- ),
65
- );
66
- yield msg;
67
- }
68
- })(),
69
- channel,
70
- ];
71
- } else {
72
- return [channel.wrap(), channel];
73
- }
51
+ if (options.traceAs) {
52
+ return [
53
+ (async function* () {
54
+ for await (const msg of channel) {
55
+ console.debug(
56
+ options.traceAs,
57
+ JSON.stringify(
58
+ msg,
59
+ (k, v) =>
60
+ k === "changes" || k === "encryptedChanges"
61
+ ? v.slice(0, 20) + "..."
62
+ : v,
63
+ 2,
64
+ ),
65
+ );
66
+ yield msg;
67
+ }
68
+ })(),
69
+ channel,
70
+ ];
71
+ } else {
72
+ return [channel.wrap(), channel];
73
+ }
74
74
  }