@matter/react-native 0.14.1-alpha.0-20250606-a9bcd03f9 → 0.15.0-alpha.0-20250612-ddd428561

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cjs/crypto/ReactNativeCrypto.d.ts +8 -2
  2. package/dist/cjs/crypto/ReactNativeCrypto.d.ts.map +1 -1
  3. package/dist/cjs/crypto/ReactNativeCrypto.js +2 -2
  4. package/dist/cjs/crypto/ReactNativeCrypto.js.map +1 -1
  5. package/dist/cjs/net/export.d.ts.map +1 -1
  6. package/dist/cjs/net/export.js +4 -2
  7. package/dist/cjs/net/export.js.map +1 -1
  8. package/dist/esm/crypto/ReactNativeCrypto.d.ts +8 -2
  9. package/dist/esm/crypto/ReactNativeCrypto.d.ts.map +1 -1
  10. package/dist/esm/crypto/ReactNativeCrypto.js +2 -2
  11. package/dist/esm/crypto/ReactNativeCrypto.js.map +1 -1
  12. package/dist/esm/net/export.d.ts.map +1 -1
  13. package/dist/esm/net/export.js +4 -2
  14. package/dist/esm/net/export.js.map +1 -1
  15. package/package.json +6 -6
  16. package/src/crypto/ReactNativeCrypto.ts +10 -2
  17. package/src/net/export.ts +4 -2
  18. package/dist/cjs/crypto/register.d.ts +0 -7
  19. package/dist/cjs/crypto/register.d.ts.map +0 -1
  20. package/dist/cjs/crypto/register.js +0 -17
  21. package/dist/cjs/crypto/register.js.map +0 -6
  22. package/dist/cjs/net/register.d.ts +0 -7
  23. package/dist/cjs/net/register.d.ts.map +0 -1
  24. package/dist/cjs/net/register.js +0 -17
  25. package/dist/cjs/net/register.js.map +0 -6
  26. package/dist/esm/crypto/register.d.ts +0 -7
  27. package/dist/esm/crypto/register.d.ts.map +0 -1
  28. package/dist/esm/crypto/register.js +0 -16
  29. package/dist/esm/crypto/register.js.map +0 -6
  30. package/dist/esm/net/register.d.ts +0 -7
  31. package/dist/esm/net/register.d.ts.map +0 -1
  32. package/dist/esm/net/register.js +0 -16
  33. package/dist/esm/net/register.js.map +0 -6
  34. package/src/crypto/register.ts +0 -18
  35. package/src/net/register.ts +0 -19
@@ -5,8 +5,14 @@
5
5
  */
6
6
  import { CryptoDsaEncoding } from "#general";
7
7
  import { NodeJsCrypto } from "#nodejs";
8
+ /**
9
+ * Crypto implementation for React Native
10
+ *
11
+ * We do not install this implementation by default because it is not fully functional. The Node.js crypto
12
+ * compatibility interface in React Native does not implement all features (AES-CCM, at least, is missing).
13
+ */
8
14
  export declare class CryptoReactNative extends NodeJsCrypto {
9
- sign(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): Uint8Array;
10
- verify(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): void;
15
+ signEcdsa(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): Uint8Array;
16
+ verifyEcdsa(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): void;
11
17
  }
12
18
  //# sourceMappingURL=ReactNativeCrypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/ReactNativeCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAyB,iBAAiB,EAAqB,MAAM,UAAU,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAqDvC,qBAAa,iBAAkB,SAAQ,YAAY;IACtC,IAAI,CACT,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,EAC/B,WAAW,GAAE,iBAAgC,GAC9C,UAAU;IAkBJ,MAAM,CACX,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,WAAW,GAAE,iBAAgC;CAgBpD"}
1
+ {"version":3,"file":"ReactNativeCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/ReactNativeCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAyB,iBAAiB,EAAqB,MAAM,UAAU,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuDvC;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IACtC,SAAS,CACd,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,EAC/B,WAAW,GAAE,iBAAgC,GAC9C,UAAU;IAkBJ,WAAW,CAChB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,WAAW,GAAE,iBAAgC;CAgBpD"}
@@ -61,7 +61,7 @@ crypto.hkdf = (digest, ikm, salt, info, keylen) => {
61
61
  return T.slice(0, keylen);
62
62
  };
63
63
  class CryptoReactNative extends import_nodejs.NodeJsCrypto {
64
- sign(privateKey, data, dsaEncoding = "ieee-p1363") {
64
+ signEcdsa(privateKey, data, dsaEncoding = "ieee-p1363") {
65
65
  const signer = crypto.createSign(import_general.CRYPTO_HASH_ALGORITHM);
66
66
  if (Array.isArray(data)) {
67
67
  data.forEach((chunk) => signer.update(chunk));
@@ -77,7 +77,7 @@ class CryptoReactNative extends import_nodejs.NodeJsCrypto {
77
77
  })
78
78
  );
79
79
  }
80
- verify(publicKey, data, signature, dsaEncoding = "ieee-p1363") {
80
+ verifyEcdsa(publicKey, data, signature, dsaEncoding = "ieee-p1363") {
81
81
  const verifier = crypto.createVerify(import_general.CRYPTO_HASH_ALGORITHM);
82
82
  verifier.update(data);
83
83
  const success = verifier.verify(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/ReactNativeCrypto.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,uCAAwB;AAIxB,qBAA4E;AAC5E,oBAA6B;AAC7B,wBAAoB;AAZpB;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,0CAAQ;AAOR,OAAO,OAAO,CACV,QACA,KACA,MACA,MACA,WACC;AACD,QAAM,UAAU,SAAS,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,KAAK;AACvD,QAAM,MAAM,OAEP,WAAW,QAAQ,KAAK,aAAa,OAAO,IAAI,WAAW,OAAO,CAAC,EACnE,OAAO,GAAG,EACV,OAAO;AASZ,QAAM,IAAI,KAAK,KAAK,SAAS,OAAO;AAIpC,QAAM,IAAI,IAAI,WAAW,UAAU,IAAI,KAAK,aAAa,CAAC;AAC1D,MAAI,OAAO;AACX,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,KAAK,GAAG,KAAK;AACzB,MAAE,IAAI,MAAM,KAAK;AACjB,MAAE,QAAQ,KAAK,UAAU,IAAI;AAE7B,MAAE;AAAA,MACE,OAEK,WAAW,QAAQ,GAAG,EACtB,OAAO,EAAE,SAAS,MAAM,QAAQ,KAAK,aAAa,CAAC,CAAC,EACpD,OAAO;AAAA,MACZ;AAAA,IACJ;AAEA,WAAO;AACP,aAAS;AAAA,EACb;AAGA,SAAO,EAAE,MAAM,GAAG,MAAM;AAC5B;AAEO,MAAM,0BAA0B,2BAAa;AAAA,EACvC,KACL,YACA,MACA,cAAiC,cACvB;AAEV,UAAM,SAAS,OAAO,WAAW,oCAAqB;AACtD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,WAAK,QAAQ,WAAS,OAAO,OAAO,KAAK,CAAC;AAAA,IAC9C,OAAO;AACH,aAAO,OAAO,IAAI;AAAA,IACtB;AACA,WAAO,IAAI;AAAA,MACP,OAAO,KAAK;AAAA,QACR,SAAK,kBAAAA,SAAQ,YAA2B,EAAE,SAAS,KAAK,CAAC;AAAA,QACzD,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAES,OACL,WACA,MACA,WACA,cAAiC,cACnC;AAEE,UAAM,WAAW,OAAO,aAAa,oCAAqB;AAC1D,aAAS,OAAO,IAAI;AACpB,UAAM,UAAU,SAAS;AAAA,MACrB;AAAA,QACI,SAAK,kBAAAA,SAAQ,SAAwB;AAAA,QACrC,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AACA,QAAI,CAAC,QAAS,OAAM,IAAI,iCAAkB,+BAA+B;AAAA,EAC7E;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,uCAAwB;AAIxB,qBAA4E;AAC5E,oBAA6B;AAG7B,wBAAoB;AAdpB;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,0CAAQ;AASR,OAAO,OAAO,CACV,QACA,KACA,MACA,MACA,WACC;AACD,QAAM,UAAU,SAAS,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,KAAK;AACvD,QAAM,MAAM,OAEP,WAAW,QAAQ,KAAK,aAAa,OAAO,IAAI,WAAW,OAAO,CAAC,EACnE,OAAO,GAAG,EACV,OAAO;AASZ,QAAM,IAAI,KAAK,KAAK,SAAS,OAAO;AAIpC,QAAM,IAAI,IAAI,WAAW,UAAU,IAAI,KAAK,aAAa,CAAC;AAC1D,MAAI,OAAO;AACX,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,KAAK,GAAG,KAAK;AACzB,MAAE,IAAI,MAAM,KAAK;AACjB,MAAE,QAAQ,KAAK,UAAU,IAAI;AAE7B,MAAE;AAAA,MACE,OAEK,WAAW,QAAQ,GAAG,EACtB,OAAO,EAAE,SAAS,MAAM,QAAQ,KAAK,aAAa,CAAC,CAAC,EACpD,OAAO;AAAA,MACZ;AAAA,IACJ;AAEA,WAAO;AACP,aAAS;AAAA,EACb;AAGA,SAAO,EAAE,MAAM,GAAG,MAAM;AAC5B;AAQO,MAAM,0BAA0B,2BAAa;AAAA,EACvC,UACL,YACA,MACA,cAAiC,cACvB;AAEV,UAAM,SAAS,OAAO,WAAW,oCAAqB;AACtD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,WAAK,QAAQ,WAAS,OAAO,OAAO,KAAK,CAAC;AAAA,IAC9C,OAAO;AACH,aAAO,OAAO,IAAI;AAAA,IACtB;AACA,WAAO,IAAI;AAAA,MACP,OAAO,KAAK;AAAA,QACR,SAAK,kBAAAA,SAAQ,YAA2B,EAAE,SAAS,KAAK,CAAC;AAAA,QACzD,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAES,YACL,WACA,MACA,WACA,cAAiC,cACnC;AAEE,UAAM,WAAW,OAAO,aAAa,oCAAqB;AAC1D,aAAS,OAAO,IAAI;AACpB,UAAM,UAAU,SAAS;AAAA,MACrB;AAAA,QACI,SAAK,kBAAAA,SAAQ,SAAwB;AAAA,QACrC,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AACA,QAAI,CAAC,QAAS,OAAM,IAAI,iCAAkB,+BAA+B;AAAA,EAC7E;AACJ;",
5
5
  "names": ["jwk2pem"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/net/export.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,yBAAyB,CAAC;AAExC,wBAAsB,YAAY,kBAEjC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/net/export.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,yBAAyB,CAAC;AAExC,wBAAsB,YAAY,kBAIjC"}
@@ -22,7 +22,7 @@ __export(export_exports, {
22
22
  closeNetwork: () => closeNetwork
23
23
  });
24
24
  module.exports = __toCommonJS(export_exports);
25
- var import_general = require("@matter/general");
25
+ var import_general = require("#general");
26
26
  __reExport(export_exports, require("./NetworkReactNative.js"), module.exports);
27
27
  /**
28
28
  * @license
@@ -30,6 +30,8 @@ __reExport(export_exports, require("./NetworkReactNative.js"), module.exports);
30
30
  * SPDX-License-Identifier: Apache-2.0
31
31
  */
32
32
  async function closeNetwork() {
33
- return import_general.Network.get().close();
33
+ if (import_general.Environment.default.has(import_general.Network)) {
34
+ return import_general.Environment.default.get(import_general.Network).close();
35
+ }
34
36
  }
35
37
  //# sourceMappingURL=export.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/net/export.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAwB;AAExB,2BAAc,oCARd;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,eAAsB,eAAe;AACjC,SAAO,uBAAQ,IAAI,EAAE,MAAM;AAC/B;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAqC;AAErC,2BAAc,oCARd;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,eAAsB,eAAe;AACjC,MAAI,2BAAY,QAAQ,IAAI,sBAAO,GAAG;AAClC,WAAO,2BAAY,QAAQ,IAAI,sBAAO,EAAE,MAAM;AAAA,EAClD;AACJ;",
5
5
  "names": []
6
6
  }
@@ -5,8 +5,14 @@
5
5
  */
6
6
  import { CryptoDsaEncoding } from "#general";
7
7
  import { NodeJsCrypto } from "#nodejs";
8
+ /**
9
+ * Crypto implementation for React Native
10
+ *
11
+ * We do not install this implementation by default because it is not fully functional. The Node.js crypto
12
+ * compatibility interface in React Native does not implement all features (AES-CCM, at least, is missing).
13
+ */
8
14
  export declare class CryptoReactNative extends NodeJsCrypto {
9
- sign(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): Uint8Array;
10
- verify(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): void;
15
+ signEcdsa(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): Uint8Array;
16
+ verifyEcdsa(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): void;
11
17
  }
12
18
  //# sourceMappingURL=ReactNativeCrypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/ReactNativeCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAyB,iBAAiB,EAAqB,MAAM,UAAU,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAqDvC,qBAAa,iBAAkB,SAAQ,YAAY;IACtC,IAAI,CACT,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,EAC/B,WAAW,GAAE,iBAAgC,GAC9C,UAAU;IAkBJ,MAAM,CACX,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,WAAW,GAAE,iBAAgC;CAgBpD"}
1
+ {"version":3,"file":"ReactNativeCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/ReactNativeCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAyB,iBAAiB,EAAqB,MAAM,UAAU,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuDvC;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IACtC,SAAS,CACd,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,EAC/B,WAAW,GAAE,iBAAgC,GAC9C,UAAU;IAkBJ,WAAW,CAChB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,WAAW,GAAE,iBAAgC;CAgBpD"}
@@ -28,7 +28,7 @@ crypto.hkdf = (digest, ikm, salt, info, keylen) => {
28
28
  return T.slice(0, keylen);
29
29
  };
30
30
  class CryptoReactNative extends NodeJsCrypto {
31
- sign(privateKey, data, dsaEncoding = "ieee-p1363") {
31
+ signEcdsa(privateKey, data, dsaEncoding = "ieee-p1363") {
32
32
  const signer = crypto.createSign(CRYPTO_HASH_ALGORITHM);
33
33
  if (Array.isArray(data)) {
34
34
  data.forEach((chunk) => signer.update(chunk));
@@ -44,7 +44,7 @@ class CryptoReactNative extends NodeJsCrypto {
44
44
  })
45
45
  );
46
46
  }
47
- verify(publicKey, data, signature, dsaEncoding = "ieee-p1363") {
47
+ verifyEcdsa(publicKey, data, signature, dsaEncoding = "ieee-p1363") {
48
48
  const verifier = crypto.createVerify(CRYPTO_HASH_ALGORITHM);
49
49
  verifier.update(data);
50
50
  const success = verifier.verify(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/ReactNativeCrypto.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AAExB,QAAQ;AAER,SAAS,uBAA0C,yBAAyB;AAC5E,SAAS,oBAAoB;AAC7B,OAAO,aAAa;AAGpB,OAAO,OAAO,CACV,QACA,KACA,MACA,MACA,WACC;AACD,QAAM,UAAU,SAAS,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,KAAK;AACvD,QAAM,MAAM,OAEP,WAAW,QAAQ,KAAK,aAAa,OAAO,IAAI,WAAW,OAAO,CAAC,EACnE,OAAO,GAAG,EACV,OAAO;AASZ,QAAM,IAAI,KAAK,KAAK,SAAS,OAAO;AAIpC,QAAM,IAAI,IAAI,WAAW,UAAU,IAAI,KAAK,aAAa,CAAC;AAC1D,MAAI,OAAO;AACX,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,KAAK,GAAG,KAAK;AACzB,MAAE,IAAI,MAAM,KAAK;AACjB,MAAE,QAAQ,KAAK,UAAU,IAAI;AAE7B,MAAE;AAAA,MACE,OAEK,WAAW,QAAQ,GAAG,EACtB,OAAO,EAAE,SAAS,MAAM,QAAQ,KAAK,aAAa,CAAC,CAAC,EACpD,OAAO;AAAA,MACZ;AAAA,IACJ;AAEA,WAAO;AACP,aAAS;AAAA,EACb;AAGA,SAAO,EAAE,MAAM,GAAG,MAAM;AAC5B;AAEO,MAAM,0BAA0B,aAAa;AAAA,EACvC,KACL,YACA,MACA,cAAiC,cACvB;AAEV,UAAM,SAAS,OAAO,WAAW,qBAAqB;AACtD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,WAAK,QAAQ,WAAS,OAAO,OAAO,KAAK,CAAC;AAAA,IAC9C,OAAO;AACH,aAAO,OAAO,IAAI;AAAA,IACtB;AACA,WAAO,IAAI;AAAA,MACP,OAAO,KAAK;AAAA,QACR,KAAK,QAAQ,YAA2B,EAAE,SAAS,KAAK,CAAC;AAAA,QACzD,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAES,OACL,WACA,MACA,WACA,cAAiC,cACnC;AAEE,UAAM,WAAW,OAAO,aAAa,qBAAqB;AAC1D,aAAS,OAAO,IAAI;AACpB,UAAM,UAAU,SAAS;AAAA,MACrB;AAAA,QACI,KAAK,QAAQ,SAAwB;AAAA,QACrC,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AACA,QAAI,CAAC,QAAS,OAAM,IAAI,kBAAkB,+BAA+B;AAAA,EAC7E;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AAExB,QAAQ;AAER,SAAS,uBAA0C,yBAAyB;AAC5E,SAAS,oBAAoB;AAG7B,OAAO,aAAa;AAGpB,OAAO,OAAO,CACV,QACA,KACA,MACA,MACA,WACC;AACD,QAAM,UAAU,SAAS,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,KAAK;AACvD,QAAM,MAAM,OAEP,WAAW,QAAQ,KAAK,aAAa,OAAO,IAAI,WAAW,OAAO,CAAC,EACnE,OAAO,GAAG,EACV,OAAO;AASZ,QAAM,IAAI,KAAK,KAAK,SAAS,OAAO;AAIpC,QAAM,IAAI,IAAI,WAAW,UAAU,IAAI,KAAK,aAAa,CAAC;AAC1D,MAAI,OAAO;AACX,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,KAAK,GAAG,KAAK;AACzB,MAAE,IAAI,MAAM,KAAK;AACjB,MAAE,QAAQ,KAAK,UAAU,IAAI;AAE7B,MAAE;AAAA,MACE,OAEK,WAAW,QAAQ,GAAG,EACtB,OAAO,EAAE,SAAS,MAAM,QAAQ,KAAK,aAAa,CAAC,CAAC,EACpD,OAAO;AAAA,MACZ;AAAA,IACJ;AAEA,WAAO;AACP,aAAS;AAAA,EACb;AAGA,SAAO,EAAE,MAAM,GAAG,MAAM;AAC5B;AAQO,MAAM,0BAA0B,aAAa;AAAA,EACvC,UACL,YACA,MACA,cAAiC,cACvB;AAEV,UAAM,SAAS,OAAO,WAAW,qBAAqB;AACtD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,WAAK,QAAQ,WAAS,OAAO,OAAO,KAAK,CAAC;AAAA,IAC9C,OAAO;AACH,aAAO,OAAO,IAAI;AAAA,IACtB;AACA,WAAO,IAAI;AAAA,MACP,OAAO,KAAK;AAAA,QACR,KAAK,QAAQ,YAA2B,EAAE,SAAS,KAAK,CAAC;AAAA,QACzD,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAES,YACL,WACA,MACA,WACA,cAAiC,cACnC;AAEE,UAAM,WAAW,OAAO,aAAa,qBAAqB;AAC1D,aAAS,OAAO,IAAI;AACpB,UAAM,UAAU,SAAS;AAAA,MACrB;AAAA,QACI,KAAK,QAAQ,SAAwB;AAAA,QACrC,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AACA,QAAI,CAAC,QAAS,OAAM,IAAI,kBAAkB,+BAA+B;AAAA,EAC7E;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/net/export.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,yBAAyB,CAAC;AAExC,wBAAsB,YAAY,kBAEjC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/net/export.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,yBAAyB,CAAC;AAExC,wBAAsB,YAAY,kBAIjC"}
@@ -3,10 +3,12 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Network } from "@matter/general";
6
+ import { Environment, Network } from "#general";
7
7
  export * from "./NetworkReactNative.js";
8
8
  async function closeNetwork() {
9
- return Network.get().close();
9
+ if (Environment.default.has(Network)) {
10
+ return Environment.default.get(Network).close();
11
+ }
10
12
  }
11
13
  export {
12
14
  closeNetwork
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/net/export.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AAExB,cAAc;AAEd,eAAsB,eAAe;AACjC,SAAO,QAAQ,IAAI,EAAE,MAAM;AAC/B;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,aAAa,eAAe;AAErC,cAAc;AAEd,eAAsB,eAAe;AACjC,MAAI,YAAY,QAAQ,IAAI,OAAO,GAAG;AAClC,WAAO,YAAY,QAAQ,IAAI,OAAO,EAAE,MAAM;AAAA,EAClD;AACJ;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/react-native",
3
- "version": "0.14.1-alpha.0-20250606-a9bcd03f9",
3
+ "version": "0.15.0-alpha.0-20250612-ddd428561",
4
4
  "description": "Experimental React Native support for matter.js",
5
5
  "keywords": [
6
6
  "iot",
@@ -35,10 +35,10 @@
35
35
  "#*": "./src/*"
36
36
  },
37
37
  "dependencies": {
38
- "@matter/general": "0.14.1-alpha.0-20250606-a9bcd03f9",
39
- "@matter/nodejs": "0.14.1-alpha.0-20250606-a9bcd03f9",
40
- "@matter/protocol": "0.14.1-alpha.0-20250606-a9bcd03f9",
41
- "@react-native-async-storage/async-storage": "^2.1.2",
38
+ "@matter/general": "0.15.0-alpha.0-20250612-ddd428561",
39
+ "@matter/nodejs": "0.15.0-alpha.0-20250612-ddd428561",
40
+ "@matter/protocol": "0.15.0-alpha.0-20250612-ddd428561",
41
+ "@react-native-async-storage/async-storage": "^2.2.0",
42
42
  "@react-native-community/netinfo": "^11.3.2",
43
43
  "@types/jwk-to-pem": "^2.0.3",
44
44
  "@types/node": "^22.15.29",
@@ -49,7 +49,7 @@
49
49
  "react-native-udp": "^4.1.7"
50
50
  },
51
51
  "devDependencies": {
52
- "@matter/tools": "0.14.1-alpha.0-20250606-a9bcd03f9"
52
+ "@matter/tools": "0.15.0-alpha.0-20250612-ddd428561"
53
53
  },
54
54
  "overrides": {
55
55
  "brorand": "npm:@matter.js/brorand@1.1.0"
@@ -10,6 +10,8 @@ install(); // Install the react-native crypto module
10
10
 
11
11
  import { CRYPTO_HASH_ALGORITHM, CryptoDsaEncoding, CryptoVerifyError } from "#general";
12
12
  import { NodeJsCrypto } from "#nodejs";
13
+
14
+ // TODO -
13
15
  import jwk2pem from "jwk-to-pem";
14
16
 
15
17
  // @ts-expect-error No types but all fine
@@ -62,8 +64,14 @@ crypto.hkdf = (
62
64
  return T.slice(0, keylen);
63
65
  };
64
66
 
67
+ /**
68
+ * Crypto implementation for React Native
69
+ *
70
+ * We do not install this implementation by default because it is not fully functional. The Node.js crypto
71
+ * compatibility interface in React Native does not implement all features (AES-CCM, at least, is missing).
72
+ */
65
73
  export class CryptoReactNative extends NodeJsCrypto {
66
- override sign(
74
+ override signEcdsa(
67
75
  privateKey: JsonWebKey,
68
76
  data: Uint8Array | Uint8Array[],
69
77
  dsaEncoding: CryptoDsaEncoding = "ieee-p1363",
@@ -85,7 +93,7 @@ export class CryptoReactNative extends NodeJsCrypto {
85
93
  );
86
94
  }
87
95
 
88
- override verify(
96
+ override verifyEcdsa(
89
97
  publicKey: JsonWebKey,
90
98
  data: Uint8Array,
91
99
  signature: Uint8Array,
package/src/net/export.ts CHANGED
@@ -4,10 +4,12 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Network } from "@matter/general";
7
+ import { Environment, Network } from "#general";
8
8
 
9
9
  export * from "./NetworkReactNative.js";
10
10
 
11
11
  export async function closeNetwork() {
12
- return Network.get().close();
12
+ if (Environment.default.has(Network)) {
13
+ return Environment.default.get(Network).close();
14
+ }
13
15
  }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};
7
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/crypto/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var import_general = require("@matter/general");
3
- var import_ReactNativeCrypto = require("./ReactNativeCrypto.js");
4
- /**
5
- * @license
6
- * Copyright 2022-2025 Matter.js Authors
7
- * SPDX-License-Identifier: Apache-2.0
8
- */
9
- import_general.Boot.init(() => {
10
- try {
11
- import_general.Crypto.get();
12
- } catch (error) {
13
- import_general.NoProviderError.accept(error);
14
- import_general.Crypto.get = (0, import_general.singleton)(() => new import_ReactNativeCrypto.CryptoReactNative());
15
- }
16
- });
17
- //# sourceMappingURL=register.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/crypto/register.ts"],
4
- "mappings": ";AAMA,qBAAyD;AACzD,+BAAkC;AAPlC;AAAA;AAAA;AAAA;AAAA;AASA,oBAAK,KAAK,MAAM;AAEZ,MAAI;AACA,0BAAO,IAAI;AAAA,EACf,SAAS,OAAO;AACZ,mCAAgB,OAAO,KAAK;AAC5B,0BAAO,UAAM,0BAAU,MAAM,IAAI,2CAAkB,CAAC;AAAA,EACxD;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};
7
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/net/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var import_general = require("@matter/general");
3
- var import_NetworkReactNative = require("./NetworkReactNative.js");
4
- /**
5
- * @license
6
- * Copyright 2022-2025 Matter.js Authors
7
- * SPDX-License-Identifier: Apache-2.0
8
- */
9
- import_general.Boot.init(() => {
10
- try {
11
- import_general.Network.get();
12
- } catch (error) {
13
- import_general.NoProviderError.accept(error);
14
- import_general.Network.get = (0, import_general.singleton)(() => new import_NetworkReactNative.NetworkReactNative());
15
- }
16
- });
17
- //# sourceMappingURL=register.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/register.ts"],
4
- "mappings": ";AAMA,qBAA0D;AAC1D,gCAAmC;AAPnC;AAAA;AAAA;AAAA;AAAA;AASA,oBAAK,KAAK,MAAM;AAEZ,MAAI;AACA,2BAAQ,IAAI;AAAA,EAChB,SAAS,OAAO;AACZ,mCAAgB,OAAO,KAAK;AAC5B,2BAAQ,UAAM,0BAAU,MAAM,IAAI,6CAAmB,CAAC;AAAA,EAE1D;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};
7
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/crypto/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,16 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Boot, Crypto, NoProviderError, singleton } from "@matter/general";
7
- import { CryptoReactNative } from "./ReactNativeCrypto.js";
8
- Boot.init(() => {
9
- try {
10
- Crypto.get();
11
- } catch (error) {
12
- NoProviderError.accept(error);
13
- Crypto.get = singleton(() => new CryptoReactNative());
14
- }
15
- });
16
- //# sourceMappingURL=register.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/crypto/register.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,MAAM,QAAQ,iBAAiB,iBAAiB;AACzD,SAAS,yBAAyB;AAElC,KAAK,KAAK,MAAM;AAEZ,MAAI;AACA,WAAO,IAAI;AAAA,EACf,SAAS,OAAO;AACZ,oBAAgB,OAAO,KAAK;AAC5B,WAAO,MAAM,UAAU,MAAM,IAAI,kBAAkB,CAAC;AAAA,EACxD;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};
7
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/net/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,16 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Boot, Network, NoProviderError, singleton } from "@matter/general";
7
- import { NetworkReactNative } from "./NetworkReactNative.js";
8
- Boot.init(() => {
9
- try {
10
- Network.get();
11
- } catch (error) {
12
- NoProviderError.accept(error);
13
- Network.get = singleton(() => new NetworkReactNative());
14
- }
15
- });
16
- //# sourceMappingURL=register.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/register.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,MAAM,SAAS,iBAAiB,iBAAiB;AAC1D,SAAS,0BAA0B;AAEnC,KAAK,KAAK,MAAM;AAEZ,MAAI;AACA,YAAQ,IAAI;AAAA,EAChB,SAAS,OAAO;AACZ,oBAAgB,OAAO,KAAK;AAC5B,YAAQ,MAAM,UAAU,MAAM,IAAI,mBAAmB,CAAC;AAAA,EAE1D;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- import { Boot, Crypto, NoProviderError, singleton } from "@matter/general";
8
- import { CryptoReactNative } from "./ReactNativeCrypto.js";
9
-
10
- Boot.init(() => {
11
- // Check if Crypto singleton is already registered and auto register if not
12
- try {
13
- Crypto.get();
14
- } catch (error) {
15
- NoProviderError.accept(error);
16
- Crypto.get = singleton(() => new CryptoReactNative());
17
- }
18
- });
@@ -1,19 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- import { Boot, Network, NoProviderError, singleton } from "@matter/general";
8
- import { NetworkReactNative } from "./NetworkReactNative.js";
9
-
10
- Boot.init(() => {
11
- // Check if Network singleton is already registered and auto register if not
12
- try {
13
- Network.get();
14
- } catch (error) {
15
- NoProviderError.accept(error);
16
- Network.get = singleton(() => new NetworkReactNative());
17
- // use net export closeNetwork() to close the network
18
- }
19
- });