@teardown/react-native 2.0.82 → 2.0.85
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/README.md +16 -16
- package/docs/adapters/device/basic.mdx +4 -4
- package/docs/adapters/device/device-info.mdx +4 -4
- package/docs/adapters/device/expo.mdx +4 -4
- package/docs/adapters/device/index.mdx +4 -4
- package/docs/adapters/index.mdx +6 -6
- package/docs/adapters/notifications/expo.mdx +5 -5
- package/docs/adapters/notifications/firebase.mdx +5 -5
- package/docs/adapters/notifications/index.mdx +5 -5
- package/docs/adapters/notifications/wix.mdx +5 -5
- package/docs/adapters/storage/async-storage.mdx +4 -4
- package/docs/adapters/storage/index.mdx +1 -1
- package/docs/adapters/storage/mmkv.mdx +4 -4
- package/docs/advanced.mdx +5 -5
- package/docs/force-updates.mdx +1 -1
- package/docs/getting-started.mdx +15 -15
- package/docs/hooks-reference.mdx +4 -4
- package/docs/index.mdx +4 -4
- package/docs/meta.json +1 -1
- package/package.json +6 -6
- package/src/clients/notifications/adapters/expo-notifications.adapter.ts +2 -2
- package/src/clients/notifications/adapters/firebase-messaging.adapter.ts +2 -2
- package/src/clients/notifications/adapters/notifications.adapter-interface.ts +1 -1
- package/src/clients/notifications/adapters/wix-notifications.adapter.ts +2 -2
- package/src/clients/notifications/notifications.client.ts +2 -2
- package/src/exports/index.ts +14 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @teardown/
|
|
1
|
+
# @teardown/force-updates
|
|
2
2
|
|
|
3
3
|
Comprehensive SDK for managing device identity, force updates, logging, and analytics in React Native and Expo applications.
|
|
4
4
|
|
|
@@ -17,11 +17,11 @@ Comprehensive SDK for managing device identity, force updates, logging, and anal
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
npm install @teardown/
|
|
20
|
+
npm install @teardown/force-updates
|
|
21
21
|
# or
|
|
22
|
-
yarn add @teardown/
|
|
22
|
+
yarn add @teardown/force-updates
|
|
23
23
|
# or
|
|
24
|
-
bun add @teardown/
|
|
24
|
+
bun add @teardown/force-updates
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
### Peer Dependencies
|
|
@@ -61,9 +61,9 @@ Create a file (e.g., `lib/teardown.ts`):
|
|
|
61
61
|
|
|
62
62
|
**Expo Setup:**
|
|
63
63
|
```tsx
|
|
64
|
-
import { TeardownCore } from '@teardown/
|
|
65
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
66
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
64
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
65
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
66
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
67
67
|
|
|
68
68
|
export const teardown = new TeardownCore({
|
|
69
69
|
org_id: 'your-org-id',
|
|
@@ -76,9 +76,9 @@ export const teardown = new TeardownCore({
|
|
|
76
76
|
|
|
77
77
|
**Bare React Native Setup:**
|
|
78
78
|
```tsx
|
|
79
|
-
import { TeardownCore } from '@teardown/
|
|
80
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
81
|
-
import { AsyncStorageAdapter } from '@teardown/
|
|
79
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
80
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
81
|
+
import { AsyncStorageAdapter } from '@teardown/force-updates/adapters/async-storage';
|
|
82
82
|
|
|
83
83
|
export const teardown = new TeardownCore({
|
|
84
84
|
org_id: 'your-org-id',
|
|
@@ -92,7 +92,7 @@ export const teardown = new TeardownCore({
|
|
|
92
92
|
### 2. Wrap your app with TeardownProvider
|
|
93
93
|
|
|
94
94
|
```tsx
|
|
95
|
-
import { TeardownProvider } from '@teardown/
|
|
95
|
+
import { TeardownProvider } from '@teardown/force-updates';
|
|
96
96
|
import { teardown } from './lib/teardown';
|
|
97
97
|
|
|
98
98
|
export default function App() {
|
|
@@ -107,7 +107,7 @@ export default function App() {
|
|
|
107
107
|
### 3. Use in components
|
|
108
108
|
|
|
109
109
|
```tsx
|
|
110
|
-
import { useTeardown, useForceUpdate, useSession } from '@teardown/
|
|
110
|
+
import { useTeardown, useForceUpdate, useSession } from '@teardown/force-updates';
|
|
111
111
|
|
|
112
112
|
function YourComponent() {
|
|
113
113
|
const { core } = useTeardown();
|
|
@@ -149,10 +149,10 @@ new TeardownCore({
|
|
|
149
149
|
|
|
150
150
|
| Adapter | Import Path | Use Case |
|
|
151
151
|
|---------|-------------|----------|
|
|
152
|
-
| `ExpoDeviceAdapter` | `@teardown/
|
|
153
|
-
| `DeviceInfoAdapter` | `@teardown/
|
|
154
|
-
| `MMKVStorageAdapter` | `@teardown/
|
|
155
|
-
| `AsyncStorageAdapter` | `@teardown/
|
|
152
|
+
| `ExpoDeviceAdapter` | `@teardown/force-updates/adapters/expo` | Expo projects |
|
|
153
|
+
| `DeviceInfoAdapter` | `@teardown/force-updates/adapters/device-info` | Bare RN projects |
|
|
154
|
+
| `MMKVStorageAdapter` | `@teardown/force-updates/adapters/mmkv` | Fast sync storage |
|
|
155
|
+
| `AsyncStorageAdapter` | `@teardown/force-updates/adapters/async-storage` | Standard async storage |
|
|
156
156
|
|
|
157
157
|
## Documentation
|
|
158
158
|
|
|
@@ -8,9 +8,9 @@ The `BasicAdapter` provides minimal device information without external dependen
|
|
|
8
8
|
## Usage
|
|
9
9
|
|
|
10
10
|
```typescript
|
|
11
|
-
import { TeardownCore } from '@teardown/
|
|
12
|
-
import { BasicAdapter } from '@teardown/
|
|
13
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
11
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
12
|
+
import { BasicAdapter } from '@teardown/force-updates/adapters/basic';
|
|
13
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
14
14
|
|
|
15
15
|
export const teardown = new TeardownCore({
|
|
16
16
|
org_id: 'your-org-id',
|
|
@@ -24,7 +24,7 @@ export const teardown = new TeardownCore({
|
|
|
24
24
|
## Import Path
|
|
25
25
|
|
|
26
26
|
```typescript
|
|
27
|
-
import { BasicAdapter } from '@teardown/
|
|
27
|
+
import { BasicAdapter } from '@teardown/force-updates/adapters/basic';
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
## Collected Data
|
|
@@ -21,9 +21,9 @@ cd ios && pod install
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
import { TeardownCore } from '@teardown/
|
|
25
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
26
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
24
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
25
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
26
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
27
27
|
|
|
28
28
|
export const teardown = new TeardownCore({
|
|
29
29
|
org_id: 'your-org-id',
|
|
@@ -37,7 +37,7 @@ export const teardown = new TeardownCore({
|
|
|
37
37
|
## Import Path
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
40
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Collected Data
|
|
@@ -14,9 +14,9 @@ npx expo install expo-device expo-application
|
|
|
14
14
|
## Usage
|
|
15
15
|
|
|
16
16
|
```typescript
|
|
17
|
-
import { TeardownCore } from '@teardown/
|
|
18
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
19
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
17
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
18
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
19
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
20
20
|
|
|
21
21
|
export const teardown = new TeardownCore({
|
|
22
22
|
org_id: 'your-org-id',
|
|
@@ -30,7 +30,7 @@ export const teardown = new TeardownCore({
|
|
|
30
30
|
## Import Path
|
|
31
31
|
|
|
32
32
|
```typescript
|
|
33
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
33
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Collected Data
|
|
@@ -64,9 +64,9 @@ enum DevicePlatformEnum {
|
|
|
64
64
|
## Usage
|
|
65
65
|
|
|
66
66
|
```typescript
|
|
67
|
-
import { TeardownCore } from '@teardown/
|
|
68
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
69
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
67
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
68
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
69
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
70
70
|
|
|
71
71
|
const teardown = new TeardownCore({
|
|
72
72
|
org_id: 'your-org-id',
|
|
@@ -104,7 +104,7 @@ import {
|
|
|
104
104
|
type ApplicationInfo,
|
|
105
105
|
type HardwareInfo,
|
|
106
106
|
type OSInfo,
|
|
107
|
-
} from '@teardown/
|
|
107
|
+
} from '@teardown/force-updates';
|
|
108
108
|
|
|
109
109
|
class CustomDeviceAdapter extends DeviceInfoAdapter {
|
|
110
110
|
get applicationInfo(): ApplicationInfo {
|
package/docs/adapters/index.mdx
CHANGED
|
@@ -62,9 +62,9 @@ const teardown = new TeardownCore({
|
|
|
62
62
|
### Expo Project
|
|
63
63
|
|
|
64
64
|
```typescript
|
|
65
|
-
import { TeardownCore } from '@teardown/
|
|
66
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
67
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
65
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
66
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
67
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
68
68
|
|
|
69
69
|
export const teardown = new TeardownCore({
|
|
70
70
|
org_id: 'your-org-id',
|
|
@@ -78,9 +78,9 @@ export const teardown = new TeardownCore({
|
|
|
78
78
|
### Bare React Native Project
|
|
79
79
|
|
|
80
80
|
```typescript
|
|
81
|
-
import { TeardownCore } from '@teardown/
|
|
82
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
83
|
-
import { AsyncStorageAdapter } from '@teardown/
|
|
81
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
82
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
83
|
+
import { AsyncStorageAdapter } from '@teardown/force-updates/adapters/async-storage';
|
|
84
84
|
|
|
85
85
|
export const teardown = new TeardownCore({
|
|
86
86
|
org_id: 'your-org-id',
|
|
@@ -16,10 +16,10 @@ npx expo install expo-notifications expo-device expo-constants
|
|
|
16
16
|
## Usage
|
|
17
17
|
|
|
18
18
|
```typescript
|
|
19
|
-
import { TeardownCore } from '@teardown/
|
|
20
|
-
import { ExpoNotificationsAdapter } from '@teardown/
|
|
21
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
22
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
19
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
20
|
+
import { ExpoNotificationsAdapter } from '@teardown/force-updates/expo';
|
|
21
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
22
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
23
23
|
|
|
24
24
|
const teardown = new TeardownCore({
|
|
25
25
|
org_id: 'your-org-id',
|
|
@@ -43,7 +43,7 @@ if (teardown.notifications) {
|
|
|
43
43
|
## Import Path
|
|
44
44
|
|
|
45
45
|
```typescript
|
|
46
|
-
import { ExpoNotificationsAdapter } from '@teardown/
|
|
46
|
+
import { ExpoNotificationsAdapter } from '@teardown/force-updates/expo';
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
## API
|
|
@@ -23,10 +23,10 @@ cd ios && pod install
|
|
|
23
23
|
## Usage
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
|
-
import { TeardownCore } from '@teardown/
|
|
27
|
-
import { FirebaseMessagingAdapter } from '@teardown/
|
|
28
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
29
|
-
import { AsyncStorageAdapter } from '@teardown/
|
|
26
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
27
|
+
import { FirebaseMessagingAdapter } from '@teardown/force-updates/firebase';
|
|
28
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
29
|
+
import { AsyncStorageAdapter } from '@teardown/force-updates/adapters/async-storage';
|
|
30
30
|
|
|
31
31
|
const teardown = new TeardownCore({
|
|
32
32
|
org_id: 'your-org-id',
|
|
@@ -50,7 +50,7 @@ if (teardown.notifications) {
|
|
|
50
50
|
## Import Path
|
|
51
51
|
|
|
52
52
|
```typescript
|
|
53
|
-
import { FirebaseMessagingAdapter } from '@teardown/
|
|
53
|
+
import { FirebaseMessagingAdapter } from '@teardown/force-updates/firebase';
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
## API
|
|
@@ -21,10 +21,10 @@ Notification adapters handle push notification token registration, permission re
|
|
|
21
21
|
Notification adapters are passed to `TeardownCore` to enable push notification support:
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
import { TeardownCore } from '@teardown/
|
|
25
|
-
import { ExpoNotificationsAdapter } from '@teardown/
|
|
26
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
27
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
24
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
25
|
+
import { ExpoNotificationsAdapter } from '@teardown/force-updates/expo';
|
|
26
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
27
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
28
28
|
|
|
29
29
|
const teardown = new TeardownCore({
|
|
30
30
|
org_id: 'your-org-id',
|
|
@@ -130,7 +130,7 @@ import {
|
|
|
130
130
|
type PushNotification,
|
|
131
131
|
type DataMessage,
|
|
132
132
|
type Unsubscribe,
|
|
133
|
-
} from '@teardown/
|
|
133
|
+
} from '@teardown/force-updates';
|
|
134
134
|
|
|
135
135
|
class CustomNotificationsAdapter extends NotificationAdapter {
|
|
136
136
|
get platform(): NotificationPlatformEnum {
|
|
@@ -23,10 +23,10 @@ cd ios && pod install
|
|
|
23
23
|
## Usage
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
|
-
import { TeardownCore } from '@teardown/
|
|
27
|
-
import { WixNotificationsAdapter } from '@teardown/
|
|
28
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
29
|
-
import { AsyncStorageAdapter } from '@teardown/
|
|
26
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
27
|
+
import { WixNotificationsAdapter } from '@teardown/force-updates/wix';
|
|
28
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
29
|
+
import { AsyncStorageAdapter } from '@teardown/force-updates/adapters/async-storage';
|
|
30
30
|
|
|
31
31
|
const teardown = new TeardownCore({
|
|
32
32
|
org_id: 'your-org-id',
|
|
@@ -50,7 +50,7 @@ if (teardown.notifications) {
|
|
|
50
50
|
## Import Path
|
|
51
51
|
|
|
52
52
|
```typescript
|
|
53
|
-
import { WixNotificationsAdapter } from '@teardown/
|
|
53
|
+
import { WixNotificationsAdapter } from '@teardown/force-updates/wix';
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
## API
|
|
@@ -21,9 +21,9 @@ npx expo install @react-native-async-storage/async-storage
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
import { TeardownCore } from '@teardown/
|
|
25
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
26
|
-
import { AsyncStorageAdapter } from '@teardown/
|
|
24
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
25
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
26
|
+
import { AsyncStorageAdapter } from '@teardown/force-updates/adapters/async-storage';
|
|
27
27
|
|
|
28
28
|
export const teardown = new TeardownCore({
|
|
29
29
|
org_id: 'your-org-id',
|
|
@@ -37,7 +37,7 @@ export const teardown = new TeardownCore({
|
|
|
37
37
|
## Import Path
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
|
-
import { AsyncStorageAdapter } from '@teardown/
|
|
40
|
+
import { AsyncStorageAdapter } from '@teardown/force-updates/adapters/async-storage';
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## When to Use
|
|
@@ -53,7 +53,7 @@ teardown:{org_id}:{project_id}:device:device_id
|
|
|
53
53
|
Extend `StorageAdapter` for custom implementations:
|
|
54
54
|
|
|
55
55
|
```typescript
|
|
56
|
-
import { StorageAdapter, type SupportedStorage } from '@teardown/
|
|
56
|
+
import { StorageAdapter, type SupportedStorage } from '@teardown/force-updates';
|
|
57
57
|
|
|
58
58
|
class CustomStorageAdapter extends StorageAdapter {
|
|
59
59
|
createStorage(storageKey: string): SupportedStorage {
|
|
@@ -21,9 +21,9 @@ cd ios && pod install
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
import { TeardownCore } from '@teardown/
|
|
25
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
26
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
24
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
25
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
26
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
27
27
|
|
|
28
28
|
export const teardown = new TeardownCore({
|
|
29
29
|
org_id: 'your-org-id',
|
|
@@ -37,7 +37,7 @@ export const teardown = new TeardownCore({
|
|
|
37
37
|
## Import Path
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
40
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Benefits
|
package/docs/advanced.mdx
CHANGED
|
@@ -36,9 +36,9 @@ export const teardown = new TeardownCore({
|
|
|
36
36
|
Enable push notifications by providing a notification adapter:
|
|
37
37
|
|
|
38
38
|
```typescript
|
|
39
|
-
import { TeardownCore } from '@teardown/
|
|
40
|
-
import { ExpoNotificationsAdapter, ExpoDeviceAdapter } from '@teardown/
|
|
41
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
39
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
40
|
+
import { ExpoNotificationsAdapter, ExpoDeviceAdapter } from '@teardown/force-updates/expo';
|
|
41
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
42
42
|
|
|
43
43
|
const teardown = new TeardownCore({
|
|
44
44
|
org_id: 'your-org-id',
|
|
@@ -206,7 +206,7 @@ function App() {
|
|
|
206
206
|
### Mock the SDK
|
|
207
207
|
|
|
208
208
|
```typescript
|
|
209
|
-
// __mocks__/@teardown/
|
|
209
|
+
// __mocks__/@teardown/force-updates.ts
|
|
210
210
|
export const TeardownProvider = ({ children }) => children;
|
|
211
211
|
|
|
212
212
|
export const useTeardown = () => ({
|
|
@@ -353,7 +353,7 @@ import type {
|
|
|
353
353
|
VersionStatus,
|
|
354
354
|
Persona,
|
|
355
355
|
AsyncResult,
|
|
356
|
-
} from '@teardown/
|
|
356
|
+
} from '@teardown/force-updates';
|
|
357
357
|
```
|
|
358
358
|
|
|
359
359
|
### Type Guards
|
package/docs/force-updates.mdx
CHANGED
|
@@ -34,7 +34,7 @@ Update status types include an optional `releaseNotes` field containing notes se
|
|
|
34
34
|
### Using the Hook
|
|
35
35
|
|
|
36
36
|
```typescript
|
|
37
|
-
import { useForceUpdate } from '@teardown/
|
|
37
|
+
import { useForceUpdate } from '@teardown/force-updates';
|
|
38
38
|
|
|
39
39
|
function App() {
|
|
40
40
|
const { versionStatus, isUpdateRequired, isUpdateAvailable, isUpdateRecommended, releaseNotes } = useForceUpdate();
|
package/docs/getting-started.mdx
CHANGED
|
@@ -9,11 +9,11 @@ icon: Rocket
|
|
|
9
9
|
Install the core package:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
bun add @teardown/
|
|
12
|
+
bun add @teardown/force-updates
|
|
13
13
|
# or
|
|
14
|
-
npm install @teardown/
|
|
14
|
+
npm install @teardown/force-updates
|
|
15
15
|
# or
|
|
16
|
-
yarn add @teardown/
|
|
16
|
+
yarn add @teardown/force-updates
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
### Peer Dependencies
|
|
@@ -53,9 +53,9 @@ Create a file to initialize the Teardown SDK (e.g., `lib/teardown.ts`):
|
|
|
53
53
|
|
|
54
54
|
**Expo Setup:**
|
|
55
55
|
```typescript
|
|
56
|
-
import { TeardownCore } from '@teardown/
|
|
57
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
58
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
56
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
57
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
58
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
59
59
|
|
|
60
60
|
export const teardown = new TeardownCore({
|
|
61
61
|
org_id: 'your-org-id',
|
|
@@ -68,9 +68,9 @@ export const teardown = new TeardownCore({
|
|
|
68
68
|
|
|
69
69
|
**Bare React Native Setup:**
|
|
70
70
|
```typescript
|
|
71
|
-
import { TeardownCore } from '@teardown/
|
|
72
|
-
import { DeviceInfoAdapter } from '@teardown/
|
|
73
|
-
import { AsyncStorageAdapter } from '@teardown/
|
|
71
|
+
import { TeardownCore } from '@teardown/force-updates';
|
|
72
|
+
import { DeviceInfoAdapter } from '@teardown/force-updates/adapters/device-info';
|
|
73
|
+
import { AsyncStorageAdapter } from '@teardown/force-updates/adapters/async-storage';
|
|
74
74
|
|
|
75
75
|
export const teardown = new TeardownCore({
|
|
76
76
|
org_id: 'your-org-id',
|
|
@@ -86,7 +86,7 @@ export const teardown = new TeardownCore({
|
|
|
86
86
|
In your root layout file (e.g., `app/_layout.tsx` for Expo Router):
|
|
87
87
|
|
|
88
88
|
```typescript
|
|
89
|
-
import { TeardownProvider } from '@teardown/
|
|
89
|
+
import { TeardownProvider } from '@teardown/force-updates';
|
|
90
90
|
import { teardown } from '../lib/teardown';
|
|
91
91
|
|
|
92
92
|
export default function RootLayout() {
|
|
@@ -101,7 +101,7 @@ export default function RootLayout() {
|
|
|
101
101
|
### 3. Use in Components
|
|
102
102
|
|
|
103
103
|
```typescript
|
|
104
|
-
import { useTeardown, useSession, useForceUpdate } from '@teardown/
|
|
104
|
+
import { useTeardown, useSession, useForceUpdate } from '@teardown/force-updates';
|
|
105
105
|
|
|
106
106
|
function MyComponent() {
|
|
107
107
|
const { core } = useTeardown();
|
|
@@ -144,10 +144,10 @@ function MyComponent() {
|
|
|
144
144
|
|
|
145
145
|
| Adapter | Import Path | Use Case |
|
|
146
146
|
|---------|-------------|----------|
|
|
147
|
-
| `ExpoDeviceAdapter` | `@teardown/
|
|
148
|
-
| `DeviceInfoAdapter` | `@teardown/
|
|
149
|
-
| `MMKVStorageAdapter` | `@teardown/
|
|
150
|
-
| `AsyncStorageAdapter` | `@teardown/
|
|
147
|
+
| `ExpoDeviceAdapter` | `@teardown/force-updates/adapters/expo` | Expo projects |
|
|
148
|
+
| `DeviceInfoAdapter` | `@teardown/force-updates/adapters/device-info` | Bare RN projects |
|
|
149
|
+
| `MMKVStorageAdapter` | `@teardown/force-updates/adapters/mmkv` | Fast sync storage |
|
|
150
|
+
| `AsyncStorageAdapter` | `@teardown/force-updates/adapters/async-storage` | Standard async storage |
|
|
151
151
|
|
|
152
152
|
## Next Steps
|
|
153
153
|
|
package/docs/hooks-reference.mdx
CHANGED
|
@@ -11,7 +11,7 @@ The SDK provides React hooks for reactive access to SDK state.
|
|
|
11
11
|
Context provider that makes the SDK available to all child components.
|
|
12
12
|
|
|
13
13
|
```tsx
|
|
14
|
-
import { TeardownProvider } from '@teardown/
|
|
14
|
+
import { TeardownProvider } from '@teardown/force-updates';
|
|
15
15
|
import { teardown } from './lib/teardown';
|
|
16
16
|
|
|
17
17
|
function App() {
|
|
@@ -37,7 +37,7 @@ function App() {
|
|
|
37
37
|
Access the TeardownCore instance from any component.
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
|
-
import { useTeardown } from '@teardown/
|
|
40
|
+
import { useTeardown } from '@teardown/force-updates';
|
|
41
41
|
|
|
42
42
|
function MyComponent() {
|
|
43
43
|
const { core } = useTeardown();
|
|
@@ -67,7 +67,7 @@ Throws an error if used outside of `TeardownProvider`.
|
|
|
67
67
|
Get the current session with reactive updates.
|
|
68
68
|
|
|
69
69
|
```typescript
|
|
70
|
-
import { useSession } from '@teardown/
|
|
70
|
+
import { useSession } from '@teardown/force-updates';
|
|
71
71
|
|
|
72
72
|
function ProfileScreen() {
|
|
73
73
|
const session = useSession();
|
|
@@ -115,7 +115,7 @@ The hook subscribes to `identity.onIdentifyStateChange()` and re-renders when:
|
|
|
115
115
|
Get version status with reactive updates.
|
|
116
116
|
|
|
117
117
|
```typescript
|
|
118
|
-
import { useForceUpdate } from '@teardown/
|
|
118
|
+
import { useForceUpdate } from '@teardown/force-updates';
|
|
119
119
|
|
|
120
120
|
function App() {
|
|
121
121
|
const {
|
package/docs/index.mdx
CHANGED
|
@@ -18,13 +18,13 @@ The Teardown React Native SDK provides everything you need to manage device iden
|
|
|
18
18
|
## Quick Start
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
bun add @teardown/
|
|
21
|
+
bun add @teardown/force-updates
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
```tsx
|
|
25
|
-
import { TeardownCore, TeardownProvider } from '@teardown/
|
|
26
|
-
import { ExpoDeviceAdapter } from '@teardown/
|
|
27
|
-
import { MMKVStorageAdapter } from '@teardown/
|
|
25
|
+
import { TeardownCore, TeardownProvider } from '@teardown/force-updates';
|
|
26
|
+
import { ExpoDeviceAdapter } from '@teardown/force-updates/adapters/expo';
|
|
27
|
+
import { MMKVStorageAdapter } from '@teardown/force-updates/adapters/mmkv';
|
|
28
28
|
|
|
29
29
|
const teardown = new TeardownCore({
|
|
30
30
|
org_id: 'your-org-id',
|
package/docs/meta.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teardown/react-native",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.85",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -52,18 +52,18 @@
|
|
|
52
52
|
"prepublishOnly": "bun run build"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@teardown/ingest-api": "2.0.
|
|
56
|
-
"@teardown/schemas": "2.0.
|
|
57
|
-
"@teardown/types": "2.0.
|
|
55
|
+
"@teardown/ingest-api": "2.0.85",
|
|
56
|
+
"@teardown/schemas": "2.0.85",
|
|
57
|
+
"@teardown/types": "2.0.85",
|
|
58
58
|
"eventemitter3": "^5.0.1",
|
|
59
59
|
"react-native-get-random-values": "^2.0.0",
|
|
60
60
|
"uuid": "^13.0.0",
|
|
61
|
-
"zod": "4.
|
|
61
|
+
"zod": "4.3.6"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@biomejs/biome": "2.3.11",
|
|
65
65
|
"@react-native-firebase/messaging": "*",
|
|
66
|
-
"@teardown/tsconfig": "2.0.
|
|
66
|
+
"@teardown/tsconfig": "2.0.85",
|
|
67
67
|
"@types/bun": "1.3.5",
|
|
68
68
|
"@types/react": "~19.1.0",
|
|
69
69
|
"@types/uuid": "^11.0.0",
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
*
|
|
15
15
|
* @example
|
|
16
16
|
* ```typescript
|
|
17
|
-
* import { NotificationsClient } from "@teardown/
|
|
18
|
-
* import { ExpoNotificationsAdapter } from "@teardown/
|
|
17
|
+
* import { NotificationsClient } from "@teardown/force-updates";
|
|
18
|
+
* import { ExpoNotificationsAdapter } from "@teardown/force-updates/expo-notifications";
|
|
19
19
|
*
|
|
20
20
|
* const notifications = new NotificationsClient(logging, storage, {
|
|
21
21
|
* adapter: new ExpoNotificationsAdapter()
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
*
|
|
15
15
|
* @example
|
|
16
16
|
* ```typescript
|
|
17
|
-
* import { NotificationsClient } from "@teardown/
|
|
18
|
-
* import { FirebaseMessagingAdapter } from "@teardown/
|
|
17
|
+
* import { NotificationsClient } from "@teardown/force-updates";
|
|
18
|
+
* import { FirebaseMessagingAdapter } from "@teardown/force-updates/firebase-messaging";
|
|
19
19
|
*
|
|
20
20
|
* const notifications = new NotificationsClient(logging, storage, {
|
|
21
21
|
* adapter: new FirebaseMessagingAdapter()
|
|
@@ -55,7 +55,7 @@ export abstract class NotificationAdapter {
|
|
|
55
55
|
constructor() {
|
|
56
56
|
if (__DEV__) {
|
|
57
57
|
console.warn(
|
|
58
|
-
"[@teardown/
|
|
58
|
+
"[@teardown/force-updates] Notification adapters are a work in progress and may change in future releases."
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -18,8 +18,8 @@ import {
|
|
|
18
18
|
*
|
|
19
19
|
* @example
|
|
20
20
|
* ```typescript
|
|
21
|
-
* import { NotificationsClient } from "@teardown/
|
|
22
|
-
* import { WixNotificationsAdapter } from "@teardown/
|
|
21
|
+
* import { NotificationsClient } from "@teardown/force-updates";
|
|
22
|
+
* import { WixNotificationsAdapter } from "@teardown/force-updates/wix-notifications";
|
|
23
23
|
*
|
|
24
24
|
* const notifications = new NotificationsClient(logging, storage, {
|
|
25
25
|
* adapter: new WixNotificationsAdapter()
|
|
@@ -32,8 +32,8 @@ export interface NotificationsClientOptions {
|
|
|
32
32
|
*
|
|
33
33
|
* @example
|
|
34
34
|
* ```typescript
|
|
35
|
-
* import { NotificationsClient } from "@teardown/
|
|
36
|
-
* import { ExpoNotificationsAdapter } from "@teardown/
|
|
35
|
+
* import { NotificationsClient } from "@teardown/force-updates";
|
|
36
|
+
* import { ExpoNotificationsAdapter } from "@teardown/force-updates/expo-notifications";
|
|
37
37
|
*
|
|
38
38
|
* const notifications = new NotificationsClient(logging, storage, {
|
|
39
39
|
* adapter: new ExpoNotificationsAdapter()
|
package/src/exports/index.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
// Deprecation warning - only log in development
|
|
2
|
+
if (typeof __DEV__ !== "undefined" && __DEV__) {
|
|
3
|
+
console.warn(
|
|
4
|
+
"[@teardown/react-native] This package has been renamed to @teardown/force-updates.\n" +
|
|
5
|
+
"This is the final version of @teardown/react-native.\n" +
|
|
6
|
+
"Please migrate to @teardown/force-updates:\n\n" +
|
|
7
|
+
" npm uninstall @teardown/react-native\n" +
|
|
8
|
+
" npm install @teardown/force-updates\n\n" +
|
|
9
|
+
"Then update your imports:\n" +
|
|
10
|
+
" - import { ... } from '@teardown/react-native'\n" +
|
|
11
|
+
" + import { ... } from '@teardown/force-updates'"
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
|
|
1
15
|
// Clients
|
|
2
16
|
export * from "../clients/api";
|
|
3
17
|
export * from "../clients/device/device.client";
|