SEL-56: Setup Yarn Workspaces (#584)

This commit is contained in:
Aaron DeRuvo
2025-06-04 11:37:32 +02:00
committed by GitHub
parent 0c8c87362b
commit 0e9c59c0fb
203 changed files with 16353 additions and 23226 deletions

View File

@@ -22,9 +22,8 @@ runs:
with: with:
node-version: 20 node-version: 20
cache: 'yarn' cache: 'yarn'
cache-dependency-path: ${{ inputs.working_directory }}/yarn.lock cache-dependency-path: yarn.lock
- name: Install dependencies - name: Install dependencies
shell: bash shell: bash
run: yarn install --immutable run: yarn install --immutable
working-directory: ${{ inputs.working_directory }}

View File

@@ -3,6 +3,7 @@ name: App CI
on: on:
push: push:
paths: paths:
- "common/**"
- "app/**" - "app/**"
- ".github/workflows/app.yml" - ".github/workflows/app.yml"
- ".github/actions/**" - ".github/actions/**"
@@ -14,8 +15,6 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Dependencies - name: Install Dependencies
uses: ./.github/actions/yarn-install uses: ./.github/actions/yarn-install
with:
working_directory: ./app
- name: Run linter - name: Run linter
run: yarn lint run: yarn lint
working-directory: ./app working-directory: ./app
@@ -29,10 +28,9 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Dependencies - name: Install Dependencies
uses: ./.github/actions/yarn-install uses: ./.github/actions/yarn-install
with:
working_directory: ./app - name: Build
- name: Install app dependencies run: yarn build:deps
run: yarn install-app
working-directory: ./app working-directory: ./app
- name: Test - name: Test
run: yarn test run: yarn test

View File

@@ -1,4 +1,4 @@
name: OpenPassport CI/CD name: Self Circuits CI/CD
on: on:
push: push:
branches: branches:
@@ -50,21 +50,19 @@ jobs:
- name: Print Circom version - name: Print Circom version
run: circom --version run: circom --version
- name: "enable yarn"
run: corepack enable yarn
- name: Install Yarn dependencies - name: Install Yarn dependencies
working-directory: ./circuits run: yarn workspaces focus @selfxyz/circuits
run: yarn install-circuits --immutable
- name: Run lint - name: Run lint
working-directory: ./circuits working-directory: ./circuits
run: yarn lint run: yarn lint
- name: Build (Circuits + Self dependencies)
run: yarn build:deps
working-directory: ./circuits
- name: Run Tests (Circuits) - name: Run Tests (Circuits)
working-directory: ./circuits working-directory: ./circuits
env: env:
FULL_TEST_SUITE: false FULL_TEST_SUITE: false
run: yarn test run: yarn test
- name: Run Tests (Common)
working-directory: ./common
run: yarn test

41
.github/workflows/contracts.yml vendored Normal file
View 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
View 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

View File

@@ -7,6 +7,7 @@ on:
paths: paths:
- 'sdk/core/package.json' - 'sdk/core/package.json'
- 'sdk/qrcode/package.json' - 'sdk/qrcode/package.json'
- 'common/package.json'
jobs: jobs:
detect-changes: detect-changes:
@@ -14,6 +15,7 @@ jobs:
outputs: outputs:
core_changed: ${{ steps.check-version.outputs.core_changed }} core_changed: ${{ steps.check-version.outputs.core_changed }}
qrcode_changed: ${{ steps.check-version.outputs.qrcode_changed }} qrcode_changed: ${{ steps.check-version.outputs.qrcode_changed }}
common_changed: ${{ steps.check-version.outputs.common_changed }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
@@ -24,6 +26,7 @@ jobs:
run: | 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/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 "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 if git diff HEAD^ HEAD -- sdk/core/package.json | grep -q '"version":'; then
echo "core_changed=true" >> $GITHUB_OUTPUT echo "core_changed=true" >> $GITHUB_OUTPUT
@@ -33,6 +36,10 @@ jobs:
echo "qrcode_changed=true" >> $GITHUB_OUTPUT echo "qrcode_changed=true" >> $GITHUB_OUTPUT
fi fi
if git diff HEAD^ HEAD -- common/package.json | grep -q '"version":'; then
echo "common_changed=true" >> $GITHUB_OUTPUT
fi
publish-core: publish-core:
needs: detect-changes needs: detect-changes
if: needs.detect-changes.outputs.core_changed == 'true' if: needs.detect-changes.outputs.core_changed == 'true'
@@ -46,22 +53,17 @@ jobs:
node-version: '18' node-version: '18'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
- name: Install dependencies (common first) - name: Install Dependencies
run: | uses: ./.github/actions/yarn-install
cd common
yarn install
cd ../sdk/core
yarn install
- name: Build package - name: Build package
run: | run: |
cd sdk/core yarn workspace @selfxyz/core build:deps
yarn build
- name: Publish to npm - name: Publish to npm
working-directory: sdk/core
run: | run: |
cd sdk/core yarn npm publish --access public
npm publish --access public
env: env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -78,21 +80,42 @@ jobs:
node-version: '18' node-version: '18'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
- name: Install dependencies (common first) - name: Install Dependencies
run: | uses: ./.github/actions/yarn-install
cd common
yarn install
cd ../sdk/qrcode
yarn install
- name: Build package - name: Build package
run: | run: |
cd sdk/qrcode yarn workspace @sdk/qrcode build:deps
yarn build
- name: Publish to npm - name: Publish to npm
working-directory: sdk/qrcode
run: | run: |
cd sdk/qrcode yarn npm publish --access public
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: env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

1
.gitignore vendored
View File

@@ -8,3 +8,4 @@ showcase
.codegpt .codegpt
**/.yarn/ **/.yarn/
output/* output/*
*.tsbuildinfo

3
.watchmanconfig Normal file
View File

@@ -0,0 +1,3 @@
{
}

View File

@@ -1,7 +1,11 @@
module.exports = { module.exports = {
root: true, root: true,
extends: ['@react-native', 'plugin:prettier/recommended'], extends: [
plugins: ['simple-import-sort', 'prettier'], '@react-native',
'plugin:prettier/recommended',
'plugin:jest/recommended',
],
plugins: ['simple-import-sort', 'prettier', 'jest'],
ignorePatterns: ['ios/', 'android/', 'deployments/', 'node_modules/'], ignorePatterns: ['ios/', 'android/', 'deployments/', 'node_modules/'],
rules: { rules: {
// Import sorting rules // Import sorting rules

1
app/.tool-versions Normal file
View File

@@ -0,0 +1 @@
ruby 3.2.6

View File

@@ -1,3 +1,2 @@
nodeLinker: node-modules
enableScripts: true enableScripts: true
checksumBehavior: 'update' checksumBehavior: 'update'

View File

@@ -32,10 +32,11 @@
> All of the commands in this guide are run from the `self/app` directory > All of the commands in this guide are run from the `self/app` directory
Install dependencies Install dependencies + build
```bash ```bash
yarn install
yarn install-app yarn install-app
``` ```
### Android ### Android

View File

@@ -12,13 +12,13 @@ apply plugin: 'com.google.gms.google-services'
react { react {
/* Folders */ /* Folders */
// The root of your project, i.e. where "package.json" lives. Default is '../..' // 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 // 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 // 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 // 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 */ /* Variants */
// The list of variants to that are debuggable. For those we're going to // The list of variants to that are debuggable. For those we're going to

View File

@@ -37,10 +37,10 @@ allprojects {
google() google()
mavenCentral() mavenCentral()
maven { maven {
url("$rootDir/../node_modules/react-native/android") url("$rootDir/../../node_modules/react-native/android")
} }
maven { maven {
url("$rootDir/../node_modules/jsc-android/dist") url("$rootDir/../../node_modules/jsc-android/dist")
} }
maven { url 'https://jitpack.io' } maven { url 'https://jitpack.io' }
jcenter() jcenter()

View File

@@ -8,90 +8,6 @@
{ {
"path": "src/assets/fonts/DINOT-Medium.otf", "path": "src/assets/fonts/DINOT-Medium.otf",
"sha1": "e993d15a13bc4e2c66dac255d7fa569486345f88" "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"
} }
] ]
} }

View File

@@ -1,9 +1,9 @@
pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } pluginManagement { includeBuild("../../node_modules/@react-native/gradle-plugin") }
plugins { id("com.facebook.react.settings") } plugins { id("com.facebook.react.settings") }
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
rootProject.name = 'OpenPassport' rootProject.name = 'OpenPassport'
include ':app' include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin') includeBuild('../../node_modules/@react-native/gradle-plugin')
include ':react-native-passport-reader' include ':react-native-passport-reader'
project(':react-native-passport-reader').projectDir = new File(rootProject.projectDir, './react-native-passport-reader/android') project(':react-native-passport-reader').projectDir = new File(rootProject.projectDir, './react-native-passport-reader/android')
include ':passportreader' include ':passportreader'

View File

@@ -1,4 +1,4 @@
{ {
"name": "OpenPassport", "name": "OpenPassport",
"displayName": "OpenPassport" "displayName": "Self App"
} }

View File

@@ -81,7 +81,6 @@ struct ScannerWithInstructions: View {
} }
.frame(height: 320) .frame(height: 320)
Text("Hold your passport on a flat surface while scanning") Text("Hold your passport on a flat surface while scanning")
.font(.custom("Inter-Regular", size: 20))
.foregroundColor(.black) .foregroundColor(.black)
.multilineTextAlignment(.center) .multilineTextAlignment(.center)
.frame(width: 300) .frame(width: 300)

View File

@@ -9,7 +9,7 @@
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleGetInfoString</key> <key>CFBundleGetInfoString</key>
<string /> <string></string>
<key>CFBundleIconName</key> <key>CFBundleIconName</key>
<string>AppIcon</string> <string>AppIcon</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
@@ -24,53 +24,6 @@
<string>2.5.2</string> <string>2.5.2</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <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> <key>CFBundleURLTypes</key>
<array> <array>
<dict> <dict>
@@ -80,30 +33,37 @@
</array> </array>
</dict> </dict>
</array> </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> <key>UIAppFonts</key>
<array> <array>
<string>Advercase-Regular.otf</string> <string>Advercase-Regular.otf</string>
<string>DINOT-Medium.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> </array>
<key>UIApplicationSupportsIndirectInputEvents</key> <key>UIApplicationSupportsIndirectInputEvents</key>
<true/> <true/>
@@ -112,5 +72,27 @@
<string>fetch</string> <string>fetch</string>
<string>remote-notification</string> <string>remote-notification</string>
</array> </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> </dict>
</plist> </plist>

View File

@@ -1,3 +1,4 @@
source 'https://cdn.cocoapods.org/'
use_frameworks! use_frameworks!
require "tmpdir" require "tmpdir"
@@ -30,7 +31,7 @@ target "Self" do
pod "QKMRZScanner" pod "QKMRZScanner"
pod "lottie-ios" pod "lottie-ios"
pod "SwiftQRScanner", :git => "https://github.com/vinodiOS/SwiftQRScanner" 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!( use_react_native!(
:path => config[:reactNativePath], :path => config[:reactNativePath],

View File

@@ -1406,7 +1406,7 @@ PODS:
- React-Core - React-Core
- react-native-nfc-manager (3.16.1): - react-native-nfc-manager (3.16.1):
- React-Core - React-Core
- react-native-quick-crypto (0.7.12): - react-native-quick-crypto (0.7.13):
- DoubleConversion - DoubleConversion
- glog - glog
- OpenSSL-Universal - OpenSSL-Universal
@@ -1429,7 +1429,7 @@ PODS:
- ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core - ReactCommon/turbomodule/core
- Yoga - Yoga
- react-native-safe-area-context (5.2.0): - react-native-safe-area-context (5.4.1):
- React-Core - React-Core
- react-native-sqlite-storage (6.0.1): - react-native-sqlite-storage (6.0.1):
- React-Core - React-Core
@@ -1676,7 +1676,7 @@ PODS:
- React-logger (= 0.75.4) - React-logger (= 0.75.4)
- React-perflogger (= 0.75.4) - React-perflogger (= 0.75.4)
- React-utils (= 0.75.4) - React-utils (= 0.75.4)
- RNCAsyncStorage (2.1.1): - RNCAsyncStorage (2.1.2):
- React-Core - React-Core
- RNCClipboard (1.13.2): - RNCClipboard (1.13.2):
- React-Core - React-Core
@@ -1690,7 +1690,7 @@ PODS:
- FirebaseCoreExtension - FirebaseCoreExtension
- React-Core - React-Core
- RNFBApp - RNFBApp
- RNGestureHandler (2.24.0): - RNGestureHandler (2.25.0):
- DoubleConversion - DoubleConversion
- glog - glog
- RCT-Folly (= 2024.01.01.00) - RCT-Folly (= 2024.01.01.00)
@@ -1711,7 +1711,7 @@ PODS:
- ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core - ReactCommon/turbomodule/core
- Yoga - Yoga
- RNGoogleSignin (13.2.0): - RNGoogleSignin (13.3.1):
- GoogleSignIn (~> 7.1) - GoogleSignIn (~> 7.1)
- React-Core - React-Core
- RNKeychain (10.0.0): - RNKeychain (10.0.0):
@@ -1802,7 +1802,7 @@ PODS:
- ReactCommon/turbomodule/core - ReactCommon/turbomodule/core
- Sentry/HybridSDK (= 8.48.0) - Sentry/HybridSDK (= 8.48.0)
- Yoga - Yoga
- RNSVG (15.11.1): - RNSVG (15.12.0):
- React-Core - React-Core
- segment-analytics-react-native (2.21.0): - segment-analytics-react-native (2.21.0):
- React-Core - React-Core
@@ -1820,103 +1820,103 @@ PODS:
- Yoga (0.0.0) - Yoga (0.0.0)
DEPENDENCIES: DEPENDENCIES:
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - boost (from `../../node_modules/react-native/third-party-podspecs/boost.podspec`)
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - DoubleConversion (from `../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBLazyVector (from `../../node_modules/react-native/Libraries/FBLazyVector`)
- Firebase - Firebase
- FirebaseCore - FirebaseCore
- FirebaseCoreInternal - FirebaseCoreInternal
- FirebaseMessaging - FirebaseMessaging
- fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - fmt (from `../../node_modules/react-native/third-party-podspecs/fmt.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - glog (from `../../node_modules/react-native/third-party-podspecs/glog.podspec`)
- GoogleUtilities - GoogleUtilities
- lottie-ios - 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`) - NFCPassportReader (from `https://github.com/zk-passport/NFCPassportReader`, commit `e3e869b14fb7fb2417928079db3967f203523580`)
- QKMRZScanner - QKMRZScanner
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - 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`) - RCT-Folly/Fabric (from `../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) - RCTDeprecation (from `../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
- RCTRequired (from `../node_modules/react-native/Libraries/Required`) - RCTRequired (from `../../node_modules/react-native/Libraries/Required`)
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - RCTTypeSafety (from `../../node_modules/react-native/Libraries/TypeSafety`)
- React (from `../node_modules/react-native/`) - React (from `../../node_modules/react-native/`)
- React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - React-callinvoker (from `../../node_modules/react-native/ReactCommon/callinvoker`)
- React-Core (from `../node_modules/react-native/`) - React-Core (from `../../node_modules/react-native/`)
- React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../../node_modules/react-native/`)
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-CoreModules (from `../../node_modules/react-native/React/CoreModules`)
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - React-cxxreact (from `../../node_modules/react-native/ReactCommon/cxxreact`)
- React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) - React-debug (from `../../node_modules/react-native/ReactCommon/react/debug`)
- React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) - React-defaultsnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/defaults`)
- React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) - React-domnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/dom`)
- React-Fabric (from `../node_modules/react-native/ReactCommon`) - React-Fabric (from `../../node_modules/react-native/ReactCommon`)
- React-FabricComponents (from `../node_modules/react-native/ReactCommon`) - React-FabricComponents (from `../../node_modules/react-native/ReactCommon`)
- React-FabricImage (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-featureflags (from `../../node_modules/react-native/ReactCommon/react/featureflags`)
- React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) - React-featureflagsnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`)
- React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) - React-graphics (from `../../node_modules/react-native/ReactCommon/react/renderer/graphics`)
- React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) - 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-ImageManager (from `../../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
- React-jsc (from `../node_modules/react-native/ReactCommon/jsc`) - React-jsc (from `../../node_modules/react-native/ReactCommon/jsc`)
- React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) - React-jserrorhandler (from `../../node_modules/react-native/ReactCommon/jserrorhandler`)
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsi (from `../../node_modules/react-native/ReactCommon/jsi`)
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsiexecutor (from `../../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) - React-jsinspector (from `../../node_modules/react-native/ReactCommon/jsinspector-modern`)
- React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) - React-jsitracing (from `../../node_modules/react-native/ReactCommon/hermes/executor/`)
- React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-logger (from `../../node_modules/react-native/ReactCommon/logger`)
- React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - React-Mapbuffer (from `../../node_modules/react-native/ReactCommon`)
- React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) - React-microtasksnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`)
- react-native-biometrics (from `../node_modules/react-native-biometrics`) - react-native-biometrics (from `../../node_modules/react-native-biometrics`)
- react-native-cloud-storage (from `../node_modules/react-native-cloud-storage`) - 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-get-random-values (from `../../node_modules/react-native-get-random-values`)
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" - "react-native-netinfo (from `../../node_modules/@react-native-community/netinfo`)"
- react-native-nfc-manager (from `../node_modules/react-native-nfc-manager`) - react-native-nfc-manager (from `../../node_modules/react-native-nfc-manager`)
- react-native-quick-crypto (from `../node_modules/react-native-quick-crypto`) - 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-safe-area-context (from `../../node_modules/react-native-safe-area-context`)
- react-native-sqlite-storage (from `../node_modules/react-native-sqlite-storage`) - react-native-sqlite-storage (from `../../node_modules/react-native-sqlite-storage`)
- React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - React-nativeconfig (from `../../node_modules/react-native/ReactCommon`)
- React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-NativeModulesApple (from `../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - React-perflogger (from `../../node_modules/react-native/ReactCommon/reactperflogger`)
- React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) - React-performancetimeline (from `../../node_modules/react-native/ReactCommon/react/performance/timeline`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - React-RCTActionSheet (from `../../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - React-RCTAnimation (from `../../node_modules/react-native/Libraries/NativeAnimation`)
- React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) - React-RCTAppDelegate (from `../../node_modules/react-native/Libraries/AppDelegate`)
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) - React-RCTBlob (from `../../node_modules/react-native/Libraries/Blob`)
- React-RCTFabric (from `../node_modules/react-native/React`) - React-RCTFabric (from `../../node_modules/react-native/React`)
- React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - React-RCTImage (from `../../node_modules/react-native/Libraries/Image`)
- React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - React-RCTLinking (from `../../node_modules/react-native/Libraries/LinkingIOS`)
- React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) - React-RCTNetwork (from `../../node_modules/react-native/Libraries/Network`)
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - React-RCTSettings (from `../../node_modules/react-native/Libraries/Settings`)
- React-RCTText (from `../node_modules/react-native/Libraries/Text`) - React-RCTText (from `../../node_modules/react-native/Libraries/Text`)
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-RCTVibration (from `../../node_modules/react-native/Libraries/Vibration`)
- React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) - React-rendererconsistency (from `../../node_modules/react-native/ReactCommon/react/renderer/consistency`)
- React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - React-rendererdebug (from `../../node_modules/react-native/ReactCommon/react/renderer/debug`)
- React-rncore (from `../node_modules/react-native/ReactCommon`) - React-rncore (from `../../node_modules/react-native/ReactCommon`)
- React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) - React-RuntimeApple (from `../../node_modules/react-native/ReactCommon/react/runtime/platform/ios`)
- React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-RuntimeCore (from `../../node_modules/react-native/ReactCommon/react/runtime`)
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - React-runtimeexecutor (from `../../node_modules/react-native/ReactCommon/runtimeexecutor`)
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-runtimescheduler (from `../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - React-utils (from `../../node_modules/react-native/ReactCommon/react/utils`)
- ReactCodegen (from `build/generated/ios`) - ReactCodegen (from `build/generated/ios`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - ReactCommon/turbomodule/core (from `../../node_modules/react-native/ReactCommon`)
- "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" - "RNCAsyncStorage (from `../../node_modules/@react-native-async-storage/async-storage`)"
- "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" - "RNCClipboard (from `../../node_modules/@react-native-clipboard/clipboard`)"
- RNDeviceInfo (from `../node_modules/react-native-device-info`) - RNDeviceInfo (from `../../node_modules/react-native-device-info`)
- "RNFBApp (from `../node_modules/@react-native-firebase/app`)" - "RNFBApp (from `../../node_modules/@react-native-firebase/app`)"
- "RNFBMessaging (from `../node_modules/@react-native-firebase/messaging`)" - "RNFBMessaging (from `../../node_modules/@react-native-firebase/messaging`)"
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNGestureHandler (from `../../node_modules/react-native-gesture-handler`)
- "RNGoogleSignin (from `../node_modules/@react-native-google-signin/google-signin`)" - "RNGoogleSignin (from `../../node_modules/@react-native-google-signin/google-signin`)"
- RNKeychain (from `../node_modules/react-native-keychain`) - RNKeychain (from `../../node_modules/react-native-keychain`)
- RNLocalize (from `../node_modules/react-native-localize`) - RNLocalize (from `../../node_modules/react-native-localize`)
- RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`) - RNReactNativeHapticFeedback (from `../../node_modules/react-native-haptic-feedback`)
- RNScreens (from `../node_modules/react-native-screens`) - RNScreens (from `../../node_modules/react-native-screens`)
- "RNSentry (from `../node_modules/@sentry/react-native`)" - "RNSentry (from `../../node_modules/@sentry/react-native`)"
- RNSVG (from `../node_modules/react-native-svg`) - RNSVG (from `../../node_modules/react-native-svg`)
- "segment-analytics-react-native (from `../node_modules/@segment/analytics-react-native`)" - "segment-analytics-react-native (from `../../node_modules/@segment/analytics-react-native`)"
- Sentry - Sentry
- SentryPrivate - 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`) - 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: SPEC REPOS:
trunk: trunk:
@@ -1947,178 +1947,178 @@ SPEC REPOS:
EXTERNAL SOURCES: EXTERNAL SOURCES:
boost: boost:
:podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" :podspec: "../../node_modules/react-native/third-party-podspecs/boost.podspec"
DoubleConversion: DoubleConversion:
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" :podspec: "../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
FBLazyVector: FBLazyVector:
:path: "../node_modules/react-native/Libraries/FBLazyVector" :path: "../../node_modules/react-native/Libraries/FBLazyVector"
fmt: fmt:
:podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" :podspec: "../../node_modules/react-native/third-party-podspecs/fmt.podspec"
glog: glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" :podspec: "../../node_modules/react-native/third-party-podspecs/glog.podspec"
lottie-react-native: lottie-react-native:
:path: "../node_modules/lottie-react-native" :path: "../../node_modules/lottie-react-native"
NFCPassportReader: NFCPassportReader:
:commit: e3e869b14fb7fb2417928079db3967f203523580 :commit: e3e869b14fb7fb2417928079db3967f203523580
:git: https://github.com/zk-passport/NFCPassportReader :git: https://github.com/zk-passport/NFCPassportReader
RCT-Folly: 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: RCTDeprecation:
:path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" :path: "../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation"
RCTRequired: RCTRequired:
:path: "../node_modules/react-native/Libraries/Required" :path: "../../node_modules/react-native/Libraries/Required"
RCTTypeSafety: RCTTypeSafety:
:path: "../node_modules/react-native/Libraries/TypeSafety" :path: "../../node_modules/react-native/Libraries/TypeSafety"
React: React:
:path: "../node_modules/react-native/" :path: "../../node_modules/react-native/"
React-callinvoker: React-callinvoker:
:path: "../node_modules/react-native/ReactCommon/callinvoker" :path: "../../node_modules/react-native/ReactCommon/callinvoker"
React-Core: React-Core:
:path: "../node_modules/react-native/" :path: "../../node_modules/react-native/"
React-CoreModules: React-CoreModules:
:path: "../node_modules/react-native/React/CoreModules" :path: "../../node_modules/react-native/React/CoreModules"
React-cxxreact: React-cxxreact:
:path: "../node_modules/react-native/ReactCommon/cxxreact" :path: "../../node_modules/react-native/ReactCommon/cxxreact"
React-debug: React-debug:
:path: "../node_modules/react-native/ReactCommon/react/debug" :path: "../../node_modules/react-native/ReactCommon/react/debug"
React-defaultsnativemodule: React-defaultsnativemodule:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" :path: "../../node_modules/react-native/ReactCommon/react/nativemodule/defaults"
React-domnativemodule: React-domnativemodule:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" :path: "../../node_modules/react-native/ReactCommon/react/nativemodule/dom"
React-Fabric: React-Fabric:
:path: "../node_modules/react-native/ReactCommon" :path: "../../node_modules/react-native/ReactCommon"
React-FabricComponents: React-FabricComponents:
:path: "../node_modules/react-native/ReactCommon" :path: "../../node_modules/react-native/ReactCommon"
React-FabricImage: React-FabricImage:
:path: "../node_modules/react-native/ReactCommon" :path: "../../node_modules/react-native/ReactCommon"
React-featureflags: React-featureflags:
:path: "../node_modules/react-native/ReactCommon/react/featureflags" :path: "../../node_modules/react-native/ReactCommon/react/featureflags"
React-featureflagsnativemodule: React-featureflagsnativemodule:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" :path: "../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags"
React-graphics: React-graphics:
:path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" :path: "../../node_modules/react-native/ReactCommon/react/renderer/graphics"
React-idlecallbacksnativemodule: React-idlecallbacksnativemodule:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" :path: "../../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks"
React-ImageManager: 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: React-jsc:
:path: "../node_modules/react-native/ReactCommon/jsc" :path: "../../node_modules/react-native/ReactCommon/jsc"
React-jserrorhandler: React-jserrorhandler:
:path: "../node_modules/react-native/ReactCommon/jserrorhandler" :path: "../../node_modules/react-native/ReactCommon/jserrorhandler"
React-jsi: React-jsi:
:path: "../node_modules/react-native/ReactCommon/jsi" :path: "../../node_modules/react-native/ReactCommon/jsi"
React-jsiexecutor: React-jsiexecutor:
:path: "../node_modules/react-native/ReactCommon/jsiexecutor" :path: "../../node_modules/react-native/ReactCommon/jsiexecutor"
React-jsinspector: React-jsinspector:
:path: "../node_modules/react-native/ReactCommon/jsinspector-modern" :path: "../../node_modules/react-native/ReactCommon/jsinspector-modern"
React-jsitracing: React-jsitracing:
:path: "../node_modules/react-native/ReactCommon/hermes/executor/" :path: "../../node_modules/react-native/ReactCommon/hermes/executor/"
React-logger: React-logger:
:path: "../node_modules/react-native/ReactCommon/logger" :path: "../../node_modules/react-native/ReactCommon/logger"
React-Mapbuffer: React-Mapbuffer:
:path: "../node_modules/react-native/ReactCommon" :path: "../../node_modules/react-native/ReactCommon"
React-microtasksnativemodule: React-microtasksnativemodule:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" :path: "../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks"
react-native-biometrics: react-native-biometrics:
:path: "../node_modules/react-native-biometrics" :path: "../../node_modules/react-native-biometrics"
react-native-cloud-storage: react-native-cloud-storage:
:path: "../node_modules/react-native-cloud-storage" :path: "../../node_modules/react-native-cloud-storage"
react-native-get-random-values: react-native-get-random-values:
:path: "../node_modules/react-native-get-random-values" :path: "../../node_modules/react-native-get-random-values"
react-native-netinfo: react-native-netinfo:
:path: "../node_modules/@react-native-community/netinfo" :path: "../../node_modules/@react-native-community/netinfo"
react-native-nfc-manager: react-native-nfc-manager:
:path: "../node_modules/react-native-nfc-manager" :path: "../../node_modules/react-native-nfc-manager"
react-native-quick-crypto: react-native-quick-crypto:
:path: "../node_modules/react-native-quick-crypto" :path: "../../node_modules/react-native-quick-crypto"
react-native-safe-area-context: 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: react-native-sqlite-storage:
:path: "../node_modules/react-native-sqlite-storage" :path: "../../node_modules/react-native-sqlite-storage"
React-nativeconfig: React-nativeconfig:
:path: "../node_modules/react-native/ReactCommon" :path: "../../node_modules/react-native/ReactCommon"
React-NativeModulesApple: 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: React-perflogger:
:path: "../node_modules/react-native/ReactCommon/reactperflogger" :path: "../../node_modules/react-native/ReactCommon/reactperflogger"
React-performancetimeline: React-performancetimeline:
:path: "../node_modules/react-native/ReactCommon/react/performance/timeline" :path: "../../node_modules/react-native/ReactCommon/react/performance/timeline"
React-RCTActionSheet: React-RCTActionSheet:
:path: "../node_modules/react-native/Libraries/ActionSheetIOS" :path: "../../node_modules/react-native/Libraries/ActionSheetIOS"
React-RCTAnimation: React-RCTAnimation:
:path: "../node_modules/react-native/Libraries/NativeAnimation" :path: "../../node_modules/react-native/Libraries/NativeAnimation"
React-RCTAppDelegate: React-RCTAppDelegate:
:path: "../node_modules/react-native/Libraries/AppDelegate" :path: "../../node_modules/react-native/Libraries/AppDelegate"
React-RCTBlob: React-RCTBlob:
:path: "../node_modules/react-native/Libraries/Blob" :path: "../../node_modules/react-native/Libraries/Blob"
React-RCTFabric: React-RCTFabric:
:path: "../node_modules/react-native/React" :path: "../../node_modules/react-native/React"
React-RCTImage: React-RCTImage:
:path: "../node_modules/react-native/Libraries/Image" :path: "../../node_modules/react-native/Libraries/Image"
React-RCTLinking: React-RCTLinking:
:path: "../node_modules/react-native/Libraries/LinkingIOS" :path: "../../node_modules/react-native/Libraries/LinkingIOS"
React-RCTNetwork: React-RCTNetwork:
:path: "../node_modules/react-native/Libraries/Network" :path: "../../node_modules/react-native/Libraries/Network"
React-RCTSettings: React-RCTSettings:
:path: "../node_modules/react-native/Libraries/Settings" :path: "../../node_modules/react-native/Libraries/Settings"
React-RCTText: React-RCTText:
:path: "../node_modules/react-native/Libraries/Text" :path: "../../node_modules/react-native/Libraries/Text"
React-RCTVibration: React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration" :path: "../../node_modules/react-native/Libraries/Vibration"
React-rendererconsistency: React-rendererconsistency:
:path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" :path: "../../node_modules/react-native/ReactCommon/react/renderer/consistency"
React-rendererdebug: React-rendererdebug:
:path: "../node_modules/react-native/ReactCommon/react/renderer/debug" :path: "../../node_modules/react-native/ReactCommon/react/renderer/debug"
React-rncore: React-rncore:
:path: "../node_modules/react-native/ReactCommon" :path: "../../node_modules/react-native/ReactCommon"
React-RuntimeApple: React-RuntimeApple:
:path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" :path: "../../node_modules/react-native/ReactCommon/react/runtime/platform/ios"
React-RuntimeCore: React-RuntimeCore:
:path: "../node_modules/react-native/ReactCommon/react/runtime" :path: "../../node_modules/react-native/ReactCommon/react/runtime"
React-runtimeexecutor: React-runtimeexecutor:
:path: "../node_modules/react-native/ReactCommon/runtimeexecutor" :path: "../../node_modules/react-native/ReactCommon/runtimeexecutor"
React-runtimescheduler: React-runtimescheduler:
:path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" :path: "../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
React-utils: React-utils:
:path: "../node_modules/react-native/ReactCommon/react/utils" :path: "../../node_modules/react-native/ReactCommon/react/utils"
ReactCodegen: ReactCodegen:
:path: build/generated/ios :path: build/generated/ios
ReactCommon: ReactCommon:
:path: "../node_modules/react-native/ReactCommon" :path: "../../node_modules/react-native/ReactCommon"
RNCAsyncStorage: RNCAsyncStorage:
:path: "../node_modules/@react-native-async-storage/async-storage" :path: "../../node_modules/@react-native-async-storage/async-storage"
RNCClipboard: RNCClipboard:
:path: "../node_modules/@react-native-clipboard/clipboard" :path: "../../node_modules/@react-native-clipboard/clipboard"
RNDeviceInfo: RNDeviceInfo:
:path: "../node_modules/react-native-device-info" :path: "../../node_modules/react-native-device-info"
RNFBApp: RNFBApp:
:path: "../node_modules/@react-native-firebase/app" :path: "../../node_modules/@react-native-firebase/app"
RNFBMessaging: RNFBMessaging:
:path: "../node_modules/@react-native-firebase/messaging" :path: "../../node_modules/@react-native-firebase/messaging"
RNGestureHandler: RNGestureHandler:
:path: "../node_modules/react-native-gesture-handler" :path: "../../node_modules/react-native-gesture-handler"
RNGoogleSignin: RNGoogleSignin:
:path: "../node_modules/@react-native-google-signin/google-signin" :path: "../../node_modules/@react-native-google-signin/google-signin"
RNKeychain: RNKeychain:
:path: "../node_modules/react-native-keychain" :path: "../../node_modules/react-native-keychain"
RNLocalize: RNLocalize:
:path: "../node_modules/react-native-localize" :path: "../../node_modules/react-native-localize"
RNReactNativeHapticFeedback: RNReactNativeHapticFeedback:
:path: "../node_modules/react-native-haptic-feedback" :path: "../../node_modules/react-native-haptic-feedback"
RNScreens: RNScreens:
:path: "../node_modules/react-native-screens" :path: "../../node_modules/react-native-screens"
RNSentry: RNSentry:
:path: "../node_modules/@sentry/react-native" :path: "../../node_modules/@sentry/react-native"
RNSVG: RNSVG:
:path: "../node_modules/react-native-svg" :path: "../../node_modules/react-native-svg"
segment-analytics-react-native: segment-analytics-react-native:
:path: "../node_modules/@segment/analytics-react-native" :path: "../../node_modules/@segment/analytics-react-native"
sovran-react-native: sovran-react-native:
:path: "../node_modules/@segment/sovran-react-native" :path: "../../node_modules/@segment/sovran-react-native"
SwiftQRScanner: SwiftQRScanner:
:git: https://github.com/vinodiOS/SwiftQRScanner :git: https://github.com/vinodiOS/SwiftQRScanner
Yoga: Yoga:
:path: "../node_modules/react-native/ReactCommon/yoga" :path: "../../node_modules/react-native/ReactCommon/yoga"
CHECKOUT OPTIONS: CHECKOUT OPTIONS:
NFCPassportReader: NFCPassportReader:
@@ -2190,8 +2190,8 @@ SPEC CHECKSUMS:
react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba
react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187 react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187
react-native-nfc-manager: a280ef94cd4871a471b052f0dc70381cf1223049 react-native-nfc-manager: a280ef94cd4871a471b052f0dc70381cf1223049
react-native-quick-crypto: a7cc5f870f270488fee9047b56e481de85c32e33 react-native-quick-crypto: 2d8136faf9e82a8f396a9b5ad85203ac20212739
react-native-safe-area-context: 3e33e7c43c8b74dba436a5a32651cb8d7064c740 react-native-safe-area-context: dde2052b903c11d677c320b599c3244021c34ce8
react-native-sqlite-storage: 0c84826214baaa498796c7e46a5ccc9a82e114ed react-native-sqlite-storage: 0c84826214baaa498796c7e46a5ccc9a82e114ed
React-nativeconfig: 31072ab0146e643594f6959c7f970a04b6c9ddd0 React-nativeconfig: 31072ab0146e643594f6959c7f970a04b6c9ddd0
React-NativeModulesApple: 4ffcab4cdf34002540799bffbedd6466e8023c3a React-NativeModulesApple: 4ffcab4cdf34002540799bffbedd6466e8023c3a
@@ -2216,21 +2216,21 @@ SPEC CHECKSUMS:
React-runtimeexecutor: ea90d8e3a9e0f4326939858dafc6ab17c031a5d3 React-runtimeexecutor: ea90d8e3a9e0f4326939858dafc6ab17c031a5d3
React-runtimescheduler: 6b33edee8c830c7926670df4232d51f4f6a82795 React-runtimescheduler: 6b33edee8c830c7926670df4232d51f4f6a82795
React-utils: 7198bd077f07ce8f9263c05bf610da6e251058ad React-utils: 7198bd077f07ce8f9263c05bf610da6e251058ad
ReactCodegen: a2d336e0bec3d2f45475df55e7a02cc4e4c19623 ReactCodegen: fbd3d6af21ba08f12ccd0f542393393d21134ea5
ReactCommon: b02a50498cb1071cd793044ddbd5d2b5f4db0a34 ReactCommon: b02a50498cb1071cd793044ddbd5d2b5f4db0a34
RNCAsyncStorage: af7b591318005069c3795076addc83a4dd5c0a2e RNCAsyncStorage: b9f5f78da5d16a853fe3dc22e8268d932fc45a83
RNCClipboard: 4abb037e8fe3b98a952564c9e0474f91c492df6d RNCClipboard: 4abb037e8fe3b98a952564c9e0474f91c492df6d
RNDeviceInfo: d863506092aef7e7af3a1c350c913d867d795047 RNDeviceInfo: d863506092aef7e7af3a1c350c913d867d795047
RNFBApp: 4097f75673f8b42a7cd1ba17e6ea85a94b45e4d1 RNFBApp: 4097f75673f8b42a7cd1ba17e6ea85a94b45e4d1
RNFBMessaging: 92325b0d5619ac90ef023a23cfd16fd3b91d0a88 RNFBMessaging: 92325b0d5619ac90ef023a23cfd16fd3b91d0a88
RNGestureHandler: 9c3877d98d4584891b69d16ebca855ac46507f4d RNGestureHandler: ffb1f106c7a78377a2ae7568d51ccf87dc5c83c6
RNGoogleSignin: b8760528f2a7cbe157ecfdcc13bdb7d2745c9389 RNGoogleSignin: 576a84dd0407b912e7a0adf07492de9feb79e5d9
RNKeychain: 4990d9be2916c60f9ed4f8c484fcd7ced4828b86 RNKeychain: 4990d9be2916c60f9ed4f8c484fcd7ced4828b86
RNLocalize: 15463c4d79c7da45230064b4adcf5e9bb984667e RNLocalize: 15463c4d79c7da45230064b4adcf5e9bb984667e
RNReactNativeHapticFeedback: e19b9b2e2ecf5593de8c4ef1496e1e31ae227514 RNReactNativeHapticFeedback: e19b9b2e2ecf5593de8c4ef1496e1e31ae227514
RNScreens: b7e8d29c6be98f478bc3fb4a97cc770aa9ba7509 RNScreens: b7e8d29c6be98f478bc3fb4a97cc770aa9ba7509
RNSentry: c462461c0a5aaba206265f1f3db01b237cd33239 RNSentry: c462461c0a5aaba206265f1f3db01b237cd33239
RNSVG: 46769c92d1609e617dbf9326ad8a0cff912d0982 RNSVG: e3ad69848b6357587545e0a49628b1148acf082c
segment-analytics-react-native: dab2ae61d917629b8d040b572f9f7a11b2cc5940 segment-analytics-react-native: dab2ae61d917629b8d040b572f9f7a11b2cc5940
Sentry: 1ca8405451040482877dcd344dfa3ef80b646631 Sentry: 1ca8405451040482877dcd344dfa3ef80b646631
SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe
@@ -2240,6 +2240,6 @@ SPEC CHECKSUMS:
SwiftyTesseract: 1f3d96668ae92dc2208d9842c8a59bea9fad2cbb SwiftyTesseract: 1f3d96668ae92dc2208d9842c8a59bea9fad2cbb
Yoga: b05994d1933f507b0a28ceaa4fdb968dc18da178 Yoga: b05994d1933f507b0a28ceaa4fdb968dc18da178
PODFILE CHECKSUM: 4c1f9edcbeb4d0ce27f59c7f64ba1f803e06511d PODFILE CHECKSUM: 2b4d221f59ee4daed11d52338f4dd84d2081bcc6
COCOAPODS: 1.16.2 COCOAPODS: 1.16.2

View File

@@ -8,7 +8,6 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
05D985FB2BB3344600F58EEA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 05D985FA2BB3344600F58EEA /* Assets.xcassets */; }; 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 */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 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 */; }; 1686F0E02C500FBD00841CDE /* QRScannerBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 1686F0DF2C500FBD00841CDE /* QRScannerBridge.m */; };
16E6646E2B8D292500FDD6A0 /* QKMRZScannerViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16E6646D2B8D292500FDD6A0 /* QKMRZScannerViewRepresentable.swift */; }; 16E6646E2B8D292500FDD6A0 /* QKMRZScannerViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16E6646D2B8D292500FDD6A0 /* QKMRZScannerViewRepresentable.swift */; };
16E884A52C5BD764003B7125 /* passport.json in Resources */ = {isa = PBXBuildFile; fileRef = 16E884A42C5BD764003B7125 /* passport.json */; }; 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 */; }; 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 */; }; 905B70052A72767900AFA232 /* PassportReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 905B70042A72767900AFA232 /* PassportReader.swift */; };
905B70072A72774000AFA232 /* PassportReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 905B70062A72774000AFA232 /* PassportReader.m */; }; 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 */; }; 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 */; }; BF1044812DD53540009B3688 /* LiveMRZScannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1044802DD53540009B3688 /* LiveMRZScannerView.swift */; };
BF1044832DD5354F009B3688 /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1044822DD5354F009B3688 /* CameraView.swift */; }; BF1044832DD5354F009B3688 /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1044822DD5354F009B3688 /* CameraView.swift */; };
BF1044852DD53570009B3688 /* MRZScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1044842DD53570009B3688 /* MRZScanner.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 */; }; 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 */; }; 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 */; }; 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 */; }; E9F9A99C2D57FE2900E1362E /* PassportOCRViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F9A99A2D57FE2900E1362E /* PassportOCRViewManager.m */; };
E9F9A99D2D57FE2900E1362E /* PassportOCRViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F9A99B2D57FE2900E1362E /* PassportOCRViewManager.swift */; }; E9F9A99D2D57FE2900E1362E /* PassportOCRViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F9A99B2D57FE2900E1362E /* PassportOCRViewManager.swift */; };
EBECCA4983EC6929A7722578 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = E56E082698598B41447667BB /* PrivacyInfo.xcprivacy */; }; 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 */ /* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
@@ -73,20 +52,14 @@
/* End PBXCopyFilesBuildPhase section */ /* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference 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>"; }; 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>"; }; 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; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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; }; 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>"; }; 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 */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@@ -200,27 +158,6 @@
children = ( children = (
7E5C3CEF7EDA4871B3D0EBE1 /* Advercase-Regular.otf */, 7E5C3CEF7EDA4871B3D0EBE1 /* Advercase-Regular.otf */,
9BF744D9A73A4BAC96EC569A /* DINOT-Medium.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; name = Resources;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -338,27 +275,6 @@
EBECCA4983EC6929A7722578 /* PrivacyInfo.xcprivacy in Resources */, EBECCA4983EC6929A7722578 /* PrivacyInfo.xcprivacy in Resources */,
DAC618BCA5874DD8AD74FFFC /* Advercase-Regular.otf in Resources */, DAC618BCA5874DD8AD74FFFC /* Advercase-Regular.otf in Resources */,
D427791AA5714251A5EAF8AD /* DINOT-Medium.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; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -379,7 +295,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; 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 */ = { 0C6411FE06C61E7F495D9204 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@@ -870,7 +786,7 @@
"$(inherited)", "$(inherited)",
" ", " ",
); );
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../../node_modules/react-native";
SDKROOT = iphoneos; SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
USE_HERMES = false; USE_HERMES = false;
@@ -963,7 +879,7 @@
"$(inherited)", "$(inherited)",
" ", " ",
); );
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../../node_modules/react-native";
SDKROOT = iphoneos; SDKROOT = iphoneos;
USE_HERMES = false; USE_HERMES = false;
VALIDATE_PRODUCT = YES; VALIDATE_PRODUCT = YES;

View File

@@ -8,90 +8,6 @@
{ {
"path": "src/assets/fonts/DINOT-Medium.otf", "path": "src/assets/fonts/DINOT-Medium.otf",
"sha1": "e993d15a13bc4e2c66dac255d7fa569486345f88" "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"
} }
] ]
} }

View File

@@ -8,6 +8,5 @@ module.exports = {
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$', testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$',
moduleNameMapper: { moduleNameMapper: {
'^@env$': '<rootDir>/tests/__setup__/@env.js', '^@env$': '<rootDir>/tests/__setup__/@env.js',
'^@openpassport/(.*)$': '<rootDir>/../common/node_modules/@openpassport/$1',
}, },
}; };

View File

@@ -1,17 +1,23 @@
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
const path = require('path'); const path = require('node:path');
const defaultConfig = getDefaultConfig(__dirname); const defaultConfig = getDefaultConfig(__dirname);
const { assetExts, sourceExts } = defaultConfig.resolver; const { assetExts, sourceExts } = defaultConfig.resolver;
const monorepoRoot = path.resolve(__dirname, '../');
const commonPath = path.join(__dirname, '/../common'); const commonPath = path.join(__dirname, '/../common');
const trueMonorepoNodeModules = path.resolve(__dirname, '../node_modules');
const extraNodeModules = { const extraNodeModules = {
common: path.resolve(commonPath),
stream: require.resolve('stream-browserify'), stream: require.resolve('stream-browserify'),
buffer: require.resolve('buffer'), buffer: require.resolve('buffer'),
util: require.resolve('util'), util: require.resolve('util'),
assert: require.resolve('assert'), 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 * Metro configuration
@@ -27,6 +33,12 @@ const config = {
}, },
resolver: { resolver: {
extraNodeModules, 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'), assetExts: assetExts.filter(ext => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'], sourceExts: [...sourceExts, 'svg'],
}, },

View File

@@ -1,7 +1,8 @@
{ {
"name": "openpassport", "name": "@selfxyz/mobile-app",
"version": "2.5.2", "version": "2.5.2",
"private": true, "private": true,
"type": "module",
"scripts": { "scripts": {
"analyze:android": "yarn reinstall && react-native-bundle-visualizer --platform android --dev", "analyze:android": "yarn reinstall && react-native-bundle-visualizer --platform android --dev",
"analyze:ios": "yarn reinstall && react-native-bundle-visualizer --platform ios --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:major": "npm version major && yarn sync-versions",
"bump-version:minor": "npm version minor && yarn sync-versions", "bump-version:minor": "npm version minor && yarn sync-versions",
"bump-version:patch": "npm version patch && 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:android": "rm -rf android/app/build android/build",
"clean:ios": "rm -rf ios/Pods ios/build", "clean:ios": "rm -rf ios/Pods ios/build",
"clean:xcode-env-local": "rm -f ios/.xcode.env.local", "clean:xcode-env-local": "rm -f ios/.xcode.env.local",
@@ -29,8 +31,9 @@
"ia": "yarn install-app", "ia": "yarn install-app",
"install-app": "yarn install-app:setup && cd ios && bundle exec pod install && cd .. && yarn clean:xcode-env-local", "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: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", "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", "ios:fastlane-debug": "yarn reinstall && bundle exec fastlane --verbose ios internal_test",
"lint": "eslint .", "lint": "eslint .",
"lint:fix": "eslint --fix .", "lint:fix": "eslint --fix .",
@@ -43,6 +46,7 @@
"test": "jest --passWithNoTests" "test": "jest --passWithNoTests"
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.4",
"@ethersproject/shims": "^5.7.0", "@ethersproject/shims": "^5.7.0",
"@openpassport/zk-kit-lean-imt": "^0.0.6", "@openpassport/zk-kit-lean-imt": "^0.0.6",
"@openpassport/zk-kit-smt": "^0.0.1", "@openpassport/zk-kit-smt": "^0.0.1",
@@ -57,7 +61,8 @@
"@react-navigation/native-stack": "^7.2.0", "@react-navigation/native-stack": "^7.2.0",
"@segment/analytics-react-native": "^2.21.0", "@segment/analytics-react-native": "^2.21.0",
"@segment/sovran-react-native": "^1.1.3", "@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", "@stablelib/cbor": "^2.0.1",
"@tamagui/config": "1.110.0", "@tamagui/config": "1.110.0",
"@tamagui/lucide-icons": "1.110.0", "@tamagui/lucide-icons": "1.110.0",
@@ -72,7 +77,7 @@
"ethers": "^6.11.0", "ethers": "^6.11.0",
"expo-modules-core": "^2.2.1", "expo-modules-core": "^2.2.1",
"js-sha512": "^0.9.0", "js-sha512": "^0.9.0",
"lottie-react-native": "^7.2.2", "lottie-react-native": "7.2.2",
"msgpack-lite": "^0.1.26", "msgpack-lite": "^0.1.26",
"node-forge": "^1.3.1", "node-forge": "^1.3.1",
"pako": "^2.1.0", "pako": "^2.1.0",
@@ -94,7 +99,7 @@
"react-native-passport-reader": "^1.0.3", "react-native-passport-reader": "^1.0.3",
"react-native-quick-crypto": "^0.7.12", "react-native-quick-crypto": "^0.7.12",
"react-native-safe-area-context": "^5.2.0", "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-sqlite-storage": "^6.0.1",
"react-native-svg": "^15.11.1", "react-native-svg": "^15.11.1",
"socket.io-client": "^4.7.5", "socket.io-client": "^4.7.5",
@@ -109,6 +114,7 @@
"@react-native-community/cli": "^14.1.1", "@react-native-community/cli": "^14.1.1",
"@react-native/babel-preset": "0.75.4", "@react-native/babel-preset": "0.75.4",
"@react-native/eslint-config": "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/metro-config": "0.75.4",
"@react-native/typescript-config": "0.75.4", "@react-native/typescript-config": "0.75.4",
"@tamagui/types": "1.110.0", "@tamagui/types": "1.110.0",
@@ -128,6 +134,7 @@
"@types/react-test-renderer": "^18", "@types/react-test-renderer": "^18",
"eslint": "^8.19.0", "eslint": "^8.19.0",
"eslint-config-prettier": "^10.1.2", "eslint-config-prettier": "^10.1.2",
"eslint-plugin-jest": "^28.11.1",
"eslint-plugin-prettier": "^5.2.6", "eslint-plugin-prettier": "^5.2.6",
"eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-simple-import-sort": "^12.1.1",
"jest": "^29.6.3", "jest": "^29.6.3",
@@ -136,9 +143,8 @@
"react-native-svg-transformer": "^1.5.0", "react-native-svg-transformer": "^1.5.0",
"react-test-renderer": "^18.3.1", "react-test-renderer": "^18.3.1",
"stream-browserify": "^3.0.0", "stream-browserify": "^3.0.0",
"typescript": "5.0.4" "typescript": "^5.8.3"
}, },
"packageManager": "yarn@4.5.0",
"engines": { "engines": {
"node": ">=18" "node": ">=18"
} }

View File

@@ -0,0 +1,7 @@
module.exports = {
project: {
ios: {},
android: {},
},
assets: ['./src/assets/fonts'],
};

View File

@@ -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',
],
};

View File

@@ -1,11 +1,8 @@
import type { SelfAppDisclosureConfig } from '@selfxyz/common';
import { Country3LetterCode, countryCodes } from '@selfxyz/common';
import React from 'react'; import React from 'react';
import { XStack, YStack } from 'tamagui'; 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 { BodyText } from '../components/typography/BodyText';
import CheckMark from '../images/icons/checkmark.svg'; import CheckMark from '../images/icons/checkmark.svg';
import { slate200, slate500 } from '../utils/colors'; import { slate200, slate500 } from '../utils/colors';

View File

@@ -7,9 +7,9 @@ import {
} from 'react-native'; } from 'react-native';
import { extractMRZInfo } from '../../utils/utils'; import { extractMRZInfo } from '../../utils/utils';
import { RCTFragment, RCTFragmentViewManagerProps } from './RCTFragment'; import { RCTFragment } from './RCTFragment';
interface RCTPassportOCRViewManagerProps extends RCTFragmentViewManagerProps { interface NativePassportOCRViewProps {
onPassportRead: ( onPassportRead: (
event: NativeSyntheticEvent<{ event: NativeSyntheticEvent<{
data: data:
@@ -23,11 +23,21 @@ interface RCTPassportOCRViewManagerProps extends RCTFragmentViewManagerProps {
}; };
}>, }>,
) => void; ) => 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({ const RCTPassportOCRViewNativeComponent = Platform.select({
ios: requireNativeComponent('PassportOCRView'), ios: requireNativeComponent<NativePassportOCRViewProps>('PassportOCRView'),
android: requireNativeComponent('PassportOCRViewManager'), android: requireNativeComponent<NativePassportOCRViewProps>(
'PassportOCRViewManager',
),
}); });
if (!RCTPassportOCRViewNativeComponent) { if (!RCTPassportOCRViewNativeComponent) {
@@ -111,10 +121,16 @@ export const PassportCamera: React.FC<PassportCameraProps> = ({
); );
} else { } else {
// For Android, wrap the native component inside your RCTFragment to preserve existing functionality. // 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 ( return (
<Fragment <Fragment
RCTFragmentViewManager={RCTPassportOCRViewNativeComponent} RCTFragmentViewManager={
RCTPassportOCRViewNativeComponent as ReturnType<
typeof requireNativeComponent
>
}
fragmentComponentName="PassportOCRViewManager" fragmentComponentName="PassportOCRViewManager"
isMounted={isMounted} isMounted={isMounted}
style={{ style={{

View File

@@ -6,15 +6,27 @@ import {
requireNativeComponent, requireNativeComponent,
} from 'react-native'; } from 'react-native';
import { RCTFragment, RCTFragmentViewManagerProps } from './RCTFragment'; import { RCTFragment } from './RCTFragment';
interface RCTQRCodeScannerViewProps extends RCTFragmentViewManagerProps { interface NativeQRCodeScannerViewProps {
onQRData: (event: NativeSyntheticEvent<{ data: string }>) => void; 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({ const QRCodeNativeComponent = Platform.select({
ios: requireNativeComponent('QRCodeScannerView'), ios: requireNativeComponent<NativeQRCodeScannerViewProps>(
android: requireNativeComponent('QRCodeScannerViewManager'), 'QRCodeScannerView',
),
android: requireNativeComponent<NativeQRCodeScannerViewProps>(
'QRCodeScannerViewManager',
),
}); });
if (!QRCodeNativeComponent) { if (!QRCodeNativeComponent) {
@@ -74,10 +86,14 @@ export const QRCodeScannerView: React.FC<QRCodeScannerViewProps> = ({
); );
} else { } else {
// For Android, wrap the native component inside your RCTFragment to preserve existing functionality. // 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 ( return (
<Fragment <Fragment
RCTFragmentViewManager={QRCodeNativeComponent} RCTFragmentViewManager={
QRCodeNativeComponent as ReturnType<typeof requireNativeComponent>
}
fragmentComponentName="QRCodeScannerViewManager" fragmentComponentName="QRCodeScannerViewManager"
isMounted={isMounted} isMounted={isMounted}
style={{ style={{

View File

@@ -2,7 +2,7 @@ import { useNavigation } from '@react-navigation/native';
import { NativeStackScreenProps } from '@react-navigation/native-stack'; import { NativeStackScreenProps } from '@react-navigation/native-stack';
import { useCallback } from 'react'; import { useCallback } from 'react';
import type { RootStackParamList } from '../Navigation'; import type { RootStackParamList } from '../navigation/index';
import { impactLight, impactMedium, selectionChange } from '../utils/haptic'; import { impactLight, impactMedium, selectionChange } from '../utils/haptic';
type NavigationAction = 'default' | 'cancel' | 'confirm'; type NavigationAction = 'default' | 'cancel' | 'confirm';
@@ -18,11 +18,18 @@ const useHapticNavigation = <S extends keyof RootStackParamList>(
useNavigation() as NativeStackScreenProps<RootStackParamList>['navigation']; useNavigation() as NativeStackScreenProps<RootStackParamList>['navigation'];
return useCallback(() => { return useCallback(() => {
const navParams = options.params;
switch (options.action) { switch (options.action) {
case 'cancel': case 'cancel':
selectionChange(); selectionChange();
// it is safe to cast options.params as any because it is correct when entering the function if (navParams !== undefined) {
navigation.popTo(screen, options.params as any); (navigation.popTo as (screen: S, params: typeof navParams) => void)(
screen,
navParams,
);
} else {
(navigation.popTo as (screen: S) => void)(screen);
}
return; return;
case 'confirm': case 'confirm':
@@ -34,8 +41,15 @@ const useHapticNavigation = <S extends keyof RootStackParamList>(
impactLight(); impactLight();
} }
// it is safe to cast options.params as any because it is correct when entering the function // it is safe to cast options.params as any because it is correct when entering the function
navigation.navigate(screen, options.params as any); if (navParams !== undefined) {
}, [navigation, screen, options.action]); (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; export default useHapticNavigation;

View File

@@ -1,3 +1,4 @@
/* eslint-disable simple-import-sort/imports */
import { useNavigation } from '@react-navigation/native'; import { useNavigation } from '@react-navigation/native';
import { import {
Check, Check,
@@ -19,8 +20,8 @@ import {
YStack, YStack,
} from 'tamagui'; } from 'tamagui';
import { genAndInitMockPassportData } from '../../../../common/src/utils/passports/genMockPassportData'; import { genAndInitMockPassportData } from '@selfxyz/common';
import { RootStackParamList } from '../../Navigation'; import { RootStackParamList } from '../../navigation';
import { import {
unsafe_clearSecrets, unsafe_clearSecrets,
unsafe_getPrivateKey, unsafe_getPrivateKey,
@@ -145,7 +146,9 @@ const ScreenSelector = ({}) => {
const DevSettingsScreen: React.FC<DevSettingsScreenProps> = ({}) => { const DevSettingsScreen: React.FC<DevSettingsScreenProps> = ({}) => {
const { clearPassportData } = usePassport(); const { clearPassportData } = usePassport();
const [privateKey, setPrivateKey] = useState('Loading private key…'); const [privateKey, setPrivateKey] = useState<string | null>(
'Loading private key…',
);
const nav = useNavigation(); const nav = useNavigation();

View File

@@ -1,4 +1,8 @@
import { useNavigation } from '@react-navigation/native'; 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 { ChevronDown, Minus, Plus, X } from '@tamagui/lucide-icons';
import { flag } from 'country-emoji'; import { flag } from 'country-emoji';
import getCountryISO2 from 'country-iso-3-to-2'; import getCountryISO2 from 'country-iso-3-to-2';
@@ -19,13 +23,6 @@ import {
YStack, YStack,
} from 'tamagui'; } 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 { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { SecondaryButton } from '../../components/buttons/SecondaryButton'; import { SecondaryButton } from '../../components/buttons/SecondaryButton';
import ButtonsContainer from '../../components/ButtonsContainer'; import ButtonsContainer from '../../components/ButtonsContainer';
@@ -217,7 +214,7 @@ const MockDataScreen: React.FC<MockDataScreenProps> = ({}) => {
][2]; ][2];
const idDocInput: Partial<IdDocInput> = { const idDocInput: Partial<IdDocInput> = {
nationality: selectedCountry, nationality: selectedCountry as IdDocInput['nationality'],
idType: 'mock_passport', idType: 'mock_passport',
signatureType: signatureType:
signatureTypeForGeneration as IdDocInput['signatureType'], signatureTypeForGeneration as IdDocInput['signatureType'],

View File

@@ -1,4 +1,6 @@
import { useNavigation } from '@react-navigation/native'; import { useNavigation } from '@react-navigation/native';
import { countryCodes } from '@selfxyz/common';
import { genMockIdDoc, IdDocInput } from '@selfxyz/common';
import { flag } from 'country-emoji'; import { flag } from 'country-emoji';
import getCountryISO2 from 'country-iso-3-to-2'; import getCountryISO2 from 'country-iso-3-to-2';
import React, { useCallback, useEffect, useState } from 'react'; 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 { useSafeAreaInsets } from 'react-native-safe-area-context';
import { ScrollView, Text, XStack, YStack } from 'tamagui'; 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 { PrimaryButton } from '../../components/buttons/PrimaryButton';
import ButtonsContainer from '../../components/ButtonsContainer'; import ButtonsContainer from '../../components/ButtonsContainer';
import { BodyText } from '../../components/typography/BodyText'; import { BodyText } from '../../components/typography/BodyText';

View File

@@ -1,11 +1,11 @@
import { StaticScreenProps, useIsFocused } from '@react-navigation/native'; import { StaticScreenProps, useIsFocused } from '@react-navigation/native';
import { PassportData } from '@selfxyz/common';
import LottieView from 'lottie-react-native'; import LottieView from 'lottie-react-native';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { StyleSheet, View } from 'react-native'; import { StyleSheet, View } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { Text, YStack } from 'tamagui'; import { Text, YStack } from 'tamagui';
import { PassportData } from '../../../../common/src/utils/types';
import failAnimation from '../../assets/animations/loading/fail.json'; import failAnimation from '../../assets/animations/loading/fail.json';
import proveLoadingAnimation from '../../assets/animations/loading/prove.json'; import proveLoadingAnimation from '../../assets/animations/loading/prove.json';
import successAnimation from '../../assets/animations/loading/success.json'; import successAnimation from '../../assets/animations/loading/success.json';

View File

@@ -1,9 +1,9 @@
import { useNavigation } from '@react-navigation/native'; import { useNavigation } from '@react-navigation/native';
import { PassportData } from '@selfxyz/common';
import LottieView from 'lottie-react-native'; import LottieView from 'lottie-react-native';
import React, { useCallback, useEffect, useRef } from 'react'; import React, { useCallback, useEffect, useRef } from 'react';
import { StyleSheet } from 'react-native'; import { StyleSheet } from 'react-native';
import { PassportData } from '../../../../common/src/utils/types';
import splashAnimation from '../../assets/animations/splash.json'; import splashAnimation from '../../assets/animations/splash.json';
import { useAuth } from '../../stores/authProvider'; import { useAuth } from '../../stores/authProvider';
import { loadPassportDataAndSecret } from '../../stores/passportDataProvider'; import { loadPassportDataAndSecret } from '../../stores/passportDataProvider';

View File

@@ -1,4 +1,7 @@
import { useFocusEffect, useNavigation } from '@react-navigation/native'; 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 LottieView from 'lottie-react-native';
import React, { useCallback, useEffect, useRef, useState } from 'react'; import React, { useCallback, useEffect, useRef, useState } from 'react';
import { import {
@@ -11,9 +14,6 @@ import {
import NfcManager from 'react-native-nfc-manager'; import NfcManager from 'react-native-nfc-manager';
import { Image } from 'tamagui'; 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 passportVerifyAnimation from '../../assets/animations/passport_verify.json';
import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { SecondaryButton } from '../../components/buttons/SecondaryButton'; import { SecondaryButton } from '../../components/buttons/SecondaryButton';

View File

@@ -1,4 +1,6 @@
import { useIsFocused, useNavigation } from '@react-navigation/native'; import { useIsFocused, useNavigation } from '@react-navigation/native';
import { SelfAppDisclosureConfig } from '@selfxyz/common';
import { formatEndpoint } from '@selfxyz/common';
import LottieView from 'lottie-react-native'; import LottieView from 'lottie-react-native';
import React, { import React, {
useCallback, useCallback,
@@ -16,8 +18,6 @@ import {
} from 'react-native'; } from 'react-native';
import { Image, Text, View, YStack } from 'tamagui'; 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 miscAnimation from '../../assets/animations/loading/misc.json';
import { HeldPrimaryButtonProveScreen } from '../../components/buttons/HeldPrimaryButtonProveScreen'; import { HeldPrimaryButtonProveScreen } from '../../components/buttons/HeldPrimaryButtonProveScreen';
import Disclosures from '../../components/Disclosures'; import Disclosures from '../../components/Disclosures';

View File

@@ -12,7 +12,7 @@ import { BackupEvents } from '../../consts/analytics';
import { useModal } from '../../hooks/useModal'; import { useModal } from '../../hooks/useModal';
import Cloud from '../../images/icons/logo_cloud_backup.svg'; import Cloud from '../../images/icons/logo_cloud_backup.svg';
import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout'; import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout';
import { RootStackParamList } from '../../Navigation'; import { RootStackParamList } from '../../navigation';
import { useAuth } from '../../stores/authProvider'; import { useAuth } from '../../stores/authProvider';
import { useSettingStore } from '../../stores/settingStore'; import { useSettingStore } from '../../stores/settingStore';
import analytics from '../../utils/analytics'; import analytics from '../../utils/analytics';

View File

@@ -1,9 +1,9 @@
import { useFocusEffect } from '@react-navigation/native'; import { useFocusEffect } from '@react-navigation/native';
import { PassportMetadata } from '@selfxyz/common';
import React, { useCallback, useState } from 'react'; import React, { useCallback, useState } from 'react';
import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { ScrollView, Separator, XStack, YStack } from 'tamagui'; import { ScrollView, Separator, XStack, YStack } from 'tamagui';
import { PassportMetadata } from '../../../../common/src/utils/passports/passport_parsing/parsePassportData';
import { Caption } from '../../components/typography/Caption'; import { Caption } from '../../components/typography/Caption';
import { usePassport } from '../../stores/passportDataProvider'; import { usePassport } from '../../stores/passportDataProvider';
import { black, slate200, white } from '../../utils/colors'; import { black, slate200, white } from '../../utils/colors';

View File

@@ -27,7 +27,7 @@ import ShareIcon from '../../images/icons/share.svg';
import Star from '../../images/icons/star.svg'; import Star from '../../images/icons/star.svg';
import Telegram from '../../images/icons/telegram.svg'; import Telegram from '../../images/icons/telegram.svg';
import Web from '../../images/icons/webpage.svg'; import Web from '../../images/icons/webpage.svg';
import { RootStackParamList } from '../../Navigation'; import { RootStackParamList } from '../../navigation';
import { useSettingStore } from '../../stores/settingStore'; import { useSettingStore } from '../../stores/settingStore';
import { import {
amber500, amber500,

View File

@@ -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, { import React, {
createContext, createContext,
PropsWithChildren, PropsWithChildren,
@@ -7,13 +11,6 @@ import React, {
} from 'react'; } from 'react';
import Keychain from 'react-native-keychain'; 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 { unsafe_getPrivateKey } from '../stores/authProvider';
import { useAuth } from './authProvider'; import { useAuth } from './authProvider';

View File

@@ -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 { Platform } from 'react-native';
import SQLite from 'react-native-sqlite-storage'; import SQLite from 'react-native-sqlite-storage';
import { io } from 'socket.io-client'; import { io } from 'socket.io-client';
import { create } from 'zustand'; 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); SQLite.enablePromise(true);
export interface ProofHistory { export interface ProofHistory {

View File

@@ -1,5 +1,3 @@
import { create } from 'zustand';
import { import {
API_URL, API_URL,
API_URL_STAGING, API_URL_STAGING,
@@ -9,7 +7,8 @@ import {
DSC_TREE_URL_STAGING, DSC_TREE_URL_STAGING,
IDENTITY_TREE_URL, IDENTITY_TREE_URL,
IDENTITY_TREE_URL_STAGING, IDENTITY_TREE_URL_STAGING,
} from '../../../common/src/constants/constants'; } from '@selfxyz/common';
import { create } from 'zustand';
interface ProtocolState { interface ProtocolState {
passport: { passport: {

View File

@@ -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 io, { Socket } from 'socket.io-client';
import { create } from 'zustand'; import { create } from 'zustand';
import { WS_DB_RELAYER } from '../../../common/src/constants/constants';
import { SelfApp } from '../../../common/src/utils/appType';
interface SelfAppState { interface SelfAppState {
selfApp: SelfApp | null; selfApp: SelfApp | null;
sessionId: string | null; sessionId: string | null;

View File

@@ -1,10 +1,9 @@
/* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable @typescript-eslint/no-unused-vars */
import { PassportData } from '@selfxyz/common';
import { Buffer } from 'buffer'; import { Buffer } from 'buffer';
import { NativeModules, Platform } from 'react-native'; import { NativeModules, Platform } from 'react-native';
import PassportReader from 'react-native-passport-reader'; import PassportReader from 'react-native-passport-reader';
import { PassportData } from '../../../common/src/utils/types';
interface Inputs { interface Inputs {
passportNumber: string; passportNumber: string;
dateOfBirth: string; dateOfBirth: string;

View File

@@ -1,4 +1,5 @@
import { X509Certificate } from '@peculiar/x509'; import { X509Certificate } from '@peculiar/x509';
import { PCR0_MANAGER_ADDRESS, RPC_URL } from '@selfxyz/common';
import { decode } from '@stablelib/cbor'; import { decode } from '@stablelib/cbor';
import { fromBER } from 'asn1js'; import { fromBER } from 'asn1js';
import { Buffer } from 'buffer'; import { Buffer } from 'buffer';
@@ -7,10 +8,6 @@ import { ethers } from 'ethers';
import { sha384 } from 'js-sha512'; import { sha384 } from 'js-sha512';
import { Certificate } from 'pkijs'; import { Certificate } from 'pkijs';
import {
PCR0_MANAGER_ADDRESS,
RPC_URL,
} from '../../../../common/src/constants/constants';
import { AWS_ROOT_PEM } from './awsRootPem'; import { AWS_ROOT_PEM } from './awsRootPem';
import cose from './cose'; import cose from './cose';

View File

@@ -1,24 +1,24 @@
import { LeanIMT } from '@openpassport/zk-kit-lean-imt'; import { LeanIMT } from '@openpassport/zk-kit-lean-imt';
import { SMT } from '@openpassport/zk-kit-smt'; 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 { import {
attributeToPosition, attributeToPosition,
DEFAULT_MAJORITY, DEFAULT_MAJORITY,
PASSPORT_ATTESTATION_ID, PASSPORT_ATTESTATION_ID,
} from '../../../../common/src/constants/constants'; } from '@selfxyz/common';
import { SelfApp } from '../../../../common/src/utils/appType'; import { SelfApp } from '@selfxyz/common';
import { getCircuitNameFromPassportData } from '../../../../common/src/utils/circuits/circuitsName'; import { getCircuitNameFromPassportData } from '@selfxyz/common';
import { import {
generateCircuitInputsDSC, generateCircuitInputsDSC,
generateCircuitInputsRegister, generateCircuitInputsRegister,
generateCircuitInputsVCandDisclose, generateCircuitInputsVCandDisclose,
} from '../../../../common/src/utils/circuits/generateInputs'; } from '@selfxyz/common';
import { hashEndpointWithScope } from '../../../../common/src/utils/scope'; import { hashEndpointWithScope } from '@selfxyz/common';
import { PassportData } from '../../../../common/src/utils/types'; 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'; import { useProtocolStore } from '../../stores/protocolStore';
export function generateTEEInputsRegister( export function generateTEEInputsRegister(

View File

@@ -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 forge from 'node-forge';
import io, { Socket } from 'socket.io-client'; import io, { Socket } from 'socket.io-client';
import { v4 } from 'uuid'; import { v4 } from 'uuid';
import { AnyActorRef, createActor, createMachine } from 'xstate'; import { AnyActorRef, createActor, createMachine } from 'xstate';
import { create } from 'zustand'; 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 { navigationRef } from '../../navigation';
import { import {
clearPassportData, clearPassportData,

View File

@@ -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 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 elliptic = initElliptic();
const { ec: EC } = elliptic; const { ec: EC } = elliptic;
export const ec = new EC('p256'); export const ec = new EC('p256');

View File

@@ -1,20 +1,18 @@
import { LeanIMT } from '@openpassport/zk-kit-lean-imt'; import { LeanIMT } from '@openpassport/zk-kit-lean-imt';
import { poseidon2, poseidon5 } from 'poseidon-lite';
import { import {
API_URL, API_URL,
PASSPORT_ATTESTATION_ID, formatMrz,
} 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 {
generateCommitment, generateCommitment,
generateNullifier, generateNullifier,
} from '../../../../common/src/utils/passports/passport'; getCircuitNameFromPassportData,
import { getLeafDscTree } from '../../../../common/src/utils/trees'; getLeafDscTree,
import { PassportData } from '../../../../common/src/utils/types'; Hash,
parseCertificateSimple,
PASSPORT_ATTESTATION_ID,
type PassportData,
} from '@selfxyz/common';
import { poseidon2, poseidon5 } from 'poseidon-lite';
import { useProtocolStore } from '../../stores/protocolStore'; import { useProtocolStore } from '../../stores/protocolStore';
export type PassportSupportStatus = export type PassportSupportStatus =
@@ -163,15 +161,19 @@ export function generateCommitmentInApp(
passportData: PassportData, passportData: PassportData,
alternativeCSCA: Record<string, string>, alternativeCSCA: Record<string, string>,
) { ) {
const dg1_packed_hash = packBytesAndPoseidon(formatMrz(passportData.mrz)); const dg1_packed_hash = Hash.packBytesAndPoseidon(
const eContent_packed_hash = packBytesAndPoseidon( formatMrz(passportData.mrz),
);
const eContent_packed_hash = Hash.packBytesAndPoseidon(
( (
hash( Hash.hash(
passportData.passportMetadata!.eContentHashFunction, passportData.passportMetadata!.eContentHashFunction,
Array.from(passportData.eContent), Array.from(passportData.eContent),
'bytes', 'bytes',
) as number[] ) as number[]
).map(byte => byte & 0xff), )
// eslint-disable-next-line no-bitwise
.map(byte => byte & 0xff),
); );
const csca_list: string[] = []; const csca_list: string[] = [];

View File

@@ -2,7 +2,7 @@
"extends": "@react-native/typescript-config/tsconfig.json", "extends": "@react-native/typescript-config/tsconfig.json",
"compilerOptions": { "compilerOptions": {
"lib": ["dom", "esnext"], "lib": ["dom", "esnext"],
"typeRoots": ["./src/types", "./node_modules/@types"], "resolveJsonModule": true,
"types": ["react-native", "jest"] "esModuleInterop": true
} }
} }

17
circuits/.prettierignore Normal file
View 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

View File

@@ -53,16 +53,23 @@ OpenPassport currently supports the following sig/hash algorithms:
## Installation ## Installation
Go to the `/circuits` directory and run `yarn install` you can do a focused install with
```bash ```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 ```bash
cd common && yarn install && cd .. yarn build:deps
``` ```
## Build circuits (dev only) ## Build circuits (dev only)
@@ -71,7 +78,7 @@ cd common && yarn install && cd ..
./scripts/build_circuits.sh ./scripts/build_circuits.sh
``` ```
## Run tests ## Run tests ()
```bash ```bash
yarn test yarn test

View File

@@ -1,9 +1,13 @@
{ {
"name": "circom-passport", "name": "@selfxyz/circuits",
"version": "0.0.1", "version": "0.0.1",
"license": "MIT", "license": "MIT",
"author": "", "private": true,
"author": "self team",
"type": "module",
"scripts": { "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-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-disclose": "bash scripts/build/build_disclose_circuits.sh",
"build-dsc": "bash scripts/build/build_dsc_circuits.sh", "build-dsc": "bash scripts/build/build_dsc_circuits.sh",
@@ -12,22 +16,24 @@
"download": "bash scripts/server/download_circuits_from_AWS.sh", "download": "bash scripts/server/download_circuits_from_AWS.sh",
"format": "prettier --write .", "format": "prettier --write .",
"nice": "prettier --write .", "nice": "prettier --write .",
"install-circuits": "cd ../common && yarn && cd ../circuits && yarn", "install-circuits": "yarn workspaces focus @selfxyz/circuits",
"lint": "prettier --check .", "lint": "prettier --check .",
"test": "yarn ts-mocha --max-old-space-size=8192 'tests/**/*.test.ts' 'tests/*.test.ts' --exit", "test": "yarn test-base 'tests/**/*.test.ts' --exit",
"test-custom-hasher": "yarn ts-mocha --max-old-space-size=8192 'tests/other_circuits/custom_hasher.test.ts' --exit", "test-base": "NODE_OPTIONS='--loader ts-node/esm' yarn ts-mocha --max-old-space-size=8192",
"test-disclose": "yarn ts-mocha --max-old-space-size=8192 'tests/disclose/vc_and_disclose.test.ts' --exit", "test-custom-hasher": "yarn test-base 'tests/other_circuits/custom_hasher.test.ts' --exit",
"test-disclose-id": "yarn ts-mocha --max-old-space-size=8192 'tests/disclose/vc_and_disclose_id.test.ts' --exit", "test-disclose": "yarn test-base 'tests/disclose/vc_and_disclose.test.ts' --exit",
"test-dsc": "yarn ts-mocha --max-old-space-size=51200 'tests/dsc/dsc.test.ts' --exit", "test-disclose-id": "yarn test-base 'tests/disclose/vc_and_disclose_id.test.ts' --exit",
"test-ecdsa": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/ecdsa.test.ts' --exit", "test-dsc": "yarn test-base --max-old-space-size=51200 'tests/dsc/dsc.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-ecdsa": "yarn test-base 'tests/utils/ecdsa.test.ts' --exit",
"test-is-valid": "yarn ts-mocha --max-old-space-size=8192 'tests/other_circuits/is_valid.test.ts' --exit", "test-is-older-than": "yarn test-base 'tests/other_circuits/is_older_than.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-is-valid": "yarn test-base 'tests/other_circuits/is_valid.test.ts' --exit",
"test-ofac": "yarn ts-mocha --max-old-space-size=8192 'tests/ofac/ofac.test.ts' --exit", "test-not-in-list": "yarn test-base 'tests/other_circuits/prove_country_is_not_in_list.test.ts' --exit",
"test-register": "yarn ts-mocha --max-old-space-size=40960 'tests/register/register.test.ts' --exit", "test-ofac": "yarn test-base 'tests/ofac/ofac.test.ts' --exit",
"test-register-id": "yarn ts-mocha --max-old-space-size=40960 'tests/register_id/register_id.test.ts' --exit", "test-register": "yarn test-base --max-old-space-size=40960 'tests/register/register.test.ts' --exit",
"test-rsa": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsaPkcs1v1_5.test.ts' --exit", "test-register-id": "yarn test-base --max-old-space-size=40960 'tests/register_id/register_id.test.ts' --exit",
"test-rsa-pss": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsapss.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": { "dependencies": {
"@noble/curves": "^1.4.2", "@noble/curves": "^1.4.2",
@@ -35,6 +41,7 @@
"@openpassport/zk-kit-imt": "^0.0.4", "@openpassport/zk-kit-imt": "^0.0.4",
"@openpassport/zk-kit-lean-imt": "^0.0.4", "@openpassport/zk-kit-lean-imt": "^0.0.4",
"@openpassport/zk-kit-smt": "^0.0.1", "@openpassport/zk-kit-smt": "^0.0.1",
"@selfxyz/common": "workspace:^",
"@types/chai-as-promised": "^7.1.6", "@types/chai-as-promised": "^7.1.6",
"@types/node": "^20.11.19", "@types/node": "^20.11.19",
"@types/node-forge": "^1.3.5", "@types/node-forge": "^1.3.5",

View File

@@ -6,22 +6,19 @@ import crypto from 'crypto';
import { describe } from 'mocha'; import { describe } from 'mocha';
import path from 'path'; import path from 'path';
import { poseidon1, poseidon2 } from 'poseidon-lite'; import { poseidon1, poseidon2 } from 'poseidon-lite';
import nameAndDobjson from '../../../common/ofacdata/outputs/nameAndDobSMT.json'; import nameAndDobjson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT.json' with { type: 'json' };
import nameAndYobjson from '../../../common/ofacdata/outputs/nameAndYobSMT.json'; import nameAndYobjson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT.json' with { type: 'json' };
import passportNojson from '../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json'; import passportNojson from '@selfxyz/common/ofacdata/outputs/passportNoAndNationalitySMT.json' with { type: 'json' };
import { import { attributeToPosition, PASSPORT_ATTESTATION_ID } from '@selfxyz/common/constants/constants';
attributeToPosition,
PASSPORT_ATTESTATION_ID,
} from '../../../common/src/constants/constants';
import { import {
formatAndUnpackForbiddenCountriesList, formatAndUnpackForbiddenCountriesList,
formatAndUnpackReveal, formatAndUnpackReveal,
getAttributeFromUnpackedReveal, getAttributeFromUnpackedReveal,
} from '../../../common/src/utils/circuits/formatOutputs'; } from '@selfxyz/common/utils/circuits/formatOutputs';
import { generateCircuitInputsVCandDisclose } from '../../../common/src/utils/circuits/generateInputs'; import { generateCircuitInputsVCandDisclose } from '@selfxyz/common/utils/circuits/generateInputs';
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData'; import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
import { generateCommitment } from '../../../common/src/utils/passports/passport'; import { generateCommitment } from '@selfxyz/common/utils/passports/passport';
import { hashEndpointWithScope } from '../../../common/src/utils/scope'; import { hashEndpointWithScope } from '@selfxyz/common/utils/scope';
describe('Disclose', function () { describe('Disclose', function () {
this.timeout(0); this.timeout(0);

View File

@@ -5,23 +5,23 @@ import { wasm as wasm_tester } from 'circom_tester';
import { import {
attributeToPosition_ID, attributeToPosition_ID,
ID_CARD_ATTESTATION_ID, ID_CARD_ATTESTATION_ID,
} from '../../../common/src/constants/constants'; } from '@selfxyz/common/constants/constants';
import { poseidon1, poseidon2 } from 'poseidon-lite'; import { poseidon1, poseidon2 } from 'poseidon-lite';
import { LeanIMT } from '@openpassport/zk-kit-lean-imt'; 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 crypto from 'crypto';
import { SMT } from '@openpassport/zk-kit-smt'; import { SMT } from '@openpassport/zk-kit-smt';
import nameAndDobjson from '../../../common/ofacdata/outputs/nameAndDobSMT_ID.json'; import nameAndDobjson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT_ID.json' with { type: 'json' };
import nameAndYobjson from '../../../common/ofacdata/outputs/nameAndYobSMT_ID.json'; import nameAndYobjson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT_ID.json' with { type: 'json' };
import passportNojson from '../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json'; import passportNojson from '@selfxyz/common/ofacdata/outputs/passportNoAndNationalitySMT.json' with { type: 'json' };
import { import {
formatAndUnpackForbiddenCountriesList, formatAndUnpackForbiddenCountriesList,
formatAndUnpackReveal, formatAndUnpackReveal,
getAttributeFromUnpackedReveal, getAttributeFromUnpackedReveal,
} from '../../../common/src/utils/circuits/formatOutputs'; } from '@selfxyz/common/utils/circuits/formatOutputs';
import { generateCommitment } from '../../../common/src/utils/passports/passport'; import { generateCommitment } from '@selfxyz/common/utils/passports/passport';
import { hashEndpointWithScope } from '../../../common/src/utils/scope'; import { hashEndpointWithScope } from '@selfxyz/common/utils/scope';
import { genMockIdDoc } from '../../../common/src/utils/passports/genMockIdDoc'; import { genMockIdDoc } from '@selfxyz/common/utils/passports/genMockIdDoc';
describe('Disclose', function () { describe('Disclose', function () {
this.timeout(0); this.timeout(0);

View File

@@ -2,15 +2,15 @@ import { expect } from 'chai';
import { wasm as wasm_tester } from 'circom_tester'; import { wasm as wasm_tester } from 'circom_tester';
import dotenv from 'dotenv'; import dotenv from 'dotenv';
import path from 'path'; import path from 'path';
import serialized_csca_tree from '../../../common/pubkeys/serialized_csca_tree.json'; import serialized_csca_tree from '../../../common/pubkeys/serialized_csca_tree.json' with { type: 'json' };
import { parseCertificateSimple } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple'; import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseCertificateSimple';
import { getCircuitNameFromPassportData } from '../../../common/src/utils/circuits/circuitsName'; import { getCircuitNameFromPassportData } from '@selfxyz/common/utils/circuits/circuitsName';
import { generateCircuitInputsDSC } from '../../../common/src/utils/circuits/generateInputs'; import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits/generateInputs';
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData'; import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
import { parseDscCertificateData } from '../../../common/src/utils/passports/passport_parsing/parseDscCertificateData'; import { parseDscCertificateData } from '@selfxyz/common/utils/passports/passport_parsing/parseDscCertificateData';
import { getLeafDscTreeFromParsedDsc } from '../../../common/src/utils/trees'; import { getLeafDscTreeFromParsedDsc } from '@selfxyz/common/utils/trees';
import { SignatureAlgorithm } from '../../../common/src/utils/types'; import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
import { fullSigAlgs, sigAlgs } from './test_cases'; import { fullSigAlgs, sigAlgs } from './test_cases.js';
dotenv.config(); dotenv.config();
const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs; const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs;
@@ -26,7 +26,7 @@ testSuite.forEach(({ sigAlg, hashFunction, domainParameter, keyLength }) => {
); );
const passportMetadata = passportData.passportMetadata; 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 passportData.csca_parsed.publicKeyDetails.bits
}`, function () { }`, function () {
this.timeout(0); // Disable timeout this.timeout(0); // Disable timeout

View File

@@ -3,14 +3,14 @@ import { expect } from 'chai';
import { wasm as wasm_tester } from 'circom_tester'; import { wasm as wasm_tester } from 'circom_tester';
import path from 'path'; import path from 'path';
import { poseidon2 } from 'poseidon-lite'; import { poseidon2 } from 'poseidon-lite';
import nameAndDobjson from '../../../common/ofacdata/outputs/nameAndDobSMT.json'; import nameAndDobjson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT.json' with { type: 'json' };
import nameAndYobjson from '../../../common/ofacdata/outputs/nameAndYobSMT.json'; import nameAndYobjson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT.json' with { type: 'json' };
import nameAndDobIdCardJson from '../../../common/ofacdata/outputs/nameAndDobSMT_ID.json'; import nameAndDobIdCardJson from '@selfxyz/common/ofacdata/outputs/nameAndDobSMT_ID.json' with { type: 'json' };
import nameAndYobIdCardJson from '../../../common/ofacdata/outputs/nameAndYobSMT_ID.json'; import nameAndYobIdCardJson from '@selfxyz/common/ofacdata/outputs/nameAndYobSMT_ID.json' with { type: 'json' };
import { genMockIdDoc } from '../../../common/src/utils/passports/genMockIdDoc'; import { genMockIdDoc } from '@selfxyz/common/utils/passports/genMockIdDoc';
import passportNoAndNationalityjson from '../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json'; import passportNoAndNationalityjson from '@selfxyz/common/ofacdata/outputs/passportNoAndNationalitySMT.json' with { type: 'json' };
import { generateCircuitInputsOfac } from '../../../common/src/utils/circuits/generateInputs'; import { generateCircuitInputsOfac } from '@selfxyz/common/utils/circuits/generateInputs';
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData'; import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
let circuit: any; let circuit: any;

View File

@@ -1,8 +1,8 @@
import { expect } from 'chai'; import { expect } from 'chai';
import path from 'path'; import path from 'path';
import { wasm as wasm_tester } from 'circom_tester'; import { wasm as wasm_tester } from 'circom_tester';
import { formatInput } from '../../../common/src/utils/circuits/generateInputs'; import { formatInput } from '@selfxyz/common/utils/circuits/generateInputs';
import { customHasher, packBytesAndPoseidon } from '../../../common/src/utils/hash'; import { customHasher, packBytesAndPoseidon } from '@selfxyz/common/utils/hash';
describe('CustomHasher', function () { describe('CustomHasher', function () {
this.timeout(0); this.timeout(0);

View File

@@ -1,11 +1,11 @@
import { expect } from 'chai'; import { expect } from 'chai';
import { wasm as wasm_tester } from 'circom_tester'; import { wasm as wasm_tester } from 'circom_tester';
import path from 'path'; import path from 'path';
import { formatCountriesList } from '../../../common/src/utils/circuits/formatInputs'; import { formatCountriesList } from '@selfxyz/common/utils/circuits/formatInputs';
import { formatAndUnpackForbiddenCountriesList } from '../../../common/src/utils/circuits/formatOutputs'; import { formatAndUnpackForbiddenCountriesList } from '@selfxyz/common/utils/circuits/formatOutputs';
import { formatInput } from '../../../common/src/utils/circuits/generateInputs'; import { formatInput } from '@selfxyz/common/utils/circuits/generateInputs';
import { formatMrz } from '../../../common/src/utils/passports/format'; import { formatMrz } from '@selfxyz/common/utils/passports/format';
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData'; import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
describe('ProveCountryIsNotInList', function () { describe('ProveCountryIsNotInList', function () {
this.timeout(0); this.timeout(0);

View File

@@ -4,18 +4,15 @@ import dotenv from 'dotenv';
import { describe } from 'mocha'; import { describe } from 'mocha';
import path from 'path'; import path from 'path';
import { poseidon6 } from 'poseidon-lite'; import { poseidon6 } from 'poseidon-lite';
import serialized_dsc_tree from '../../../common/pubkeys/serialized_dsc_tree.json'; import serialized_dsc_tree from '@selfxyz/common/pubkeys/serialized_dsc_tree.json' with { type: 'json' };
import { PASSPORT_ATTESTATION_ID } from '../../../common/src/constants/constants'; import { PASSPORT_ATTESTATION_ID } from '@selfxyz/common/constants/constants';
import { parseCertificateSimple } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple'; import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseCertificateSimple';
import { getCircuitNameFromPassportData } from '../../../common/src/utils/circuits/circuitsName'; import { getCircuitNameFromPassportData } from '@selfxyz/common/utils/circuits/circuitsName';
import { generateCircuitInputsRegister } from '../../../common/src/utils/circuits/generateInputs'; import { generateCircuitInputsRegister } from '@selfxyz/common/utils/circuits/generateInputs';
import { genAndInitMockPassportData } from '../../../common/src/utils/passports/genMockPassportData'; import { genAndInitMockPassportData } from '@selfxyz/common/utils/passports/genMockPassportData';
import { import { generateCommitment, generateNullifier } from '@selfxyz/common/utils/passports/passport';
generateCommitment, import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
generateNullifier, import { fullSigAlgs, sigAlgs } from './test_cases.js';
} from '../../../common/src/utils/passports/passport';
import { SignatureAlgorithm } from '../../../common/src/utils/types';
import { fullSigAlgs, sigAlgs } from './test_cases';
dotenv.config(); dotenv.config();
const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs; const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs;

View File

@@ -3,20 +3,16 @@ import { describe } from 'mocha';
import { expect } from 'chai'; import { expect } from 'chai';
import path from 'path'; import path from 'path';
import { wasm as wasm_tester } from 'circom_tester'; import { wasm as wasm_tester } from 'circom_tester';
import { generateCircuitInputsRegister } from '../../../common/src/utils/circuits/generateInputs'; import { generateCircuitInputsRegister } from '@selfxyz/common/utils/circuits/generateInputs';
import { genMockPassportData } from '../../../common/src/utils/passports/genMockPassportData'; import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
import { SignatureAlgorithm } from '../../../common/src/utils/types'; import { getCircuitNameFromPassportData } from '@selfxyz/common/utils/circuits/circuitsName';
import { getCircuitNameFromPassportData } from '../../../common/src/utils/circuits/circuitsName'; import { sigAlgs, fullSigAlgs } from './test_cases.js';
import { sigAlgs, fullSigAlgs } from './test_cases'; import { generateCommitment, generateNullifier } from '@selfxyz/common/utils/passports/passport';
import {
generateCommitment,
generateNullifier,
} from '../../../common/src/utils/passports/passport';
import { poseidon6 } from 'poseidon-lite'; import { poseidon6 } from 'poseidon-lite';
import { hashAlgosTypes, ID_CARD_ATTESTATION_ID } from '../../../common/src/constants/constants'; import { hashAlgosTypes, ID_CARD_ATTESTATION_ID } from '@selfxyz/common/constants/constants';
import { parseCertificateSimple } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple'; import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseCertificateSimple';
import serialized_dsc_tree from '../../../common/pubkeys/serialized_dsc_tree.json'; import serialized_dsc_tree from '../../../common/pubkeys/serialized_dsc_tree.json' with { type: 'json' };
import { genMockIdDoc } from '../../../common/src/utils/passports/genMockIdDoc'; import { genMockIdDoc } from '@selfxyz/common/utils/passports/genMockIdDoc';
dotenv.config(); dotenv.config();
const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs; const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs;

View File

@@ -1,8 +1,8 @@
import { wasm as wasmTester } from 'circom_tester'; import { wasm as wasmTester } from 'circom_tester';
import * as crypto from 'crypto'; 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 * as path from 'path';
import { splitToWords } from '../../../common/src/utils/bytes'; import { splitToWords } from '@selfxyz/common/utils/bytes';
const elliptic = initElliptic(); const elliptic = initElliptic();
const testSuite = [ const testSuite = [
@@ -267,8 +267,8 @@ function sign(message: Uint8Array, curve: string, hash: string, n: number, k: nu
return { return {
signature: [ signature: [
...splitToWords(BigInt(signature.r), k, n), ...splitToWords(BigInt(signature.r.toString()), k, n),
...splitToWords(BigInt(signature.s), k, n), ...splitToWords(BigInt(signature.s.toString()), k, n),
], ],
pubKey: [ pubKey: [
splitToWords(BigInt(pubkey.getX().toString()), k, n), splitToWords(BigInt(pubkey.getX().toString()), k, n),
@@ -299,13 +299,13 @@ function signOverflow(
hashParsed.push(...x.toString(2).padStart(8, '0').split('')) hashParsed.push(...x.toString(2).padStart(8, '0').split(''))
); );
let r = BigInt(signature.r); let r = BigInt(signature.r.toString(10));
let s = BigInt(signature.s); let s = BigInt(signature.s.toString(10));
if (overflowS) { if (overflowS) {
s = s + BigInt(ec.n); s = s + BigInt(ec.n.toString());
} else { } else {
r = r + BigInt(ec.n); r = r + BigInt(ec.n.toString());
} }
return { return {

View File

@@ -1,9 +1,9 @@
import crypto from 'crypto'; import crypto from 'crypto';
import { SignatureAlgorithm } from '../../../common/src/utils/types'; import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
import { hexToDecimal, splitToWords } from '../../../common/src/utils/bytes'; import { hexToDecimal, splitToWords } from '@selfxyz/common/utils/bytes';
import { bytesToBigDecimal } from '../../../common/src/utils/bytes'; import { bytesToBigDecimal } from '@selfxyz/common/utils/bytes';
import { getNAndK } from '../../../common/src/utils/passports/passport'; import { getNAndK } from '@selfxyz/common/utils/passports/passport';
export const generateMockRsaPkcs1v1_5Inputs = (signatureAlgorithm: SignatureAlgorithm) => { export const generateMockRsaPkcs1v1_5Inputs = (signatureAlgorithm: SignatureAlgorithm) => {
let privateKey: string; let privateKey: string;

View File

@@ -1,10 +1,10 @@
import * as forge from 'node-forge'; import * as forge from 'node-forge';
import { SignatureAlgorithm } from '../../../common/src/utils/types'; import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
import { hexToDecimal } from '../../../common/src/utils/bytes'; import { hexToDecimal } from '@selfxyz/common/utils/bytes';
import { bytesToBigDecimal } from '../../../common/src/utils/bytes'; import { bytesToBigDecimal } from '@selfxyz/common/utils/bytes';
import { getNAndK } from '../../../common/src/utils/passports/passport'; import { getNAndK } from '@selfxyz/common/utils/passports/passport';
import { splitToWords } from '../../../common/src/utils/bytes'; import { splitToWords } from '@selfxyz/common/utils/bytes';
export const generateMockRsaPssInputs = ( export const generateMockRsaPssInputs = (
signatureAlgorithm: SignatureAlgorithm, signatureAlgorithm: SignatureAlgorithm,

View File

@@ -1,8 +1,8 @@
import { wasm as wasmTester } from 'circom_tester'; import { wasm as wasmTester } from 'circom_tester';
import { describe, it } from 'mocha'; import { describe, it } from 'mocha';
import path from 'path'; import path from 'path';
import { generateMockRsaPkcs1v1_5Inputs } from './generateMockInputsInCircuits'; import { generateMockRsaPkcs1v1_5Inputs } from './generateMockInputsInCircuits.js';
import { SignatureAlgorithm } from '../../../common/src/utils/types'; import { SignatureAlgorithm } from '@selfxyz/common/utils/types';
import { expect } from 'chai'; import { expect } from 'chai';
describe('VerifyRsaPkcs1v1_5 Circuit Test', function () { describe('VerifyRsaPkcs1v1_5 Circuit Test', function () {
this.timeout(0); this.timeout(0);

View File

@@ -4,9 +4,9 @@ import path from 'path';
import { import {
generateMalleableRsaPssInputs, generateMalleableRsaPssInputs,
generateMockRsaPssInputs, generateMockRsaPssInputs,
} from './generateMockInputsRsaPss'; } from './generateMockInputsRsaPss.js';
import { expect } from 'chai'; import { expect } from 'chai';
import { fullAlgorithms, sigAlgs, AdditionalCases } from './testcase/rsapss'; import { fullAlgorithms, sigAlgs, AdditionalCases } from './testcase/rsapss.js';
describe('VerifyRsapss Circuit Test', function () { describe('VerifyRsapss Circuit Test', function () {
this.timeout(0); this.timeout(0);

View File

@@ -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 }[] = [ export const fullAlgorithms: { algo: SignatureAlgorithm; saltLength: number }[] = [
{ algo: 'rsapss_sha256_65537_4096', saltLength: 32 }, { algo: 'rsapss_sha256_65537_4096', saltLength: 32 },

View File

@@ -2,9 +2,10 @@
"compilerOptions": { "compilerOptions": {
"resolveJsonModule": true, "resolveJsonModule": true,
"esModuleInterop": true, "esModuleInterop": true,
"skipLibCheck": true,
"target": "ES2020", "target": "ES2020",
"moduleResolution": "node", "moduleResolution": "node16",
"module": "CommonJS", "module": "node18",
"allowJs": true, "allowJs": true,
"checkJs": false, "checkJs": false,
"outDir": "./dist" "outDir": "./dist"

File diff suppressed because it is too large Load Diff

3
common/.prettierignore Normal file
View File

@@ -0,0 +1,3 @@
dist
*.json
src/constants/skiPem.ts

View File

@@ -1,16 +1,54 @@
{ {
"name": "openpassport-common", "name": "@selfxyz/common",
"version": "0.0.1", "version": "0.0.1",
"description": "Constants and utils for self sdks",
"license": "MIT", "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": { "scripts": {
"build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && yarn postbuild",
"types": "tsc -p tsconfig.json",
"format": "prettier --write .", "format": "prettier --write .",
"lint": "prettier --check .", "lint": "prettier --check .",
"test": "yarn ts-mocha tests/**/*.test.ts --exit", "test": "NODE_OPTIONS='--loader ts-node/esm' ts-mocha tests/**/*.test.ts --exit",
"test:scope": "yarn ts-mocha tests/scope.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": { "dependencies": {
"@babel/runtime": "^7.23.4",
"@openpassport/zk-kit-imt": "^0.0.5", "@openpassport/zk-kit-imt": "^0.0.5",
"@openpassport/zk-kit-lean-imt": "^0.0.6", "@openpassport/zk-kit-lean-imt": "^0.0.6",
"@openpassport/zk-kit-smt": "^0.0.1", "@openpassport/zk-kit-smt": "^0.0.1",
@@ -29,18 +67,19 @@
"js-sha512": "^0.9.0", "js-sha512": "^0.9.0",
"json-to-ts": "^2.1.0", "json-to-ts": "^2.1.0",
"jsrsasign": "^11.1.0", "jsrsasign": "^11.1.0",
"mocha": "^10.7.3", "node-forge": "github:remicolin/forge#17a11a632dd0e50343b3b8393245a2696f78afbb",
"node-forge": "https://github.com/remicolin/forge",
"path": "^0.12.7", "path": "^0.12.7",
"pkijs": "^3.2.4", "pkijs": "^3.2.4",
"poseidon-lite": "^0.2.0", "poseidon-lite": "^0.2.0",
"snarkjs": "^0.7.5", "snarkjs": "^0.7.5",
"ts-mocha": "^10.0.0",
"typescript-parser": "^2.6.1", "typescript-parser": "^2.6.1",
"uuid": "^11.0.5" "uuid": "^11.0.5"
}, },
"devDependencies": { "devDependencies": {
"@types/node-forge": "^1.3.10", "@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"
} }
} }

View 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)
);

View File

@@ -5,7 +5,7 @@ export const COMMITMENT_TREE_DEPTH = 33;
export const DEFAULT_USER_ID_TYPE = 'uuid'; export const DEFAULT_USER_ID_TYPE = 'uuid';
export const REDIRECT_URL = 'https://redirect.self.xyz'; 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 = 'wss://websocket.self.xyz';
export const WS_DB_RELAYER_STAGING = 'wss://websocket.staging.self.xyz'; export const WS_DB_RELAYER_STAGING = 'wss://websocket.staging.self.xyz';
export const API_URL = 'https://api.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 IDENTITY_TREE_URL_STAGING = 'https://tree.staging.self.xyz/identity';
export const PASSPORT_ATTESTATION_ID = '1'; //"8518753152044246090169372947057357973469996808638122125210848696986717482788" 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 CHAIN_NAME = 'celo';
export const RPC_URL = 'https://forno.celo.org'; export const RPC_URL = 'https://forno.celo.org';
export const PCR0_MANAGER_ADDRESS = '0xE36d4EE5Fd3916e703A46C21Bb3837dB7680C8B8'; export const PCR0_MANAGER_ADDRESS = '0xE36d4EE5Fd3916e703A46C21Bb3837dB7680C8B8';
// we make it global here because passing it to generateCircuitInputsRegister caused trouble // we make it global here because passing it to generateCircuitInputsRegister caused trouble
export const DEVELOPMENT_MODE = true; export const DEVELOPMENT_MODE = true;
export const DEFAULT_MAJORITY = '18'; 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; export const ECDSA_K_LENGTH_FACTOR = 2;
// possible values because of sha1 constaints: 192,320,384, 448, 576, 640 // 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 = { export const circuitNameFromMode = {
prove: 'prove', prove: 'prove',
prove_onchain: 'prove', prove_onchain: 'prove',
@@ -115,7 +114,7 @@ export enum RegisterVerifierId {
register_sha256_sha256_sha256_rsapss_65537_64_2048 = 22, register_sha256_sha256_sha256_rsapss_65537_64_2048 = 22,
register_sha512_sha512_sha256_rsa_65537_4096 = 23, register_sha512_sha512_sha256_rsa_65537_4096 = 23,
register_sha512_sha512_sha512_ecdsa_secp521r1 = 24, register_sha512_sha512_sha512_ecdsa_secp521r1 = 24,
}; }
export enum DscVerifierId { export enum DscVerifierId {
dsc_sha1_ecdsa_brainpoolP256r1 = 0, dsc_sha1_ecdsa_brainpoolP256r1 = 0,
@@ -138,7 +137,7 @@ export enum DscVerifierId {
dsc_sha512_rsapss_65537_64_4096 = 17, dsc_sha512_rsapss_65537_64_4096 = 17,
dsc_sha256_rsapss_3_32_4096 = 18, dsc_sha256_rsapss_3_32_4096 = 18,
dsc_sha1_ecdsa_secp256r1 = 19, dsc_sha1_ecdsa_secp256r1 = 19,
}; }
export enum SignatureAlgorithmIndex { export enum SignatureAlgorithmIndex {
rsa_sha256_65537_2048 = 1, rsa_sha256_65537_2048 = 1,
@@ -205,18 +204,18 @@ export const circuitToSelectorMode = {
}; };
export const revealedDataTypes = { export const revealedDataTypes = {
'issuing_state': 0, issuing_state: 0,
'name': 1, name: 1,
'passport_number': 2, passport_number: 2,
'nationality': 3, nationality: 3,
'date_of_birth': 4, date_of_birth: 4,
'gender': 5, gender: 5,
'expiry_date': 6, expiry_date: 6,
'older_than': 7, older_than: 7,
'passport_no_ofac': 8, passport_no_ofac: 8,
'name_and_dob_ofac': 9, name_and_dob_ofac: 9,
'name_and_yob_ofac': 10, name_and_yob_ofac: 10,
} };
export const CIRCUIT_CONSTANTS = { export const CIRCUIT_CONSTANTS = {
REGISTER_NULLIFIER_INDEX: 0, REGISTER_NULLIFIER_INDEX: 0,
@@ -237,7 +236,7 @@ export const CIRCUIT_CONSTANTS = {
VC_AND_DISCLOSE_NAME_YOB_SMT_ROOT_INDEX: 18, VC_AND_DISCLOSE_NAME_YOB_SMT_ROOT_INDEX: 18,
VC_AND_DISCLOSE_SCOPE_INDEX: 19, VC_AND_DISCLOSE_SCOPE_INDEX: 19,
VC_AND_DISCLOSE_USER_IDENTIFIER_INDEX: 20, VC_AND_DISCLOSE_USER_IDENTIFIER_INDEX: 20,
} };
export const MAX_BYTES_IN_FIELD = 31; export const MAX_BYTES_IN_FIELD = 31;
export const MAX_PUBKEY_DSC_BYTES = 525; export const MAX_PUBKEY_DSC_BYTES = 525;
@@ -341,7 +340,7 @@ export const countryCodes = {
GMB: 'Gambia', GMB: 'Gambia',
GEO: 'Georgia', GEO: 'Georgia',
DEU: 'Germany', 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', GHA: 'Ghana',
GIB: 'Gibraltar', GIB: 'Gibraltar',
GRC: 'Greece', GRC: 'Greece',

Some files were not shown because too many files have changed in this diff Show More