jazz-tools 0.7.0-alpha.0 → 0.7.0-alpha.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. package/.eslintrc.cjs +8 -1
  2. package/CHANGELOG.md +14 -0
  3. package/dist/coValues/account.js +138 -0
  4. package/dist/coValues/account.js.map +1 -0
  5. package/dist/coValues/coList.js +196 -0
  6. package/dist/coValues/coList.js.map +1 -0
  7. package/dist/coValues/coMap.js +249 -0
  8. package/dist/coValues/coMap.js.map +1 -0
  9. package/dist/coValues/coStream.js +189 -0
  10. package/dist/coValues/coStream.js.map +1 -0
  11. package/dist/coValues/extensions/imageDef.js +12 -12
  12. package/dist/coValues/extensions/imageDef.js.map +1 -1
  13. package/dist/coValues/group.js +93 -0
  14. package/dist/coValues/group.js.map +1 -0
  15. package/dist/coValues/interfaces.js +58 -0
  16. package/dist/coValues/interfaces.js.map +1 -0
  17. package/dist/implementation/errors.js.map +1 -0
  18. package/dist/implementation/inspect.js +2 -0
  19. package/dist/implementation/inspect.js.map +1 -0
  20. package/dist/{refs.js → implementation/refs.js} +11 -13
  21. package/dist/implementation/refs.js.map +1 -0
  22. package/dist/implementation/schema.js +6 -0
  23. package/dist/implementation/schema.js.map +1 -0
  24. package/dist/{subscriptionScope.js → implementation/subscriptionScope.js} +1 -1
  25. package/dist/implementation/subscriptionScope.js.map +1 -0
  26. package/dist/index.js +8 -28
  27. package/dist/index.js.map +1 -1
  28. package/dist/internal.js +13 -0
  29. package/dist/internal.js.map +1 -0
  30. package/dist/tests/coList.test.js +26 -22
  31. package/dist/tests/coList.test.js.map +1 -1
  32. package/dist/tests/coMap.test.js +74 -43
  33. package/dist/tests/coMap.test.js.map +1 -1
  34. package/dist/tests/coStream.test.js +35 -24
  35. package/dist/tests/coStream.test.js.map +1 -1
  36. package/package.json +11 -4
  37. package/src/coValues/account.ts +297 -0
  38. package/src/coValues/coList.ts +320 -0
  39. package/src/coValues/coMap.ts +447 -0
  40. package/src/coValues/coStream.ts +325 -0
  41. package/src/coValues/extensions/imageDef.ts +25 -16
  42. package/src/coValues/group.ts +186 -0
  43. package/src/coValues/interfaces.ts +216 -0
  44. package/src/implementation/inspect.ts +2 -0
  45. package/src/{refs.ts → implementation/refs.ts} +21 -32
  46. package/src/implementation/schema.ts +69 -0
  47. package/src/{subscriptionScope.ts → implementation/subscriptionScope.ts} +11 -13
  48. package/src/index.ts +9 -54
  49. package/src/internal.ts +15 -0
  50. package/src/tests/coList.test.ts +27 -25
  51. package/src/tests/coMap.test.ts +111 -50
  52. package/src/tests/coStream.test.ts +51 -38
  53. package/dist/coValueInterfaces.js +0 -8
  54. package/dist/coValueInterfaces.js.map +0 -1
  55. package/dist/coValues/account/account.js +0 -11
  56. package/dist/coValues/account/account.js.map +0 -1
  57. package/dist/coValues/account/accountOf.js +0 -150
  58. package/dist/coValues/account/accountOf.js.map +0 -1
  59. package/dist/coValues/account/migration.js +0 -4
  60. package/dist/coValues/account/migration.js.map +0 -1
  61. package/dist/coValues/coList/coList.js +0 -2
  62. package/dist/coValues/coList/coList.js.map +0 -1
  63. package/dist/coValues/coList/coListOf.js +0 -235
  64. package/dist/coValues/coList/coListOf.js.map +0 -1
  65. package/dist/coValues/coList/internalDocs.js +0 -2
  66. package/dist/coValues/coList/internalDocs.js.map +0 -1
  67. package/dist/coValues/coMap/coMap.js +0 -2
  68. package/dist/coValues/coMap/coMap.js.map +0 -1
  69. package/dist/coValues/coMap/coMapOf.js +0 -262
  70. package/dist/coValues/coMap/coMapOf.js.map +0 -1
  71. package/dist/coValues/coMap/internalDocs.js +0 -2
  72. package/dist/coValues/coMap/internalDocs.js.map +0 -1
  73. package/dist/coValues/coStream/coStream.js +0 -2
  74. package/dist/coValues/coStream/coStream.js.map +0 -1
  75. package/dist/coValues/coStream/coStreamOf.js +0 -244
  76. package/dist/coValues/coStream/coStreamOf.js.map +0 -1
  77. package/dist/coValues/construction.js +0 -34
  78. package/dist/coValues/construction.js.map +0 -1
  79. package/dist/coValues/group/group.js +0 -2
  80. package/dist/coValues/group/group.js.map +0 -1
  81. package/dist/coValues/group/groupOf.js +0 -109
  82. package/dist/coValues/group/groupOf.js.map +0 -1
  83. package/dist/coValues/resolution.js +0 -66
  84. package/dist/coValues/resolution.js.map +0 -1
  85. package/dist/errors.js.map +0 -1
  86. package/dist/refs.js.map +0 -1
  87. package/dist/schemaHelpers.js +0 -14
  88. package/dist/schemaHelpers.js.map +0 -1
  89. package/dist/subscriptionScope.js.map +0 -1
  90. package/dist/tests/types.test.js +0 -33
  91. package/dist/tests/types.test.js.map +0 -1
  92. package/src/coValueInterfaces.ts +0 -105
  93. package/src/coValues/account/account.ts +0 -106
  94. package/src/coValues/account/accountOf.ts +0 -284
  95. package/src/coValues/account/migration.ts +0 -12
  96. package/src/coValues/coList/coList.ts +0 -57
  97. package/src/coValues/coList/coListOf.ts +0 -377
  98. package/src/coValues/coList/internalDocs.ts +0 -1
  99. package/src/coValues/coMap/coMap.ts +0 -110
  100. package/src/coValues/coMap/coMapOf.ts +0 -451
  101. package/src/coValues/coMap/internalDocs.ts +0 -1
  102. package/src/coValues/coStream/coStream.ts +0 -63
  103. package/src/coValues/coStream/coStreamOf.ts +0 -404
  104. package/src/coValues/construction.ts +0 -110
  105. package/src/coValues/group/group.ts +0 -27
  106. package/src/coValues/group/groupOf.ts +0 -183
  107. package/src/coValues/resolution.ts +0 -111
  108. package/src/schemaHelpers.ts +0 -72
  109. package/src/tests/types.test.ts +0 -37
  110. /package/dist/{errors.js → implementation/errors.js} +0 -0
  111. /package/src/{errors.ts → implementation/errors.ts} +0 -0
@@ -3,7 +3,7 @@ import { webcrypto } from "node:crypto";
3
3
  import { connectedPeers } from "cojson/src/streamUtils.js";
4
4
  import { newRandomSessionID } from "cojson/src/coValueCore.js";
5
5
  import { Effect, Queue } from "effect";
6
- import { Co, S, Account, jazzReady } from "..";
6
+ import { Account, CoList, jazzReady } from "..";
7
7
  if (!("crypto" in globalThis)) {
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
9
  globalThis.crypto = webcrypto;
@@ -15,8 +15,9 @@ describe("Simple CoList operations", async () => {
15
15
  const me = await Account.create({
16
16
  name: "Hermes Puggington",
17
17
  });
18
- class TestList extends Co.list(S.string).as() {
18
+ class TestList extends CoList {
19
19
  }
20
+ TestList.encoding({ _item: "json" });
20
21
  const list = new TestList(["bread", "butter", "onion"], { owner: me });
21
22
  test("Construction", () => {
22
23
  expect(list[0]).toBe("bread");
@@ -85,31 +86,34 @@ describe("Simple CoList operations", async () => {
85
86
  expect(list.length).toBe(2);
86
87
  expect(list._raw.asArray()).toEqual(["butter", "onion"]);
87
88
  });
88
- test("splice", () => {
89
- const list = new TestList(["bread", "butter", "onion"], {
90
- owner: me,
91
- });
92
- list.splice(1, 1, "salt", "pepper");
93
- expect(list.length).toBe(4);
94
- expect(list._raw.asArray()).toEqual([
95
- "bread",
96
- "salt",
97
- "pepper",
98
- "onion",
99
- ]);
100
- });
89
+ // test("splice", () => {
90
+ // const list = new TestList(["bread", "butter", "onion"], {
91
+ // owner: me,
92
+ // });
93
+ // list.splice(1, 1, "salt", "pepper");
94
+ // expect(list.length).toBe(4);
95
+ // expect(list._raw.asArray()).toEqual([
96
+ // "bread",
97
+ // "salt",
98
+ // "pepper",
99
+ // "onion",
100
+ // ]);
101
+ // });
101
102
  });
102
103
  });
103
104
  describe("CoList resolution", async () => {
104
- class TwiceNestedList extends Co.list(S.string).as() {
105
+ class TwiceNestedList extends CoList {
105
106
  joined() {
106
107
  return this.join(",");
107
108
  }
108
109
  }
109
- class NestedList extends Co.list(TwiceNestedList).as() {
110
+ TwiceNestedList.encoding({ _item: "json" });
111
+ class NestedList extends CoList {
110
112
  }
111
- class TestList extends Co.list(NestedList).as() {
113
+ NestedList.encoding({ _item: { ref: () => TwiceNestedList } });
114
+ class TestList extends CoList {
112
115
  }
116
+ TestList.encoding({ _item: { ref: () => NestedList } });
113
117
  const initNodeAndList = async () => {
114
118
  const me = await Account.create({
115
119
  name: "Hermes Puggington",
@@ -138,13 +142,13 @@ describe("CoList resolution", async () => {
138
142
  sessionID: newRandomSessionID(me.id),
139
143
  });
140
144
  const loadedList = await TestList.load(list.id, { as: meOnSecondPeer });
141
- expect(loadedList?.[0]).toBe(undefined);
145
+ expect(loadedList?.[0]).toBe(null);
142
146
  expect(loadedList?._refs[0]?.id).toEqual(list[0].id);
143
147
  const loadedNestedList = await NestedList.load(list[0].id, {
144
148
  as: meOnSecondPeer,
145
149
  });
146
150
  expect(loadedList?.[0]).toBeDefined();
147
- expect(loadedList?.[0]?.[0]).toBeUndefined();
151
+ expect(loadedList?.[0]?.[0]).toBe(null);
148
152
  expect(loadedList?.[0]?._refs[0]?.id).toEqual(list[0][0].id);
149
153
  expect(loadedList?._refs[0]?.value).toEqual(loadedNestedList);
150
154
  const loadedTwiceNestedList = await TwiceNestedList.load(list[0][0].id, { as: meOnSecondPeer });
@@ -175,10 +179,10 @@ describe("CoList resolution", async () => {
175
179
  Effect.runPromise(Queue.offer(queue, subscribedList));
176
180
  });
177
181
  const update1 = yield* $(Queue.take(queue));
178
- expect(update1?.[0]).toEqual(undefined);
182
+ expect(update1?.[0]).toBe(null);
179
183
  const update2 = yield* $(Queue.take(queue));
180
184
  expect(update2?.[0]).toBeDefined();
181
- expect(update2?.[0]?.[0]).toBeUndefined();
185
+ expect(update2?.[0]?.[0]).toBe(null);
182
186
  const update3 = yield* $(Queue.take(queue));
183
187
  expect(update3?.[0]?.[0]).toBeDefined();
184
188
  expect(update3?.[0]?.[0]?.[0]).toBe("a");
@@ -1 +1 @@
1
- {"version":3,"file":"coList.test.js","sourceRoot":"","sources":["../../src/tests/coList.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coList.test.js","sourceRoot":"","sources":["../../src/tests/coList.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { webcrypto } from "node:crypto";
3
3
  import { connectedPeers } from "cojson/src/streamUtils.js";
4
4
  import { newRandomSessionID } from "cojson/src/coValueCore.js";
5
5
  import { Effect, Queue } from "effect";
6
- import { Co, S, Account, jazzReady } from "..";
6
+ import { Account, jazzReady, Encoders, indexSignature, CoMap } from "..";
7
7
  if (!("crypto" in globalThis)) {
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
9
  globalThis.crypto = webcrypto;
@@ -15,16 +15,18 @@ describe("Simple CoMap operations", async () => {
15
15
  const me = await Account.create({
16
16
  name: "Hermes Puggington",
17
17
  });
18
- class TestMap extends Co.map({
19
- color: S.string,
20
- height: S.number,
21
- birthday: S.Date,
22
- name: S.optional(S.string),
23
- }).as() {
24
- get roughColor() {
18
+ class TestMap extends CoMap {
19
+ get _roughColor() {
25
20
  return this.color + "ish";
26
21
  }
27
22
  }
23
+ TestMap.encoding({
24
+ color: "json",
25
+ height: "json",
26
+ birthday: { encoded: Encoders.Date },
27
+ name: "json",
28
+ });
29
+ console.log("TestMap schema", TestMap.prototype._encoding);
28
30
  const birthday = new Date();
29
31
  const map = new TestMap({
30
32
  color: "red",
@@ -33,7 +35,7 @@ describe("Simple CoMap operations", async () => {
33
35
  }, { owner: me });
34
36
  test("Construction", () => {
35
37
  expect(map.color).toEqual("red");
36
- expect(map.roughColor).toEqual("redish");
38
+ expect(map._roughColor).toEqual("redish");
37
39
  expect(map.height).toEqual(10);
38
40
  expect(map.birthday).toEqual(birthday);
39
41
  expect(map._raw.get("birthday")).toEqual(birthday.toISOString());
@@ -54,33 +56,58 @@ describe("Simple CoMap operations", async () => {
54
56
  expect(map._raw.get("height")).toEqual(20);
55
57
  map.name = "Secret name";
56
58
  expect(map.name).toEqual("Secret name");
57
- delete map.name;
59
+ map.name = undefined;
58
60
  expect(map.name).toEqual(undefined);
59
61
  });
60
62
  });
63
+ class RecursiveMap extends CoMap {
64
+ }
65
+ RecursiveMap.encoding({
66
+ name: "json",
67
+ next: { ref: () => RecursiveMap },
68
+ });
69
+ const recursiveMap = new RecursiveMap({
70
+ name: "first",
71
+ next: new RecursiveMap({
72
+ name: "second",
73
+ next: new RecursiveMap({
74
+ name: "third",
75
+ }, { owner: me }),
76
+ }, { owner: me }),
77
+ }, { owner: me });
78
+ describe("Recursive CoMap", () => {
79
+ test("Construction", () => {
80
+ expect(recursiveMap.name).toEqual("first");
81
+ expect(recursiveMap.next?.name).toEqual("second");
82
+ expect(recursiveMap.next?.next?.name).toEqual("third");
83
+ });
84
+ });
61
85
  });
62
86
  describe("CoMap resolution", async () => {
63
- class TwiceNestedMap extends Co.map({
64
- taste: S.string,
65
- }).as() {
87
+ class TwiceNestedMap extends CoMap {
66
88
  }
67
- class NestedMap extends Co.map({
68
- name: S.string,
69
- twiceNested: TwiceNestedMap,
70
- }).as() {
71
- get fancyName() {
89
+ TwiceNestedMap.encoding({
90
+ taste: "json",
91
+ });
92
+ class NestedMap extends CoMap {
93
+ get _fancyName() {
72
94
  return "Sir " + this.name;
73
95
  }
74
96
  }
75
- class TestMap extends Co.map({
76
- color: S.string,
77
- height: S.number,
78
- nested: NestedMap,
79
- }).as() {
80
- get roughColor() {
97
+ NestedMap.encoding({
98
+ name: "json",
99
+ twiceNested: { ref: () => TwiceNestedMap },
100
+ });
101
+ class TestMap extends CoMap {
102
+ get _roughColor() {
81
103
  return this.color + "ish";
82
104
  }
83
105
  }
106
+ TestMap.encoding({
107
+ color: "json",
108
+ height: "json",
109
+ nested: { ref: () => NestedMap },
110
+ });
84
111
  const initNodeAndMap = async () => {
85
112
  const me = await Account.create({
86
113
  name: "Hermes Puggington",
@@ -99,10 +126,10 @@ describe("CoMap resolution", async () => {
99
126
  const { map } = await initNodeAndMap();
100
127
  // const test: Schema.Schema.To<typeof NestedMap>
101
128
  expect(map.color).toEqual("red");
102
- expect(map.roughColor).toEqual("redish");
129
+ expect(map._roughColor).toEqual("redish");
103
130
  expect(map.height).toEqual(10);
104
131
  expect(map.nested?.name).toEqual("nested");
105
- expect(map.nested?.fancyName).toEqual("Sir nested");
132
+ expect(map.nested?._fancyName).toEqual("Sir nested");
106
133
  expect(map.nested?.id).toBeDefined();
107
134
  expect(map.nested?.twiceNested?.taste).toEqual("sour");
108
135
  });
@@ -119,14 +146,14 @@ describe("CoMap resolution", async () => {
119
146
  const loadedMap = await TestMap.load(map.id, { as: meOnSecondPeer });
120
147
  expect(loadedMap?.color).toEqual("red");
121
148
  expect(loadedMap?.height).toEqual(10);
122
- expect(loadedMap?.nested).toEqual(undefined);
149
+ expect(loadedMap?.nested).toEqual(null);
123
150
  expect(loadedMap?._refs.nested?.id).toEqual(map.nested?.id);
124
- expect(loadedMap?._refs.nested?.value).toEqual(undefined);
151
+ expect(loadedMap?._refs.nested?.value).toEqual(null);
125
152
  const loadedNestedMap = await NestedMap.load(map.nested.id, {
126
153
  as: meOnSecondPeer,
127
154
  });
128
155
  expect(loadedMap?.nested?.name).toEqual("nested");
129
- expect(loadedMap?.nested.fancyName).toEqual("Sir nested");
156
+ expect(loadedMap?.nested?._fancyName).toEqual("Sir nested");
130
157
  expect(loadedMap?._refs.nested?.value).toEqual(loadedNestedMap);
131
158
  expect(loadedMap?.nested?.twiceNested?.taste).toEqual(undefined);
132
159
  const loadedTwiceNestedMap = await TwiceNestedMap.load(map.nested.twiceNested.id, { as: meOnSecondPeer });
@@ -160,7 +187,7 @@ describe("CoMap resolution", async () => {
160
187
  Effect.runPromise(Queue.offer(queue, subscribedMap));
161
188
  });
162
189
  const update1 = yield* $(Queue.take(queue));
163
- expect(update1.nested).toEqual(undefined);
190
+ expect(update1.nested).toEqual(null);
164
191
  const update2 = yield* $(Queue.take(queue));
165
192
  expect(update2.nested?.name).toEqual("nested");
166
193
  map.nested.name = "nestedUpdated";
@@ -192,11 +219,12 @@ describe("CoMap resolution", async () => {
192
219
  expect(update6.nested?.twiceNested?.taste).toEqual("umami");
193
220
  }));
194
221
  });
195
- class TestMapWithOptionalRef extends Co.map({
196
- color: S.string,
197
- nested: S.optional(NestedMap),
198
- }).as() {
222
+ class TestMapWithOptionalRef extends CoMap {
199
223
  }
224
+ TestMapWithOptionalRef.encoding({
225
+ color: "json",
226
+ nested: { ref: () => NestedMap },
227
+ });
200
228
  test("Construction with optional", async () => {
201
229
  const me = await Account.create({
202
230
  name: "Hermes Puggington",
@@ -215,24 +243,27 @@ describe("CoMap resolution", async () => {
215
243
  }, { owner: me });
216
244
  expect(mapWith.color).toEqual("red");
217
245
  expect(mapWith.nested?.name).toEqual("wow!");
218
- expect(mapWith.nested?.fancyName).toEqual("Sir wow!");
246
+ expect(mapWith.nested?._fancyName).toEqual("Sir wow!");
219
247
  expect(mapWith.nested?._raw).toBeDefined();
220
248
  });
221
- class TestRecord extends Co.map({ color: S.string }, { key: S.string, value: S.string }).as() {
249
+ class TestRecord extends CoMap {
222
250
  }
251
+ TestRecord.encoding({
252
+ [indexSignature]: "json",
253
+ });
223
254
  test("Construction with index signature", async () => {
224
255
  const me = await Account.create({
225
256
  name: "Hermes Puggington",
226
257
  });
227
258
  const record = new TestRecord({
228
- color: "red",
229
- other: "wild",
259
+ height: 5,
260
+ other: 3,
230
261
  }, { owner: me });
231
- expect(record.color).toEqual("red");
232
- expect(record._raw.get("color")).toEqual("red");
233
- expect(record.other).toEqual("wild");
234
- expect(record._raw.get("other")).toEqual("wild");
235
- expect(Object.keys(record)).toEqual(["color", "other"]);
262
+ expect(record.height).toEqual(5);
263
+ expect(record._raw.get("height")).toEqual(5);
264
+ expect(record.other).toEqual(3);
265
+ expect(record._raw.get("other")).toEqual(3);
266
+ expect(Object.keys(record)).toEqual(["height", "other"]);
236
267
  });
237
268
  });
238
269
  //# sourceMappingURL=coMap.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coMap.test.js","sourceRoot":"","sources":["../../src/tests/coMap.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coMap.test.js","sourceRoot":"","sources":["../../src/tests/coMap.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { webcrypto } from "node:crypto";
3
3
  import { connectedPeers } from "cojson/src/streamUtils.js";
4
4
  import { newRandomSessionID } from "cojson/src/coValueCore.js";
5
5
  import { Effect, Queue } from "effect";
6
- import { Co, S, Account, jazzReady } from "..";
6
+ import { BinaryCoStream, Account, jazzReady, CoStream } from "..";
7
7
  if (!("crypto" in globalThis)) {
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
9
  globalThis.crypto = webcrypto;
@@ -15,8 +15,9 @@ describe("Simple CoStream operations", async () => {
15
15
  const me = await Account.create({
16
16
  name: "Hermes Puggington",
17
17
  });
18
- class TestStream extends Co.stream(S.string).as() {
18
+ class TestStream extends CoStream {
19
19
  }
20
+ TestStream.encoding({ _item: "json" });
20
21
  const stream = new TestStream(["milk"], { owner: me });
21
22
  test("Construction", () => {
22
23
  expect(stream.by[me.id]?.value).toEqual("milk");
@@ -34,15 +35,18 @@ describe("Simple CoStream operations", async () => {
34
35
  });
35
36
  });
36
37
  describe("CoStream resolution", async () => {
37
- class TwiceNestedStream extends Co.stream(S.string).as() {
38
+ class TwiceNestedStream extends CoStream {
38
39
  fancyValueOf(account) {
39
40
  return "Sir " + this.by[account]?.value;
40
41
  }
41
42
  }
42
- class NestedStream extends Co.stream(TwiceNestedStream).as() {
43
+ TwiceNestedStream.encoding({ _item: "json" });
44
+ class NestedStream extends CoStream {
43
45
  }
44
- class TestStream extends Co.stream(NestedStream).as() {
46
+ NestedStream.encoding({ _item: { ref: () => TwiceNestedStream } });
47
+ class TestStream extends CoStream {
45
48
  }
49
+ TestStream.encoding({ _item: { ref: () => NestedStream } });
46
50
  const initNodeAndStream = async () => {
47
51
  const me = await Account.create({
48
52
  name: "Hermes Puggington",
@@ -69,23 +73,30 @@ describe("CoStream resolution", async () => {
69
73
  const loadedStream = await TestStream.load(stream.id, {
70
74
  as: meOnSecondPeer,
71
75
  });
72
- expect(loadedStream?.by[me.id]?.value).toEqual(undefined);
76
+ expect(loadedStream?.by[me.id]?.value).toEqual(null);
73
77
  expect(loadedStream?.by[me.id]?.ref?.id).toEqual(stream.by[me.id]?.value?.id);
74
78
  const loadedNestedStream = await NestedStream.load(stream.by[me.id].value.id, { as: meOnSecondPeer });
75
- expect(loadedStream?.by[me.id]?.value).toEqual(loadedNestedStream);
76
- expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value).toEqual(undefined);
77
- expect(loadedStream?.by[me.id]?.ref?.value).toEqual(loadedNestedStream);
79
+ // expect(loadedStream?.by[me.id]?.value).toEqual(loadedNestedStream);
80
+ expect(loadedStream?.by[me.id]?.value?.id).toEqual(loadedNestedStream?.id);
81
+ expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value).toEqual(null);
82
+ // expect(loadedStream?.by[me.id]?.ref?.value).toEqual(loadedNestedStream);
83
+ expect(loadedStream?.by[me.id]?.ref?.value?.id).toEqual(loadedNestedStream?.id);
78
84
  expect(loadedStream?.by[me.id]?.value?.by[me.id]?.ref?.id).toEqual(stream.by[me.id]?.value?.by[me.id]?.value?.id);
79
85
  const loadedTwiceNestedStream = await TwiceNestedStream.load(stream.by[me.id].value.by[me.id].value.id, { as: meOnSecondPeer });
80
- expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value).toEqual(loadedTwiceNestedStream);
86
+ // expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value).toEqual(
87
+ // loadedTwiceNestedStream
88
+ // );
89
+ expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value?.id).toEqual(loadedTwiceNestedStream?.id);
81
90
  expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value?.fancyValueOf(me.id)).toEqual("Sir milk");
82
- expect(loadedStream?.by[me.id]?.ref?.value).toEqual(loadedNestedStream);
83
- expect(loadedStream?.by[me.id]?.value?.by[me.id]?.ref?.value).toEqual(loadedTwiceNestedStream);
91
+ // expect(loadedStream?.by[me.id]?.ref?.value).toEqual(loadedNestedStream);
92
+ expect(loadedStream?.by[me.id]?.ref?.value?.id).toEqual(loadedNestedStream?.id);
93
+ expect(loadedStream?.by[me.id]?.value?.by[me.id]?.ref?.value?.id).toEqual(loadedTwiceNestedStream?.id);
84
94
  const otherNestedStream = new NestedStream([new TwiceNestedStream(["butter"], { owner: meOnSecondPeer })], { owner: meOnSecondPeer });
85
95
  loadedStream?.push(otherNestedStream);
86
- expect(loadedStream?.by[me.id]?.value).toEqual(otherNestedStream);
87
- expect(loadedStream?.by[me.id]?.ref?.value).toEqual(otherNestedStream);
88
- expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value).toEqual(otherNestedStream.by[me.id]?.value);
96
+ // expect(loadedStream?.by[me.id]?.value).toEqual(otherNestedStream);
97
+ expect(loadedStream?.by[me.id]?.value?.id).toEqual(otherNestedStream?.id);
98
+ expect(loadedStream?.by[me.id]?.ref?.value?.id).toEqual(otherNestedStream?.id);
99
+ expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value?.id).toEqual(otherNestedStream.by[me.id]?.value?.id);
89
100
  expect(loadedStream?.by[me.id]?.value?.by[me.id]?.value?.fancyValueOf(me.id)).toEqual("Sir butter");
90
101
  });
91
102
  test("Subscription & auto-resolution", async () => {
@@ -109,10 +120,10 @@ describe("CoStream resolution", async () => {
109
120
  });
110
121
  const te = stream;
111
122
  const update1 = yield* $(Queue.take(queue));
112
- expect(update1.by[me.id]?.value).toEqual(undefined);
123
+ expect(update1.by[me.id]?.value).toEqual(null);
113
124
  const update2 = yield* $(Queue.take(queue));
114
125
  expect(update2.by[me.id]?.value).toBeDefined();
115
- expect(update2.by[me.id]?.value?.by[me.id]?.value).toBeUndefined();
126
+ expect(update2.by[me.id]?.value?.by[me.id]?.value).toBe(null);
116
127
  const update3 = yield* $(Queue.take(queue));
117
128
  expect(update3.by[me.id]?.value?.by[me.id]?.value).toBeDefined();
118
129
  expect(update3.by[me.id]?.value?.by[me.id]?.value?.by[me.id]?.value).toBe("milk");
@@ -140,9 +151,9 @@ describe("Simple BinaryCoStream operations", async () => {
140
151
  const me = await Account.create({
141
152
  name: "Hermes Puggington",
142
153
  });
143
- const stream = new Co.binaryStream(undefined, { owner: me });
154
+ const stream = new BinaryCoStream(undefined, { owner: me });
144
155
  test("Construction", () => {
145
- expect(stream.getChunks()).toBeUndefined();
156
+ expect(stream.getChunks()).toBe(undefined);
146
157
  });
147
158
  test("Mutation", () => {
148
159
  stream.start({ mimeType: "text/plain" });
@@ -163,7 +174,7 @@ describe("BinaryCoStream loading & Subscription", async () => {
163
174
  const me = await Account.create({
164
175
  name: "Hermes Puggington",
165
176
  });
166
- const stream = new Co.binaryStream(undefined, { owner: me });
177
+ const stream = new BinaryCoStream(undefined, { owner: me });
167
178
  stream.start({ mimeType: "text/plain" });
168
179
  stream.push(new Uint8Array([1, 2, 3]));
169
180
  stream.push(new Uint8Array([4, 5, 6]));
@@ -188,7 +199,7 @@ describe("BinaryCoStream loading & Subscription", async () => {
188
199
  peersToLoadFrom: [initialAsPeer],
189
200
  sessionID: newRandomSessionID(me.id),
190
201
  });
191
- const loadedStream = await Co.binaryStream.load(stream.id, {
202
+ const loadedStream = await BinaryCoStream.load(stream.id, {
192
203
  as: meOnSecondPeer,
193
204
  });
194
205
  expect(loadedStream?.getChunks()).toEqual({
@@ -199,7 +210,7 @@ describe("BinaryCoStream loading & Subscription", async () => {
199
210
  });
200
211
  test("Subscription", async () => {
201
212
  const { me } = await initNodeAndStream();
202
- const stream = new Co.binaryStream(undefined, { owner: me });
213
+ const stream = new BinaryCoStream(undefined, { owner: me });
203
214
  const [initialAsPeer, secondAsPeer] = connectedPeers("initial", "second", { peer1role: "server", peer2role: "client" });
204
215
  me._raw.core.node.syncManager.addPeer(secondAsPeer);
205
216
  const meOnSecondPeer = await Account.become({
@@ -210,11 +221,11 @@ describe("BinaryCoStream loading & Subscription", async () => {
210
221
  });
211
222
  await Effect.runPromise(Effect.gen(function* ($) {
212
223
  const queue = yield* $(Queue.unbounded());
213
- Co.binaryStream.subscribe(stream.id, { as: meOnSecondPeer }, (subscribedStream) => {
224
+ BinaryCoStream.subscribe(stream.id, { as: meOnSecondPeer }, (subscribedStream) => {
214
225
  Effect.runPromise(Queue.offer(queue, subscribedStream));
215
226
  });
216
227
  const update1 = yield* $(Queue.take(queue));
217
- expect(update1.getChunks()).toBeUndefined();
228
+ expect(update1.getChunks()).toBe(undefined);
218
229
  stream.start({ mimeType: "text/plain" });
219
230
  const update2 = yield* $(Queue.take(queue));
220
231
  expect(update2.getChunks({ allowUnfinished: true })).toEqual({