@account-kit/react-native-signer 4.1.8-alpha

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 (158) hide show
  1. package/.github/actions/setup/action.yml +27 -0
  2. package/.github/workflows/ci.yml +157 -0
  3. package/.npmrc +1 -0
  4. package/.turbo/turbo-prepare.log +21 -0
  5. package/.watchmanconfig +1 -0
  6. package/README.md +37 -0
  7. package/account-kit-react-native-signer.podspec +41 -0
  8. package/android/build.gradle +132 -0
  9. package/android/generated/java/com/accountkit/reactnativesigner/NativeTEKStamperSpec.java +55 -0
  10. package/android/generated/jni/CMakeLists.txt +36 -0
  11. package/android/generated/jni/NativeTEKStamperSpec-generated.cpp +56 -0
  12. package/android/generated/jni/NativeTEKStamperSpec.h +31 -0
  13. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/ComponentDescriptors.cpp +22 -0
  14. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/ComponentDescriptors.h +24 -0
  15. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/EventEmitters.cpp +16 -0
  16. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/EventEmitters.h +17 -0
  17. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/NativeTEKStamperSpecJSI-generated.cpp +54 -0
  18. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/NativeTEKStamperSpecJSI.h +150 -0
  19. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/Props.cpp +19 -0
  20. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/Props.h +18 -0
  21. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/ShadowNodes.cpp +17 -0
  22. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/ShadowNodes.h +23 -0
  23. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/States.cpp +16 -0
  24. package/android/generated/jni/react/renderer/components/NativeTEKStamperSpec/States.h +19 -0
  25. package/android/gradle.properties +5 -0
  26. package/android/src/main/AndroidManifest.xml +3 -0
  27. package/android/src/main/java/com/accountkit/reactnativesigner/KeyExtensions.kt +77 -0
  28. package/android/src/main/java/com/accountkit/reactnativesigner/NativeTEKStamperModule.kt +234 -0
  29. package/android/src/main/java/com/accountkit/reactnativesigner/ReactNativeSignerPackage.kt +33 -0
  30. package/android/src/main/java/com/accountkit/reactnativesigner/TEKManager.kt +88 -0
  31. package/babel.config.js +5 -0
  32. package/example/.bundle/config +2 -0
  33. package/example/.watchmanconfig +1 -0
  34. package/example/Gemfile +9 -0
  35. package/example/README.md +79 -0
  36. package/example/android/app/build.gradle +133 -0
  37. package/example/android/app/debug.keystore +0 -0
  38. package/example/android/app/proguard-rules.pro +10 -0
  39. package/example/android/app/src/debug/AndroidManifest.xml +9 -0
  40. package/example/android/app/src/main/AndroidManifest.xml +17 -0
  41. package/example/android/app/src/main/java/accountkit/reactnativesigner/example/MainActivity.kt +27 -0
  42. package/example/android/app/src/main/java/accountkit/reactnativesigner/example/MainApplication.kt +48 -0
  43. package/example/android/app/src/main/res/drawable/rn_edit_text_material.xml +37 -0
  44. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  45. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  46. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  47. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  48. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  49. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  50. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  51. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  52. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  53. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  54. package/example/android/app/src/main/res/values/strings.xml +3 -0
  55. package/example/android/app/src/main/res/values/styles.xml +9 -0
  56. package/example/android/build.gradle +21 -0
  57. package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  58. package/example/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  59. package/example/android/gradle.properties +41 -0
  60. package/example/android/gradlew +252 -0
  61. package/example/android/gradlew.bat +94 -0
  62. package/example/android/settings.gradle +6 -0
  63. package/example/app.json +4 -0
  64. package/example/babel.config.js +12 -0
  65. package/example/index.js +6 -0
  66. package/example/ios/.xcode.env +11 -0
  67. package/example/ios/File.swift +6 -0
  68. package/example/ios/Podfile +47 -0
  69. package/example/ios/ReactNativeSignerExample/AppDelegate.h +6 -0
  70. package/example/ios/ReactNativeSignerExample/AppDelegate.mm +31 -0
  71. package/example/ios/ReactNativeSignerExample/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  72. package/example/ios/ReactNativeSignerExample/Images.xcassets/Contents.json +6 -0
  73. package/example/ios/ReactNativeSignerExample/Info.plist +52 -0
  74. package/example/ios/ReactNativeSignerExample/LaunchScreen.storyboard +47 -0
  75. package/example/ios/ReactNativeSignerExample/PrivacyInfo.xcprivacy +37 -0
  76. package/example/ios/ReactNativeSignerExample/main.m +10 -0
  77. package/example/ios/ReactNativeSignerExample-Bridging-Header.h +3 -0
  78. package/example/ios/ReactNativeSignerExample.xcodeproj/project.pbxproj +690 -0
  79. package/example/ios/ReactNativeSignerExample.xcodeproj/xcshareddata/xcschemes/ReactNativeSignerExample.xcscheme +98 -0
  80. package/example/ios/ReactNativeSignerExampleTests/Info.plist +24 -0
  81. package/example/ios/ReactNativeSignerExampleTests/ReactNativeSignerExampleTests.m +66 -0
  82. package/example/jest.config.js +3 -0
  83. package/example/metro.config.js +22 -0
  84. package/example/package.json +56 -0
  85. package/example/react-native.config.js +15 -0
  86. package/example/redirect-server/index.ts +19 -0
  87. package/example/src/App.tsx +30 -0
  88. package/example/src/screens/Home.tsx +149 -0
  89. package/example/turbo.json +38 -0
  90. package/ios/ReactNativeSigner.h +12 -0
  91. package/ios/ReactNativeSigner.mm +21 -0
  92. package/ios/generated/NativeTEKStamperSpec/ComponentDescriptors.cpp +22 -0
  93. package/ios/generated/NativeTEKStamperSpec/ComponentDescriptors.h +24 -0
  94. package/ios/generated/NativeTEKStamperSpec/EventEmitters.cpp +16 -0
  95. package/ios/generated/NativeTEKStamperSpec/EventEmitters.h +17 -0
  96. package/ios/generated/NativeTEKStamperSpec/NativeTEKStamperSpec-generated.mm +67 -0
  97. package/ios/generated/NativeTEKStamperSpec/NativeTEKStamperSpec.h +68 -0
  98. package/ios/generated/NativeTEKStamperSpec/Props.cpp +19 -0
  99. package/ios/generated/NativeTEKStamperSpec/Props.h +18 -0
  100. package/ios/generated/NativeTEKStamperSpec/RCTComponentViewHelpers.h +18 -0
  101. package/ios/generated/NativeTEKStamperSpec/ShadowNodes.cpp +17 -0
  102. package/ios/generated/NativeTEKStamperSpec/ShadowNodes.h +23 -0
  103. package/ios/generated/NativeTEKStamperSpec/States.cpp +16 -0
  104. package/ios/generated/NativeTEKStamperSpec/States.h +19 -0
  105. package/ios/generated/NativeTEKStamperSpecJSI-generated.cpp +54 -0
  106. package/ios/generated/NativeTEKStamperSpecJSI.h +150 -0
  107. package/lib/commonjs/NativeTEKStamper.js +9 -0
  108. package/lib/commonjs/NativeTEKStamper.js.map +1 -0
  109. package/lib/commonjs/client.js +103 -0
  110. package/lib/commonjs/client.js.map +1 -0
  111. package/lib/commonjs/index.js +13 -0
  112. package/lib/commonjs/index.js.map +1 -0
  113. package/lib/commonjs/signer.js +39 -0
  114. package/lib/commonjs/signer.js.map +1 -0
  115. package/lib/commonjs/utils/mmkv-localstorage-polyfill.js +38 -0
  116. package/lib/commonjs/utils/mmkv-localstorage-polyfill.js.map +1 -0
  117. package/lib/module/NativeTEKStamper.js +5 -0
  118. package/lib/module/NativeTEKStamper.js.map +1 -0
  119. package/lib/module/client.js +96 -0
  120. package/lib/module/client.js.map +1 -0
  121. package/lib/module/index.js +5 -0
  122. package/lib/module/index.js.map +1 -0
  123. package/lib/module/signer.js +33 -0
  124. package/lib/module/signer.js.map +1 -0
  125. package/lib/module/utils/mmkv-localstorage-polyfill.js +38 -0
  126. package/lib/module/utils/mmkv-localstorage-polyfill.js.map +1 -0
  127. package/lib/typescript/commonjs/package.json +1 -0
  128. package/lib/typescript/commonjs/src/NativeTEKStamper.d.ts +34 -0
  129. package/lib/typescript/commonjs/src/NativeTEKStamper.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/src/client.d.ts +107 -0
  131. package/lib/typescript/commonjs/src/client.d.ts.map +1 -0
  132. package/lib/typescript/commonjs/src/index.d.ts +2 -0
  133. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/src/signer.d.ts +185 -0
  135. package/lib/typescript/commonjs/src/signer.d.ts.map +1 -0
  136. package/lib/typescript/commonjs/src/utils/mmkv-localstorage-polyfill.d.ts +2 -0
  137. package/lib/typescript/commonjs/src/utils/mmkv-localstorage-polyfill.d.ts.map +1 -0
  138. package/lib/typescript/module/package.json +1 -0
  139. package/lib/typescript/module/src/NativeTEKStamper.d.ts +34 -0
  140. package/lib/typescript/module/src/NativeTEKStamper.d.ts.map +1 -0
  141. package/lib/typescript/module/src/client.d.ts +107 -0
  142. package/lib/typescript/module/src/client.d.ts.map +1 -0
  143. package/lib/typescript/module/src/index.d.ts +2 -0
  144. package/lib/typescript/module/src/index.d.ts.map +1 -0
  145. package/lib/typescript/module/src/signer.d.ts +185 -0
  146. package/lib/typescript/module/src/signer.d.ts.map +1 -0
  147. package/lib/typescript/module/src/utils/mmkv-localstorage-polyfill.d.ts +2 -0
  148. package/lib/typescript/module/src/utils/mmkv-localstorage-polyfill.d.ts.map +1 -0
  149. package/package.json +153 -0
  150. package/react-native.config.js +11 -0
  151. package/src/NativeTEKStamper.ts +42 -0
  152. package/src/client.ts +128 -0
  153. package/src/index.tsx +2 -0
  154. package/src/signer.ts +39 -0
  155. package/src/utils/mmkv-localstorage-polyfill.ts +41 -0
  156. package/tsconfig.build.json +4 -0
  157. package/tsconfig.json +30 -0
  158. package/turbo.json +9 -0
@@ -0,0 +1,67 @@
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: GenerateModuleObjCpp
8
+ *
9
+ * We create an umbrella header (and corresponding implementation) here since
10
+ * Cxx compilation in BUCK has a limitation: source-code producing genrule()s
11
+ * must have a single output. More files => more genrule()s => slower builds.
12
+ */
13
+
14
+ #import "NativeTEKStamperSpec.h"
15
+
16
+
17
+ @implementation NativeTEKStamperSpecBase
18
+
19
+
20
+ - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper
21
+ {
22
+ _eventEmitterCallback = std::move(eventEmitterCallbackWrapper->_eventEmitterCallback);
23
+ }
24
+ @end
25
+
26
+
27
+ namespace facebook::react {
28
+
29
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_init(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
30
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "init", @selector(init:reject:), args, count);
31
+ }
32
+
33
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
34
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "clear", @selector(clear), args, count);
35
+ }
36
+
37
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_publicKey(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
38
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, StringKind, "publicKey", @selector(publicKey), args, count);
39
+ }
40
+
41
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_injectCredentialBundle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
42
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "injectCredentialBundle", @selector(injectCredentialBundle:resolve:reject:), args, count);
43
+ }
44
+
45
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_stamp(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
46
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "stamp", @selector(stamp:resolve:reject:), args, count);
47
+ }
48
+
49
+ NativeTEKStamperSpecJSI::NativeTEKStamperSpecJSI(const ObjCTurboModule::InitParams &params)
50
+ : ObjCTurboModule(params) {
51
+
52
+ methodMap_["init"] = MethodMetadata {0, __hostFunction_NativeTEKStamperSpecJSI_init};
53
+
54
+
55
+ methodMap_["clear"] = MethodMetadata {0, __hostFunction_NativeTEKStamperSpecJSI_clear};
56
+
57
+
58
+ methodMap_["publicKey"] = MethodMetadata {0, __hostFunction_NativeTEKStamperSpecJSI_publicKey};
59
+
60
+
61
+ methodMap_["injectCredentialBundle"] = MethodMetadata {1, __hostFunction_NativeTEKStamperSpecJSI_injectCredentialBundle};
62
+
63
+
64
+ methodMap_["stamp"] = MethodMetadata {1, __hostFunction_NativeTEKStamperSpecJSI_stamp};
65
+
66
+ }
67
+ } // namespace facebook::react
@@ -0,0 +1,68 @@
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: GenerateModuleObjCpp
8
+ *
9
+ * We create an umbrella header (and corresponding implementation) here since
10
+ * Cxx compilation in BUCK has a limitation: source-code producing genrule()s
11
+ * must have a single output. More files => more genrule()s => slower builds.
12
+ */
13
+
14
+ #ifndef __cplusplus
15
+ #error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
16
+ #endif
17
+
18
+ // Avoid multiple includes of NativeTEKStamperSpec symbols
19
+ #ifndef NativeTEKStamperSpec_H
20
+ #define NativeTEKStamperSpec_H
21
+
22
+ #import <Foundation/Foundation.h>
23
+ #import <RCTRequired/RCTRequired.h>
24
+ #import <RCTTypeSafety/RCTConvertHelpers.h>
25
+ #import <RCTTypeSafety/RCTTypedModuleConstants.h>
26
+ #import <React/RCTBridgeModule.h>
27
+ #import <React/RCTCxxConvert.h>
28
+ #import <React/RCTManagedPointer.h>
29
+ #import <ReactCommon/RCTTurboModule.h>
30
+ #import <optional>
31
+ #import <vector>
32
+
33
+
34
+ @protocol NativeTEKStamperSpec <RCTBridgeModule, RCTTurboModule>
35
+
36
+ - (void)init:(RCTPromiseResolveBlock)resolve
37
+ reject:(RCTPromiseRejectBlock)reject;
38
+ - (void)clear;
39
+ - (NSString * _Nullable)publicKey;
40
+ - (void)injectCredentialBundle:(NSString *)bundle
41
+ resolve:(RCTPromiseResolveBlock)resolve
42
+ reject:(RCTPromiseRejectBlock)reject;
43
+ - (void)stamp:(NSString *)payload
44
+ resolve:(RCTPromiseResolveBlock)resolve
45
+ reject:(RCTPromiseRejectBlock)reject;
46
+
47
+ @end
48
+
49
+ @interface NativeTEKStamperSpecBase : NSObject {
50
+ @protected
51
+ facebook::react::EventEmitterCallback _eventEmitterCallback;
52
+ }
53
+ - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;
54
+
55
+
56
+ @end
57
+
58
+ namespace facebook::react {
59
+ /**
60
+ * ObjC++ class for module 'NativeTEKStamper'
61
+ */
62
+ class JSI_EXPORT NativeTEKStamperSpecJSI : public ObjCTurboModule {
63
+ public:
64
+ NativeTEKStamperSpecJSI(const ObjCTurboModule::InitParams &params);
65
+ };
66
+ } // namespace facebook::react
67
+
68
+ #endif // NativeTEKStamperSpec_H
@@ -0,0 +1,19 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GeneratePropsCpp.js
9
+ */
10
+
11
+ #include "Props.h"
12
+ #include <react/renderer/core/PropsParserContext.h>
13
+ #include <react/renderer/core/propsConversions.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+
19
+ } // namespace facebook::react
@@ -0,0 +1,18 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GeneratePropsH.js
9
+ */
10
+ #pragma once
11
+
12
+
13
+
14
+ namespace facebook::react {
15
+
16
+
17
+
18
+ } // namespace facebook::react
@@ -0,0 +1,18 @@
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: GenerateComponentHObjCpp.js
8
+ */
9
+
10
+ #import <Foundation/Foundation.h>
11
+ #import <React/RCTDefines.h>
12
+ #import <React/RCTLog.h>
13
+
14
+ NS_ASSUME_NONNULL_BEGIN
15
+
16
+
17
+
18
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,17 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateShadowNodeCpp.js
9
+ */
10
+
11
+ #include "ShadowNodes.h"
12
+
13
+ namespace facebook::react {
14
+
15
+
16
+
17
+ } // namespace facebook::react
@@ -0,0 +1,23 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateShadowNodeH.js
9
+ */
10
+
11
+ #pragma once
12
+
13
+ #include "EventEmitters.h"
14
+ #include "Props.h"
15
+ #include "States.h"
16
+ #include <react/renderer/components/view/ConcreteViewShadowNode.h>
17
+ #include <jsi/jsi.h>
18
+
19
+ namespace facebook::react {
20
+
21
+
22
+
23
+ } // namespace facebook::react
@@ -0,0 +1,16 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateStateCpp.js
9
+ */
10
+ #include "States.h"
11
+
12
+ namespace facebook::react {
13
+
14
+
15
+
16
+ } // namespace facebook::react
@@ -0,0 +1,19 @@
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: GenerateStateH.js
8
+ */
9
+ #pragma once
10
+
11
+ #ifdef ANDROID
12
+ #include <folly/dynamic.h>
13
+ #endif
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+
19
+ } // namespace facebook::react
@@ -0,0 +1,54 @@
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: GenerateModuleCpp.js
8
+ */
9
+
10
+ #include "NativeTEKStamperSpecJSI.h"
11
+
12
+ namespace facebook::react {
13
+
14
+ static jsi::Value __hostFunction_NativeTEKStamperCxxSpecJSI_init(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
15
+ return static_cast<NativeTEKStamperCxxSpecJSI *>(&turboModule)->init(
16
+ rt
17
+ );
18
+ }
19
+ static jsi::Value __hostFunction_NativeTEKStamperCxxSpecJSI_clear(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
20
+ static_cast<NativeTEKStamperCxxSpecJSI *>(&turboModule)->clear(
21
+ rt
22
+ );
23
+ return jsi::Value::undefined();
24
+ }
25
+ static jsi::Value __hostFunction_NativeTEKStamperCxxSpecJSI_publicKey(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
26
+ auto result = static_cast<NativeTEKStamperCxxSpecJSI *>(&turboModule)->publicKey(
27
+ rt
28
+ );
29
+ return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
30
+ }
31
+ static jsi::Value __hostFunction_NativeTEKStamperCxxSpecJSI_injectCredentialBundle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
32
+ return static_cast<NativeTEKStamperCxxSpecJSI *>(&turboModule)->injectCredentialBundle(
33
+ rt,
34
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
35
+ );
36
+ }
37
+ static jsi::Value __hostFunction_NativeTEKStamperCxxSpecJSI_stamp(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
38
+ return static_cast<NativeTEKStamperCxxSpecJSI *>(&turboModule)->stamp(
39
+ rt,
40
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
41
+ );
42
+ }
43
+
44
+ NativeTEKStamperCxxSpecJSI::NativeTEKStamperCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
45
+ : TurboModule("NativeTEKStamper", jsInvoker) {
46
+ methodMap_["init"] = MethodMetadata {0, __hostFunction_NativeTEKStamperCxxSpecJSI_init};
47
+ methodMap_["clear"] = MethodMetadata {0, __hostFunction_NativeTEKStamperCxxSpecJSI_clear};
48
+ methodMap_["publicKey"] = MethodMetadata {0, __hostFunction_NativeTEKStamperCxxSpecJSI_publicKey};
49
+ methodMap_["injectCredentialBundle"] = MethodMetadata {1, __hostFunction_NativeTEKStamperCxxSpecJSI_injectCredentialBundle};
50
+ methodMap_["stamp"] = MethodMetadata {1, __hostFunction_NativeTEKStamperCxxSpecJSI_stamp};
51
+ }
52
+
53
+
54
+ } // namespace facebook::react
@@ -0,0 +1,150 @@
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 - NativeTEKStamperTStamp
20
+
21
+ template <typename P0, typename P1>
22
+ struct NativeTEKStamperTStamp {
23
+ P0 stampHeaderName;
24
+ P1 stampHeaderValue;
25
+ bool operator==(const NativeTEKStamperTStamp &other) const {
26
+ return stampHeaderName == other.stampHeaderName && stampHeaderValue == other.stampHeaderValue;
27
+ }
28
+ };
29
+
30
+ template <typename T>
31
+ struct NativeTEKStamperTStampBridging {
32
+ static T types;
33
+
34
+ static T fromJs(
35
+ jsi::Runtime &rt,
36
+ const jsi::Object &value,
37
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
38
+ T result{
39
+ bridging::fromJs<decltype(types.stampHeaderName)>(rt, value.getProperty(rt, "stampHeaderName"), jsInvoker),
40
+ bridging::fromJs<decltype(types.stampHeaderValue)>(rt, value.getProperty(rt, "stampHeaderValue"), jsInvoker)};
41
+ return result;
42
+ }
43
+
44
+ #ifdef DEBUG
45
+ static jsi::String stampHeaderNameToJs(jsi::Runtime &rt, decltype(types.stampHeaderName) value) {
46
+ return bridging::toJs(rt, value);
47
+ }
48
+
49
+ static jsi::String stampHeaderValueToJs(jsi::Runtime &rt, decltype(types.stampHeaderValue) value) {
50
+ return bridging::toJs(rt, value);
51
+ }
52
+ #endif
53
+
54
+ static jsi::Object toJs(
55
+ jsi::Runtime &rt,
56
+ const T &value,
57
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
58
+ auto result = facebook::jsi::Object(rt);
59
+ result.setProperty(rt, "stampHeaderName", bridging::toJs(rt, value.stampHeaderName, jsInvoker));
60
+ result.setProperty(rt, "stampHeaderValue", bridging::toJs(rt, value.stampHeaderValue, jsInvoker));
61
+ return result;
62
+ }
63
+ };
64
+
65
+ class JSI_EXPORT NativeTEKStamperCxxSpecJSI : public TurboModule {
66
+ protected:
67
+ NativeTEKStamperCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
68
+
69
+ public:
70
+ virtual jsi::Value init(jsi::Runtime &rt) = 0;
71
+ virtual void clear(jsi::Runtime &rt) = 0;
72
+ virtual std::optional<jsi::String> publicKey(jsi::Runtime &rt) = 0;
73
+ virtual jsi::Value injectCredentialBundle(jsi::Runtime &rt, jsi::String bundle) = 0;
74
+ virtual jsi::Value stamp(jsi::Runtime &rt, jsi::String payload) = 0;
75
+
76
+ };
77
+
78
+ template <typename T>
79
+ class JSI_EXPORT NativeTEKStamperCxxSpec : public TurboModule {
80
+ public:
81
+ jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
82
+ return delegate_.get(rt, propName);
83
+ }
84
+
85
+ static constexpr std::string_view kModuleName = "NativeTEKStamper";
86
+
87
+ protected:
88
+ NativeTEKStamperCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
89
+ : TurboModule(std::string{NativeTEKStamperCxxSpec::kModuleName}, jsInvoker),
90
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
91
+
92
+
93
+ private:
94
+ class Delegate : public NativeTEKStamperCxxSpecJSI {
95
+ public:
96
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
97
+ NativeTEKStamperCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
98
+
99
+ }
100
+
101
+ jsi::Value init(jsi::Runtime &rt) override {
102
+ static_assert(
103
+ bridging::getParameterCount(&T::init) == 1,
104
+ "Expected init(...) to have 1 parameters");
105
+
106
+ return bridging::callFromJs<jsi::Value>(
107
+ rt, &T::init, jsInvoker_, instance_);
108
+ }
109
+ void clear(jsi::Runtime &rt) override {
110
+ static_assert(
111
+ bridging::getParameterCount(&T::clear) == 1,
112
+ "Expected clear(...) to have 1 parameters");
113
+
114
+ return bridging::callFromJs<void>(
115
+ rt, &T::clear, jsInvoker_, instance_);
116
+ }
117
+ std::optional<jsi::String> publicKey(jsi::Runtime &rt) override {
118
+ static_assert(
119
+ bridging::getParameterCount(&T::publicKey) == 1,
120
+ "Expected publicKey(...) to have 1 parameters");
121
+
122
+ return bridging::callFromJs<std::optional<jsi::String>>(
123
+ rt, &T::publicKey, jsInvoker_, instance_);
124
+ }
125
+ jsi::Value injectCredentialBundle(jsi::Runtime &rt, jsi::String bundle) override {
126
+ static_assert(
127
+ bridging::getParameterCount(&T::injectCredentialBundle) == 2,
128
+ "Expected injectCredentialBundle(...) to have 2 parameters");
129
+
130
+ return bridging::callFromJs<jsi::Value>(
131
+ rt, &T::injectCredentialBundle, jsInvoker_, instance_, std::move(bundle));
132
+ }
133
+ jsi::Value stamp(jsi::Runtime &rt, jsi::String payload) override {
134
+ static_assert(
135
+ bridging::getParameterCount(&T::stamp) == 2,
136
+ "Expected stamp(...) to have 2 parameters");
137
+
138
+ return bridging::callFromJs<jsi::Value>(
139
+ rt, &T::stamp, jsInvoker_, instance_, std::move(payload));
140
+ }
141
+
142
+ private:
143
+ friend class NativeTEKStamperCxxSpec;
144
+ T *instance_;
145
+ };
146
+
147
+ Delegate delegate_;
148
+ };
149
+
150
+ } // namespace facebook::react
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing("NativeTEKStamper");
9
+ //# sourceMappingURL=NativeTEKStamper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeTEKStamper.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAsCpCC,gCAAmB,CAACC,YAAY,CAC7C,kBACF,CAAC","ignoreList":[]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RNSignerClientParamsSchema = exports.RNSignerClient = void 0;
7
+ require("./utils/mmkv-localstorage-polyfill.js");
8
+ var _signer = require("@account-kit/signer");
9
+ var _NativeTEKStamper = _interopRequireDefault(require("./NativeTEKStamper.js"));
10
+ var _zod = require("zod");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ /* eslint-disable import/extensions */
13
+
14
+ const RNSignerClientParamsSchema = exports.RNSignerClientParamsSchema = _zod.z.object({
15
+ connection: _zod.z.custom(),
16
+ rootOrgId: _zod.z.string().optional()
17
+ });
18
+ // TODO: need to emit events
19
+ class RNSignerClient extends _signer.BaseSignerClient {
20
+ stamper = _NativeTEKStamper.default;
21
+ constructor(params) {
22
+ const {
23
+ connection,
24
+ rootOrgId
25
+ } = RNSignerClientParamsSchema.parse(params);
26
+ super({
27
+ stamper: _NativeTEKStamper.default,
28
+ rootOrgId: rootOrgId ?? "24c1acf5-810f-41e0-a503-d5d13fa8e830",
29
+ connection
30
+ });
31
+ }
32
+ async createAccount(params) {
33
+ if (params.type !== "email") {
34
+ throw new Error("Only email account creation is supported");
35
+ }
36
+ this.eventEmitter.emit("authenticating", {
37
+ type: "email"
38
+ });
39
+ const {
40
+ email,
41
+ expirationSeconds
42
+ } = params;
43
+ const publicKey = await this.stamper.init();
44
+ const response = await this.request("/v1/signup", {
45
+ email,
46
+ targetPublicKey: publicKey,
47
+ expirationSeconds,
48
+ redirectParams: params.redirectParams?.toString()
49
+ });
50
+ return response;
51
+ }
52
+ async initEmailAuth(params) {
53
+ this.eventEmitter.emit("authenticating", {
54
+ type: "email"
55
+ });
56
+ let targetPublicKey = await this.stamper.init();
57
+ return this.request("/v1/auth", {
58
+ email: params.email,
59
+ targetPublicKey
60
+ });
61
+ }
62
+ async completeAuthWithBundle(params) {
63
+ if (params.authenticatingType !== "email") {
64
+ throw new Error("Unsupported authenticating type");
65
+ }
66
+ this.eventEmitter.emit("authenticating", {
67
+ type: "email"
68
+ });
69
+ await this.stamper.init();
70
+ const result = await this.stamper.injectCredentialBundle(params.bundle);
71
+ if (!result) {
72
+ throw new Error("Failed to inject credential bundle");
73
+ }
74
+ const user = await this.whoami(params.orgId, params.idToken);
75
+ this.eventEmitter.emit(params.connectedEventName, user, params.bundle);
76
+ return user;
77
+ }
78
+ oauthWithRedirect(_args) {
79
+ throw new Error("Method not implemented.");
80
+ }
81
+ oauthWithPopup(_args) {
82
+ throw new Error("Method not implemented.");
83
+ }
84
+ async disconnect() {
85
+ this.user = undefined;
86
+ this.stamper.clear();
87
+ await this.stamper.init();
88
+ }
89
+ exportWallet(_params) {
90
+ throw new Error("Method not implemented.");
91
+ }
92
+ lookupUserWithPasskey(_user) {
93
+ throw new Error("Method not implemented.");
94
+ }
95
+ getOauthConfig() {
96
+ throw new Error("Method not implemented.");
97
+ }
98
+ getWebAuthnAttestation(_options, _userDetails) {
99
+ throw new Error("Method not implemented.");
100
+ }
101
+ }
102
+ exports.RNSignerClient = RNSignerClient;
103
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["require","_signer","_NativeTEKStamper","_interopRequireDefault","_zod","e","__esModule","default","RNSignerClientParamsSchema","exports","z","object","connection","custom","rootOrgId","string","optional","RNSignerClient","BaseSignerClient","stamper","NativeTEKStamper","constructor","params","parse","createAccount","type","Error","eventEmitter","emit","email","expirationSeconds","publicKey","init","response","request","targetPublicKey","redirectParams","toString","initEmailAuth","completeAuthWithBundle","authenticatingType","result","injectCredentialBundle","bundle","user","whoami","orgId","idToken","connectedEventName","oauthWithRedirect","_args","oauthWithPopup","disconnect","undefined","clear","exportWallet","_params","lookupUserWithPasskey","_user","getOauthConfig","getWebAuthnAttestation","_options","_userDetails"],"sourceRoot":"../../src","sources":["client.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "RNAlchemySigner", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _signer.RNAlchemySigner;
10
+ }
11
+ });
12
+ var _signer = require("./signer.js");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_signer","require"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RNAlchemySigner = void 0;
7
+ var _zod = require("zod");
8
+ var _signer = require("@account-kit/signer");
9
+ var _client = require("./client.js");
10
+ // eslint-disable-next-line import/extensions
11
+
12
+ const RNAlchemySignerParamsSchema = _zod.z.object({
13
+ client: _zod.z.custom().or(_client.RNSignerClientParamsSchema)
14
+ }).extend({
15
+ sessionConfig: _signer.SessionManagerParamsSchema.omit({
16
+ client: true,
17
+ storage: true
18
+ }).optional()
19
+ });
20
+ class RNAlchemySigner extends _signer.BaseAlchemySigner {
21
+ constructor(params) {
22
+ const {
23
+ sessionConfig,
24
+ ...params_
25
+ } = RNAlchemySignerParamsSchema.parse(params);
26
+ let client;
27
+ if ("connection" in params_.client) {
28
+ client = new _client.RNSignerClient(params_.client);
29
+ } else {
30
+ client = params_.client;
31
+ }
32
+ super({
33
+ client,
34
+ sessionConfig
35
+ });
36
+ }
37
+ }
38
+ exports.RNAlchemySigner = RNAlchemySigner;
39
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_zod","require","_signer","_client","RNAlchemySignerParamsSchema","z","object","client","custom","or","RNSignerClientParamsSchema","extend","sessionConfig","SessionManagerParamsSchema","omit","storage","optional","RNAlchemySigner","BaseAlchemySigner","constructor","params","params_","parse","RNSignerClient","exports"],"sourceRoot":"../../src","sources":["signer.ts"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,OAAA,GAAAF,OAAA;AADA;;AAGA,MAAMG,2BAA2B,GAAGC,MAAC,CAClCC,MAAM,CAAC;EACNC,MAAM,EAAEF,MAAC,CAACG,MAAM,CAAiB,CAAC,CAACC,EAAE,CAACC,kCAA0B;AAClE,CAAC,CAAC,CACDC,MAAM,CAAC;EACNC,aAAa,EAAEC,kCAA0B,CAACC,IAAI,CAAC;IAC7CP,MAAM,EAAE,IAAI;IACZQ,OAAO,EAAE;EACX,CAAC,CAAC,CAACC,QAAQ,CAAC;AACd,CAAC,CAAC;AAIG,MAAMC,eAAe,SAASC,yBAAiB,CAAiB;EACrEC,WAAWA,CAACC,MAA6B,EAAE;IACzC,MAAM;MAAER,aAAa;MAAE,GAAGS;IAAQ,CAAC,GACjCjB,2BAA2B,CAACkB,KAAK,CAACF,MAAM,CAAC;IAE3C,IAAIb,MAAsB;IAE1B,IAAI,YAAY,IAAIc,OAAO,CAACd,MAAM,EAAE;MAClCA,MAAM,GAAG,IAAIgB,sBAAc,CAACF,OAAO,CAACd,MAAM,CAAC;IAC7C,CAAC,MAAM;MACLA,MAAM,GAAGc,OAAO,CAACd,MAAM;IACzB;IACA,KAAK,CAAC;MACJA,MAAM;MACNK;IACF,CAAC,CAAC;EACJ;AACF;AAACY,OAAA,CAAAP,eAAA,GAAAA,eAAA","ignoreList":[]}