@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.
@@ -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,YAK7B,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;EAE5C,IAAIF,OAAO,CAACM,MAAM,EAAE;IAClB,MAAMC,GAAG,GAAG,gCAAgCP,OAAO,CAACQ,IAAI,CAAC,IAAI,CAAC,EAAE;IAChElB,MAAM,CAACmB,IAAI,CAACF,GAAG,CAAC;IAChB,MAAM,IAAIG,KAAK,CAACH,GAAG,CAAC;EACtB;EACAf,SAAS,CAACO,IAAI,CAACE,MAAM,CAAC;EACtBR,gBAAgB,CAACM,IAAI,CAACI,aAAa,CAAC;EACpCT,WAAW,CAACK,IAAI,CAACK,QAAQ,CAAC;EAC1BT,WAAW,CAACI,IAAI,CAACM,QAAQ,CAAC;EAE1BT,WAAW,CAAC,CAAC,CACVe,IAAI,CAAEC,EAAE,IAAK;IACZtB,MAAM,CAACuB,IAAI,CAAC,8BAA8B,EAAE;MAAEC,QAAQ,EAAEC,OAAO,CAACH,EAAE;IAAE,CAAC,CAAC;EACxE,CAAC,CAAC,CACDI,KAAK,CAAC,MAAM;IACX1B,MAAM,CAACmB,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,GAAG5B,eAAe;EACjE,IAAI0B,YAAY,IAAIC,WAAW,IAAIC,UAAU,EAAE;EAC/C,IAAI,CAACF,YAAY,EAAE;IACjB3B,MAAM,CAACmB,IAAI,CACT,4GACF,CAAC;EACH;EACA,IAAI,CAACS,WAAW,EAAE;IAChB5B,MAAM,CAACmB,IAAI,CACT,+FACF,CAAC;EACH;EAEA,IAAI,CAACU,UAAU,EAAE;IACf7B,MAAM,CAACmB,IAAI,CACT,uFACF,CAAC;EACH;AACF;AAEA,OAAO,MAAMW,YAAY,GAAG;EAC1BC,WAAW,EAAExB;AACf,CAAC","ignoreList":[]}
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
- let goBackFn = null;
6
- export function setGoBackImpl(fn) {
7
- goBackFn = fn;
8
- }
5
+ import { getReactRefSync } from "../../data/storage/reactRefManager.js";
9
6
  export function closeCurrentScreen() {
10
- try {
11
- if (goBackFn) return !!goBackFn();
12
- } catch {}
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","goBackFn","setGoBackImpl","fn","closeCurrentScreen","closeCurrentScreenSafe","closed","OS","exitApp"],"sourceRoot":"../../../../src","sources":["services/navigation/goBackNavigation.ts"],"mappings":";;AAAA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AAEpD,IAAIC,QAAgC,GAAG,IAAI;AAC3C,OAAO,SAASC,aAAaA,CAACC,EAAiB,EAAE;EAC/CF,QAAQ,GAAGE,EAAE;AACf;AAEA,OAAO,SAASC,kBAAkBA,CAAA,EAAY;EAC5C,IAAI;IACF,IAAIH,QAAQ,EAAE,OAAO,CAAC,CAACA,QAAQ,CAAC,CAAC;EACnC,CAAC,CAAC,MAAM,CAAC;EACT,OAAO,KAAK;AACd;AAEA,OAAO,SAASI,sBAAsBA,CAAA,EAAS;EAC7C,MAAMC,MAAM,GAAGF,kBAAkB,CAAC,CAAC;EACnC,IAAI,CAACE,MAAM,IAAIN,QAAQ,CAACO,EAAE,KAAK,SAAS,EAAE;IACxCR,WAAW,CAACS,OAAO,CAAC,CAAC;EACvB;AACF","ignoreList":[]}
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":[]}
@@ -3,6 +3,7 @@ export declare function initializeSDK(providedKeys: {
3
3
  encryptionKey: string;
4
4
  pRefCode: string;
5
5
  authMode: string;
6
+ navigationRef: any;
6
7
  }): void;
7
8
  export declare const SaversAppSDK: {
8
9
  initialized: typeof initializeSDK;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime.ts"],"names":[],"mappings":"AAgBA,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;CAClB,QAsDA;AAED,eAAO,MAAM,YAAY;;CAExB,CAAC"}
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,4 +1,3 @@
1
- export declare function setGoBackImpl(fn: () => boolean): void;
2
1
  export declare function closeCurrentScreen(): boolean;
3
2
  export declare function closeCurrentScreenSafe(): void;
4
3
  //# sourceMappingURL=goBackNavigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"goBackNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/services/navigation/goBackNavigation.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,OAAO,QAE9C;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAK5C;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
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",
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",
@@ -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
- try {
11
- if (goBackFn) return !!goBackFn();
12
- } catch {}
6
+ if (getReactRefSync().isReady() && getReactRefSync().canGoBack()) {
7
+ getReactRefSync().goBack();
8
+ return true;
9
+ }
10
+
13
11
  return false;
14
12
  }
15
13