react-native-mmkv 2.12.2 → 3.0.0-beta.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.
Files changed (116) hide show
  1. package/LICENSE +1 -200
  2. package/MMKV/Core/Core.xcodeproj/project.pbxproj +4 -2
  3. package/MMKV/Core/MMKVPredef.h +1 -1
  4. package/MMKV/Core/MMKV_IO.cpp +5 -1
  5. package/MMKV/Core/MemoryFile.cpp +1 -0
  6. package/MMKV/Core/MemoryFile_OSX.cpp +2 -1
  7. package/MMKV/README.md +8 -8
  8. package/README.md +7 -1
  9. package/android/CMakeLists.txt +20 -28
  10. package/android/build.gradle +59 -89
  11. package/android/gradle.properties +4 -5
  12. package/android/src/main/AndroidManifest.xml +2 -2
  13. package/android/src/{hasNamespace/AndroidManifest.xml → main/AndroidManifestNew.xml} +0 -1
  14. package/android/src/main/cpp/AndroidLogger.cpp +16 -0
  15. package/android/src/main/cpp/cpp-adapter.cpp +4 -80
  16. package/android/src/main/java/com/mrousavy/mmkv/MmkvPackage.java +44 -0
  17. package/android/src/main/java/com/mrousavy/mmkv/MmkvPlatformContextModule.java +17 -0
  18. package/cpp/Logger.h +35 -0
  19. package/cpp/MMKVManagedBuffer.h +37 -0
  20. package/{android/src/main/cpp → cpp}/MmkvHostObject.cpp +126 -63
  21. package/{android/src/main/cpp → cpp}/MmkvHostObject.h +14 -3
  22. package/cpp/NativeMmkvModule.cpp +40 -0
  23. package/cpp/NativeMmkvModule.h +37 -0
  24. package/ios/AppleLogger.mm +16 -0
  25. package/ios/MmkvOnLoad.mm +25 -0
  26. package/ios/MmkvPlatformContext.h +19 -0
  27. package/ios/MmkvPlatformContextModule.mm +37 -0
  28. package/lib/commonjs/MMKV.js +34 -4
  29. package/lib/commonjs/MMKV.js.map +1 -1
  30. package/lib/commonjs/NativeMmkv.js +66 -0
  31. package/lib/commonjs/NativeMmkv.js.map +1 -0
  32. package/lib/commonjs/NativeMmkvPlatformContext.js +9 -0
  33. package/lib/commonjs/NativeMmkvPlatformContext.js.map +1 -0
  34. package/lib/commonjs/PlatformChecker.js.map +1 -1
  35. package/lib/commonjs/createMMKV.js +7 -43
  36. package/lib/commonjs/createMMKV.js.map +1 -1
  37. package/lib/commonjs/createMMKV.mock.js +5 -1
  38. package/lib/commonjs/createMMKV.mock.js.map +1 -1
  39. package/lib/commonjs/createMMKV.web.js +8 -4
  40. package/lib/commonjs/createMMKV.web.js.map +1 -1
  41. package/lib/commonjs/createTextEncoder.js.map +1 -1
  42. package/lib/commonjs/hooks.js +11 -10
  43. package/lib/commonjs/hooks.js.map +1 -1
  44. package/lib/commonjs/index.js.map +1 -1
  45. package/lib/module/MMKV.js +23 -4
  46. package/lib/module/MMKV.js.map +1 -1
  47. package/lib/module/NativeMmkv.js +63 -0
  48. package/lib/module/NativeMmkv.js.map +1 -0
  49. package/lib/module/NativeMmkvPlatformContext.js +3 -0
  50. package/lib/module/NativeMmkvPlatformContext.js.map +1 -0
  51. package/lib/module/PlatformChecker.js.map +1 -1
  52. package/lib/module/createMMKV.js +7 -43
  53. package/lib/module/createMMKV.js.map +1 -1
  54. package/lib/module/createMMKV.mock.js +5 -1
  55. package/lib/module/createMMKV.mock.js.map +1 -1
  56. package/lib/module/createMMKV.web.js +6 -4
  57. package/lib/module/createMMKV.web.js.map +1 -1
  58. package/lib/module/createTextEncoder.js.map +1 -1
  59. package/lib/module/hooks.js +7 -2
  60. package/lib/module/hooks.js.map +1 -1
  61. package/lib/module/index.js.map +1 -1
  62. package/lib/typescript/{MMKV.d.ts → src/MMKV.d.ts} +26 -49
  63. package/lib/typescript/src/MMKV.d.ts.map +1 -0
  64. package/lib/typescript/src/NativeMmkv.d.ts +79 -0
  65. package/lib/typescript/src/NativeMmkv.d.ts.map +1 -0
  66. package/lib/typescript/src/NativeMmkvPlatformContext.d.ts +9 -0
  67. package/lib/typescript/src/NativeMmkvPlatformContext.d.ts.map +1 -0
  68. package/lib/typescript/src/PlatformChecker.d.ts.map +1 -0
  69. package/lib/typescript/src/__tests__/hooks.test.d.ts +2 -0
  70. package/lib/typescript/src/__tests__/hooks.test.d.ts.map +1 -0
  71. package/lib/typescript/src/createMMKV.d.ts +3 -0
  72. package/lib/typescript/src/createMMKV.d.ts.map +1 -0
  73. package/lib/typescript/src/createMMKV.mock.d.ts +3 -0
  74. package/lib/typescript/src/createMMKV.mock.d.ts.map +1 -0
  75. package/lib/typescript/src/createMMKV.web.d.ts +3 -0
  76. package/lib/typescript/src/createMMKV.web.d.ts.map +1 -0
  77. package/lib/typescript/src/createTextEncoder.d.ts.map +1 -0
  78. package/lib/typescript/{hooks.d.ts → src/hooks.d.ts} +7 -4
  79. package/lib/typescript/src/hooks.d.ts.map +1 -0
  80. package/lib/typescript/src/index.d.ts.map +1 -0
  81. package/package.json +49 -40
  82. package/react-native-mmkv.podspec +17 -18
  83. package/src/MMKV.ts +40 -62
  84. package/src/NativeMmkv.ts +132 -0
  85. package/src/NativeMmkvPlatformContext.ts +12 -0
  86. package/src/__tests__/hooks.test.tsx +88 -0
  87. package/src/createMMKV.mock.ts +7 -3
  88. package/src/createMMKV.ts +9 -63
  89. package/src/createMMKV.web.ts +6 -2
  90. package/src/hooks.ts +17 -11
  91. package/android/src/main/java/com/reactnativemmkv/MmkvModule.java +0 -49
  92. package/android/src/main/java/com/reactnativemmkv/MmkvPackage.java +0 -26
  93. package/cpp/TypedArray.cpp +0 -322
  94. package/cpp/TypedArray.h +0 -153
  95. package/ios/JSIUtils.h +0 -38
  96. package/ios/JSIUtils.mm +0 -167
  97. package/ios/Mmkv.xcodeproj/project.pbxproj +0 -291
  98. package/ios/MmkvHostObject.h +0 -27
  99. package/ios/MmkvHostObject.mm +0 -295
  100. package/ios/MmkvModule.h +0 -5
  101. package/ios/MmkvModule.mm +0 -101
  102. package/lib/typescript/MMKV.d.ts.map +0 -1
  103. package/lib/typescript/PlatformChecker.d.ts.map +0 -1
  104. package/lib/typescript/createMMKV.d.ts +0 -7
  105. package/lib/typescript/createMMKV.d.ts.map +0 -1
  106. package/lib/typescript/createMMKV.mock.d.ts +0 -3
  107. package/lib/typescript/createMMKV.mock.d.ts.map +0 -1
  108. package/lib/typescript/createMMKV.web.d.ts +0 -3
  109. package/lib/typescript/createMMKV.web.d.ts.map +0 -1
  110. package/lib/typescript/createTextEncoder.d.ts.map +0 -1
  111. package/lib/typescript/hooks.d.ts.map +0 -1
  112. package/lib/typescript/index.d.ts.map +0 -1
  113. /package/lib/typescript/{PlatformChecker.d.ts → src/PlatformChecker.d.ts} +0 -0
  114. /package/lib/typescript/{createTextEncoder.d.ts → src/createTextEncoder.d.ts} +0 -0
  115. /package/lib/typescript/{index.d.ts → src/index.d.ts} +0 -0
  116. /package/src/{index.ts → index.tsx} +0 -0
@@ -0,0 +1,40 @@
1
+ //
2
+ // NativeMmkvModule.cpp
3
+ // react-native-mmkv
4
+ //
5
+ // Created by Marc Rousavy on 25.03.2024.
6
+ //
7
+
8
+ #include "NativeMmkvModule.h"
9
+ #include "Logger.h"
10
+ #include "MMKV.h"
11
+ #include "MmkvHostObject.h"
12
+
13
+ namespace facebook::react {
14
+
15
+ NativeMmkvModule::NativeMmkvModule(std::shared_ptr<CallInvoker> jsInvoker)
16
+ : NativeMmkvCxxSpec(jsInvoker) {}
17
+
18
+ bool NativeMmkvModule::initialize(jsi::Runtime& runtime, std::string basePath) {
19
+ if (basePath.size() < 1) {
20
+ throw jsi::JSError(runtime, "Path cannot be empty!");
21
+ }
22
+
23
+ Logger::log("RNMMKV", "Initializing MMKV at %s...", basePath.c_str());
24
+
25
+ MMKV::initializeMMKV(basePath);
26
+
27
+ return true;
28
+ }
29
+
30
+ NativeMmkvModule::~NativeMmkvModule() {
31
+ Logger::log("RNMMKV", "Closing all MMKV instances...");
32
+ MMKV::onExit();
33
+ }
34
+
35
+ jsi::Object NativeMmkvModule::createMMKV(jsi::Runtime& runtime, MMKVConfig config) {
36
+ auto instance = std::make_shared<MmkvHostObject>(config);
37
+ return jsi::Object::createFromHostObject(runtime, instance);
38
+ }
39
+
40
+ } // namespace facebook::react
@@ -0,0 +1,37 @@
1
+ //
2
+ // NativeMmkvModule.h
3
+ // react-native-mmkv
4
+ //
5
+ // Created by Marc Rousavy on 25.03.2024.
6
+ //
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<React-Codegen/RNMmkvSpecJSI.h>)
11
+ // CocoaPods include (iOS)
12
+ #include <React-Codegen/RNMmkvSpecJSI.h>
13
+ #elif __has_include(<RNMmkvSpecJSI.h>)
14
+ // CMake include on Android
15
+ #include <RNMmkvSpecJSI.h>
16
+ #else
17
+ #error Cannot find react-native-mmkv spec! Try cleaning your cache and re-running CodeGen!
18
+ #endif
19
+
20
+ namespace facebook::react {
21
+
22
+ // The MMKVConfiguration type from JS
23
+ using MMKVConfig = MmkvCxxConfiguration<std::string, std::optional<std::string>,
24
+ std::optional<std::string>, std::optional<MmkvCxxMode>>;
25
+ template <> struct Bridging<MMKVConfig> : MmkvCxxConfigurationBridging<MMKVConfig> {};
26
+
27
+ // The TurboModule itself
28
+ class NativeMmkvModule : public NativeMmkvCxxSpec<NativeMmkvModule> {
29
+ public:
30
+ NativeMmkvModule(std::shared_ptr<CallInvoker> jsInvoker);
31
+ ~NativeMmkvModule();
32
+
33
+ bool initialize(jsi::Runtime& runtime, std::string basePath);
34
+ jsi::Object createMMKV(jsi::Runtime& runtime, MMKVConfig config);
35
+ };
36
+
37
+ } // namespace facebook::react
@@ -0,0 +1,16 @@
1
+ //
2
+ // AppleLogger.m
3
+ // react-native-mmkv
4
+ //
5
+ // Created by Marc Rousavy on 25.03.24.
6
+ //
7
+
8
+ #import "Logger.h"
9
+ #import <Foundation/Foundation.h>
10
+
11
+ void Logger::log(const std::string& tag, const std::string& message) {
12
+ #pragma clang diagnostic push
13
+ #pragma clang diagnostic ignored "-Wformat-security"
14
+ NSLog(@"[%s]: %s", tag.c_str(), message.c_str());
15
+ #pragma clang diagnostic pop
16
+ }
@@ -0,0 +1,25 @@
1
+ //
2
+ // MmkvOnLoad.mm
3
+ // react-native-mmkv
4
+ //
5
+ // Created by Marc Rousavy on 27.03.24.
6
+ //
7
+
8
+ #import "NativeMmkvModule.h"
9
+ #import <Foundation/Foundation.h>
10
+ #import <ReactCommon/CxxTurboModuleUtils.h>
11
+
12
+ @interface MMKVOnLoad : NSObject
13
+ @end
14
+
15
+ @implementation MMKVOnLoad
16
+
17
+ + (void)load {
18
+ facebook::react::registerCxxModuleToGlobalModuleMap(
19
+ std::string(facebook::react::NativeMmkvModule::kModuleName),
20
+ [&](std::shared_ptr<facebook::react::CallInvoker> jsInvoker) {
21
+ return std::make_shared<facebook::react::NativeMmkvModule>(jsInvoker);
22
+ });
23
+ }
24
+
25
+ @end
@@ -0,0 +1,19 @@
1
+ //
2
+ // RTNMmkvPlatformContext.h
3
+ // Pods
4
+ //
5
+ // Created by Marc Rousavy on 27.03.24.
6
+ //
7
+
8
+ #pragma once
9
+
10
+ #import <Foundation/Foundation.h>
11
+ #import <RNMmkvSpec/RNMmkvSpec.h>
12
+
13
+ NS_ASSUME_NONNULL_BEGIN
14
+
15
+ @interface MmkvPlatformContext : NSObject <NativeMmkvPlatformContextSpec>
16
+
17
+ @end
18
+
19
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,37 @@
1
+ //
2
+ // AppleMmkvPlatformContext.m
3
+ // react-native-mmkv
4
+ //
5
+ // Created by Marc Rousavy on 25.03.24.
6
+ //
7
+
8
+ #import "MmkvPlatformContext.h"
9
+ #import <Foundation/Foundation.h>
10
+
11
+ @implementation MmkvPlatformContext
12
+
13
+ RCT_EXPORT_MODULE()
14
+
15
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
16
+ (const facebook::react::ObjCTurboModule::InitParams&)params {
17
+ return std::make_shared<facebook::react::NativeMmkvPlatformContextSpecJSI>(params);
18
+ }
19
+
20
+ - (NSString*)getBaseDirectory {
21
+ #if TARGET_OS_TV
22
+ NSArray* paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
23
+ #else
24
+ NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
25
+ #endif
26
+ NSString* documentPath = (NSString*)[paths firstObject];
27
+ if ([documentPath length] > 0) {
28
+ NSString* basePath = [documentPath stringByAppendingPathComponent:@"mmkv"];
29
+ return basePath;
30
+ } else {
31
+ @throw [NSException exceptionWithName:@"BasePathNotFound"
32
+ reason:@"Cannot find base-path to store MMKV files!"
33
+ userInfo:nil];
34
+ }
35
+ }
36
+
37
+ @end
@@ -3,10 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "Configuration", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _NativeMmkv.Configuration;
10
+ }
11
+ });
6
12
  exports.MMKV = void 0;
13
+ Object.defineProperty(exports, "Mode", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _NativeMmkv.Mode;
17
+ }
18
+ });
19
+ var _reactNative = require("react-native");
7
20
  var _createMMKV = require("./createMMKV");
8
21
  var _createMMKV2 = require("./createMMKV.mock");
9
22
  var _PlatformChecker = require("./PlatformChecker");
23
+ var _NativeMmkv = require("./NativeMmkv");
24
+ /**
25
+ * Represents a single MMKV instance.
26
+ */
27
+
10
28
  const onValueChangedListeners = new Map();
11
29
 
12
30
  /**
@@ -17,13 +35,18 @@ class MMKV {
17
35
  * Creates a new MMKV instance with the given Configuration.
18
36
  * If no custom `id` is supplied, `'mmkv.default'` will be used.
19
37
  */
20
- constructor() {
21
- let configuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
22
- id: 'mmkv.default'
23
- };
38
+ constructor(configuration = {
39
+ id: 'mmkv.default'
40
+ }) {
24
41
  this.id = configuration.id;
25
42
  this.nativeInstance = (0, _PlatformChecker.isJest)() ? (0, _createMMKV2.createMockMMKV)() : (0, _createMMKV.createMMKV)(configuration);
26
43
  this.functionCache = {};
44
+ if ('WeakRef' in global) {
45
+ const weakSelf = new WeakRef(this);
46
+ _reactNative.AppState.addEventListener('memoryWarning', () => {
47
+ weakSelf.deref()?.trim();
48
+ });
49
+ }
27
50
  }
28
51
  get onValueChangedListeners() {
29
52
  if (!onValueChangedListeners.has(this.id)) {
@@ -45,6 +68,9 @@ class MMKV {
45
68
  }
46
69
  }
47
70
  }
71
+ get size() {
72
+ return this.nativeInstance.size;
73
+ }
48
74
  set(key, value) {
49
75
  const func = this.getFunctionFromCache('set');
50
76
  func(key, value);
@@ -89,6 +115,10 @@ class MMKV {
89
115
  const func = this.getFunctionFromCache('recrypt');
90
116
  return func(key);
91
117
  }
118
+ trim() {
119
+ const func = this.getFunctionFromCache('trim');
120
+ func();
121
+ }
92
122
  toString() {
93
123
  return `MMKV (${this.id}): [${this.getAllKeys().join(', ')}]`;
94
124
  }
@@ -1 +1 @@
1
- {"version":3,"names":["onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","isJest","createMockMMKV","createMMKV","functionCache","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AAmIA,MAAMA,uBAAuB,GAAG,IAAIC,GAAG,EAAqC;;AAE5E;AACA;AACA;AACO,MAAMC,IAAI,CAA0B;EAKzC;AACF;AACA;AACA;EACEC,WAAW,GAA4D;IAAA,IAA3DC,aAAgC,uEAAG;MAAEC,EAAE,EAAE;IAAe,CAAC;IACnE,IAAI,CAACA,EAAE,GAAGD,aAAa,CAACC,EAAE;IAC1B,IAAI,CAACC,cAAc,GAAG,IAAAC,uBAAM,GAAE,GAC1B,IAAAC,2BAAc,GAAE,GAChB,IAAAC,sBAAU,EAACL,aAAa,CAAC;IAC7B,IAAI,CAACM,aAAa,GAAG,CAAC,CAAC;EACzB;EAEA,IAAYV,uBAAuB,GAAG;IACpC,IAAI,CAACA,uBAAuB,CAACW,GAAG,CAAC,IAAI,CAACN,EAAE,CAAC,EAAE;MACzCL,uBAAuB,CAACY,GAAG,CAAC,IAAI,CAACP,EAAE,EAAE,EAAE,CAAC;IAC1C;IACA,OAAOL,uBAAuB,CAACa,GAAG,CAAC,IAAI,CAACR,EAAE,CAAC;EAC7C;EAEQS,oBAAoB,CAC1BC,YAAe,EACA;IACf,IAAI,IAAI,CAACL,aAAa,CAACK,YAAY,CAAC,IAAI,IAAI,EAAE;MAC5C,IAAI,CAACL,aAAa,CAACK,YAAY,CAAC,GAAG,IAAI,CAACT,cAAc,CAACS,YAAY,CAAC;IACtE;IACA,OAAO,IAAI,CAACL,aAAa,CAACK,YAAY,CAAC;EACzC;EAEQC,eAAe,CAACC,IAAc,EAAE;IACtC,IAAI,IAAI,CAACjB,uBAAuB,CAACkB,MAAM,KAAK,CAAC,EAAE;IAE/C,KAAK,MAAMC,GAAG,IAAIF,IAAI,EAAE;MACtB,KAAK,MAAMG,QAAQ,IAAI,IAAI,CAACpB,uBAAuB,EAAE;QACnDoB,QAAQ,CAACD,GAAG,CAAC;MACf;IACF;EACF;EAEAP,GAAG,CAACO,GAAW,EAAEE,KAA6C,EAAQ;IACpE,MAAMC,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,KAAK,CAAC;IAC7CQ,IAAI,CAACH,GAAG,EAAEE,KAAK,CAAC;IAEhB,IAAI,CAACL,eAAe,CAAC,CAACG,GAAG,CAAC,CAAC;EAC7B;EACAI,UAAU,CAACJ,GAAW,EAAuB;IAC3C,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,YAAY,CAAC;IACpD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAK,SAAS,CAACL,GAAW,EAAsB;IACzC,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAM,SAAS,CAACN,GAAW,EAAsB;IACzC,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAO,SAAS,CAACP,GAAW,EAA0B;IAC7C,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAQ,QAAQ,CAACR,GAAW,EAAW;IAC7B,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,UAAU,CAAC;IAClD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAS,MAAM,CAACT,GAAW,EAAQ;IACxB,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,QAAQ,CAAC;IAChDQ,IAAI,CAACH,GAAG,CAAC;IAET,IAAI,CAACH,eAAe,CAAC,CAACG,GAAG,CAAC,CAAC;EAC7B;EACAU,UAAU,GAAa;IACrB,MAAMP,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,YAAY,CAAC;IACpD,OAAOQ,IAAI,EAAE;EACf;EACAQ,QAAQ,GAAS;IACf,MAAMb,IAAI,GAAG,IAAI,CAACY,UAAU,EAAE;IAE9B,MAAMP,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,UAAU,CAAC;IAClDQ,IAAI,EAAE;IAEN,IAAI,CAACN,eAAe,CAACC,IAAI,CAAC;EAC5B;EACAc,OAAO,CAACZ,GAAuB,EAAQ;IACrC,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,SAAS,CAAC;IACjD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EAEAa,QAAQ,GAAW;IACjB,OAAQ,SAAQ,IAAI,CAAC3B,EAAG,OAAM,IAAI,CAACwB,UAAU,EAAE,CAACI,IAAI,CAAC,IAAI,CAAE,GAAE;EAC/D;EACAC,MAAM,GAAW;IACf,OAAO;MACL,CAAC,IAAI,CAAC7B,EAAE,GAAG,IAAI,CAACwB,UAAU;IAC5B,CAAC;EACH;EAEAM,yBAAyB,CAACC,cAAqC,EAAY;IACzE,IAAI,CAACpC,uBAAuB,CAACqC,IAAI,CAACD,cAAc,CAAC;IAEjD,OAAO;MACLE,MAAM,EAAE,MAAM;QACZ,MAAMC,KAAK,GAAG,IAAI,CAACvC,uBAAuB,CAACwC,OAAO,CAACJ,cAAc,CAAC;QAClE,IAAIG,KAAK,KAAK,CAAC,CAAC,EAAE;UAChB,IAAI,CAACvC,uBAAuB,CAACyC,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;QAC/C;MACF;IACF,CAAC;EACH;AACF;AAAC"}
1
+ {"version":3,"names":["_reactNative","require","_createMMKV","_createMMKV2","_PlatformChecker","_NativeMmkv","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","isJest","createMockMMKV","createMMKV","functionCache","global","weakSelf","WeakRef","AppState","addEventListener","deref","trim","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice","exports"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Mode = void 0;
7
+ exports.getMMKVTurboModule = getMMKVTurboModule;
8
+ var _reactNative = require("react-native");
9
+ var _NativeMmkvPlatformContext = require("./NativeMmkvPlatformContext");
10
+ /**
11
+ * Configures the mode of the MMKV instance.
12
+ */
13
+ let Mode = exports.Mode = /*#__PURE__*/function (Mode) {
14
+ Mode[Mode["SINGLE_PROCESS"] = 0] = "SINGLE_PROCESS";
15
+ Mode[Mode["MULTI_PROCESS"] = 1] = "MULTI_PROCESS";
16
+ return Mode;
17
+ }({});
18
+ /**
19
+ * Used for configuration of a single MMKV instance.
20
+ */
21
+ let _module = null;
22
+ let basePath = null;
23
+
24
+ /**
25
+ * Get the MMKV TurboModule, and initialize it if this is the first time calling.
26
+ * This will throw an error if the module cannot be found.
27
+ */
28
+ function getMMKVTurboModule() {
29
+ if (_module == null) {
30
+ // try to find the turbomodule
31
+ _module = _reactNative.TurboModuleRegistry.get('MmkvCxx');
32
+ if (_module == null) {
33
+ // if it still is null, something went wrong!
34
+ let message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
35
+ message += '\n* Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)';
36
+ if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'macos') {
37
+ message += '\n* Make sure you ran `pod install` in the ios/ directory.';
38
+ }
39
+ if (_reactNative.Platform.OS === 'android') {
40
+ message += '\n* Make sure gradle is synced.';
41
+ }
42
+ // check if Expo
43
+ const ExpoConstants = _reactNative.NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants;
44
+ if (ExpoConstants != null) {
45
+ if (ExpoConstants.appOwnership === 'expo') {
46
+ // We're running Expo Go
47
+ throw new Error('react-native-mmkv is not supported in Expo Go! Use EAS (`expo prebuild`) or eject to a bare workflow instead.');
48
+ } else {
49
+ // We're running Expo bare / standalone
50
+ message += '\n* Make sure you ran `expo prebuild`.';
51
+ }
52
+ }
53
+ message += '\n* Make sure you rebuilt the app.';
54
+ throw new Error(message);
55
+ }
56
+ if (basePath == null) {
57
+ // Get base path from platform specific context
58
+ basePath = _NativeMmkvPlatformContext.PlatformContext.getBaseDirectory();
59
+ }
60
+
61
+ // Initialize MMKV
62
+ _module.initialize(basePath);
63
+ }
64
+ return _module;
65
+ }
66
+ //# sourceMappingURL=NativeMmkv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_NativeMmkvPlatformContext","Mode","exports","module","basePath","getMMKVTurboModule","TurboModuleRegistry","get","message","Platform","OS","ExpoConstants","NativeModules","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","Error","PlatformContext","getBaseDirectory","initialize"],"sourceRoot":"../../src","sources":["NativeMmkv.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,0BAAA,GAAAD,OAAA;AAEA;AACA;AACA;AAFA,IAGYE,IAAI,GAAAC,OAAA,CAAAD,IAAA,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAWhB;AACA;AACA;AAyDA,IAAIE,OAAmB,GAAG,IAAI;AAC9B,IAAIC,QAAuB,GAAG,IAAI;;AAElC;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAA,EAAS;EACzC,IAAIF,OAAM,IAAI,IAAI,EAAE;IAClB;IACAA,OAAM,GAAGG,gCAAmB,CAACC,GAAG,CAAO,SAAS,CAAC;IAEjD,IAAIJ,OAAM,IAAI,IAAI,EAAE;MAClB;MACA,IAAIK,OAAO,GACT,kFAAkF;MACpFA,OAAO,IACL,mGAAmG;MACrG,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAID,qBAAQ,CAACC,EAAE,KAAK,OAAO,EAAE;QACpDF,OAAO,IAAI,4DAA4D;MACzE;MACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;QAC7BF,OAAO,IAAI,iCAAiC;MAC9C;MACA;MACA,MAAMG,aAAa,GACjBC,0BAAa,CAACC,oBAAoB,EAAEC,gBAAgB,EAAEC,iBAAiB;MACzE,IAAIJ,aAAa,IAAI,IAAI,EAAE;QACzB,IAAIA,aAAa,CAACK,YAAY,KAAK,MAAM,EAAE;UACzC;UACA,MAAM,IAAIC,KAAK,CACb,+GACF,CAAC;QACH,CAAC,MAAM;UACL;UACAT,OAAO,IAAI,wCAAwC;QACrD;MACF;MAEAA,OAAO,IAAI,oCAAoC;MAC/C,MAAM,IAAIS,KAAK,CAACT,OAAO,CAAC;IAC1B;IAEA,IAAIJ,QAAQ,IAAI,IAAI,EAAE;MACpB;MACAA,QAAQ,GAAGc,0CAAe,CAACC,gBAAgB,CAAC,CAAC;IAC/C;;IAEA;IACAhB,OAAM,CAACiB,UAAU,CAAChB,QAAQ,CAAC;EAC7B;EAEA,OAAOD,OAAM;AACf","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PlatformContext = void 0;
7
+ var _reactNative = require("react-native");
8
+ const PlatformContext = exports.PlatformContext = _reactNative.TurboModuleRegistry.getEnforcing('MmkvPlatformContext');
9
+ //# sourceMappingURL=NativeMmkvPlatformContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","PlatformContext","exports","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeMmkvPlatformContext.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AASO,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAGE,gCAAmB,CAACC,YAAY,CAC7D,qBACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["isJest","global","process","env","JEST_WORKER_ID"],"sourceRoot":"../../src","sources":["PlatformChecker.ts"],"mappings":";;;;;;AAAO,SAASA,MAAM,GAAY;EAChC,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,EAAE;IAC1B;IACA,OAAO,KAAK;EACd;EACA,OAAOA,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,IAAI;AAC3C"}
1
+ {"version":3,"names":["isJest","global","process","env","JEST_WORKER_ID"],"sourceRoot":"../../src","sources":["PlatformChecker.ts"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAAA,EAAY;EAChC,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,EAAE;IAC1B;IACA,OAAO,KAAK;EACd;EACA,OAAOA,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,IAAI;AAC3C","ignoreList":[]}
@@ -4,52 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createMMKV = void 0;
7
- var _reactNative = require("react-native");
8
- // Root directory of all MMKV stores
9
- const ROOT_DIRECTORY = null;
7
+ var _NativeMmkv = require("./NativeMmkv");
8
+ const _module = (0, _NativeMmkv.getMMKVTurboModule)();
10
9
  const createMMKV = config => {
11
- // Check if the constructor exists. If not, try installing the JSI bindings.
12
- if (global.mmkvCreateNewInstance == null) {
13
- // Get the native MMKV ReactModule
14
- const MMKVModule = _reactNative.NativeModules.MMKV;
15
- if (MMKVModule == null) {
16
- var _NativeModules$Native, _NativeModules$Native2;
17
- let message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
18
- message += '\n* Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)';
19
- if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'macos') {
20
- message += '\n* Make sure you ran `pod install` in the ios/ directory.';
21
- }
22
- if (_reactNative.Platform.OS === 'android') {
23
- message += '\n* Make sure gradle is synced.';
24
- }
25
- // check if Expo
26
- const ExpoConstants = (_NativeModules$Native = _reactNative.NativeModules.NativeUnimoduleProxy) === null || _NativeModules$Native === void 0 ? void 0 : (_NativeModules$Native2 = _NativeModules$Native.modulesConstants) === null || _NativeModules$Native2 === void 0 ? void 0 : _NativeModules$Native2.ExponentConstants;
27
- if (ExpoConstants != null) {
28
- if (ExpoConstants.appOwnership === 'expo') {
29
- // We're running Expo Go
30
- throw new Error('react-native-mmkv is not supported in Expo Go! Use EAS (`expo prebuild`) or eject to a bare workflow instead.');
31
- } else {
32
- // We're running Expo bare / standalone
33
- message += '\n* Make sure you ran `expo prebuild`.';
34
- }
35
- }
36
- message += '\n* Make sure you rebuilt the app.';
37
- throw new Error(message);
10
+ const instance = _module.createMMKV(config);
11
+ if (__DEV__) {
12
+ if (typeof instance !== 'object' || instance == null) {
13
+ throw new Error('Failed to create MMKV instance - an unknown object was returned by createMMKV(..)!');
38
14
  }
39
-
40
- // Check if we are running on-device (JSI)
41
- if (global.nativeCallSyncHook == null || MMKVModule.install == null) {
42
- throw new Error('Failed to create a new MMKV instance: React Native is not running on-device. MMKV can only be used when synchronous method invocations (JSI) are possible. If you are using a remote debugger (e.g. Chrome), switch to an on-device debugger (e.g. Flipper) instead.');
43
- }
44
-
45
- // Call the synchronous blocking install() function
46
- const result = MMKVModule.install(ROOT_DIRECTORY);
47
- if (result !== true) throw new Error(`Failed to create a new MMKV instance: The native MMKV Module could not be installed! Looks like something went wrong when installing JSI bindings: ${result}`);
48
-
49
- // Check again if the constructor now exists. If not, throw an error.
50
- if (global.mmkvCreateNewInstance == null) throw new Error('Failed to create a new MMKV instance, the native initializer function does not exist. Are you trying to use MMKV from different JS Runtimes?');
51
15
  }
52
- return global.mmkvCreateNewInstance(config);
16
+ return instance;
53
17
  };
54
18
  exports.createMMKV = createMMKV;
55
19
  //# sourceMappingURL=createMMKV.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ROOT_DIRECTORY","createMMKV","config","global","mmkvCreateNewInstance","MMKVModule","NativeModules","MMKV","message","Platform","OS","ExpoConstants","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","Error","nativeCallSyncHook","install","result"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":";;;;;;AAAA;AASA;AACA,MAAMA,cAA6B,GAAG,IAAI;AAEnC,MAAMC,UAAU,GAAIC,MAAyB,IAAiB;EACnE;EACA,IAAIC,MAAM,CAACC,qBAAqB,IAAI,IAAI,EAAE;IACxC;IACA,MAAMC,UAAU,GAAGC,0BAAa,CAACC,IAAI;IACrC,IAAIF,UAAU,IAAI,IAAI,EAAE;MAAA;MACtB,IAAIG,OAAO,GACT,kFAAkF;MACpFA,OAAO,IACL,mGAAmG;MACrG,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAID,qBAAQ,CAACC,EAAE,KAAK,OAAO,EAAE;QACpDF,OAAO,IAAI,4DAA4D;MACzE;MACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;QAC7BF,OAAO,IAAI,iCAAiC;MAC9C;MACA;MACA,MAAMG,aAAa,4BACjBL,0BAAa,CAACM,oBAAoB,oFAAlC,sBAAoCC,gBAAgB,2DAApD,uBAAsDC,iBAAiB;MACzE,IAAIH,aAAa,IAAI,IAAI,EAAE;QACzB,IAAIA,aAAa,CAACI,YAAY,KAAK,MAAM,EAAE;UACzC;UACA,MAAM,IAAIC,KAAK,CACb,+GAA+G,CAChH;QACH,CAAC,MAAM;UACL;UACAR,OAAO,IAAI,wCAAwC;QACrD;MACF;MAEAA,OAAO,IAAI,oCAAoC;MAC/C,MAAM,IAAIQ,KAAK,CAACR,OAAO,CAAC;IAC1B;;IAEA;IACA,IAAIL,MAAM,CAACc,kBAAkB,IAAI,IAAI,IAAIZ,UAAU,CAACa,OAAO,IAAI,IAAI,EAAE;MACnE,MAAM,IAAIF,KAAK,CACb,sQAAsQ,CACvQ;IACH;;IAEA;IACA,MAAMG,MAAM,GAAGd,UAAU,CAACa,OAAO,CAAClB,cAAc,CAAC;IACjD,IAAImB,MAAM,KAAK,IAAI,EACjB,MAAM,IAAIH,KAAK,CACZ,sJAAqJG,MAAO,EAAC,CAC/J;;IAEH;IACA,IAAIhB,MAAM,CAACC,qBAAqB,IAAI,IAAI,EACtC,MAAM,IAAIY,KAAK,CACb,8IAA8I,CAC/I;EACL;EAEA,OAAOb,MAAM,CAACC,qBAAqB,CAACF,MAAM,CAAC;AAC7C,CAAC;AAAC"}
1
+ {"version":3,"names":["_NativeMmkv","require","module","getMMKVTurboModule","createMMKV","config","instance","__DEV__","Error","exports"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEA,MAAMC,OAAM,GAAG,IAAAC,8BAAkB,EAAC,CAAC;AAE5B,MAAMC,UAAU,GAAIC,MAAqB,IAAiB;EAC/D,MAAMC,QAAQ,GAAGJ,OAAM,CAACE,UAAU,CAACC,MAAM,CAAC;EAC1C,IAAIE,OAAO,EAAE;IACX,IAAI,OAAOD,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,IAAI,IAAI,EAAE;MACpD,MAAM,IAAIE,KAAK,CACb,oFACF,CAAC;IACH;EACF;EACA,OAAOF,QAAQ;AACjB,CAAC;AAACG,OAAA,CAAAL,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -25,12 +25,16 @@ const createMockMMKV = () => {
25
25
  },
26
26
  getBuffer: key => {
27
27
  const result = storage.get(key);
28
- return result instanceof Uint8Array ? result : undefined;
28
+ return result instanceof ArrayBuffer ? result : undefined;
29
29
  },
30
30
  getAllKeys: () => Array.from(storage.keys()),
31
31
  contains: key => storage.has(key),
32
32
  recrypt: () => {
33
33
  console.warn('Encryption is not supported in mocked MMKV instances!');
34
+ },
35
+ size: 0,
36
+ trim: () => {
37
+ // no-op
34
38
  }
35
39
  };
36
40
  };
@@ -1 +1 @@
1
- {"version":3,"names":["createMockMMKV","storage","Map","clearAll","clear","delete","key","set","value","getString","result","get","undefined","getNumber","getBoolean","getBuffer","Uint8Array","getAllKeys","Array","from","keys","contains","has","recrypt","console","warn"],"sourceRoot":"../../src","sources":["createMMKV.mock.ts"],"mappings":";;;;;;AAEA;AACO,MAAMA,cAAc,GAAG,MAAkB;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAAkD;EAEzE,OAAO;IACLC,QAAQ,EAAE,MAAMF,OAAO,CAACG,KAAK,EAAE;IAC/BC,MAAM,EAAGC,GAAG,IAAKL,OAAO,CAACI,MAAM,CAACC,GAAG,CAAC;IACpCC,GAAG,EAAE,CAACD,GAAG,EAAEE,KAAK,KAAKP,OAAO,CAACM,GAAG,CAACD,GAAG,EAAEE,KAAK,CAAC;IAC5CC,SAAS,EAAGH,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDC,SAAS,EAAGP,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDE,UAAU,EAAGR,GAAG,IAAK;MACnB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGE,SAAS;IACzD,CAAC;IACDG,SAAS,EAAGT,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAOI,MAAM,YAAYM,UAAU,GAAGN,MAAM,GAAGE,SAAS;IAC1D,CAAC;IACDK,UAAU,EAAE,MAAMC,KAAK,CAACC,IAAI,CAAClB,OAAO,CAACmB,IAAI,EAAE,CAAC;IAC5CC,QAAQ,EAAGf,GAAG,IAAKL,OAAO,CAACqB,GAAG,CAAChB,GAAG,CAAC;IACnCiB,OAAO,EAAE,MAAM;MACbC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACvE;EACF,CAAC;AACH,CAAC;AAAC"}
1
+ {"version":3,"names":["createMockMMKV","storage","Map","clearAll","clear","delete","key","set","value","getString","result","get","undefined","getNumber","getBoolean","getBuffer","ArrayBuffer","getAllKeys","Array","from","keys","contains","has","recrypt","console","warn","size","trim","exports"],"sourceRoot":"../../src","sources":["createMMKV.mock.ts"],"mappings":";;;;;;AAEA;AACO,MAAMA,cAAc,GAAGA,CAAA,KAAkB;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAkD,CAAC;EAE1E,OAAO;IACLC,QAAQ,EAAEA,CAAA,KAAMF,OAAO,CAACG,KAAK,CAAC,CAAC;IAC/BC,MAAM,EAAGC,GAAG,IAAKL,OAAO,CAACI,MAAM,CAACC,GAAG,CAAC;IACpCC,GAAG,EAAEA,CAACD,GAAG,EAAEE,KAAK,KAAKP,OAAO,CAACM,GAAG,CAACD,GAAG,EAAEE,KAAK,CAAC;IAC5CC,SAAS,EAAGH,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDC,SAAS,EAAGP,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDE,UAAU,EAAGR,GAAG,IAAK;MACnB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGE,SAAS;IACzD,CAAC;IACDG,SAAS,EAAGT,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAOI,MAAM,YAAYM,WAAW,GAAGN,MAAM,GAAGE,SAAS;IAC3D,CAAC;IACDK,UAAU,EAAEA,CAAA,KAAMC,KAAK,CAACC,IAAI,CAAClB,OAAO,CAACmB,IAAI,CAAC,CAAC,CAAC;IAC5CC,QAAQ,EAAGf,GAAG,IAAKL,OAAO,CAACqB,GAAG,CAAChB,GAAG,CAAC;IACnCiB,OAAO,EAAEA,CAAA,KAAM;MACbC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACvE,CAAC;IACDC,IAAI,EAAE,CAAC;IACPC,IAAI,EAAEA,CAAA,KAAM;MACV;IAAA;EAEJ,CAAC;AACH,CAAC;AAACC,OAAA,CAAA5B,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -5,8 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createMMKV = void 0;
7
7
  var _createTextEncoder = require("./createTextEncoder");
8
- var _window$document;
9
- const canUseDOM = typeof window !== 'undefined' && ((_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.createElement) != null;
8
+ /* global localStorage */
9
+
10
+ const canUseDOM = typeof window !== 'undefined' && window.document?.createElement != null;
10
11
  const hasAccessToLocalStorage = () => {
11
12
  try {
12
13
  // throws ACCESS_DENIED error
@@ -31,7 +32,6 @@ const createMMKV = config => {
31
32
  console.warn('MMKV: LocalStorage has been disabled. Your experience will be limited to in-memory storage!');
32
33
  }
33
34
  const storage = () => {
34
- var _global, _window;
35
35
  if (!canUseDOM) {
36
36
  throw new Error('Tried to access storage on the server. Did you forget to call this in useEffect?');
37
37
  }
@@ -45,7 +45,7 @@ const createMMKV = config => {
45
45
  key: index => Object.keys(inMemoryStorage).at(index) ?? null
46
46
  };
47
47
  }
48
- const domStorage = ((_global = global) === null || _global === void 0 ? void 0 : _global.localStorage) ?? ((_window = window) === null || _window === void 0 ? void 0 : _window.localStorage) ?? localStorage;
48
+ const domStorage = global?.localStorage ?? window?.localStorage ?? localStorage;
49
49
  if (domStorage == null) {
50
50
  throw new Error(`Could not find 'localStorage' instance!`);
51
51
  }
@@ -98,6 +98,10 @@ const createMMKV = config => {
98
98
  contains: key => storage().getItem(prefixedKey(key)) != null,
99
99
  recrypt: () => {
100
100
  throw new Error('`recrypt(..)` is not supported on Web!');
101
+ },
102
+ size: 0,
103
+ trim: () => {
104
+ // no-op
101
105
  }
102
106
  };
103
107
  };
@@ -1 +1 @@
1
- {"version":3,"names":["canUseDOM","window","document","createElement","hasAccessToLocalStorage","localStorage","KEY_WILDCARD","inMemoryStorage","Map","createMMKV","config","encryptionKey","Error","path","console","warn","storage","getItem","key","get","setItem","value","set","removeItem","delete","clear","length","size","index","Object","keys","at","domStorage","global","textEncoder","createTextEncoder","id","includes","keyPrefix","prefixedKey","clearAll","startsWith","toString","getString","undefined","getNumber","Number","getBoolean","getBuffer","encode","getAllKeys","filter","map","slice","contains","recrypt"],"sourceRoot":"../../src","sources":["createMMKV.web.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_createTextEncoder","require","canUseDOM","window","document","createElement","hasAccessToLocalStorage","localStorage","KEY_WILDCARD","inMemoryStorage","Map","createMMKV","config","encryptionKey","Error","path","console","warn","storage","getItem","key","get","setItem","value","set","removeItem","delete","clear","length","size","index","Object","keys","at","domStorage","global","textEncoder","createTextEncoder","id","includes","keyPrefix","prefixedKey","clearAll","startsWith","toString","getString","undefined","getNumber","Number","getBoolean","getBuffer","encode","getAllKeys","filter","map","slice","contains","recrypt","trim","exports"],"sourceRoot":"../../src","sources":["createMMKV.web.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createTextEncoder","global","TextEncoder","encode","Error","encodeInto","encoding"],"sourceRoot":"../../src","sources":["createTextEncoder.ts"],"mappings":";;;;;;AAAA;AACO,SAASA,iBAAiB,GAAgB;EAC/C,IAAIC,MAAM,CAACC,WAAW,IAAI,IAAI,EAAE;IAC9B,OAAO,IAAID,MAAM,CAACC,WAAW,EAAE;EACjC,CAAC,MAAM;IACL,OAAO;MACLC,MAAM,EAAE,MAAM;QACZ,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;MACtE,CAAC;MACDC,UAAU,EAAE,MAAM;QAChB,MAAM,IAAID,KAAK,CAAC,mDAAmD,CAAC;MACtE,CAAC;MACDE,QAAQ,EAAE;IACZ,CAAC;EACH;AACF"}
1
+ {"version":3,"names":["createTextEncoder","global","TextEncoder","encode","Error","encodeInto","encoding"],"sourceRoot":"../../src","sources":["createTextEncoder.ts"],"mappings":";;;;;;AAAA;AACO,SAASA,iBAAiBA,CAAA,EAAgB;EAC/C,IAAIC,MAAM,CAACC,WAAW,IAAI,IAAI,EAAE;IAC9B,OAAO,IAAID,MAAM,CAACC,WAAW,CAAC,CAAC;EACjC,CAAC,MAAM;IACL,OAAO;MACLC,MAAM,EAAEA,CAAA,KAAM;QACZ,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;MACtE,CAAC;MACDC,UAAU,EAAEA,CAAA,KAAM;QAChB,MAAM,IAAID,KAAK,CAAC,mDAAmD,CAAC;MACtE,CAAC;MACDE,QAAQ,EAAE;IACZ,CAAC;EACH;AACF","ignoreList":[]}
@@ -13,7 +13,7 @@ var _react = require("react");
13
13
  var _MMKV = require("./MMKV");
14
14
  function isConfigurationEqual(left, right) {
15
15
  if (left == null || right == null) return left == null && right == null;
16
- return left.encryptionKey === right.encryptionKey && left.id === right.id && left.path === right.path;
16
+ return left.encryptionKey === right.encryptionKey && left.id === right.id && left.path === right.path && left.mode === right.mode;
17
17
  }
18
18
  let defaultInstance = null;
19
19
  function getDefaultInstance() {
@@ -27,6 +27,11 @@ function getDefaultInstance() {
27
27
  * Use the default, shared MMKV instance.
28
28
  */
29
29
 
30
+ /**
31
+ * Use a custom MMKV instance with the given configuration.
32
+ * @param configuration The configuration to initialize the MMKV instance with. Does not have to be memoized.
33
+ */
34
+
30
35
  function useMMKV(configuration) {
31
36
  const instance = (0, _react.useRef)();
32
37
  const lastConfiguration = (0, _react.useRef)();
@@ -62,7 +67,7 @@ function createMMKVHook(getter) {
62
67
  mmkv.delete(key);
63
68
  break;
64
69
  case 'object':
65
- if (newValue instanceof Uint8Array) {
70
+ if (newValue instanceof ArrayBuffer) {
66
71
  mmkv.set(key, newValue);
67
72
  break;
68
73
  } else {
@@ -96,7 +101,7 @@ function createMMKVHook(getter) {
96
101
  * const [username, setUsername] = useMMKVString("user.name")
97
102
  * ```
98
103
  */
99
- const useMMKVString = createMMKVHook((instance, key) => instance.getString(key));
104
+ const useMMKVString = exports.useMMKVString = createMMKVHook((instance, key) => instance.getString(key));
100
105
 
101
106
  /**
102
107
  * Use the number value of the given `key` from the given MMKV storage instance.
@@ -108,8 +113,7 @@ const useMMKVString = createMMKVHook((instance, key) => instance.getString(key))
108
113
  * const [age, setAge] = useMMKVNumber("user.age")
109
114
  * ```
110
115
  */
111
- exports.useMMKVString = useMMKVString;
112
- const useMMKVNumber = createMMKVHook((instance, key) => instance.getNumber(key));
116
+ const useMMKVNumber = exports.useMMKVNumber = createMMKVHook((instance, key) => instance.getNumber(key));
113
117
  /**
114
118
  * Use the boolean value of the given `key` from the given MMKV storage instance.
115
119
  *
@@ -120,8 +124,7 @@ const useMMKVNumber = createMMKVHook((instance, key) => instance.getNumber(key))
120
124
  * const [isPremiumAccount, setIsPremiumAccount] = useMMKVBoolean("user.isPremium")
121
125
  * ```
122
126
  */
123
- exports.useMMKVNumber = useMMKVNumber;
124
- const useMMKVBoolean = createMMKVHook((instance, key) => instance.getBoolean(key));
127
+ const useMMKVBoolean = exports.useMMKVBoolean = createMMKVHook((instance, key) => instance.getBoolean(key));
125
128
  /**
126
129
  * Use the buffer value (unsigned 8-bit (0-255)) of the given `key` from the given MMKV storage instance.
127
130
  *
@@ -132,8 +135,7 @@ const useMMKVBoolean = createMMKVHook((instance, key) => instance.getBoolean(key
132
135
  * const [privateKey, setPrivateKey] = useMMKVBuffer("user.privateKey")
133
136
  * ```
134
137
  */
135
- exports.useMMKVBoolean = useMMKVBoolean;
136
- const useMMKVBuffer = createMMKVHook((instance, key) => instance.getBuffer(key));
138
+ const useMMKVBuffer = exports.useMMKVBuffer = createMMKVHook((instance, key) => instance.getBuffer(key));
137
139
  /**
138
140
  * Use an object value of the given `key` from the given MMKV storage instance.
139
141
  *
@@ -146,7 +148,6 @@ const useMMKVBuffer = createMMKVHook((instance, key) => instance.getBuffer(key))
146
148
  * const [user, setUser] = useMMKVObject<User>("user")
147
149
  * ```
148
150
  */
149
- exports.useMMKVBuffer = useMMKVBuffer;
150
151
  function useMMKVObject(key, instance) {
151
152
  const [json, setJson] = useMMKVString(key, instance);
152
153
  const value = (0, _react.useMemo)(() => {