@koolbase/react-native 10.0.1 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,31 @@ adheres to [Semantic Versioning][semver].
7
7
  [kac]: https://keepachangelog.com/en/1.1.0/
8
8
  [semver]: https://semver.org/
9
9
 
10
+ ## 10.2.0
11
+
12
+ ### Changed
13
+
14
+ - The platform seam gains a locking contract. React Native satisfies it by
15
+ running the function: one process, one store, nothing to coordinate.
16
+
17
+ ## 10.1.0
18
+
19
+ ### Changed
20
+
21
+ - `UploadOptions.file` accepts a `Blob` in addition to `{ uri, name, type }`.
22
+ The React Native path is unchanged; the union exists because the same core
23
+ now serves a browser, where a `File` is the only form the bytes come in.
24
+
25
+ ## 10.0.2
26
+
27
+ ### Fixed
28
+
29
+ - **A Node process that initialized the SDK never exited.** The analytics
30
+ flush interval, and a pending realtime reconnect, counted as work on Node's
31
+ event loop, so a CLI, a test runner or an SSR build step hung after its last
32
+ line. Both timers are now unref'd where the runtime supports it. A browser
33
+ is unaffected: the page keeps itself alive regardless.
34
+
10
35
  ## 10.0.1
11
36
 
12
37
  No changes to this package. Released to keep the version aligned with
@@ -38,6 +38,13 @@ function reactNativePlatform() {
38
38
  os: String(react_native_1.Platform.OS),
39
39
  version: String(react_native_1.Platform.Version),
40
40
  },
41
+ // A React Native app is one process over its own storage. Two copies of
42
+ // the SDK cannot be racing over one AsyncStorage, so the in-process
43
+ // serialisation in offline-state is the whole answer.
44
+ locks: {
45
+ exclusive: (_name, fn) => fn(),
46
+ tryExclusive: async (_name, fn) => { await fn(); return { ran: true }; },
47
+ },
41
48
  authStorage: () => ((0, auth_storage_js_1.isKeychainAvailable)() ? new auth_storage_js_1.SecureAuthStorage() : null),
42
49
  };
43
50
  }
@@ -32,6 +32,13 @@ export function reactNativePlatform() {
32
32
  os: String(Platform.OS),
33
33
  version: String(Platform.Version),
34
34
  },
35
+ // A React Native app is one process over its own storage. Two copies of
36
+ // the SDK cannot be racing over one AsyncStorage, so the in-process
37
+ // serialisation in offline-state is the whole answer.
38
+ locks: {
39
+ exclusive: (_name, fn) => fn(),
40
+ tryExclusive: async (_name, fn) => { await fn(); return { ran: true }; },
41
+ },
35
42
  authStorage: () => (isKeychainAvailable() ? new SecureAuthStorage() : null),
36
43
  };
37
44
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koolbase/react-native",
3
- "version": "10.0.1",
3
+ "version": "10.2.0",
4
4
  "description": "React Native SDK for Koolbase \u2014 auth, database, storage, realtime, feature flags, and functions in one package.",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "url": "https://github.com/koolbase/koolbase-react-native"
25
25
  },
26
26
  "dependencies": {
27
- "@koolbase/core": "10.0.1"
27
+ "@koolbase/core": "10.2.0"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "@react-native-async-storage/async-storage": "^3.0.2",