@wireapp/core-crypto 7.0.2 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/corecrypto.js CHANGED
@@ -22,17 +22,6 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
22
22
  throw Error('Dynamic require of "' + x + '" is not supported');
23
23
  });
24
24
 
25
- // src/Ciphersuite.ts
26
- var Ciphersuite;
27
- ((Ciphersuite2) => {
28
- Ciphersuite2[Ciphersuite2["MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519"] = 1] = "MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519";
29
- Ciphersuite2[Ciphersuite2["MLS_128_DHKEMP256_AES128GCM_SHA256_P256"] = 2] = "MLS_128_DHKEMP256_AES128GCM_SHA256_P256";
30
- Ciphersuite2[Ciphersuite2["MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519"] = 3] = "MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519";
31
- Ciphersuite2[Ciphersuite2["MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448"] = 4] = "MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448";
32
- Ciphersuite2[Ciphersuite2["MLS_256_DHKEMP521_AES256GCM_SHA512_P521"] = 5] = "MLS_256_DHKEMP521_AES256GCM_SHA512_P521";
33
- Ciphersuite2[Ciphersuite2["MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448"] = 6] = "MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448";
34
- Ciphersuite2[Ciphersuite2["MLS_256_DHKEMP384_AES256GCM_SHA384_P384"] = 7] = "MLS_256_DHKEMP384_AES256GCM_SHA384_P384";
35
- })(Ciphersuite ||= {});
36
25
  // src/CoreCryptoError.ts
37
26
  class CoreCryptoError extends Error {
38
27
  errorStack;
@@ -54,9 +43,8 @@ class CoreCryptoError extends Error {
54
43
  this.proteusErrorCode = null;
55
44
  }
56
45
  }
57
- static fallback(msg, ...params) {
58
- console.warn(`Cannot build CoreCryptoError, falling back to standard Error! ctx: ${msg}`);
59
- return new Error(msg, ...params);
46
+ static fallback(message, ...params) {
47
+ return new CoreCryptoError({ message }, ...params);
60
48
  }
61
49
  static build(msg, ...params) {
62
50
  try {
@@ -87,7 +75,7 @@ class CoreCryptoError extends Error {
87
75
  return await mappedErrorPromise;
88
76
  }
89
77
  }
90
- // src/core-crypto-ffi.js
78
+ // src/autogenerated/core-crypto-ffi.js
91
79
  var wasm;
92
80
  var WASM_VECTOR_LEN = 0;
93
81
  var cachedUint8ArrayMemory0 = null;
@@ -258,17 +246,17 @@ ${val.stack}`;
258
246
  }
259
247
  return className;
260
248
  }
249
+ function _assertClass(instance, klass) {
250
+ if (!(instance instanceof klass)) {
251
+ throw new Error(`expected instance of ${klass.name}`);
252
+ }
253
+ }
261
254
  function passArray8ToWasm0(arg, malloc) {
262
255
  const ptr = malloc(arg.length * 1, 1) >>> 0;
263
256
  getUint8ArrayMemory0().set(arg, ptr / 1);
264
257
  WASM_VECTOR_LEN = arg.length;
265
258
  return ptr;
266
259
  }
267
- function _assertClass(instance, klass) {
268
- if (!(instance instanceof klass)) {
269
- throw new Error(`expected instance of ${klass.name}`);
270
- }
271
- }
272
260
  function getArrayJsValueFromWasm0(ptr, len) {
273
261
  ptr = ptr >>> 0;
274
262
  const mem = getDataViewMemory0();
@@ -284,18 +272,16 @@ function takeFromExternrefTable0(idx) {
284
272
  wasm.__externref_table_dealloc(idx);
285
273
  return value;
286
274
  }
287
- var cachedUint16ArrayMemory0 = null;
288
- function getUint16ArrayMemory0() {
289
- if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {
290
- cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);
275
+ function ciphersuiteFromU16(discriminant) {
276
+ const ret = wasm.ciphersuiteFromU16(discriminant);
277
+ if (ret[2]) {
278
+ throw takeFromExternrefTable0(ret[1]);
291
279
  }
292
- return cachedUint16ArrayMemory0;
280
+ return ret[0];
293
281
  }
294
- function passArray16ToWasm0(arg, malloc) {
295
- const ptr = malloc(arg.length * 2, 2) >>> 0;
296
- getUint16ArrayMemory0().set(arg, ptr / 2);
297
- WASM_VECTOR_LEN = arg.length;
298
- return ptr;
282
+ function ciphersuiteDefault() {
283
+ const ret = wasm.ciphersuiteDefault();
284
+ return ret;
299
285
  }
300
286
  function passArrayJsValueToWasm0(array, malloc) {
301
287
  const ptr = malloc(array.length * 4, 4) >>> 0;
@@ -315,6 +301,14 @@ function migrateDatabaseKeyTypeToBytes(name, old_key, new_key) {
315
301
  const ret = wasm.migrateDatabaseKeyTypeToBytes(ptr0, len0, ptr1, len1, new_key.__wbg_ptr);
316
302
  return ret;
317
303
  }
304
+ function updateDatabaseKey(name, old_key, new_key) {
305
+ const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
306
+ const len0 = WASM_VECTOR_LEN;
307
+ _assertClass(old_key, DatabaseKey);
308
+ _assertClass(new_key, DatabaseKey);
309
+ const ret = wasm.updateDatabaseKey(ptr0, len0, old_key.__wbg_ptr, new_key.__wbg_ptr);
310
+ return ret;
311
+ }
318
312
  function version() {
319
313
  let deferred1_0;
320
314
  let deferred1_1;
@@ -331,18 +325,34 @@ function build_metadata() {
331
325
  const ret = wasm.build_metadata();
332
326
  return BuildMetadata.__wrap(ret);
333
327
  }
334
- function __wbg_adapter_60(arg0, arg1, arg2) {
335
- wasm.closure971_externref_shim(arg0, arg1, arg2);
328
+ function __wbg_adapter_62(arg0, arg1, arg2) {
329
+ wasm.closure963_externref_shim(arg0, arg1, arg2);
336
330
  }
337
- function __wbg_adapter_63(arg0, arg1, arg2) {
338
- wasm.closure2664_externref_shim(arg0, arg1, arg2);
331
+ function __wbg_adapter_65(arg0, arg1, arg2) {
332
+ wasm.closure2637_externref_shim(arg0, arg1, arg2);
339
333
  }
340
- function __wbg_adapter_66(arg0, arg1, arg2) {
341
- wasm.closure2864_externref_shim(arg0, arg1, arg2);
334
+ function __wbg_adapter_68(arg0, arg1, arg2) {
335
+ wasm.closure2839_externref_shim(arg0, arg1, arg2);
342
336
  }
343
- function __wbg_adapter_555(arg0, arg1, arg2, arg3) {
344
- wasm.closure2959_externref_shim(arg0, arg1, arg2, arg3);
337
+ function __wbg_adapter_565(arg0, arg1, arg2, arg3) {
338
+ wasm.closure2945_externref_shim(arg0, arg1, arg2, arg3);
345
339
  }
340
+ var Ciphersuite = Object.freeze({
341
+ MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519: 1,
342
+ "1": "MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519",
343
+ MLS_128_DHKEMP256_AES128GCM_SHA256_P256: 2,
344
+ "2": "MLS_128_DHKEMP256_AES128GCM_SHA256_P256",
345
+ MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519: 3,
346
+ "3": "MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519",
347
+ MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448: 4,
348
+ "4": "MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448",
349
+ MLS_256_DHKEMP521_AES256GCM_SHA512_P521: 5,
350
+ "5": "MLS_256_DHKEMP521_AES256GCM_SHA512_P521",
351
+ MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448: 6,
352
+ "6": "MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448",
353
+ MLS_256_DHKEMP384_AES256GCM_SHA384_P384: 7,
354
+ "7": "MLS_256_DHKEMP384_AES256GCM_SHA384_P384"
355
+ });
346
356
  var CoreCryptoLogLevel = Object.freeze({
347
357
  Off: 1,
348
358
  "1": "Off",
@@ -529,41 +539,6 @@ class AcmeDirectory {
529
539
  }
530
540
  }
531
541
  }
532
- var ArrayOfByteArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_arrayofbytearray_free(ptr >>> 0, 1));
533
-
534
- class ArrayOfByteArray {
535
- static __wrap(ptr) {
536
- ptr = ptr >>> 0;
537
- const obj = Object.create(ArrayOfByteArray.prototype);
538
- obj.__wbg_ptr = ptr;
539
- ArrayOfByteArrayFinalization.register(obj, obj.__wbg_ptr, obj);
540
- return obj;
541
- }
542
- __destroy_into_raw() {
543
- const ptr = this.__wbg_ptr;
544
- this.__wbg_ptr = 0;
545
- ArrayOfByteArrayFinalization.unregister(this);
546
- return ptr;
547
- }
548
- free() {
549
- const ptr = this.__destroy_into_raw();
550
- wasm.__wbg_arrayofbytearray_free(ptr, 0);
551
- }
552
- constructor(aoba) {
553
- const ptr0 = passArrayJsValueToWasm0(aoba, wasm.__wbindgen_malloc);
554
- const len0 = WASM_VECTOR_LEN;
555
- const ret = wasm.arrayofbytearray_new(ptr0, len0);
556
- this.__wbg_ptr = ret >>> 0;
557
- ArrayOfByteArrayFinalization.register(this, this.__wbg_ptr, this);
558
- return this;
559
- }
560
- as_arrays() {
561
- const ret = wasm.arrayofbytearray_as_arrays(this.__wbg_ptr);
562
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
563
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
564
- return v1;
565
- }
566
- }
567
542
  var BufferedDecryptedMessageFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_buffereddecryptedmessage_free(ptr >>> 0, 1));
568
543
 
569
544
  class BufferedDecryptedMessage {
@@ -615,7 +590,12 @@ class BufferedDecryptedMessage {
615
590
  }
616
591
  get crlNewDistributionPoints() {
617
592
  const ret = wasm.__wbg_get_buffereddecryptedmessage_crlNewDistributionPoints(this.__wbg_ptr);
618
- return NewCrlDistributionPoints.__wrap(ret);
593
+ let v1;
594
+ if (ret[0] !== 0) {
595
+ v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
596
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
597
+ }
598
+ return v1;
619
599
  }
620
600
  }
621
601
  var BuildMetadataFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_buildmetadata_free(ptr >>> 0, 1));
@@ -691,65 +671,6 @@ class BuildMetadata {
691
671
  return getStringFromWasm0(ret[0], ret[1]);
692
672
  }
693
673
  }
694
- var CiphersuiteFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_ciphersuite_free(ptr >>> 0, 1));
695
-
696
- class Ciphersuite2 {
697
- static __wrap(ptr) {
698
- ptr = ptr >>> 0;
699
- const obj = Object.create(Ciphersuite2.prototype);
700
- obj.__wbg_ptr = ptr;
701
- CiphersuiteFinalization.register(obj, obj.__wbg_ptr, obj);
702
- return obj;
703
- }
704
- __destroy_into_raw() {
705
- const ptr = this.__wbg_ptr;
706
- this.__wbg_ptr = 0;
707
- CiphersuiteFinalization.unregister(this);
708
- return ptr;
709
- }
710
- free() {
711
- const ptr = this.__destroy_into_raw();
712
- wasm.__wbg_ciphersuite_free(ptr, 0);
713
- }
714
- as_u16() {
715
- const ret = wasm.ciphersuite_as_u16(this.__wbg_ptr);
716
- return ret;
717
- }
718
- constructor(discriminant) {
719
- const ret = wasm.ciphersuite_new(discriminant);
720
- if (ret[2]) {
721
- throw takeFromExternrefTable0(ret[1]);
722
- }
723
- this.__wbg_ptr = ret[0] >>> 0;
724
- CiphersuiteFinalization.register(this, this.__wbg_ptr, this);
725
- return this;
726
- }
727
- }
728
- var CiphersuitesFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_ciphersuites_free(ptr >>> 0, 1));
729
-
730
- class Ciphersuites {
731
- __destroy_into_raw() {
732
- const ptr = this.__wbg_ptr;
733
- this.__wbg_ptr = 0;
734
- CiphersuitesFinalization.unregister(this);
735
- return ptr;
736
- }
737
- free() {
738
- const ptr = this.__destroy_into_raw();
739
- wasm.__wbg_ciphersuites_free(ptr, 0);
740
- }
741
- constructor(ids) {
742
- const ptr0 = passArray16ToWasm0(ids, wasm.__wbindgen_malloc);
743
- const len0 = WASM_VECTOR_LEN;
744
- const ret = wasm.ciphersuites_from_u16s(ptr0, len0);
745
- if (ret[2]) {
746
- throw takeFromExternrefTable0(ret[1]);
747
- }
748
- this.__wbg_ptr = ret[0] >>> 0;
749
- CiphersuitesFinalization.register(this, this.__wbg_ptr, this);
750
- return this;
751
- }
752
- }
753
674
  var ClientIdFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_clientid_free(ptr >>> 0, 1));
754
675
 
755
676
  class ClientId {
@@ -784,8 +705,8 @@ class ClientId {
784
705
  ClientIdFinalization.register(this, this.__wbg_ptr, this);
785
706
  return this;
786
707
  }
787
- as_bytes() {
788
- const ret = wasm.clientid_as_bytes(this.__wbg_ptr);
708
+ copyBytes() {
709
+ const ret = wasm.clientid_copyBytes(this.__wbg_ptr);
789
710
  var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
790
711
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
791
712
  return v1;
@@ -813,17 +734,15 @@ class CommitBundle {
813
734
  }
814
735
  get welcome() {
815
736
  const ret = wasm.__wbg_get_commitbundle_welcome(this.__wbg_ptr);
816
- let v1;
817
- if (ret[0] !== 0) {
818
- v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
819
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
820
- }
821
- return v1;
737
+ return ret === 0 ? undefined : Welcome.__wrap(ret);
822
738
  }
823
739
  set welcome(arg0) {
824
- var ptr0 = isLikeNone(arg0) ? 0 : passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
825
- var len0 = WASM_VECTOR_LEN;
826
- wasm.__wbg_set_commitbundle_welcome(this.__wbg_ptr, ptr0, len0);
740
+ let ptr0 = 0;
741
+ if (!isLikeNone(arg0)) {
742
+ _assertClass(arg0, Welcome);
743
+ ptr0 = arg0.__destroy_into_raw();
744
+ }
745
+ wasm.__wbg_set_commitbundle_welcome(this.__wbg_ptr, ptr0);
827
746
  }
828
747
  get commit() {
829
748
  const ret = wasm.__wbg_get_commitbundle_commit(this.__wbg_ptr);
@@ -845,6 +764,15 @@ class CommitBundle {
845
764
  var ptr0 = arg0.__destroy_into_raw();
846
765
  wasm.__wbg_set_commitbundle_group_info(this.__wbg_ptr, ptr0);
847
766
  }
767
+ get encryptedMessage() {
768
+ const ret = wasm.__wbg_get_commitbundle_encryptedMessage(this.__wbg_ptr);
769
+ let v1;
770
+ if (ret[0] !== 0) {
771
+ v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
772
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
773
+ }
774
+ return v1;
775
+ }
848
776
  }
849
777
  var ConversationConfigurationFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_conversationconfiguration_free(ptr >>> 0, 1));
850
778
 
@@ -861,21 +789,22 @@ class ConversationConfiguration {
861
789
  }
862
790
  get ciphersuite() {
863
791
  const ret = wasm.__wbg_get_conversationconfiguration_ciphersuite(this.__wbg_ptr);
864
- return ret === 0 ? undefined : Ciphersuite2.__wrap(ret);
792
+ return ret === 0 ? undefined : ret;
793
+ }
794
+ get externalSenders() {
795
+ const ret = wasm.__wbg_get_conversationconfiguration_externalSenders(this.__wbg_ptr);
796
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
797
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
798
+ return v1;
865
799
  }
866
800
  get custom() {
867
801
  const ret = wasm.__wbg_get_conversationconfiguration_custom(this.__wbg_ptr);
868
802
  return CustomConfiguration.__wrap(ret);
869
803
  }
870
804
  constructor(ciphersuite, external_senders, key_rotation_span, wire_policy) {
871
- let ptr0 = 0;
872
- if (!isLikeNone(ciphersuite)) {
873
- _assertClass(ciphersuite, Ciphersuite2);
874
- ptr0 = ciphersuite.__destroy_into_raw();
875
- }
876
- var ptr1 = isLikeNone(external_senders) ? 0 : passArrayJsValueToWasm0(external_senders, wasm.__wbindgen_malloc);
877
- var len1 = WASM_VECTOR_LEN;
878
- const ret = wasm.conversationconfiguration_new(ptr0, ptr1, len1, isLikeNone(key_rotation_span) ? 4294967297 : key_rotation_span >>> 0, isLikeNone(wire_policy) ? 0 : wire_policy);
805
+ var ptr0 = isLikeNone(external_senders) ? 0 : passArrayJsValueToWasm0(external_senders, wasm.__wbindgen_malloc);
806
+ var len0 = WASM_VECTOR_LEN;
807
+ const ret = wasm.conversationconfiguration_new(isLikeNone(ciphersuite) ? 0 : ciphersuite, ptr0, len0, isLikeNone(key_rotation_span) ? 4294967297 : key_rotation_span >>> 0, isLikeNone(wire_policy) ? 0 : wire_policy);
879
808
  if (ret[2]) {
880
809
  throw takeFromExternrefTable0(ret[1]);
881
810
  }
@@ -883,10 +812,39 @@ class ConversationConfiguration {
883
812
  ConversationConfigurationFinalization.register(this, this.__wbg_ptr, this);
884
813
  return this;
885
814
  }
886
- get externalSenders() {
887
- const ret = wasm.conversationconfiguration_externalSenders(this.__wbg_ptr);
888
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
889
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
815
+ }
816
+ var ConversationIdFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_conversationid_free(ptr >>> 0, 1));
817
+
818
+ class ConversationId {
819
+ static __wrap(ptr) {
820
+ ptr = ptr >>> 0;
821
+ const obj = Object.create(ConversationId.prototype);
822
+ obj.__wbg_ptr = ptr;
823
+ ConversationIdFinalization.register(obj, obj.__wbg_ptr, obj);
824
+ return obj;
825
+ }
826
+ __destroy_into_raw() {
827
+ const ptr = this.__wbg_ptr;
828
+ this.__wbg_ptr = 0;
829
+ ConversationIdFinalization.unregister(this);
830
+ return ptr;
831
+ }
832
+ free() {
833
+ const ptr = this.__destroy_into_raw();
834
+ wasm.__wbg_conversationid_free(ptr, 0);
835
+ }
836
+ constructor(bytes) {
837
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
838
+ const len0 = WASM_VECTOR_LEN;
839
+ const ret = wasm.clientid_new(ptr0, len0);
840
+ this.__wbg_ptr = ret >>> 0;
841
+ ConversationIdFinalization.register(this, this.__wbg_ptr, this);
842
+ return this;
843
+ }
844
+ copyBytes() {
845
+ const ret = wasm.conversationid_copyBytes(this.__wbg_ptr);
846
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
847
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
890
848
  return v1;
891
849
  }
892
850
  }
@@ -911,9 +869,7 @@ class CoreCrypto {
911
869
  wasm.__wbg_corecrypto_free(ptr, 0);
912
870
  }
913
871
  client_public_key(ciphersuite, credential_type) {
914
- _assertClass(ciphersuite, Ciphersuite2);
915
- var ptr0 = ciphersuite.__destroy_into_raw();
916
- const ret = wasm.corecrypto_client_public_key(this.__wbg_ptr, ptr0, credential_type);
872
+ const ret = wasm.corecrypto_client_public_key(this.__wbg_ptr, ciphersuite, credential_type);
917
873
  return ret;
918
874
  }
919
875
  transaction(command) {
@@ -921,49 +877,52 @@ class CoreCrypto {
921
877
  return ret;
922
878
  }
923
879
  conversation_epoch(conversation_id) {
924
- const ret = wasm.corecrypto_conversation_epoch(this.__wbg_ptr, conversation_id);
880
+ _assertClass(conversation_id, ConversationId);
881
+ const ret = wasm.corecrypto_conversation_epoch(this.__wbg_ptr, conversation_id.__wbg_ptr);
925
882
  return ret;
926
883
  }
927
884
  conversation_ciphersuite(conversation_id) {
928
- const ret = wasm.corecrypto_conversation_ciphersuite(this.__wbg_ptr, conversation_id);
885
+ _assertClass(conversation_id, ConversationId);
886
+ const ret = wasm.corecrypto_conversation_ciphersuite(this.__wbg_ptr, conversation_id.__wbg_ptr);
929
887
  return ret;
930
888
  }
931
889
  conversation_exists(conversation_id) {
932
- const ret = wasm.corecrypto_conversation_exists(this.__wbg_ptr, conversation_id);
890
+ _assertClass(conversation_id, ConversationId);
891
+ const ret = wasm.corecrypto_conversation_exists(this.__wbg_ptr, conversation_id.__wbg_ptr);
933
892
  return ret;
934
893
  }
935
894
  get_client_ids(conversation_id) {
936
- const ret = wasm.corecrypto_get_client_ids(this.__wbg_ptr, conversation_id);
895
+ _assertClass(conversation_id, ConversationId);
896
+ const ret = wasm.corecrypto_get_client_ids(this.__wbg_ptr, conversation_id.__wbg_ptr);
937
897
  return ret;
938
898
  }
939
899
  get_external_sender(conversation_id) {
940
- const ret = wasm.corecrypto_get_external_sender(this.__wbg_ptr, conversation_id);
900
+ _assertClass(conversation_id, ConversationId);
901
+ const ret = wasm.corecrypto_get_external_sender(this.__wbg_ptr, conversation_id.__wbg_ptr);
941
902
  return ret;
942
903
  }
943
904
  export_secret_key(conversation_id, key_length) {
944
- const ret = wasm.corecrypto_export_secret_key(this.__wbg_ptr, conversation_id, key_length);
905
+ _assertClass(conversation_id, ConversationId);
906
+ const ret = wasm.corecrypto_export_secret_key(this.__wbg_ptr, conversation_id.__wbg_ptr, key_length);
907
+ return ret;
908
+ }
909
+ is_history_sharing_enabled(conversation_id) {
910
+ _assertClass(conversation_id, ConversationId);
911
+ const ret = wasm.corecrypto_is_history_sharing_enabled(this.__wbg_ptr, conversation_id.__wbg_ptr);
945
912
  return ret;
946
913
  }
947
914
  get_device_identities(conversation_id, device_ids) {
915
+ _assertClass(conversation_id, ConversationId);
948
916
  const ptr0 = passArrayJsValueToWasm0(device_ids, wasm.__wbindgen_malloc);
949
917
  const len0 = WASM_VECTOR_LEN;
950
- const ret = wasm.corecrypto_get_device_identities(this.__wbg_ptr, conversation_id, ptr0, len0);
918
+ const ret = wasm.corecrypto_get_device_identities(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
951
919
  return ret;
952
920
  }
953
921
  get_user_identities(conversation_id, user_ids) {
922
+ _assertClass(conversation_id, ConversationId);
954
923
  const ptr0 = passArrayJsValueToWasm0(user_ids, wasm.__wbindgen_malloc);
955
924
  const len0 = WASM_VECTOR_LEN;
956
- const ret = wasm.corecrypto_get_user_identities(this.__wbg_ptr, conversation_id, ptr0, len0);
957
- return ret;
958
- }
959
- get_credential_in_use(group_info, credential_type) {
960
- const ptr0 = passArray8ToWasm0(group_info, wasm.__wbindgen_malloc);
961
- const len0 = WASM_VECTOR_LEN;
962
- const ret = wasm.corecrypto_get_credential_in_use(this.__wbg_ptr, ptr0, len0, credential_type);
963
- return ret;
964
- }
965
- e2ei_dump_pki_env() {
966
- const ret = wasm.corecrypto_e2ei_dump_pki_env(this.__wbg_ptr);
925
+ const ret = wasm.corecrypto_get_user_identities(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
967
926
  return ret;
968
927
  }
969
928
  e2ei_is_pki_env_setup() {
@@ -971,9 +930,7 @@ class CoreCrypto {
971
930
  return ret;
972
931
  }
973
932
  e2ei_is_enabled(ciphersuite) {
974
- _assertClass(ciphersuite, Ciphersuite2);
975
- var ptr0 = ciphersuite.__destroy_into_raw();
976
- const ret = wasm.corecrypto_e2ei_is_enabled(this.__wbg_ptr, ptr0);
933
+ const ret = wasm.corecrypto_e2ei_is_enabled(this.__wbg_ptr, ciphersuite);
977
934
  return ret;
978
935
  }
979
936
  register_epoch_observer(epoch_observer) {
@@ -982,6 +939,12 @@ class CoreCrypto {
982
939
  const ret = wasm.corecrypto_register_epoch_observer(this.__wbg_ptr, ptr0);
983
940
  return ret;
984
941
  }
942
+ register_history_observer(history_observer) {
943
+ _assertClass(history_observer, HistoryObserver);
944
+ var ptr0 = history_observer.__destroy_into_raw();
945
+ const ret = wasm.corecrypto_register_history_observer(this.__wbg_ptr, ptr0);
946
+ return ret;
947
+ }
985
948
  static set_logger(logger) {
986
949
  _assertClass(logger, CoreCryptoLogger);
987
950
  var ptr0 = logger.__destroy_into_raw();
@@ -1061,16 +1024,16 @@ class CoreCrypto {
1061
1024
  const len0 = WASM_VECTOR_LEN;
1062
1025
  _assertClass(key, DatabaseKey);
1063
1026
  var ptr1 = key.__destroy_into_raw();
1064
- var ptr2 = isLikeNone(client_id) ? 0 : passArray8ToWasm0(client_id, wasm.__wbindgen_malloc);
1065
- var len2 = WASM_VECTOR_LEN;
1066
- let ptr3 = 0;
1067
- if (!isLikeNone(ciphersuites)) {
1068
- _assertClass(ciphersuites, Ciphersuites);
1069
- ptr3 = ciphersuites.__destroy_into_raw();
1027
+ let ptr2 = 0;
1028
+ if (!isLikeNone(client_id)) {
1029
+ _assertClass(client_id, ClientId);
1030
+ ptr2 = client_id.__destroy_into_raw();
1070
1031
  }
1032
+ var ptr3 = isLikeNone(ciphersuites) ? 0 : passArrayJsValueToWasm0(ciphersuites, wasm.__wbindgen_malloc);
1033
+ var len3 = WASM_VECTOR_LEN;
1071
1034
  var ptr4 = isLikeNone(entropy_seed) ? 0 : passArray8ToWasm0(entropy_seed, wasm.__wbindgen_malloc);
1072
1035
  var len4 = WASM_VECTOR_LEN;
1073
- const ret = wasm.corecrypto_async_new(ptr0, len0, ptr1, ptr2, len2, ptr3, ptr4, len4, isLikeNone(nb_key_package) ? 4294967297 : nb_key_package >>> 0);
1036
+ const ret = wasm.corecrypto_async_new(ptr0, len0, ptr1, ptr2, ptr3, len3, ptr4, len4, isLikeNone(nb_key_package) ? 4294967297 : nb_key_package >>> 0);
1074
1037
  return ret;
1075
1038
  }
1076
1039
  static deferred_init(path, key, entropy_seed) {
@@ -1088,14 +1051,10 @@ class CoreCrypto {
1088
1051
  const ret = wasm.corecrypto_close(ptr);
1089
1052
  return ret;
1090
1053
  }
1091
- can_close() {
1092
- const ret = wasm.corecrypto_can_close(this.__wbg_ptr);
1093
- return ret;
1094
- }
1095
1054
  static history_client(history_secret) {
1096
- const ptr0 = passArray8ToWasm0(history_secret, wasm.__wbindgen_malloc);
1097
- const len0 = WASM_VECTOR_LEN;
1098
- const ret = wasm.corecrypto_history_client(ptr0, len0);
1055
+ _assertClass(history_secret, HistorySecret);
1056
+ var ptr0 = history_secret.__destroy_into_raw();
1057
+ const ret = wasm.corecrypto_history_client(ptr0);
1099
1058
  return ret;
1100
1059
  }
1101
1060
  }
@@ -1128,9 +1087,7 @@ class CoreCryptoContext {
1128
1087
  const len2 = WASM_VECTOR_LEN;
1129
1088
  var ptr3 = isLikeNone(team) ? 0 : passStringToWasm0(team, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1130
1089
  var len3 = WASM_VECTOR_LEN;
1131
- _assertClass(ciphersuite, Ciphersuite2);
1132
- var ptr4 = ciphersuite.__destroy_into_raw();
1133
- const ret = wasm.corecryptocontext_e2ei_new_enrollment(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, expiry_sec, ptr4);
1090
+ const ret = wasm.corecryptocontext_e2ei_new_enrollment(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, expiry_sec, ciphersuite);
1134
1091
  return ret;
1135
1092
  }
1136
1093
  e2ei_new_activation_enrollment(display_name, handle, team, expiry_sec, ciphersuite) {
@@ -1140,9 +1097,7 @@ class CoreCryptoContext {
1140
1097
  const len1 = WASM_VECTOR_LEN;
1141
1098
  var ptr2 = isLikeNone(team) ? 0 : passStringToWasm0(team, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1142
1099
  var len2 = WASM_VECTOR_LEN;
1143
- _assertClass(ciphersuite, Ciphersuite2);
1144
- var ptr3 = ciphersuite.__destroy_into_raw();
1145
- const ret = wasm.corecryptocontext_e2ei_new_activation_enrollment(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, expiry_sec, ptr3);
1100
+ const ret = wasm.corecryptocontext_e2ei_new_activation_enrollment(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, expiry_sec, ciphersuite);
1146
1101
  return ret;
1147
1102
  }
1148
1103
  e2ei_new_rotate_enrollment(display_name, handle, team, expiry_sec, ciphersuite) {
@@ -1152,9 +1107,7 @@ class CoreCryptoContext {
1152
1107
  var len1 = WASM_VECTOR_LEN;
1153
1108
  var ptr2 = isLikeNone(team) ? 0 : passStringToWasm0(team, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1154
1109
  var len2 = WASM_VECTOR_LEN;
1155
- _assertClass(ciphersuite, Ciphersuite2);
1156
- var ptr3 = ciphersuite.__destroy_into_raw();
1157
- const ret = wasm.corecryptocontext_e2ei_new_rotate_enrollment(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, expiry_sec, ptr3);
1110
+ const ret = wasm.corecryptocontext_e2ei_new_rotate_enrollment(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, expiry_sec, ciphersuite);
1158
1111
  return ret;
1159
1112
  }
1160
1113
  e2ei_register_acme_ca(trust_anchor_pem) {
@@ -1186,7 +1139,8 @@ class CoreCryptoContext {
1186
1139
  return ret;
1187
1140
  }
1188
1141
  e2ei_rotate(conversation_id) {
1189
- const ret = wasm.corecryptocontext_e2ei_rotate(this.__wbg_ptr, conversation_id);
1142
+ _assertClass(conversation_id, ConversationId);
1143
+ const ret = wasm.corecryptocontext_e2ei_rotate(this.__wbg_ptr, conversation_id.__wbg_ptr);
1190
1144
  return ret;
1191
1145
  }
1192
1146
  save_x509_credential(enrollment, certificate_chain) {
@@ -1198,9 +1152,7 @@ class CoreCryptoContext {
1198
1152
  return ret;
1199
1153
  }
1200
1154
  delete_stale_key_packages(ciphersuite) {
1201
- _assertClass(ciphersuite, Ciphersuite2);
1202
- var ptr0 = ciphersuite.__destroy_into_raw();
1203
- const ret = wasm.corecryptocontext_delete_stale_key_packages(this.__wbg_ptr, ptr0);
1155
+ const ret = wasm.corecryptocontext_delete_stale_key_packages(this.__wbg_ptr, ciphersuite);
1204
1156
  return ret;
1205
1157
  }
1206
1158
  e2ei_enrollment_stash(enrollment) {
@@ -1216,35 +1168,26 @@ class CoreCryptoContext {
1216
1168
  return ret;
1217
1169
  }
1218
1170
  e2ei_conversation_state(conversation_id) {
1219
- const ret = wasm.corecryptocontext_e2ei_conversation_state(this.__wbg_ptr, conversation_id);
1171
+ _assertClass(conversation_id, ConversationId);
1172
+ const ret = wasm.corecryptocontext_e2ei_conversation_state(this.__wbg_ptr, conversation_id.__wbg_ptr);
1220
1173
  return ret;
1221
1174
  }
1222
1175
  e2ei_is_enabled(ciphersuite) {
1223
- _assertClass(ciphersuite, Ciphersuite2);
1224
- var ptr0 = ciphersuite.__destroy_into_raw();
1225
- const ret = wasm.corecryptocontext_e2ei_is_enabled(this.__wbg_ptr, ptr0);
1176
+ const ret = wasm.corecryptocontext_e2ei_is_enabled(this.__wbg_ptr, ciphersuite);
1226
1177
  return ret;
1227
1178
  }
1228
1179
  get_device_identities(conversation_id, device_ids) {
1180
+ _assertClass(conversation_id, ConversationId);
1229
1181
  const ptr0 = passArrayJsValueToWasm0(device_ids, wasm.__wbindgen_malloc);
1230
1182
  const len0 = WASM_VECTOR_LEN;
1231
- const ret = wasm.corecryptocontext_get_device_identities(this.__wbg_ptr, conversation_id, ptr0, len0);
1183
+ const ret = wasm.corecryptocontext_get_device_identities(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
1232
1184
  return ret;
1233
1185
  }
1234
1186
  get_user_identities(conversation_id, user_ids) {
1187
+ _assertClass(conversation_id, ConversationId);
1235
1188
  const ptr0 = passArrayJsValueToWasm0(user_ids, wasm.__wbindgen_malloc);
1236
1189
  const len0 = WASM_VECTOR_LEN;
1237
- const ret = wasm.corecryptocontext_get_user_identities(this.__wbg_ptr, conversation_id, ptr0, len0);
1238
- return ret;
1239
- }
1240
- get_credential_in_use(group_info, credential_type) {
1241
- const ptr0 = passArray8ToWasm0(group_info, wasm.__wbindgen_malloc);
1242
- const len0 = WASM_VECTOR_LEN;
1243
- const ret = wasm.corecryptocontext_get_credential_in_use(this.__wbg_ptr, ptr0, len0, credential_type);
1244
- return ret;
1245
- }
1246
- e2ei_dump_pki_env() {
1247
- const ret = wasm.corecryptocontext_e2ei_dump_pki_env(this.__wbg_ptr);
1190
+ const ret = wasm.corecryptocontext_get_user_identities(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
1248
1191
  return ret;
1249
1192
  }
1250
1193
  e2ei_is_pki_env_setup() {
@@ -1254,135 +1197,133 @@ class CoreCryptoContext {
1254
1197
  mls_init(client_id, ciphersuites, nb_key_package) {
1255
1198
  _assertClass(client_id, ClientId);
1256
1199
  var ptr0 = client_id.__destroy_into_raw();
1257
- _assertClass(ciphersuites, Ciphersuites);
1258
- var ptr1 = ciphersuites.__destroy_into_raw();
1259
- const ret = wasm.corecryptocontext_mls_init(this.__wbg_ptr, ptr0, ptr1, isLikeNone(nb_key_package) ? 4294967297 : nb_key_package >>> 0);
1260
- return ret;
1261
- }
1262
- mls_generate_keypairs(ciphersuites) {
1263
- _assertClass(ciphersuites, Ciphersuites);
1264
- var ptr0 = ciphersuites.__destroy_into_raw();
1265
- const ret = wasm.corecryptocontext_mls_generate_keypairs(this.__wbg_ptr, ptr0);
1266
- return ret;
1267
- }
1268
- mls_init_with_client_id(client_id, tmp_client_ids, ciphersuites) {
1269
- _assertClass(client_id, ClientId);
1270
- var ptr0 = client_id.__destroy_into_raw();
1271
- const ptr1 = passArrayJsValueToWasm0(tmp_client_ids, wasm.__wbindgen_malloc);
1200
+ const ptr1 = passArrayJsValueToWasm0(ciphersuites, wasm.__wbindgen_malloc);
1272
1201
  const len1 = WASM_VECTOR_LEN;
1273
- _assertClass(ciphersuites, Ciphersuites);
1274
- var ptr2 = ciphersuites.__destroy_into_raw();
1275
- const ret = wasm.corecryptocontext_mls_init_with_client_id(this.__wbg_ptr, ptr0, ptr1, len1, ptr2);
1202
+ const ret = wasm.corecryptocontext_mls_init(this.__wbg_ptr, ptr0, ptr1, len1, isLikeNone(nb_key_package) ? 4294967297 : nb_key_package >>> 0);
1276
1203
  return ret;
1277
1204
  }
1278
1205
  client_public_key(ciphersuite, credential_type) {
1279
- _assertClass(ciphersuite, Ciphersuite2);
1280
- var ptr0 = ciphersuite.__destroy_into_raw();
1281
- const ret = wasm.corecryptocontext_client_public_key(this.__wbg_ptr, ptr0, credential_type);
1206
+ const ret = wasm.corecryptocontext_client_public_key(this.__wbg_ptr, ciphersuite, credential_type);
1282
1207
  return ret;
1283
1208
  }
1284
1209
  conversation_epoch(conversation_id) {
1285
- const ret = wasm.corecryptocontext_conversation_epoch(this.__wbg_ptr, conversation_id);
1210
+ _assertClass(conversation_id, ConversationId);
1211
+ const ret = wasm.corecryptocontext_conversation_epoch(this.__wbg_ptr, conversation_id.__wbg_ptr);
1286
1212
  return ret;
1287
1213
  }
1288
1214
  conversation_ciphersuite(conversation_id) {
1289
- const ret = wasm.corecryptocontext_conversation_ciphersuite(this.__wbg_ptr, conversation_id);
1215
+ _assertClass(conversation_id, ConversationId);
1216
+ const ret = wasm.corecryptocontext_conversation_ciphersuite(this.__wbg_ptr, conversation_id.__wbg_ptr);
1290
1217
  return ret;
1291
1218
  }
1292
1219
  conversation_exists(conversation_id) {
1293
- const ret = wasm.corecryptocontext_conversation_exists(this.__wbg_ptr, conversation_id);
1220
+ _assertClass(conversation_id, ConversationId);
1221
+ const ret = wasm.corecryptocontext_conversation_exists(this.__wbg_ptr, conversation_id.__wbg_ptr);
1294
1222
  return ret;
1295
1223
  }
1296
1224
  get_client_ids(conversation_id) {
1297
- const ret = wasm.corecryptocontext_get_client_ids(this.__wbg_ptr, conversation_id);
1225
+ _assertClass(conversation_id, ConversationId);
1226
+ const ret = wasm.corecryptocontext_get_client_ids(this.__wbg_ptr, conversation_id.__wbg_ptr);
1298
1227
  return ret;
1299
1228
  }
1300
1229
  export_secret_key(conversation_id, key_length) {
1301
- const ret = wasm.corecryptocontext_export_secret_key(this.__wbg_ptr, conversation_id, key_length);
1230
+ _assertClass(conversation_id, ConversationId);
1231
+ const ret = wasm.corecryptocontext_export_secret_key(this.__wbg_ptr, conversation_id.__wbg_ptr, key_length);
1302
1232
  return ret;
1303
1233
  }
1304
1234
  get_external_sender(conversation_id) {
1305
- const ret = wasm.corecryptocontext_get_external_sender(this.__wbg_ptr, conversation_id);
1235
+ _assertClass(conversation_id, ConversationId);
1236
+ const ret = wasm.corecryptocontext_get_external_sender(this.__wbg_ptr, conversation_id.__wbg_ptr);
1306
1237
  return ret;
1307
1238
  }
1308
1239
  client_keypackages(ciphersuite, credential_type, amount_requested) {
1309
- _assertClass(ciphersuite, Ciphersuite2);
1310
- var ptr0 = ciphersuite.__destroy_into_raw();
1311
- const ret = wasm.corecryptocontext_client_keypackages(this.__wbg_ptr, ptr0, credential_type, amount_requested);
1240
+ const ret = wasm.corecryptocontext_client_keypackages(this.__wbg_ptr, ciphersuite, credential_type, amount_requested);
1312
1241
  return ret;
1313
1242
  }
1314
1243
  client_valid_keypackages_count(ciphersuite, credential_type) {
1315
- _assertClass(ciphersuite, Ciphersuite2);
1316
- var ptr0 = ciphersuite.__destroy_into_raw();
1317
- const ret = wasm.corecryptocontext_client_valid_keypackages_count(this.__wbg_ptr, ptr0, credential_type);
1318
- return ret;
1319
- }
1320
- delete_keypackages(refs) {
1321
- _assertClass(refs, ArrayOfByteArray);
1322
- var ptr0 = refs.__destroy_into_raw();
1323
- const ret = wasm.corecryptocontext_delete_keypackages(this.__wbg_ptr, ptr0);
1244
+ const ret = wasm.corecryptocontext_client_valid_keypackages_count(this.__wbg_ptr, ciphersuite, credential_type);
1324
1245
  return ret;
1325
1246
  }
1326
1247
  create_conversation(conversation_id, creator_credential_type, config) {
1248
+ _assertClass(conversation_id, ConversationId);
1327
1249
  _assertClass(config, ConversationConfiguration);
1328
1250
  var ptr0 = config.__destroy_into_raw();
1329
- const ret = wasm.corecryptocontext_create_conversation(this.__wbg_ptr, conversation_id, creator_credential_type, ptr0);
1251
+ const ret = wasm.corecryptocontext_create_conversation(this.__wbg_ptr, conversation_id.__wbg_ptr, creator_credential_type, ptr0);
1330
1252
  return ret;
1331
1253
  }
1332
1254
  process_welcome_message(welcome_message, custom_configuration) {
1333
- const ptr0 = passArray8ToWasm0(welcome_message, wasm.__wbindgen_malloc);
1334
- const len0 = WASM_VECTOR_LEN;
1255
+ _assertClass(welcome_message, Welcome);
1256
+ var ptr0 = welcome_message.__destroy_into_raw();
1335
1257
  _assertClass(custom_configuration, CustomConfiguration);
1336
1258
  var ptr1 = custom_configuration.__destroy_into_raw();
1337
- const ret = wasm.corecryptocontext_process_welcome_message(this.__wbg_ptr, ptr0, len0, ptr1);
1259
+ const ret = wasm.corecryptocontext_process_welcome_message(this.__wbg_ptr, ptr0, ptr1);
1338
1260
  return ret;
1339
1261
  }
1340
1262
  add_clients_to_conversation(conversation_id, key_packages) {
1341
- _assertClass(key_packages, ArrayOfByteArray);
1342
- var ptr0 = key_packages.__destroy_into_raw();
1343
- const ret = wasm.corecryptocontext_add_clients_to_conversation(this.__wbg_ptr, conversation_id, ptr0);
1263
+ _assertClass(conversation_id, ConversationId);
1264
+ const ptr0 = passArrayJsValueToWasm0(key_packages, wasm.__wbindgen_malloc);
1265
+ const len0 = WASM_VECTOR_LEN;
1266
+ const ret = wasm.corecryptocontext_add_clients_to_conversation(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
1344
1267
  return ret;
1345
1268
  }
1346
1269
  remove_clients_from_conversation(conversation_id, clients) {
1270
+ _assertClass(conversation_id, ConversationId);
1347
1271
  const ptr0 = passArrayJsValueToWasm0(clients, wasm.__wbindgen_malloc);
1348
1272
  const len0 = WASM_VECTOR_LEN;
1349
- const ret = wasm.corecryptocontext_remove_clients_from_conversation(this.__wbg_ptr, conversation_id, ptr0, len0);
1273
+ const ret = wasm.corecryptocontext_remove_clients_from_conversation(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
1350
1274
  return ret;
1351
1275
  }
1352
1276
  mark_conversation_as_child_of(child_id, parent_id) {
1353
- const ret = wasm.corecryptocontext_mark_conversation_as_child_of(this.__wbg_ptr, child_id, parent_id);
1277
+ _assertClass(child_id, ConversationId);
1278
+ _assertClass(parent_id, ConversationId);
1279
+ const ret = wasm.corecryptocontext_mark_conversation_as_child_of(this.__wbg_ptr, child_id.__wbg_ptr, parent_id.__wbg_ptr);
1354
1280
  return ret;
1355
1281
  }
1356
1282
  update_keying_material(conversation_id) {
1357
- const ret = wasm.corecryptocontext_update_keying_material(this.__wbg_ptr, conversation_id);
1283
+ _assertClass(conversation_id, ConversationId);
1284
+ const ret = wasm.corecryptocontext_update_keying_material(this.__wbg_ptr, conversation_id.__wbg_ptr);
1358
1285
  return ret;
1359
1286
  }
1360
1287
  commit_pending_proposals(conversation_id) {
1361
- const ret = wasm.corecryptocontext_commit_pending_proposals(this.__wbg_ptr, conversation_id);
1288
+ _assertClass(conversation_id, ConversationId);
1289
+ const ret = wasm.corecryptocontext_commit_pending_proposals(this.__wbg_ptr, conversation_id.__wbg_ptr);
1362
1290
  return ret;
1363
1291
  }
1364
1292
  wipe_conversation(conversation_id) {
1365
- const ret = wasm.corecryptocontext_wipe_conversation(this.__wbg_ptr, conversation_id);
1293
+ _assertClass(conversation_id, ConversationId);
1294
+ const ret = wasm.corecryptocontext_wipe_conversation(this.__wbg_ptr, conversation_id.__wbg_ptr);
1366
1295
  return ret;
1367
1296
  }
1368
1297
  decrypt_message(conversation_id, payload) {
1298
+ _assertClass(conversation_id, ConversationId);
1369
1299
  const ptr0 = passArray8ToWasm0(payload, wasm.__wbindgen_malloc);
1370
1300
  const len0 = WASM_VECTOR_LEN;
1371
- const ret = wasm.corecryptocontext_decrypt_message(this.__wbg_ptr, conversation_id, ptr0, len0);
1301
+ const ret = wasm.corecryptocontext_decrypt_message(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
1372
1302
  return ret;
1373
1303
  }
1374
1304
  encrypt_message(conversation_id, message) {
1305
+ _assertClass(conversation_id, ConversationId);
1375
1306
  const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc);
1376
1307
  const len0 = WASM_VECTOR_LEN;
1377
- const ret = wasm.corecryptocontext_encrypt_message(this.__wbg_ptr, conversation_id, ptr0, len0);
1308
+ const ret = wasm.corecryptocontext_encrypt_message(this.__wbg_ptr, conversation_id.__wbg_ptr, ptr0, len0);
1378
1309
  return ret;
1379
1310
  }
1380
1311
  join_by_external_commit(group_info, custom_configuration, credential_type) {
1381
- const ptr0 = passArray8ToWasm0(group_info, wasm.__wbindgen_malloc);
1382
- const len0 = WASM_VECTOR_LEN;
1312
+ _assertClass(group_info, GroupInfo);
1313
+ var ptr0 = group_info.__destroy_into_raw();
1383
1314
  _assertClass(custom_configuration, CustomConfiguration);
1384
1315
  var ptr1 = custom_configuration.__destroy_into_raw();
1385
- const ret = wasm.corecryptocontext_join_by_external_commit(this.__wbg_ptr, ptr0, len0, ptr1, credential_type);
1316
+ const ret = wasm.corecryptocontext_join_by_external_commit(this.__wbg_ptr, ptr0, ptr1, credential_type);
1317
+ return ret;
1318
+ }
1319
+ enable_history_sharing(conversation_id) {
1320
+ _assertClass(conversation_id, ConversationId);
1321
+ const ret = wasm.corecryptocontext_enable_history_sharing(this.__wbg_ptr, conversation_id.__wbg_ptr);
1322
+ return ret;
1323
+ }
1324
+ disable_history_sharing(conversation_id) {
1325
+ _assertClass(conversation_id, ConversationId);
1326
+ const ret = wasm.corecryptocontext_disable_history_sharing(this.__wbg_ptr, conversation_id.__wbg_ptr);
1386
1327
  return ret;
1387
1328
  }
1388
1329
  proteus_init() {
@@ -1718,51 +1659,11 @@ class DecryptedMessage {
1718
1659
  }
1719
1660
  get crlNewDistributionPoints() {
1720
1661
  const ret = wasm.__wbg_get_decryptedmessage_crlNewDistributionPoints(this.__wbg_ptr);
1721
- return NewCrlDistributionPoints.__wrap(ret);
1722
- }
1723
- }
1724
- var E2eiDumpedPkiEnvFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_e2eidumpedpkienv_free(ptr >>> 0, 1));
1725
-
1726
- class E2eiDumpedPkiEnv {
1727
- static __wrap(ptr) {
1728
- ptr = ptr >>> 0;
1729
- const obj = Object.create(E2eiDumpedPkiEnv.prototype);
1730
- obj.__wbg_ptr = ptr;
1731
- E2eiDumpedPkiEnvFinalization.register(obj, obj.__wbg_ptr, obj);
1732
- return obj;
1733
- }
1734
- __destroy_into_raw() {
1735
- const ptr = this.__wbg_ptr;
1736
- this.__wbg_ptr = 0;
1737
- E2eiDumpedPkiEnvFinalization.unregister(this);
1738
- return ptr;
1739
- }
1740
- free() {
1741
- const ptr = this.__destroy_into_raw();
1742
- wasm.__wbg_e2eidumpedpkienv_free(ptr, 0);
1743
- }
1744
- get root_ca() {
1745
- let deferred1_0;
1746
- let deferred1_1;
1747
- try {
1748
- const ret = wasm.__wbg_get_e2eidumpedpkienv_root_ca(this.__wbg_ptr);
1749
- deferred1_0 = ret[0];
1750
- deferred1_1 = ret[1];
1751
- return getStringFromWasm0(ret[0], ret[1]);
1752
- } finally {
1753
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
1662
+ let v1;
1663
+ if (ret[0] !== 0) {
1664
+ v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
1665
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
1754
1666
  }
1755
- }
1756
- get intermediates() {
1757
- const ret = wasm.__wbg_get_e2eidumpedpkienv_intermediates(this.__wbg_ptr);
1758
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
1759
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
1760
- return v1;
1761
- }
1762
- get crls() {
1763
- const ret = wasm.__wbg_get_e2eidumpedpkienv_crls(this.__wbg_ptr);
1764
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
1765
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
1766
1667
  return v1;
1767
1668
  }
1768
1669
  }
@@ -1789,6 +1690,47 @@ class EpochObserver {
1789
1690
  return this;
1790
1691
  }
1791
1692
  }
1693
+ var ExternalSenderKeyFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_externalsenderkey_free(ptr >>> 0, 1));
1694
+
1695
+ class ExternalSenderKey {
1696
+ static __wrap(ptr) {
1697
+ ptr = ptr >>> 0;
1698
+ const obj = Object.create(ExternalSenderKey.prototype);
1699
+ obj.__wbg_ptr = ptr;
1700
+ ExternalSenderKeyFinalization.register(obj, obj.__wbg_ptr, obj);
1701
+ return obj;
1702
+ }
1703
+ static __unwrap(jsValue) {
1704
+ if (!(jsValue instanceof ExternalSenderKey)) {
1705
+ return 0;
1706
+ }
1707
+ return jsValue.__destroy_into_raw();
1708
+ }
1709
+ __destroy_into_raw() {
1710
+ const ptr = this.__wbg_ptr;
1711
+ this.__wbg_ptr = 0;
1712
+ ExternalSenderKeyFinalization.unregister(this);
1713
+ return ptr;
1714
+ }
1715
+ free() {
1716
+ const ptr = this.__destroy_into_raw();
1717
+ wasm.__wbg_externalsenderkey_free(ptr, 0);
1718
+ }
1719
+ constructor(bytes) {
1720
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
1721
+ const len0 = WASM_VECTOR_LEN;
1722
+ const ret = wasm.clientid_new(ptr0, len0);
1723
+ this.__wbg_ptr = ret >>> 0;
1724
+ ExternalSenderKeyFinalization.register(this, this.__wbg_ptr, this);
1725
+ return this;
1726
+ }
1727
+ copyBytes() {
1728
+ const ret = wasm.externalsenderkey_copyBytes(this.__wbg_ptr);
1729
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1730
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1731
+ return v1;
1732
+ }
1733
+ }
1792
1734
  var FfiWireE2EIdentityFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_ffiwiree2eidentity_free(ptr >>> 0, 1));
1793
1735
 
1794
1736
  class FfiWireE2EIdentity {
@@ -1920,6 +1862,41 @@ class FfiWireE2EIdentity {
1920
1862
  return ret;
1921
1863
  }
1922
1864
  }
1865
+ var GroupInfoFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_groupinfo_free(ptr >>> 0, 1));
1866
+
1867
+ class GroupInfo {
1868
+ static __wrap(ptr) {
1869
+ ptr = ptr >>> 0;
1870
+ const obj = Object.create(GroupInfo.prototype);
1871
+ obj.__wbg_ptr = ptr;
1872
+ GroupInfoFinalization.register(obj, obj.__wbg_ptr, obj);
1873
+ return obj;
1874
+ }
1875
+ __destroy_into_raw() {
1876
+ const ptr = this.__wbg_ptr;
1877
+ this.__wbg_ptr = 0;
1878
+ GroupInfoFinalization.unregister(this);
1879
+ return ptr;
1880
+ }
1881
+ free() {
1882
+ const ptr = this.__destroy_into_raw();
1883
+ wasm.__wbg_groupinfo_free(ptr, 0);
1884
+ }
1885
+ constructor(bytes) {
1886
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
1887
+ const len0 = WASM_VECTOR_LEN;
1888
+ const ret = wasm.clientid_new(ptr0, len0);
1889
+ this.__wbg_ptr = ret >>> 0;
1890
+ GroupInfoFinalization.register(this, this.__wbg_ptr, this);
1891
+ return this;
1892
+ }
1893
+ copyBytes() {
1894
+ const ret = wasm.groupinfo_copyBytes(this.__wbg_ptr);
1895
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1896
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1897
+ return v1;
1898
+ }
1899
+ }
1923
1900
  var GroupInfoBundleFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_groupinfobundle_free(ptr >>> 0, 1));
1924
1901
 
1925
1902
  class GroupInfoBundle {
@@ -1956,14 +1933,120 @@ class GroupInfoBundle {
1956
1933
  }
1957
1934
  get payload() {
1958
1935
  const ret = wasm.__wbg_get_groupinfobundle_payload(this.__wbg_ptr);
1936
+ return GroupInfo.__wrap(ret);
1937
+ }
1938
+ set payload(arg0) {
1939
+ _assertClass(arg0, GroupInfo);
1940
+ var ptr0 = arg0.__destroy_into_raw();
1941
+ wasm.__wbg_set_groupinfobundle_payload(this.__wbg_ptr, ptr0);
1942
+ }
1943
+ }
1944
+ var HistoryObserverFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_historyobserver_free(ptr >>> 0, 1));
1945
+
1946
+ class HistoryObserver {
1947
+ __destroy_into_raw() {
1948
+ const ptr = this.__wbg_ptr;
1949
+ this.__wbg_ptr = 0;
1950
+ HistoryObserverFinalization.unregister(this);
1951
+ return ptr;
1952
+ }
1953
+ free() {
1954
+ const ptr = this.__destroy_into_raw();
1955
+ wasm.__wbg_historyobserver_free(ptr, 0);
1956
+ }
1957
+ constructor(this_context, history_client_created) {
1958
+ const ret = wasm.historyobserver_new(this_context, history_client_created);
1959
+ if (ret[2]) {
1960
+ throw takeFromExternrefTable0(ret[1]);
1961
+ }
1962
+ this.__wbg_ptr = ret[0] >>> 0;
1963
+ HistoryObserverFinalization.register(this, this.__wbg_ptr, this);
1964
+ return this;
1965
+ }
1966
+ }
1967
+ var HistorySecretFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_historysecret_free(ptr >>> 0, 1));
1968
+
1969
+ class HistorySecret {
1970
+ static __wrap(ptr) {
1971
+ ptr = ptr >>> 0;
1972
+ const obj = Object.create(HistorySecret.prototype);
1973
+ obj.__wbg_ptr = ptr;
1974
+ HistorySecretFinalization.register(obj, obj.__wbg_ptr, obj);
1975
+ return obj;
1976
+ }
1977
+ __destroy_into_raw() {
1978
+ const ptr = this.__wbg_ptr;
1979
+ this.__wbg_ptr = 0;
1980
+ HistorySecretFinalization.unregister(this);
1981
+ return ptr;
1982
+ }
1983
+ free() {
1984
+ const ptr = this.__destroy_into_raw();
1985
+ wasm.__wbg_historysecret_free(ptr, 0);
1986
+ }
1987
+ get clientId() {
1988
+ const ret = wasm.__wbg_get_historysecret_clientId(this.__wbg_ptr);
1989
+ return ClientId.__wrap(ret);
1990
+ }
1991
+ get data() {
1992
+ const ret = wasm.__wbg_get_historysecret_data(this.__wbg_ptr);
1959
1993
  var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1960
1994
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1961
1995
  return v1;
1962
1996
  }
1963
- set payload(arg0) {
1964
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1997
+ constructor(client_id, data) {
1998
+ _assertClass(client_id, ClientId);
1999
+ var ptr0 = client_id.__destroy_into_raw();
2000
+ const ptr1 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
2001
+ const len1 = WASM_VECTOR_LEN;
2002
+ const ret = wasm.historysecret_new(ptr0, ptr1, len1);
2003
+ if (ret[2]) {
2004
+ throw takeFromExternrefTable0(ret[1]);
2005
+ }
2006
+ this.__wbg_ptr = ret[0] >>> 0;
2007
+ HistorySecretFinalization.register(this, this.__wbg_ptr, this);
2008
+ return this;
2009
+ }
2010
+ }
2011
+ var KeyPackageFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_keypackage_free(ptr >>> 0, 1));
2012
+
2013
+ class KeyPackage {
2014
+ static __wrap(ptr) {
2015
+ ptr = ptr >>> 0;
2016
+ const obj = Object.create(KeyPackage.prototype);
2017
+ obj.__wbg_ptr = ptr;
2018
+ KeyPackageFinalization.register(obj, obj.__wbg_ptr, obj);
2019
+ return obj;
2020
+ }
2021
+ static __unwrap(jsValue) {
2022
+ if (!(jsValue instanceof KeyPackage)) {
2023
+ return 0;
2024
+ }
2025
+ return jsValue.__destroy_into_raw();
2026
+ }
2027
+ __destroy_into_raw() {
2028
+ const ptr = this.__wbg_ptr;
2029
+ this.__wbg_ptr = 0;
2030
+ KeyPackageFinalization.unregister(this);
2031
+ return ptr;
2032
+ }
2033
+ free() {
2034
+ const ptr = this.__destroy_into_raw();
2035
+ wasm.__wbg_keypackage_free(ptr, 0);
2036
+ }
2037
+ constructor(bytes) {
2038
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
1965
2039
  const len0 = WASM_VECTOR_LEN;
1966
- wasm.__wbg_set_commitbundle_commit(this.__wbg_ptr, ptr0, len0);
2040
+ const ret = wasm.clientid_new(ptr0, len0);
2041
+ this.__wbg_ptr = ret >>> 0;
2042
+ KeyPackageFinalization.register(this, this.__wbg_ptr, this);
2043
+ return this;
2044
+ }
2045
+ copyBytes() {
2046
+ const ret = wasm.keypackage_copyBytes(this.__wbg_ptr);
2047
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
2048
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
2049
+ return v1;
1967
2050
  }
1968
2051
  }
1969
2052
  var MlsTransportFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_mlstransport_free(ptr >>> 0, 1));
@@ -1979,8 +2062,8 @@ class MlsTransport {
1979
2062
  const ptr = this.__destroy_into_raw();
1980
2063
  wasm.__wbg_mlstransport_free(ptr, 0);
1981
2064
  }
1982
- constructor(this_context, send_commit_bundle, send_message) {
1983
- const ret = wasm.mlstransport_new(this_context, send_commit_bundle, send_message);
2065
+ constructor(this_context, send_commit_bundle, send_message, prepare_for_transport) {
2066
+ const ret = wasm.mlstransport_new(this_context, send_commit_bundle, send_message, prepare_for_transport);
1984
2067
  if (ret[2]) {
1985
2068
  throw takeFromExternrefTable0(ret[1]);
1986
2069
  }
@@ -1989,6 +2072,34 @@ class MlsTransport {
1989
2072
  return this;
1990
2073
  }
1991
2074
  }
2075
+ var MlsTransportDataFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_mlstransportdata_free(ptr >>> 0, 1));
2076
+
2077
+ class MlsTransportData {
2078
+ __destroy_into_raw() {
2079
+ const ptr = this.__wbg_ptr;
2080
+ this.__wbg_ptr = 0;
2081
+ MlsTransportDataFinalization.unregister(this);
2082
+ return ptr;
2083
+ }
2084
+ free() {
2085
+ const ptr = this.__destroy_into_raw();
2086
+ wasm.__wbg_mlstransportdata_free(ptr, 0);
2087
+ }
2088
+ get data() {
2089
+ const ret = wasm.__wbg_get_mlstransportdata_data(this.__wbg_ptr);
2090
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
2091
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
2092
+ return v1;
2093
+ }
2094
+ constructor(buf) {
2095
+ const ptr0 = passArray8ToWasm0(buf, wasm.__wbindgen_malloc);
2096
+ const len0 = WASM_VECTOR_LEN;
2097
+ const ret = wasm.mlstransportdata_new(ptr0, len0);
2098
+ this.__wbg_ptr = ret >>> 0;
2099
+ MlsTransportDataFinalization.register(this, this.__wbg_ptr, this);
2100
+ return this;
2101
+ }
2102
+ }
1992
2103
  var MlsTransportResponseFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_mlstransportresponse_free(ptr >>> 0, 1));
1993
2104
 
1994
2105
  class MlsTransportResponse {
@@ -2120,62 +2231,102 @@ class NewAcmeOrder {
2120
2231
  return v1;
2121
2232
  }
2122
2233
  }
2123
- var NewCrlDistributionPointsFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_newcrldistributionpoints_free(ptr >>> 0, 1));
2234
+ var ProteusAutoPrekeyBundleFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_proteusautoprekeybundle_free(ptr >>> 0, 1));
2124
2235
 
2125
- class NewCrlDistributionPoints {
2236
+ class ProteusAutoPrekeyBundle {
2126
2237
  static __wrap(ptr) {
2127
2238
  ptr = ptr >>> 0;
2128
- const obj = Object.create(NewCrlDistributionPoints.prototype);
2239
+ const obj = Object.create(ProteusAutoPrekeyBundle.prototype);
2129
2240
  obj.__wbg_ptr = ptr;
2130
- NewCrlDistributionPointsFinalization.register(obj, obj.__wbg_ptr, obj);
2241
+ ProteusAutoPrekeyBundleFinalization.register(obj, obj.__wbg_ptr, obj);
2131
2242
  return obj;
2132
2243
  }
2133
2244
  __destroy_into_raw() {
2134
2245
  const ptr = this.__wbg_ptr;
2135
2246
  this.__wbg_ptr = 0;
2136
- NewCrlDistributionPointsFinalization.unregister(this);
2247
+ ProteusAutoPrekeyBundleFinalization.unregister(this);
2137
2248
  return ptr;
2138
2249
  }
2139
2250
  free() {
2140
2251
  const ptr = this.__destroy_into_raw();
2141
- wasm.__wbg_newcrldistributionpoints_free(ptr, 0);
2252
+ wasm.__wbg_proteusautoprekeybundle_free(ptr, 0);
2142
2253
  }
2143
- as_strings() {
2144
- const ret = wasm.newcrldistributionpoints_as_strings(this.__wbg_ptr);
2145
- let v1;
2146
- if (ret[0] !== 0) {
2147
- v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
2148
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
2149
- }
2254
+ get id() {
2255
+ const ret = wasm.__wbg_get_proteusautoprekeybundle_id(this.__wbg_ptr);
2256
+ return ret;
2257
+ }
2258
+ get pkb() {
2259
+ const ret = wasm.__wbg_get_proteusautoprekeybundle_pkb(this.__wbg_ptr);
2260
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
2261
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
2150
2262
  return v1;
2151
2263
  }
2152
2264
  }
2153
- var ProteusAutoPrekeyBundleFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_proteusautoprekeybundle_free(ptr >>> 0, 1));
2265
+ var SecretKeyFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_secretkey_free(ptr >>> 0, 1));
2154
2266
 
2155
- class ProteusAutoPrekeyBundle {
2267
+ class SecretKey {
2156
2268
  static __wrap(ptr) {
2157
2269
  ptr = ptr >>> 0;
2158
- const obj = Object.create(ProteusAutoPrekeyBundle.prototype);
2270
+ const obj = Object.create(SecretKey.prototype);
2159
2271
  obj.__wbg_ptr = ptr;
2160
- ProteusAutoPrekeyBundleFinalization.register(obj, obj.__wbg_ptr, obj);
2272
+ SecretKeyFinalization.register(obj, obj.__wbg_ptr, obj);
2161
2273
  return obj;
2162
2274
  }
2163
2275
  __destroy_into_raw() {
2164
2276
  const ptr = this.__wbg_ptr;
2165
2277
  this.__wbg_ptr = 0;
2166
- ProteusAutoPrekeyBundleFinalization.unregister(this);
2278
+ SecretKeyFinalization.unregister(this);
2167
2279
  return ptr;
2168
2280
  }
2169
2281
  free() {
2170
2282
  const ptr = this.__destroy_into_raw();
2171
- wasm.__wbg_proteusautoprekeybundle_free(ptr, 0);
2283
+ wasm.__wbg_secretkey_free(ptr, 0);
2172
2284
  }
2173
- get id() {
2174
- const ret = wasm.__wbg_get_proteusautoprekeybundle_id(this.__wbg_ptr);
2175
- return ret;
2285
+ constructor(bytes) {
2286
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
2287
+ const len0 = WASM_VECTOR_LEN;
2288
+ const ret = wasm.clientid_new(ptr0, len0);
2289
+ this.__wbg_ptr = ret >>> 0;
2290
+ SecretKeyFinalization.register(this, this.__wbg_ptr, this);
2291
+ return this;
2176
2292
  }
2177
- get pkb() {
2178
- const ret = wasm.__wbg_get_proteusautoprekeybundle_pkb(this.__wbg_ptr);
2293
+ copyBytes() {
2294
+ const ret = wasm.secretkey_copyBytes(this.__wbg_ptr);
2295
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
2296
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
2297
+ return v1;
2298
+ }
2299
+ }
2300
+ var WelcomeFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_welcome_free(ptr >>> 0, 1));
2301
+
2302
+ class Welcome {
2303
+ static __wrap(ptr) {
2304
+ ptr = ptr >>> 0;
2305
+ const obj = Object.create(Welcome.prototype);
2306
+ obj.__wbg_ptr = ptr;
2307
+ WelcomeFinalization.register(obj, obj.__wbg_ptr, obj);
2308
+ return obj;
2309
+ }
2310
+ __destroy_into_raw() {
2311
+ const ptr = this.__wbg_ptr;
2312
+ this.__wbg_ptr = 0;
2313
+ WelcomeFinalization.unregister(this);
2314
+ return ptr;
2315
+ }
2316
+ free() {
2317
+ const ptr = this.__destroy_into_raw();
2318
+ wasm.__wbg_welcome_free(ptr, 0);
2319
+ }
2320
+ constructor(bytes) {
2321
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
2322
+ const len0 = WASM_VECTOR_LEN;
2323
+ const ret = wasm.clientid_new(ptr0, len0);
2324
+ this.__wbg_ptr = ret >>> 0;
2325
+ WelcomeFinalization.register(this, this.__wbg_ptr, this);
2326
+ return this;
2327
+ }
2328
+ copyBytes() {
2329
+ const ret = wasm.welcome_copyBytes(this.__wbg_ptr);
2179
2330
  var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
2180
2331
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
2181
2332
  return v1;
@@ -2203,9 +2354,7 @@ class WelcomeBundle {
2203
2354
  }
2204
2355
  get id() {
2205
2356
  const ret = wasm.__wbg_get_welcomebundle_id(this.__wbg_ptr);
2206
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
2207
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
2208
- return v1;
2357
+ return ConversationId.__wrap(ret);
2209
2358
  }
2210
2359
  get crlNewDistributionPoints() {
2211
2360
  const ret = wasm.__wbg_get_welcomebundle_crlNewDistributionPoints(this.__wbg_ptr);
@@ -2309,16 +2458,11 @@ class X509Identity {
2309
2458
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
2310
2459
  }
2311
2460
  }
2312
- set handle(arg0) {
2313
- const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2314
- const len0 = WASM_VECTOR_LEN;
2315
- wasm.__wbg_set_x509identity_handle(this.__wbg_ptr, ptr0, len0);
2316
- }
2317
- get display_name() {
2461
+ get displayName() {
2318
2462
  let deferred1_0;
2319
2463
  let deferred1_1;
2320
2464
  try {
2321
- const ret = wasm.__wbg_get_x509identity_display_name(this.__wbg_ptr);
2465
+ const ret = wasm.__wbg_get_x509identity_displayName(this.__wbg_ptr);
2322
2466
  deferred1_0 = ret[0];
2323
2467
  deferred1_1 = ret[1];
2324
2468
  return getStringFromWasm0(ret[0], ret[1]);
@@ -2326,11 +2470,6 @@ class X509Identity {
2326
2470
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
2327
2471
  }
2328
2472
  }
2329
- set display_name(arg0) {
2330
- const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2331
- const len0 = WASM_VECTOR_LEN;
2332
- wasm.__wbg_set_x509identity_display_name(this.__wbg_ptr, ptr0, len0);
2333
- }
2334
2473
  get domain() {
2335
2474
  let deferred1_0;
2336
2475
  let deferred1_1;
@@ -2343,11 +2482,6 @@ class X509Identity {
2343
2482
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
2344
2483
  }
2345
2484
  }
2346
- set domain(arg0) {
2347
- const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2348
- const len0 = WASM_VECTOR_LEN;
2349
- wasm.__wbg_set_x509identity_domain(this.__wbg_ptr, ptr0, len0);
2350
- }
2351
2485
  get certificate() {
2352
2486
  let deferred1_0;
2353
2487
  let deferred1_1;
@@ -2360,16 +2494,11 @@ class X509Identity {
2360
2494
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
2361
2495
  }
2362
2496
  }
2363
- set certificate(arg0) {
2364
- const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2365
- const len0 = WASM_VECTOR_LEN;
2366
- wasm.__wbg_set_x509identity_certificate(this.__wbg_ptr, ptr0, len0);
2367
- }
2368
- get serial_number() {
2497
+ get serialNumber() {
2369
2498
  let deferred1_0;
2370
2499
  let deferred1_1;
2371
2500
  try {
2372
- const ret = wasm.__wbg_get_x509identity_serial_number(this.__wbg_ptr);
2501
+ const ret = wasm.__wbg_get_x509identity_serialNumber(this.__wbg_ptr);
2373
2502
  deferred1_0 = ret[0];
2374
2503
  deferred1_1 = ret[1];
2375
2504
  return getStringFromWasm0(ret[0], ret[1]);
@@ -2377,25 +2506,14 @@ class X509Identity {
2377
2506
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
2378
2507
  }
2379
2508
  }
2380
- set serial_number(arg0) {
2381
- const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2382
- const len0 = WASM_VECTOR_LEN;
2383
- wasm.__wbg_set_x509identity_serial_number(this.__wbg_ptr, ptr0, len0);
2384
- }
2385
- get not_before() {
2386
- const ret = wasm.__wbg_get_x509identity_not_before(this.__wbg_ptr);
2509
+ get notBefore() {
2510
+ const ret = wasm.__wbg_get_x509identity_notBefore(this.__wbg_ptr);
2387
2511
  return BigInt.asUintN(64, ret);
2388
2512
  }
2389
- set not_before(arg0) {
2390
- wasm.__wbg_set_x509identity_not_before(this.__wbg_ptr, arg0);
2391
- }
2392
- get not_after() {
2393
- const ret = wasm.__wbg_get_x509identity_not_after(this.__wbg_ptr);
2513
+ get notAfter() {
2514
+ const ret = wasm.__wbg_get_x509identity_notAfter(this.__wbg_ptr);
2394
2515
  return BigInt.asUintN(64, ret);
2395
2516
  }
2396
- set not_after(arg0) {
2397
- wasm.__wbg_set_x509identity_not_after(this.__wbg_ptr, arg0);
2398
- }
2399
2517
  }
2400
2518
  async function __wbg_load(module, imports) {
2401
2519
  if (typeof Response === "function" && module instanceof Response) {
@@ -2440,10 +2558,6 @@ function __wbg_get_imports() {
2440
2558
  arg0.advance(arg1 >>> 0);
2441
2559
  }, arguments);
2442
2560
  };
2443
- imports.wbg.__wbg_arrayofbytearray_new = function(arg0) {
2444
- const ret = ArrayOfByteArray.__wrap(arg0);
2445
- return ret;
2446
- };
2447
2561
  imports.wbg.__wbg_buffer_609cc3eee51ed158 = function(arg0) {
2448
2562
  const ret = arg0.buffer;
2449
2563
  return ret;
@@ -2476,10 +2590,6 @@ function __wbg_get_imports() {
2476
2590
  return ret;
2477
2591
  }, arguments);
2478
2592
  };
2479
- imports.wbg.__wbg_ciphersuite_new = function(arg0) {
2480
- const ret = Ciphersuite2.__wrap(arg0);
2481
- return ret;
2482
- };
2483
2593
  imports.wbg.__wbg_clientid_new = function(arg0) {
2484
2594
  const ret = ClientId.__wrap(arg0);
2485
2595
  return ret;
@@ -2505,6 +2615,10 @@ function __wbg_get_imports() {
2505
2615
  arg0.continue();
2506
2616
  }, arguments);
2507
2617
  };
2618
+ imports.wbg.__wbg_conversationid_new = function(arg0) {
2619
+ const ret = ConversationId.__wrap(arg0);
2620
+ return ret;
2621
+ };
2508
2622
  imports.wbg.__wbg_corecrypto_new = function(arg0) {
2509
2623
  const ret = CoreCrypto.__wrap(arg0);
2510
2624
  return ret;
@@ -2571,10 +2685,6 @@ function __wbg_get_imports() {
2571
2685
  const ret = arg0.done;
2572
2686
  return ret;
2573
2687
  };
2574
- imports.wbg.__wbg_e2eidumpedpkienv_new = function(arg0) {
2575
- const ret = E2eiDumpedPkiEnv.__wrap(arg0);
2576
- return ret;
2577
- };
2578
2688
  imports.wbg.__wbg_entries_3265d4158b33e5dc = function(arg0) {
2579
2689
  const ret = Object.entries(arg0);
2580
2690
  return ret;
@@ -2603,12 +2713,20 @@ function __wbg_get_imports() {
2603
2713
  return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
2604
2714
  }, arguments);
2605
2715
  };
2606
- imports.wbg.__wbg_execute_e5908b12cc404225 = function() {
2716
+ imports.wbg.__wbg_execute_804dc51b94ff3c62 = function() {
2607
2717
  return handleError(function(arg0, arg1) {
2608
2718
  const ret = arg0.execute(CoreCryptoContext.__wrap(arg1));
2609
2719
  return ret;
2610
2720
  }, arguments);
2611
2721
  };
2722
+ imports.wbg.__wbg_externalsenderkey_new = function(arg0) {
2723
+ const ret = ExternalSenderKey.__wrap(arg0);
2724
+ return ret;
2725
+ };
2726
+ imports.wbg.__wbg_externalsenderkey_unwrap = function(arg0) {
2727
+ const ret = ExternalSenderKey.__unwrap(arg0);
2728
+ return ret;
2729
+ };
2612
2730
  imports.wbg.__wbg_ffiwiree2eidentity_new = function(arg0) {
2613
2731
  const ret = FfiWireE2EIdentity.__wrap(arg0);
2614
2732
  return ret;
@@ -2631,7 +2749,7 @@ function __wbg_get_imports() {
2631
2749
  return ret;
2632
2750
  }, arguments);
2633
2751
  };
2634
- imports.wbg.__wbg_getRandomValues_3d90134a348e46b3 = function() {
2752
+ imports.wbg.__wbg_getRandomValues_38097e921c2494c3 = function() {
2635
2753
  return handleError(function(arg0, arg1) {
2636
2754
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
2637
2755
  }, arguments);
@@ -2678,6 +2796,10 @@ function __wbg_get_imports() {
2678
2796
  const ret = arg0[arg1];
2679
2797
  return ret;
2680
2798
  };
2799
+ imports.wbg.__wbg_historysecret_new = function(arg0) {
2800
+ const ret = HistorySecret.__wrap(arg0);
2801
+ return ret;
2802
+ };
2681
2803
  imports.wbg.__wbg_indexNames_0ed82a19d7d88aa3 = function(arg0) {
2682
2804
  const ret = arg0.indexNames;
2683
2805
  return ret;
@@ -2812,6 +2934,14 @@ function __wbg_get_imports() {
2812
2934
  return ret;
2813
2935
  }, arguments);
2814
2936
  };
2937
+ imports.wbg.__wbg_keypackage_new = function(arg0) {
2938
+ const ret = KeyPackage.__wrap(arg0);
2939
+ return ret;
2940
+ };
2941
+ imports.wbg.__wbg_keypackage_unwrap = function(arg0) {
2942
+ const ret = KeyPackage.__unwrap(arg0);
2943
+ return ret;
2944
+ };
2815
2945
  imports.wbg.__wbg_length_52b6c4580c5ec934 = function(arg0) {
2816
2946
  const ret = arg0.length;
2817
2947
  return ret;
@@ -2854,7 +2984,7 @@ function __wbg_get_imports() {
2854
2984
  const a = state0.a;
2855
2985
  state0.a = 0;
2856
2986
  try {
2857
- return __wbg_adapter_555(a, state0.b, arg02, arg12);
2987
+ return __wbg_adapter_565(a, state0.b, arg02, arg12);
2858
2988
  } finally {
2859
2989
  state0.a = a;
2860
2990
  }
@@ -2897,10 +3027,6 @@ function __wbg_get_imports() {
2897
3027
  const ret = NewAcmeOrder.__wrap(arg0);
2898
3028
  return ret;
2899
3029
  };
2900
- imports.wbg.__wbg_newcrldistributionpoints_new = function(arg0) {
2901
- const ret = NewCrlDistributionPoints.__wrap(arg0);
2902
- return ret;
2903
- };
2904
3030
  imports.wbg.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) {
2905
3031
  const ret = new Function(getStringFromWasm0(arg0, arg1));
2906
3032
  return ret;
@@ -3031,6 +3157,10 @@ function __wbg_get_imports() {
3031
3157
  return ret;
3032
3158
  }, arguments);
3033
3159
  };
3160
+ imports.wbg.__wbg_secretkey_new = function(arg0) {
3161
+ const ret = SecretKey.__wrap(arg0);
3162
+ return ret;
3163
+ };
3034
3164
  imports.wbg.__wbg_set_37837023f3d740e8 = function(arg0, arg1, arg2) {
3035
3165
  arg0[arg1 >>> 0] = arg2;
3036
3166
  };
@@ -3205,16 +3335,16 @@ function __wbg_get_imports() {
3205
3335
  const ret = false;
3206
3336
  return ret;
3207
3337
  };
3208
- imports.wbg.__wbindgen_closure_wrapper14695 = function(arg0, arg1, arg2) {
3209
- const ret = makeMutClosure(arg0, arg1, 2665, __wbg_adapter_63);
3338
+ imports.wbg.__wbindgen_closure_wrapper14671 = function(arg0, arg1, arg2) {
3339
+ const ret = makeMutClosure(arg0, arg1, 2638, __wbg_adapter_65);
3210
3340
  return ret;
3211
3341
  };
3212
- imports.wbg.__wbindgen_closure_wrapper15853 = function(arg0, arg1, arg2) {
3213
- const ret = makeMutClosure(arg0, arg1, 2865, __wbg_adapter_66);
3342
+ imports.wbg.__wbindgen_closure_wrapper15902 = function(arg0, arg1, arg2) {
3343
+ const ret = makeMutClosure(arg0, arg1, 2840, __wbg_adapter_68);
3214
3344
  return ret;
3215
3345
  };
3216
- imports.wbg.__wbindgen_closure_wrapper4518 = function(arg0, arg1, arg2) {
3217
- const ret = makeMutClosure(arg0, arg1, 972, __wbg_adapter_60);
3346
+ imports.wbg.__wbindgen_closure_wrapper4580 = function(arg0, arg1, arg2) {
3347
+ const ret = makeMutClosure(arg0, arg1, 964, __wbg_adapter_62);
3218
3348
  return ret;
3219
3349
  };
3220
3350
  imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
@@ -3303,6 +3433,16 @@ function __wbg_get_imports() {
3303
3433
  imports.wbg.__wbindgen_throw = function(arg0, arg1) {
3304
3434
  throw new Error(getStringFromWasm0(arg0, arg1));
3305
3435
  };
3436
+ imports.wbg.__wbindgen_try_into_number = function(arg0) {
3437
+ let result;
3438
+ try {
3439
+ result = +arg0;
3440
+ } catch (e) {
3441
+ result = e;
3442
+ }
3443
+ const ret = result;
3444
+ return ret;
3445
+ };
3306
3446
  imports.wbg.__wbindgen_uint8_array_new = function(arg0, arg1) {
3307
3447
  var v0 = getArrayU8FromWasm0(arg0, arg1).slice();
3308
3448
  wasm.__wbindgen_free(arg0, arg1 * 1, 1);
@@ -3316,7 +3456,6 @@ function __wbg_finalize_init(instance, module) {
3316
3456
  wasm = instance.exports;
3317
3457
  __wbg_init.__wbindgen_wasm_module = module;
3318
3458
  cachedDataViewMemory0 = null;
3319
- cachedUint16ArrayMemory0 = null;
3320
3459
  cachedUint8ArrayMemory0 = null;
3321
3460
  wasm.__wbindgen_start();
3322
3461
  return wasm;
@@ -3361,7 +3500,8 @@ function commitBundleFromFfi(commitBundle) {
3361
3500
  encryptionType: commitBundle.group_info.encryption_type,
3362
3501
  ratchetTreeType: commitBundle.group_info.ratchet_tree_type,
3363
3502
  payload: commitBundle.group_info.payload
3364
- }
3503
+ },
3504
+ encryptedMessage: commitBundle.encryptedMessage
3365
3505
  };
3366
3506
  }
3367
3507
  function decryptedMessageFromFfi(m) {
@@ -3375,10 +3515,10 @@ function bufferedDecryptedMessageFromFfi(m) {
3375
3515
  message: m.message,
3376
3516
  isActive: m.isActive,
3377
3517
  commitDelay: m.commitDelay ? safeBigintToNumber(m.commitDelay) : undefined,
3378
- senderClientId: m.senderClientId?.as_bytes(),
3518
+ senderClientId: m.senderClientId,
3379
3519
  hasEpochChanged: m.hasEpochChanged,
3380
3520
  identity: m.identity,
3381
- crlNewDistributionPoints: m.crlNewDistributionPoints.as_strings()
3521
+ crlNewDistributionPoints: m.crlNewDistributionPoints
3382
3522
  };
3383
3523
  }
3384
3524
  function mapTransportResponseToFfi(response) {
@@ -3409,10 +3549,13 @@ class MlsTransportFfiShim {
3409
3549
  const response = await this.inner.sendMessage(message);
3410
3550
  return mapTransportResponseToFfi(response);
3411
3551
  }
3552
+ async prepareForTransport(secret) {
3553
+ return await this.inner.prepareForTransport(secret);
3554
+ }
3412
3555
  }
3413
3556
  function mlsTransportToFfi(mlsTransport) {
3414
3557
  const shim = new MlsTransportFfiShim(mlsTransport);
3415
- return new MlsTransport(shim, shim.sendCommitBundle, shim.sendMessage);
3558
+ return new MlsTransport(shim, shim.sendCommitBundle, shim.sendMessage, shim.prepareForTransport);
3416
3559
  }
3417
3560
 
3418
3561
  // src/CoreCryptoE2EI.ts
@@ -3501,8 +3644,7 @@ var E2eiConversationState2;
3501
3644
 
3502
3645
  // src/ConversationConfiguration.ts
3503
3646
  function conversationConfigurationToFfi(cc) {
3504
- const ciphersuite = cc.ciphersuite ? new Ciphersuite2(cc.ciphersuite) : null;
3505
- return new ConversationConfiguration(ciphersuite, cc.externalSenders, cc.keyRotationSpan, cc.wirePolicy);
3647
+ return new ConversationConfiguration(cc.ciphersuite, cc.externalSenders, cc.keyRotationSpan, cc.wirePolicy);
3506
3648
  }
3507
3649
 
3508
3650
  // src/CoreCryptoContext.ts
@@ -3521,20 +3663,7 @@ class CoreCryptoContext2 {
3521
3663
  return await CoreCryptoError.asyncMapErr(this.#ctx.get_data());
3522
3664
  }
3523
3665
  async mlsInit(clientId, ciphersuites, nbKeyPackage) {
3524
- const id = new ClientId(clientId);
3525
- const cs = new Ciphersuites(Uint16Array.from(ciphersuites.map((cs2) => cs2.valueOf())));
3526
- return await CoreCryptoError.asyncMapErr(this.#ctx.mls_init(id, cs, nbKeyPackage));
3527
- }
3528
- async mlsGenerateKeypair(ciphersuites) {
3529
- const cs = new Ciphersuites(Uint16Array.from(ciphersuites.map((cs2) => cs2.valueOf())));
3530
- const kps = await CoreCryptoError.asyncMapErr(this.#ctx.mls_generate_keypairs(cs));
3531
- return kps.map((kp) => kp.as_bytes());
3532
- }
3533
- async mlsInitWithClientId(clientId, signaturePublicKeys, ciphersuites) {
3534
- const id = new ClientId(clientId);
3535
- const pks = signaturePublicKeys.map((pk) => new ClientId(pk));
3536
- const cs = new Ciphersuites(Uint16Array.from(ciphersuites.map((cs2) => cs2.valueOf())));
3537
- return await CoreCryptoError.asyncMapErr(this.#ctx.mls_init_with_client_id(id, pks, cs));
3666
+ return await CoreCryptoError.asyncMapErr(this.#ctx.mls_init(clientId, ciphersuites, nbKeyPackage));
3538
3667
  }
3539
3668
  async conversationExists(conversationId) {
3540
3669
  return await CoreCryptoError.asyncMapErr(this.#ctx.conversation_exists(conversationId));
@@ -3548,7 +3677,7 @@ class CoreCryptoContext2 {
3548
3677
  }
3549
3678
  async conversationCiphersuite(conversationId) {
3550
3679
  const cs = await CoreCryptoError.asyncMapErr(this.#ctx.conversation_ciphersuite(conversationId));
3551
- return cs.as_u16();
3680
+ return cs;
3552
3681
  }
3553
3682
  async wipeConversation(conversationId) {
3554
3683
  return await CoreCryptoError.asyncMapErr(this.#ctx.wipe_conversation(conversationId));
@@ -3573,31 +3702,22 @@ class CoreCryptoContext2 {
3573
3702
  return await CoreCryptoError.asyncMapErr(this.#ctx.process_welcome_message(welcomeMessage, config));
3574
3703
  }
3575
3704
  async clientPublicKey(ciphersuite, credentialType) {
3576
- const cs = new Ciphersuite2(ciphersuite);
3577
- return await CoreCryptoError.asyncMapErr(this.#ctx.client_public_key(cs, credentialType));
3705
+ return await CoreCryptoError.asyncMapErr(this.#ctx.client_public_key(ciphersuite, credentialType));
3578
3706
  }
3579
3707
  async clientValidKeypackagesCount(ciphersuite, credentialType) {
3580
- const cs = new Ciphersuite2(ciphersuite);
3581
- const kpCount = await CoreCryptoError.asyncMapErr(this.#ctx.client_valid_keypackages_count(cs, credentialType));
3708
+ const kpCount = await CoreCryptoError.asyncMapErr(this.#ctx.client_valid_keypackages_count(ciphersuite, credentialType));
3582
3709
  return safeBigintToNumber(kpCount);
3583
3710
  }
3584
3711
  async clientKeypackages(ciphersuite, credentialType, amountRequested) {
3585
- const cs = new Ciphersuite2(ciphersuite);
3586
- const kps = await CoreCryptoError.asyncMapErr(this.#ctx.client_keypackages(cs, credentialType, amountRequested));
3587
- return kps.as_arrays();
3588
- }
3589
- async deleteKeypackages(refs) {
3590
- const aobaRefs = new ArrayOfByteArray(refs);
3591
- return await CoreCryptoError.asyncMapErr(this.#ctx.delete_keypackages(aobaRefs));
3712
+ const kps = await CoreCryptoError.asyncMapErr(this.#ctx.client_keypackages(ciphersuite, credentialType, amountRequested));
3713
+ return kps.map((kp) => kp.copyBytes());
3592
3714
  }
3593
3715
  async addClientsToConversation(conversationId, keyPackages) {
3594
- const kps = new ArrayOfByteArray(keyPackages);
3595
- const dps = await CoreCryptoError.asyncMapErr(this.#ctx.add_clients_to_conversation(conversationId, kps));
3596
- return dps.as_strings();
3716
+ const kps = keyPackages.map((bytes) => new KeyPackage(bytes));
3717
+ return await CoreCryptoError.asyncMapErr(this.#ctx.add_clients_to_conversation(conversationId, kps));
3597
3718
  }
3598
3719
  async removeClientsFromConversation(conversationId, clientIds) {
3599
- const ids = clientIds.map((id) => new ClientId(id));
3600
- return await CoreCryptoError.asyncMapErr(this.#ctx.remove_clients_from_conversation(conversationId, ids));
3720
+ return await CoreCryptoError.asyncMapErr(this.#ctx.remove_clients_from_conversation(conversationId, clientIds));
3601
3721
  }
3602
3722
  async updateKeyingMaterial(conversationId) {
3603
3723
  return await CoreCryptoError.asyncMapErr(this.#ctx.update_keying_material(conversationId));
@@ -3610,6 +3730,12 @@ class CoreCryptoContext2 {
3610
3730
  const config = new CustomConfiguration(keyRotationSpan, wirePolicy);
3611
3731
  return await CoreCryptoError.asyncMapErr(this.#ctx.join_by_external_commit(groupInfo, config, credentialType));
3612
3732
  }
3733
+ async enableHistorySharing(conversationId) {
3734
+ return await CoreCryptoError.asyncMapErr(this.#ctx.enable_history_sharing(conversationId));
3735
+ }
3736
+ async disableHistorySharing(conversationId) {
3737
+ return await CoreCryptoError.asyncMapErr(this.#ctx.disable_history_sharing(conversationId));
3738
+ }
3613
3739
  async exportSecretKey(conversationId, keyLength) {
3614
3740
  return await CoreCryptoError.asyncMapErr(this.#ctx.export_secret_key(conversationId, keyLength));
3615
3741
  }
@@ -3618,7 +3744,7 @@ class CoreCryptoContext2 {
3618
3744
  }
3619
3745
  async getClientIds(conversationId) {
3620
3746
  const ids = await CoreCryptoError.asyncMapErr(this.#ctx.get_client_ids(conversationId));
3621
- return ids.map((id) => id.as_bytes());
3747
+ return ids;
3622
3748
  }
3623
3749
  async randomBytes(length) {
3624
3750
  return await CoreCryptoError.asyncMapErr(this.#ctx.random_bytes(length));
@@ -3682,26 +3808,19 @@ class CoreCryptoContext2 {
3682
3808
  return await CoreCryptoError.asyncMapErr(this.#ctx.proteus_cryptobox_migrate(storeName));
3683
3809
  }
3684
3810
  async e2eiNewEnrollment(clientId, displayName, handle, expirySec, ciphersuite, team) {
3685
- const cs = new Ciphersuite2(ciphersuite);
3686
- const e2ei = await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_new_enrollment(clientId, displayName, handle, team, expirySec, cs));
3811
+ const e2ei = await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_new_enrollment(clientId, displayName, handle, team, expirySec, ciphersuite));
3687
3812
  return new E2eiEnrollment(e2ei);
3688
3813
  }
3689
3814
  async e2eiNewActivationEnrollment(displayName, handle, expirySec, ciphersuite, team) {
3690
- const cs = new Ciphersuite2(ciphersuite);
3691
- const e2ei = await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_new_activation_enrollment(displayName, handle, team, expirySec, cs));
3815
+ const e2ei = await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_new_activation_enrollment(displayName, handle, team, expirySec, ciphersuite));
3692
3816
  return new E2eiEnrollment(e2ei);
3693
3817
  }
3694
3818
  async e2eiNewRotateEnrollment(expirySec, ciphersuite, displayName, handle, team) {
3695
- const cs = new Ciphersuite2(ciphersuite);
3696
- const e2ei = await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_new_rotate_enrollment(displayName, handle, team, expirySec, cs));
3819
+ const e2ei = await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_new_rotate_enrollment(displayName, handle, team, expirySec, ciphersuite));
3697
3820
  return new E2eiEnrollment(e2ei);
3698
3821
  }
3699
3822
  async e2eiMlsInitOnly(enrollment, certificateChain, nbKeyPackage) {
3700
- const dps = await this.#ctx.e2ei_mls_init_only(enrollment.inner(), certificateChain, nbKeyPackage);
3701
- return dps.as_strings();
3702
- }
3703
- async e2eiDumpPKIEnv() {
3704
- return await this.#ctx.e2ei_dump_pki_env();
3823
+ return await this.#ctx.e2ei_mls_init_only(enrollment.inner(), certificateChain, nbKeyPackage);
3705
3824
  }
3706
3825
  async e2eiIsPKIEnvSetup() {
3707
3826
  return await this.#ctx.e2ei_is_pki_env_setup();
@@ -3710,8 +3829,7 @@ class CoreCryptoContext2 {
3710
3829
  return await this.#ctx.e2ei_register_acme_ca(trustAnchorPEM);
3711
3830
  }
3712
3831
  async e2eiRegisterIntermediateCA(certPEM) {
3713
- const dps = await this.#ctx.e2ei_register_intermediate_ca(certPEM);
3714
- return dps.as_strings();
3832
+ return await this.#ctx.e2ei_register_intermediate_ca(certPEM);
3715
3833
  }
3716
3834
  async e2eiRegisterCRL(crlDP, crlDER) {
3717
3835
  const reg = await this.#ctx.e2ei_register_crl(crlDP, crlDER);
@@ -3721,12 +3839,10 @@ class CoreCryptoContext2 {
3721
3839
  return await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_rotate(conversationId));
3722
3840
  }
3723
3841
  async saveX509Credential(enrollment, certificateChain) {
3724
- const dps = await CoreCryptoError.asyncMapErr(this.#ctx.save_x509_credential(enrollment.inner(), certificateChain));
3725
- return dps.as_strings();
3842
+ return await CoreCryptoError.asyncMapErr(this.#ctx.save_x509_credential(enrollment.inner(), certificateChain));
3726
3843
  }
3727
- async deleteStaleKeyPackages(cipherSuite) {
3728
- const cs = new Ciphersuite2(cipherSuite);
3729
- return await CoreCryptoError.asyncMapErr(this.#ctx.delete_stale_key_packages(cs));
3844
+ async deleteStaleKeyPackages(ciphersuite) {
3845
+ return await CoreCryptoError.asyncMapErr(this.#ctx.delete_stale_key_packages(ciphersuite));
3730
3846
  }
3731
3847
  async e2eiEnrollmentStash(enrollment) {
3732
3848
  return await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_enrollment_stash(enrollment.inner()));
@@ -3740,22 +3856,16 @@ class CoreCryptoContext2 {
3740
3856
  return normalizeEnum(E2eiConversationState2, state);
3741
3857
  }
3742
3858
  async e2eiIsEnabled(ciphersuite) {
3743
- const cs = new Ciphersuite2(ciphersuite);
3744
- return await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_is_enabled(cs));
3859
+ return await CoreCryptoError.asyncMapErr(this.#ctx.e2ei_is_enabled(ciphersuite));
3745
3860
  }
3746
3861
  async getDeviceIdentities(conversationId, deviceIds) {
3747
- const dids = deviceIds.map((did) => new ClientId(did));
3748
- return await CoreCryptoError.asyncMapErr(this.#ctx.get_device_identities(conversationId, dids));
3862
+ return await CoreCryptoError.asyncMapErr(this.#ctx.get_device_identities(conversationId, deviceIds));
3749
3863
  }
3750
3864
  async getUserIdentities(conversationId, userIds) {
3751
3865
  return await CoreCryptoError.asyncMapErr(this.#ctx.get_user_identities(conversationId, userIds));
3752
3866
  }
3753
- async getCredentialInUse(groupInfo, credentialType = CredentialType.X509) {
3754
- const state = await CoreCryptoError.asyncMapErr(this.#ctx.get_credential_in_use(groupInfo, credentialType));
3755
- return normalizeEnum(E2eiConversationState2, state);
3756
- }
3757
3867
  }
3758
- // src/core-crypto-ffi.d.ts
3868
+ // src/autogenerated/core-crypto-ffi.d.ts
3759
3869
  class BuildMetadata2 {
3760
3870
  timestamp;
3761
3871
  cargoDebug;
@@ -3777,12 +3887,12 @@ class WireIdentity4 {
3777
3887
 
3778
3888
  class X509Identity2 {
3779
3889
  handle;
3780
- display_name;
3890
+ displayName;
3781
3891
  domain;
3782
3892
  certificate;
3783
- serial_number;
3784
- not_before;
3785
- not_after;
3893
+ serialNumber;
3894
+ notBefore;
3895
+ notAfter;
3786
3896
  }
3787
3897
  // src/CoreCryptoInstance.ts
3788
3898
  class EpochObserverShim {
@@ -3794,6 +3904,19 @@ class EpochObserverShim {
3794
3904
  return this.inner.epochChanged(conversationId, safeBigintToNumber(epoch));
3795
3905
  }
3796
3906
  }
3907
+
3908
+ class HistoryObserverShim {
3909
+ inner;
3910
+ constructor(inner) {
3911
+ this.inner = inner;
3912
+ }
3913
+ async historyClientCreated(conversationId, secret) {
3914
+ return this.inner.historyClientCreated(conversationId, secret);
3915
+ }
3916
+ }
3917
+ function historySecretIntoFfi(secret) {
3918
+ return new HistorySecret(secret.clientId, secret.data);
3919
+ }
3797
3920
  function setLogger(logger) {
3798
3921
  CoreCrypto.set_logger(loggerIntoFfi(logger));
3799
3922
  }
@@ -3836,26 +3959,22 @@ class CoreCrypto2 {
3836
3959
  databaseName,
3837
3960
  key,
3838
3961
  clientId,
3839
- wasmFilePath,
3840
3962
  ciphersuites,
3841
3963
  entropySeed,
3842
3964
  nbKeyPackage
3843
3965
  }) {
3844
- const cs = new Ciphersuites(Uint16Array.from(ciphersuites.map((cs2) => cs2.valueOf())));
3845
- const cc = await CoreCryptoError.asyncMapErr(CoreCrypto.async_new(databaseName, key, clientId, cs, entropySeed, nbKeyPackage));
3846
- return new this(cc);
3966
+ return new this(await CoreCryptoError.asyncMapErr(CoreCrypto.async_new(databaseName, key, clientId, ciphersuites, entropySeed, nbKeyPackage)));
3847
3967
  }
3848
3968
  static async deferredInit({
3849
3969
  databaseName,
3850
3970
  key,
3851
- entropySeed,
3852
- wasmFilePath
3971
+ entropySeed
3853
3972
  }) {
3854
3973
  const cc = await CoreCryptoError.asyncMapErr(CoreCrypto.deferred_init(databaseName, key, entropySeed));
3855
3974
  return new this(cc);
3856
3975
  }
3857
3976
  static async historyClient(historySecret) {
3858
- const cc = await CoreCryptoError.asyncMapErr(CoreCrypto.history_client(historySecret));
3977
+ const cc = await CoreCryptoError.asyncMapErr(CoreCrypto.history_client(historySecretIntoFfi(historySecret)));
3859
3978
  return new this(cc);
3860
3979
  }
3861
3980
  async transaction(callback) {
@@ -3885,12 +4004,6 @@ class CoreCrypto2 {
3885
4004
  constructor(cc) {
3886
4005
  this.#cc = cc;
3887
4006
  }
3888
- async canClose() {
3889
- return await this.#cc.can_close();
3890
- }
3891
- isLocked() {
3892
- return false;
3893
- }
3894
4007
  async close() {
3895
4008
  await CoreCryptoError.asyncMapErr(this.#cc.close());
3896
4009
  }
@@ -3907,21 +4020,23 @@ class CoreCrypto2 {
3907
4020
  }
3908
4021
  async conversationCiphersuite(conversationId) {
3909
4022
  const cs = await CoreCryptoError.asyncMapErr(this.#cc.conversation_ciphersuite(conversationId));
3910
- return cs.as_u16();
4023
+ return cs;
3911
4024
  }
3912
4025
  async clientPublicKey(ciphersuite, credentialType) {
3913
- const cs = new Ciphersuite2(ciphersuite);
3914
- return await CoreCryptoError.asyncMapErr(this.#cc.client_public_key(cs, credentialType));
4026
+ return await CoreCryptoError.asyncMapErr(this.#cc.client_public_key(ciphersuite, credentialType));
3915
4027
  }
3916
4028
  async exportSecretKey(conversationId, keyLength) {
3917
4029
  return await CoreCryptoError.asyncMapErr(this.#cc.export_secret_key(conversationId, keyLength));
3918
4030
  }
4031
+ async isHistorySharingEnabled(conversationId) {
4032
+ return await CoreCryptoError.asyncMapErr(this.#cc.is_history_sharing_enabled(conversationId));
4033
+ }
3919
4034
  async getExternalSender(conversationId) {
3920
4035
  return await CoreCryptoError.asyncMapErr(this.#cc.get_external_sender(conversationId));
3921
4036
  }
3922
4037
  async getClientIds(conversationId) {
3923
4038
  const cids = await CoreCryptoError.asyncMapErr(this.#cc.get_client_ids(conversationId));
3924
- return cids.map((cid) => cid.as_bytes());
4039
+ return cids;
3925
4040
  }
3926
4041
  async randomBytes(length) {
3927
4042
  return await CoreCryptoError.asyncMapErr(this.#cc.random_bytes(length));
@@ -3954,19 +4069,14 @@ class CoreCrypto2 {
3954
4069
  throw CoreCryptoError.fromStdError(e);
3955
4070
  }
3956
4071
  }
3957
- async e2eiDumpPKIEnv() {
3958
- return await this.#cc.e2ei_dump_pki_env();
3959
- }
3960
4072
  async e2eiIsPKIEnvSetup() {
3961
4073
  return await this.#cc.e2ei_is_pki_env_setup();
3962
4074
  }
3963
4075
  async e2eiIsEnabled(ciphersuite) {
3964
- const cs = new Ciphersuite2(ciphersuite);
3965
- return await CoreCryptoError.asyncMapErr(this.#cc.e2ei_is_enabled(cs));
4076
+ return await CoreCryptoError.asyncMapErr(this.#cc.e2ei_is_enabled(ciphersuite));
3966
4077
  }
3967
4078
  async getDeviceIdentities(conversationId, deviceIds) {
3968
- const dids = deviceIds.map((did) => new ClientId(did));
3969
- return await CoreCryptoError.asyncMapErr(this.#cc.get_device_identities(conversationId, dids));
4079
+ return await CoreCryptoError.asyncMapErr(this.#cc.get_device_identities(conversationId, deviceIds));
3970
4080
  }
3971
4081
  async getUserIdentities(conversationId, userIds) {
3972
4082
  const map = await CoreCryptoError.asyncMapErr(this.#cc.get_user_identities(conversationId, userIds));
@@ -3978,15 +4088,16 @@ class CoreCrypto2 {
3978
4088
  }
3979
4089
  return mapFixed;
3980
4090
  }
3981
- async getCredentialInUse(groupInfo, credentialType = CredentialType.X509) {
3982
- const state = await CoreCryptoError.asyncMapErr(this.#cc.get_credential_in_use(groupInfo, credentialType));
3983
- return normalizeEnum(E2eiConversationState2, state);
3984
- }
3985
4091
  async registerEpochObserver(observer) {
3986
4092
  const shim = new EpochObserverShim(observer);
3987
4093
  const ffi = new EpochObserver(shim, shim.epochChanged);
3988
4094
  return await CoreCryptoError.asyncMapErr(this.#cc.register_epoch_observer(ffi));
3989
4095
  }
4096
+ async registerHistoryObserver(observer) {
4097
+ const shim = new HistoryObserverShim(observer);
4098
+ const ffi = new HistoryObserver(shim, shim.historyClientCreated);
4099
+ return await CoreCryptoError.asyncMapErr(this.#cc.register_history_observer(ffi));
4100
+ }
3990
4101
  }
3991
4102
  // src/CoreCrypto.ts
3992
4103
  async function initWasmModule(location = undefined) {
@@ -3999,7 +4110,7 @@ async function initWasmModule(location = undefined) {
3999
4110
  }
4000
4111
  } else {
4001
4112
  const fs = await import("fs/promises");
4002
- const path = new URL("core-crypto-ffi_bg.wasm", import.meta.url);
4113
+ const path = new URL(`${location}core-crypto-ffi_bg.wasm`, import.meta.url);
4003
4114
  const file = await fs.open(path);
4004
4115
  const buffer = await file.readFile();
4005
4116
  const module = new WebAssembly.Module(buffer);
@@ -4008,21 +4119,28 @@ async function initWasmModule(location = undefined) {
4008
4119
  }
4009
4120
  export {
4010
4121
  version2 as version,
4122
+ updateDatabaseKey,
4011
4123
  setMaxLogLevel,
4012
4124
  setLogger,
4013
4125
  migrateDatabaseKeyTypeToBytes,
4014
4126
  initWasmModule,
4127
+ ciphersuiteFromU16,
4128
+ ciphersuiteDefault,
4015
4129
  buildMetadata,
4016
4130
  X509Identity2 as X509Identity,
4017
4131
  WirePolicy,
4018
4132
  WireIdentity4 as WireIdentity,
4019
4133
  WelcomeBundle,
4134
+ Welcome,
4135
+ SecretKey,
4020
4136
  MlsRatchetTreeType as RatchetTreeType,
4021
4137
  NewAcmeOrder,
4022
4138
  NewAcmeAuthz,
4139
+ MlsTransportData,
4023
4140
  MlsGroupInfoEncryptionType as GroupInfoEncryptionType,
4141
+ GroupInfo,
4142
+ ExternalSenderKey,
4024
4143
  E2eiEnrollment,
4025
- E2eiDumpedPkiEnv,
4026
4144
  E2eiConversationState2 as E2eiConversationState,
4027
4145
  DeviceStatus,
4028
4146
  DatabaseKey,
@@ -4032,6 +4150,8 @@ export {
4032
4150
  CoreCryptoError,
4033
4151
  CoreCryptoContext2 as CoreCryptoContext,
4034
4152
  CoreCrypto2 as CoreCrypto,
4153
+ ConversationId,
4154
+ ClientId,
4035
4155
  Ciphersuite,
4036
4156
  BuildMetadata2 as BuildMetadata,
4037
4157
  AcmeChallenge