cojson 0.8.0 → 0.8.3

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 (209) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +6 -0
  3. package/dist/native/PeerState.js.map +1 -0
  4. package/dist/native/PriorityBasedMessageQueue.js.map +1 -0
  5. package/dist/native/base64url.js.map +1 -0
  6. package/dist/native/base64url.test.js.map +1 -0
  7. package/dist/native/coValue.js.map +1 -0
  8. package/dist/native/coValueCore.js.map +1 -0
  9. package/dist/native/coValues/account.js.map +1 -0
  10. package/dist/native/coValues/coList.js.map +1 -0
  11. package/dist/native/coValues/coMap.js.map +1 -0
  12. package/dist/native/coValues/coStream.js.map +1 -0
  13. package/dist/native/coValues/group.js.map +1 -0
  14. package/dist/native/coreToCoValue.js.map +1 -0
  15. package/dist/{crypto → native/crypto}/PureJSCrypto.js +4 -0
  16. package/dist/native/crypto/PureJSCrypto.js.map +1 -0
  17. package/dist/{crypto → native/crypto}/crypto.js +1 -1
  18. package/dist/native/crypto/crypto.js.map +1 -0
  19. package/dist/native/ids.js.map +1 -0
  20. package/dist/{index.js → native/index.native.js} +3 -4
  21. package/dist/native/index.native.js.map +1 -0
  22. package/dist/native/jsonStringify.js.map +1 -0
  23. package/dist/{jsonValue.js.map → native/jsonValue.js.map} +1 -1
  24. package/dist/{localNode.js → native/localNode.js} +38 -32
  25. package/dist/native/localNode.js.map +1 -0
  26. package/dist/native/media.js.map +1 -0
  27. package/dist/native/permissions.js.map +1 -0
  28. package/dist/native/priority.js.map +1 -0
  29. package/dist/native/storage/FileSystem.js.map +1 -0
  30. package/dist/{storage → native/storage}/chunksAndKnownStates.js +1 -1
  31. package/dist/native/storage/chunksAndKnownStates.js.map +1 -0
  32. package/dist/native/storage/index.js.map +1 -0
  33. package/dist/native/streamUtils.js.map +1 -0
  34. package/dist/native/sync.js.map +1 -0
  35. package/dist/native/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -0
  36. package/dist/native/typeUtils/expectGroup.js.map +1 -0
  37. package/dist/native/typeUtils/isAccountID.js.map +1 -0
  38. package/dist/native/typeUtils/isCoValue.js.map +1 -0
  39. package/dist/web/PeerState.js +66 -0
  40. package/dist/web/PeerState.js.map +1 -0
  41. package/dist/web/PriorityBasedMessageQueue.js +51 -0
  42. package/dist/web/PriorityBasedMessageQueue.js.map +1 -0
  43. package/dist/web/base64url.js +59 -0
  44. package/dist/web/base64url.js.map +1 -0
  45. package/dist/web/base64url.test.js +25 -0
  46. package/dist/web/base64url.test.js.map +1 -0
  47. package/dist/web/coValue.js +19 -0
  48. package/dist/web/coValue.js.map +1 -0
  49. package/dist/web/coValueCore.js +693 -0
  50. package/dist/web/coValueCore.js.map +1 -0
  51. package/dist/web/coValues/account.js +96 -0
  52. package/dist/web/coValues/account.js.map +1 -0
  53. package/dist/web/coValues/coList.js +393 -0
  54. package/dist/web/coValues/coList.js.map +1 -0
  55. package/dist/web/coValues/coMap.js +197 -0
  56. package/dist/web/coValues/coMap.js.map +1 -0
  57. package/dist/web/coValues/coStream.js +220 -0
  58. package/dist/web/coValues/coStream.js.map +1 -0
  59. package/dist/web/coValues/group.js +250 -0
  60. package/dist/web/coValues/group.js.map +1 -0
  61. package/dist/web/coreToCoValue.js +42 -0
  62. package/dist/web/coreToCoValue.js.map +1 -0
  63. package/dist/web/crypto/PureJSCrypto.js +93 -0
  64. package/dist/web/crypto/PureJSCrypto.js.map +1 -0
  65. package/dist/{crypto → web/crypto}/WasmCrypto.js +3 -0
  66. package/dist/web/crypto/WasmCrypto.js.map +1 -0
  67. package/dist/web/crypto/crypto.js +154 -0
  68. package/dist/web/crypto/crypto.js.map +1 -0
  69. package/dist/web/ids.js +17 -0
  70. package/dist/web/ids.js.map +1 -0
  71. package/dist/web/index.web.js +40 -0
  72. package/dist/web/index.web.js.map +1 -0
  73. package/dist/web/jsonStringify.js +57 -0
  74. package/dist/web/jsonStringify.js.map +1 -0
  75. package/dist/web/jsonValue.js +2 -0
  76. package/dist/web/jsonValue.js.map +1 -0
  77. package/dist/web/localNode.js +442 -0
  78. package/dist/web/localNode.js.map +1 -0
  79. package/dist/web/media.js +2 -0
  80. package/dist/web/media.js.map +1 -0
  81. package/dist/web/permissions.js +206 -0
  82. package/dist/web/permissions.js.map +1 -0
  83. package/dist/web/priority.js +31 -0
  84. package/dist/web/priority.js.map +1 -0
  85. package/dist/web/storage/FileSystem.js +58 -0
  86. package/dist/web/storage/FileSystem.js.map +1 -0
  87. package/dist/web/storage/chunksAndKnownStates.js +100 -0
  88. package/dist/web/storage/chunksAndKnownStates.js.map +1 -0
  89. package/dist/web/storage/index.js +348 -0
  90. package/dist/web/storage/index.js.map +1 -0
  91. package/dist/web/streamUtils.js +41 -0
  92. package/dist/web/streamUtils.js.map +1 -0
  93. package/dist/web/sync.js +504 -0
  94. package/dist/web/sync.js.map +1 -0
  95. package/dist/web/typeUtils/accountOrAgentIDfromSessionID.js +5 -0
  96. package/dist/web/typeUtils/accountOrAgentIDfromSessionID.js.map +1 -0
  97. package/dist/web/typeUtils/expectGroup.js +13 -0
  98. package/dist/web/typeUtils/expectGroup.js.map +1 -0
  99. package/dist/web/typeUtils/isAccountID.js +4 -0
  100. package/dist/web/typeUtils/isAccountID.js.map +1 -0
  101. package/dist/web/typeUtils/isCoValue.js +11 -0
  102. package/dist/web/typeUtils/isCoValue.js.map +1 -0
  103. package/package.json +25 -8
  104. package/src/coValue.ts +1 -1
  105. package/src/coValueCore.ts +4 -1
  106. package/src/coValues/account.ts +9 -3
  107. package/src/crypto/PureJSCrypto.ts +5 -0
  108. package/src/crypto/WasmCrypto.ts +4 -0
  109. package/src/crypto/crypto.ts +7 -2
  110. package/src/{index.ts → index.native.ts} +4 -5
  111. package/src/index.web.ts +152 -0
  112. package/src/localNode.ts +61 -53
  113. package/src/storage/chunksAndKnownStates.ts +1 -1
  114. package/src/storage/index.ts +1 -1
  115. package/src/tests/coList.test.ts +1 -1
  116. package/src/tests/coMap.test.ts +1 -1
  117. package/src/tests/coStream.test.ts +2 -1
  118. package/src/tests/cryptoImpl.test.ts +24 -2
  119. package/src/tests/group.test.ts +6 -8
  120. package/src/tests/permissions.test.ts +66 -18
  121. package/src/tests/priority.test.ts +44 -15
  122. package/tsconfig.json +5 -4
  123. package/tsconfig.native.json +12 -0
  124. package/tsconfig.web.json +11 -0
  125. package/dist/PeerState.js.map +0 -1
  126. package/dist/PriorityBasedMessageQueue.js.map +0 -1
  127. package/dist/base64url.js.map +0 -1
  128. package/dist/base64url.test.js.map +0 -1
  129. package/dist/coValue.js.map +0 -1
  130. package/dist/coValueCore.js.map +0 -1
  131. package/dist/coValues/account.js.map +0 -1
  132. package/dist/coValues/coList.js.map +0 -1
  133. package/dist/coValues/coMap.js.map +0 -1
  134. package/dist/coValues/coStream.js.map +0 -1
  135. package/dist/coValues/group.js.map +0 -1
  136. package/dist/coreToCoValue.js.map +0 -1
  137. package/dist/crypto/PureJSCrypto.js.map +0 -1
  138. package/dist/crypto/WasmCrypto.js.map +0 -1
  139. package/dist/crypto/crypto.js.map +0 -1
  140. package/dist/ids.js.map +0 -1
  141. package/dist/index.js.map +0 -1
  142. package/dist/jsonStringify.js.map +0 -1
  143. package/dist/localNode.js.map +0 -1
  144. package/dist/media.js.map +0 -1
  145. package/dist/permissions.js.map +0 -1
  146. package/dist/priority.js.map +0 -1
  147. package/dist/storage/FileSystem.js.map +0 -1
  148. package/dist/storage/chunksAndKnownStates.js.map +0 -1
  149. package/dist/storage/index.js.map +0 -1
  150. package/dist/streamUtils.js.map +0 -1
  151. package/dist/sync.js.map +0 -1
  152. package/dist/tests/PeerState.test.js +0 -80
  153. package/dist/tests/PeerState.test.js.map +0 -1
  154. package/dist/tests/PriorityBasedMessageQueue.test.js +0 -97
  155. package/dist/tests/PriorityBasedMessageQueue.test.js.map +0 -1
  156. package/dist/tests/account.test.js +0 -58
  157. package/dist/tests/account.test.js.map +0 -1
  158. package/dist/tests/coList.test.js +0 -76
  159. package/dist/tests/coList.test.js.map +0 -1
  160. package/dist/tests/coMap.test.js +0 -136
  161. package/dist/tests/coMap.test.js.map +0 -1
  162. package/dist/tests/coStream.test.js +0 -205
  163. package/dist/tests/coStream.test.js.map +0 -1
  164. package/dist/tests/coValueCore.test.js +0 -124
  165. package/dist/tests/coValueCore.test.js.map +0 -1
  166. package/dist/tests/crypto.test.js +0 -118
  167. package/dist/tests/crypto.test.js.map +0 -1
  168. package/dist/tests/cryptoImpl.test.js +0 -113
  169. package/dist/tests/cryptoImpl.test.js.map +0 -1
  170. package/dist/tests/group.test.js +0 -34
  171. package/dist/tests/group.test.js.map +0 -1
  172. package/dist/tests/permissions.test.js +0 -1059
  173. package/dist/tests/permissions.test.js.map +0 -1
  174. package/dist/tests/priority.test.js +0 -61
  175. package/dist/tests/priority.test.js.map +0 -1
  176. package/dist/tests/sync.test.js +0 -1186
  177. package/dist/tests/sync.test.js.map +0 -1
  178. package/dist/tests/testUtils.js +0 -59
  179. package/dist/tests/testUtils.js.map +0 -1
  180. package/dist/typeUtils/accountOrAgentIDfromSessionID.js.map +0 -1
  181. package/dist/typeUtils/expectGroup.js.map +0 -1
  182. package/dist/typeUtils/isAccountID.js.map +0 -1
  183. package/dist/typeUtils/isCoValue.js.map +0 -1
  184. /package/dist/{PeerState.js → native/PeerState.js} +0 -0
  185. /package/dist/{PriorityBasedMessageQueue.js → native/PriorityBasedMessageQueue.js} +0 -0
  186. /package/dist/{base64url.js → native/base64url.js} +0 -0
  187. /package/dist/{base64url.test.js → native/base64url.test.js} +0 -0
  188. /package/dist/{coValue.js → native/coValue.js} +0 -0
  189. /package/dist/{coValueCore.js → native/coValueCore.js} +0 -0
  190. /package/dist/{coValues → native/coValues}/account.js +0 -0
  191. /package/dist/{coValues → native/coValues}/coList.js +0 -0
  192. /package/dist/{coValues → native/coValues}/coMap.js +0 -0
  193. /package/dist/{coValues → native/coValues}/coStream.js +0 -0
  194. /package/dist/{coValues → native/coValues}/group.js +0 -0
  195. /package/dist/{coreToCoValue.js → native/coreToCoValue.js} +0 -0
  196. /package/dist/{ids.js → native/ids.js} +0 -0
  197. /package/dist/{jsonStringify.js → native/jsonStringify.js} +0 -0
  198. /package/dist/{jsonValue.js → native/jsonValue.js} +0 -0
  199. /package/dist/{media.js → native/media.js} +0 -0
  200. /package/dist/{permissions.js → native/permissions.js} +0 -0
  201. /package/dist/{priority.js → native/priority.js} +0 -0
  202. /package/dist/{storage → native/storage}/FileSystem.js +0 -0
  203. /package/dist/{storage → native/storage}/index.js +0 -0
  204. /package/dist/{streamUtils.js → native/streamUtils.js} +0 -0
  205. /package/dist/{sync.js → native/sync.js} +0 -0
  206. /package/dist/{typeUtils → native/typeUtils}/accountOrAgentIDfromSessionID.js +0 -0
  207. /package/dist/{typeUtils → native/typeUtils}/expectGroup.js +0 -0
  208. /package/dist/{typeUtils → native/typeUtils}/isAccountID.js +0 -0
  209. /package/dist/{typeUtils → native/typeUtils}/isCoValue.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coValueCore.js","sourceRoot":"","sources":["../../src/coValueCore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { RawCoMap } from "./coMap.js";
2
+ import { RawGroup } from "./group.js";
3
+ import { err, ok } from "neverthrow";
4
+ export function accountHeaderForInitialAgentSecret(agentSecret, crypto) {
5
+ const agent = crypto.getAgentID(agentSecret);
6
+ return {
7
+ type: "comap",
8
+ ruleset: { type: "group", initialAdmin: agent },
9
+ meta: {
10
+ type: "account",
11
+ },
12
+ createdAt: null,
13
+ uniqueness: null,
14
+ };
15
+ }
16
+ export class RawAccount extends RawGroup {
17
+ currentAgentID() {
18
+ if (this._cachedCurrentAgentID) {
19
+ return ok(this._cachedCurrentAgentID);
20
+ }
21
+ const agents = this.keys().filter((k) => k.startsWith("sealer_"));
22
+ if (agents.length !== 1) {
23
+ return err({
24
+ type: "InvalidAccountAgentID",
25
+ reason: "Account has " + agents.length + " agents",
26
+ });
27
+ }
28
+ this._cachedCurrentAgentID = agents[0];
29
+ return ok(agents[0]);
30
+ }
31
+ }
32
+ /** @hidden */
33
+ export class RawControlledAccount extends RawAccount {
34
+ constructor(core, agentSecret) {
35
+ super(core);
36
+ this.agentSecret = agentSecret;
37
+ this.crypto = core.node.crypto;
38
+ }
39
+ /**
40
+ * Creates a new group (with the current account as the group's first admin).
41
+ * @category 1. High-level
42
+ */
43
+ createGroup(uniqueness = this.core.crypto.createdNowUnique()) {
44
+ return this.core.node.createGroup(uniqueness);
45
+ }
46
+ async acceptInvite(groupOrOwnedValueID, inviteSecret) {
47
+ return this.core.node.acceptInvite(groupOrOwnedValueID, inviteSecret);
48
+ }
49
+ currentAgentID() {
50
+ if (this._cachedCurrentAgentID) {
51
+ return ok(this._cachedCurrentAgentID);
52
+ }
53
+ const agentID = this.crypto.getAgentID(this.agentSecret);
54
+ this._cachedCurrentAgentID = agentID;
55
+ return ok(agentID);
56
+ }
57
+ currentSignerID() {
58
+ return this.currentAgentID().map((id) => this.crypto.getAgentSignerID(id));
59
+ }
60
+ currentSignerSecret() {
61
+ return this.crypto.getAgentSignerSecret(this.agentSecret);
62
+ }
63
+ currentSealerID() {
64
+ return this.currentAgentID().map((id) => this.crypto.getAgentSealerID(id));
65
+ }
66
+ currentSealerSecret() {
67
+ return this.crypto.getAgentSealerSecret(this.agentSecret);
68
+ }
69
+ }
70
+ export class ControlledAgent {
71
+ constructor(agentSecret, crypto) {
72
+ this.agentSecret = agentSecret;
73
+ this.crypto = crypto;
74
+ }
75
+ get id() {
76
+ return this.crypto.getAgentID(this.agentSecret);
77
+ }
78
+ currentAgentID() {
79
+ return ok(this.crypto.getAgentID(this.agentSecret));
80
+ }
81
+ currentSignerID() {
82
+ return this.currentAgentID().map((id) => this.crypto.getAgentSignerID(id));
83
+ }
84
+ currentSignerSecret() {
85
+ return this.crypto.getAgentSignerSecret(this.agentSecret);
86
+ }
87
+ currentSealerID() {
88
+ return this.currentAgentID().map((id) => this.crypto.getAgentSealerID(id));
89
+ }
90
+ currentSealerSecret() {
91
+ return this.crypto.getAgentSealerSecret(this.agentSecret);
92
+ }
93
+ }
94
+ export class RawProfile extends RawCoMap {
95
+ }
96
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/coValues/account.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAG7C,MAAM,UAAU,kCAAkC,CAC9C,WAAwB,EACxB,MAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7C,OAAO;QACH,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;QAC/C,IAAI,EAAE;YACF,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACnB,CAAC;AACN,CAAC;AAOD,MAAM,OAAO,UAEX,SAAQ,QAAc;IAGpB,cAAc;QACV,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAClD,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAC1B,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;gBACP,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS;aACrD,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1B,CAAC;CACJ;AAaD,cAAc;AACd,MAAM,OAAO,oBACT,SAAQ,UAAgB;IAMxB,YAAY,IAAiB,EAAE,WAAwB;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,WAAW,CACP,aAAgC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;QAEnE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CACd,mBAA4B,EAC5B,YAA0B;QAE1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACrC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CACnC,CAAC;IACN,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CACnC,CAAC;IACN,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;CACJ;AAED,MAAM,OAAO,eAAe;IACxB,YACW,WAAwB,EACxB,MAAsB;QADtB,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAgB;IAC9B,CAAC;IAEJ,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,cAAc;QACV,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CACnC,CAAC;IACN,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CACnC,CAAC;IACN,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;CACJ;AASD,MAAM,OAAO,UAGX,SAAQ,QAAqB;CAAG"}
@@ -0,0 +1,393 @@
1
+ import { isCoValue } from "../typeUtils/isCoValue.js";
2
+ import { accountOrAgentIDfromSessionID } from "../typeUtils/accountOrAgentIDfromSessionID.js";
3
+ export class RawCoListView {
4
+ /** @internal */
5
+ constructor(core) {
6
+ /** @category 6. Meta */
7
+ this.type = "colist";
8
+ this.id = core.id;
9
+ this.core = core;
10
+ this.afterStart = [];
11
+ this.beforeEnd = [];
12
+ this.insertions = {};
13
+ this.deletionsByInsertion = {};
14
+ this.insertions = {};
15
+ this.deletionsByInsertion = {};
16
+ this.afterStart = [];
17
+ this.beforeEnd = [];
18
+ for (const { txID, changes, madeAt, } of this.core.getValidSortedTransactions()) {
19
+ for (const [changeIdx, changeUntyped] of changes.entries()) {
20
+ const change = changeUntyped;
21
+ if (change.op === "pre" || change.op === "app") {
22
+ let sessionEntry = this.insertions[txID.sessionID];
23
+ if (!sessionEntry) {
24
+ sessionEntry = {};
25
+ this.insertions[txID.sessionID] = sessionEntry;
26
+ }
27
+ let txEntry = sessionEntry[txID.txIndex];
28
+ if (!txEntry) {
29
+ txEntry = {};
30
+ sessionEntry[txID.txIndex] = txEntry;
31
+ }
32
+ txEntry[changeIdx] = {
33
+ madeAt,
34
+ predecessors: [],
35
+ successors: [],
36
+ ...change,
37
+ };
38
+ if (change.op === "pre") {
39
+ if (change.before === "end") {
40
+ this.beforeEnd.push({
41
+ ...txID,
42
+ changeIdx,
43
+ });
44
+ }
45
+ else {
46
+ const beforeEntry = this.insertions[change.before.sessionID]?.[change.before.txIndex]?.[change.before.changeIdx];
47
+ if (!beforeEntry) {
48
+ // console.error(
49
+ // "Insertion before missing op " +
50
+ // change.before
51
+ // );
52
+ continue;
53
+ }
54
+ beforeEntry.predecessors.splice(0, 0, {
55
+ ...txID,
56
+ changeIdx,
57
+ });
58
+ }
59
+ }
60
+ else {
61
+ if (change.after === "start") {
62
+ this.afterStart.push({
63
+ ...txID,
64
+ changeIdx,
65
+ });
66
+ }
67
+ else {
68
+ const afterEntry = this.insertions[change.after.sessionID]?.[change.after.txIndex]?.[change.after.changeIdx];
69
+ if (!afterEntry) {
70
+ // console.error(
71
+ // "Insertion after missing op " + change.after
72
+ // );
73
+ continue;
74
+ }
75
+ afterEntry.successors.push({
76
+ ...txID,
77
+ changeIdx,
78
+ });
79
+ }
80
+ }
81
+ }
82
+ else if (change.op === "del") {
83
+ let sessionEntry = this.deletionsByInsertion[change.insertion.sessionID];
84
+ if (!sessionEntry) {
85
+ sessionEntry = {};
86
+ this.deletionsByInsertion[change.insertion.sessionID] =
87
+ sessionEntry;
88
+ }
89
+ let txEntry = sessionEntry[change.insertion.txIndex];
90
+ if (!txEntry) {
91
+ txEntry = {};
92
+ sessionEntry[change.insertion.txIndex] = txEntry;
93
+ }
94
+ let changeEntry = txEntry[change.insertion.changeIdx];
95
+ if (!changeEntry) {
96
+ changeEntry = [];
97
+ txEntry[change.insertion.changeIdx] = changeEntry;
98
+ }
99
+ changeEntry.push({
100
+ madeAt,
101
+ deletionID: {
102
+ ...txID,
103
+ changeIdx,
104
+ },
105
+ ...change,
106
+ });
107
+ }
108
+ else {
109
+ throw new Error("Unknown list operation " +
110
+ change.op);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ /** @category 6. Meta */
116
+ get headerMeta() {
117
+ return this.core.header.meta;
118
+ }
119
+ /** @category 6. Meta */
120
+ get group() {
121
+ return this.core.getGroup();
122
+ }
123
+ /**
124
+ * Not yet implemented
125
+ *
126
+ * @category 4. Time travel
127
+ */
128
+ atTime(_time) {
129
+ throw new Error("Not yet implemented");
130
+ }
131
+ /**
132
+ * Get the item currently at `idx`.
133
+ *
134
+ * @category 1. Reading
135
+ */
136
+ get(idx) {
137
+ const entry = this.entries()[idx];
138
+ if (!entry) {
139
+ return undefined;
140
+ }
141
+ return entry.value;
142
+ }
143
+ /**
144
+ * Returns the current items in the CoList as an array.
145
+ *
146
+ * @category 1. Reading
147
+ **/
148
+ asArray() {
149
+ return this.entries().map((entry) => entry.value);
150
+ }
151
+ /** @internal */
152
+ entries() {
153
+ if (this._cachedEntries) {
154
+ return this._cachedEntries;
155
+ }
156
+ const arr = this.entriesUncached();
157
+ this._cachedEntries = arr;
158
+ return arr;
159
+ }
160
+ /** @internal */
161
+ entriesUncached() {
162
+ const arr = [];
163
+ for (const opID of this.afterStart) {
164
+ this.fillArrayFromOpID(opID, arr);
165
+ }
166
+ for (const opID of this.beforeEnd) {
167
+ this.fillArrayFromOpID(opID, arr);
168
+ }
169
+ return arr;
170
+ }
171
+ /** @internal */
172
+ fillArrayFromOpID(opID, arr) {
173
+ const entry = this.insertions[opID.sessionID]?.[opID.txIndex]?.[opID.changeIdx];
174
+ if (!entry) {
175
+ throw new Error("Missing op " + opID);
176
+ }
177
+ for (const predecessor of entry.predecessors) {
178
+ this.fillArrayFromOpID(predecessor, arr);
179
+ }
180
+ const deleted = (this.deletionsByInsertion[opID.sessionID]?.[opID.txIndex]?.[opID.changeIdx]?.length || 0) > 0;
181
+ if (!deleted) {
182
+ arr.push({
183
+ value: entry.value,
184
+ madeAt: entry.madeAt,
185
+ opID,
186
+ });
187
+ }
188
+ // traverse successors in reverse for correct insertion behavior
189
+ for (let i = entry.successors.length - 1; i >= 0; i--) {
190
+ const successor = entry.successors[i];
191
+ this.fillArrayFromOpID(successor, arr);
192
+ }
193
+ }
194
+ /**
195
+ * Returns the current items in the CoList as an array. (alias of `asArray`)
196
+ *
197
+ * @category 1. Reading
198
+ */
199
+ toJSON() {
200
+ return this.asArray();
201
+ }
202
+ /** @category 5. Edit history */
203
+ editAt(idx) {
204
+ const entry = this.entries()[idx];
205
+ if (!entry) {
206
+ return undefined;
207
+ }
208
+ const madeAt = new Date(entry.madeAt);
209
+ const by = accountOrAgentIDfromSessionID(entry.opID.sessionID);
210
+ const value = entry.value;
211
+ return {
212
+ by,
213
+ tx: {
214
+ sessionID: entry.opID.sessionID,
215
+ txIndex: entry.opID.txIndex,
216
+ },
217
+ at: madeAt,
218
+ value,
219
+ };
220
+ }
221
+ /** @category 5. Edit history */
222
+ deletionEdits() {
223
+ const edits = [];
224
+ for (const sessionID in this.deletionsByInsertion) {
225
+ const sessionEntry = this.deletionsByInsertion[sessionID];
226
+ for (const txIdx in sessionEntry) {
227
+ const txEntry = sessionEntry[Number(txIdx)];
228
+ for (const changeIdx in txEntry) {
229
+ const changeEntry = txEntry[Number(changeIdx)];
230
+ for (const deletion of changeEntry || []) {
231
+ const madeAt = new Date(deletion.madeAt);
232
+ const by = accountOrAgentIDfromSessionID(deletion.deletionID.sessionID);
233
+ edits.push({
234
+ by,
235
+ tx: deletion.deletionID,
236
+ at: madeAt,
237
+ });
238
+ }
239
+ }
240
+ }
241
+ }
242
+ return edits;
243
+ }
244
+ /** @category 3. Subscription */
245
+ subscribe(listener) {
246
+ return this.core.subscribe((content) => {
247
+ listener(content);
248
+ });
249
+ }
250
+ }
251
+ export class RawCoList extends RawCoListView {
252
+ /** Appends `item` after the item currently at index `after`.
253
+ *
254
+ * If `privacy` is `"private"` **(default)**, `item` is encrypted in the transaction, only readable by other members of the group this `CoList` belongs to. Not even sync servers can see the content in plaintext.
255
+ *
256
+ * If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
257
+ *
258
+ * @category 2. Editing
259
+ **/
260
+ append(item, after, privacy = "private") {
261
+ const entries = this.entries();
262
+ after =
263
+ after === undefined
264
+ ? entries.length > 0
265
+ ? entries.length - 1
266
+ : 0
267
+ : after;
268
+ let opIDBefore;
269
+ if (entries.length > 0) {
270
+ const entryBefore = entries[after];
271
+ if (!entryBefore) {
272
+ throw new Error("Invalid index " + after);
273
+ }
274
+ opIDBefore = entryBefore.opID;
275
+ }
276
+ else {
277
+ if (after !== 0) {
278
+ throw new Error("Invalid index " + after);
279
+ }
280
+ opIDBefore = "start";
281
+ }
282
+ this.core.makeTransaction([
283
+ {
284
+ op: "app",
285
+ value: isCoValue(item) ? item.id : item,
286
+ after: opIDBefore,
287
+ },
288
+ ], privacy);
289
+ const listAfter = new RawCoList(this.core);
290
+ this.afterStart = listAfter.afterStart;
291
+ this.beforeEnd = listAfter.beforeEnd;
292
+ this.insertions = listAfter.insertions;
293
+ this.deletionsByInsertion = listAfter.deletionsByInsertion;
294
+ this._cachedEntries = undefined;
295
+ }
296
+ /**
297
+ * Prepends `item` before the item currently at index `before`.
298
+ *
299
+ * If `privacy` is `"private"` **(default)**, `item` is encrypted in the transaction, only readable by other members of the group this `CoList` belongs to. Not even sync servers can see the content in plaintext.
300
+ *
301
+ * If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
302
+ *
303
+ * @category 2. Editing
304
+ */
305
+ prepend(item, before, privacy = "private") {
306
+ const entries = this.entries();
307
+ before = before === undefined ? 0 : before;
308
+ let opIDAfter;
309
+ if (entries.length > 0) {
310
+ const entryAfter = entries[before];
311
+ if (entryAfter) {
312
+ opIDAfter = entryAfter.opID;
313
+ }
314
+ else {
315
+ if (before !== entries.length) {
316
+ throw new Error("Invalid index " + before);
317
+ }
318
+ opIDAfter = "end";
319
+ }
320
+ }
321
+ else {
322
+ if (before !== 0) {
323
+ throw new Error("Invalid index " + before);
324
+ }
325
+ opIDAfter = "end";
326
+ }
327
+ this.core.makeTransaction([
328
+ {
329
+ op: "pre",
330
+ value: isCoValue(item) ? item.id : item,
331
+ before: opIDAfter,
332
+ },
333
+ ], privacy);
334
+ const listAfter = new RawCoList(this.core);
335
+ this.afterStart = listAfter.afterStart;
336
+ this.beforeEnd = listAfter.beforeEnd;
337
+ this.insertions = listAfter.insertions;
338
+ this.deletionsByInsertion = listAfter.deletionsByInsertion;
339
+ this._cachedEntries = undefined;
340
+ }
341
+ /** Deletes the item at index `at`.
342
+ *
343
+ * If `privacy` is `"private"` **(default)**, the fact of this deletion is encrypted in the transaction, only readable by other members of the group this `CoList` belongs to. Not even sync servers can see the content in plaintext.
344
+ *
345
+ * If `privacy` is `"trusting"`, the fact of this deletion is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
346
+ *
347
+ * @category 2. Editing
348
+ **/
349
+ delete(at, privacy = "private") {
350
+ const entries = this.entries();
351
+ const entry = entries[at];
352
+ if (!entry) {
353
+ throw new Error("Invalid index " + at);
354
+ }
355
+ this.core.makeTransaction([
356
+ {
357
+ op: "del",
358
+ insertion: entry.opID,
359
+ },
360
+ ], privacy);
361
+ const listAfter = new RawCoList(this.core);
362
+ this.afterStart = listAfter.afterStart;
363
+ this.beforeEnd = listAfter.beforeEnd;
364
+ this.insertions = listAfter.insertions;
365
+ this.deletionsByInsertion = listAfter.deletionsByInsertion;
366
+ this._cachedEntries = undefined;
367
+ }
368
+ replace(at, newItem, privacy = "private") {
369
+ const entries = this.entries();
370
+ const entry = entries[at];
371
+ if (!entry) {
372
+ throw new Error("Invalid index " + at);
373
+ }
374
+ this.core.makeTransaction([
375
+ {
376
+ op: "app",
377
+ value: isCoValue(newItem) ? newItem.id : newItem,
378
+ after: entry.opID,
379
+ },
380
+ {
381
+ op: "del",
382
+ insertion: entry.opID,
383
+ },
384
+ ], privacy);
385
+ const listAfter = new RawCoList(this.core);
386
+ this.afterStart = listAfter.afterStart;
387
+ this.beforeEnd = listAfter.beforeEnd;
388
+ this.insertions = listAfter.insertions;
389
+ this.deletionsByInsertion = listAfter.deletionsByInsertion;
390
+ this._cachedEntries = undefined;
391
+ }
392
+ }
393
+ //# sourceMappingURL=coList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coList.js","sourceRoot":"","sources":["../../../src/coValues/coList.ts"],"names":[],"mappings":"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"}