vrtx-react-native 0.1.71 → 0.1.73
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 +8 -5
- package/android/build.gradle +1 -1
- package/android/src/main/java/sa/vrtx/reactnative/{VrtxAndroidModule.kt → VrtxSdkModule.kt} +4 -2
- package/build/{VrtxAndroidModule.d.ts → VrtxSdkModule.d.ts} +6 -6
- package/build/VrtxSdkModule.d.ts.map +1 -0
- package/build/{VrtxAndroidModule.js → VrtxSdkModule.js} +2 -2
- package/build/VrtxSdkModule.js.map +1 -0
- package/build/index.d.ts +4 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +7 -6
- package/build/index.js.map +1 -1
- package/expo-module.config.json +2 -2
- package/ios/{VrtxAndroid.podspec → VrtxSdk.podspec} +6 -10
- package/ios/{VrtxAndroidModule.swift → VrtxSdkModule.swift} +4 -2
- package/package.json +5 -8
- package/build/VrtxAndroidModule.d.ts.map +0 -1
- package/build/VrtxAndroidModule.js.map +0 -1
package/README.md
CHANGED
|
@@ -34,6 +34,7 @@ await setup({
|
|
|
34
34
|
environment: Environment.Sandbox,
|
|
35
35
|
language: Language.English,
|
|
36
36
|
mode: Mode.LIGHT,
|
|
37
|
+
externalReference: 'your-external-reference',
|
|
37
38
|
});
|
|
38
39
|
|
|
39
40
|
// Remove listeners when they are no longer needed.
|
|
@@ -65,13 +66,15 @@ errorSubscription.remove();
|
|
|
65
66
|
|
|
66
67
|
The React Native API mirrors the Android SDK public enums:
|
|
67
68
|
|
|
68
|
-
| Parameter
|
|
69
|
-
|
|
|
70
|
-
| `environment`
|
|
71
|
-
| `language`
|
|
72
|
-
| `mode`
|
|
69
|
+
| Parameter | Enum | Values |
|
|
70
|
+
| ------------------- | ------------- | -------------------------------------------- |
|
|
71
|
+
| `environment` | `Environment` | `Environment.Sandbox`, `Environment.Staging` |
|
|
72
|
+
| `language` | `Language` | `Language.English`, `Language.Arabic` |
|
|
73
|
+
| `mode` | `Mode` | `Mode.LIGHT`, `Mode.DARK` |
|
|
74
|
+
| `externalReference` | `string` | Optional app-provided SDK session reference |
|
|
73
75
|
|
|
74
76
|
`fontFamily` may be passed with the name of a font already bundled in the host app.
|
|
77
|
+
`externalReference` may be passed as a string when your app needs to attach its own reference to the SDK session.
|
|
75
78
|
|
|
76
79
|
## Events
|
|
77
80
|
|
package/android/build.gradle
CHANGED
|
@@ -12,7 +12,7 @@ group = 'sa.vrtx.reactnative'
|
|
|
12
12
|
version = '0.1.0'
|
|
13
13
|
|
|
14
14
|
dependencies {
|
|
15
|
-
implementation 'sa.vrtx.sa:vrtx-android:0.0.
|
|
15
|
+
implementation 'sa.vrtx.sa:vrtx-android:0.0.14'
|
|
16
16
|
implementation 'androidx.compose.ui:ui:1.6.8'
|
|
17
17
|
implementation 'androidx.activity:activity-compose:1.9.0'
|
|
18
18
|
implementation 'com.facebook.react:react-android'
|
|
@@ -13,7 +13,7 @@ import sa.vrtx.public.configuration.Language
|
|
|
13
13
|
import sa.vrtx.public.configuration.Mode
|
|
14
14
|
import androidx.compose.ui.text.font.FontFamily
|
|
15
15
|
|
|
16
|
-
class
|
|
16
|
+
class VrtxSdkModule : Module() {
|
|
17
17
|
|
|
18
18
|
private fun getActivity(): ComponentActivity? {
|
|
19
19
|
return appContext.activityProvider?.currentActivity as? ComponentActivity
|
|
@@ -35,7 +35,7 @@ class VrtxAndroidModule : Module() {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
override fun definition() = ModuleDefinition {
|
|
38
|
-
Name("
|
|
38
|
+
Name("VrtxSdk")
|
|
39
39
|
|
|
40
40
|
Constant("LIBRARY_NAME") {
|
|
41
41
|
"vrtx-android"
|
|
@@ -50,6 +50,7 @@ class VrtxAndroidModule : Module() {
|
|
|
50
50
|
language: String,
|
|
51
51
|
mode: String?,
|
|
52
52
|
fontFamilyName: String?,
|
|
53
|
+
externalReference: String?,
|
|
53
54
|
promise: Promise ->
|
|
54
55
|
|
|
55
56
|
val env = when(environment.uppercase()) {
|
|
@@ -84,6 +85,7 @@ class VrtxAndroidModule : Module() {
|
|
|
84
85
|
language = lang,
|
|
85
86
|
mode = selectedMode,
|
|
86
87
|
fontFamily = fontFamily,
|
|
88
|
+
externalReference = externalReference,
|
|
87
89
|
onSuccess = {
|
|
88
90
|
promise.resolve(null)
|
|
89
91
|
sendEvent("onSuccess")
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { NativeModule } from 'expo';
|
|
2
|
-
type
|
|
2
|
+
type VrtxSdkModuleEvents = {
|
|
3
3
|
onSuccess: () => void;
|
|
4
4
|
onError: (params: {
|
|
5
5
|
code: string;
|
|
6
6
|
message: string;
|
|
7
7
|
}) => void;
|
|
8
8
|
};
|
|
9
|
-
declare class
|
|
10
|
-
readonly VERSION: string;
|
|
9
|
+
declare class VrtxSdkModule extends NativeModule<VrtxSdkModuleEvents> {
|
|
11
10
|
readonly LIBRARY_NAME: string;
|
|
12
11
|
/**
|
|
13
12
|
* Initialize and launch the Vrtx SDK UI flow
|
|
@@ -18,10 +17,11 @@ declare class VrtxAndroidModule extends NativeModule<VrtxAndroidModuleEvents> {
|
|
|
18
17
|
* @param language The language for the UI (ENGLISH or ARABIC)
|
|
19
18
|
* @param mode Optional display mode (LIGHT or DARK) - defaults to LIGHT
|
|
20
19
|
* @param fontFamily Optional React Native font family name - defaults to the system font
|
|
20
|
+
* @param externalReference Optional app-provided reference attached to the SDK session
|
|
21
21
|
*/
|
|
22
|
-
setup(clientId: string, clientSecret: string, environment: 'SANDBOX' | 'STAGING', language: 'ENGLISH' | 'ARABIC', mode?: 'LIGHT' | 'DARK', fontFamily?: string): Promise<void>;
|
|
22
|
+
setup(clientId: string, clientSecret: string, environment: 'SANDBOX' | 'STAGING', language: 'ENGLISH' | 'ARABIC', mode?: 'LIGHT' | 'DARK', fontFamily?: string, externalReference?: string): Promise<void>;
|
|
23
23
|
}
|
|
24
|
-
declare const _default:
|
|
24
|
+
declare const _default: VrtxSdkModule;
|
|
25
25
|
export default _default;
|
|
26
26
|
export declare enum Environment {
|
|
27
27
|
Sandbox = "SANDBOX",
|
|
@@ -35,4 +35,4 @@ export declare enum Mode {
|
|
|
35
35
|
LIGHT = "LIGHT",
|
|
36
36
|
DARK = "DARK"
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=VrtxSdkModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VrtxSdkModule.d.ts","sourceRoot":"","sources":["../src/VrtxSdkModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,OAAO,OAAO,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IACnE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;;OAUG;IACH,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,SAAS,GAAG,SAAS,EAClC,QAAQ,EAAE,SAAS,GAAG,QAAQ,EAC9B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC;CACjB;;AAGD,wBAA6D;AAE7D,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,oBAAY,IAAI;IACd,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NativeModule, requireNativeModule } from 'expo';
|
|
2
2
|
// This call loads the native module object from the JSI.
|
|
3
|
-
export default requireNativeModule('
|
|
3
|
+
export default requireNativeModule('VrtxSdk');
|
|
4
4
|
export var Environment;
|
|
5
5
|
(function (Environment) {
|
|
6
6
|
Environment["Sandbox"] = "SANDBOX";
|
|
@@ -16,4 +16,4 @@ export var Mode;
|
|
|
16
16
|
Mode["LIGHT"] = "LIGHT";
|
|
17
17
|
Mode["DARK"] = "DARK";
|
|
18
18
|
})(Mode || (Mode = {}));
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=VrtxSdkModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VrtxSdkModule.js","sourceRoot":"","sources":["../src/VrtxSdkModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAgCzD,yDAAyD;AACzD,eAAe,mBAAmB,CAAgB,SAAS,CAAC,CAAC;AAE7D,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;AACrB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;AACnB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAN,IAAY,IAGX;AAHD,WAAY,IAAI;IACd,uBAAe,CAAA;IACf,qBAAa,CAAA;AACf,CAAC,EAHW,IAAI,KAAJ,IAAI,QAGf","sourcesContent":["import { NativeModule, requireNativeModule } from 'expo';\n\ntype VrtxSdkModuleEvents = {\n onSuccess: () => void;\n onError: (params: { code: string; message: string }) => void;\n};\n\ndeclare class VrtxSdkModule extends NativeModule<VrtxSdkModuleEvents> {\n readonly LIBRARY_NAME: string;\n\n /**\n * Initialize and launch the Vrtx SDK UI flow\n *\n * @param clientId Your Vrtx client ID from the dashboard\n * @param clientSecret Your Vrtx client secret from the dashboard\n * @param environment The environment (SANDBOX or STAGING)\n * @param language The language for the UI (ENGLISH or ARABIC)\n * @param mode Optional display mode (LIGHT or DARK) - defaults to LIGHT\n * @param fontFamily Optional React Native font family name - defaults to the system font\n * @param externalReference Optional app-provided reference attached to the SDK session\n */\n setup(\n clientId: string,\n clientSecret: string,\n environment: 'SANDBOX' | 'STAGING',\n language: 'ENGLISH' | 'ARABIC',\n mode?: 'LIGHT' | 'DARK',\n fontFamily?: string,\n externalReference?: string,\n ): Promise<void>;\n}\n\n// This call loads the native module object from the JSI.\nexport default requireNativeModule<VrtxSdkModule>('VrtxSdk');\n\nexport enum Environment {\n Sandbox = 'SANDBOX',\n Staging = 'STAGING',\n}\n\nexport enum Language {\n English = 'ENGLISH',\n Arabic = 'ARABIC',\n}\n\nexport enum Mode {\n LIGHT = 'LIGHT',\n DARK = 'DARK',\n}\n"]}
|
package/build/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { Environment, Language, Mode } from './
|
|
2
|
-
export { default as
|
|
1
|
+
export { Environment, Language, Mode } from './VrtxSdkModule';
|
|
2
|
+
export { default as VrtxSdk } from './VrtxSdkModule';
|
|
3
3
|
export type VrtxEnvironment = 'SANDBOX' | 'STAGING';
|
|
4
4
|
export type VrtxLanguage = 'ENGLISH' | 'ARABIC';
|
|
5
5
|
export type VrtxMode = 'LIGHT' | 'DARK';
|
|
@@ -10,9 +10,10 @@ export interface VrtxConfig {
|
|
|
10
10
|
language?: VrtxLanguage;
|
|
11
11
|
mode?: VrtxMode;
|
|
12
12
|
fontFamily?: string;
|
|
13
|
+
externalReference?: string;
|
|
13
14
|
}
|
|
14
15
|
export declare function setup(config: VrtxConfig): Promise<void>;
|
|
15
|
-
export declare function setup(clientId: string, clientSecret: string, environment: VrtxEnvironment, language?: VrtxLanguage, mode?: VrtxMode, fontFamily?: string): Promise<void>;
|
|
16
|
+
export declare function setup(clientId: string, clientSecret: string, environment: VrtxEnvironment, language?: VrtxLanguage, mode?: VrtxMode, fontFamily?: string, externalReference?: string): Promise<void>;
|
|
16
17
|
export declare function addListener(eventName: 'onSuccess', callback: () => void): {
|
|
17
18
|
remove: () => void;
|
|
18
19
|
};
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,eAAe,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzD,wBAAgB,KAAK,CACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,EAC5B,QAAQ,CAAC,EAAE,YAAY,EACvB,IAAI,CAAC,EAAE,QAAQ,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAmCjB,wBAAgB,WAAW,CACzB,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,MAAM,IAAI,GACnB;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAC1B,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GAC3D;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAS1B,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI;YAbjC,MAAM,IAAI;EAetB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI;YAdjD,MAAM,IAAI;EAiBtB"}
|
package/build/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Native module
|
|
2
|
-
import
|
|
2
|
+
import VrtxSdkModule from './VrtxSdkModule';
|
|
3
3
|
// Re-export enums for the public setup contract.
|
|
4
|
-
export { Environment, Language, Mode } from './
|
|
5
|
-
export { default as
|
|
6
|
-
export async function setup(configOrClientId, clientSecret, environment, language = 'ENGLISH', mode, fontFamily) {
|
|
4
|
+
export { Environment, Language, Mode } from './VrtxSdkModule';
|
|
5
|
+
export { default as VrtxSdk } from './VrtxSdkModule';
|
|
6
|
+
export async function setup(configOrClientId, clientSecret, environment, language = 'ENGLISH', mode, fontFamily, externalReference) {
|
|
7
7
|
const config = typeof configOrClientId === 'string'
|
|
8
8
|
? {
|
|
9
9
|
clientId: configOrClientId,
|
|
@@ -12,12 +12,13 @@ export async function setup(configOrClientId, clientSecret, environment, languag
|
|
|
12
12
|
language,
|
|
13
13
|
mode,
|
|
14
14
|
fontFamily,
|
|
15
|
+
externalReference,
|
|
15
16
|
}
|
|
16
17
|
: configOrClientId;
|
|
17
|
-
return await
|
|
18
|
+
return await VrtxSdkModule.setup(config.clientId, config.clientSecret, config.environment, config.language ?? 'ENGLISH', config.mode, config.fontFamily, config.externalReference);
|
|
18
19
|
}
|
|
19
20
|
export function addListener(eventName, callback) {
|
|
20
|
-
return
|
|
21
|
+
return VrtxSdkModule.addListener(eventName, callback);
|
|
21
22
|
}
|
|
22
23
|
// Convenience wrappers
|
|
23
24
|
export function onSuccess(callback) {
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AA4BrD,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,gBAAqC,EACrC,YAAqB,EACrB,WAA6B,EAC7B,WAAyB,SAAS,EAClC,IAAe,EACf,UAAmB,EACnB,iBAA0B;IAE1B,MAAM,MAAM,GACV,OAAO,gBAAgB,KAAK,QAAQ;QAClC,CAAC,CAAC;YACE,QAAQ,EAAE,gBAAgB;YAC1B,YAAY,EAAE,YAAa;YAC3B,WAAW,EAAE,WAAY;YACzB,QAAQ;YACR,IAAI;YACJ,UAAU;YACV,iBAAiB;SAClB;QACH,CAAC,CAAC,gBAAgB,CAAC;IAEvB,OAAO,MAAM,aAAa,CAAC,KAAK,CAC9B,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,QAAQ,IAAI,SAAS,EAC5B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,iBAAiB,CACzB,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,WAAW,CACzB,SAAiB,EACjB,QAAkC;IAElC,OAAO,aAAa,CAAC,WAAW,CAAC,SAAgB,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,SAAS,CAAC,QAAoB;IAC5C,OAAO,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,QAA4D;IAE5D,OAAO,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["// Native module\nimport VrtxSdkModule from './VrtxSdkModule';\n\n// Re-export enums for the public setup contract.\nexport { Environment, Language, Mode } from './VrtxSdkModule';\nexport { default as VrtxSdk } from './VrtxSdkModule';\n\n// Types\nexport type VrtxEnvironment = 'SANDBOX' | 'STAGING';\nexport type VrtxLanguage = 'ENGLISH' | 'ARABIC';\nexport type VrtxMode = 'LIGHT' | 'DARK';\n\nexport interface VrtxConfig {\n clientId: string;\n clientSecret: string;\n environment: VrtxEnvironment;\n language?: VrtxLanguage;\n mode?: VrtxMode;\n fontFamily?: string;\n externalReference?: string;\n}\n\n// Promise-based setup function - resolves when SDK screen opens\nexport function setup(config: VrtxConfig): Promise<void>;\nexport function setup(\n clientId: string,\n clientSecret: string,\n environment: VrtxEnvironment,\n language?: VrtxLanguage,\n mode?: VrtxMode,\n fontFamily?: string,\n externalReference?: string,\n): Promise<void>;\nexport async function setup(\n configOrClientId: VrtxConfig | string,\n clientSecret?: string,\n environment?: VrtxEnvironment,\n language: VrtxLanguage = 'ENGLISH',\n mode?: VrtxMode,\n fontFamily?: string,\n externalReference?: string,\n): Promise<void> {\n const config =\n typeof configOrClientId === 'string'\n ? {\n clientId: configOrClientId,\n clientSecret: clientSecret!,\n environment: environment!,\n language,\n mode,\n fontFamily,\n externalReference,\n }\n : configOrClientId;\n\n return await VrtxSdkModule.setup(\n config.clientId,\n config.clientSecret,\n config.environment,\n config.language ?? 'ENGLISH',\n config.mode,\n config.fontFamily,\n config.externalReference,\n );\n}\n\n// Type-safe addListener overloads\nexport function addListener(\n eventName: 'onSuccess',\n callback: () => void,\n): { remove: () => void };\nexport function addListener(\n eventName: 'onError',\n callback: (error: { code: string; message: string }) => void,\n): { remove: () => void };\nexport function addListener(\n eventName: string,\n callback: (...args: any[]) => void,\n): { remove: () => void } {\n return VrtxSdkModule.addListener(eventName as any, callback);\n}\n\n// Convenience wrappers\nexport function onSuccess(callback: () => void) {\n return addListener('onSuccess', callback);\n}\n\nexport function onError(\n callback: (error: { code: string; message: string }) => void,\n) {\n return addListener('onError', callback);\n}\n"]}
|
package/expo-module.config.json
CHANGED
|
@@ -3,7 +3,7 @@ require 'json'
|
|
|
3
3
|
package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
|
|
4
4
|
|
|
5
5
|
Pod::Spec.new do |s|
|
|
6
|
-
s.name = '
|
|
6
|
+
s.name = 'VrtxSdk'
|
|
7
7
|
s.version = package['version']
|
|
8
8
|
s.summary = package['description']
|
|
9
9
|
s.description = package['description']
|
|
@@ -19,15 +19,11 @@ Pod::Spec.new do |s|
|
|
|
19
19
|
|
|
20
20
|
s.dependency 'ExpoModulesCore'
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
version: '0.0.15',
|
|
28
|
-
},
|
|
29
|
-
products: ['VRTX']
|
|
30
|
-
)
|
|
22
|
+
# The Vrtx iOS SDK ships as a binary XCFramework published to CocoaPods
|
|
23
|
+
# trunk (https://github.com/vrtx-fintech/vrtx-ios). CocoaPods downloads and
|
|
24
|
+
# embeds it automatically, mirroring how Android pulls `vrtx-android` from
|
|
25
|
+
# Maven Central. Keep this version aligned with the VRTX pod release.
|
|
26
|
+
s.dependency 'VRTX', '0.0.16'
|
|
31
27
|
|
|
32
28
|
# Swift/Objective-C compatibility
|
|
33
29
|
s.pod_target_xcconfig = {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import ExpoModulesCore
|
|
2
2
|
import VRTX
|
|
3
3
|
|
|
4
|
-
public class
|
|
4
|
+
public class VrtxSdkModule: Module {
|
|
5
5
|
public func definition() -> ModuleDefinition {
|
|
6
|
-
Name("
|
|
6
|
+
Name("VrtxSdk")
|
|
7
7
|
|
|
8
8
|
Constant("LIBRARY_NAME") {
|
|
9
9
|
return "vrtx-ios"
|
|
@@ -22,6 +22,7 @@ public class VrtxAndroidModule: Module {
|
|
|
22
22
|
language: String,
|
|
23
23
|
mode: String?,
|
|
24
24
|
fontFamily: String?,
|
|
25
|
+
externalReference: String?,
|
|
25
26
|
promise: Promise
|
|
26
27
|
) in
|
|
27
28
|
// Fully qualify the SDK enum: ExpoModulesCore (Expo 56+) transitively
|
|
@@ -41,6 +42,7 @@ public class VrtxAndroidModule: Module {
|
|
|
41
42
|
mode: theme,
|
|
42
43
|
language: lang,
|
|
43
44
|
fontFamily: font,
|
|
45
|
+
externalReference: externalReference,
|
|
44
46
|
onSuccess: {
|
|
45
47
|
promise.resolve(nil)
|
|
46
48
|
self.sendEvent("onSuccess")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vrtx-react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.73",
|
|
4
4
|
"description": "vrtx react-native",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"android",
|
|
@@ -47,21 +47,18 @@
|
|
|
47
47
|
"open:ios": "xed example/ios",
|
|
48
48
|
"open:android": "cd example/android && ./gradlew :app:installDebug --no-build-cache"
|
|
49
49
|
},
|
|
50
|
-
"dependencies": {
|
|
51
|
-
"react": "19.2.6"
|
|
52
|
-
},
|
|
53
50
|
"devDependencies": {
|
|
54
51
|
"@types/react": "~19.2.15",
|
|
55
52
|
"expo": "^56.0.8",
|
|
56
53
|
"expo-module-scripts": "^56.0.3",
|
|
57
|
-
"oxfmt": "^0.
|
|
58
|
-
"oxlint": "^1.
|
|
54
|
+
"oxfmt": "^0.53.0",
|
|
55
|
+
"oxlint": "^1.68.0",
|
|
59
56
|
"react-native": "0.85.3"
|
|
60
57
|
},
|
|
61
58
|
"peerDependencies": {
|
|
62
|
-
"expo": "
|
|
59
|
+
"expo": ">=52.0.0",
|
|
63
60
|
"react": "*",
|
|
64
|
-
"react-native": "
|
|
61
|
+
"react-native": ">=0.76.0"
|
|
65
62
|
},
|
|
66
63
|
"jest": {
|
|
67
64
|
"passWithNoTests": true
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VrtxAndroidModule.d.ts","sourceRoot":"","sources":["../src/VrtxAndroidModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,OAAO,OAAO,iBAAkB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;OASG;IACH,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,SAAS,GAAG,SAAS,EAClC,QAAQ,EAAE,SAAS,GAAG,QAAQ,EAC9B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;CACjB;;AAGD,wBAAqE;AAErE,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,oBAAY,IAAI;IACd,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VrtxAndroidModule.js","sourceRoot":"","sources":["../src/VrtxAndroidModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AA+BzD,yDAAyD;AACzD,eAAe,mBAAmB,CAAoB,aAAa,CAAC,CAAC;AAErE,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;AACrB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;AACnB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAN,IAAY,IAGX;AAHD,WAAY,IAAI;IACd,uBAAe,CAAA;IACf,qBAAa,CAAA;AACf,CAAC,EAHW,IAAI,KAAJ,IAAI,QAGf","sourcesContent":["import { NativeModule, requireNativeModule } from 'expo';\n\ntype VrtxAndroidModuleEvents = {\n onSuccess: () => void;\n onError: (params: { code: string; message: string }) => void;\n};\n\ndeclare class VrtxAndroidModule extends NativeModule<VrtxAndroidModuleEvents> {\n readonly VERSION: string;\n readonly LIBRARY_NAME: string;\n\n /**\n * Initialize and launch the Vrtx SDK UI flow\n *\n * @param clientId Your Vrtx client ID from the dashboard\n * @param clientSecret Your Vrtx client secret from the dashboard\n * @param environment The environment (SANDBOX or STAGING)\n * @param language The language for the UI (ENGLISH or ARABIC)\n * @param mode Optional display mode (LIGHT or DARK) - defaults to LIGHT\n * @param fontFamily Optional React Native font family name - defaults to the system font\n */\n setup(\n clientId: string,\n clientSecret: string,\n environment: 'SANDBOX' | 'STAGING',\n language: 'ENGLISH' | 'ARABIC',\n mode?: 'LIGHT' | 'DARK',\n fontFamily?: string,\n ): Promise<void>;\n}\n\n// This call loads the native module object from the JSI.\nexport default requireNativeModule<VrtxAndroidModule>('VrtxAndroid');\n\nexport enum Environment {\n Sandbox = 'SANDBOX',\n Staging = 'STAGING',\n}\n\nexport enum Language {\n English = 'ENGLISH',\n Arabic = 'ARABIC',\n}\n\nexport enum Mode {\n LIGHT = 'LIGHT',\n DARK = 'DARK',\n}\n"]}
|