@savers_app/react-native-sdk 1.2.3 → 1.2.4
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/lib/module/core/runtime.js +3 -0
- package/lib/module/core/runtime.js.map +1 -1
- package/lib/module/data/storage/reactRefManager.js +22 -0
- package/lib/module/data/storage/reactRefManager.js.map +1 -0
- package/lib/module/services/navigation/goBackNavigation.js +5 -7
- package/lib/module/services/navigation/goBackNavigation.js.map +1 -1
- package/lib/typescript/src/core/runtime.d.ts +1 -0
- package/lib/typescript/src/core/runtime.d.ts.map +1 -1
- package/lib/typescript/src/data/storage/reactRefManager.d.ts +11 -0
- package/lib/typescript/src/data/storage/reactRefManager.d.ts.map +1 -0
- package/lib/typescript/src/services/navigation/goBackNavigation.d.ts +0 -1
- package/lib/typescript/src/services/navigation/goBackNavigation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/runtime.ts +4 -0
- package/src/data/storage/reactRefManager.ts +25 -0
- package/src/services/navigation/goBackNavigation.ts +6 -8
|
@@ -7,6 +7,7 @@ import { SDKRequirements } from "../utils/dependencyManager.js";
|
|
|
7
7
|
// Data / Storage
|
|
8
8
|
import { setApiKey, setEncryptionKey, setPRefCode, setAuthMode } from "../data/storage/keysManager.js";
|
|
9
9
|
import { getDeviceId } from "../data/storage/deviceIdManager.js";
|
|
10
|
+
import { setReactRef } from "../data/storage/reactRefManager.js";
|
|
10
11
|
|
|
11
12
|
// Services
|
|
12
13
|
// import { getDeviceLocation } from '../services/device/location';
|
|
@@ -18,6 +19,7 @@ export function initializeSDK(providedKeys) {
|
|
|
18
19
|
if (!keys.encryptionKey) missing.push('encryptionKey');
|
|
19
20
|
if (!keys.pRefCode) missing.push('pRefCode');
|
|
20
21
|
if (!keys.authMode) missing.push('authMode');
|
|
22
|
+
if (!keys.navigationRef) missing.push('navigationRef');
|
|
21
23
|
if (missing.length) {
|
|
22
24
|
const msg = `[SDK] Missing required keys: ${missing.join(', ')}`;
|
|
23
25
|
logger.warn(msg);
|
|
@@ -27,6 +29,7 @@ export function initializeSDK(providedKeys) {
|
|
|
27
29
|
setEncryptionKey(keys.encryptionKey);
|
|
28
30
|
setPRefCode(keys.pRefCode);
|
|
29
31
|
setAuthMode(keys.authMode);
|
|
32
|
+
setReactRef(keys.navigationRef);
|
|
30
33
|
getDeviceId().then(id => {
|
|
31
34
|
logger.info('[SDK] Device ID availability', {
|
|
32
35
|
deviceId: Boolean(id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","SDKRequirements","setApiKey","setEncryptionKey","setPRefCode","setAuthMode","getDeviceId","initializeSDK","providedKeys","keys","missing","apiKey","push","encryptionKey","pRefCode","authMode","length","msg","join","warn","Error","then","id","info","deviceId","Boolean","catch","asyncStorage","geolocation","deviceInfo","SaversAppSDK","initialized"],"sourceRoot":"../../../src","sources":["core/runtime.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,oBAAiB;AACxC,SAASC,eAAe,QAAQ,+BAA4B;;AAE5D;AACA,SACEC,SAAS,EACTC,gBAAgB,EAChBC,WAAW,EACXC,WAAW,QACN,gCAA6B;AACpC,SAASC,WAAW,QAAQ,oCAAiC;;AAE7D;AACA;;AAEA,OAAO,SAASC,aAAaA,CAACC,
|
|
1
|
+
{"version":3,"names":["logger","SDKRequirements","setApiKey","setEncryptionKey","setPRefCode","setAuthMode","getDeviceId","setReactRef","initializeSDK","providedKeys","keys","missing","apiKey","push","encryptionKey","pRefCode","authMode","navigationRef","length","msg","join","warn","Error","then","id","info","deviceId","Boolean","catch","asyncStorage","geolocation","deviceInfo","SaversAppSDK","initialized"],"sourceRoot":"../../../src","sources":["core/runtime.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,oBAAiB;AACxC,SAASC,eAAe,QAAQ,+BAA4B;;AAE5D;AACA,SACEC,SAAS,EACTC,gBAAgB,EAChBC,WAAW,EACXC,WAAW,QACN,gCAA6B;AACpC,SAASC,WAAW,QAAQ,oCAAiC;AAC7D,SAASC,WAAW,QAAQ,oCAAiC;;AAE7D;AACA;;AAEA,OAAO,SAASC,aAAaA,CAACC,YAM7B,EAAE;EACD,MAAMC,IAAI,GAAGD,YAAY;EACzB,MAAME,OAAiB,GAAG,EAAE;EAC5B,IAAI,CAACD,IAAI,CAACE,MAAM,EAAED,OAAO,CAACE,IAAI,CAAC,QAAQ,CAAC;EACxC,IAAI,CAACH,IAAI,CAACI,aAAa,EAAEH,OAAO,CAACE,IAAI,CAAC,eAAe,CAAC;EACtD,IAAI,CAACH,IAAI,CAACK,QAAQ,EAAEJ,OAAO,CAACE,IAAI,CAAC,UAAU,CAAC;EAC5C,IAAI,CAACH,IAAI,CAACM,QAAQ,EAAEL,OAAO,CAACE,IAAI,CAAC,UAAU,CAAC;EAC5C,IAAI,CAACH,IAAI,CAACO,aAAa,EAAEN,OAAO,CAACE,IAAI,CAAC,eAAe,CAAC;EAEtD,IAAIF,OAAO,CAACO,MAAM,EAAE;IAClB,MAAMC,GAAG,GAAG,gCAAgCR,OAAO,CAACS,IAAI,CAAC,IAAI,CAAC,EAAE;IAChEpB,MAAM,CAACqB,IAAI,CAACF,GAAG,CAAC;IAChB,MAAM,IAAIG,KAAK,CAACH,GAAG,CAAC;EACtB;EACAjB,SAAS,CAACQ,IAAI,CAACE,MAAM,CAAC;EACtBT,gBAAgB,CAACO,IAAI,CAACI,aAAa,CAAC;EACpCV,WAAW,CAACM,IAAI,CAACK,QAAQ,CAAC;EAC1BV,WAAW,CAACK,IAAI,CAACM,QAAQ,CAAC;EAC1BT,WAAW,CAACG,IAAI,CAACO,aAAa,CAAC;EAE/BX,WAAW,CAAC,CAAC,CACViB,IAAI,CAAEC,EAAE,IAAK;IACZxB,MAAM,CAACyB,IAAI,CAAC,8BAA8B,EAAE;MAAEC,QAAQ,EAAEC,OAAO,CAACH,EAAE;IAAE,CAAC,CAAC;EACxE,CAAC,CAAC,CACDI,KAAK,CAAC,MAAM;IACX5B,MAAM,CAACqB,IAAI,CAAC,6BAA6B,CAAC;EAC5C,CAAC,CAAC;;EAEJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,MAAM;IAAEQ,YAAY;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG9B,eAAe;EACjE,IAAI4B,YAAY,IAAIC,WAAW,IAAIC,UAAU,EAAE;EAC/C,IAAI,CAACF,YAAY,EAAE;IACjB7B,MAAM,CAACqB,IAAI,CACT,4GACF,CAAC;EACH;EACA,IAAI,CAACS,WAAW,EAAE;IAChB9B,MAAM,CAACqB,IAAI,CACT,+FACF,CAAC;EACH;EAEA,IAAI,CAACU,UAAU,EAAE;IACf/B,MAAM,CAACqB,IAAI,CACT,uFACF,CAAC;EACH;AACF;AAEA,OAAO,MAAMW,YAAY,GAAG;EAC1BC,WAAW,EAAEzB;AACf,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
class ReactRefManager {
|
|
4
|
+
ref = null;
|
|
5
|
+
setRef(ref) {
|
|
6
|
+
this.ref = ref;
|
|
7
|
+
}
|
|
8
|
+
getRef() {
|
|
9
|
+
return this.ref;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const reactRefManager = new ReactRefManager();
|
|
13
|
+
export const setReactRef = async ref => {
|
|
14
|
+
reactRefManager.setRef(ref);
|
|
15
|
+
};
|
|
16
|
+
export async function getReactRef() {
|
|
17
|
+
return reactRefManager.getRef();
|
|
18
|
+
}
|
|
19
|
+
export function getReactRefSync() {
|
|
20
|
+
return reactRefManager.getRef();
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=reactRefManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ReactRefManager","ref","setRef","getRef","reactRefManager","setReactRef","getReactRef","getReactRefSync"],"sourceRoot":"../../../../src","sources":["data/storage/reactRefManager.ts"],"mappings":";;AAAA,MAAMA,eAAe,CAAC;EACZC,GAAG,GAAe,IAAI;EAE9BC,MAAMA,CAACD,GAAQ,EAAQ;IACrB,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAEAE,MAAMA,CAAA,EAAe;IACnB,OAAO,IAAI,CAACF,GAAG;EACjB;AACF;AAEA,OAAO,MAAMG,eAAe,GAAG,IAAIJ,eAAe,CAAC,CAAC;AAEpD,OAAO,MAAMK,WAAW,GAAG,MAAOJ,GAAQ,IAAoB;EAC5DG,eAAe,CAACF,MAAM,CAACD,GAAG,CAAC;AAC7B,CAAC;AAED,OAAO,eAAeK,WAAWA,CAAA,EAAwB;EACvD,OAAOF,eAAe,CAACD,MAAM,CAAC,CAAC;AACjC;AAEA,OAAO,SAASI,eAAeA,CAAA,EAAe;EAC5C,OAAOH,eAAe,CAACD,MAAM,CAAC,CAAC;AACjC","ignoreList":[]}
|
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
// React Native Core
|
|
4
4
|
import { BackHandler, Platform } from 'react-native';
|
|
5
|
-
|
|
6
|
-
export function setGoBackImpl(fn) {
|
|
7
|
-
goBackFn = fn;
|
|
8
|
-
}
|
|
5
|
+
import { getReactRefSync } from "../../data/storage/reactRefManager.js";
|
|
9
6
|
export function closeCurrentScreen() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
if (getReactRefSync().isReady() && getReactRefSync().canGoBack()) {
|
|
8
|
+
getReactRefSync().goBack();
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
13
11
|
return false;
|
|
14
12
|
}
|
|
15
13
|
export function closeCurrentScreenSafe() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BackHandler","Platform","
|
|
1
|
+
{"version":3,"names":["BackHandler","Platform","getReactRefSync","closeCurrentScreen","isReady","canGoBack","goBack","closeCurrentScreenSafe","closed","OS","exitApp"],"sourceRoot":"../../../../src","sources":["services/navigation/goBackNavigation.ts"],"mappings":";;AAAA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AACpD,SAASC,eAAe,QAAQ,uCAAoC;AAEpE,OAAO,SAASC,kBAAkBA,CAAA,EAAY;EAC5C,IAAID,eAAe,CAAC,CAAC,CAACE,OAAO,CAAC,CAAC,IAAIF,eAAe,CAAC,CAAC,CAACG,SAAS,CAAC,CAAC,EAAE;IAChEH,eAAe,CAAC,CAAC,CAACI,MAAM,CAAC,CAAC;IAC1B,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,sBAAsBA,CAAA,EAAS;EAC7C,MAAMC,MAAM,GAAGL,kBAAkB,CAAC,CAAC;EACnC,IAAI,CAACK,MAAM,IAAIP,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;IACxCT,WAAW,CAACU,OAAO,CAAC,CAAC;EACvB;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime.ts"],"names":[],"mappings":"AAiBA,wBAAgB,aAAa,CAAC,YAAY,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,GAAG,CAAC;CACpB,QAwDA;AAED,eAAO,MAAM,YAAY;;CAExB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class ReactRefManager {
|
|
2
|
+
private ref;
|
|
3
|
+
setRef(ref: any): void;
|
|
4
|
+
getRef(): any | null;
|
|
5
|
+
}
|
|
6
|
+
export declare const reactRefManager: ReactRefManager;
|
|
7
|
+
export declare const setReactRef: (ref: any) => Promise<void>;
|
|
8
|
+
export declare function getReactRef(): Promise<any | null>;
|
|
9
|
+
export declare function getReactRefSync(): any | null;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=reactRefManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactRefManager.d.ts","sourceRoot":"","sources":["../../../../../src/data/storage/reactRefManager.ts"],"names":[],"mappings":"AAAA,cAAM,eAAe;IACnB,OAAO,CAAC,GAAG,CAAoB;IAE/B,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAItB,MAAM,IAAI,GAAG,GAAG,IAAI;CAGrB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAErD,eAAO,MAAM,WAAW,GAAU,KAAK,GAAG,KAAG,OAAO,CAAC,IAAI,CAExD,CAAC;AAEF,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAEvD;AAED,wBAAgB,eAAe,IAAI,GAAG,GAAG,IAAI,CAE5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goBackNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/services/navigation/goBackNavigation.ts"],"names":[],"mappings":"AAIA,wBAAgB,
|
|
1
|
+
{"version":3,"file":"goBackNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/services/navigation/goBackNavigation.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,IAAI,OAAO,CAO5C;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@savers_app/react-native-sdk",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"description": "Cross-platform React Native SDK exposing native features (maps, dial pad, browser), device ID/location and session utilities, a URL generator, and a WebView message bridge to trigger actions from web content.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"react-native": "./src/index.tsx",
|
package/src/core/runtime.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
setAuthMode,
|
|
11
11
|
} from '../data/storage/keysManager';
|
|
12
12
|
import { getDeviceId } from '../data/storage/deviceIdManager';
|
|
13
|
+
import { setReactRef } from '../data/storage/reactRefManager';
|
|
13
14
|
|
|
14
15
|
// Services
|
|
15
16
|
// import { getDeviceLocation } from '../services/device/location';
|
|
@@ -19,6 +20,7 @@ export function initializeSDK(providedKeys: {
|
|
|
19
20
|
encryptionKey: string;
|
|
20
21
|
pRefCode: string;
|
|
21
22
|
authMode: string;
|
|
23
|
+
navigationRef: any;
|
|
22
24
|
}) {
|
|
23
25
|
const keys = providedKeys;
|
|
24
26
|
const missing: string[] = [];
|
|
@@ -26,6 +28,7 @@ export function initializeSDK(providedKeys: {
|
|
|
26
28
|
if (!keys.encryptionKey) missing.push('encryptionKey');
|
|
27
29
|
if (!keys.pRefCode) missing.push('pRefCode');
|
|
28
30
|
if (!keys.authMode) missing.push('authMode');
|
|
31
|
+
if (!keys.navigationRef) missing.push('navigationRef');
|
|
29
32
|
|
|
30
33
|
if (missing.length) {
|
|
31
34
|
const msg = `[SDK] Missing required keys: ${missing.join(', ')}`;
|
|
@@ -36,6 +39,7 @@ export function initializeSDK(providedKeys: {
|
|
|
36
39
|
setEncryptionKey(keys.encryptionKey);
|
|
37
40
|
setPRefCode(keys.pRefCode);
|
|
38
41
|
setAuthMode(keys.authMode);
|
|
42
|
+
setReactRef(keys.navigationRef);
|
|
39
43
|
|
|
40
44
|
getDeviceId()
|
|
41
45
|
.then((id) => {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class ReactRefManager {
|
|
2
|
+
private ref: any | null = null;
|
|
3
|
+
|
|
4
|
+
setRef(ref: any): void {
|
|
5
|
+
this.ref = ref;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
getRef(): any | null {
|
|
9
|
+
return this.ref;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const reactRefManager = new ReactRefManager();
|
|
14
|
+
|
|
15
|
+
export const setReactRef = async (ref: any): Promise<void> => {
|
|
16
|
+
reactRefManager.setRef(ref);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export async function getReactRef(): Promise<any | null> {
|
|
20
|
+
return reactRefManager.getRef();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function getReactRefSync(): any | null {
|
|
24
|
+
return reactRefManager.getRef();
|
|
25
|
+
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
// React Native Core
|
|
2
2
|
import { BackHandler, Platform } from 'react-native';
|
|
3
|
-
|
|
4
|
-
let goBackFn: (() => boolean) | null = null;
|
|
5
|
-
export function setGoBackImpl(fn: () => boolean) {
|
|
6
|
-
goBackFn = fn;
|
|
7
|
-
}
|
|
3
|
+
import { getReactRefSync } from '../../data/storage/reactRefManager';
|
|
8
4
|
|
|
9
5
|
export function closeCurrentScreen(): boolean {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
if (getReactRefSync().isReady() && getReactRefSync().canGoBack()) {
|
|
7
|
+
getReactRefSync().goBack();
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
|
|
13
11
|
return false;
|
|
14
12
|
}
|
|
15
13
|
|