cojson 0.10.8 → 0.11.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 (180) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +20 -0
  3. package/dist/CoValuesStore.d.ts +12 -0
  4. package/dist/CoValuesStore.d.ts.map +1 -0
  5. package/dist/PeerKnownStates.d.ts +38 -0
  6. package/dist/PeerKnownStates.d.ts.map +1 -0
  7. package/dist/PeerState.d.ts +46 -0
  8. package/dist/PeerState.d.ts.map +1 -0
  9. package/dist/PriorityBasedMessageQueue.d.ts +18 -0
  10. package/dist/PriorityBasedMessageQueue.d.ts.map +1 -0
  11. package/dist/SyncStateManager.d.ts +20 -0
  12. package/dist/SyncStateManager.d.ts.map +1 -0
  13. package/dist/base64url.d.ts +3 -0
  14. package/dist/base64url.d.ts.map +1 -0
  15. package/dist/base64url.test.d.ts +2 -0
  16. package/dist/base64url.test.d.ts.map +1 -0
  17. package/dist/coValue.d.ts +52 -0
  18. package/dist/coValue.d.ts.map +1 -0
  19. package/dist/coValueCore.d.ts +143 -0
  20. package/dist/coValueCore.d.ts.map +1 -0
  21. package/dist/coValueCore.js +3 -9
  22. package/dist/coValueCore.js.map +1 -1
  23. package/dist/coValueState.d.ts +58 -0
  24. package/dist/coValueState.d.ts.map +1 -0
  25. package/dist/coValues/account.d.ts +69 -0
  26. package/dist/coValues/account.d.ts.map +1 -0
  27. package/dist/coValues/account.js +9 -10
  28. package/dist/coValues/account.js.map +1 -1
  29. package/dist/coValues/coList.d.ts +163 -0
  30. package/dist/coValues/coList.d.ts.map +1 -0
  31. package/dist/coValues/coMap.d.ts +142 -0
  32. package/dist/coValues/coMap.d.ts.map +1 -0
  33. package/dist/coValues/coPlainText.d.ts +33 -0
  34. package/dist/coValues/coPlainText.d.ts.map +1 -0
  35. package/dist/coValues/coStream.d.ts +109 -0
  36. package/dist/coValues/coStream.d.ts.map +1 -0
  37. package/dist/coValues/group.d.ts +143 -0
  38. package/dist/coValues/group.d.ts.map +1 -0
  39. package/dist/coValues/group.js +52 -6
  40. package/dist/coValues/group.js.map +1 -1
  41. package/dist/coreToCoValue.d.ts +15 -0
  42. package/dist/coreToCoValue.d.ts.map +1 -0
  43. package/dist/crypto/PureJSCrypto.d.ts +50 -0
  44. package/dist/crypto/PureJSCrypto.d.ts.map +1 -0
  45. package/dist/crypto/WasmCrypto.d.ts +49 -0
  46. package/dist/crypto/WasmCrypto.d.ts.map +1 -0
  47. package/dist/crypto/crypto.d.ts +142 -0
  48. package/dist/crypto/crypto.d.ts.map +1 -0
  49. package/dist/exports.d.ts +84 -0
  50. package/dist/exports.d.ts.map +1 -0
  51. package/dist/ids.d.ts +23 -0
  52. package/dist/ids.d.ts.map +1 -0
  53. package/dist/index.d.ts +2 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/jsonStringify.d.ts +7 -0
  56. package/dist/jsonStringify.d.ts.map +1 -0
  57. package/dist/jsonValue.d.ts +45 -0
  58. package/dist/jsonValue.d.ts.map +1 -0
  59. package/dist/localNode.d.ts +111 -0
  60. package/dist/localNode.d.ts.map +1 -0
  61. package/dist/localNode.js +3 -5
  62. package/dist/localNode.js.map +1 -1
  63. package/dist/logger.d.ts +33 -0
  64. package/dist/logger.d.ts.map +1 -0
  65. package/dist/media.d.ts +8 -0
  66. package/dist/media.d.ts.map +1 -0
  67. package/dist/permissions.d.ts +24 -0
  68. package/dist/permissions.d.ts.map +1 -0
  69. package/dist/permissions.js +5 -9
  70. package/dist/permissions.js.map +1 -1
  71. package/dist/priority.d.ts +19 -0
  72. package/dist/priority.d.ts.map +1 -0
  73. package/dist/storage/FileSystem.d.ts +37 -0
  74. package/dist/storage/FileSystem.d.ts.map +1 -0
  75. package/dist/storage/chunksAndKnownStates.d.ts +7 -0
  76. package/dist/storage/chunksAndKnownStates.d.ts.map +1 -0
  77. package/dist/storage/index.d.ts +52 -0
  78. package/dist/storage/index.d.ts.map +1 -0
  79. package/dist/streamUtils.d.ts +13 -0
  80. package/dist/streamUtils.d.ts.map +1 -0
  81. package/dist/sync.d.ts +97 -0
  82. package/dist/sync.d.ts.map +1 -0
  83. package/dist/tests/PeerKnownStates.test.d.ts +2 -0
  84. package/dist/tests/PeerKnownStates.test.d.ts.map +1 -0
  85. package/dist/tests/PeerKnownStates.test.js +82 -0
  86. package/dist/tests/PeerKnownStates.test.js.map +1 -0
  87. package/dist/tests/PeerState.test.d.ts +2 -0
  88. package/dist/tests/PeerState.test.d.ts.map +1 -0
  89. package/dist/tests/PeerState.test.js +188 -0
  90. package/dist/tests/PeerState.test.js.map +1 -0
  91. package/dist/tests/PriorityBasedMessageQueue.test.d.ts +2 -0
  92. package/dist/tests/PriorityBasedMessageQueue.test.d.ts.map +1 -0
  93. package/dist/tests/PriorityBasedMessageQueue.test.js +120 -0
  94. package/dist/tests/PriorityBasedMessageQueue.test.js.map +1 -0
  95. package/dist/tests/SyncStateManager.test.d.ts +2 -0
  96. package/dist/tests/SyncStateManager.test.d.ts.map +1 -0
  97. package/dist/tests/SyncStateManager.test.js +127 -0
  98. package/dist/tests/SyncStateManager.test.js.map +1 -0
  99. package/dist/tests/account.test.d.ts +2 -0
  100. package/dist/tests/account.test.d.ts.map +1 -0
  101. package/dist/tests/account.test.js +66 -0
  102. package/dist/tests/account.test.js.map +1 -0
  103. package/dist/tests/coList.test.d.ts +2 -0
  104. package/dist/tests/coList.test.d.ts.map +1 -0
  105. package/dist/tests/coList.test.js +120 -0
  106. package/dist/tests/coList.test.js.map +1 -0
  107. package/dist/tests/coMap.test.d.ts +2 -0
  108. package/dist/tests/coMap.test.d.ts.map +1 -0
  109. package/dist/tests/coMap.test.js +164 -0
  110. package/dist/tests/coMap.test.js.map +1 -0
  111. package/dist/tests/coPlainText.test.d.ts +2 -0
  112. package/dist/tests/coPlainText.test.d.ts.map +1 -0
  113. package/dist/tests/coPlainText.test.js +99 -0
  114. package/dist/tests/coPlainText.test.js.map +1 -0
  115. package/dist/tests/coStream.test.d.ts +2 -0
  116. package/dist/tests/coStream.test.d.ts.map +1 -0
  117. package/dist/tests/coStream.test.js +206 -0
  118. package/dist/tests/coStream.test.js.map +1 -0
  119. package/dist/tests/coValueCore.test.d.ts +2 -0
  120. package/dist/tests/coValueCore.test.d.ts.map +1 -0
  121. package/dist/tests/coValueCore.test.js +164 -0
  122. package/dist/tests/coValueCore.test.js.map +1 -0
  123. package/dist/tests/coValueState.test.d.ts +2 -0
  124. package/dist/tests/coValueState.test.d.ts.map +1 -0
  125. package/dist/tests/coValueState.test.js +364 -0
  126. package/dist/tests/coValueState.test.js.map +1 -0
  127. package/dist/tests/crypto.test.d.ts +2 -0
  128. package/dist/tests/crypto.test.d.ts.map +1 -0
  129. package/dist/tests/crypto.test.js +144 -0
  130. package/dist/tests/crypto.test.js.map +1 -0
  131. package/dist/tests/cryptoImpl.test.d.ts +2 -0
  132. package/dist/tests/cryptoImpl.test.d.ts.map +1 -0
  133. package/dist/tests/cryptoImpl.test.js +144 -0
  134. package/dist/tests/cryptoImpl.test.js.map +1 -0
  135. package/dist/tests/group.test.d.ts +2 -0
  136. package/dist/tests/group.test.d.ts.map +1 -0
  137. package/dist/tests/group.test.js +576 -0
  138. package/dist/tests/group.test.js.map +1 -0
  139. package/dist/tests/logger.test.d.ts +2 -0
  140. package/dist/tests/logger.test.d.ts.map +1 -0
  141. package/dist/tests/logger.test.js +118 -0
  142. package/dist/tests/logger.test.js.map +1 -0
  143. package/dist/tests/permissions.test.d.ts +2 -0
  144. package/dist/tests/permissions.test.d.ts.map +1 -0
  145. package/dist/tests/permissions.test.js +2051 -0
  146. package/dist/tests/permissions.test.js.map +1 -0
  147. package/dist/tests/priority.test.d.ts +2 -0
  148. package/dist/tests/priority.test.d.ts.map +1 -0
  149. package/dist/tests/priority.test.js +61 -0
  150. package/dist/tests/priority.test.js.map +1 -0
  151. package/dist/tests/sync.test.d.ts +2 -0
  152. package/dist/tests/sync.test.d.ts.map +1 -0
  153. package/dist/tests/sync.test.js +1548 -0
  154. package/dist/tests/sync.test.js.map +1 -0
  155. package/dist/tests/testUtils.d.ts +142 -0
  156. package/dist/tests/testUtils.d.ts.map +1 -0
  157. package/dist/tests/testUtils.js +315 -0
  158. package/dist/tests/testUtils.js.map +1 -0
  159. package/dist/typeUtils/accountOrAgentIDfromSessionID.d.ts +4 -0
  160. package/dist/typeUtils/accountOrAgentIDfromSessionID.d.ts.map +1 -0
  161. package/dist/typeUtils/expectGroup.d.ts +4 -0
  162. package/dist/typeUtils/expectGroup.d.ts.map +1 -0
  163. package/dist/typeUtils/isAccountID.d.ts +4 -0
  164. package/dist/typeUtils/isAccountID.d.ts.map +1 -0
  165. package/dist/typeUtils/isCoValue.d.ts +4 -0
  166. package/dist/typeUtils/isCoValue.d.ts.map +1 -0
  167. package/dist/utils.d.ts +5 -0
  168. package/dist/utils.d.ts.map +1 -0
  169. package/package.json +6 -6
  170. package/src/coValueCore.ts +3 -9
  171. package/src/coValues/account.ts +15 -15
  172. package/src/coValues/group.ts +85 -12
  173. package/src/jsonValue.ts +9 -5
  174. package/src/localNode.ts +3 -5
  175. package/src/permissions.ts +5 -15
  176. package/src/tests/coValueCore.test.ts +2 -2
  177. package/src/tests/group.test.ts +187 -0
  178. package/src/tests/permissions.test.ts +330 -57
  179. package/src/tests/testUtils.ts +4 -1
  180. package/tsconfig.json +4 -2
@@ -0,0 +1,69 @@
1
+ import { CoID, RawCoValue } from "../coValue.js";
2
+ import { CoValueCore, CoValueHeader, CoValueUniqueness } from "../coValueCore.js";
3
+ import { AgentSecret, CryptoProvider, SealerID, SealerSecret, SignerID, SignerSecret } from "../crypto/crypto.js";
4
+ import { AgentID } from "../ids.js";
5
+ import { JsonObject } from "../jsonValue.js";
6
+ import { LocalNode } from "../localNode.js";
7
+ import type { AccountRole } from "../permissions.js";
8
+ import { RawCoMap } from "./coMap.js";
9
+ import { InviteSecret, RawGroup } from "./group.js";
10
+ export declare function accountHeaderForInitialAgentSecret(agentSecret: AgentSecret, crypto: CryptoProvider): CoValueHeader;
11
+ export type InvalidAccountAgentIDError = {
12
+ type: "InvalidAccountAgentID";
13
+ reason: string;
14
+ };
15
+ export declare class RawAccount<Meta extends AccountMeta = AccountMeta> extends RawGroup<Meta> {
16
+ _cachedCurrentAgentID: AgentID | undefined;
17
+ currentAgentID(): AgentID;
18
+ createInvite(_: AccountRole): InviteSecret;
19
+ }
20
+ export interface ControlledAccountOrAgent {
21
+ id: RawAccountID | AgentID;
22
+ agentSecret: AgentSecret;
23
+ currentAgentID: () => AgentID;
24
+ currentSignerID: () => SignerID;
25
+ currentSignerSecret: () => SignerSecret;
26
+ currentSealerID: () => SealerID;
27
+ currentSealerSecret: () => SealerSecret;
28
+ }
29
+ /** @hidden */
30
+ export declare class RawControlledAccount<Meta extends AccountMeta = AccountMeta> extends RawAccount<Meta> implements ControlledAccountOrAgent {
31
+ agentSecret: AgentSecret;
32
+ crypto: CryptoProvider;
33
+ constructor(core: CoValueCore, agentSecret: AgentSecret);
34
+ /**
35
+ * Creates a new group (with the current account as the group's first admin).
36
+ * @category 1. High-level
37
+ */
38
+ createGroup(uniqueness?: CoValueUniqueness): RawGroup<JsonObject | null>;
39
+ acceptInvite<T extends RawCoValue>(groupOrOwnedValueID: CoID<T>, inviteSecret: InviteSecret): Promise<void>;
40
+ currentAgentID(): AgentID;
41
+ currentSignerID(): `signer_z${string}`;
42
+ currentSignerSecret(): SignerSecret;
43
+ currentSealerID(): `sealer_z${string}`;
44
+ currentSealerSecret(): SealerSecret;
45
+ }
46
+ export declare class ControlledAgent implements ControlledAccountOrAgent {
47
+ agentSecret: AgentSecret;
48
+ crypto: CryptoProvider;
49
+ constructor(agentSecret: AgentSecret, crypto: CryptoProvider);
50
+ get id(): AgentID;
51
+ currentAgentID(): `sealer_z${string}/signer_z${string}`;
52
+ currentSignerID(): `signer_z${string}`;
53
+ currentSignerSecret(): SignerSecret;
54
+ currentSealerID(): `sealer_z${string}`;
55
+ currentSealerSecret(): SealerSecret;
56
+ }
57
+ export type AccountMeta = {
58
+ type: "account";
59
+ };
60
+ export type RawAccountID = CoID<RawAccount>;
61
+ export type ProfileShape = {
62
+ name: string;
63
+ };
64
+ export declare class RawProfile<Shape extends ProfileShape = ProfileShape, Meta extends JsonObject | null = JsonObject | null> extends RawCoMap<Shape, Meta> {
65
+ }
66
+ export type RawAccountMigration<Meta extends AccountMeta = AccountMeta> = (account: RawControlledAccount<Meta>, localNode: LocalNode, creationProps?: {
67
+ name: string;
68
+ }) => void | Promise<void>;
69
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { ok } from "neverthrow";
2
1
  import { logger } from "../logger.js";
3
2
  import { RawCoMap } from "./coMap.js";
4
3
  import { RawGroup } from "./group.js";
@@ -17,7 +16,7 @@ export function accountHeaderForInitialAgentSecret(agentSecret, crypto) {
17
16
  export class RawAccount extends RawGroup {
18
17
  currentAgentID() {
19
18
  if (this._cachedCurrentAgentID) {
20
- return ok(this._cachedCurrentAgentID);
19
+ return this._cachedCurrentAgentID;
21
20
  }
22
21
  const agents = this.keys()
23
22
  .filter((k) => k.startsWith("sealer_"))
@@ -27,7 +26,7 @@ export class RawAccount extends RawGroup {
27
26
  logger.warn("Account has " + agents.length + " agents", { id: this.id });
28
27
  }
29
28
  this._cachedCurrentAgentID = agents[0];
30
- return ok(agents[0]);
29
+ return agents[0];
31
30
  }
32
31
  createInvite(_) {
33
32
  throw new Error("Cannot create invite from an account");
@@ -52,20 +51,20 @@ export class RawControlledAccount extends RawAccount {
52
51
  }
53
52
  currentAgentID() {
54
53
  if (this._cachedCurrentAgentID) {
55
- return ok(this._cachedCurrentAgentID);
54
+ return this._cachedCurrentAgentID;
56
55
  }
57
56
  const agentID = this.crypto.getAgentID(this.agentSecret);
58
57
  this._cachedCurrentAgentID = agentID;
59
- return ok(agentID);
58
+ return agentID;
60
59
  }
61
60
  currentSignerID() {
62
- return this.currentAgentID().map((id) => this.crypto.getAgentSignerID(id));
61
+ return this.crypto.getAgentSignerID(this.currentAgentID());
63
62
  }
64
63
  currentSignerSecret() {
65
64
  return this.crypto.getAgentSignerSecret(this.agentSecret);
66
65
  }
67
66
  currentSealerID() {
68
- return this.currentAgentID().map((id) => this.crypto.getAgentSealerID(id));
67
+ return this.crypto.getAgentSealerID(this.currentAgentID());
69
68
  }
70
69
  currentSealerSecret() {
71
70
  return this.crypto.getAgentSealerSecret(this.agentSecret);
@@ -80,16 +79,16 @@ export class ControlledAgent {
80
79
  return this.crypto.getAgentID(this.agentSecret);
81
80
  }
82
81
  currentAgentID() {
83
- return ok(this.crypto.getAgentID(this.agentSecret));
82
+ return this.crypto.getAgentID(this.agentSecret);
84
83
  }
85
84
  currentSignerID() {
86
- return this.currentAgentID().map((id) => this.crypto.getAgentSignerID(id));
85
+ return this.crypto.getAgentSignerID(this.currentAgentID());
87
86
  }
88
87
  currentSignerSecret() {
89
88
  return this.crypto.getAgentSignerSecret(this.agentSecret);
90
89
  }
91
90
  currentSealerID() {
92
- return this.currentAgentID().map((id) => this.crypto.getAgentSealerID(id));
91
+ return this.crypto.getAgentSealerID(this.currentAgentID());
93
92
  }
94
93
  currentSealerSecret() {
95
94
  return this.crypto.getAgentSealerSecret(this.agentSecret);
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { CoID, RawCoValue } from "../coValue.js";
2
+ import { CoValueCore } from "../coValueCore.js";
3
+ import { AgentID, SessionID, TransactionID } from "../ids.js";
4
+ import { JsonObject, JsonValue } from "../jsonValue.js";
5
+ import { RawAccountID } from "./account.js";
6
+ import { RawGroup } from "./group.js";
7
+ export type OpID = TransactionID & {
8
+ changeIdx: number;
9
+ };
10
+ export type InsertionOpPayload<T extends JsonValue> = {
11
+ op: "pre";
12
+ value: T;
13
+ before: OpID | "end";
14
+ } | {
15
+ op: "app";
16
+ value: T;
17
+ after: OpID | "start";
18
+ };
19
+ export type DeletionOpPayload = {
20
+ op: "del";
21
+ insertion: OpID;
22
+ };
23
+ export type ListOpPayload<T extends JsonValue> = InsertionOpPayload<T> | DeletionOpPayload;
24
+ type InsertionEntry<T extends JsonValue> = {
25
+ madeAt: number;
26
+ predecessors: OpID[];
27
+ successors: OpID[];
28
+ } & InsertionOpPayload<T>;
29
+ type DeletionEntry = {
30
+ madeAt: number;
31
+ deletionID: OpID;
32
+ } & DeletionOpPayload;
33
+ export declare class RawCoListView<Item extends JsonValue = JsonValue, Meta extends JsonObject | null = null> implements RawCoValue {
34
+ /** @category 6. Meta */
35
+ id: CoID<this>;
36
+ /** @category 6. Meta */
37
+ type: "colist" | "coplaintext";
38
+ /** @category 6. Meta */
39
+ core: CoValueCore;
40
+ /** @internal */
41
+ afterStart: OpID[];
42
+ /** @internal */
43
+ beforeEnd: OpID[];
44
+ /** @internal */
45
+ insertions: {
46
+ [sessionID: SessionID]: {
47
+ [txIdx: number]: {
48
+ [changeIdx: number]: InsertionEntry<Item>;
49
+ };
50
+ };
51
+ };
52
+ /** @internal */
53
+ deletionsByInsertion: {
54
+ [deletedSessionID: SessionID]: {
55
+ [deletedTxIdx: number]: {
56
+ [deletedChangeIdx: number]: DeletionEntry[];
57
+ };
58
+ };
59
+ };
60
+ /** @category 6. Meta */
61
+ readonly _item: Item;
62
+ /** @internal */
63
+ _cachedEntries?: {
64
+ value: Item;
65
+ madeAt: number;
66
+ opID: OpID;
67
+ }[];
68
+ /** @internal */
69
+ constructor(core: CoValueCore);
70
+ /** @category 6. Meta */
71
+ get headerMeta(): Meta;
72
+ /** @category 6. Meta */
73
+ get group(): RawGroup;
74
+ /**
75
+ * Not yet implemented
76
+ *
77
+ * @category 4. Time travel
78
+ */
79
+ atTime(_time: number): this;
80
+ /**
81
+ * Get the item currently at `idx`.
82
+ *
83
+ * @category 1. Reading
84
+ */
85
+ get(idx: number): Item | undefined;
86
+ /**
87
+ * Returns the current items in the CoList as an array.
88
+ *
89
+ * @category 1. Reading
90
+ **/
91
+ asArray(): Item[];
92
+ /** @internal */
93
+ entries(): {
94
+ value: Item;
95
+ madeAt: number;
96
+ opID: OpID;
97
+ }[];
98
+ /** @internal */
99
+ entriesUncached(): {
100
+ value: Item;
101
+ madeAt: number;
102
+ opID: OpID;
103
+ }[];
104
+ /** @internal */
105
+ private fillArrayFromOpID;
106
+ /**
107
+ * Returns the current items in the CoList as an array. (alias of `asArray`)
108
+ *
109
+ * @category 1. Reading
110
+ */
111
+ toJSON(): Item[];
112
+ /** @category 5. Edit history */
113
+ editAt(idx: number): {
114
+ by: RawAccountID | AgentID;
115
+ tx: TransactionID;
116
+ at: Date;
117
+ value: Item;
118
+ } | undefined;
119
+ /** @category 5. Edit history */
120
+ deletionEdits(): {
121
+ by: RawAccountID | AgentID;
122
+ tx: TransactionID;
123
+ at: Date;
124
+ }[];
125
+ /** @category 3. Subscription */
126
+ subscribe(listener: (coList: this) => void): () => void;
127
+ }
128
+ export declare class RawCoList<Item extends JsonValue = JsonValue, Meta extends JsonObject | null = JsonObject | null> extends RawCoListView<Item, Meta> implements RawCoValue {
129
+ /** Appends `item` after the item currently at index `after`.
130
+ *
131
+ * 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.
132
+ *
133
+ * If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
134
+ *
135
+ * @category 2. Editing
136
+ **/
137
+ append(item: Item, after?: number, privacy?: "private" | "trusting"): void;
138
+ appendItems(items: Item[], after?: number, privacy?: "private" | "trusting"): void;
139
+ /**
140
+ * Prepends `item` before the item currently at index `before`.
141
+ *
142
+ * 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.
143
+ *
144
+ * If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
145
+ *
146
+ * @category 2. Editing
147
+ */
148
+ prepend(item: Item, before?: number, privacy?: "private" | "trusting"): void;
149
+ /** Deletes the item at index `at`.
150
+ *
151
+ * 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.
152
+ *
153
+ * 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.
154
+ *
155
+ * @category 2. Editing
156
+ **/
157
+ delete(at: number, privacy?: "private" | "trusting"): void;
158
+ replace(at: number, newItem: Item, privacy?: "private" | "trusting"): void;
159
+ /** @internal */
160
+ rebuildFromCore(): void;
161
+ }
162
+ export {};
163
+ //# sourceMappingURL=coList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coList.d.ts","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { CoID, RawCoValue } from "../coValue.js";
2
+ import { CoValueCore } from "../coValueCore.js";
3
+ import { AgentID, TransactionID } from "../ids.js";
4
+ import { JsonObject, JsonValue } from "../jsonValue.js";
5
+ import { CoValueKnownState } from "../sync.js";
6
+ import { RawAccountID } from "./account.js";
7
+ import type { RawGroup } from "./group.js";
8
+ type MapOp<K extends string, V extends JsonValue | undefined> = {
9
+ txID: TransactionID;
10
+ madeAt: number;
11
+ changeIdx: number;
12
+ change: MapOpPayload<K, V>;
13
+ };
14
+ export type MapOpPayload<K extends string, V extends JsonValue | undefined> = {
15
+ op: "set";
16
+ key: K;
17
+ value: V;
18
+ } | {
19
+ op: "del";
20
+ key: K;
21
+ };
22
+ export declare class RawCoMapView<Shape extends {
23
+ [key: string]: JsonValue | undefined;
24
+ } = {
25
+ [key: string]: JsonValue | undefined;
26
+ }, Meta extends JsonObject | null = JsonObject | null> implements RawCoValue {
27
+ /** @category 6. Meta */
28
+ id: CoID<this>;
29
+ /** @category 6. Meta */
30
+ type: "comap";
31
+ /** @category 6. Meta */
32
+ core: CoValueCore;
33
+ /** @internal */
34
+ latest: {
35
+ [Key in keyof Shape & string]?: MapOp<Key, Shape[Key]>;
36
+ };
37
+ /** @internal */
38
+ latestTxMadeAt: number;
39
+ /** @internal */
40
+ ops: {
41
+ [Key in keyof Shape & string]?: MapOp<Key, Shape[Key]>[];
42
+ };
43
+ /** @internal */
44
+ knownTransactions: CoValueKnownState["sessions"];
45
+ /** @internal */
46
+ ignorePrivateTransactions: boolean;
47
+ /** @internal */
48
+ atTimeFilter?: number;
49
+ /** @category 6. Meta */
50
+ readonly _shape: Shape;
51
+ /** @internal */
52
+ constructor(core: CoValueCore, options?: {
53
+ ignorePrivateTransactions: boolean;
54
+ });
55
+ processNewTransactions(): void;
56
+ isTimeTravelEntity(): boolean;
57
+ /** @category 6. Meta */
58
+ get headerMeta(): Meta;
59
+ /** @category 6. Meta */
60
+ get group(): RawGroup;
61
+ /** @category 4. Time travel */
62
+ atTime(time: number): this;
63
+ /** @internal */
64
+ timeFilteredOps<K extends keyof Shape & string>(key: K): MapOp<K, Shape[K]>[] | undefined;
65
+ /**
66
+ * Get all keys currently in the map.
67
+ *
68
+ * @category 1. Reading */
69
+ keys<K extends keyof Shape & string = keyof Shape & string>(): K[];
70
+ getRaw<K extends keyof Shape & string>(key: K): ({ [Key in keyof Shape & string]?: MapOp<Key, Shape[Key]> | undefined; }[K] & {}) | undefined;
71
+ /**
72
+ * Returns the current value for the given key.
73
+ *
74
+ * @category 1. Reading
75
+ **/
76
+ get<K extends keyof Shape & string>(key: K): Shape[K] | undefined;
77
+ /** @category 1. Reading */
78
+ asObject(): {
79
+ [K in keyof Shape & string]: Shape[K];
80
+ };
81
+ /** @category 1. Reading */
82
+ toJSON(): {
83
+ [K in keyof Shape & string]: Shape[K];
84
+ };
85
+ /** @category 5. Edit history */
86
+ nthEditAt<K extends keyof Shape & string>(key: K, n: number): {
87
+ by: RawAccountID | `sealer_z${string}/signer_z${string}`;
88
+ tx: TransactionID;
89
+ at: Date;
90
+ value: Shape[K] | undefined;
91
+ } | undefined;
92
+ /** @category 5. Edit history */
93
+ lastEditAt<K extends keyof Shape & string>(key: K): {
94
+ by: RawAccountID | AgentID;
95
+ tx: TransactionID;
96
+ at: Date;
97
+ value?: Shape[K];
98
+ } | undefined;
99
+ /** @category 5. Edit history */
100
+ editsAt<K extends keyof Shape & string>(key: K): Generator<{
101
+ by: RawAccountID | `sealer_z${string}/signer_z${string}`;
102
+ tx: TransactionID;
103
+ at: Date;
104
+ value: Shape[K] | undefined;
105
+ }, void, unknown>;
106
+ /** @category 3. Subscription */
107
+ subscribe(listener: (coMap: this) => void): () => void;
108
+ }
109
+ /** A collaborative map with precise shape `Shape` and optional static metadata `Meta` */
110
+ export declare class RawCoMap<Shape extends {
111
+ [key: string]: JsonValue | undefined;
112
+ } = {
113
+ [key: string]: JsonValue | undefined;
114
+ }, Meta extends JsonObject | null = JsonObject | null> extends RawCoMapView<Shape, Meta> implements RawCoValue {
115
+ /** Set a new value for the given key.
116
+ *
117
+ * If `privacy` is `"private"` **(default)**, both `key` and `value` are encrypted in the transaction, only readable by other members of the group this `CoMap` belongs to. Not even sync servers can see the content in plaintext.
118
+ *
119
+ * If `privacy` is `"trusting"`, both `key` and `value` are stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
120
+ *
121
+ * @category 2. Editing
122
+ **/
123
+ set<K extends keyof Shape & string>(key: K, value: Shape[K], privacy?: "private" | "trusting"): void;
124
+ assign(entries: Partial<Shape>, privacy?: "private" | "trusting"): void;
125
+ /** Delete the given key (setting it to undefined).
126
+ *
127
+ * If `privacy` is `"private"` **(default)**, `key` is encrypted in the transaction, only readable by other members of the group this `CoMap` belongs to. Not even sync servers can see the content in plaintext.
128
+ *
129
+ * If `privacy` is `"trusting"`, `key` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
130
+ *
131
+ * @category 2. Editing
132
+ **/
133
+ delete(key: keyof Shape & string, privacy?: "private" | "trusting"): void;
134
+ }
135
+ export declare function operationToEditEntry<K extends string, V extends JsonValue | undefined>(op: MapOp<K, V>): {
136
+ by: RawAccountID | `sealer_z${string}/signer_z${string}`;
137
+ tx: TransactionID;
138
+ at: Date;
139
+ value: V | undefined;
140
+ };
141
+ export {};
142
+ //# sourceMappingURL=coMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coMap.d.ts","sourceRoot":"","sources":["../../src/coValues/coMap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { CoValueCore } from "../coValueCore.js";
2
+ import { JsonObject } from "../jsonValue.js";
3
+ import { OpID, RawCoList } from "./coList.js";
4
+ export type StringifiedOpID = string & {
5
+ __stringifiedOpID: true;
6
+ };
7
+ export declare function stringifyOpID(opID: OpID): StringifiedOpID;
8
+ type PlaintextIdxMapping = {
9
+ opIDbeforeIdx: OpID[];
10
+ opIDafterIdx: OpID[];
11
+ idxAfterOpID: {
12
+ [opID: StringifiedOpID]: number;
13
+ };
14
+ idxBeforeOpID: {
15
+ [opID: StringifiedOpID]: number;
16
+ };
17
+ };
18
+ export declare class RawCoPlainText<Meta extends JsonObject | null = JsonObject | null> extends RawCoList<string, Meta> {
19
+ /** @category 6. Meta */
20
+ type: "coplaintext";
21
+ private _segmenter;
22
+ _cachedMapping: WeakMap<NonNullable<typeof this._cachedEntries>, PlaintextIdxMapping>;
23
+ constructor(core: CoValueCore);
24
+ get mapping(): PlaintextIdxMapping;
25
+ toString(): string;
26
+ insertAfter(idx: number, text: string, privacy?: "private" | "trusting"): void;
27
+ deleteRange({ from, to }: {
28
+ from: number;
29
+ to: number;
30
+ }, privacy?: "private" | "trusting"): void;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=coPlainText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coPlainText.d.ts","sourceRoot":"","sources":["../../src/coValues/coPlainText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAqB,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IAAE,iBAAiB,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnE,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAEzD;AAED,KAAK,mBAAmB,GAAG;IACzB,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,YAAY,EAAE;QAAE,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAA;KAAE,CAAC;IAClD,aAAa,EAAE;QAAE,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF,qBAAa,cAAc,CACzB,IAAI,SAAS,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAClD,SAAQ,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;IAC/B,wBAAwB;IACxB,IAAI,gBAA0B;IAE9B,OAAO,CAAC,UAAU,CAAiB;IAEnC,cAAc,EAAE,OAAO,CACrB,WAAW,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,EACvC,mBAAmB,CACpB,CAAC;gBAEU,IAAI,EAAE,WAAW;IAa7B,IAAI,OAAO,wBA6BV;IAED,QAAQ;IAMR,WAAW,CACT,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,SAAS,GAAG,UAAsB;IAoB7C,WAAW,CACT,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,GAAE,SAAS,GAAG,UAAsB;CAsB9C"}
@@ -0,0 +1,109 @@
1
+ import { CoID, RawCoValue } from "../coValue.js";
2
+ import { CoValueCore } from "../coValueCore.js";
3
+ import { AgentID, SessionID, TransactionID } from "../ids.js";
4
+ import { JsonObject, JsonValue } from "../jsonValue.js";
5
+ import { CoValueKnownState } from "../sync.js";
6
+ import { RawAccountID } from "./account.js";
7
+ import { RawGroup } from "./group.js";
8
+ export type BinaryStreamInfo = {
9
+ mimeType: string;
10
+ fileName?: string;
11
+ totalSizeBytes?: number;
12
+ };
13
+ export type BinaryStreamStart = {
14
+ type: "start";
15
+ } & BinaryStreamInfo;
16
+ export type BinaryStreamChunk = {
17
+ type: "chunk";
18
+ chunk: `binary_U${string}`;
19
+ };
20
+ export type BinaryStreamEnd = {
21
+ type: "end";
22
+ };
23
+ export type BinaryCoStreamMeta = JsonObject & {
24
+ type: "binary";
25
+ };
26
+ export type BinaryStreamItem = BinaryStreamStart | BinaryStreamChunk | BinaryStreamEnd;
27
+ export type CoStreamItem<Item extends JsonValue> = {
28
+ value: Item;
29
+ tx: TransactionID;
30
+ madeAt: number;
31
+ };
32
+ export declare class RawCoStreamView<Item extends JsonValue = JsonValue, Meta extends JsonObject | null = JsonObject | null> implements RawCoValue {
33
+ id: CoID<this>;
34
+ type: "costream";
35
+ core: CoValueCore;
36
+ items: {
37
+ [key: SessionID]: CoStreamItem<Item>[];
38
+ };
39
+ /** @internal */
40
+ knownTransactions: CoValueKnownState["sessions"];
41
+ readonly _item: Item;
42
+ constructor(core: CoValueCore);
43
+ get headerMeta(): Meta;
44
+ get group(): RawGroup;
45
+ /** Not yet implemented */
46
+ atTime(_time: number): this;
47
+ /** @internal */
48
+ protected processNewTransactions(): void;
49
+ getSingleStream(): Item[] | undefined;
50
+ sessions(): SessionID[];
51
+ accounts(): Set<RawAccountID>;
52
+ nthItemIn(sessionID: SessionID, n: number): {
53
+ by: RawAccountID | AgentID;
54
+ tx: TransactionID;
55
+ at: Date;
56
+ value: Item;
57
+ } | undefined;
58
+ lastItemIn(sessionID: SessionID): {
59
+ by: RawAccountID | AgentID;
60
+ tx: TransactionID;
61
+ at: Date;
62
+ value: Item;
63
+ } | undefined;
64
+ itemsIn(sessionID: SessionID): Generator<{
65
+ by: RawAccountID | `sealer_z${string}/signer_z${string}`;
66
+ tx: TransactionID;
67
+ at: Date;
68
+ value: Item;
69
+ }, void, unknown>;
70
+ lastItemBy(account: RawAccountID | AgentID): {
71
+ by: RawAccountID | AgentID;
72
+ tx: TransactionID;
73
+ at: Date;
74
+ value: Item;
75
+ } | undefined;
76
+ itemsBy(account: RawAccountID | AgentID): Generator<{
77
+ by: RawAccountID | `sealer_z${string}/signer_z${string}`;
78
+ tx: TransactionID;
79
+ at: Date;
80
+ value: Item;
81
+ in: SessionID;
82
+ }, void, unknown>;
83
+ toJSON(): {
84
+ [key: SessionID]: Item[];
85
+ };
86
+ subscribe(listener: (coStream: this) => void): () => void;
87
+ }
88
+ export declare class RawCoStream<Item extends JsonValue = JsonValue, Meta extends JsonObject | null = JsonObject | null> extends RawCoStreamView<Item, Meta> implements RawCoValue {
89
+ push(item: Item, privacy?: "private" | "trusting"): void;
90
+ }
91
+ export declare class RawBinaryCoStreamView<Meta extends BinaryCoStreamMeta = {
92
+ type: "binary";
93
+ }> extends RawCoStreamView<BinaryStreamItem, Meta> implements RawCoValue {
94
+ isBinaryStreamEnded(): boolean;
95
+ getBinaryChunks(allowUnfinished?: boolean): (BinaryStreamInfo & {
96
+ chunks: Uint8Array[];
97
+ finished: boolean;
98
+ }) | undefined;
99
+ }
100
+ export declare class RawBinaryCoStream<Meta extends BinaryCoStreamMeta = {
101
+ type: "binary";
102
+ }> extends RawBinaryCoStreamView<Meta> implements RawCoValue {
103
+ /** @internal */
104
+ push(item: BinaryStreamItem, privacy?: "private" | "trusting", updateView?: boolean): void;
105
+ startBinaryStream(settings: BinaryStreamInfo, privacy?: "private" | "trusting"): void;
106
+ pushBinaryStreamChunk(chunk: Uint8Array, privacy?: "private" | "trusting"): void;
107
+ endBinaryStream(privacy?: "private" | "trusting"): void;
108
+ }
109
+ //# sourceMappingURL=coStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coStream.d.ts","sourceRoot":"","sources":["../../src/coValues/coStream.ts"],"names":[],"mappings":"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"}