@circle-fin/w3s-pw-react-native-sdk 1.1.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/BARE_REACT_NATIVE_GUIDE.md +397 -0
  2. package/LICENSE +1 -1
  3. package/README.md +196 -90
  4. package/android/build.gradle +43 -126
  5. package/android/src/main/AndroidManifest.xml +12 -16
  6. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/ProgrammablewalletRnSdkModule.kt +414 -244
  7. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/PromiseCallback.kt +76 -74
  8. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/RecordsHelper.kt +602 -0
  9. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/models/Records.kt +43 -0
  10. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/pwcustom/RnImageSetter.kt +55 -33
  11. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/pwcustom/RnLayoutProvider.kt +81 -79
  12. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/pwcustom/RnViewSetterProvider.kt +93 -63
  13. package/app.json +8 -0
  14. package/build/ProgrammablewalletRnSdkModule.d.ts +44 -0
  15. package/build/ProgrammablewalletRnSdkModule.d.ts.map +1 -0
  16. package/build/ProgrammablewalletRnSdkModule.js +21 -0
  17. package/build/ProgrammablewalletRnSdkModule.js.map +1 -0
  18. package/build/WalletSdk.d.ts +20 -0
  19. package/build/WalletSdk.d.ts.map +1 -0
  20. package/build/WalletSdk.js +303 -0
  21. package/build/WalletSdk.js.map +1 -0
  22. package/build/bridgeSafe.d.ts +50 -0
  23. package/build/bridgeSafe.d.ts.map +1 -0
  24. package/build/bridgeSafe.js +136 -0
  25. package/build/bridgeSafe.js.map +1 -0
  26. package/build/index.d.ts +21 -0
  27. package/build/index.d.ts.map +1 -0
  28. package/build/index.js +21 -0
  29. package/build/index.js.map +1 -0
  30. package/{lib/typescript/src → build}/types.d.ts +72 -43
  31. package/build/types.d.ts.map +1 -0
  32. package/build/types.js +331 -0
  33. package/build/types.js.map +1 -0
  34. package/build/utils/securityQuestionUtils.d.ts +43 -0
  35. package/build/utils/securityQuestionUtils.d.ts.map +1 -0
  36. package/build/utils/securityQuestionUtils.js +109 -0
  37. package/build/utils/securityQuestionUtils.js.map +1 -0
  38. package/expo-module.config.json +11 -0
  39. package/ios/Array+Extension.swift +17 -15
  40. package/ios/BridgeHelper.swift +71 -92
  41. package/ios/{RnWalletSdk+CustomizeAdapter.swift → CustomizeAdapter.swift} +19 -29
  42. package/ios/ProgrammablewalletRnSdk.podspec +30 -0
  43. package/ios/ProgrammablewalletRnSdkModule.swift +384 -0
  44. package/ios/TextConfig.swift +17 -15
  45. package/ios/TextKey.swift +17 -15
  46. package/ios/UIApplication+Extension.swift +26 -17
  47. package/ios/UIColor+Extension.swift +34 -28
  48. package/ios/UITextField+Extension.swift +31 -0
  49. package/ios/UIView+Extension.swift +24 -17
  50. package/package.json +70 -116
  51. package/plugins/apple-signin-entitlements.js +16 -0
  52. package/plugins/infoplist-config.js +77 -0
  53. package/plugins/infoplist-config.md +72 -0
  54. package/plugins/podfile-modifier.js +84 -0
  55. package/plugins/podfile-modifier.md +33 -0
  56. package/plugins/withCopyFiles.js +132 -0
  57. package/plugins/withCopyFiles.md +81 -0
  58. package/src/ProgrammablewalletRnSdkModule.ts +68 -38
  59. package/src/WalletSdk.ts +297 -159
  60. package/src/bridgeSafe.ts +156 -0
  61. package/src/index.ts +21 -0
  62. package/src/types.ts +133 -110
  63. package/src/utils/securityQuestionUtils.ts +121 -0
  64. package/COPYRIGHT +0 -10
  65. package/android/gradle.properties +0 -21
  66. package/android/src/main/AndroidManifestNew.xml +0 -22
  67. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/BridgeHelper.kt +0 -399
  68. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/ProgrammablewalletRnSdkPackage.kt +0 -49
  69. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/PromiseCallback2.kt +0 -65
  70. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/PromiseLogoutCallback.kt +0 -47
  71. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/PromiseSocialCallback.kt +0 -53
  72. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/TestHelper.kt +0 -37
  73. package/android/src/main/java/com/circlefin/programmablewalletrnsdk/annotation/ExcludeFromGeneratedCCReport.kt +0 -33
  74. package/android/src/newarch/ProgrammablewalletRnSdkSpec.kt +0 -29
  75. package/android/src/oldarch/ProgrammablewalletRnSdkSpec.kt +0 -76
  76. package/circlefin-w3s-pw-react-native-sdk.podspec +0 -41
  77. package/ios/EventEmitter.swift +0 -49
  78. package/ios/ProgrammablewalletRnSdk.h +0 -29
  79. package/ios/ProgrammablewalletRnSdk.mm +0 -162
  80. package/ios/ReactNativeEventEmitter.m +0 -27
  81. package/ios/ReactNativeEventEmitter.swift +0 -37
  82. package/ios/RnWalletSdk.swift +0 -390
  83. package/ios/programmablewallet-rn-sdk-Bridging-Header.h +0 -22
  84. package/lib/commonjs/NativeProgrammablewalletRnSdk.js +0 -24
  85. package/lib/commonjs/NativeProgrammablewalletRnSdk.js.map +0 -1
  86. package/lib/commonjs/ProgrammablewalletRnSdkModule.js +0 -38
  87. package/lib/commonjs/ProgrammablewalletRnSdkModule.js.map +0 -1
  88. package/lib/commonjs/WalletSdk.js +0 -211
  89. package/lib/commonjs/WalletSdk.js.map +0 -1
  90. package/lib/commonjs/index.js +0 -74
  91. package/lib/commonjs/index.js.map +0 -1
  92. package/lib/commonjs/types.js +0 -342
  93. package/lib/commonjs/types.js.map +0 -1
  94. package/lib/module/NativeProgrammablewalletRnSdk.js +0 -19
  95. package/lib/module/NativeProgrammablewalletRnSdk.js.map +0 -1
  96. package/lib/module/ProgrammablewalletRnSdkModule.js +0 -31
  97. package/lib/module/ProgrammablewalletRnSdkModule.js.map +0 -1
  98. package/lib/module/WalletSdk.js +0 -203
  99. package/lib/module/WalletSdk.js.map +0 -1
  100. package/lib/module/index.js +0 -18
  101. package/lib/module/index.js.map +0 -1
  102. package/lib/module/types.js +0 -334
  103. package/lib/module/types.js.map +0 -1
  104. package/lib/typescript/src/NativeProgrammablewalletRnSdk.d.ts +0 -28
  105. package/lib/typescript/src/NativeProgrammablewalletRnSdk.d.ts.map +0 -1
  106. package/lib/typescript/src/ProgrammablewalletRnSdkModule.d.ts +0 -3
  107. package/lib/typescript/src/ProgrammablewalletRnSdkModule.d.ts.map +0 -1
  108. package/lib/typescript/src/WalletSdk.d.ts +0 -3
  109. package/lib/typescript/src/WalletSdk.d.ts.map +0 -1
  110. package/lib/typescript/src/index.d.ts +0 -4
  111. package/lib/typescript/src/index.d.ts.map +0 -1
  112. package/lib/typescript/src/types.d.ts.map +0 -1
  113. package/src/NativeProgrammablewalletRnSdk.ts +0 -77
  114. package/src/index.tsx +0 -29
@@ -1,88 +1,90 @@
1
- // Copyright (c) 2024, Circle Internet Financial, LTD. All rights reserved.
2
- //
3
- // SPDX-License-Identifier: Apache-2.0
4
- //
5
- // Licensed under the Apache License, Version 2.0 (the "License");
6
- // you may not use this file except in compliance with the License.
7
- // You may obtain a copy of the License at
8
- //
9
- // http://www.apache.org/licenses/LICENSE-2.0
10
- //
11
- // Unless required by applicable law or agreed to in writing, software
12
- // distributed under the License is distributed on an "AS IS" BASIS,
13
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- // See the License for the specific language governing permissions and
15
- // limitations under the License.
1
+ /**
2
+ * Copyright 2025 Circle Internet Group, Inc. All rights reserved.
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
16
18
  package com.circlefin.programmablewalletrnsdk
17
19
 
18
20
  import android.util.Log
19
21
  import circle.programmablewallet.sdk.api.ApiError
20
22
  import circle.programmablewallet.sdk.api.Callback
21
23
  import circle.programmablewallet.sdk.api.ExecuteWarning
22
- import com.circlefin.programmablewalletrnsdk.BridgeHelper.objectToMap
23
- import com.circlefin.programmablewalletrnsdk.annotation.ExcludeFromGeneratedCCReport
24
- import com.facebook.react.bridge.Arguments
25
- import com.facebook.react.bridge.Promise
26
- import com.facebook.react.bridge.ReactApplicationContext
27
- import com.facebook.react.modules.core.DeviceEventManagerModule
24
+ import expo.modules.kotlin.Promise
25
+ import expo.modules.kotlin.exception.CodedException
28
26
 
29
27
  class PromiseCallback<R> internal constructor(
30
- private val promise: Promise?,
31
- private val context: ReactApplicationContext
28
+ private val promise: Promise?,
29
+ private val module: ProgrammablewalletRnSdkModule
32
30
  ) : Callback<R> {
33
- private var result: R? = null
34
-
35
- @ExcludeFromGeneratedCCReport
36
- override fun onError(error: Throwable): Boolean {
37
- Log.w(TAG, "onError: ", error)
38
- if (error is ApiError) {
39
- val isDismiss = java.lang.Boolean.TRUE == ProgrammablewalletRnSdkModule.dismissOnCallbackMap[error.code.value]
40
- if (isDismiss) {
41
- promise?.reject(error.code.value.toString(), error.message, error)
42
- } else {
43
- val map = objectToMap(error)
44
- context.getJSModule(
45
- DeviceEventManagerModule.RCTDeviceEventEmitter::class.java
46
- )
47
- .emit(ProgrammablewalletRnSdkModule.EVENT_NAME_ON_ERROR, map)
48
- }
49
- return !isDismiss
50
- } else {
51
- promise?.reject(RuntimeException(error.message))
31
+
32
+ private var result: R? = null
33
+
34
+ override fun onError(error: Throwable): Boolean {
35
+ Log.w(TAG, "onError: ", error)
36
+
37
+ if (error is ApiError) {
38
+ val isDismiss =
39
+ java.lang.Boolean.TRUE == ProgrammablewalletRnSdkModule.dismissOnCallbackMap[error.code.value]
40
+
41
+ if (isDismiss) {
42
+ promise?.reject(CodedException(error.code.value.toString(), error.message, error))
43
+ } else {
44
+ val errorMap = RecordsHelper.convertApiErrorToMap(error)
45
+ module.sendEvent(ProgrammablewalletRnSdkModule.EVENT_NAME_ON_ERROR, errorMap)
46
+ }
47
+ return !isDismiss
48
+ } else {
49
+ promise?.reject(CodedException(error))
50
+ }
51
+ return false
52
52
  }
53
- return false
54
- }
55
-
56
- override fun onResult(result: R) {
57
- promise ?: return
58
- val map = Arguments.createMap()
59
- map.putMap("result", objectToMap(result))
60
- promise.resolve(map)
61
- }
62
-
63
- @ExcludeFromGeneratedCCReport
64
- override fun onWarning(warning: ExecuteWarning, result: R?): Boolean {
65
- val isDismiss = java.lang.Boolean.TRUE == ProgrammablewalletRnSdkModule.dismissOnCallbackMap[warning.warningType]
66
- val map = Arguments.createMap()
67
- if (result == null) {
68
- map.putMap("result", objectToMap(this.result))
69
- } else {
70
- this.result = result
71
- map.putMap("result", objectToMap(result))
53
+
54
+ override fun onResult(result: R) {
55
+ promise ?: return
56
+
57
+ val resultMap = mutableMapOf<String, Any?>()
58
+ resultMap["result"] = RecordsHelper.convertResultToMap(result)
59
+
60
+ promise.resolve(resultMap)
72
61
  }
73
- map.putMap("warning", objectToMap(warning))
74
- if (isDismiss) {
75
- promise?.resolve(map)
76
- } else {
77
- context.getJSModule(
78
- DeviceEventManagerModule.RCTDeviceEventEmitter::class.java
79
- )
80
- .emit(ProgrammablewalletRnSdkModule.EVENT_NAME_ON_SUCCESS, map)
62
+
63
+ override fun onWarning(warning: ExecuteWarning, result: R?): Boolean {
64
+ val isDismiss =
65
+ java.lang.Boolean.TRUE == ProgrammablewalletRnSdkModule.dismissOnCallbackMap[warning.warningType]
66
+
67
+ val resultMap = mutableMapOf<String, Any?>()
68
+
69
+ if (result == null) {
70
+ resultMap["result"] = RecordsHelper.convertResultToMap(this.result)
71
+ } else {
72
+ this.result = result
73
+ resultMap["result"] = RecordsHelper.convertResultToMap(result)
74
+ }
75
+
76
+ resultMap["warning"] = RecordsHelper.convertExecuteWarningToMap(warning)
77
+
78
+ if (isDismiss) {
79
+ promise?.resolve(resultMap)
80
+ } else {
81
+ module.sendEvent(ProgrammablewalletRnSdkModule.EVENT_NAME_ON_SUCCESS, resultMap)
82
+ }
83
+
84
+ return !isDismiss
81
85
  }
82
- return !isDismiss
83
- }
84
86
 
85
- companion object {
86
- private val TAG = PromiseCallback::class.java.simpleName
87
- }
87
+ companion object {
88
+ private val TAG = PromiseCallback::class.java.simpleName
89
+ }
88
90
  }