@ohos-ports/react-native-fbsdk-next 13.4.3-beta.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 (284) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +943 -0
  3. package/android/build.gradle +57 -0
  4. package/android/src/main/AndroidManifest.xml +46 -0
  5. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAccessTokenModule.java +151 -0
  6. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBActivityEventListener.java +40 -0
  7. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAppEventsLoggerModule.java +414 -0
  8. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAppLinkModule.java +86 -0
  9. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBGameRequestDialogModule.java +94 -0
  10. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBGraphRequestModule.java +283 -0
  11. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBLoginButtonManager.java +83 -0
  12. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBLoginManagerModule.java +171 -0
  13. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBMessageDialogModule.java +111 -0
  14. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBProfileModule.java +68 -0
  15. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSDKCallbackManagerBaseJavaModule.java +41 -0
  16. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSDKPackage.java +60 -0
  17. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSendButtonManager.java +51 -0
  18. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSettingsModule.java +95 -0
  19. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBShareButtonManager.java +53 -0
  20. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBShareDialogModule.java +107 -0
  21. package/android/src/main/java/com/facebook/reactnative/androidsdk/RCTLoginButton.java +126 -0
  22. package/android/src/main/java/com/facebook/reactnative/androidsdk/RCTLoginButtonEvent.java +27 -0
  23. package/android/src/main/java/com/facebook/reactnative/androidsdk/ReactNativeFacebookSDKCallback.java +58 -0
  24. package/android/src/main/java/com/facebook/reactnative/androidsdk/Utility.java +283 -0
  25. package/app.plugin.js +1 -0
  26. package/expo-module.config.json +10 -0
  27. package/ios/ExpoAdapterFBSDKNext/FacebookAppDelegate.swift +21 -0
  28. package/ios/ExpoAdapterFBSDKNext.podspec +33 -0
  29. package/ios/RCTFBSDK/core/RCTConvert+FBSDKAccessToken.h +27 -0
  30. package/ios/RCTFBSDK/core/RCTConvert+FBSDKAccessToken.m +41 -0
  31. package/ios/RCTFBSDK/core/RCTFBSDKAEMReporter.m +30 -0
  32. package/ios/RCTFBSDK/core/RCTFBSDKAccessToken.h +24 -0
  33. package/ios/RCTFBSDK/core/RCTFBSDKAccessToken.m +115 -0
  34. package/ios/RCTFBSDK/core/RCTFBSDKAppEvents.h +24 -0
  35. package/ios/RCTFBSDK/core/RCTFBSDKAppEvents.m +251 -0
  36. package/ios/RCTFBSDK/core/RCTFBSDKAppLink.h +24 -0
  37. package/ios/RCTFBSDK/core/RCTFBSDKAppLink.m +52 -0
  38. package/ios/RCTFBSDK/core/RCTFBSDKAuthenticationToken.h +6 -0
  39. package/ios/RCTFBSDK/core/RCTFBSDKAuthenticationToken.m +35 -0
  40. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestConnectionContainer.h +50 -0
  41. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestConnectionContainer.m +124 -0
  42. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestManager.h +25 -0
  43. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestManager.m +43 -0
  44. package/ios/RCTFBSDK/core/RCTFBSDKProfile.h +6 -0
  45. package/ios/RCTFBSDK/core/RCTFBSDKProfile.m +58 -0
  46. package/ios/RCTFBSDK/core/RCTFBSDKSettings.h +14 -0
  47. package/ios/RCTFBSDK/core/RCTFBSDKSettings.m +80 -0
  48. package/ios/RCTFBSDK/login/RCTConvert+FBSDKLogin.h +28 -0
  49. package/ios/RCTFBSDK/login/RCTConvert+FBSDKLogin.m +35 -0
  50. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonManager.h +25 -0
  51. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonManager.m +73 -0
  52. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonView.h +12 -0
  53. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonView.m +57 -0
  54. package/ios/RCTFBSDK/login/RCTFBSDKLoginManager.h +22 -0
  55. package/ios/RCTFBSDK/login/RCTFBSDKLoginManager.m +154 -0
  56. package/ios/RCTFBSDK/share/RCTConvert+FBSDKSharingContent.h +29 -0
  57. package/ios/RCTFBSDK/share/RCTConvert+FBSDKSharingContent.m +111 -0
  58. package/ios/RCTFBSDK/share/RCTFBSDKGameRequestDialog.h +24 -0
  59. package/ios/RCTFBSDK/share/RCTFBSDKGameRequestDialog.m +134 -0
  60. package/ios/RCTFBSDK/share/RCTFBSDKMessageDialog.h +24 -0
  61. package/ios/RCTFBSDK/share/RCTFBSDKMessageDialog.m +116 -0
  62. package/ios/RCTFBSDK/share/RCTFBSDKSendButtonManager.h +25 -0
  63. package/ios/RCTFBSDK/share/RCTFBSDKSendButtonManager.m +39 -0
  64. package/ios/RCTFBSDK/share/RCTFBSDKShareButtonManager.h +23 -0
  65. package/ios/RCTFBSDK/share/RCTFBSDKShareButtonManager.m +39 -0
  66. package/ios/RCTFBSDK/share/RCTFBSDKShareDialog.h +24 -0
  67. package/ios/RCTFBSDK/share/RCTFBSDKShareDialog.m +134 -0
  68. package/ios/RCTFBSDK/share/RCTFBSDKShareHelper.h +21 -0
  69. package/ios/RCTFBSDK/share/RCTFBSDKShareHelper.m +32 -0
  70. package/ios/RCTFBSDK.xcodeproj/project.pbxproj +446 -0
  71. package/ios/RCTFBSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  72. package/ios/RCTFBSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  73. package/jest/mocks/index.js +81 -0
  74. package/jest/setup.js +3 -0
  75. package/lib/commonjs/FBAEMReporter.js +39 -0
  76. package/lib/commonjs/FBAEMReporter.js.map +1 -0
  77. package/lib/commonjs/FBAccessToken.js +198 -0
  78. package/lib/commonjs/FBAccessToken.js.map +1 -0
  79. package/lib/commonjs/FBAppEventsLogger.js +221 -0
  80. package/lib/commonjs/FBAppEventsLogger.js.map +1 -0
  81. package/lib/commonjs/FBAppLink.js +36 -0
  82. package/lib/commonjs/FBAppLink.js.map +1 -0
  83. package/lib/commonjs/FBAuthenticationToken.js +55 -0
  84. package/lib/commonjs/FBAuthenticationToken.js.map +1 -0
  85. package/lib/commonjs/FBGameRequestDialog.js +45 -0
  86. package/lib/commonjs/FBGameRequestDialog.js.map +1 -0
  87. package/lib/commonjs/FBGraphRequest.js +66 -0
  88. package/lib/commonjs/FBGraphRequest.js.map +1 -0
  89. package/lib/commonjs/FBGraphRequestManager.js +96 -0
  90. package/lib/commonjs/FBGraphRequestManager.js.map +1 -0
  91. package/lib/commonjs/FBLoginButton.js +67 -0
  92. package/lib/commonjs/FBLoginButton.js.map +1 -0
  93. package/lib/commonjs/FBLoginManager.js +102 -0
  94. package/lib/commonjs/FBLoginManager.js.map +1 -0
  95. package/lib/commonjs/FBMessageDialog.js +51 -0
  96. package/lib/commonjs/FBMessageDialog.js.map +1 -0
  97. package/lib/commonjs/FBProfile.js +134 -0
  98. package/lib/commonjs/FBProfile.js.map +1 -0
  99. package/lib/commonjs/FBSendButton.js +48 -0
  100. package/lib/commonjs/FBSendButton.js.map +1 -0
  101. package/lib/commonjs/FBSettings.js +115 -0
  102. package/lib/commonjs/FBSettings.js.map +1 -0
  103. package/lib/commonjs/FBShareButton.js +48 -0
  104. package/lib/commonjs/FBShareButton.js.map +1 -0
  105. package/lib/commonjs/FBShareDialog.js +57 -0
  106. package/lib/commonjs/FBShareDialog.js.map +1 -0
  107. package/lib/commonjs/index.js +323 -0
  108. package/lib/commonjs/index.js.map +1 -0
  109. package/lib/commonjs/models/FBAppGroupCreationContent.js +2 -0
  110. package/lib/commonjs/models/FBAppGroupCreationContent.js.map +1 -0
  111. package/lib/commonjs/models/FBGameRequestContent.js +2 -0
  112. package/lib/commonjs/models/FBGameRequestContent.js.map +1 -0
  113. package/lib/commonjs/models/FBSDKCallback.js +2 -0
  114. package/lib/commonjs/models/FBSDKCallback.js.map +1 -0
  115. package/lib/commonjs/models/FBShareContent.js +6 -0
  116. package/lib/commonjs/models/FBShareContent.js.map +1 -0
  117. package/lib/commonjs/models/FBShareLinkContent.js +6 -0
  118. package/lib/commonjs/models/FBShareLinkContent.js.map +1 -0
  119. package/lib/commonjs/models/FBSharePhoto.js +2 -0
  120. package/lib/commonjs/models/FBSharePhoto.js.map +1 -0
  121. package/lib/commonjs/models/FBSharePhotoContent.js +6 -0
  122. package/lib/commonjs/models/FBSharePhotoContent.js.map +1 -0
  123. package/lib/commonjs/models/FBShareVideo.js +2 -0
  124. package/lib/commonjs/models/FBShareVideo.js.map +1 -0
  125. package/lib/commonjs/models/FBShareVideoContent.js +6 -0
  126. package/lib/commonjs/models/FBShareVideoContent.js.map +1 -0
  127. package/lib/commonjs/util/validate.js +180 -0
  128. package/lib/commonjs/util/validate.js.map +1 -0
  129. package/lib/commonjs/utils/index.js +2 -0
  130. package/lib/commonjs/utils/index.js.map +1 -0
  131. package/lib/module/FBAEMReporter.js +34 -0
  132. package/lib/module/FBAEMReporter.js.map +1 -0
  133. package/lib/module/FBAccessToken.js +191 -0
  134. package/lib/module/FBAccessToken.js.map +1 -0
  135. package/lib/module/FBAppEventsLogger.js +215 -0
  136. package/lib/module/FBAppEventsLogger.js.map +1 -0
  137. package/lib/module/FBAppLink.js +29 -0
  138. package/lib/module/FBAppLink.js.map +1 -0
  139. package/lib/module/FBAuthenticationToken.js +48 -0
  140. package/lib/module/FBAuthenticationToken.js.map +1 -0
  141. package/lib/module/FBGameRequestDialog.js +39 -0
  142. package/lib/module/FBGameRequestDialog.js.map +1 -0
  143. package/lib/module/FBGraphRequest.js +60 -0
  144. package/lib/module/FBGraphRequest.js.map +1 -0
  145. package/lib/module/FBGraphRequestManager.js +90 -0
  146. package/lib/module/FBGraphRequestManager.js.map +1 -0
  147. package/lib/module/FBLoginButton.js +62 -0
  148. package/lib/module/FBLoginButton.js.map +1 -0
  149. package/lib/module/FBLoginManager.js +97 -0
  150. package/lib/module/FBLoginManager.js.map +1 -0
  151. package/lib/module/FBMessageDialog.js +45 -0
  152. package/lib/module/FBMessageDialog.js.map +1 -0
  153. package/lib/module/FBProfile.js +127 -0
  154. package/lib/module/FBProfile.js.map +1 -0
  155. package/lib/module/FBSendButton.js +41 -0
  156. package/lib/module/FBSendButton.js.map +1 -0
  157. package/lib/module/FBSettings.js +108 -0
  158. package/lib/module/FBSettings.js.map +1 -0
  159. package/lib/module/FBShareButton.js +41 -0
  160. package/lib/module/FBShareButton.js.map +1 -0
  161. package/lib/module/FBShareDialog.js +51 -0
  162. package/lib/module/FBShareDialog.js.map +1 -0
  163. package/lib/module/index.js +44 -0
  164. package/lib/module/index.js.map +1 -0
  165. package/lib/module/models/FBAppGroupCreationContent.js +2 -0
  166. package/lib/module/models/FBAppGroupCreationContent.js.map +1 -0
  167. package/lib/module/models/FBGameRequestContent.js +2 -0
  168. package/lib/module/models/FBGameRequestContent.js.map +1 -0
  169. package/lib/module/models/FBSDKCallback.js +2 -0
  170. package/lib/module/models/FBSDKCallback.js.map +1 -0
  171. package/lib/module/models/FBShareContent.js +2 -0
  172. package/lib/module/models/FBShareContent.js.map +1 -0
  173. package/lib/module/models/FBShareLinkContent.js +2 -0
  174. package/lib/module/models/FBShareLinkContent.js.map +1 -0
  175. package/lib/module/models/FBSharePhoto.js +2 -0
  176. package/lib/module/models/FBSharePhoto.js.map +1 -0
  177. package/lib/module/models/FBSharePhotoContent.js +2 -0
  178. package/lib/module/models/FBSharePhotoContent.js.map +1 -0
  179. package/lib/module/models/FBShareVideo.js +2 -0
  180. package/lib/module/models/FBShareVideo.js.map +1 -0
  181. package/lib/module/models/FBShareVideoContent.js +2 -0
  182. package/lib/module/models/FBShareVideoContent.js.map +1 -0
  183. package/lib/module/util/validate.js +157 -0
  184. package/lib/module/util/validate.js.map +1 -0
  185. package/lib/module/utils/index.js +2 -0
  186. package/lib/module/utils/index.js.map +1 -0
  187. package/lib/typescript/FBAEMReporter.d.ts +21 -0
  188. package/lib/typescript/FBAEMReporter.d.ts.map +1 -0
  189. package/lib/typescript/FBAccessToken.d.ts +118 -0
  190. package/lib/typescript/FBAccessToken.d.ts.map +1 -0
  191. package/lib/typescript/FBAppEventsLogger.d.ts +201 -0
  192. package/lib/typescript/FBAppEventsLogger.d.ts.map +1 -0
  193. package/lib/typescript/FBAppLink.d.ts +5 -0
  194. package/lib/typescript/FBAppLink.d.ts.map +1 -0
  195. package/lib/typescript/FBAuthenticationToken.d.ts +29 -0
  196. package/lib/typescript/FBAuthenticationToken.d.ts.map +1 -0
  197. package/lib/typescript/FBGameRequestDialog.d.ts +39 -0
  198. package/lib/typescript/FBGameRequestDialog.d.ts.map +1 -0
  199. package/lib/typescript/FBGraphRequest.d.ts +70 -0
  200. package/lib/typescript/FBGraphRequest.d.ts.map +1 -0
  201. package/lib/typescript/FBGraphRequestManager.d.ts +51 -0
  202. package/lib/typescript/FBGraphRequestManager.d.ts.map +1 -0
  203. package/lib/typescript/FBLoginButton.d.ts +92 -0
  204. package/lib/typescript/FBLoginButton.d.ts.map +1 -0
  205. package/lib/typescript/FBLoginManager.d.ts +77 -0
  206. package/lib/typescript/FBLoginManager.d.ts.map +1 -0
  207. package/lib/typescript/FBMessageDialog.d.ts +42 -0
  208. package/lib/typescript/FBMessageDialog.d.ts.map +1 -0
  209. package/lib/typescript/FBProfile.d.ts +127 -0
  210. package/lib/typescript/FBProfile.d.ts.map +1 -0
  211. package/lib/typescript/FBSendButton.d.ts +42 -0
  212. package/lib/typescript/FBSendButton.d.ts.map +1 -0
  213. package/lib/typescript/FBSettings.d.ts +49 -0
  214. package/lib/typescript/FBSettings.d.ts.map +1 -0
  215. package/lib/typescript/FBShareButton.d.ts +42 -0
  216. package/lib/typescript/FBShareButton.d.ts.map +1 -0
  217. package/lib/typescript/FBShareDialog.d.ts +69 -0
  218. package/lib/typescript/FBShareDialog.d.ts.map +1 -0
  219. package/lib/typescript/index.d.ts +43 -0
  220. package/lib/typescript/index.d.ts.map +1 -0
  221. package/lib/typescript/models/FBAppGroupCreationContent.d.ts +43 -0
  222. package/lib/typescript/models/FBAppGroupCreationContent.d.ts.map +1 -0
  223. package/lib/typescript/models/FBGameRequestContent.d.ts +63 -0
  224. package/lib/typescript/models/FBGameRequestContent.d.ts.map +1 -0
  225. package/lib/typescript/models/FBSDKCallback.d.ts +4 -0
  226. package/lib/typescript/models/FBSDKCallback.d.ts.map +1 -0
  227. package/lib/typescript/models/FBShareContent.d.ts +48 -0
  228. package/lib/typescript/models/FBShareContent.d.ts.map +1 -0
  229. package/lib/typescript/models/FBShareLinkContent.d.ts +65 -0
  230. package/lib/typescript/models/FBShareLinkContent.d.ts.map +1 -0
  231. package/lib/typescript/models/FBSharePhoto.d.ts +43 -0
  232. package/lib/typescript/models/FBSharePhoto.d.ts.map +1 -0
  233. package/lib/typescript/models/FBSharePhotoContent.d.ts +45 -0
  234. package/lib/typescript/models/FBSharePhotoContent.d.ts.map +1 -0
  235. package/lib/typescript/models/FBShareVideo.d.ts +31 -0
  236. package/lib/typescript/models/FBShareVideo.d.ts.map +1 -0
  237. package/lib/typescript/models/FBShareVideoContent.d.ts +58 -0
  238. package/lib/typescript/models/FBShareVideoContent.d.ts.map +1 -0
  239. package/lib/typescript/util/validate.d.ts +62 -0
  240. package/lib/typescript/util/validate.d.ts.map +1 -0
  241. package/lib/typescript/utils/index.d.ts +2 -0
  242. package/lib/typescript/utils/index.d.ts.map +1 -0
  243. package/package.json +155 -0
  244. package/plugin/build/config.d.ts +53 -0
  245. package/plugin/build/config.js +46 -0
  246. package/plugin/build/withFacebook.d.ts +4 -0
  247. package/plugin/build/withFacebook.js +59 -0
  248. package/plugin/build/withFacebookAndroid.d.ts +6 -0
  249. package/plugin/build/withFacebookAndroid.js +197 -0
  250. package/plugin/build/withFacebookIOS.d.ts +15 -0
  251. package/plugin/build/withFacebookIOS.js +163 -0
  252. package/plugin/build/withSKAdNetworkIdentifiers.d.ts +9 -0
  253. package/plugin/build/withSKAdNetworkIdentifiers.js +36 -0
  254. package/plugin/tsconfig.json +9 -0
  255. package/react-native-fbsdk-next.podspec +34 -0
  256. package/src/FBAEMReporter.ts +44 -0
  257. package/src/FBAccessToken.ts +222 -0
  258. package/src/FBAppEventsLogger.ts +375 -0
  259. package/src/FBAppLink.ts +30 -0
  260. package/src/FBAuthenticationToken.ts +61 -0
  261. package/src/FBGameRequestDialog.ts +49 -0
  262. package/src/FBGraphRequest.ts +89 -0
  263. package/src/FBGraphRequestManager.ts +117 -0
  264. package/src/FBLoginButton.tsx +152 -0
  265. package/src/FBLoginManager.ts +133 -0
  266. package/src/FBMessageDialog.ts +53 -0
  267. package/src/FBProfile.ts +166 -0
  268. package/src/FBSendButton.tsx +61 -0
  269. package/src/FBSettings.ts +122 -0
  270. package/src/FBShareButton.tsx +61 -0
  271. package/src/FBShareDialog.ts +96 -0
  272. package/src/index.ts +85 -0
  273. package/src/models/FBAppGroupCreationContent.ts +48 -0
  274. package/src/models/FBGameRequestContent.ts +81 -0
  275. package/src/models/FBSDKCallback.ts +3 -0
  276. package/src/models/FBShareContent.ts +54 -0
  277. package/src/models/FBShareLinkContent.ts +71 -0
  278. package/src/models/FBSharePhoto.ts +45 -0
  279. package/src/models/FBSharePhotoContent.ts +48 -0
  280. package/src/models/FBShareVideo.ts +31 -0
  281. package/src/models/FBShareVideoContent.ts +64 -0
  282. package/src/util/validate.ts +167 -0
  283. package/src/utils/index.ts +1 -0
  284. package/tsconfig.json +103 -0
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const config_1 = require("./config");
4
+ const withFacebookAndroid_1 = require("./withFacebookAndroid");
5
+ const withFacebookIOS_1 = require("./withFacebookIOS");
6
+ const withSKAdNetworkIdentifiers_1 = require("./withSKAdNetworkIdentifiers");
7
+ const config_plugins_1 = require("@expo/config-plugins");
8
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
9
+ const pkg = require('react-native-fbsdk-next/package.json');
10
+ function getExpoFacebookConfig(config) {
11
+ const facebookPlugin = config.plugins?.find((plugin) => {
12
+ if (Array.isArray(plugin) && plugin[0] === 'facebook') {
13
+ return true;
14
+ }
15
+ return false;
16
+ });
17
+ if (Array.isArray(facebookPlugin) && facebookPlugin.length > 1) {
18
+ return {
19
+ plugins: {
20
+ facebook: facebookPlugin[1],
21
+ },
22
+ };
23
+ }
24
+ return {
25
+ plugins: {
26
+ facebook: {},
27
+ },
28
+ };
29
+ }
30
+ const withFacebook = (config, props) => {
31
+ // Convert ExpoConfig to ExpoConfigFacebook format
32
+ const facebookConfig = getExpoFacebookConfig(config);
33
+ // Merge the configs
34
+ const newProps = (0, config_1.getMergePropsWithConfig)(facebookConfig, props);
35
+ // Validation
36
+ if (!newProps.appID) {
37
+ throw new Error('missing appID in the plugin properties');
38
+ }
39
+ if (!newProps.displayName) {
40
+ throw new Error('missing displayName in the plugin properties');
41
+ }
42
+ if (!newProps.scheme) {
43
+ throw new Error('missing scheme in the plugin properties');
44
+ }
45
+ // Android
46
+ config = (0, withFacebookAndroid_1.withFacebookAppIdString)(config, newProps);
47
+ config = (0, withFacebookAndroid_1.withFacebookManifest)(config, newProps);
48
+ config = (0, withFacebookAndroid_1.withAndroidPermissions)(config, newProps);
49
+ // iOS
50
+ config = (0, withFacebookIOS_1.withFacebookIOS)(config, newProps);
51
+ config = (0, withFacebookIOS_1.withUserTrackingPermission)(config, newProps);
52
+ // https://developers.facebook.com/docs/SKAdNetwork
53
+ config = (0, withSKAdNetworkIdentifiers_1.withSKAdNetworkIdentifiers)(config, [
54
+ 'v9wttpbfk9.skadnetwork',
55
+ 'n38lu8286q.skadnetwork',
56
+ ]);
57
+ return config;
58
+ };
59
+ exports.default = (0, config_plugins_1.createRunOncePlugin)(withFacebook, pkg.name, pkg.version);
@@ -0,0 +1,6 @@
1
+ import { ConfigProps } from './config';
2
+ import { AndroidConfig, ConfigPlugin } from '@expo/config-plugins';
3
+ export declare const withFacebookAppIdString: ConfigPlugin<ConfigProps>;
4
+ export declare const withFacebookManifest: ConfigPlugin<ConfigProps>;
5
+ export declare const withAndroidPermissions: ConfigPlugin<ConfigProps>;
6
+ export declare function setFacebookConfig(props: ConfigProps, androidManifest: AndroidConfig.Manifest.AndroidManifest): AndroidConfig.Manifest.AndroidManifest;
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withAndroidPermissions = exports.withFacebookManifest = exports.withFacebookAppIdString = void 0;
4
+ exports.setFacebookConfig = setFacebookConfig;
5
+ const config_1 = require("./config");
6
+ const config_plugins_1 = require("@expo/config-plugins");
7
+ const { buildResourceItem } = config_plugins_1.AndroidConfig.Resources;
8
+ const { removeStringItem, setStringItem } = config_plugins_1.AndroidConfig.Strings;
9
+ const { addMetaDataItemToMainApplication, getMainApplicationOrThrow, prefixAndroidKeys, removeMetaDataItemFromMainApplication, } = config_plugins_1.AndroidConfig.Manifest;
10
+ const FACEBOOK_ACTIVITY = 'com.facebook.FacebookActivity';
11
+ const CUSTOM_TAB_ACTIVITY = 'com.facebook.CustomTabActivity';
12
+ const STRING_FACEBOOK_APP_ID = 'facebook_app_id';
13
+ const STRING_FB_LOGIN_PROTOCOL_SCHEME = 'fb_login_protocol_scheme';
14
+ const STRING_FACEBOOK_CLIENT_TOKEN = 'facebook_client_token';
15
+ const META_APP_ID = 'com.facebook.sdk.ApplicationId';
16
+ const META_CLIENT_TOKEN = 'com.facebook.sdk.ClientToken';
17
+ const META_APP_NAME = 'com.facebook.sdk.ApplicationName';
18
+ const META_AUTO_INIT = 'com.facebook.sdk.AutoInitEnabled';
19
+ const META_AUTO_LOG_APP_EVENTS = 'com.facebook.sdk.AutoLogAppEventsEnabled';
20
+ const META_AD_ID_COLLECTION = 'com.facebook.sdk.AdvertiserIDCollectionEnabled';
21
+ const withFacebookAppIdString = (config, props) => {
22
+ return (0, config_plugins_1.withStringsXml)(config, (config) => {
23
+ config.modResults = applyFacebookAppIdString(props, config.modResults);
24
+ config.modResults = applyFacebookClientTokenString(props, config.modResults);
25
+ config.modResults = applyFacebookLoginProtocolSchemeString(props, config.modResults);
26
+ return config;
27
+ });
28
+ };
29
+ exports.withFacebookAppIdString = withFacebookAppIdString;
30
+ const withFacebookManifest = (config, props) => {
31
+ return (0, config_plugins_1.withAndroidManifest)(config, (config) => {
32
+ config.modResults = setFacebookConfig(props, config.modResults);
33
+ return config;
34
+ });
35
+ };
36
+ exports.withFacebookManifest = withFacebookManifest;
37
+ const withAndroidPermissions = (config) => {
38
+ config = config_plugins_1.AndroidConfig.Permissions.withPermissions(config, [
39
+ 'android.permission.INTERNET',
40
+ ]);
41
+ return config;
42
+ };
43
+ exports.withAndroidPermissions = withAndroidPermissions;
44
+ function buildXMLItem({ head, children, }) {
45
+ return { ...(children ?? {}), $: head };
46
+ }
47
+ function buildAndroidItem(datum) {
48
+ const item = typeof datum === 'string' ? { name: datum } : datum;
49
+ const head = prefixAndroidKeys(item);
50
+ return buildXMLItem({ head });
51
+ }
52
+ function getFacebookActivity() {
53
+ /**
54
+ <activity android:name="com.facebook.FacebookActivity"
55
+ android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
56
+ android:label="@string/app_name" />
57
+ */
58
+ return buildXMLItem({
59
+ head: prefixAndroidKeys({
60
+ name: FACEBOOK_ACTIVITY,
61
+ configChanges: 'keyboard|keyboardHidden|screenLayout|screenSize|orientation',
62
+ label: '@string/app_name',
63
+ }),
64
+ });
65
+ }
66
+ function getCustomTabActivity() {
67
+ /**
68
+ <activity
69
+ android:name="com.facebook.CustomTabActivity"
70
+ android:exported="true">
71
+ <intent-filter>
72
+ <action android:name="android.intent.action.VIEW" />
73
+ <category android:name="android.intent.category.DEFAULT" />
74
+ <category android:name="android.intent.category.BROWSABLE" />
75
+ <data android:scheme="@string/fb_login_protocol_scheme" />
76
+ </intent-filter>
77
+ </activity>
78
+ */
79
+ return buildXMLItem({
80
+ head: prefixAndroidKeys({
81
+ name: CUSTOM_TAB_ACTIVITY,
82
+ exported: 'true',
83
+ }),
84
+ children: {
85
+ 'intent-filter': [
86
+ {
87
+ action: [buildAndroidItem('android.intent.action.VIEW')],
88
+ category: [
89
+ buildAndroidItem('android.intent.category.DEFAULT'),
90
+ buildAndroidItem('android.intent.category.BROWSABLE'),
91
+ ],
92
+ data: [
93
+ buildAndroidItem({ scheme: '@string/fb_login_protocol_scheme' }),
94
+ ],
95
+ },
96
+ ],
97
+ },
98
+ });
99
+ }
100
+ function ensureFacebookActivity({ mainApplication, scheme, }) {
101
+ if (Array.isArray(mainApplication.activity)) {
102
+ // Remove all Facebook CustomTabActivities first
103
+ mainApplication.activity = mainApplication.activity.filter((activity) => {
104
+ return ![FACEBOOK_ACTIVITY, CUSTOM_TAB_ACTIVITY].includes(activity.$?.['android:name']);
105
+ });
106
+ }
107
+ else {
108
+ mainApplication.activity = [];
109
+ }
110
+ // If a new scheme is defined, append it to the activity.
111
+ if (scheme) {
112
+ mainApplication.activity.push(getFacebookActivity());
113
+ mainApplication.activity.push(getCustomTabActivity());
114
+ }
115
+ return mainApplication;
116
+ }
117
+ function applyFacebookLoginProtocolSchemeString(props, stringsJSON) {
118
+ const scheme = (0, config_1.getFacebookScheme)(props);
119
+ if (scheme) {
120
+ return setStringItem([
121
+ buildResourceItem({
122
+ name: STRING_FB_LOGIN_PROTOCOL_SCHEME,
123
+ value: scheme,
124
+ }),
125
+ ], stringsJSON);
126
+ }
127
+ return removeStringItem(STRING_FB_LOGIN_PROTOCOL_SCHEME, stringsJSON);
128
+ }
129
+ function applyFacebookAppIdString(props, stringsJSON) {
130
+ const appID = (0, config_1.getFacebookAppId)(props);
131
+ if (appID) {
132
+ return setStringItem([buildResourceItem({ name: STRING_FACEBOOK_APP_ID, value: appID })], stringsJSON);
133
+ }
134
+ return removeStringItem(STRING_FACEBOOK_APP_ID, stringsJSON);
135
+ }
136
+ function applyFacebookClientTokenString(props, stringsJSON) {
137
+ const clientToken = (0, config_1.getFacebookClientToken)(props);
138
+ if (clientToken) {
139
+ return setStringItem([
140
+ buildResourceItem({
141
+ name: STRING_FACEBOOK_CLIENT_TOKEN,
142
+ value: clientToken,
143
+ }),
144
+ ], stringsJSON);
145
+ }
146
+ return removeStringItem(STRING_FACEBOOK_CLIENT_TOKEN, stringsJSON);
147
+ }
148
+ function setFacebookConfig(props, androidManifest) {
149
+ const scheme = (0, config_1.getFacebookScheme)(props);
150
+ const appID = (0, config_1.getFacebookAppId)(props);
151
+ const displayName = (0, config_1.getFacebookDisplayName)(props);
152
+ const clientToken = (0, config_1.getFacebookClientToken)(props);
153
+ const autoInitEnabled = (0, config_1.getFacebookAutoInitEnabled)(props);
154
+ const autoLogAppEvents = (0, config_1.getFacebookAutoLogAppEvents)(props);
155
+ const advertiserIdCollection = (0, config_1.getFacebookAdvertiserIDCollection)(props);
156
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
157
+ let mainApplication = getMainApplicationOrThrow(androidManifest);
158
+ mainApplication = ensureFacebookActivity({ scheme, mainApplication });
159
+ if (appID) {
160
+ mainApplication = addMetaDataItemToMainApplication(mainApplication, META_APP_ID, `@string/${STRING_FACEBOOK_APP_ID}`);
161
+ }
162
+ else {
163
+ mainApplication = removeMetaDataItemFromMainApplication(mainApplication, META_APP_ID);
164
+ }
165
+ if (clientToken) {
166
+ mainApplication = addMetaDataItemToMainApplication(mainApplication, META_CLIENT_TOKEN, `@string/${STRING_FACEBOOK_CLIENT_TOKEN}`);
167
+ }
168
+ else {
169
+ mainApplication = removeMetaDataItemFromMainApplication(mainApplication, META_CLIENT_TOKEN);
170
+ }
171
+ if (displayName) {
172
+ mainApplication = addMetaDataItemToMainApplication(mainApplication, META_APP_NAME, displayName);
173
+ }
174
+ else {
175
+ mainApplication = removeMetaDataItemFromMainApplication(mainApplication, META_APP_NAME);
176
+ }
177
+ if (autoInitEnabled !== null) {
178
+ mainApplication = addMetaDataItemToMainApplication(mainApplication, META_AUTO_INIT, autoInitEnabled ? 'true' : 'false');
179
+ }
180
+ else {
181
+ mainApplication = removeMetaDataItemFromMainApplication(mainApplication, META_AUTO_INIT);
182
+ }
183
+ if (autoLogAppEvents !== null) {
184
+ mainApplication = addMetaDataItemToMainApplication(mainApplication, META_AUTO_LOG_APP_EVENTS, autoLogAppEvents ? 'true' : 'false');
185
+ }
186
+ else {
187
+ mainApplication = removeMetaDataItemFromMainApplication(mainApplication, META_AUTO_LOG_APP_EVENTS);
188
+ }
189
+ if (advertiserIdCollection !== null) {
190
+ mainApplication = addMetaDataItemToMainApplication(mainApplication, META_AD_ID_COLLECTION, advertiserIdCollection ? 'true' : 'false');
191
+ }
192
+ else {
193
+ // eslint-disable-next-line
194
+ mainApplication = removeMetaDataItemFromMainApplication(mainApplication, META_AD_ID_COLLECTION);
195
+ }
196
+ return androidManifest;
197
+ }
@@ -0,0 +1,15 @@
1
+ import { ConfigProps } from './config';
2
+ import { ConfigPlugin, InfoPlist } from '@expo/config-plugins';
3
+ export declare const withFacebookIOS: ConfigPlugin<ConfigProps>;
4
+ export declare function setFacebookConfig(config: ConfigProps, infoPlist: InfoPlist): InfoPlist;
5
+ export declare function setFacebookScheme(config: ConfigProps, infoPlist: InfoPlist): InfoPlist;
6
+ export declare function setFacebookAutoInitEnabled(config: ConfigProps, { FacebookAutoInitEnabled: _, ...infoPlist }: InfoPlist): InfoPlist;
7
+ export declare function setFacebookAutoLogAppEventsEnabled(config: ConfigProps, { FacebookAutoLogAppEventsEnabled: _, ...infoPlist }: InfoPlist): InfoPlist;
8
+ export declare function setFacebookAdvertiserIDCollectionEnabled(config: ConfigProps, { FacebookAdvertiserIDCollectionEnabled: _, ...infoPlist }: InfoPlist): InfoPlist;
9
+ export declare function setFacebookAppId(config: ConfigProps, { FacebookAppID: _, ...infoPlist }: InfoPlist): InfoPlist;
10
+ export declare function setFacebookClientToken(config: ConfigProps, { FacebookClientToken: _, ...infoPlist }: InfoPlist): InfoPlist;
11
+ export declare function setFacebookDisplayName(config: ConfigProps, { FacebookDisplayName: _, ...infoPlist }: InfoPlist): InfoPlist;
12
+ export declare function setFacebookApplicationQuerySchemes(config: ConfigProps, infoPlist: InfoPlist): InfoPlist;
13
+ export declare const withUserTrackingPermission: ConfigPlugin<{
14
+ iosUserTrackingPermission?: string | false;
15
+ } | void>;
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withUserTrackingPermission = exports.withFacebookIOS = void 0;
4
+ exports.setFacebookConfig = setFacebookConfig;
5
+ exports.setFacebookScheme = setFacebookScheme;
6
+ exports.setFacebookAutoInitEnabled = setFacebookAutoInitEnabled;
7
+ exports.setFacebookAutoLogAppEventsEnabled = setFacebookAutoLogAppEventsEnabled;
8
+ exports.setFacebookAdvertiserIDCollectionEnabled = setFacebookAdvertiserIDCollectionEnabled;
9
+ exports.setFacebookAppId = setFacebookAppId;
10
+ exports.setFacebookClientToken = setFacebookClientToken;
11
+ exports.setFacebookDisplayName = setFacebookDisplayName;
12
+ exports.setFacebookApplicationQuerySchemes = setFacebookApplicationQuerySchemes;
13
+ const config_1 = require("./config");
14
+ const config_plugins_1 = require("@expo/config-plugins");
15
+ const { Scheme } = config_plugins_1.IOSConfig;
16
+ const { appendScheme } = Scheme;
17
+ const fbSchemes = ['fbapi', 'fb-messenger-api', 'fbauth2', 'fbshareextension'];
18
+ const withFacebookIOS = (config, props) => {
19
+ return (0, config_plugins_1.withInfoPlist)(config, (config) => {
20
+ config.modResults = setFacebookConfig(props, config.modResults);
21
+ return config;
22
+ });
23
+ };
24
+ exports.withFacebookIOS = withFacebookIOS;
25
+ function setFacebookConfig(config, infoPlist) {
26
+ infoPlist = setFacebookAppId(config, infoPlist);
27
+ infoPlist = setFacebookClientToken(config, infoPlist);
28
+ infoPlist = setFacebookApplicationQuerySchemes(config, infoPlist);
29
+ infoPlist = setFacebookDisplayName(config, infoPlist);
30
+ infoPlist = setFacebookAutoInitEnabled(config, infoPlist);
31
+ infoPlist = setFacebookAutoLogAppEventsEnabled(config, infoPlist);
32
+ infoPlist = setFacebookAdvertiserIDCollectionEnabled(config, infoPlist);
33
+ infoPlist = setFacebookScheme(config, infoPlist);
34
+ return infoPlist;
35
+ }
36
+ function setFacebookScheme(config, infoPlist) {
37
+ const facebookScheme = (0, config_1.getFacebookScheme)(config);
38
+ if (!facebookScheme) {
39
+ return infoPlist;
40
+ }
41
+ if (infoPlist.CFBundleURLTypes?.some(({ CFBundleURLSchemes }) => CFBundleURLSchemes.includes(facebookScheme))) {
42
+ return infoPlist;
43
+ }
44
+ return appendScheme(facebookScheme, infoPlist);
45
+ }
46
+ function setFacebookAutoInitEnabled(config, { FacebookAutoInitEnabled: _, ...infoPlist }) {
47
+ const isAutoInitEnabled = (0, config_1.getFacebookAutoInitEnabled)(config);
48
+ if (isAutoInitEnabled === null) {
49
+ return infoPlist;
50
+ }
51
+ return {
52
+ ...infoPlist,
53
+ FacebookAutoInitEnabled: isAutoInitEnabled,
54
+ };
55
+ }
56
+ function setFacebookAutoLogAppEventsEnabled(config, { FacebookAutoLogAppEventsEnabled: _, ...infoPlist }) {
57
+ const autoLogAppEventsEnabled = (0, config_1.getFacebookAutoLogAppEvents)(config);
58
+ if (autoLogAppEventsEnabled === null) {
59
+ return infoPlist;
60
+ }
61
+ return {
62
+ ...infoPlist,
63
+ FacebookAutoLogAppEventsEnabled: autoLogAppEventsEnabled,
64
+ };
65
+ }
66
+ function setFacebookAdvertiserIDCollectionEnabled(config, { FacebookAdvertiserIDCollectionEnabled: _, ...infoPlist }) {
67
+ const advertiserIDCollectionEnabled = (0, config_1.getFacebookAdvertiserIDCollection)(config);
68
+ if (advertiserIDCollectionEnabled === null) {
69
+ return infoPlist;
70
+ }
71
+ return {
72
+ ...infoPlist,
73
+ FacebookAdvertiserIDCollectionEnabled: advertiserIDCollectionEnabled,
74
+ };
75
+ }
76
+ function setFacebookAppId(config, { FacebookAppID: _, ...infoPlist }) {
77
+ const appID = (0, config_1.getFacebookAppId)(config);
78
+ if (appID) {
79
+ return {
80
+ ...infoPlist,
81
+ FacebookAppID: appID,
82
+ };
83
+ }
84
+ return infoPlist;
85
+ }
86
+ function setFacebookClientToken(config, { FacebookClientToken: _, ...infoPlist }) {
87
+ const clientToken = (0, config_1.getFacebookClientToken)(config);
88
+ if (clientToken) {
89
+ return {
90
+ ...infoPlist,
91
+ FacebookClientToken: clientToken,
92
+ };
93
+ }
94
+ return infoPlist;
95
+ }
96
+ function setFacebookDisplayName(config, { FacebookDisplayName: _, ...infoPlist }) {
97
+ const facebookDisplayName = (0, config_1.getFacebookDisplayName)(config);
98
+ if (facebookDisplayName) {
99
+ return {
100
+ ...infoPlist,
101
+ FacebookDisplayName: facebookDisplayName,
102
+ };
103
+ }
104
+ return infoPlist;
105
+ }
106
+ function setFacebookApplicationQuerySchemes(config, infoPlist) {
107
+ const facebookAppId = (0, config_1.getFacebookAppId)(config);
108
+ const existingSchemes = infoPlist.LSApplicationQueriesSchemes || [];
109
+ if (facebookAppId && existingSchemes.includes('fbapi')) {
110
+ // already included, no need to add again
111
+ return infoPlist;
112
+ }
113
+ else if (!facebookAppId && !existingSchemes.length) {
114
+ // already removed, no need to strip again
115
+ const { LSApplicationQueriesSchemes, ...restInfoPlist } = infoPlist;
116
+ if (LSApplicationQueriesSchemes?.length) {
117
+ return infoPlist;
118
+ }
119
+ else {
120
+ // Return without the empty LSApplicationQueriesSchemes array.
121
+ return restInfoPlist;
122
+ }
123
+ }
124
+ // Remove all schemes
125
+ for (const scheme of fbSchemes) {
126
+ const index = existingSchemes.findIndex((s) => s === scheme);
127
+ if (index > -1) {
128
+ existingSchemes.splice(index, 1);
129
+ }
130
+ }
131
+ if (!facebookAppId) {
132
+ // Run again to ensure the LSApplicationQueriesSchemes array is stripped if needed.
133
+ infoPlist.LSApplicationQueriesSchemes = existingSchemes;
134
+ if (!infoPlist.LSApplicationQueriesSchemes.length) {
135
+ delete infoPlist.LSApplicationQueriesSchemes;
136
+ }
137
+ return infoPlist;
138
+ }
139
+ // TODO: it's actually necessary to add more query schemes (specific to the
140
+ // app) to support all of the features that the Facebook SDK provides, should
141
+ // we sync those here too?
142
+ const updatedSchemes = [...existingSchemes, ...fbSchemes];
143
+ return {
144
+ ...infoPlist,
145
+ LSApplicationQueriesSchemes: updatedSchemes,
146
+ };
147
+ }
148
+ const withUserTrackingPermission = (config, { iosUserTrackingPermission } = {}) => {
149
+ if (!iosUserTrackingPermission) {
150
+ return config;
151
+ }
152
+ if (!config.ios) {
153
+ config.ios = {};
154
+ }
155
+ if (!config.ios.infoPlist) {
156
+ config.ios.infoPlist = {};
157
+ }
158
+ config.ios.infoPlist.NSUserTrackingUsageDescription =
159
+ iosUserTrackingPermission ||
160
+ config.ios.infoPlist.NSUserTrackingUsageDescription;
161
+ return config;
162
+ };
163
+ exports.withUserTrackingPermission = withUserTrackingPermission;
@@ -0,0 +1,9 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ /**
3
+ * Plugin to add [`SKAdNetworkIdentifier`](https://developer.apple.com/documentation/storekit/skadnetwork/configuring_the_participating_apps)s to the Info.plist safely.
4
+ *
5
+ *
6
+ * @param config
7
+ * @param props.identifiers array of lowercase string ids to push to the `SKAdNetworkItems` array in the `Info.plist`.
8
+ */
9
+ export declare const withSKAdNetworkIdentifiers: ConfigPlugin<string[]>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withSKAdNetworkIdentifiers = void 0;
4
+ /**
5
+ * Plugin to add [`SKAdNetworkIdentifier`](https://developer.apple.com/documentation/storekit/skadnetwork/configuring_the_participating_apps)s to the Info.plist safely.
6
+ *
7
+ *
8
+ * @param config
9
+ * @param props.identifiers array of lowercase string ids to push to the `SKAdNetworkItems` array in the `Info.plist`.
10
+ */
11
+ const withSKAdNetworkIdentifiers = (config, identifiers) => {
12
+ if (!config.ios) {
13
+ config.ios = {};
14
+ }
15
+ if (!config.ios.infoPlist) {
16
+ config.ios.infoPlist = {};
17
+ }
18
+ if (!Array.isArray(config.ios.infoPlist.SKAdNetworkItems)) {
19
+ config.ios.infoPlist.SKAdNetworkItems = [];
20
+ }
21
+ // Get ids
22
+ let existingIds = config.ios.infoPlist.SKAdNetworkItems.map((item) => item?.SKAdNetworkIdentifier ?? null).filter(Boolean);
23
+ // remove duplicates
24
+ existingIds = [...new Set(existingIds)];
25
+ for (const id of identifiers) {
26
+ // Must be lowercase
27
+ const lower = id.toLowerCase();
28
+ if (!existingIds.includes(lower)) {
29
+ config.ios.infoPlist.SKAdNetworkItems.push({
30
+ SKAdNetworkIdentifier: lower,
31
+ });
32
+ }
33
+ }
34
+ return config;
35
+ };
36
+ exports.withSKAdNetworkIdentifiers = withSKAdNetworkIdentifiers;
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "expo-module-scripts/tsconfig.plugin",
3
+ "compilerOptions": {
4
+ "outDir": "build",
5
+ "rootDir": "src"
6
+ },
7
+ "include": ["./src"],
8
+ "exclude": ["**/__mocks__/*", "**/__tests__/*"]
9
+ }
@@ -0,0 +1,34 @@
1
+ require 'json'
2
+ package = JSON.parse(File.read(File.join(__dir__, './', 'package.json')))
3
+
4
+ FBSDKVersion = "18.0"
5
+
6
+ Pod::Spec.new do |s|
7
+ s.name = package['name']
8
+ s.version = package['version']
9
+ s.summary = package['description']
10
+ s.requires_arc = true
11
+ s.author = { 'thebergamo' => 'marcos@thedon.com.br' }
12
+ s.license = package['license']
13
+ s.homepage = package['homepage']
14
+ s.source = { :git => 'https://github.com/thebergamo/react-native-fbsdk-next.git', :tag => "v#{package['version']}" }
15
+ s.platforms = { :ios => "12.0", :tvos => "12.0" }
16
+ s.dependency 'React-Core'
17
+ s.cocoapods_version = '>= 1.12.0'
18
+
19
+ s.subspec 'Core' do |ss|
20
+ ss.dependency 'FBSDKCoreKit', "~> #{FBSDKVersion}"
21
+ ss.source_files = 'ios/RCTFBSDK/core/*.{h,m}'
22
+ end
23
+
24
+ s.subspec 'Login' do |ss|
25
+ ss.dependency 'FBSDKLoginKit', "~> #{FBSDKVersion}"
26
+ ss.source_files = 'ios/RCTFBSDK/login/*.{h,m}'
27
+ end
28
+
29
+ s.subspec 'Share' do |ss|
30
+ ss.dependency 'FBSDKShareKit', "~> #{FBSDKVersion}"
31
+ ss.dependency 'FBSDKGamingServicesKit', "~> #{FBSDKVersion}"
32
+ ss.source_files = 'ios/RCTFBSDK/share/*.{h,m}'
33
+ end
34
+ end
@@ -0,0 +1,44 @@
1
+ /**
2
+ * This source code is licensed under the license found in the
3
+ * LICENSE file in the root directory of this source tree.
4
+ *
5
+ * @format
6
+ */
7
+ import {NativeModules, Platform} from 'react-native';
8
+
9
+ /**
10
+ * Aggregated Event Measurement (AEM) for iOS apps allows for the measurement of app events
11
+ * from iOS 14.5+ users who have opted out of app tracking.
12
+ *
13
+ * @ref https://developers.facebook.com/docs/app-events/guides/aggregated-event-measurement/
14
+ */
15
+ export default {
16
+ /**
17
+ * Log AEM event, event names for AEM must match event names you used in app event logging.
18
+ *
19
+ * *This method will bypass if platform isn't iOS*
20
+ *
21
+ * **Make sure you also handle the DeepLink URL with AEM**
22
+ *
23
+ * @ref https://developers.facebook.com/docs/app-events/guides/aggregated-event-measurement/
24
+ * @platform iOS
25
+ */
26
+ logAEMEvent: (
27
+ eventName: string,
28
+ value: number,
29
+ currency?: string,
30
+ otherParameters?: Record<string, string | number>,
31
+ ) => {
32
+ // AEM is currently only for iOS
33
+ if (Platform.OS !== 'ios') {
34
+ return;
35
+ }
36
+
37
+ NativeModules.FBSDKAEMReporter.recordAndUpdateEvent(
38
+ eventName,
39
+ value,
40
+ currency,
41
+ otherParameters,
42
+ );
43
+ },
44
+ };