@verdant-web/server 4.0.1 → 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.
@@ -22,7 +22,7 @@ export declare class Library {
22
22
  private disableRebasing;
23
23
  private fileStorage;
24
24
  private events;
25
- private id;
25
+ readonly id: string;
26
26
  private presence;
27
27
  private log;
28
28
  constructor({ storage, sender, log, disableRebasing, fileStorage, events, id, presence, }: {
@@ -99,7 +99,7 @@ export class Library {
99
99
  if (newServerOrder - replicaInfo.ackedServerOrder ===
100
100
  insertedOperationsCount) {
101
101
  await this.storage.replicas.updateAckedServerOrder(replicaInfo.id, newServerOrder);
102
- this.log('debug', 'Preemptively updated ackedServerOrder for', replicaInfo.id, 'to', newServerOrder);
102
+ this.log('debug', 'Preemptively updated ackedServerOrder for', replicaInfo.id, 'to', newServerOrder, `(+${insertedOperationsCount} ops, ${replicaInfo.ackedServerOrder} -> ${newServerOrder})`);
103
103
  }
104
104
  };
105
105
  this.handleSync = async (message, clientKey, info) => {
@@ -123,11 +123,11 @@ export class Library {
123
123
  this.log('info', `Sync from ${replicaId} (user: ${info.userId}) [ackedServerOrder: ${clientReplicaInfo.ackedServerOrder}, status: ${status}}]`);
124
124
  // for truant replicas -- if their ackedServerOrder is up-to-date, that's fine,
125
125
  // restore them.
126
- let overrideTruant = false;
126
+ let allowThisTruantReplicaToSync = false;
127
127
  if (status === 'truant') {
128
128
  const latestServerOrder = await this.storage.operations.getLatestServerOrder();
129
129
  if (clientReplicaInfo.ackedServerOrder >= latestServerOrder) {
130
- overrideTruant = true;
130
+ allowThisTruantReplicaToSync = true;
131
131
  this.log('debug', 'Overriding truant reset; truant replica has up-to-date server order');
132
132
  }
133
133
  }
@@ -136,7 +136,8 @@ export class Library {
136
136
  // new, unseen replicas should reset their existing storage
137
137
  // to that of the server when joining a library.
138
138
  // truant replicas should also reset their storage.
139
- const replicaShouldReset = !!message.resyncAll || (!overrideTruant && status !== 'existing');
139
+ const replicaShouldReset = !!message.resyncAll ||
140
+ (!allowThisTruantReplicaToSync && status !== 'existing');
140
141
  // only new replicas need baselines. by definition, a rebase only
141
142
  // happens when all active replicas agree on history. every client
142
143
  // replica will generate the same baseline locally, so it
@@ -152,11 +153,9 @@ export class Library {
152
153
  // the full history of the library.
153
154
  // the definition of this field could be improved to be more explicit
154
155
  // and not rely on seemingly unrelated data.
155
- const isEmptyLibrary = clientReplicaInfo.ackedServerOrder === 0 &&
156
- ops.length === 0 &&
157
- baselines.length === 0;
156
+ const isEmptyLibrary = ops.length === 0 && baselines.length === 0;
158
157
  if (isEmptyLibrary) {
159
- this.log('info', 'Received sync from new library', replicaId);
158
+ this.log('info', 'Received sync from new library', this.id, 'replica', replicaId);
160
159
  // when initializing a new library, rewrite authz subjects to
161
160
  // the current user ID (on a purely local replica, these authz
162
161
  // subjects will be a generic "originator" constant value, because
@@ -183,9 +182,16 @@ export class Library {
183
182
  // this would mean the replica is providing a full history
184
183
  // but the library already has data. the replica should
185
184
  // reset to the server version
186
- this.log('warn', 'Detected replica', replicaId, 'is providing a full history but the library already has data. Requesting replica reset.');
185
+ // only log this warning if the replica is actually sending data
186
+ if (message.operations.length + message.baselines.length > 0) {
187
+ this.log('warn', 'Detected replica', replicaId, 'is providing a full history but the library already has data. Requesting replica reset.');
188
+ }
187
189
  overwriteReplicaData = true;
188
190
  }
191
+ else if (isEmptyLibrary && message.since === null) {
192
+ // new library, full history - this is good, we can proceed
193
+ this.log('info', 'New library and replica providing full history', this.id, replicaId);
194
+ }
189
195
  if (overwriteReplicaData) {
190
196
  this.log('info', 'Overwriting local data for replica', replicaId, 'with', baselines.length, 'baselines and', ops.length, 'operations');
191
197
  }
@@ -196,6 +202,7 @@ export class Library {
196
202
  await this.storage.baselines.insertAll(message.baselines);
197
203
  this.log('debug', 'Storing', message.baselines.length, 'baselines and', message.operations.length, 'operations');
198
204
  const newServerOrder = await this.storage.operations.insertAll(replicaId, message.operations);
205
+ // I think this may be causing issues...
199
206
  this.preemptiveUpdateServerOrder(clientReplicaInfo, newServerOrder, message.operations.length);
200
207
  await this.storage.replicas.updateAcknowledgedLogicalTime(replicaId, message.timestamp);
201
208
  // will include the new global ack
@@ -1 +1 @@
1
- {"version":3,"file":"Library.js","sourceRoot":"","sources":["../../../src/libraries/Library.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,eAAe,EAKf,SAAS,EACT,WAAW,EAKX,WAAW,EACX,sBAAsB,GAEtB,MAAM,qBAAqB,CAAC;AA8B7B,MAAM,OAAO,OAAO;IAWnB,YAAY,EACX,OAAO,EACP,MAAM,EACN,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,EACd,eAAe,EACf,WAAW,EACX,MAAM,EACN,EAAE,EACF,QAAQ,GAUR;QAYO,0BAAqB,GAAG,KAAK,EACpC,SAAiB,EACjB,SAAiB,EACjB,IAAe,EACd,EAAE;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC9B,IAAI,EAAE,WAAW;iBACjB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,IAAe,EAAE,EAAE;YAC5C,OAAO,CACN,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY;gBACtC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,gBAAgB,CAC1C,CAAC;QACH,CAAC,CAAC;QAEF,kBAAa,GAAG,KAAK,EACpB,OAAsB,EACtB,SAAiB,EACjB,IAAe,EACd,EAAE;YACH,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC/C,OAAO;YACR,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC/C,OAAO,CAAC,SAAS,EACjB,SAAS,EACT,IAAI,CACJ,CAAC;YAEF,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtB,KAAK,IAAI;oBACR,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBACrD,MAAM;gBACP,KAAK,MAAM;oBACV,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAChD,MAAM;gBACP,KAAK,KAAK;oBACT,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC/C,MAAM;gBACP,KAAK,iBAAiB;oBACrB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC1D,MAAM;gBACP;oBACC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAG,OAAe,CAAC,IAAI,CAAC,CAAC;oBACjE,MAAM;YACR,CAAC;YACD,2DAA2D;YAC3D,yDAAyD;YACzD,yDAAyD;YACzD,qCAAqC;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/D,CAAC;QACF,CAAC,CAAC;QAEM,0BAAqB,GAAG,KAAK,EACpC,SAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,GAAgB,EAChB,SAA8B,EAC7B,EAAE;;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA;gBAAE,OAAO;YAEnD,IAAI,CAAC,GAAG,CACP,MAAM,EACN,gBAAgB,EAChB,GAAG,CAAC,MAAM,EACV,YAAY,EACZ,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,mCAAI,CAAC,EACtB,WAAW,CACX,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,SAAS,CACpB;gBACC,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,GAAG;gBACf,SAAS;gBACT,SAAS;gBACT,kBAAkB,EACjB,MAAA,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,mCAAI,SAAS;aAC1D,EACD,CAAC,SAAS,CAAC,CACX,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,KAAK,EAC9B,OAAyB,EACzB,SAAiB,EACjB,IAAe,EACd,EAAE;;YACH,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAEvC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC9B,IAAI,EAAE,WAAW;iBACjB,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC,qBAAqB,CACzB,IAAI,CAAC,SAAS,EACd,SAAS,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,CAClB,CAAC;YAEF,8BAA8B;YAE9B,4DAA4D;YAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAC1D,OAAO,CAAC,SAAS,EACjB;gBACC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;aACf,CACD,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAC7D,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,CAClB,CAAC;YACF,IAAI,CAAC,2BAA2B,CAC/B,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,OAAO,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,mDAAmD;YACnD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC9B,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,eAAe,CACzB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,EAC3D,IAAI,CACJ,CAAC;YAEF,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF;;;;WAIG;QACK,gCAA2B,GAAG,KAAK,EAC1C,WAA8B,EAC9B,cAAsB,EACtB,uBAA+B,EAC9B,EAAE;YACH,IACC,cAAc,GAAG,WAAW,CAAC,gBAAgB;gBAC7C,uBAAuB,EACtB,CAAC;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CACjD,WAAW,CAAC,EAAE,EACd,cAAc,CACd,CAAC;gBACF,IAAI,CAAC,GAAG,CACP,OAAO,EACP,2CAA2C,EAC3C,WAAW,CAAC,EAAE,EACd,IAAI,EACJ,cAAc,CACd,CAAC;YACH,CAAC;QACF,CAAC,CAAC;QAEM,eAAU,GAAG,KAAK,EACzB,OAAoB,EACpB,SAAiB,EACjB,IAAe,EACd,EAAE;;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAEpC,gEAAgE;YAChE,qBAAqB;YACrB,IACC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBAC1B,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAC9D,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC9B,IAAI,EAAE,WAAW;iBACjB,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0CAA0C,EAAE,SAAS,CAAC,CAAC;gBACxE,OAAO;YACR,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,6DAA6D;gBAC7D,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1D,IAAI,CAAC,GAAG,CACP,MAAM,EACN,aAAa,SAAS,WAAW,IAAI,CAAC,MAAM,wBAAwB,iBAAiB,CAAC,gBAAgB,aAAa,MAAM,IAAI,CAC7H,CAAC;YAEF,+EAA+E;YAC/E,gBAAgB;YAChB,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzB,MAAM,iBAAiB,GACtB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;gBACtD,IAAI,iBAAiB,CAAC,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;oBAC7D,cAAc,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,GAAG,CACP,OAAO,EACP,qEAAqE,CACrE,CAAC;gBACH,CAAC;YACF,CAAC;YAED,0DAA0D;YAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAC5D,iBAAiB,CAAC,gBAAgB,CAClC,CAAC;YAEF,2DAA2D;YAC3D,gDAAgD;YAChD,mDAAmD;YACnD,MAAM,kBAAkB,GACvB,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC;YAEnE,iEAAiE;YACjE,kEAAkE;YAClE,yDAAyD;YACzD,8CAA8C;YAC9C,MAAM,SAAS,GAAG,kBAAkB;gBACnC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;YAEN,qEAAqE;YACrE,sEAAsE;YACtE,gFAAgF;YAChF,yEAAyE;YACzE,uEAAuE;YACvE,mCAAmC;YACnC,qEAAqE;YACrE,4CAA4C;YAC5C,MAAM,cAAc,GACnB,iBAAiB,CAAC,gBAAgB,KAAK,CAAC;gBACxC,GAAG,CAAC,MAAM,KAAK,CAAC;gBAChB,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;YAExB,IAAI,cAAc,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,CAAC,CAAC;gBAE9D,6DAA6D;gBAC7D,8DAA8D;gBAC9D,kEAAkE;gBAClE,kEAAkE;gBAClE,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YAED,6CAA6C;YAC7C,IAAI,oBAAoB,GAAG,kBAAkB,IAAI,CAAC,cAAc,CAAC;YAEjE,kBAAkB;YAClB,8DAA8D;YAC9D,yDAAyD;YACzD,4DAA4D;YAC5D,iEAAiE;YACjE,uDAAuD;YACvD,IAAI,cAAc,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAClE,IAAI,CAAC,GAAG,CACP,MAAM,EACN,yEAAyE,EACzE,SAAS,CACT,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC9B,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,IAAI;iBACX,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;iBAAM,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACtD,0DAA0D;gBAC1D,uDAAuD;gBACvD,8BAA8B;gBAC9B,IAAI,CAAC,GAAG,CACP,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,yFAAyF,CACzF,CAAC;gBACF,oBAAoB,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,IAAI,oBAAoB,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CACP,MAAM,EACN,oCAAoC,EACpC,SAAS,EACT,MAAM,EACN,SAAS,CAAC,MAAM,EAChB,eAAe,EACf,GAAG,CAAC,MAAM,EACV,YAAY,CACZ,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,4CAA4C;YAC5C,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC3B,8CAA8C;gBAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAE1D,IAAI,CAAC,GAAG,CACP,OAAO,EACP,SAAS,EACT,OAAO,CAAC,SAAS,CAAC,MAAM,EACxB,eAAe,EACf,OAAO,CAAC,UAAU,CAAC,MAAM,EACzB,YAAY,CACZ,CAAC;gBACF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAC7D,SAAS,EACT,OAAO,CAAC,UAAU,CAClB,CAAC;gBACF,IAAI,CAAC,2BAA2B,CAC/B,iBAAiB,EACjB,cAAc,EACd,OAAO,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CACxD,SAAS,EACT,OAAO,CAAC,SAAS,CACjB,CAAC;gBACF,kCAAkC;gBAClC,IAAI,CAAC,qBAAqB,CACzB,IAAI,CAAC,SAAS,EACd,SAAS,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU;gBAClB,6DAA6D;gBAC7D,4DAA4D;gBAC5D,uDAAuD;gBACvD,iCAAiC;gBACjC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAC9C,CAAC;gBACF,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC3D,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAChB,SAAS,EACT,IAAI,EACJ,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,SAAS,CACjB,CAAC;gBACH,CAAC;YACF,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,CAAC,CAAC;YACjE,CAAC;YAED,sEAAsE;YACtE,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM;gBAClC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW;gBACjC,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,YAAY,GACjB,gBAAgB,KAAK,SAAS;gBAC7B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;gBACvC,CAAC,CAAC,SAAS,CAAC;YAEd,oBAAoB;YAEpB,IAAI,CAAC,GAAG,CACP,MAAM,EACN,4BAA4B,EAC5B,GAAG,CAAC,MAAM,EACV,gBAAgB,EAChB,SAAS,CAAC,MAAM,EAChB,WAAW,EACX,eAAe,EACf,SAAS,CACT,CAAC;YAEF,uDAAuD;YACvD,6CAA6C;YAE7C,IAAI,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC9B,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;oBAC3C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;oBAC/C,kBAAkB,EACjB,MAAA,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,mCAAI,SAAS;oBAC1D,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACjC,0EAA0E;oBAC1E,oEAAoE;oBACpE,8BAA8B;oBAC9B,kBAAkB,EAAE,oBAAoB;oBACxC,cAAc,EAAE,OAAO,CAAC,SAAS;oBACjC,YAAY;iBACZ,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACX,CAAC;QACF,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,WAAmB,EAAsB,EAAE;YACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC,CAAC;QAEM,cAAS,GAAG,KAAK,EACxB,OAAmB,EACnB,SAAiB,EACjB,IAAe,EACd,EAAE;YACH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrD,CAAC;gBACF,IAAI,CAAC,GAAG,CACP,OAAO,EACP,UAAU,EACV,OAAO,CAAC,SAAS,EACjB,OAAO,EACP,IAAI,CAAC,MAAM,EACX,GAAG,EACH,YAAY,EACZ,YAAY,CACZ,CAAC;gBACF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;oBACtC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAClD,OAAO;gBACR,CAAC;gBAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBACpC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CACjD,SAAS,EACT,YAAY,CACZ,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAC/C,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,CACjB,CAAC;gBACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC7D,IAAI,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,YAAY;wBAClB,SAAS,EAAE,SAAS;qBACpB,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAEM,oBAAe,GAAG,KAAK,EAC9B,SAAiB,EACjB,SAAiB,EACjB,IAAe,EACf,mBAA6B,EAAE,EAC9B,EAAE;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CACxD,SAAS,EACT,SAAS,CACT,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAChE,IAAI,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,SAAS,CACpB;oBACC,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,YAAY;iBACvB,EACD,gBAAgB,CAChB,CAAC;YACH,CAAC;QACF,CAAC,CAAC;QAEM,yBAAoB,GAA0B,IAAI,CAAC;QACnD,kBAAa,GAAG,GAAG,EAAE;YAC5B,IAAI,IAAI,CAAC,eAAe;gBAAE,OAAO;YAEjC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAChC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACF,CAAC,CAAC;QAEM,WAAM,GAAG,KAAK,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,eAAe;gBAAE,OAAO;YAEjC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;YAE7C,8DAA8D;YAC9D,uEAAuE;YACvE,8EAA8E;YAC9E,iEAAiE;YACjE,oEAAoE;YACpE,sCAAsC;YACtC,EAAE;YACF,4DAA4D;YAC5D,+DAA+D;YAC/D,4DAA4D;YAC5D,kEAAkE;YAClE,8CAA8C;YAE9C,qDAAqD;YACrD,iEAAiE;YACjE,QAAQ;YACR,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAClB,CAAC;YACF,MAAM,SAAS,GACd,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAC5D,MAAM,iBAAiB,GACtB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,EAAE,CAAC;YAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;gBACpD,OAAO;YACR,CAAC;YAED,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;gBAC7D,OAAO;YACR,CAAC;YAED,2CAA2C;YAC3C,MAAM,GAAG,GACR,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YAEvE,MAAM,UAAU,GAAsC,EAAE,CAAC;YACzD,+DAA+D;YAC/D,gEAAgE;YAChE,4BAA4B;YAC5B,MAAM,SAAS,GAA4B,EAAE,CAAC;YAE9C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACtB,MAAM,iBAAiB,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,iBAAiB,EAAE,CAAC;oBAC7C,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9C,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAC1B,CAAC;YACF,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,KAAK,EAAO,CAAC;YACrC,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAC3C,UAAU,EACV,GAAG,EACH,WAAW,CACX,CAAC;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACrB,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,SAAS;aACpB,CAAC,CAAC;YAEH,wBAAwB;YACxB,MAAM,OAAO,CAAC,GAAG,CAChB,WAAW;iBACT,MAAM,CAAC,SAAS,CAAC;iBACjB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACnE,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,CACzB,CAAmB,EACnB,SAAiB,EACjB,IAAe,EACd,EAAE;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC9B,IAAI,EAAE,oBAAoB;aAC1B,CAAC,CAAC;QACJ,CAAC,CAAC;QAEM,yBAAoB,GAAG,KAAK,EACnC,OAA8B,EAC9B,SAAiB,EACjB,IAAe,EACd,EAAE;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;gBAC/D,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,EAAE,EAAE,IAAI,CAAC,MAAM;aACf,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,CACpB;gBACC,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO;aACjB;YACD,6DAA6D;YAC7D,EAAE,CACF,CAAC;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,KAAK,EAAE,SAAiB,EAAE,MAAc,EAAE,EAAE;YACpE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sCAAsC,EAAE,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACrB,IAAI,EAAE,kBAAkB;gBACxB,SAAS;gBACT,MAAM;aACN,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;gBAChD,yDAAyD;gBACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;oBACzD,OAAO;gBACR,CAAC;gBACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;gBACzE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;wBACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;oBACrE,CAAC;oBACD,IAAI,CAAC,GAAG,CACP,MAAM,EACN,iBAAiB,EACjB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7C,CAAC;oBACF,MAAM,OAAO,CAAC,GAAG,CAChB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAiB,EAAE;;wBACnD,IAAI,CAAC;4BACJ,MAAM,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAC;gCAC9B,QAAQ,EAAE,QAAQ,CAAC,IAAI;gCACvB,EAAE,EAAE,QAAQ,CAAC,MAAM;gCACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;6BACnB,CAAC,CAAA,CAAC;4BACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACzD,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACZ,IAAI,CAAC,GAAG,CACP,OAAO,EACP,uBAAuB,EACvB,QAAQ,CAAC,MAAM,EACf,iDAAiD,EACjD,CAAC,CACD,CAAC;wBACH,CAAC;oBACF,CAAC,CAAC,CACF,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAEF,YAAO,GAAG,KAAK,IAAI,EAAE;;YACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;gBACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE;aAClC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC1D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CACP,MAAM,EACN,YAAY,QAAQ,CAAC,MAAM,QAAQ,EACnC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC;gBACF,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACjC,MAAM,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAC;wBAC9B,QAAQ,EAAE,QAAQ,CAAC,IAAI;wBACvB,EAAE,EAAE,QAAQ,CAAC,MAAM;wBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;qBACnB,CAAC,CAAA,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YAC7C,CAAC;QACF,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;YAClB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,YAAO,GAAG,KAAK,IAAiC,EAAE;;YACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;gBAAC,OAAA,CAAC;oBACxC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,MAAM,EAAE,CAAC,CAAC,QAAQ;oBAClB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;oBACpC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;oBACpC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EACL,CAAC,CAAC,CAAC,CAAC,qBAAqB;wBACzB,CAAC,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;oBAC7D,OAAO,EAAE,MAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAAE,OAAO,mCAAI,IAAI;iBACvD,CAAC,CAAA;aAAA,CAAC,CAAC;YAEJ,MAAM,IAAI,GAAG;gBACZ,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,QAAQ;gBACR,iBAAiB,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE;gBACvE,eAAe,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;gBACzD,cAAc,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACvD,SAAS,EAAE,MAAA,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,mCAAI,IAAI;aAC/D,CAAC;YAEF,IACC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAC1B,IAAI,CAAC,eAAe,KAAK,CAAC;gBAC1B,IAAI,CAAC,cAAc,KAAK,CAAC,EACxB,CAAC;gBACF,OAAO,IAAI,CAAC;YACb,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,cAAS,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,gBAAW,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;YACzC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,wBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE;YACrC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,gBAAW,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACb,uCACI,OAAO,KACV,SAAS,EAAE,IAAI,CAAC,EAAE,IACjB;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC,CAAC;QAEF,gBAAW,GAAsC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC/D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEM,sBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;;YACjD,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;aACnC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,mCAAI,SAAS,EAAE,GAAG,CAAC,CAAC;YACvE,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC;QAEM,kBAAa,GAAG,KAAK,EAAE,GAAW,EAAgB,EAAE;YAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,OAAO,CAAC,GAAG,CACjB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE;oBAChC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACpC,CAAC;yBAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC;oBACb,CAAC;gBACF,CAAC,CAAC,CACF,CAAC;YACH,CAAC;iBAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,QAAQ,qBAAQ,QAAQ,CAAE,CAAC;gBACjC,MAAM,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACnD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACpD,CAAC;yBAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClD,CAAC;gBACF,CAAC,CAAC,CACF,CAAC;gBACF,OAAO,QAAQ,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACP,OAAO,QAAQ,CAAC;YACjB,CAAC;QACF,CAAC,CAAC;QAEM,gBAAW,GAAG,KAAK,EAC1B,MAAc,EACuC,EAAE;;YACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,GAAG,GACR,MAAA,CAAC,MAAM,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAC;oBAC/B,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;iBACf,CAAC,CAAA,CAAC,mCAAI,IAAI,CAAC;gBAEb,OAAO;oBACN,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG;iBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC,CAAC;QAEF,4EAA4E;QAC5E,qBAAqB;QACb,yBAAoB,GAAG,CAC9B,SAAmC,EACd,EAAE;YACvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,mBAAmB;gBACnB,OAAO,QAAQ,CAAC,SAAS,CAAC;YAC3B,CAAC;YACD,OAAO,SAA0C,CAAC;QACnD,CAAC,CAAC;QAEF,4EAA4E;QAC5E,qBAAqB;QACb,0BAAqB,GAAG,CAC/B,UAA6B,EACf,EAAE;YAChB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACpC,mBAAmB;gBACnB,OAAO,SAAS,CAAC,SAAS,CAAC;gBAC3B,mBAAmB;gBACnB,OAAO,SAAS,CAAC,SAAS,CAAC;gBAC3B,mBAAmB;gBACnB,OAAO,SAAS,CAAC,WAAW,CAAC;YAC9B,CAAC;YACD,OAAO,UAAoC,CAAC;QAC7C,CAAC,CAAC;QAv1BD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACtD,CAAC;CA+0BD"}
1
+ {"version":3,"file":"Library.js","sourceRoot":"","sources":["../../../src/libraries/Library.ts"],"names":[],"mappings":"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"}
@@ -384,5 +384,40 @@ describe('Library', () => {
384
384
  });
385
385
  });
386
386
  });
387
+ it('should fully destroy itself', async () => {
388
+ const sender = {
389
+ broadcast: vi.fn(),
390
+ respond: vi.fn(),
391
+ };
392
+ const library = new Library(Object.assign(Object.assign({}, (await baseOptions())), { sender }));
393
+ const opMessage = {
394
+ type: 'op',
395
+ replicaId: 'replica-1',
396
+ operations: [
397
+ {
398
+ oid: 'notes/1',
399
+ timestamp: now(),
400
+ data: {
401
+ op: 'set',
402
+ name: 'title',
403
+ value: 'My Note!',
404
+ },
405
+ },
406
+ ],
407
+ timestamp: now(),
408
+ };
409
+ await library.handleMessage(opMessage, 'clientKey-1', {
410
+ libraryId: 'library-1',
411
+ syncEndpoint: 'http://localhost:3000/sync',
412
+ token: 'fake',
413
+ type: ReplicaType.Realtime,
414
+ userId: 'user-1',
415
+ });
416
+ let info = await library.getInfo();
417
+ expect(info === null || info === void 0 ? void 0 : info.operationsCount).toBe(1);
418
+ await library.destroy();
419
+ info = await library.getInfo();
420
+ expect(info).toBe(null);
421
+ });
387
422
  });
388
423
  //# sourceMappingURL=Library.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Library.test.js","sourceRoot":"","sources":["../../../src/libraries/Library.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Library.test.js","sourceRoot":"","sources":["../../../src/libraries/Library.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,WAAW,GAEX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAA+B;IACpE,GAAG,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7B,OAAO;YACN,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,OAAO;SACb,CAAC;IACH,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IAChC,EAAE,EAAE,WAAW;IACf,QAAQ;IACR,OAAO,EAAE,MAAM,eAAe,CAAC;QAC9B,kBAAkB,EAAE,UAAU;QAC9B,wBAAwB,EAAE,CAAC;QAC3B,qBAAqB,EAAE,EAAE,GAAG,EAAE;KAC9B,CAAC,CAAC,WAAW,CAAC;IACf,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACtB,GAAG,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;YAC7B,OAAO;gBACN,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,OAAO;aACb,CAAC;QACH,CAAC;KACD,CAAC;CACF,CAAC,CAAC;AAEH,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;AAQvC,SAAS,iBAAiB,CAAC,EAAU;IACpC,OAAO;QACN,GAAG,EAAE,aAAa,EAAE,EAAE;QACtB,SAAS,EAAE,WAAW,EAAE,EAAE;QAC1B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACV,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,4BAA4B;YAC1C,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,MAAM,EAAE,QAAQ,EAAE,EAAE;SACpB;KACD,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,SAAS,+BAA+B,CAAC,OAAoB;IAC5D,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,OAAO,CAAC;YACb,KAAK,WAAW;gBACf,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM;QACR,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACxB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,MAAM,GAAkB;gBAC7B,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAS,EAAE,OAAsB,EAAE,EAAE,GAAE,CAAC,CAAC;aACzD,CAAC;YAEF,MAAM,SAAS,GAAc;gBAC5B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,MAAM,QAAQ,GAAoB;gBACjC;oBACC,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE;wBACV;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,QAAQ,EAAE;gCACT,KAAK,EAAE,SAAS;gCAChB,OAAO,EAAE,kBAAkB;6BAC3B;yBACD;qBACD;oBACD,UAAU,EAAE;wBACX;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,UAAU;6BACjB;yBACD;wBACD;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,YAAY;gCAChB,KAAK,EAAE;oCACN,KAAK,EAAE,cAAc;oCACrB,OAAO,EAAE,uBAAuB;iCAChC;6BACD;yBACD;qBACD;oBACD,SAAS,EAAE,WAAW;oBACtB,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,GAAG,EAAE;iBAChB;aACD,CAAC;YAEF,uEAAuE;YACvE,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CACvE,CAAC;YAEF,6EAA6E;YAC7E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC5C;gBACC,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE;oBACV;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,YAAY;wBACvB,QAAQ,EAAE;4BACT,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE,kBAAkB;yBAC3B;qBACD;iBACD;gBACD,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,YAAY;wBACvB,IAAI,EAAE;4BACL,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,UAAU;yBACjB;qBACD;oBACD;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,YAAY;wBACvB,IAAI,EAAE;4BACL,EAAE,EAAE,YAAY;4BAChB,KAAK,EAAE;gCACN,KAAK,EAAE,cAAc;gCACrB,OAAO,EAAE,uBAAuB;6BAChC;yBACD;qBACD;iBACD;gBACD,SAAS,EAAE,WAAW;gBACtB,kBAAkB,EAAE,SAAS;aAC7B,EACD,CAAC,aAAa,CAAC,CACf,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC1D,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,SAAS;gBACvB,cAAc,EAAE,YAAY;gBAC5B,kBAAkB,EAAE,SAAS;gBAC7B,kBAAkB,EAAE,KAAK;gBACzB,YAAY,EAAE,EAAE;aAChB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YACnG,mFAAmF;YACnF,kFAAkF;YAClF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAkB;gBAC7B,SAAS,EAAE,CAAC,OAAsB,EAAE,QAAmB,EAAE,EAAE;oBAC1D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAE,CAAC;4BACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAChC,CAAC;oBACF,CAAC,CAAC,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,CAAC,SAAiB,EAAE,OAAsB,EAAE,EAAE;oBACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;oBAC1D,IAAI,OAAO,EAAE,CAAC;wBACb,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAChC,CAAC;gBACF,CAAC;aACD,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,uDAAuD;YACvD,MAAM,YAAY,GAAkB;gBACnC,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE;oBACV;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,GAAG,EAAE;wBAChB,QAAQ,EAAE;4BACT,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE,kBAAkB;yBAC3B;qBACD;iBACD;gBACD,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,GAAG,EAAE;wBAChB,IAAI,EAAE;4BACL,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,UAAU;yBACjB;qBACD;iBACD;gBACD,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;aAChB,CAAC;YACF,MAAM,OAAO,CAAC,aAAa,CAC1B,YAAY,EACZ,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,SAAS,CAClB,CAAC;YAEF,6DAA6D;YAC7D,MAAM,YAAY,GAAkB;gBACnC,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;gBAChB,SAAS,EAAE,IAAI;aACf,CAAC;YACF,MAAM,UAAU,GAAkB;gBACjC,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,GAAG,EAAE;wBAChB,IAAI,EAAE;4BACL,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,kBAAkB;yBACzB;qBACD;iBACD;gBACD,SAAS,EAAE,GAAG,EAAE;aAChB,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjB,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC;gBACrE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC;aACnE,CAAC,CAAC;YAEH,8CAA8C;YAC9C,6EAA6E;YAC7E,mCAAmC;YACnC,6EAA6E;YAC7E,6DAA6D;YAC7D,EAAE;YACF,wDAAwD;YACxD,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC;gBACxC,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,UAAU;iBACjB;aACD,CAAC,CAAC;YACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC;gBACxC,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,kBAAkB;iBACzB;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,MAAM,GAAG;gBACd,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;aAChB,CAAC;YAEF,MAAM,SAAS,GAAc;gBAC5B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,YAAY;gBAC9B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,MAAM,QAAQ,GAAoB;gBACjC;oBACC,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE;wBACV;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,QAAQ,EAAE;gCACT,KAAK,EAAE,SAAS;gCAChB,OAAO,EAAE,kBAAkB;6BAC3B;yBACD;qBACD;oBACD,UAAU,EAAE;wBACX;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,UAAU;6BACjB;yBACD;wBACD;4BACC,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,GAAG,EAAE;4BAChB,IAAI,EAAE;gCACL,EAAE,EAAE,YAAY;gCAChB,KAAK,EAAE;oCACN,KAAK,EAAE,cAAc;oCACrB,OAAO,EAAE,uBAAuB;iCAChC;6BACD;yBACD;qBACD;oBACD,SAAS,EAAE,WAAW;oBACtB,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,GAAG,EAAE;iBAChB;aACD,CAAC;YAEF,uEAAuE;YACvE,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CACvE,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC1D,IAAI,EAAE,WAAW;aACjB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;YAClH,MAAM,MAAM,GAAG;gBACd,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAS,EAAE,OAAsB,EAAE,EAAE,GAAE,CAAC,CAAC;aACzD,CAAC;YAEF,MAAM,SAAS,GAAc;gBAC5B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;YAEH,uEAAuE;YACvE,MAAM,OAAO,CAAC,aAAa,CAC1B;gBACC,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;aAChB,EACD,aAAa,EACb,SAAS,CACT,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAE3B,wEAAwE;YACxE,MAAM,UAAU,GAAc;gBAC7B,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,4BAA4B;gBAC1C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aAChB,CAAC;YAEF,MAAM,OAAO,GAAkB;gBAC9B,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,WAAW;gBACtB,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,EAAE;aAChB,CAAC;YAEF,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;YAEhE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC1D,IAAI,EAAE,WAAW;aACjB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG;YACd,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;YAClB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;SAChB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,OAAO,iCACvB,CAAC,MAAM,WAAW,EAAE,CAAC,KACxB,MAAM,IACL,CAAC;QAEH,MAAM,SAAS,GAAkB;YAChC,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE;gBACX;oBACC,GAAG,EAAE,SAAS;oBACd,SAAS,EAAE,GAAG,EAAE;oBAChB,IAAI,EAAE;wBACL,EAAE,EAAE,KAAK;wBACT,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,UAAU;qBACjB;iBACD;aACD;YACD,SAAS,EAAE,GAAG,EAAE;SAChB,CAAC;QACF,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE;YACrD,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,4BAA4B;YAC1C,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,MAAM,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -19,7 +19,7 @@ import { SqlOperations } from './SqlOperations.js';
19
19
  import { SqlReplicas } from './SqlReplicas.js';
20
20
  export const sqlShardStorage = ({ databasesDirectory, disableWal, closeTimeout, fileDeleteExpirationDays = defaultFileExpirationDays, replicaTruancyMinutes = defaultReplicaTruancyMinutes, log, }) => {
21
21
  if (databasesDirectory !== ':memory:' && !existsSync(databasesDirectory)) {
22
- mkdirSync(databasesDirectory);
22
+ mkdirSync(databasesDirectory, { recursive: true });
23
23
  console.info(`Created databases directory: ${databasesDirectory}`);
24
24
  }
25
25
  const dbs = new Databases({
@@ -1 +1 @@
1
- {"version":3,"file":"sqlShardStorage.js","sourceRoot":"","sources":["../../../../src/storage/sqlShard/sqlShardStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EACN,yBAAyB,EACzB,4BAA4B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,wBAAwB,GAAG,yBAAyB,EACpD,qBAAqB,GAAG,4BAA4B,EACpD,GAAG,GAOc,EAAkB,EAAE;IACrC,IAAI,kBAAkB,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC1E,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,gCAAgC,kBAAkB,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;QACzB,SAAS,EAAE,kBAAkB;QAC7B,UAAU;QACV,YAAY;QACZ,GAAG;KACH,CAAC,CAAC;IACH,OAAO,KAAK,EAAE,SAAS,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE;YAC9B,wBAAwB;YACxB,qBAAqB;YACrB,SAAS;SACT,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,eAAe;IAO3B,IAAI,IAAI;QACP,OAAO,uBAAA,IAAI,6BAAM,CAAC;IACnB,CAAC;IAED,YACS,EAAkB,EAC1B,OAAyD;QADjD,OAAE,GAAF,EAAE,CAAgB;QAN3B,gCAAQ,IAAI,EAAC;QAuBb,UAAK,GAAG,KAAK,IAAI,EAAE;YAClB,uBAAA,IAAI,yBAAS,KAAK,MAAA,CAAC;YACnB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC;QAjBD,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAC9B,EAAE,EACF,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,qBAAqB,CAC7B,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CACtC,EAAE,EACF,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,wBAAwB,CAChC,CAAC;IACH,CAAC;CAMD"}
1
+ {"version":3,"file":"sqlShardStorage.js","sourceRoot":"","sources":["../../../../src/storage/sqlShard/sqlShardStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EACN,yBAAyB,EACzB,4BAA4B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,wBAAwB,GAAG,yBAAyB,EACpD,qBAAqB,GAAG,4BAA4B,EACpD,GAAG,GAOc,EAAkB,EAAE;IACrC,IAAI,kBAAkB,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC1E,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,gCAAgC,kBAAkB,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;QACzB,SAAS,EAAE,kBAAkB;QAC7B,UAAU;QACV,YAAY;QACZ,GAAG;KACH,CAAC,CAAC;IACH,OAAO,KAAK,EAAE,SAAS,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE;YAC9B,wBAAwB;YACxB,qBAAqB;YACrB,SAAS;SACT,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,eAAe;IAO3B,IAAI,IAAI;QACP,OAAO,uBAAA,IAAI,6BAAM,CAAC;IACnB,CAAC;IAED,YACS,EAAkB,EAC1B,OAAyD;QADjD,OAAE,GAAF,EAAE,CAAgB;QAN3B,gCAAQ,IAAI,EAAC;QAuBb,UAAK,GAAG,KAAK,IAAI,EAAE;YAClB,uBAAA,IAAI,yBAAS,KAAK,MAAA,CAAC;YACnB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC;QAjBD,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAC9B,EAAE,EACF,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,qBAAqB,CAC7B,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CACtC,EAAE,EACF,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,wBAAwB,CAChC,CAAC;IACH,CAAC;CAMD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdant-web/server",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "access": "public",
5
5
  "type": "module",
6
6
  "bin": {
@@ -456,4 +456,48 @@ describe('Library', () => {
456
456
  });
457
457
  });
458
458
  });
459
+
460
+ it('should fully destroy itself', async () => {
461
+ const sender = {
462
+ broadcast: vi.fn(),
463
+ respond: vi.fn(),
464
+ };
465
+
466
+ const library = new Library({
467
+ ...(await baseOptions()),
468
+ sender,
469
+ });
470
+
471
+ const opMessage: ClientMessage = {
472
+ type: 'op',
473
+ replicaId: 'replica-1',
474
+ operations: [
475
+ {
476
+ oid: 'notes/1',
477
+ timestamp: now(),
478
+ data: {
479
+ op: 'set',
480
+ name: 'title',
481
+ value: 'My Note!',
482
+ },
483
+ },
484
+ ],
485
+ timestamp: now(),
486
+ };
487
+ await library.handleMessage(opMessage, 'clientKey-1', {
488
+ libraryId: 'library-1',
489
+ syncEndpoint: 'http://localhost:3000/sync',
490
+ token: 'fake',
491
+ type: ReplicaType.Realtime,
492
+ userId: 'user-1',
493
+ });
494
+
495
+ let info = await library.getInfo();
496
+ expect(info?.operationsCount).toBe(1);
497
+
498
+ await library.destroy();
499
+
500
+ info = await library.getInfo();
501
+ expect(info).toBe(null);
502
+ });
459
503
  });
@@ -50,7 +50,7 @@ export class Library {
50
50
  private disableRebasing: boolean;
51
51
  private fileStorage;
52
52
  private events;
53
- private id: string;
53
+ readonly id: string;
54
54
  private presence: Presence;
55
55
 
56
56
  private log: Logger;
@@ -265,6 +265,7 @@ export class Library {
265
265
  replicaInfo.id,
266
266
  'to',
267
267
  newServerOrder,
268
+ `(+${insertedOperationsCount} ops, ${replicaInfo.ackedServerOrder} -> ${newServerOrder})`,
268
269
  );
269
270
  }
270
271
  };
@@ -304,12 +305,12 @@ export class Library {
304
305
 
305
306
  // for truant replicas -- if their ackedServerOrder is up-to-date, that's fine,
306
307
  // restore them.
307
- let overrideTruant = false;
308
+ let allowThisTruantReplicaToSync = false;
308
309
  if (status === 'truant') {
309
310
  const latestServerOrder =
310
311
  await this.storage.operations.getLatestServerOrder();
311
312
  if (clientReplicaInfo.ackedServerOrder >= latestServerOrder) {
312
- overrideTruant = true;
313
+ allowThisTruantReplicaToSync = true;
313
314
  this.log(
314
315
  'debug',
315
316
  'Overriding truant reset; truant replica has up-to-date server order',
@@ -326,7 +327,8 @@ export class Library {
326
327
  // to that of the server when joining a library.
327
328
  // truant replicas should also reset their storage.
328
329
  const replicaShouldReset =
329
- !!message.resyncAll || (!overrideTruant && status !== 'existing');
330
+ !!message.resyncAll ||
331
+ (!allowThisTruantReplicaToSync && status !== 'existing');
330
332
 
331
333
  // only new replicas need baselines. by definition, a rebase only
332
334
  // happens when all active replicas agree on history. every client
@@ -344,13 +346,16 @@ export class Library {
344
346
  // the full history of the library.
345
347
  // the definition of this field could be improved to be more explicit
346
348
  // and not rely on seemingly unrelated data.
347
- const isEmptyLibrary =
348
- clientReplicaInfo.ackedServerOrder === 0 &&
349
- ops.length === 0 &&
350
- baselines.length === 0;
349
+ const isEmptyLibrary = ops.length === 0 && baselines.length === 0;
351
350
 
352
351
  if (isEmptyLibrary) {
353
- this.log('info', 'Received sync from new library', replicaId);
352
+ this.log(
353
+ 'info',
354
+ 'Received sync from new library',
355
+ this.id,
356
+ 'replica',
357
+ replicaId,
358
+ );
354
359
 
355
360
  // when initializing a new library, rewrite authz subjects to
356
361
  // the current user ID (on a purely local replica, these authz
@@ -383,13 +388,25 @@ export class Library {
383
388
  // this would mean the replica is providing a full history
384
389
  // but the library already has data. the replica should
385
390
  // reset to the server version
391
+
392
+ // only log this warning if the replica is actually sending data
393
+ if (message.operations.length + message.baselines.length > 0) {
394
+ this.log(
395
+ 'warn',
396
+ 'Detected replica',
397
+ replicaId,
398
+ 'is providing a full history but the library already has data. Requesting replica reset.',
399
+ );
400
+ }
401
+ overwriteReplicaData = true;
402
+ } else if (isEmptyLibrary && message.since === null) {
403
+ // new library, full history - this is good, we can proceed
386
404
  this.log(
387
- 'warn',
388
- 'Detected replica',
405
+ 'info',
406
+ 'New library and replica providing full history',
407
+ this.id,
389
408
  replicaId,
390
- 'is providing a full history but the library already has data. Requesting replica reset.',
391
409
  );
392
- overwriteReplicaData = true;
393
410
  }
394
411
 
395
412
  if (overwriteReplicaData) {
@@ -423,6 +440,7 @@ export class Library {
423
440
  replicaId,
424
441
  message.operations,
425
442
  );
443
+ // I think this may be causing issues...
426
444
  this.preemptiveUpdateServerOrder(
427
445
  clientReplicaInfo,
428
446
  newServerOrder,
@@ -27,7 +27,7 @@ export const sqlShardStorage = ({
27
27
  log?: Logger;
28
28
  } & StorageOptions): StorageFactory => {
29
29
  if (databasesDirectory !== ':memory:' && !existsSync(databasesDirectory)) {
30
- mkdirSync(databasesDirectory);
30
+ mkdirSync(databasesDirectory, { recursive: true });
31
31
  console.info(`Created databases directory: ${databasesDirectory}`);
32
32
  }
33
33
  const dbs = new Databases({