@parrotnavy/rn-native-updates 0.1.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/README.ko.md +246 -0
- package/README.md +245 -0
- package/android/build.gradle +56 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/parrotnavy/nativeupdates/NativeUpdatesExceptions.kt +33 -0
- package/android/src/main/java/com/parrotnavy/nativeupdates/NativeUpdatesModule.kt +171 -0
- package/expo-module.config.json +9 -0
- package/ios/NativeUpdatesExceptions.swift +26 -0
- package/ios/NativeUpdatesModule.swift +77 -0
- package/lib/module/NativeUpdatesModule.js +5 -0
- package/lib/module/NativeUpdatesModule.js.map +1 -0
- package/lib/module/api.js +163 -0
- package/lib/module/api.js.map +1 -0
- package/lib/module/hooks/index.js +4 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useAppUpdate.js +135 -0
- package/lib/module/hooks/useAppUpdate.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/types.js +157 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/versionUtils.js +18 -0
- package/lib/module/versionUtils.js.map +1 -0
- package/lib/typescript/src/NativeUpdatesModule.d.ts +3 -0
- package/lib/typescript/src/NativeUpdatesModule.d.ts.map +1 -0
- package/lib/typescript/src/api.d.ts +15 -0
- package/lib/typescript/src/api.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +2 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useAppUpdate.d.ts +3 -0
- package/lib/typescript/src/hooks/useAppUpdate.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +246 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/versionUtils.d.ts +3 -0
- package/lib/typescript/src/versionUtils.d.ts.map +1 -0
- package/package.json +103 -0
- package/rn-native-updates.podspec +19 -0
- package/src/NativeUpdatesModule.ts +5 -0
- package/src/api.ts +239 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useAppUpdate.ts +189 -0
- package/src/index.ts +36 -0
- package/src/types.ts +315 -0
- package/src/versionUtils.ts +28 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @parrotnavy/rn-native-updates
|
|
5
|
+
* TypeScript Type Definitions
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Error Types
|
|
10
|
+
// =============================================================================
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Error codes returned by the native modules
|
|
14
|
+
*/
|
|
15
|
+
export let AppUpdateErrorCode = /*#__PURE__*/function (AppUpdateErrorCode) {
|
|
16
|
+
/** Network request failed */
|
|
17
|
+
AppUpdateErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
18
|
+
/** App not found on store */
|
|
19
|
+
AppUpdateErrorCode["APP_NOT_FOUND"] = "APP_NOT_FOUND";
|
|
20
|
+
/** API rate limit exceeded (iOS) */
|
|
21
|
+
AppUpdateErrorCode["RATE_LIMITED"] = "RATE_LIMITED";
|
|
22
|
+
/** App not installed from Play Store (Android) */
|
|
23
|
+
AppUpdateErrorCode["NOT_FROM_PLAY_STORE"] = "NOT_FROM_PLAY_STORE";
|
|
24
|
+
/** Play Store not available on device (Android) */
|
|
25
|
+
AppUpdateErrorCode["PLAY_STORE_NOT_AVAILABLE"] = "PLAY_STORE_NOT_AVAILABLE";
|
|
26
|
+
/** Update check failed */
|
|
27
|
+
AppUpdateErrorCode["CHECK_FAILED"] = "CHECK_FAILED";
|
|
28
|
+
/** Update flow failed */
|
|
29
|
+
AppUpdateErrorCode["UPDATE_FAILED"] = "UPDATE_FAILED";
|
|
30
|
+
/** Update was cancelled by user */
|
|
31
|
+
AppUpdateErrorCode["UPDATE_CANCELLED"] = "UPDATE_CANCELLED";
|
|
32
|
+
/** Unknown error */
|
|
33
|
+
AppUpdateErrorCode["UNKNOWN"] = "UNKNOWN";
|
|
34
|
+
return AppUpdateErrorCode;
|
|
35
|
+
}({});
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Custom error class for app update operations
|
|
39
|
+
*/
|
|
40
|
+
export class AppUpdateError extends Error {
|
|
41
|
+
constructor(code, message, nativeError) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = 'AppUpdateError';
|
|
44
|
+
this.code = code;
|
|
45
|
+
this.nativeError = nativeError;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// =============================================================================
|
|
50
|
+
// Android Types
|
|
51
|
+
// =============================================================================
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Android update type
|
|
55
|
+
*/
|
|
56
|
+
export let UpdateType = /*#__PURE__*/function (UpdateType) {
|
|
57
|
+
/** Background download, user can continue using app */
|
|
58
|
+
UpdateType[UpdateType["FLEXIBLE"] = 0] = "FLEXIBLE";
|
|
59
|
+
/** Full-screen blocking update */
|
|
60
|
+
UpdateType[UpdateType["IMMEDIATE"] = 1] = "IMMEDIATE";
|
|
61
|
+
return UpdateType;
|
|
62
|
+
}({});
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Android update availability status
|
|
66
|
+
*/
|
|
67
|
+
export let UpdateAvailability = /*#__PURE__*/function (UpdateAvailability) {
|
|
68
|
+
UpdateAvailability[UpdateAvailability["UNKNOWN"] = 0] = "UNKNOWN";
|
|
69
|
+
UpdateAvailability[UpdateAvailability["UPDATE_NOT_AVAILABLE"] = 1] = "UPDATE_NOT_AVAILABLE";
|
|
70
|
+
UpdateAvailability[UpdateAvailability["UPDATE_AVAILABLE"] = 2] = "UPDATE_AVAILABLE";
|
|
71
|
+
UpdateAvailability[UpdateAvailability["DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS"] = 3] = "DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS";
|
|
72
|
+
return UpdateAvailability;
|
|
73
|
+
}({});
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Android install status
|
|
77
|
+
*/
|
|
78
|
+
export let InstallStatus = /*#__PURE__*/function (InstallStatus) {
|
|
79
|
+
InstallStatus[InstallStatus["UNKNOWN"] = 0] = "UNKNOWN";
|
|
80
|
+
InstallStatus[InstallStatus["PENDING"] = 1] = "PENDING";
|
|
81
|
+
InstallStatus[InstallStatus["DOWNLOADING"] = 2] = "DOWNLOADING";
|
|
82
|
+
InstallStatus[InstallStatus["DOWNLOADED"] = 3] = "DOWNLOADED";
|
|
83
|
+
InstallStatus[InstallStatus["INSTALLING"] = 4] = "INSTALLING";
|
|
84
|
+
InstallStatus[InstallStatus["INSTALLED"] = 5] = "INSTALLED";
|
|
85
|
+
InstallStatus[InstallStatus["FAILED"] = 6] = "FAILED";
|
|
86
|
+
InstallStatus[InstallStatus["CANCELED"] = 7] = "CANCELED";
|
|
87
|
+
return InstallStatus;
|
|
88
|
+
}({});
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Android Play Store update info
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Android install state during update
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Android update listener callback
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Subscription handle for removing listener
|
|
104
|
+
*/
|
|
105
|
+
|
|
106
|
+
// =============================================================================
|
|
107
|
+
// iOS Types
|
|
108
|
+
// =============================================================================
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* iOS App Store version info
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
// =============================================================================
|
|
115
|
+
// Common Types
|
|
116
|
+
// =============================================================================
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Result of needUpdate() check
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Options for getLatestVersion()
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Options for needUpdate()
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Options for getStoreUrl()
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
// =============================================================================
|
|
135
|
+
// Hook Types
|
|
136
|
+
// =============================================================================
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Options for useAppUpdate hook
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Return type of useAppUpdate hook
|
|
144
|
+
*/
|
|
145
|
+
|
|
146
|
+
// =============================================================================
|
|
147
|
+
// Native Module Types (internal)
|
|
148
|
+
// =============================================================================
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Native module constants (exposed at load time)
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Native module interface (internal)
|
|
156
|
+
*/
|
|
157
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AppUpdateErrorCode","AppUpdateError","Error","constructor","code","message","nativeError","name","UpdateType","UpdateAvailability","InstallStatus"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAC5B;EADUA,kBAAkB;EAG5B;EAHUA,kBAAkB;EAK5B;EALUA,kBAAkB;EAO5B;EAPUA,kBAAkB;EAS5B;EATUA,kBAAkB;EAW5B;EAXUA,kBAAkB;EAa5B;EAbUA,kBAAkB;EAe5B;EAfUA,kBAAkB;EAiB5B;EAjBUA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;;AAqB9B;AACA;AACA;AACA,OAAO,MAAMC,cAAc,SAASC,KAAK,CAAC;EAIxCC,WAAWA,CAACC,IAAwB,EAAEC,OAAe,EAAEC,WAAqB,EAAE;IAC5E,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,gBAAgB;IAC5B,IAAI,CAACH,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,WAAW,GAAGA,WAAW;EAChC;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAYE,UAAU,0BAAVA,UAAU;EACpB;EADUA,UAAU,CAAVA,UAAU;EAGpB;EAHUA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;;AAOtB;AACA;AACA;AACA,WAAYC,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;;AAO9B;AACA;AACA;AACA,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;;AAWzB;AACA;AACA;;AAoBA;AACA;AACA;;AAYA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAEA;AACA;AACA;;AAgBA;AACA;AACA;;AAEA;AACA;AACA;;AAYA;AACA;AACA;;AAQA;AACA;AACA;;AAgBA;AACA;AACA;;AAMA;AACA;AACA;;AAEA;AACA;AACA;;AAUA;AACA;AACA;;AAyDA;AACA;AACA;;AAEA;AACA;AACA;;AAYA;AACA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export function compareVersions(version1, version2, depth = Number.POSITIVE_INFINITY) {
|
|
4
|
+
const v1Parts = version1.split('.').map(p => Number.parseInt(p, 10) || 0);
|
|
5
|
+
const v2Parts = version2.split('.').map(p => Number.parseInt(p, 10) || 0);
|
|
6
|
+
const maxLength = Math.min(Math.max(v1Parts.length, v2Parts.length), depth);
|
|
7
|
+
for (let i = 0; i < maxLength; i++) {
|
|
8
|
+
const v1 = v1Parts[i] ?? 0;
|
|
9
|
+
const v2 = v2Parts[i] ?? 0;
|
|
10
|
+
if (v1 > v2) return 1;
|
|
11
|
+
if (v1 < v2) return -1;
|
|
12
|
+
}
|
|
13
|
+
return 0;
|
|
14
|
+
}
|
|
15
|
+
export function isNewerVersion(currentVersion, latestVersion, depth) {
|
|
16
|
+
return compareVersions(latestVersion, currentVersion, depth) > 0;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=versionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["compareVersions","version1","version2","depth","Number","POSITIVE_INFINITY","v1Parts","split","map","p","parseInt","v2Parts","maxLength","Math","min","max","length","i","v1","v2","isNewerVersion","currentVersion","latestVersion"],"sourceRoot":"../../src","sources":["versionUtils.ts"],"mappings":";;AAAA,OAAO,SAASA,eAAeA,CAC7BC,QAAgB,EAChBC,QAAgB,EAChBC,KAAa,GAAGC,MAAM,CAACC,iBAAiB,EAChC;EACR,MAAMC,OAAO,GAAGL,QAAQ,CAACM,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKL,MAAM,CAACM,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;EAC3E,MAAME,OAAO,GAAGT,QAAQ,CAACK,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKL,MAAM,CAACM,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;EAE3E,MAAMG,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAACT,OAAO,CAACU,MAAM,EAAEL,OAAO,CAACK,MAAM,CAAC,EAAEb,KAAK,CAAC;EAE3E,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,SAAS,EAAEK,CAAC,EAAE,EAAE;IAClC,MAAMC,EAAE,GAAGZ,OAAO,CAACW,CAAC,CAAC,IAAI,CAAC;IAC1B,MAAME,EAAE,GAAGR,OAAO,CAACM,CAAC,CAAC,IAAI,CAAC;IAE1B,IAAIC,EAAE,GAAGC,EAAE,EAAE,OAAO,CAAC;IACrB,IAAID,EAAE,GAAGC,EAAE,EAAE,OAAO,CAAC,CAAC;EACxB;EAEA,OAAO,CAAC;AACV;AAEA,OAAO,SAASC,cAAcA,CAC5BC,cAAsB,EACtBC,aAAqB,EACrBnB,KAAc,EACL;EACT,OAAOH,eAAe,CAACsB,aAAa,EAAED,cAAc,EAAElB,KAAK,CAAC,GAAG,CAAC;AAClE","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeUpdatesModule.d.ts","sourceRoot":"","sources":["../../../src/NativeUpdatesModule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,eAAO,MAAM,mBAAmB,yBAAgE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AppStoreInfo, type GetLatestVersionOptions, type GetStoreUrlOptions, type NeedUpdateOptions, type NeedUpdateResult, type PlayStoreUpdateInfo, type UpdateListener, type UpdateSubscription, type UpdateType } from './types';
|
|
2
|
+
export declare function getPackageName(): string;
|
|
3
|
+
export declare function getCurrentVersion(): string;
|
|
4
|
+
export declare function getCurrentBuildNumber(): number;
|
|
5
|
+
export declare function getCountry(): string;
|
|
6
|
+
export declare function getLatestVersion(options?: GetLatestVersionOptions): Promise<string>;
|
|
7
|
+
export declare function getStoreUrl(options?: GetStoreUrlOptions): Promise<string>;
|
|
8
|
+
export declare function needUpdate(options?: NeedUpdateOptions): Promise<NeedUpdateResult>;
|
|
9
|
+
export declare function openStore(options?: GetStoreUrlOptions): Promise<void>;
|
|
10
|
+
export declare function getAppStoreInfo(options?: GetLatestVersionOptions): Promise<AppStoreInfo>;
|
|
11
|
+
export declare function checkPlayStoreUpdate(): Promise<PlayStoreUpdateInfo>;
|
|
12
|
+
export declare function startInAppUpdate(type: UpdateType): Promise<void>;
|
|
13
|
+
export declare function completeInAppUpdate(): void;
|
|
14
|
+
export declare function addUpdateListener(listener: UpdateListener): UpdateSubscription;
|
|
15
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,YAAY,EAGjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAExB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAGjB,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBzF;AAED,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB/E;AAED,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsCvF;AAED,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3E;AAED,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAY9F;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CASzE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAStE;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAS1C;AAgDD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,kBAAkB,CAgB9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAppUpdate.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAppUpdate.ts"],"names":[],"mappings":"AAYA,OAAO,EAQL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAElB,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,CAoK9E"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { addUpdateListener, checkPlayStoreUpdate, completeInAppUpdate, getAppStoreInfo, getCountry, getCurrentBuildNumber, getCurrentVersion, getLatestVersion, getPackageName, getStoreUrl, needUpdate, openStore, startInAppUpdate, } from './api';
|
|
2
|
+
export { useAppUpdate } from './hooks';
|
|
3
|
+
export { type AppStoreInfo, AppUpdateError, AppUpdateErrorCode, type GetLatestVersionOptions, type GetStoreUrlOptions, type InstallState, InstallStatus, type NativeConstants, type NativeUpdatesModuleType, type NeedUpdateOptions, type NeedUpdateResult, type PlayStoreUpdateInfo, UpdateAvailability, type UpdateListener, type UpdateSubscription, UpdateType, type UseAppUpdateOptions, type UseAppUpdateResult, } from './types';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,KAAK,YAAY,EACjB,cAAc,EACd,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @parrotnavy/rn-native-updates
|
|
3
|
+
* TypeScript Type Definitions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Error codes returned by the native modules
|
|
7
|
+
*/
|
|
8
|
+
export declare enum AppUpdateErrorCode {
|
|
9
|
+
/** Network request failed */
|
|
10
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
11
|
+
/** App not found on store */
|
|
12
|
+
APP_NOT_FOUND = "APP_NOT_FOUND",
|
|
13
|
+
/** API rate limit exceeded (iOS) */
|
|
14
|
+
RATE_LIMITED = "RATE_LIMITED",
|
|
15
|
+
/** App not installed from Play Store (Android) */
|
|
16
|
+
NOT_FROM_PLAY_STORE = "NOT_FROM_PLAY_STORE",
|
|
17
|
+
/** Play Store not available on device (Android) */
|
|
18
|
+
PLAY_STORE_NOT_AVAILABLE = "PLAY_STORE_NOT_AVAILABLE",
|
|
19
|
+
/** Update check failed */
|
|
20
|
+
CHECK_FAILED = "CHECK_FAILED",
|
|
21
|
+
/** Update flow failed */
|
|
22
|
+
UPDATE_FAILED = "UPDATE_FAILED",
|
|
23
|
+
/** Update was cancelled by user */
|
|
24
|
+
UPDATE_CANCELLED = "UPDATE_CANCELLED",
|
|
25
|
+
/** Unknown error */
|
|
26
|
+
UNKNOWN = "UNKNOWN"
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Custom error class for app update operations
|
|
30
|
+
*/
|
|
31
|
+
export declare class AppUpdateError extends Error {
|
|
32
|
+
code: AppUpdateErrorCode;
|
|
33
|
+
nativeError?: unknown;
|
|
34
|
+
constructor(code: AppUpdateErrorCode, message: string, nativeError?: unknown);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Android update type
|
|
38
|
+
*/
|
|
39
|
+
export declare enum UpdateType {
|
|
40
|
+
/** Background download, user can continue using app */
|
|
41
|
+
FLEXIBLE = 0,
|
|
42
|
+
/** Full-screen blocking update */
|
|
43
|
+
IMMEDIATE = 1
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Android update availability status
|
|
47
|
+
*/
|
|
48
|
+
export declare enum UpdateAvailability {
|
|
49
|
+
UNKNOWN = 0,
|
|
50
|
+
UPDATE_NOT_AVAILABLE = 1,
|
|
51
|
+
UPDATE_AVAILABLE = 2,
|
|
52
|
+
DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS = 3
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Android install status
|
|
56
|
+
*/
|
|
57
|
+
export declare enum InstallStatus {
|
|
58
|
+
UNKNOWN = 0,
|
|
59
|
+
PENDING = 1,
|
|
60
|
+
DOWNLOADING = 2,
|
|
61
|
+
DOWNLOADED = 3,
|
|
62
|
+
INSTALLING = 4,
|
|
63
|
+
INSTALLED = 5,
|
|
64
|
+
FAILED = 6,
|
|
65
|
+
CANCELED = 7
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Android Play Store update info
|
|
69
|
+
*/
|
|
70
|
+
export interface PlayStoreUpdateInfo {
|
|
71
|
+
/** Update availability status */
|
|
72
|
+
updateAvailability: UpdateAvailability;
|
|
73
|
+
/** Available version code (if update available) */
|
|
74
|
+
availableVersionCode: number | null;
|
|
75
|
+
/** Whether flexible update is allowed */
|
|
76
|
+
isFlexibleUpdateAllowed: boolean;
|
|
77
|
+
/** Whether immediate update is allowed */
|
|
78
|
+
isImmediateUpdateAllowed: boolean;
|
|
79
|
+
/** Days since update became available */
|
|
80
|
+
clientVersionStalenessDays: number | null;
|
|
81
|
+
/** Update priority (0-5, set in Play Console) */
|
|
82
|
+
updatePriority: number;
|
|
83
|
+
/** Total bytes to download */
|
|
84
|
+
totalBytesToDownload: number;
|
|
85
|
+
/** Package name */
|
|
86
|
+
packageName: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Android install state during update
|
|
90
|
+
*/
|
|
91
|
+
export interface InstallState {
|
|
92
|
+
/** Current install status */
|
|
93
|
+
installStatus: InstallStatus;
|
|
94
|
+
/** Bytes downloaded so far */
|
|
95
|
+
bytesDownloaded: number;
|
|
96
|
+
/** Total bytes to download */
|
|
97
|
+
totalBytesToDownload: number;
|
|
98
|
+
/** Download progress percentage (0-100) */
|
|
99
|
+
downloadProgress: number;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Android update listener callback
|
|
103
|
+
*/
|
|
104
|
+
export type UpdateListener = (state: InstallState) => void;
|
|
105
|
+
/**
|
|
106
|
+
* Subscription handle for removing listener
|
|
107
|
+
*/
|
|
108
|
+
export interface UpdateSubscription {
|
|
109
|
+
remove: () => void;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* iOS App Store version info
|
|
113
|
+
*/
|
|
114
|
+
export interface AppStoreInfo {
|
|
115
|
+
/** App Store version */
|
|
116
|
+
version: string;
|
|
117
|
+
/** iTunes track ID */
|
|
118
|
+
trackId: number;
|
|
119
|
+
/** App Store URL */
|
|
120
|
+
trackViewUrl: string;
|
|
121
|
+
/** Release date of current version */
|
|
122
|
+
currentVersionReleaseDate: string;
|
|
123
|
+
/** Release notes */
|
|
124
|
+
releaseNotes: string | null;
|
|
125
|
+
/** Minimum iOS version required */
|
|
126
|
+
minimumOsVersion: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Result of needUpdate() check
|
|
130
|
+
*/
|
|
131
|
+
export interface NeedUpdateResult {
|
|
132
|
+
/** Whether an update is needed */
|
|
133
|
+
isNeeded: boolean;
|
|
134
|
+
/** Current installed version */
|
|
135
|
+
currentVersion: string;
|
|
136
|
+
/** Latest version available on store */
|
|
137
|
+
latestVersion: string;
|
|
138
|
+
/** Store URL (App Store or Play Store) */
|
|
139
|
+
storeUrl: string;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Options for getLatestVersion()
|
|
143
|
+
*/
|
|
144
|
+
export interface GetLatestVersionOptions {
|
|
145
|
+
/** Force refresh (bypass cache) - iOS only */
|
|
146
|
+
forceRefresh?: boolean;
|
|
147
|
+
/** Country code for App Store lookup (e.g., 'us', 'kr') - iOS only */
|
|
148
|
+
country?: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Options for needUpdate()
|
|
152
|
+
*/
|
|
153
|
+
export interface NeedUpdateOptions extends GetLatestVersionOptions {
|
|
154
|
+
/** Current version to compare (defaults to installed version) */
|
|
155
|
+
currentVersion?: string;
|
|
156
|
+
/** Latest version to compare (will fetch from store if not provided) */
|
|
157
|
+
latestVersion?: string;
|
|
158
|
+
/**
|
|
159
|
+
* Depth of version comparison
|
|
160
|
+
* - 1: Major only (1.x.x)
|
|
161
|
+
* - 2: Major + Minor (1.2.x)
|
|
162
|
+
* - 3: Major + Minor + Patch (1.2.3)
|
|
163
|
+
* - Infinity: Full comparison (default)
|
|
164
|
+
*/
|
|
165
|
+
depth?: number;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Options for getStoreUrl()
|
|
169
|
+
*/
|
|
170
|
+
export interface GetStoreUrlOptions {
|
|
171
|
+
/** Country code for App Store URL - iOS only */
|
|
172
|
+
country?: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Options for useAppUpdate hook
|
|
176
|
+
*/
|
|
177
|
+
export interface UseAppUpdateOptions {
|
|
178
|
+
/** Automatically check for updates on mount (default: false) */
|
|
179
|
+
checkOnMount?: boolean;
|
|
180
|
+
/** Country code for App Store lookup - iOS only */
|
|
181
|
+
country?: string;
|
|
182
|
+
/** Error callback */
|
|
183
|
+
onError?: (error: AppUpdateError) => void;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Return type of useAppUpdate hook
|
|
187
|
+
*/
|
|
188
|
+
export interface UseAppUpdateResult {
|
|
189
|
+
/** Whether an update check is in progress */
|
|
190
|
+
isChecking: boolean;
|
|
191
|
+
/** Whether an update is available */
|
|
192
|
+
isUpdateAvailable: boolean;
|
|
193
|
+
/** Current installed version */
|
|
194
|
+
currentVersion: string;
|
|
195
|
+
/** Latest version available on store (null if not checked) */
|
|
196
|
+
latestVersion: string | null;
|
|
197
|
+
/** Store URL for the app */
|
|
198
|
+
storeUrl: string | null;
|
|
199
|
+
/** Last error that occurred */
|
|
200
|
+
error: AppUpdateError | null;
|
|
201
|
+
/** Android: Whether update is currently downloading */
|
|
202
|
+
isDownloading: boolean;
|
|
203
|
+
/** Android: Download progress (0-100) */
|
|
204
|
+
downloadProgress: number;
|
|
205
|
+
/** Android: Whether download is complete and ready to install */
|
|
206
|
+
isReadyToInstall: boolean;
|
|
207
|
+
/** Android: Detailed Play Store update info */
|
|
208
|
+
playStoreInfo: PlayStoreUpdateInfo | null;
|
|
209
|
+
/** Check for available updates */
|
|
210
|
+
checkUpdate: () => Promise<void>;
|
|
211
|
+
/** Open store page for the app */
|
|
212
|
+
openStore: () => Promise<void>;
|
|
213
|
+
/**
|
|
214
|
+
* Android: Start in-app update
|
|
215
|
+
* @param type - Update type (FLEXIBLE or IMMEDIATE)
|
|
216
|
+
*/
|
|
217
|
+
startUpdate: (type: UpdateType) => Promise<void>;
|
|
218
|
+
/**
|
|
219
|
+
* Android: Complete flexible update (triggers app restart)
|
|
220
|
+
* Only call after download is complete
|
|
221
|
+
*/
|
|
222
|
+
completeUpdate: () => Promise<void>;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Native module constants (exposed at load time)
|
|
226
|
+
*/
|
|
227
|
+
export interface NativeConstants {
|
|
228
|
+
/** Current app version */
|
|
229
|
+
currentVersion: string;
|
|
230
|
+
/** Current build number */
|
|
231
|
+
buildNumber: string;
|
|
232
|
+
/** Bundle ID (iOS) or package name (Android) */
|
|
233
|
+
packageName: string;
|
|
234
|
+
/** Device country code */
|
|
235
|
+
country: string;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Native module interface (internal)
|
|
239
|
+
*/
|
|
240
|
+
export interface NativeUpdatesModuleType extends NativeConstants {
|
|
241
|
+
getAppStoreVersion(country: string | null, forceRefresh: boolean): Promise<AppStoreInfo>;
|
|
242
|
+
checkPlayStoreUpdate(): Promise<PlayStoreUpdateInfo>;
|
|
243
|
+
startUpdate(updateType: number): Promise<void>;
|
|
244
|
+
completeUpdate(): Promise<void>;
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionUtils.d.ts","sourceRoot":"","sources":["../../../src/versionUtils.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAiC,GACvC,MAAM,CAeR;AAED,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAET"}
|
package/package.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@parrotnavy/rn-native-updates",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "React Native app update checker with hooks support. Uses Play Core for Android and iTunes Lookup API for iOS.",
|
|
5
|
+
"main": "./lib/module/index.js",
|
|
6
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"source": "./src/index.ts",
|
|
10
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
11
|
+
"default": "./lib/module/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./package.json": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"src",
|
|
17
|
+
"lib",
|
|
18
|
+
"android",
|
|
19
|
+
"ios",
|
|
20
|
+
"*.podspec",
|
|
21
|
+
"expo-module.config.json",
|
|
22
|
+
"!ios/build",
|
|
23
|
+
"!android/build",
|
|
24
|
+
"!**/__tests__",
|
|
25
|
+
"!**/__mocks__",
|
|
26
|
+
"!**/.*"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "bob build",
|
|
30
|
+
"clean": "del-cli lib android/build ios/build",
|
|
31
|
+
"prepare": "bob build",
|
|
32
|
+
"typecheck": "tsc --noEmit",
|
|
33
|
+
"lint": "biome lint .",
|
|
34
|
+
"lint:fix": "biome lint --write .",
|
|
35
|
+
"format": "biome format --write .",
|
|
36
|
+
"check": "biome check src/",
|
|
37
|
+
"check:fix": "biome check --write .",
|
|
38
|
+
"test": "jest",
|
|
39
|
+
"test:coverage": "jest --coverage"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"react-native",
|
|
43
|
+
"expo",
|
|
44
|
+
"app-update",
|
|
45
|
+
"version-check",
|
|
46
|
+
"play-store",
|
|
47
|
+
"app-store",
|
|
48
|
+
"in-app-update"
|
|
49
|
+
],
|
|
50
|
+
"repository": {
|
|
51
|
+
"type": "git",
|
|
52
|
+
"url": "https://github.com/parrotnavy/rn-native-updates.git"
|
|
53
|
+
},
|
|
54
|
+
"author": "ParrotNavy",
|
|
55
|
+
"license": "MIT",
|
|
56
|
+
"bugs": {
|
|
57
|
+
"url": "https://github.com/parrotnavy/rn-native-updates/issues"
|
|
58
|
+
},
|
|
59
|
+
"homepage": "https://github.com/parrotnavy/rn-native-updates#readme",
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@biomejs/biome": "^2.0.0",
|
|
62
|
+
"@testing-library/react-native": "^13.3.0",
|
|
63
|
+
"@types/jest": "^29.5.0",
|
|
64
|
+
"@types/react": "^18.2.0",
|
|
65
|
+
"del-cli": "^6.0.0",
|
|
66
|
+
"expo-modules-core": "^2.0.0",
|
|
67
|
+
"jest": "^29.7.0",
|
|
68
|
+
"react": "^18.2.0",
|
|
69
|
+
"react-native": "^0.76.0",
|
|
70
|
+
"react-native-builder-bob": "^0.35.0",
|
|
71
|
+
"react-test-renderer": "^18.2.0",
|
|
72
|
+
"ts-jest": "^29.4.6",
|
|
73
|
+
"typescript": "^5.0.0"
|
|
74
|
+
},
|
|
75
|
+
"peerDependencies": {
|
|
76
|
+
"expo": "*",
|
|
77
|
+
"react": "*",
|
|
78
|
+
"react-native": ">=0.73.0"
|
|
79
|
+
},
|
|
80
|
+
"peerDependenciesMeta": {
|
|
81
|
+
"expo": {
|
|
82
|
+
"optional": true
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"react-native-builder-bob": {
|
|
86
|
+
"source": "src",
|
|
87
|
+
"output": "lib",
|
|
88
|
+
"targets": [
|
|
89
|
+
[
|
|
90
|
+
"module",
|
|
91
|
+
{
|
|
92
|
+
"esm": true
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
[
|
|
96
|
+
"typescript",
|
|
97
|
+
{
|
|
98
|
+
"project": "tsconfig.build.json"
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = "rn-native-updates"
|
|
7
|
+
s.version = package["version"]
|
|
8
|
+
s.summary = package["description"]
|
|
9
|
+
s.homepage = package["homepage"]
|
|
10
|
+
s.license = package["license"]
|
|
11
|
+
s.authors = package["author"]
|
|
12
|
+
|
|
13
|
+
s.platforms = { :ios => "13.4" }
|
|
14
|
+
s.source = { :git => package["repository"]["url"], :tag => "#{s.version}" }
|
|
15
|
+
|
|
16
|
+
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
17
|
+
|
|
18
|
+
s.dependency "ExpoModulesCore"
|
|
19
|
+
end
|