jazz-tools 0.7.0-alpha.9 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. package/.eslintrc.cjs +3 -10
  2. package/.prettierrc.js +9 -0
  3. package/.turbo/turbo-build.log +3 -19
  4. package/.turbo/turbo-lint.log +4 -0
  5. package/.turbo/turbo-test.log +140 -0
  6. package/CHANGELOG.md +298 -0
  7. package/README.md +10 -2
  8. package/dist/coValues/account.js +59 -41
  9. package/dist/coValues/account.js.map +1 -1
  10. package/dist/coValues/coList.js +49 -46
  11. package/dist/coValues/coList.js.map +1 -1
  12. package/dist/coValues/coMap.js +143 -44
  13. package/dist/coValues/coMap.js.map +1 -1
  14. package/dist/coValues/coStream.js +144 -35
  15. package/dist/coValues/coStream.js.map +1 -1
  16. package/dist/coValues/deepLoading.js +60 -0
  17. package/dist/coValues/deepLoading.js.map +1 -0
  18. package/dist/coValues/extensions/imageDef.js +10 -7
  19. package/dist/coValues/extensions/imageDef.js.map +1 -1
  20. package/dist/coValues/group.js +49 -13
  21. package/dist/coValues/group.js.map +1 -1
  22. package/dist/coValues/interfaces.js +70 -31
  23. package/dist/coValues/interfaces.js.map +1 -1
  24. package/dist/implementation/devtoolsFormatters.js +114 -0
  25. package/dist/implementation/devtoolsFormatters.js.map +1 -0
  26. package/dist/implementation/refs.js +58 -18
  27. package/dist/implementation/refs.js.map +1 -1
  28. package/dist/implementation/schema.js +58 -0
  29. package/dist/implementation/schema.js.map +1 -0
  30. package/dist/implementation/subscriptionScope.js +19 -1
  31. package/dist/implementation/subscriptionScope.js.map +1 -1
  32. package/dist/implementation/symbols.js +5 -0
  33. package/dist/implementation/symbols.js.map +1 -0
  34. package/dist/index.js +3 -5
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal.js +5 -2
  37. package/dist/internal.js.map +1 -1
  38. package/dist/tests/coList.test.js +51 -48
  39. package/dist/tests/coList.test.js.map +1 -1
  40. package/dist/tests/coMap.test.js +131 -74
  41. package/dist/tests/coMap.test.js.map +1 -1
  42. package/dist/tests/coStream.test.js +56 -41
  43. package/dist/tests/coStream.test.js.map +1 -1
  44. package/dist/tests/deepLoading.test.js +188 -0
  45. package/dist/tests/deepLoading.test.js.map +1 -0
  46. package/dist/tests/groupsAndAccounts.test.js +83 -0
  47. package/dist/tests/groupsAndAccounts.test.js.map +1 -0
  48. package/package.json +17 -9
  49. package/src/coValues/account.ts +113 -125
  50. package/src/coValues/coList.ts +87 -103
  51. package/src/coValues/coMap.ts +200 -147
  52. package/src/coValues/coStream.ts +264 -80
  53. package/src/coValues/deepLoading.ts +229 -0
  54. package/src/coValues/extensions/imageDef.ts +17 -13
  55. package/src/coValues/group.ts +92 -58
  56. package/src/coValues/interfaces.ts +215 -115
  57. package/src/implementation/devtoolsFormatters.ts +110 -0
  58. package/src/implementation/inspect.ts +1 -1
  59. package/src/implementation/refs.ts +80 -28
  60. package/src/implementation/schema.ts +138 -0
  61. package/src/implementation/subscriptionScope.ts +48 -12
  62. package/src/implementation/symbols.ts +11 -0
  63. package/src/index.ts +12 -8
  64. package/src/internal.ts +7 -3
  65. package/src/tests/coList.test.ts +77 -62
  66. package/src/tests/coMap.test.ts +201 -114
  67. package/src/tests/coStream.test.ts +113 -84
  68. package/src/tests/deepLoading.test.ts +301 -0
  69. package/src/tests/groupsAndAccounts.test.ts +91 -0
  70. package/dist/implementation/encoding.js +0 -26
  71. package/dist/implementation/encoding.js.map +0 -1
  72. package/src/implementation/encoding.ts +0 -105
@@ -1,23 +1,20 @@
1
- import { expect, describe, test, beforeEach } from "vitest";
2
- import { webcrypto } from "node:crypto";
1
+ import { expect, describe, test } from "vitest";
3
2
  import { connectedPeers } from "cojson/src/streamUtils.js";
4
3
  import { newRandomSessionID } from "cojson/src/coValueCore.js";
5
4
  import { Effect, Queue } from "effect";
6
- import { BinaryCoStream, Account, jazzReady, CoStream, val } from "..";
7
- if (!("crypto" in globalThis)) {
8
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
- globalThis.crypto = webcrypto;
10
- }
11
- beforeEach(async () => {
12
- await jazzReady;
13
- });
5
+ import { BinaryCoStream, Account, CoStream, co, WasmCrypto, isControlledAccount, } from "../index.js";
6
+ const Crypto = await WasmCrypto.create();
14
7
  describe("Simple CoStream operations", async () => {
15
8
  const me = await Account.create({
16
- name: "Hermes Puggington",
9
+ creationProps: { name: "Hermes Puggington" },
10
+ crypto: Crypto,
17
11
  });
18
- class TestStream extends CoStream.Of(val.string) {
12
+ if (!isControlledAccount(me)) {
13
+ throw "me is not a controlled account";
14
+ }
15
+ class TestStream extends CoStream.Of(co.string) {
19
16
  }
20
- const stream = new TestStream(["milk"], { owner: me });
17
+ const stream = TestStream.create(["milk"], { owner: me });
21
18
  test("Construction", () => {
22
19
  expect(stream[me.id]?.value).toEqual("milk");
23
20
  expect(stream.perSession[me.sessionID]?.value).toEqual("milk");
@@ -34,21 +31,22 @@ describe("Simple CoStream operations", async () => {
34
31
  });
35
32
  });
36
33
  describe("CoStream resolution", async () => {
37
- class TwiceNestedStream extends CoStream.Of(val.string) {
34
+ class TwiceNestedStream extends CoStream.Of(co.string) {
38
35
  fancyValueOf(account) {
39
36
  return "Sir " + this[account]?.value;
40
37
  }
41
38
  }
42
- class NestedStream extends CoStream.Of(val.ref(() => TwiceNestedStream)) {
39
+ class NestedStream extends CoStream.Of(co.ref(TwiceNestedStream)) {
43
40
  }
44
- class TestStream extends CoStream.Of(val.ref(() => NestedStream)) {
41
+ class TestStream extends CoStream.Of(co.ref(NestedStream)) {
45
42
  }
46
43
  const initNodeAndStream = async () => {
47
44
  const me = await Account.create({
48
- name: "Hermes Puggington",
45
+ creationProps: { name: "Hermes Puggington" },
46
+ crypto: Crypto,
49
47
  });
50
- const stream = new TestStream([
51
- new NestedStream([new TwiceNestedStream(["milk"], { owner: me })], { owner: me }),
48
+ const stream = TestStream.create([
49
+ NestedStream.create([TwiceNestedStream.create(["milk"], { owner: me })], { owner: me }),
52
50
  ], { owner: me });
53
51
  return { me, stream };
54
52
  };
@@ -59,26 +57,29 @@ describe("CoStream resolution", async () => {
59
57
  test("Loading and availability", async () => {
60
58
  const { me, stream } = await initNodeAndStream();
61
59
  const [initialAsPeer, secondPeer] = connectedPeers("initial", "second", { peer1role: "server", peer2role: "client" });
60
+ if (!isControlledAccount(me)) {
61
+ throw "me is not a controlled account";
62
+ }
62
63
  me._raw.core.node.syncManager.addPeer(secondPeer);
63
64
  const meOnSecondPeer = await Account.become({
64
65
  accountID: me.id,
65
66
  accountSecret: me._raw.agentSecret,
66
67
  peersToLoadFrom: [initialAsPeer],
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
69
  sessionID: newRandomSessionID(me.id),
70
+ crypto: Crypto,
68
71
  });
69
- const loadedStream = await TestStream.load(stream.id, {
70
- as: meOnSecondPeer,
71
- });
72
+ const loadedStream = await TestStream.load(stream.id, meOnSecondPeer, []);
72
73
  expect(loadedStream?.[me.id]?.value).toEqual(null);
73
74
  expect(loadedStream?.[me.id]?.ref?.id).toEqual(stream[me.id]?.value?.id);
74
- const loadedNestedStream = await NestedStream.load(stream[me.id].value.id, { as: meOnSecondPeer });
75
+ const loadedNestedStream = await NestedStream.load(stream[me.id].value.id, meOnSecondPeer, []);
75
76
  // expect(loadedStream?.[me.id]?.value).toEqual(loadedNestedStream);
76
77
  expect(loadedStream?.[me.id]?.value?.id).toEqual(loadedNestedStream?.id);
77
78
  expect(loadedStream?.[me.id]?.value?.[me.id]?.value).toEqual(null);
78
79
  // expect(loadedStream?.[me.id]?.ref?.value).toEqual(loadedNestedStream);
79
80
  expect(loadedStream?.[me.id]?.ref?.value?.id).toEqual(loadedNestedStream?.id);
80
81
  expect(loadedStream?.[me.id]?.value?.[me.id]?.ref?.id).toEqual(stream[me.id]?.value?.[me.id]?.value?.id);
81
- const loadedTwiceNestedStream = await TwiceNestedStream.load(stream[me.id].value[me.id].value.id, { as: meOnSecondPeer });
82
+ const loadedTwiceNestedStream = await TwiceNestedStream.load(stream[me.id].value[me.id].value.id, meOnSecondPeer, []);
82
83
  // expect(loadedStream?.[me.id]?.value?.[me.id]?.value).toEqual(
83
84
  // loadedTwiceNestedStream
84
85
  // );
@@ -87,7 +88,7 @@ describe("CoStream resolution", async () => {
87
88
  // expect(loadedStream?.[me.id]?.ref?.value).toEqual(loadedNestedStream);
88
89
  expect(loadedStream?.[me.id]?.ref?.value?.id).toEqual(loadedNestedStream?.id);
89
90
  expect(loadedStream?.[me.id]?.value?.[me.id]?.ref?.value?.id).toEqual(loadedTwiceNestedStream?.id);
90
- const otherNestedStream = new NestedStream([new TwiceNestedStream(["butter"], { owner: meOnSecondPeer })], { owner: meOnSecondPeer });
91
+ const otherNestedStream = NestedStream.create([TwiceNestedStream.create(["butter"], { owner: meOnSecondPeer })], { owner: meOnSecondPeer });
91
92
  loadedStream?.push(otherNestedStream);
92
93
  // expect(loadedStream?.[me.id]?.value).toEqual(otherNestedStream);
93
94
  expect(loadedStream?.[me.id]?.value?.id).toEqual(otherNestedStream?.id);
@@ -99,21 +100,25 @@ describe("CoStream resolution", async () => {
99
100
  const { me, stream } = await initNodeAndStream();
100
101
  const [initialAsPeer, secondAsPeer] = connectedPeers("initial", "second", { peer1role: "server", peer2role: "client" });
101
102
  me._raw.core.node.syncManager.addPeer(secondAsPeer);
103
+ if (!isControlledAccount(me)) {
104
+ throw "me is not a controlled account";
105
+ }
102
106
  const meOnSecondPeer = await Account.become({
103
107
  accountID: me.id,
104
108
  accountSecret: me._raw.agentSecret,
105
109
  peersToLoadFrom: [initialAsPeer],
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
111
  sessionID: newRandomSessionID(me.id),
112
+ crypto: Crypto,
107
113
  });
108
114
  await Effect.runPromise(Effect.gen(function* ($) {
109
115
  const queue = yield* $(Queue.unbounded());
110
- TestStream.subscribe(stream.id, { as: meOnSecondPeer }, (subscribedStream) => {
116
+ TestStream.subscribe(stream.id, meOnSecondPeer, [], (subscribedStream) => {
111
117
  console.log("subscribedStream[me.id]", subscribedStream[me.id]);
112
118
  console.log("subscribedStream[me.id]?.value?.[me.id]?.value", subscribedStream[me.id]?.value?.[me.id]?.value);
113
119
  console.log("subscribedStream[me.id]?.value?.[me.id]?.value?.[me.id]?.value", subscribedStream[me.id]?.value?.[me.id]?.value?.[me.id]?.value);
114
- Effect.runPromise(Queue.offer(queue, subscribedStream));
120
+ void Effect.runPromise(Queue.offer(queue, subscribedStream));
115
121
  });
116
- const te = stream;
117
122
  const update1 = yield* $(Queue.take(queue));
118
123
  expect(update1[me.id]?.value).toEqual(null);
119
124
  const update2 = yield* $(Queue.take(queue));
@@ -126,10 +131,10 @@ describe("CoStream resolution", async () => {
126
131
  const update4 = yield* $(Queue.take(queue));
127
132
  expect(update4[me.id]?.value?.[me.id]?.value?.[me.id]?.value).toBe("bread");
128
133
  // When assigning a new nested stream, we get an update
129
- const newTwiceNested = new TwiceNestedStream(["butter"], {
134
+ const newTwiceNested = TwiceNestedStream.create(["butter"], {
130
135
  owner: meOnSecondPeer,
131
136
  });
132
- const newNested = new NestedStream([newTwiceNested], {
137
+ const newNested = NestedStream.create([newTwiceNested], {
133
138
  owner: meOnSecondPeer,
134
139
  });
135
140
  update4.push(newNested);
@@ -144,9 +149,10 @@ describe("CoStream resolution", async () => {
144
149
  });
145
150
  describe("Simple BinaryCoStream operations", async () => {
146
151
  const me = await Account.create({
147
- name: "Hermes Puggington",
152
+ creationProps: { name: "Hermes Puggington" },
153
+ crypto: Crypto,
148
154
  });
149
- const stream = new BinaryCoStream(undefined, { owner: me });
155
+ const stream = BinaryCoStream.create({ owner: me });
150
156
  test("Construction", () => {
151
157
  expect(stream.getChunks()).toBe(undefined);
152
158
  });
@@ -167,9 +173,10 @@ describe("Simple BinaryCoStream operations", async () => {
167
173
  describe("BinaryCoStream loading & Subscription", async () => {
168
174
  const initNodeAndStream = async () => {
169
175
  const me = await Account.create({
170
- name: "Hermes Puggington",
176
+ creationProps: { name: "Hermes Puggington" },
177
+ crypto: Crypto,
171
178
  });
172
- const stream = new BinaryCoStream(undefined, { owner: me });
179
+ const stream = BinaryCoStream.create({ owner: me });
173
180
  stream.start({ mimeType: "text/plain" });
174
181
  stream.push(new Uint8Array([1, 2, 3]));
175
182
  stream.push(new Uint8Array([4, 5, 6]));
@@ -177,7 +184,7 @@ describe("BinaryCoStream loading & Subscription", async () => {
177
184
  return { me, stream };
178
185
  };
179
186
  test("Construction", async () => {
180
- const { me, stream } = await initNodeAndStream();
187
+ const { stream } = await initNodeAndStream();
181
188
  expect(stream.getChunks()).toEqual({
182
189
  mimeType: "text/plain",
183
190
  chunks: [new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6])],
@@ -187,16 +194,19 @@ describe("BinaryCoStream loading & Subscription", async () => {
187
194
  test("Loading and availability", async () => {
188
195
  const { me, stream } = await initNodeAndStream();
189
196
  const [initialAsPeer, secondAsPeer] = connectedPeers("initial", "second", { peer1role: "server", peer2role: "client" });
197
+ if (!isControlledAccount(me)) {
198
+ throw "me is not a controlled account";
199
+ }
190
200
  me._raw.core.node.syncManager.addPeer(secondAsPeer);
191
201
  const meOnSecondPeer = await Account.become({
192
202
  accountID: me.id,
193
203
  accountSecret: me._raw.agentSecret,
194
204
  peersToLoadFrom: [initialAsPeer],
205
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
195
206
  sessionID: newRandomSessionID(me.id),
207
+ crypto: Crypto,
196
208
  });
197
- const loadedStream = await BinaryCoStream.load(stream.id, {
198
- as: meOnSecondPeer,
199
- });
209
+ const loadedStream = await BinaryCoStream.load(stream.id, meOnSecondPeer, []);
200
210
  expect(loadedStream?.getChunks()).toEqual({
201
211
  mimeType: "text/plain",
202
212
  chunks: [new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6])],
@@ -205,19 +215,24 @@ describe("BinaryCoStream loading & Subscription", async () => {
205
215
  });
206
216
  test("Subscription", async () => {
207
217
  const { me } = await initNodeAndStream();
208
- const stream = new BinaryCoStream(undefined, { owner: me });
218
+ const stream = BinaryCoStream.create({ owner: me });
209
219
  const [initialAsPeer, secondAsPeer] = connectedPeers("initial", "second", { peer1role: "server", peer2role: "client" });
210
220
  me._raw.core.node.syncManager.addPeer(secondAsPeer);
221
+ if (!isControlledAccount(me)) {
222
+ throw "me is not a controlled account";
223
+ }
211
224
  const meOnSecondPeer = await Account.become({
212
225
  accountID: me.id,
213
226
  accountSecret: me._raw.agentSecret,
214
227
  peersToLoadFrom: [initialAsPeer],
228
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
215
229
  sessionID: newRandomSessionID(me.id),
230
+ crypto: Crypto,
216
231
  });
217
232
  await Effect.runPromise(Effect.gen(function* ($) {
218
233
  const queue = yield* $(Queue.unbounded());
219
- BinaryCoStream.subscribe(stream.id, { as: meOnSecondPeer }, (subscribedStream) => {
220
- Effect.runPromise(Queue.offer(queue, subscribedStream));
234
+ BinaryCoStream.subscribe(stream.id, meOnSecondPeer, [], (subscribedStream) => {
235
+ void Effect.runPromise(Queue.offer(queue, subscribedStream));
221
236
  });
222
237
  const update1 = yield* $(Queue.take(queue));
223
238
  expect(update1.getChunks()).toBe(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"coStream.test.js","sourceRoot":"","sources":["../../src/tests/coStream.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coStream.test.js","sourceRoot":"","sources":["../../src/tests/coStream.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ const Crypto = await WasmCrypto.create();
2
+ import { expect, describe, test, expectTypeOf } from "vitest";
3
+ import { connectedPeers } from "cojson/src/streamUtils.js";
4
+ import { Account, CoList, CoMap, CoStream, WasmCrypto, co, Profile, isControlledAccount, } from "../index.js";
5
+ import { newRandomSessionID } from "cojson/src/coValueCore.js";
6
+ class TestMap extends CoMap {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.list = co.ref(TestList);
10
+ this.optionalRef = co.ref(InnermostMap, { optional: true });
11
+ }
12
+ }
13
+ class TestList extends CoList.Of(co.ref(() => InnerMap)) {
14
+ }
15
+ class InnerMap extends CoMap {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.stream = co.ref(TestStream);
19
+ }
20
+ }
21
+ class TestStream extends CoStream.Of(co.ref(() => InnermostMap)) {
22
+ }
23
+ class InnermostMap extends CoMap {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.value = co.string;
27
+ }
28
+ }
29
+ describe("Deep loading with depth arg", async () => {
30
+ const me = await Account.create({
31
+ creationProps: { name: "Hermes Puggington" },
32
+ crypto: Crypto,
33
+ });
34
+ const [initialAsPeer, secondPeer] = connectedPeers("initial", "second", {
35
+ peer1role: "server",
36
+ peer2role: "client",
37
+ });
38
+ if (!isControlledAccount(me)) {
39
+ throw "me is not a controlled account";
40
+ }
41
+ me._raw.core.node.syncManager.addPeer(secondPeer);
42
+ const meOnSecondPeer = await Account.become({
43
+ accountID: me.id,
44
+ accountSecret: me._raw.agentSecret,
45
+ peersToLoadFrom: [initialAsPeer],
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
+ sessionID: newRandomSessionID(me.id),
48
+ crypto: Crypto,
49
+ });
50
+ test("loading a deeply nested object will wait until all required refs are loaded", async () => {
51
+ const map = TestMap.create({
52
+ list: TestList.create([
53
+ InnerMap.create({
54
+ stream: TestStream.create([
55
+ InnermostMap.create({ value: "hello" }, { owner: me }),
56
+ ], { owner: me }),
57
+ }, { owner: me }),
58
+ ], { owner: me }),
59
+ }, { owner: me });
60
+ const map1 = await TestMap.load(map.id, meOnSecondPeer, {});
61
+ expectTypeOf(map1).toEqualTypeOf();
62
+ if (map1 === undefined) {
63
+ throw new Error("map1 is undefined");
64
+ }
65
+ expect(map1.list).toBe(null);
66
+ const map2 = await TestMap.load(map.id, meOnSecondPeer, { list: [] });
67
+ expectTypeOf(map2).toEqualTypeOf();
68
+ if (map2 === undefined) {
69
+ throw new Error("map2 is undefined");
70
+ }
71
+ expect(map2.list).not.toBe(null);
72
+ expect(map2.list[0]).toBe(null);
73
+ const map3 = await TestMap.load(map.id, meOnSecondPeer, { list: [{}] });
74
+ expectTypeOf(map3).toEqualTypeOf();
75
+ if (map3 === undefined) {
76
+ throw new Error("map3 is undefined");
77
+ }
78
+ expect(map3.list[0]).not.toBe(null);
79
+ expect(map3.list[0]?.stream).toBe(null);
80
+ const map3a = await TestMap.load(map.id, meOnSecondPeer, {
81
+ optionalRef: {},
82
+ });
83
+ expectTypeOf(map3a).toEqualTypeOf();
84
+ const map4 = await TestMap.load(map.id, meOnSecondPeer, {
85
+ list: [{ stream: [] }],
86
+ });
87
+ expectTypeOf(map4).toEqualTypeOf();
88
+ if (map4 === undefined) {
89
+ throw new Error("map4 is undefined");
90
+ }
91
+ expect(map4.list[0]?.stream).not.toBe(null);
92
+ // TODO: we should expect null here, but apparently we don't even have the id/ref?
93
+ expect(map4.list[0]?.stream?.[me.id]?.value).not.toBeDefined();
94
+ expect(map4.list[0]?.stream?.byMe?.value).not.toBeDefined();
95
+ const map5 = await TestMap.load(map.id, meOnSecondPeer, {
96
+ list: [{ stream: [{}] }],
97
+ });
98
+ expectTypeOf(map5).toEqualTypeOf();
99
+ if (map5 === undefined) {
100
+ throw new Error("map5 is undefined");
101
+ }
102
+ expect(map5.list[0]?.stream?.[me.id]?.value).not.toBe(null);
103
+ expect(map5.list[0]?.stream?.byMe?.value).not.toBe(null);
104
+ });
105
+ });
106
+ class CustomProfile extends Profile {
107
+ constructor() {
108
+ super(...arguments);
109
+ this.stream = co.ref(TestStream);
110
+ }
111
+ }
112
+ class CustomAccount extends Account {
113
+ constructor() {
114
+ super(...arguments);
115
+ this.profile = co.ref(CustomProfile);
116
+ this.root = co.ref(TestMap);
117
+ }
118
+ async migrate(creationProps) {
119
+ if (creationProps) {
120
+ this.profile = CustomProfile.create({
121
+ name: creationProps.name,
122
+ stream: TestStream.create([], { owner: this }),
123
+ }, { owner: this });
124
+ this.root = TestMap.create({ list: TestList.create([], { owner: this }) }, { owner: this });
125
+ }
126
+ const thisLoaded = await CustomAccount.load(this, {
127
+ profile: { stream: [] },
128
+ root: { list: [] },
129
+ });
130
+ expectTypeOf(thisLoaded).toEqualTypeOf();
131
+ }
132
+ }
133
+ test("Deep loading within account", async () => {
134
+ const me = await CustomAccount.create({
135
+ creationProps: { name: "Hermes Puggington" },
136
+ crypto: Crypto,
137
+ });
138
+ const meLoaded = await CustomAccount.load(me, {
139
+ profile: { stream: [] },
140
+ root: { list: [] },
141
+ });
142
+ expectTypeOf(meLoaded).toEqualTypeOf();
143
+ if (meLoaded === undefined) {
144
+ throw new Error("meLoaded is undefined");
145
+ }
146
+ expect(meLoaded.profile.stream).not.toBe(null);
147
+ expect(meLoaded.root.list).not.toBe(null);
148
+ });
149
+ class RecordLike extends CoMap.Record(co.ref(TestMap)) {
150
+ }
151
+ test("Deep loading a record-like coMap", async () => {
152
+ const me = await Account.create({
153
+ creationProps: { name: "Hermes Puggington" },
154
+ crypto: Crypto,
155
+ });
156
+ const [initialAsPeer, secondPeer] = connectedPeers("initial", "second", {
157
+ peer1role: "server",
158
+ peer2role: "client",
159
+ });
160
+ if (!isControlledAccount(me)) {
161
+ throw "me is not a controlled account";
162
+ }
163
+ me._raw.core.node.syncManager.addPeer(secondPeer);
164
+ const meOnSecondPeer = await Account.become({
165
+ accountID: me.id,
166
+ accountSecret: me._raw.agentSecret,
167
+ peersToLoadFrom: [initialAsPeer],
168
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
169
+ sessionID: newRandomSessionID(me.id),
170
+ crypto: Crypto,
171
+ });
172
+ const record = RecordLike.create({
173
+ key1: TestMap.create({ list: TestList.create([], { owner: me }) }, { owner: me }),
174
+ key2: TestMap.create({ list: TestList.create([], { owner: me }) }, { owner: me }),
175
+ }, { owner: me });
176
+ const recordLoaded = await RecordLike.load(record.id, meOnSecondPeer, [
177
+ { list: [{}] },
178
+ ]);
179
+ expectTypeOf(recordLoaded).toEqualTypeOf();
180
+ if (recordLoaded === undefined) {
181
+ throw new Error("recordLoaded is undefined");
182
+ }
183
+ expect(recordLoaded.key1?.list).not.toBe(null);
184
+ expect(recordLoaded.key1?.list).not.toBe(undefined);
185
+ expect(recordLoaded.key2?.list).not.toBe(null);
186
+ expect(recordLoaded.key2?.list).not.toBe(undefined);
187
+ });
188
+ //# sourceMappingURL=deepLoading.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepLoading.test.js","sourceRoot":"","sources":["../../src/tests/deepLoading.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { expect, describe, test } from "vitest";
2
+ import { Account, CoMap, co, Group, WasmCrypto } from "../index.js";
3
+ const Crypto = await WasmCrypto.create();
4
+ describe("Custom accounts and groups", async () => {
5
+ var _a;
6
+ class CustomProfile extends CoMap {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.name = co.string;
10
+ this.color = co.string;
11
+ }
12
+ }
13
+ class CustomAccount extends Account {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.profile = co.ref(CustomProfile);
17
+ this.root = co.ref(CoMap);
18
+ }
19
+ migrate(creationProps) {
20
+ if (creationProps) {
21
+ const profileGroup = Group.create({ owner: this });
22
+ profileGroup.addMember("everyone", "reader");
23
+ this.profile = CustomProfile.create({ name: creationProps.name, color: "blue" }, { owner: this });
24
+ }
25
+ }
26
+ }
27
+ class CustomGroup extends Group {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.profile = co.null;
31
+ this.root = co.null;
32
+ this[_a] = co.ref(CustomAccount);
33
+ }
34
+ get nMembers() {
35
+ return this.members.length;
36
+ }
37
+ }
38
+ _a = co.members;
39
+ test("Custom account and group", async () => {
40
+ const me = await CustomAccount.create({
41
+ creationProps: { name: "Hermes Puggington" },
42
+ crypto: Crypto,
43
+ });
44
+ expect(me.profile).toBeDefined();
45
+ expect(me.profile?.name).toBe("Hermes Puggington");
46
+ expect(me.profile?.color).toBe("blue");
47
+ const group = new CustomGroup({ owner: me });
48
+ group.addMember("everyone", "reader");
49
+ expect(group.members).toMatchObject([
50
+ { id: me.id, role: "admin" },
51
+ { id: "everyone", role: "reader" },
52
+ ]);
53
+ expect(group.nMembers).toBe(2);
54
+ await new Promise((resolve) => {
55
+ CustomGroup.subscribe(group, {}, (update) => {
56
+ const meAsMember = update.members.find((member) => {
57
+ return member.id === me.id && member.account?.profile;
58
+ });
59
+ if (meAsMember) {
60
+ expect(meAsMember.account?.profile?.name).toBe("Hermes Puggington");
61
+ expect(meAsMember.account?.profile?.color).toBe("blue");
62
+ resolve();
63
+ }
64
+ });
65
+ });
66
+ class MyMap extends CoMap {
67
+ constructor() {
68
+ super(...arguments);
69
+ this.name = co.string;
70
+ }
71
+ }
72
+ const map = MyMap.create({ name: "test" }, { owner: group });
73
+ const meAsCastMember = map._owner
74
+ .as(CustomGroup)
75
+ .members.find((member) => member.id === me.id);
76
+ expect(meAsCastMember?.account?.profile?.name).toBe("Hermes Puggington");
77
+ expect(meAsCastMember?.account?.profile?.color).toBe("blue");
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ expect(map._owner.nMembers).toBeUndefined();
80
+ expect(map._owner.as(CustomGroup).nMembers).toBe(2);
81
+ });
82
+ });
83
+ //# sourceMappingURL=groupsAndAccounts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupsAndAccounts.test.js","sourceRoot":"","sources":["../../src/tests/groupsAndAccounts.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,17 @@
1
1
  {
2
2
  "name": "jazz-tools",
3
- "module": "dist/index.js",
4
- "main": "dist/index.js",
5
- "types": "src/index.ts",
3
+ "module": "./dist/index.js",
4
+ "main": "./dist/index.js",
5
+ "types": "./src/index.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.7.0-alpha.9",
8
+ "version": "0.7.1",
9
9
  "dependencies": {
10
- "@effect/schema": "^0.64.20",
11
- "effect": "^2.4.18",
12
- "cojson": "0.7.0-alpha.7"
10
+ "@effect/schema": "^0.66.16",
11
+ "effect": "^3.1.5",
12
+ "fast-check": "^3.17.2",
13
+ "cojson": "0.7.0",
14
+ "cojson-transport-nodejs-ws": "0.7.0"
13
15
  },
14
16
  "devDependencies": {
15
17
  "typescript": "^5.3.3",
@@ -22,9 +24,15 @@
22
24
  }
23
25
  }
24
26
  },
27
+ "lint-staged": {
28
+ "*.{ts,tsx}": "eslint --fix",
29
+ "*.{js,jsx,mdx,json}": "prettier --write"
30
+ },
25
31
  "scripts": {
26
- "test": "vitest",
27
- "lint": "eslint src/**/*.ts",
32
+ "test": "vitest --run",
33
+ "test-watch": "vitest",
34
+ "lint": "eslint . --ext ts,tsx",
35
+ "format": "prettier --write './src/**/*.{ts,tsx}'",
28
36
  "build": "npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist"
29
37
  }
30
38
  }