@react-native-firebase/app 25.1.0 → 26.1.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 (163) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +21 -0
  3. package/RNFBApp.podspec +20 -15
  4. package/android/build.gradle +25 -6
  5. package/android/src/reactnative/java/io/invertase/firebase/app/{ReactNativeFirebaseAppModule.java → NativeRNFBTurboApp.java} +81 -45
  6. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.java +3 -3
  7. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +2 -2
  8. package/android/src/reactnative/java/io/invertase/firebase/app/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboAppSpec.java +136 -0
  9. package/android/src/reactnative/java/io/invertase/firebase/app/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboUtilsSpec.java +94 -0
  10. package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/CMakeLists.txt +36 -0
  11. package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/RNFBAppTurboModules-generated.cpp +170 -0
  12. package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/RNFBAppTurboModules.h +39 -0
  13. package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/react/renderer/components/RNFBAppTurboModules/RNFBAppTurboModulesJSI-generated.cpp +187 -0
  14. package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/react/renderer/components/RNFBAppTurboModules/RNFBAppTurboModulesJSI.h +606 -0
  15. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +3 -3
  16. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java +475 -20
  17. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.java +8 -0
  18. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.java +8 -0
  19. package/android/src/reactnative/java/io/invertase/firebase/utils/{ReactNativeFirebaseUtilsModule.java → NativeRNFBTurboUtils.java} +57 -40
  20. package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +400 -0
  21. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +1823 -0
  22. package/app.plugin.js +1 -1
  23. package/dist/module/FirebaseApp.js +0 -9
  24. package/dist/module/FirebaseApp.js.map +1 -1
  25. package/dist/module/common/index.js +0 -645
  26. package/dist/module/common/index.js.map +1 -1
  27. package/dist/module/common/unitTestUtils.js +18 -54
  28. package/dist/module/common/unitTestUtils.js.map +1 -1
  29. package/dist/module/index.js +0 -1
  30. package/dist/module/index.js.map +1 -1
  31. package/dist/module/internal/RNFBNativeEventEmitter.js +12 -6
  32. package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -1
  33. package/dist/module/internal/constants.js +2 -2
  34. package/dist/module/internal/constants.js.map +1 -1
  35. package/dist/module/internal/index.js +1 -1
  36. package/dist/module/internal/index.js.map +1 -1
  37. package/dist/module/internal/nativeModuleAndroidIos.js +50 -10
  38. package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -1
  39. package/dist/module/internal/nativeModuleWeb.js +12 -4
  40. package/dist/module/internal/nativeModuleWeb.js.map +1 -1
  41. package/dist/module/internal/registry/app.js +20 -12
  42. package/dist/module/internal/registry/app.js.map +1 -1
  43. package/dist/module/internal/registry/modular.js +73 -0
  44. package/dist/module/internal/registry/modular.js.map +1 -0
  45. package/dist/module/internal/registry/nativeModule.js +116 -95
  46. package/dist/module/internal/registry/nativeModule.js.map +1 -1
  47. package/dist/module/internal/web/RNFBAppModule.js +16 -3
  48. package/dist/module/internal/web/RNFBAppModule.js.map +1 -1
  49. package/dist/module/internal/web/utils.js +6 -1
  50. package/dist/module/internal/web/utils.js.map +1 -1
  51. package/dist/module/modular.js +44 -37
  52. package/dist/module/modular.js.map +1 -1
  53. package/dist/module/types/app.js +0 -3
  54. package/dist/module/types/app.js.map +1 -1
  55. package/dist/module/types/internal.js +0 -2
  56. package/dist/module/utils/UtilsStatics.js +2 -2
  57. package/dist/module/utils/UtilsStatics.js.map +1 -1
  58. package/dist/module/utils/index.js +21 -17
  59. package/dist/module/utils/index.js.map +1 -1
  60. package/dist/module/version.js +1 -1
  61. package/dist/typescript/lib/FirebaseApp.d.ts +1 -2
  62. package/dist/typescript/lib/FirebaseApp.d.ts.map +1 -1
  63. package/dist/typescript/lib/common/index.d.ts +0 -8
  64. package/dist/typescript/lib/common/index.d.ts.map +1 -1
  65. package/dist/typescript/lib/common/unitTestUtils.d.ts +1 -4
  66. package/dist/typescript/lib/common/unitTestUtils.d.ts.map +1 -1
  67. package/dist/typescript/lib/index.d.ts +0 -1
  68. package/dist/typescript/lib/index.d.ts.map +1 -1
  69. package/dist/typescript/lib/internal/NativeFirebaseError.d.ts +1 -1
  70. package/dist/typescript/lib/internal/NativeFirebaseError.d.ts.map +1 -1
  71. package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -1
  72. package/dist/typescript/lib/internal/constants.d.ts +2 -3
  73. package/dist/typescript/lib/internal/constants.d.ts.map +1 -1
  74. package/dist/typescript/lib/internal/index.d.ts +1 -1
  75. package/dist/typescript/lib/internal/index.d.ts.map +1 -1
  76. package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts +2 -6
  77. package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -1
  78. package/dist/typescript/lib/internal/nativeModuleWeb.d.ts.map +1 -1
  79. package/dist/typescript/lib/internal/registry/app.d.ts +2 -2
  80. package/dist/typescript/lib/internal/registry/app.d.ts.map +1 -1
  81. package/dist/typescript/lib/internal/registry/modular.d.ts +22 -0
  82. package/dist/typescript/lib/internal/registry/modular.d.ts.map +1 -0
  83. package/dist/typescript/lib/internal/registry/nativeModule.d.ts +3 -11
  84. package/dist/typescript/lib/internal/registry/nativeModule.d.ts.map +1 -1
  85. package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts.map +1 -1
  86. package/dist/typescript/lib/internal/web/utils.d.ts.map +1 -1
  87. package/dist/typescript/lib/modular.d.ts +21 -7
  88. package/dist/typescript/lib/modular.d.ts.map +1 -1
  89. package/dist/typescript/lib/types/app.d.ts +4 -4
  90. package/dist/typescript/lib/types/app.d.ts.map +1 -1
  91. package/dist/typescript/lib/types/internal.d.ts +1 -33
  92. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  93. package/dist/typescript/lib/utils/index.d.ts +7 -3
  94. package/dist/typescript/lib/utils/index.d.ts.map +1 -1
  95. package/dist/typescript/lib/version.d.ts +1 -1
  96. package/firebase-schema.json +5 -1
  97. package/firebase_spm.rb +1016 -0
  98. package/ios/RNFBApp/RCTConvert+FIRApp.h +4 -0
  99. package/ios/RNFBApp/RCTConvert+FIROptions.h +4 -0
  100. package/ios/RNFBApp/RNFBAppModule.h +1 -3
  101. package/ios/RNFBApp/{RNFBAppModule.m → RNFBAppModule.mm} +80 -77
  102. package/ios/RNFBApp/RNFBSharedUtils.h +4 -0
  103. package/ios/RNFBApp/RNFBUtilsModule.h +1 -3
  104. package/ios/RNFBApp/{RNFBUtilsModule.m → RNFBUtilsModule.mm} +68 -25
  105. package/ios/RNFBApp/RNFBVersion.m +1 -1
  106. package/ios/RNFBApp.xcodeproj/project.pbxproj +12 -12
  107. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  108. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  109. package/ios/generated/RCTModuleProviders.h +16 -0
  110. package/ios/generated/RCTModuleProviders.mm +52 -0
  111. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  112. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  113. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  114. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  115. package/ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.h +14 -0
  116. package/ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.mm +19 -0
  117. package/ios/generated/RNFBAppTurboModules/RNFBAppTurboModules-generated.mm +210 -0
  118. package/ios/generated/RNFBAppTurboModules/RNFBAppTurboModules.h +399 -0
  119. package/ios/generated/RNFBAppTurboModulesJSI-generated.cpp +187 -0
  120. package/ios/generated/RNFBAppTurboModulesJSI.h +606 -0
  121. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  122. package/ios/generated/ReactCodegen.podspec +111 -0
  123. package/lib/FirebaseApp.ts +1 -10
  124. package/lib/common/index.ts +0 -742
  125. package/lib/common/unitTestUtils.ts +17 -73
  126. package/lib/index.ts +0 -1
  127. package/lib/internal/NativeFirebaseError.ts +1 -1
  128. package/lib/internal/RNFBNativeEventEmitter.ts +12 -6
  129. package/lib/internal/constants.ts +3 -25
  130. package/lib/internal/global.d.ts +0 -4
  131. package/lib/internal/index.ts +1 -1
  132. package/lib/internal/nativeModuleAndroidIos.ts +69 -12
  133. package/lib/internal/nativeModuleWeb.ts +11 -5
  134. package/lib/internal/registry/app.ts +24 -22
  135. package/lib/internal/registry/modular.ts +97 -0
  136. package/lib/internal/registry/nativeModule.ts +136 -107
  137. package/lib/internal/web/RNFBAppModule.ts +16 -3
  138. package/lib/internal/web/utils.ts +6 -1
  139. package/lib/modular.ts +47 -72
  140. package/lib/types/app.ts +6 -11
  141. package/lib/types/internal.ts +1 -46
  142. package/lib/utils/UtilsStatics.ts +2 -2
  143. package/lib/utils/index.ts +24 -18
  144. package/lib/version.ts +1 -1
  145. package/package.json +45 -6
  146. package/plugin/build/app.plugin.d.ts +2 -0
  147. package/plugin/build/app.plugin.js +6 -0
  148. package/plugin/src/app.plugin.ts +3 -0
  149. package/plugin/tsconfig.tsbuildinfo +1 -1
  150. package/react-native.config.js +2 -0
  151. package/specs/NativeRNFBTurboApp.ts +57 -0
  152. package/specs/NativeRNFBTurboUtils.ts +34 -0
  153. package/typedoc.json +1 -2
  154. package/dist/module/internal/registry/namespace.js +0 -262
  155. package/dist/module/internal/registry/namespace.js.map +0 -1
  156. package/dist/module/namespaced.js +0 -25
  157. package/dist/module/namespaced.js.map +0 -1
  158. package/dist/typescript/lib/internal/registry/namespace.d.ts +0 -26
  159. package/dist/typescript/lib/internal/registry/namespace.d.ts.map +0 -1
  160. package/dist/typescript/lib/namespaced.d.ts +0 -5
  161. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  162. package/lib/internal/registry/namespace.ts +0 -338
  163. package/lib/namespaced.ts +0 -24
@@ -0,0 +1,606 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleH.js
8
+ */
9
+
10
+ #pragma once
11
+
12
+ #include <ReactCommon/TurboModule.h>
13
+ #include <react/bridging/Bridging.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+
19
+ #pragma mark - NativeRNFBTurboAppFirebaseAppConfig
20
+
21
+ template <typename P0, typename P1, typename P2>
22
+ struct NativeRNFBTurboAppFirebaseAppConfig {
23
+ P0 name;
24
+ P1 automaticResourceManagement;
25
+ P2 automaticDataCollectionEnabled;
26
+ bool operator==(const NativeRNFBTurboAppFirebaseAppConfig &other) const {
27
+ return name == other.name && automaticResourceManagement == other.automaticResourceManagement && automaticDataCollectionEnabled == other.automaticDataCollectionEnabled;
28
+ }
29
+ };
30
+
31
+ template <typename T>
32
+ struct NativeRNFBTurboAppFirebaseAppConfigBridging {
33
+ static T types;
34
+
35
+ static T fromJs(
36
+ jsi::Runtime &rt,
37
+ const jsi::Object &value,
38
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
39
+ T result{
40
+ bridging::fromJs<decltype(types.name)>(rt, value.getProperty(rt, "name"), jsInvoker),
41
+ bridging::fromJs<decltype(types.automaticResourceManagement)>(rt, value.getProperty(rt, "automaticResourceManagement"), jsInvoker),
42
+ bridging::fromJs<decltype(types.automaticDataCollectionEnabled)>(rt, value.getProperty(rt, "automaticDataCollectionEnabled"), jsInvoker)};
43
+ return result;
44
+ }
45
+
46
+ #ifdef DEBUG
47
+ static jsi::String nameToJs(jsi::Runtime &rt, decltype(types.name) value) {
48
+ return bridging::toJs(rt, value);
49
+ }
50
+
51
+ static bool automaticResourceManagementToJs(jsi::Runtime &rt, decltype(types.automaticResourceManagement) value) {
52
+ return bridging::toJs(rt, value);
53
+ }
54
+
55
+ static bool automaticDataCollectionEnabledToJs(jsi::Runtime &rt, decltype(types.automaticDataCollectionEnabled) value) {
56
+ return bridging::toJs(rt, value);
57
+ }
58
+ #endif
59
+
60
+ static jsi::Object toJs(
61
+ jsi::Runtime &rt,
62
+ const T &value,
63
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
64
+ auto result = facebook::jsi::Object(rt);
65
+ result.setProperty(rt, "name", bridging::toJs(rt, value.name, jsInvoker));
66
+ if (value.automaticResourceManagement) {
67
+ result.setProperty(rt, "automaticResourceManagement", bridging::toJs(rt, value.automaticResourceManagement.value(), jsInvoker));
68
+ }
69
+ if (value.automaticDataCollectionEnabled) {
70
+ result.setProperty(rt, "automaticDataCollectionEnabled", bridging::toJs(rt, value.automaticDataCollectionEnabled.value(), jsInvoker));
71
+ }
72
+ return result;
73
+ }
74
+ };
75
+
76
+
77
+
78
+ #pragma mark - NativeRNFBTurboAppFirebaseAppOptions
79
+
80
+ template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9>
81
+ struct NativeRNFBTurboAppFirebaseAppOptions {
82
+ P0 apiKey;
83
+ P1 appId;
84
+ P2 databaseURL;
85
+ P3 messagingSenderId;
86
+ P4 projectId;
87
+ P5 storageBucket;
88
+ P6 authDomain;
89
+ P7 iosBundleId;
90
+ P8 iosClientId;
91
+ P9 appGroupId;
92
+ bool operator==(const NativeRNFBTurboAppFirebaseAppOptions &other) const {
93
+ return apiKey == other.apiKey && appId == other.appId && databaseURL == other.databaseURL && messagingSenderId == other.messagingSenderId && projectId == other.projectId && storageBucket == other.storageBucket && authDomain == other.authDomain && iosBundleId == other.iosBundleId && iosClientId == other.iosClientId && appGroupId == other.appGroupId;
94
+ }
95
+ };
96
+
97
+ template <typename T>
98
+ struct NativeRNFBTurboAppFirebaseAppOptionsBridging {
99
+ static T types;
100
+
101
+ static T fromJs(
102
+ jsi::Runtime &rt,
103
+ const jsi::Object &value,
104
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
105
+ T result{
106
+ bridging::fromJs<decltype(types.apiKey)>(rt, value.getProperty(rt, "apiKey"), jsInvoker),
107
+ bridging::fromJs<decltype(types.appId)>(rt, value.getProperty(rt, "appId"), jsInvoker),
108
+ bridging::fromJs<decltype(types.databaseURL)>(rt, value.getProperty(rt, "databaseURL"), jsInvoker),
109
+ bridging::fromJs<decltype(types.messagingSenderId)>(rt, value.getProperty(rt, "messagingSenderId"), jsInvoker),
110
+ bridging::fromJs<decltype(types.projectId)>(rt, value.getProperty(rt, "projectId"), jsInvoker),
111
+ bridging::fromJs<decltype(types.storageBucket)>(rt, value.getProperty(rt, "storageBucket"), jsInvoker),
112
+ bridging::fromJs<decltype(types.authDomain)>(rt, value.getProperty(rt, "authDomain"), jsInvoker),
113
+ bridging::fromJs<decltype(types.iosBundleId)>(rt, value.getProperty(rt, "iosBundleId"), jsInvoker),
114
+ bridging::fromJs<decltype(types.iosClientId)>(rt, value.getProperty(rt, "iosClientId"), jsInvoker),
115
+ bridging::fromJs<decltype(types.appGroupId)>(rt, value.getProperty(rt, "appGroupId"), jsInvoker)};
116
+ return result;
117
+ }
118
+
119
+ #ifdef DEBUG
120
+ static jsi::String apiKeyToJs(jsi::Runtime &rt, decltype(types.apiKey) value) {
121
+ return bridging::toJs(rt, value);
122
+ }
123
+
124
+ static jsi::String appIdToJs(jsi::Runtime &rt, decltype(types.appId) value) {
125
+ return bridging::toJs(rt, value);
126
+ }
127
+
128
+ static std::optional<jsi::String> databaseURLToJs(jsi::Runtime &rt, decltype(types.databaseURL) value) {
129
+ return bridging::toJs(rt, value);
130
+ }
131
+
132
+ static jsi::String messagingSenderIdToJs(jsi::Runtime &rt, decltype(types.messagingSenderId) value) {
133
+ return bridging::toJs(rt, value);
134
+ }
135
+
136
+ static jsi::String projectIdToJs(jsi::Runtime &rt, decltype(types.projectId) value) {
137
+ return bridging::toJs(rt, value);
138
+ }
139
+
140
+ static std::optional<jsi::String> storageBucketToJs(jsi::Runtime &rt, decltype(types.storageBucket) value) {
141
+ return bridging::toJs(rt, value);
142
+ }
143
+
144
+ static std::optional<jsi::String> authDomainToJs(jsi::Runtime &rt, decltype(types.authDomain) value) {
145
+ return bridging::toJs(rt, value);
146
+ }
147
+
148
+ static std::optional<jsi::String> iosBundleIdToJs(jsi::Runtime &rt, decltype(types.iosBundleId) value) {
149
+ return bridging::toJs(rt, value);
150
+ }
151
+
152
+ static std::optional<jsi::String> iosClientIdToJs(jsi::Runtime &rt, decltype(types.iosClientId) value) {
153
+ return bridging::toJs(rt, value);
154
+ }
155
+
156
+ static std::optional<jsi::String> appGroupIdToJs(jsi::Runtime &rt, decltype(types.appGroupId) value) {
157
+ return bridging::toJs(rt, value);
158
+ }
159
+ #endif
160
+
161
+ static jsi::Object toJs(
162
+ jsi::Runtime &rt,
163
+ const T &value,
164
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
165
+ auto result = facebook::jsi::Object(rt);
166
+ result.setProperty(rt, "apiKey", bridging::toJs(rt, value.apiKey, jsInvoker));
167
+ result.setProperty(rt, "appId", bridging::toJs(rt, value.appId, jsInvoker));
168
+ if (value.databaseURL) {
169
+ result.setProperty(rt, "databaseURL", bridging::toJs(rt, value.databaseURL.value(), jsInvoker));
170
+ }
171
+ result.setProperty(rt, "messagingSenderId", bridging::toJs(rt, value.messagingSenderId, jsInvoker));
172
+ result.setProperty(rt, "projectId", bridging::toJs(rt, value.projectId, jsInvoker));
173
+ if (value.storageBucket) {
174
+ result.setProperty(rt, "storageBucket", bridging::toJs(rt, value.storageBucket.value(), jsInvoker));
175
+ }
176
+ if (value.authDomain) {
177
+ result.setProperty(rt, "authDomain", bridging::toJs(rt, value.authDomain.value(), jsInvoker));
178
+ }
179
+ if (value.iosBundleId) {
180
+ result.setProperty(rt, "iosBundleId", bridging::toJs(rt, value.iosBundleId.value(), jsInvoker));
181
+ }
182
+ if (value.iosClientId) {
183
+ result.setProperty(rt, "iosClientId", bridging::toJs(rt, value.iosClientId.value(), jsInvoker));
184
+ }
185
+ if (value.appGroupId) {
186
+ result.setProperty(rt, "appGroupId", bridging::toJs(rt, value.appGroupId.value(), jsInvoker));
187
+ }
188
+ return result;
189
+ }
190
+ };
191
+
192
+
193
+
194
+ #pragma mark - NativeRNFBTurboAppNativeFirebaseApp
195
+
196
+ template <typename P0, typename P1>
197
+ struct NativeRNFBTurboAppNativeFirebaseApp {
198
+ P0 appConfig;
199
+ P1 options;
200
+ bool operator==(const NativeRNFBTurboAppNativeFirebaseApp &other) const {
201
+ return appConfig == other.appConfig && options == other.options;
202
+ }
203
+ };
204
+
205
+ template <typename T>
206
+ struct NativeRNFBTurboAppNativeFirebaseAppBridging {
207
+ static T types;
208
+
209
+ static T fromJs(
210
+ jsi::Runtime &rt,
211
+ const jsi::Object &value,
212
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
213
+ T result{
214
+ bridging::fromJs<decltype(types.appConfig)>(rt, value.getProperty(rt, "appConfig"), jsInvoker),
215
+ bridging::fromJs<decltype(types.options)>(rt, value.getProperty(rt, "options"), jsInvoker)};
216
+ return result;
217
+ }
218
+
219
+ #ifdef DEBUG
220
+ static jsi::Object appConfigToJs(jsi::Runtime &rt, decltype(types.appConfig) value) {
221
+ return bridging::toJs(rt, value);
222
+ }
223
+
224
+ static jsi::Object optionsToJs(jsi::Runtime &rt, decltype(types.options) value) {
225
+ return bridging::toJs(rt, value);
226
+ }
227
+ #endif
228
+
229
+ static jsi::Object toJs(
230
+ jsi::Runtime &rt,
231
+ const T &value,
232
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
233
+ auto result = facebook::jsi::Object(rt);
234
+ result.setProperty(rt, "appConfig", bridging::toJs(rt, value.appConfig, jsInvoker));
235
+ result.setProperty(rt, "options", bridging::toJs(rt, value.options, jsInvoker));
236
+ return result;
237
+ }
238
+ };
239
+
240
+ class JSI_EXPORT NativeRNFBTurboAppCxxSpecJSI : public TurboModule {
241
+ protected:
242
+ NativeRNFBTurboAppCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
243
+
244
+ public:
245
+ virtual jsi::Object getConstants(jsi::Runtime &rt) = 0;
246
+ virtual jsi::Value initializeApp(jsi::Runtime &rt, jsi::Object options, jsi::Object appConfig) = 0;
247
+ virtual void setAutomaticDataCollectionEnabled(jsi::Runtime &rt, jsi::String appName, bool enabled) = 0;
248
+ virtual jsi::Value deleteApp(jsi::Runtime &rt, jsi::String appName) = 0;
249
+ virtual void eventsNotifyReady(jsi::Runtime &rt, bool ready) = 0;
250
+ virtual jsi::Value eventsGetListeners(jsi::Runtime &rt) = 0;
251
+ virtual jsi::Value eventsPing(jsi::Runtime &rt, jsi::String eventName, jsi::Object eventBody) = 0;
252
+ virtual void eventsAddListener(jsi::Runtime &rt, jsi::String eventName) = 0;
253
+ virtual void eventsRemoveListener(jsi::Runtime &rt, jsi::String eventName, bool all) = 0;
254
+ virtual void addListener(jsi::Runtime &rt, jsi::String eventName) = 0;
255
+ virtual void removeListeners(jsi::Runtime &rt, double count) = 0;
256
+ virtual jsi::Value metaGetAll(jsi::Runtime &rt) = 0;
257
+ virtual jsi::Value jsonGetAll(jsi::Runtime &rt) = 0;
258
+ virtual jsi::Value preferencesSetBool(jsi::Runtime &rt, jsi::String key, bool value) = 0;
259
+ virtual jsi::Value preferencesSetString(jsi::Runtime &rt, jsi::String key, jsi::String value) = 0;
260
+ virtual jsi::Value preferencesGetAll(jsi::Runtime &rt) = 0;
261
+ virtual jsi::Value preferencesClearAll(jsi::Runtime &rt) = 0;
262
+ virtual void setLogLevel(jsi::Runtime &rt, jsi::String logLevel) = 0;
263
+
264
+ };
265
+
266
+ template <typename T>
267
+ class JSI_EXPORT NativeRNFBTurboAppCxxSpec : public TurboModule {
268
+ public:
269
+ jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
270
+ return delegate_.create(rt, propName);
271
+ }
272
+
273
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
274
+ return delegate_.getPropertyNames(runtime);
275
+ }
276
+
277
+ static constexpr std::string_view kModuleName = "NativeRNFBTurboApp";
278
+
279
+ protected:
280
+ NativeRNFBTurboAppCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
281
+ : TurboModule(std::string{NativeRNFBTurboAppCxxSpec::kModuleName}, jsInvoker),
282
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
283
+
284
+
285
+ private:
286
+ class Delegate : public NativeRNFBTurboAppCxxSpecJSI {
287
+ public:
288
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
289
+ NativeRNFBTurboAppCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
290
+
291
+ }
292
+
293
+ jsi::Object getConstants(jsi::Runtime &rt) override {
294
+ static_assert(
295
+ bridging::getParameterCount(&T::getConstants) == 1,
296
+ "Expected getConstants(...) to have 1 parameters");
297
+
298
+ return bridging::callFromJs<jsi::Object>(
299
+ rt, &T::getConstants, jsInvoker_, instance_);
300
+ }
301
+ jsi::Value initializeApp(jsi::Runtime &rt, jsi::Object options, jsi::Object appConfig) override {
302
+ static_assert(
303
+ bridging::getParameterCount(&T::initializeApp) == 3,
304
+ "Expected initializeApp(...) to have 3 parameters");
305
+
306
+ return bridging::callFromJs<jsi::Value>(
307
+ rt, &T::initializeApp, jsInvoker_, instance_, std::move(options), std::move(appConfig));
308
+ }
309
+ void setAutomaticDataCollectionEnabled(jsi::Runtime &rt, jsi::String appName, bool enabled) override {
310
+ static_assert(
311
+ bridging::getParameterCount(&T::setAutomaticDataCollectionEnabled) == 3,
312
+ "Expected setAutomaticDataCollectionEnabled(...) to have 3 parameters");
313
+
314
+ return bridging::callFromJs<void>(
315
+ rt, &T::setAutomaticDataCollectionEnabled, jsInvoker_, instance_, std::move(appName), std::move(enabled));
316
+ }
317
+ jsi::Value deleteApp(jsi::Runtime &rt, jsi::String appName) override {
318
+ static_assert(
319
+ bridging::getParameterCount(&T::deleteApp) == 2,
320
+ "Expected deleteApp(...) to have 2 parameters");
321
+
322
+ return bridging::callFromJs<jsi::Value>(
323
+ rt, &T::deleteApp, jsInvoker_, instance_, std::move(appName));
324
+ }
325
+ void eventsNotifyReady(jsi::Runtime &rt, bool ready) override {
326
+ static_assert(
327
+ bridging::getParameterCount(&T::eventsNotifyReady) == 2,
328
+ "Expected eventsNotifyReady(...) to have 2 parameters");
329
+
330
+ return bridging::callFromJs<void>(
331
+ rt, &T::eventsNotifyReady, jsInvoker_, instance_, std::move(ready));
332
+ }
333
+ jsi::Value eventsGetListeners(jsi::Runtime &rt) override {
334
+ static_assert(
335
+ bridging::getParameterCount(&T::eventsGetListeners) == 1,
336
+ "Expected eventsGetListeners(...) to have 1 parameters");
337
+
338
+ return bridging::callFromJs<jsi::Value>(
339
+ rt, &T::eventsGetListeners, jsInvoker_, instance_);
340
+ }
341
+ jsi::Value eventsPing(jsi::Runtime &rt, jsi::String eventName, jsi::Object eventBody) override {
342
+ static_assert(
343
+ bridging::getParameterCount(&T::eventsPing) == 3,
344
+ "Expected eventsPing(...) to have 3 parameters");
345
+
346
+ return bridging::callFromJs<jsi::Value>(
347
+ rt, &T::eventsPing, jsInvoker_, instance_, std::move(eventName), std::move(eventBody));
348
+ }
349
+ void eventsAddListener(jsi::Runtime &rt, jsi::String eventName) override {
350
+ static_assert(
351
+ bridging::getParameterCount(&T::eventsAddListener) == 2,
352
+ "Expected eventsAddListener(...) to have 2 parameters");
353
+
354
+ return bridging::callFromJs<void>(
355
+ rt, &T::eventsAddListener, jsInvoker_, instance_, std::move(eventName));
356
+ }
357
+ void eventsRemoveListener(jsi::Runtime &rt, jsi::String eventName, bool all) override {
358
+ static_assert(
359
+ bridging::getParameterCount(&T::eventsRemoveListener) == 3,
360
+ "Expected eventsRemoveListener(...) to have 3 parameters");
361
+
362
+ return bridging::callFromJs<void>(
363
+ rt, &T::eventsRemoveListener, jsInvoker_, instance_, std::move(eventName), std::move(all));
364
+ }
365
+ void addListener(jsi::Runtime &rt, jsi::String eventName) override {
366
+ static_assert(
367
+ bridging::getParameterCount(&T::addListener) == 2,
368
+ "Expected addListener(...) to have 2 parameters");
369
+
370
+ return bridging::callFromJs<void>(
371
+ rt, &T::addListener, jsInvoker_, instance_, std::move(eventName));
372
+ }
373
+ void removeListeners(jsi::Runtime &rt, double count) override {
374
+ static_assert(
375
+ bridging::getParameterCount(&T::removeListeners) == 2,
376
+ "Expected removeListeners(...) to have 2 parameters");
377
+
378
+ return bridging::callFromJs<void>(
379
+ rt, &T::removeListeners, jsInvoker_, instance_, std::move(count));
380
+ }
381
+ jsi::Value metaGetAll(jsi::Runtime &rt) override {
382
+ static_assert(
383
+ bridging::getParameterCount(&T::metaGetAll) == 1,
384
+ "Expected metaGetAll(...) to have 1 parameters");
385
+
386
+ return bridging::callFromJs<jsi::Value>(
387
+ rt, &T::metaGetAll, jsInvoker_, instance_);
388
+ }
389
+ jsi::Value jsonGetAll(jsi::Runtime &rt) override {
390
+ static_assert(
391
+ bridging::getParameterCount(&T::jsonGetAll) == 1,
392
+ "Expected jsonGetAll(...) to have 1 parameters");
393
+
394
+ return bridging::callFromJs<jsi::Value>(
395
+ rt, &T::jsonGetAll, jsInvoker_, instance_);
396
+ }
397
+ jsi::Value preferencesSetBool(jsi::Runtime &rt, jsi::String key, bool value) override {
398
+ static_assert(
399
+ bridging::getParameterCount(&T::preferencesSetBool) == 3,
400
+ "Expected preferencesSetBool(...) to have 3 parameters");
401
+
402
+ return bridging::callFromJs<jsi::Value>(
403
+ rt, &T::preferencesSetBool, jsInvoker_, instance_, std::move(key), std::move(value));
404
+ }
405
+ jsi::Value preferencesSetString(jsi::Runtime &rt, jsi::String key, jsi::String value) override {
406
+ static_assert(
407
+ bridging::getParameterCount(&T::preferencesSetString) == 3,
408
+ "Expected preferencesSetString(...) to have 3 parameters");
409
+
410
+ return bridging::callFromJs<jsi::Value>(
411
+ rt, &T::preferencesSetString, jsInvoker_, instance_, std::move(key), std::move(value));
412
+ }
413
+ jsi::Value preferencesGetAll(jsi::Runtime &rt) override {
414
+ static_assert(
415
+ bridging::getParameterCount(&T::preferencesGetAll) == 1,
416
+ "Expected preferencesGetAll(...) to have 1 parameters");
417
+
418
+ return bridging::callFromJs<jsi::Value>(
419
+ rt, &T::preferencesGetAll, jsInvoker_, instance_);
420
+ }
421
+ jsi::Value preferencesClearAll(jsi::Runtime &rt) override {
422
+ static_assert(
423
+ bridging::getParameterCount(&T::preferencesClearAll) == 1,
424
+ "Expected preferencesClearAll(...) to have 1 parameters");
425
+
426
+ return bridging::callFromJs<jsi::Value>(
427
+ rt, &T::preferencesClearAll, jsInvoker_, instance_);
428
+ }
429
+ void setLogLevel(jsi::Runtime &rt, jsi::String logLevel) override {
430
+ static_assert(
431
+ bridging::getParameterCount(&T::setLogLevel) == 2,
432
+ "Expected setLogLevel(...) to have 2 parameters");
433
+
434
+ return bridging::callFromJs<void>(
435
+ rt, &T::setLogLevel, jsInvoker_, instance_, std::move(logLevel));
436
+ }
437
+
438
+ private:
439
+ friend class NativeRNFBTurboAppCxxSpec;
440
+ T *instance_;
441
+ };
442
+
443
+ Delegate delegate_;
444
+ };
445
+
446
+
447
+
448
+ #pragma mark - NativeRNFBTurboUtilsPlayServicesAvailability
449
+
450
+ template <typename P0, typename P1, typename P2, typename P3, typename P4>
451
+ struct NativeRNFBTurboUtilsPlayServicesAvailability {
452
+ P0 isAvailable;
453
+ P1 status;
454
+ P2 hasResolution;
455
+ P3 isUserResolvableError;
456
+ P4 error;
457
+ bool operator==(const NativeRNFBTurboUtilsPlayServicesAvailability &other) const {
458
+ return isAvailable == other.isAvailable && status == other.status && hasResolution == other.hasResolution && isUserResolvableError == other.isUserResolvableError && error == other.error;
459
+ }
460
+ };
461
+
462
+ template <typename T>
463
+ struct NativeRNFBTurboUtilsPlayServicesAvailabilityBridging {
464
+ static T types;
465
+
466
+ static T fromJs(
467
+ jsi::Runtime &rt,
468
+ const jsi::Object &value,
469
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
470
+ T result{
471
+ bridging::fromJs<decltype(types.isAvailable)>(rt, value.getProperty(rt, "isAvailable"), jsInvoker),
472
+ bridging::fromJs<decltype(types.status)>(rt, value.getProperty(rt, "status"), jsInvoker),
473
+ bridging::fromJs<decltype(types.hasResolution)>(rt, value.getProperty(rt, "hasResolution"), jsInvoker),
474
+ bridging::fromJs<decltype(types.isUserResolvableError)>(rt, value.getProperty(rt, "isUserResolvableError"), jsInvoker),
475
+ bridging::fromJs<decltype(types.error)>(rt, value.getProperty(rt, "error"), jsInvoker)};
476
+ return result;
477
+ }
478
+
479
+ #ifdef DEBUG
480
+ static bool isAvailableToJs(jsi::Runtime &rt, decltype(types.isAvailable) value) {
481
+ return bridging::toJs(rt, value);
482
+ }
483
+
484
+ static double statusToJs(jsi::Runtime &rt, decltype(types.status) value) {
485
+ return bridging::toJs(rt, value);
486
+ }
487
+
488
+ static bool hasResolutionToJs(jsi::Runtime &rt, decltype(types.hasResolution) value) {
489
+ return bridging::toJs(rt, value);
490
+ }
491
+
492
+ static bool isUserResolvableErrorToJs(jsi::Runtime &rt, decltype(types.isUserResolvableError) value) {
493
+ return bridging::toJs(rt, value);
494
+ }
495
+
496
+ static jsi::String errorToJs(jsi::Runtime &rt, decltype(types.error) value) {
497
+ return bridging::toJs(rt, value);
498
+ }
499
+ #endif
500
+
501
+ static jsi::Object toJs(
502
+ jsi::Runtime &rt,
503
+ const T &value,
504
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
505
+ auto result = facebook::jsi::Object(rt);
506
+ result.setProperty(rt, "isAvailable", bridging::toJs(rt, value.isAvailable, jsInvoker));
507
+ result.setProperty(rt, "status", bridging::toJs(rt, value.status, jsInvoker));
508
+ result.setProperty(rt, "hasResolution", bridging::toJs(rt, value.hasResolution, jsInvoker));
509
+ result.setProperty(rt, "isUserResolvableError", bridging::toJs(rt, value.isUserResolvableError, jsInvoker));
510
+ if (value.error) {
511
+ result.setProperty(rt, "error", bridging::toJs(rt, value.error.value(), jsInvoker));
512
+ }
513
+ return result;
514
+ }
515
+ };
516
+
517
+ class JSI_EXPORT NativeRNFBTurboUtilsCxxSpecJSI : public TurboModule {
518
+ protected:
519
+ NativeRNFBTurboUtilsCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
520
+
521
+ public:
522
+ virtual jsi::Object getConstants(jsi::Runtime &rt) = 0;
523
+ virtual jsi::Value androidGetPlayServicesStatus(jsi::Runtime &rt) = 0;
524
+ virtual jsi::Value androidPromptForPlayServices(jsi::Runtime &rt) = 0;
525
+ virtual jsi::Value androidResolutionForPlayServices(jsi::Runtime &rt) = 0;
526
+ virtual jsi::Value androidMakePlayServicesAvailable(jsi::Runtime &rt) = 0;
527
+
528
+ };
529
+
530
+ template <typename T>
531
+ class JSI_EXPORT NativeRNFBTurboUtilsCxxSpec : public TurboModule {
532
+ public:
533
+ jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
534
+ return delegate_.create(rt, propName);
535
+ }
536
+
537
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
538
+ return delegate_.getPropertyNames(runtime);
539
+ }
540
+
541
+ static constexpr std::string_view kModuleName = "NativeRNFBTurboUtils";
542
+
543
+ protected:
544
+ NativeRNFBTurboUtilsCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
545
+ : TurboModule(std::string{NativeRNFBTurboUtilsCxxSpec::kModuleName}, jsInvoker),
546
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
547
+
548
+
549
+ private:
550
+ class Delegate : public NativeRNFBTurboUtilsCxxSpecJSI {
551
+ public:
552
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
553
+ NativeRNFBTurboUtilsCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
554
+
555
+ }
556
+
557
+ jsi::Object getConstants(jsi::Runtime &rt) override {
558
+ static_assert(
559
+ bridging::getParameterCount(&T::getConstants) == 1,
560
+ "Expected getConstants(...) to have 1 parameters");
561
+
562
+ return bridging::callFromJs<jsi::Object>(
563
+ rt, &T::getConstants, jsInvoker_, instance_);
564
+ }
565
+ jsi::Value androidGetPlayServicesStatus(jsi::Runtime &rt) override {
566
+ static_assert(
567
+ bridging::getParameterCount(&T::androidGetPlayServicesStatus) == 1,
568
+ "Expected androidGetPlayServicesStatus(...) to have 1 parameters");
569
+
570
+ return bridging::callFromJs<jsi::Value>(
571
+ rt, &T::androidGetPlayServicesStatus, jsInvoker_, instance_);
572
+ }
573
+ jsi::Value androidPromptForPlayServices(jsi::Runtime &rt) override {
574
+ static_assert(
575
+ bridging::getParameterCount(&T::androidPromptForPlayServices) == 1,
576
+ "Expected androidPromptForPlayServices(...) to have 1 parameters");
577
+
578
+ return bridging::callFromJs<jsi::Value>(
579
+ rt, &T::androidPromptForPlayServices, jsInvoker_, instance_);
580
+ }
581
+ jsi::Value androidResolutionForPlayServices(jsi::Runtime &rt) override {
582
+ static_assert(
583
+ bridging::getParameterCount(&T::androidResolutionForPlayServices) == 1,
584
+ "Expected androidResolutionForPlayServices(...) to have 1 parameters");
585
+
586
+ return bridging::callFromJs<jsi::Value>(
587
+ rt, &T::androidResolutionForPlayServices, jsInvoker_, instance_);
588
+ }
589
+ jsi::Value androidMakePlayServicesAvailable(jsi::Runtime &rt) override {
590
+ static_assert(
591
+ bridging::getParameterCount(&T::androidMakePlayServicesAvailable) == 1,
592
+ "Expected androidMakePlayServicesAvailable(...) to have 1 parameters");
593
+
594
+ return bridging::callFromJs<jsi::Value>(
595
+ rt, &T::androidMakePlayServicesAvailable, jsInvoker_, instance_);
596
+ }
597
+
598
+ private:
599
+ friend class NativeRNFBTurboUtilsCxxSpec;
600
+ T *instance_;
601
+ };
602
+
603
+ Delegate delegate_;
604
+ };
605
+
606
+ } // namespace facebook::react
@@ -0,0 +1,34 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ version = "0.78.3"
7
+ source = { :git => 'https://github.com/facebook/react-native.git' }
8
+ if version == '1000.0.0'
9
+ # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
10
+ source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
11
+ else
12
+ source[:tag] = "v#{version}"
13
+ end
14
+
15
+ Pod::Spec.new do |s|
16
+ s.name = "ReactAppDependencyProvider"
17
+ s.version = version
18
+ s.summary = "The third party dependency provider for the app"
19
+ s.homepage = "https://reactnative.dev/"
20
+ s.documentation_url = "https://reactnative.dev/"
21
+ s.license = "MIT"
22
+ s.author = "Meta Platforms, Inc. and its affiliates"
23
+ s.platforms = min_supported_versions
24
+ s.source = source
25
+ s.source_files = "**/RCTAppDependencyProvider.{h,mm}"
26
+
27
+ # This guard prevent to install the dependencies when we run `pod install` in the old architecture.
28
+ s.pod_target_xcconfig = {
29
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
30
+ "DEFINES_MODULE" => "YES"
31
+ }
32
+
33
+ s.dependency "ReactCodegen"
34
+ end