cojson 0.1.8 → 0.1.10

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 (76) hide show
  1. package/dist/account.d.ts +6 -3
  2. package/dist/account.js +4 -2
  3. package/dist/account.js.map +1 -1
  4. package/dist/coValue.d.ts +44 -80
  5. package/dist/coValue.js +4 -348
  6. package/dist/coValue.js.map +1 -1
  7. package/dist/coValueCore.d.ts +84 -0
  8. package/dist/coValueCore.js +356 -0
  9. package/dist/coValueCore.js.map +1 -0
  10. package/dist/coValues/coList.d.ts +114 -0
  11. package/dist/{contentTypes → coValues}/coList.js +59 -19
  12. package/dist/coValues/coList.js.map +1 -0
  13. package/dist/{contentTypes → coValues}/coMap.d.ts +25 -7
  14. package/dist/{contentTypes → coValues}/coMap.js +34 -15
  15. package/dist/coValues/coMap.js.map +1 -0
  16. package/dist/coValues/coStream.d.ts +69 -0
  17. package/dist/coValues/coStream.js +131 -0
  18. package/dist/coValues/coStream.js.map +1 -0
  19. package/dist/coValues/static.d.ts +14 -0
  20. package/dist/coValues/static.js +20 -0
  21. package/dist/coValues/static.js.map +1 -0
  22. package/dist/group.d.ts +57 -9
  23. package/dist/group.js +94 -28
  24. package/dist/group.js.map +1 -1
  25. package/dist/index.d.ts +19 -10
  26. package/dist/index.js +7 -5
  27. package/dist/index.js.map +1 -1
  28. package/dist/node.d.ts +59 -5
  29. package/dist/node.js +36 -15
  30. package/dist/node.js.map +1 -1
  31. package/dist/permissions.d.ts +2 -2
  32. package/dist/permissions.js +1 -1
  33. package/dist/permissions.js.map +1 -1
  34. package/dist/sync.d.ts +3 -3
  35. package/dist/sync.js +2 -2
  36. package/dist/sync.js.map +1 -1
  37. package/dist/testUtils.d.ts +2 -2
  38. package/dist/testUtils.js +1 -1
  39. package/dist/testUtils.js.map +1 -1
  40. package/package.json +2 -2
  41. package/src/account.test.ts +1 -1
  42. package/src/account.ts +8 -5
  43. package/src/coValue.test.ts +335 -129
  44. package/src/coValue.ts +52 -576
  45. package/src/coValueCore.test.ts +180 -0
  46. package/src/coValueCore.ts +592 -0
  47. package/src/{contentTypes → coValues}/coList.ts +91 -42
  48. package/src/{contentTypes → coValues}/coMap.ts +40 -20
  49. package/src/coValues/coStream.ts +249 -0
  50. package/src/coValues/static.ts +31 -0
  51. package/src/group.test.ts +47 -0
  52. package/src/group.ts +120 -50
  53. package/src/index.ts +43 -28
  54. package/src/node.ts +48 -27
  55. package/src/permissions.test.ts +32 -32
  56. package/src/permissions.ts +5 -5
  57. package/src/sync.test.ts +77 -77
  58. package/src/sync.ts +5 -5
  59. package/src/testUtils.ts +1 -1
  60. package/tsconfig.json +1 -2
  61. package/dist/contentType.d.ts +0 -15
  62. package/dist/contentType.js +0 -7
  63. package/dist/contentType.js.map +0 -1
  64. package/dist/contentTypes/coList.d.ts +0 -77
  65. package/dist/contentTypes/coList.js.map +0 -1
  66. package/dist/contentTypes/coMap.js.map +0 -1
  67. package/dist/contentTypes/coStream.d.ts +0 -11
  68. package/dist/contentTypes/coStream.js +0 -16
  69. package/dist/contentTypes/coStream.js.map +0 -1
  70. package/dist/contentTypes/static.d.ts +0 -11
  71. package/dist/contentTypes/static.js +0 -14
  72. package/dist/contentTypes/static.js.map +0 -1
  73. package/src/contentType.test.ts +0 -284
  74. package/src/contentType.ts +0 -26
  75. package/src/contentTypes/coStream.ts +0 -24
  76. package/src/contentTypes/static.ts +0 -22
@@ -1,77 +0,0 @@
1
- import { JsonObject, JsonValue } from "../jsonValue.js";
2
- import { CoID } from "../contentType.js";
3
- import { CoValue } from "../coValue.js";
4
- import { SessionID, TransactionID } from "../ids.js";
5
- import { AccountID, Group } from "../index.js";
6
- type OpID = TransactionID & {
7
- changeIdx: number;
8
- };
9
- type InsertionOpPayload<T extends JsonValue> = {
10
- op: "pre";
11
- value: T;
12
- before: OpID | "end";
13
- } | {
14
- op: "app";
15
- value: T;
16
- after: OpID | "start";
17
- };
18
- type DeletionOpPayload = {
19
- op: "del";
20
- insertion: OpID;
21
- };
22
- export type ListOpPayload<T extends JsonValue> = InsertionOpPayload<T> | DeletionOpPayload;
23
- type InsertionEntry<T extends JsonValue> = {
24
- madeAt: number;
25
- predecessors: OpID[];
26
- successors: OpID[];
27
- } & InsertionOpPayload<T>;
28
- type DeletionEntry = {
29
- madeAt: number;
30
- deletionID: OpID;
31
- } & DeletionOpPayload;
32
- export declare class CoList<T extends JsonValue, Meta extends JsonObject | null = null> {
33
- id: CoID<CoList<T, Meta>>;
34
- type: "colist";
35
- coValue: CoValue;
36
- afterStart: OpID[];
37
- beforeEnd: OpID[];
38
- insertions: {
39
- [sessionID: SessionID]: {
40
- [txIdx: number]: {
41
- [changeIdx: number]: InsertionEntry<T>;
42
- };
43
- };
44
- };
45
- deletionsByInsertion: {
46
- [deletedSessionID: SessionID]: {
47
- [deletedTxIdx: number]: {
48
- [deletedChangeIdx: number]: DeletionEntry[];
49
- };
50
- };
51
- };
52
- constructor(coValue: CoValue);
53
- get meta(): Meta;
54
- get group(): Group;
55
- protected fillOpsFromCoValue(): void;
56
- entries(): {
57
- value: T;
58
- madeAt: number;
59
- opID: OpID;
60
- }[];
61
- private fillArrayFromOpID;
62
- whoInserted(idx: number): AccountID | undefined;
63
- toJSON(): T[];
64
- asArray(): T[];
65
- map<U>(mapper: (value: T, idx: number) => U): U[];
66
- filter<U extends T>(predicate: (value: T, idx: number) => value is U): U[];
67
- reduce<U>(reducer: (accumulator: U, value: T, idx: number) => U, initialValue: U): U;
68
- edit(changer: (editable: WriteableCoList<T, Meta>) => void): CoList<T, Meta>;
69
- subscribe(listener: (coMap: CoList<T, Meta>) => void): () => void;
70
- }
71
- export declare class WriteableCoList<T extends JsonValue, Meta extends JsonObject | null = null> extends CoList<T, Meta> {
72
- append(after: number, value: T, privacy?: "private" | "trusting"): void;
73
- push(value: T, privacy?: "private" | "trusting"): void;
74
- prepend(before: number, value: T, privacy?: "private" | "trusting"): void;
75
- delete(at: number, privacy?: "private" | "trusting"): void;
76
- }
77
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/contentTypes/coList.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/contentTypes/coMap.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { JsonObject, JsonValue } from '../jsonValue.js';
2
- import { CoID } from '../contentType.js';
3
- import { CoValue } from '../coValue.js';
4
- export declare class CoStream<T extends JsonValue, Meta extends JsonObject | null = null> {
5
- id: CoID<CoStream<T, Meta>>;
6
- type: "costream";
7
- coValue: CoValue;
8
- constructor(coValue: CoValue);
9
- toJSON(): JsonObject;
10
- subscribe(listener: (coMap: CoStream<T, Meta>) => void): () => void;
11
- }
@@ -1,16 +0,0 @@
1
- export class CoStream {
2
- constructor(coValue) {
3
- this.type = "costream";
4
- this.id = coValue.id;
5
- this.coValue = coValue;
6
- }
7
- toJSON() {
8
- throw new Error("Method not implemented.");
9
- }
10
- subscribe(listener) {
11
- return this.coValue.subscribe((content) => {
12
- listener(content);
13
- });
14
- }
15
- }
16
- //# sourceMappingURL=coStream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coStream.js","sourceRoot":"","sources":["../../src/contentTypes/coStream.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IAKjB,YAAY,OAAgB;QAH5B,SAAI,GAAG,UAAmB,CAAC;QAIvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAA6B,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM;QACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,QAA4C;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,QAAQ,CAAC,OAA4B,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,11 +0,0 @@
1
- import { JsonObject } from '../jsonValue.js';
2
- import { CoID } from '../contentType.js';
3
- import { CoValue } from '../coValue.js';
4
- export declare class Static<T extends JsonObject> {
5
- id: CoID<Static<T>>;
6
- type: "static";
7
- coValue: CoValue;
8
- constructor(coValue: CoValue);
9
- toJSON(): JsonObject;
10
- subscribe(_listener: (coMap: Static<T>) => void): () => void;
11
- }
@@ -1,14 +0,0 @@
1
- export class Static {
2
- constructor(coValue) {
3
- this.type = "static";
4
- this.id = coValue.id;
5
- this.coValue = coValue;
6
- }
7
- toJSON() {
8
- throw new Error("Method not implemented.");
9
- }
10
- subscribe(_listener) {
11
- throw new Error("Method not implemented.");
12
- }
13
- }
14
- //# sourceMappingURL=static.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/contentTypes/static.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,MAAM;IAKf,YAAY,OAAgB;QAH5B,SAAI,GAAG,QAAiB,CAAC;QAIrB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAqB,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM;QACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,SAAqC;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;CACJ"}
@@ -1,284 +0,0 @@
1
- import { accountOrAgentIDfromSessionID } from "./coValue.js";
2
- import { createdNowUnique } from "./crypto.js";
3
- import { LocalNode } from "./node.js";
4
- import { randomAnonymousAccountAndSessionID } from "./testUtils.js";
5
-
6
- test("Empty CoMap works", () => {
7
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
8
-
9
- const coValue = node.createCoValue({
10
- type: "comap",
11
- ruleset: { type: "unsafeAllowAll" },
12
- meta: null,
13
- ...createdNowUnique(),
14
- });
15
-
16
- const content = coValue.getCurrentContent();
17
-
18
- if (content.type !== "comap") {
19
- throw new Error("Expected map");
20
- }
21
-
22
- expect(content.type).toEqual("comap");
23
- expect([...content.keys()]).toEqual([]);
24
- expect(content.toJSON()).toEqual({});
25
- });
26
-
27
- test("Can insert and delete CoMap entries in edit()", () => {
28
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
29
-
30
- const coValue = node.createCoValue({
31
- type: "comap",
32
- ruleset: { type: "unsafeAllowAll" },
33
- meta: null,
34
- ...createdNowUnique(),
35
- });
36
-
37
- const content = coValue.getCurrentContent();
38
-
39
- if (content.type !== "comap") {
40
- throw new Error("Expected map");
41
- }
42
-
43
- expect(content.type).toEqual("comap");
44
-
45
- content.edit((editable) => {
46
- editable.set("hello", "world", "trusting");
47
- expect(editable.get("hello")).toEqual("world");
48
- editable.set("foo", "bar", "trusting");
49
- expect(editable.get("foo")).toEqual("bar");
50
- expect([...editable.keys()]).toEqual(["hello", "foo"]);
51
- editable.delete("foo", "trusting");
52
- expect(editable.get("foo")).toEqual(undefined);
53
- });
54
- });
55
-
56
- test("Can get CoMap entry values at different points in time", () => {
57
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
58
-
59
- const coValue = node.createCoValue({
60
- type: "comap",
61
- ruleset: { type: "unsafeAllowAll" },
62
- meta: null,
63
- ...createdNowUnique(),
64
- });
65
-
66
- const content = coValue.getCurrentContent();
67
-
68
- if (content.type !== "comap") {
69
- throw new Error("Expected map");
70
- }
71
-
72
- expect(content.type).toEqual("comap");
73
-
74
- content.edit((editable) => {
75
- const beforeA = Date.now();
76
- while (Date.now() < beforeA + 10) {}
77
- editable.set("hello", "A", "trusting");
78
- const beforeB = Date.now();
79
- while (Date.now() < beforeB + 10) {}
80
- editable.set("hello", "B", "trusting");
81
- const beforeC = Date.now();
82
- while (Date.now() < beforeC + 10) {}
83
- editable.set("hello", "C", "trusting");
84
- expect(editable.get("hello")).toEqual("C");
85
- expect(editable.getAtTime("hello", Date.now())).toEqual("C");
86
- expect(editable.getAtTime("hello", beforeA)).toEqual(undefined);
87
- expect(editable.getAtTime("hello", beforeB)).toEqual("A");
88
- expect(editable.getAtTime("hello", beforeC)).toEqual("B");
89
- });
90
- });
91
-
92
- test("Can get all historic values of key in CoMap", () => {
93
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
94
-
95
- const coValue = node.createCoValue({
96
- type: "comap",
97
- ruleset: { type: "unsafeAllowAll" },
98
- meta: null,
99
- ...createdNowUnique(),
100
- });
101
-
102
- const content = coValue.getCurrentContent();
103
-
104
- if (content.type !== "comap") {
105
- throw new Error("Expected map");
106
- }
107
-
108
- expect(content.type).toEqual("comap");
109
-
110
- content.edit((editable) => {
111
- editable.set("hello", "A", "trusting");
112
- const txA = editable.getLastTxID("hello");
113
- editable.set("hello", "B", "trusting");
114
- const txB = editable.getLastTxID("hello");
115
- editable.delete("hello", "trusting");
116
- const txDel = editable.getLastTxID("hello");
117
- editable.set("hello", "C", "trusting");
118
- const txC = editable.getLastTxID("hello");
119
- expect(editable.getHistory("hello")).toEqual([
120
- {
121
- txID: txA,
122
- value: "A",
123
- at: txA && coValue.getTx(txA)?.madeAt,
124
- },
125
- {
126
- txID: txB,
127
- value: "B",
128
- at: txB && coValue.getTx(txB)?.madeAt,
129
- },
130
- {
131
- txID: txDel,
132
- value: undefined,
133
- at: txDel && coValue.getTx(txDel)?.madeAt,
134
- },
135
- {
136
- txID: txC,
137
- value: "C",
138
- at: txC && coValue.getTx(txC)?.madeAt,
139
- },
140
- ]);
141
- });
142
- });
143
-
144
- test("Can get last tx ID for a key in CoMap", () => {
145
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
146
-
147
- const coValue = node.createCoValue({
148
- type: "comap",
149
- ruleset: { type: "unsafeAllowAll" },
150
- meta: null,
151
- ...createdNowUnique(),
152
- });
153
-
154
- const content = coValue.getCurrentContent();
155
-
156
- if (content.type !== "comap") {
157
- throw new Error("Expected map");
158
- }
159
-
160
- expect(content.type).toEqual("comap");
161
-
162
- content.edit((editable) => {
163
- expect(editable.getLastTxID("hello")).toEqual(undefined);
164
- editable.set("hello", "A", "trusting");
165
- const sessionID = editable.getLastTxID("hello")?.sessionID;
166
- expect(sessionID && accountOrAgentIDfromSessionID(sessionID)).toEqual(
167
- node.account.id
168
- );
169
- expect(editable.getLastTxID("hello")?.txIndex).toEqual(0);
170
- editable.set("hello", "B", "trusting");
171
- expect(editable.getLastTxID("hello")?.txIndex).toEqual(1);
172
- editable.set("hello", "C", "trusting");
173
- expect(editable.getLastTxID("hello")?.txIndex).toEqual(2);
174
- });
175
- });
176
-
177
- test("Empty CoList works", () => {
178
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
179
-
180
- const coValue = node.createCoValue({
181
- type: "colist",
182
- ruleset: { type: "unsafeAllowAll" },
183
- meta: null,
184
- ...createdNowUnique(),
185
- });
186
-
187
- const content = coValue.getCurrentContent();
188
-
189
- if (content.type !== "colist") {
190
- throw new Error("Expected list");
191
- }
192
-
193
- expect(content.type).toEqual("colist");
194
- expect(content.toJSON()).toEqual([]);
195
- });
196
-
197
- test("Can append, prepend and delete items to CoList", () => {
198
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
199
-
200
- const coValue = node.createCoValue({
201
- type: "colist",
202
- ruleset: { type: "unsafeAllowAll" },
203
- meta: null,
204
- ...createdNowUnique(),
205
- });
206
-
207
- const content = coValue.getCurrentContent();
208
-
209
- if (content.type !== "colist") {
210
- throw new Error("Expected list");
211
- }
212
-
213
- expect(content.type).toEqual("colist");
214
-
215
- content.edit((editable) => {
216
- editable.append(0, "hello", "trusting");
217
- expect(editable.toJSON()).toEqual(["hello"]);
218
- editable.append(0, "world", "trusting");
219
- expect(editable.toJSON()).toEqual(["hello", "world"]);
220
- editable.prepend(1, "beautiful", "trusting");
221
- expect(editable.toJSON()).toEqual(["hello", "beautiful", "world"]);
222
- editable.prepend(3, "hooray", "trusting");
223
- expect(editable.toJSON()).toEqual([
224
- "hello",
225
- "beautiful",
226
- "world",
227
- "hooray",
228
- ]);
229
- editable.delete(2, "trusting");
230
- expect(editable.toJSON()).toEqual(["hello", "beautiful", "hooray"]);
231
- });
232
- });
233
-
234
- test("Push is equivalent to append after last item", () => {
235
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
236
-
237
- const coValue = node.createCoValue({
238
- type: "colist",
239
- ruleset: { type: "unsafeAllowAll" },
240
- meta: null,
241
- ...createdNowUnique(),
242
- });
243
-
244
- const content = coValue.getCurrentContent();
245
-
246
- if (content.type !== "colist") {
247
- throw new Error("Expected list");
248
- }
249
-
250
- expect(content.type).toEqual("colist");
251
-
252
- content.edit((editable) => {
253
- editable.append(0, "hello", "trusting");
254
- expect(editable.toJSON()).toEqual(["hello"]);
255
- editable.push("world", "trusting");
256
- expect(editable.toJSON()).toEqual(["hello", "world"]);
257
- editable.push("hooray", "trusting");
258
- expect(editable.toJSON()).toEqual(["hello", "world", "hooray"]);
259
- });
260
- });
261
-
262
- test("Can push into empty list", () => {
263
- const node = new LocalNode(...randomAnonymousAccountAndSessionID());
264
-
265
- const coValue = node.createCoValue({
266
- type: "colist",
267
- ruleset: { type: "unsafeAllowAll" },
268
- meta: null,
269
- ...createdNowUnique(),
270
- });
271
-
272
- const content = coValue.getCurrentContent();
273
-
274
- if (content.type !== "colist") {
275
- throw new Error("Expected list");
276
- }
277
-
278
- expect(content.type).toEqual("colist");
279
-
280
- content.edit((editable) => {
281
- editable.push("hello", "trusting");
282
- expect(editable.toJSON()).toEqual(["hello"]);
283
- });
284
- })
@@ -1,26 +0,0 @@
1
- import { JsonObject, JsonValue } from "./jsonValue.js";
2
- import { RawCoID } from "./ids.js";
3
- import { CoMap } from "./contentTypes/coMap.js";
4
- import { CoStream } from "./contentTypes/coStream.js";
5
- import { Static } from "./contentTypes/static.js";
6
- import { CoList } from "./contentTypes/coList.js";
7
-
8
- export type CoID<T extends ContentType> = RawCoID & {
9
- readonly __type: T;
10
- };
11
-
12
- export type ContentType =
13
- | CoMap<{ [key: string]: JsonValue }, JsonObject | null>
14
- | CoList<JsonValue, JsonObject | null>
15
- | CoStream<JsonValue, JsonObject | null>
16
- | Static<JsonObject>;
17
-
18
- export function expectMap(
19
- content: ContentType
20
- ): CoMap<{ [key: string]: string }, JsonObject | null> {
21
- if (content.type !== "comap") {
22
- throw new Error("Expected map");
23
- }
24
-
25
- return content as CoMap<{ [key: string]: string }, JsonObject | null>;
26
- }
@@ -1,24 +0,0 @@
1
- import { JsonObject, JsonValue } from '../jsonValue.js';
2
- import { CoID } from '../contentType.js';
3
- import { CoValue } from '../coValue.js';
4
-
5
- export class CoStream<T extends JsonValue, Meta extends JsonObject | null = null> {
6
- id: CoID<CoStream<T, Meta>>;
7
- type = "costream" as const;
8
- coValue: CoValue;
9
-
10
- constructor(coValue: CoValue) {
11
- this.id = coValue.id as CoID<CoStream<T, Meta>>;
12
- this.coValue = coValue;
13
- }
14
-
15
- toJSON(): JsonObject {
16
- throw new Error("Method not implemented.");
17
- }
18
-
19
- subscribe(listener: (coMap: CoStream<T, Meta>) => void): () => void {
20
- return this.coValue.subscribe((content) => {
21
- listener(content as CoStream<T, Meta>);
22
- });
23
- }
24
- }
@@ -1,22 +0,0 @@
1
- import { JsonObject } from '../jsonValue.js';
2
- import { CoID } from '../contentType.js';
3
- import { CoValue } from '../coValue.js';
4
-
5
- export class Static<T extends JsonObject> {
6
- id: CoID<Static<T>>;
7
- type = "static" as const;
8
- coValue: CoValue;
9
-
10
- constructor(coValue: CoValue) {
11
- this.id = coValue.id as CoID<Static<T>>;
12
- this.coValue = coValue;
13
- }
14
-
15
- toJSON(): JsonObject {
16
- throw new Error("Method not implemented.");
17
- }
18
-
19
- subscribe(_listener: (coMap: Static<T>) => void): () => void {
20
- throw new Error("Method not implemented.");
21
- }
22
- }