jazz-tools 0.7.0-alpha.9 → 0.7.3

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 (73) hide show
  1. package/.eslintrc.cjs +3 -10
  2. package/.prettierrc.js +9 -0
  3. package/.turbo/turbo-build.log +14 -15
  4. package/.turbo/turbo-lint.log +4 -0
  5. package/.turbo/turbo-test.log +140 -0
  6. package/CHANGELOG.md +331 -27
  7. package/LICENSE.txt +1 -1
  8. package/README.md +10 -2
  9. package/dist/coValues/account.js +86 -41
  10. package/dist/coValues/account.js.map +1 -1
  11. package/dist/coValues/coList.js +75 -48
  12. package/dist/coValues/coList.js.map +1 -1
  13. package/dist/coValues/coMap.js +167 -44
  14. package/dist/coValues/coMap.js.map +1 -1
  15. package/dist/coValues/coStream.js +192 -35
  16. package/dist/coValues/coStream.js.map +1 -1
  17. package/dist/coValues/deepLoading.js +60 -0
  18. package/dist/coValues/deepLoading.js.map +1 -0
  19. package/dist/coValues/extensions/imageDef.js +10 -7
  20. package/dist/coValues/extensions/imageDef.js.map +1 -1
  21. package/dist/coValues/group.js +73 -13
  22. package/dist/coValues/group.js.map +1 -1
  23. package/dist/coValues/interfaces.js +58 -35
  24. package/dist/coValues/interfaces.js.map +1 -1
  25. package/dist/implementation/devtoolsFormatters.js +114 -0
  26. package/dist/implementation/devtoolsFormatters.js.map +1 -0
  27. package/dist/implementation/refs.js +58 -18
  28. package/dist/implementation/refs.js.map +1 -1
  29. package/dist/implementation/schema.js +58 -0
  30. package/dist/implementation/schema.js.map +1 -0
  31. package/dist/implementation/subscriptionScope.js +19 -1
  32. package/dist/implementation/subscriptionScope.js.map +1 -1
  33. package/dist/implementation/symbols.js +5 -0
  34. package/dist/implementation/symbols.js.map +1 -0
  35. package/dist/index.js +4 -5
  36. package/dist/index.js.map +1 -1
  37. package/dist/internal.js +5 -2
  38. package/dist/internal.js.map +1 -1
  39. package/dist/tests/coList.test.js +51 -48
  40. package/dist/tests/coList.test.js.map +1 -1
  41. package/dist/tests/coMap.test.js +131 -74
  42. package/dist/tests/coMap.test.js.map +1 -1
  43. package/dist/tests/coStream.test.js +56 -41
  44. package/dist/tests/coStream.test.js.map +1 -1
  45. package/dist/tests/deepLoading.test.js +188 -0
  46. package/dist/tests/deepLoading.test.js.map +1 -0
  47. package/dist/tests/groupsAndAccounts.test.js +83 -0
  48. package/dist/tests/groupsAndAccounts.test.js.map +1 -0
  49. package/package.json +17 -9
  50. package/src/coValues/account.ts +186 -128
  51. package/src/coValues/coList.ts +156 -107
  52. package/src/coValues/coMap.ts +272 -148
  53. package/src/coValues/coStream.ts +388 -87
  54. package/src/coValues/deepLoading.ts +229 -0
  55. package/src/coValues/extensions/imageDef.ts +17 -13
  56. package/src/coValues/group.ts +166 -59
  57. package/src/coValues/interfaces.ts +189 -160
  58. package/src/implementation/devtoolsFormatters.ts +110 -0
  59. package/src/implementation/inspect.ts +1 -1
  60. package/src/implementation/refs.ts +80 -28
  61. package/src/implementation/schema.ts +141 -0
  62. package/src/implementation/subscriptionScope.ts +48 -12
  63. package/src/implementation/symbols.ts +11 -0
  64. package/src/index.ts +19 -8
  65. package/src/internal.ts +7 -3
  66. package/src/tests/coList.test.ts +77 -62
  67. package/src/tests/coMap.test.ts +201 -114
  68. package/src/tests/coStream.test.ts +113 -84
  69. package/src/tests/deepLoading.test.ts +304 -0
  70. package/src/tests/groupsAndAccounts.test.ts +91 -0
  71. package/dist/implementation/encoding.js +0 -26
  72. package/dist/implementation/encoding.js.map +0 -1
  73. package/src/implementation/encoding.ts +0 -105
@@ -1,7 +1,9 @@
1
1
  var _a;
2
- import { cojsonInternals } from "cojson";
3
- import { ItemsSym, Account, CoValueBase, Ref, inspect, val, InitValues, SchemaInit, } from "../internal.js";
4
- import { Schema } from "@effect/schema";
2
+ import { MAX_RECOMMENDED_TX_SIZE, cojsonInternals } from "cojson";
3
+ import { ItemsSym, Account, CoValueBase, Ref, inspect, co, InitValues, SchemaInit, isRefEncoded, loadCoValue, loadCoValueEf, subscribeToCoValue, subscribeToCoValueEf, ensureCoValueLoaded, subscribeToExistingCoValue, } from "../internal.js";
4
+ import { encodeSync, decodeSync } from "@effect/schema/Schema";
5
+ /** @category CoValues */
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
7
  export class CoStream extends CoValueBase {
6
8
  static Of(item) {
7
9
  var _b, _c;
@@ -11,11 +13,11 @@ export class CoStream extends CoValueBase {
11
13
  this[_b] = item;
12
14
  }
13
15
  },
14
- _b = val.items,
16
+ _b = co.items,
15
17
  _c;
16
18
  }
17
- get _encoding() {
18
- return this.constructor._encoding;
19
+ get _schema() {
20
+ return this.constructor._schema;
19
21
  }
20
22
  get byMe() {
21
23
  return this[this._loadedAs.id];
@@ -23,7 +25,7 @@ export class CoStream extends CoValueBase {
23
25
  get inCurrentSession() {
24
26
  return this.perSession[this._loadedAs.sessionID];
25
27
  }
26
- constructor(init, options) {
28
+ constructor(options) {
27
29
  super();
28
30
  if ("fromRaw" in options) {
29
31
  Object.defineProperties(this, {
@@ -36,35 +38,38 @@ export class CoStream extends CoValueBase {
36
38
  }
37
39
  else {
38
40
  this[InitValues] = {
39
- init,
41
+ init: options.init,
40
42
  owner: options.owner,
41
43
  };
42
44
  }
43
45
  return new Proxy(this, CoStreamProxyHandler);
44
46
  }
47
+ static create(init, options) {
48
+ return new this({ init, owner: options.owner });
49
+ }
45
50
  push(...items) {
46
51
  for (const item of items) {
47
52
  this.pushItem(item);
48
53
  }
49
54
  }
50
55
  pushItem(item) {
51
- const itemDescriptor = this._encoding[ItemsSym];
56
+ const itemDescriptor = this._schema[ItemsSym];
52
57
  if (itemDescriptor === "json") {
53
58
  this._raw.push(item);
54
59
  }
55
60
  else if ("encoded" in itemDescriptor) {
56
- this._raw.push(Schema.encodeSync(itemDescriptor.encoded)(item));
61
+ this._raw.push(encodeSync(itemDescriptor.encoded)(item));
57
62
  }
58
- else if ("ref" in itemDescriptor) {
63
+ else if (isRefEncoded(itemDescriptor)) {
59
64
  this._raw.push(item.id);
60
65
  }
61
66
  }
62
67
  toJSON() {
63
- const itemDescriptor = this._encoding[ItemsSym];
68
+ const itemDescriptor = this._schema[ItemsSym];
64
69
  const mapper = itemDescriptor === "json"
65
70
  ? (v) => v
66
71
  : "encoded" in itemDescriptor
67
- ? Schema.encodeSync(itemDescriptor.encoded)
72
+ ? encodeSync(itemDescriptor.encoded)
68
73
  : (v) => v && v.id;
69
74
  return {
70
75
  id: this.id,
@@ -82,9 +87,33 @@ export class CoStream extends CoValueBase {
82
87
  [inspect]() {
83
88
  return this.toJSON();
84
89
  }
85
- static encoding(def) {
86
- this._encoding || (this._encoding = {});
87
- Object.assign(this._encoding, def);
90
+ static schema(def) {
91
+ this._schema || (this._schema = {});
92
+ Object.assign(this._schema, def);
93
+ }
94
+ /** @category Subscription & Loading */
95
+ static load(id, as, depth) {
96
+ return loadCoValue(this, id, as, depth);
97
+ }
98
+ /** @category Subscription & Loading */
99
+ static loadEf(id, depth) {
100
+ return loadCoValueEf(this, id, depth);
101
+ }
102
+ /** @category Subscription & Loading */
103
+ static subscribe(id, as, depth, listener) {
104
+ return subscribeToCoValue(this, id, as, depth, listener);
105
+ }
106
+ /** @category Subscription & Loading */
107
+ static subscribeEf(id, depth) {
108
+ return subscribeToCoValueEf(this, id, depth);
109
+ }
110
+ /** @category Subscription & Loading */
111
+ ensureLoaded(depth) {
112
+ return ensureCoValueLoaded(this, depth);
113
+ }
114
+ /** @category Subscription & Loading */
115
+ subscribe(depth, listener) {
116
+ return subscribeToExistingCoValue(this, depth, listener);
88
117
  }
89
118
  }
90
119
  _a = CoStream;
@@ -98,21 +127,33 @@ function entryFromRawEntry(accessFrom, rawEntry, loadedAs, accountID, itemField)
98
127
  return rawEntry.value;
99
128
  }
100
129
  else if ("encoded" in itemField) {
101
- return Schema.decodeSync(itemField.encoded)(rawEntry.value);
130
+ return decodeSync(itemField.encoded)(rawEntry.value);
131
+ }
132
+ else if (isRefEncoded(itemField)) {
133
+ return this.ref?.accessFrom(accessFrom, rawEntry.by +
134
+ rawEntry.tx.sessionID +
135
+ rawEntry.tx.txIndex +
136
+ ".value");
102
137
  }
103
- else if ("ref" in itemField) {
104
- return this.ref?.accessFrom(accessFrom);
138
+ else {
139
+ throw new Error("Invalid item field schema");
105
140
  }
106
141
  },
107
142
  get ref() {
108
- if (itemField !== "json" && "ref" in itemField) {
143
+ if (itemField !== "json" && isRefEncoded(itemField)) {
109
144
  const rawId = rawEntry.value;
110
145
  return new Ref(rawId, loadedAs, itemField);
111
146
  }
147
+ else {
148
+ return undefined;
149
+ }
112
150
  },
113
151
  get by() {
114
152
  return (accountID &&
115
- new Ref(accountID, loadedAs, { ref: () => Account })?.accessFrom(accessFrom));
153
+ new Ref(accountID, loadedAs, { ref: Account, optional: false })?.accessFrom(accessFrom, rawEntry.by +
154
+ rawEntry.tx.sessionID +
155
+ rawEntry.tx.txIndex +
156
+ ".by"));
116
157
  },
117
158
  madeAt: rawEntry.at,
118
159
  tx: rawEntry.tx,
@@ -141,10 +182,25 @@ export const CoStreamProxyHandler = {
141
182
  const rawEntry = target._raw.lastItemBy(key);
142
183
  if (!rawEntry)
143
184
  return;
144
- return entryFromRawEntry(receiver, rawEntry, target._loadedAs, key, target._encoding[ItemsSym]);
185
+ const entry = entryFromRawEntry(receiver, rawEntry, target._loadedAs, key, target._schema[ItemsSym]);
186
+ Object.defineProperty(entry, "all", {
187
+ get: () => {
188
+ const allRawEntries = target._raw.itemsBy(key);
189
+ return (function* () {
190
+ while (true) {
191
+ const rawEntry = allRawEntries.next();
192
+ if (rawEntry.done)
193
+ return;
194
+ yield entryFromRawEntry(receiver, rawEntry.value, target._loadedAs, key, target._schema[ItemsSym]);
195
+ }
196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
197
+ })();
198
+ },
199
+ });
200
+ return entry;
145
201
  }
146
202
  else if (key === "perSession") {
147
- return new Proxy(receiver, CoStreamPerSessionProxyHandler);
203
+ return new Proxy({}, CoStreamPerSessionProxyHandler(target, receiver));
148
204
  }
149
205
  else {
150
206
  return Reflect.get(target, key, receiver);
@@ -155,8 +211,8 @@ export const CoStreamProxyHandler = {
155
211
  if (key === ItemsSym &&
156
212
  typeof value === "object" &&
157
213
  SchemaInit in value) {
158
- (_b = target.constructor)._encoding || (_b._encoding = {});
159
- target.constructor._encoding[ItemsSym] =
214
+ (_b = target.constructor)._schema || (_b._schema = {});
215
+ target.constructor._schema[ItemsSym] =
160
216
  value[SchemaInit];
161
217
  init(target);
162
218
  return true;
@@ -171,8 +227,8 @@ export const CoStreamProxyHandler = {
171
227
  key === ItemsSym &&
172
228
  typeof descriptor.value === "object" &&
173
229
  SchemaInit in descriptor.value) {
174
- (_b = target.constructor)._encoding || (_b._encoding = {});
175
- target.constructor._encoding[ItemsSym] =
230
+ (_b = target.constructor)._schema || (_b._schema = {});
231
+ target.constructor._schema[ItemsSym] =
176
232
  descriptor.value[SchemaInit];
177
233
  init(target);
178
234
  return true;
@@ -201,25 +257,58 @@ export const CoStreamProxyHandler = {
201
257
  }
202
258
  },
203
259
  };
204
- const CoStreamPerSessionProxyHandler = {
205
- get(target, key, receiver) {
260
+ const CoStreamPerSessionProxyHandler = (innerTarget, accessFrom) => ({
261
+ get(_target, key, receiver) {
206
262
  if (typeof key === "string" && key.includes("session")) {
207
263
  const sessionID = key;
208
- const rawEntry = target._raw.lastItemIn(sessionID);
264
+ const rawEntry = innerTarget._raw.lastItemIn(sessionID);
209
265
  if (!rawEntry)
210
266
  return;
211
267
  const by = cojsonInternals.accountOrAgentIDfromSessionID(sessionID);
212
- return entryFromRawEntry(target, rawEntry, target._loadedAs, cojsonInternals.isAccountID(by)
268
+ const entry = entryFromRawEntry(accessFrom, rawEntry, innerTarget._loadedAs, cojsonInternals.isAccountID(by)
213
269
  ? by
214
- : undefined, target._encoding[ItemsSym]);
270
+ : undefined, innerTarget._schema[ItemsSym]);
271
+ Object.defineProperty(entry, "all", {
272
+ get: () => {
273
+ const allRawEntries = innerTarget._raw.itemsIn(sessionID);
274
+ return (function* () {
275
+ while (true) {
276
+ const rawEntry = allRawEntries.next();
277
+ if (rawEntry.done)
278
+ return;
279
+ yield entryFromRawEntry(accessFrom, rawEntry.value, innerTarget._loadedAs, cojsonInternals.isAccountID(by)
280
+ ? by
281
+ : undefined, innerTarget._schema[ItemsSym]);
282
+ }
283
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
284
+ })();
285
+ },
286
+ });
287
+ return entry;
215
288
  }
216
289
  else {
217
- return Reflect.get(target, key, receiver);
290
+ return Reflect.get(innerTarget, key, receiver);
218
291
  }
219
292
  },
220
- };
293
+ ownKeys() {
294
+ return innerTarget._raw.sessions();
295
+ },
296
+ getOwnPropertyDescriptor(target, key) {
297
+ if (typeof key === "string" && key.startsWith("co_")) {
298
+ return {
299
+ configurable: true,
300
+ enumerable: true,
301
+ writable: false,
302
+ };
303
+ }
304
+ else {
305
+ return Reflect.getOwnPropertyDescriptor(target, key);
306
+ }
307
+ },
308
+ });
309
+ /** @category CoValues */
221
310
  export class BinaryCoStream extends CoValueBase {
222
- constructor(init, options) {
311
+ constructor(options) {
223
312
  super();
224
313
  let raw;
225
314
  if ("fromRaw" in options) {
@@ -234,9 +323,13 @@ export class BinaryCoStream extends CoValueBase {
234
323
  value: raw.id,
235
324
  enumerable: false,
236
325
  },
326
+ _type: { value: "BinaryCoStream", enumerable: false },
237
327
  _raw: { value: raw, enumerable: false },
238
328
  });
239
329
  }
330
+ static create(options) {
331
+ return new this(options);
332
+ }
240
333
  getChunks(options) {
241
334
  return this._raw.getBinaryChunks(options?.allowUnfinished);
242
335
  }
@@ -249,6 +342,46 @@ export class BinaryCoStream extends CoValueBase {
249
342
  end() {
250
343
  this._raw.endBinaryStream();
251
344
  }
345
+ toBlob(options) {
346
+ const chunks = this.getChunks({
347
+ allowUnfinished: options?.allowUnfinished,
348
+ });
349
+ if (!chunks) {
350
+ return undefined;
351
+ }
352
+ return new Blob(chunks.chunks, { type: chunks.mimeType });
353
+ }
354
+ static async loadAsBlob(id, as, options) {
355
+ const stream = await this.load(id, as, []);
356
+ return stream?.toBlob({
357
+ allowUnfinished: options?.allowUnfinished,
358
+ });
359
+ }
360
+ static async createFromBlob(blob, options) {
361
+ const stream = this.create({ owner: options.owner });
362
+ const start = Date.now();
363
+ const data = new Uint8Array(await blob.arrayBuffer());
364
+ stream.start({
365
+ mimeType: blob.type,
366
+ totalSizeBytes: blob.size,
367
+ fileName: blob instanceof File ? blob.name : undefined,
368
+ });
369
+ const chunkSize = MAX_RECOMMENDED_TX_SIZE;
370
+ let lastProgressUpdate = Date.now();
371
+ for (let idx = 0; idx < data.length; idx += chunkSize) {
372
+ stream.push(data.slice(idx, idx + chunkSize));
373
+ if (Date.now() - lastProgressUpdate > 100) {
374
+ options.onProgress?.(idx / data.length);
375
+ lastProgressUpdate = Date.now();
376
+ }
377
+ await new Promise((resolve) => setTimeout(resolve, 0));
378
+ }
379
+ stream.end();
380
+ const end = Date.now();
381
+ console.debug("Finished creating binary stream in", (end - start) / 1000, "s - Throughput in MB/s", (1000 * (blob.size / (end - start))) / (1024 * 1024));
382
+ options.onProgress?.(1);
383
+ return stream;
384
+ }
252
385
  toJSON() {
253
386
  return {
254
387
  id: this.id,
@@ -259,5 +392,29 @@ export class BinaryCoStream extends CoValueBase {
259
392
  [inspect]() {
260
393
  return this.toJSON();
261
394
  }
395
+ /** @category Subscription & Loading */
396
+ static load(id, as, depth) {
397
+ return loadCoValue(this, id, as, depth);
398
+ }
399
+ /** @category Subscription & Loading */
400
+ static loadEf(id, depth) {
401
+ return loadCoValueEf(this, id, depth);
402
+ }
403
+ /** @category Subscription & Loading */
404
+ static subscribe(id, as, depth, listener) {
405
+ return subscribeToCoValue(this, id, as, depth, listener);
406
+ }
407
+ /** @category Subscription & Loading */
408
+ static subscribeEf(id, depth) {
409
+ return subscribeToCoValueEf(this, id, depth);
410
+ }
411
+ /** @category Subscription & Loading */
412
+ ensureLoaded(depth) {
413
+ return ensureCoValueLoaded(this, depth);
414
+ }
415
+ /** @category Subscription & Loading */
416
+ subscribe(depth, listener) {
417
+ return subscribeToExistingCoValue(this, depth, listener);
418
+ }
262
419
  }
263
420
  //# sourceMappingURL=coStream.js.map
@@ -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":";AAUA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAelE,OAAO,EACH,QAAQ,EACR,OAAO,EACP,WAAW,EACX,GAAG,EACH,OAAO,EACP,EAAE,EACF,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAe/D,yBAAyB;AACzB,8DAA8D;AAC9D,MAAM,OAAO,QAAqB,SAAQ,WAAW;IACjD,MAAM,CAAC,EAAE,CAAO,IAAsB;;QAClC,YAAO,MAAM,UAAW,SAAQ,EAAc;gBAAvC;;oBACH,QAAU,GAAG,IAAI,CAAC;gBACtB,CAAC;aAAA;iBADI,EAAE,CAAC,KAAK;eACX;IACN,CAAC;IAaD,IAAI,OAAO;QAGP,OAAQ,IAAI,CAAC,WAA+B,CAAC,OAAO,CAAC;IACzD,CAAC;IAID,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAID,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,CAAC;IACtD,CAAC;IAKD,YACI,OAE8B;QAE9B,KAAK,EAAE,CAAC;QAER,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACvB,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;gBAC1B,EAAE,EAAE;oBACA,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,UAAU,EAAE,KAAK;iBACpB;gBACD,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;aACtD,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,GAAG;gBACf,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;aACvB,CAAC;QACN,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,oBAA0C,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,MAAM,CAET,IAA2D,EAC3D,OAAmC;QAEnC,OAAO,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,GAAG,KAAa;QACjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,IAAU;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAW,CAAC;QAExD,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAiB,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAA2B,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,MAAM;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAW,CAAC;QACxD,MAAM,MAAM,GACR,cAAc,KAAK,MAAM;YACrB,CAAC,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC;YACnB,CAAC,CAAC,SAAS,IAAI,cAAc;gBAC3B,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,IAAK,CAAa,CAAC,EAAE,CAAC;QAEnD,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC3C,OAAO;gBACP,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;aACtB,CAAC,CACL;YACD,EAAE,EAAE,MAAM,CAAC,WAAW,CAClB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACtD,OAAO;gBACP,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;aACtB,CAAC,CACL;SACJ,CAAC;IACN,CAAC;IAED,CAAC,OAAO,CAAC;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,MAAM,CAGT,GAA2C;QAE3C,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,EAAC;QACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAEP,EAAS,EACT,EAAW,EACX,KAA0B;QAE1B,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,MAAM,CAET,EAAS,EACT,KAA0B;QAE1B,OAAO,aAAa,CAAW,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,SAAS,CAEZ,EAAS,EACT,EAAW,EACX,KAA0B,EAC1B,QAAiD;QAEjD,OAAO,kBAAkB,CAAW,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,WAAW,CAEd,EAAS,EACT,KAA0B;QAE1B,OAAO,oBAAoB,CAAW,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,uCAAuC;IACvC,YAAY,CAER,KAA0B;QAE1B,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,uCAAuC;IACvC,SAAS,CAEL,KAA0B,EAC1B,QAAiD;QAEjD,OAAO,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACJ;;AAhLG;IACI,GAAK,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;AACtC,CAAC,GAAA,CAAA;AAgLL,SAAS,iBAAiB,CACtB,UAAmB,EACnB,QAKC,EACD,QAAiB,EACjB,SAAkC,EAClC,SAAiB;IAEjB,OAAO;QACH,IAAI,KAAK;YAGL,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACvB,OAAO,QAAQ,CAAC,KAEN,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAChC,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,GAAG,EAAE,UAAU,CACvB,UAAU,EACV,QAAQ,CAAC,EAAE;oBACP,QAAQ,CAAC,EAAE,CAAC,SAAS;oBACrB,QAAQ,CAAC,EAAE,CAAC,OAAO;oBACnB,QAAQ,CAGN,CAAC;YACf,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACjD,CAAC;QACL,CAAC;QACD,IAAI,GAAG;YAGH,IAAI,SAAS,KAAK,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC7B,OAAO,IAAI,GAAG,CACV,KAA+B,EAC/B,QAAQ,EACR,SAAS,CAGF,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,OAAO,SAAkB,CAAC;YAC9B,CAAC;QACL,CAAC;QACD,IAAI,EAAE;YACF,OAAO,CACH,SAAS;gBACT,IAAI,GAAG,CACH,SAAmC,EACnC,QAAQ,EACR,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpC,EAAE,UAAU,CACT,UAAU,EACV,QAAQ,CAAC,EAAE;oBACP,QAAQ,CAAC,EAAE,CAAC,SAAS;oBACrB,QAAQ,CAAC,EAAE,CAAC,OAAO;oBACnB,KAAK,CACZ,CACJ,CAAC;QACN,CAAC;QACD,MAAM,EAAE,QAAQ,CAAC,EAAE;QACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;KAClB,CAAC;AACN,CAAC;AAED,SAAS,IAAI,CAAC,MAAgB;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;IAE3C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC5B,EAAE,EAAE;YACA,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,UAAU,EAAE,KAAK;SACpB;QACD,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE;KAC1C,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IACxD,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ;QACrB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAgB,CAAC,CAAC;YAE1D,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,KAAK,GAAG,iBAAiB,CAC3B,QAAQ,EACR,QAAQ,EACR,MAAM,CAAC,SAAS,EAChB,GAA6B,EAC7B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC3B,CAAC;YAEF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE;gBAChC,GAAG,EAAE,GAAG,EAAE;oBACN,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAgB,CAAC,CAAC;oBAC5D,OAAO,CAAC,QAAQ,CAAC;wBACb,OAAO,IAAI,EAAE,CAAC;4BACV,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;4BACtC,IAAI,QAAQ,CAAC,IAAI;gCAAE,OAAO;4BAC1B,MAAM,iBAAiB,CACnB,QAAQ,EACR,QAAQ,CAAC,KAAK,EACd,MAAM,CAAC,SAAS,EAChB,GAA6B,EAC7B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC3B,CAAC;wBACN,CAAC;wBACD,8DAA8D;oBAClE,CAAC,CAAC,EAAuD,CAAC;gBAC9D,CAAC;aACJ,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,CACZ,EAAE,EACF,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnD,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IACD,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ;;QAC5B,IACI,GAAG,KAAK,QAAQ;YAChB,OAAO,KAAK,KAAK,QAAQ;YACzB,UAAU,IAAI,KAAK,EACrB,CAAC;YACC,MAAC,MAAM,CAAC,WAA+B,EAAC,OAAO,QAAP,OAAO,GAAK,EAAE,EAAC;YACtD,MAAM,CAAC,WAA+B,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACrD,KAAK,CAAC,UAAU,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IACD,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU;;QAClC,IACI,UAAU,CAAC,KAAK;YAChB,GAAG,KAAK,QAAQ;YAChB,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ;YACpC,UAAU,IAAI,UAAU,CAAC,KAAK,EAChC,CAAC;YACC,MAAC,MAAM,CAAC,WAA+B,EAAC,OAAO,QAAP,OAAO,GAAK,EAAE,EAAC;YACtD,MAAM,CAAC,WAA+B,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACrD,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IACD,OAAO,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAErC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,wBAAwB,CAAC,MAAM,EAAE,GAAG;QAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,KAAK;aAClB,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;CACJ,CAAC;AAEF,MAAM,8BAA8B,GAAG,CACnC,WAAqB,EACrB,UAAoB,EACe,EAAE,CAAC,CAAC;IACvC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ;QACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,GAAgB,CAAC;YACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAExD,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,EAAE,GAAG,eAAe,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;YAEpE,MAAM,KAAK,GAAG,iBAAiB,CAC3B,UAAU,EACV,QAAQ,EACR,WAAW,CAAC,SAAS,EACrB,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,CAAC,CAAE,EAA6B;gBAChC,CAAC,CAAC,SAAS,EACf,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAChC,CAAC;YAEF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE;gBAChC,GAAG,EAAE,GAAG,EAAE;oBACN,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC1D,OAAO,CAAC,QAAQ,CAAC;wBACb,OAAO,IAAI,EAAE,CAAC;4BACV,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;4BACtC,IAAI,QAAQ,CAAC,IAAI;gCAAE,OAAO;4BAC1B,MAAM,iBAAiB,CACnB,UAAU,EACV,QAAQ,CAAC,KAAK,EACd,WAAW,CAAC,SAAS,EACrB,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gCAC3B,CAAC,CAAE,EAA6B;gCAChC,CAAC,CAAC,SAAS,EACf,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAChC,CAAC;wBACN,CAAC;wBACD,8DAA8D;oBAClE,CAAC,CAAC,EAAuD,CAAC;gBAC9D,CAAC;aACJ,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC;QACjB,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IACD,OAAO;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IACD,wBAAwB,CAAC,MAAM,EAAE,GAAG;QAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,KAAK;aAClB,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;CACJ,CAAC,CAAC;AAEH,yBAAyB;AACzB,MAAM,OAAO,cAAe,SAAQ,WAAW;IAK3C,YACI,OAMO;QAEP,KAAK,EAAE,CAAC;QAER,IAAI,GAAsB,CAAC;QAE3B,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACvB,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACpC,GAAG,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC1B,EAAE,EAAE;gBACA,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,UAAU,EAAE,KAAK;aACpB;YACD,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE;YACrD,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE;SAC1C,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,MAAM,CAET,OAAmC;QAEnC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,OAET;QAGG,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,OAAyB;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,IAAgB;QACjB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,OAAuC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,eAAe,EAAE,OAAO,EAAE,eAAe;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CACnB,EAAsB,EACtB,EAAW,EACX,OAEC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,OAAO,MAAM,EAAE,MAAM,CAAC;YAClB,eAAe,EAAE,OAAO,EAAE,eAAe;SAC5C,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CACvB,IAAiB,EACjB,OAGC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC;YACT,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,cAAc,EAAE,IAAI,CAAC,IAAI;YACzB,QAAQ,EAAE,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACzD,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,uBAAuB,CAAC;QAE1C,IAAI,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEpC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;YAE9C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,GAAG,GAAG,EAAE,CAAC;gBACxC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,OAAO,CAAC,KAAK,CACT,oCAAoC,EACpC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EACpB,wBAAwB,EACxB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM;QACF,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,IAAI,CAAC,SAAS,EAAE;SACtB,CAAC;IACN,CAAC;IAED,CAAC,OAAO,CAAC;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAEP,EAAS,EACT,EAAW,EACX,KAA0B;QAE1B,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,MAAM,CAET,EAAS,EACT,KAA0B;QAE1B,OAAO,aAAa,CAAW,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,SAAS,CAEZ,EAAS,EACT,EAAW,EACX,KAA0B,EAC1B,QAAiD;QAEjD,OAAO,kBAAkB,CAAW,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,WAAW,CAEd,EAAS,EACT,KAA0B;QAE1B,OAAO,oBAAoB,CAAW,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,uCAAuC;IACvC,YAAY,CAER,KAA0B;QAE1B,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,uCAAuC;IACvC,SAAS,CAEL,KAA0B,EAC1B,QAAiD;QAEjD,OAAO,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACJ"}
@@ -0,0 +1,60 @@
1
+ import { ItemsSym, } from "../internal.js";
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+ export function fulfillsDepth(depth, value) {
4
+ if (value._type === "CoMap" ||
5
+ value._type === "Group" ||
6
+ value._type === "Account") {
7
+ if (Array.isArray(depth) && depth.length === 1) {
8
+ return Object.entries(value).every(([key, item]) => {
9
+ return value._refs[key]
10
+ ? item && fulfillsDepth(depth[0], item)
11
+ : value._schema[ItemsSym].optional;
12
+ });
13
+ }
14
+ else {
15
+ for (const key of Object.keys(depth)) {
16
+ const map = value;
17
+ if (!map._refs[key] && map._schema[key].optional) {
18
+ continue;
19
+ }
20
+ if (!map[key]) {
21
+ return false;
22
+ }
23
+ if (!fulfillsDepth(depth[key], map[key])) {
24
+ return false;
25
+ }
26
+ }
27
+ return true;
28
+ }
29
+ }
30
+ else if (value._type === "CoList") {
31
+ if (depth.length === 0) {
32
+ return true;
33
+ }
34
+ else {
35
+ const itemDepth = depth[0];
36
+ return value.every((item, i) => value._refs[i]
37
+ ? item && fulfillsDepth(itemDepth, item)
38
+ : value._schema[ItemsSym].optional);
39
+ }
40
+ }
41
+ else if (value._type === "CoStream") {
42
+ if (depth.length === 0) {
43
+ return true;
44
+ }
45
+ else {
46
+ const itemDepth = depth[0];
47
+ return Object.values(value.perSession).every((entry) => entry.ref
48
+ ? entry.value && fulfillsDepth(itemDepth, entry.value)
49
+ : value._schema[ItemsSym].optional);
50
+ }
51
+ }
52
+ else if (value._type === "BinaryCoStream") {
53
+ return true;
54
+ }
55
+ else {
56
+ console.error(value);
57
+ throw new Error("Unexpected value type: " + value._type);
58
+ }
59
+ }
60
+ //# sourceMappingURL=deepLoading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepLoading.js","sourceRoot":"","sources":["../../src/coValues/deepLoading.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,20 @@
1
1
  var _a;
2
- import { BinaryCoStream, CoMap, val, subscriptionsScopes, } from "../../internal.js";
2
+ import { BinaryCoStream, CoMap, co, subscriptionsScopes, } from "../../internal.js";
3
+ /** @category Media */
3
4
  export class ImageDefinition extends CoMap {
4
5
  constructor() {
5
6
  super(...arguments);
6
- this.originalSize = val.json();
7
- this.placeholderDataURL = val.string;
8
- this[_a] = val.ref(() => BinaryCoStream);
7
+ this.originalSize = co.json();
8
+ this.placeholderDataURL = co.string;
9
+ this[_a] = co.ref(BinaryCoStream);
9
10
  }
10
- get highestResAvailable() {
11
+ highestResAvailable(options) {
11
12
  if (!subscriptionsScopes.get(this)) {
12
13
  console.warn("highestResAvailable() only makes sense when used within a subscription.");
13
14
  }
14
- const resolutions = Object.keys(this).filter((key) => key.match(/^\d+x\d+$/));
15
+ const resolutions = Object.keys(this).filter((key) => key.match(/^\d+x\d+$/) &&
16
+ (options?.maxWidth === undefined ||
17
+ Number(key.split("x")[0]) <= options.maxWidth));
15
18
  resolutions.sort((a, b) => {
16
19
  const aWidth = Number(a.split("x")[0]);
17
20
  const bWidth = Number(b.split("x")[0]);
@@ -35,5 +38,5 @@ export class ImageDefinition extends CoMap {
35
38
  });
36
39
  }
37
40
  }
38
- _a = val.items;
41
+ _a = co.items;
39
42
  //# sourceMappingURL=imageDef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageDef.js","sourceRoot":"","sources":["../../../src/coValues/extensions/imageDef.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,cAAc,EACd,KAAK,EACL,GAAG,EACH,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,OAAO,eAAgB,SAAQ,KAAsB;IAA3D;;QACI,iBAAY,GAAG,GAAG,CAAC,IAAI,EAAoB,CAAC;QAC5C,uBAAkB,GAAI,GAAG,CAAC,MAAM,CAAC;QAEjC,QAAW,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;IA2ChD,CAAC;IAxCG,IAAI,mBAAmB;QAGnB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACR,yEAAyE,CAC5E,CAAC;QACN,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACjD,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CACE,CAAC;QAE7B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,0BAA6D,CAAC;QAElE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;gBACpD,0BAA0B,GAAG,UAAU,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,OAAO,CACH,0BAA0B,IAAI;oBAC1B,GAAG,EAAE,0BAA0B;oBAC/B,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAE;iBAC5C,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,CACH,0BAA0B,IAAI;YAC1B,GAAG,EAAE,0BAA0B;YAC/B,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAE;SAC5C,CACJ,CAAC;IACN,CAAC;CACJ;KA3CI,GAAG,CAAC,KAAK"}
1
+ {"version":3,"file":"imageDef.js","sourceRoot":"","sources":["../../../src/coValues/extensions/imageDef.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,cAAc,EACd,KAAK,EACL,EAAE,EACF,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAA1C;;QACI,iBAAY,GAAG,EAAE,CAAC,IAAI,EAAoB,CAAC;QAC3C,uBAAkB,GAAI,EAAE,CAAC,MAAM,CAAC;QAEhC,QAAU,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IA8CxC,CAAC;IA3CG,mBAAmB,CAAC,OAEnB;QACG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACR,yEAAyE,CAC5E,CAAC;QACN,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,EAAE,CACJ,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YACtB,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS;gBAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAC9B,CAAC;QAE7B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,0BAA6D,CAAC;QAElE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;gBACpD,0BAA0B,GAAG,UAAU,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,OAAO,CACH,0BAA0B,IAAI;oBAC1B,GAAG,EAAE,0BAA0B;oBAC/B,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAE;iBAC5C,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,CACH,0BAA0B,IAAI;YAC1B,GAAG,EAAE,0BAA0B;YAC/B,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAE;SAC5C,CACJ,CAAC;IACN,CAAC;CACJ;KA9CI,EAAE,CAAC,KAAK"}
@@ -1,33 +1,36 @@
1
1
  var _a;
2
- import { Account, CoMap, CoValueBase, Ref, val, isControlledAccount, AccountAndGroupProxyHandler, } from "../internal.js";
2
+ import { Account, CoMap, CoValueBase, Ref, co, isControlledAccount, AccountAndGroupProxyHandler, MembersSym, loadCoValue, loadCoValueEf, subscribeToCoValue, subscribeToCoValueEf, ensureCoValueLoaded, subscribeToExistingCoValue, } from "../internal.js";
3
+ /** @category Identity & Permissions */
3
4
  export class Profile extends CoMap {
4
5
  constructor() {
5
6
  super(...arguments);
6
- this.name = val.string;
7
+ this.name = co.string;
7
8
  }
8
9
  }
10
+ /** @category Identity & Permissions */
9
11
  export class Group extends CoValueBase {
10
- get _encoding() {
11
- return this.constructor._encoding;
12
+ get _schema() {
13
+ return this.constructor._schema;
12
14
  }
13
15
  get _refs() {
14
16
  const profileID = this._raw.get("profile");
15
17
  const rootID = this._raw.get("root");
16
18
  return {
17
19
  profile: profileID &&
18
- new Ref(profileID, this._loadedAs, this._encoding.profile),
20
+ new Ref(profileID, this._loadedAs, this._schema.profile),
19
21
  root: rootID &&
20
- new Ref(rootID, this._loadedAs, this._encoding.root),
22
+ new Ref(rootID, this._loadedAs, this._schema.root),
21
23
  };
22
24
  }
23
- constructor(init, options) {
25
+ /** @deprecated Don't use constructor directly, use .create */
26
+ constructor(options) {
24
27
  super();
25
28
  let raw;
26
29
  if (options && "fromRaw" in options) {
27
30
  raw = options.fromRaw;
28
31
  }
29
32
  else {
30
- const initOwner = options?.owner || init?.owner;
33
+ const initOwner = options.owner;
31
34
  if (!initOwner)
32
35
  throw new Error("No owner provided");
33
36
  if (initOwner instanceof Account &&
@@ -48,11 +51,63 @@ export class Group extends CoValueBase {
48
51
  });
49
52
  return new Proxy(this, AccountAndGroupProxyHandler);
50
53
  }
54
+ static create(options) {
55
+ return new this(options);
56
+ }
51
57
  myRole() {
52
58
  return this._raw.myRole();
53
59
  }
54
60
  addMember(member, role) {
55
61
  this._raw.addMember(member === "everyone" ? member : member._raw, role);
62
+ return this;
63
+ }
64
+ get members() {
65
+ return this._raw
66
+ .keys()
67
+ .filter((key) => {
68
+ return key === "everyone" || key.startsWith("co_");
69
+ })
70
+ .map((id) => {
71
+ const role = this._raw.get(id);
72
+ const accountID = id === "everyone"
73
+ ? undefined
74
+ : id;
75
+ const ref = accountID &&
76
+ new Ref(accountID, this._loadedAs, this._schema[MembersSym]);
77
+ const accessRef = () => ref?.accessFrom(this, "members." + id);
78
+ return {
79
+ id: id,
80
+ role,
81
+ ref,
82
+ get account() {
83
+ return accessRef();
84
+ },
85
+ };
86
+ });
87
+ }
88
+ /** @category Subscription & Loading */
89
+ static load(id, as, depth) {
90
+ return loadCoValue(this, id, as, depth);
91
+ }
92
+ /** @category Subscription & Loading */
93
+ static loadEf(id, depth) {
94
+ return loadCoValueEf(this, id, depth);
95
+ }
96
+ /** @category Subscription & Loading */
97
+ static subscribe(id, as, depth, listener) {
98
+ return subscribeToCoValue(this, id, as, depth, listener);
99
+ }
100
+ /** @category Subscription & Loading */
101
+ static subscribeEf(id, depth) {
102
+ return subscribeToCoValueEf(this, id, depth);
103
+ }
104
+ /** @category Subscription & Loading */
105
+ ensureLoaded(depth) {
106
+ return ensureCoValueLoaded(this, depth);
107
+ }
108
+ /** @category Subscription & Loading */
109
+ subscribe(depth, listener) {
110
+ return subscribeToExistingCoValue(this, depth, listener);
56
111
  }
57
112
  }
58
113
  _a = Group;
@@ -60,12 +115,17 @@ _a = Group;
60
115
  _a.prototype._type = "Group";
61
116
  })();
62
117
  (() => {
63
- _a._encoding = {
64
- profile: { json: true },
65
- root: { json: true },
118
+ _a._schema = {
119
+ profile: "json",
120
+ root: "json",
121
+ [MembersSym]: {
122
+ ref: () => Account,
123
+ optional: false,
124
+ },
125
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
126
  };
67
- Object.defineProperty(_a.prototype, "_encoding", {
68
- get: () => _a._encoding,
127
+ Object.defineProperty(_a.prototype, "_schema", {
128
+ get: () => _a._schema,
69
129
  });
70
130
  })();
71
131
  //# sourceMappingURL=group.js.map