@matter/react-native 0.17.0-alpha.0-20260312-920b3a4ec → 0.17.0-alpha.0-20260315-65cdcd993

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 (53) hide show
  1. package/dist/cjs/environment/ReactNativeEnvironment.d.ts.map +1 -1
  2. package/dist/cjs/environment/ReactNativeEnvironment.js +3 -5
  3. package/dist/cjs/environment/ReactNativeEnvironment.js.map +1 -1
  4. package/dist/cjs/storage/ReactNativeWebStorageDriver.d.ts +23 -0
  5. package/dist/cjs/storage/ReactNativeWebStorageDriver.d.ts.map +1 -0
  6. package/dist/cjs/storage/ReactNativeWebStorageDriver.js +40 -0
  7. package/dist/cjs/storage/ReactNativeWebStorageDriver.js.map +6 -0
  8. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.d.ts +22 -0
  9. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.d.ts.map +1 -0
  10. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.js +106 -0
  11. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.js.map +6 -0
  12. package/dist/cjs/storage/index.d.ts +8 -2
  13. package/dist/cjs/storage/index.d.ts.map +1 -1
  14. package/dist/cjs/storage/index.js +14 -2
  15. package/dist/cjs/storage/index.js.map +1 -1
  16. package/dist/esm/environment/ReactNativeEnvironment.d.ts.map +1 -1
  17. package/dist/esm/environment/ReactNativeEnvironment.js +3 -5
  18. package/dist/esm/environment/ReactNativeEnvironment.js.map +1 -1
  19. package/dist/esm/storage/ReactNativeWebStorageDriver.d.ts +23 -0
  20. package/dist/esm/storage/ReactNativeWebStorageDriver.d.ts.map +1 -0
  21. package/dist/esm/storage/ReactNativeWebStorageDriver.js +20 -0
  22. package/dist/esm/storage/ReactNativeWebStorageDriver.js.map +6 -0
  23. package/dist/esm/storage/ReactNativeWebStorageDriverV2.d.ts +22 -0
  24. package/dist/esm/storage/ReactNativeWebStorageDriverV2.d.ts.map +1 -0
  25. package/dist/esm/storage/ReactNativeWebStorageDriverV2.js +76 -0
  26. package/dist/esm/storage/ReactNativeWebStorageDriverV2.js.map +6 -0
  27. package/dist/esm/storage/index.d.ts +8 -2
  28. package/dist/esm/storage/index.d.ts.map +1 -1
  29. package/dist/esm/storage/index.js +10 -2
  30. package/dist/esm/storage/index.js.map +1 -1
  31. package/package.json +5 -5
  32. package/src/environment/ReactNativeEnvironment.ts +3 -7
  33. package/src/storage/ReactNativeWebStorageDriver.ts +31 -0
  34. package/src/storage/ReactNativeWebStorageDriverV2.ts +97 -0
  35. package/src/storage/index.ts +10 -2
  36. package/dist/cjs/storage/StorageBackendAsyncStorage.d.ts +0 -41
  37. package/dist/cjs/storage/StorageBackendAsyncStorage.d.ts.map +0 -1
  38. package/dist/cjs/storage/StorageBackendAsyncStorage.js +0 -147
  39. package/dist/cjs/storage/StorageBackendAsyncStorage.js.map +0 -6
  40. package/dist/cjs/storage/StorageBackendAsyncStorageV2.d.ts +0 -40
  41. package/dist/cjs/storage/StorageBackendAsyncStorageV2.d.ts.map +0 -1
  42. package/dist/cjs/storage/StorageBackendAsyncStorageV2.js +0 -169
  43. package/dist/cjs/storage/StorageBackendAsyncStorageV2.js.map +0 -6
  44. package/dist/esm/storage/StorageBackendAsyncStorage.d.ts +0 -41
  45. package/dist/esm/storage/StorageBackendAsyncStorage.d.ts.map +0 -1
  46. package/dist/esm/storage/StorageBackendAsyncStorage.js +0 -127
  47. package/dist/esm/storage/StorageBackendAsyncStorage.js.map +0 -6
  48. package/dist/esm/storage/StorageBackendAsyncStorageV2.d.ts +0 -40
  49. package/dist/esm/storage/StorageBackendAsyncStorageV2.d.ts.map +0 -1
  50. package/dist/esm/storage/StorageBackendAsyncStorageV2.js +0 -139
  51. package/dist/esm/storage/StorageBackendAsyncStorageV2.js.map +0 -6
  52. package/src/storage/StorageBackendAsyncStorage.ts +0 -164
  53. package/src/storage/StorageBackendAsyncStorageV2.ts +0 -173
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeEnvironment.d.ts","sourceRoot":"","sources":["../../../src/environment/ReactNativeEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKxF;;;;GAIG;AACH,wBAAgB,sBAAsB,gBASrC;AA2BD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe;;EAMhD"}
1
+ {"version":3,"file":"ReactNativeEnvironment.d.ts","sourceRoot":"","sources":["../../../src/environment/ReactNativeEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKxF;;;;GAIG;AACH,wBAAgB,sBAAsB,gBASrC;AAuBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe;;EAMhD"}
@@ -26,7 +26,7 @@ var import_ReactNativeBle = require("#ble/ReactNativeBle.js");
26
26
  var import_general = require("@matter/general");
27
27
  var import_protocol = require("@matter/protocol");
28
28
  var import_NetworkReactNative = require("../net/NetworkReactNative.js");
29
- var import_StorageBackendAsyncStorage = require("../storage/StorageBackendAsyncStorage.js");
29
+ var import_ReactNativeWebStorageDriver = require("../storage/ReactNativeWebStorageDriver.js");
30
30
  /**
31
31
  * @license
32
32
  * Copyright 2022-2026 Matter.js Authors
@@ -46,10 +46,8 @@ function loadVariables(env) {
46
46
  }
47
47
  function configureStorage(env) {
48
48
  const service = env.get(import_general.StorageService);
49
- env.vars.use(() => {
50
- service.location = "Memory";
51
- });
52
- service.factory = (namespace) => new import_StorageBackendAsyncStorage.StorageBackendAsyncStorage(namespace);
49
+ service.registerDriver(import_ReactNativeWebStorageDriver.ReactNativeWebStorageDriver);
50
+ service.defaultDriver = "async-storage";
53
51
  }
54
52
  function configureNetwork(env) {
55
53
  env.set(import_general.Network, new import_NetworkReactNative.NetworkReactNative());
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/environment/ReactNativeEnvironment.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,4BAA+B;AAC/B,qBAAsE;AACtE,sBAAoB;AACpB,gCAAmC;AACnC,wCAA2C;AAV3C;AAAA;AAAA;AAAA;AAAA;AAiBO,SAAS,yBAAyB;AACrC,QAAM,MAAM,IAAI,2BAAY,SAAS;AAErC,gBAAc,GAAG;AACjB,mBAAiB,GAAG;AACpB,mBAAiB,GAAG;AACpB,eAAa,GAAG;AAEhB,SAAO;AACX;AAEA,SAAS,cAAc,KAAkB;AACrC,QAAM,OAAO,IAAI;AAGjB,OAAK,eAAe,YAAY,IAAI,CAAC;AACzC;AAEA,SAAS,iBAAiB,KAAkB;AACxC,QAAM,UAAU,IAAI,IAAI,6BAAc;AAEtC,MAAI,KAAK,IAAI,MAAM;AACf,YAAQ,WAAW;AAAA,EACvB,CAAC;AAED,UAAQ,UAAU,eAAa,IAAI,6DAA2B,SAAS;AAC3E;AAEA,SAAS,iBAAiB,KAAkB;AACxC,MAAI,IAAI,wBAAS,IAAI,6CAAmB,CAAC;AAC7C;AAEA,SAAS,aAAa,KAAkB;AACpC,MAAI,IAAI,qBAAK,IAAI,qCAAe,CAAC;AACrC;AAEO,SAAS,YAAY,MAAuB;AAC/C,QAAM,UAAU,KAAK,IAAI,eAAe,SAAS;AAEjD,SAAO;AAAA,IACH,aAAa;AAAA,EACjB;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,4BAA+B;AAC/B,qBAAsE;AACtE,sBAAoB;AACpB,gCAAmC;AACnC,yCAA4C;AAV5C;AAAA;AAAA;AAAA;AAAA;AAiBO,SAAS,yBAAyB;AACrC,QAAM,MAAM,IAAI,2BAAY,SAAS;AAErC,gBAAc,GAAG;AACjB,mBAAiB,GAAG;AACpB,mBAAiB,GAAG;AACpB,eAAa,GAAG;AAEhB,SAAO;AACX;AAEA,SAAS,cAAc,KAAkB;AACrC,QAAM,OAAO,IAAI;AAGjB,OAAK,eAAe,YAAY,IAAI,CAAC;AACzC;AAEA,SAAS,iBAAiB,KAAkB;AACxC,QAAM,UAAU,IAAI,IAAI,6BAAc;AACtC,UAAQ,eAAe,8DAA2B;AAClD,UAAQ,gBAAgB;AAC5B;AAEA,SAAS,iBAAiB,KAAkB;AACxC,MAAI,IAAI,wBAAS,IAAI,6CAAmB,CAAC;AAC7C;AAEA,SAAS,aAAa,KAAkB;AACpC,MAAI,IAAI,qBAAK,IAAI,qCAAe,CAAC;AACrC;AAEO,SAAS,YAAY,MAAuB;AAC/C,QAAM,UAAU,KAAK,IAAI,eAAe,SAAS;AAEjD,SAAO;AAAA,IACH,aAAa;AAAA,EACjB;AACJ;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { WebStorageDriver, type DataNamespace } from "@matter/general";
7
+ /**
8
+ * AsyncStorage backend based on AsyncStorage v3 scoped instances.
9
+ *
10
+ * This backend uses `createAsyncStorage(...)`, so each backend instance stores
11
+ * data in its own scoped storage area. It is the default backend for
12
+ * `@matter/react-native` with async-storage `3.x`.
13
+ *
14
+ * For migration scenarios that need legacy v2-compatible singleton storage
15
+ * behavior, use {@link ReactNativeWebStorageDriverV2} from
16
+ * `@matter/react-native/storage` instead.
17
+ */
18
+ export declare class ReactNativeWebStorageDriver extends WebStorageDriver {
19
+ static readonly id = "react-native-web";
20
+ static create(namespace: DataNamespace): ReactNativeWebStorageDriver;
21
+ constructor(namespace?: string);
22
+ }
23
+ //# sourceMappingURL=ReactNativeWebStorageDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactNativeWebStorageDriver.d.ts","sourceRoot":"","sources":["../../../src/storage/ReactNativeWebStorageDriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGvE;;;;;;;;;;GAUG;AACH,qBAAa,2BAA4B,SAAQ,gBAAgB;IAC7D,MAAM,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IAExC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa;gBAI1B,SAAS,CAAC,EAAE,MAAM;CAGjC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var ReactNativeWebStorageDriver_exports = {};
20
+ __export(ReactNativeWebStorageDriver_exports, {
21
+ ReactNativeWebStorageDriver: () => ReactNativeWebStorageDriver
22
+ });
23
+ module.exports = __toCommonJS(ReactNativeWebStorageDriver_exports);
24
+ var import_general = require("@matter/general");
25
+ var import_async_storage = require("@react-native-async-storage/async-storage");
26
+ /**
27
+ * @license
28
+ * Copyright 2022-2026 Matter.js Authors
29
+ * SPDX-License-Identifier: Apache-2.0
30
+ */
31
+ class ReactNativeWebStorageDriver extends import_general.WebStorageDriver {
32
+ static id = "react-native-web";
33
+ static create(namespace) {
34
+ return new ReactNativeWebStorageDriver(namespace.namespace);
35
+ }
36
+ constructor(namespace) {
37
+ super((0, import_async_storage.createAsyncStorage)(namespace ?? "matterjs"));
38
+ }
39
+ }
40
+ //# sourceMappingURL=ReactNativeWebStorageDriver.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storage/ReactNativeWebStorageDriver.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAqD;AACrD,2BAAmC;AAPnC;AAAA;AAAA;AAAA;AAAA;AAoBO,MAAM,oCAAoC,gCAAiB;AAAA,EAC9D,OAAgB,KAAK;AAAA,EAErB,OAAO,OAAO,WAA0B;AACpC,WAAO,IAAI,4BAA4B,UAAU,SAAS;AAAA,EAC9D;AAAA,EAEA,YAAY,WAAoB;AAC5B,cAAM,yCAAmB,aAAa,UAAU,CAAC;AAAA,EACrD;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { WebStorageDriver, type DataNamespace } from "@matter/general";
7
+ /**
8
+ * V2-compatible AsyncStorage backend using the package default export.
9
+ *
10
+ * This backend exists as migration path when apps need to keep using the legacy
11
+ * singleton storage behavior before switching to the v3 scoped storage backend.
12
+ */
13
+ export declare class ReactNativeWebStorageDriverV2 extends WebStorageDriver {
14
+ static readonly id = "react-native-web-v2";
15
+ static create(namespace: DataNamespace): ReactNativeWebStorageDriverV2;
16
+ /**
17
+ * Creates a new instance of the v2-compatible AsyncStorage backend. If a
18
+ * namespace is provided, keys are prefixed with "<namespace>#".
19
+ */
20
+ constructor(namespace?: string);
21
+ }
22
+ //# sourceMappingURL=ReactNativeWebStorageDriverV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactNativeWebStorageDriverV2.d.ts","sourceRoot":"","sources":["../../../src/storage/ReactNativeWebStorageDriverV2.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AAGhG;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;IAC/D,MAAM,CAAC,QAAQ,CAAC,EAAE,yBAAyB;IAE3C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa;IAItC;;;OAGG;gBACS,SAAS,CAAC,EAAE,MAAM;CAGjC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var ReactNativeWebStorageDriverV2_exports = {};
30
+ __export(ReactNativeWebStorageDriverV2_exports, {
31
+ ReactNativeWebStorageDriverV2: () => ReactNativeWebStorageDriverV2
32
+ });
33
+ module.exports = __toCommonJS(ReactNativeWebStorageDriverV2_exports);
34
+ var import_general = require("@matter/general");
35
+ var import_async_storage = __toESM(require("@react-native-async-storage/async-storage"), 1);
36
+ /**
37
+ * @license
38
+ * Copyright 2022-2026 Matter.js Authors
39
+ * SPDX-License-Identifier: Apache-2.0
40
+ */
41
+ class ReactNativeWebStorageDriverV2 extends import_general.WebStorageDriver {
42
+ static id = "react-native-web-v2";
43
+ static create(namespace) {
44
+ return new ReactNativeWebStorageDriverV2(namespace.namespace);
45
+ }
46
+ /**
47
+ * Creates a new instance of the v2-compatible AsyncStorage backend. If a
48
+ * namespace is provided, keys are prefixed with "<namespace>#".
49
+ */
50
+ constructor(namespace) {
51
+ super(createV2Provider(namespace ?? ""));
52
+ }
53
+ }
54
+ function createV2Provider(namespace) {
55
+ const prefix = namespace.length ? `${namespace}#` : "";
56
+ function prefixKey(key) {
57
+ return `${prefix}${key}`;
58
+ }
59
+ return {
60
+ getItem(key) {
61
+ return import_async_storage.default.getItem(prefixKey(key));
62
+ },
63
+ setItem(key, value) {
64
+ return import_async_storage.default.setItem(prefixKey(key), value);
65
+ },
66
+ removeItem(key) {
67
+ return import_async_storage.default.removeItem(prefixKey(key));
68
+ },
69
+ async getAllKeys() {
70
+ const allKeys = await import_async_storage.default.getAllKeys();
71
+ if (!prefix.length) return allKeys;
72
+ return allKeys.filter((k) => k.startsWith(prefix)).map((k) => k.substring(prefix.length));
73
+ },
74
+ async getMany(keys) {
75
+ const prefixed = keys.map(prefixKey);
76
+ const raw = await import_async_storage.default.getMany(prefixed);
77
+ const result = {};
78
+ for (const [i, key] of keys.entries()) {
79
+ result[key] = raw[prefixed[i]];
80
+ }
81
+ return result;
82
+ },
83
+ async setMany(entries) {
84
+ const prefixed = {};
85
+ for (const [key, value] of Object.entries(entries)) {
86
+ prefixed[prefixKey(key)] = value;
87
+ }
88
+ await import_async_storage.default.setMany(prefixed);
89
+ },
90
+ async removeMany(keys) {
91
+ await import_async_storage.default.removeMany(keys.map(prefixKey));
92
+ },
93
+ async clear() {
94
+ if (!prefix.length) {
95
+ await import_async_storage.default.clear();
96
+ return;
97
+ }
98
+ const allKeys = await import_async_storage.default.getAllKeys();
99
+ const keysToDelete = allKeys.filter((k) => k.startsWith(prefix));
100
+ if (keysToDelete.length) {
101
+ await import_async_storage.default.removeMany(keysToDelete);
102
+ }
103
+ }
104
+ };
105
+ }
106
+ //# sourceMappingURL=ReactNativeWebStorageDriverV2.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storage/ReactNativeWebStorageDriverV2.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA8E;AAC9E,2BAAyB;AAPzB;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,sCAAsC,gCAAiB;AAAA,EAChE,OAAgB,KAAK;AAAA,EAErB,OAAO,OAAO,WAA0B;AACpC,WAAO,IAAI,8BAA8B,UAAU,SAAS;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,WAAoB;AAC5B,UAAM,iBAAiB,aAAa,EAAE,CAAC;AAAA,EAC3C;AACJ;AAMA,SAAS,iBAAiB,WAAuC;AAC7D,QAAM,SAAS,UAAU,SAAS,GAAG,SAAS,MAAM;AAEpD,WAAS,UAAU,KAAa;AAC5B,WAAO,GAAG,MAAM,GAAG,GAAG;AAAA,EAC1B;AAEA,SAAO;AAAA,IACH,QAAQ,KAAK;AACT,aAAO,qBAAAA,QAAa,QAAQ,UAAU,GAAG,CAAC;AAAA,IAC9C;AAAA,IAEA,QAAQ,KAAK,OAAO;AAChB,aAAO,qBAAAA,QAAa,QAAQ,UAAU,GAAG,GAAG,KAAK;AAAA,IACrD;AAAA,IAEA,WAAW,KAAK;AACZ,aAAO,qBAAAA,QAAa,WAAW,UAAU,GAAG,CAAC;AAAA,IACjD;AAAA,IAEA,MAAM,aAAa;AACf,YAAM,UAAU,MAAM,qBAAAA,QAAa,WAAW;AAC9C,UAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,aAAO,QAAQ,OAAO,CAAC,MAAc,EAAE,WAAW,MAAM,CAAC,EAAE,IAAI,CAAC,MAAc,EAAE,UAAU,OAAO,MAAM,CAAC;AAAA,IAC5G;AAAA,IAEA,MAAM,QAAQ,MAAM;AAChB,YAAM,WAAW,KAAK,IAAI,SAAS;AACnC,YAAM,MAAM,MAAM,qBAAAA,QAAa,QAAQ,QAAQ;AAC/C,YAAM,SAAS,CAAC;AAChB,iBAAW,CAAC,GAAG,GAAG,KAAK,KAAK,QAAQ,GAAG;AACnC,eAAO,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC;AAAA,MACjC;AACA,aAAO;AAAA,IACX;AAAA,IAEA,MAAM,QAAQ,SAAS;AACnB,YAAM,WAAW,CAAC;AAClB,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAChD,iBAAS,UAAU,GAAG,CAAC,IAAI;AAAA,MAC/B;AACA,YAAM,qBAAAA,QAAa,QAAQ,QAAQ;AAAA,IACvC;AAAA,IAEA,MAAM,WAAW,MAAM;AACnB,YAAM,qBAAAA,QAAa,WAAW,KAAK,IAAI,SAAS,CAAC;AAAA,IACrD;AAAA,IAEA,MAAM,QAAQ;AACV,UAAI,CAAC,OAAO,QAAQ;AAChB,cAAM,qBAAAA,QAAa,MAAM;AACzB;AAAA,MACJ;AAEA,YAAM,UAAU,MAAM,qBAAAA,QAAa,WAAW;AAC9C,YAAM,eAAe,QAAQ,OAAO,CAAC,MAAc,EAAE,WAAW,MAAM,CAAC;AACvE,UAAI,aAAa,QAAQ;AACrB,cAAM,qBAAAA,QAAa,WAAW,YAAY;AAAA,MAC9C;AAAA,IACJ;AAAA,EACJ;AACJ;",
5
+ "names": ["AsyncStorage"]
6
+ }
@@ -3,6 +3,12 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export * from "./StorageBackendAsyncStorage.js";
7
- export * from "./StorageBackendAsyncStorageV2.js";
6
+ export * from "./ReactNativeWebStorageDriver.js";
7
+ export * from "./ReactNativeWebStorageDriverV2.js";
8
+ import { ReactNativeWebStorageDriver } from "./ReactNativeWebStorageDriver.js";
9
+ import { ReactNativeWebStorageDriverV2 } from "./ReactNativeWebStorageDriverV2.js";
10
+ /** @deprecated Use {@link ReactNativeWebStorageDriver} */
11
+ export declare const StorageBackendAsyncStorage: typeof ReactNativeWebStorageDriver;
12
+ /** @deprecated Use {@link ReactNativeWebStorageDriverV2} */
13
+ export declare const StorageBackendAsyncStorageV2: typeof ReactNativeWebStorageDriverV2;
8
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,oCAA8B,CAAC;AAEtE,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,sCAAgC,CAAC"}
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
6
10
  var __copyProps = (to, from, except, desc) => {
7
11
  if (from && typeof from === "object" || typeof from === "function") {
8
12
  for (let key of __getOwnPropNames(from))
@@ -14,12 +18,20 @@ var __copyProps = (to, from, except, desc) => {
14
18
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
20
  var storage_exports = {};
21
+ __export(storage_exports, {
22
+ StorageBackendAsyncStorage: () => StorageBackendAsyncStorage,
23
+ StorageBackendAsyncStorageV2: () => StorageBackendAsyncStorageV2
24
+ });
17
25
  module.exports = __toCommonJS(storage_exports);
18
- __reExport(storage_exports, require("./StorageBackendAsyncStorage.js"), module.exports);
19
- __reExport(storage_exports, require("./StorageBackendAsyncStorageV2.js"), module.exports);
26
+ __reExport(storage_exports, require("./ReactNativeWebStorageDriver.js"), module.exports);
27
+ __reExport(storage_exports, require("./ReactNativeWebStorageDriverV2.js"), module.exports);
28
+ var import_ReactNativeWebStorageDriver = require("./ReactNativeWebStorageDriver.js");
29
+ var import_ReactNativeWebStorageDriverV2 = require("./ReactNativeWebStorageDriverV2.js");
20
30
  /**
21
31
  * @license
22
32
  * Copyright 2022-2026 Matter.js Authors
23
33
  * SPDX-License-Identifier: Apache-2.0
24
34
  */
35
+ const StorageBackendAsyncStorage = import_ReactNativeWebStorageDriver.ReactNativeWebStorageDriver;
36
+ const StorageBackendAsyncStorageV2 = import_ReactNativeWebStorageDriverV2.ReactNativeWebStorageDriverV2;
25
37
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/storage/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,4BAAc,4CANd;AAOA,4BAAc,8CAPd;AAAA;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,4BAAc,6CANd;AAOA,4BAAc,+CAPd;AAQA,yCAA4C;AAC5C,2CAA8C;AAT9C;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,6BAA6B;AAGnC,MAAM,+BAA+B;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeEnvironment.d.ts","sourceRoot":"","sources":["../../../src/environment/ReactNativeEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKxF;;;;GAIG;AACH,wBAAgB,sBAAsB,gBASrC;AA2BD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe;;EAMhD"}
1
+ {"version":3,"file":"ReactNativeEnvironment.d.ts","sourceRoot":"","sources":["../../../src/environment/ReactNativeEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKxF;;;;GAIG;AACH,wBAAgB,sBAAsB,gBASrC;AAuBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe;;EAMhD"}
@@ -7,7 +7,7 @@ import { ReactNativeBle } from "#ble/ReactNativeBle.js";
7
7
  import { Environment, Network, StorageService } from "@matter/general";
8
8
  import { Ble } from "@matter/protocol";
9
9
  import { NetworkReactNative } from "../net/NetworkReactNative.js";
10
- import { StorageBackendAsyncStorage } from "../storage/StorageBackendAsyncStorage.js";
10
+ import { ReactNativeWebStorageDriver } from "../storage/ReactNativeWebStorageDriver.js";
11
11
  function ReactNativeEnvironment() {
12
12
  const env = new Environment("default");
13
13
  loadVariables(env);
@@ -22,10 +22,8 @@ function loadVariables(env) {
22
22
  }
23
23
  function configureStorage(env) {
24
24
  const service = env.get(StorageService);
25
- env.vars.use(() => {
26
- service.location = "Memory";
27
- });
28
- service.factory = (namespace) => new StorageBackendAsyncStorage(namespace);
25
+ service.registerDriver(ReactNativeWebStorageDriver);
26
+ service.defaultDriver = "async-storage";
29
27
  }
30
28
  function configureNetwork(env) {
31
29
  env.set(Network, new NetworkReactNative());
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/environment/ReactNativeEnvironment.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,SAAS,sBAAuC;AACtE,SAAS,WAAW;AACpB,SAAS,0BAA0B;AACnC,SAAS,kCAAkC;AAOpC,SAAS,yBAAyB;AACrC,QAAM,MAAM,IAAI,YAAY,SAAS;AAErC,gBAAc,GAAG;AACjB,mBAAiB,GAAG;AACpB,mBAAiB,GAAG;AACpB,eAAa,GAAG;AAEhB,SAAO;AACX;AAEA,SAAS,cAAc,KAAkB;AACrC,QAAM,OAAO,IAAI;AAGjB,OAAK,eAAe,YAAY,IAAI,CAAC;AACzC;AAEA,SAAS,iBAAiB,KAAkB;AACxC,QAAM,UAAU,IAAI,IAAI,cAAc;AAEtC,MAAI,KAAK,IAAI,MAAM;AACf,YAAQ,WAAW;AAAA,EACvB,CAAC;AAED,UAAQ,UAAU,eAAa,IAAI,2BAA2B,SAAS;AAC3E;AAEA,SAAS,iBAAiB,KAAkB;AACxC,MAAI,IAAI,SAAS,IAAI,mBAAmB,CAAC;AAC7C;AAEA,SAAS,aAAa,KAAkB;AACpC,MAAI,IAAI,KAAK,IAAI,eAAe,CAAC;AACrC;AAEO,SAAS,YAAY,MAAuB;AAC/C,QAAM,UAAU,KAAK,IAAI,eAAe,SAAS;AAEjD,SAAO;AAAA,IACH,aAAa;AAAA,EACjB;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,SAAS,sBAAuC;AACtE,SAAS,WAAW;AACpB,SAAS,0BAA0B;AACnC,SAAS,mCAAmC;AAOrC,SAAS,yBAAyB;AACrC,QAAM,MAAM,IAAI,YAAY,SAAS;AAErC,gBAAc,GAAG;AACjB,mBAAiB,GAAG;AACpB,mBAAiB,GAAG;AACpB,eAAa,GAAG;AAEhB,SAAO;AACX;AAEA,SAAS,cAAc,KAAkB;AACrC,QAAM,OAAO,IAAI;AAGjB,OAAK,eAAe,YAAY,IAAI,CAAC;AACzC;AAEA,SAAS,iBAAiB,KAAkB;AACxC,QAAM,UAAU,IAAI,IAAI,cAAc;AACtC,UAAQ,eAAe,2BAA2B;AAClD,UAAQ,gBAAgB;AAC5B;AAEA,SAAS,iBAAiB,KAAkB;AACxC,MAAI,IAAI,SAAS,IAAI,mBAAmB,CAAC;AAC7C;AAEA,SAAS,aAAa,KAAkB;AACpC,MAAI,IAAI,KAAK,IAAI,eAAe,CAAC;AACrC;AAEO,SAAS,YAAY,MAAuB;AAC/C,QAAM,UAAU,KAAK,IAAI,eAAe,SAAS;AAEjD,SAAO;AAAA,IACH,aAAa;AAAA,EACjB;AACJ;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { WebStorageDriver, type DataNamespace } from "@matter/general";
7
+ /**
8
+ * AsyncStorage backend based on AsyncStorage v3 scoped instances.
9
+ *
10
+ * This backend uses `createAsyncStorage(...)`, so each backend instance stores
11
+ * data in its own scoped storage area. It is the default backend for
12
+ * `@matter/react-native` with async-storage `3.x`.
13
+ *
14
+ * For migration scenarios that need legacy v2-compatible singleton storage
15
+ * behavior, use {@link ReactNativeWebStorageDriverV2} from
16
+ * `@matter/react-native/storage` instead.
17
+ */
18
+ export declare class ReactNativeWebStorageDriver extends WebStorageDriver {
19
+ static readonly id = "react-native-web";
20
+ static create(namespace: DataNamespace): ReactNativeWebStorageDriver;
21
+ constructor(namespace?: string);
22
+ }
23
+ //# sourceMappingURL=ReactNativeWebStorageDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactNativeWebStorageDriver.d.ts","sourceRoot":"","sources":["../../../src/storage/ReactNativeWebStorageDriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGvE;;;;;;;;;;GAUG;AACH,qBAAa,2BAA4B,SAAQ,gBAAgB;IAC7D,MAAM,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IAExC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa;gBAI1B,SAAS,CAAC,EAAE,MAAM;CAGjC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { WebStorageDriver } from "@matter/general";
7
+ import { createAsyncStorage } from "@react-native-async-storage/async-storage";
8
+ class ReactNativeWebStorageDriver extends WebStorageDriver {
9
+ static id = "react-native-web";
10
+ static create(namespace) {
11
+ return new ReactNativeWebStorageDriver(namespace.namespace);
12
+ }
13
+ constructor(namespace) {
14
+ super(createAsyncStorage(namespace ?? "matterjs"));
15
+ }
16
+ }
17
+ export {
18
+ ReactNativeWebStorageDriver
19
+ };
20
+ //# sourceMappingURL=ReactNativeWebStorageDriver.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storage/ReactNativeWebStorageDriver.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAA4C;AACrD,SAAS,0BAA0B;AAa5B,MAAM,oCAAoC,iBAAiB;AAAA,EAC9D,OAAgB,KAAK;AAAA,EAErB,OAAO,OAAO,WAA0B;AACpC,WAAO,IAAI,4BAA4B,UAAU,SAAS;AAAA,EAC9D;AAAA,EAEA,YAAY,WAAoB;AAC5B,UAAM,mBAAmB,aAAa,UAAU,CAAC;AAAA,EACrD;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { WebStorageDriver, type DataNamespace } from "@matter/general";
7
+ /**
8
+ * V2-compatible AsyncStorage backend using the package default export.
9
+ *
10
+ * This backend exists as migration path when apps need to keep using the legacy
11
+ * singleton storage behavior before switching to the v3 scoped storage backend.
12
+ */
13
+ export declare class ReactNativeWebStorageDriverV2 extends WebStorageDriver {
14
+ static readonly id = "react-native-web-v2";
15
+ static create(namespace: DataNamespace): ReactNativeWebStorageDriverV2;
16
+ /**
17
+ * Creates a new instance of the v2-compatible AsyncStorage backend. If a
18
+ * namespace is provided, keys are prefixed with "<namespace>#".
19
+ */
20
+ constructor(namespace?: string);
21
+ }
22
+ //# sourceMappingURL=ReactNativeWebStorageDriverV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactNativeWebStorageDriverV2.d.ts","sourceRoot":"","sources":["../../../src/storage/ReactNativeWebStorageDriverV2.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AAGhG;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;IAC/D,MAAM,CAAC,QAAQ,CAAC,EAAE,yBAAyB;IAE3C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa;IAItC;;;OAGG;gBACS,SAAS,CAAC,EAAE,MAAM;CAGjC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { WebStorageDriver } from "@matter/general";
7
+ import AsyncStorage from "@react-native-async-storage/async-storage";
8
+ class ReactNativeWebStorageDriverV2 extends WebStorageDriver {
9
+ static id = "react-native-web-v2";
10
+ static create(namespace) {
11
+ return new ReactNativeWebStorageDriverV2(namespace.namespace);
12
+ }
13
+ /**
14
+ * Creates a new instance of the v2-compatible AsyncStorage backend. If a
15
+ * namespace is provided, keys are prefixed with "<namespace>#".
16
+ */
17
+ constructor(namespace) {
18
+ super(createV2Provider(namespace ?? ""));
19
+ }
20
+ }
21
+ function createV2Provider(namespace) {
22
+ const prefix = namespace.length ? `${namespace}#` : "";
23
+ function prefixKey(key) {
24
+ return `${prefix}${key}`;
25
+ }
26
+ return {
27
+ getItem(key) {
28
+ return AsyncStorage.getItem(prefixKey(key));
29
+ },
30
+ setItem(key, value) {
31
+ return AsyncStorage.setItem(prefixKey(key), value);
32
+ },
33
+ removeItem(key) {
34
+ return AsyncStorage.removeItem(prefixKey(key));
35
+ },
36
+ async getAllKeys() {
37
+ const allKeys = await AsyncStorage.getAllKeys();
38
+ if (!prefix.length) return allKeys;
39
+ return allKeys.filter((k) => k.startsWith(prefix)).map((k) => k.substring(prefix.length));
40
+ },
41
+ async getMany(keys) {
42
+ const prefixed = keys.map(prefixKey);
43
+ const raw = await AsyncStorage.getMany(prefixed);
44
+ const result = {};
45
+ for (const [i, key] of keys.entries()) {
46
+ result[key] = raw[prefixed[i]];
47
+ }
48
+ return result;
49
+ },
50
+ async setMany(entries) {
51
+ const prefixed = {};
52
+ for (const [key, value] of Object.entries(entries)) {
53
+ prefixed[prefixKey(key)] = value;
54
+ }
55
+ await AsyncStorage.setMany(prefixed);
56
+ },
57
+ async removeMany(keys) {
58
+ await AsyncStorage.removeMany(keys.map(prefixKey));
59
+ },
60
+ async clear() {
61
+ if (!prefix.length) {
62
+ await AsyncStorage.clear();
63
+ return;
64
+ }
65
+ const allKeys = await AsyncStorage.getAllKeys();
66
+ const keysToDelete = allKeys.filter((k) => k.startsWith(prefix));
67
+ if (keysToDelete.length) {
68
+ await AsyncStorage.removeMany(keysToDelete);
69
+ }
70
+ }
71
+ };
72
+ }
73
+ export {
74
+ ReactNativeWebStorageDriverV2
75
+ };
76
+ //# sourceMappingURL=ReactNativeWebStorageDriverV2.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storage/ReactNativeWebStorageDriverV2.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAAqE;AAC9E,OAAO,kBAAkB;AAQlB,MAAM,sCAAsC,iBAAiB;AAAA,EAChE,OAAgB,KAAK;AAAA,EAErB,OAAO,OAAO,WAA0B;AACpC,WAAO,IAAI,8BAA8B,UAAU,SAAS;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,WAAoB;AAC5B,UAAM,iBAAiB,aAAa,EAAE,CAAC;AAAA,EAC3C;AACJ;AAMA,SAAS,iBAAiB,WAAuC;AAC7D,QAAM,SAAS,UAAU,SAAS,GAAG,SAAS,MAAM;AAEpD,WAAS,UAAU,KAAa;AAC5B,WAAO,GAAG,MAAM,GAAG,GAAG;AAAA,EAC1B;AAEA,SAAO;AAAA,IACH,QAAQ,KAAK;AACT,aAAO,aAAa,QAAQ,UAAU,GAAG,CAAC;AAAA,IAC9C;AAAA,IAEA,QAAQ,KAAK,OAAO;AAChB,aAAO,aAAa,QAAQ,UAAU,GAAG,GAAG,KAAK;AAAA,IACrD;AAAA,IAEA,WAAW,KAAK;AACZ,aAAO,aAAa,WAAW,UAAU,GAAG,CAAC;AAAA,IACjD;AAAA,IAEA,MAAM,aAAa;AACf,YAAM,UAAU,MAAM,aAAa,WAAW;AAC9C,UAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,aAAO,QAAQ,OAAO,CAAC,MAAc,EAAE,WAAW,MAAM,CAAC,EAAE,IAAI,CAAC,MAAc,EAAE,UAAU,OAAO,MAAM,CAAC;AAAA,IAC5G;AAAA,IAEA,MAAM,QAAQ,MAAM;AAChB,YAAM,WAAW,KAAK,IAAI,SAAS;AACnC,YAAM,MAAM,MAAM,aAAa,QAAQ,QAAQ;AAC/C,YAAM,SAAS,CAAC;AAChB,iBAAW,CAAC,GAAG,GAAG,KAAK,KAAK,QAAQ,GAAG;AACnC,eAAO,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC;AAAA,MACjC;AACA,aAAO;AAAA,IACX;AAAA,IAEA,MAAM,QAAQ,SAAS;AACnB,YAAM,WAAW,CAAC;AAClB,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAChD,iBAAS,UAAU,GAAG,CAAC,IAAI;AAAA,MAC/B;AACA,YAAM,aAAa,QAAQ,QAAQ;AAAA,IACvC;AAAA,IAEA,MAAM,WAAW,MAAM;AACnB,YAAM,aAAa,WAAW,KAAK,IAAI,SAAS,CAAC;AAAA,IACrD;AAAA,IAEA,MAAM,QAAQ;AACV,UAAI,CAAC,OAAO,QAAQ;AAChB,cAAM,aAAa,MAAM;AACzB;AAAA,MACJ;AAEA,YAAM,UAAU,MAAM,aAAa,WAAW;AAC9C,YAAM,eAAe,QAAQ,OAAO,CAAC,MAAc,EAAE,WAAW,MAAM,CAAC;AACvE,UAAI,aAAa,QAAQ;AACrB,cAAM,aAAa,WAAW,YAAY;AAAA,MAC9C;AAAA,IACJ;AAAA,EACJ;AACJ;",
5
+ "names": []
6
+ }
@@ -3,6 +3,12 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export * from "./StorageBackendAsyncStorage.js";
7
- export * from "./StorageBackendAsyncStorageV2.js";
6
+ export * from "./ReactNativeWebStorageDriver.js";
7
+ export * from "./ReactNativeWebStorageDriverV2.js";
8
+ import { ReactNativeWebStorageDriver } from "./ReactNativeWebStorageDriver.js";
9
+ import { ReactNativeWebStorageDriverV2 } from "./ReactNativeWebStorageDriverV2.js";
10
+ /** @deprecated Use {@link ReactNativeWebStorageDriver} */
11
+ export declare const StorageBackendAsyncStorage: typeof ReactNativeWebStorageDriver;
12
+ /** @deprecated Use {@link ReactNativeWebStorageDriverV2} */
13
+ export declare const StorageBackendAsyncStorageV2: typeof ReactNativeWebStorageDriverV2;
8
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,oCAA8B,CAAC;AAEtE,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,sCAAgC,CAAC"}
@@ -3,6 +3,14 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export * from "./StorageBackendAsyncStorage.js";
7
- export * from "./StorageBackendAsyncStorageV2.js";
6
+ export * from "./ReactNativeWebStorageDriver.js";
7
+ export * from "./ReactNativeWebStorageDriverV2.js";
8
+ import { ReactNativeWebStorageDriver } from "./ReactNativeWebStorageDriver.js";
9
+ import { ReactNativeWebStorageDriverV2 } from "./ReactNativeWebStorageDriverV2.js";
10
+ const StorageBackendAsyncStorage = ReactNativeWebStorageDriver;
11
+ const StorageBackendAsyncStorageV2 = ReactNativeWebStorageDriverV2;
12
+ export {
13
+ StorageBackendAsyncStorage,
14
+ StorageBackendAsyncStorageV2
15
+ };
8
16
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/storage/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,SAAS,mCAAmC;AAC5C,SAAS,qCAAqC;AAGvC,MAAM,6BAA6B;AAGnC,MAAM,+BAA+B;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/react-native",
3
- "version": "0.17.0-alpha.0-20260312-920b3a4ec",
3
+ "version": "0.17.0-alpha.0-20260315-65cdcd993",
4
4
  "description": "Experimental React Native support for matter.js",
5
5
  "keywords": [
6
6
  "iot",
@@ -32,9 +32,9 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@craftzdog/react-native-buffer": "6.1.1",
35
- "@matter/general": "0.17.0-alpha.0-20260312-920b3a4ec",
36
- "@matter/nodejs": "0.17.0-alpha.0-20260312-920b3a4ec",
37
- "@matter/protocol": "0.17.0-alpha.0-20260312-920b3a4ec",
35
+ "@matter/general": "0.17.0-alpha.0-20260315-65cdcd993",
36
+ "@matter/nodejs": "0.17.0-alpha.0-20260315-65cdcd993",
37
+ "@matter/protocol": "0.17.0-alpha.0-20260315-65cdcd993",
38
38
  "@react-native-async-storage/async-storage": "^3.0.1",
39
39
  "@react-native-community/netinfo": "^12.0.1",
40
40
  "@types/node": "^25.3.5",
@@ -44,7 +44,7 @@
44
44
  "react-native-udp": "^4.1.7"
45
45
  },
46
46
  "devDependencies": {
47
- "@matter/tools": "0.17.0-alpha.0-20260312-920b3a4ec"
47
+ "@matter/tools": "0.17.0-alpha.0-20260315-65cdcd993"
48
48
  },
49
49
  "overrides": {
50
50
  "brorand": "npm:@matter.js/brorand@1.1.0"
@@ -8,7 +8,7 @@ import { ReactNativeBle } from "#ble/ReactNativeBle.js";
8
8
  import { Environment, Network, StorageService, VariableService } from "@matter/general";
9
9
  import { Ble } from "@matter/protocol";
10
10
  import { NetworkReactNative } from "../net/NetworkReactNative.js";
11
- import { StorageBackendAsyncStorage } from "../storage/StorageBackendAsyncStorage.js";
11
+ import { ReactNativeWebStorageDriver } from "../storage/ReactNativeWebStorageDriver.js";
12
12
 
13
13
  /**
14
14
  * This is the default environment implementation for React-native:
@@ -35,12 +35,8 @@ function loadVariables(env: Environment) {
35
35
 
36
36
  function configureStorage(env: Environment) {
37
37
  const service = env.get(StorageService);
38
-
39
- env.vars.use(() => {
40
- service.location = "Memory";
41
- });
42
-
43
- service.factory = namespace => new StorageBackendAsyncStorage(namespace);
38
+ service.registerDriver(ReactNativeWebStorageDriver);
39
+ service.defaultDriver = "async-storage";
44
40
  }
45
41
 
46
42
  function configureNetwork(env: Environment) {