@nopeek/chat 0.2.0 → 0.2.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.
package/dist/index.d.ts CHANGED
@@ -151,6 +151,11 @@ export declare class NoPeek extends Emitter {
151
151
  readonly channels: Channels;
152
152
  readonly deriveChannelKey?: (channelId: string) => Promise<CryptoKey>;
153
153
  static connect(opts: ConnectOptions): Promise<NoPeek>;
154
+ /** Bring a deferred (autoConnectWs:false) client online in the background:
155
+ * publish key packages and open the WebSocket. Idempotent — a no-op if the
156
+ * socket is already up. This is what keeps cold-start instant: connect()
157
+ * returns from local storage alone, then the app calls bringOnline(). */
158
+ bringOnline(): Promise<void>;
154
159
  private constructor();
155
160
  /** Replace the set of blocked user ids (the app owns the authoritative list). */
156
161
  setBlockedUsers(ids: Iterable<string>): void;
@@ -166,6 +171,8 @@ export declare class NoPeek extends Emitter {
166
171
  /** Whether this client has a server-registered device identity yet. False only
167
172
  * during a deferred connect, before restore()/registerDevice() completes. */
168
173
  get deviceRegistered(): boolean;
174
+ /** This device's public ECDH key (JWK) — what welcomes are wrapped to. */
175
+ get devicePublicKeyJwk(): JsonWebKey;
169
176
  /**
170
177
  * Complete a deferred connect by registering a brand-new device. Call this
171
178
  * only when the user has NO restorable backup (genuine new user/device) —
@@ -201,6 +208,19 @@ export declare class NoPeek extends Emitter {
201
208
  private handleWelcome;
202
209
  /** Fetch any welcomes we missed while offline. */
203
210
  syncChannelKey(channelId: string, mlsGroupId: string): Promise<boolean>;
211
+ /** Channels already checked for a self-addressed welcome this session. */
212
+ private selfWelcomeChecked;
213
+ /**
214
+ * Self-heal for channels created before establishKeys wrapped the welcome to
215
+ * the creator's OWN device: if this device HOLDS the channel key but no
216
+ * welcome in the group addresses this deviceId, post one (wrapped to
217
+ * ourselves). A future device that restores this identity from the encrypted
218
+ * backup — or an already-restored device sharing this deviceId — can then
219
+ * pull the key via syncChannelKey even when the backup's channel-key map is
220
+ * stale. Runs at most once per channel per device (persisted mark);
221
+ * best-effort and safe to fire-and-forget.
222
+ */
223
+ ensureSelfWelcome(channelId: string, mlsGroupId: string | null | undefined): Promise<void>;
204
224
  /** In-flight key recoveries, deduped per channel so a burst of undecryptable
205
225
  * frames triggers a single welcome sync rather than one fetch per message. */
206
226
  private keyRecovery;
@@ -233,7 +253,24 @@ export declare class NoPeek extends Emitter {
233
253
  * password was reset). Accepts a string (treated as a recovery code, legacy)
234
254
  * or `{ password?, recoveryCode? }`.
235
255
  */
236
- backup(secrets: BackupSecrets | string): Promise<string>;
256
+ backup(secrets?: BackupSecrets | string): Promise<string>;
257
+ /** Where the current backup envelope's raw data key is cached on this device.
258
+ * Sensitivity-equivalent to the channel keys (`nopeek:<user>:channelKeys`)
259
+ * already persisted in the same store — it decrypts a payload containing
260
+ * exactly those keys plus the device identity, both stored beside it. */
261
+ private backupDkStoreKey;
262
+ /** Whether this device holds a cached backup data key — i.e. backup() can
263
+ * refresh the envelope with NO password/recovery code in memory. */
264
+ hasCachedBackupKey(): Promise<boolean>;
265
+ /**
266
+ * Pull channel keys this device is missing from the newest backup, using the
267
+ * locally cached data key (no password/recovery code needed). This is the
268
+ * flip side of the secret-less refresh: a device that restored BEFORE some
269
+ * key entered the backup can pick it up later, once any key-holding device
270
+ * has refreshed the envelope. Emits `channelKeyReceived` per new channel so
271
+ * open chats re-decrypt in place. Returns how many keys were added.
272
+ */
273
+ refreshKeysFromBackup(): Promise<number>;
237
274
  /**
238
275
  * Restore chats on a NEW device from the latest encrypted backup. Pass the
239
276
  * account password (preferred) and/or the recovery code — whichever unlocks
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgCA,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;+EAC2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAuBD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+EAA+E;IAC/E,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gDAAgD;IAChD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0EAA0E;IAC1E,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpD,oDAAoD;IACpD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAKD,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;AAE3C,cAAM,OAAO;IACX,OAAO,CAAC,SAAS,CAAwD;IACzE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI;IAKhD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAG/B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;CAGvC;AAED,qBAAa,MAAO,SAAQ,OAAO;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAoF;IACnG,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,iBAAiB,CAA6B;IACtD;8EAC0E;IAC1E,OAAO,CAAC,aAAa,CAAkF;IACvG,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB;;mEAE+D;IAC/D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,iBAAiB,CAAU;IACnC;2EACuE;IACvE,OAAO,CAAC,sBAAsB,CAAuB;IACrD;;;;sEAIkE;IAClE,OAAO,CAAC,cAAc,CAAqB;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;WAEzD,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAY3D,OAAO;IAgBP,iFAAiF;IACjF,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAI5C,sEAAsE;IACtE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAIrD;iFAC6E;IACpE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAStD,wFAAwF;IAClF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;YAqBlE,YAAY;IAuB1B;kFAC8E;IAC9E,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC,iFAAiF;YACnE,iBAAiB;YAUjB,aAAa;YAIb,kBAAkB;YAMlB,iBAAiB;IAqB/B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB1B;;qFAEiF;IACjF,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,QAAQ;IAOhB;;uEAEmE;IACnE,OAAO;IAYP;;qFAEiF;IACjF,eAAe,CAAC,KAAK,EAAE,MAAM;IAI7B,wDAAwD;IACxD,MAAM;IASN,KAAK;IAML,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAW7C,WAAW;YA0HX,aAAa;IAmB3B,kDAAkD;IAC5C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe7E;mFAC+E;IAC/E,OAAO,CAAC,WAAW,CAAuC;IAE1D;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,uFAAuF;IACvF,IAAI,eAAe,IAAI,MAAM,CAE5B;IAID,+EAA+E;IACzE,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAepE;;;;;;OAMG;IACH;;;;;;;;OAQG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiG9D;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuD/D,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAA0E;IAC3F;qFACiF;IACjF,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,iFAAiF;YACnE,YAAY;IAa1B;;;;;;;;;;;;;OAaG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAmCzC;;;;;;;;OAQG;YACW,mBAAmB;IA8CjC,iEAAiE;IAC3D,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnC,uEAAuE;IACjE,eAAe,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAUrG,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAQ;IAEhD,oEAAoE;IAC9D,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAU7D,2EAA2E;IAC3E,WAAW,CAAC,MAAM,EAAE,MAAM;gBAzzBwB,QAAQ,GAAG,SAAS;oBAAc,MAAM,GAAG,IAAI;;IA4zBjG,QAAQ,CAAC,MAAM,EAAE,MAAM;IAKvB,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,cAAc;IAMtB,sEAAsE;IACtE,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IAGxE,6EAA6E;IAC7E,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAOtF,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAK3C,kFAAkF;IAClF,OAAO,CAAC,KAAK,CAA0D;IACvE,OAAO,CAAC,UAAU;IAIlB,sEAAsE;IACtE,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO;IAGlF,kFAAkF;IAClF,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG;QACnC,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC1D;IAMD,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI;IAI7D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS;IAKzC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAkC/E;AAGD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,cAAM,QAAQ;IACA,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,MAAM;IAExB,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK1B,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAWzI;AAED,qBAAa,OAAO;IAEhB,OAAO,CAAC,EAAE;IACH,MAAM,EAAE,aAAa;gBADpB,EAAE,EAAE,MAAM,EACX,MAAM,EAAE,aAAa;IAG9B,IAAI,SAAS,WAEZ;IACD,IAAI,IAAI,YAEP;IAED,wCAAwC;IAClC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCvD,mFAAmF;IAC7E,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBnC,+EAA+E;IACzE,WAAW,CACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/D,OAAO,CAAC,gBAAgB,CAAC;IAyBtB,IAAI,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAShL,gFAAgF;IAC1E,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuC7H,sEAAsE;IAChE,QAAQ,CAAC,IAAI,EAAE;QAAE,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAexN,0EAA0E;IACpE,eAAe,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9G,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAepJ,wEAAwE;IAClE,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,WAAW,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIlM,iBAAiB,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIhM,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASvF;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI3F;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9E;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASrH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzF;;;;;;;OAOG;IACG,MAAM,CAAC,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IA0FtE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,KAAK,GAAG,QAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1F,MAAM,CAAC,QAAQ,EAAE,OAAO;IAIlB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA6B7F,WAAW,CAAC,aAAa,EAAE,MAAM;gBAviBa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;gBAAU,MAAM;;IA0iBpF,UAAU,CAAC,aAAa,EAAE,MAAM;IAGhC,WAAW,CAAC,cAAc,EAAE,MAAM;gBArhBxB;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE;gBAC1C;YAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE;;IAuhB1D,MAAM,CAAC,cAAc,EAAE,MAAM;IAI7B,EAAE,CACA,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,EACjH,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI;CAM/B;AAED,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQhF,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAe/H;AAED,oCAAoC;AACpC,eAAO,MAAM,UAAU,GAAI,kBAAgB,oBAA+C,CAAC;AAC3F,oBAAoB;AACpB,eAAO,MAAM,SAAS,uBAAyC,CAAC;AAChE,yDAAyD;AACzD,eAAO,MAAM,YAAY,uBAAiE,CAAC;AAE3F;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,SAAM,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAUlK"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgCA,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;+EAC2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAuBD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+EAA+E;IAC/E,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gDAAgD;IAChD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0EAA0E;IAC1E,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpD,oDAAoD;IACpD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AASD,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;AAE3C,cAAM,OAAO;IACX,OAAO,CAAC,SAAS,CAAwD;IACzE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI;IAKhD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAG/B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;CAGvC;AAED,qBAAa,MAAO,SAAQ,OAAO;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAoF;IACnG,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,iBAAiB,CAA6B;IACtD;8EAC0E;IAC1E,OAAO,CAAC,aAAa,CAAkF;IACvG,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB;;mEAE+D;IAC/D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,iBAAiB,CAAU;IACnC;2EACuE;IACvE,OAAO,CAAC,sBAAsB,CAAuB;IACrD;;;;sEAIkE;IAClE,OAAO,CAAC,cAAc,CAAqB;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;WAEzD,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3D;;;8EAG0E;IACpE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC,OAAO;IAgBP,iFAAiF;IACjF,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAI5C,sEAAsE;IACtE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAIrD;iFAC6E;IACpE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAStD,wFAAwF;IAClF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;YAqBlE,YAAY;IAuB1B;kFAC8E;IAC9E,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,0EAA0E;IAC1E,IAAI,kBAAkB,IAAI,UAAU,CAEnC;IAED;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC,iFAAiF;YACnE,iBAAiB;YAUjB,aAAa;YAIb,kBAAkB;YAMlB,iBAAiB;IAqB/B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB1B;;qFAEiF;IACjF,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,QAAQ;IAOhB;;uEAEmE;IACnE,OAAO;IAYP;;qFAEiF;IACjF,eAAe,CAAC,KAAK,EAAE,MAAM;IAI7B,wDAAwD;IACxD,MAAM;IASN,KAAK;IAML,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAW7C,WAAW;YA0HX,aAAa;IAmB3B,kDAAkD;IAC5C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe7E,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB,CAAqB;IAE/C;;;;;;;;;OASG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAiChG;mFAC+E;IAC/E,OAAO,CAAC,WAAW,CAAuC;IAE1D;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,uFAAuF;IACvF,IAAI,eAAe,IAAI,MAAM,CAE5B;IAID,+EAA+E;IACzE,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAepE;;;;;;OAMG;IACH;;;;;;;;OAQG;IACG,MAAM,CAAC,OAAO,GAAE,aAAa,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAoKnE;;;8EAG0E;IAC1E,OAAO,CAAC,gBAAgB;IAIxB;yEACqE;IAC/D,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ5C;;;;;;;OAOG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B9C;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkE/D,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAA0E;IAC3F;qFACiF;IACjF,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,iFAAiF;YACnE,YAAY;IAa1B;;;;;;;;;;;;;OAaG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAwCzC;;;;;;;;OAQG;YACW,mBAAmB;IA8CjC,iEAAiE;IAC3D,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnC,uEAAuE;IACjE,eAAe,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAUrG,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAQ;IAEhD,oEAAoE;IAC9D,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAU7D,2EAA2E;IAC3E,WAAW,CAAC,MAAM,EAAE,MAAM;gBApgCwB,QAAQ,GAAG,SAAS;oBAAc,MAAM,GAAG,IAAI;;IAugCjG,QAAQ,CAAC,MAAM,EAAE,MAAM;IAKvB,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,cAAc;IAMtB,sEAAsE;IACtE,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IAGxE,6EAA6E;IAC7E,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAOtF,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAK3C,kFAAkF;IAClF,OAAO,CAAC,KAAK,CAA0D;IACvE,OAAO,CAAC,UAAU;IAIlB,sEAAsE;IACtE,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO;IAGlF,kFAAkF;IAClF,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG;QACnC,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC1D;IAMD,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI;IAI7D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS;IAKzC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAkC/E;AAGD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,cAAM,QAAQ;IACA,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,MAAM;IAExB,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK1B,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAWzI;AAED,qBAAa,OAAO;IAEhB,OAAO,CAAC,EAAE;IACH,MAAM,EAAE,aAAa;gBADpB,EAAE,EAAE,MAAM,EACX,MAAM,EAAE,aAAa;IAG9B,IAAI,SAAS,WAEZ;IACD,IAAI,IAAI,YAEP;IAED,wCAAwC;IAClC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDvD,mFAAmF;IAC7E,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IA6BnC,+EAA+E;IACzE,WAAW,CACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/D,OAAO,CAAC,gBAAgB,CAAC;IAyBtB,IAAI,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAShL,gFAAgF;IAC1E,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuC7H,sEAAsE;IAChE,QAAQ,CAAC,IAAI,EAAE;QAAE,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAexN,0EAA0E;IACpE,eAAe,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9G,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAepJ,wEAAwE;IAClE,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,WAAW,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIlM,iBAAiB,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIhM,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASvF;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI3F;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9E;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASrH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzF;;;;;;;OAOG;IACG,MAAM,CAAC,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IA0FtE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,KAAK,GAAG,QAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1F,MAAM,CAAC,QAAQ,EAAE,OAAO;IAIlB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA6B7F,WAAW,CAAC,aAAa,EAAE,MAAM;gBA3jBa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;gBAAU,MAAM;;IA8jBpF,UAAU,CAAC,aAAa,EAAE,MAAM;IAGhC,WAAW,CAAC,cAAc,EAAE,MAAM;gBAziBxB;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE;gBAC1C;YAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE;;IA2iB1D,MAAM,CAAC,cAAc,EAAE,MAAM;IAI7B,EAAE,CACA,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,EACjH,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI;CAM/B;AAED,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQhF,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAe/H;AAED,oCAAoC;AACpC,eAAO,MAAM,UAAU,GAAI,kBAAgB,oBAA+C,CAAC;AAC3F,oBAAoB;AACpB,eAAO,MAAM,SAAS,uBAAyC,CAAC;AAChE,yDAAyD;AACzD,eAAO,MAAM,YAAY,uBAAiE,CAAC;AAE3F;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,SAAM,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAUlK"}
package/dist/index.js CHANGED
@@ -27,8 +27,12 @@ const defaultStore = () => {
27
27
  }
28
28
  return new MemoryStore();
29
29
  };
30
- /** Streamed messages edit at most ~every 350 ms (plus natural boundaries). */
31
- const STREAM_THROTTLE_MS = 350;
30
+ /**
31
+ * Streamed messages edit at most ~every 120 ms (plus natural boundaries).
32
+ * More frequent, smaller edits feed the client-side typewriter reveal a steady
33
+ * trickle so the visible text eases in smoothly instead of arriving in big jumps.
34
+ */
35
+ const STREAM_THROTTLE_MS = 120;
32
36
  class Emitter {
33
37
  listeners = new Map();
34
38
  on(event, fn) {
@@ -87,13 +91,26 @@ export class NoPeek extends Emitter {
87
91
  await np.ensureDevice();
88
92
  // With deferDeviceRegistration and no locally saved identity there is no
89
93
  // deviceId yet — key packages and the WS wait for restore()/registerDevice().
90
- if (np.deviceId) {
94
+ // With autoConnectWs:false, EVERYTHING networked is deferred to bringOnline()
95
+ // — connect() returns after only the local device load, so a returning user
96
+ // can render the cached UI instantly and come online in the background.
97
+ if (np.deviceId && np.autoWs) {
91
98
  await np.ensureKeyPackages();
92
- if (np.autoWs)
93
- await np.connectWs();
99
+ await np.connectWs();
94
100
  }
95
101
  return np;
96
102
  }
103
+ /** Bring a deferred (autoConnectWs:false) client online in the background:
104
+ * publish key packages and open the WebSocket. Idempotent — a no-op if the
105
+ * socket is already up. This is what keeps cold-start instant: connect()
106
+ * returns from local storage alone, then the app calls bringOnline(). */
107
+ async bringOnline() {
108
+ if (!this.deviceId)
109
+ return;
110
+ await this.ensureKeyPackages();
111
+ if (!this.ws)
112
+ await this.connectWs();
113
+ }
97
114
  constructor(opts) {
98
115
  super();
99
116
  this.apiUrl = opts.apiUrl.replace(/\/$/, "");
@@ -188,6 +205,10 @@ export class NoPeek extends Emitter {
188
205
  get deviceRegistered() {
189
206
  return Boolean(this.deviceId);
190
207
  }
208
+ /** This device's public ECDH key (JWK) — what welcomes are wrapped to. */
209
+ get devicePublicKeyJwk() {
210
+ return this.keys.publicKeyJwk;
211
+ }
191
212
  /**
192
213
  * Complete a deferred connect by registering a brand-new device. Call this
193
214
  * only when the user has NO restorable backup (genuine new user/device) —
@@ -485,6 +506,52 @@ export class NoPeek extends Emitter {
485
506
  }
486
507
  return false;
487
508
  }
509
+ /** Channels already checked for a self-addressed welcome this session. */
510
+ selfWelcomeChecked = new Set();
511
+ /**
512
+ * Self-heal for channels created before establishKeys wrapped the welcome to
513
+ * the creator's OWN device: if this device HOLDS the channel key but no
514
+ * welcome in the group addresses this deviceId, post one (wrapped to
515
+ * ourselves). A future device that restores this identity from the encrypted
516
+ * backup — or an already-restored device sharing this deviceId — can then
517
+ * pull the key via syncChannelKey even when the backup's channel-key map is
518
+ * stale. Runs at most once per channel per device (persisted mark);
519
+ * best-effort and safe to fire-and-forget.
520
+ */
521
+ async ensureSelfWelcome(channelId, mlsGroupId) {
522
+ if (!mlsGroupId || this.deriveChannelKey || !this.deviceId)
523
+ return; // preshared mode has no welcomes
524
+ const key = this.channelKeys.get(channelId);
525
+ if (!key)
526
+ return;
527
+ if (this.selfWelcomeChecked.has(channelId))
528
+ return;
529
+ this.selfWelcomeChecked.add(channelId);
530
+ const mark = `nopeek:${this.userId}:selfWelcomed:${channelId}`;
531
+ try {
532
+ if (await this.store.get(mark))
533
+ return;
534
+ const { handshakes } = await this.api("GET", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes?sinceEpoch=0`);
535
+ const covered = handshakes.some((h) => h.kind === "welcome" && h.recipientDeviceIds?.includes(this.deviceId));
536
+ if (!covered) {
537
+ const wrapped = await wrapChannelKey(key, [{ deviceId: this.deviceId, publicKeyJwk: this.keys.publicKeyJwk }]);
538
+ const welcome = { suite: "npdev-1", channelId, wrapped };
539
+ // Only `commit` handshakes are epoch-guarded server-side; welcomes
540
+ // append at the steady-state epoch (same as the member-add flow).
541
+ await this.api("POST", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes`, {
542
+ epoch: 1,
543
+ kind: "welcome",
544
+ senderDeviceId: this.deviceId,
545
+ recipientDeviceIds: [this.deviceId],
546
+ payload: b64.enc(new TextEncoder().encode(JSON.stringify(welcome))),
547
+ });
548
+ }
549
+ await this.store.set(mark, "1");
550
+ }
551
+ catch {
552
+ this.selfWelcomeChecked.delete(channelId); // retry on a later ensureKey
553
+ }
554
+ }
488
555
  /** In-flight key recoveries, deduped per channel so a burst of undecryptable
489
556
  * frames triggers a single welcome sync rather than one fetch per message. */
490
557
  keyRecovery = new Map();
@@ -549,21 +616,30 @@ export class NoPeek extends Emitter {
549
616
  * password was reset). Accepts a string (treated as a recovery code, legacy)
550
617
  * or `{ password?, recoveryCode? }`.
551
618
  */
552
- async backup(secrets) {
619
+ async backup(secrets = {}) {
553
620
  const s = typeof secrets === "string" ? { recoveryCode: secrets } : secrets;
554
- if (!s.password && !s.recoveryCode)
555
- throw new Error("backup requires a password or a recovery code");
556
621
  // WRAP PRESERVATION: a refresh that only knows ONE secret (the common case —
557
622
  // after login only the password is in memory) must NOT drop the other unlock
558
623
  // path. If we can unwrap the existing envelope's data key, reuse it and carry
559
624
  // forward any wraps we can't recreate; otherwise start a fresh envelope.
625
+ //
626
+ // SECRET-LESS REFRESH: with NO secrets at all, the envelope's data key can
627
+ // still come from the locally cached copy (persisted by every successful
628
+ // backup/restore on this device — same trust domain as the channel keys it
629
+ // protects). This is what lets a boot session (password long gone from
630
+ // memory) fold a freshly acquired channel key into the backup, so a future
631
+ // new-device sign-in can decrypt ALL history, not just the channels that
632
+ // existed at last login.
560
633
  let dataKey = await generateChannelKey();
561
634
  let rawDK = await exportRawKeyB64(dataKey);
635
+ let reusedDK = false;
562
636
  const carried = {};
637
+ let remoteChannelKeys = null;
563
638
  try {
564
639
  const { backups } = await this.api("GET", `/v1/apps/${this.appId}/users/${this.userId}/history-backups`);
565
- const kd = backups[0]?.keyDerivation;
566
- if (kd?.scheme === "wrapped-v2" && kd.wraps) {
640
+ const newest = backups[0];
641
+ const kd = newest?.keyDerivation;
642
+ if (newest && kd?.scheme === "wrapped-v2" && kd.wraps) {
567
643
  let oldDK = null;
568
644
  const unlockers = [
569
645
  ["password", s.password],
@@ -590,7 +666,31 @@ export class NoPeek extends Emitter {
590
666
  // recovery wrap forward instead of orphaning it under a fresh dk.
591
667
  if (!oldDK && this.escrowRestoredDK)
592
668
  oldDK = this.escrowRestoredDK;
669
+ // Locally cached data key (validated below against the actual payload —
670
+ // it may be stale if another device re-created the envelope).
671
+ const cachedDK = oldDK ? null : await this.store.get(this.backupDkStoreKey());
672
+ // Download the existing payload when we hold a dk candidate: it VALIDATES
673
+ // a cached dk and lets us MERGE channel keys this device doesn't hold, so
674
+ // a device that restored an older/partial backup never clobbers a richer
675
+ // one. Best-effort — a failed download must not break a secret-unlocked
676
+ // refresh (wrap preservation worked without it before).
677
+ const candidate = oldDK ?? cachedDK;
678
+ if (candidate && newest.downloadUrl) {
679
+ try {
680
+ const res = await fetch(newest.downloadUrl);
681
+ if (res.ok) {
682
+ const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
683
+ const payload = await decryptPayload(await importRawKeyB64(candidate), ct);
684
+ remoteChannelKeys = payload.channelKeys ?? null;
685
+ oldDK = candidate; // decrypt success ⇒ the cached dk is the live one
686
+ }
687
+ }
688
+ catch {
689
+ /* download/decrypt failed — cached dk unproven, secret-unlocked dk still fine */
690
+ }
691
+ }
593
692
  if (oldDK) {
693
+ reusedDK = true;
594
694
  rawDK = oldDK;
595
695
  dataKey = await importRawKeyB64(oldDK);
596
696
  for (const kind of ["password", "recovery"]) {
@@ -598,12 +698,39 @@ export class NoPeek extends Emitter {
598
698
  if (!provided && kd.wraps[kind])
599
699
  carried[kind] = kd.wraps[kind];
600
700
  }
701
+ // Same dk ⇒ the existing escrow wrap is still valid; carry it so a
702
+ // transiently unreachable escrow config doesn't drop the escrow path.
703
+ if (kd.wraps.escrow)
704
+ carried.escrow = kd.wraps.escrow;
601
705
  }
602
706
  }
603
707
  }
604
708
  catch {
605
709
  /* no existing backup / fetch failed — fresh envelope below */
606
710
  }
711
+ // A fresh envelope's dk is wrapped only under the provided secrets — with
712
+ // none, the backup would be unrecoverable, so refuse.
713
+ if (!s.password && !s.recoveryCode && !reusedDK) {
714
+ throw new Error("backup requires a password or a recovery code");
715
+ }
716
+ // Merge: keys from the existing backup that this device lacks stay in the
717
+ // new payload (and heal this device's local key store while we're at it).
718
+ if (remoteChannelKeys) {
719
+ let healed = false;
720
+ for (const [chId, raw] of Object.entries(remoteChannelKeys)) {
721
+ if (this.channelKeys.has(chId))
722
+ continue;
723
+ try {
724
+ this.channelKeys.set(chId, await importChannelKey(raw));
725
+ healed = true;
726
+ }
727
+ catch {
728
+ /* skip a corrupt entry */
729
+ }
730
+ }
731
+ if (healed)
732
+ await this.persistChannelKeys();
733
+ }
607
734
  const channelKeys = {};
608
735
  for (const [chId, k] of this.channelKeys)
609
736
  channelKeys[chId] = await exportChannelKey(k);
@@ -641,8 +768,73 @@ export class NoPeek extends Emitter {
641
768
  const put = await fetch(uploadUrl, { method: "PUT", body: bytes, headers: { "content-type": "application/octet-stream" } });
642
769
  if (!put.ok)
643
770
  throw new Error(`backup upload failed: HTTP ${put.status}`);
771
+ // Cache the envelope's data key so future refreshes on this device need no
772
+ // secret (see the secret-less-refresh note above).
773
+ try {
774
+ await this.store.set(this.backupDkStoreKey(), rawDK);
775
+ }
776
+ catch {
777
+ /* store hiccup — the backup itself succeeded */
778
+ }
644
779
  return rec.backupId;
645
780
  }
781
+ /** Where the current backup envelope's raw data key is cached on this device.
782
+ * Sensitivity-equivalent to the channel keys (`nopeek:<user>:channelKeys`)
783
+ * already persisted in the same store — it decrypts a payload containing
784
+ * exactly those keys plus the device identity, both stored beside it. */
785
+ backupDkStoreKey() {
786
+ return `nopeek:${this.userId}:backupDk`;
787
+ }
788
+ /** Whether this device holds a cached backup data key — i.e. backup() can
789
+ * refresh the envelope with NO password/recovery code in memory. */
790
+ async hasCachedBackupKey() {
791
+ try {
792
+ return Boolean(await this.store.get(this.backupDkStoreKey()));
793
+ }
794
+ catch {
795
+ return false;
796
+ }
797
+ }
798
+ /**
799
+ * Pull channel keys this device is missing from the newest backup, using the
800
+ * locally cached data key (no password/recovery code needed). This is the
801
+ * flip side of the secret-less refresh: a device that restored BEFORE some
802
+ * key entered the backup can pick it up later, once any key-holding device
803
+ * has refreshed the envelope. Emits `channelKeyReceived` per new channel so
804
+ * open chats re-decrypt in place. Returns how many keys were added.
805
+ */
806
+ async refreshKeysFromBackup() {
807
+ const rawDK = await this.store.get(this.backupDkStoreKey());
808
+ if (!rawDK)
809
+ throw new Error("No cached backup key on this device — restore with a password or recovery code.");
810
+ const { backups } = await this.api("GET", `/v1/apps/${this.appId}/users/${this.userId}/history-backups`);
811
+ if (!backups.length)
812
+ return 0;
813
+ const res = await fetch(backups[0].downloadUrl);
814
+ if (!res.ok)
815
+ throw new Error(`backup download failed: HTTP ${res.status}`);
816
+ const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
817
+ // Throws if the envelope was re-keyed by another device (stale cached dk).
818
+ const payload = await decryptPayload(await importRawKeyB64(rawDK), ct);
819
+ const added = [];
820
+ for (const [chId, raw] of Object.entries(payload.channelKeys ?? {})) {
821
+ if (this.channelKeys.has(chId))
822
+ continue;
823
+ try {
824
+ this.channelKeys.set(chId, await importChannelKey(raw));
825
+ added.push(chId);
826
+ }
827
+ catch {
828
+ /* skip a corrupt entry */
829
+ }
830
+ }
831
+ if (added.length) {
832
+ await this.persistChannelKeys();
833
+ for (const chId of added)
834
+ this.emit("channelKeyReceived", { channelId: chId });
835
+ }
836
+ return added.length;
837
+ }
646
838
  /**
647
839
  * Restore chats on a NEW device from the latest encrypted backup. Pass the
648
840
  * account password (preferred) and/or the recovery code — whichever unlocks
@@ -663,6 +855,7 @@ export class NoPeek extends Emitter {
663
855
  let payload;
664
856
  if (kd.scheme === "wrapped-v2") {
665
857
  let dataKey = null;
858
+ let rawDK = null;
666
859
  for (const [kind, secret] of [["password", s.password], ["recovery", s.recoveryCode]]) {
667
860
  const w = secret && kd.wraps?.[kind];
668
861
  if (!w)
@@ -671,6 +864,7 @@ export class NoPeek extends Emitter {
671
864
  const kek = await deriveBackupKey(secret, w.salt, w.iterations);
672
865
  const { dk } = await decryptPayload(kek, w.wrapped);
673
866
  dataKey = await importRawKeyB64(dk);
867
+ rawDK = dk;
674
868
  break;
675
869
  }
676
870
  catch {
@@ -680,6 +874,16 @@ export class NoPeek extends Emitter {
680
874
  if (!dataKey)
681
875
  throw new Error("Couldn't unlock the backup with the provided password or recovery code.");
682
876
  payload = await decryptPayload(dataKey, ct);
877
+ // Cache the data key: this restored device can then refresh the backup and
878
+ // pull later-added keys (refreshKeysFromBackup) with no secret in memory.
879
+ if (rawDK) {
880
+ try {
881
+ await this.store.set(this.backupDkStoreKey(), rawDK);
882
+ }
883
+ catch {
884
+ /* store hiccup — restore itself succeeded */
885
+ }
886
+ }
683
887
  }
684
888
  else {
685
889
  // legacy single-layer backup: payload keyed directly off the recovery code
@@ -750,6 +954,12 @@ export class NoPeek extends Emitter {
750
954
  const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
751
955
  const payload = await decryptPayload(dataKey, ct);
752
956
  this.escrowRestoredDK = dk; // lets the next backup() carry old wraps forward
957
+ try {
958
+ await this.store.set(this.backupDkStoreKey(), dk); // secret-less refresh, as in restore()
959
+ }
960
+ catch {
961
+ /* store hiccup — restore itself succeeded */
962
+ }
753
963
  await this.adoptBackedUpDevice(payload.device);
754
964
  for (const [chId, raw] of Object.entries(payload.channelKeys)) {
755
965
  this.channelKeys.set(chId, await importChannelKey(raw));
@@ -992,15 +1202,33 @@ export class Channel {
992
1202
  async establishKeys(memberIds) {
993
1203
  const key = await generateChannelKey();
994
1204
  this.np.setChannelKey(this.channelId, key);
1205
+ // Wrap for EVERY member device — peers, the creator's OTHER devices, and
1206
+ // (crucially) this device itself. The self-wrap makes the welcome a durable
1207
+ // second carrier of the key: a future device that restores this identity
1208
+ // from the encrypted backup can always pull the key via syncChannelKey,
1209
+ // even when the backup's channel-key map predates this channel. Without it,
1210
+ // a creator-side key lives ONLY in local storage + whatever backup refresh
1211
+ // happened to run afterwards.
995
1212
  const recipients = [];
996
- const others = memberIds.filter((m) => m !== this.np.userId);
997
- for (const userId of others) {
998
- const { keyPackages } = await this.np.api("POST", `/v1/apps/${this.np.appId}/users/${userId}/key-packages/claim`);
999
- for (const kp of keyPackages) {
1000
- const parsed = JSON.parse(new TextDecoder().decode(b64.dec(kp.data)));
1001
- recipients.push({ deviceId: kp.deviceId, publicKeyJwk: parsed.pub });
1213
+ const users = [...new Set([...memberIds, this.np.userId])];
1214
+ for (const userId of users) {
1215
+ try {
1216
+ const { keyPackages } = await this.np.api("POST", `/v1/apps/${this.np.appId}/users/${userId}/key-packages/claim`);
1217
+ for (const kp of keyPackages) {
1218
+ if (kp.deviceId === this.np.deviceId)
1219
+ continue; // self added below with the known local key
1220
+ const parsed = JSON.parse(new TextDecoder().decode(b64.dec(kp.data)));
1221
+ recipients.push({ deviceId: kp.deviceId, publicKeyJwk: parsed.pub });
1222
+ }
1223
+ }
1224
+ catch (e) {
1225
+ // Our own OTHER devices are best-effort (they can restore via backup);
1226
+ // a peer we can't reach keys for is a real ceremony failure, as before.
1227
+ if (userId !== this.np.userId)
1228
+ throw e;
1002
1229
  }
1003
1230
  }
1231
+ recipients.push({ deviceId: this.np.deviceId, publicKeyJwk: this.np.devicePublicKeyJwk });
1004
1232
  // advance epoch 0 -> 1 (server-enforced single writer)
1005
1233
  await this.np.api("POST", `/v1/apps/${this.np.appId}/mls/groups/${this.record.mlsGroupId}/handshakes`, {
1006
1234
  epoch: 0,
@@ -1024,8 +1252,12 @@ export class Channel {
1024
1252
  async ensureKey() {
1025
1253
  if (!this.e2ee)
1026
1254
  return true;
1027
- if (this.np.getChannelKey(this.channelId))
1255
+ if (this.np.getChannelKey(this.channelId)) {
1256
+ // We hold the key — make sure a welcome addressed to THIS device exists in
1257
+ // the group so a backup-restored successor of this identity can pull it.
1258
+ void this.np.ensureSelfWelcome(this.channelId, this.record.mlsGroupId);
1028
1259
  return true;
1260
+ }
1029
1261
  if (await this.np.deriveAndSet(this.channelId))
1030
1262
  return true;
1031
1263
  if (!this.record.mlsGroupId)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nopeek/chat",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "NoPeek client SDK — E2EE chat your servers can't read.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",