jazz-tools 0.7.0-alpha.8 → 0.7.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.
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 +304 -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 -73
  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 -113
  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,48 +1,107 @@
1
1
  var _a;
2
- import { Schema } from "@effect/schema";
3
- import { Account, CoValueBase, Ref, SchemaInit, inspect, makeRefs, subscriptionsScopes, ItemsSym, InitValues, } from "../internal.js";
2
+ import { encodeSync, decodeSync } from "@effect/schema/Schema";
3
+ import { Account, CoValueBase, Ref, SchemaInit, inspect, makeRefs, subscriptionsScopes, ItemsSym, InitValues, isRefEncoded, } from "../internal.js";
4
+ /**
5
+ * CoMaps are collaborative versions of plain objects, mapping string-like keys to values.
6
+ *
7
+ * @categoryDescription Declaration
8
+ * Declare your own CoMap schemas by subclassing `CoMap` and assigning field schemas with `co`.
9
+ *
10
+ * ```ts
11
+ * import { co, CoMap } from "jazz-tools";
12
+ *
13
+ * class Person extends CoMap {
14
+ * name = co.string;
15
+ * age = co.number;
16
+ * pet = co.ref(Animal);
17
+ * }
18
+ * ```
19
+ *
20
+ * @categoryDescription Content
21
+ * You can access properties you declare on a `CoMap` (using `co`) as if they were normal properties on a plain object, using dot notation, `Object.keys()`, etc.
22
+ *
23
+ * ```ts
24
+ * person.name;
25
+ * person["age"];
26
+ * person.age = 42;
27
+ * person.pet?.name;
28
+ * Object.keys(person);
29
+ * // => ["name", "age", "pet"]
30
+ * ```
31
+ *
32
+ * @category CoValues
33
+ * */
4
34
  export class CoMap extends CoValueBase {
5
- get _encoding() {
6
- return this.constructor._encoding;
35
+ /** @internal */
36
+ get _schema() {
37
+ return this.constructor._schema;
7
38
  }
39
+ /**
40
+ * If property `prop` is a `co.ref(...)`, you can use `coMaps._refs.prop` to access
41
+ * the `Ref` instead of the potentially loaded/null value.
42
+ * This allows you to always get the ID or load the value manually.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * person._refs.pet.id; // => ID<Animal>
47
+ * person._refs.pet.value;
48
+ * // => Animal | undefined
49
+ * const pet = await person._refs.pet.load();
50
+ * ```
51
+ *
52
+ * @category Content */
8
53
  get _refs() {
9
- return makeRefs((key) => this._raw.get(key), () => Object.keys(this._encoding).filter((key) => {
10
- const schema = this._encoding[key];
11
- schema !== "json" && "ref" in schema;
12
- }), this._loadedAs, (key) => this._encoding[key]);
54
+ return makeRefs((key) => this._raw.get(key), () => {
55
+ const keys = this._raw.keys().filter((key) => {
56
+ const schema = this._schema[key] ||
57
+ this._schema[ItemsSym];
58
+ return schema && schema !== "json" && isRefEncoded(schema);
59
+ });
60
+ return keys;
61
+ }, this._loadedAs, (key) => (this._schema[key] ||
62
+ this._schema[ItemsSym]));
13
63
  }
64
+ /** @category Collaboration */
14
65
  get _edits() {
15
66
  return new Proxy(this, {
16
67
  get(target, key) {
17
68
  const rawEdit = target._raw.lastEditAt(key);
18
69
  if (!rawEdit)
19
70
  return undefined;
20
- const descriptor = target._encoding[key];
71
+ const descriptor = target._schema[key];
21
72
  return {
22
73
  value: descriptor === "json"
23
74
  ? rawEdit.value
24
75
  : "encoded" in descriptor
25
- ? Schema.decodeSync(descriptor.encoded)(rawEdit.value)
26
- : new Ref(rawEdit.value, target._loadedAs, descriptor).accessFrom(target),
27
- ref: descriptor !== "json" && "ref" in descriptor
76
+ ? decodeSync(descriptor.encoded)(rawEdit.value)
77
+ : new Ref(rawEdit.value, target._loadedAs, descriptor).accessFrom(target, "_edits." + key.toString() + ".value"),
78
+ ref: descriptor !== "json" && isRefEncoded(descriptor)
28
79
  ? new Ref(rawEdit.value, target._loadedAs, descriptor)
29
80
  : undefined,
30
81
  by: rawEdit.by &&
31
82
  new Ref(rawEdit.by, target._loadedAs, {
32
- ref: () => Account,
33
- }).accessFrom(target),
83
+ ref: Account,
84
+ optional: false,
85
+ }).accessFrom(target, "_edits." + key.toString() + ".by"),
34
86
  madeAt: rawEdit.at,
35
87
  };
36
88
  },
37
89
  });
38
90
  }
91
+ /** @internal */
39
92
  get _loadedAs() {
40
93
  return Account.fromNode(this._raw.core.node);
41
94
  }
42
- constructor(init, options) {
95
+ /** @internal */
96
+ constructor(
97
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
+ options) {
43
99
  super();
44
- if (init && "owner" in options) {
45
- this[InitValues] = { init, owner: options.owner };
100
+ if ("owner" in options) {
101
+ this[InitValues] = {
102
+ init: options.init,
103
+ owner: options.owner,
104
+ };
46
105
  }
47
106
  else if ("fromRaw" in options) {
48
107
  Object.defineProperties(this, {
@@ -58,14 +117,20 @@ export class CoMap extends CoValueBase {
58
117
  }
59
118
  return new Proxy(this, CoMapProxyHandler);
60
119
  }
120
+ /** @category Creation */
121
+ static create(init, options) {
122
+ return new this({ init, owner: options.owner });
123
+ }
61
124
  toJSON() {
62
125
  const jsonedFields = this._raw.keys().map((key) => {
63
126
  const tKey = key;
64
- const descriptor = this._encoding[tKey];
127
+ const descriptor = (this._schema[tKey] ||
128
+ this._schema[ItemsSym]);
65
129
  if (descriptor == "json" || "encode" in descriptor) {
66
130
  return [key, this._raw.get(key)];
67
131
  }
68
- else if ("ref" in descriptor) {
132
+ else if (isRefEncoded(descriptor)) {
133
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
134
  const jsonedRef = this[tKey]?.toJSON();
70
135
  return [key, jsonedRef];
71
136
  }
@@ -82,27 +147,44 @@ export class CoMap extends CoValueBase {
82
147
  [inspect]() {
83
148
  return this.toJSON();
84
149
  }
150
+ /** @internal */
151
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
152
  rawFromInit(init, owner) {
86
153
  const rawOwner = owner._raw;
87
154
  const rawInit = {};
88
155
  if (init)
89
156
  for (const key of Object.keys(init)) {
90
157
  const initValue = init[key];
91
- const descriptor = (this._encoding[key] || this._encoding[ItemsSym]);
158
+ const descriptor = (this._schema[key] || this._schema[ItemsSym]);
92
159
  if (descriptor === "json") {
93
160
  rawInit[key] = initValue;
94
161
  }
95
- else if ("ref" in descriptor) {
162
+ else if (isRefEncoded(descriptor)) {
96
163
  if (initValue) {
97
164
  rawInit[key] = initValue.id;
98
165
  }
99
166
  }
100
167
  else if ("encoded" in descriptor) {
101
- rawInit[key] = Schema.encodeSync(descriptor.encoded)(initValue);
168
+ rawInit[key] = encodeSync(descriptor.encoded)(
169
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
+ initValue);
102
171
  }
103
172
  }
104
173
  return rawOwner.createMap(rawInit);
105
174
  }
175
+ /** @category Declaration */
176
+ static Record(value) {
177
+ var _b;
178
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
179
+ class RecordLikeCoMap extends _a {
180
+ constructor() {
181
+ super(...arguments);
182
+ this[_b] = value;
183
+ }
184
+ }
185
+ _b = ItemsSym;
186
+ return RecordLikeCoMap;
187
+ }
106
188
  }
107
189
  _a = CoMap;
108
190
  (() => {
@@ -110,8 +192,10 @@ _a = CoMap;
110
192
  })();
111
193
  function tryInit(map) {
112
194
  if (map[InitValues] &&
113
- (map._encoding[ItemsSym] ||
114
- Object.keys(map[InitValues].init).every((key) => map._encoding[key]))) {
195
+ (map._schema[ItemsSym] ||
196
+ Object.keys(map[InitValues].init).every(
197
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
198
+ (key) => map._schema[key]))) {
115
199
  const raw = map.rawFromInit(map[InitValues].init, map[InitValues].owner);
116
200
  Object.defineProperties(map, {
117
201
  id: {
@@ -126,14 +210,15 @@ function tryInit(map) {
126
210
  // TODO: cache handlers per descriptor for performance?
127
211
  const CoMapProxyHandler = {
128
212
  get(target, key, receiver) {
129
- if (key === "_encoding") {
213
+ if (key === "_schema") {
130
214
  return Reflect.get(target, key);
131
215
  }
132
216
  else if (key in target) {
133
217
  return Reflect.get(target, key, receiver);
134
218
  }
135
219
  else {
136
- const descriptor = (target._encoding[key] || target._encoding[ItemsSym]);
220
+ const descriptor = (target._schema[key] ||
221
+ target._schema[ItemsSym]);
137
222
  if (descriptor && typeof key === "string") {
138
223
  const raw = target._raw.get(key);
139
224
  if (descriptor === "json") {
@@ -142,12 +227,12 @@ const CoMapProxyHandler = {
142
227
  else if ("encoded" in descriptor) {
143
228
  return raw === undefined
144
229
  ? undefined
145
- : Schema.decodeSync(descriptor.encoded)(raw);
230
+ : decodeSync(descriptor.encoded)(raw);
146
231
  }
147
- else if ("ref" in descriptor) {
232
+ else if (isRefEncoded(descriptor)) {
148
233
  return raw === undefined
149
234
  ? undefined
150
- : new Ref(raw, target._loadedAs, descriptor).accessFrom(receiver);
235
+ : new Ref(raw, target._loadedAs, descriptor).accessFrom(receiver, key);
151
236
  }
152
237
  }
153
238
  else {
@@ -160,24 +245,26 @@ const CoMapProxyHandler = {
160
245
  if ((typeof key === "string" || ItemsSym) &&
161
246
  typeof value === "object" &&
162
247
  SchemaInit in value) {
163
- (_b = target.constructor)._encoding || (_b._encoding = {});
164
- target.constructor._encoding[key] =
248
+ (_b = target.constructor)._schema || (_b._schema = {});
249
+ target.constructor._schema[key] =
165
250
  value[SchemaInit];
166
251
  tryInit(target);
167
252
  return true;
168
253
  }
169
- const descriptor = (target._encoding[key] ||
170
- target._encoding[ItemsSym]);
254
+ const descriptor = (target._schema[key] ||
255
+ target._schema[ItemsSym]);
171
256
  if (descriptor && typeof key === "string") {
172
257
  if (descriptor === "json") {
173
258
  target._raw.set(key, value);
174
259
  }
175
260
  else if ("encoded" in descriptor) {
176
- target._raw.set(key, Schema.encodeSync(descriptor.encoded)(value));
261
+ target._raw.set(key, encodeSync(descriptor.encoded)(value));
177
262
  }
178
- else if ("ref" in descriptor) {
263
+ else if (isRefEncoded(descriptor)) {
179
264
  target._raw.set(key, value.id);
180
- subscriptionsScopes.get(target)?.onRefAccessedOrSet(value.id);
265
+ subscriptionsScopes
266
+ .get(target)
267
+ ?.onRefAccessedOrSet(target.id, value.id);
181
268
  }
182
269
  return true;
183
270
  }
@@ -190,8 +277,8 @@ const CoMapProxyHandler = {
190
277
  if ("value" in attributes &&
191
278
  typeof attributes.value === "object" &&
192
279
  SchemaInit in attributes.value) {
193
- (_b = target.constructor)._encoding || (_b._encoding = {});
194
- target.constructor._encoding[key] =
280
+ (_b = target.constructor)._schema || (_b._schema = {});
281
+ target.constructor._schema[key] =
195
282
  attributes.value[SchemaInit];
196
283
  tryInit(target);
197
284
  return true;
@@ -202,11 +289,11 @@ const CoMapProxyHandler = {
202
289
  },
203
290
  ownKeys(target) {
204
291
  const keys = Reflect.ownKeys(target).filter((k) => k !== ItemsSym);
205
- for (const key of Reflect.ownKeys(target._encoding)) {
206
- if (key !== ItemsSym && !keys.includes(key)) {
207
- keys.push(key);
208
- }
209
- }
292
+ // for (const key of Reflect.ownKeys(target._schema)) {
293
+ // if (key !== ItemsSym && !keys.includes(key)) {
294
+ // keys.push(key);
295
+ // }
296
+ // }
210
297
  for (const key of target._raw.keys()) {
211
298
  if (!keys.includes(key)) {
212
299
  keys.push(key);
@@ -219,7 +306,8 @@ const CoMapProxyHandler = {
219
306
  return Reflect.getOwnPropertyDescriptor(target, key);
220
307
  }
221
308
  else {
222
- const descriptor = (target._encoding[key] || target._encoding[ItemsSym]);
309
+ const descriptor = (target._schema[key] ||
310
+ target._schema[ItemsSym]);
223
311
  if (descriptor || key in target._raw.ops) {
224
312
  return {
225
313
  enumerable: true,
@@ -229,5 +317,16 @@ const CoMapProxyHandler = {
229
317
  }
230
318
  }
231
319
  },
320
+ deleteProperty(target, key) {
321
+ const descriptor = (target._schema[key] ||
322
+ target._schema[ItemsSym]);
323
+ if (typeof key === "string" && descriptor) {
324
+ target._raw.delete(key);
325
+ return true;
326
+ }
327
+ else {
328
+ return Reflect.deleteProperty(target, key);
329
+ }
330
+ },
232
331
  };
233
332
  //# sourceMappingURL=coMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/coValues/coMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/coValues/coMap.ts"],"names":[],"mappings":"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"}