jazz-tools 0.8.44 → 0.8.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. package/.turbo/turbo-build.log +16 -10
  2. package/CHANGELOG.md +12 -0
  3. package/dist/chunk-5WLKIDKU.js +2844 -0
  4. package/dist/chunk-5WLKIDKU.js.map +1 -0
  5. package/dist/index.native.js +63 -0
  6. package/dist/index.native.js.map +1 -0
  7. package/dist/index.web.js +61 -0
  8. package/dist/index.web.js.map +1 -0
  9. package/package.json +9 -12
  10. package/src/coValues/account.ts +21 -9
  11. package/src/coValues/coFeed.ts +4 -3
  12. package/src/coValues/coList.ts +8 -5
  13. package/src/coValues/coMap.ts +6 -3
  14. package/src/coValues/deepLoading.ts +6 -12
  15. package/src/coValues/extensions/imageDef.ts +3 -1
  16. package/src/coValues/group.ts +8 -11
  17. package/src/coValues/inbox.ts +377 -0
  18. package/src/coValues/interfaces.ts +9 -6
  19. package/src/coValues/profile.ts +11 -0
  20. package/src/coValues/registeredSchemas.ts +12 -0
  21. package/src/exports.ts +21 -15
  22. package/src/implementation/anonymousJazzAgent.ts +6 -0
  23. package/src/implementation/createContext.ts +6 -7
  24. package/src/implementation/refs.ts +1 -1
  25. package/src/implementation/subscriptionScope.ts +1 -1
  26. package/src/index.native.ts +0 -1
  27. package/src/internal.ts +1 -9
  28. package/src/tests/account.test.ts +2 -2
  29. package/src/tests/coFeed.test.ts +0 -9
  30. package/src/tests/coMap.test.ts +2 -2
  31. package/src/tests/groupsAndAccounts.test.ts +1 -1
  32. package/src/tests/inbox.test.ts +256 -0
  33. package/src/tests/schemaUnion.test.ts +1 -1
  34. package/src/tests/utils.ts +14 -0
  35. package/tsup.config.ts +13 -0
  36. package/dist/native/coValues/account.js +0 -221
  37. package/dist/native/coValues/account.js.map +0 -1
  38. package/dist/native/coValues/coFeed.js +0 -571
  39. package/dist/native/coValues/coFeed.js.map +0 -1
  40. package/dist/native/coValues/coList.js +0 -404
  41. package/dist/native/coValues/coList.js.map +0 -1
  42. package/dist/native/coValues/coMap.js +0 -537
  43. package/dist/native/coValues/coMap.js.map +0 -1
  44. package/dist/native/coValues/deepLoading.js +0 -63
  45. package/dist/native/coValues/deepLoading.js.map +0 -1
  46. package/dist/native/coValues/extensions/imageDef.js +0 -42
  47. package/dist/native/coValues/extensions/imageDef.js.map +0 -1
  48. package/dist/native/coValues/group.js +0 -136
  49. package/dist/native/coValues/group.js.map +0 -1
  50. package/dist/native/coValues/interfaces.js +0 -135
  51. package/dist/native/coValues/interfaces.js.map +0 -1
  52. package/dist/native/coValues/schemaUnion.js +0 -89
  53. package/dist/native/coValues/schemaUnion.js.map +0 -1
  54. package/dist/native/exports.js +0 -5
  55. package/dist/native/exports.js.map +0 -1
  56. package/dist/native/implementation/createContext.js +0 -157
  57. package/dist/native/implementation/createContext.js.map +0 -1
  58. package/dist/native/implementation/devtoolsFormatters.js +0 -95
  59. package/dist/native/implementation/devtoolsFormatters.js.map +0 -1
  60. package/dist/native/implementation/errors.js +0 -2
  61. package/dist/native/implementation/errors.js.map +0 -1
  62. package/dist/native/implementation/inspect.js +0 -2
  63. package/dist/native/implementation/inspect.js.map +0 -1
  64. package/dist/native/implementation/refs.js +0 -115
  65. package/dist/native/implementation/refs.js.map +0 -1
  66. package/dist/native/implementation/schema.js +0 -96
  67. package/dist/native/implementation/schema.js.map +0 -1
  68. package/dist/native/implementation/subscriptionScope.js +0 -91
  69. package/dist/native/implementation/subscriptionScope.js.map +0 -1
  70. package/dist/native/implementation/symbols.js +0 -4
  71. package/dist/native/implementation/symbols.js.map +0 -1
  72. package/dist/native/index.native.js +0 -3
  73. package/dist/native/index.native.js.map +0 -1
  74. package/dist/native/internal.js +0 -18
  75. package/dist/native/internal.js.map +0 -1
  76. package/dist/native/lib/cache.js +0 -13
  77. package/dist/native/lib/cache.js.map +0 -1
  78. package/dist/native/lib/cache.test.js +0 -52
  79. package/dist/native/lib/cache.test.js.map +0 -1
  80. package/dist/web/coValues/account.js +0 -221
  81. package/dist/web/coValues/account.js.map +0 -1
  82. package/dist/web/coValues/coFeed.js +0 -571
  83. package/dist/web/coValues/coFeed.js.map +0 -1
  84. package/dist/web/coValues/coList.js +0 -404
  85. package/dist/web/coValues/coList.js.map +0 -1
  86. package/dist/web/coValues/coMap.js +0 -537
  87. package/dist/web/coValues/coMap.js.map +0 -1
  88. package/dist/web/coValues/deepLoading.js +0 -63
  89. package/dist/web/coValues/deepLoading.js.map +0 -1
  90. package/dist/web/coValues/extensions/imageDef.js +0 -42
  91. package/dist/web/coValues/extensions/imageDef.js.map +0 -1
  92. package/dist/web/coValues/group.js +0 -136
  93. package/dist/web/coValues/group.js.map +0 -1
  94. package/dist/web/coValues/interfaces.js +0 -135
  95. package/dist/web/coValues/interfaces.js.map +0 -1
  96. package/dist/web/coValues/schemaUnion.js +0 -89
  97. package/dist/web/coValues/schemaUnion.js.map +0 -1
  98. package/dist/web/exports.js +0 -5
  99. package/dist/web/exports.js.map +0 -1
  100. package/dist/web/implementation/createContext.js +0 -157
  101. package/dist/web/implementation/createContext.js.map +0 -1
  102. package/dist/web/implementation/devtoolsFormatters.js +0 -95
  103. package/dist/web/implementation/devtoolsFormatters.js.map +0 -1
  104. package/dist/web/implementation/errors.js +0 -2
  105. package/dist/web/implementation/errors.js.map +0 -1
  106. package/dist/web/implementation/inspect.js +0 -2
  107. package/dist/web/implementation/inspect.js.map +0 -1
  108. package/dist/web/implementation/refs.js +0 -115
  109. package/dist/web/implementation/refs.js.map +0 -1
  110. package/dist/web/implementation/schema.js +0 -96
  111. package/dist/web/implementation/schema.js.map +0 -1
  112. package/dist/web/implementation/subscriptionScope.js +0 -91
  113. package/dist/web/implementation/subscriptionScope.js.map +0 -1
  114. package/dist/web/implementation/symbols.js +0 -4
  115. package/dist/web/implementation/symbols.js.map +0 -1
  116. package/dist/web/index.web.js +0 -3
  117. package/dist/web/index.web.js.map +0 -1
  118. package/dist/web/internal.js +0 -18
  119. package/dist/web/internal.js.map +0 -1
  120. package/dist/web/lib/cache.js +0 -13
  121. package/dist/web/lib/cache.js.map +0 -1
  122. package/dist/web/lib/cache.test.js +0 -52
  123. package/dist/web/lib/cache.test.js.map +0 -1
@@ -1,571 +0,0 @@
1
- var _a;
2
- import { MAX_RECOMMENDED_TX_SIZE, cojsonInternals } from "cojson";
3
- import { Account, CoValueBase, ItemsSym, Ref, SchemaInit, co, ensureCoValueLoaded, inspect, isRefEncoded, loadCoValue, subscribeToCoValue, subscribeToExistingCoValue, } from "../internal.js";
4
- /** @deprecated Use CoFeed instead */
5
- export { CoFeed as CoStream };
6
- /**
7
- * CoFeeds are collaborative logs of data.
8
- *
9
- * @categoryDescription Content
10
- * They are similar to `CoList`s, but with a few key differences:
11
- * - They are append-only
12
- * - They consist of several internal append-only logs, one per account session (tab, device, app instance, etc.)
13
- * - They expose those as a per-account aggregated view (default) or a precise per-session view
14
- *
15
- * ```ts
16
- * favDog.push("Poodle");
17
- * favDog.push("Schnowzer");
18
- * ```
19
- *
20
- * @category CoValues
21
- */
22
- export class CoFeed extends CoValueBase {
23
- /**
24
- * Declare a `CoFeed` by subclassing `CoFeed.Of(...)` and passing the item schema using a `co` primitive or a `co.ref`.
25
- *
26
- * @example
27
- * ```ts
28
- * class ColorFeed extends CoFeed.Of(co.string) {}
29
- * class AnimalFeed extends CoFeed.Of(co.ref(Animal)) {}
30
- * ```
31
- *
32
- * @category Declaration
33
- */
34
- static Of(item) {
35
- var _b, _c;
36
- return _c = class CoFeedOf extends _a {
37
- constructor() {
38
- super(...arguments);
39
- this[_b] = item;
40
- }
41
- },
42
- _b = co.items,
43
- _c;
44
- }
45
- /** @internal */
46
- get _schema() {
47
- return this.constructor._schema;
48
- }
49
- /**
50
- * The current account's view of this `CoFeed`
51
- * @category Content
52
- */
53
- get byMe() {
54
- if (this._loadedAs._type === "Account") {
55
- return this[this._loadedAs.id];
56
- }
57
- else {
58
- return undefined;
59
- }
60
- }
61
- /**
62
- * The current session's view of this `CoFeed`
63
- *
64
- * This is a shortcut for `this.perSession` where the session ID is the current session ID.
65
- *
66
- * @category Content
67
- */
68
- get inCurrentSession() {
69
- if (this._loadedAs._type === "Account") {
70
- return this.perSession[this._loadedAs.sessionID];
71
- }
72
- else {
73
- return undefined;
74
- }
75
- }
76
- constructor(options) {
77
- super();
78
- if (options && "fromRaw" in options) {
79
- Object.defineProperties(this, {
80
- id: {
81
- value: options.fromRaw.id,
82
- enumerable: false,
83
- },
84
- _raw: { value: options.fromRaw, enumerable: false },
85
- });
86
- }
87
- return new Proxy(this, CoStreamProxyHandler);
88
- }
89
- /**
90
- * Create a new `CoFeed`
91
- * @category Creation
92
- */
93
- static create(init, options) {
94
- const instance = new this({ init, owner: options.owner });
95
- const raw = options.owner._raw.createStream();
96
- Object.defineProperties(instance, {
97
- id: {
98
- value: raw.id,
99
- enumerable: false,
100
- },
101
- _raw: { value: raw, enumerable: false },
102
- });
103
- if (init) {
104
- instance.push(...init);
105
- }
106
- return instance;
107
- }
108
- /**
109
- * Push items to this `CoFeed`
110
- *
111
- * Items are appended to the current session's log. Each session (tab, device, app instance)
112
- * maintains its own append-only log, which is then aggregated into the per-account view.
113
- *
114
- * @example
115
- * ```ts
116
- * // Adds items to current session's log
117
- * feed.push("item1", "item2");
118
- *
119
- * // View items from current session
120
- * console.log(feed.inCurrentSession);
121
- *
122
- * // View aggregated items from all sessions for current account
123
- * console.log(feed.byMe);
124
- * ```
125
- *
126
- * @category Content
127
- */
128
- push(...items) {
129
- for (const item of items) {
130
- this.pushItem(item);
131
- }
132
- }
133
- pushItem(item) {
134
- const itemDescriptor = this._schema[ItemsSym];
135
- if (itemDescriptor === "json") {
136
- this._raw.push(item);
137
- }
138
- else if ("encoded" in itemDescriptor) {
139
- this._raw.push(itemDescriptor.encoded.encode(item));
140
- }
141
- else if (isRefEncoded(itemDescriptor)) {
142
- this._raw.push(item.id);
143
- }
144
- }
145
- /**
146
- * Get a JSON representation of the `CoFeed`
147
- * @category
148
- */
149
- toJSON() {
150
- const itemDescriptor = this._schema[ItemsSym];
151
- const mapper = itemDescriptor === "json"
152
- ? (v) => v
153
- : "encoded" in itemDescriptor
154
- ? itemDescriptor.encoded.encode
155
- : (v) => v && v.id;
156
- return {
157
- id: this.id,
158
- _type: this._type,
159
- ...Object.fromEntries(Object.entries(this).map(([account, entry]) => [
160
- account,
161
- mapper(entry.value),
162
- ])),
163
- in: Object.fromEntries(Object.entries(this.perSession).map(([session, entry]) => [
164
- session,
165
- mapper(entry.value),
166
- ])),
167
- };
168
- }
169
- /** @internal */
170
- [inspect]() {
171
- return this.toJSON();
172
- }
173
- /** @internal */
174
- static schema(def) {
175
- this._schema ||= {};
176
- Object.assign(this._schema, def);
177
- }
178
- /**
179
- * Load a `CoFeed`
180
- * @category Subscription & Loading
181
- */
182
- static load(id, as, depth) {
183
- return loadCoValue(this, id, as, depth);
184
- }
185
- /**
186
- * Subscribe to a `CoFeed`, when you have an ID but don't have a `CoFeed` instance yet
187
- * @category Subscription & Loading
188
- */
189
- static subscribe(id, as, depth, listener) {
190
- return subscribeToCoValue(this, id, as, depth, listener);
191
- }
192
- /**
193
- * Ensure a `CoFeed` is loaded to the specified depth
194
- *
195
- * @returns A new instance of the same CoFeed that's loaded to the specified depth,
196
- * or undefined if it cannot be loaded that deeply
197
- * @category Subscription & Loading
198
- */
199
- ensureLoaded(depth) {
200
- return ensureCoValueLoaded(this, depth);
201
- }
202
- /**
203
- * An instance method to subscribe to an existing `CoFeed`
204
- *
205
- * No need to provide an ID or Account since they're already part of the instance.
206
- * @category Subscription & Loading
207
- */
208
- subscribe(depth, listener) {
209
- return subscribeToExistingCoValue(this, depth, listener);
210
- }
211
- /**
212
- * Wait for the `CoFeed` to be uploaded to the other peers.
213
- *
214
- * @category Subscription & Loading
215
- */
216
- waitForSync(options) {
217
- return this._raw.core.waitForSync(options);
218
- }
219
- }
220
- _a = CoFeed;
221
- (() => {
222
- _a.prototype._type = "CoStream";
223
- })();
224
- /**
225
- * Converts a raw stream entry into a formatted CoFeed entry with proper typing and accessors.
226
- * @internal
227
- */
228
- function entryFromRawEntry(accessFrom, rawEntry, loadedAs, accountID, itemField) {
229
- return {
230
- get value() {
231
- if (itemField === "json") {
232
- return rawEntry.value;
233
- }
234
- else if ("encoded" in itemField) {
235
- return itemField.encoded.decode(rawEntry.value);
236
- }
237
- else if (isRefEncoded(itemField)) {
238
- return this.ref?.accessFrom(accessFrom, rawEntry.by + rawEntry.tx.sessionID + rawEntry.tx.txIndex + ".value");
239
- }
240
- else {
241
- throw new Error("Invalid item field schema");
242
- }
243
- },
244
- get ref() {
245
- if (itemField !== "json" && isRefEncoded(itemField)) {
246
- const rawId = rawEntry.value;
247
- return new Ref(rawId, loadedAs, itemField);
248
- }
249
- else {
250
- return undefined;
251
- }
252
- },
253
- get by() {
254
- return (accountID &&
255
- new Ref(accountID, loadedAs, {
256
- ref: Account,
257
- optional: false,
258
- })?.accessFrom(accessFrom, rawEntry.by + rawEntry.tx.sessionID + rawEntry.tx.txIndex + ".by"));
259
- },
260
- madeAt: rawEntry.at,
261
- tx: rawEntry.tx,
262
- };
263
- }
264
- /**
265
- * The proxy handler for `CoFeed` instances
266
- * @internal
267
- */
268
- export const CoStreamProxyHandler = {
269
- get(target, key, receiver) {
270
- if (typeof key === "string" && key.startsWith("co_")) {
271
- const rawEntry = target._raw.lastItemBy(key);
272
- if (!rawEntry)
273
- return;
274
- const entry = entryFromRawEntry(receiver, rawEntry, target._loadedAs, key, target._schema[ItemsSym]);
275
- Object.defineProperty(entry, "all", {
276
- get: () => {
277
- const allRawEntries = target._raw.itemsBy(key);
278
- return (function* () {
279
- while (true) {
280
- const rawEntry = allRawEntries.next();
281
- if (rawEntry.done)
282
- return;
283
- yield entryFromRawEntry(receiver, rawEntry.value, target._loadedAs, key, target._schema[ItemsSym]);
284
- }
285
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
286
- })();
287
- },
288
- });
289
- return entry;
290
- }
291
- else if (key === "perSession") {
292
- return new Proxy({}, CoStreamPerSessionProxyHandler(target, receiver));
293
- }
294
- else {
295
- return Reflect.get(target, key, receiver);
296
- }
297
- },
298
- set(target, key, value, receiver) {
299
- if (key === ItemsSym && typeof value === "object" && SchemaInit in value) {
300
- target.constructor._schema ||= {};
301
- target.constructor._schema[ItemsSym] =
302
- value[SchemaInit];
303
- return true;
304
- }
305
- else {
306
- return Reflect.set(target, key, value, receiver);
307
- }
308
- },
309
- defineProperty(target, key, descriptor) {
310
- if (descriptor.value &&
311
- key === ItemsSym &&
312
- typeof descriptor.value === "object" &&
313
- SchemaInit in descriptor.value) {
314
- target.constructor._schema ||= {};
315
- target.constructor._schema[ItemsSym] =
316
- descriptor.value[SchemaInit];
317
- return true;
318
- }
319
- else {
320
- return Reflect.defineProperty(target, key, descriptor);
321
- }
322
- },
323
- ownKeys(target) {
324
- const keys = Reflect.ownKeys(target);
325
- for (const accountID of target._raw.accounts()) {
326
- keys.push(accountID);
327
- }
328
- return keys;
329
- },
330
- getOwnPropertyDescriptor(target, key) {
331
- if (typeof key === "string" && key.startsWith("co_")) {
332
- return {
333
- configurable: true,
334
- enumerable: true,
335
- writable: false,
336
- };
337
- }
338
- else {
339
- return Reflect.getOwnPropertyDescriptor(target, key);
340
- }
341
- },
342
- };
343
- /**
344
- * The proxy handler for the per-session view of a `CoFeed`
345
- * @internal
346
- */
347
- const CoStreamPerSessionProxyHandler = (innerTarget, accessFrom) => ({
348
- get(_target, key, receiver) {
349
- if (typeof key === "string" && key.includes("session")) {
350
- const sessionID = key;
351
- const rawEntry = innerTarget._raw.lastItemIn(sessionID);
352
- if (!rawEntry)
353
- return;
354
- const by = cojsonInternals.accountOrAgentIDfromSessionID(sessionID);
355
- const entry = entryFromRawEntry(accessFrom, rawEntry, innerTarget._loadedAs, cojsonInternals.isAccountID(by)
356
- ? by
357
- : undefined, innerTarget._schema[ItemsSym]);
358
- Object.defineProperty(entry, "all", {
359
- get: () => {
360
- const allRawEntries = innerTarget._raw.itemsIn(sessionID);
361
- return (function* () {
362
- while (true) {
363
- const rawEntry = allRawEntries.next();
364
- if (rawEntry.done)
365
- return;
366
- yield entryFromRawEntry(accessFrom, rawEntry.value, innerTarget._loadedAs, cojsonInternals.isAccountID(by)
367
- ? by
368
- : undefined, innerTarget._schema[ItemsSym]);
369
- }
370
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
371
- })();
372
- },
373
- });
374
- return entry;
375
- }
376
- else {
377
- return Reflect.get(innerTarget, key, receiver);
378
- }
379
- },
380
- ownKeys() {
381
- return innerTarget._raw.sessions();
382
- },
383
- getOwnPropertyDescriptor(target, key) {
384
- if (typeof key === "string" && key.startsWith("co_")) {
385
- return {
386
- configurable: true,
387
- enumerable: true,
388
- writable: false,
389
- };
390
- }
391
- else {
392
- return Reflect.getOwnPropertyDescriptor(target, key);
393
- }
394
- },
395
- });
396
- /** @deprecated Use FileStream instead */
397
- export { FileStream as BinaryCoStream };
398
- /**
399
- * FileStreams are `CoFeed`s that contain binary data, collaborative versions of `Blob`s.
400
- *
401
- * @categoryDescription Declaration
402
- * `FileStream` can be referenced in schemas.
403
- *
404
- * ```ts
405
- * import { co, FileStream } from "jazz-tools";
406
- *
407
- * class MyCoMap extends CoMap {
408
- * file = co.ref(FileStream);
409
- * }
410
- * ```
411
- *
412
- * @category CoValues
413
- */
414
- export class FileStream extends CoValueBase {
415
- constructor(options) {
416
- super();
417
- let raw;
418
- if ("fromRaw" in options) {
419
- raw = options.fromRaw;
420
- }
421
- else {
422
- const rawOwner = options.owner._raw;
423
- raw = rawOwner.createBinaryStream();
424
- }
425
- Object.defineProperties(this, {
426
- id: {
427
- value: raw.id,
428
- enumerable: false,
429
- },
430
- _type: { value: "BinaryCoStream", enumerable: false },
431
- _raw: { value: raw, enumerable: false },
432
- });
433
- }
434
- static create(options) {
435
- return new this(options);
436
- }
437
- getChunks(options) {
438
- return this._raw.getBinaryChunks(options?.allowUnfinished);
439
- }
440
- isBinaryStreamEnded() {
441
- return this._raw.isBinaryStreamEnded();
442
- }
443
- start(options) {
444
- this._raw.startBinaryStream(options);
445
- }
446
- push(data) {
447
- this._raw.pushBinaryStreamChunk(data);
448
- }
449
- end() {
450
- this._raw.endBinaryStream();
451
- }
452
- toBlob(options) {
453
- const chunks = this.getChunks({
454
- allowUnfinished: options?.allowUnfinished,
455
- });
456
- if (!chunks) {
457
- return undefined;
458
- }
459
- // @ts-ignore
460
- return new Blob(chunks.chunks, { type: chunks.mimeType });
461
- }
462
- /**
463
- * Load a `FileStream` as a `Blob`
464
- *
465
- * @category Content
466
- */
467
- static async loadAsBlob(id, as, options) {
468
- let stream = await this.load(id, as, []);
469
- /**
470
- * If the user hasn't requested an incomplete blob and the
471
- * stream isn't complete wait for the stream download before progressing
472
- */
473
- if (!options?.allowUnfinished && !stream?.isBinaryStreamEnded()) {
474
- stream = await new Promise((resolve) => {
475
- const unsubscribe = subscribeToCoValue(this, id, as, [], (value) => {
476
- if (value.isBinaryStreamEnded()) {
477
- unsubscribe();
478
- resolve(value);
479
- }
480
- });
481
- });
482
- }
483
- return stream?.toBlob({
484
- allowUnfinished: options?.allowUnfinished,
485
- });
486
- }
487
- /**
488
- * Create a `FileStream` from a `Blob` or `File`
489
- *
490
- * @example
491
- * ```ts
492
- * import { co, FileStream } from "jazz-tools";
493
- *
494
- * const fileStream = await FileStream.createFromBlob(file, {owner: group})
495
- * ```
496
- * @category Content
497
- */
498
- static async createFromBlob(blob, options) {
499
- const stream = this.create({ owner: options.owner });
500
- const start = Date.now();
501
- const data = new Uint8Array(await blob.arrayBuffer());
502
- stream.start({
503
- mimeType: blob.type,
504
- totalSizeBytes: blob.size,
505
- fileName: blob instanceof File ? blob.name : undefined,
506
- });
507
- const chunkSize = MAX_RECOMMENDED_TX_SIZE;
508
- let lastProgressUpdate = Date.now();
509
- for (let idx = 0; idx < data.length; idx += chunkSize) {
510
- stream.push(data.slice(idx, idx + chunkSize));
511
- if (Date.now() - lastProgressUpdate > 100) {
512
- options.onProgress?.(idx / data.length);
513
- lastProgressUpdate = Date.now();
514
- }
515
- await new Promise((resolve) => setTimeout(resolve, 0));
516
- }
517
- stream.end();
518
- const end = Date.now();
519
- console.debug("Finished creating binary stream in", (end - start) / 1000, "s - Throughput in MB/s", (1000 * (blob.size / (end - start))) / (1024 * 1024));
520
- options.onProgress?.(1);
521
- return stream;
522
- }
523
- /**
524
- * Get a JSON representation of the `FileStream`
525
- * @category Content
526
- */
527
- toJSON() {
528
- return {
529
- id: this.id,
530
- _type: this._type,
531
- ...this.getChunks(),
532
- };
533
- }
534
- /** @internal */
535
- [inspect]() {
536
- return this.toJSON();
537
- }
538
- /**
539
- * Load a `FileStream`
540
- * @category Subscription & Loading
541
- */
542
- static load(id, as, depth) {
543
- return loadCoValue(this, id, as, depth);
544
- }
545
- /**
546
- * Subscribe to a `FileStream`, when you have an ID but don't have a `FileStream` instance yet
547
- * @category Subscription & Loading
548
- */
549
- static subscribe(id, as, depth, listener) {
550
- return subscribeToCoValue(this, id, as, depth, listener);
551
- }
552
- ensureLoaded(depth) {
553
- return ensureCoValueLoaded(this, depth);
554
- }
555
- /**
556
- * An instance method to subscribe to an existing `FileStream`
557
- * @category Subscription & Loading
558
- */
559
- subscribe(depth, listener) {
560
- return subscribeToExistingCoValue(this, depth, listener);
561
- }
562
- /**
563
- * Wait for the `FileStream` to be uploaded to the other peers.
564
- *
565
- * @category Subscription & Loading
566
- */
567
- waitForSync(options) {
568
- return this._raw.core.waitForSync(options);
569
- }
570
- }
571
- //# sourceMappingURL=coFeed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coFeed.js","sourceRoot":"","sources":["../../../src/coValues/coFeed.ts"],"names":[],"mappings":"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"}