@npaw/forge-react-native 9.6.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 (74) hide show
  1. package/LICENSE +10 -0
  2. package/NPAWForgeReactNative.podspec +44 -0
  3. package/README.md +51 -0
  4. package/android/build.gradle +77 -0
  5. package/android/src/main/AndroidManifest.xml +14 -0
  6. package/android/src/main/java/com/npaw/forge/reactnative/ForgeDtoMapper.java +295 -0
  7. package/android/src/main/java/com/npaw/forge/reactnative/ForgeInstanceRegistry.java +61 -0
  8. package/android/src/main/java/com/npaw/forge/reactnative/NPAWForgeModule.java +735 -0
  9. package/android/src/main/java/com/npaw/forge/reactnative/NPAWForgePackage.java +53 -0
  10. package/android/src/test/java/com/npaw/forge/reactnative/ForgeDtoMapperTest.java +133 -0
  11. package/ios/ForgeApple/ForgeKernelFFI.xcframework/Info.plist +82 -0
  12. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64/Headers/ForgeKernelFFI.h +17 -0
  13. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64/Headers/forge_kernelFFI.h +873 -0
  14. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64/Headers/module.modulemap +7 -0
  15. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64/libForgeKernelFFI.a +0 -0
  16. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64_x86_64-simulator/Headers/ForgeKernelFFI.h +17 -0
  17. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64_x86_64-simulator/Headers/forge_kernelFFI.h +873 -0
  18. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap +7 -0
  19. package/ios/ForgeApple/ForgeKernelFFI.xcframework/ios-arm64_x86_64-simulator/libForgeKernelFFI.a +0 -0
  20. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64/Headers/ForgeKernelFFI.h +17 -0
  21. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64/Headers/forge_kernelFFI.h +873 -0
  22. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64/Headers/module.modulemap +7 -0
  23. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64/libForgeKernelFFI.a +0 -0
  24. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/Headers/ForgeKernelFFI.h +17 -0
  25. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/Headers/forge_kernelFFI.h +873 -0
  26. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/Headers/module.modulemap +7 -0
  27. package/ios/ForgeApple/ForgeKernelFFI.xcframework/tvos-arm64-simulator/libForgeKernelFFI.a +0 -0
  28. package/ios/ForgeApple/Sources/ForgeKernelUniFFI/forge_kernel.swift +3931 -0
  29. package/ios/ForgeApple/Sources/ForgeKernelUniFFI/forge_kernelFFI.h +873 -0
  30. package/ios/ForgeApple/Sources/ForgeKernelUniFFI/forge_kernelFFI.modulemap +7 -0
  31. package/ios/ForgeApple/Sources/NPAWForgeAVPlayerAdapter/AVPlayerAccessLogFacts.swift +152 -0
  32. package/ios/ForgeApple/Sources/NPAWForgeAVPlayerAdapter/AVPlayerAdapter.swift +877 -0
  33. package/ios/ForgeApple/Sources/NPAWForgeCapture/AttributionCapture.swift +158 -0
  34. package/ios/ForgeApple/Sources/NPAWForgeCapture/CapturePlanGate.swift +189 -0
  35. package/ios/ForgeApple/Sources/NPAWForgeCapture/CrashCapture.swift +120 -0
  36. package/ios/ForgeApple/Sources/NPAWForgeCapture/ForgeAutomaticCapture.swift +639 -0
  37. package/ios/ForgeApple/Sources/NPAWForgeCapture/SectionsCapture.swift +1176 -0
  38. package/ios/ForgeApple/Sources/NPAWForgeCapture/SectionsEngine.swift +674 -0
  39. package/ios/ForgeApple/Sources/NPAWForgeCapture/SectionsMarkers.swift +105 -0
  40. package/ios/ForgeApple/Sources/NPAWForgeCapture/SectionsSwiftUI.swift +284 -0
  41. package/ios/ForgeApple/Sources/NPAWForgeCapture/SwiftUICapture.swift +44 -0
  42. package/ios/ForgeApple/Sources/NPAWForgeCore/AdAdapter.swift +199 -0
  43. package/ios/ForgeApple/Sources/NPAWForgeCore/AdSemantics.swift +136 -0
  44. package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeApple.swift +596 -0
  45. package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeCapturePlan.swift +297 -0
  46. package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeClock.swift +29 -0
  47. package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeLogging.swift +109 -0
  48. package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeOutcome.swift +89 -0
  49. package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeRuntime.swift +291 -0
  50. package/ios/ForgeApple/Sources/NPAWForgeCore/ForgeStorage.swift +70 -0
  51. package/ios/ForgeApple/Sources/NPAWForgeCore/ManualAdReporter.swift +180 -0
  52. package/ios/ForgeApple/Sources/NPAWForgeCore/NPAWForge.swift +453 -0
  53. package/ios/ForgeApple/Sources/NPAWForgeCore/NativeUniFFIRuntime.swift +594 -0
  54. package/ios/ForgeApple/Sources/NPAWForgeCore/NetworkRequestRecord.swift +191 -0
  55. package/ios/ForgeApple/Sources/NPAWForgeCore/ObjectiveCWrappers.swift +191 -0
  56. package/ios/ForgeApple/Sources/NPAWForgeCore/PlayerAdapter.swift +299 -0
  57. package/ios/ForgeApple/Sources/NPAWForgeCore/PlayerSemantics.swift +266 -0
  58. package/ios/ForgeApple/Sources/NPAWForgeCore/PrivacySanitizer.swift +59 -0
  59. package/ios/ForgeApple/Sources/NPAWForgeCore/VideoAdapter.swift +478 -0
  60. package/ios/ForgeApple/Sources/NPAWForgeCore/VideoOptions.swift +431 -0
  61. package/ios/ForgeApple/Sources/NPAWForgeNetworkCapture/ForgeNetworkCapture.swift +116 -0
  62. package/ios/ForgeApple/Sources/NPAWForgeNetworkCaptureObjC/NPAWForgeNetworkSwizzler.m +293 -0
  63. package/ios/ForgeApple/Sources/NPAWForgeNetworkCaptureObjC/include/NPAWForgeNetworkSwizzler.h +33 -0
  64. package/ios/ForgeModuleImpl.swift +1131 -0
  65. package/ios/NPAWForgeTurboModule.mm +399 -0
  66. package/package.json +33 -0
  67. package/src/ForgeAdReporter.ts +101 -0
  68. package/src/ForgeVideo.ts +169 -0
  69. package/src/NPAWForge.ts +177 -0
  70. package/src/capture.ts +192 -0
  71. package/src/events.ts +40 -0
  72. package/src/index.ts +37 -0
  73. package/src/specs/NativeNPAWForge.ts +168 -0
  74. package/src/types.ts +114 -0
@@ -0,0 +1,399 @@
1
+ /**
2
+ * Copyright (C) NPAW - All Rights Reserved
3
+ *
4
+ * This source code is protected under international copyright law. All rights
5
+ * reserved and protected by the copyright holders.
6
+ * This file is confidential and only available to authorized individuals with the
7
+ * permission of the copyright holders. If you encounter this file and do not have
8
+ * permission, please contact the copyright holders and delete this file.
9
+ *
10
+ *
11
+ * @author: Victor Soto <victor.soto@nicepeopleatwork.com>
12
+ * @description: ObjC++ TurboModule shell for the core NPAWForge module; forwards every spec method to the Swift ForgeModuleImpl and owns the RCTEventEmitter channel.
13
+ */
14
+
15
+ #import <React/RCTEventEmitter.h>
16
+
17
+ #ifdef RCT_NEW_ARCH_ENABLED
18
+ #import <NPAWForgeSpec/NPAWForgeSpec.h>
19
+ #endif
20
+
21
+ #if __has_include("NPAWForgeReactNative-Swift.h")
22
+ #import "NPAWForgeReactNative-Swift.h"
23
+ #else
24
+ #import <NPAWForgeReactNative/NPAWForgeReactNative-Swift.h>
25
+ #endif
26
+
27
+ static NSString *const kForgeEventChannel = @"NPAWForgeEvent";
28
+
29
+ @interface NPAWForgeReactNative : RCTEventEmitter
30
+ #ifdef RCT_NEW_ARCH_ENABLED
31
+ <NativeNPAWForgeSpec>
32
+ #endif
33
+ @end
34
+
35
+ @implementation NPAWForgeReactNative
36
+
37
+ RCT_EXPORT_MODULE(NPAWForgeRN)
38
+
39
+ + (BOOL)requiresMainQueueSetup
40
+ {
41
+ return NO;
42
+ }
43
+
44
+ - (instancetype)init
45
+ {
46
+ if (self = [super init]) {
47
+ __weak __typeof(self) weakSelf = self;
48
+ ForgeModuleImpl.shared.eventSink = ^(NSDictionary<NSString *, id> *body) {
49
+ [weakSelf sendEventWithName:kForgeEventChannel body:body];
50
+ };
51
+ }
52
+ return self;
53
+ }
54
+
55
+ - (NSArray<NSString *> *)supportedEvents
56
+ {
57
+ return @[ kForgeEventChannel ];
58
+ }
59
+
60
+ - (void)startObserving
61
+ {
62
+ [ForgeModuleImpl.shared addListener];
63
+ }
64
+
65
+ - (void)stopObserving
66
+ {
67
+ [ForgeModuleImpl.shared removeListeners:1];
68
+ }
69
+
70
+ - (void)invalidate
71
+ {
72
+ ForgeModuleImpl.shared.eventSink = nil;
73
+ [ForgeModuleImpl.shared invalidate];
74
+ [super invalidate];
75
+ }
76
+
77
+ // Swift closure typealiases are not exported to the generated header; the
78
+ // Swift methods surface their reject parameters as plain ObjC blocks.
79
+ typedef void (^ForgeRejectBlockObjC)(NSString *code, NSString *message);
80
+
81
+ static ForgeRejectBlockObjC ForgeMakeReject(RCTPromiseRejectBlock reject)
82
+ {
83
+ return ^(NSString *code, NSString *message) {
84
+ reject(code, message, nil);
85
+ };
86
+ }
87
+
88
+ RCT_EXPORT_METHOD(create : (NSString *)accountCode config : (NSDictionary *)config resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
89
+ {
90
+ [ForgeModuleImpl.shared create:accountCode config:config resolve:resolve reject:ForgeMakeReject(reject)];
91
+ }
92
+
93
+ RCT_EXPORT_METHOD(destroy : (NSString *)instanceId resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
94
+ {
95
+ [ForgeModuleImpl.shared destroy:instanceId resolve:resolve reject:ForgeMakeReject(reject)];
96
+ }
97
+
98
+ RCT_EXPORT_METHOD(setLogLevel : (NSString *)instanceId level : (NSString *)level resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
99
+ {
100
+ [ForgeModuleImpl.shared setLogLevel:instanceId level:level resolve:resolve reject:ForgeMakeReject(reject)];
101
+ }
102
+
103
+ RCT_EXPORT_METHOD(startSession : (NSString *)instanceId metadata : (NSDictionary *)metadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
104
+ {
105
+ [ForgeModuleImpl.shared startSession:instanceId metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
106
+ }
107
+
108
+ RCT_EXPORT_METHOD(endSession : (NSString *)instanceId metadata : (NSDictionary *)metadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
109
+ {
110
+ [ForgeModuleImpl.shared endSession:instanceId metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
111
+ }
112
+
113
+ RCT_EXPORT_METHOD(trackSessionNavigation : (NSString *)instanceId metadata : (NSDictionary *)metadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
114
+ {
115
+ [ForgeModuleImpl.shared trackSessionNavigation:instanceId metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
116
+ }
117
+
118
+ RCT_EXPORT_METHOD(trackSessionEvent : (NSString *)instanceId name : (NSString *)name metadata : (NSDictionary *)metadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
119
+ {
120
+ [ForgeModuleImpl.shared trackSessionEvent:instanceId name:name metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
121
+ }
122
+
123
+ RCT_EXPORT_METHOD(trackSessionEventStop : (NSString *)instanceId name : (NSString *)name metadata : (NSDictionary *)metadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
124
+ {
125
+ [ForgeModuleImpl.shared trackSessionEventStop:instanceId name:name metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
126
+ }
127
+
128
+ RCT_EXPORT_METHOD(trackSessionError : (NSString *)instanceId errorCode : (NSString *)errorCode errorMessage : (NSString *)errorMessage metadata : (NSDictionary *)metadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
129
+ {
130
+ [ForgeModuleImpl.shared trackSessionError:instanceId errorCode:errorCode errorMessage:errorMessage metadata:metadata resolve:resolve reject:ForgeMakeReject(reject)];
131
+ }
132
+
133
+ RCT_EXPORT_METHOD(loginSuccess : (NSString *)instanceId userId : (NSString *)userId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
134
+ {
135
+ [ForgeModuleImpl.shared loginSuccess:instanceId userId:userId options:options resolve:resolve reject:ForgeMakeReject(reject)];
136
+ }
137
+
138
+ RCT_EXPORT_METHOD(loginFailed : (NSString *)instanceId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
139
+ {
140
+ [ForgeModuleImpl.shared loginFailed:instanceId options:options resolve:resolve reject:ForgeMakeReject(reject)];
141
+ }
142
+
143
+ RCT_EXPORT_METHOD(logout : (NSString *)instanceId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
144
+ {
145
+ [ForgeModuleImpl.shared logout:instanceId options:options resolve:resolve reject:ForgeMakeReject(reject)];
146
+ }
147
+
148
+ RCT_EXPORT_METHOD(profileCreated : (NSString *)instanceId profileId : (NSString *)profileId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
149
+ {
150
+ [ForgeModuleImpl.shared profileCreated:instanceId profileId:profileId options:options resolve:resolve reject:ForgeMakeReject(reject)];
151
+ }
152
+
153
+ RCT_EXPORT_METHOD(profileSelected : (NSString *)instanceId profileId : (NSString *)profileId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
154
+ {
155
+ [ForgeModuleImpl.shared profileSelected:instanceId profileId:profileId options:options resolve:resolve reject:ForgeMakeReject(reject)];
156
+ }
157
+
158
+ RCT_EXPORT_METHOD(profileDeleted : (NSString *)instanceId profileId : (NSString *)profileId resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
159
+ {
160
+ [ForgeModuleImpl.shared profileDeleted:instanceId profileId:profileId resolve:resolve reject:ForgeMakeReject(reject)];
161
+ }
162
+
163
+ RCT_EXPORT_METHOD(trackRawEvent : (NSString *)instanceId name : (NSString *)name params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
164
+ {
165
+ [ForgeModuleImpl.shared trackRawEvent:instanceId name:name params:params resolve:resolve reject:ForgeMakeReject(reject)];
166
+ }
167
+
168
+ RCT_EXPORT_METHOD(trackSearch : (NSString *)instanceId query : (NSString *)query resultCount : (double)resultCount resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
169
+ {
170
+ [ForgeModuleImpl.shared trackSearch:instanceId query:query resultCount:resultCount resolve:resolve reject:ForgeMakeReject(reject)];
171
+ }
172
+
173
+ RCT_EXPORT_METHOD(trackSearchResultClick : (NSString *)instanceId query : (NSString *)query options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
174
+ {
175
+ [ForgeModuleImpl.shared trackSearchResultClick:instanceId query:query options:options resolve:resolve reject:ForgeMakeReject(reject)];
176
+ }
177
+
178
+ RCT_EXPORT_METHOD(trackBusinessEvent : (NSString *)instanceId name : (NSString *)name attributes : (NSDictionary *)attributes resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
179
+ {
180
+ [ForgeModuleImpl.shared trackBusinessEvent:instanceId name:name attributes:attributes resolve:resolve reject:ForgeMakeReject(reject)];
181
+ }
182
+
183
+ RCT_EXPORT_METHOD(trackAttribution : (NSString *)instanceId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
184
+ {
185
+ [ForgeModuleImpl.shared trackAttribution:instanceId options:options resolve:resolve reject:ForgeMakeReject(reject)];
186
+ }
187
+
188
+ RCT_EXPORT_METHOD(trackNetworkRequest : (NSString *)instanceId record : (NSDictionary *)record resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
189
+ {
190
+ [ForgeModuleImpl.shared trackNetworkRequest:instanceId record:record resolve:resolve reject:ForgeMakeReject(reject)];
191
+ }
192
+
193
+ RCT_EXPORT_METHOD(installNetworkCapture : (NSString *)instanceId options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
194
+ {
195
+ [ForgeModuleImpl.shared installNetworkCapture:instanceId
196
+ options:options
197
+ resolve:resolve
198
+ reject:ForgeMakeReject(reject)];
199
+ }
200
+
201
+ RCT_EXPORT_METHOD(snapshotEvents : (NSString *)instanceId resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
202
+ {
203
+ [ForgeModuleImpl.shared snapshotEvents:instanceId resolve:resolve reject:ForgeMakeReject(reject)];
204
+ }
205
+
206
+ RCT_EXPORT_METHOD(createVideo : (NSString *)instanceId identifier : (NSString *)identifier options : (NSDictionary *)options resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
207
+ {
208
+ [ForgeModuleImpl.shared createVideo:instanceId identifier:identifier options:options resolve:resolve reject:ForgeMakeReject(reject)];
209
+ }
210
+
211
+ RCT_EXPORT_METHOD(videoDestroy : (NSString *)instanceId identifier : (NSString *)identifier resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
212
+ {
213
+ [ForgeModuleImpl.shared videoDestroy:instanceId identifier:identifier resolve:resolve reject:ForgeMakeReject(reject)];
214
+ }
215
+
216
+ RCT_EXPORT_METHOD(videoFireInit : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
217
+ {
218
+ [ForgeModuleImpl.shared videoFireInit:instanceId identifier:identifier params:params resolve:resolve reject:ForgeMakeReject(reject)];
219
+ }
220
+
221
+ RCT_EXPORT_METHOD(videoFireJoin : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
222
+ {
223
+ [ForgeModuleImpl.shared videoFireJoin:instanceId identifier:identifier params:params resolve:resolve reject:ForgeMakeReject(reject)];
224
+ }
225
+
226
+ RCT_EXPORT_METHOD(videoFirePause : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
227
+ {
228
+ [ForgeModuleImpl.shared videoFirePause:instanceId identifier:identifier params:params resolve:resolve reject:ForgeMakeReject(reject)];
229
+ }
230
+
231
+ RCT_EXPORT_METHOD(videoFireResume : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
232
+ {
233
+ [ForgeModuleImpl.shared videoFireResume:instanceId identifier:identifier params:params resolve:resolve reject:ForgeMakeReject(reject)];
234
+ }
235
+
236
+ RCT_EXPORT_METHOD(videoFireSeekEnd : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
237
+ {
238
+ [ForgeModuleImpl.shared videoFireSeekEnd:instanceId identifier:identifier params:params resolve:resolve reject:ForgeMakeReject(reject)];
239
+ }
240
+
241
+ RCT_EXPORT_METHOD(videoFireBufferEnd : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
242
+ {
243
+ [ForgeModuleImpl.shared videoFireBufferEnd:instanceId identifier:identifier params:params resolve:resolve reject:ForgeMakeReject(reject)];
244
+ }
245
+
246
+ RCT_EXPORT_METHOD(videoFireStop : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
247
+ {
248
+ [ForgeModuleImpl.shared videoFireStop:instanceId identifier:identifier params:params resolve:resolve reject:ForgeMakeReject(reject)];
249
+ }
250
+
251
+ RCT_EXPORT_METHOD(videoFireStart : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params forceInit : (BOOL)forceInit resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
252
+ {
253
+ [ForgeModuleImpl.shared videoFireStart:instanceId identifier:identifier params:params forceInit:forceInit resolve:resolve reject:ForgeMakeReject(reject)];
254
+ }
255
+
256
+ RCT_EXPORT_METHOD(videoFireSeekBegin : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params convertFromBuffer : (BOOL)convertFromBuffer resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
257
+ {
258
+ [ForgeModuleImpl.shared videoFireSeekBegin:instanceId identifier:identifier params:params convertFromBuffer:convertFromBuffer resolve:resolve reject:ForgeMakeReject(reject)];
259
+ }
260
+
261
+ RCT_EXPORT_METHOD(videoFireBufferBegin : (NSString *)instanceId identifier : (NSString *)identifier params : (NSDictionary *)params convertFromSeek : (BOOL)convertFromSeek resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
262
+ {
263
+ [ForgeModuleImpl.shared videoFireBufferBegin:instanceId identifier:identifier params:params convertFromSeek:convertFromSeek resolve:resolve reject:ForgeMakeReject(reject)];
264
+ }
265
+
266
+ RCT_EXPORT_METHOD(videoFireError : (NSString *)instanceId identifier : (NSString *)identifier errorCode : (NSString *)errorCode errorMessage : (NSString *)errorMessage errorMetadata : (NSString *)errorMetadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
267
+ {
268
+ [ForgeModuleImpl.shared videoFireError:instanceId identifier:identifier errorCode:errorCode errorMessage:errorMessage errorMetadata:errorMetadata resolve:resolve reject:ForgeMakeReject(reject)];
269
+ }
270
+
271
+ RCT_EXPORT_METHOD(videoFireFatalError : (NSString *)instanceId identifier : (NSString *)identifier errorCode : (NSString *)errorCode errorMessage : (NSString *)errorMessage errorMetadata : (NSString *)errorMetadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
272
+ {
273
+ [ForgeModuleImpl.shared videoFireFatalError:instanceId identifier:identifier errorCode:errorCode errorMessage:errorMessage errorMetadata:errorMetadata resolve:resolve reject:ForgeMakeReject(reject)];
274
+ }
275
+
276
+ RCT_EXPORT_METHOD(videoFireDestroy : (NSString *)instanceId identifier : (NSString *)identifier resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
277
+ {
278
+ [ForgeModuleImpl.shared videoFireDestroy:instanceId identifier:identifier resolve:resolve reject:ForgeMakeReject(reject)];
279
+ }
280
+
281
+ RCT_EXPORT_METHOD(videoFireEvent : (NSString *)instanceId identifier : (NSString *)identifier eventName : (NSString *)eventName dimensions : (NSDictionary *)dimensions values : (NSDictionary *)values topLevelDimensions : (NSDictionary *)topLevelDimensions hasEndDatetime : (BOOL)hasEndDatetime resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
282
+ {
283
+ [ForgeModuleImpl.shared videoFireEvent:instanceId identifier:identifier eventName:eventName dimensions:dimensions values:values topLevelDimensions:topLevelDimensions hasEndDatetime:hasEndDatetime resolve:resolve reject:ForgeMakeReject(reject)];
284
+ }
285
+
286
+ RCT_EXPORT_METHOD(videoFireEventEnd : (NSString *)instanceId identifier : (NSString *)identifier eventName : (NSString *)eventName dimensions : (NSDictionary *)dimensions values : (NSDictionary *)values topLevelDimensions : (NSDictionary *)topLevelDimensions resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
287
+ {
288
+ [ForgeModuleImpl.shared videoFireEventEnd:instanceId identifier:identifier eventName:eventName dimensions:dimensions values:values topLevelDimensions:topLevelDimensions resolve:resolve reject:ForgeMakeReject(reject)];
289
+ }
290
+
291
+ RCT_EXPORT_METHOD(videoFireMetadataUpdate : (NSString *)instanceId identifier : (NSString *)identifier resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
292
+ {
293
+ [ForgeModuleImpl.shared videoFireMetadataUpdate:instanceId identifier:identifier resolve:resolve reject:ForgeMakeReject(reject)];
294
+ }
295
+
296
+ RCT_EXPORT_METHOD(createAdReporter : (NSString *)instanceId identifier : (NSString *)identifier adapterVersion : (NSString *)adapterVersion resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
297
+ {
298
+ [ForgeModuleImpl.shared createAdReporter:instanceId identifier:identifier adapterVersion:adapterVersion resolve:resolve reject:ForgeMakeReject(reject)];
299
+ }
300
+
301
+ RCT_EXPORT_METHOD(releaseAdReporter : (double)reporterId resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
302
+ {
303
+ [ForgeModuleImpl.shared releaseAdReporter:reporterId resolve:resolve reject:ForgeMakeReject(reject)];
304
+ }
305
+
306
+ RCT_EXPORT_METHOD(adFireManifest : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
307
+ {
308
+ [ForgeModuleImpl.shared adFireManifest:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
309
+ }
310
+
311
+ RCT_EXPORT_METHOD(adFireBreakStart : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
312
+ {
313
+ [ForgeModuleImpl.shared adFireBreakStart:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
314
+ }
315
+
316
+ RCT_EXPORT_METHOD(adFireAdInit : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
317
+ {
318
+ [ForgeModuleImpl.shared adFireAdInit:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
319
+ }
320
+
321
+ RCT_EXPORT_METHOD(adFireStart : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
322
+ {
323
+ [ForgeModuleImpl.shared adFireStart:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
324
+ }
325
+
326
+ RCT_EXPORT_METHOD(adFireJoin : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
327
+ {
328
+ [ForgeModuleImpl.shared adFireJoin:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
329
+ }
330
+
331
+ RCT_EXPORT_METHOD(adFirePause : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
332
+ {
333
+ [ForgeModuleImpl.shared adFirePause:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
334
+ }
335
+
336
+ RCT_EXPORT_METHOD(adFireResume : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
337
+ {
338
+ [ForgeModuleImpl.shared adFireResume:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
339
+ }
340
+
341
+ RCT_EXPORT_METHOD(adFireBufferBegin : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
342
+ {
343
+ [ForgeModuleImpl.shared adFireBufferBegin:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
344
+ }
345
+
346
+ RCT_EXPORT_METHOD(adFireBufferEnd : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
347
+ {
348
+ [ForgeModuleImpl.shared adFireBufferEnd:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
349
+ }
350
+
351
+ RCT_EXPORT_METHOD(adFireClick : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
352
+ {
353
+ [ForgeModuleImpl.shared adFireClick:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
354
+ }
355
+
356
+ RCT_EXPORT_METHOD(adFireStop : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
357
+ {
358
+ [ForgeModuleImpl.shared adFireStop:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
359
+ }
360
+
361
+ RCT_EXPORT_METHOD(adFireBreakStop : (double)reporterId params : (NSDictionary *)params resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
362
+ {
363
+ [ForgeModuleImpl.shared adFireBreakStop:reporterId params:params resolve:resolve reject:ForgeMakeReject(reject)];
364
+ }
365
+
366
+ RCT_EXPORT_METHOD(adFireQuartile : (double)reporterId quartile : (double)quartile resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
367
+ {
368
+ [ForgeModuleImpl.shared adFireQuartile:reporterId quartile:quartile resolve:resolve reject:ForgeMakeReject(reject)];
369
+ }
370
+
371
+ RCT_EXPORT_METHOD(adFireSkip : (double)reporterId resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
372
+ {
373
+ [ForgeModuleImpl.shared adFireSkip:reporterId resolve:resolve reject:ForgeMakeReject(reject)];
374
+ }
375
+
376
+ RCT_EXPORT_METHOD(adFireDestroy : (double)reporterId resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
377
+ {
378
+ [ForgeModuleImpl.shared adFireDestroy:reporterId resolve:resolve reject:ForgeMakeReject(reject)];
379
+ }
380
+
381
+ RCT_EXPORT_METHOD(adFireError : (double)reporterId errorCode : (NSString *)errorCode errorMessage : (NSString *)errorMessage errorMetadata : (NSString *)errorMetadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
382
+ {
383
+ [ForgeModuleImpl.shared adFireError:reporterId errorCode:errorCode errorMessage:errorMessage errorMetadata:errorMetadata resolve:resolve reject:ForgeMakeReject(reject)];
384
+ }
385
+
386
+ RCT_EXPORT_METHOD(adFireFatalError : (double)reporterId errorCode : (NSString *)errorCode errorMessage : (NSString *)errorMessage errorMetadata : (NSString *)errorMetadata resolve : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
387
+ {
388
+ [ForgeModuleImpl.shared adFireFatalError:reporterId errorCode:errorCode errorMessage:errorMessage errorMetadata:errorMetadata resolve:resolve reject:ForgeMakeReject(reject)];
389
+ }
390
+
391
+ #ifdef RCT_NEW_ARCH_ENABLED
392
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
393
+ (const facebook::react::ObjCTurboModule::InitParams &)params
394
+ {
395
+ return std::make_shared<facebook::react::NativeNPAWForgeSpecJSI>(params);
396
+ }
397
+ #endif
398
+
399
+ @end
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@npaw/forge-react-native",
3
+ "version": "9.6.1",
4
+ "description": "NPAW Forge analytics for React Native: New Architecture TurboModule facade over the native Forge Android/Apple SDKs.",
5
+ "license": "SEE LICENSE IN LICENSE",
6
+ "author": "Victor Soto <victor.soto@nicepeopleatwork.com>",
7
+ "main": "src/index.ts",
8
+ "types": "src/index.ts",
9
+ "files": [
10
+ "LICENSE",
11
+ "NPAWForgeReactNative.podspec",
12
+ "README.md",
13
+ "android",
14
+ "ios",
15
+ "src"
16
+ ],
17
+ "scripts": {
18
+ "typecheck": "tsc --noEmit",
19
+ "test": "jest"
20
+ },
21
+ "peerDependencies": {
22
+ "react": "*",
23
+ "react-native": "*"
24
+ },
25
+ "codegenConfig": {
26
+ "name": "NPAWForgeSpec",
27
+ "type": "modules",
28
+ "jsSrcsDir": "src/specs",
29
+ "android": {
30
+ "javaPackageName": "com.npaw.forge.reactnative"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright (C) NPAW - All Rights Reserved
3
+ *
4
+ * This source code is protected under international copyright law. All rights
5
+ * reserved and protected by the copyright holders.
6
+ * This file is confidential and only available to authorized individuals with the
7
+ * permission of the copyright holders. If you encounter this file and do not have
8
+ * permission, please contact the copyright holders and delete this file.
9
+ *
10
+ *
11
+ * @author: Victor Soto <victor.soto@nicepeopleatwork.com>
12
+ * @description: Manual ad reporter facade over a native reporter handle; mirrors the native ManualAdReporter fire* surface.
13
+ */
14
+
15
+ import NativeNPAWForge from './specs/NativeNPAWForge';
16
+ import type { ForgeOutcome, ForgeParams } from './types';
17
+
18
+ function asOutcome(value: Promise<unknown>): Promise<ForgeOutcome> {
19
+ return value as Promise<ForgeOutcome>;
20
+ }
21
+
22
+ export class ForgeAdReporter {
23
+ constructor(readonly reporterId: number) {}
24
+
25
+ fireManifest(params: ForgeParams = {}): Promise<ForgeOutcome> {
26
+ return asOutcome(NativeNPAWForge.adFireManifest(this.reporterId, params));
27
+ }
28
+
29
+ fireBreakStart(params: ForgeParams = {}): Promise<ForgeOutcome> {
30
+ return asOutcome(NativeNPAWForge.adFireBreakStart(this.reporterId, params));
31
+ }
32
+
33
+ fireAdInit(params: ForgeParams = {}): Promise<ForgeOutcome> {
34
+ return asOutcome(NativeNPAWForge.adFireAdInit(this.reporterId, params));
35
+ }
36
+
37
+ fireStart(params: ForgeParams = {}): Promise<ForgeOutcome> {
38
+ return asOutcome(NativeNPAWForge.adFireStart(this.reporterId, params));
39
+ }
40
+
41
+ fireJoin(params: ForgeParams = {}): Promise<ForgeOutcome> {
42
+ return asOutcome(NativeNPAWForge.adFireJoin(this.reporterId, params));
43
+ }
44
+
45
+ firePause(params: ForgeParams = {}): Promise<ForgeOutcome> {
46
+ return asOutcome(NativeNPAWForge.adFirePause(this.reporterId, params));
47
+ }
48
+
49
+ fireResume(params: ForgeParams = {}): Promise<ForgeOutcome> {
50
+ return asOutcome(NativeNPAWForge.adFireResume(this.reporterId, params));
51
+ }
52
+
53
+ fireBufferBegin(params: ForgeParams = {}): Promise<ForgeOutcome> {
54
+ return asOutcome(NativeNPAWForge.adFireBufferBegin(this.reporterId, params));
55
+ }
56
+
57
+ fireBufferEnd(params: ForgeParams = {}): Promise<ForgeOutcome> {
58
+ return asOutcome(NativeNPAWForge.adFireBufferEnd(this.reporterId, params));
59
+ }
60
+
61
+ fireQuartile(quartile?: number): Promise<ForgeOutcome> {
62
+ return asOutcome(NativeNPAWForge.adFireQuartile(this.reporterId, quartile ?? -1));
63
+ }
64
+
65
+ fireClick(params: ForgeParams = {}): Promise<ForgeOutcome> {
66
+ return asOutcome(NativeNPAWForge.adFireClick(this.reporterId, params));
67
+ }
68
+
69
+ fireSkip(): Promise<ForgeOutcome> {
70
+ return asOutcome(NativeNPAWForge.adFireSkip(this.reporterId));
71
+ }
72
+
73
+ fireStop(params: ForgeParams = {}): Promise<ForgeOutcome> {
74
+ return asOutcome(NativeNPAWForge.adFireStop(this.reporterId, params));
75
+ }
76
+
77
+ fireError(errorCode?: string, errorMessage?: string, errorMetadata?: string): Promise<ForgeOutcome> {
78
+ return asOutcome(
79
+ NativeNPAWForge.adFireError(this.reporterId, errorCode ?? '', errorMessage ?? '', errorMetadata ?? '')
80
+ );
81
+ }
82
+
83
+ fireFatalError(errorCode?: string, errorMessage?: string, errorMetadata?: string): Promise<ForgeOutcome> {
84
+ return asOutcome(
85
+ NativeNPAWForge.adFireFatalError(this.reporterId, errorCode ?? '', errorMessage ?? '', errorMetadata ?? '')
86
+ );
87
+ }
88
+
89
+ fireBreakStop(params: ForgeParams = {}): Promise<ForgeOutcome> {
90
+ return asOutcome(NativeNPAWForge.adFireBreakStop(this.reporterId, params));
91
+ }
92
+
93
+ fireDestroy(): Promise<ForgeOutcome> {
94
+ return asOutcome(NativeNPAWForge.adFireDestroy(this.reporterId));
95
+ }
96
+
97
+ /** Releases the native handle; the reporter is unusable afterwards. */
98
+ release(): Promise<ForgeOutcome> {
99
+ return asOutcome(NativeNPAWForge.releaseAdReporter(this.reporterId));
100
+ }
101
+ }