@dynamic-labs-sdk/client 0.26.7 → 0.26.10

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 (201) hide show
  1. package/dist/{InvalidParamError-WXK434H2.esm.js → InvalidParamError-De4xrOs4.esm.js} +17 -101
  2. package/dist/InvalidParamError-De4xrOs4.esm.js.map +1 -0
  3. package/dist/{InvalidParamError-F90z0K5r.native.esm.js → InvalidParamError-DfGaCYmW.native.esm.js} +17 -101
  4. package/dist/InvalidParamError-DfGaCYmW.native.esm.js.map +1 -0
  5. package/dist/{InvalidParamError-DFpM4bIX.cjs → InvalidParamError-XWDgGlk3.cjs} +43 -127
  6. package/dist/InvalidParamError-XWDgGlk3.cjs.map +1 -0
  7. package/dist/{NotWaasWalletAccountError-D_qlVMCG.esm.js → NotWaasWalletAccountError-Bws_qXec.native.esm.js} +5 -5
  8. package/dist/{NotWaasWalletAccountError-QZZmjyhq.native.esm.js.map → NotWaasWalletAccountError-Bws_qXec.native.esm.js.map} +1 -1
  9. package/dist/{NotWaasWalletAccountError-QZZmjyhq.native.esm.js → NotWaasWalletAccountError-CdAul2Xh.esm.js} +5 -5
  10. package/dist/{NotWaasWalletAccountError-D_qlVMCG.esm.js.map → NotWaasWalletAccountError-CdAul2Xh.esm.js.map} +1 -1
  11. package/dist/{NotWaasWalletAccountError-DbzO2LzZ.cjs → NotWaasWalletAccountError-rJzT_0wz.cjs} +5 -5
  12. package/dist/{NotWaasWalletAccountError-DbzO2LzZ.cjs.map → NotWaasWalletAccountError-rJzT_0wz.cjs.map} +1 -1
  13. package/dist/core.cjs +53 -113
  14. package/dist/core.cjs.map +1 -1
  15. package/dist/core.esm.js +16 -76
  16. package/dist/core.esm.js.map +1 -1
  17. package/dist/core.native.esm.js +16 -76
  18. package/dist/core.native.esm.js.map +1 -1
  19. package/dist/{getNetworkProviderFromNetworkId-BV9lOcuP.cjs → getNetworkProviderFromNetworkId-C_6K_daH.cjs} +110 -362
  20. package/dist/getNetworkProviderFromNetworkId-C_6K_daH.cjs.map +1 -0
  21. package/dist/{getNetworkProviderFromNetworkId-BVurb9VE.esm.js → getNetworkProviderFromNetworkId-Cqzo1MhF.esm.js} +41 -293
  22. package/dist/getNetworkProviderFromNetworkId-Cqzo1MhF.esm.js.map +1 -0
  23. package/dist/{getNetworkProviderFromNetworkId-DbR2qejA.native.esm.js → getNetworkProviderFromNetworkId-Dz1Wd9-n.native.esm.js} +41 -293
  24. package/dist/getNetworkProviderFromNetworkId-Dz1Wd9-n.native.esm.js.map +1 -0
  25. package/dist/{getSignedSessionId-CNkcX15D.cjs → getSignedSessionId-B2YC9266.cjs} +10 -34
  26. package/dist/getSignedSessionId-B2YC9266.cjs.map +1 -0
  27. package/dist/{getSignedSessionId-DFiqF8_b.esm.js → getSignedSessionId-D-G950gE.native.esm.js} +7 -31
  28. package/dist/getSignedSessionId-D-G950gE.native.esm.js.map +1 -0
  29. package/dist/{getSignedSessionId-DXtxIjxF.native.esm.js → getSignedSessionId-G9BPBkMb.esm.js} +7 -31
  30. package/dist/getSignedSessionId-G9BPBkMb.esm.js.map +1 -0
  31. package/dist/{getVerifiedCredentialForWalletAccount-6di80gqF.esm.js → getVerifiedCredentialForWalletAccount-DqXnLSqq.esm.js} +19 -127
  32. package/dist/getVerifiedCredentialForWalletAccount-DqXnLSqq.esm.js.map +1 -0
  33. package/dist/{getVerifiedCredentialForWalletAccount-4eVkx2ZN.cjs → getVerifiedCredentialForWalletAccount-SS1WQ2i3.cjs} +67 -175
  34. package/dist/getVerifiedCredentialForWalletAccount-SS1WQ2i3.cjs.map +1 -0
  35. package/dist/{getVerifiedCredentialForWalletAccount-CHIZTYim.native.esm.js → getVerifiedCredentialForWalletAccount-a1WXUW0u.native.esm.js} +19 -127
  36. package/dist/getVerifiedCredentialForWalletAccount-a1WXUW0u.native.esm.js.map +1 -0
  37. package/dist/index.cjs +203 -635
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.esm.js +161 -593
  40. package/dist/index.esm.js.map +1 -1
  41. package/dist/index.native.esm.js +156 -588
  42. package/dist/index.native.esm.js.map +1 -1
  43. package/dist/{isMfaRequiredForAction-DKSH9YEU.esm.js → isMfaRequiredForAction-CPlDnHuj.esm.js} +6 -18
  44. package/dist/isMfaRequiredForAction-CPlDnHuj.esm.js.map +1 -0
  45. package/dist/{isMfaRequiredForAction-ZwjmqVg-.cjs → isMfaRequiredForAction-CYVZ_XGq.cjs} +7 -19
  46. package/dist/isMfaRequiredForAction-CYVZ_XGq.cjs.map +1 -0
  47. package/dist/{isMfaRequiredForAction-cJ294BGH.native.esm.js → isMfaRequiredForAction-CwUE98S3.native.esm.js} +6 -18
  48. package/dist/isMfaRequiredForAction-CwUE98S3.native.esm.js.map +1 -0
  49. package/dist/modules/apiClient/createApiClient.d.ts +1 -1
  50. package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.d.ts +1 -1
  51. package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.d.ts.map +1 -1
  52. package/dist/modules/auth/createVisit/createVisit.d.ts +1 -1
  53. package/dist/modules/auth/createVisit/createVisit.d.ts.map +1 -1
  54. package/dist/modules/auth/passkeys/getPasskeys/getPasskeys.d.ts +1 -1
  55. package/dist/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts +1 -1
  56. package/dist/modules/auth/social/oauth/detectOAuthRedirect/detectOAuthRedirect.d.ts +1 -1
  57. package/dist/modules/auth/social/oauth/detectSocialRedirectUrl/detectSocialRedirectUrl.d.ts +1 -1
  58. package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts +1 -1
  59. package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  60. package/dist/modules/balances/getBalances/getBalances.d.ts +1 -1
  61. package/dist/modules/balances/getMultichainBalances/getMultichainBalances.d.ts +1 -1
  62. package/dist/modules/captcha/consumeCaptchaToken/consumeCaptchaToken.d.ts +1 -1
  63. package/dist/modules/checkout/getCheckoutTransaction/getCheckoutTransaction.d.ts +1 -1
  64. package/dist/modules/checkout/getCheckoutTransactionQuote/getCheckoutTransactionQuote.d.ts +1 -1
  65. package/dist/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.d.ts +1 -1
  66. package/dist/modules/checkout/utils/requiresConversion/requiresConversion.d.ts +1 -1
  67. package/dist/modules/clientEvents/clientEvents.d.ts +3 -3
  68. package/dist/modules/deviceRegistration/detectDeviceRegistrationRedirect/detectDeviceRegistrationRedirect.d.ts +1 -1
  69. package/dist/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/getDeviceRegistrationTokenFromUrl.d.ts +1 -1
  70. package/dist/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.d.ts +1 -1
  71. package/dist/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.d.ts.map +1 -1
  72. package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.d.ts +1 -1
  73. package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.d.ts.map +1 -1
  74. package/dist/modules/deviceRegistration/getRegisteredDevices/getRegisteredDevices.d.ts +1 -1
  75. package/dist/modules/deviceRegistration/getRegisteredDevices/getRegisteredDevices.d.ts.map +1 -1
  76. package/dist/modules/extension/registerExtension/registerExtension.d.ts +1 -1
  77. package/dist/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts +1 -1
  78. package/dist/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts +1 -1
  79. package/dist/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts +1 -1
  80. package/dist/modules/funding/kraken/getKrakenAccounts/getKrakenAccounts.d.ts +1 -1
  81. package/dist/modules/funding/kraken/getKrakenWhitelistedAddresses/getKrakenWhitelistedAddresses.d.ts +1 -1
  82. package/dist/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts +1 -1
  83. package/dist/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts +1 -1
  84. package/dist/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts.map +1 -1
  85. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/getWalletConnectCatalog.d.ts +1 -1
  86. package/dist/modules/legacyWalletBook/getWalletConnectCatalogWalletByWalletProviderKey/getWalletConnectCatalogWalletByWalletProviderKey.d.ts +1 -1
  87. package/dist/modules/mfa/consumeMfaTokenIfRequiredForAction/consumeMfaTokenIfRequiredForAction.d.ts +1 -1
  88. package/dist/modules/mfa/consumeMfaTokenIfRequiredForAction/consumeMfaTokenIfRequiredForAction.d.ts.map +1 -1
  89. package/dist/modules/mfa/getMfaDevices/getMfaDevices.d.ts +1 -1
  90. package/dist/modules/mfa/getMfaMethods/getMfaMethods.d.ts +1 -1
  91. package/dist/modules/mfa/getMfaRecoveryCodes/getMfaRecoveryCodes.d.ts +1 -1
  92. package/dist/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.d.ts +1 -1
  93. package/dist/modules/sessionKeys/generateSessionKeys/generateSessionKeys.d.ts +1 -1
  94. package/dist/modules/sessionKeys/generateSessionKeys/generateSessionKeys.d.ts.map +1 -1
  95. package/dist/modules/sessionKeys/getSessionKeys/getSessionKeys.d.ts +1 -1
  96. package/dist/modules/sessionKeys/getSessionKeys/getSessionKeys.d.ts.map +1 -1
  97. package/dist/modules/sessionKeys/getSignedSessionId/getSignedSessionId.d.ts +1 -1
  98. package/dist/modules/sessionKeys/getSignedSessionId/getSignedSessionId.d.ts.map +1 -1
  99. package/dist/modules/swap/getSwapQuote/getSwapQuote.d.ts +1 -1
  100. package/dist/modules/swap/getSwapStatus/getSwapStatus.d.ts +1 -1
  101. package/dist/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts +1 -1
  102. package/dist/modules/wallets/getConnectedAddresses/getConnectedAddresses.d.ts +1 -1
  103. package/dist/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts +1 -1
  104. package/dist/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts.map +1 -1
  105. package/dist/modules/wallets/getWalletAccounts/getWalletAccounts.d.ts +1 -1
  106. package/dist/modules/wallets/getWalletProviders/getWalletProviders.d.ts +1 -1
  107. package/dist/modules/wallets/networks/createBaseNetworkProvider/createBaseNetworkProvider.d.ts +1 -1
  108. package/dist/modules/wallets/networks/createBaseNetworkProvider/createBaseNetworkProvider.d.ts.map +1 -1
  109. package/dist/modules/wallets/networks/getActiveNetworkData/getActiveNetworkData.d.ts +1 -1
  110. package/dist/modules/wallets/networks/getActiveNetworkId/getActiveNetworkId.d.ts +1 -1
  111. package/dist/modules/wallets/networks/getBalance/getBalance.d.ts +1 -1
  112. package/dist/modules/wallets/networks/getBalanceForAddress/getBalanceForAddress.d.ts +1 -1
  113. package/dist/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts +1 -1
  114. package/dist/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts.map +1 -1
  115. package/dist/modules/wallets/networks/getNetworkProviderFromNetworkId/getNetworkProviderFromNetworkId.d.ts +1 -1
  116. package/dist/modules/wallets/networks/getNetworkProviderFromNetworkId/getNetworkProviderFromNetworkId.d.ts.map +1 -1
  117. package/dist/modules/wallets/networks/getNetworkProviders/getNetworkProviders.d.ts +1 -1
  118. package/dist/modules/wallets/networks/getNetworksData/getNetworksData.d.ts +1 -1
  119. package/dist/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts +1 -1
  120. package/dist/modules/wallets/primaryWalletAccount/getPrimaryWalletAccount/getPrimaryWalletAccount.d.ts +1 -1
  121. package/dist/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.d.ts +1 -1
  122. package/dist/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts +1 -1
  123. package/dist/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts +1 -1
  124. package/dist/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts.map +1 -1
  125. package/dist/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts +1 -1
  126. package/dist/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts.map +1 -1
  127. package/dist/modules/wallets/utils/getWalletProviderFromWalletAccount/getWalletProviderFromWalletAccount.d.ts +1 -1
  128. package/dist/modules/wallets/utils/getWalletProviderFromWalletAccount/getWalletProviderFromWalletAccount.d.ts.map +1 -1
  129. package/dist/modules/wallets/verifyMessageSignatureOwnership/verifyMessageSignatureOwnership.d.ts +1 -1
  130. package/dist/modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry/getActiveNetworkIdFromLastKnownRegistry.d.ts +1 -1
  131. package/dist/modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry/getActiveNetworkIdFromLastKnownRegistry.d.ts.map +1 -1
  132. package/dist/modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry/switchActiveNetworkInLastKnownRegistry.d.ts +1 -1
  133. package/dist/modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry/switchActiveNetworkInLastKnownRegistry.d.ts.map +1 -1
  134. package/dist/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.d.ts +1 -1
  135. package/dist/modules/wallets/walletProvider/events/offWalletProviderEvent/offWalletProviderEvent.d.ts +1 -1
  136. package/dist/modules/wallets/walletProvider/events/onWalletProviderEvent/onWalletProviderEvent.d.ts +1 -1
  137. package/dist/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts +1 -1
  138. package/dist/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts.map +1 -1
  139. package/dist/services/crossTabBroadcast/createCrossTabBroadcast/createCrossTabBroadcast.d.ts +1 -1
  140. package/dist/services/keychain/createKeychainService/createKeychainService.d.ts +1 -1
  141. package/dist/services/keychain/createKeychainService/createKeychainService.d.ts.map +1 -1
  142. package/dist/services/logger/createLogger/createLogger.d.ts +1 -1
  143. package/dist/services/realtime/createRealtimeChannelSchema/createRealtimeChannelSchema.d.ts +1 -1
  144. package/dist/services/realtime/createRealtimeService/createRealtimeService.d.ts +1 -1
  145. package/dist/services/runtimeServices/createRuntimeServiceAccessKey/createRuntimeServiceAccessKey.d.ts +1 -1
  146. package/dist/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.d.ts +1 -1
  147. package/dist/services/storage/createStorage/createStorage.d.ts +1 -1
  148. package/dist/services/storage/createStorageKeySchema/createStorageKeySchema.d.ts +1 -1
  149. package/dist/services/storage/createStorageKeySchema/createStorageKeySchema.d.ts.map +1 -1
  150. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  151. package/dist/utils/deferredPromise/createDeferredPromise.d.ts +1 -1
  152. package/dist/utils/deferredPromise/createDeferredPromise.d.ts.map +1 -1
  153. package/dist/utils/getChainFromVerifiedCredentialChain/getChainFromVerifiedCredentialChain.d.ts +1 -1
  154. package/dist/utils/getChainFromVerifiedCredentialChain/getChainFromVerifiedCredentialChain.d.ts.map +1 -1
  155. package/dist/utils/getNonce/getNonce.d.ts +1 -1
  156. package/dist/utils/observable/subscribeWithSelector/subscribeWithSelector.d.ts +1 -1
  157. package/dist/waas.cjs +7 -7
  158. package/dist/waas.cjs.map +1 -1
  159. package/dist/waas.esm.js +6 -6
  160. package/dist/waas.esm.js.map +1 -1
  161. package/dist/waas.native.esm.js +6 -6
  162. package/dist/waas.native.esm.js.map +1 -1
  163. package/dist/waasCore.cjs +26 -26
  164. package/dist/waasCore.cjs.map +1 -1
  165. package/dist/waasCore.esm.js +25 -25
  166. package/dist/waasCore.esm.js.map +1 -1
  167. package/dist/waasCore.native.esm.js +25 -25
  168. package/dist/waasCore.native.esm.js.map +1 -1
  169. package/package.json +4 -44
  170. package/android/build.gradle +0 -71
  171. package/android/src/main/java/xyz/dynamic/client/DynamicClientPackage.kt +0 -42
  172. package/android/src/main/java/xyz/dynamic/client/keychain/KeyStoreKeyManager.kt +0 -147
  173. package/android/src/main/java/xyz/dynamic/client/keychain/KeychainModule.kt +0 -85
  174. package/android/src/main/java/xyz/dynamic/client/manifest/ReactNativeManifestModule.kt +0 -25
  175. package/dist/InvalidParamError-DFpM4bIX.cjs.map +0 -1
  176. package/dist/InvalidParamError-F90z0K5r.native.esm.js.map +0 -1
  177. package/dist/InvalidParamError-WXK434H2.esm.js.map +0 -1
  178. package/dist/getNetworkProviderFromNetworkId-BV9lOcuP.cjs.map +0 -1
  179. package/dist/getNetworkProviderFromNetworkId-BVurb9VE.esm.js.map +0 -1
  180. package/dist/getNetworkProviderFromNetworkId-DbR2qejA.native.esm.js.map +0 -1
  181. package/dist/getSignedSessionId-CNkcX15D.cjs.map +0 -1
  182. package/dist/getSignedSessionId-DFiqF8_b.esm.js.map +0 -1
  183. package/dist/getSignedSessionId-DXtxIjxF.native.esm.js.map +0 -1
  184. package/dist/getVerifiedCredentialForWalletAccount-4eVkx2ZN.cjs.map +0 -1
  185. package/dist/getVerifiedCredentialForWalletAccount-6di80gqF.esm.js.map +0 -1
  186. package/dist/getVerifiedCredentialForWalletAccount-CHIZTYim.native.esm.js.map +0 -1
  187. package/dist/isMfaRequiredForAction-DKSH9YEU.esm.js.map +0 -1
  188. package/dist/isMfaRequiredForAction-ZwjmqVg-.cjs.map +0 -1
  189. package/dist/isMfaRequiredForAction-cJ294BGH.native.esm.js.map +0 -1
  190. package/dynamic-labs-sdk-client.podspec +0 -27
  191. package/ios/Keychain.h +0 -4
  192. package/ios/Keychain.mm +0 -101
  193. package/ios/ReactNativeManifest.h +0 -4
  194. package/ios/ReactNativeManifest.mm +0 -45
  195. package/ios/ReactNativeManifestImpl.swift +0 -20
  196. package/ios/SecureEnclaveKeyManager.swift +0 -180
  197. package/react-native.config.cjs +0 -14
  198. package/src/turboModules/NativeKeychain.native.spec.ts +0 -45
  199. package/src/turboModules/NativeKeychain.ts +0 -21
  200. package/src/turboModules/NativeReactNativeManifest.native.spec.ts +0 -55
  201. package/src/turboModules/NativeReactNativeManifest.ts +0 -29
@@ -1,45 +0,0 @@
1
- #import "ReactNativeManifest.h"
2
- #import <React/RCTBridgeModule.h>
3
- #import <DynamicClientSpec/DynamicClientSpec.h>
4
- #if __has_include(<dynamic_labs_sdk_client/dynamic_labs_sdk_client-Swift.h>)
5
- #import <dynamic_labs_sdk_client/dynamic_labs_sdk_client-Swift.h>
6
- #else
7
- #import "dynamic_labs_sdk_client-Swift.h"
8
- #endif
9
-
10
- #ifndef DYNAMIC_SDK_VERSION
11
- #define DYNAMIC_SDK_VERSION @"unknown"
12
- #endif
13
-
14
- @interface ReactNativeManifest () <NativeReactNativeManifestSpec> {
15
- ReactNativeManifestImpl *_impl;
16
- }
17
- @end
18
-
19
- @implementation ReactNativeManifest
20
-
21
- RCT_EXPORT_MODULE()
22
-
23
- - (instancetype)init {
24
- self = [super init];
25
- if (self) {
26
- _impl = [[ReactNativeManifestImpl alloc] initWithSdkVersion:DYNAMIC_SDK_VERSION];
27
- }
28
- return self;
29
- }
30
-
31
- - (NSDictionary *)getManifest {
32
- return [_impl getManifest];
33
- }
34
-
35
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
36
- (const facebook::react::ObjCTurboModule::InitParams &)params {
37
- return std::make_shared<facebook::react::NativeReactNativeManifestSpecJSI>(
38
- params);
39
- }
40
-
41
- + (BOOL)requiresMainQueueSetup {
42
- return NO;
43
- }
44
-
45
- @end
@@ -1,20 +0,0 @@
1
- import Foundation
2
-
3
- /// Swift implementation of the ReactNativeManifest module.
4
- /// Returns the SDK manifest (version + any future metadata) baked in at
5
- /// build time. The SDK version is passed through from the ObjC++ bridge
6
- /// via the DYNAMIC_SDK_VERSION preprocessor macro.
7
- @objc public class ReactNativeManifestImpl: NSObject {
8
-
9
- private let sdkVersion: String
10
-
11
- @objc public init(sdkVersion: String) {
12
- self.sdkVersion = sdkVersion
13
- }
14
-
15
- @objc public func getManifest() -> [String: Any] {
16
- return [
17
- "sdkVersion": sdkVersion
18
- ]
19
- }
20
- }
@@ -1,180 +0,0 @@
1
- import Foundation
2
- import Security
3
- import CryptoKit
4
-
5
- /// Secure Enclave key manager providing P-256 key generation, signing, and management.
6
- /// All public keys are returned in uncompressed SEC1 format (65 bytes: 04 || x || y).
7
- /// All binary data uses base64url encoding (RFC 4648 §5, no padding).
8
- @objc public class SecureEnclaveKeyManager: NSObject {
9
-
10
- @objc public func isAvailable() -> Bool {
11
- if #available(iOS 13.0, *) {
12
- return SecureEnclave.isAvailable
13
- }
14
- return false
15
- }
16
-
17
- @objc public func hasKey(_ tag: String) -> Bool {
18
- let query = baseQuery(for: tag, returning: true)
19
- var item: CFTypeRef?
20
- let status = SecItemCopyMatching(query as CFDictionary, &item)
21
- return status == errSecSuccess
22
- }
23
-
24
- @objc public func generateKeyPair(_ tag: String) throws -> String {
25
- let tagData = tag.data(using: .utf8)!
26
-
27
- let access = SecAccessControlCreateWithFlags(
28
- kCFAllocatorDefault,
29
- kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly,
30
- .privateKeyUsage,
31
- nil
32
- )!
33
-
34
- let attributes: [String: Any] = [
35
- kSecAttrKeyType as String: kSecAttrKeyTypeECSECPrimeRandom,
36
- kSecAttrKeySizeInBits as String: 256,
37
- kSecAttrTokenID as String: kSecAttrTokenIDSecureEnclave,
38
- kSecPrivateKeyAttrs as String: [
39
- kSecAttrIsPermanent as String: true,
40
- kSecAttrApplicationTag as String: tagData,
41
- kSecAttrAccessControl as String: access,
42
- ] as [String: Any],
43
- ]
44
-
45
- var error: Unmanaged<CFError>?
46
- guard let privateKey = SecKeyCreateRandomKey(attributes as CFDictionary, &error) else {
47
- throw NSError(
48
- domain: "SecureEnclaveKeyManager",
49
- code: 1,
50
- userInfo: [NSLocalizedDescriptionKey: "\(error!.takeRetainedValue())"]
51
- )
52
- }
53
-
54
- guard let publicKey = SecKeyCopyPublicKey(privateKey) else {
55
- throw NSError(
56
- domain: "SecureEnclaveKeyManager",
57
- code: 2,
58
- userInfo: [NSLocalizedDescriptionKey: "Failed to extract public key"]
59
- )
60
- }
61
-
62
- let publicKeyData = try exportPublicKey(publicKey)
63
- return base64urlEncode(publicKeyData)
64
- }
65
-
66
- /// Returns the base64url-encoded public key, or an empty string if the key does not exist.
67
- /// The ObjC++ bridge maps empty string to null.
68
- @objc public func getPublicKey(_ tag: String) throws -> String {
69
- let query = baseQuery(for: tag, returning: true)
70
- var item: CFTypeRef?
71
- let status = SecItemCopyMatching(query as CFDictionary, &item)
72
-
73
- guard status == errSecSuccess, let ref = item else {
74
- // Key not found — return empty string so the bridge can resolve null
75
- return ""
76
- }
77
-
78
- let privateKey = ref as! SecKey
79
- guard let publicKey = SecKeyCopyPublicKey(privateKey) else {
80
- throw NSError(
81
- domain: "SecureEnclaveKeyManager",
82
- code: 2,
83
- userInfo: [NSLocalizedDescriptionKey: "Failed to extract public key"]
84
- )
85
- }
86
-
87
- let publicKeyData = try exportPublicKey(publicKey)
88
- return base64urlEncode(publicKeyData)
89
- }
90
-
91
- @objc public func sign(_ tag: String, payload: String) throws -> String {
92
- let query = baseQuery(for: tag, returning: true)
93
- var item: CFTypeRef?
94
- let status = SecItemCopyMatching(query as CFDictionary, &item)
95
-
96
- guard status == errSecSuccess, let ref = item else {
97
- throw NSError(
98
- domain: "SecureEnclaveKeyManager",
99
- code: 3,
100
- userInfo: [NSLocalizedDescriptionKey: "Key not found for tag: \(tag)"]
101
- )
102
- }
103
-
104
- let privateKey = ref as! SecKey
105
-
106
- guard let payloadData = base64urlDecode(payload) else {
107
- throw NSError(
108
- domain: "SecureEnclaveKeyManager",
109
- code: 4,
110
- userInfo: [NSLocalizedDescriptionKey: "Invalid base64url payload"]
111
- )
112
- }
113
-
114
- var error: Unmanaged<CFError>?
115
- guard let signature = SecKeyCreateSignature(
116
- privateKey,
117
- .ecdsaSignatureMessageX962SHA256,
118
- payloadData as CFData,
119
- &error
120
- ) else {
121
- throw NSError(
122
- domain: "SecureEnclaveKeyManager",
123
- code: 5,
124
- userInfo: [NSLocalizedDescriptionKey: "\(error!.takeRetainedValue())"]
125
- )
126
- }
127
-
128
- return base64urlEncode(signature as Data)
129
- }
130
-
131
- @objc public func deleteKey(_ tag: String) {
132
- let query = baseQuery(for: tag, returning: false)
133
- SecItemDelete(query as CFDictionary)
134
- }
135
-
136
- // MARK: - Private helpers
137
-
138
- private func baseQuery(for tag: String, returning returnRef: Bool) -> [String: Any] {
139
- var query: [String: Any] = [
140
- kSecClass as String: kSecClassKey,
141
- kSecAttrApplicationTag as String: tag.data(using: .utf8)!,
142
- kSecAttrKeyType as String: kSecAttrKeyTypeECSECPrimeRandom,
143
- ]
144
- if returnRef {
145
- query[kSecReturnRef as String] = true
146
- }
147
- return query
148
- }
149
-
150
- private func exportPublicKey(_ publicKey: SecKey) throws -> Data {
151
- var error: Unmanaged<CFError>?
152
- guard let data = SecKeyCopyExternalRepresentation(publicKey, &error) else {
153
- throw NSError(
154
- domain: "SecureEnclaveKeyManager",
155
- code: 2,
156
- userInfo: [NSLocalizedDescriptionKey: "\(error!.takeRetainedValue())"]
157
- )
158
- }
159
- // SecKeyCopyExternalRepresentation returns uncompressed SEC1 (04 || x || y)
160
- return data as Data
161
- }
162
-
163
- private func base64urlEncode(_ data: Data) -> String {
164
- data.base64EncodedString()
165
- .replacingOccurrences(of: "+", with: "-")
166
- .replacingOccurrences(of: "/", with: "_")
167
- .replacingOccurrences(of: "=", with: "")
168
- }
169
-
170
- private func base64urlDecode(_ string: String) -> Data? {
171
- var base64 = string
172
- .replacingOccurrences(of: "-", with: "+")
173
- .replacingOccurrences(of: "_", with: "/")
174
- let remainder = base64.count % 4
175
- if remainder > 0 {
176
- base64 += String(repeating: "=", count: 4 - remainder)
177
- }
178
- return Data(base64Encoded: base64)
179
- }
180
- }
@@ -1,14 +0,0 @@
1
- module.exports = {
2
- dependency: {
3
- platforms: {
4
- ios: {
5
- podspecPath: `${__dirname}/dynamic-labs-sdk-client.podspec`,
6
- },
7
- android: {
8
- sourceDir: `${__dirname}/android`,
9
- packageImportPath: 'import xyz.dynamic.client.DynamicClientPackage;',
10
- packageInstance: 'new DynamicClientPackage()',
11
- },
12
- },
13
- },
14
- };
@@ -1,45 +0,0 @@
1
- /// <reference types="vitest/globals" />
2
-
3
- const turboModuleGetEnforcingMock = vi.fn();
4
-
5
- vi.mock('react-native', () => ({
6
- TurboModuleRegistry: {
7
- get getEnforcing() {
8
- return turboModuleGetEnforcingMock;
9
- },
10
- },
11
- }));
12
-
13
- describe('NativeKeychain', () => {
14
- const resolvedModule = {
15
- deleteKey: vi.fn(),
16
- generateKeyPair: vi.fn(),
17
- getPublicKey: vi.fn(),
18
- hasKey: vi.fn(),
19
- isAvailable: vi.fn(),
20
- sign: vi.fn(),
21
- };
22
-
23
- beforeEach(() => {
24
- vi.resetModules();
25
- turboModuleGetEnforcingMock.mockReturnValue(resolvedModule);
26
- });
27
-
28
- it('should expose the resolved module as the default export', async () => {
29
- const imported = await import('./NativeKeychain');
30
-
31
- expect(imported.default).toBe(resolvedModule);
32
- });
33
-
34
- it("should look up the native module under the 'Keychain' key that matches the iOS and Android registration", async () => {
35
- await import('./NativeKeychain');
36
-
37
- expect(turboModuleGetEnforcingMock).toHaveBeenCalledWith('Keychain');
38
- });
39
-
40
- it('should resolve the native module exactly once at import time', async () => {
41
- await import('./NativeKeychain');
42
-
43
- expect(turboModuleGetEnforcingMock).toHaveBeenCalledOnce();
44
- });
45
- });
@@ -1,21 +0,0 @@
1
- // This file is a TurboModule spec consumed by React Native codegen.
2
- // The `interface`, `default export`, and `react-native` import are hard
3
- // requirements of the codegen parser and intentionally deviate from the
4
- // project's conventions. Codegen discovers specs by the `Native*` filename
5
- // prefix, so this file cannot be renamed to `.native.ts`.
6
-
7
-
8
- import { type TurboModule, TurboModuleRegistry } from 'react-native';
9
-
10
-
11
- export interface Spec extends TurboModule {
12
- deleteKey(key: string): Promise<void>;
13
- generateKeyPair(key: string): Promise<{ publicKey: string }>;
14
- getPublicKey(key: string): Promise<{ publicKey: string } | null>;
15
- hasKey(key: string): Promise<boolean>;
16
- isAvailable(): Promise<boolean>;
17
- sign(key: string, payload: string): Promise<{ signature: string }>;
18
- }
19
-
20
- // eslint-disable-next-line import/no-default-export
21
- export default TurboModuleRegistry.getEnforcing<Spec>('Keychain');
@@ -1,55 +0,0 @@
1
- /// <reference types="vitest/globals" />
2
-
3
- const turboModuleGetMock = vi.fn();
4
-
5
- vi.mock('react-native', () => ({
6
- TurboModuleRegistry: {
7
- get get() {
8
- return turboModuleGetMock;
9
- },
10
- },
11
- }));
12
-
13
- describe('NativeReactNativeManifest', () => {
14
- beforeEach(() => {
15
- vi.resetModules();
16
- });
17
-
18
- describe('when the TurboModuleRegistry resolves the native module', () => {
19
- const resolvedModule = { getManifest: vi.fn() };
20
-
21
- beforeEach(() => {
22
- turboModuleGetMock.mockReturnValue(resolvedModule);
23
- });
24
-
25
- it('should expose the resolved module as the default export', async () => {
26
- const imported = await import('./NativeReactNativeManifest');
27
-
28
- expect(imported.default).toBe(resolvedModule);
29
- });
30
-
31
- it("should look up the native module under the 'ReactNativeManifest' key that matches the iOS and Android registration", async () => {
32
- await import('./NativeReactNativeManifest');
33
-
34
- expect(turboModuleGetMock).toHaveBeenCalledWith('ReactNativeManifest');
35
- });
36
-
37
- it('should resolve the native module exactly once at import time', async () => {
38
- await import('./NativeReactNativeManifest');
39
-
40
- expect(turboModuleGetMock).toHaveBeenCalledOnce();
41
- });
42
- });
43
-
44
- describe('when the TurboModuleRegistry cannot resolve the native module', () => {
45
- beforeEach(() => {
46
- turboModuleGetMock.mockReturnValue(null);
47
- });
48
-
49
- it('should expose null as the default export so consumers can surface a linking error', async () => {
50
- const imported = await import('./NativeReactNativeManifest');
51
-
52
- expect(imported.default).toBeNull();
53
- });
54
- });
55
- });
@@ -1,29 +0,0 @@
1
- /**
2
- * React Native TurboModule spec for the `ReactNativeManifest` native module.
3
- *
4
- * Consumed by React Native codegen to emit the Android/iOS native interfaces.
5
- * The filename must stay prefixed with `Native` — codegen's parser discovers
6
- * spec files by that convention and will silently skip anything else, leaving
7
- * the native module uncompiled. Do not rename this file.
8
- *
9
- * The `interface` keyword, the `default export`, and the locally-declared
10
- * `ReactNativeManifest` type are hard requirements of the codegen parser and
11
- * intentionally deviate from project conventions: codegen parses this file
12
- * statically and does NOT follow imported type aliases, so the return shape
13
- * must be defined inline here. The canonical type lives in
14
- * `nativeManifest.types.ts`; the `assertSameShape` line below is a TS-only
15
- * check that fails the build if the two definitions drift.
16
- */
17
-
18
- import { type TurboModule, TurboModuleRegistry } from 'react-native';
19
-
20
- export type ReactNativeManifest = {
21
- sdkVersion: string;
22
- };
23
-
24
- export interface Spec extends TurboModule {
25
- getManifest(): ReactNativeManifest;
26
- }
27
-
28
- // eslint-disable-next-line import/no-default-export -- codegen requires a default export of the TurboModule spec
29
- export default TurboModuleRegistry.get<Spec>('ReactNativeManifest');