@adonis-agora/collaboration 0.9.3 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/dist/providers/collaboration_provider.d.ts +15 -5
  3. package/dist/providers/collaboration_provider.d.ts.map +1 -1
  4. package/dist/providers/collaboration_provider.js +53 -24
  5. package/dist/providers/collaboration_provider.js.map +1 -1
  6. package/dist/src/auth/token.d.ts +20 -2
  7. package/dist/src/auth/token.d.ts.map +1 -1
  8. package/dist/src/auth/token.js +31 -8
  9. package/dist/src/auth/token.js.map +1 -1
  10. package/dist/src/codegen_init.d.ts.map +1 -1
  11. package/dist/src/codegen_init.js +11 -1
  12. package/dist/src/codegen_init.js.map +1 -1
  13. package/dist/src/collaboration_manager.d.ts.map +1 -1
  14. package/dist/src/collaboration_manager.js +4 -0
  15. package/dist/src/collaboration_manager.js.map +1 -1
  16. package/dist/src/define_config.d.ts +32 -1
  17. package/dist/src/define_config.d.ts.map +1 -1
  18. package/dist/src/define_config.js +6 -0
  19. package/dist/src/define_config.js.map +1 -1
  20. package/dist/src/drivers/automerge/automerge_driver.d.ts +7 -1
  21. package/dist/src/drivers/automerge/automerge_driver.d.ts.map +1 -1
  22. package/dist/src/drivers/automerge/automerge_driver.js +74 -11
  23. package/dist/src/drivers/automerge/automerge_driver.js.map +1 -1
  24. package/dist/src/drivers/yjs/yjs_driver.d.ts +20 -0
  25. package/dist/src/drivers/yjs/yjs_driver.d.ts.map +1 -1
  26. package/dist/src/drivers/yjs/yjs_driver.js +113 -20
  27. package/dist/src/drivers/yjs/yjs_driver.js.map +1 -1
  28. package/dist/src/http/types.d.ts +24 -1
  29. package/dist/src/http/types.d.ts.map +1 -1
  30. package/dist/src/http/types.js.map +1 -1
  31. package/dist/src/index.d.ts +4 -3
  32. package/dist/src/index.d.ts.map +1 -1
  33. package/dist/src/index.js +3 -2
  34. package/dist/src/index.js.map +1 -1
  35. package/dist/src/observability.d.ts +52 -0
  36. package/dist/src/observability.d.ts.map +1 -0
  37. package/dist/src/observability.js +50 -0
  38. package/dist/src/observability.js.map +1 -0
  39. package/dist/src/routes.d.ts +35 -5
  40. package/dist/src/routes.d.ts.map +1 -1
  41. package/dist/src/routes.js +117 -26
  42. package/dist/src/routes.js.map +1 -1
  43. package/dist/src/services/comment_service.d.ts +9 -0
  44. package/dist/src/services/comment_service.d.ts.map +1 -1
  45. package/dist/src/services/comment_service.js +17 -4
  46. package/dist/src/services/comment_service.js.map +1 -1
  47. package/dist/src/storage/lucid_storage.d.ts +7 -0
  48. package/dist/src/storage/lucid_storage.d.ts.map +1 -1
  49. package/dist/src/storage/lucid_storage.js +34 -11
  50. package/dist/src/storage/lucid_storage.js.map +1 -1
  51. package/dist/src/types.d.ts +14 -4
  52. package/dist/src/types.d.ts.map +1 -1
  53. package/dist/src/versioning.d.ts +6 -0
  54. package/dist/src/versioning.d.ts.map +1 -1
  55. package/dist/src/versioning.js +10 -0
  56. package/dist/src/versioning.js.map +1 -1
  57. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAA8B;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAmC,MAAS;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -18,7 +18,13 @@ export declare class AutomergeDriver implements CollaborationDriver {
18
18
  /** Versions = markers over the native history (heads hash). */
19
19
  createVersion(docName: string, createdBy: string | null, label: string | null): Promise<CollabVersion>;
20
20
  listVersions(docName: string): Promise<CollabVersion[]>;
21
- restoreVersion(docName: string, versionId: string, _restoredBy: string | null): Promise<void>;
21
+ /**
22
+ * Restores `versionId` — recording the state it replaces as a new version
23
+ * attributed to `restoredBy`, per the driver contract. Automerge keeps the
24
+ * change history natively, but the *version list* is ours, and a restore
25
+ * that leaves no entry in it is a restore nobody can undo.
26
+ */
27
+ restoreVersion(docName: string, versionId: string, restoredBy: string | null): Promise<void>;
22
28
  diffVersions(docName: string, aId: string, bId: string): Promise<CollabDiffSummary>;
23
29
  close(): Promise<void>;
24
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"automerge_driver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/automerge/automerge_driver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AA4B7F,qBAAa,eAAgB,YAAW,mBAAmB;IACzD,QAAQ,CAAC,MAAM,eAAe;IAE9B,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,aAAa,CAAoD;gBAE7D,OAAO,EAAE,uBAAuB;YAK9B,QAAQ;IActB,OAAO,CAAC,SAAS;IAQX,MAAM,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA4DjD,mBAAmB;IAkBjC,OAAO,CAAC,gBAAgB;IAclB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKtD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMvD,+DAA+D;IACzD,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC,aAAa,CAAC;IAgBnB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIvD,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,IAAI,CAAC;IAoBV,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAenF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
1
+ {"version":3,"file":"automerge_driver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/automerge/automerge_driver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,KAAK,EACV,iBAAiB,EAEjB,aAAa,EAEd,MAAM,gBAAgB,CAAC;AA+BxB,qBAAa,eAAgB,YAAW,mBAAmB;IACzD,QAAQ,CAAC,MAAM,eAAe;IAE9B,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,aAAa,CAAoD;gBAE7D,OAAO,EAAE,uBAAuB;YAK9B,QAAQ;IActB,OAAO,CAAC,SAAS;IAQX,MAAM,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA8FjD,mBAAmB;IAkBjC,OAAO,CAAC,gBAAgB;IAwBlB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKtD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMvD,+DAA+D;IACzD,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC,aAAa,CAAC;IAgBnB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAI7D;;;;;OAKG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC;IAoCV,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAenF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
@@ -1,7 +1,9 @@
1
1
  import * as A from '@automerge/automerge';
2
2
  import { next as ANext } from '@automerge/automerge';
3
3
  import { WebSocketServer } from 'ws';
4
- import { createVersionMetadata, seqVersions } from '../../versioning.js';
4
+ import { parseLegacyToken } from '../../auth/token.js';
5
+ import { reportCollaborationError } from '../../observability.js';
6
+ import { createVersionMetadata, restoredFromLabel, seqVersions } from '../../versioning.js';
5
7
  import { lineDiff, resolveStorage } from '../shared.js';
6
8
  /**
7
9
  * Automerge driver.
@@ -19,6 +21,8 @@ import { lineDiff, resolveStorage } from '../shared.js';
19
21
  */
20
22
  /** Connections whose permission denied canWrite — their updates are dropped. */
21
23
  const readOnlyClients = new WeakSet();
24
+ /** userId behind each open socket — feeds the presence roster on close. */
25
+ const socketUsers = new WeakMap();
22
26
  export class AutomergeDriver {
23
27
  engine = 'automerge';
24
28
  rooms = new Map();
@@ -69,17 +73,41 @@ export class AutomergeDriver {
69
73
  ws.close(4001, 'not authenticated');
70
74
  return;
71
75
  }
76
+ const ctx = parseLegacyToken(token);
77
+ if (!ctx) {
78
+ ws.close(4001, 'authentication failed');
79
+ return;
80
+ }
81
+ // A denial and an outage are different events for the client: 4003
82
+ // is final, 4503 is worth retrying. Reporting one as the other is
83
+ // how an app-side database error becomes a reconnect storm.
84
+ let permission;
85
+ try {
86
+ permission = await this.options.authorize(ctx, docName);
87
+ }
88
+ catch (error) {
89
+ reportCollaborationError({
90
+ scope: 'authorize',
91
+ operation: 'upgrade',
92
+ docName,
93
+ error,
94
+ });
95
+ ws.close(4503, 'authorization unavailable');
96
+ return;
97
+ }
98
+ if (!permission.canRead) {
99
+ ws.close(4003, 'no access');
100
+ return;
101
+ }
72
102
  try {
73
- const ctx = JSON.parse(Buffer.from(token, 'base64').toString());
74
- const permission = await this.options.authorize(ctx, docName);
75
- if (!permission.canRead) {
76
- ws.close(4003, 'no access');
77
- return;
78
- }
79
103
  const room = await this.loadRoom(docName);
80
104
  room.clients.add(ws);
81
105
  if (!permission.canWrite)
82
106
  readOnlyClients.add(ws);
107
+ await this.options.presence?.join(docName, {
108
+ userId: ctx.userId,
109
+ ...(ctx.user?.name ? { name: ctx.user.name } : {}),
110
+ });
83
111
  // Sends the full state to the new client.
84
112
  ws.send(A.save(room.text));
85
113
  ws.on('message', (data) => {
@@ -93,10 +121,18 @@ export class AutomergeDriver {
93
121
  ws.on('close', () => {
94
122
  room.clients.delete(ws);
95
123
  readOnlyClients.delete(ws);
124
+ // Only the user's LAST socket on this document leaves the roster.
125
+ const stillConnected = [...room.clients].some((client) => socketUsers.get(client) === ctx.userId);
126
+ socketUsers.delete(ws);
127
+ if (!stillConnected) {
128
+ void this.options.presence?.leave(docName, ctx.userId);
129
+ }
96
130
  });
131
+ socketUsers.set(ws, ctx.userId);
97
132
  }
98
- catch {
99
- ws.close(4001, 'authentication failed');
133
+ catch (error) {
134
+ reportCollaborationError({ scope: 'storage', operation: 'loadDocument', docName, error });
135
+ ws.close(4500, 'could not open the document');
100
136
  }
101
137
  });
102
138
  });
@@ -123,7 +159,17 @@ export class AutomergeDriver {
123
159
  if (existing)
124
160
  clearTimeout(existing);
125
161
  this.persistTimers.set(docName, setTimeout(() => {
126
- void this.storage.saveDocument(docName, A.save(room.text)).finally(() => resolve());
162
+ void this.storage
163
+ .saveDocument(docName, A.save(room.text))
164
+ .catch((error) => {
165
+ reportCollaborationError({
166
+ scope: 'storage',
167
+ operation: 'saveDocument',
168
+ docName,
169
+ error,
170
+ });
171
+ })
172
+ .finally(() => resolve());
127
173
  }, this.options.debounce ?? 2000));
128
174
  });
129
175
  }
@@ -153,12 +199,24 @@ export class AutomergeDriver {
153
199
  async listVersions(docName) {
154
200
  return this.storage.listVersions(docName);
155
201
  }
156
- async restoreVersion(docName, versionId, _restoredBy) {
202
+ /**
203
+ * Restores `versionId` — recording the state it replaces as a new version
204
+ * attributed to `restoredBy`, per the driver contract. Automerge keeps the
205
+ * change history natively, but the *version list* is ours, and a restore
206
+ * that leaves no entry in it is a restore nobody can undo.
207
+ */
208
+ async restoreVersion(docName, versionId, restoredBy) {
157
209
  const bytes = await this.storage.loadVersionSnapshot(docName, versionId);
158
210
  if (!bytes)
159
211
  throw new Error(`Version ${versionId} not found`);
160
212
  const snapshotDoc = A.load(bytes);
161
213
  const room = await this.loadRoom(docName);
214
+ const existing = await this.storage.listVersions(docName);
215
+ const target = existing.find((version) => version.id === versionId);
216
+ await this.storage.saveVersion(docName, {
217
+ ...createVersionMetadata(restoredBy, restoredFromLabel(target, versionId), seqVersions(existing)),
218
+ id: ANext.getHeads(room.text).join(','),
219
+ }, A.save(room.text));
162
220
  const merged = A.merge(room.text, snapshotDoc);
163
221
  // Automerge merge converges to the most recent state; to "restore",
164
222
  // we overwrite the content field with the value from the version.
@@ -187,6 +245,11 @@ export class AutomergeDriver {
187
245
  async close() {
188
246
  for (const timer of this.persistTimers.values())
189
247
  clearTimeout(timer);
248
+ // `this.wss?.close(cb)` never runs cb when there is no server, so this
249
+ // promise used to hang forever on a driver that was never attached —
250
+ // which is every driver outside the web process.
251
+ if (!this.wss)
252
+ return;
190
253
  return new Promise((resolve) => {
191
254
  this.wss?.close(() => resolve());
192
255
  });
@@ -1 +1 @@
1
- {"version":3,"file":"automerge_driver.js","sourceRoot":"","sources":["../../../../src/drivers/automerge/automerge_driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automerge_driver.js","sourceRoot":"","sources":["../../../../src/drivers/automerge/automerge_driver.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  import type { CollaborationDriver, SelfHostedDriverOptions } from '../../driver.js';
2
2
  import type { CollabDiffSummary, CollabVersion } from '../../types.js';
3
+ /**
4
+ * Yjs driver: Hocuspocus as the sync engine (y-protocols protocol over
5
+ * WebSocket), with version control implemented on top of complete binary
6
+ * updates — what Automerge has natively (history) we provide here:
7
+ *
8
+ * - `createVersion`: stores the complete binary update + metadata;
9
+ * - `restoreVersion`: applies the version's content to the live doc via a
10
+ * transaction — connected clients receive it in real time through the sync
11
+ * protocol;
12
+ * - `diffVersions`: materializes both versions and compares them by line.
13
+ * - Anchored comments: delegate to the CommentService (generic anchor).
14
+ */
3
15
  export declare class YjsDriver implements CollaborationDriver {
4
16
  readonly engine = "yjs";
5
17
  private hocuspocus;
@@ -15,6 +27,14 @@ export declare class YjsDriver implements CollaborationDriver {
15
27
  getDocumentText(docName: string): Promise<string>;
16
28
  createVersion(docName: string, createdBy: string | null, label: string | null): Promise<CollabVersion>;
17
29
  listVersions(docName: string): Promise<CollabVersion[]>;
30
+ /**
31
+ * Restores `versionId` into the live document — and keeps what it replaced.
32
+ *
33
+ * The state being overwritten is written to the history first, as a new
34
+ * version attributed to `restoredBy` and labelled `restored from #<seq>`.
35
+ * Without that step a restore is a destructive edit with no undo, which is
36
+ * the opposite of what a version history is for.
37
+ */
18
38
  restoreVersion(docName: string, versionId: string, restoredBy: string | null): Promise<void>;
19
39
  diffVersions(docName: string, aId: string, bId: string): Promise<CollabDiffSummary>;
20
40
  private versionState;
@@ -1 +1 @@
1
- {"version":3,"file":"yjs_driver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/yjs/yjs_driver.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AAsB7F,qBAAa,SAAU,YAAW,mBAAmB;IACnD,QAAQ,CAAC,MAAM,SAAS;IAExB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAEnC,OAAO,EAAE,uBAAuB;IAyE5C,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,OAAO;YAQD,SAAS;IAQjB,MAAM,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAStD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAajD,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC,aAAa,CAAC;IASnB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIvD,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC;IAgBV,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAY3E,YAAY;IAMpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
1
+ {"version":3,"file":"yjs_driver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/yjs/yjs_driver.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,KAAK,EACV,iBAAiB,EAEjB,aAAa,EAEd,MAAM,gBAAgB,CAAC;AAiBxB;;;;;;;;;;;GAWG;AAEH,qBAAa,SAAU,YAAW,mBAAmB;IACnD,QAAQ,CAAC,MAAM,SAAS;IAExB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAEnC,OAAO,EAAE,uBAAuB;IAiI5C,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,OAAO;YAQD,SAAS;IAQjB,MAAM,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCzD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAStD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAajD,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC,aAAa,CAAC;IASnB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAI7D;;;;;;;OAOG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC;IA6BV,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAY3E,YAAY;IAMpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
@@ -2,9 +2,22 @@ import { Hocuspocus, } from '@hocuspocus/server';
2
2
  import { TiptapTransformer } from '@hocuspocus/transformer';
3
3
  import { WebSocketServer } from 'ws';
4
4
  import * as Y from 'yjs';
5
- import { parseLegacyToken } from '../../auth/token.js';
6
- import { createVersionMetadata, seqVersions } from '../../versioning.js';
5
+ import { CollabAuthorizationError, CollabForbiddenError, parseLegacyToken, } from '../../auth/token.js';
6
+ import { reportCollaborationError } from '../../observability.js';
7
+ import { createVersionMetadata, restoredFromLabel, seqVersions } from '../../versioning.js';
7
8
  import { lineDiff, resolveStorage, tiptapJsonToText } from '../shared.js';
9
+ /**
10
+ * `ws` delivers a frame as a Buffer, a list of Buffers (fragmented frame) or an
11
+ * ArrayBuffer depending on `binaryType`; Hocuspocus wants one `Uint8Array`.
12
+ */
13
+ function toUint8Array(data) {
14
+ const buffer = Array.isArray(data)
15
+ ? Buffer.concat(data)
16
+ : data instanceof ArrayBuffer
17
+ ? Buffer.from(data)
18
+ : data;
19
+ return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
20
+ }
8
21
  /**
9
22
  * Yjs driver: Hocuspocus as the sync engine (y-protocols protocol over
10
23
  * WebSocket), with version control implemented on top of complete binary
@@ -17,9 +30,6 @@ import { lineDiff, resolveStorage, tiptapJsonToText } from '../shared.js';
17
30
  * - `diffVersions`: materializes both versions and compares them by line.
18
31
  * - Anchored comments: delegate to the CommentService (generic anchor).
19
32
  */
20
- /** Permissions per connection (userId:docName), filled in at authenticate. */
21
- /** userId por documento conectado — alimenta presence no disconnect. */
22
- const presenceByDoc = new Map();
23
33
  export class YjsDriver {
24
34
  engine = 'yjs';
25
35
  hocuspocus;
@@ -32,37 +42,68 @@ export class YjsDriver {
32
42
  // Captured outside the callback: `this` inside Hocuspocus hooks is not
33
43
  // the driver instance.
34
44
  const storage = this.storage;
45
+ /**
46
+ * Presence bookkeeping, keyed by **socket** and scoped to this driver
47
+ * instance.
48
+ *
49
+ * It used to be a module-level `Map<docName, userId>` — one slot per
50
+ * DOCUMENT. A second editor overwrote the first, and then whichever of
51
+ * them disconnected first evicted the other from the roster too. A room
52
+ * is many connections; the map has to be too.
53
+ */
54
+ const presenceBySocket = new Map();
35
55
  this.hocuspocus = new Hocuspocus({
36
56
  async onAuthenticate({ documentName, token, connectionConfig }) {
37
57
  const ctx = parseLegacyToken(token);
38
58
  if (!ctx)
39
59
  throw new Error('invalid token');
40
- const permission = await options.authorize(ctx, documentName);
60
+ // "You may not" and "we could not tell" are different answers, and a
61
+ // client that cannot distinguish them retries the first one forever.
62
+ let permission;
63
+ try {
64
+ permission = await options.authorize(ctx, documentName);
65
+ }
66
+ catch (error) {
67
+ reportCollaborationError({
68
+ scope: 'authorize',
69
+ operation: 'onAuthenticate',
70
+ docName: documentName,
71
+ error,
72
+ });
73
+ throw new CollabAuthorizationError(documentName, error);
74
+ }
41
75
  if (!permission.canRead) {
42
- throw new Error('no access to this document');
76
+ throw new CollabForbiddenError(documentName);
43
77
  }
44
78
  // canWrite has to bind the connection itself: a client that is only
45
79
  // told it may not write can simply not ask. Hocuspocus drops inbound
46
80
  // updates on a read-only connection while still syncing outbound.
47
81
  connectionConfig.readOnly = !permission.canWrite;
48
82
  },
49
- async onConnect({ documentName, requestParameters }) {
83
+ async onConnect({ documentName, requestParameters, socketId }) {
50
84
  const token = requestParameters.get('token');
51
85
  const ctx = token ? parseLegacyToken(token) : null;
52
86
  if (options.presence && ctx?.userId) {
53
- presenceByDoc.set(documentName, ctx.userId);
87
+ presenceBySocket.set(socketId, { documentName, userId: ctx.userId });
54
88
  await options.presence.join(documentName, {
55
89
  userId: ctx.userId,
56
90
  ...(ctx.user ? { name: ctx.user.name } : {}),
57
91
  });
58
92
  }
59
93
  },
60
- async onDisconnect({ documentName }) {
61
- const userId = presenceByDoc.get(documentName);
62
- if (options.presence && userId) {
63
- presenceByDoc.delete(documentName);
64
- await options.presence.leave(documentName, userId);
65
- }
94
+ async onDisconnect({ socketId }) {
95
+ const entry = presenceBySocket.get(socketId);
96
+ if (!entry)
97
+ return;
98
+ presenceBySocket.delete(socketId);
99
+ if (!options.presence)
100
+ return;
101
+ // One user, two tabs: the roster entry only goes away with the last
102
+ // socket that user holds on that document.
103
+ const stillConnected = [...presenceBySocket.values()].some((other) => other.documentName === entry.documentName && other.userId === entry.userId);
104
+ if (stillConnected)
105
+ return;
106
+ await options.presence.leave(entry.documentName, entry.userId);
66
107
  },
67
108
  // Seed each in-memory doc from the persisted state: without this hook the
68
109
  // Hocuspocus doc starts EMPTY on every connection, so a previously saved
@@ -76,7 +117,20 @@ export class YjsDriver {
76
117
  }
77
118
  },
78
119
  async onStoreDocument({ documentName, document }) {
79
- await storage.saveDocument(documentName, Y.encodeStateAsUpdate(document));
120
+ // Hocuspocus swallows what this hook throws, so a storage outage was
121
+ // completely silent — indistinguishable from a healthy save.
122
+ try {
123
+ await storage.saveDocument(documentName, Y.encodeStateAsUpdate(document));
124
+ }
125
+ catch (error) {
126
+ reportCollaborationError({
127
+ scope: 'storage',
128
+ operation: 'saveDocument',
129
+ docName: documentName,
130
+ error,
131
+ });
132
+ throw error;
133
+ }
80
134
  },
81
135
  // CRITICAL: when the last client disconnects (F5 / close tab / nav away),
82
136
  // Hocuspocus's default onClose path (server line 1382) only flushes the
@@ -86,7 +140,18 @@ export class YjsDriver {
86
140
  // to persist synchronously before the doc is destroyed, regardless of
87
141
  // debouncer state. This makes F5 reliable.
88
142
  async beforeUnloadDocument({ documentName, document }) {
89
- await storage.saveDocument(documentName, Y.encodeStateAsUpdate(document));
143
+ try {
144
+ await storage.saveDocument(documentName, Y.encodeStateAsUpdate(document));
145
+ }
146
+ catch (error) {
147
+ reportCollaborationError({
148
+ scope: 'storage',
149
+ operation: 'saveDocument',
150
+ docName: documentName,
151
+ error,
152
+ });
153
+ throw error;
154
+ }
90
155
  },
91
156
  debounce: options.debounce ?? 2000,
92
157
  });
@@ -123,7 +188,23 @@ export class YjsDriver {
123
188
  const fetchRequest = new Request(parsed, {
124
189
  headers: request.headers,
125
190
  });
126
- this.hocuspocus.handleConnection(ws, fetchRequest);
191
+ // Hocuspocus 4 does not listen on the socket. `handleConnection` takes a
192
+ // `WebSocketLike` (send/close/readyState — no events) and hands back a
193
+ // `ClientConnection` that the integrator feeds, exactly as the package's
194
+ // own `Server` does through crossws. Calling `handleConnection` and
195
+ // dropping the return value looked like a working server: the socket
196
+ // opened, the client sent Auth + SyncStep1, and nothing ever answered —
197
+ // no document loaded, nothing stored, every version a 2-byte snapshot.
198
+ const connection = this.hocuspocus.handleConnection(ws, fetchRequest);
199
+ ws.on('message', (data) => {
200
+ connection.handleMessage(toUint8Array(data));
201
+ });
202
+ ws.on('close', (code, reason) => {
203
+ connection.handleClose({ code, reason: reason.toString() });
204
+ });
205
+ ws.on('error', (error) => {
206
+ reportCollaborationError({ scope: 'transport', operation: 'websocket', error });
207
+ });
127
208
  });
128
209
  });
129
210
  }
@@ -157,13 +238,25 @@ export class YjsDriver {
157
238
  async listVersions(docName) {
158
239
  return this.storage.listVersions(docName);
159
240
  }
241
+ /**
242
+ * Restores `versionId` into the live document — and keeps what it replaced.
243
+ *
244
+ * The state being overwritten is written to the history first, as a new
245
+ * version attributed to `restoredBy` and labelled `restored from #<seq>`.
246
+ * Without that step a restore is a destructive edit with no undo, which is
247
+ * the opposite of what a version history is for.
248
+ */
160
249
  async restoreVersion(docName, versionId, restoredBy) {
161
- void restoredBy;
250
+ // Resolve the target first: a missing version must fail before anything
251
+ // is written, so a bad id never lands a spurious version in the history.
162
252
  const state = await this.versionState(docName, versionId);
163
253
  const restoredDoc = this.hydrate(state);
254
+ const live = await this.ensureDoc(docName);
255
+ const existing = await this.storage.listVersions(docName);
256
+ const target = existing.find((version) => version.id === versionId);
257
+ await this.storage.saveVersion(docName, createVersionMetadata(restoredBy, restoredFromLabel(target, versionId), seqVersions(existing)), Y.encodeStateAsUpdate(live));
164
258
  // Applies the restored content to the live doc — connected clients receive
165
259
  // the change in real time via the Hocuspocus sync protocol.
166
- const live = await this.ensureDoc(docName);
167
260
  live.transact(() => {
168
261
  applyRestoredContent(live, restoredDoc);
169
262
  });
@@ -1 +1 @@
1
- {"version":3,"file":"yjs_driver.js","sourceRoot":"","sources":["../../../../src/drivers/yjs/yjs_driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yjs_driver.js","sourceRoot":"","sources":["../../../../src/drivers/yjs/yjs_driver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { AuthorizeFn } from '../auth/token.js';
2
+ import type { CollabPermission } from '../types.js';
2
3
  /**
3
4
  * Minimal HttpContext contract consumed by the built-in route handlers.
4
5
  * Intentionally structural — keeps the package decoupled from the full
@@ -21,9 +22,16 @@ export interface CollabHttpContext {
21
22
  noContent(): unknown;
22
23
  header(name: string, value: string): unknown;
23
24
  };
24
- /** Present when @adonisjs/auth is installed and its middleware ran. */
25
+ /**
26
+ * Present when @adonisjs/auth is installed. `user` is only populated once
27
+ * the guard actually ran, so the default resolver calls `check()` (or
28
+ * `authenticate()`) itself before reading it.
29
+ */
25
30
  auth?: {
26
31
  user?: unknown;
32
+ isAuthenticated?: boolean;
33
+ check?(): Promise<boolean>;
34
+ authenticate?(): Promise<unknown>;
27
35
  };
28
36
  }
29
37
  /** Authenticated user resolved by the token endpoint. */
@@ -46,6 +54,20 @@ export interface CollabManagerLike {
46
54
  engineFor?(options: {
47
55
  docName: string;
48
56
  }): Promise<string>;
57
+ /**
58
+ * The app's permission rule, resolved exactly as the WebSocket handshake
59
+ * resolves it (declared document first, then the global rule, then deny).
60
+ * The routes fall back to this when no explicit `authorize` option is
61
+ * given — which is what makes manual registration enforce the same rule
62
+ * the provider does.
63
+ */
64
+ authorize?(ctx: {
65
+ userId: string;
66
+ user?: {
67
+ name?: string;
68
+ avatarUrl?: string | null;
69
+ };
70
+ }, docName: string): Promise<CollabPermission>;
49
71
  getDocumentState(options: {
50
72
  docName: string;
51
73
  }): Promise<Uint8Array>;
@@ -68,6 +90,7 @@ export interface CollabManagerLike {
68
90
  }): Promise<void>;
69
91
  comments: {
70
92
  list(docName: string, space?: string): Promise<unknown[]>;
93
+ get(docName: string, commentId: string): Promise<unknown>;
71
94
  create(docName: string, comment: Record<string, unknown>): Promise<unknown>;
72
95
  resolve(docName: string, commentId: string, resolved: boolean): Promise<unknown>;
73
96
  remove(docName: string, commentId: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QACP,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,GAAG,IAAI,WAAW,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KAC1C,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;YAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAA;SAAE,CAAC;QAC1D,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;QAChC,SAAS,IAAI,OAAO,CAAC;QACrB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;KAC9C,CAAC;IACF,uEAAuE;IACvE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3B;AAED,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,iBAAiB,KACnB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;AAE9D,8DAA8D;AAC9D,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,SAAoB;CAIxC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,SAAS,CAAC,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,gBAAgB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,aAAa,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,YAAY,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,cAAc,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,eAAe,CAAC,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,QAAQ,EAAE;QACR,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5E,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACjF,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC9D,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,oEAAoE;IACpE,OAAO,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC,CAAC;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/http/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/http/types.ts"],"names":[],"mappings":"AAqCA,8DAA8D;AAC9D,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAO,GAAG,iBAAiB;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/http/types.ts"],"names":[],"mappings":"AA+CA,8DAA8D;AAC9D,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAO,GAAG,iBAAiB;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
@@ -2,13 +2,14 @@ export { CollaborationManager } from './collaboration_manager.js';
2
2
  export { YjsDriver } from './drivers/yjs/yjs_driver.js';
3
3
  export { AutomergeDriver } from './drivers/automerge/automerge_driver.js';
4
4
  export { PartyKitDriver, PartyKitRoomError, } from './drivers/partykit/partykit_driver.js';
5
- export { buildWsUrl, CollabForbiddenError, issueToken, parseLegacyToken, signPartyKitToken, verifyPartyKitToken, type AuthorizeFn, type IssuedToken, type TokenIssuerConfig, } from './auth/token.js';
5
+ export { buildWsUrl, CollabAuthorizationError, CollabForbiddenError, issueToken, parseLegacyToken, signPartyKitToken, verifyPartyKitToken, type AuthorizeFn, type IssuedToken, type TokenIssuerConfig, } from './auth/token.js';
6
+ export { COLLAB_ERROR_EVENT, collaborationEvents, onCollaborationError, reportCollaborationError, setCollaborationLogger, type CollabErrorEvent, type CollabLogger, } from './observability.js';
6
7
  export { LucidStorage, lucidStorage } from './storage/lucid_storage.js';
7
8
  export { PresenceService, RedisPresenceStore, type PresenceMember, type PresenceStore, } from './services/presence_service.js';
8
9
  export { InMemoryCollaborationStorage } from './storage/in_memory_storage.js';
9
10
  export { FileSystemStorage } from './storage/file_system_storage.js';
10
- export { defineConfig, type CollaborationAppConfig, } from './define_config.js';
11
- export { collaborationRoutes, defaultResolveUser, secretsMatch } from './routes.js';
11
+ export { defineConfig, type CollabDocumentNameFor, type CollaborationAppConfig, type InferCollabDocumentNames, } from './define_config.js';
12
+ export { canMutateComment, collaborationRoutes, defaultResolveUser, secretsMatch, } from './routes.js';
12
13
  export type { CollabHttpContext, CollabManagerLike, CollabRouteUser, CollabRoutesRuntime, ResolveUserFn, } from './http/types.js';
13
14
  export { CollabUnauthorizedError } from './http/types.js';
14
15
  export type { CollabComment, CommentAnchor, CollaborationEngine, CollaborationConfig, CollaborationStorage, CollabConnectionContext, CollabPermission, CollabVersion, CollabDiffSummary, PartyKitConfig, PruneVersionsOptions, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpF,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}