cojson 0.8.11 → 0.8.16

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 (158) hide show
  1. package/CHANGELOG.md +94 -82
  2. package/dist/native/PeerKnownStates.js +1 -1
  3. package/dist/native/PeerKnownStates.js.map +1 -1
  4. package/dist/native/PeerState.js +4 -1
  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/base64url.js.map +1 -1
  9. package/dist/native/base64url.test.js +1 -1
  10. package/dist/native/base64url.test.js.map +1 -1
  11. package/dist/native/coValue.js.map +1 -1
  12. package/dist/native/coValueCore.js +141 -149
  13. package/dist/native/coValueCore.js.map +1 -1
  14. package/dist/native/coValueState.js.map +1 -1
  15. package/dist/native/coValues/account.js +6 -6
  16. package/dist/native/coValues/account.js.map +1 -1
  17. package/dist/native/coValues/coList.js +2 -3
  18. package/dist/native/coValues/coList.js.map +1 -1
  19. package/dist/native/coValues/coMap.js +1 -1
  20. package/dist/native/coValues/coMap.js.map +1 -1
  21. package/dist/native/coValues/coStream.js +3 -5
  22. package/dist/native/coValues/coStream.js.map +1 -1
  23. package/dist/native/coValues/group.js +11 -11
  24. package/dist/native/coValues/group.js.map +1 -1
  25. package/dist/native/coreToCoValue.js +2 -2
  26. package/dist/native/coreToCoValue.js.map +1 -1
  27. package/dist/native/crypto/PureJSCrypto.js +4 -4
  28. package/dist/native/crypto/PureJSCrypto.js.map +1 -1
  29. package/dist/native/crypto/crypto.js.map +1 -1
  30. package/dist/native/exports.js +12 -12
  31. package/dist/native/exports.js.map +1 -1
  32. package/dist/native/ids.js.map +1 -1
  33. package/dist/native/jsonStringify.js.map +1 -1
  34. package/dist/native/localNode.js +6 -8
  35. package/dist/native/localNode.js.map +1 -1
  36. package/dist/native/permissions.js +4 -7
  37. package/dist/native/permissions.js.map +1 -1
  38. package/dist/native/priority.js.map +1 -1
  39. package/dist/native/storage/FileSystem.js.map +1 -1
  40. package/dist/native/storage/chunksAndKnownStates.js +2 -4
  41. package/dist/native/storage/chunksAndKnownStates.js.map +1 -1
  42. package/dist/native/storage/index.js +7 -16
  43. package/dist/native/storage/index.js.map +1 -1
  44. package/dist/native/streamUtils.js.map +1 -1
  45. package/dist/native/sync.js +6 -8
  46. package/dist/native/sync.js.map +1 -1
  47. package/dist/native/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -1
  48. package/dist/native/typeUtils/expectGroup.js.map +1 -1
  49. package/dist/native/typeUtils/isAccountID.js.map +1 -1
  50. package/dist/native/typeUtils/isCoValue.js +1 -1
  51. package/dist/native/typeUtils/isCoValue.js.map +1 -1
  52. package/dist/web/PeerKnownStates.js +1 -1
  53. package/dist/web/PeerKnownStates.js.map +1 -1
  54. package/dist/web/PeerState.js +4 -1
  55. package/dist/web/PeerState.js.map +1 -1
  56. package/dist/web/PriorityBasedMessageQueue.js +1 -10
  57. package/dist/web/PriorityBasedMessageQueue.js.map +1 -1
  58. package/dist/web/base64url.js.map +1 -1
  59. package/dist/web/base64url.test.js +1 -1
  60. package/dist/web/base64url.test.js.map +1 -1
  61. package/dist/web/coValue.js.map +1 -1
  62. package/dist/web/coValueCore.js +141 -149
  63. package/dist/web/coValueCore.js.map +1 -1
  64. package/dist/web/coValueState.js.map +1 -1
  65. package/dist/web/coValues/account.js +6 -6
  66. package/dist/web/coValues/account.js.map +1 -1
  67. package/dist/web/coValues/coList.js +2 -3
  68. package/dist/web/coValues/coList.js.map +1 -1
  69. package/dist/web/coValues/coMap.js +1 -1
  70. package/dist/web/coValues/coMap.js.map +1 -1
  71. package/dist/web/coValues/coStream.js +3 -5
  72. package/dist/web/coValues/coStream.js.map +1 -1
  73. package/dist/web/coValues/group.js +11 -11
  74. package/dist/web/coValues/group.js.map +1 -1
  75. package/dist/web/coreToCoValue.js +2 -2
  76. package/dist/web/coreToCoValue.js.map +1 -1
  77. package/dist/web/crypto/PureJSCrypto.js +4 -4
  78. package/dist/web/crypto/PureJSCrypto.js.map +1 -1
  79. package/dist/web/crypto/WasmCrypto.js +5 -5
  80. package/dist/web/crypto/WasmCrypto.js.map +1 -1
  81. package/dist/web/crypto/crypto.js.map +1 -1
  82. package/dist/web/exports.js +12 -12
  83. package/dist/web/exports.js.map +1 -1
  84. package/dist/web/ids.js.map +1 -1
  85. package/dist/web/jsonStringify.js.map +1 -1
  86. package/dist/web/localNode.js +6 -8
  87. package/dist/web/localNode.js.map +1 -1
  88. package/dist/web/permissions.js +4 -7
  89. package/dist/web/permissions.js.map +1 -1
  90. package/dist/web/priority.js.map +1 -1
  91. package/dist/web/storage/FileSystem.js.map +1 -1
  92. package/dist/web/storage/chunksAndKnownStates.js +2 -4
  93. package/dist/web/storage/chunksAndKnownStates.js.map +1 -1
  94. package/dist/web/storage/index.js +7 -16
  95. package/dist/web/storage/index.js.map +1 -1
  96. package/dist/web/streamUtils.js.map +1 -1
  97. package/dist/web/sync.js +6 -8
  98. package/dist/web/sync.js.map +1 -1
  99. package/dist/web/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -1
  100. package/dist/web/typeUtils/expectGroup.js.map +1 -1
  101. package/dist/web/typeUtils/isAccountID.js.map +1 -1
  102. package/dist/web/typeUtils/isCoValue.js +1 -1
  103. package/dist/web/typeUtils/isCoValue.js.map +1 -1
  104. package/package.json +4 -14
  105. package/src/PeerKnownStates.ts +91 -89
  106. package/src/PeerState.ts +72 -69
  107. package/src/PriorityBasedMessageQueue.ts +42 -49
  108. package/src/base64url.test.ts +24 -24
  109. package/src/base64url.ts +44 -45
  110. package/src/coValue.ts +45 -45
  111. package/src/coValueCore.ts +746 -785
  112. package/src/coValueState.ts +82 -72
  113. package/src/coValues/account.ts +143 -150
  114. package/src/coValues/coList.ts +520 -522
  115. package/src/coValues/coMap.ts +283 -285
  116. package/src/coValues/coStream.ts +320 -324
  117. package/src/coValues/group.ts +306 -305
  118. package/src/coreToCoValue.ts +28 -31
  119. package/src/crypto/PureJSCrypto.ts +188 -194
  120. package/src/crypto/WasmCrypto.ts +236 -254
  121. package/src/crypto/crypto.ts +302 -309
  122. package/src/exports.ts +116 -116
  123. package/src/ids.ts +9 -9
  124. package/src/jsonStringify.ts +46 -46
  125. package/src/jsonValue.ts +24 -10
  126. package/src/localNode.ts +635 -660
  127. package/src/media.ts +3 -3
  128. package/src/permissions.ts +272 -278
  129. package/src/priority.ts +21 -19
  130. package/src/storage/FileSystem.ts +91 -99
  131. package/src/storage/chunksAndKnownStates.ts +110 -115
  132. package/src/storage/index.ts +466 -497
  133. package/src/streamUtils.ts +60 -60
  134. package/src/sync.ts +593 -615
  135. package/src/tests/PeerKnownStates.test.ts +38 -34
  136. package/src/tests/PeerState.test.ts +101 -64
  137. package/src/tests/PriorityBasedMessageQueue.test.ts +91 -91
  138. package/src/tests/account.test.ts +59 -59
  139. package/src/tests/coList.test.ts +65 -65
  140. package/src/tests/coMap.test.ts +137 -137
  141. package/src/tests/coStream.test.ts +254 -257
  142. package/src/tests/coValueCore.test.ts +153 -156
  143. package/src/tests/crypto.test.ts +136 -144
  144. package/src/tests/cryptoImpl.test.ts +205 -197
  145. package/src/tests/group.test.ts +24 -24
  146. package/src/tests/permissions.test.ts +1306 -1371
  147. package/src/tests/priority.test.ts +65 -82
  148. package/src/tests/sync.test.ts +1300 -1291
  149. package/src/tests/testUtils.ts +52 -53
  150. package/src/typeUtils/accountOrAgentIDfromSessionID.ts +4 -4
  151. package/src/typeUtils/expectGroup.ts +9 -9
  152. package/src/typeUtils/isAccountID.ts +1 -1
  153. package/src/typeUtils/isCoValue.ts +9 -9
  154. package/tsconfig.json +4 -6
  155. package/tsconfig.native.json +9 -11
  156. package/tsconfig.web.json +4 -10
  157. package/.eslintrc.cjs +0 -25
  158. package/.prettierrc.js +0 -9
package/src/coValue.ts CHANGED
@@ -1,68 +1,68 @@
1
- import { JsonObject, JsonValue } from "./jsonValue.js";
2
- import { RawCoID } from "./ids.js";
1
+ import { CoValueCore } from "./coValueCore.js";
2
+ import { RawProfile as Profile, RawAccount } from "./coValues/account.js";
3
+ import { RawCoList } from "./coValues/coList.js";
3
4
  import { RawCoMap } from "./coValues/coMap.js";
4
5
  import { RawBinaryCoStream, RawCoStream } from "./coValues/coStream.js";
5
- import { RawCoList } from "./coValues/coList.js";
6
- import { CoValueCore } from "./coValueCore.js";
7
6
  import { RawGroup } from "./coValues/group.js";
8
- import { RawAccount, RawProfile as Profile } from "./coValues/account.js";
7
+ import { RawCoID } from "./ids.js";
8
+ import { JsonObject, JsonValue } from "./jsonValue.js";
9
9
 
10
10
  export type CoID<T extends RawCoValue> = RawCoID & {
11
- readonly __type: T;
11
+ readonly __type: T;
12
12
  };
13
13
 
14
14
  export interface RawCoValue {
15
- /** The `CoValue`'s (precisely typed) `CoID` */
16
- id: CoID<this>;
17
- core: CoValueCore;
18
- /** Specifies which kind of `CoValue` this is */
19
- type: string;
20
- /** The `CoValue`'s (precisely typed) static metadata */
21
- headerMeta: JsonObject | null;
22
- /** The `Group` this `CoValue` belongs to (determining permissions) */
23
- group: RawGroup;
24
- /** Returns an immutable JSON presentation of this `CoValue` */
25
- toJSON(): JsonValue;
26
- atTime(time: number): this;
27
- /** Lets you subscribe to future updates to this CoValue (whether made locally or by other users).
28
- *
29
- * Takes a listener function that will be called with the current state for each update.
30
- *
31
- * Returns an unsubscribe function.
32
- *
33
- * Used internally by `useTelepathicData()` for reactive updates on changes to a `CoValue`. */
34
- subscribe(listener: (coValue: this) => void): () => void;
15
+ /** The `CoValue`'s (precisely typed) `CoID` */
16
+ id: CoID<this>;
17
+ core: CoValueCore;
18
+ /** Specifies which kind of `CoValue` this is */
19
+ type: string;
20
+ /** The `CoValue`'s (precisely typed) static metadata */
21
+ headerMeta: JsonObject | null;
22
+ /** The `Group` this `CoValue` belongs to (determining permissions) */
23
+ group: RawGroup;
24
+ /** Returns an immutable JSON presentation of this `CoValue` */
25
+ toJSON(): JsonValue;
26
+ atTime(time: number): this;
27
+ /** Lets you subscribe to future updates to this CoValue (whether made locally or by other users).
28
+ *
29
+ * Takes a listener function that will be called with the current state for each update.
30
+ *
31
+ * Returns an unsubscribe function.
32
+ *
33
+ * Used internally by `useTelepathicData()` for reactive updates on changes to a `CoValue`. */
34
+ subscribe(listener: (coValue: this) => void): () => void;
35
35
  }
36
36
 
37
37
  export type AnyRawCoValue =
38
- | RawCoMap
39
- | RawGroup
40
- | RawAccount
41
- | Profile
42
- | RawCoList
43
- | RawCoStream
44
- | RawBinaryCoStream;
38
+ | RawCoMap
39
+ | RawGroup
40
+ | RawAccount
41
+ | Profile
42
+ | RawCoList
43
+ | RawCoStream
44
+ | RawBinaryCoStream;
45
45
 
46
46
  export function expectMap(content: RawCoValue): RawCoMap {
47
- if (content.type !== "comap") {
48
- throw new Error("Expected map");
49
- }
47
+ if (content.type !== "comap") {
48
+ throw new Error("Expected map");
49
+ }
50
50
 
51
- return content as RawCoMap;
51
+ return content as RawCoMap;
52
52
  }
53
53
 
54
54
  export function expectList(content: RawCoValue): RawCoList {
55
- if (content.type !== "colist") {
56
- throw new Error("Expected list");
57
- }
55
+ if (content.type !== "colist") {
56
+ throw new Error("Expected list");
57
+ }
58
58
 
59
- return content as RawCoList;
59
+ return content as RawCoList;
60
60
  }
61
61
 
62
62
  export function expectStream(content: RawCoValue): RawCoStream {
63
- if (content.type !== "costream") {
64
- throw new Error("Expected stream");
65
- }
63
+ if (content.type !== "costream") {
64
+ throw new Error("Expected stream");
65
+ }
66
66
 
67
- return content as RawCoStream;
67
+ return content as RawCoStream;
68
68
  }