cojson 0.4.0 → 0.4.1

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.
@@ -45,7 +45,7 @@ export declare class CoStreamView<Item extends JsonValue = JsonValue, Meta exten
45
45
  protected fillFromCoValue(): void;
46
46
  getSingleStream(): (Item)[] | undefined;
47
47
  sessions(): SessionID[];
48
- accounts(): Set<AccountID | AgentID>;
48
+ accounts(): Set<AccountID>;
49
49
  nthItemIn(sessionID: SessionID, n: number): {
50
50
  by: AccountID | AgentID;
51
51
  tx: TransactionID;
@@ -1,6 +1,7 @@
1
1
  import { isCoValue } from "../coValue.js";
2
2
  import { accountOrAgentIDfromSessionID } from "../coValueCore.js";
3
3
  import { base64URLtoBytes, bytesToBase64url } from "../base64url.js";
4
+ import { isAccountID } from "./account.js";
4
5
  import { parseJSON } from "../jsonStringify.js";
5
6
  export class CoStreamView {
6
7
  constructor(core) {
@@ -48,7 +49,7 @@ export class CoStreamView {
48
49
  return Object.keys(this.items);
49
50
  }
50
51
  accounts() {
51
- return new Set(this.sessions().map(accountOrAgentIDfromSessionID));
52
+ return new Set(this.sessions().map(accountOrAgentIDfromSessionID).filter(isAccountID));
52
53
  }
53
54
  nthItemIn(sessionID, n) {
54
55
  const items = this.items[sessionID];
@@ -1 +1 @@
1
- {"version":3,"file":"coStream.js","sourceRoot":"","sources":["../../src/coValues/coStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coStream.js","sourceRoot":"","sources":["../../src/coValues/coStream.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { CoID, CoValue } from "../coValue.js";
7
7
  import { SessionID, TransactionID } from "../ids.js";
8
8
  import { ValueOrSubQueried, QueryContext } from "../queries.js";
9
9
  import { QueriedAccount } from "./queriedAccount.js";
10
- export type QueriedCoStreamItems<Item extends JsonValue | CoValue> = {
10
+ export type QueriedCoStreamEntry<Item extends JsonValue | CoValue> = {
11
11
  last?: ValueOrSubQueried<Item>;
12
12
  by?: QueriedAccount;
13
13
  tx?: TransactionID;
@@ -28,13 +28,9 @@ export declare class QueriedCoStream<S extends CoStream> {
28
28
  get meta(): S["meta"];
29
29
  get group(): Group;
30
30
  get core(): CoValueCore;
31
- me?: QueriedCoStreamItems<S["_item"]>;
32
- perAccount: {
33
- [account: AccountID]: QueriedCoStreamItems<S["_item"]>;
34
- };
35
- perSession: {
36
- [session: SessionID]: QueriedCoStreamItems<S["_item"]>;
37
- };
31
+ me?: QueriedCoStreamEntry<S["_item"]>;
32
+ perAccount: [account: AccountID, items: QueriedCoStreamEntry<S["_item"]>][];
33
+ perSession: [session: SessionID, items: QueriedCoStreamEntry<S["_item"]>][];
38
34
  push(item: S["_item"], privacy?: "private" | "trusting"): S;
39
35
  mutate(mutator: (mutable: MutableCoStream<S["_item"], S["meta"]>) => void): S;
40
36
  }
@@ -9,7 +9,7 @@ export class QueriedCoStream {
9
9
  },
10
10
  });
11
11
  this.id = coStream.id;
12
- this.perSession = Object.fromEntries(coStream.sessions().map((sessionID) => {
12
+ this.perSession = coStream.sessions().map((sessionID) => {
13
13
  const items = [...coStream.itemsIn(sessionID)].map((item) => queryContext.defineSubqueryPropertiesIn({
14
14
  tx: item.tx,
15
15
  at: new Date(item.at),
@@ -40,8 +40,8 @@ export class QueriedCoStream {
40
40
  all: items,
41
41
  },
42
42
  ];
43
- }));
44
- this.perAccount = Object.fromEntries([...coStream.accounts()].map((accountID) => {
43
+ });
44
+ this.perAccount = [...coStream.accounts()].map((accountID) => {
45
45
  const items = [...coStream.itemsBy(accountID)].map((item) => queryContext.defineSubqueryPropertiesIn({
46
46
  tx: item.tx,
47
47
  at: new Date(item.at),
@@ -58,24 +58,25 @@ export class QueriedCoStream {
58
58
  },
59
59
  }, [coStream.id]));
60
60
  const lastItem = items[items.length - 1];
61
+ const entry = {
62
+ get last() {
63
+ return lastItem?.value;
64
+ },
65
+ get by() {
66
+ return lastItem?.by;
67
+ },
68
+ tx: lastItem?.tx,
69
+ at: lastItem?.at,
70
+ all: items,
71
+ };
72
+ if (accountID === queryContext.node.account.id) {
73
+ this.me = entry;
74
+ }
61
75
  return [
62
76
  accountID,
63
- {
64
- get last() {
65
- return lastItem?.value;
66
- },
67
- get by() {
68
- return lastItem?.by;
69
- },
70
- tx: lastItem?.tx,
71
- at: lastItem?.at,
72
- all: items,
73
- },
77
+ entry
74
78
  ];
75
- }));
76
- this.me = isAccountID(queryContext.node.account.id)
77
- ? this.perAccount[queryContext.node.account.id]
78
- : undefined;
79
+ });
79
80
  }
80
81
  get meta() {
81
82
  return this.coStream.meta;
@@ -1 +1 @@
1
- {"version":3,"file":"queriedCoStream.js","sourceRoot":"","sources":["../../src/queriedCoValues/queriedCoStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queriedCoStream.js","sourceRoot":"","sources":["../../src/queriedCoValues/queriedCoStream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.4.0",
8
+ "version": "0.4.1",
9
9
  "devDependencies": {
10
10
  "@types/jest": "^29.5.3",
11
11
  "@typescript-eslint/eslint-plugin": "^6.2.1",
@@ -51,5 +51,5 @@
51
51
  "/dist/"
52
52
  ]
53
53
  },
54
- "gitHead": "b2c8d8c8557c0324ee1c10d0f47441b624647f85"
54
+ "gitHead": "27779ac7923d43690fc1671e033ffc16c84aba5b"
55
55
  }
@@ -4,7 +4,7 @@ import { CoValueCore, accountOrAgentIDfromSessionID } from "../coValueCore.js";
4
4
  import { Group } from "./group.js";
5
5
  import { AgentID, SessionID, TransactionID } from "../ids.js";
6
6
  import { base64URLtoBytes, bytesToBase64url } from "../base64url.js";
7
- import { AccountID } from "./account.js";
7
+ import { AccountID, isAccountID } from "./account.js";
8
8
  import { parseJSON } from "../jsonStringify.js";
9
9
 
10
10
  export type BinaryStreamInfo = {
@@ -111,8 +111,8 @@ export class CoStreamView<
111
111
  return Object.keys(this.items) as SessionID[];
112
112
  }
113
113
 
114
- accounts(): Set<AccountID | AgentID> {
115
- return new Set(this.sessions().map(accountOrAgentIDfromSessionID));
114
+ accounts(): Set<AccountID> {
115
+ return new Set(this.sessions().map(accountOrAgentIDfromSessionID).filter(isAccountID));
116
116
  }
117
117
 
118
118
  nthItemIn(
@@ -8,7 +8,7 @@ import { SessionID, TransactionID } from "../ids.js";
8
8
  import { ValueOrSubQueried, QueryContext } from "../queries.js";
9
9
  import { QueriedAccount } from "./queriedAccount.js";
10
10
 
11
- export type QueriedCoStreamItems<Item extends JsonValue | CoValue> = {
11
+ export type QueriedCoStreamEntry<Item extends JsonValue | CoValue> = {
12
12
  last?: ValueOrSubQueried<Item>;
13
13
  by?: QueriedAccount;
14
14
  tx?: TransactionID;
@@ -35,52 +35,50 @@ export class QueriedCoStream<S extends CoStream> {
35
35
  });
36
36
  this.id = coStream.id;
37
37
 
38
- this.perSession = Object.fromEntries(
39
- coStream.sessions().map((sessionID) => {
40
- const items = [...coStream.itemsIn(sessionID)].map((item) =>
41
- queryContext.defineSubqueryPropertiesIn(
42
- {
43
- tx: item.tx,
44
- at: new Date(item.at),
38
+ this.perSession = coStream.sessions().map((sessionID) => {
39
+ const items = [...coStream.itemsIn(sessionID)].map((item) =>
40
+ queryContext.defineSubqueryPropertiesIn(
41
+ {
42
+ tx: item.tx,
43
+ at: new Date(item.at),
44
+ },
45
+ {
46
+ by: {
47
+ value: isAccountID(item.by)
48
+ ? item.by
49
+ : (undefined as never),
50
+ enumerable: true,
45
51
  },
46
- {
47
- by: {
48
- value: isAccountID(item.by)
49
- ? item.by
50
- : (undefined as never),
51
- enumerable: true,
52
- },
53
- value: {
54
- value: item.value as S["_item"],
55
- enumerable: true,
56
- },
52
+ value: {
53
+ value: item.value as S["_item"],
54
+ enumerable: true,
57
55
  },
58
- [coStream.id]
59
- )
60
- );
56
+ },
57
+ [coStream.id]
58
+ )
59
+ );
61
60
 
62
- const lastItem = items[items.length - 1];
61
+ const lastItem = items[items.length - 1];
63
62
 
64
- return [
65
- sessionID,
66
- {
67
- get last() {
68
- return lastItem?.value;
69
- },
70
- get by() {
71
- return lastItem?.by;
72
- },
73
- tx: lastItem?.tx,
74
- at: lastItem?.at,
75
- all: items,
76
- } satisfies QueriedCoStreamItems<S["_item"]>,
77
- ];
78
- })
79
- );
80
-
81
- this.perAccount = Object.fromEntries(
82
- [...coStream.accounts()].map((accountID) => {
83
- const items = [...coStream.itemsBy(accountID)].map((item) => queryContext.defineSubqueryPropertiesIn(
63
+ return [
64
+ sessionID,
65
+ {
66
+ get last() {
67
+ return lastItem?.value;
68
+ },
69
+ get by() {
70
+ return lastItem?.by;
71
+ },
72
+ tx: lastItem?.tx,
73
+ at: lastItem?.at,
74
+ all: items,
75
+ } satisfies QueriedCoStreamEntry<S["_item"]>,
76
+ ];
77
+ });
78
+
79
+ this.perAccount = [...coStream.accounts()].map((accountID) => {
80
+ const items = [...coStream.itemsBy(accountID)].map((item) =>
81
+ queryContext.defineSubqueryPropertiesIn(
84
82
  {
85
83
  tx: item.tx,
86
84
  at: new Date(item.at),
@@ -98,30 +96,32 @@ export class QueriedCoStream<S extends CoStream> {
98
96
  },
99
97
  },
100
98
  [coStream.id]
101
- ));
99
+ )
100
+ );
102
101
 
103
- const lastItem = items[items.length - 1];
102
+ const lastItem = items[items.length - 1];
104
103
 
105
- return [
106
- accountID,
107
- {
108
- get last() {
109
- return lastItem?.value;
110
- },
111
- get by() {
112
- return lastItem?.by;
113
- },
114
- tx: lastItem?.tx,
115
- at: lastItem?.at,
116
- all: items,
117
- } satisfies QueriedCoStreamItems<S["_item"]>,
118
- ];
119
- })
120
- );
121
-
122
- this.me = isAccountID(queryContext.node.account.id)
123
- ? this.perAccount[queryContext.node.account.id]
124
- : undefined;
104
+ const entry = {
105
+ get last() {
106
+ return lastItem?.value;
107
+ },
108
+ get by() {
109
+ return lastItem?.by;
110
+ },
111
+ tx: lastItem?.tx,
112
+ at: lastItem?.at,
113
+ all: items,
114
+ } satisfies QueriedCoStreamEntry<S["_item"]>;
115
+
116
+ if (accountID === queryContext.node.account.id) {
117
+ this.me = entry;
118
+ }
119
+
120
+ return [
121
+ accountID,
122
+ entry
123
+ ];
124
+ });
125
125
  }
126
126
 
127
127
  get meta(): S["meta"] {
@@ -136,13 +136,9 @@ export class QueriedCoStream<S extends CoStream> {
136
136
  return this.coStream.core;
137
137
  }
138
138
 
139
- me?: QueriedCoStreamItems<S["_item"]>;
140
- perAccount: {
141
- [account: AccountID]: QueriedCoStreamItems<S["_item"]>;
142
- };
143
- perSession: {
144
- [session: SessionID]: QueriedCoStreamItems<S["_item"]>;
145
- };
139
+ me?: QueriedCoStreamEntry<S["_item"]>;
140
+ perAccount: [account: AccountID, items: QueriedCoStreamEntry<S["_item"]>][];
141
+ perSession: [session: SessionID, items: QueriedCoStreamEntry<S["_item"]>][];
146
142
 
147
143
  push(item: S["_item"], privacy?: "private" | "trusting"): S {
148
144
  return this.coStream.push(item, privacy);
@@ -13,8 +13,9 @@ beforeEach(async () => {
13
13
  });
14
14
 
15
15
  test("Queries with maps work", async () => {
16
- const { node, accountID } =
17
- LocalNode.withNewlyCreatedAccount({name: "Hermes Puggington"});
16
+ const { node, accountID } = LocalNode.withNewlyCreatedAccount({
17
+ name: "Hermes Puggington",
18
+ });
18
19
 
19
20
  const group = node.createGroup();
20
21
 
@@ -102,8 +103,9 @@ test("Queries with maps work", async () => {
102
103
  });
103
104
 
104
105
  test("Queries with lists work", () => {
105
- const { node, accountID } =
106
- LocalNode.withNewlyCreatedAccount({name: "Hermes Puggington"});
106
+ const { node, accountID } = LocalNode.withNewlyCreatedAccount({
107
+ name: "Hermes Puggington",
108
+ });
107
109
 
108
110
  const group = node.createGroup();
109
111
 
@@ -159,7 +161,9 @@ test("Queries with lists work", () => {
159
161
  });
160
162
 
161
163
  test("List of nested maps works", () => {
162
- const { node } = LocalNode.withNewlyCreatedAccount({name: "Hermes Puggington"});
164
+ const { node } = LocalNode.withNewlyCreatedAccount({
165
+ name: "Hermes Puggington",
166
+ });
163
167
 
164
168
  const group = node.createGroup();
165
169
 
@@ -190,7 +194,9 @@ test("List of nested maps works", () => {
190
194
  });
191
195
 
192
196
  test("Can call .map on a quieried coList", async () => {
193
- const { node } = LocalNode.withNewlyCreatedAccount({name: "Hermes Puggington"});
197
+ const { node } = LocalNode.withNewlyCreatedAccount({
198
+ name: "Hermes Puggington",
199
+ });
194
200
 
195
201
  const group = node.createGroup();
196
202
 
@@ -220,8 +226,9 @@ test("Can call .map on a quieried coList", async () => {
220
226
  });
221
227
 
222
228
  test("Queries with streams work", () => {
223
- const { node, accountID } =
224
- LocalNode.withNewlyCreatedAccount({name: "Hermes Puggington"});
229
+ const { node, accountID } = LocalNode.withNewlyCreatedAccount({
230
+ name: "Hermes Puggington",
231
+ });
225
232
 
226
233
  const group = node.createGroup();
227
234
 
@@ -239,57 +246,109 @@ test("Queries with streams work", () => {
239
246
  expect(queriedStream.group.id).toBe(group.id);
240
247
  expect(queriedStream.meta).toBe(null);
241
248
 
242
- expect(queriedStream.perSession[node.currentSessionID].last).toEqual(
243
- "world"
244
- );
245
- expect(queriedStream.perSession[node.currentSessionID].all[0].value).toEqual("hello");
246
- expect(queriedStream.perSession[node.currentSessionID].all[0].at).toEqual(new Date(
247
- stream.items[
249
+ expect(
250
+ Object.fromEntries(queriedStream.perSession)[
248
251
  node.currentSessionID
249
- ][0].madeAt
250
- ));
251
- expect(queriedStream.perSession[node.currentSessionID].all[1].value).toEqual("world");
252
- expect(queriedStream.perSession[node.currentSessionID].all[1].at).toEqual(new Date(
253
- stream.items[
252
+ ].last
253
+ ).toEqual("world");
254
+ expect(
255
+ Object.fromEntries(queriedStream.perSession)[
254
256
  node.currentSessionID
255
- ][1].madeAt
256
- ));
257
- expect(queriedStream.perSession[node.currentSessionID].by?.id).toEqual(accountID);
258
- expect(queriedStream.perSession[node.currentSessionID].by?.profile?.id).toEqual(
259
- node.expectProfileLoaded(accountID).id
260
- );
261
- expect(queriedStream.perSession[node.currentSessionID].by?.profile?.name).toEqual(
262
- "Hermes Puggington"
257
+ ].all[0].value
258
+ ).toEqual("hello");
259
+ expect(
260
+ Object.fromEntries(queriedStream.perSession)[
261
+ node.currentSessionID
262
+ ].all[0].at
263
+ ).toEqual(
264
+ new Date(stream.items[node.currentSessionID][0].madeAt)
263
265
  );
264
- expect(queriedStream.perSession[node.currentSessionID].by?.isMe).toBe(true);
265
- expect(queriedStream.perSession[node.currentSessionID].at).toBeInstanceOf(Date);
266
-
267
- expect(queriedStream.perAccount[accountID].last).toEqual(
268
- "world"
266
+ expect(
267
+ Object.fromEntries(queriedStream.perSession)[
268
+ node.currentSessionID
269
+ ].all[1].value
270
+ ).toEqual("world");
271
+ expect(
272
+ Object.fromEntries(queriedStream.perSession)[
273
+ node.currentSessionID
274
+ ].all[1].at
275
+ ).toEqual(
276
+ new Date(stream.items[node.currentSessionID][1].madeAt)
269
277
  );
270
- expect(queriedStream.perAccount[accountID].all[0].value).toEqual("hello");
271
- expect(queriedStream.perAccount[accountID].all[0].at).toEqual(new Date(
272
- stream.items[
278
+ expect(
279
+ Object.fromEntries(queriedStream.perSession)[
273
280
  node.currentSessionID
274
- ][0].madeAt
275
- ));
276
- expect(queriedStream.perAccount[accountID].all[1].value).toEqual("world");
277
- expect(queriedStream.perAccount[accountID].all[1].at).toEqual(new Date(
278
- stream.items[
281
+ ].by?.id
282
+ ).toEqual(accountID);
283
+ expect(
284
+ Object.fromEntries(queriedStream.perSession)[
279
285
  node.currentSessionID
280
- ][1].madeAt
281
- ));
282
- expect(queriedStream.perAccount[accountID].by?.id).toEqual(accountID);
283
- expect(queriedStream.perAccount[accountID].by?.profile?.id).toEqual(
284
- node.expectProfileLoaded(accountID).id
286
+ ].by?.profile?.id
287
+ ).toEqual(node.expectProfileLoaded(accountID).id);
288
+ expect(
289
+ Object.fromEntries(queriedStream.perSession)[
290
+ node.currentSessionID
291
+ ].by?.profile?.name
292
+ ).toEqual("Hermes Puggington");
293
+ expect(
294
+ Object.fromEntries(queriedStream.perSession)[
295
+ node.currentSessionID
296
+ ].by?.isMe
297
+ ).toBe(true);
298
+ expect(
299
+ Object.fromEntries(queriedStream.perSession)[
300
+ node.currentSessionID
301
+ ].at
302
+ ).toBeInstanceOf(Date);
303
+
304
+ expect(
305
+ Object.fromEntries(queriedStream.perAccount)[accountID]
306
+ .last
307
+ ).toEqual("world");
308
+ expect(
309
+ Object.fromEntries(queriedStream.perAccount)[accountID]
310
+ .all[0].value
311
+ ).toEqual("hello");
312
+ expect(
313
+ Object.fromEntries(queriedStream.perAccount)[accountID]
314
+ .all[0].at
315
+ ).toEqual(
316
+ new Date(stream.items[node.currentSessionID][0].madeAt)
285
317
  );
286
- expect(queriedStream.perAccount[accountID].by?.profile?.name).toEqual(
287
- "Hermes Puggington"
318
+ expect(
319
+ Object.fromEntries(queriedStream.perAccount)[accountID]
320
+ .all[1].value
321
+ ).toEqual("world");
322
+ expect(
323
+ Object.fromEntries(queriedStream.perAccount)[accountID]
324
+ .all[1].at
325
+ ).toEqual(
326
+ new Date(stream.items[node.currentSessionID][1].madeAt)
327
+ );
328
+ expect(
329
+ Object.fromEntries(queriedStream.perAccount)[accountID]
330
+ .by?.id
331
+ ).toEqual(accountID);
332
+ expect(
333
+ Object.fromEntries(queriedStream.perAccount)[accountID]
334
+ .by?.profile?.id
335
+ ).toEqual(node.expectProfileLoaded(accountID).id);
336
+ expect(
337
+ Object.fromEntries(queriedStream.perAccount)[accountID]
338
+ .by?.profile?.name
339
+ ).toEqual("Hermes Puggington");
340
+ expect(
341
+ Object.fromEntries(queriedStream.perAccount)[accountID]
342
+ .by?.isMe
343
+ ).toBe(true);
344
+ expect(
345
+ Object.fromEntries(queriedStream.perAccount)[accountID]
346
+ .at
347
+ ).toBeInstanceOf(Date);
348
+
349
+ expect(queriedStream.me).toEqual(
350
+ Object.fromEntries(queriedStream.perAccount)[accountID]
288
351
  );
289
- expect(queriedStream.perAccount[accountID].by?.isMe).toBe(true);
290
- expect(queriedStream.perAccount[accountID].at).toBeInstanceOf(Date);
291
-
292
- expect(queriedStream.me).toEqual(queriedStream.perAccount[accountID]);
293
352
  // console.log("final update", queriedStream);
294
353
  resolve();
295
354
  unsubQuery();
@@ -305,7 +364,9 @@ test("Queries with streams work", () => {
305
364
  });
306
365
 
307
366
  test("Streams of nested maps work", () => {
308
- const { node } = LocalNode.withNewlyCreatedAccount({name:"Hermes Puggington"});
367
+ const { node } = LocalNode.withNewlyCreatedAccount({
368
+ name: "Hermes Puggington",
369
+ });
309
370
 
310
371
  const group = node.createGroup();
311
372