@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,27 @@
1
+ name: Setup
2
+ description: Setup Node.js and install dependencies
3
+
4
+ runs:
5
+ using: composite
6
+ steps:
7
+ - name: Setup Node.js
8
+ uses: actions/setup-node@v3
9
+ with:
10
+ node-version-file: .nvmrc
11
+
12
+ - name: Cache dependencies
13
+ id: yarn-cache
14
+ uses: actions/cache@v3
15
+ with:
16
+ path: |
17
+ **/node_modules
18
+ .yarn/install-state.gz
19
+ key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}-${{ hashFiles('**/package.json', '!node_modules/**') }}
20
+ restore-keys: |
21
+ ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
22
+ ${{ runner.os }}-yarn-
23
+
24
+ - name: Install dependencies
25
+ if: steps.yarn-cache.outputs.cache-hit != 'true'
26
+ run: yarn install --immutable
27
+ shell: bash
@@ -0,0 +1,157 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ merge_group:
10
+ types:
11
+ - checks_requested
12
+
13
+ jobs:
14
+ lint:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v3
19
+
20
+ - name: Setup
21
+ uses: ./.github/actions/setup
22
+
23
+ - name: Lint files
24
+ run: yarn lint
25
+
26
+ - name: Typecheck files
27
+ run: yarn typecheck
28
+
29
+ test:
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - name: Checkout
33
+ uses: actions/checkout@v3
34
+
35
+ - name: Setup
36
+ uses: ./.github/actions/setup
37
+
38
+ - name: Run unit tests
39
+ run: yarn test --maxWorkers=2 --coverage
40
+
41
+ build-library:
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - name: Checkout
45
+ uses: actions/checkout@v3
46
+
47
+ - name: Setup
48
+ uses: ./.github/actions/setup
49
+
50
+ - name: Build package
51
+ run: yarn prepare
52
+
53
+ build-android:
54
+ runs-on: ubuntu-latest
55
+ env:
56
+ TURBO_CACHE_DIR: .turbo/android
57
+ steps:
58
+ - name: Checkout
59
+ uses: actions/checkout@v3
60
+
61
+ - name: Setup
62
+ uses: ./.github/actions/setup
63
+
64
+ - name: Cache turborepo for Android
65
+ uses: actions/cache@v3
66
+ with:
67
+ path: ${{ env.TURBO_CACHE_DIR }}
68
+ key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }}
69
+ restore-keys: |
70
+ ${{ runner.os }}-turborepo-android-
71
+
72
+ - name: Check turborepo cache for Android
73
+ run: |
74
+ TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:android').cache.status")
75
+
76
+ if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
77
+ echo "turbo_cache_hit=1" >> $GITHUB_ENV
78
+ fi
79
+
80
+ - name: Install JDK
81
+ if: env.turbo_cache_hit != 1
82
+ uses: actions/setup-java@v3
83
+ with:
84
+ distribution: "zulu"
85
+ java-version: "17"
86
+
87
+ - name: Finalize Android SDK
88
+ if: env.turbo_cache_hit != 1
89
+ run: |
90
+ /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null"
91
+
92
+ - name: Cache Gradle
93
+ if: env.turbo_cache_hit != 1
94
+ uses: actions/cache@v3
95
+ with:
96
+ path: |
97
+ ~/.gradle/wrapper
98
+ ~/.gradle/caches
99
+ key: ${{ runner.os }}-gradle-${{ hashFiles('example/android/gradle/wrapper/gradle-wrapper.properties') }}
100
+ restore-keys: |
101
+ ${{ runner.os }}-gradle-
102
+
103
+ - name: Build example for Android
104
+ env:
105
+ JAVA_OPTS: "-XX:MaxHeapSize=6g"
106
+ run: |
107
+ yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}"
108
+
109
+ build-ios:
110
+ runs-on: macos-14
111
+ env:
112
+ TURBO_CACHE_DIR: .turbo/ios
113
+ steps:
114
+ - name: Checkout
115
+ uses: actions/checkout@v3
116
+
117
+ - name: Setup
118
+ uses: ./.github/actions/setup
119
+
120
+ - name: Cache turborepo for iOS
121
+ uses: actions/cache@v3
122
+ with:
123
+ path: ${{ env.TURBO_CACHE_DIR }}
124
+ key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }}
125
+ restore-keys: |
126
+ ${{ runner.os }}-turborepo-ios-
127
+
128
+ - name: Check turborepo cache for iOS
129
+ run: |
130
+ TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status")
131
+
132
+ if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
133
+ echo "turbo_cache_hit=1" >> $GITHUB_ENV
134
+ fi
135
+
136
+ - name: Cache cocoapods
137
+ if: env.turbo_cache_hit != 1
138
+ id: cocoapods-cache
139
+ uses: actions/cache@v3
140
+ with:
141
+ path: |
142
+ **/ios/Pods
143
+ key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }}
144
+ restore-keys: |
145
+ ${{ runner.os }}-cocoapods-
146
+
147
+ - name: Install cocoapods
148
+ if: env.turbo_cache_hit != 1 && steps.cocoapods-cache.outputs.cache-hit != 'true'
149
+ run: |
150
+ cd example/ios
151
+ pod install
152
+ env:
153
+ NO_FLIPPER: 1
154
+
155
+ - name: Build example for iOS
156
+ run: |
157
+ yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}"
package/.npmrc ADDED
@@ -0,0 +1 @@
1
+ //registry.npmjs.org/:_authToken=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
@@ -0,0 +1,21 @@
1
+
2
+ yarn run v1.22.22
3
+ warning package.json: No license field
4
+ $ bob build
5
+ ℹ Building target codegen
6
+ ℹ Building target commonjs
7
+ ℹ Cleaning up previous build at lib/commonjs
8
+ ℹ Building target module
9
+ ℹ Cleaning up previous build at lib/module
10
+ ℹ Building target typescript
11
+ ℹ Cleaning up previous build at lib/typescript
12
+ ℹ Cleaning up previous iOS codegen native code at ios/generated
13
+ ℹ Compiling 5 files in src with babel
14
+ ℹ Compiling 5 files in src with babel
15
+ ℹ Cleaning up previous Android codegen native code at android/generated
16
+ ℹ Generating type definitions with tsc
17
+ ✔ Wrote files to lib/module
18
+ ✔ Wrote files to lib/commonjs
19
+ ✔ Wrote definition files to lib/typescript
20
+ ✔ Generated native code with codegen
21
+ ✨ Done in 4.75s.
@@ -0,0 +1 @@
1
+ {}
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # @account-kit/react-native-signer (Alpha)
2
+
3
+ React Native compatible Alchemy signer impl
4
+
5
+ ## ⚠️ Alpha ⚠️
6
+
7
+ This is an alpha release of the library. Only the **Android** platform is supported at this time.
8
+
9
+ ## Installation
10
+
11
+ ```sh
12
+ npm install @account-kit/react-native-signer
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ This package requires the `react-native-mmkv` package installed in your project. Check out their [docs](https://github.com/mrousavy/react-native-mmkv) for installation instructions.
18
+
19
+ #### Deep Linking.
20
+
21
+ Your app will need to be configured to handle deep linking. Check out the React Native [docs](https://reactnative.dev/docs/linking#enabling-deep-links) for more information.
22
+ You will also need a way to trigger the deep link via a http or https url. This can be done in a viarety of ways ranging from universal links to setting up a custom redirect server.
23
+
24
+ See the [example app](./example) for usage information.
25
+
26
+ ## Contributing
27
+
28
+ 1. Clone the repo
29
+ 1. run `yarn` in the root of the repo
30
+ 1. make changes in `rn-signer/src`
31
+ 1. cd into `account-kit/rn-signer/example`
32
+ 1. add a `.env` file which contains `API_KEY={alchemy_api_key}`. This API Key needs to correspond to an app that has Embedded Accounts enabled (https://dashboard.alchemy.com/accounts).
33
+ 1. run `yarn android` to start the example app. You will need to make sure you do the env setup here: https://reactnative.dev/docs/set-up-your-environment to be able to run the app on android
34
+
35
+ ---
36
+
37
+ Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
@@ -0,0 +1,41 @@
1
+ require "json"
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+ folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
5
+
6
+ Pod::Spec.new do |s|
7
+ s.name = "account-kit-react-native-signer"
8
+ s.version = package["version"]
9
+ s.summary = package["description"]
10
+ s.homepage = package["homepage"]
11
+ s.license = package["license"]
12
+ s.authors = package["author"]
13
+
14
+ s.platforms = { :ios => min_ios_version_supported }
15
+ s.source = { :git => "https://github.com/moldy530/account-kit-react-native-signer.git", :tag => "#{s.version}" }
16
+
17
+ s.source_files = "ios/**/*.{h,m,mm,cpp}"
18
+
19
+ # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
20
+ # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
21
+ if respond_to?(:install_modules_dependencies, true)
22
+ install_modules_dependencies(s)
23
+ else
24
+ s.dependency "React-Core"
25
+
26
+ # Don't install the dependencies when we run `pod install` in the old architecture.
27
+ if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
28
+ s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
29
+ s.pod_target_xcconfig = {
30
+ "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
31
+ "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
32
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
33
+ }
34
+ s.dependency "React-Codegen"
35
+ s.dependency "RCT-Folly"
36
+ s.dependency "RCTRequired"
37
+ s.dependency "RCTTypeSafety"
38
+ s.dependency "ReactCommon/turbomodule/core"
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,132 @@
1
+ buildscript {
2
+ // Buildscript is evaluated before everything else so we can't use getExtOrDefault
3
+ def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["ReactNativeSigner_kotlinVersion"]
4
+
5
+ repositories {
6
+ google()
7
+ mavenCentral()
8
+ }
9
+
10
+ dependencies {
11
+ classpath "com.android.tools.build:gradle:7.2.1"
12
+ // noinspection DifferentKotlinGradleVersion
13
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
14
+ }
15
+ }
16
+
17
+ plugins {
18
+ id 'org.jetbrains.kotlin.plugin.serialization' version "$ReactNativeSigner_kotlinVersion"
19
+ }
20
+
21
+ def kotlin_version = getExtOrDefault("kotlinVersion")
22
+
23
+ def reactNativeArchitectures() {
24
+ def value = rootProject.getProperties().get("reactNativeArchitectures")
25
+ return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
26
+ }
27
+
28
+ def isNewArchitectureEnabled() {
29
+ return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
30
+ }
31
+
32
+ apply plugin: "com.android.library"
33
+ apply plugin: "kotlin-android"
34
+
35
+ if (isNewArchitectureEnabled()) {
36
+ apply plugin: "com.facebook.react"
37
+ }
38
+
39
+ def getExtOrDefault(name) {
40
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["ReactNativeSigner_" + name]
41
+ }
42
+
43
+ def getExtOrIntegerDefault(name) {
44
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativeSigner_" + name]).toInteger()
45
+ }
46
+
47
+ def supportsNamespace() {
48
+ def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
49
+ def major = parsed[0].toInteger()
50
+ def minor = parsed[1].toInteger()
51
+
52
+ // Namespace support was added in 7.3.0
53
+ return (major == 7 && minor >= 3) || major >= 8
54
+ }
55
+
56
+ android {
57
+ if (supportsNamespace()) {
58
+ namespace "com.accountkit.reactnativesigner"
59
+
60
+ sourceSets {
61
+ main {
62
+ manifest.srcFile "src/main/AndroidManifestNew.xml"
63
+ }
64
+ }
65
+ }
66
+
67
+ compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
68
+
69
+ defaultConfig {
70
+ minSdkVersion getExtOrIntegerDefault("minSdkVersion")
71
+ targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
72
+ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
73
+
74
+ }
75
+
76
+ buildFeatures {
77
+ buildConfig true
78
+ }
79
+
80
+ buildTypes {
81
+ release {
82
+ minifyEnabled false
83
+ }
84
+ }
85
+
86
+ lintOptions {
87
+ disable "GradleCompatible"
88
+ }
89
+
90
+ compileOptions {
91
+ sourceCompatibility JavaVersion.VERSION_1_8
92
+ targetCompatibility JavaVersion.VERSION_1_8
93
+ }
94
+
95
+ sourceSets {
96
+ main {
97
+ if (isNewArchitectureEnabled()) {
98
+ java.srcDirs += [
99
+ "generated/java",
100
+ "generated/jni"
101
+ ]
102
+ }
103
+ }
104
+ }
105
+ }
106
+
107
+ repositories {
108
+ mavenCentral()
109
+ google()
110
+ }
111
+
112
+ dependencies {
113
+ // For < 0.71, this will be from the local maven repo
114
+ // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
115
+ //noinspection GradleDynamicVersion
116
+ implementation "com.facebook.react:react-native:+"
117
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
118
+ implementation "javax.xml.bind:jaxb-api:2.3.1"
119
+ implementation "xerces:xercesImpl:2.12.2"
120
+ implementation "androidx.security:security-crypto:1.1.0-alpha06"
121
+ implementation "com.google.crypto.tink:tink-android:1.15.0"
122
+ implementation "org.bitcoinj:bitcoinj-core:0.16.3"
123
+ implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1"
124
+ }
125
+
126
+ if (isNewArchitectureEnabled()) {
127
+ react {
128
+ jsRootDir = file("../src/")
129
+ libraryName = "ReactNativeSigner"
130
+ codegenJavaPackageName = "com.accountkit.reactnativesigner"
131
+ }
132
+ }
@@ -0,0 +1,55 @@
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: GenerateModuleJavaSpec.js
9
+ *
10
+ * @nolint
11
+ */
12
+
13
+ package com.accountkit.reactnativesigner;
14
+
15
+ import com.facebook.proguard.annotations.DoNotStrip;
16
+ import com.facebook.react.bridge.Promise;
17
+ import com.facebook.react.bridge.ReactApplicationContext;
18
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
+ import com.facebook.react.bridge.ReactMethod;
20
+ import com.facebook.react.turbomodule.core.interfaces.TurboModule;
21
+ import javax.annotation.Nonnull;
22
+ import javax.annotation.Nullable;
23
+
24
+ public abstract class NativeTEKStamperSpec extends ReactContextBaseJavaModule implements TurboModule {
25
+ public static final String NAME = "NativeTEKStamper";
26
+
27
+ public NativeTEKStamperSpec(ReactApplicationContext reactContext) {
28
+ super(reactContext);
29
+ }
30
+
31
+ @Override
32
+ public @Nonnull String getName() {
33
+ return NAME;
34
+ }
35
+
36
+ @ReactMethod
37
+ @DoNotStrip
38
+ public abstract void init(Promise promise);
39
+
40
+ @ReactMethod
41
+ @DoNotStrip
42
+ public abstract void clear();
43
+
44
+ @ReactMethod(isBlockingSynchronousMethod = true)
45
+ @DoNotStrip
46
+ public abstract @Nullable String publicKey();
47
+
48
+ @ReactMethod
49
+ @DoNotStrip
50
+ public abstract void injectCredentialBundle(String bundle, Promise promise);
51
+
52
+ @ReactMethod
53
+ @DoNotStrip
54
+ public abstract void stamp(String payload, Promise promise);
55
+ }
@@ -0,0 +1,36 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ cmake_minimum_required(VERSION 3.13)
7
+ set(CMAKE_VERBOSE_MAKEFILE on)
8
+
9
+ file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/NativeTEKStamperSpec/*.cpp)
10
+
11
+ add_library(
12
+ react_codegen_NativeTEKStamperSpec
13
+ OBJECT
14
+ ${react_codegen_SRCS}
15
+ )
16
+
17
+ target_include_directories(react_codegen_NativeTEKStamperSpec PUBLIC . react/renderer/components/NativeTEKStamperSpec)
18
+
19
+ target_link_libraries(
20
+ react_codegen_NativeTEKStamperSpec
21
+ fbjni
22
+ jsi
23
+ # We need to link different libraries based on whether we are building rncore or not, that's necessary
24
+ # because we want to break a circular dependency between react_codegen_rncore and reactnative
25
+ reactnative
26
+ )
27
+
28
+ target_compile_options(
29
+ react_codegen_NativeTEKStamperSpec
30
+ PRIVATE
31
+ -DLOG_TAG=\"ReactNative\"
32
+ -fexceptions
33
+ -frtti
34
+ -std=c++20
35
+ -Wall
36
+ )
@@ -0,0 +1,56 @@
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: GenerateModuleJniCpp.js
9
+ */
10
+
11
+ #include "NativeTEKStamperSpec.h"
12
+
13
+ namespace facebook::react {
14
+
15
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_init(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
16
+ static jmethodID cachedMethodId = nullptr;
17
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "init", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
18
+ }
19
+
20
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
21
+ static jmethodID cachedMethodId = nullptr;
22
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "clear", "()V", args, count, cachedMethodId);
23
+ }
24
+
25
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_publicKey(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
26
+ static jmethodID cachedMethodId = nullptr;
27
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, StringKind, "publicKey", "()Ljava/lang/String;", args, count, cachedMethodId);
28
+ }
29
+
30
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_injectCredentialBundle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
31
+ static jmethodID cachedMethodId = nullptr;
32
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "injectCredentialBundle", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
33
+ }
34
+
35
+ static facebook::jsi::Value __hostFunction_NativeTEKStamperSpecJSI_stamp(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
36
+ static jmethodID cachedMethodId = nullptr;
37
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "stamp", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
38
+ }
39
+
40
+ NativeTEKStamperSpecJSI::NativeTEKStamperSpecJSI(const JavaTurboModule::InitParams &params)
41
+ : JavaTurboModule(params) {
42
+ methodMap_["init"] = MethodMetadata {0, __hostFunction_NativeTEKStamperSpecJSI_init};
43
+ methodMap_["clear"] = MethodMetadata {0, __hostFunction_NativeTEKStamperSpecJSI_clear};
44
+ methodMap_["publicKey"] = MethodMetadata {0, __hostFunction_NativeTEKStamperSpecJSI_publicKey};
45
+ methodMap_["injectCredentialBundle"] = MethodMetadata {1, __hostFunction_NativeTEKStamperSpecJSI_injectCredentialBundle};
46
+ methodMap_["stamp"] = MethodMetadata {1, __hostFunction_NativeTEKStamperSpecJSI_stamp};
47
+ }
48
+
49
+ std::shared_ptr<TurboModule> NativeTEKStamperSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
50
+ if (moduleName == "NativeTEKStamper") {
51
+ return std::make_shared<NativeTEKStamperSpecJSI>(params);
52
+ }
53
+ return nullptr;
54
+ }
55
+
56
+ } // namespace facebook::react
@@ -0,0 +1,31 @@
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: GenerateModuleJniH.js
9
+ */
10
+
11
+ #pragma once
12
+
13
+ #include <ReactCommon/JavaTurboModule.h>
14
+ #include <ReactCommon/TurboModule.h>
15
+ #include <jsi/jsi.h>
16
+
17
+ namespace facebook::react {
18
+
19
+ /**
20
+ * JNI C++ class for module 'NativeTEKStamper'
21
+ */
22
+ class JSI_EXPORT NativeTEKStamperSpecJSI : public JavaTurboModule {
23
+ public:
24
+ NativeTEKStamperSpecJSI(const JavaTurboModule::InitParams &params);
25
+ };
26
+
27
+
28
+ JSI_EXPORT
29
+ std::shared_ptr<TurboModule> NativeTEKStamperSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params);
30
+
31
+ } // namespace facebook::react
@@ -0,0 +1,22 @@
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: GenerateComponentDescriptorCpp.js
9
+ */
10
+
11
+ #include "ComponentDescriptors.h"
12
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
13
+ #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
14
+
15
+ namespace facebook::react {
16
+
17
+ void NativeTEKStamperSpec_registerComponentDescriptorsFromCodegen(
18
+ std::shared_ptr<const ComponentDescriptorProviderRegistry> registry) {
19
+
20
+ }
21
+
22
+ } // namespace facebook::react
@@ -0,0 +1,24 @@
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: GenerateComponentDescriptorH.js
9
+ */
10
+
11
+ #pragma once
12
+
13
+ #include "ShadowNodes.h"
14
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
15
+ #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
16
+
17
+ namespace facebook::react {
18
+
19
+
20
+
21
+ void NativeTEKStamperSpec_registerComponentDescriptorsFromCodegen(
22
+ std::shared_ptr<const ComponentDescriptorProviderRegistry> registry);
23
+
24
+ } // 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: GenerateEventEmitterCpp.js
9
+ */
10
+
11
+ #include "EventEmitters.h"
12
+
13
+
14
+ namespace facebook::react {
15
+
16
+ } // namespace facebook::react