airbridge-react-native-sdk-restricted 2.5.4 → 2.7.1

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.
Files changed (84) hide show
  1. package/airbridge-react-native-sdk.podspec.bak +32 -0
  2. package/android/build.gradle +1 -1
  3. package/android/build.gradle.bak +27 -0
  4. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycle.java +31 -0
  5. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycleIntegration.java +8 -0
  6. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeRN.java +16 -1
  7. package/android/src/main/java/co/ab180/airbridge/reactnative/ConfigReader.java +26 -3
  8. package/changelog.md +13 -3
  9. package/index.d.ts.bak +292 -0
  10. package/package-lock.json.bak +28641 -0
  11. package/package.json +1 -1
  12. package/package.json.bak +43 -0
  13. package/src/WebInterface.js +1 -1
  14. package/android/build/.transforms/08e8d929b7926845ebd25bc2ae9e2874/results.bin +0 -1
  15. package/android/build/.transforms/08e8d929b7926845ebd25bc2ae9e2874/transformed/classes/classes.dex +0 -0
  16. package/android/build/.transforms/14ea77658b61f201debed3d92aea1c0f/results.bin +0 -1
  17. package/android/build/.transforms/14ea77658b61f201debed3d92aea1c0f/transformed/classes/classes.dex +0 -0
  18. package/android/build/.transforms/33560bbaf5632b59753ef78fcd7b7f8d/results.bin +0 -1
  19. package/android/build/.transforms/33560bbaf5632b59753ef78fcd7b7f8d/transformed/classes/classes.dex +0 -0
  20. package/android/build/.transforms/38fa05fa6fd488a5dec6d7bdb333bfd1/results.bin +0 -1
  21. package/android/build/.transforms/38fa05fa6fd488a5dec6d7bdb333bfd1/transformed/classes/classes.dex +0 -0
  22. package/android/build/.transforms/405120ecc1eb36e3127f0c3846387eb6/results.bin +0 -1
  23. package/android/build/.transforms/405120ecc1eb36e3127f0c3846387eb6/transformed/classes/classes.dex +0 -0
  24. package/android/build/.transforms/61c549f58a941c195c4ffb5f43fed2ef/results.bin +0 -1
  25. package/android/build/.transforms/61c549f58a941c195c4ffb5f43fed2ef/transformed/classes/classes.dex +0 -0
  26. package/android/build/.transforms/75c8746e5247a4500eb6ae4ca2ef0a2e/results.bin +0 -1
  27. package/android/build/.transforms/75c8746e5247a4500eb6ae4ca2ef0a2e/transformed/classes/classes.dex +0 -0
  28. package/android/build/.transforms/85f88a3c5a226a3333c60b94378960e9/results.bin +0 -1
  29. package/android/build/.transforms/85f88a3c5a226a3333c60b94378960e9/transformed/classes/classes.dex +0 -0
  30. package/android/build/.transforms/8f01556cdda8590f3b7cee54078417e1/results.bin +0 -1
  31. package/android/build/.transforms/8f01556cdda8590f3b7cee54078417e1/transformed/classes/classes.dex +0 -0
  32. package/android/build/.transforms/905b1aa9b91e69e71e9ed75a0c99581c/results.bin +0 -1
  33. package/android/build/.transforms/905b1aa9b91e69e71e9ed75a0c99581c/transformed/classes/classes.dex +0 -0
  34. package/android/build/.transforms/983e33cb97b3d1caf80afe6b7ca652b3/results.bin +0 -1
  35. package/android/build/.transforms/983e33cb97b3d1caf80afe6b7ca652b3/transformed/classes/classes.dex +0 -0
  36. package/android/build/.transforms/b398922a5d6aaf33784a06f933228695/results.bin +0 -1
  37. package/android/build/.transforms/b398922a5d6aaf33784a06f933228695/transformed/classes/classes.dex +0 -0
  38. package/android/build/.transforms/b4ff5fb2fdb627c9a67ad50ae0347ece/results.bin +0 -1
  39. package/android/build/.transforms/b4ff5fb2fdb627c9a67ad50ae0347ece/transformed/classes/classes.dex +0 -0
  40. package/android/build/.transforms/d89a0ea59a0fb9c21321de6f1be36c2b/results.bin +0 -1
  41. package/android/build/.transforms/d89a0ea59a0fb9c21321de6f1be36c2b/transformed/classes/classes.dex +0 -0
  42. package/android/build/.transforms/dca3c4e952522adb6e9c477431cc0881/results.bin +0 -1
  43. package/android/build/.transforms/dca3c4e952522adb6e9c477431cc0881/transformed/classes/classes.dex +0 -0
  44. package/android/build/.transforms/e6b9f6a4f6dc26d29d4ac4172b428541/results.bin +0 -1
  45. package/android/build/.transforms/e6b9f6a4f6dc26d29d4ac4172b428541/transformed/classes/classes.dex +0 -0
  46. package/android/build/.transforms/e8ebcf4ab4a209e222c80ef37e9122e2/results.bin +0 -1
  47. package/android/build/.transforms/e8ebcf4ab4a209e222c80ef37e9122e2/transformed/classes/classes.dex +0 -0
  48. package/android/build/generated/source/buildConfig/debug/co/ab180/airbridge/reactnative/BuildConfig.java +0 -10
  49. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -10
  50. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +0 -18
  51. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +0 -5
  52. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
  53. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  54. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  55. package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -1956
  56. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  57. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  58. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  59. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  60. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  61. package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +0 -1
  62. package/android/build/intermediates/incremental/packageDebugResources/merger.xml +0 -2
  63. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeAttribution.class +0 -0
  64. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeDeeplink$1.class +0 -0
  65. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeDeeplink.class +0 -0
  66. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeEvent.class +0 -0
  67. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgePlacement.class +0 -0
  68. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeRN.class +0 -0
  69. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeState$1.class +0 -0
  70. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeState.class +0 -0
  71. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/BuildConfig.class +0 -0
  72. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/ConfigReader$1.class +0 -0
  73. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/ConfigReader$2.class +0 -0
  74. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/ConfigReader.class +0 -0
  75. package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/Get.class +0 -0
  76. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +0 -2
  77. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +0 -15
  78. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +0 -10
  79. package/android/build/intermediates/navigation_json/debug/navigation.json +0 -1
  80. package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +0 -18
  81. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  82. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +0 -1449
  83. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -33
  84. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
@@ -0,0 +1,32 @@
1
+ require 'json'
2
+ require_relative 'ios/copy-config.rb'
3
+
4
+ package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
5
+
6
+ Pod::Spec.new do |s|
7
+ s.name = package['name']
8
+ s.version = package['version']
9
+ s.summary = package['description']
10
+ s.description = package['description']
11
+ s.license = package['license']
12
+ s.author = package['author']
13
+ s.homepage = package['homepage']
14
+ s.source = { :http => 'file:' + __dir__ }
15
+
16
+ s.requires_arc = true
17
+ s.platform = :ios, '11.0'
18
+
19
+ s.preserve_paths = 'README.md', 'package.json', 'index.js'
20
+
21
+ s.source_files = 'ios/AirbridgeRN/*.{h,m}'
22
+
23
+ s.header_dir = 'AirbridgeRN'
24
+ s.public_header_files = 'ios/AirbridgeRN/AirbridgeRN.h'
25
+
26
+ s.dependency 'React'
27
+ s.dependency 'AirBridge', '1.34.9'
28
+
29
+ s.pod_target_xcconfig = {
30
+ 'DEFINES_MODULE' => 'YES'
31
+ }
32
+ end
@@ -20,7 +20,7 @@ rootProject.allprojects {
20
20
 
21
21
  dependencies {
22
22
  implementation 'com.facebook.react:react-native:+'
23
- implementation 'io.airbridge:sdk-android-restricted:2.22.3'
23
+ api 'io.airbridge:sdk-android-restricted:2.23.0'
24
24
  implementation 'com.android.installreferrer:installreferrer:2.1'
25
25
  }
26
26
 
@@ -0,0 +1,27 @@
1
+ apply plugin: 'com.android.library'
2
+
3
+ android {
4
+ compileSdkVersion 30
5
+ buildToolsVersion '29.0.2'
6
+
7
+ defaultConfig {
8
+ minSdkVersion 16
9
+ targetSdkVersion 30
10
+ versionCode 1
11
+ versionName '1.0.0'
12
+ }
13
+ }
14
+
15
+ rootProject.allprojects {
16
+ repositories {
17
+ maven { url 'https://sdk-download.airbridge.io/maven' }
18
+ }
19
+ }
20
+
21
+ dependencies {
22
+ implementation 'com.facebook.react:react-native:+'
23
+ api 'io.airbridge:sdk-android:2.23.0'
24
+ implementation 'com.android.installreferrer:installreferrer:2.1'
25
+ }
26
+
27
+ apply from: 'copy-config.gradle'
@@ -0,0 +1,31 @@
1
+ package co.ab180.airbridge.reactnative;
2
+
3
+ import androidx.annotation.NonNull;
4
+
5
+ import com.facebook.react.bridge.ReactApplicationContext;
6
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
7
+
8
+ import javax.annotation.Nonnull;
9
+
10
+ public class AirbridgeLifecycle extends ReactContextBaseJavaModule {
11
+
12
+ private static AirbridgeLifecycleIntegration airbridgeLifecycleIntegration = null;
13
+
14
+ public AirbridgeLifecycle(@NonNull ReactApplicationContext reactContext) {
15
+ super(reactContext);
16
+ }
17
+
18
+ static void setLifecycleIntegration(AirbridgeLifecycleIntegration lifecycleIntegration) {
19
+ airbridgeLifecycleIntegration = lifecycleIntegration;
20
+ }
21
+
22
+ static AirbridgeLifecycleIntegration getLifecycleIntegration() {
23
+ return airbridgeLifecycleIntegration;
24
+ }
25
+
26
+ @NonNull
27
+ @Override
28
+ public String getName() {
29
+ return "AirbridgeLifecycle";
30
+ }
31
+ }
@@ -0,0 +1,8 @@
1
+ package co.ab180.airbridge.reactnative;
2
+
3
+ import android.app.Activity;
4
+
5
+ public interface AirbridgeLifecycleIntegration {
6
+
7
+ public String getDataString(Activity activity);
8
+ }
@@ -39,6 +39,20 @@ public class AirbridgeRN implements ReactPackage {
39
39
  Airbridge.init(application, ConfigReader.build(appName, appToken, application));
40
40
  }
41
41
 
42
+
43
+ /**
44
+ * Use this method to fetch the correct deep links in exceptional circumstances.
45
+ *
46
+ * When your app is opened by tapping a push notification,
47
+ * third-party libraries (like `Braze`) can provide a customized mechanism to handle deep links.
48
+ * This mechanism may differ from the default Android OS deep linking process.
49
+ *
50
+ * @param value An instance of [AirbridgeLifecycleIntegration] that defines the customized mechanism for handling deep links.
51
+ */
52
+ public static void setLifecycleIntegration(AirbridgeLifecycleIntegration lifecycleIntegration) {
53
+ AirbridgeLifecycle.setLifecycleIntegration(lifecycleIntegration);
54
+ }
55
+
42
56
  //
43
57
  // deeplink
44
58
  //
@@ -65,7 +79,8 @@ public class AirbridgeRN implements ReactPackage {
65
79
  new AirbridgeDeeplink(reactContext),
66
80
  new AirbridgeState(reactContext),
67
81
  new AirbridgePlacement(reactContext),
68
- new AirbridgeAttribution(reactContext)
82
+ new AirbridgeAttribution(reactContext),
83
+ new AirbridgeLifecycle(reactContext)
69
84
  );
70
85
  }
71
86
 
@@ -1,5 +1,6 @@
1
1
  package co.ab180.airbridge.reactnative;
2
2
 
3
+ import android.app.Activity;
3
4
  import android.content.Context;
4
5
  import android.content.res.AssetManager;
5
6
  import android.util.Log;
@@ -26,9 +27,9 @@ class ConfigReader {
26
27
  AssetManager assetManager = context.getAssets();
27
28
  try {
28
29
  BufferedReader reader = new BufferedReader(
29
- new InputStreamReader(
30
- assetManager.open("airbridge.json")
31
- )
30
+ new InputStreamReader(
31
+ assetManager.open("airbridge.json")
32
+ )
32
33
  );
33
34
 
34
35
  StringBuilder builder = new StringBuilder();
@@ -76,6 +77,16 @@ class ConfigReader {
76
77
  configBuilder.setFacebookDeferredAppLinkEnabled(facebookDeferredAppLinkEnabled);
77
78
  }
78
79
 
80
+ // The two keys(facebookInstallReferrer, metaInstallReferrer) are mutually exclusive.
81
+ String facebookInstallReferrer = Get.type(String.class, configObject, "facebookInstallReferrer");
82
+ if (facebookInstallReferrer != null) {
83
+ configBuilder.setMetaInstallReferrer(facebookInstallReferrer);
84
+ }
85
+ String metaInstallReferrer = Get.type(String.class, configObject, "metaInstallReferrer");
86
+ if (metaInstallReferrer != null) {
87
+ configBuilder.setMetaInstallReferrer(metaInstallReferrer);
88
+ }
89
+
79
90
  String secretId = Get.type(String.class, configObject, "sdkSignatureSecretID");
80
91
  String secretKey = Get.type(String.class, configObject, "sdkSignatureSecret");
81
92
  if (secretId != null && secretKey != null) {
@@ -96,6 +107,18 @@ class ConfigReader {
96
107
 
97
108
  configBuilder.setPlatform("react_native");
98
109
 
110
+ configBuilder.setLifecycleIntegration(new co.ab180.airbridge.AirbridgeLifecycleIntegration() {
111
+ @Override
112
+ public String getDataString(Activity activity) {
113
+ AirbridgeLifecycleIntegration callback = AirbridgeLifecycle.getLifecycleIntegration();
114
+ if (callback == null) {
115
+ return null;
116
+ } else {
117
+ return callback.getDataString(activity);
118
+ }
119
+ }
120
+ });
121
+
99
122
  configBuilder.setOnAttributionResultReceiveListener(new OnAttributionResultReceiveListener() {
100
123
  @Override
101
124
  public void onAttributionResultReceived(Map<String, String> attribution) {
package/changelog.md CHANGED
@@ -1,7 +1,17 @@
1
- ## 2.5.4
1
+ ## 2.7.1
2
2
 
3
- **FIXED**
4
- * Fix restricted version
3
+ **ADDED**
4
+ * Add Lifecycle integration interface (Android Only)
5
+
6
+ ## 2.6.0
7
+
8
+ **ADDED**
9
+ * Add facebookInstallReferrer option
10
+
11
+ ## 2.5.3
12
+
13
+ **ADDED**
14
+ * Add restricted version
5
15
 
6
16
  ## 2.5.2
7
17
 
package/index.d.ts.bak ADDED
@@ -0,0 +1,292 @@
1
+ declare module "airbridge-react-native-sdk" {
2
+
3
+ /**
4
+ * main class (singleton)
5
+ */
6
+ class Airbridge {
7
+ event: Event;
8
+ deeplink: Deeplink;
9
+ state: State;
10
+ placement: Placement;
11
+
12
+ /**
13
+ * Set device alias
14
+ * @param {string} key - device alias key
15
+ * @param {string} value - device alias value
16
+ */
17
+ setDeviceAlias(key: string, value: string): void;
18
+
19
+ /**
20
+ * Remove device alias
21
+ * @param {string} key - callback of attribution
22
+ */
23
+ removeDeviceAlias(key: string): void;
24
+
25
+ /**
26
+ * clear device alias
27
+ */
28
+ clearDeviceAlias(): void;
29
+
30
+ /**
31
+ * Send event to server.
32
+ * @param {string} category event name
33
+ * @param {EventOption} [option={}] event options
34
+ */
35
+ trackEvent(category: string, option?: EventOption): void;
36
+
37
+ /**
38
+ * register push token
39
+ * @param {string} token - push token
40
+ */
41
+ registerPushToken(token: string): void;
42
+
43
+ /**
44
+ * create interface of webview
45
+ * @param webToken token for airbridge web sdk that using on webview
46
+ * @param postCommandFunction notify to interface how to post command to native
47
+ * @returns {WebInterface} Web Interface
48
+ */
49
+ createWebInterface(
50
+ webToken: string,
51
+ postCommandFunction: (command: string) => string,
52
+ ): WebInterface;
53
+ }
54
+
55
+ /**
56
+ * class for interface of webview
57
+ */
58
+ class WebInterface {
59
+ script: string;
60
+ /**
61
+ * handle command from webview
62
+ * @param {String} command command from webview
63
+ */
64
+ handle(command: string): void;
65
+ }
66
+
67
+ /**
68
+ * @param deeplink - URL of deeplink
69
+ */
70
+ type DeeplinkListener = (deeplink: string | null) => void;
71
+
72
+ /**
73
+ * class for set SDK's deeplink behavior (singleton)
74
+ */
75
+ class Deeplink {
76
+ /**
77
+ * Set DeeplinkListener (listen deeplink or deferred-deeplink)<br/>
78
+ * @param listener - callback of deeplink & deferred-deeplink
79
+ */
80
+ setDeeplinkListener(listener: DeeplinkListener): void;
81
+ }
82
+
83
+ /**
84
+ * class for send event (singleton)
85
+ */
86
+ class Event {
87
+ /**
88
+ * Send event to server.
89
+ * @param {string} category event name
90
+ * @param {EventOption} [option={}] event options
91
+ */
92
+ trackEvent(category: string, option?: EventOption): void;
93
+ }
94
+
95
+ /**
96
+ * class for use SDK's placement function (singleton)
97
+ */
98
+ class Placement {
99
+ /**
100
+ * 1. send +1 click statistics to server<br/>
101
+ * 2. get deeplink and fallback from server<br/>
102
+ * 3. open deeplink. when fail, open fallback<br/>
103
+ * 4. parameter's deeplink, fallback is spare for network-fail
104
+ * @param trackingLink - created on dashboard
105
+ */
106
+ click(trackingLink: string): void;
107
+ /**
108
+ * send +1 impression statistics to server<br/>
109
+ * @param trackingLink - created on dashboard
110
+ */
111
+ impression(trackingLink: string): void;
112
+ }
113
+
114
+ /**
115
+ * @param attribution - URL of attribution
116
+ */
117
+ type AttributionListener = (attribution: {
118
+ [key: string]: string;
119
+ }) => void;
120
+
121
+ /**
122
+ * class for manage SDK's state (singleton)
123
+ */
124
+ class State {
125
+ /**
126
+ * set current user<br/>
127
+ *
128
+ * user.property is null, if input.property is null
129
+ * @param user - user infomation
130
+ */
131
+ setUser(user: User): void;
132
+ /**
133
+ * update current user<br/>
134
+ *
135
+ * user.property not be changed, if input.property is null
136
+ * @param user - user infomation
137
+ */
138
+ updateUser(user: User): void;
139
+ /**
140
+ * make airbridge start tracking
141
+ */
142
+ startTracking(): void;
143
+ /**
144
+ * get deviceUUID of Airbridge SDK.
145
+ */
146
+ deviceUUID(): Promise<string>;
147
+ /**
148
+ * Set AttributionListener (listen attribution)<br/>
149
+ * @param listener - callback of attribution
150
+ */
151
+ setAttributionListener(listener: AttributionListener): void;
152
+
153
+ /**
154
+ * Set device alias
155
+ * @param {string} key - device alias key
156
+ * @param {string} value - device alias value
157
+ */
158
+ setDeviceAlias(key: string, value: string): void;
159
+
160
+ /**
161
+ * Remove device alias
162
+ * @param {string} key - callback of attribution
163
+ */
164
+ removeDeviceAlias(key: string): void;
165
+
166
+ /**
167
+ * clear device alias
168
+ */
169
+ clearDeviceAlias(): void;
170
+
171
+ /**
172
+ * register push token
173
+ * @param {string} token - push token
174
+ */
175
+ registerPushToken(token: string): void;
176
+ }
177
+
178
+ class WebInterface {
179
+
180
+ /**
181
+ * handle command from webview
182
+ */
183
+ public readonly script: string;
184
+
185
+ /**
186
+ * handle command from webview
187
+ * @param {String} command command from webview
188
+ */
189
+ handle(command: string): void;
190
+ }
191
+
192
+ /**
193
+ * @property {string} [action] event group name 1
194
+ * @property {string} [label] event group name 2
195
+ * @property {number} [value] event custom value
196
+ * @property {{}} [customAttributes] event custom attributes
197
+ * @property {{}} [semanticAttributes] event semantic attributes
198
+ */
199
+ type EventOption = {
200
+ action?: string;
201
+ label?: string;
202
+ value?: number;
203
+ customAttributes?: {
204
+ [key: string]: string;
205
+ };
206
+ semanticAttributes?: {
207
+ [key: string]: any;
208
+ };
209
+ };
210
+
211
+ /**
212
+ * @property {string} [ID] - Product's unique identifier
213
+ * @property {string} [name] - Product's name
214
+ * @property {string} [currency] - currency in <a href='https://en.wikipedia.org/wiki/ISO_4217'>ISO 4217<a/>
215
+ * @property {number} [price] - Product's price
216
+ * @property {number} [quantity] - Purchased quantity
217
+ * @property {number} [position] - Product's index in list
218
+ */
219
+ type Product = {
220
+ ID?: string;
221
+ name?: string;
222
+ currency?: string;
223
+ price?: number;
224
+ quantity?: number;
225
+ position?: number;
226
+ };
227
+
228
+ /**
229
+ * @property {string} [ID] - User's ID (not allow empty string)
230
+ * @property {string} [email] - User's Email (not allow empty string)
231
+ * @property {string} [phone] - User's Phone Number (not allow empty string)
232
+ * @property {{}} [alias] - User's Alias
233
+ * @property {{}} [attributes] - User's Attributes
234
+ */
235
+ type User = {
236
+ ID?: string;
237
+ email?: string;
238
+ phone?: string;
239
+ alias?: {
240
+ [key: string]: string;
241
+ };
242
+ attributes?: {
243
+ [key: string]: any;
244
+ };
245
+ };
246
+
247
+ const AirbridgeCategory: {
248
+ SIGN_UP: string
249
+ SIGN_IN: string
250
+ SIGN_OUT: string
251
+
252
+ HOME_VIEW: string
253
+ SEARCH_RESULT_VIEW: string
254
+ PRODUCT_LIST_VIEW: string
255
+ PRODUCT_DETAILS_VIEW: string
256
+
257
+ ADD_TO_CART: string
258
+ ORDER_COMPLETED: string
259
+ }
260
+
261
+ const AirbridgeAttributes: {
262
+ QUERY: string
263
+ PRODUCT_LIST_ID: string
264
+ CART_ID: string
265
+ TRANSACTION_ID: string
266
+ PRODUCTS: string
267
+ IN_APP_PURCHASED: string
268
+ CURRENCY: string
269
+ TOTAL_VALUE: string
270
+ TOTAL_QUANTITY: string
271
+ }
272
+
273
+ const AirbridgeProduct: {
274
+ PRODUCT_ID: string
275
+ NAME: string
276
+ CURRENCY: string
277
+ PRICE: string
278
+ QUANTITY: string
279
+ POSITION: string
280
+ }
281
+
282
+ const airbridge: Airbridge;
283
+
284
+ export default airbridge;
285
+
286
+ export {
287
+ AirbridgeCategory,
288
+ AirbridgeAttributes,
289
+ AirbridgeProduct,
290
+ WebInterface,
291
+ }
292
+ }