mirror of
https://github.com/selfxyz/self.git
synced 2026-01-07 22:04:03 -05:00
SEL-56: Setup Yarn Workspaces (#584)
This commit is contained in:
3
.github/actions/yarn-install/action.yml
vendored
3
.github/actions/yarn-install/action.yml
vendored
@@ -22,9 +22,8 @@ runs:
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'yarn'
|
||||
cache-dependency-path: ${{ inputs.working_directory }}/yarn.lock
|
||||
cache-dependency-path: yarn.lock
|
||||
|
||||
- name: Install dependencies
|
||||
shell: bash
|
||||
run: yarn install --immutable
|
||||
working-directory: ${{ inputs.working_directory }}
|
||||
|
||||
10
.github/workflows/app.yml
vendored
10
.github/workflows/app.yml
vendored
@@ -3,6 +3,7 @@ name: App CI
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "common/**"
|
||||
- "app/**"
|
||||
- ".github/workflows/app.yml"
|
||||
- ".github/actions/**"
|
||||
@@ -14,8 +15,6 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
with:
|
||||
working_directory: ./app
|
||||
- name: Run linter
|
||||
run: yarn lint
|
||||
working-directory: ./app
|
||||
@@ -29,10 +28,9 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
with:
|
||||
working_directory: ./app
|
||||
- name: Install app dependencies
|
||||
run: yarn install-app
|
||||
|
||||
- name: Build
|
||||
run: yarn build:deps
|
||||
working-directory: ./app
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: OpenPassport CI/CD
|
||||
name: Self Circuits CI/CD
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
@@ -50,21 +50,19 @@ jobs:
|
||||
|
||||
- name: Print Circom version
|
||||
run: circom --version
|
||||
|
||||
- name: "enable yarn"
|
||||
run: corepack enable yarn
|
||||
- name: Install Yarn dependencies
|
||||
working-directory: ./circuits
|
||||
run: yarn install-circuits --immutable
|
||||
run: yarn workspaces focus @selfxyz/circuits
|
||||
|
||||
- name: Run lint
|
||||
working-directory: ./circuits
|
||||
run: yarn lint
|
||||
|
||||
- name: Build (Circuits + Self dependencies)
|
||||
run: yarn build:deps
|
||||
working-directory: ./circuits
|
||||
- name: Run Tests (Circuits)
|
||||
working-directory: ./circuits
|
||||
env:
|
||||
FULL_TEST_SUITE: false
|
||||
run: yarn test
|
||||
|
||||
- name: Run Tests (Common)
|
||||
working-directory: ./common
|
||||
run: yarn test
|
||||
41
.github/workflows/contracts.yml
vendored
Normal file
41
.github/workflows/contracts.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
name: Self Contracts CI/CD
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
- main
|
||||
paths:
|
||||
- 'contracts/**'
|
||||
- 'common/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
- main
|
||||
paths:
|
||||
- 'contracts/**'
|
||||
- 'common/**'
|
||||
jobs:
|
||||
test_contracts:
|
||||
if: github.event.pull_request.draft == false
|
||||
runs-on: ubuntu-latest
|
||||
environment: development
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set Node.js 20.x
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
- name: Build Common Dependencies
|
||||
run: yarn workspace @selfxyz/common build
|
||||
- name: Build Contracts)
|
||||
run: yarn build
|
||||
working-directory: ./contracts
|
||||
- name: Run Tests (Contracts)
|
||||
working-directory: ./contracts
|
||||
# skip until they get fixed
|
||||
if: false
|
||||
run: yarn test
|
||||
34
.github/workflows/general-checks.yml
vendored
Normal file
34
.github/workflows/general-checks.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: General Self CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
- name: Run linter
|
||||
run: yarn lint
|
||||
|
||||
type-check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
- name: Build dependencies
|
||||
shell: bash
|
||||
run: yarn types
|
||||
test-common:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
- name: Build dependencies
|
||||
shell: bash
|
||||
run: yarn workspace @selfxyz/common build
|
||||
- name: Run @selfxyz/common tests
|
||||
run: yarn workspace @selfxyz/common test
|
||||
85
.github/workflows/npm-publish.yml
vendored
85
.github/workflows/npm-publish.yml
vendored
@@ -7,6 +7,7 @@ on:
|
||||
paths:
|
||||
- 'sdk/core/package.json'
|
||||
- 'sdk/qrcode/package.json'
|
||||
- 'common/package.json'
|
||||
|
||||
jobs:
|
||||
detect-changes:
|
||||
@@ -14,54 +15,55 @@ jobs:
|
||||
outputs:
|
||||
core_changed: ${{ steps.check-version.outputs.core_changed }}
|
||||
qrcode_changed: ${{ steps.check-version.outputs.qrcode_changed }}
|
||||
common_changed: ${{ steps.check-version.outputs.common_changed }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
|
||||
- name: Check for version changes
|
||||
id: check-version
|
||||
run: |
|
||||
git diff HEAD^ HEAD --name-only | grep -q "sdk/core/package.json" && echo "core_changed=true" >> $GITHUB_OUTPUT || echo "core_changed=false" >> $GITHUB_OUTPUT
|
||||
git diff HEAD^ HEAD --name-only | grep -q "sdk/qrcode/package.json" && echo "qrcode_changed=true" >> $GITHUB_OUTPUT || echo "qrcode_changed=false" >> $GITHUB_OUTPUT
|
||||
|
||||
git diff HEAD^ HEAD --name-only | grep -q "common/package.json" && echo "common_changed=true" >> $GITHUB_OUTPUT || echo "common_changed=false" >> $GITHUB_OUTPUT
|
||||
|
||||
if git diff HEAD^ HEAD -- sdk/core/package.json | grep -q '"version":'; then
|
||||
echo "core_changed=true" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
|
||||
if git diff HEAD^ HEAD -- sdk/qrcode/package.json | grep -q '"version":'; then
|
||||
echo "qrcode_changed=true" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
if git diff HEAD^ HEAD -- common/package.json | grep -q '"version":'; then
|
||||
echo "common_changed=true" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
publish-core:
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.core_changed == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
- name: Install dependencies (common first)
|
||||
run: |
|
||||
cd common
|
||||
yarn install
|
||||
cd ../sdk/core
|
||||
yarn install
|
||||
|
||||
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
|
||||
- name: Build package
|
||||
run: |
|
||||
cd sdk/core
|
||||
yarn build
|
||||
|
||||
yarn workspace @selfxyz/core build:deps
|
||||
|
||||
- name: Publish to npm
|
||||
working-directory: sdk/core
|
||||
run: |
|
||||
cd sdk/core
|
||||
npm publish --access public
|
||||
yarn npm publish --access public
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
@@ -71,28 +73,49 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
- name: Install dependencies (common first)
|
||||
run: |
|
||||
cd common
|
||||
yarn install
|
||||
cd ../sdk/qrcode
|
||||
yarn install
|
||||
|
||||
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
|
||||
- name: Build package
|
||||
run: |
|
||||
cd sdk/qrcode
|
||||
yarn build
|
||||
|
||||
yarn workspace @sdk/qrcode build:deps
|
||||
|
||||
- name: Publish to npm
|
||||
working-directory: sdk/qrcode
|
||||
run: |
|
||||
cd sdk/qrcode
|
||||
npm publish --access public
|
||||
yarn npm publish --access public
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
publish-common:
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.common_changed == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
|
||||
- name: Build package
|
||||
run: |
|
||||
yarn workspace @selfxyz/common build
|
||||
|
||||
- name: Publish to npm
|
||||
working-directory: common
|
||||
run: |
|
||||
yarn npm publish --access public
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -7,4 +7,5 @@ dist
|
||||
showcase
|
||||
.codegpt
|
||||
**/.yarn/
|
||||
output/*
|
||||
output/*
|
||||
*.tsbuildinfo
|
||||
|
||||
3
.watchmanconfig
Normal file
3
.watchmanconfig
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
extends: ['@react-native', 'plugin:prettier/recommended'],
|
||||
plugins: ['simple-import-sort', 'prettier'],
|
||||
extends: [
|
||||
'@react-native',
|
||||
'plugin:prettier/recommended',
|
||||
'plugin:jest/recommended',
|
||||
],
|
||||
plugins: ['simple-import-sort', 'prettier', 'jest'],
|
||||
ignorePatterns: ['ios/', 'android/', 'deployments/', 'node_modules/'],
|
||||
rules: {
|
||||
// Import sorting rules
|
||||
1
app/.tool-versions
Normal file
1
app/.tool-versions
Normal file
@@ -0,0 +1 @@
|
||||
ruby 3.2.6
|
||||
@@ -1,3 +1,2 @@
|
||||
nodeLinker: node-modules
|
||||
enableScripts: true
|
||||
checksumBehavior: 'update'
|
||||
|
||||
@@ -32,10 +32,11 @@
|
||||
|
||||
> All of the commands in this guide are run from the `self/app` directory
|
||||
|
||||
Install dependencies
|
||||
Install dependencies + build
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
yarn install-app
|
||||
|
||||
```
|
||||
|
||||
### Android
|
||||
|
||||
@@ -12,13 +12,13 @@ apply plugin: 'com.google.gms.google-services'
|
||||
react {
|
||||
/* Folders */
|
||||
// The root of your project, i.e. where "package.json" lives. Default is '../..'
|
||||
// root = file("../../")
|
||||
root = file("../..")
|
||||
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
|
||||
// reactNativeDir = file("../../node_modules/react-native")
|
||||
reactNativeDir = file("../../../node_modules/react-native")
|
||||
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
|
||||
// codegenDir = file("../../node_modules/@react-native/codegen")
|
||||
codegenDir = file("../../../node_modules/@react-native/codegen")
|
||||
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
|
||||
// cliFile = file("../../node_modules/react-native/cli.js")
|
||||
cliFile = file("../../../node_modules/react-native/cli.js")
|
||||
|
||||
/* Variants */
|
||||
// The list of variants to that are debuggable. For those we're going to
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -37,10 +37,10 @@ allprojects {
|
||||
google()
|
||||
mavenCentral()
|
||||
maven {
|
||||
url("$rootDir/../node_modules/react-native/android")
|
||||
url("$rootDir/../../node_modules/react-native/android")
|
||||
}
|
||||
maven {
|
||||
url("$rootDir/../node_modules/jsc-android/dist")
|
||||
url("$rootDir/../../node_modules/jsc-android/dist")
|
||||
}
|
||||
maven { url 'https://jitpack.io' }
|
||||
jcenter()
|
||||
|
||||
@@ -8,90 +8,6 @@
|
||||
{
|
||||
"path": "src/assets/fonts/DINOT-Medium.otf",
|
||||
"sha1": "e993d15a13bc4e2c66dac255d7fa569486345f88"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Black.otf",
|
||||
"sha1": "5df89a5ca8b710fac50ccde5539bc2aececb184c"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-BlackItalic.otf",
|
||||
"sha1": "a2988d597f61e19ee05a4b7404086b8ca43d0731"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Bold.otf",
|
||||
"sha1": "892e9a770a5340e46c9c7d9f25fa2699d9275923"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-BoldItalic.otf",
|
||||
"sha1": "8774206d7703bfe27f6d5302e5385983c26e13a1"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraBold.otf",
|
||||
"sha1": "d458dab978fd1894de0eed6adacacb4853596473"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraBoldItalic.otf",
|
||||
"sha1": "e63778737330052f9015dbd76ba904fcf05b87d7"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraLight.otf",
|
||||
"sha1": "2c396705e77547af57076584bdd5895c2c81141a"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraLightItalic.otf",
|
||||
"sha1": "d367b8910d04480c7cf0be5bb87126170e676c2b"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Italic.otf",
|
||||
"sha1": "1d8db12a427db7418be418b77bafb9a916ac0534"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Light.otf",
|
||||
"sha1": "c89f3036b53490be4b25d15e9a3cd4caf3e67d0c"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-LightItalic.otf",
|
||||
"sha1": "6716c0590ef33f9ca0155cd5c5d99f8ca90b5834"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Medium.otf",
|
||||
"sha1": "279fa3c60d682531d549d0ec9ed91f1b83402d40"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-MediumItalic.otf",
|
||||
"sha1": "89d0a6cca45c1ac1cb30c1957b9520b703c42933"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Regular.otf",
|
||||
"sha1": "4786a0feb4c853189782709a5ac5b5dfb696942b"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-SemiBold.otf",
|
||||
"sha1": "ce2ccd0b91ffb1f8c894b6d60f21443e0769217c"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-SemiBoldItalic.otf",
|
||||
"sha1": "8cf127ce6e16f95dccdae0eb553493d625bd0756"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Thin.otf",
|
||||
"sha1": "b9a1ad08b8f1724544ae075d66c98b7fb507b80d"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ThinItalic.otf",
|
||||
"sha1": "cf2dcfd6aa812f641e3d2c81af69a6c553539083"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-silkscreen/files/slkscr.ttf",
|
||||
"sha1": "417bc8219cf9d819c538c052397f3352dda426a7"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-silkscreen/files/slkscr.woff",
|
||||
"sha1": "30d9b6f1b318c955d613dcf18d572f9aee9a35c8"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-silkscreen/files/slkscrb.ttf",
|
||||
"sha1": "a960fd4e201077cda027756743c344ffcb8285fb"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
|
||||
pluginManagement { includeBuild("../../node_modules/@react-native/gradle-plugin") }
|
||||
plugins { id("com.facebook.react.settings") }
|
||||
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
|
||||
rootProject.name = 'OpenPassport'
|
||||
include ':app'
|
||||
includeBuild('../node_modules/@react-native/gradle-plugin')
|
||||
includeBuild('../../node_modules/@react-native/gradle-plugin')
|
||||
include ':react-native-passport-reader'
|
||||
project(':react-native-passport-reader').projectDir = new File(rootProject.projectDir, './react-native-passport-reader/android')
|
||||
include ':passportreader'
|
||||
project(':passportreader').projectDir = new File(rootProject.projectDir, './android-passport-reader/app')
|
||||
project(':passportreader').projectDir = new File(rootProject.projectDir, './android-passport-reader/app')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"name": "OpenPassport",
|
||||
"displayName": "OpenPassport"
|
||||
"displayName": "Self App"
|
||||
}
|
||||
|
||||
@@ -18,14 +18,14 @@ class MRZScannerModule: NSObject, RCTBridgeModule {
|
||||
static func requiresMainQueueSetup() -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@objc func startScanning(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
|
||||
DispatchQueue.main.async {
|
||||
guard let rootViewController = UIApplication.shared.keyWindow?.rootViewController else {
|
||||
reject("error", "Unable to find root view controller", nil)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
var hostingController: UIHostingController<ScannerWithInstructions>? = nil
|
||||
var scannerView = QKMRZScannerViewRepresentable()
|
||||
let lottieView = LottieView(animationFileName: "passport", loopMode: .loop)
|
||||
@@ -34,21 +34,21 @@ class MRZScannerModule: NSObject, RCTBridgeModule {
|
||||
// Format dates to YYMMDD format
|
||||
let dateFormatter = DateFormatter()
|
||||
dateFormatter.dateFormat = "yyMMdd"
|
||||
|
||||
|
||||
let birthDate = scanResult.birthdate.map { dateFormatter.string(from: $0) } ?? ""
|
||||
let expiryDate = scanResult.expiryDate.map { dateFormatter.string(from: $0) } ?? ""
|
||||
|
||||
|
||||
let resultDict: [String: Any] = [
|
||||
"documentNumber": scanResult.documentNumber,
|
||||
"expiryDate": expiryDate,
|
||||
"birthDate": birthDate
|
||||
]
|
||||
resolve(resultDict)
|
||||
|
||||
|
||||
// Dismiss the hosting controller after scanning
|
||||
hostingController?.dismiss(animated: true, completion: nil)
|
||||
hostingController?.dismiss(animated: true, completion: nil)
|
||||
}
|
||||
|
||||
|
||||
// Wrap the scanner view and instruction text in a new SwiftUI view
|
||||
let scannerWithInstructions = ScannerWithInstructions(scannerView: scannerView, lottieView: lottieView)
|
||||
hostingController = UIHostingController(rootView: scannerWithInstructions)
|
||||
@@ -65,11 +65,11 @@ class MRZScannerModule: NSObject, RCTBridgeModule {
|
||||
struct ScannerWithInstructions: View {
|
||||
var scannerView: QKMRZScannerViewRepresentable
|
||||
var lottieView: LottieView
|
||||
|
||||
|
||||
var body: some View {
|
||||
ZStack {
|
||||
Color.white.ignoresSafeArea() // This creates a white background for the entire view
|
||||
|
||||
|
||||
VStack {
|
||||
ZStack {
|
||||
scannerView
|
||||
@@ -81,7 +81,6 @@ struct ScannerWithInstructions: View {
|
||||
}
|
||||
.frame(height: 320)
|
||||
Text("Hold your passport on a flat surface while scanning")
|
||||
.font(.custom("Inter-Regular", size: 20))
|
||||
.foregroundColor(.black)
|
||||
.multilineTextAlignment(.center)
|
||||
.frame(width: 300)
|
||||
@@ -89,4 +88,4 @@ struct ScannerWithInstructions: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string />
|
||||
<string></string>
|
||||
<key>CFBundleIconName</key>
|
||||
<string>AppIcon</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -24,53 +24,6 @@
|
||||
<string>2.5.2</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string />
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true />
|
||||
<key>NFCReaderUsageDescription</key>
|
||||
<string>Need NFC to read Passport</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<string />
|
||||
<!-- Do not change NSAllowsArbitraryLoads to true, or you will risk app rejection! -->
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<false />
|
||||
<key>NSAllowsLocalNetworking</key>
|
||||
<true />
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false />
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Needed to scan the passport MRZ.</string>
|
||||
<key>NSFaceIDUsageDescription</key>
|
||||
<string>Needed to secure the secret</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string />
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string />
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>We need access to your photo library to allow you to choose passport photos or save generated QR codes.</string>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false />
|
||||
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
|
||||
<array>
|
||||
<string>A0000002471001</string>
|
||||
<string>A0000002472001</string>
|
||||
<string>00000000000000</string>
|
||||
</array>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
@@ -80,30 +33,37 @@
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string></string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NFCReaderUsageDescription</key>
|
||||
<string>Need NFC to read Passport</string>
|
||||
<!-- Do not change NSAllowsArbitraryLoads to true, or you will risk app rejection! -->
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<false/>
|
||||
<key>NSAllowsLocalNetworking</key>
|
||||
<true/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<string></string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Needed to scan the passport MRZ.</string>
|
||||
<key>NSFaceIDUsageDescription</key>
|
||||
<string>Needed to secure the secret</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string></string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string></string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>We need access to your photo library to allow you to choose passport photos or save generated QR codes.</string>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>Advercase-Regular.otf</string>
|
||||
<string>DINOT-Medium.otf</string>
|
||||
<string>Inter-Black.otf</string>
|
||||
<string>Inter-BlackItalic.otf</string>
|
||||
<string>Inter-Bold.otf</string>
|
||||
<string>Inter-BoldItalic.otf</string>
|
||||
<string>Inter-ExtraBold.otf</string>
|
||||
<string>Inter-ExtraBoldItalic.otf</string>
|
||||
<string>Inter-ExtraLight.otf</string>
|
||||
<string>Inter-ExtraLightItalic.otf</string>
|
||||
<string>Inter-Italic.otf</string>
|
||||
<string>Inter-Light.otf</string>
|
||||
<string>Inter-LightItalic.otf</string>
|
||||
<string>Inter-Medium.otf</string>
|
||||
<string>Inter-MediumItalic.otf</string>
|
||||
<string>Inter-Regular.otf</string>
|
||||
<string>Inter-SemiBold.otf</string>
|
||||
<string>Inter-SemiBoldItalic.otf</string>
|
||||
<string>Inter-Thin.otf</string>
|
||||
<string>Inter-ThinItalic.otf</string>
|
||||
<string>slkscr.ttf</string>
|
||||
<string>slkscrb.ttf</string>
|
||||
</array>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
@@ -112,5 +72,27 @@
|
||||
<string>fetch</string>
|
||||
<string>remote-notification</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>UIStatusBarHidden</key>
|
||||
<false/>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
|
||||
<array>
|
||||
<string>A0000002471001</string>
|
||||
<string>A0000002472001</string>
|
||||
<string>00000000000000</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
source 'https://cdn.cocoapods.org/'
|
||||
use_frameworks!
|
||||
require "tmpdir"
|
||||
|
||||
@@ -30,7 +31,7 @@ target "Self" do
|
||||
pod "QKMRZScanner"
|
||||
pod "lottie-ios"
|
||||
pod "SwiftQRScanner", :git => "https://github.com/vinodiOS/SwiftQRScanner"
|
||||
pod "RNReactNativeHapticFeedback", :path => "../node_modules/react-native-haptic-feedback", :modular_headers => true
|
||||
pod "RNReactNativeHapticFeedback", :path => "../../node_modules/react-native-haptic-feedback", :modular_headers => true
|
||||
|
||||
use_react_native!(
|
||||
:path => config[:reactNativePath],
|
||||
|
||||
@@ -1406,7 +1406,7 @@ PODS:
|
||||
- React-Core
|
||||
- react-native-nfc-manager (3.16.1):
|
||||
- React-Core
|
||||
- react-native-quick-crypto (0.7.12):
|
||||
- react-native-quick-crypto (0.7.13):
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- OpenSSL-Universal
|
||||
@@ -1429,7 +1429,7 @@ PODS:
|
||||
- ReactCommon/turbomodule/bridging
|
||||
- ReactCommon/turbomodule/core
|
||||
- Yoga
|
||||
- react-native-safe-area-context (5.2.0):
|
||||
- react-native-safe-area-context (5.4.1):
|
||||
- React-Core
|
||||
- react-native-sqlite-storage (6.0.1):
|
||||
- React-Core
|
||||
@@ -1676,7 +1676,7 @@ PODS:
|
||||
- React-logger (= 0.75.4)
|
||||
- React-perflogger (= 0.75.4)
|
||||
- React-utils (= 0.75.4)
|
||||
- RNCAsyncStorage (2.1.1):
|
||||
- RNCAsyncStorage (2.1.2):
|
||||
- React-Core
|
||||
- RNCClipboard (1.13.2):
|
||||
- React-Core
|
||||
@@ -1690,7 +1690,7 @@ PODS:
|
||||
- FirebaseCoreExtension
|
||||
- React-Core
|
||||
- RNFBApp
|
||||
- RNGestureHandler (2.24.0):
|
||||
- RNGestureHandler (2.25.0):
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- RCT-Folly (= 2024.01.01.00)
|
||||
@@ -1711,7 +1711,7 @@ PODS:
|
||||
- ReactCommon/turbomodule/bridging
|
||||
- ReactCommon/turbomodule/core
|
||||
- Yoga
|
||||
- RNGoogleSignin (13.2.0):
|
||||
- RNGoogleSignin (13.3.1):
|
||||
- GoogleSignIn (~> 7.1)
|
||||
- React-Core
|
||||
- RNKeychain (10.0.0):
|
||||
@@ -1802,7 +1802,7 @@ PODS:
|
||||
- ReactCommon/turbomodule/core
|
||||
- Sentry/HybridSDK (= 8.48.0)
|
||||
- Yoga
|
||||
- RNSVG (15.11.1):
|
||||
- RNSVG (15.12.0):
|
||||
- React-Core
|
||||
- segment-analytics-react-native (2.21.0):
|
||||
- React-Core
|
||||
@@ -1820,103 +1820,103 @@ PODS:
|
||||
- Yoga (0.0.0)
|
||||
|
||||
DEPENDENCIES:
|
||||
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
|
||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||
- boost (from `../../node_modules/react-native/third-party-podspecs/boost.podspec`)
|
||||
- DoubleConversion (from `../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- FBLazyVector (from `../../node_modules/react-native/Libraries/FBLazyVector`)
|
||||
- Firebase
|
||||
- FirebaseCore
|
||||
- FirebaseCoreInternal
|
||||
- FirebaseMessaging
|
||||
- fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- fmt (from `../../node_modules/react-native/third-party-podspecs/fmt.podspec`)
|
||||
- glog (from `../../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- GoogleUtilities
|
||||
- lottie-ios
|
||||
- lottie-react-native (from `../node_modules/lottie-react-native`)
|
||||
- lottie-react-native (from `../../node_modules/lottie-react-native`)
|
||||
- NFCPassportReader (from `https://github.com/zk-passport/NFCPassportReader`, commit `e3e869b14fb7fb2417928079db3967f203523580`)
|
||||
- QKMRZScanner
|
||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
|
||||
- RCTRequired (from `../node_modules/react-native/Libraries/Required`)
|
||||
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
|
||||
- React (from `../node_modules/react-native/`)
|
||||
- React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
|
||||
- React-Core (from `../node_modules/react-native/`)
|
||||
- React-Core/RCTWebSocket (from `../node_modules/react-native/`)
|
||||
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
|
||||
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
|
||||
- React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
|
||||
- React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`)
|
||||
- React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`)
|
||||
- React-Fabric (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-FabricComponents (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-FabricImage (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`)
|
||||
- React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`)
|
||||
- React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`)
|
||||
- React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`)
|
||||
- React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
|
||||
- React-jsc (from `../node_modules/react-native/ReactCommon/jsc`)
|
||||
- React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`)
|
||||
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
|
||||
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
|
||||
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`)
|
||||
- React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`)
|
||||
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
|
||||
- React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`)
|
||||
- react-native-biometrics (from `../node_modules/react-native-biometrics`)
|
||||
- react-native-cloud-storage (from `../node_modules/react-native-cloud-storage`)
|
||||
- react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
|
||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||
- react-native-nfc-manager (from `../node_modules/react-native-nfc-manager`)
|
||||
- react-native-quick-crypto (from `../node_modules/react-native-quick-crypto`)
|
||||
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
|
||||
- react-native-sqlite-storage (from `../node_modules/react-native-sqlite-storage`)
|
||||
- React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
|
||||
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
|
||||
- React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`)
|
||||
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
|
||||
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
|
||||
- React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`)
|
||||
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
|
||||
- React-RCTFabric (from `../node_modules/react-native/React`)
|
||||
- React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
|
||||
- React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
|
||||
- React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
|
||||
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
|
||||
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
|
||||
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
||||
- React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`)
|
||||
- React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`)
|
||||
- React-rncore (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`)
|
||||
- React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`)
|
||||
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
|
||||
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
|
||||
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
|
||||
- RCT-Folly (from `../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCT-Folly/Fabric (from `../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCTDeprecation (from `../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
|
||||
- RCTRequired (from `../../node_modules/react-native/Libraries/Required`)
|
||||
- RCTTypeSafety (from `../../node_modules/react-native/Libraries/TypeSafety`)
|
||||
- React (from `../../node_modules/react-native/`)
|
||||
- React-callinvoker (from `../../node_modules/react-native/ReactCommon/callinvoker`)
|
||||
- React-Core (from `../../node_modules/react-native/`)
|
||||
- React-Core/RCTWebSocket (from `../../node_modules/react-native/`)
|
||||
- React-CoreModules (from `../../node_modules/react-native/React/CoreModules`)
|
||||
- React-cxxreact (from `../../node_modules/react-native/ReactCommon/cxxreact`)
|
||||
- React-debug (from `../../node_modules/react-native/ReactCommon/react/debug`)
|
||||
- React-defaultsnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/defaults`)
|
||||
- React-domnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/dom`)
|
||||
- React-Fabric (from `../../node_modules/react-native/ReactCommon`)
|
||||
- React-FabricComponents (from `../../node_modules/react-native/ReactCommon`)
|
||||
- React-FabricImage (from `../../node_modules/react-native/ReactCommon`)
|
||||
- React-featureflags (from `../../node_modules/react-native/ReactCommon/react/featureflags`)
|
||||
- React-featureflagsnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`)
|
||||
- React-graphics (from `../../node_modules/react-native/ReactCommon/react/renderer/graphics`)
|
||||
- React-idlecallbacksnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`)
|
||||
- React-ImageManager (from `../../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
|
||||
- React-jsc (from `../../node_modules/react-native/ReactCommon/jsc`)
|
||||
- React-jserrorhandler (from `../../node_modules/react-native/ReactCommon/jserrorhandler`)
|
||||
- React-jsi (from `../../node_modules/react-native/ReactCommon/jsi`)
|
||||
- React-jsiexecutor (from `../../node_modules/react-native/ReactCommon/jsiexecutor`)
|
||||
- React-jsinspector (from `../../node_modules/react-native/ReactCommon/jsinspector-modern`)
|
||||
- React-jsitracing (from `../../node_modules/react-native/ReactCommon/hermes/executor/`)
|
||||
- React-logger (from `../../node_modules/react-native/ReactCommon/logger`)
|
||||
- React-Mapbuffer (from `../../node_modules/react-native/ReactCommon`)
|
||||
- React-microtasksnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`)
|
||||
- react-native-biometrics (from `../../node_modules/react-native-biometrics`)
|
||||
- react-native-cloud-storage (from `../../node_modules/react-native-cloud-storage`)
|
||||
- react-native-get-random-values (from `../../node_modules/react-native-get-random-values`)
|
||||
- "react-native-netinfo (from `../../node_modules/@react-native-community/netinfo`)"
|
||||
- react-native-nfc-manager (from `../../node_modules/react-native-nfc-manager`)
|
||||
- react-native-quick-crypto (from `../../node_modules/react-native-quick-crypto`)
|
||||
- react-native-safe-area-context (from `../../node_modules/react-native-safe-area-context`)
|
||||
- react-native-sqlite-storage (from `../../node_modules/react-native-sqlite-storage`)
|
||||
- React-nativeconfig (from `../../node_modules/react-native/ReactCommon`)
|
||||
- React-NativeModulesApple (from `../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
|
||||
- React-perflogger (from `../../node_modules/react-native/ReactCommon/reactperflogger`)
|
||||
- React-performancetimeline (from `../../node_modules/react-native/ReactCommon/react/performance/timeline`)
|
||||
- React-RCTActionSheet (from `../../node_modules/react-native/Libraries/ActionSheetIOS`)
|
||||
- React-RCTAnimation (from `../../node_modules/react-native/Libraries/NativeAnimation`)
|
||||
- React-RCTAppDelegate (from `../../node_modules/react-native/Libraries/AppDelegate`)
|
||||
- React-RCTBlob (from `../../node_modules/react-native/Libraries/Blob`)
|
||||
- React-RCTFabric (from `../../node_modules/react-native/React`)
|
||||
- React-RCTImage (from `../../node_modules/react-native/Libraries/Image`)
|
||||
- React-RCTLinking (from `../../node_modules/react-native/Libraries/LinkingIOS`)
|
||||
- React-RCTNetwork (from `../../node_modules/react-native/Libraries/Network`)
|
||||
- React-RCTSettings (from `../../node_modules/react-native/Libraries/Settings`)
|
||||
- React-RCTText (from `../../node_modules/react-native/Libraries/Text`)
|
||||
- React-RCTVibration (from `../../node_modules/react-native/Libraries/Vibration`)
|
||||
- React-rendererconsistency (from `../../node_modules/react-native/ReactCommon/react/renderer/consistency`)
|
||||
- React-rendererdebug (from `../../node_modules/react-native/ReactCommon/react/renderer/debug`)
|
||||
- React-rncore (from `../../node_modules/react-native/ReactCommon`)
|
||||
- React-RuntimeApple (from `../../node_modules/react-native/ReactCommon/react/runtime/platform/ios`)
|
||||
- React-RuntimeCore (from `../../node_modules/react-native/ReactCommon/react/runtime`)
|
||||
- React-runtimeexecutor (from `../../node_modules/react-native/ReactCommon/runtimeexecutor`)
|
||||
- React-runtimescheduler (from `../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
|
||||
- React-utils (from `../../node_modules/react-native/ReactCommon/react/utils`)
|
||||
- ReactCodegen (from `build/generated/ios`)
|
||||
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
|
||||
- "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
|
||||
- "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)"
|
||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||
- "RNFBApp (from `../node_modules/@react-native-firebase/app`)"
|
||||
- "RNFBMessaging (from `../node_modules/@react-native-firebase/messaging`)"
|
||||
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
|
||||
- "RNGoogleSignin (from `../node_modules/@react-native-google-signin/google-signin`)"
|
||||
- RNKeychain (from `../node_modules/react-native-keychain`)
|
||||
- RNLocalize (from `../node_modules/react-native-localize`)
|
||||
- RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`)
|
||||
- RNScreens (from `../node_modules/react-native-screens`)
|
||||
- "RNSentry (from `../node_modules/@sentry/react-native`)"
|
||||
- RNSVG (from `../node_modules/react-native-svg`)
|
||||
- "segment-analytics-react-native (from `../node_modules/@segment/analytics-react-native`)"
|
||||
- ReactCommon/turbomodule/core (from `../../node_modules/react-native/ReactCommon`)
|
||||
- "RNCAsyncStorage (from `../../node_modules/@react-native-async-storage/async-storage`)"
|
||||
- "RNCClipboard (from `../../node_modules/@react-native-clipboard/clipboard`)"
|
||||
- RNDeviceInfo (from `../../node_modules/react-native-device-info`)
|
||||
- "RNFBApp (from `../../node_modules/@react-native-firebase/app`)"
|
||||
- "RNFBMessaging (from `../../node_modules/@react-native-firebase/messaging`)"
|
||||
- RNGestureHandler (from `../../node_modules/react-native-gesture-handler`)
|
||||
- "RNGoogleSignin (from `../../node_modules/@react-native-google-signin/google-signin`)"
|
||||
- RNKeychain (from `../../node_modules/react-native-keychain`)
|
||||
- RNLocalize (from `../../node_modules/react-native-localize`)
|
||||
- RNReactNativeHapticFeedback (from `../../node_modules/react-native-haptic-feedback`)
|
||||
- RNScreens (from `../../node_modules/react-native-screens`)
|
||||
- "RNSentry (from `../../node_modules/@sentry/react-native`)"
|
||||
- RNSVG (from `../../node_modules/react-native-svg`)
|
||||
- "segment-analytics-react-native (from `../../node_modules/@segment/analytics-react-native`)"
|
||||
- Sentry
|
||||
- SentryPrivate
|
||||
- "sovran-react-native (from `../node_modules/@segment/sovran-react-native`)"
|
||||
- "sovran-react-native (from `../../node_modules/@segment/sovran-react-native`)"
|
||||
- SwiftQRScanner (from `https://github.com/vinodiOS/SwiftQRScanner`)
|
||||
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
||||
- Yoga (from `../../node_modules/react-native/ReactCommon/yoga`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
@@ -1947,178 +1947,178 @@ SPEC REPOS:
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
boost:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
|
||||
:podspec: "../../node_modules/react-native/third-party-podspecs/boost.podspec"
|
||||
DoubleConversion:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||
:podspec: "../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||
FBLazyVector:
|
||||
:path: "../node_modules/react-native/Libraries/FBLazyVector"
|
||||
:path: "../../node_modules/react-native/Libraries/FBLazyVector"
|
||||
fmt:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec"
|
||||
:podspec: "../../node_modules/react-native/third-party-podspecs/fmt.podspec"
|
||||
glog:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
|
||||
:podspec: "../../node_modules/react-native/third-party-podspecs/glog.podspec"
|
||||
lottie-react-native:
|
||||
:path: "../node_modules/lottie-react-native"
|
||||
:path: "../../node_modules/lottie-react-native"
|
||||
NFCPassportReader:
|
||||
:commit: e3e869b14fb7fb2417928079db3967f203523580
|
||||
:git: https://github.com/zk-passport/NFCPassportReader
|
||||
RCT-Folly:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
|
||||
:podspec: "../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
|
||||
RCTDeprecation:
|
||||
:path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation"
|
||||
:path: "../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation"
|
||||
RCTRequired:
|
||||
:path: "../node_modules/react-native/Libraries/Required"
|
||||
:path: "../../node_modules/react-native/Libraries/Required"
|
||||
RCTTypeSafety:
|
||||
:path: "../node_modules/react-native/Libraries/TypeSafety"
|
||||
:path: "../../node_modules/react-native/Libraries/TypeSafety"
|
||||
React:
|
||||
:path: "../node_modules/react-native/"
|
||||
:path: "../../node_modules/react-native/"
|
||||
React-callinvoker:
|
||||
:path: "../node_modules/react-native/ReactCommon/callinvoker"
|
||||
:path: "../../node_modules/react-native/ReactCommon/callinvoker"
|
||||
React-Core:
|
||||
:path: "../node_modules/react-native/"
|
||||
:path: "../../node_modules/react-native/"
|
||||
React-CoreModules:
|
||||
:path: "../node_modules/react-native/React/CoreModules"
|
||||
:path: "../../node_modules/react-native/React/CoreModules"
|
||||
React-cxxreact:
|
||||
:path: "../node_modules/react-native/ReactCommon/cxxreact"
|
||||
:path: "../../node_modules/react-native/ReactCommon/cxxreact"
|
||||
React-debug:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/debug"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/debug"
|
||||
React-defaultsnativemodule:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/defaults"
|
||||
React-domnativemodule:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/dom"
|
||||
React-Fabric:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
:path: "../../node_modules/react-native/ReactCommon"
|
||||
React-FabricComponents:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
:path: "../../node_modules/react-native/ReactCommon"
|
||||
React-FabricImage:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
:path: "../../node_modules/react-native/ReactCommon"
|
||||
React-featureflags:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/featureflags"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/featureflags"
|
||||
React-featureflagsnativemodule:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags"
|
||||
React-graphics:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/renderer/graphics"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/renderer/graphics"
|
||||
React-idlecallbacksnativemodule:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks"
|
||||
React-ImageManager:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
|
||||
React-jsc:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsc"
|
||||
:path: "../../node_modules/react-native/ReactCommon/jsc"
|
||||
React-jserrorhandler:
|
||||
:path: "../node_modules/react-native/ReactCommon/jserrorhandler"
|
||||
:path: "../../node_modules/react-native/ReactCommon/jserrorhandler"
|
||||
React-jsi:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsi"
|
||||
:path: "../../node_modules/react-native/ReactCommon/jsi"
|
||||
React-jsiexecutor:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
|
||||
:path: "../../node_modules/react-native/ReactCommon/jsiexecutor"
|
||||
React-jsinspector:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsinspector-modern"
|
||||
:path: "../../node_modules/react-native/ReactCommon/jsinspector-modern"
|
||||
React-jsitracing:
|
||||
:path: "../node_modules/react-native/ReactCommon/hermes/executor/"
|
||||
:path: "../../node_modules/react-native/ReactCommon/hermes/executor/"
|
||||
React-logger:
|
||||
:path: "../node_modules/react-native/ReactCommon/logger"
|
||||
:path: "../../node_modules/react-native/ReactCommon/logger"
|
||||
React-Mapbuffer:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
:path: "../../node_modules/react-native/ReactCommon"
|
||||
React-microtasksnativemodule:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks"
|
||||
react-native-biometrics:
|
||||
:path: "../node_modules/react-native-biometrics"
|
||||
:path: "../../node_modules/react-native-biometrics"
|
||||
react-native-cloud-storage:
|
||||
:path: "../node_modules/react-native-cloud-storage"
|
||||
:path: "../../node_modules/react-native-cloud-storage"
|
||||
react-native-get-random-values:
|
||||
:path: "../node_modules/react-native-get-random-values"
|
||||
:path: "../../node_modules/react-native-get-random-values"
|
||||
react-native-netinfo:
|
||||
:path: "../node_modules/@react-native-community/netinfo"
|
||||
:path: "../../node_modules/@react-native-community/netinfo"
|
||||
react-native-nfc-manager:
|
||||
:path: "../node_modules/react-native-nfc-manager"
|
||||
:path: "../../node_modules/react-native-nfc-manager"
|
||||
react-native-quick-crypto:
|
||||
:path: "../node_modules/react-native-quick-crypto"
|
||||
:path: "../../node_modules/react-native-quick-crypto"
|
||||
react-native-safe-area-context:
|
||||
:path: "../node_modules/react-native-safe-area-context"
|
||||
:path: "../../node_modules/react-native-safe-area-context"
|
||||
react-native-sqlite-storage:
|
||||
:path: "../node_modules/react-native-sqlite-storage"
|
||||
:path: "../../node_modules/react-native-sqlite-storage"
|
||||
React-nativeconfig:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
:path: "../../node_modules/react-native/ReactCommon"
|
||||
React-NativeModulesApple:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
|
||||
React-perflogger:
|
||||
:path: "../node_modules/react-native/ReactCommon/reactperflogger"
|
||||
:path: "../../node_modules/react-native/ReactCommon/reactperflogger"
|
||||
React-performancetimeline:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/performance/timeline"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/performance/timeline"
|
||||
React-RCTActionSheet:
|
||||
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
|
||||
:path: "../../node_modules/react-native/Libraries/ActionSheetIOS"
|
||||
React-RCTAnimation:
|
||||
:path: "../node_modules/react-native/Libraries/NativeAnimation"
|
||||
:path: "../../node_modules/react-native/Libraries/NativeAnimation"
|
||||
React-RCTAppDelegate:
|
||||
:path: "../node_modules/react-native/Libraries/AppDelegate"
|
||||
:path: "../../node_modules/react-native/Libraries/AppDelegate"
|
||||
React-RCTBlob:
|
||||
:path: "../node_modules/react-native/Libraries/Blob"
|
||||
:path: "../../node_modules/react-native/Libraries/Blob"
|
||||
React-RCTFabric:
|
||||
:path: "../node_modules/react-native/React"
|
||||
:path: "../../node_modules/react-native/React"
|
||||
React-RCTImage:
|
||||
:path: "../node_modules/react-native/Libraries/Image"
|
||||
:path: "../../node_modules/react-native/Libraries/Image"
|
||||
React-RCTLinking:
|
||||
:path: "../node_modules/react-native/Libraries/LinkingIOS"
|
||||
:path: "../../node_modules/react-native/Libraries/LinkingIOS"
|
||||
React-RCTNetwork:
|
||||
:path: "../node_modules/react-native/Libraries/Network"
|
||||
:path: "../../node_modules/react-native/Libraries/Network"
|
||||
React-RCTSettings:
|
||||
:path: "../node_modules/react-native/Libraries/Settings"
|
||||
:path: "../../node_modules/react-native/Libraries/Settings"
|
||||
React-RCTText:
|
||||
:path: "../node_modules/react-native/Libraries/Text"
|
||||
:path: "../../node_modules/react-native/Libraries/Text"
|
||||
React-RCTVibration:
|
||||
:path: "../node_modules/react-native/Libraries/Vibration"
|
||||
:path: "../../node_modules/react-native/Libraries/Vibration"
|
||||
React-rendererconsistency:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/renderer/consistency"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/renderer/consistency"
|
||||
React-rendererdebug:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/renderer/debug"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/renderer/debug"
|
||||
React-rncore:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
:path: "../../node_modules/react-native/ReactCommon"
|
||||
React-RuntimeApple:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/runtime/platform/ios"
|
||||
React-RuntimeCore:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/runtime"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/runtime"
|
||||
React-runtimeexecutor:
|
||||
:path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
|
||||
:path: "../../node_modules/react-native/ReactCommon/runtimeexecutor"
|
||||
React-runtimescheduler:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
|
||||
React-utils:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/utils"
|
||||
:path: "../../node_modules/react-native/ReactCommon/react/utils"
|
||||
ReactCodegen:
|
||||
:path: build/generated/ios
|
||||
ReactCommon:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
:path: "../../node_modules/react-native/ReactCommon"
|
||||
RNCAsyncStorage:
|
||||
:path: "../node_modules/@react-native-async-storage/async-storage"
|
||||
:path: "../../node_modules/@react-native-async-storage/async-storage"
|
||||
RNCClipboard:
|
||||
:path: "../node_modules/@react-native-clipboard/clipboard"
|
||||
:path: "../../node_modules/@react-native-clipboard/clipboard"
|
||||
RNDeviceInfo:
|
||||
:path: "../node_modules/react-native-device-info"
|
||||
:path: "../../node_modules/react-native-device-info"
|
||||
RNFBApp:
|
||||
:path: "../node_modules/@react-native-firebase/app"
|
||||
:path: "../../node_modules/@react-native-firebase/app"
|
||||
RNFBMessaging:
|
||||
:path: "../node_modules/@react-native-firebase/messaging"
|
||||
:path: "../../node_modules/@react-native-firebase/messaging"
|
||||
RNGestureHandler:
|
||||
:path: "../node_modules/react-native-gesture-handler"
|
||||
:path: "../../node_modules/react-native-gesture-handler"
|
||||
RNGoogleSignin:
|
||||
:path: "../node_modules/@react-native-google-signin/google-signin"
|
||||
:path: "../../node_modules/@react-native-google-signin/google-signin"
|
||||
RNKeychain:
|
||||
:path: "../node_modules/react-native-keychain"
|
||||
:path: "../../node_modules/react-native-keychain"
|
||||
RNLocalize:
|
||||
:path: "../node_modules/react-native-localize"
|
||||
:path: "../../node_modules/react-native-localize"
|
||||
RNReactNativeHapticFeedback:
|
||||
:path: "../node_modules/react-native-haptic-feedback"
|
||||
:path: "../../node_modules/react-native-haptic-feedback"
|
||||
RNScreens:
|
||||
:path: "../node_modules/react-native-screens"
|
||||
:path: "../../node_modules/react-native-screens"
|
||||
RNSentry:
|
||||
:path: "../node_modules/@sentry/react-native"
|
||||
:path: "../../node_modules/@sentry/react-native"
|
||||
RNSVG:
|
||||
:path: "../node_modules/react-native-svg"
|
||||
:path: "../../node_modules/react-native-svg"
|
||||
segment-analytics-react-native:
|
||||
:path: "../node_modules/@segment/analytics-react-native"
|
||||
:path: "../../node_modules/@segment/analytics-react-native"
|
||||
sovran-react-native:
|
||||
:path: "../node_modules/@segment/sovran-react-native"
|
||||
:path: "../../node_modules/@segment/sovran-react-native"
|
||||
SwiftQRScanner:
|
||||
:git: https://github.com/vinodiOS/SwiftQRScanner
|
||||
Yoga:
|
||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||
:path: "../../node_modules/react-native/ReactCommon/yoga"
|
||||
|
||||
CHECKOUT OPTIONS:
|
||||
NFCPassportReader:
|
||||
@@ -2190,8 +2190,8 @@ SPEC CHECKSUMS:
|
||||
react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba
|
||||
react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187
|
||||
react-native-nfc-manager: a280ef94cd4871a471b052f0dc70381cf1223049
|
||||
react-native-quick-crypto: a7cc5f870f270488fee9047b56e481de85c32e33
|
||||
react-native-safe-area-context: 3e33e7c43c8b74dba436a5a32651cb8d7064c740
|
||||
react-native-quick-crypto: 2d8136faf9e82a8f396a9b5ad85203ac20212739
|
||||
react-native-safe-area-context: dde2052b903c11d677c320b599c3244021c34ce8
|
||||
react-native-sqlite-storage: 0c84826214baaa498796c7e46a5ccc9a82e114ed
|
||||
React-nativeconfig: 31072ab0146e643594f6959c7f970a04b6c9ddd0
|
||||
React-NativeModulesApple: 4ffcab4cdf34002540799bffbedd6466e8023c3a
|
||||
@@ -2216,21 +2216,21 @@ SPEC CHECKSUMS:
|
||||
React-runtimeexecutor: ea90d8e3a9e0f4326939858dafc6ab17c031a5d3
|
||||
React-runtimescheduler: 6b33edee8c830c7926670df4232d51f4f6a82795
|
||||
React-utils: 7198bd077f07ce8f9263c05bf610da6e251058ad
|
||||
ReactCodegen: a2d336e0bec3d2f45475df55e7a02cc4e4c19623
|
||||
ReactCodegen: fbd3d6af21ba08f12ccd0f542393393d21134ea5
|
||||
ReactCommon: b02a50498cb1071cd793044ddbd5d2b5f4db0a34
|
||||
RNCAsyncStorage: af7b591318005069c3795076addc83a4dd5c0a2e
|
||||
RNCAsyncStorage: b9f5f78da5d16a853fe3dc22e8268d932fc45a83
|
||||
RNCClipboard: 4abb037e8fe3b98a952564c9e0474f91c492df6d
|
||||
RNDeviceInfo: d863506092aef7e7af3a1c350c913d867d795047
|
||||
RNFBApp: 4097f75673f8b42a7cd1ba17e6ea85a94b45e4d1
|
||||
RNFBMessaging: 92325b0d5619ac90ef023a23cfd16fd3b91d0a88
|
||||
RNGestureHandler: 9c3877d98d4584891b69d16ebca855ac46507f4d
|
||||
RNGoogleSignin: b8760528f2a7cbe157ecfdcc13bdb7d2745c9389
|
||||
RNGestureHandler: ffb1f106c7a78377a2ae7568d51ccf87dc5c83c6
|
||||
RNGoogleSignin: 576a84dd0407b912e7a0adf07492de9feb79e5d9
|
||||
RNKeychain: 4990d9be2916c60f9ed4f8c484fcd7ced4828b86
|
||||
RNLocalize: 15463c4d79c7da45230064b4adcf5e9bb984667e
|
||||
RNReactNativeHapticFeedback: e19b9b2e2ecf5593de8c4ef1496e1e31ae227514
|
||||
RNScreens: b7e8d29c6be98f478bc3fb4a97cc770aa9ba7509
|
||||
RNSentry: c462461c0a5aaba206265f1f3db01b237cd33239
|
||||
RNSVG: 46769c92d1609e617dbf9326ad8a0cff912d0982
|
||||
RNSVG: e3ad69848b6357587545e0a49628b1148acf082c
|
||||
segment-analytics-react-native: dab2ae61d917629b8d040b572f9f7a11b2cc5940
|
||||
Sentry: 1ca8405451040482877dcd344dfa3ef80b646631
|
||||
SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe
|
||||
@@ -2240,6 +2240,6 @@ SPEC CHECKSUMS:
|
||||
SwiftyTesseract: 1f3d96668ae92dc2208d9842c8a59bea9fad2cbb
|
||||
Yoga: b05994d1933f507b0a28ceaa4fdb968dc18da178
|
||||
|
||||
PODFILE CHECKSUM: 4c1f9edcbeb4d0ce27f59c7f64ba1f803e06511d
|
||||
PODFILE CHECKSUM: 2b4d221f59ee4daed11d52338f4dd84d2081bcc6
|
||||
|
||||
COCOAPODS: 1.16.2
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
05D985FB2BB3344600F58EEA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 05D985FA2BB3344600F58EEA /* Assets.xcassets */; };
|
||||
12FDE04D2B784D978F7804C0 /* Inter-Black.otf in Resources */ = {isa = PBXBuildFile; fileRef = 4B261C28061D47B7B3BB3E37 /* Inter-Black.otf */; };
|
||||
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
|
||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
@@ -24,39 +23,19 @@
|
||||
1686F0E02C500FBD00841CDE /* QRScannerBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 1686F0DF2C500FBD00841CDE /* QRScannerBridge.m */; };
|
||||
16E6646E2B8D292500FDD6A0 /* QKMRZScannerViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16E6646D2B8D292500FDD6A0 /* QKMRZScannerViewRepresentable.swift */; };
|
||||
16E884A52C5BD764003B7125 /* passport.json in Resources */ = {isa = PBXBuildFile; fileRef = 16E884A42C5BD764003B7125 /* passport.json */; };
|
||||
4A1791A6108347E5A635DB1C /* Inter-ThinItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = EEA2A4D24A8F4B10A5ECA607 /* Inter-ThinItalic.otf */; };
|
||||
5008C8140A304ED79DB817C5 /* slkscrb.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B4E7218406B64A95BCE0DFE4 /* slkscrb.ttf */; };
|
||||
5C66B65890614C638590DC8A /* Inter-ExtraBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 8CE3CC4CFFC24314A22F1391 /* Inter-ExtraBold.otf */; };
|
||||
61037530CB0A4C159B892CDC /* Inter-ExtraLight.otf in Resources */ = {isa = PBXBuildFile; fileRef = 64F386964AAE4C1E8F2DF789 /* Inter-ExtraLight.otf */; };
|
||||
628102DA686542B2A5D06A54 /* Inter-SemiBoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 8448FE310A674E8DAA7F1CB5 /* Inter-SemiBoldItalic.otf */; };
|
||||
799E4D28B9494C6BAA389F52 /* Inter-Italic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 0C36821E5B014740853946D5 /* Inter-Italic.otf */; };
|
||||
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
|
||||
827AB97C3F4C4DA88293E5FF /* Inter-SemiBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 276287D0D37B4E8EBD7A1ABD /* Inter-SemiBold.otf */; };
|
||||
905B70052A72767900AFA232 /* PassportReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 905B70042A72767900AFA232 /* PassportReader.swift */; };
|
||||
905B70072A72774000AFA232 /* PassportReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 905B70062A72774000AFA232 /* PassportReader.m */; };
|
||||
9C694E1EF05C49DF85423A6A /* Inter-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 3BF771EA645241D9A28A3AE9 /* Inter-Bold.otf */; };
|
||||
A109328F471241A5A931D524 /* Inter-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 070CF9E82E3E45DAB6BBA375 /* Inter-Light.otf */; };
|
||||
AE6147EC2DC95A8D00445C0F /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = AE6147EB2DC95A8D00445C0F /* GoogleService-Info.plist */; };
|
||||
B0885FC3EE2A41A1AA97EEC0 /* Inter-LightItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = F4AE10DA498844DF8BF01948 /* Inter-LightItalic.otf */; };
|
||||
BF1044812DD53540009B3688 /* LiveMRZScannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1044802DD53540009B3688 /* LiveMRZScannerView.swift */; };
|
||||
BF1044832DD5354F009B3688 /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1044822DD5354F009B3688 /* CameraView.swift */; };
|
||||
BF1044852DD53570009B3688 /* MRZScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1044842DD53570009B3688 /* MRZScanner.swift */; };
|
||||
C9F1B4F4F38F49EF8723594E /* Inter-MediumItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 06064B357139453EB2788C18 /* Inter-MediumItalic.otf */; };
|
||||
CB116B311D63491FA54CCEE1 /* Inter-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = DD642F4F3A114B43A22296D7 /* Inter-Thin.otf */; };
|
||||
CC02892C62AE4BB5B7F769EA /* Inter-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = 15C30A8C4A6C42558DC9D78B /* Inter-Medium.otf */; };
|
||||
CC783A35ECCD4CC4FD708516 /* Pods_Self.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBF96649C103ADB7297A6A7F /* Pods_Self.framework */; };
|
||||
D427791AA5714251A5EAF8AD /* DINOT-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = 9BF744D9A73A4BAC96EC569A /* DINOT-Medium.otf */; };
|
||||
D7C083B0F0554047BA5E6BC0 /* slkscr.woff in Resources */ = {isa = PBXBuildFile; fileRef = C56F122245594D6DA9B7570A /* slkscr.woff */; };
|
||||
DAC618BCA5874DD8AD74FFFC /* Advercase-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 7E5C3CEF7EDA4871B3D0EBE1 /* Advercase-Regular.otf */; };
|
||||
DB83F88A19DB4E6583FFAE06 /* Inter-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6CF8D6DF98634423ACD5D630 /* Inter-Regular.otf */; };
|
||||
DC707B77BEF343F0A7B3DFDD /* slkscr.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7CCB5F83F57540E88D54B34A /* slkscr.ttf */; };
|
||||
E0825E4C214B4892954725F0 /* Inter-BoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 00B1702DFCD448D5897AAF17 /* Inter-BoldItalic.otf */; };
|
||||
E27FC7C055DE4CBDADEFAC29 /* Inter-BlackItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = D58C0CED91AE4265A5A406A0 /* Inter-BlackItalic.otf */; };
|
||||
E9F9A99C2D57FE2900E1362E /* PassportOCRViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F9A99A2D57FE2900E1362E /* PassportOCRViewManager.m */; };
|
||||
E9F9A99D2D57FE2900E1362E /* PassportOCRViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F9A99B2D57FE2900E1362E /* PassportOCRViewManager.swift */; };
|
||||
EBECCA4983EC6929A7722578 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = E56E082698598B41447667BB /* PrivacyInfo.xcprivacy */; };
|
||||
EEF3331B93C24D6482021BA2 /* Inter-ExtraLightItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 090474A3F07B4FFA82C9A751 /* Inter-ExtraLightItalic.otf */; };
|
||||
F1961109CC004035884F79D9 /* Inter-ExtraBoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 37A4DECF3A824D5BAA8863FD /* Inter-ExtraBoldItalic.otf */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
@@ -73,20 +52,14 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
00B1702DFCD448D5897AAF17 /* Inter-BoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BoldItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-BoldItalic.otf"; sourceTree = "<group>"; };
|
||||
05B4DDF62C7850A80067519E /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "OpenPassport App Clip/Images.xcassets"; sourceTree = "<group>"; };
|
||||
05D985FA2BB3344600F58EEA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = OpenPassport/Assets.xcassets; sourceTree = "<group>"; };
|
||||
06064B357139453EB2788C18 /* Inter-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-MediumItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-MediumItalic.otf"; sourceTree = "<group>"; };
|
||||
070CF9E82E3E45DAB6BBA375 /* Inter-Light.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Light.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Light.otf"; sourceTree = "<group>"; };
|
||||
090474A3F07B4FFA82C9A751 /* Inter-ExtraLightItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ExtraLightItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ExtraLightItalic.otf"; sourceTree = "<group>"; };
|
||||
0C36821E5B014740853946D5 /* Inter-Italic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Italic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Italic.otf"; sourceTree = "<group>"; };
|
||||
13B07F961A680F5B00A75B9A /* Self.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Self.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = OpenPassport/AppDelegate.h; sourceTree = "<group>"; };
|
||||
13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = OpenPassport/AppDelegate.mm; sourceTree = "<group>"; };
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = OpenPassport/Images.xcassets; sourceTree = "<group>"; };
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = OpenPassport/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = OpenPassport/main.m; sourceTree = "<group>"; };
|
||||
15C30A8C4A6C42558DC9D78B /* Inter-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Medium.otf"; sourceTree = "<group>"; };
|
||||
1608339E2D5CF89D00056417 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
1648EB772CC9564D003BEA7D /* LottieView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LottieView.swift; sourceTree = "<group>"; };
|
||||
164FD9662D569A640067E63B /* QRCodeScannerViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCodeScannerViewManager.swift; sourceTree = "<group>"; };
|
||||
@@ -100,40 +73,25 @@
|
||||
169349842CC694DA00166F21 /* OpenPassportDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = OpenPassportDebug.entitlements; path = OpenPassport/OpenPassportDebug.entitlements; sourceTree = "<group>"; };
|
||||
16E6646D2B8D292500FDD6A0 /* QKMRZScannerViewRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QKMRZScannerViewRepresentable.swift; sourceTree = "<group>"; };
|
||||
16E884A42C5BD764003B7125 /* passport.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = passport.json; sourceTree = "<group>"; };
|
||||
276287D0D37B4E8EBD7A1ABD /* Inter-SemiBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBold.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-SemiBold.otf"; sourceTree = "<group>"; };
|
||||
37A4DECF3A824D5BAA8863FD /* Inter-ExtraBoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ExtraBoldItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ExtraBoldItalic.otf"; sourceTree = "<group>"; };
|
||||
3BF771EA645241D9A28A3AE9 /* Inter-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Bold.otf"; sourceTree = "<group>"; };
|
||||
4B261C28061D47B7B3BB3E37 /* Inter-Black.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Black.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Black.otf"; sourceTree = "<group>"; };
|
||||
64F386964AAE4C1E8F2DF789 /* Inter-ExtraLight.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ExtraLight.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ExtraLight.otf"; sourceTree = "<group>"; };
|
||||
6CF8D6DF98634423ACD5D630 /* Inter-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Regular.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Regular.otf"; sourceTree = "<group>"; };
|
||||
73A8B182B1187BFE180CBB44 /* Pods-OpenPassport.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport.release.xcconfig"; path = "Target Support Files/Pods-OpenPassport/Pods-OpenPassport.release.xcconfig"; sourceTree = "<group>"; };
|
||||
7CCB5F83F57540E88D54B34A /* slkscr.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = slkscr.ttf; path = "../node_modules/@tamagui/font-silkscreen/files/slkscr.ttf"; sourceTree = "<group>"; };
|
||||
7E5C3CEF7EDA4871B3D0EBE1 /* Advercase-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Advercase-Regular.otf"; path = "../src/assets/fonts/Advercase-Regular.otf"; sourceTree = "<group>"; };
|
||||
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = OpenPassport/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
8448FE310A674E8DAA7F1CB5 /* Inter-SemiBoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBoldItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-SemiBoldItalic.otf"; sourceTree = "<group>"; };
|
||||
8CE3CC4CFFC24314A22F1391 /* Inter-ExtraBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ExtraBold.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ExtraBold.otf"; sourceTree = "<group>"; };
|
||||
905B70042A72767900AFA232 /* PassportReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PassportReader.swift; sourceTree = "<group>"; };
|
||||
905B70062A72774000AFA232 /* PassportReader.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PassportReader.m; sourceTree = "<group>"; };
|
||||
905B70082A729CD400AFA232 /* OpenPassport.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = OpenPassport.entitlements; path = OpenPassport/OpenPassport.entitlements; sourceTree = "<group>"; };
|
||||
9BF744D9A73A4BAC96EC569A /* DINOT-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "DINOT-Medium.otf"; path = "../src/assets/fonts/DINOT-Medium.otf"; sourceTree = "<group>"; };
|
||||
AE6147EB2DC95A8D00445C0F /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
B4E7218406B64A95BCE0DFE4 /* slkscrb.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = slkscrb.ttf; path = "../node_modules/@tamagui/font-silkscreen/files/slkscrb.ttf"; sourceTree = "<group>"; };
|
||||
BF1044802DD53540009B3688 /* LiveMRZScannerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveMRZScannerView.swift; sourceTree = "<group>"; };
|
||||
BF1044822DD5354F009B3688 /* CameraView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraView.swift; sourceTree = "<group>"; };
|
||||
BF1044842DD53570009B3688 /* MRZScanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MRZScanner.swift; sourceTree = "<group>"; };
|
||||
C56F122245594D6DA9B7570A /* slkscr.woff */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = slkscr.woff; path = "../node_modules/@tamagui/font-silkscreen/files/slkscr.woff"; sourceTree = "<group>"; };
|
||||
CA67A75B161A05334E3E9402 /* Pods-OpenPassport.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport.debug.xcconfig"; path = "Target Support Files/Pods-OpenPassport/Pods-OpenPassport.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
CBF96649C103ADB7297A6A7F /* Pods_Self.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Self.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D1CE52662C8B90B7EC435251 /* Pods-Self.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Self.debug.xcconfig"; path = "Target Support Files/Pods-Self/Pods-Self.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
D58C0CED91AE4265A5A406A0 /* Inter-BlackItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BlackItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-BlackItalic.otf"; sourceTree = "<group>"; };
|
||||
DD642F4F3A114B43A22296D7 /* Inter-Thin.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Thin.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Thin.otf"; sourceTree = "<group>"; };
|
||||
E56E082698598B41447667BB /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = OpenPassport/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
|
||||
E9F9A99A2D57FE2900E1362E /* PassportOCRViewManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PassportOCRViewManager.m; sourceTree = "<group>"; };
|
||||
E9F9A99B2D57FE2900E1362E /* PassportOCRViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PassportOCRViewManager.swift; sourceTree = "<group>"; };
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
ED3C4098AF3349976AE7513C /* Pods-Self.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Self.release.xcconfig"; path = "Target Support Files/Pods-Self/Pods-Self.release.xcconfig"; sourceTree = "<group>"; };
|
||||
EEA2A4D24A8F4B10A5ECA607 /* Inter-ThinItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ThinItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ThinItalic.otf"; sourceTree = "<group>"; };
|
||||
F4AE10DA498844DF8BF01948 /* Inter-LightItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-LightItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-LightItalic.otf"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -200,27 +158,6 @@
|
||||
children = (
|
||||
7E5C3CEF7EDA4871B3D0EBE1 /* Advercase-Regular.otf */,
|
||||
9BF744D9A73A4BAC96EC569A /* DINOT-Medium.otf */,
|
||||
4B261C28061D47B7B3BB3E37 /* Inter-Black.otf */,
|
||||
D58C0CED91AE4265A5A406A0 /* Inter-BlackItalic.otf */,
|
||||
3BF771EA645241D9A28A3AE9 /* Inter-Bold.otf */,
|
||||
00B1702DFCD448D5897AAF17 /* Inter-BoldItalic.otf */,
|
||||
8CE3CC4CFFC24314A22F1391 /* Inter-ExtraBold.otf */,
|
||||
37A4DECF3A824D5BAA8863FD /* Inter-ExtraBoldItalic.otf */,
|
||||
64F386964AAE4C1E8F2DF789 /* Inter-ExtraLight.otf */,
|
||||
090474A3F07B4FFA82C9A751 /* Inter-ExtraLightItalic.otf */,
|
||||
0C36821E5B014740853946D5 /* Inter-Italic.otf */,
|
||||
070CF9E82E3E45DAB6BBA375 /* Inter-Light.otf */,
|
||||
F4AE10DA498844DF8BF01948 /* Inter-LightItalic.otf */,
|
||||
15C30A8C4A6C42558DC9D78B /* Inter-Medium.otf */,
|
||||
06064B357139453EB2788C18 /* Inter-MediumItalic.otf */,
|
||||
6CF8D6DF98634423ACD5D630 /* Inter-Regular.otf */,
|
||||
276287D0D37B4E8EBD7A1ABD /* Inter-SemiBold.otf */,
|
||||
8448FE310A674E8DAA7F1CB5 /* Inter-SemiBoldItalic.otf */,
|
||||
DD642F4F3A114B43A22296D7 /* Inter-Thin.otf */,
|
||||
EEA2A4D24A8F4B10A5ECA607 /* Inter-ThinItalic.otf */,
|
||||
7CCB5F83F57540E88D54B34A /* slkscr.ttf */,
|
||||
B4E7218406B64A95BCE0DFE4 /* slkscrb.ttf */,
|
||||
C56F122245594D6DA9B7570A /* slkscr.woff */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
@@ -338,27 +275,6 @@
|
||||
EBECCA4983EC6929A7722578 /* PrivacyInfo.xcprivacy in Resources */,
|
||||
DAC618BCA5874DD8AD74FFFC /* Advercase-Regular.otf in Resources */,
|
||||
D427791AA5714251A5EAF8AD /* DINOT-Medium.otf in Resources */,
|
||||
12FDE04D2B784D978F7804C0 /* Inter-Black.otf in Resources */,
|
||||
E27FC7C055DE4CBDADEFAC29 /* Inter-BlackItalic.otf in Resources */,
|
||||
9C694E1EF05C49DF85423A6A /* Inter-Bold.otf in Resources */,
|
||||
E0825E4C214B4892954725F0 /* Inter-BoldItalic.otf in Resources */,
|
||||
5C66B65890614C638590DC8A /* Inter-ExtraBold.otf in Resources */,
|
||||
F1961109CC004035884F79D9 /* Inter-ExtraBoldItalic.otf in Resources */,
|
||||
61037530CB0A4C159B892CDC /* Inter-ExtraLight.otf in Resources */,
|
||||
EEF3331B93C24D6482021BA2 /* Inter-ExtraLightItalic.otf in Resources */,
|
||||
799E4D28B9494C6BAA389F52 /* Inter-Italic.otf in Resources */,
|
||||
A109328F471241A5A931D524 /* Inter-Light.otf in Resources */,
|
||||
B0885FC3EE2A41A1AA97EEC0 /* Inter-LightItalic.otf in Resources */,
|
||||
CC02892C62AE4BB5B7F769EA /* Inter-Medium.otf in Resources */,
|
||||
C9F1B4F4F38F49EF8723594E /* Inter-MediumItalic.otf in Resources */,
|
||||
DB83F88A19DB4E6583FFAE06 /* Inter-Regular.otf in Resources */,
|
||||
827AB97C3F4C4DA88293E5FF /* Inter-SemiBold.otf in Resources */,
|
||||
628102DA686542B2A5D06A54 /* Inter-SemiBoldItalic.otf in Resources */,
|
||||
CB116B311D63491FA54CCEE1 /* Inter-Thin.otf in Resources */,
|
||||
4A1791A6108347E5A635DB1C /* Inter-ThinItalic.otf in Resources */,
|
||||
DC707B77BEF343F0A7B3DFDD /* slkscr.ttf in Resources */,
|
||||
5008C8140A304ED79DB817C5 /* slkscrb.ttf in Resources */,
|
||||
D7C083B0F0554047BA5E6BC0 /* slkscr.woff in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -379,7 +295,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
|
||||
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
|
||||
};
|
||||
0C6411FE06C61E7F495D9204 /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
@@ -870,7 +786,7 @@
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
|
||||
USE_HERMES = false;
|
||||
@@ -963,7 +879,7 @@
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
USE_HERMES = false;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
|
||||
@@ -8,90 +8,6 @@
|
||||
{
|
||||
"path": "src/assets/fonts/DINOT-Medium.otf",
|
||||
"sha1": "e993d15a13bc4e2c66dac255d7fa569486345f88"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Black.otf",
|
||||
"sha1": "5df89a5ca8b710fac50ccde5539bc2aececb184c"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-BlackItalic.otf",
|
||||
"sha1": "a2988d597f61e19ee05a4b7404086b8ca43d0731"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Bold.otf",
|
||||
"sha1": "892e9a770a5340e46c9c7d9f25fa2699d9275923"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-BoldItalic.otf",
|
||||
"sha1": "8774206d7703bfe27f6d5302e5385983c26e13a1"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraBold.otf",
|
||||
"sha1": "d458dab978fd1894de0eed6adacacb4853596473"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraBoldItalic.otf",
|
||||
"sha1": "e63778737330052f9015dbd76ba904fcf05b87d7"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraLight.otf",
|
||||
"sha1": "2c396705e77547af57076584bdd5895c2c81141a"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ExtraLightItalic.otf",
|
||||
"sha1": "d367b8910d04480c7cf0be5bb87126170e676c2b"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Italic.otf",
|
||||
"sha1": "1d8db12a427db7418be418b77bafb9a916ac0534"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Light.otf",
|
||||
"sha1": "c89f3036b53490be4b25d15e9a3cd4caf3e67d0c"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-LightItalic.otf",
|
||||
"sha1": "6716c0590ef33f9ca0155cd5c5d99f8ca90b5834"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Medium.otf",
|
||||
"sha1": "279fa3c60d682531d549d0ec9ed91f1b83402d40"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-MediumItalic.otf",
|
||||
"sha1": "89d0a6cca45c1ac1cb30c1957b9520b703c42933"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Regular.otf",
|
||||
"sha1": "4786a0feb4c853189782709a5ac5b5dfb696942b"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-SemiBold.otf",
|
||||
"sha1": "ce2ccd0b91ffb1f8c894b6d60f21443e0769217c"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-SemiBoldItalic.otf",
|
||||
"sha1": "8cf127ce6e16f95dccdae0eb553493d625bd0756"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-Thin.otf",
|
||||
"sha1": "b9a1ad08b8f1724544ae075d66c98b7fb507b80d"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-inter/otf/Inter-ThinItalic.otf",
|
||||
"sha1": "cf2dcfd6aa812f641e3d2c81af69a6c553539083"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-silkscreen/files/slkscr.ttf",
|
||||
"sha1": "417bc8219cf9d819c538c052397f3352dda426a7"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-silkscreen/files/slkscr.woff",
|
||||
"sha1": "30d9b6f1b318c955d613dcf18d572f9aee9a35c8"
|
||||
},
|
||||
{
|
||||
"path": "node_modules/@tamagui/font-silkscreen/files/slkscrb.ttf",
|
||||
"sha1": "a960fd4e201077cda027756743c344ffcb8285fb"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -8,6 +8,5 @@ module.exports = {
|
||||
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$',
|
||||
moduleNameMapper: {
|
||||
'^@env$': '<rootDir>/tests/__setup__/@env.js',
|
||||
'^@openpassport/(.*)$': '<rootDir>/../common/node_modules/@openpassport/$1',
|
||||
},
|
||||
};
|
||||
@@ -1,17 +1,23 @@
|
||||
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
|
||||
const path = require('path');
|
||||
const path = require('node:path');
|
||||
const defaultConfig = getDefaultConfig(__dirname);
|
||||
const { assetExts, sourceExts } = defaultConfig.resolver;
|
||||
|
||||
const monorepoRoot = path.resolve(__dirname, '../');
|
||||
const commonPath = path.join(__dirname, '/../common');
|
||||
const trueMonorepoNodeModules = path.resolve(__dirname, '../node_modules');
|
||||
const extraNodeModules = {
|
||||
common: path.resolve(commonPath),
|
||||
stream: require.resolve('stream-browserify'),
|
||||
buffer: require.resolve('buffer'),
|
||||
util: require.resolve('util'),
|
||||
assert: require.resolve('assert'),
|
||||
'@babel/runtime': path.join(trueMonorepoNodeModules, '@babel/runtime'),
|
||||
};
|
||||
const watchFolders = [path.resolve(commonPath)];
|
||||
const watchFolders = [
|
||||
path.resolve(commonPath),
|
||||
trueMonorepoNodeModules,
|
||||
path.join(__dirname, 'src'),
|
||||
];
|
||||
|
||||
/**
|
||||
* Metro configuration
|
||||
@@ -27,6 +33,12 @@ const config = {
|
||||
},
|
||||
resolver: {
|
||||
extraNodeModules,
|
||||
nodeModulesPaths: [
|
||||
path.resolve(__dirname, 'node_modules'), // App's own node_modules
|
||||
path.resolve(monorepoRoot, 'node_modules'), // Monorepo root node_modules
|
||||
trueMonorepoNodeModules,
|
||||
// Add paths to other package workspaces if needed
|
||||
],
|
||||
assetExts: assetExts.filter(ext => ext !== 'svg'),
|
||||
sourceExts: [...sourceExts, 'svg'],
|
||||
},
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"name": "openpassport",
|
||||
"name": "@selfxyz/mobile-app",
|
||||
"version": "2.5.2",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"analyze:android": "yarn reinstall && react-native-bundle-visualizer --platform android --dev",
|
||||
"analyze:ios": "yarn reinstall && react-native-bundle-visualizer --platform ios --dev",
|
||||
@@ -14,7 +15,8 @@
|
||||
"bump-version:major": "npm version major && yarn sync-versions",
|
||||
"bump-version:minor": "npm version minor && yarn sync-versions",
|
||||
"bump-version:patch": "npm version patch && yarn sync-versions",
|
||||
"clean": "watchman watch-del-all && rm -rf node_modules ios/Pods ios/build android/app/build android/build .yarn/cache ios/.xcode.env.local",
|
||||
"types": "tsc --noEmit",
|
||||
"clean": "watchman watch-del-all && rm -rf ../node_modules ios/Pods ios/build android/app/build android/build ../.yarn/cache ios/.xcode.env.local",
|
||||
"clean:android": "rm -rf android/app/build android/build",
|
||||
"clean:ios": "rm -rf ios/Pods ios/build",
|
||||
"clean:xcode-env-local": "rm -f ios/.xcode.env.local",
|
||||
@@ -29,8 +31,9 @@
|
||||
"ia": "yarn install-app",
|
||||
"install-app": "yarn install-app:setup && cd ios && bundle exec pod install && cd .. && yarn clean:xcode-env-local",
|
||||
"install-app:deploy": "yarn install-app:setup && yarn clean:xcode-env-local",
|
||||
"install-app:setup": "cd ../common && yarn && cd ../app && yarn && cd ios && bundle install && cd ..",
|
||||
"install-app:setup": "yarn install && yarn build:deps && cd ios && bundle install && cd ..",
|
||||
"ios": "react-native run-ios",
|
||||
"build:deps": "yarn workspaces foreach --from @selfxyz/mobile-app --topological --recursive run build",
|
||||
"ios:fastlane-debug": "yarn reinstall && bundle exec fastlane --verbose ios internal_test",
|
||||
"lint": "eslint .",
|
||||
"lint:fix": "eslint --fix .",
|
||||
@@ -43,6 +46,7 @@
|
||||
"test": "jest --passWithNoTests"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.27.4",
|
||||
"@ethersproject/shims": "^5.7.0",
|
||||
"@openpassport/zk-kit-lean-imt": "^0.0.6",
|
||||
"@openpassport/zk-kit-smt": "^0.0.1",
|
||||
@@ -57,7 +61,8 @@
|
||||
"@react-navigation/native-stack": "^7.2.0",
|
||||
"@segment/analytics-react-native": "^2.21.0",
|
||||
"@segment/sovran-react-native": "^1.1.3",
|
||||
"@sentry/react-native": "^6.10.0",
|
||||
"@selfxyz/common": "workspace:^",
|
||||
"@sentry/react-native": "6.10.0",
|
||||
"@stablelib/cbor": "^2.0.1",
|
||||
"@tamagui/config": "1.110.0",
|
||||
"@tamagui/lucide-icons": "1.110.0",
|
||||
@@ -72,7 +77,7 @@
|
||||
"ethers": "^6.11.0",
|
||||
"expo-modules-core": "^2.2.1",
|
||||
"js-sha512": "^0.9.0",
|
||||
"lottie-react-native": "^7.2.2",
|
||||
"lottie-react-native": "7.2.2",
|
||||
"msgpack-lite": "^0.1.26",
|
||||
"node-forge": "^1.3.1",
|
||||
"pako": "^2.1.0",
|
||||
@@ -94,7 +99,7 @@
|
||||
"react-native-passport-reader": "^1.0.3",
|
||||
"react-native-quick-crypto": "^0.7.12",
|
||||
"react-native-safe-area-context": "^5.2.0",
|
||||
"react-native-screens": "^4.6.0",
|
||||
"react-native-screens": "4.9.0",
|
||||
"react-native-sqlite-storage": "^6.0.1",
|
||||
"react-native-svg": "^15.11.1",
|
||||
"socket.io-client": "^4.7.5",
|
||||
@@ -109,6 +114,7 @@
|
||||
"@react-native-community/cli": "^14.1.1",
|
||||
"@react-native/babel-preset": "0.75.4",
|
||||
"@react-native/eslint-config": "0.75.4",
|
||||
"@react-native/gradle-plugin": "^0.79.2",
|
||||
"@react-native/metro-config": "0.75.4",
|
||||
"@react-native/typescript-config": "0.75.4",
|
||||
"@tamagui/types": "1.110.0",
|
||||
@@ -128,6 +134,7 @@
|
||||
"@types/react-test-renderer": "^18",
|
||||
"eslint": "^8.19.0",
|
||||
"eslint-config-prettier": "^10.1.2",
|
||||
"eslint-plugin-jest": "^28.11.1",
|
||||
"eslint-plugin-prettier": "^5.2.6",
|
||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||
"jest": "^29.6.3",
|
||||
@@ -136,9 +143,8 @@
|
||||
"react-native-svg-transformer": "^1.5.0",
|
||||
"react-test-renderer": "^18.3.1",
|
||||
"stream-browserify": "^3.0.0",
|
||||
"typescript": "5.0.4"
|
||||
"typescript": "^5.8.3"
|
||||
},
|
||||
"packageManager": "yarn@4.5.0",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
|
||||
7
app/react-native.config.cjs
Normal file
7
app/react-native.config.cjs
Normal file
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
project: {
|
||||
ios: {},
|
||||
android: {},
|
||||
},
|
||||
assets: ['./src/assets/fonts'],
|
||||
};
|
||||
@@ -1,11 +0,0 @@
|
||||
module.exports = {
|
||||
project: {
|
||||
ios: {},
|
||||
android: {},
|
||||
},
|
||||
assets: [
|
||||
'./src/assets/fonts',
|
||||
'./node_modules/@tamagui/font-inter/otf',
|
||||
'./node_modules/@tamagui/font-silkscreen/files',
|
||||
],
|
||||
};
|
||||
@@ -1,11 +1,8 @@
|
||||
import type { SelfAppDisclosureConfig } from '@selfxyz/common';
|
||||
import { Country3LetterCode, countryCodes } from '@selfxyz/common';
|
||||
import React from 'react';
|
||||
import { XStack, YStack } from 'tamagui';
|
||||
|
||||
import {
|
||||
Country3LetterCode,
|
||||
countryCodes,
|
||||
} from '../../../common/src/constants/constants';
|
||||
import { SelfAppDisclosureConfig } from '../../../common/src/utils/appType';
|
||||
import { BodyText } from '../components/typography/BodyText';
|
||||
import CheckMark from '../images/icons/checkmark.svg';
|
||||
import { slate200, slate500 } from '../utils/colors';
|
||||
|
||||
@@ -7,9 +7,9 @@ import {
|
||||
} from 'react-native';
|
||||
|
||||
import { extractMRZInfo } from '../../utils/utils';
|
||||
import { RCTFragment, RCTFragmentViewManagerProps } from './RCTFragment';
|
||||
import { RCTFragment } from './RCTFragment';
|
||||
|
||||
interface RCTPassportOCRViewManagerProps extends RCTFragmentViewManagerProps {
|
||||
interface NativePassportOCRViewProps {
|
||||
onPassportRead: (
|
||||
event: NativeSyntheticEvent<{
|
||||
data:
|
||||
@@ -23,11 +23,21 @@ interface RCTPassportOCRViewManagerProps extends RCTFragmentViewManagerProps {
|
||||
};
|
||||
}>,
|
||||
) => void;
|
||||
onError: (
|
||||
event: NativeSyntheticEvent<{
|
||||
error: string;
|
||||
errorMessage: string;
|
||||
stackTrace: string;
|
||||
}>,
|
||||
) => void;
|
||||
style?: any; // Or a more specific style type if available
|
||||
}
|
||||
|
||||
const RCTPassportOCRViewNativeComponent = Platform.select({
|
||||
ios: requireNativeComponent('PassportOCRView'),
|
||||
android: requireNativeComponent('PassportOCRViewManager'),
|
||||
ios: requireNativeComponent<NativePassportOCRViewProps>('PassportOCRView'),
|
||||
android: requireNativeComponent<NativePassportOCRViewProps>(
|
||||
'PassportOCRViewManager',
|
||||
),
|
||||
});
|
||||
|
||||
if (!RCTPassportOCRViewNativeComponent) {
|
||||
@@ -111,10 +121,16 @@ export const PassportCamera: React.FC<PassportCameraProps> = ({
|
||||
);
|
||||
} else {
|
||||
// For Android, wrap the native component inside your RCTFragment to preserve existing functionality.
|
||||
const Fragment = RCTFragment as React.FC<RCTPassportOCRViewManagerProps>;
|
||||
const Fragment = RCTFragment as React.FC<
|
||||
React.ComponentProps<typeof RCTFragment> & NativePassportOCRViewProps
|
||||
>;
|
||||
return (
|
||||
<Fragment
|
||||
RCTFragmentViewManager={RCTPassportOCRViewNativeComponent}
|
||||
RCTFragmentViewManager={
|
||||
RCTPassportOCRViewNativeComponent as ReturnType<
|
||||
typeof requireNativeComponent
|
||||
>
|
||||
}
|
||||
fragmentComponentName="PassportOCRViewManager"
|
||||
isMounted={isMounted}
|
||||
style={{
|
||||
|
||||
@@ -6,15 +6,27 @@ import {
|
||||
requireNativeComponent,
|
||||
} from 'react-native';
|
||||
|
||||
import { RCTFragment, RCTFragmentViewManagerProps } from './RCTFragment';
|
||||
import { RCTFragment } from './RCTFragment';
|
||||
|
||||
interface RCTQRCodeScannerViewProps extends RCTFragmentViewManagerProps {
|
||||
interface NativeQRCodeScannerViewProps {
|
||||
onQRData: (event: NativeSyntheticEvent<{ data: string }>) => void;
|
||||
onError: (
|
||||
event: NativeSyntheticEvent<{
|
||||
error: string;
|
||||
errorMessage: string;
|
||||
stackTrace: string;
|
||||
}>,
|
||||
) => void;
|
||||
style?: any; // Or a more specific style type
|
||||
}
|
||||
|
||||
const QRCodeNativeComponent = Platform.select({
|
||||
ios: requireNativeComponent('QRCodeScannerView'),
|
||||
android: requireNativeComponent('QRCodeScannerViewManager'),
|
||||
ios: requireNativeComponent<NativeQRCodeScannerViewProps>(
|
||||
'QRCodeScannerView',
|
||||
),
|
||||
android: requireNativeComponent<NativeQRCodeScannerViewProps>(
|
||||
'QRCodeScannerViewManager',
|
||||
),
|
||||
});
|
||||
|
||||
if (!QRCodeNativeComponent) {
|
||||
@@ -74,10 +86,14 @@ export const QRCodeScannerView: React.FC<QRCodeScannerViewProps> = ({
|
||||
);
|
||||
} else {
|
||||
// For Android, wrap the native component inside your RCTFragment to preserve existing functionality.
|
||||
const Fragment = RCTFragment as React.FC<RCTQRCodeScannerViewProps>;
|
||||
const Fragment = RCTFragment as React.FC<
|
||||
React.ComponentProps<typeof RCTFragment> & NativeQRCodeScannerViewProps
|
||||
>;
|
||||
return (
|
||||
<Fragment
|
||||
RCTFragmentViewManager={QRCodeNativeComponent}
|
||||
RCTFragmentViewManager={
|
||||
QRCodeNativeComponent as ReturnType<typeof requireNativeComponent>
|
||||
}
|
||||
fragmentComponentName="QRCodeScannerViewManager"
|
||||
isMounted={isMounted}
|
||||
style={{
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useNavigation } from '@react-navigation/native';
|
||||
import { NativeStackScreenProps } from '@react-navigation/native-stack';
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import type { RootStackParamList } from '../Navigation';
|
||||
import type { RootStackParamList } from '../navigation/index';
|
||||
import { impactLight, impactMedium, selectionChange } from '../utils/haptic';
|
||||
|
||||
type NavigationAction = 'default' | 'cancel' | 'confirm';
|
||||
@@ -18,11 +18,18 @@ const useHapticNavigation = <S extends keyof RootStackParamList>(
|
||||
useNavigation() as NativeStackScreenProps<RootStackParamList>['navigation'];
|
||||
|
||||
return useCallback(() => {
|
||||
const navParams = options.params;
|
||||
switch (options.action) {
|
||||
case 'cancel':
|
||||
selectionChange();
|
||||
// it is safe to cast options.params as any because it is correct when entering the function
|
||||
navigation.popTo(screen, options.params as any);
|
||||
if (navParams !== undefined) {
|
||||
(navigation.popTo as (screen: S, params: typeof navParams) => void)(
|
||||
screen,
|
||||
navParams,
|
||||
);
|
||||
} else {
|
||||
(navigation.popTo as (screen: S) => void)(screen);
|
||||
}
|
||||
return;
|
||||
|
||||
case 'confirm':
|
||||
@@ -34,8 +41,15 @@ const useHapticNavigation = <S extends keyof RootStackParamList>(
|
||||
impactLight();
|
||||
}
|
||||
// it is safe to cast options.params as any because it is correct when entering the function
|
||||
navigation.navigate(screen, options.params as any);
|
||||
}, [navigation, screen, options.action]);
|
||||
if (navParams !== undefined) {
|
||||
(navigation.navigate as (screen: S, params: typeof navParams) => void)(
|
||||
screen,
|
||||
navParams,
|
||||
);
|
||||
} else {
|
||||
(navigation.navigate as (screen: S) => void)(screen);
|
||||
}
|
||||
}, [navigation, screen, options]);
|
||||
};
|
||||
|
||||
export default useHapticNavigation;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable simple-import-sort/imports */
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
import {
|
||||
Check,
|
||||
@@ -19,8 +20,8 @@ import {
|
||||
YStack,
|
||||
} from 'tamagui';
|
||||
|
||||
import { genAndInitMockPassportData } from '../../../../common/src/utils/passports/genMockPassportData';
|
||||
import { RootStackParamList } from '../../Navigation';
|
||||
import { genAndInitMockPassportData } from '@selfxyz/common';
|
||||
import { RootStackParamList } from '../../navigation';
|
||||
import {
|
||||
unsafe_clearSecrets,
|
||||
unsafe_getPrivateKey,
|
||||
@@ -145,7 +146,9 @@ const ScreenSelector = ({}) => {
|
||||
|
||||
const DevSettingsScreen: React.FC<DevSettingsScreenProps> = ({}) => {
|
||||
const { clearPassportData } = usePassport();
|
||||
const [privateKey, setPrivateKey] = useState('Loading private key…');
|
||||
const [privateKey, setPrivateKey] = useState<string | null>(
|
||||
'Loading private key…',
|
||||
);
|
||||
|
||||
const nav = useNavigation();
|
||||
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
import { countryCodes } from '@selfxyz/common';
|
||||
import { getSKIPEM } from '@selfxyz/common';
|
||||
import { genMockIdDoc, IdDocInput } from '@selfxyz/common';
|
||||
import { initPassportDataParsing } from '@selfxyz/common';
|
||||
import { ChevronDown, Minus, Plus, X } from '@tamagui/lucide-icons';
|
||||
import { flag } from 'country-emoji';
|
||||
import getCountryISO2 from 'country-iso-3-to-2';
|
||||
@@ -19,13 +23,6 @@ import {
|
||||
YStack,
|
||||
} from 'tamagui';
|
||||
|
||||
import { getSKIPEM } from '../../../.././common/src/utils/csca';
|
||||
import { countryCodes } from '../../../../common/src/constants/constants';
|
||||
import {
|
||||
genMockIdDoc,
|
||||
IdDocInput,
|
||||
} from '../../../../common/src/utils/passports/genMockIdDoc';
|
||||
import { initPassportDataParsing } from '../../../../common/src/utils/passports/passport';
|
||||
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
|
||||
import { SecondaryButton } from '../../components/buttons/SecondaryButton';
|
||||
import ButtonsContainer from '../../components/ButtonsContainer';
|
||||
@@ -217,7 +214,7 @@ const MockDataScreen: React.FC<MockDataScreenProps> = ({}) => {
|
||||
][2];
|
||||
|
||||
const idDocInput: Partial<IdDocInput> = {
|
||||
nationality: selectedCountry,
|
||||
nationality: selectedCountry as IdDocInput['nationality'],
|
||||
idType: 'mock_passport',
|
||||
signatureType:
|
||||
signatureTypeForGeneration as IdDocInput['signatureType'],
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
import { countryCodes } from '@selfxyz/common';
|
||||
import { genMockIdDoc, IdDocInput } from '@selfxyz/common';
|
||||
import { flag } from 'country-emoji';
|
||||
import getCountryISO2 from 'country-iso-3-to-2';
|
||||
import React, { useCallback, useEffect, useState } from 'react';
|
||||
@@ -6,11 +8,6 @@ import { ActivityIndicator, View } from 'react-native';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { ScrollView, Text, XStack, YStack } from 'tamagui';
|
||||
|
||||
import { countryCodes } from '../../../../common/src/constants/constants';
|
||||
import {
|
||||
genMockIdDoc,
|
||||
IdDocInput,
|
||||
} from '../../../../common/src/utils/passports/genMockIdDoc';
|
||||
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
|
||||
import ButtonsContainer from '../../components/ButtonsContainer';
|
||||
import { BodyText } from '../../components/typography/BodyText';
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { StaticScreenProps, useIsFocused } from '@react-navigation/native';
|
||||
import { PassportData } from '@selfxyz/common';
|
||||
import LottieView from 'lottie-react-native';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { StyleSheet, View } from 'react-native';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { Text, YStack } from 'tamagui';
|
||||
|
||||
import { PassportData } from '../../../../common/src/utils/types';
|
||||
import failAnimation from '../../assets/animations/loading/fail.json';
|
||||
import proveLoadingAnimation from '../../assets/animations/loading/prove.json';
|
||||
import successAnimation from '../../assets/animations/loading/success.json';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
import { PassportData } from '@selfxyz/common';
|
||||
import LottieView from 'lottie-react-native';
|
||||
import React, { useCallback, useEffect, useRef } from 'react';
|
||||
import { StyleSheet } from 'react-native';
|
||||
|
||||
import { PassportData } from '../../../../common/src/utils/types';
|
||||
import splashAnimation from '../../assets/animations/splash.json';
|
||||
import { useAuth } from '../../stores/authProvider';
|
||||
import { loadPassportDataAndSecret } from '../../stores/passportDataProvider';
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { useFocusEffect, useNavigation } from '@react-navigation/native';
|
||||
import { getSKIPEM } from '@selfxyz/common';
|
||||
import { initPassportDataParsing } from '@selfxyz/common';
|
||||
import { PassportData } from '@selfxyz/common';
|
||||
import LottieView from 'lottie-react-native';
|
||||
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
||||
import {
|
||||
@@ -11,9 +14,6 @@ import {
|
||||
import NfcManager from 'react-native-nfc-manager';
|
||||
import { Image } from 'tamagui';
|
||||
|
||||
import { getSKIPEM } from '../../../../common/src/utils/csca';
|
||||
import { initPassportDataParsing } from '../../../../common/src/utils/passports/passport';
|
||||
import { PassportData } from '../../../../common/src/utils/types';
|
||||
import passportVerifyAnimation from '../../assets/animations/passport_verify.json';
|
||||
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
|
||||
import { SecondaryButton } from '../../components/buttons/SecondaryButton';
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { useIsFocused, useNavigation } from '@react-navigation/native';
|
||||
import { SelfAppDisclosureConfig } from '@selfxyz/common';
|
||||
import { formatEndpoint } from '@selfxyz/common';
|
||||
import LottieView from 'lottie-react-native';
|
||||
import React, {
|
||||
useCallback,
|
||||
@@ -16,8 +18,6 @@ import {
|
||||
} from 'react-native';
|
||||
import { Image, Text, View, YStack } from 'tamagui';
|
||||
|
||||
import { SelfAppDisclosureConfig } from '../../../../common/src/utils/appType';
|
||||
import { formatEndpoint } from '../../../../common/src/utils/scope';
|
||||
import miscAnimation from '../../assets/animations/loading/misc.json';
|
||||
import { HeldPrimaryButtonProveScreen } from '../../components/buttons/HeldPrimaryButtonProveScreen';
|
||||
import Disclosures from '../../components/Disclosures';
|
||||
|
||||
@@ -12,7 +12,7 @@ import { BackupEvents } from '../../consts/analytics';
|
||||
import { useModal } from '../../hooks/useModal';
|
||||
import Cloud from '../../images/icons/logo_cloud_backup.svg';
|
||||
import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout';
|
||||
import { RootStackParamList } from '../../Navigation';
|
||||
import { RootStackParamList } from '../../navigation';
|
||||
import { useAuth } from '../../stores/authProvider';
|
||||
import { useSettingStore } from '../../stores/settingStore';
|
||||
import analytics from '../../utils/analytics';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useFocusEffect } from '@react-navigation/native';
|
||||
import { PassportMetadata } from '@selfxyz/common';
|
||||
import React, { useCallback, useState } from 'react';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { ScrollView, Separator, XStack, YStack } from 'tamagui';
|
||||
|
||||
import { PassportMetadata } from '../../../../common/src/utils/passports/passport_parsing/parsePassportData';
|
||||
import { Caption } from '../../components/typography/Caption';
|
||||
import { usePassport } from '../../stores/passportDataProvider';
|
||||
import { black, slate200, white } from '../../utils/colors';
|
||||
|
||||
@@ -27,7 +27,7 @@ import ShareIcon from '../../images/icons/share.svg';
|
||||
import Star from '../../images/icons/star.svg';
|
||||
import Telegram from '../../images/icons/telegram.svg';
|
||||
import Web from '../../images/icons/webpage.svg';
|
||||
import { RootStackParamList } from '../../Navigation';
|
||||
import { RootStackParamList } from '../../navigation';
|
||||
import { useSettingStore } from '../../stores/settingStore';
|
||||
import {
|
||||
amber500,
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
import { PublicKeyDetailsECDSA, PublicKeyDetailsRSA } from '@selfxyz/common';
|
||||
import { parseCertificateSimple } from '@selfxyz/common';
|
||||
import { brutforceSignatureAlgorithmDsc } from '@selfxyz/common';
|
||||
import { PassportData } from '@selfxyz/common';
|
||||
import React, {
|
||||
createContext,
|
||||
PropsWithChildren,
|
||||
@@ -7,13 +11,6 @@ import React, {
|
||||
} from 'react';
|
||||
import Keychain from 'react-native-keychain';
|
||||
|
||||
import {
|
||||
PublicKeyDetailsECDSA,
|
||||
PublicKeyDetailsRSA,
|
||||
} from '../../../common/src/utils/certificate_parsing/dataStructure';
|
||||
import { parseCertificateSimple } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple';
|
||||
import { brutforceSignatureAlgorithmDsc } from '../../../common/src/utils/passports/passport_parsing/brutForceDscSignature';
|
||||
import { PassportData } from '../../../common/src/utils/types';
|
||||
import { unsafe_getPrivateKey } from '../stores/authProvider';
|
||||
import { useAuth } from './authProvider';
|
||||
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import type { EndpointType } from '@selfxyz/common';
|
||||
import { WS_DB_RELAYER } from '@selfxyz/common';
|
||||
import { UserIdType } from '@selfxyz/common';
|
||||
import { Platform } from 'react-native';
|
||||
import SQLite from 'react-native-sqlite-storage';
|
||||
import { io } from 'socket.io-client';
|
||||
import { create } from 'zustand';
|
||||
|
||||
import { WS_DB_RELAYER } from '../../../common/src/constants/constants';
|
||||
import { EndpointType } from '../../../common/src/utils/appType';
|
||||
import { UserIdType } from '../../../common/src/utils/circuits/uuid';
|
||||
|
||||
SQLite.enablePromise(true);
|
||||
|
||||
export interface ProofHistory {
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { create } from 'zustand';
|
||||
|
||||
import {
|
||||
API_URL,
|
||||
API_URL_STAGING,
|
||||
@@ -9,7 +7,8 @@ import {
|
||||
DSC_TREE_URL_STAGING,
|
||||
IDENTITY_TREE_URL,
|
||||
IDENTITY_TREE_URL_STAGING,
|
||||
} from '../../../common/src/constants/constants';
|
||||
} from '@selfxyz/common';
|
||||
import { create } from 'zustand';
|
||||
|
||||
interface ProtocolState {
|
||||
passport: {
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import type { SelfApp } from '@selfxyz/common';
|
||||
import { WS_DB_RELAYER } from '@selfxyz/common';
|
||||
import io, { Socket } from 'socket.io-client';
|
||||
import { create } from 'zustand';
|
||||
|
||||
import { WS_DB_RELAYER } from '../../../common/src/constants/constants';
|
||||
import { SelfApp } from '../../../common/src/utils/appType';
|
||||
|
||||
interface SelfAppState {
|
||||
selfApp: SelfApp | null;
|
||||
sessionId: string | null;
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
import { PassportData } from '@selfxyz/common';
|
||||
import { Buffer } from 'buffer';
|
||||
import { NativeModules, Platform } from 'react-native';
|
||||
import PassportReader from 'react-native-passport-reader';
|
||||
|
||||
import { PassportData } from '../../../common/src/utils/types';
|
||||
|
||||
interface Inputs {
|
||||
passportNumber: string;
|
||||
dateOfBirth: string;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { X509Certificate } from '@peculiar/x509';
|
||||
import { PCR0_MANAGER_ADDRESS, RPC_URL } from '@selfxyz/common';
|
||||
import { decode } from '@stablelib/cbor';
|
||||
import { fromBER } from 'asn1js';
|
||||
import { Buffer } from 'buffer';
|
||||
@@ -7,10 +8,6 @@ import { ethers } from 'ethers';
|
||||
import { sha384 } from 'js-sha512';
|
||||
import { Certificate } from 'pkijs';
|
||||
|
||||
import {
|
||||
PCR0_MANAGER_ADDRESS,
|
||||
RPC_URL,
|
||||
} from '../../../../common/src/constants/constants';
|
||||
import { AWS_ROOT_PEM } from './awsRootPem';
|
||||
import cose from './cose';
|
||||
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
import { LeanIMT } from '@openpassport/zk-kit-lean-imt';
|
||||
import { SMT } from '@openpassport/zk-kit-smt';
|
||||
import { poseidon2 } from 'poseidon-lite';
|
||||
|
||||
import nameAndDobSMTData from '../../../../common/ofacdata/outputs/nameAndDobSMT.json';
|
||||
import nameAndYobSMTData from '../../../../common/ofacdata/outputs/nameAndYobSMT.json';
|
||||
import passportNoAndNationalitySMTData from '../../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json';
|
||||
import {
|
||||
attributeToPosition,
|
||||
DEFAULT_MAJORITY,
|
||||
PASSPORT_ATTESTATION_ID,
|
||||
} from '../../../../common/src/constants/constants';
|
||||
import { SelfApp } from '../../../../common/src/utils/appType';
|
||||
import { getCircuitNameFromPassportData } from '../../../../common/src/utils/circuits/circuitsName';
|
||||
} from '@selfxyz/common';
|
||||
import { SelfApp } from '@selfxyz/common';
|
||||
import { getCircuitNameFromPassportData } from '@selfxyz/common';
|
||||
import {
|
||||
generateCircuitInputsDSC,
|
||||
generateCircuitInputsRegister,
|
||||
generateCircuitInputsVCandDisclose,
|
||||
} from '../../../../common/src/utils/circuits/generateInputs';
|
||||
import { hashEndpointWithScope } from '../../../../common/src/utils/scope';
|
||||
import { PassportData } from '../../../../common/src/utils/types';
|
||||
} from '@selfxyz/common';
|
||||
import { hashEndpointWithScope } from '@selfxyz/common';
|
||||
import { PassportData } from '@selfxyz/common';
|
||||
import nameAndDobSMTData from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT.json';
|
||||
import nameAndYobSMTData from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT.json';
|
||||
import passportNoAndNationalitySMTData from '@selfxyz/common/ofacdata/outputs/passportNoAndNationalitySMT.json';
|
||||
import { poseidon2 } from 'poseidon-lite';
|
||||
|
||||
import { useProtocolStore } from '../../stores/protocolStore';
|
||||
|
||||
export function generateTEEInputsRegister(
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { WS_RPC_URL_VC_AND_DISCLOSE } from '@selfxyz/common';
|
||||
import { EndpointType, SelfApp } from '@selfxyz/common';
|
||||
import { getCircuitNameFromPassportData } from '@selfxyz/common';
|
||||
import { PassportData } from '@selfxyz/common';
|
||||
import forge from 'node-forge';
|
||||
import io, { Socket } from 'socket.io-client';
|
||||
import { v4 } from 'uuid';
|
||||
import { AnyActorRef, createActor, createMachine } from 'xstate';
|
||||
import { create } from 'zustand';
|
||||
|
||||
import { WS_RPC_URL_VC_AND_DISCLOSE } from '../../../../common/src/constants/constants';
|
||||
import { EndpointType, SelfApp } from '../../../../common/src/utils/appType';
|
||||
import { getCircuitNameFromPassportData } from '../../../../common/src/utils/circuits/circuitsName';
|
||||
import { PassportData } from '../../../../common/src/utils/types';
|
||||
import { navigationRef } from '../../navigation';
|
||||
import {
|
||||
clearPassportData,
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import type { EndpointType } from '@selfxyz/common';
|
||||
import {
|
||||
initElliptic,
|
||||
WS_DB_RELAYER,
|
||||
WS_DB_RELAYER_STAGING,
|
||||
} from '@selfxyz/common';
|
||||
import forge from 'node-forge';
|
||||
|
||||
import { WS_DB_RELAYER_STAGING } from '../../../../common/src/constants/constants';
|
||||
import { WS_DB_RELAYER } from '../../../../common/src/constants/constants';
|
||||
import { EndpointType } from '../../../../common/src/utils/appType';
|
||||
import { initElliptic } from '../../../../common/src/utils/certificate_parsing/elliptic';
|
||||
|
||||
const elliptic = initElliptic();
|
||||
const { ec: EC } = elliptic;
|
||||
export const ec = new EC('p256');
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
import { LeanIMT } from '@openpassport/zk-kit-lean-imt';
|
||||
import { poseidon2, poseidon5 } from 'poseidon-lite';
|
||||
|
||||
import {
|
||||
API_URL,
|
||||
PASSPORT_ATTESTATION_ID,
|
||||
} from '../../../../common/src/constants/constants';
|
||||
import { parseCertificateSimple } from '../../../../common/src/utils/certificate_parsing/parseCertificateSimple';
|
||||
import { getCircuitNameFromPassportData } from '../../../../common/src/utils/circuits/circuitsName';
|
||||
import { hash, packBytesAndPoseidon } from '../../../../common/src/utils/hash';
|
||||
import { formatMrz } from '../../../../common/src/utils/passports/format';
|
||||
import {
|
||||
formatMrz,
|
||||
generateCommitment,
|
||||
generateNullifier,
|
||||
} from '../../../../common/src/utils/passports/passport';
|
||||
import { getLeafDscTree } from '../../../../common/src/utils/trees';
|
||||
import { PassportData } from '../../../../common/src/utils/types';
|
||||
getCircuitNameFromPassportData,
|
||||
getLeafDscTree,
|
||||
Hash,
|
||||
parseCertificateSimple,
|
||||
PASSPORT_ATTESTATION_ID,
|
||||
type PassportData,
|
||||
} from '@selfxyz/common';
|
||||
import { poseidon2, poseidon5 } from 'poseidon-lite';
|
||||
|
||||
import { useProtocolStore } from '../../stores/protocolStore';
|
||||
|
||||
export type PassportSupportStatus =
|
||||
@@ -163,15 +161,19 @@ export function generateCommitmentInApp(
|
||||
passportData: PassportData,
|
||||
alternativeCSCA: Record<string, string>,
|
||||
) {
|
||||
const dg1_packed_hash = packBytesAndPoseidon(formatMrz(passportData.mrz));
|
||||
const eContent_packed_hash = packBytesAndPoseidon(
|
||||
const dg1_packed_hash = Hash.packBytesAndPoseidon(
|
||||
formatMrz(passportData.mrz),
|
||||
);
|
||||
const eContent_packed_hash = Hash.packBytesAndPoseidon(
|
||||
(
|
||||
hash(
|
||||
Hash.hash(
|
||||
passportData.passportMetadata!.eContentHashFunction,
|
||||
Array.from(passportData.eContent),
|
||||
'bytes',
|
||||
) as number[]
|
||||
).map(byte => byte & 0xff),
|
||||
)
|
||||
// eslint-disable-next-line no-bitwise
|
||||
.map(byte => byte & 0xff),
|
||||
);
|
||||
|
||||
const csca_list: string[] = [];
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"extends": "@react-native/typescript-config/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"lib": ["dom", "esnext"],
|
||||
"typeRoots": ["./src/types", "./node_modules/@types"],
|
||||
"types": ["react-native", "jest"]
|
||||
"resolveJsonModule": true,
|
||||
"esModuleInterop": true
|
||||
}
|
||||
}
|
||||
|
||||
17
circuits/.prettierignore
Normal file
17
circuits/.prettierignore
Normal file
@@ -0,0 +1,17 @@
|
||||
# directories
|
||||
broadcast
|
||||
cache
|
||||
coverage
|
||||
node_modules
|
||||
dist
|
||||
|
||||
# files
|
||||
*.env
|
||||
*.log
|
||||
.DS_Store
|
||||
.pnp.*
|
||||
bun.lockb
|
||||
lcov.info
|
||||
package-lock.json
|
||||
pnpm-lock.yaml
|
||||
yarn.lock
|
||||
@@ -53,16 +53,23 @@ OpenPassport currently supports the following sig/hash algorithms:
|
||||
|
||||
## Installation
|
||||
|
||||
Go to the `/circuits` directory and run `yarn install`
|
||||
you can do a focused install with
|
||||
|
||||
```bash
|
||||
cd circuits && yarn install && cd ..
|
||||
|
||||
yarn workspace @selfxyz/circuits focus
|
||||
|
||||
```
|
||||
|
||||
Go to the `/common` directory and run `yarn install`
|
||||
or you can run `yarn install` (it has the same affect whether ran in workspace root or circuits folder)
|
||||
|
||||
## Build TS Dependencies
|
||||
|
||||
from circuits directory run
|
||||
|
||||
```bash
|
||||
cd common && yarn install && cd ..
|
||||
yarn build:deps
|
||||
|
||||
```
|
||||
|
||||
## Build circuits (dev only)
|
||||
@@ -71,7 +78,7 @@ cd common && yarn install && cd ..
|
||||
./scripts/build_circuits.sh
|
||||
```
|
||||
|
||||
## Run tests
|
||||
## Run tests ()
|
||||
|
||||
```bash
|
||||
yarn test
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"name": "circom-passport",
|
||||
"name": "@selfxyz/circuits",
|
||||
"version": "0.0.1",
|
||||
"license": "MIT",
|
||||
"author": "",
|
||||
"private": true,
|
||||
"author": "self team",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"build:deps": "yarn workspaces foreach --from @selfxyz/circuits --topological-dev --recursive run build",
|
||||
"build-all": "bash scripts/build/build_register_circuits.sh && bash scripts/build/build_register_circuits_id.sh && bash scripts/build/build_dsc_circuits.sh && bash scripts/build/build_disclose_circuits.sh",
|
||||
"build-disclose": "bash scripts/build/build_disclose_circuits.sh",
|
||||
"build-dsc": "bash scripts/build/build_dsc_circuits.sh",
|
||||
@@ -12,22 +16,24 @@
|
||||
"download": "bash scripts/server/download_circuits_from_AWS.sh",
|
||||
"format": "prettier --write .",
|
||||
"nice": "prettier --write .",
|
||||
"install-circuits": "cd ../common && yarn && cd ../circuits && yarn",
|
||||
"install-circuits": "yarn workspaces focus @selfxyz/circuits",
|
||||
"lint": "prettier --check .",
|
||||
"test": "yarn ts-mocha --max-old-space-size=8192 'tests/**/*.test.ts' 'tests/*.test.ts' --exit",
|
||||
"test-custom-hasher": "yarn ts-mocha --max-old-space-size=8192 'tests/other_circuits/custom_hasher.test.ts' --exit",
|
||||
"test-disclose": "yarn ts-mocha --max-old-space-size=8192 'tests/disclose/vc_and_disclose.test.ts' --exit",
|
||||
"test-disclose-id": "yarn ts-mocha --max-old-space-size=8192 'tests/disclose/vc_and_disclose_id.test.ts' --exit",
|
||||
"test-dsc": "yarn ts-mocha --max-old-space-size=51200 'tests/dsc/dsc.test.ts' --exit",
|
||||
"test-ecdsa": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/ecdsa.test.ts' --exit",
|
||||
"test-is-older-than": "yarn ts-mocha --max-old-space-size=8192 'tests/other_circuits/is_older_than.test.ts' --exit",
|
||||
"test-is-valid": "yarn ts-mocha --max-old-space-size=8192 'tests/other_circuits/is_valid.test.ts' --exit",
|
||||
"test-not-in-list": "yarn ts-mocha --max-old-space-size=8192 'tests/other_circuits/prove_country_is_not_in_list.test.ts' --exit",
|
||||
"test-ofac": "yarn ts-mocha --max-old-space-size=8192 'tests/ofac/ofac.test.ts' --exit",
|
||||
"test-register": "yarn ts-mocha --max-old-space-size=40960 'tests/register/register.test.ts' --exit",
|
||||
"test-register-id": "yarn ts-mocha --max-old-space-size=40960 'tests/register_id/register_id.test.ts' --exit",
|
||||
"test-rsa": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsaPkcs1v1_5.test.ts' --exit",
|
||||
"test-rsa-pss": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsapss.test.ts' --exit"
|
||||
"test": "yarn test-base 'tests/**/*.test.ts' --exit",
|
||||
"test-base": "NODE_OPTIONS='--loader ts-node/esm' yarn ts-mocha --max-old-space-size=8192",
|
||||
"test-custom-hasher": "yarn test-base 'tests/other_circuits/custom_hasher.test.ts' --exit",
|
||||
"test-disclose": "yarn test-base 'tests/disclose/vc_and_disclose.test.ts' --exit",
|
||||
"test-disclose-id": "yarn test-base 'tests/disclose/vc_and_disclose_id.test.ts' --exit",
|
||||
"test-dsc": "yarn test-base --max-old-space-size=51200 'tests/dsc/dsc.test.ts' --exit",
|
||||
"test-ecdsa": "yarn test-base 'tests/utils/ecdsa.test.ts' --exit",
|
||||
"test-is-older-than": "yarn test-base 'tests/other_circuits/is_older_than.test.ts' --exit",
|
||||
"test-is-valid": "yarn test-base 'tests/other_circuits/is_valid.test.ts' --exit",
|
||||
"test-not-in-list": "yarn test-base 'tests/other_circuits/prove_country_is_not_in_list.test.ts' --exit",
|
||||
"test-ofac": "yarn test-base 'tests/ofac/ofac.test.ts' --exit",
|
||||
"test-register": "yarn test-base --max-old-space-size=40960 'tests/register/register.test.ts' --exit",
|
||||
"test-register-id": "yarn test-base --max-old-space-size=40960 'tests/register_id/register_id.test.ts' --exit",
|
||||
"test-rsa": "yarn test-base 'tests/utils/rsaPkcs1v1_5.test.ts' --exit",
|
||||
"test-rsa-pss": "yarn test-base 'tests/utils/rsapss.test.ts' --exit",
|
||||
"types": "yarn build --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@noble/curves": "^1.4.2",
|
||||
@@ -35,6 +41,7 @@
|
||||
"@openpassport/zk-kit-imt": "^0.0.4",
|
||||
"@openpassport/zk-kit-lean-imt": "^0.0.4",
|
||||
"@openpassport/zk-kit-smt": "^0.0.1",
|
||||
"@selfxyz/common": "workspace:^",
|
||||
"@types/chai-as-promised": "^7.1.6",
|
||||
"@types/node": "^20.11.19",
|
||||
"@types/node-forge": "^1.3.5",
|
||||
|
||||
@@ -6,22 +6,19 @@ import crypto from 'crypto';
|
||||
import { describe } from 'mocha';
|
||||
import path from 'path';
|
||||
import { poseidon1, poseidon2 } from 'poseidon-lite';
|
||||
import nameAndDobjson from '../../../common/ofacdata/outputs/nameAndDobSMT.json';
|
||||
import nameAndYobjson from '../../../common/ofacdata/outputs/nameAndYobSMT.json';
|
||||
import passportNojson from '../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json';
|
||||
import {
|
||||
attributeToPosition,
|
||||
PASSPORT_ATTESTATION_ID,
|
||||
} from '../../../common/src/constants/constants';
|
||||
import nameAndDobjson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT.json' with { type: 'json' };
|
||||
import nameAndYobjson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT.json' with { type: 'json' };
|
||||
import passportNojson from '@selfxyz/common/ofacdata/outputs/passportNoAndNationalitySMT.json' with { type: 'json' };
|
||||
import { attributeToPosition, PASSPORT_ATTESTATION_ID } from '@selfxyz/common/constants/constants';
|
||||
import {
|
||||
formatAndUnpackForbiddenCountriesList,
|
||||
formatAndUnpackReveal,
|
||||
getAttributeFromUnpackedReveal,
|
||||
} from '../../../common/src/utils/circuits/formatOutputs';
|
||||
import { generateCircuitInputsVCandDisclose } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData';
|
||||
import { generateCommitment } from '../../../common/src/utils/passports/passport';
|
||||
import { hashEndpointWithScope } from '../../../common/src/utils/scope';
|
||||
} from '@selfxyz/common/utils/circuits/formatOutputs';
|
||||
import { generateCircuitInputsVCandDisclose } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
|
||||
import { generateCommitment } from '@selfxyz/common/utils/passports/passport';
|
||||
import { hashEndpointWithScope } from '@selfxyz/common/utils/scope';
|
||||
|
||||
describe('Disclose', function () {
|
||||
this.timeout(0);
|
||||
|
||||
@@ -5,23 +5,23 @@ import { wasm as wasm_tester } from 'circom_tester';
|
||||
import {
|
||||
attributeToPosition_ID,
|
||||
ID_CARD_ATTESTATION_ID,
|
||||
} from '../../../common/src/constants/constants';
|
||||
} from '@selfxyz/common/constants/constants';
|
||||
import { poseidon1, poseidon2 } from 'poseidon-lite';
|
||||
import { LeanIMT } from '@openpassport/zk-kit-lean-imt';
|
||||
import { generateCircuitInputsVCandDisclose } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { generateCircuitInputsVCandDisclose } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import crypto from 'crypto';
|
||||
import { SMT } from '@openpassport/zk-kit-smt';
|
||||
import nameAndDobjson from '../../../common/ofacdata/outputs/nameAndDobSMT_ID.json';
|
||||
import nameAndYobjson from '../../../common/ofacdata/outputs/nameAndYobSMT_ID.json';
|
||||
import passportNojson from '../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json';
|
||||
import nameAndDobjson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT_ID.json' with { type: 'json' };
|
||||
import nameAndYobjson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT_ID.json' with { type: 'json' };
|
||||
import passportNojson from '@selfxyz/common/ofacdata/outputs/passportNoAndNationalitySMT.json' with { type: 'json' };
|
||||
import {
|
||||
formatAndUnpackForbiddenCountriesList,
|
||||
formatAndUnpackReveal,
|
||||
getAttributeFromUnpackedReveal,
|
||||
} from '../../../common/src/utils/circuits/formatOutputs';
|
||||
import { generateCommitment } from '../../../common/src/utils/passports/passport';
|
||||
import { hashEndpointWithScope } from '../../../common/src/utils/scope';
|
||||
import { genMockIdDoc } from '../../../common/src/utils/passports/genMockIdDoc';
|
||||
} from '@selfxyz/common/utils/circuits/formatOutputs';
|
||||
import { generateCommitment } from '@selfxyz/common/utils/passports/passport';
|
||||
import { hashEndpointWithScope } from '@selfxyz/common/utils/scope';
|
||||
import { genMockIdDoc } from '@selfxyz/common/utils/passports/genMockIdDoc';
|
||||
|
||||
describe('Disclose', function () {
|
||||
this.timeout(0);
|
||||
|
||||
@@ -2,15 +2,15 @@ import { expect } from 'chai';
|
||||
import { wasm as wasm_tester } from 'circom_tester';
|
||||
import dotenv from 'dotenv';
|
||||
import path from 'path';
|
||||
import serialized_csca_tree from '../../../common/pubkeys/serialized_csca_tree.json';
|
||||
import { parseCertificateSimple } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple';
|
||||
import { getCircuitNameFromPassportData } from '../../../common/src/utils/circuits/circuitsName';
|
||||
import { generateCircuitInputsDSC } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData';
|
||||
import { parseDscCertificateData } from '../../../common/src/utils/passports/passport_parsing/parseDscCertificateData';
|
||||
import { getLeafDscTreeFromParsedDsc } from '../../../common/src/utils/trees';
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
import { fullSigAlgs, sigAlgs } from './test_cases';
|
||||
import serialized_csca_tree from '../../../common/pubkeys/serialized_csca_tree.json' with { type: 'json' };
|
||||
import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseCertificateSimple';
|
||||
import { getCircuitNameFromPassportData } from '@selfxyz/common/utils/circuits/circuitsName';
|
||||
import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
|
||||
import { parseDscCertificateData } from '@selfxyz/common/utils/passports/passport_parsing/parseDscCertificateData';
|
||||
import { getLeafDscTreeFromParsedDsc } from '@selfxyz/common/utils/trees';
|
||||
import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
|
||||
import { fullSigAlgs, sigAlgs } from './test_cases.js';
|
||||
dotenv.config();
|
||||
|
||||
const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs;
|
||||
@@ -26,7 +26,7 @@ testSuite.forEach(({ sigAlg, hashFunction, domainParameter, keyLength }) => {
|
||||
);
|
||||
const passportMetadata = passportData.passportMetadata;
|
||||
|
||||
describe(`DSC chain certificate - ${passportMetadata.cscaHashFunction.toUpperCase()} ${passportMetadata.cscaSignatureAlgorithm.toUpperCase()} ${passportMetadata.cscaCurveOrExponent.toUpperCase()} ${
|
||||
describe(`DSC chain certificate - ${passportMetadata.cscaHashFunction?.toUpperCase()} ${passportMetadata.cscaSignatureAlgorithm?.toUpperCase()} ${passportMetadata.cscaCurveOrExponent?.toUpperCase()} ${
|
||||
passportData.csca_parsed.publicKeyDetails.bits
|
||||
}`, function () {
|
||||
this.timeout(0); // Disable timeout
|
||||
|
||||
@@ -3,14 +3,14 @@ import { expect } from 'chai';
|
||||
import { wasm as wasm_tester } from 'circom_tester';
|
||||
import path from 'path';
|
||||
import { poseidon2 } from 'poseidon-lite';
|
||||
import nameAndDobjson from '../../../common/ofacdata/outputs/nameAndDobSMT.json';
|
||||
import nameAndYobjson from '../../../common/ofacdata/outputs/nameAndYobSMT.json';
|
||||
import nameAndDobIdCardJson from '../../../common/ofacdata/outputs/nameAndDobSMT_ID.json';
|
||||
import nameAndYobIdCardJson from '../../../common/ofacdata/outputs/nameAndYobSMT_ID.json';
|
||||
import { genMockIdDoc } from '../../../common/src/utils/passports/genMockIdDoc';
|
||||
import passportNoAndNationalityjson from '../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json';
|
||||
import { generateCircuitInputsOfac } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData';
|
||||
import nameAndDobjson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT.json' with { type: 'json' };
|
||||
import nameAndYobjson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT.json' with { type: 'json' };
|
||||
import nameAndDobIdCardJson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT_ID.json' with { type: 'json' };
|
||||
import nameAndYobIdCardJson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT_ID.json' with { type: 'json' };
|
||||
import { genMockIdDoc } from '@selfxyz/common/utils/passports/genMockIdDoc';
|
||||
import passportNoAndNationalityjson from '@selfxyz/common/ofacdata/outputs/passportNoAndNationalitySMT.json' with { type: 'json' };
|
||||
import { generateCircuitInputsOfac } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
|
||||
|
||||
let circuit: any;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { expect } from 'chai';
|
||||
import path from 'path';
|
||||
import { wasm as wasm_tester } from 'circom_tester';
|
||||
import { formatInput } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { customHasher, packBytesAndPoseidon } from '../../../common/src/utils/hash';
|
||||
import { formatInput } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import { customHasher, packBytesAndPoseidon } from '@selfxyz/common/utils/hash';
|
||||
|
||||
describe('CustomHasher', function () {
|
||||
this.timeout(0);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { expect } from 'chai';
|
||||
import { wasm as wasm_tester } from 'circom_tester';
|
||||
import path from 'path';
|
||||
import { formatCountriesList } from '../../../common/src/utils/circuits/formatInputs';
|
||||
import { formatAndUnpackForbiddenCountriesList } from '../../../common/src/utils/circuits/formatOutputs';
|
||||
import { formatInput } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { formatMrz } from '../../../common/src/utils/passports/format';
|
||||
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData';
|
||||
import { formatCountriesList } from '@selfxyz/common/utils/circuits/formatInputs';
|
||||
import { formatAndUnpackForbiddenCountriesList } from '@selfxyz/common/utils/circuits/formatOutputs';
|
||||
import { formatInput } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import { formatMrz } from '@selfxyz/common/utils/passports/format';
|
||||
import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
|
||||
|
||||
describe('ProveCountryIsNotInList', function () {
|
||||
this.timeout(0);
|
||||
|
||||
@@ -4,18 +4,15 @@ import dotenv from 'dotenv';
|
||||
import { describe } from 'mocha';
|
||||
import path from 'path';
|
||||
import { poseidon6 } from 'poseidon-lite';
|
||||
import serialized_dsc_tree from '../../../common/pubkeys/serialized_dsc_tree.json';
|
||||
import { PASSPORT_ATTESTATION_ID } from '../../../common/src/constants/constants';
|
||||
import { parseCertificateSimple } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple';
|
||||
import { getCircuitNameFromPassportData } from '../../../common/src/utils/circuits/circuitsName';
|
||||
import { generateCircuitInputsRegister } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData';
|
||||
import {
|
||||
generateCommitment,
|
||||
generateNullifier,
|
||||
} from '../../../common/src/utils/passports/passport';
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
import { fullSigAlgs, sigAlgs } from './test_cases';
|
||||
import serialized_dsc_tree from '@selfxyz/common/pubkeys/serialized_dsc_tree.json' with { type: 'json' };
|
||||
import { PASSPORT_ATTESTATION_ID } from '@selfxyz/common/constants/constants';
|
||||
import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseCertificateSimple';
|
||||
import { getCircuitNameFromPassportData } from '@selfxyz/common/utils/circuits/circuitsName';
|
||||
import { generateCircuitInputsRegister } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
|
||||
import { generateCommitment, generateNullifier } from '@selfxyz/common/utils/passports/passport';
|
||||
import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
|
||||
import { fullSigAlgs, sigAlgs } from './test_cases.js';
|
||||
dotenv.config();
|
||||
|
||||
const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs;
|
||||
|
||||
@@ -3,20 +3,16 @@ import { describe } from 'mocha';
|
||||
import { expect } from 'chai';
|
||||
import path from 'path';
|
||||
import { wasm as wasm_tester } from 'circom_tester';
|
||||
import { generateCircuitInputsRegister } from '../../../common/src/utils/circuits/generateInputs';
|
||||
import { genMockPassportData } from '../../../common/src/utils/passports/genMockPassportData';
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
import { getCircuitNameFromPassportData } from '../../../common/src/utils/circuits/circuitsName';
|
||||
import { sigAlgs, fullSigAlgs } from './test_cases';
|
||||
import {
|
||||
generateCommitment,
|
||||
generateNullifier,
|
||||
} from '../../../common/src/utils/passports/passport';
|
||||
import { generateCircuitInputsRegister } from '@selfxyz/common/utils/circuits/generateInputs';
|
||||
import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
|
||||
import { getCircuitNameFromPassportData } from '@selfxyz/common/utils/circuits/circuitsName';
|
||||
import { sigAlgs, fullSigAlgs } from './test_cases.js';
|
||||
import { generateCommitment, generateNullifier } from '@selfxyz/common/utils/passports/passport';
|
||||
import { poseidon6 } from 'poseidon-lite';
|
||||
import { hashAlgosTypes, ID_CARD_ATTESTATION_ID } from '../../../common/src/constants/constants';
|
||||
import { parseCertificateSimple } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple';
|
||||
import serialized_dsc_tree from '../../../common/pubkeys/serialized_dsc_tree.json';
|
||||
import { genMockIdDoc } from '../../../common/src/utils/passports/genMockIdDoc';
|
||||
import { hashAlgosTypes, ID_CARD_ATTESTATION_ID } from '@selfxyz/common/constants/constants';
|
||||
import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseCertificateSimple';
|
||||
import serialized_dsc_tree from '../../../common/pubkeys/serialized_dsc_tree.json' with { type: 'json' };
|
||||
import { genMockIdDoc } from '@selfxyz/common/utils/passports/genMockIdDoc';
|
||||
dotenv.config();
|
||||
|
||||
const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { wasm as wasmTester } from 'circom_tester';
|
||||
import * as crypto from 'crypto';
|
||||
import { initElliptic } from '../../../common/src/utils/certificate_parsing/elliptic';
|
||||
import { initElliptic } from '@selfxyz/common/utils/certificate_parsing/elliptic';
|
||||
import * as path from 'path';
|
||||
import { splitToWords } from '../../../common/src/utils/bytes';
|
||||
import { splitToWords } from '@selfxyz/common/utils/bytes';
|
||||
|
||||
const elliptic = initElliptic();
|
||||
const testSuite = [
|
||||
@@ -267,8 +267,8 @@ function sign(message: Uint8Array, curve: string, hash: string, n: number, k: nu
|
||||
|
||||
return {
|
||||
signature: [
|
||||
...splitToWords(BigInt(signature.r), k, n),
|
||||
...splitToWords(BigInt(signature.s), k, n),
|
||||
...splitToWords(BigInt(signature.r.toString()), k, n),
|
||||
...splitToWords(BigInt(signature.s.toString()), k, n),
|
||||
],
|
||||
pubKey: [
|
||||
splitToWords(BigInt(pubkey.getX().toString()), k, n),
|
||||
@@ -299,13 +299,13 @@ function signOverflow(
|
||||
hashParsed.push(...x.toString(2).padStart(8, '0').split(''))
|
||||
);
|
||||
|
||||
let r = BigInt(signature.r);
|
||||
let s = BigInt(signature.s);
|
||||
let r = BigInt(signature.r.toString(10));
|
||||
let s = BigInt(signature.s.toString(10));
|
||||
|
||||
if (overflowS) {
|
||||
s = s + BigInt(ec.n);
|
||||
s = s + BigInt(ec.n.toString());
|
||||
} else {
|
||||
r = r + BigInt(ec.n);
|
||||
r = r + BigInt(ec.n.toString());
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import crypto from 'crypto';
|
||||
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
import { hexToDecimal, splitToWords } from '../../../common/src/utils/bytes';
|
||||
import { bytesToBigDecimal } from '../../../common/src/utils/bytes';
|
||||
import { getNAndK } from '../../../common/src/utils/passports/passport';
|
||||
import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
|
||||
import { hexToDecimal, splitToWords } from '@selfxyz/common/utils/bytes';
|
||||
import { bytesToBigDecimal } from '@selfxyz/common/utils/bytes';
|
||||
import { getNAndK } from '@selfxyz/common/utils/passports/passport';
|
||||
|
||||
export const generateMockRsaPkcs1v1_5Inputs = (signatureAlgorithm: SignatureAlgorithm) => {
|
||||
let privateKey: string;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import * as forge from 'node-forge';
|
||||
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
import { hexToDecimal } from '../../../common/src/utils/bytes';
|
||||
import { bytesToBigDecimal } from '../../../common/src/utils/bytes';
|
||||
import { getNAndK } from '../../../common/src/utils/passports/passport';
|
||||
import { splitToWords } from '../../../common/src/utils/bytes';
|
||||
import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
|
||||
import { hexToDecimal } from '@selfxyz/common/utils/bytes';
|
||||
import { bytesToBigDecimal } from '@selfxyz/common/utils/bytes';
|
||||
import { getNAndK } from '@selfxyz/common/utils/passports/passport';
|
||||
import { splitToWords } from '@selfxyz/common/utils/bytes';
|
||||
|
||||
export const generateMockRsaPssInputs = (
|
||||
signatureAlgorithm: SignatureAlgorithm,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { wasm as wasmTester } from 'circom_tester';
|
||||
import { describe, it } from 'mocha';
|
||||
import path from 'path';
|
||||
import { generateMockRsaPkcs1v1_5Inputs } from './generateMockInputsInCircuits';
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
import { generateMockRsaPkcs1v1_5Inputs } from './generateMockInputsInCircuits.js';
|
||||
import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
|
||||
import { expect } from 'chai';
|
||||
describe('VerifyRsaPkcs1v1_5 Circuit Test', function () {
|
||||
this.timeout(0);
|
||||
|
||||
@@ -4,9 +4,9 @@ import path from 'path';
|
||||
import {
|
||||
generateMalleableRsaPssInputs,
|
||||
generateMockRsaPssInputs,
|
||||
} from './generateMockInputsRsaPss';
|
||||
} from './generateMockInputsRsaPss.js';
|
||||
import { expect } from 'chai';
|
||||
import { fullAlgorithms, sigAlgs, AdditionalCases } from './testcase/rsapss';
|
||||
import { fullAlgorithms, sigAlgs, AdditionalCases } from './testcase/rsapss.js';
|
||||
|
||||
describe('VerifyRsapss Circuit Test', function () {
|
||||
this.timeout(0);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { SignatureAlgorithm } from '../../../../common/src/utils/types';
|
||||
import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
|
||||
|
||||
export const fullAlgorithms: { algo: SignatureAlgorithm; saltLength: number }[] = [
|
||||
{ algo: 'rsapss_sha256_65537_4096', saltLength: 32 },
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
"compilerOptions": {
|
||||
"resolveJsonModule": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"target": "ES2020",
|
||||
"moduleResolution": "node",
|
||||
"module": "CommonJS",
|
||||
"moduleResolution": "node16",
|
||||
"module": "node18",
|
||||
"allowJs": true,
|
||||
"checkJs": false,
|
||||
"outDir": "./dist"
|
||||
|
||||
4646
circuits/yarn.lock
4646
circuits/yarn.lock
File diff suppressed because it is too large
Load Diff
3
common/.prettierignore
Normal file
3
common/.prettierignore
Normal file
@@ -0,0 +1,3 @@
|
||||
dist
|
||||
*.json
|
||||
src/constants/skiPem.ts
|
||||
@@ -1,16 +1,54 @@
|
||||
{
|
||||
"name": "openpassport-common",
|
||||
"name": "@selfxyz/common",
|
||||
"version": "0.0.1",
|
||||
"description": "Constants and utils for self sdks",
|
||||
"license": "MIT",
|
||||
"author": "",
|
||||
"author": "@Selfxyz Team",
|
||||
"type": "module",
|
||||
"main": "./dist/cjs/index.js",
|
||||
"module": "./dist/esm/index.js",
|
||||
"types": "./dist/esm/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/esm/index.js",
|
||||
"require": "./dist/cjs/index.js",
|
||||
"types": "./dist/esm/index.d.ts"
|
||||
},
|
||||
"./constants/*": {
|
||||
"import": "./dist/esm/constants/*.js",
|
||||
"require": "./dist/cjs/constants/*.js",
|
||||
"types": "./dist/esm/constants/*.d.ts"
|
||||
},
|
||||
"./utils/*": {
|
||||
"import": "./dist/esm/utils/*.js",
|
||||
"require": "./dist/cjs/utils/*.js",
|
||||
"types": "./dist/esm/utils/*.d.ts"
|
||||
},
|
||||
"./ofacdata/outputs/nameAndDobSMT.json": "./ofacdata/outputs/nameAndDobSMT.json",
|
||||
"./ofacdata/outputs/nameAndYobSMT.json": "./ofacdata/outputs/nameAndYobSMT.json",
|
||||
"./ofacdata/outputs/nameAndDobSMT_ID.json": "./ofacdata/outputs/nameAndDobSMT_ID.json",
|
||||
"./ofacdata/outputs/nameAndYobSMT_ID.json": "./ofacdata/outputs/nameAndYobSMT_ID.json",
|
||||
"./ofacdata/outputs/passportNoAndNationalitySMT.json": "./ofacdata/outputs/passportNoAndNationalitySMT.json",
|
||||
"./pubkeys/serialized_dsc_tree.json": "./pubkeys/serialized_dsc_tree.json",
|
||||
"./mock_certificates/*": "./src/mock_certificates/*",
|
||||
"./mock_certificates/**/*": "./src/mock_certificates/**/*"
|
||||
},
|
||||
"files": [
|
||||
"dist/cjs",
|
||||
"dist/esm",
|
||||
"src/mock_certificates"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && yarn postbuild",
|
||||
"types": "tsc -p tsconfig.json",
|
||||
"format": "prettier --write .",
|
||||
"lint": "prettier --check .",
|
||||
"test": "yarn ts-mocha tests/**/*.test.ts --exit",
|
||||
"test:scope": "yarn ts-mocha tests/scope.test.ts --exit"
|
||||
"test": "NODE_OPTIONS='--loader ts-node/esm' ts-mocha tests/**/*.test.ts --exit",
|
||||
"test:scope": "NODE_OPTIONS='--loader ts-node/esm' ts-mocha tests/scope.test.ts --exit",
|
||||
"postbuild": "node ./scripts/post-build.mjs",
|
||||
"prepublishOnly": "yarn build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.23.4",
|
||||
"@openpassport/zk-kit-imt": "^0.0.5",
|
||||
"@openpassport/zk-kit-lean-imt": "^0.0.6",
|
||||
"@openpassport/zk-kit-smt": "^0.0.1",
|
||||
@@ -29,18 +67,19 @@
|
||||
"js-sha512": "^0.9.0",
|
||||
"json-to-ts": "^2.1.0",
|
||||
"jsrsasign": "^11.1.0",
|
||||
"mocha": "^10.7.3",
|
||||
"node-forge": "https://github.com/remicolin/forge",
|
||||
"node-forge": "github:remicolin/forge#17a11a632dd0e50343b3b8393245a2696f78afbb",
|
||||
"path": "^0.12.7",
|
||||
"pkijs": "^3.2.4",
|
||||
"poseidon-lite": "^0.2.0",
|
||||
"snarkjs": "^0.7.5",
|
||||
"ts-mocha": "^10.0.0",
|
||||
"typescript-parser": "^2.6.1",
|
||||
"uuid": "^11.0.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node-forge": "^1.3.10",
|
||||
"prettier": "^3.3.3"
|
||||
"mocha": "^10.7.3",
|
||||
"prettier": "^3.3.3",
|
||||
"ts-mocha": "^10.0.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
10
common/scripts/post-build.mjs
Normal file
10
common/scripts/post-build.mjs
Normal file
@@ -0,0 +1,10 @@
|
||||
import { writeFileSync } from 'node:fs';
|
||||
import path from 'node:path';
|
||||
|
||||
const __dirname = process.cwd();
|
||||
const DIST = path.resolve(__dirname, 'dist');
|
||||
writeFileSync(path.join(DIST, 'esm', 'package.json'), JSON.stringify({ type: 'module' }, null, 4));
|
||||
writeFileSync(
|
||||
path.join(DIST, 'cjs', 'package.json'),
|
||||
JSON.stringify({ type: 'commonjs' }, null, 4)
|
||||
);
|
||||
@@ -5,7 +5,7 @@ export const COMMITMENT_TREE_DEPTH = 33;
|
||||
export const DEFAULT_USER_ID_TYPE = 'uuid';
|
||||
|
||||
export const REDIRECT_URL = 'https://redirect.self.xyz';
|
||||
export const WS_RPC_URL_VC_AND_DISCLOSE = "ws://disclose.proving.self.xyz:8888/";
|
||||
export const WS_RPC_URL_VC_AND_DISCLOSE = 'ws://disclose.proving.self.xyz:8888/';
|
||||
export const WS_DB_RELAYER = 'wss://websocket.self.xyz';
|
||||
export const WS_DB_RELAYER_STAGING = 'wss://websocket.staging.self.xyz';
|
||||
export const API_URL = 'https://api.self.xyz';
|
||||
@@ -20,12 +20,11 @@ export const IDENTITY_TREE_URL = 'https://tree.self.xyz/identity';
|
||||
export const IDENTITY_TREE_URL_STAGING = 'https://tree.staging.self.xyz/identity';
|
||||
|
||||
export const PASSPORT_ATTESTATION_ID = '1'; //"8518753152044246090169372947057357973469996808638122125210848696986717482788"
|
||||
export const ID_CARD_ATTESTATION_ID = '2'
|
||||
export const ID_CARD_ATTESTATION_ID = '2';
|
||||
export const CHAIN_NAME = 'celo';
|
||||
export const RPC_URL = 'https://forno.celo.org';
|
||||
export const PCR0_MANAGER_ADDRESS = '0xE36d4EE5Fd3916e703A46C21Bb3837dB7680C8B8';
|
||||
|
||||
|
||||
// we make it global here because passing it to generateCircuitInputsRegister caused trouble
|
||||
export const DEVELOPMENT_MODE = true;
|
||||
export const DEFAULT_MAJORITY = '18';
|
||||
@@ -79,7 +78,7 @@ export const MAX_CERT_BYTES: Partial<Record<keyof typeof SignatureAlgorithmIndex
|
||||
export const ECDSA_K_LENGTH_FACTOR = 2;
|
||||
// possible values because of sha1 constaints: 192,320,384, 448, 576, 640
|
||||
|
||||
export const CIRCUIT_TYPES = ['dsc', 'register', 'vc_and_disclose']
|
||||
export const CIRCUIT_TYPES = ['dsc', 'register', 'vc_and_disclose'];
|
||||
export const circuitNameFromMode = {
|
||||
prove: 'prove',
|
||||
prove_onchain: 'prove',
|
||||
@@ -115,7 +114,7 @@ export enum RegisterVerifierId {
|
||||
register_sha256_sha256_sha256_rsapss_65537_64_2048 = 22,
|
||||
register_sha512_sha512_sha256_rsa_65537_4096 = 23,
|
||||
register_sha512_sha512_sha512_ecdsa_secp521r1 = 24,
|
||||
};
|
||||
}
|
||||
|
||||
export enum DscVerifierId {
|
||||
dsc_sha1_ecdsa_brainpoolP256r1 = 0,
|
||||
@@ -138,7 +137,7 @@ export enum DscVerifierId {
|
||||
dsc_sha512_rsapss_65537_64_4096 = 17,
|
||||
dsc_sha256_rsapss_3_32_4096 = 18,
|
||||
dsc_sha1_ecdsa_secp256r1 = 19,
|
||||
};
|
||||
}
|
||||
|
||||
export enum SignatureAlgorithmIndex {
|
||||
rsa_sha256_65537_2048 = 1,
|
||||
@@ -205,18 +204,18 @@ export const circuitToSelectorMode = {
|
||||
};
|
||||
|
||||
export const revealedDataTypes = {
|
||||
'issuing_state': 0,
|
||||
'name': 1,
|
||||
'passport_number': 2,
|
||||
'nationality': 3,
|
||||
'date_of_birth': 4,
|
||||
'gender': 5,
|
||||
'expiry_date': 6,
|
||||
'older_than': 7,
|
||||
'passport_no_ofac': 8,
|
||||
'name_and_dob_ofac': 9,
|
||||
'name_and_yob_ofac': 10,
|
||||
}
|
||||
issuing_state: 0,
|
||||
name: 1,
|
||||
passport_number: 2,
|
||||
nationality: 3,
|
||||
date_of_birth: 4,
|
||||
gender: 5,
|
||||
expiry_date: 6,
|
||||
older_than: 7,
|
||||
passport_no_ofac: 8,
|
||||
name_and_dob_ofac: 9,
|
||||
name_and_yob_ofac: 10,
|
||||
};
|
||||
|
||||
export const CIRCUIT_CONSTANTS = {
|
||||
REGISTER_NULLIFIER_INDEX: 0,
|
||||
@@ -237,7 +236,7 @@ export const CIRCUIT_CONSTANTS = {
|
||||
VC_AND_DISCLOSE_NAME_YOB_SMT_ROOT_INDEX: 18,
|
||||
VC_AND_DISCLOSE_SCOPE_INDEX: 19,
|
||||
VC_AND_DISCLOSE_USER_IDENTIFIER_INDEX: 20,
|
||||
}
|
||||
};
|
||||
|
||||
export const MAX_BYTES_IN_FIELD = 31;
|
||||
export const MAX_PUBKEY_DSC_BYTES = 525;
|
||||
@@ -341,7 +340,7 @@ export const countryCodes = {
|
||||
GMB: 'Gambia',
|
||||
GEO: 'Georgia',
|
||||
DEU: 'Germany',
|
||||
"D<<": 'Germany', // Bundesrepublik Deutschland uses this in passports instead of DEU
|
||||
'D<<': 'Germany', // Bundesrepublik Deutschland uses this in passports instead of DEU
|
||||
GHA: 'Ghana',
|
||||
GIB: 'Gibraltar',
|
||||
GRC: 'Greece',
|
||||
@@ -533,4 +532,4 @@ qzOBhID0Nxk4k9sW1uT6ocW1xp1SB2WotORssOKIAOLJM8IbPl6n/DkYNcfvyXI7
|
||||
|
||||
export const DEFAULT_RPC_URL = 'https://mainnet.optimism.io';
|
||||
export const REGISTER_CONTRACT_ADDRESS = '0x3F346FFdC5d583e4126AF01A02Ac5b9CdB3f1909';
|
||||
export const SBT_CONTRACT_ADDRESS = '0x601Fd54FD11C5E77DE84d877e55B829aff20f0A6';
|
||||
export const SBT_CONTRACT_ADDRESS = '0x601Fd54FD11C5E77DE84d877e55B829aff20f0A6';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user