affise-attribution-lib 1.0.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.
Files changed (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +549 -0
  3. package/affise-attribution-native.podspec +37 -0
  4. package/android/build.gradle +87 -0
  5. package/android/gradle.properties +5 -0
  6. package/android/libs/attribution-release.aar +0 -0
  7. package/android/libs/oaid_sdk_1.0.26.aar +0 -0
  8. package/android/src/main/AndroidManifest.xml +4 -0
  9. package/android/src/main/java/com/affise/attribution/react/AffiseAttributionNativeModule.kt +147 -0
  10. package/android/src/main/java/com/affise/attribution/react/AffiseAttributionNativePackage.kt +17 -0
  11. package/android/src/main/java/com/affise/attribution/react/ext/AffiseInitPropertiesExt.kt +29 -0
  12. package/android/src/main/java/com/affise/attribution/react/ext/AutoCatchingTypeExt.kt +15 -0
  13. package/android/src/main/java/com/affise/attribution/react/ext/JSONObjectExt.kt +15 -0
  14. package/android/src/main/java/com/affise/attribution/react/ext/PredefinedParametersExt.kt +82 -0
  15. package/android/src/main/java/com/affise/attribution/react/ext/TouchTypeExt.kt +12 -0
  16. package/android/src/main/java/com/affise/attribution/react/factories/AffiseBaseEvensFactory.kt +97 -0
  17. package/android/src/main/java/com/affise/attribution/react/factories/AffiseEvensFactory.kt +781 -0
  18. package/android/src/main/java/com/affise/attribution/react/factories/AffiseSubtypeEventsFactory.kt +266 -0
  19. package/ios/AffiseAttributionNative-Bridging-Header.h +3 -0
  20. package/ios/AffiseAttributionNative.m +90 -0
  21. package/ios/AffiseAttributionNative.swift +148 -0
  22. package/ios/AffiseAttributionNative.xcodeproj/project.pbxproj +305 -0
  23. package/ios/extensions/AffiseInitPropertiesExt.swift +29 -0
  24. package/ios/extensions/PredefinedParametersExt.swift +83 -0
  25. package/ios/extensions/TouchTypeExt.swift +13 -0
  26. package/ios/factories/AffiseBaseEvensFactory.swift +110 -0
  27. package/ios/factories/AffiseEvensFactory.swift +782 -0
  28. package/ios/factories/AffiseSubtypeEventsFactory.swift +261 -0
  29. package/ios/log/Log.swift +19 -0
  30. package/ios/log/RCTSwiftLog.h +16 -0
  31. package/ios/log/RCTSwiftLog.m +32 -0
  32. package/package.json +162 -0
  33. package/src/AffiseInitProperties.ts +32 -0
  34. package/src/Export.ts +73 -0
  35. package/src/events/AutoCatchingType.ts +9 -0
  36. package/src/events/PredefinedParameters.ts +75 -0
  37. package/src/events/TouchType.ts +5 -0
  38. package/src/events/base/AffiseEvent.ts +60 -0
  39. package/src/events/base/NativeEvent.ts +9 -0
  40. package/src/events/custom/CustomId01Event.ts +21 -0
  41. package/src/events/custom/CustomId02Event.ts +21 -0
  42. package/src/events/custom/CustomId03Event.ts +21 -0
  43. package/src/events/custom/CustomId04Event.ts +21 -0
  44. package/src/events/custom/CustomId05Event.ts +21 -0
  45. package/src/events/custom/CustomId06Event.ts +21 -0
  46. package/src/events/custom/CustomId07Event.ts +21 -0
  47. package/src/events/custom/CustomId08Event.ts +21 -0
  48. package/src/events/custom/CustomId09Event.ts +21 -0
  49. package/src/events/custom/CustomId10Event.ts +21 -0
  50. package/src/events/predefined/AchieveLevelEvent.ts +14 -0
  51. package/src/events/predefined/AddPaymentInfoEvent.ts +14 -0
  52. package/src/events/predefined/AddToCartEvent.ts +14 -0
  53. package/src/events/predefined/AddToWishlistEvent.ts +14 -0
  54. package/src/events/predefined/ClickAdvEvent.ts +14 -0
  55. package/src/events/predefined/CompleteRegistrationEvent.ts +14 -0
  56. package/src/events/predefined/CompleteStreamEvent.ts +14 -0
  57. package/src/events/predefined/CompleteTrialEvent.ts +14 -0
  58. package/src/events/predefined/CompleteTutorialEvent.ts +14 -0
  59. package/src/events/predefined/ContentItemsViewEvent.ts +13 -0
  60. package/src/events/predefined/DeepLinkedEvent.ts +13 -0
  61. package/src/events/predefined/InitiatePurchaseEvent.ts +14 -0
  62. package/src/events/predefined/InitiateStreamEvent.ts +14 -0
  63. package/src/events/predefined/InviteEvent.ts +14 -0
  64. package/src/events/predefined/LastAttributedTouchEvent.ts +15 -0
  65. package/src/events/predefined/ListViewEvent.ts +13 -0
  66. package/src/events/predefined/LoginEvent.ts +14 -0
  67. package/src/events/predefined/OpenedFromPushNotificationEvent.ts +13 -0
  68. package/src/events/predefined/PurchaseEvent.ts +14 -0
  69. package/src/events/predefined/RateEvent.ts +14 -0
  70. package/src/events/predefined/ReEngageEvent.ts +13 -0
  71. package/src/events/predefined/ReserveEvent.ts +14 -0
  72. package/src/events/predefined/SearchEvent.ts +14 -0
  73. package/src/events/predefined/ShareEvent.ts +14 -0
  74. package/src/events/predefined/SpendCreditsEvent.ts +14 -0
  75. package/src/events/predefined/StartRegistrationEvent.ts +14 -0
  76. package/src/events/predefined/StartTrialEvent.ts +14 -0
  77. package/src/events/predefined/StartTutorialEvent.ts +14 -0
  78. package/src/events/predefined/SubscribeEvent.ts +14 -0
  79. package/src/events/predefined/TravelBookingEvent.ts +13 -0
  80. package/src/events/predefined/UnlockAchievementEvent.ts +14 -0
  81. package/src/events/predefined/UnsubscribeEvent.ts +14 -0
  82. package/src/events/predefined/UpdateEvent.ts +13 -0
  83. package/src/events/predefined/ViewAdvEvent.ts +14 -0
  84. package/src/events/predefined/ViewCartEvent.ts +13 -0
  85. package/src/events/predefined/ViewItemEvent.ts +13 -0
  86. package/src/events/predefined/ViewItemsEvent.ts +13 -0
  87. package/src/events/subscription/BaseSubscriptionEvent.ts +32 -0
  88. package/src/events/subscription/ConvertedOfferEvent.ts +13 -0
  89. package/src/events/subscription/ConvertedOfferFromRetryEvent.ts +14 -0
  90. package/src/events/subscription/ConvertedTrialEvent.ts +13 -0
  91. package/src/events/subscription/ConvertedTrialFromRetryEvent.ts +13 -0
  92. package/src/events/subscription/FailedOfferFromRetryEvent.ts +13 -0
  93. package/src/events/subscription/FailedOfferiseEvent.ts +13 -0
  94. package/src/events/subscription/FailedSubscriptionEvent.ts +13 -0
  95. package/src/events/subscription/FailedSubscriptionFromRetryEvent.ts +13 -0
  96. package/src/events/subscription/FailedTrialEvent.ts +13 -0
  97. package/src/events/subscription/FailedTrialFromRetryEvent.ts +13 -0
  98. package/src/events/subscription/InitialOfferEvent.ts +13 -0
  99. package/src/events/subscription/InitialSubscriptionEvent.ts +13 -0
  100. package/src/events/subscription/InitialTrialEvent.ts +13 -0
  101. package/src/events/subscription/OfferInRetryEvent.ts +13 -0
  102. package/src/events/subscription/ReactivatedSubscriptionEvent.ts +13 -0
  103. package/src/events/subscription/RenewedSubscriptionEvent.ts +13 -0
  104. package/src/events/subscription/RenewedSubscriptionFromRetryEvent.ts +13 -0
  105. package/src/events/subscription/SubscriptionInRetryEvent.ts +13 -0
  106. package/src/events/subscription/SubscriptionParameters.ts +36 -0
  107. package/src/events/subscription/TrialInRetryEvent.ts +13 -0
  108. package/src/index.tsx +172 -0
package/src/index.tsx ADDED
@@ -0,0 +1,172 @@
1
+ import {EmitterSubscription, NativeEventEmitter, NativeModules, Platform} from 'react-native';
2
+ import type {AffiseInitProperties, AutoCatchingType, AffiseEvent} from "./Export";
3
+
4
+ export * from "./Export";
5
+
6
+
7
+ const LINKING_ERROR =
8
+ `The package 'affise-attribution-lib' doesn't seem to be linked. Make sure: \n\n` +
9
+ Platform.select({ios: "- You have run 'pod install'\n", default: ''}) +
10
+ '- You rebuilt the app after installing the package\n' +
11
+ '- You are not using Expo Go\n';
12
+
13
+ const AffiseNative = NativeModules.AffiseAttributionNative
14
+ ? NativeModules.AffiseAttributionNative
15
+ : new Proxy(
16
+ {},
17
+ {
18
+ get() {
19
+ throw new Error(LINKING_ERROR);
20
+ },
21
+ }
22
+ );
23
+
24
+ const DEEPLINK_CALLBACK_EVENT = "affiseDeeplinkEvent";
25
+ const DEEPLINK_CALLBACK_URI_PARAMETER = "uri";
26
+
27
+ /**
28
+ * Entry point to initialise Affise Attribution library
29
+ */
30
+ export class Affise {
31
+ private static eventListener?: EmitterSubscription;
32
+
33
+ /**
34
+ * @param initProperties
35
+ */
36
+ static init(
37
+ initProperties: AffiseInitProperties
38
+ ) {
39
+ AffiseNative.nativeInit(initProperties);
40
+ }
41
+
42
+ /**
43
+ * Send events
44
+ */
45
+ static sendEvents() {
46
+ AffiseNative.nativeSendEvents();
47
+ }
48
+
49
+ /**
50
+ * Store and send [event]
51
+ */
52
+ static sendEvent(event: AffiseEvent) {
53
+ AffiseNative.nativeSendEvent(event);
54
+ }
55
+
56
+ /**
57
+ * Add [pushToken]
58
+ */
59
+ static addPushToken(pushToken: string) {
60
+ AffiseNative.nativeAddPushToken(pushToken);
61
+ }
62
+
63
+ /**
64
+ * Register [callback] for deeplink
65
+ */
66
+ static registerDeeplinkCallback(callback: (uri: string) => void) {
67
+ this.unregisterDeeplinkCallback();
68
+ const eventEmitter = new NativeEventEmitter(AffiseNative);
69
+ this.eventListener = eventEmitter.addListener(DEEPLINK_CALLBACK_EVENT, (event) => {
70
+ callback(event[DEEPLINK_CALLBACK_URI_PARAMETER]);
71
+ });
72
+
73
+ AffiseNative.nativeRegisterDeeplinkCallback();
74
+ }
75
+
76
+ static unregisterDeeplinkCallback() {
77
+ this.eventListener?.remove();
78
+ }
79
+
80
+ /**
81
+ * Set new secretId
82
+ */
83
+ static setSecretId(secretId: string) {
84
+ AffiseNative.nativeSetSecretId(secretId);
85
+ }
86
+
87
+ /**
88
+ * Send enabled autoCatching types
89
+ */
90
+
91
+ static setAutoCatchingTypes(types: AutoCatchingType[]) {
92
+ AffiseNative.nativeSetAutoCatchingTypes(types);
93
+ }
94
+
95
+ /**
96
+ * Sets offline mode to [enabled] state
97
+ *
98
+ * When enabled, no network activity should be triggered by this library,
99
+ * but background work is not paused. When offline mode is enabled,
100
+ * all recorded events should be sent
101
+ */
102
+ static setOfflineModeEnabled(enabled: boolean) {
103
+ AffiseNative.nativeSetOfflineModeEnabled(enabled);
104
+ }
105
+
106
+ /**
107
+ * Returns current offline mode state
108
+ */
109
+ static isOfflineModeEnabled(): Promise<boolean> {
110
+ return AffiseNative.nativeIsOfflineModeEnabled();
111
+ }
112
+
113
+ /**
114
+ * Sets background tracking mode to [enabled] state
115
+ *
116
+ * When disabled, library should not generate any tracking events while in background
117
+ */
118
+ static setBackgroundTrackingEnabled(enabled: boolean) {
119
+ AffiseNative.nativeSetBackgroundTrackingEnabled(enabled);
120
+ }
121
+
122
+ /**
123
+ * Returns current background tracking state
124
+ */
125
+ static isBackgroundTrackingEnabled(): Promise<boolean> {
126
+ return AffiseNative.nativeIsBackgroundTrackingEnabled();
127
+ }
128
+
129
+ /**
130
+ * Sets offline mode to [enabled] state
131
+ *
132
+ * When disabled, library should not generate any tracking events
133
+ */
134
+ static setTrackingEnabled(enabled: boolean) {
135
+ AffiseNative.nativeSetTrackingEnabled(enabled);
136
+ }
137
+
138
+ /**
139
+ * Returns current tracking state
140
+ */
141
+ static isTrackingEnabled(): Promise<boolean> {
142
+ return AffiseNative.nativeIsTrackingEnabled();
143
+ }
144
+
145
+ /**
146
+ * Erases all user data from mobile and sends [GDPREvent]
147
+ */
148
+ static forget(userData: string) {
149
+ AffiseNative.nativeForget(userData);
150
+ }
151
+
152
+ /**
153
+ * Set [enabled] collect metrics
154
+ *
155
+ * When disabled, library should not generate any metrics events,
156
+ * but will send the saved metrics events
157
+ */
158
+ static setEnabledMetrics(enabled: boolean) {
159
+ AffiseNative.nativeSetEnabledMetrics(enabled);
160
+ }
161
+
162
+ static crashApplication() {
163
+ AffiseNative.nativeCrashApplication();
164
+ }
165
+
166
+ /**
167
+ * Get referrer
168
+ */
169
+ static getReferrer(): Promise<string> {
170
+ return AffiseNative.nativeGetReferrer();
171
+ }
172
+ }