airbridge-react-native-sdk-restricted 4.2.0 → 4.3.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 (59) hide show
  1. package/.github/workflows/documentation.yml +7 -0
  2. package/airbridge_sdk.json +2 -2
  3. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeReactNative.kt +10 -18
  4. package/android/src/main/java/co/ab180/airbridge/reactnative/common/AirbridgeJSON.kt +4 -3
  5. package/android/src/main/java/co/ab180/airbridge/reactnative/module/PlacementInteractor.kt +16 -0
  6. package/build/document/assets/icons.js +1 -1
  7. package/build/document/assets/icons.svg +1 -1
  8. package/build/document/assets/main.js +1 -1
  9. package/build/document/assets/navigation.js +1 -1
  10. package/build/document/assets/search.js +1 -1
  11. package/build/document/assets/style.css +66 -21
  12. package/build/document/classes/Airbridge.html +9 -2
  13. package/build/document/classes/AirbridgeTrackingLinkOption.html +25 -0
  14. package/build/document/index.html +3 -3
  15. package/build/document/modules.html +3 -1
  16. package/build/document/types/AirbridgeTrackingLink.html +3 -0
  17. package/build/source/Airbridge.d.ts +12 -0
  18. package/build/source/Airbridge.js +12 -0
  19. package/build/source/Airbridge.js.map +1 -1
  20. package/build/source/constant/AirbridgeTrackingLinkOption.d.ts +27 -0
  21. package/build/source/constant/AirbridgeTrackingLinkOption.js +102 -0
  22. package/build/source/constant/AirbridgeTrackingLinkOption.js.map +1 -0
  23. package/build/source/module/Placement.d.ts +3 -0
  24. package/build/source/module/Placement.js +28 -0
  25. package/build/source/module/Placement.js.map +1 -1
  26. package/build/source/module.d.ts +2 -0
  27. package/build/source/module.js +2 -0
  28. package/build/source/module.js.map +1 -1
  29. package/build/source/type/AirbridgeTrackingLink.d.ts +8 -0
  30. package/build/source/type/AirbridgeTrackingLink.js +2 -0
  31. package/build/source/type/AirbridgeTrackingLink.js.map +1 -0
  32. package/changelog.md +14 -0
  33. package/ios/AirbridgeReactNative/AirbridgeReactNative.m +0 -6
  34. package/ios/AirbridgeReactNative/AirbridgeReactNative.swift +12 -32
  35. package/ios/AirbridgeReactNative/Common/AirbridgeJSON.swift +26 -0
  36. package/ios/AirbridgeReactNative/Module/AirbridgeModuleExtern.m +5 -0
  37. package/ios/AirbridgeReactNative/Module/PlacementInteractor.swift +22 -0
  38. package/package.json +1 -1
  39. package/qa/airbridge.json +2 -1
  40. package/qa/airbridge_qa.json +1 -1
  41. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt +19 -23
  42. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/IdentifiersInteractor.kt +27 -0
  43. package/qa/ios/AirbridgeQA/AirbridgeJSONSwizzler.swift +68 -0
  44. package/qa/ios/AirbridgeQA/AppDelegate.mm +3 -31
  45. package/qa/ios/AirbridgeQA/IdentifiersInteractor.m +2 -0
  46. package/qa/ios/AirbridgeQA/IdentifiersInteractor.swift +24 -0
  47. package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +5 -1
  48. package/qa/ios/Podfile.lock +61 -61
  49. package/qa/package-lock.json +2254 -9009
  50. package/qa/source/navigations/Stack.js +7 -0
  51. package/qa/source/pages/Home.js +5 -0
  52. package/qa/source/pages/Identifiers.js +15 -1
  53. package/qa/source/pages/TrackingLink.js +162 -0
  54. package/readme.md +1 -1
  55. package/source/Airbridge.ts +21 -1
  56. package/source/constant/AirbridgeTrackingLinkOption.ts +122 -0
  57. package/source/module/Placement.ts +54 -2
  58. package/source/module.ts +2 -0
  59. package/source/type/AirbridgeTrackingLink.ts +10 -0
@@ -4,43 +4,39 @@ import android.app.Application
4
4
  import android.content.Context
5
5
  import android.util.Log
6
6
  import co.ab180.airbridge.reactnative.AirbridgeReactNative
7
+ import co.ab180.airbridge.reactnative.common.AirbridgeJSON
7
8
  import co.ab180.configuration.Loader
8
- import java.lang.reflect.Method
9
+ import org.json.JSONObject
10
+ import java.lang.reflect.Field
9
11
 
10
12
  class ConfigurationLoader {
11
13
 
12
14
  companion object {
13
15
  val TAG = "Airbridge"
16
+ val APP_NAME = "qaabr"
17
+ val APP_TOKEN = "fe67302f822445d98591566d5fae1293"
14
18
  }
15
19
 
16
20
  fun init(application: Application) {
17
- findInitMethod()?.run {
18
- invoke(
19
- null,
20
- application,
21
- "qaabr",
22
- "fe67302f822445d98591566d5fae1293",
23
- loadOption(application)
24
- )
25
- }
21
+ injectLoaderFunc()
22
+ AirbridgeReactNative.initializeSDK(application, APP_NAME, APP_TOKEN)
26
23
  }
27
24
 
28
- private fun findInitMethod(): Method? =
25
+ private fun injectLoaderFunc() {
29
26
  try {
30
- AirbridgeReactNative::class.java.getDeclaredMethod(
31
- "initializeSDK",
32
- Application::class.java,
33
- String::class.java,
34
- String::class.java,
35
- Map::class.java
36
- )
27
+ val airbridgeJsonClass = AirbridgeJSON::class.java
28
+ val loaderFuncField: Field = airbridgeJsonClass.getDeclaredField("loaderFunc")
29
+ loaderFuncField.isAccessible = true
30
+
31
+ val loaderFunc: (Context) -> JSONObject? = { context ->
32
+ JSONObject(loadOption(context))
33
+ }
34
+ Log.d(TAG, "inject loaderFunc field")
35
+ loaderFuncField.set(AirbridgeJSON, loaderFunc)
37
36
  } catch (throwable: Throwable) {
38
- Log.d(TAG, "find initializeSDK method error : $throwable")
39
- null
40
- }?.also {
41
- it.isAccessible = true
42
- Log.d(TAG, "find initializeSDK method : $it")
37
+ Log.d(TAG, "not found loaderFunc field error : $throwable")
43
38
  }
39
+ }
44
40
 
45
41
  private fun loadOption(context: Context): Map<String, Any> =
46
42
  Loader.loadOption(context)
@@ -1,6 +1,11 @@
1
1
  package co.ab180.airbridge.qa.application.module
2
2
 
3
+ import android.content.Context
4
+ import android.util.Log
3
5
  import co.ab180.airbridge.Airbridge
6
+ import co.ab180.airbridge.qa.application.ConfigurationLoader.Companion.TAG
7
+ import co.ab180.airbridge.reactnative.AirbridgeReactNative
8
+ import co.ab180.airbridge.reactnative.common.AirbridgeJSON
4
9
  import com.facebook.react.bridge.Promise
5
10
  import com.facebook.react.bridge.ReactApplicationContext
6
11
  import com.facebook.react.bridge.ReactContextBaseJavaModule
@@ -13,6 +18,7 @@ import kotlinx.coroutines.flow.combine
13
18
  import kotlinx.coroutines.flow.flow
14
19
  import kotlinx.coroutines.launch
15
20
  import org.json.JSONObject
21
+ import java.lang.reflect.Field
16
22
 
17
23
  class IdentifiersInteractor(
18
24
  reactContext: ReactApplicationContext?
@@ -20,6 +26,27 @@ class IdentifiersInteractor(
20
26
 
21
27
  override fun getName(): String = "IdentifiersInteractor"
22
28
 
29
+ @ReactMethod
30
+ fun airbridgeJSON(promise: Promise) {
31
+ val airbridgeJSON = try {
32
+ val clazz = AirbridgeReactNative::class.java
33
+ val field: Field = clazz.getDeclaredField("airbridgeJSON")
34
+ field.isAccessible = true
35
+ field.get(null) as? Map<String, Any>
36
+ } catch (e: Exception) {
37
+ Log.d(TAG, "airbridgeJSON not found")
38
+ null
39
+ }
40
+
41
+ promise.resolve(
42
+ if (airbridgeJSON == null) {
43
+ JSONObject()
44
+ } else {
45
+ JSONObject(airbridgeJSON)
46
+ }.toString()
47
+ )
48
+ }
49
+
23
50
  @ReactMethod
24
51
  fun identifiers(promise: Promise) {
25
52
  request {
@@ -0,0 +1,68 @@
1
+ //
2
+ // AirbridgeJSONSwizzler.swift
3
+ // AirbridgeQA
4
+ //
5
+ // Created by ab180 on 3/4/25.
6
+ //
7
+
8
+ import Foundation
9
+ import ObjectiveC.runtime
10
+ import AirbridgeQALibrary
11
+
12
+ @objc(AirbridgeJSONSwizzler_Swift)
13
+ public class AirbridgeJSONSwizzler: NSObject {
14
+
15
+ @objc
16
+ public static func swizzleLoadAirbridgeJSON() {
17
+ guard let airbridgeJSONSwizzlerClassType = NSClassFromString("AirbridgeJSONSwizzler_Swift") else {
18
+ NSLog("Swizzling AirbridgeJSON failed: Class not found.")
19
+ return
20
+ }
21
+
22
+ guard let airbridgeJSONClassType = NSClassFromString("AirbridgeJSON_Swift") else {
23
+ NSLog("Swizzling AirbridgeJSON failed: Class not found.")
24
+ return
25
+ }
26
+
27
+ let originalSelector = NSSelectorFromString("loadAirbridgeJSON")
28
+ let swizzledSelector = NSSelectorFromString("swizzled_loadAirbridgeJSON")
29
+
30
+ guard let originalMethod = class_getClassMethod(airbridgeJSONClassType, originalSelector),
31
+ let swizzledMethod = class_getClassMethod(airbridgeJSONSwizzlerClassType, swizzledSelector) else {
32
+ NSLog("Swizzling AirbridgeJSON failed: Methods not found.")
33
+ return
34
+ }
35
+
36
+ let swizzledIMP = method_getImplementation(swizzledMethod)
37
+ method_setImplementation(originalMethod, swizzledIMP)
38
+ NSLog("Swizzling AirbridgeJSON successfully")
39
+ }
40
+
41
+ @objc(swizzled_loadAirbridgeJSON)
42
+ class func swizzled_loadAirbridgeJSON() -> [AnyHashable: Any]? {
43
+ let configuration = SDKConfigurationManager.shared.load() ?? {
44
+ NSLog("Swizzling AirbridgeJSON SDKConfigurationManager failed")
45
+ try? SDKConfigurationManager.shared.reset()
46
+ return SDKConfigurationManager.shared.configuration
47
+ }()
48
+
49
+ var newDic = configuration.toAirbridgeJSON()
50
+ newDic["trackingLinkCustomDomains"] = [
51
+ "qaabr.dev.abr.ge",
52
+ "qaabr.dev1.abr.ge",
53
+ "qaabr.dev2.abr.ge",
54
+ "qaabr.dev.airbridge.io",
55
+ "qaabr.dev1.airbridge.io",
56
+ "qaabr.dev2.airbridge.io",
57
+ "qa.ab180.co",
58
+ "qa.dev.ab180.co",
59
+ "qa.dev1.ab180.co",
60
+ "qa.dev2.ab180.co",
61
+ "xn--qa--bw8n.xn--ob0bx63e.com"
62
+ ]
63
+
64
+ configuration.applyToStorage()
65
+ NSLog("Swizzling AirbridgeJSON loadOption: \(newDic)")
66
+ return newDic
67
+ }
68
+ }
@@ -14,13 +14,7 @@
14
14
 
15
15
  #import "APNsSetting.h"
16
16
 
17
- @interface AirbridgeReactNative ()
18
-
19
- + (void)initializeSDKWithName:(NSString*)name
20
- token:(NSString*)token
21
- airbridgeJSON:(nullable NSDictionary*)airbridgeJSON;
22
-
23
- @end
17
+ #import "AirbridgeQA-Swift.h"
24
18
 
25
19
  @implementation AppDelegate
26
20
 
@@ -33,35 +27,13 @@
33
27
 
34
28
  [FIRApp configure];
35
29
  [self swizzleWebViewAlert];
30
+ [AirbridgeJSONSwizzler_Swift swizzleLoadAirbridgeJSON];
36
31
 
37
32
  // 권한 요청 없이 APNs 등록
38
33
  [[UIApplication sharedApplication] registerForRemoteNotifications];
39
34
 
40
- SDKConfiguration* configuration = [SDKConfigurationManager.shared load];
41
- if (configuration == nil) {
42
- [SDKConfigurationManager.shared resetAndReturnError:nil];
43
- configuration = SDKConfigurationManager.shared.configuration;
44
- }
45
-
46
- NSMutableDictionary *newDic = [NSMutableDictionary dictionaryWithDictionary:[configuration toAirbridgeJSON]];
47
- [newDic setValue:@[
48
- @"qaabr.dev.abr.ge",
49
- @"qaabr.dev1.abr.ge",
50
- @"qaabr.dev2.abr.ge",
51
- @"qaabr.dev.airbridge.io",
52
- @"qaabr.dev1.airbridge.io",
53
- @"qaabr.dev2.airbridge.io",
54
- @"qa.ab180.co",
55
- @"qa.dev.ab180.co",
56
- @"qa.dev1.ab180.co",
57
- @"qa.dev2.ab180.co",
58
- @"xn--qa--bw8n.xn--ob0bx63e.com"
59
- ] forKey:@"trackingLinkCustomDomains"];
60
-
61
- [configuration applyToStorage];
62
35
  [AirbridgeReactNative initializeSDKWithName:@"qaabr"
63
- token:@"fe67302f822445d98591566d5fae1293"
64
- airbridgeJSON:newDic];
36
+ token:@"fe67302f822445d98591566d5fae1293"];
65
37
 
66
38
  return [super application:application didFinishLaunchingWithOptions:launchOptions];
67
39
  }
@@ -9,6 +9,8 @@
9
9
 
10
10
  @interface RCT_EXTERN_MODULE(IdentifiersInteractor, NSObject)
11
11
 
12
+ RCT_EXTERN_METHOD(airbridgeJSON:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
13
+
12
14
  RCT_EXTERN_METHOD(identifiers:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
13
15
 
14
16
  RCT_EXTERN_METHOD(apnsToken:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
@@ -10,6 +10,30 @@ import AdSupport
10
10
 
11
11
  @objc(IdentifiersInteractor)
12
12
  class IdentifiersInteractor: NSObject {
13
+
14
+ @objc(airbridgeJSON:reject:)
15
+ func airbridgeJSON(
16
+ resolve: @escaping RCTPromiseResolveBlock,
17
+ reject: @escaping RCTPromiseRejectBlock
18
+ ) {
19
+ guard let classType = NSClassFromString("AirbridgeReactNative_Swift") else {
20
+ NSLog("reflaction AirbridgeReactNative_Swift failed: Class not found.")
21
+ resolve("")
22
+ return
23
+ }
24
+
25
+ guard let airbridgeJSON = (classType.value(forKey: "airbridgeJSON") as? [AnyHashable: Any]) else {
26
+ NSLog("reflaction AirbridgeReactNative_Swift failed: airbridgeJSON not found.")
27
+ resolve("")
28
+ return
29
+ }
30
+
31
+ resolve(String(
32
+ data: try! JSONSerialization.data(withJSONObject: airbridgeJSON),
33
+ encoding: .utf8
34
+ ))
35
+ }
36
+
13
37
  @objc(identifiers:reject:)
14
38
  func identifiers(
15
39
  resolve: @escaping RCTPromiseResolveBlock,
@@ -13,6 +13,7 @@
13
13
  13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
14
14
  13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
15
15
  20D0876B7957883E58D87769 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 509084115650365DDB501091 /* PrivacyInfo.xcprivacy */; };
16
+ 6364E1D52D76C486009281C3 /* AirbridgeJSONSwizzler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6364E1D42D76C486009281C3 /* AirbridgeJSONSwizzler.swift */; };
16
17
  7699B88040F8A987B510C191 /* libPods-AirbridgeQA-AirbridgeQATests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AirbridgeQA-AirbridgeQATests.a */; };
17
18
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
18
19
  9FEEF72A2D5233C20024EBC7 /* APNsSetting.m in Resources */ = {isa = PBXBuildFile; fileRef = 9FEEF7292D5233BD0024EBC7 /* APNsSetting.m */; };
@@ -52,6 +53,7 @@
52
53
  5709B34CF0A7D63546082F79 /* Pods-AirbridgeQA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbridgeQA.release.xcconfig"; path = "Target Support Files/Pods-AirbridgeQA/Pods-AirbridgeQA.release.xcconfig"; sourceTree = "<group>"; };
53
54
  5B7EB9410499542E8C5724F5 /* Pods-AirbridgeQA-AirbridgeQATests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbridgeQA-AirbridgeQATests.debug.xcconfig"; path = "Target Support Files/Pods-AirbridgeQA-AirbridgeQATests/Pods-AirbridgeQA-AirbridgeQATests.debug.xcconfig"; sourceTree = "<group>"; };
54
55
  5DCACB8F33CDC322A6C60F78 /* libPods-AirbridgeQA.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AirbridgeQA.a"; sourceTree = BUILT_PRODUCTS_DIR; };
56
+ 6364E1D42D76C486009281C3 /* AirbridgeJSONSwizzler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AirbridgeJSONSwizzler.swift; path = AirbridgeQA/AirbridgeJSONSwizzler.swift; sourceTree = "<group>"; };
55
57
  81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AirbridgeQA/LaunchScreen.storyboard; sourceTree = "<group>"; };
56
58
  89C6BE57DB24E9ADA2F236DE /* Pods-AirbridgeQA-AirbridgeQATests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbridgeQA-AirbridgeQATests.release.xcconfig"; path = "Target Support Files/Pods-AirbridgeQA-AirbridgeQATests/Pods-AirbridgeQA-AirbridgeQATests.release.xcconfig"; sourceTree = "<group>"; };
57
59
  9FEEF71C2D52039A0024EBC7 /* APNsSetting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = APNsSetting.h; path = AirbridgeQA/APNsSetting.h; sourceTree = SOURCE_ROOT; };
@@ -126,6 +128,7 @@
126
128
  C3A5047B2C291BE5003D3C3C /* IdentifiersInteractor.m */,
127
129
  C3A5047D2C291CA9003D3C3C /* DeviceInfoInteractor.swift */,
128
130
  C3A5047F2C292006003D3C3C /* DeviceInfoInteractor.m */,
131
+ 6364E1D42D76C486009281C3 /* AirbridgeJSONSwizzler.swift */,
129
132
  );
130
133
  name = AirbridgeQA;
131
134
  sourceTree = "<group>";
@@ -466,7 +469,7 @@
466
469
  );
467
470
  runOnlyForDeploymentPostprocessing = 0;
468
471
  shellPath = /bin/sh;
469
- shellScript = "echo '{\"wrapperName\": \"airbridge-react-native-sdk\", \"wrapperVersion\": \"4.2.0\"}' > \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LibraryInfo.json\"\n";
472
+ shellScript = "echo '{\"wrapperName\": \"airbridge-react-native-sdk\", \"wrapperVersion\": \"4.3.0\"}' > \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LibraryInfo.json\"\n";
470
473
  };
471
474
  F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
472
475
  isa = PBXShellScriptBuildPhase;
@@ -501,6 +504,7 @@
501
504
  buildActionMask = 2147483647;
502
505
  files = (
503
506
  9FEEF72B2D5236F90024EBC7 /* APNsSetting.m in Sources */,
507
+ 6364E1D52D76C486009281C3 /* AirbridgeJSONSwizzler.swift in Sources */,
504
508
  C3A5047A2C291A32003D3C3C /* IdentifiersInteractor.swift in Sources */,
505
509
  13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
506
510
  C3A5047C2C291BE5003D3C3C /* IdentifiersInteractor.m in Sources */,
@@ -1,8 +1,8 @@
1
1
  PODS:
2
- - airbridge-ios-sdk (4.2.2)
3
- - airbridge-ios-sdk-qa-library (4.2.2)
4
- - airbridge-react-native-sdk (4.2.0):
5
- - airbridge-ios-sdk (= 4.2.2)
2
+ - airbridge-ios-sdk (4.3.0)
3
+ - airbridge-ios-sdk-qa-library (4.3.0)
4
+ - airbridge-react-native-sdk (4.3.0):
5
+ - airbridge-ios-sdk (= 4.3.0)
6
6
  - React
7
7
  - boost (1.84.0)
8
8
  - DoubleConversion (1.1.6)
@@ -1336,7 +1336,7 @@ PODS:
1336
1336
  - react-native-simple-toast (3.3.2):
1337
1337
  - React-Core
1338
1338
  - Toast (~> 4)
1339
- - react-native-webview (13.12.5):
1339
+ - react-native-webview (13.13.2):
1340
1340
  - DoubleConversion
1341
1341
  - glog
1342
1342
  - hermes-engine
@@ -1646,7 +1646,7 @@ PODS:
1646
1646
  - FirebaseCoreExtension
1647
1647
  - React-Core
1648
1648
  - RNFBApp
1649
- - RNGestureHandler (2.21.2):
1649
+ - RNGestureHandler (2.24.0):
1650
1650
  - DoubleConversion
1651
1651
  - glog
1652
1652
  - hermes-engine
@@ -1667,7 +1667,7 @@ PODS:
1667
1667
  - ReactCommon/turbomodule/bridging
1668
1668
  - ReactCommon/turbomodule/core
1669
1669
  - Yoga
1670
- - RNScreens (3.35.0):
1670
+ - RNScreens (3.36.0):
1671
1671
  - DoubleConversion
1672
1672
  - glog
1673
1673
  - hermes-engine
@@ -1942,9 +1942,9 @@ EXTERNAL SOURCES:
1942
1942
  :path: "../node_modules/react-native/ReactCommon/yoga"
1943
1943
 
1944
1944
  SPEC CHECKSUMS:
1945
- airbridge-ios-sdk: dc9373851397d23b5930966454af805929102c3d
1946
- airbridge-ios-sdk-qa-library: 7d41cc83c37fb8e30487eccf0a209d493f6672c1
1947
- airbridge-react-native-sdk: dd5d5ead46ff1d6eab9a3ee80912b2cab6dd78d8
1945
+ airbridge-ios-sdk: e5e2e1b97860043fac6726f3e7cbf7784ae12ac9
1946
+ airbridge-ios-sdk-qa-library: 079464947679da1c09b1523b68e8af59aad8efc6
1947
+ airbridge-react-native-sdk: 81f6d4100af26cec2b51ca9a75e750cd6958fdf6
1948
1948
  boost: 4cb898d0bf20404aab1850c656dcea009429d6c1
1949
1949
  DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
1950
1950
  FBAEMKit: e34530df538b8eb8aeb53c35867715ba6c63ef0c
@@ -1964,70 +1964,70 @@ SPEC CHECKSUMS:
1964
1964
  hermes-engine: e949b1da40409c52aa7bd79ff32cec045f5b4650
1965
1965
  nanopb: 438bc412db1928dac798aa6fd75726007be04262
1966
1966
  PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
1967
- RCT-Folly: 4464f4d875961fce86008d45f4ecf6cef6de0740
1967
+ RCT-Folly: 34124ae2e667a0e5f0ea378db071d27548124321
1968
1968
  RCTDeprecation: bc01aeeb7acc314fc615a092001050d2e97c353a
1969
1969
  RCTRequired: a511d4665e1f7ac044aad6486aa19d061bd2d365
1970
1970
  RCTTypeSafety: e77969bb08d920251de98b1fc1df223d7039c1ff
1971
1971
  React: d7184b3f39c367504fe746f26b9d68a1dff0085b
1972
1972
  React-callinvoker: 45fca04012bbc94978d3655007339dcf1a5232fd
1973
- React-Core: 1f79ea2071f8ac48ff56b2aff9b849a5ef25292a
1974
- React-CoreModules: 67f22193aa2ada01f1497a68f16ee940f69661e5
1975
- React-cxxreact: 8ec017ccd74352fb814501707f81ba011d37459f
1973
+ React-Core: f29aa5a11399a06d4604fa19b7a9a42672e92b77
1974
+ React-CoreModules: 984c3c8c5633cd51d385e74c1d0232a48f4ca91c
1975
+ React-cxxreact: 586b99147cb95554032b61307b1f16842a9ab632
1976
1976
  React-debug: 352c197132c626eddc6a1cd76e2697d1f2c8aaf2
1977
- React-defaultsnativemodule: 794b7b45463b7eb6550194d24dfab90ed6c6d240
1978
- React-domnativemodule: a25e07b5a169ff01847d46c51b66be67e9805fb9
1979
- React-Fabric: 2dfa25f9dc66beb09d2ed0d0d05061c2f42ba352
1980
- React-FabricComponents: f4551cba79793f3996265dfd56ca8031a75c091f
1981
- React-FabricImage: d464ec4461429c5d6aae9cda11635b4519aeb17b
1977
+ React-defaultsnativemodule: 20499e69bd8e772ff2b0d33d9eafd0e1133ae64b
1978
+ React-domnativemodule: b6770222363b4a1efeface8ee0510a96d32229af
1979
+ React-Fabric: 62e898d7e1b6e8796d16cbcd090c052bc925199d
1980
+ React-FabricComponents: ea8cd47f0e7ecc7575919c7b1270ad9f5d9f363a
1981
+ React-FabricImage: b636c0c182685ff997a6e69cb6da67f5bb215920
1982
1982
  React-featureflags: eb9f39413a653bd71a3eade6cafcefbc90bf7453
1983
- React-featureflagsnativemodule: e2dea6751669d670ed11ba3fda37ef0756cb2adb
1984
- React-graphics: ec9d045f0f25e588d97899f6f5b92aee3dbcca8d
1985
- React-hermes: 3a250e0191116de7ef757b74d39386e83c609775
1986
- React-idlecallbacksnativemodule: a401d60bda48a7cdbe2d4c5dc9e968dc37e2cc65
1987
- React-ImageManager: 4ea61bac6827c3339ded2e3ec0752865975a1b40
1988
- React-jserrorhandler: dd8ceb17410423e1b0f92742b105d8a4e30a988e
1989
- React-jsi: 66a12cec67ef950655b881d545018f08fa38a2d9
1990
- React-jsiexecutor: 79d2789093ab9b821ceee0e15a79b21115cdbd4d
1991
- React-jsinspector: 929691bef04499c30fca9374ed6954ca30919cff
1992
- React-jsitracing: 8003b1956692fdd34b737a95ffd8efbb12f9986f
1993
- React-logger: 0a81d1a40650bbdafb255fe4616edb83feed0ee9
1994
- React-Mapbuffer: b758bec0d9994c10a2841dfd5ec70673665fd3e2
1995
- React-microtasksnativemodule: f25dba9c8c3f8be0b3368d52b99abd6e381dee1d
1996
- react-native-native-log: bd883a7b018c0cdd9d23bc806a074bc067cfb7a9
1997
- react-native-safe-area-context: 141eca0fd4e4191288dfc8b96a7c7e1c2983447a
1998
- react-native-simple-toast: 645b68c26e43786fc05e3d7401de2b057f139054
1999
- react-native-webview: b034adbe6dc6cc783c3270b6e47298bc1dfdb632
1983
+ React-featureflagsnativemodule: 0e55cb4f68c8de37b12966793df2134ad9e2f580
1984
+ React-graphics: 146003496c10b3fcb928e53a43d54a90a871a1bc
1985
+ React-hermes: 4a18803737f2332dc35d895bec765d642433b08c
1986
+ React-idlecallbacksnativemodule: 73d467840261d38b1309917919b159d49bf61ea0
1987
+ React-ImageManager: c0a9bb2be7602e31c8bb51554bc2ff3cc266fab9
1988
+ React-jserrorhandler: 44c17947a0f723f9092d7c5ad1de1c4024829a97
1989
+ React-jsi: 5748b5650fbd60bdb45fe6e54b44989dae1cc34f
1990
+ React-jsiexecutor: 8118b48576d215094ca27abe5fb55b7f4c9cd796
1991
+ React-jsinspector: 68aec6d3d6057ba3d25851238c1d87a6967eb9e4
1992
+ React-jsitracing: ffe8e4616d556e27c0932bbc2b3a418da5aebb17
1993
+ React-logger: 11533686221afc574eeee73f7e0ad1f9787dd52f
1994
+ React-Mapbuffer: 256f4499192c75419e788e1dc0510d7eb2ca2fb6
1995
+ React-microtasksnativemodule: f00aca09de0180639040ba7823bd56d295bebd2c
1996
+ react-native-native-log: b6d4756019312793917f89e988b204eb939ed24c
1997
+ react-native-safe-area-context: 758e894ca5a9bd1868d2a9cfbca7326a2b6bf9dc
1998
+ react-native-simple-toast: 4c9cc976cb92b6e5fb555e7c57fce38b90a56d07
1999
+ react-native-webview: 042b9dfd509d23e7ebc07da06c38a8bcc4679d46
2000
2000
  React-nativeconfig: 7af2ccce165f86b233a9f9d63295f6207e62640e
2001
- React-NativeModulesApple: db1c1ee9dda26c9e58d824b4100fed83add82ae9
2001
+ React-NativeModulesApple: 6861baf05010ce6aa9fb407ed0a54f5b29552f73
2002
2002
  React-perflogger: 7c4e97b47d8bc58c03fad1a6b97d96181b59aa41
2003
- React-performancetimeline: ff6c906204f8efe69a43385389179812124fee3e
2003
+ React-performancetimeline: 21e2172fc988e71a9a288fa57c41da4870770ce6
2004
2004
  React-RCTActionSheet: 4d320d60f7343d15c681b4a3cb44fcf1e1d319a7
2005
- React-RCTAnimation: 523261cf9e7852bb627d12f89e423ee4839428fb
2006
- React-RCTAppDelegate: f0bcfe72d53195d16defd6b4cd8ce0591190c4a1
2007
- React-RCTBlob: c9aa6336d7a0195fa8960cdae1806a80d1a56083
2008
- React-RCTFabric: ff72c45356b1089ffc9d241618a04cbe0302ae0d
2009
- React-RCTImage: 2c4f61a43046c6098c17ed998189729b78e2c9e1
2010
- React-RCTLinking: 17fc004f09b77265e34351afc4a501d5dc3a4d17
2011
- React-RCTNetwork: 1590882206f723a2b50e7a492b592696e28dc05e
2012
- React-RCTSettings: bca2756c3b9ad9fefc789276be734fc49c3287fc
2013
- React-RCTText: ec488070f17fbab655abb3e102b79d1b1dc7b007
2014
- React-RCTVibration: d84f562d6b14a6cb2b082225f55f47cbd190482f
2005
+ React-RCTAnimation: 8e286f1bdf2ce49be337cd88d487ca75c5be7b17
2006
+ React-RCTAppDelegate: 000dd400a0796549698511cf9960957a377f277d
2007
+ React-RCTBlob: ad1988b6ec8adb557ea705cb364e9a75112bacf6
2008
+ React-RCTFabric: 4e7d671cc9b6961a4331e607fa8ac86f03f11b3f
2009
+ React-RCTImage: 1da26c1cfb7594847ff4c6874e076a63f3290508
2010
+ React-RCTLinking: 87dc35744c32db2578f63a7454a2a8f87d788142
2011
+ React-RCTNetwork: 96530e272e24a374e942bfcb0e0d9395fc6a9da5
2012
+ React-RCTSettings: 181f949ad273bdc1915ececfe9258d36f51e1b77
2013
+ React-RCTText: c977f49e85e46ee1b109633fccac50d6738bec1d
2014
+ React-RCTVibration: e1ce7248ef1b820d6d2fe11e6690263c88dc54bd
2015
2015
  React-rendererconsistency: 10d49d3d663e52b28fac749543473207f0dd411e
2016
- React-rendererdebug: f3f5b36ae16b859ae4fc3354dc4436067265fff9
2016
+ React-rendererdebug: b3eb4e09a3f7d09acc9c0ff00ba527fe88dc1fd0
2017
2017
  React-rncore: 2f9b482f627d8854a0b247e78119764d73d42335
2018
- React-RuntimeApple: 4749c1ffc84765252ee2d2f8d8fd0b01e4d5e63a
2019
- React-RuntimeCore: 1d44cd3189d61fa91ae6bb46e374c097ce5d8873
2018
+ React-RuntimeApple: 9f28ce7a5c58657fcc7285b59b69af3c8a26d13a
2019
+ React-RuntimeCore: cf5ed9e0282fb3235805df42b5fb62c07426cc32
2020
2020
  React-runtimeexecutor: 7f3bb572e57574f0e45338f2e33339d1b712e7ea
2021
- React-RuntimeHermes: 11f77829525f1371b2b9aad060f6bf31fafd60a1
2022
- React-runtimescheduler: 5bdbfb4e9c4efc508f9f1da8ef0a9e62362d9713
2023
- React-utils: 0ae17a2fe87b43a939826410d2fcbb28d44f1bfc
2024
- ReactCodegen: e9156d86a166f3e10dc8fb6160764048df3528bc
2025
- ReactCommon: 3ae48fa4cfa7052a270c2150ececfc94e541fb8a
2026
- RNCMaskedView: e07a0b5e9e8d6962826def06e6ff2ecdb815433f
2027
- RNFBApp: 5f87753a8d8b37d229adf85cd0ff37709ffdf008
2028
- RNFBMessaging: 3fa1114c0868dd21f20dfe186adf42297ea316b1
2029
- RNGestureHandler: aa9690789023c9be8f06aa90e10ce637ea788f4d
2030
- RNScreens: c7ceced6a8384cb9be5e7a5e88e9e714401fd958
2021
+ React-RuntimeHermes: 97e3ecb2a84308268ff43c32fdadb725bb0eb216
2022
+ React-runtimescheduler: 9dd943100ab75bf6d444ffa30cfccdcc62a3b063
2023
+ React-utils: eae7aa27b3c164329f3f66384a8cdb70c4d8cf44
2024
+ ReactCodegen: 402359d3205477a4475bc1628077e44a44fde994
2025
+ ReactCommon: f28ff9e3fc196dae898b463ed40f241621a023ef
2026
+ RNCMaskedView: e2e87cbd6366581943892b44176e7976ff988dfd
2027
+ RNFBApp: 0e66b9f844efdf2ac3fa2b30e64c9db41a263b3d
2028
+ RNFBMessaging: 70b12c9f22c7c9d5011ac9b12ac2bafbfb081267
2029
+ RNGestureHandler: fc491c834d09b0538618a3f328ab75fe8f90f5b4
2030
+ RNScreens: 5dc985f7d0745a9a0e1241996d11fade3a8bc4b5
2031
2031
  SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
2032
2032
  Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
2033
2033
  Yoga: 06fc4b2c3664ae0e278964b8fbcb0ee9d21f0a5a