@pluv/crdt-yjs 4.0.0 → 4.0.2

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.
@@ -1,23 +1,20 @@
1
-
2
- > @pluv/crdt-yjs@4.0.0 build /home/runner/work/pluv/pluv/packages/crdt-yjs
3
- > tsdown
4
-
5
- ℹ tsdown v0.20.0-beta.4 powered by rolldown v1.0.0-beta.60
1
+ $ tsdown
2
+ ℹ tsdown v0.22.2 powered by rolldown v1.1.0
6
3
  ℹ config file: /home/runner/work/pluv/pluv/packages/crdt-yjs/tsdown.config.ts
7
4
  ℹ entry: src/index.ts
8
5
  ℹ target: esnext
9
6
  ℹ tsconfig: tsconfig.json
10
7
  ℹ Build start
11
- ℹ dist/index.mjs 15.21 kB │ gzip: 4.08 kB
12
- ℹ dist/index.mjs.map 40.95 kB │ gzip: 9.02 kB
13
- ℹ dist/index.d.mts.map  5.87 kB │ gzip: 1.58 kB
14
- ℹ dist/chunk-15K8U1wQ.mjs  0.36 kB │ gzip: 0.25 kB
8
+ ℹ dist/index.mjs 15.12 kB │ gzip: 4.07 kB
9
+ ℹ dist/index.mjs.map 41.04 kB │ gzip: 8.87 kB
10
+ ℹ dist/index.d.mts.map  5.76 kB │ gzip: 1.58 kB
11
+ ℹ dist/chunk-D7D4PA-g.mjs  0.36 kB │ gzip: 0.26 kB
15
12
  ℹ dist/index.d.mts 10.91 kB │ gzip: 2.45 kB
16
- ℹ 5 files, total: 73.30 kB
17
- [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
18
- - rolldown-plugin-dts:generate (55%)
19
- - rolldown-plugin-dts:fake-js (22%)
20
- - rolldown-plugin-dts:resolver (22%)
13
+ ℹ 5 files, total: 73.19 kB
14
+ [PLUGIN_TIMINGS] Your build spent significant time in plugins. Here is a breakdown:
15
+ - rolldown-plugin-dts:generate (44%)
16
+ - rolldown-plugin-dts:fake-js (26%)
17
+ - rolldown-plugin-dts:resolver (17%)
21
18
  See https://rolldown.rs/options/checks#plugintimings for more details.
22
19
 
23
- ✔ Build complete in 3611ms
20
+ ✔ Build complete in 3854ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @pluv/crdt-yjs
2
2
 
3
+ ## 4.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - e1913b3: Upgraded internal dependencies
8
+ - Updated dependencies [e1913b3]
9
+ - @pluv/types@4.0.2
10
+ - @pluv/crdt@4.0.2
11
+
12
+ ## 4.0.1
13
+
14
+ ### Patch Changes
15
+
16
+ - @pluv/crdt@4.0.1
17
+ - @pluv/types@4.0.1
18
+
3
19
  ## 4.0.0
4
20
 
5
21
  ### Major Changes
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll as t };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/array/array.ts","../src/awareness/PluvYjsAwareness.ts","../src/awareness/awareness.ts","../src/doc/builder.ts","../src/doc/CrdtYjsDoc.ts","../src/doc/CrdtYjsDocFactory.ts","../src/doc/doc.ts","../src/map/map.ts","../src/provider/PluvYjsProvider.ts","../src/provider/provider.ts","../src/text/text.ts","../src/xmlElement/YjsXmlElement.ts","../src/xmlElement/xmlElement.ts","../src/xmlFragment/YjsXmlFragment.ts","../src/xmlFragment/xmlFragment.ts","../src/xmlText/xmlText.ts","../src/yjs.ts","../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/array/array.ts","../src/awareness/PluvYjsAwareness.ts","../src/awareness/awareness.ts","../src/doc/builder.ts","../src/doc/CrdtYjsDoc.ts","../src/doc/CrdtYjsDocFactory.ts","../src/doc/doc.ts","../src/map/map.ts","../src/provider/PluvYjsProvider.ts","../src/provider/provider.ts","../src/text/text.ts","../src/xmlElement/YjsXmlElement.ts","../src/xmlElement/xmlElement.ts","../src/xmlFragment/YjsXmlFragment.ts","../src/xmlFragment/xmlFragment.ts","../src/xmlText/xmlText.ts","../src/yjs.ts","../src/index.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,10 +1,9 @@
1
- import { t as __exportAll } from "./chunk-15K8U1wQ.mjs";
1
+ import { t as __exportAll } from "./chunk-D7D4PA-g.mjs";
2
2
  import { Array, Doc, Map as Map$1, Text, UndoManager, XmlElement, XmlFragment, XmlText, applyUpdate, encodeStateAsUpdate, mergeUpdates } from "yjs";
3
3
  import { ObservableV2 } from "lib0/observable";
4
4
  import { fromUint8Array, toUint8Array } from "js-base64";
5
5
  import { AbstractCrdtDocFactory } from "@pluv/crdt";
6
6
  import { StorageState } from "@pluv/types";
7
-
8
7
  //#region src/array/YjsArray.ts
9
8
  var YjsArray = class extends Array {
10
9
  initialValue;
@@ -17,18 +16,15 @@ var YjsArray = class extends Array {
17
16
  return {};
18
17
  }
19
18
  };
20
-
21
19
  //#endregion
22
20
  //#region src/array/array.ts
23
21
  const array = (value = []) => {
24
22
  return new YjsArray(value);
25
23
  };
26
-
27
24
  //#endregion
28
25
  //#region src/constants.ts
29
26
  const PLUV_PRESENCE_META_KEY = "__pluv";
30
27
  const PLUV_PRESENCE_Y_ID_KEY = "__y_clientid";
31
-
32
28
  //#endregion
33
29
  //#region src/awareness/PluvYjsAwareness.ts
34
30
  var PluvYjsAwareness = class extends ObservableV2 {
@@ -49,7 +45,7 @@ var PluvYjsAwareness = class extends ObservableV2 {
49
45
  this.doc = room.getDoc().value;
50
46
  this._room = room;
51
47
  if (!!presenceField) this._field = presenceField;
52
- const myMeta = this._room.getMyPresence()?.[PLUV_PRESENCE_META_KEY] || {};
48
+ const myMeta = this._room.getMyPresence()?.["__pluv"] || {};
53
49
  this._room.updateMyPresence({ [PLUV_PRESENCE_META_KEY]: {
54
50
  ...myMeta,
55
51
  [PLUV_PRESENCE_Y_ID_KEY]: this.clientID
@@ -99,10 +95,10 @@ var PluvYjsAwareness = class extends ObservableV2 {
99
95
  * @date May 13, 2025
100
96
  */
101
97
  getStates() {
102
- const states = this._room.getOthers().reduce((map$1, other) => {
98
+ const states = this._room.getOthers().reduce((map, other) => {
103
99
  const presence = this._adaptPresence(other.presence);
104
- const clientID = (other.presence?.[PLUV_PRESENCE_META_KEY] || {})[PLUV_PRESENCE_Y_ID_KEY];
105
- return typeof presence !== "undefined" && typeof clientID !== "undefined" ? map$1.set(clientID, presence) : map$1;
100
+ const clientID = (other.presence?.["__pluv"] || {})[PLUV_PRESENCE_Y_ID_KEY];
101
+ return typeof presence !== "undefined" && typeof clientID !== "undefined" ? map.set(clientID, presence) : map;
106
102
  }, /* @__PURE__ */ new Map());
107
103
  const myPresence = this.getLocalState();
108
104
  if (typeof myPresence !== "undefined") states.set(this.clientID, myPresence);
@@ -149,10 +145,10 @@ var PluvYjsAwareness = class extends ObservableV2 {
149
145
  }
150
146
  _resetIdMap(others) {
151
147
  this._idMap.clear();
152
- return others.reduce((map$1, other) => {
148
+ return others.reduce((map, other) => {
153
149
  const clientID = other.presence[PLUV_PRESENCE_META_KEY]?.[PLUV_PRESENCE_Y_ID_KEY];
154
- if (typeof clientID === "undefined") return map$1;
155
- return map$1.set(other.connectionId, clientID);
150
+ if (typeof clientID === "undefined") return map;
151
+ return map.set(other.connectionId, clientID);
156
152
  }, this._idMap);
157
153
  }
158
154
  /**
@@ -165,50 +161,47 @@ var PluvYjsAwareness = class extends ObservableV2 {
165
161
  meta = /* @__PURE__ */ new Map();
166
162
  _checkInterval = 0;
167
163
  };
168
-
169
164
  //#endregion
170
165
  //#region src/awareness/awareness.ts
171
166
  const awareness = (params) => {
172
167
  return new PluvYjsAwareness(params);
173
168
  };
174
-
175
169
  //#endregion
176
170
  //#region src/doc/builder.ts
177
- const builder = (doc$1) => {
171
+ const builder = (doc) => {
178
172
  return {
179
173
  array(name, value = []) {
180
- const array$1 = doc$1.getArray(name);
181
- if (!!value.length) array$1.insert(0, value);
182
- return array$1;
174
+ const array = doc.getArray(name);
175
+ if (!!value.length) array.insert(0, value);
176
+ return array;
183
177
  },
184
178
  map(name, value = []) {
185
- const map$1 = doc$1.getMap(name);
179
+ const map = doc.getMap(name);
186
180
  value.forEach(([k, v]) => {
187
- map$1.set(k, v);
181
+ map.set(k, v);
188
182
  });
189
- return map$1;
183
+ return map;
190
184
  },
191
185
  text(name, value = "") {
192
- const text$1 = doc$1.getText(name);
193
- if (!!value) text$1.insert(0, value);
194
- return text$1;
186
+ const text = doc.getText(name);
187
+ if (!!value) text.insert(0, value);
188
+ return text;
195
189
  },
196
190
  xmlElement(name, children = []) {
197
- const xmlElement$1 = doc$1.getXmlElement(name);
198
- if (!!children.length) xmlElement$1.insert(0, children);
199
- return xmlElement$1;
191
+ const xmlElement = doc.getXmlElement(name);
192
+ if (!!children.length) xmlElement.insert(0, children);
193
+ return xmlElement;
200
194
  },
201
195
  xmlFragment(name, children = []) {
202
- const xmlFragment$1 = doc$1.getXmlFragment(name);
203
- if (!!children.length) xmlFragment$1.insert(0, children);
204
- return xmlFragment$1;
196
+ const xmlFragment = doc.getXmlFragment(name);
197
+ if (!!children.length) xmlFragment.insert(0, children);
198
+ return xmlFragment;
205
199
  },
206
200
  xmlText(name) {
207
- return doc$1.get(name, XmlText);
201
+ return doc.get(name, XmlText);
208
202
  }
209
203
  };
210
204
  };
211
-
212
205
  //#endregion
213
206
  //#region src/doc/CrdtYjsDoc.ts
214
207
  const MERGE_INTERVAL_MS = 1e3;
@@ -319,7 +312,7 @@ var CrdtYjsDoc = class {
319
312
  return this;
320
313
  }
321
314
  subscribe(listener) {
322
- const fn = (update, origin, doc$1) => {
315
+ const fn = (update, origin, doc) => {
323
316
  listener({
324
317
  doc: this,
325
318
  local: origin === null || typeof origin === "undefined",
@@ -362,12 +355,11 @@ var CrdtYjsDoc = class {
362
355
  return this;
363
356
  }
364
357
  #_setPluvId() {
365
- const text$1 = this.value.getText(PLUV_ID_FIELD);
358
+ const text = this.value.getText(PLUV_ID_FIELD);
366
359
  const id = typeof crypto !== "undefined" ? crypto.randomUUID() : Math.random().toString();
367
- text$1.insert(0, id);
360
+ text.insert(0, id);
368
361
  }
369
362
  };
370
-
371
363
  //#endregion
372
364
  //#region src/doc/CrdtYjsDocFactory.ts
373
365
  var CrdtYjsDocFactory = class CrdtYjsDocFactory extends AbstractCrdtDocFactory {
@@ -386,13 +378,11 @@ var CrdtYjsDocFactory = class CrdtYjsDocFactory extends AbstractCrdtDocFactory {
386
378
  return new CrdtYjsDoc(initialStorage ?? this._initialStorage);
387
379
  }
388
380
  };
389
-
390
381
  //#endregion
391
382
  //#region src/doc/doc.ts
392
383
  const doc = (value = () => ({})) => {
393
384
  return new CrdtYjsDocFactory(value);
394
385
  };
395
-
396
386
  //#endregion
397
387
  //#region src/map/YjsMap.ts
398
388
  var YjsMap = class extends Map$1 {
@@ -405,13 +395,11 @@ var YjsMap = class extends Map$1 {
405
395
  return {};
406
396
  }
407
397
  };
408
-
409
398
  //#endregion
410
399
  //#region src/map/map.ts
411
400
  const map = (value = []) => {
412
401
  return new YjsMap(value);
413
402
  };
414
-
415
403
  //#endregion
416
404
  //#region src/provider/PluvYjsProvider.ts
417
405
  /**
@@ -435,7 +423,7 @@ var PluvYjsProvider = class extends ObservableV2 {
435
423
  });
436
424
  this.doc = room.getDoc().value;
437
425
  this._room = room;
438
- this._unsubscribe = [
426
+ const subscriptions = [
439
427
  this._room.subscribe.connection(({ storage }) => {
440
428
  const status = this._toProviderStatus(storage.state);
441
429
  if (!status) return;
@@ -447,7 +435,8 @@ var PluvYjsProvider = class extends ObservableV2 {
447
435
  this._room.addEventListener("error", (event) => {
448
436
  this.emit("connection-error", [event, this]);
449
437
  })
450
- ].reduce((fn, unsubscribe) => () => {
438
+ ];
439
+ this._unsubscribe = subscriptions.reduce((fn, unsubscribe) => () => {
451
440
  fn();
452
441
  unsubscribe();
453
442
  }, () => void 0);
@@ -485,13 +474,11 @@ var PluvYjsProvider = class extends ObservableV2 {
485
474
  connect() {}
486
475
  disconnect() {}
487
476
  };
488
-
489
477
  //#endregion
490
478
  //#region src/provider/provider.ts
491
479
  const provider = (params) => {
492
480
  return new PluvYjsProvider(params);
493
481
  };
494
-
495
482
  //#endregion
496
483
  //#region src/text/YjsText.ts
497
484
  var YjsText = class extends Text {
@@ -504,13 +491,11 @@ var YjsText = class extends Text {
504
491
  return {};
505
492
  }
506
493
  };
507
-
508
494
  //#endregion
509
495
  //#region src/text/text.ts
510
496
  const text = (value = "") => {
511
497
  return new YjsText(value);
512
498
  };
513
-
514
499
  //#endregion
515
500
  //#region src/xmlElement/YjsXmlElement.ts
516
501
  var YjsXmlElement = class extends XmlElement {
@@ -524,13 +509,11 @@ var YjsXmlElement = class extends XmlElement {
524
509
  return {};
525
510
  }
526
511
  };
527
-
528
512
  //#endregion
529
513
  //#region src/xmlElement/xmlElement.ts
530
514
  const xmlElement = (name, children) => {
531
515
  return new YjsXmlElement(name, children);
532
516
  };
533
-
534
517
  //#endregion
535
518
  //#region src/xmlFragment/YjsXmlFragment.ts
536
519
  var YjsXmlFragment = class extends XmlFragment {
@@ -544,13 +527,11 @@ var YjsXmlFragment = class extends XmlFragment {
544
527
  return {};
545
528
  }
546
529
  };
547
-
548
530
  //#endregion
549
531
  //#region src/xmlFragment/xmlFragment.ts
550
532
  const xmlFragment = (children) => {
551
533
  return new YjsXmlFragment(children);
552
534
  };
553
-
554
535
  //#endregion
555
536
  //#region src/xmlText/YjsXmlText.ts
556
537
  var YjsXmlText = class extends XmlText {
@@ -563,20 +544,18 @@ var YjsXmlText = class extends XmlText {
563
544
  return {};
564
545
  }
565
546
  };
566
-
567
547
  //#endregion
568
548
  //#region src/xmlText/xmlText.ts
569
549
  const xmlText = () => {
570
550
  return new YjsXmlText();
571
551
  };
572
-
573
552
  //#endregion
574
553
  //#region src/yjs.ts
575
554
  var yjs_exports = /* @__PURE__ */ __exportAll({
576
555
  array: () => array,
577
556
  awareness: () => awareness,
578
557
  doc: () => doc,
579
- kind: () => kind,
558
+ kind: () => "yjs",
580
559
  map: () => map,
581
560
  provider: () => provider,
582
561
  text: () => text,
@@ -584,8 +563,7 @@ var yjs_exports = /* @__PURE__ */ __exportAll({
584
563
  xmlFragment: () => xmlFragment,
585
564
  xmlText: () => xmlText
586
565
  });
587
- const kind = "yjs";
588
-
589
566
  //#endregion
590
567
  export { yjs_exports as yjs };
568
+
591
569
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["YArray","map","array","doc","map","text","xmlElement","xmlFragment","YXmlText","YDoc","#_storage","#_setPluvId","#_undoManager","YXmlElement","YXmlFragment","YXmlText","YArray","YMap","YText","text","YMap","YText","YXmlElement","YXmlFragment","YXmlText"],"sources":["../src/array/YjsArray.ts","../src/array/array.ts","../src/constants.ts","../src/awareness/PluvYjsAwareness.ts","../src/awareness/awareness.ts","../src/doc/builder.ts","../src/doc/CrdtYjsDoc.ts","../src/doc/CrdtYjsDocFactory.ts","../src/doc/doc.ts","../src/map/YjsMap.ts","../src/map/map.ts","../src/provider/PluvYjsProvider.ts","../src/provider/provider.ts","../src/text/YjsText.ts","../src/text/text.ts","../src/xmlElement/YjsXmlElement.ts","../src/xmlElement/xmlElement.ts","../src/xmlFragment/YjsXmlFragment.ts","../src/xmlFragment/xmlFragment.ts","../src/xmlText/YjsXmlText.ts","../src/xmlText/xmlText.ts","../src/yjs.ts"],"sourcesContent":["import { Array as YArray } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsArray<T extends unknown> extends YArray<T> implements YjsType<YArray<T>, T[]> {\n public initialValue?: T[] | readonly T[];\n\n constructor(value: T[] | readonly T[] = []) {\n super();\n\n this.insert(0, value as T[]);\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as any;\n }\n}\n","import { Array as YArray } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { YjsArray } from \"./YjsArray\";\n\nexport const array = <T extends unknown>(\n value: T[] | readonly T[] = [],\n): YjsType<YArray<T>, T[]> => {\n return new YjsArray(value);\n};\n","export const PLUV_PRESENCE_META_KEY = \"__pluv\";\nexport const PLUV_PRESENCE_Y_ID_KEY = \"__y_clientid\";\n","import type {\n CrdtType,\n IOLike,\n OthersSubscriptionEvent,\n PluvRouterEventConfig,\n RoomLike,\n UserInfo,\n} from \"@pluv/types\";\nimport { ObservableV2 } from \"lib0/observable\";\nimport type { Doc as YDoc } from \"yjs\";\nimport { PLUV_PRESENCE_META_KEY, PLUV_PRESENCE_Y_ID_KEY } from \"../constants\";\nimport type { AwarenessPresence, MetaClientState, YjsAwarenessUpdate } from \"../types\";\n\nexport interface PluvYjsAwarenessParams<\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> {\n presenceField?: TField;\n room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n}\n\nexport class PluvYjsAwareness<\n TIO extends IOLike,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> extends ObservableV2<{\n change: (updates: YjsAwarenessUpdate, kind: \"presence\") => void;\n destroy: (awareness: PluvYjsAwareness<TIO, TPresence, TStorage, TEvents, TField>) => void;\n update: (updates: YjsAwarenessUpdate, kind: \"local\" | \"presence\") => void;\n}> {\n public readonly doc: YDoc;\n\n private readonly _field: TField = null as TField;\n private readonly _idMap = new Map<[connectionId: string][0], [clientID: number][0]>();\n private readonly _room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n private readonly _unsubscribe: () => void;\n\n public get clientID(): number {\n return this.doc.clientID;\n }\n\n public get states(): Map<number, TPresence> {\n return this.getStates();\n }\n\n constructor(params: PluvYjsAwarenessParams<TIO, TPresence, TStorage, TEvents, TField>) {\n super();\n\n const { presenceField, room } = params;\n\n this.doc = room.getDoc().value;\n this._room = room;\n\n if (!!presenceField) this._field = presenceField;\n\n const myPresence: any = this._room.getMyPresence();\n const myMeta = myPresence?.[PLUV_PRESENCE_META_KEY] || {};\n\n this._room.updateMyPresence({\n [PLUV_PRESENCE_META_KEY]: {\n ...myMeta,\n [PLUV_PRESENCE_Y_ID_KEY]: this.clientID,\n },\n } as any);\n\n this._unsubscribe = this._room.subscribe.others((others, event) => {\n const updates = this._deriveUpdates(others, event);\n\n if (!updates) return;\n\n this.emit(\"change\", [updates, \"presence\"]);\n this.emit(\"update\", [updates, \"presence\"]);\n });\n }\n\n public destroy(): void {\n this.emit(\"destroy\", [this]);\n this._unsubscribe();\n super.destroy();\n }\n\n public getLocalState(): AwarenessPresence<TPresence, TField> {\n return this._adaptPresence(this._room.getMyPresence());\n }\n\n public setLocalState(state: AwarenessPresence<TPresence, TField>): void {\n const patch = (!!this._field\n ? { [this._field]: state }\n : state) as unknown as Partial<TPresence>;\n\n this._room.updateMyPresence(patch);\n\n this.emit(\"update\", [{ added: [], updated: [this.clientID], removed: [] }, \"local\"]);\n }\n\n public setLocalStateField<TLocalField extends keyof AwarenessPresence<TPresence, TField>>(\n field: TLocalField,\n value: AwarenessPresence<TPresence, TField>[TLocalField],\n ): void {\n /**\n * !HACK\n * @description Cast to unknown first, because field loses its type of TField when set in\n * an object.\n * @date May 14, 2025\n */\n const patch = (!!this._field\n ? { [this._field]: { ...this.getLocalState(), [field]: value } }\n : { [field]: value }) as unknown as Partial<TPresence>;\n\n this._room.updateMyPresence(patch);\n }\n\n /**\n * !HACK\n * @description We're building the awareness presences from the states stored on the room's\n * presense instead of using the map defined in the awareness interface.\n * @see https://github.com/yjs/y-protocols/blob/master/awareness.js\n * @date May 13, 2025\n */\n public getStates(): Map<number, AwarenessPresence<TPresence, TField>> {\n const others = this._room.getOthers();\n\n const states = others.reduce((map, other) => {\n const presence = this._adaptPresence(other.presence);\n const meta = other.presence?.[PLUV_PRESENCE_META_KEY] || {};\n const clientID: number | undefined = meta[PLUV_PRESENCE_Y_ID_KEY];\n\n return typeof presence !== \"undefined\" && typeof clientID !== \"undefined\"\n ? map.set(clientID, presence)\n : map;\n }, new Map<number, AwarenessPresence<TPresence, TField>>());\n\n const myPresence = this.getLocalState();\n\n if (typeof myPresence !== \"undefined\") states.set(this.clientID, myPresence);\n\n return states;\n }\n\n private _adaptPresence(presence: TPresence): AwarenessPresence<TPresence, TField> {\n return (!!this._field ? presence[this._field] : presence) as AwarenessPresence<\n TPresence,\n TField\n >;\n }\n\n private _deriveUpdates(\n others: readonly UserInfo<any, any>[],\n event: OthersSubscriptionEvent<any, any>,\n ): YjsAwarenessUpdate | null {\n switch (event.kind) {\n case \"clear\": {\n this._idMap.clear();\n return null;\n }\n case \"enter\": {\n const clientID = this._resetIdMap(others).get(event.user.connectionId);\n\n return {\n added: typeof clientID !== \"undefined\" ? [clientID] : [],\n updated: [],\n removed: [],\n };\n }\n case \"leave\": {\n const clientID = this._idMap.get(event.user.connectionId);\n\n this._resetIdMap(others);\n\n return {\n added: [],\n updated: [],\n removed: typeof clientID !== \"undefined\" ? [clientID] : [],\n };\n }\n case \"sync\": {\n this._resetIdMap(others);\n return null;\n }\n case \"update\": {\n const clientID = this._resetIdMap(others).get(event.user.connectionId);\n\n return {\n added: [],\n updated: typeof clientID !== \"undefined\" ? [clientID] : [],\n removed: [],\n };\n }\n default:\n return null;\n }\n }\n\n private _resetIdMap(others: readonly UserInfo<any, any>[]): Map<string, number> {\n this._idMap.clear();\n\n return others.reduce((map, other) => {\n const clientID = other.presence[PLUV_PRESENCE_META_KEY]?.[PLUV_PRESENCE_Y_ID_KEY];\n\n if (typeof clientID === \"undefined\") return map;\n\n return map.set(other.connectionId, clientID);\n }, this._idMap);\n }\n\n /**\n * !HACK\n * @description We dgaf about these. We're just mirroring the fields that exist in the\n * og awareness to make sure everything aligns.\n * @see https://github.com/yjs/y-protocols/blob/master/awareness.js\n * @date May 13, 2025\n */\n public readonly meta = new Map<any, MetaClientState>();\n public readonly _checkInterval: number = 0;\n}\n","import type { CrdtType, IOLike, PluvRouterEventConfig } from \"@pluv/types\";\nimport type { PluvYjsAwarenessParams } from \"./PluvYjsAwareness\";\nimport { PluvYjsAwareness } from \"./PluvYjsAwareness\";\n\nexport const awareness = <\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n>(\n params: PluvYjsAwarenessParams<TIO, TPresence, TStorage, TEvents, TField>,\n): PluvYjsAwareness<TIO, TPresence, TStorage, TEvents, TField> => {\n return new PluvYjsAwareness(params);\n};\n","import {\n Array as YArray,\n Doc as YDoc,\n Map as YMap,\n Text as YText,\n XmlElement as YXmlElement,\n XmlFragment as YXmlFragment,\n XmlText as YXmlText,\n} from \"yjs\";\nimport { YjsType } from \"../types\";\n\nexport type YjsBuilder = ReturnType<typeof builder>;\n\nexport const builder = (doc: YDoc) => {\n return {\n array<T extends unknown>(\n name: string,\n value: T[] | readonly T[] = [],\n ): YjsType<YArray<T>, T[]> {\n const array = doc.getArray<T>(name);\n\n if (!!value.length) array.insert(0, value as T[]);\n\n return array as unknown as YjsType<YArray<T>, T[]>;\n },\n map<T extends unknown>(\n name: string,\n value: readonly (readonly [key: string, value: T])[] = [],\n ): YjsType<YMap<T>, Record<string, T>> {\n const map = doc.getMap(name);\n\n value.forEach(([k, v]) => {\n map.set(k, v);\n });\n\n return map as unknown as YjsType<YMap<T>, Record<string, T>>;\n },\n text(name: string, value: string = \"\"): YjsType<YText, string> {\n const text = doc.getText(name);\n\n if (!!value) text.insert(0, value);\n\n return text as unknown as YjsType<YText, string>;\n },\n xmlElement(\n name: string,\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[] = [],\n ): YjsType<YXmlElement, string> {\n const xmlElement = doc.getXmlElement(name);\n\n if (!!children.length) xmlElement.insert(0, children as (YXmlElement | YXmlText)[]);\n\n return xmlElement as unknown as YjsType<YXmlElement, string>;\n },\n xmlFragment(\n name: string,\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[] = [],\n ): YjsType<YXmlFragment, string> {\n const xmlFragment = doc.getXmlFragment(name);\n\n if (!!children.length) xmlFragment.insert(0, children as (YXmlElement | YXmlText)[]);\n\n return xmlFragment as unknown as YjsType<YXmlFragment, string>;\n },\n xmlText(name: string): YjsType<YXmlText, string> {\n const xmlText = doc.get(name, YXmlText);\n\n return xmlText as unknown as YjsType<YXmlText, string>;\n },\n };\n};\n","import type {\n DocApplyEncodedStateParams,\n DocBatchApplyEncodedStateParams,\n DocSubscribeCallbackParams,\n InferCrdtJson,\n} from \"@pluv/crdt\";\nimport type { CrdtDocLike } from \"@pluv/types\";\nimport { fromUint8Array, toUint8Array } from \"js-base64\";\nimport {\n AbstractType,\n UndoManager,\n Array as YArray,\n Doc as YDoc,\n Map as YMap,\n Text as YText,\n XmlElement as YXmlElement,\n XmlFragment as YXmlFragment,\n XmlText as YXmlText,\n applyUpdate,\n encodeStateAsUpdate,\n mergeUpdates,\n} from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport type { YjsBuilder } from \"./builder\";\nimport { builder } from \"./builder\";\n\nconst MERGE_INTERVAL_MS = 1_000;\nconst PLUV_ID_FIELD = \"__$pluv\";\n\nexport type CrdtYjsDocParams<TStorage extends Record<string, YjsType<any, any>>> = (\n builder: YjsBuilder,\n) => TStorage;\n\nexport class CrdtYjsDoc<TStorage extends Record<string, YjsType<any, any>>>\n implements CrdtDocLike<YDoc, TStorage>\n{\n public value: YDoc = new YDoc();\n\n #_storage: TStorage;\n #_undoManager: UndoManager | null = null;\n\n constructor(params: CrdtYjsDocParams<TStorage> = () => ({}) as TStorage) {\n const storage = params(builder(this.value));\n const keys = this.value.share.keys().reduce((set, key) => set.add(key), new Set<string>());\n\n this.#_storage = Object.entries(storage).reduce(\n (acc, [key, node]) => (keys.has(key) ? { ...acc, [key]: node } : acc),\n {} as TStorage,\n );\n if (!!Object.keys(storage).length) this.#_setPluvId();\n }\n\n public applyEncodedState(params: DocApplyEncodedStateParams): this {\n const { origin, update } = params;\n\n if (update === null || typeof update === \"undefined\") return this;\n\n const uint8Update = typeof update === \"string\" ? toUint8Array(update) : update;\n\n applyUpdate(this.value, uint8Update, origin);\n\n return this;\n }\n\n public batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this {\n const { origin } = params;\n const updates = params.updates ?? [];\n\n const filtered = updates.reduce<Uint8Array[]>((acc, update) => {\n if (!update) return acc;\n\n if (typeof update === \"string\") {\n acc.push(toUint8Array(update));\n return acc;\n }\n\n if (typeof update === \"object\") {\n acc.push(update);\n return acc;\n }\n\n return acc;\n }, []);\n\n if (!filtered.length) return this;\n\n const merged = mergeUpdates(filtered);\n\n return this.applyEncodedState({ origin, update: merged });\n }\n\n public canRedo(): boolean {\n return !!this.#_undoManager?.canRedo();\n }\n\n public canUndo(): boolean {\n return !!this.#_undoManager?.canUndo();\n }\n\n public destroy(): void {\n this.#_undoManager?.destroy();\n this.value.destroy();\n }\n\n public get(key?: undefined): TStorage;\n public get<TKey extends keyof TStorage>(type: TKey): TStorage[TKey];\n public get<TKey extends keyof TStorage>(type?: TKey): TStorage | TStorage[TKey] {\n if (typeof type === \"undefined\") return this.#_storage;\n\n return this.#_storage[type as TKey];\n }\n\n public getEncodedState(): string {\n return fromUint8Array(encodeStateAsUpdate(this.value));\n }\n\n public isEmpty(): boolean {\n return !this.value.share.size;\n }\n\n public rebuildStorage(reference: TStorage): this {\n const isBuilt = !!Object.keys(this.#_storage).length;\n\n if (isBuilt) {\n console.warn(\"Attempted to rebuild storage multiple times\");\n return this;\n }\n\n this.#_storage = Object.entries(reference).reduce((acc, [key, node]) => {\n /**\n * @description It is important that the XML shared-types be checked before the others\n * because they extend off the non-xml types (thereby you can mistakenly identify the\n * wrong type if checked in the reverse order)\n * @date May 9 ,2025\n */\n if (node instanceof YXmlElement) {\n return { ...acc, [key]: this.value.getXmlElement(key) };\n }\n if (node instanceof YXmlFragment) {\n return { ...acc, [key]: this.value.getXmlFragment(key) };\n }\n if (node instanceof YXmlText) return { ...acc, [key]: this.value.get(key, YXmlText) };\n if (node instanceof YArray) return { ...acc, [key]: this.value.getArray(key) };\n if (node instanceof YMap) return { ...acc, [key]: this.value.getMap(key) };\n if (node instanceof YText) return { ...acc, [key]: this.value.getText(key) };\n\n return acc;\n }, {} as TStorage);\n\n return this.track();\n }\n\n public redo(): this {\n this.#_undoManager?.redo();\n\n return this;\n }\n\n public subscribe(\n listener: (params: DocSubscribeCallbackParams<YDoc, TStorage>) => void,\n ): () => void {\n const fn = (update: Uint8Array, origin: any, doc: YDoc) => {\n listener({\n doc: this,\n local: origin === null || typeof origin === \"undefined\",\n origin: origin ? String(origin) : null,\n update: fromUint8Array(update),\n });\n };\n\n this.value.on(\"update\", fn);\n\n return () => {\n this.value.off(\"update\", fn);\n };\n }\n\n public track(): this {\n if (this.#_undoManager) this.#_undoManager.destroy();\n\n const sharedTypes = Object.values(this.#_storage).reduce<YjsType<AbstractType<any>, any>[]>(\n (acc, type) => {\n if (\n type instanceof YArray ||\n type instanceof YMap ||\n type instanceof YText ||\n type instanceof YXmlElement ||\n type instanceof YXmlFragment ||\n type instanceof YXmlText\n ) {\n acc.push(type as YjsType<AbstractType<any>, any>);\n }\n\n return acc;\n },\n [],\n );\n\n if (!sharedTypes.length) {\n this.#_undoManager?.destroy();\n this.#_undoManager = null;\n\n return this;\n }\n\n this.#_undoManager = new UndoManager(sharedTypes, { captureTimeout: MERGE_INTERVAL_MS });\n\n return this;\n }\n\n public transact(fn: () => void): this {\n this.value.transact(fn);\n\n return this;\n }\n\n public toJson(): InferCrdtJson<TStorage>;\n public toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;\n public toJson<TKey extends keyof TStorage>(type?: TKey) {\n if (typeof type === \"string\") return this.#_storage[type].toJSON();\n\n return Object.entries(this.#_storage).reduce(\n (acc, [key, value]) => ({ ...(acc as any), [key]: value.toJSON() }),\n {} as InferCrdtJson<TStorage>,\n );\n }\n\n public undo(): this {\n this.#_undoManager?.undo();\n\n return this;\n }\n\n #_setPluvId() {\n const text = this.value.getText(PLUV_ID_FIELD);\n const id = typeof crypto !== \"undefined\" ? crypto.randomUUID() : Math.random().toString();\n\n text.insert(0, id);\n }\n}\n","import { AbstractCrdtDocFactory } from \"@pluv/crdt\";\nimport type { Doc as YDoc } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { CrdtYjsDoc } from \"./CrdtYjsDoc\";\nimport type { YjsBuilder } from \"./builder\";\n\nexport class CrdtYjsDocFactory<\n TStorage extends Record<string, YjsType<any, any>> = {},\n> extends AbstractCrdtDocFactory<YDoc, TStorage> {\n public readonly _initialStorage: (builder: YjsBuilder) => TStorage;\n\n constructor(initialStorage: (builder: YjsBuilder) => TStorage = () => ({}) as TStorage) {\n super(initialStorage);\n\n this._initialStorage = initialStorage;\n }\n\n public getEmpty(): CrdtYjsDoc<TStorage> {\n return new CrdtYjsDoc<TStorage>();\n }\n\n public getFactory(\n initialStorage: (builder: YjsBuilder) => TStorage,\n ): CrdtYjsDocFactory<TStorage> {\n return new CrdtYjsDocFactory<TStorage>(initialStorage ?? this._initialStorage);\n }\n\n public getInitialized(\n initialStorage?: (builder: YjsBuilder) => TStorage,\n ): CrdtYjsDoc<TStorage> {\n return new CrdtYjsDoc<TStorage>(initialStorage ?? this._initialStorage);\n }\n}\n","import type { YjsType } from \"../types\";\nimport type { YjsBuilder } from \"./builder\";\nimport { CrdtYjsDocFactory } from \"./CrdtYjsDocFactory\";\n\nexport const doc = <TStorage extends Record<string, YjsType<any, any>>>(\n value: (buidler: YjsBuilder) => TStorage = () => ({}) as TStorage,\n): CrdtYjsDocFactory<TStorage> => {\n return new CrdtYjsDocFactory<TStorage>(value);\n};\n","import { Map as YMap } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsMap<T extends unknown>\n extends YMap<T>\n implements YjsType<YMap<T>, Record<string, T>>\n{\n public initialValue?: readonly (readonly [key: string, value: T])[];\n\n constructor(value: readonly (readonly [key: string, value: T])[] = []) {\n super(value);\n\n this.initialValue = value;\n }\n\n public __pluvType(): any {\n return {} as any;\n }\n}\n","import type { Map as YMap } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { YjsMap } from \"./YjsMap\";\n\nexport const map = <T extends unknown>(\n value: readonly (readonly [key: string, value: T])[] = [],\n): YjsType<YMap<T>, Record<string, T>> => {\n return new YjsMap<T>(value) as YjsType<YMap<T>, Record<string, T>>;\n};\n","import type { CrdtType, IOLike, PluvRouterEventConfig, RoomLike } from \"@pluv/types\";\nimport { StorageState } from \"@pluv/types\";\nimport { ObservableV2 } from \"lib0/observable\";\nimport type { Doc as YDoc } from \"yjs\";\nimport type { PluvYjsAwareness } from \"../awareness\";\nimport { awareness } from \"../awareness\";\nimport type { YjsProviderStatus } from \"../types\";\n\nexport interface PluvYjsProviderParams<\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> {\n presenceField?: TField;\n room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n}\n\n/**\n * !HACK\n * @description This doesn't really do anything but emit states in a Yjs.Provider compatible way.\n * Connections and document syncing are handled by the PluvRoom already.\n * @date May 13, 2025\n */\nexport class PluvYjsProvider<\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> extends ObservableV2<{\n \"connection-close\": (\n event: CloseEvent | null,\n provider: PluvYjsProvider<TIO, TPresence, TStorage, TEvents, TField>,\n ) => void;\n \"connection-error\": (\n event: Event,\n provider: PluvYjsProvider<TIO, TPresence, TStorage, TEvents, TField>,\n ) => void;\n status: (event: { status: YjsProviderStatus }) => void;\n sync: (state: boolean) => void;\n synced: (state: boolean) => void;\n}> {\n public readonly awareness: PluvYjsAwareness<TIO, TPresence, TStorage, TEvents, TField>;\n public readonly doc: YDoc;\n\n private readonly _room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n private readonly _unsubscribe: () => void;\n\n private _synced: boolean = false;\n\n constructor(params: PluvYjsProviderParams<TIO, TPresence, TStorage, TEvents, TField>) {\n super();\n\n const { presenceField, room } = params;\n\n this.awareness = awareness({ presenceField, room });\n this.doc = room.getDoc().value;\n\n this._room = room;\n\n const subscriptions = [\n this._room.subscribe.connection(({ storage }) => {\n const status = this._toProviderStatus(storage.state);\n\n if (!status) return;\n\n this.emit(\"status\", [{ status }]);\n }),\n this._room.addEventListener(\"close\", (event) => {\n this.emit(\"connection-close\", [event, this]);\n }),\n this._room.addEventListener(\"error\", (event) => {\n this.emit(\"connection-error\", [event, this]);\n }),\n ];\n\n this._unsubscribe = subscriptions.reduce(\n (fn, unsubscribe) => () => {\n fn();\n unsubscribe();\n },\n () => undefined,\n );\n }\n\n public get synced(): boolean {\n return this._synced;\n }\n\n public set synced(state: boolean) {\n if (this._synced === state) return;\n\n this._synced = state;\n this.emit(\"sync\", [state]);\n this.emit(\"synced\", [state]);\n }\n\n public destroy(): void {\n this.awareness.destroy();\n this._unsubscribe();\n super.destroy();\n }\n\n private _toProviderStatus(state: StorageState): YjsProviderStatus | null {\n switch (state) {\n case StorageState.Loading: {\n return \"connecting\";\n }\n case StorageState.Unavailable: {\n return \"disconnected\";\n }\n case StorageState.Offline:\n case StorageState.Synced: {\n return \"connected\";\n }\n default:\n return null;\n }\n }\n\n /**\n * !HACK\n * @description We dgaf about these, since the room manages these already. We're just mirroring\n * the fields that exist in the og provider to make sure everything aligns.\n * @see https://github.com/yjs/y-websocket/blob/master/src/y-websocket.js\n * @date May 13, 2025\n */\n public connect(): void {}\n public disconnect(): void {}\n}\n","import type { CrdtType, IOLike, PluvRouterEventConfig } from \"@pluv/types\";\nimport type { PluvYjsProviderParams } from \"./PluvYjsProvider\";\nimport { PluvYjsProvider } from \"./PluvYjsProvider\";\n\nexport const provider = <\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n>(\n params: PluvYjsProviderParams<TIO, TPresence, TStorage, TEvents, TField>,\n) => {\n return new PluvYjsProvider(params);\n};\n","import { Text as YText } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsText extends YText implements YjsType<YText, string> {\n public initialValue?: string;\n\n constructor(value: string = \"\") {\n super();\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { Text as YText } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { YjsText } from \"./YjsText\";\n\nexport const text = (value: string = \"\"): YjsType<YText, string> => {\n return new YjsText(value);\n};\n","import type { XmlText as YXmlText } from \"yjs\";\nimport { XmlElement as YXmlElement } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsXmlElement<T extends Record<string, any> = Record<string, any>>\n extends YXmlElement<T>\n implements YjsType<YXmlElement, string>\n{\n public initialValue?: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[];\n\n constructor(\n name: string,\n value: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[],\n ) {\n super(name);\n\n if (!!value.length) this.insert(0, value as (YXmlElement | YXmlText)[]);\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { XmlText as YXmlText, XmlElement as YXmlElement } from \"yjs\";\nimport { YjsXmlElement } from \"./YjsXmlElement\";\n\nexport const xmlElement = <T extends Record<string, any> = Record<string, any>>(\n name: string,\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[],\n): YjsXmlElement<T> => {\n return new YjsXmlElement<T>(name, children);\n};\n","import type { XmlText as YXmlText, XmlElement as YXmlElement } from \"yjs\";\nimport { XmlFragment as YXmlFragment } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsXmlFragment extends YXmlFragment implements YjsType<YXmlFragment, string> {\n public initialValue?: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[];\n\n constructor(value: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[]) {\n super();\n\n if (!!value.length) this.insert(0, value as (YXmlElement | YXmlText)[]);\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { XmlElement as YXmlElement, XmlText as YXmlText } from \"yjs\";\nimport { YjsXmlFragment } from \"./YjsXmlFragment\";\n\nexport const xmlFragment = (\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[],\n): YjsXmlFragment => {\n return new YjsXmlFragment(children);\n};\n","import { XmlText as YXmlText } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsXmlText extends YXmlText implements YjsType<YXmlText, string> {\n public initialValue?: string;\n\n constructor(value: string = \"\") {\n super();\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { XmlText as YXmlText } from \"yjs\";\nimport { YjsType } from \"../types\";\nimport { YjsXmlText } from \"./YjsXmlText\";\n\nexport const xmlText = (): YjsType<YXmlText, string> => {\n return new YjsXmlText();\n};\n","export { array } from \"./array\";\nexport { awareness } from \"./awareness\";\nexport { doc } from \"./doc\";\nexport type { YjsBuilder } from \"./doc\";\nexport { map } from \"./map\";\nexport { provider } from \"./provider\";\nexport { text } from \"./text\";\nexport type { YjsType } from \"./types\";\nexport { xmlElement } from \"./xmlElement\";\nexport { xmlFragment } from \"./xmlFragment\";\nexport { xmlText } from \"./xmlText\";\nexport const kind = \"yjs\" as const;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["YArray","YXmlText","YDoc","#_storage","#_setPluvId","#_undoManager","YXmlElement","YXmlFragment","YXmlText","YArray","YMap","YText","YMap","YText","YXmlElement","YXmlFragment","YXmlText"],"sources":["../src/array/YjsArray.ts","../src/array/array.ts","../src/constants.ts","../src/awareness/PluvYjsAwareness.ts","../src/awareness/awareness.ts","../src/doc/builder.ts","../src/doc/CrdtYjsDoc.ts","../src/doc/CrdtYjsDocFactory.ts","../src/doc/doc.ts","../src/map/YjsMap.ts","../src/map/map.ts","../src/provider/PluvYjsProvider.ts","../src/provider/provider.ts","../src/text/YjsText.ts","../src/text/text.ts","../src/xmlElement/YjsXmlElement.ts","../src/xmlElement/xmlElement.ts","../src/xmlFragment/YjsXmlFragment.ts","../src/xmlFragment/xmlFragment.ts","../src/xmlText/YjsXmlText.ts","../src/xmlText/xmlText.ts","../src/yjs.ts"],"sourcesContent":["import { Array as YArray } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsArray<T extends unknown> extends YArray<T> implements YjsType<YArray<T>, T[]> {\n public initialValue?: T[] | readonly T[];\n\n constructor(value: T[] | readonly T[] = []) {\n super();\n\n this.insert(0, value as T[]);\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as any;\n }\n}\n","import { Array as YArray } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { YjsArray } from \"./YjsArray\";\n\nexport const array = <T extends unknown>(\n value: T[] | readonly T[] = [],\n): YjsType<YArray<T>, T[]> => {\n return new YjsArray(value);\n};\n","export const PLUV_PRESENCE_META_KEY = \"__pluv\";\nexport const PLUV_PRESENCE_Y_ID_KEY = \"__y_clientid\";\n","import type {\n CrdtType,\n IOLike,\n OthersSubscriptionEvent,\n PluvRouterEventConfig,\n RoomLike,\n UserInfo,\n} from \"@pluv/types\";\nimport { ObservableV2 } from \"lib0/observable\";\nimport type { Doc as YDoc } from \"yjs\";\nimport { PLUV_PRESENCE_META_KEY, PLUV_PRESENCE_Y_ID_KEY } from \"../constants\";\nimport type { AwarenessPresence, MetaClientState, YjsAwarenessUpdate } from \"../types\";\n\nexport interface PluvYjsAwarenessParams<\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> {\n presenceField?: TField;\n room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n}\n\nexport class PluvYjsAwareness<\n TIO extends IOLike,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> extends ObservableV2<{\n change: (updates: YjsAwarenessUpdate, kind: \"presence\") => void;\n destroy: (awareness: PluvYjsAwareness<TIO, TPresence, TStorage, TEvents, TField>) => void;\n update: (updates: YjsAwarenessUpdate, kind: \"local\" | \"presence\") => void;\n}> {\n public readonly doc: YDoc;\n\n private readonly _field: TField = null as TField;\n private readonly _idMap = new Map<[connectionId: string][0], [clientID: number][0]>();\n private readonly _room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n private readonly _unsubscribe: () => void;\n\n public get clientID(): number {\n return this.doc.clientID;\n }\n\n public get states(): Map<number, TPresence> {\n return this.getStates();\n }\n\n constructor(params: PluvYjsAwarenessParams<TIO, TPresence, TStorage, TEvents, TField>) {\n super();\n\n const { presenceField, room } = params;\n\n this.doc = room.getDoc().value;\n this._room = room;\n\n if (!!presenceField) this._field = presenceField;\n\n const myPresence: any = this._room.getMyPresence();\n const myMeta = myPresence?.[PLUV_PRESENCE_META_KEY] || {};\n\n this._room.updateMyPresence({\n [PLUV_PRESENCE_META_KEY]: {\n ...myMeta,\n [PLUV_PRESENCE_Y_ID_KEY]: this.clientID,\n },\n } as any);\n\n this._unsubscribe = this._room.subscribe.others((others, event) => {\n const updates = this._deriveUpdates(others, event);\n\n if (!updates) return;\n\n this.emit(\"change\", [updates, \"presence\"]);\n this.emit(\"update\", [updates, \"presence\"]);\n });\n }\n\n public destroy(): void {\n this.emit(\"destroy\", [this]);\n this._unsubscribe();\n super.destroy();\n }\n\n public getLocalState(): AwarenessPresence<TPresence, TField> {\n return this._adaptPresence(this._room.getMyPresence());\n }\n\n public setLocalState(state: AwarenessPresence<TPresence, TField>): void {\n const patch = (!!this._field\n ? { [this._field]: state }\n : state) as unknown as Partial<TPresence>;\n\n this._room.updateMyPresence(patch);\n\n this.emit(\"update\", [{ added: [], updated: [this.clientID], removed: [] }, \"local\"]);\n }\n\n public setLocalStateField<TLocalField extends keyof AwarenessPresence<TPresence, TField>>(\n field: TLocalField,\n value: AwarenessPresence<TPresence, TField>[TLocalField],\n ): void {\n /**\n * !HACK\n * @description Cast to unknown first, because field loses its type of TField when set in\n * an object.\n * @date May 14, 2025\n */\n const patch = (!!this._field\n ? { [this._field]: { ...this.getLocalState(), [field]: value } }\n : { [field]: value }) as unknown as Partial<TPresence>;\n\n this._room.updateMyPresence(patch);\n }\n\n /**\n * !HACK\n * @description We're building the awareness presences from the states stored on the room's\n * presense instead of using the map defined in the awareness interface.\n * @see https://github.com/yjs/y-protocols/blob/master/awareness.js\n * @date May 13, 2025\n */\n public getStates(): Map<number, AwarenessPresence<TPresence, TField>> {\n const others = this._room.getOthers();\n\n const states = others.reduce((map, other) => {\n const presence = this._adaptPresence(other.presence);\n const meta = other.presence?.[PLUV_PRESENCE_META_KEY] || {};\n const clientID: number | undefined = meta[PLUV_PRESENCE_Y_ID_KEY];\n\n return typeof presence !== \"undefined\" && typeof clientID !== \"undefined\"\n ? map.set(clientID, presence)\n : map;\n }, new Map<number, AwarenessPresence<TPresence, TField>>());\n\n const myPresence = this.getLocalState();\n\n if (typeof myPresence !== \"undefined\") states.set(this.clientID, myPresence);\n\n return states;\n }\n\n private _adaptPresence(presence: TPresence): AwarenessPresence<TPresence, TField> {\n return (!!this._field ? presence[this._field] : presence) as AwarenessPresence<\n TPresence,\n TField\n >;\n }\n\n private _deriveUpdates(\n others: readonly UserInfo<any, any>[],\n event: OthersSubscriptionEvent<any, any>,\n ): YjsAwarenessUpdate | null {\n switch (event.kind) {\n case \"clear\": {\n this._idMap.clear();\n return null;\n }\n case \"enter\": {\n const clientID = this._resetIdMap(others).get(event.user.connectionId);\n\n return {\n added: typeof clientID !== \"undefined\" ? [clientID] : [],\n updated: [],\n removed: [],\n };\n }\n case \"leave\": {\n const clientID = this._idMap.get(event.user.connectionId);\n\n this._resetIdMap(others);\n\n return {\n added: [],\n updated: [],\n removed: typeof clientID !== \"undefined\" ? [clientID] : [],\n };\n }\n case \"sync\": {\n this._resetIdMap(others);\n return null;\n }\n case \"update\": {\n const clientID = this._resetIdMap(others).get(event.user.connectionId);\n\n return {\n added: [],\n updated: typeof clientID !== \"undefined\" ? [clientID] : [],\n removed: [],\n };\n }\n default:\n return null;\n }\n }\n\n private _resetIdMap(others: readonly UserInfo<any, any>[]): Map<string, number> {\n this._idMap.clear();\n\n return others.reduce((map, other) => {\n const clientID = other.presence[PLUV_PRESENCE_META_KEY]?.[PLUV_PRESENCE_Y_ID_KEY];\n\n if (typeof clientID === \"undefined\") return map;\n\n return map.set(other.connectionId, clientID);\n }, this._idMap);\n }\n\n /**\n * !HACK\n * @description We dgaf about these. We're just mirroring the fields that exist in the\n * og awareness to make sure everything aligns.\n * @see https://github.com/yjs/y-protocols/blob/master/awareness.js\n * @date May 13, 2025\n */\n public readonly meta = new Map<any, MetaClientState>();\n public readonly _checkInterval: number = 0;\n}\n","import type { CrdtType, IOLike, PluvRouterEventConfig } from \"@pluv/types\";\nimport type { PluvYjsAwarenessParams } from \"./PluvYjsAwareness\";\nimport { PluvYjsAwareness } from \"./PluvYjsAwareness\";\n\nexport const awareness = <\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n>(\n params: PluvYjsAwarenessParams<TIO, TPresence, TStorage, TEvents, TField>,\n): PluvYjsAwareness<TIO, TPresence, TStorage, TEvents, TField> => {\n return new PluvYjsAwareness(params);\n};\n","import {\n Array as YArray,\n Doc as YDoc,\n Map as YMap,\n Text as YText,\n XmlElement as YXmlElement,\n XmlFragment as YXmlFragment,\n XmlText as YXmlText,\n} from \"yjs\";\nimport { YjsType } from \"../types\";\n\nexport type YjsBuilder = ReturnType<typeof builder>;\n\nexport const builder = (doc: YDoc) => {\n return {\n array<T extends unknown>(\n name: string,\n value: T[] | readonly T[] = [],\n ): YjsType<YArray<T>, T[]> {\n const array = doc.getArray<T>(name);\n\n if (!!value.length) array.insert(0, value as T[]);\n\n return array as unknown as YjsType<YArray<T>, T[]>;\n },\n map<T extends unknown>(\n name: string,\n value: readonly (readonly [key: string, value: T])[] = [],\n ): YjsType<YMap<T>, Record<string, T>> {\n const map = doc.getMap(name);\n\n value.forEach(([k, v]) => {\n map.set(k, v);\n });\n\n return map as unknown as YjsType<YMap<T>, Record<string, T>>;\n },\n text(name: string, value: string = \"\"): YjsType<YText, string> {\n const text = doc.getText(name);\n\n if (!!value) text.insert(0, value);\n\n return text as unknown as YjsType<YText, string>;\n },\n xmlElement(\n name: string,\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[] = [],\n ): YjsType<YXmlElement, string> {\n const xmlElement = doc.getXmlElement(name);\n\n if (!!children.length) xmlElement.insert(0, children as (YXmlElement | YXmlText)[]);\n\n return xmlElement as unknown as YjsType<YXmlElement, string>;\n },\n xmlFragment(\n name: string,\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[] = [],\n ): YjsType<YXmlFragment, string> {\n const xmlFragment = doc.getXmlFragment(name);\n\n if (!!children.length) xmlFragment.insert(0, children as (YXmlElement | YXmlText)[]);\n\n return xmlFragment as unknown as YjsType<YXmlFragment, string>;\n },\n xmlText(name: string): YjsType<YXmlText, string> {\n const xmlText = doc.get(name, YXmlText);\n\n return xmlText as unknown as YjsType<YXmlText, string>;\n },\n };\n};\n","import type {\n DocApplyEncodedStateParams,\n DocBatchApplyEncodedStateParams,\n DocSubscribeCallbackParams,\n InferCrdtJson,\n} from \"@pluv/crdt\";\nimport type { CrdtDocLike } from \"@pluv/types\";\nimport { fromUint8Array, toUint8Array } from \"js-base64\";\nimport {\n AbstractType,\n UndoManager,\n Array as YArray,\n Doc as YDoc,\n Map as YMap,\n Text as YText,\n XmlElement as YXmlElement,\n XmlFragment as YXmlFragment,\n XmlText as YXmlText,\n applyUpdate,\n encodeStateAsUpdate,\n mergeUpdates,\n} from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport type { YjsBuilder } from \"./builder\";\nimport { builder } from \"./builder\";\n\nconst MERGE_INTERVAL_MS = 1_000;\nconst PLUV_ID_FIELD = \"__$pluv\";\n\nexport type CrdtYjsDocParams<TStorage extends Record<string, YjsType<any, any>>> = (\n builder: YjsBuilder,\n) => TStorage;\n\nexport class CrdtYjsDoc<TStorage extends Record<string, YjsType<any, any>>> implements CrdtDocLike<\n YDoc,\n TStorage\n> {\n public value: YDoc = new YDoc();\n\n #_storage: TStorage;\n #_undoManager: UndoManager | null = null;\n\n constructor(params: CrdtYjsDocParams<TStorage> = () => ({}) as TStorage) {\n const storage = params(builder(this.value));\n const keys = this.value.share.keys().reduce((set, key) => set.add(key), new Set<string>());\n\n this.#_storage = Object.entries(storage).reduce(\n (acc, [key, node]) => (keys.has(key) ? { ...acc, [key]: node } : acc),\n {} as TStorage,\n );\n if (!!Object.keys(storage).length) this.#_setPluvId();\n }\n\n public applyEncodedState(params: DocApplyEncodedStateParams): this {\n const { origin, update } = params;\n\n if (update === null || typeof update === \"undefined\") return this;\n\n const uint8Update = typeof update === \"string\" ? toUint8Array(update) : update;\n\n applyUpdate(this.value, uint8Update, origin);\n\n return this;\n }\n\n public batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this {\n const { origin } = params;\n const updates = params.updates ?? [];\n\n const filtered = updates.reduce<Uint8Array[]>((acc, update) => {\n if (!update) return acc;\n\n if (typeof update === \"string\") {\n acc.push(toUint8Array(update));\n return acc;\n }\n\n if (typeof update === \"object\") {\n acc.push(update);\n return acc;\n }\n\n return acc;\n }, []);\n\n if (!filtered.length) return this;\n\n const merged = mergeUpdates(filtered);\n\n return this.applyEncodedState({ origin, update: merged });\n }\n\n public canRedo(): boolean {\n return !!this.#_undoManager?.canRedo();\n }\n\n public canUndo(): boolean {\n return !!this.#_undoManager?.canUndo();\n }\n\n public destroy(): void {\n this.#_undoManager?.destroy();\n this.value.destroy();\n }\n\n public get(key?: undefined): TStorage;\n public get<TKey extends keyof TStorage>(type: TKey): TStorage[TKey];\n public get<TKey extends keyof TStorage>(type?: TKey): TStorage | TStorage[TKey] {\n if (typeof type === \"undefined\") return this.#_storage;\n\n return this.#_storage[type as TKey];\n }\n\n public getEncodedState(): string {\n return fromUint8Array(encodeStateAsUpdate(this.value));\n }\n\n public isEmpty(): boolean {\n return !this.value.share.size;\n }\n\n public rebuildStorage(reference: TStorage): this {\n const isBuilt = !!Object.keys(this.#_storage).length;\n\n if (isBuilt) {\n console.warn(\"Attempted to rebuild storage multiple times\");\n return this;\n }\n\n this.#_storage = Object.entries(reference).reduce((acc, [key, node]) => {\n /**\n * @description It is important that the XML shared-types be checked before the others\n * because they extend off the non-xml types (thereby you can mistakenly identify the\n * wrong type if checked in the reverse order)\n * @date May 9 ,2025\n */\n if (node instanceof YXmlElement) {\n return { ...acc, [key]: this.value.getXmlElement(key) };\n }\n if (node instanceof YXmlFragment) {\n return { ...acc, [key]: this.value.getXmlFragment(key) };\n }\n if (node instanceof YXmlText) return { ...acc, [key]: this.value.get(key, YXmlText) };\n if (node instanceof YArray) return { ...acc, [key]: this.value.getArray(key) };\n if (node instanceof YMap) return { ...acc, [key]: this.value.getMap(key) };\n if (node instanceof YText) return { ...acc, [key]: this.value.getText(key) };\n\n return acc;\n }, {} as TStorage);\n\n return this.track();\n }\n\n public redo(): this {\n this.#_undoManager?.redo();\n\n return this;\n }\n\n public subscribe(\n listener: (params: DocSubscribeCallbackParams<YDoc, TStorage>) => void,\n ): () => void {\n const fn = (update: Uint8Array, origin: any, doc: YDoc) => {\n listener({\n doc: this,\n local: origin === null || typeof origin === \"undefined\",\n origin: origin ? String(origin) : null,\n update: fromUint8Array(update),\n });\n };\n\n this.value.on(\"update\", fn);\n\n return () => {\n this.value.off(\"update\", fn);\n };\n }\n\n public track(): this {\n if (this.#_undoManager) this.#_undoManager.destroy();\n\n const sharedTypes = Object.values(this.#_storage).reduce<YjsType<AbstractType<any>, any>[]>(\n (acc, type) => {\n if (\n type instanceof YArray ||\n type instanceof YMap ||\n type instanceof YText ||\n type instanceof YXmlElement ||\n type instanceof YXmlFragment ||\n type instanceof YXmlText\n ) {\n acc.push(type as YjsType<AbstractType<any>, any>);\n }\n\n return acc;\n },\n [],\n );\n\n if (!sharedTypes.length) {\n this.#_undoManager?.destroy();\n this.#_undoManager = null;\n\n return this;\n }\n\n this.#_undoManager = new UndoManager(sharedTypes, { captureTimeout: MERGE_INTERVAL_MS });\n\n return this;\n }\n\n public transact(fn: () => void): this {\n this.value.transact(fn);\n\n return this;\n }\n\n public toJson(): InferCrdtJson<TStorage>;\n public toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;\n public toJson<TKey extends keyof TStorage>(type?: TKey) {\n if (typeof type === \"string\") return this.#_storage[type].toJSON();\n\n return Object.entries(this.#_storage).reduce(\n (acc, [key, value]) => ({ ...(acc as any), [key]: value.toJSON() }),\n {} as InferCrdtJson<TStorage>,\n );\n }\n\n public undo(): this {\n this.#_undoManager?.undo();\n\n return this;\n }\n\n #_setPluvId() {\n const text = this.value.getText(PLUV_ID_FIELD);\n const id = typeof crypto !== \"undefined\" ? crypto.randomUUID() : Math.random().toString();\n\n text.insert(0, id);\n }\n}\n","import { AbstractCrdtDocFactory } from \"@pluv/crdt\";\nimport type { Doc as YDoc } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { CrdtYjsDoc } from \"./CrdtYjsDoc\";\nimport type { YjsBuilder } from \"./builder\";\n\nexport class CrdtYjsDocFactory<\n TStorage extends Record<string, YjsType<any, any>> = {},\n> extends AbstractCrdtDocFactory<YDoc, TStorage> {\n public readonly _initialStorage: (builder: YjsBuilder) => TStorage;\n\n constructor(initialStorage: (builder: YjsBuilder) => TStorage = () => ({}) as TStorage) {\n super(initialStorage);\n\n this._initialStorage = initialStorage;\n }\n\n public getEmpty(): CrdtYjsDoc<TStorage> {\n return new CrdtYjsDoc<TStorage>();\n }\n\n public getFactory(\n initialStorage: (builder: YjsBuilder) => TStorage,\n ): CrdtYjsDocFactory<TStorage> {\n return new CrdtYjsDocFactory<TStorage>(initialStorage ?? this._initialStorage);\n }\n\n public getInitialized(\n initialStorage?: (builder: YjsBuilder) => TStorage,\n ): CrdtYjsDoc<TStorage> {\n return new CrdtYjsDoc<TStorage>(initialStorage ?? this._initialStorage);\n }\n}\n","import type { YjsType } from \"../types\";\nimport type { YjsBuilder } from \"./builder\";\nimport { CrdtYjsDocFactory } from \"./CrdtYjsDocFactory\";\n\nexport const doc = <TStorage extends Record<string, YjsType<any, any>>>(\n value: (buidler: YjsBuilder) => TStorage = () => ({}) as TStorage,\n): CrdtYjsDocFactory<TStorage> => {\n return new CrdtYjsDocFactory<TStorage>(value);\n};\n","import { Map as YMap } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsMap<T extends unknown>\n extends YMap<T>\n implements YjsType<YMap<T>, Record<string, T>>\n{\n public initialValue?: readonly (readonly [key: string, value: T])[];\n\n constructor(value: readonly (readonly [key: string, value: T])[] = []) {\n super(value);\n\n this.initialValue = value;\n }\n\n public __pluvType(): any {\n return {} as any;\n }\n}\n","import type { Map as YMap } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { YjsMap } from \"./YjsMap\";\n\nexport const map = <T extends unknown>(\n value: readonly (readonly [key: string, value: T])[] = [],\n): YjsType<YMap<T>, Record<string, T>> => {\n return new YjsMap<T>(value) as YjsType<YMap<T>, Record<string, T>>;\n};\n","import type { CrdtType, IOLike, PluvRouterEventConfig, RoomLike } from \"@pluv/types\";\nimport { StorageState } from \"@pluv/types\";\nimport { ObservableV2 } from \"lib0/observable\";\nimport type { Doc as YDoc } from \"yjs\";\nimport type { PluvYjsAwareness } from \"../awareness\";\nimport { awareness } from \"../awareness\";\nimport type { YjsProviderStatus } from \"../types\";\n\nexport interface PluvYjsProviderParams<\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> {\n presenceField?: TField;\n room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n}\n\n/**\n * !HACK\n * @description This doesn't really do anything but emit states in a Yjs.Provider compatible way.\n * Connections and document syncing are handled by the PluvRoom already.\n * @date May 13, 2025\n */\nexport class PluvYjsProvider<\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n> extends ObservableV2<{\n \"connection-close\": (\n event: CloseEvent | null,\n provider: PluvYjsProvider<TIO, TPresence, TStorage, TEvents, TField>,\n ) => void;\n \"connection-error\": (\n event: Event,\n provider: PluvYjsProvider<TIO, TPresence, TStorage, TEvents, TField>,\n ) => void;\n status: (event: { status: YjsProviderStatus }) => void;\n sync: (state: boolean) => void;\n synced: (state: boolean) => void;\n}> {\n public readonly awareness: PluvYjsAwareness<TIO, TPresence, TStorage, TEvents, TField>;\n public readonly doc: YDoc;\n\n private readonly _room: RoomLike<TIO, YDoc, TPresence, TStorage, TEvents>;\n private readonly _unsubscribe: () => void;\n\n private _synced: boolean = false;\n\n constructor(params: PluvYjsProviderParams<TIO, TPresence, TStorage, TEvents, TField>) {\n super();\n\n const { presenceField, room } = params;\n\n this.awareness = awareness({ presenceField, room });\n this.doc = room.getDoc().value;\n\n this._room = room;\n\n const subscriptions = [\n this._room.subscribe.connection(({ storage }) => {\n const status = this._toProviderStatus(storage.state);\n\n if (!status) return;\n\n this.emit(\"status\", [{ status }]);\n }),\n this._room.addEventListener(\"close\", (event) => {\n this.emit(\"connection-close\", [event, this]);\n }),\n this._room.addEventListener(\"error\", (event) => {\n this.emit(\"connection-error\", [event, this]);\n }),\n ];\n\n this._unsubscribe = subscriptions.reduce(\n (fn, unsubscribe) => () => {\n fn();\n unsubscribe();\n },\n () => undefined,\n );\n }\n\n public get synced(): boolean {\n return this._synced;\n }\n\n public set synced(state: boolean) {\n if (this._synced === state) return;\n\n this._synced = state;\n this.emit(\"sync\", [state]);\n this.emit(\"synced\", [state]);\n }\n\n public destroy(): void {\n this.awareness.destroy();\n this._unsubscribe();\n super.destroy();\n }\n\n private _toProviderStatus(state: StorageState): YjsProviderStatus | null {\n switch (state) {\n case StorageState.Loading: {\n return \"connecting\";\n }\n case StorageState.Unavailable: {\n return \"disconnected\";\n }\n case StorageState.Offline:\n case StorageState.Synced: {\n return \"connected\";\n }\n default:\n return null;\n }\n }\n\n /**\n * !HACK\n * @description We dgaf about these, since the room manages these already. We're just mirroring\n * the fields that exist in the og provider to make sure everything aligns.\n * @see https://github.com/yjs/y-websocket/blob/master/src/y-websocket.js\n * @date May 13, 2025\n */\n public connect(): void {}\n public disconnect(): void {}\n}\n","import type { CrdtType, IOLike, PluvRouterEventConfig } from \"@pluv/types\";\nimport type { PluvYjsProviderParams } from \"./PluvYjsProvider\";\nimport { PluvYjsProvider } from \"./PluvYjsProvider\";\n\nexport const provider = <\n TIO extends IOLike<any, any, any>,\n TPresence extends Record<string, any>,\n TStorage extends Record<string, CrdtType<any, any>>,\n TEvents extends PluvRouterEventConfig,\n TField extends keyof TPresence | null = null,\n>(\n params: PluvYjsProviderParams<TIO, TPresence, TStorage, TEvents, TField>,\n) => {\n return new PluvYjsProvider(params);\n};\n","import { Text as YText } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsText extends YText implements YjsType<YText, string> {\n public initialValue?: string;\n\n constructor(value: string = \"\") {\n super();\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { Text as YText } from \"yjs\";\nimport type { YjsType } from \"../types\";\nimport { YjsText } from \"./YjsText\";\n\nexport const text = (value: string = \"\"): YjsType<YText, string> => {\n return new YjsText(value);\n};\n","import type { XmlText as YXmlText } from \"yjs\";\nimport { XmlElement as YXmlElement } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsXmlElement<T extends Record<string, any> = Record<string, any>>\n extends YXmlElement<T>\n implements YjsType<YXmlElement, string>\n{\n public initialValue?: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[];\n\n constructor(\n name: string,\n value: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[],\n ) {\n super(name);\n\n if (!!value.length) this.insert(0, value as (YXmlElement | YXmlText)[]);\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { XmlText as YXmlText, XmlElement as YXmlElement } from \"yjs\";\nimport { YjsXmlElement } from \"./YjsXmlElement\";\n\nexport const xmlElement = <T extends Record<string, any> = Record<string, any>>(\n name: string,\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[],\n): YjsXmlElement<T> => {\n return new YjsXmlElement<T>(name, children);\n};\n","import type { XmlText as YXmlText, XmlElement as YXmlElement } from \"yjs\";\nimport { XmlFragment as YXmlFragment } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsXmlFragment extends YXmlFragment implements YjsType<YXmlFragment, string> {\n public initialValue?: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[];\n\n constructor(value: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[]) {\n super();\n\n if (!!value.length) this.insert(0, value as (YXmlElement | YXmlText)[]);\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { XmlElement as YXmlElement, XmlText as YXmlText } from \"yjs\";\nimport { YjsXmlFragment } from \"./YjsXmlFragment\";\n\nexport const xmlFragment = (\n children: (YXmlElement | YXmlText)[] | readonly (YXmlElement | YXmlText)[],\n): YjsXmlFragment => {\n return new YjsXmlFragment(children);\n};\n","import { XmlText as YXmlText } from \"yjs\";\nimport type { YjsType } from \"../types\";\n\nexport class YjsXmlText extends YXmlText implements YjsType<YXmlText, string> {\n public initialValue?: string;\n\n constructor(value: string = \"\") {\n super();\n\n this.initialValue = value;\n }\n\n public __pluvType() {\n return {} as unknown as any;\n }\n}\n","import type { XmlText as YXmlText } from \"yjs\";\nimport { YjsType } from \"../types\";\nimport { YjsXmlText } from \"./YjsXmlText\";\n\nexport const xmlText = (): YjsType<YXmlText, string> => {\n return new YjsXmlText();\n};\n","export { array } from \"./array\";\nexport { awareness } from \"./awareness\";\nexport { doc } from \"./doc\";\nexport type { YjsBuilder } from \"./doc\";\nexport { map } from \"./map\";\nexport { provider } from \"./provider\";\nexport { text } from \"./text\";\nexport type { YjsType } from \"./types\";\nexport { xmlElement } from \"./xmlElement\";\nexport { xmlFragment } from \"./xmlFragment\";\nexport { xmlText } from \"./xmlText\";\nexport const kind = \"yjs\" as const;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pluv/crdt-yjs",
3
- "version": "4.0.0",
3
+ "version": "4.0.2",
4
4
  "description": "yjs for @pluv/io",
5
5
  "author": {
6
6
  "email": "david@pluv.io",
@@ -20,25 +20,26 @@
20
20
  "access": "public"
21
21
  },
22
22
  "dependencies": {
23
- "@types/node": "^25.0.9",
23
+ "@types/node": "^25.9.2",
24
24
  "js-base64": "^3.7.8",
25
25
  "lib0": "^0.2.117",
26
- "@pluv/crdt": "^4.0.0",
27
- "@pluv/types": "^4.0.0"
26
+ "@pluv/crdt": "^4.0.2",
27
+ "@pluv/types": "^4.0.2"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "yjs": "^13.0.0"
31
31
  },
32
32
  "devDependencies": {
33
- "eslint": "^9.39.2",
34
- "tsdown": "0.20.0-beta.4",
33
+ "eslint": "^10.4.1",
34
+ "tsdown": "0.22.2",
35
35
  "typescript": "^5.9.3",
36
- "yjs": "^13.6.29",
37
- "@pluv/tsconfig": "^4.0.0",
38
- "eslint-config-pluv": "^4.0.0"
36
+ "yjs": "^13.6.31",
37
+ "@pluv/tsconfig": "^4.0.2",
38
+ "eslint-config-pluv": "^4.0.2"
39
39
  },
40
40
  "exports": {
41
41
  ".": "./dist/index.mjs",
42
+ "./chunk-D7D4PA-g": "./dist/chunk-D7D4PA-g.mjs",
42
43
  "./*": "./*"
43
44
  },
44
45
  "scripts": {
@@ -31,9 +31,10 @@ export type CrdtYjsDocParams<TStorage extends Record<string, YjsType<any, any>>>
31
31
  builder: YjsBuilder,
32
32
  ) => TStorage;
33
33
 
34
- export class CrdtYjsDoc<TStorage extends Record<string, YjsType<any, any>>>
35
- implements CrdtDocLike<YDoc, TStorage>
36
- {
34
+ export class CrdtYjsDoc<TStorage extends Record<string, YjsType<any, any>>> implements CrdtDocLike<
35
+ YDoc,
36
+ TStorage
37
+ > {
37
38
  public value: YDoc = new YDoc();
38
39
 
39
40
  #_storage: TStorage;
@@ -1,18 +0,0 @@
1
- //#region rolldown:runtime
2
- var __defProp = Object.defineProperty;
3
- var __exportAll = (all, symbols) => {
4
- let target = {};
5
- for (var name in all) {
6
- __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- }
11
- if (symbols) {
12
- __defProp(target, Symbol.toStringTag, { value: "Module" });
13
- }
14
- return target;
15
- };
16
-
17
- //#endregion
18
- export { __exportAll as t };