jazz-tools 0.7.0-alpha.4 → 0.7.0-alpha.42

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) 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 +252 -0
  7. package/README.md +10 -2
  8. package/dist/coValues/account.js +104 -50
  9. package/dist/coValues/account.js.map +1 -1
  10. package/dist/coValues/coList.js +165 -112
  11. package/dist/coValues/coList.js.map +1 -1
  12. package/dist/coValues/coMap.js +243 -163
  13. package/dist/coValues/coMap.js.map +1 -1
  14. package/dist/coValues/coStream.js +256 -73
  15. package/dist/coValues/coStream.js.map +1 -1
  16. package/dist/coValues/deepLoading.js +57 -0
  17. package/dist/coValues/deepLoading.js.map +1 -0
  18. package/dist/coValues/extensions/imageDef.js +14 -8
  19. package/dist/coValues/extensions/imageDef.js.map +1 -1
  20. package/dist/coValues/group.js +49 -38
  21. package/dist/coValues/group.js.map +1 -1
  22. package/dist/coValues/interfaces.js +66 -26
  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 +60 -19
  27. package/dist/implementation/refs.js.map +1 -1
  28. package/dist/implementation/schema.js +44 -1
  29. package/dist/implementation/schema.js.map +1 -1
  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 +4 -5
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal.js +4 -1
  37. package/dist/internal.js.map +1 -1
  38. package/dist/tests/coList.test.js +51 -52
  39. package/dist/tests/coList.test.js.map +1 -1
  40. package/dist/tests/coMap.test.js +196 -75
  41. package/dist/tests/coMap.test.js.map +1 -1
  42. package/dist/tests/coStream.test.js +95 -85
  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 +184 -153
  50. package/src/coValues/coList.ts +220 -173
  51. package/src/coValues/coMap.ts +322 -312
  52. package/src/coValues/coStream.ts +397 -135
  53. package/src/coValues/deepLoading.ts +215 -0
  54. package/src/coValues/extensions/imageDef.ts +16 -17
  55. package/src/coValues/group.ts +95 -111
  56. package/src/coValues/interfaces.ts +217 -115
  57. package/src/implementation/devtoolsFormatters.ts +110 -0
  58. package/src/implementation/inspect.ts +1 -1
  59. package/src/implementation/refs.ts +91 -38
  60. package/src/implementation/schema.ts +87 -46
  61. package/src/implementation/subscriptionScope.ts +44 -12
  62. package/src/implementation/symbols.ts +11 -0
  63. package/src/index.ts +13 -9
  64. package/src/internal.ts +6 -2
  65. package/src/tests/coList.test.ts +67 -66
  66. package/src/tests/coMap.test.ts +226 -123
  67. package/src/tests/coStream.test.ts +141 -131
  68. package/src/tests/deepLoading.test.ts +301 -0
  69. package/src/tests/groupsAndAccounts.test.ts +91 -0
@@ -1,105 +1,84 @@
1
1
  var _a;
2
- import { cojsonInternals } from "cojson";
3
- import { Account, CoValueBase, ValueRef, inspect } 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, } 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
- get _encoding() {
7
- return this.constructor._encoding;
8
+ static Of(item) {
9
+ var _b, _c;
10
+ return _c = class CoStreamOf extends _a {
11
+ constructor() {
12
+ super(...arguments);
13
+ this[_b] = item;
14
+ }
15
+ },
16
+ _b = co.items,
17
+ _c;
18
+ }
19
+ get _schema() {
20
+ return this.constructor._schema;
8
21
  }
9
22
  get byMe() {
10
- return this.by[this._loadedAs.id];
23
+ return this[this._loadedAs.id];
11
24
  }
12
25
  get inCurrentSession() {
13
- return this.in[this._loadedAs.sessionID];
26
+ return this.perSession[this._loadedAs.sessionID];
14
27
  }
15
- constructor(init, options) {
28
+ constructor(options) {
16
29
  super();
17
- this.by = {};
18
- this.in = {};
19
- let raw;
20
30
  if ("fromRaw" in options) {
21
- raw = options.fromRaw;
22
- }
23
- else {
24
- const rawOwner = options.owner._raw;
25
- raw = rawOwner.createStream();
26
- }
27
- Object.defineProperties(this, {
28
- id: {
29
- value: raw.id,
30
- enumerable: false,
31
- },
32
- _raw: { value: raw, enumerable: false },
33
- });
34
- if (init !== undefined) {
35
- for (const item of init) {
36
- this.pushItem(item);
37
- }
38
- }
39
- this.updateEntries();
40
- }
41
- updateEntries() {
42
- for (const accountID of this._raw.accounts()) {
43
- Object.defineProperty(this.by, accountID, {
44
- get: () => {
45
- const rawEntry = this._raw.lastItemBy(accountID);
46
- if (!rawEntry)
47
- return;
48
- return entryFromRawEntry(this, rawEntry, this._loadedAs, accountID, this._encoding._item);
31
+ Object.defineProperties(this, {
32
+ id: {
33
+ value: options.fromRaw.id,
34
+ enumerable: false,
49
35
  },
50
- configurable: true,
51
- enumerable: true,
36
+ _raw: { value: options.fromRaw, enumerable: false },
52
37
  });
53
38
  }
54
- for (const sessionID of this._raw.sessions()) {
55
- Object.defineProperty(this.in, sessionID, {
56
- get: () => {
57
- const rawEntry = this._raw.lastItemIn(sessionID);
58
- if (!rawEntry)
59
- return;
60
- const by = cojsonInternals.accountOrAgentIDfromSessionID(sessionID);
61
- return entryFromRawEntry(this, rawEntry, this._loadedAs, cojsonInternals.isAccountID(by)
62
- ? by
63
- : undefined, this._encoding._item);
64
- },
65
- configurable: true,
66
- enumerable: true,
67
- });
39
+ else {
40
+ this[InitValues] = {
41
+ init: options.init,
42
+ owner: options.owner,
43
+ };
68
44
  }
45
+ return new Proxy(this, CoStreamProxyHandler);
46
+ }
47
+ static create(init, options) {
48
+ return new this({ init, owner: options.owner });
69
49
  }
70
50
  push(...items) {
71
51
  for (const item of items) {
72
52
  this.pushItem(item);
73
53
  }
74
- this.updateEntries();
75
54
  }
76
55
  pushItem(item) {
77
- const itemDescriptor = this._encoding._item;
56
+ const itemDescriptor = this._schema[ItemsSym];
78
57
  if (itemDescriptor === "json") {
79
58
  this._raw.push(item);
80
59
  }
81
60
  else if ("encoded" in itemDescriptor) {
82
- this._raw.push(Schema.encodeSync(itemDescriptor.encoded)(item));
61
+ this._raw.push(encodeSync(itemDescriptor.encoded)(item));
83
62
  }
84
- else if ("ref" in itemDescriptor) {
63
+ else if (isRefEncoded(itemDescriptor)) {
85
64
  this._raw.push(item.id);
86
65
  }
87
66
  }
88
67
  toJSON() {
89
- const itemDescriptor = this._encoding._item;
68
+ const itemDescriptor = this._schema[ItemsSym];
90
69
  const mapper = itemDescriptor === "json"
91
70
  ? (v) => v
92
71
  : "encoded" in itemDescriptor
93
- ? Schema.encodeSync(itemDescriptor.encoded)
72
+ ? encodeSync(itemDescriptor.encoded)
94
73
  : (v) => v && v.id;
95
74
  return {
96
75
  id: this.id,
97
76
  _type: this._type,
98
- by: Object.fromEntries(Object.entries(this.by).map(([account, entry]) => [
77
+ ...Object.fromEntries(Object.entries(this).map(([account, entry]) => [
99
78
  account,
100
79
  mapper(entry.value),
101
80
  ])),
102
- in: Object.fromEntries(Object.entries(this.in).map(([session, entry]) => [
81
+ in: Object.fromEntries(Object.entries(this.perSession).map(([session, entry]) => [
103
82
  session,
104
83
  mapper(entry.value),
105
84
  ])),
@@ -108,9 +87,9 @@ export class CoStream extends CoValueBase {
108
87
  [inspect]() {
109
88
  return this.toJSON();
110
89
  }
111
- static encoding(def) {
112
- this._encoding || (this._encoding = {});
113
- Object.assign(this._encoding, def);
90
+ static schema(def) {
91
+ this._schema || (this._schema = {});
92
+ Object.assign(this._schema, def);
114
93
  }
115
94
  }
116
95
  _a = CoStream;
@@ -124,28 +103,188 @@ function entryFromRawEntry(accessFrom, rawEntry, loadedAs, accountID, itemField)
124
103
  return rawEntry.value;
125
104
  }
126
105
  else if ("encoded" in itemField) {
127
- return Schema.decodeSync(itemField.encoded)(rawEntry.value);
106
+ return decodeSync(itemField.encoded)(rawEntry.value);
128
107
  }
129
- else if ("ref" in itemField) {
130
- return this.ref?.accessFrom(accessFrom);
108
+ else if (isRefEncoded(itemField)) {
109
+ return this.ref?.accessFrom(accessFrom, rawEntry.by +
110
+ rawEntry.tx.sessionID +
111
+ rawEntry.tx.txIndex +
112
+ ".value");
113
+ }
114
+ else {
115
+ throw new Error("Invalid item field schema");
131
116
  }
132
117
  },
133
118
  get ref() {
134
- if (itemField !== "json" && "ref" in itemField) {
119
+ if (itemField !== "json" && isRefEncoded(itemField)) {
135
120
  const rawId = rawEntry.value;
136
- return new ValueRef(rawId, loadedAs, itemField.ref());
121
+ return new Ref(rawId, loadedAs, itemField);
122
+ }
123
+ else {
124
+ return undefined;
137
125
  }
138
126
  },
139
127
  get by() {
140
128
  return (accountID &&
141
- new ValueRef(accountID, loadedAs, Account)?.accessFrom(accessFrom));
129
+ new Ref(accountID, loadedAs, Account)?.accessFrom(accessFrom, rawEntry.by +
130
+ rawEntry.tx.sessionID +
131
+ rawEntry.tx.txIndex +
132
+ ".by"));
142
133
  },
143
134
  madeAt: rawEntry.at,
144
135
  tx: rawEntry.tx,
145
136
  };
146
137
  }
138
+ function init(stream) {
139
+ const init = stream[InitValues];
140
+ if (!init)
141
+ return;
142
+ const raw = init.owner._raw.createStream();
143
+ Object.defineProperties(stream, {
144
+ id: {
145
+ value: raw.id,
146
+ enumerable: false,
147
+ },
148
+ _raw: { value: raw, enumerable: false },
149
+ });
150
+ if (init.init) {
151
+ stream.push(...init.init);
152
+ }
153
+ delete stream[InitValues];
154
+ }
155
+ export const CoStreamProxyHandler = {
156
+ get(target, key, receiver) {
157
+ if (typeof key === "string" && key.startsWith("co_")) {
158
+ const rawEntry = target._raw.lastItemBy(key);
159
+ if (!rawEntry)
160
+ return;
161
+ const entry = entryFromRawEntry(receiver, rawEntry, target._loadedAs, key, target._schema[ItemsSym]);
162
+ Object.defineProperty(entry, "all", {
163
+ get: () => {
164
+ const allRawEntries = target._raw.itemsBy(key);
165
+ return (function* () {
166
+ while (true) {
167
+ const rawEntry = allRawEntries.next();
168
+ if (rawEntry.done)
169
+ return;
170
+ yield entryFromRawEntry(receiver, rawEntry.value, target._loadedAs, key, target._schema[ItemsSym]);
171
+ }
172
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
173
+ })();
174
+ },
175
+ });
176
+ return entry;
177
+ }
178
+ else if (key === "perSession") {
179
+ return new Proxy({}, CoStreamPerSessionProxyHandler(target, receiver));
180
+ }
181
+ else {
182
+ return Reflect.get(target, key, receiver);
183
+ }
184
+ },
185
+ set(target, key, value, receiver) {
186
+ var _b;
187
+ if (key === ItemsSym &&
188
+ typeof value === "object" &&
189
+ SchemaInit in value) {
190
+ (_b = target.constructor)._schema || (_b._schema = {});
191
+ target.constructor._schema[ItemsSym] =
192
+ value[SchemaInit];
193
+ init(target);
194
+ return true;
195
+ }
196
+ else {
197
+ return Reflect.set(target, key, value, receiver);
198
+ }
199
+ },
200
+ defineProperty(target, key, descriptor) {
201
+ var _b;
202
+ if (descriptor.value &&
203
+ key === ItemsSym &&
204
+ typeof descriptor.value === "object" &&
205
+ SchemaInit in descriptor.value) {
206
+ (_b = target.constructor)._schema || (_b._schema = {});
207
+ target.constructor._schema[ItemsSym] =
208
+ descriptor.value[SchemaInit];
209
+ init(target);
210
+ return true;
211
+ }
212
+ else {
213
+ return Reflect.defineProperty(target, key, descriptor);
214
+ }
215
+ },
216
+ ownKeys(target) {
217
+ const keys = Reflect.ownKeys(target);
218
+ for (const accountID of target._raw.accounts()) {
219
+ keys.push(accountID);
220
+ }
221
+ return keys;
222
+ },
223
+ getOwnPropertyDescriptor(target, key) {
224
+ if (typeof key === "string" && key.startsWith("co_")) {
225
+ return {
226
+ configurable: true,
227
+ enumerable: true,
228
+ writable: false,
229
+ };
230
+ }
231
+ else {
232
+ return Reflect.getOwnPropertyDescriptor(target, key);
233
+ }
234
+ },
235
+ };
236
+ const CoStreamPerSessionProxyHandler = (innerTarget, accessFrom) => ({
237
+ get(_target, key, receiver) {
238
+ if (typeof key === "string" && key.includes("session")) {
239
+ const sessionID = key;
240
+ const rawEntry = innerTarget._raw.lastItemIn(sessionID);
241
+ if (!rawEntry)
242
+ return;
243
+ const by = cojsonInternals.accountOrAgentIDfromSessionID(sessionID);
244
+ const entry = entryFromRawEntry(accessFrom, rawEntry, innerTarget._loadedAs, cojsonInternals.isAccountID(by)
245
+ ? by
246
+ : undefined, innerTarget._schema[ItemsSym]);
247
+ Object.defineProperty(entry, "all", {
248
+ get: () => {
249
+ const allRawEntries = innerTarget._raw.itemsIn(sessionID);
250
+ return (function* () {
251
+ while (true) {
252
+ const rawEntry = allRawEntries.next();
253
+ if (rawEntry.done)
254
+ return;
255
+ yield entryFromRawEntry(accessFrom, rawEntry.value, innerTarget._loadedAs, cojsonInternals.isAccountID(by)
256
+ ? by
257
+ : undefined, innerTarget._schema[ItemsSym]);
258
+ }
259
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
260
+ })();
261
+ },
262
+ });
263
+ return entry;
264
+ }
265
+ else {
266
+ return Reflect.get(innerTarget, key, receiver);
267
+ }
268
+ },
269
+ ownKeys() {
270
+ return innerTarget._raw.sessions();
271
+ },
272
+ getOwnPropertyDescriptor(target, key) {
273
+ if (typeof key === "string" && key.startsWith("co_")) {
274
+ return {
275
+ configurable: true,
276
+ enumerable: true,
277
+ writable: false,
278
+ };
279
+ }
280
+ else {
281
+ return Reflect.getOwnPropertyDescriptor(target, key);
282
+ }
283
+ },
284
+ });
285
+ /** @category CoValues */
147
286
  export class BinaryCoStream extends CoValueBase {
148
- constructor(init, options) {
287
+ constructor(options) {
149
288
  super();
150
289
  let raw;
151
290
  if ("fromRaw" in options) {
@@ -160,9 +299,13 @@ export class BinaryCoStream extends CoValueBase {
160
299
  value: raw.id,
161
300
  enumerable: false,
162
301
  },
302
+ _type: { value: "BinaryCoStream", enumerable: false },
163
303
  _raw: { value: raw, enumerable: false },
164
304
  });
165
305
  }
306
+ static create(options) {
307
+ return new this(options);
308
+ }
166
309
  getChunks(options) {
167
310
  return this._raw.getBinaryChunks(options?.allowUnfinished);
168
311
  }
@@ -175,6 +318,46 @@ export class BinaryCoStream extends CoValueBase {
175
318
  end() {
176
319
  this._raw.endBinaryStream();
177
320
  }
321
+ toBlob(options) {
322
+ const chunks = this.getChunks({
323
+ allowUnfinished: options?.allowUnfinished,
324
+ });
325
+ if (!chunks) {
326
+ return undefined;
327
+ }
328
+ return new Blob(chunks.chunks, { type: chunks.mimeType });
329
+ }
330
+ static async loadAsBlob(id, as, options) {
331
+ const stream = await this.load(id, as, []);
332
+ return stream?.toBlob({
333
+ allowUnfinished: options?.allowUnfinished,
334
+ });
335
+ }
336
+ static async createFromBlob(blob, options) {
337
+ const stream = this.create({ owner: options.owner });
338
+ const start = Date.now();
339
+ const data = new Uint8Array(await blob.arrayBuffer());
340
+ stream.start({
341
+ mimeType: blob.type,
342
+ totalSizeBytes: blob.size,
343
+ fileName: blob instanceof File ? blob.name : undefined,
344
+ });
345
+ const chunkSize = MAX_RECOMMENDED_TX_SIZE;
346
+ let lastProgressUpdate = Date.now();
347
+ for (let idx = 0; idx < data.length; idx += chunkSize) {
348
+ stream.push(data.slice(idx, idx + chunkSize));
349
+ if (Date.now() - lastProgressUpdate > 100) {
350
+ options.onProgress?.(idx / data.length);
351
+ lastProgressUpdate = Date.now();
352
+ }
353
+ await new Promise((resolve) => setTimeout(resolve, 0));
354
+ }
355
+ stream.end();
356
+ const end = Date.now();
357
+ console.debug("Finished creating binary stream in", (end - start) / 1000, "s - Throughput in MB/s", (1000 * (blob.size / (end - start))) / (1024 * 1024));
358
+ options.onProgress?.(1);
359
+ return stream;
360
+ }
178
361
  toJSON() {
179
362
  return {
180
363
  id: this.id,
@@ -1 +1 @@
1
- {"version":3,"file":"coStream.js","sourceRoot":"","sources":["../../src/coValues/coStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coStream.js","sourceRoot":"","sources":["../../src/coValues/coStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
+ export function fulfillsDepth(depth, value) {
3
+ if (value._type === "CoMap" ||
4
+ value._type === "Group" ||
5
+ value._type === "Account") {
6
+ if (Array.isArray(depth) && depth.length === 1) {
7
+ return Object.entries(value).every(([key, item]) => {
8
+ return value._refs[key]
9
+ ? item && fulfillsDepth(depth[0], item)
10
+ : true;
11
+ });
12
+ }
13
+ else {
14
+ for (const key of Object.keys(depth)) {
15
+ const map = value;
16
+ if (!map._refs[key]) {
17
+ continue;
18
+ }
19
+ if (!map[key]) {
20
+ return false;
21
+ }
22
+ if (!fulfillsDepth(depth[key], map[key])) {
23
+ return false;
24
+ }
25
+ }
26
+ return true;
27
+ }
28
+ }
29
+ else if (value._type === "CoList") {
30
+ if (depth.length === 0) {
31
+ return true;
32
+ }
33
+ else {
34
+ const itemDepth = depth[0];
35
+ return value.every((item, i) => value._refs[i]
36
+ ? item && fulfillsDepth(itemDepth, item)
37
+ : true);
38
+ }
39
+ }
40
+ else if (value._type === "CoStream") {
41
+ if (depth.length === 0) {
42
+ return true;
43
+ }
44
+ else {
45
+ const itemDepth = depth[0];
46
+ return Object.values(value.perSession).every((entry) => entry.value && fulfillsDepth(itemDepth, entry.value));
47
+ }
48
+ }
49
+ else if (value._type === "BinaryCoStream") {
50
+ return true;
51
+ }
52
+ else {
53
+ console.error(value);
54
+ throw new Error("Unexpected value type: " + value._type);
55
+ }
56
+ }
57
+ //# sourceMappingURL=deepLoading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepLoading.js","sourceRoot":"","sources":["../../src/coValues/deepLoading.ts"],"names":[],"mappings":"AAaA,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAAC,KAAU,EAAE,KAAc;IACpD,IACI,KAAK,CAAC,KAAK,KAAK,OAAO;QACvB,KAAK,CAAC,KAAK,KAAK,OAAO;QACvB,KAAK,CAAC,KAAK,KAAK,SAAS,EAC3B,CAAC;QACC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;gBAC/C,OACI,KAGH,CAAC,KAAK,CAAC,GAAG,CAAC;oBACR,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;oBACvC,CAAC,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,KAIX,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClB,SAAS;gBACb,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACZ,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACvC,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAQ,KAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACtC,KAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtB,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC;gBACxC,CAAC,CAAC,IAAI,CACb,CAAC;QACN,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC,MAAM,CAAE,KAAkB,CAAC,UAAU,CAAC,CAAC,KAAK,CACtD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAClE,CAAC;QACN,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC"}
@@ -1,10 +1,20 @@
1
- import { BinaryCoStream, CoMap, indexSignature, subscriptionsScopes, } from "../../internal.js";
1
+ var _a;
2
+ import { BinaryCoStream, CoMap, co, subscriptionsScopes, } from "../../internal.js";
3
+ /** @category Media */
2
4
  export class ImageDefinition extends CoMap {
3
- get _highestResAvailable() {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.originalSize = co.json();
8
+ this.placeholderDataURL = co.string;
9
+ this[_a] = co.ref(BinaryCoStream);
10
+ }
11
+ highestResAvailable(options) {
4
12
  if (!subscriptionsScopes.get(this)) {
5
13
  console.warn("highestResAvailable() only makes sense when used within a subscription.");
6
14
  }
7
- 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));
8
18
  resolutions.sort((a, b) => {
9
19
  const aWidth = Number(a.split("x")[0]);
10
20
  const bWidth = Number(b.split("x")[0]);
@@ -28,9 +38,5 @@ export class ImageDefinition extends CoMap {
28
38
  });
29
39
  }
30
40
  }
31
- ImageDefinition.encoding({
32
- originalSize: "json",
33
- placeholderDataURL: "json",
34
- [indexSignature]: { ref: () => BinaryCoStream },
35
- });
41
+ _a = co.items;
36
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,cAAc,EACd,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,OAAO,eAAgB,SAAQ,KAAsB;IAOvD,IAAI,oBAAoB;QAGpB,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;AACD,eAAe,CAAC,QAAQ,CAAC;IACrB,YAAY,EAAE,MAAM;IACpB,kBAAkB,EAAE,MAAM;IAC1B,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;CAClD,CAAC,CAAC"}
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"}