@regulaforensics/idv 3.2.23-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +36 -0
  2. package/RNIDV.podspec +21 -0
  3. package/android/CVDIDV.kt +48 -0
  4. package/android/build.gradle +41 -0
  5. package/android/cordova.gradle +20 -0
  6. package/android/src/main/java/com/regula/plugin/idv/JSONConstructor.kt +135 -0
  7. package/android/src/main/java/com/regula/plugin/idv/Main.kt +124 -0
  8. package/android/src/main/java/com/regula/plugin/idv/RNIDVModule.kt +71 -0
  9. package/android/src/main/java/com/regula/plugin/idv/Utils.kt +60 -0
  10. package/examples/capacitor/README.md +15 -0
  11. package/examples/capacitor/android/app/build.gradle +50 -0
  12. package/examples/capacitor/android/app/capacitor.build.gradle +22 -0
  13. package/examples/capacitor/android/app/proguard-rules.pro +21 -0
  14. package/examples/capacitor/android/app/src/main/AndroidManifest.xml +26 -0
  15. package/examples/capacitor/android/app/src/main/assets/Regula/.gitkeep +0 -0
  16. package/examples/capacitor/android/app/src/main/java/com/regula/example/idv/capacitor/MainActivity.java +5 -0
  17. package/examples/capacitor/android/app/src/main/res/drawable/ic_launcher.png +0 -0
  18. package/examples/capacitor/android/app/src/main/res/drawable/ic_launcher_foreground.png +0 -0
  19. package/examples/capacitor/android/app/src/main/res/drawable/ic_launcher_round.png +0 -0
  20. package/examples/capacitor/android/app/src/main/res/drawable/launcher.xml +4 -0
  21. package/examples/capacitor/android/app/src/main/res/drawable/launcher_round.xml +4 -0
  22. package/examples/capacitor/android/app/src/main/res/drawable/splash.png +0 -0
  23. package/examples/capacitor/android/app/src/main/res/layout/activity_main.xml +12 -0
  24. package/examples/capacitor/android/app/src/main/res/values/styles.xml +22 -0
  25. package/examples/capacitor/android/build.gradle +30 -0
  26. package/examples/capacitor/android/capacitor.settings.gradle +15 -0
  27. package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  28. package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  29. package/examples/capacitor/android/gradle.properties +22 -0
  30. package/examples/capacitor/android/gradlew +252 -0
  31. package/examples/capacitor/android/gradlew.bat +94 -0
  32. package/examples/capacitor/android/settings.gradle +5 -0
  33. package/examples/capacitor/android/variables.gradle +16 -0
  34. package/examples/capacitor/index.html +5 -0
  35. package/examples/capacitor/index.tsx +16 -0
  36. package/examples/capacitor/ionic.config.json +7 -0
  37. package/examples/capacitor/ios/App/App/App.entitlements +10 -0
  38. package/examples/capacitor/ios/App/App/AppDelegate.swift +49 -0
  39. package/examples/capacitor/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png +0 -0
  40. package/examples/capacitor/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
  41. package/examples/capacitor/ios/App/App/Assets.xcassets/Contents.json +6 -0
  42. package/examples/capacitor/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +23 -0
  43. package/examples/capacitor/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  44. package/examples/capacitor/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  45. package/examples/capacitor/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  46. package/examples/capacitor/ios/App/App/Base.lproj/LaunchScreen.storyboard +32 -0
  47. package/examples/capacitor/ios/App/App/Base.lproj/Main.storyboard +19 -0
  48. package/examples/capacitor/ios/App/App/Info.plist +65 -0
  49. package/examples/capacitor/ios/App/App.xcodeproj/project.pbxproj +414 -0
  50. package/examples/capacitor/ios/App/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  51. package/examples/capacitor/ios/App/App.xcworkspace/contents.xcworkspacedata +10 -0
  52. package/examples/capacitor/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  53. package/examples/capacitor/ios/App/Podfile +26 -0
  54. package/examples/capacitor/package.json +27 -0
  55. package/examples/capacitor/public/assets/.gitkeep +0 -0
  56. package/examples/capacitor/scripts/android.sh +9 -0
  57. package/examples/capacitor/scripts/ios.sh +8 -0
  58. package/examples/capacitor/scripts/setup.sh +14 -0
  59. package/examples/capacitor/src/main.css +148 -0
  60. package/examples/capacitor/src/main.html +38 -0
  61. package/examples/capacitor/src/main.tsx +10 -0
  62. package/examples/capacitor/tsconfig.json +5 -0
  63. package/examples/capacitor/vite.config.ts +17 -0
  64. package/examples/ionic/README.md +15 -0
  65. package/examples/ionic/angular.json +39 -0
  66. package/examples/ionic/assets/.gitkeep +0 -0
  67. package/examples/ionic/config.xml +59 -0
  68. package/examples/ionic/images/icon.png +0 -0
  69. package/examples/ionic/index.html +19 -0
  70. package/examples/ionic/index.tsx +28 -0
  71. package/examples/ionic/ionic.config.json +7 -0
  72. package/examples/ionic/package.json +46 -0
  73. package/examples/ionic/scripts/android.sh +8 -0
  74. package/examples/ionic/scripts/ios.sh +8 -0
  75. package/examples/ionic/scripts/setup.sh +8 -0
  76. package/examples/ionic/src/main.css +148 -0
  77. package/examples/ionic/src/main.html +38 -0
  78. package/examples/ionic/src/main.tsx +10 -0
  79. package/examples/ionic/tsconfig.json +14 -0
  80. package/examples/react_native/README.md +15 -0
  81. package/examples/react_native/app.config.ts +46 -0
  82. package/examples/react_native/assets/.gitkeep +0 -0
  83. package/examples/react_native/images/icon.png +0 -0
  84. package/examples/react_native/index.html +11 -0
  85. package/examples/react_native/index.tsx +63 -0
  86. package/examples/react_native/metro.config.js +7 -0
  87. package/examples/react_native/package.json +29 -0
  88. package/examples/react_native/scripts/android.sh +13 -0
  89. package/examples/react_native/scripts/ios.sh +12 -0
  90. package/examples/react_native/scripts/setup.sh +9 -0
  91. package/examples/react_native/src/main.css +148 -0
  92. package/examples/react_native/src/main.html +38 -0
  93. package/examples/react_native/src/main.tsx +10 -0
  94. package/ios/CVDIDV.swift +72 -0
  95. package/ios/FlutterIDVPlugin.swift +72 -0
  96. package/ios/JSONConstructor.swift +134 -0
  97. package/ios/Main.swift +89 -0
  98. package/ios/RNIDV.swift +72 -0
  99. package/ios/Utils.swift +56 -0
  100. package/package.json +38 -0
  101. package/plugin.xml +45 -0
  102. package/test/json.tsx +0 -0
  103. package/test/package-lock.json +584 -0
  104. package/test/package.json +9 -0
  105. package/test/test.tsx +3 -0
  106. package/test/utils.tsx +38 -0
  107. package/www/capacitor/index.js +6 -0
  108. package/www/capacitor/internal/bridge.js +19 -0
  109. package/www/capacitor/internal/cordova.js +17 -0
  110. package/www/cordova.js +150 -0
  111. package/www/react-native/index.js +6 -0
  112. package/www/react-native/internal/bridge.js +19 -0
  113. package/www/types/index.d.ts +12 -0
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ if [[ $npm_config_o || $npm_config_open ]]; then
5
+ ionic cap run ios --open
6
+ else
7
+ ionic cap run ios
8
+ fi
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ npm install
5
+ ionic cap sync ios || {
6
+ cd ios/App
7
+ pod update
8
+ cd ../../
9
+ }
10
+
11
+ cp public/assets/regula.license ios/App/App/
12
+ cp public/assets/db.dat ios/App/App/
13
+ cp public/assets/regula.license android/app/src/main/assets/Regula/
14
+ cp public/assets/db.dat android/app/src/main/assets/Regula/
@@ -0,0 +1,148 @@
1
+ html,
2
+ body {
3
+ margin: 0;
4
+ width: 100%;
5
+ height: 99vh;
6
+ display: flex;
7
+ overflow: hidden;
8
+ flex-direction: column;
9
+ }
10
+
11
+ /* Prevent text selection */
12
+ * {
13
+ user-select: none !important;
14
+ -webkit-user-select: none !important;
15
+ -webkit-user-drag: none !important;
16
+ -webkit-touch-callout: none !important;
17
+ }
18
+
19
+ .column {
20
+ display: flex;
21
+ flex-direction: column;
22
+ align-items: center;
23
+ justify-content: center;
24
+ width: 100%;
25
+ }
26
+
27
+ .row {
28
+ display: flex;
29
+ flex-direction: row;
30
+ align-items: center;
31
+ justify-content: center;
32
+ }
33
+
34
+ .header {
35
+ text-align: center;
36
+ padding-top: 80px;
37
+ margin-top: -10px;
38
+ background-color: rgba(0, 0, 0, 0.03);
39
+ font-weight: 600;
40
+ font-size: 18px;
41
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
42
+ }
43
+
44
+ .sub-header {
45
+ background-color: rgba(0, 0, 0, 0.03);
46
+ width: 100%;
47
+ padding-top: 13px;
48
+ text-align: center;
49
+ font-weight: 550;
50
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
51
+ }
52
+
53
+ .divider {
54
+ height: 1px;
55
+ background-color: rgba(0, 0, 0, 0.075);
56
+ margin-top: 13px;
57
+ }
58
+
59
+ .scroll {
60
+ flex-grow: 1;
61
+ overflow-y: auto;
62
+ }
63
+
64
+ .no-scroll {
65
+ flex-grow: 1;
66
+ overflow-y: hidden;
67
+ }
68
+
69
+ .button {
70
+ width: 175px;
71
+ height: 40px;
72
+ margin: 5px;
73
+ margin-top: 10px;
74
+ background-color: #4285F4;
75
+ color: white;
76
+ border: none;
77
+ padding: 10px 20px;
78
+ justify-content: center;
79
+ font-size: 16px;
80
+ border-radius: 100px;
81
+ cursor: pointer;
82
+ transition: all 0.3s ease;
83
+ user-select: none;
84
+ -webkit-user-select: none;
85
+ -moz-user-select: none;
86
+ -ms-user-select: none;
87
+ }
88
+
89
+ .button:active {
90
+ position: relative;
91
+ top: 1px;
92
+ }
93
+
94
+ .text-button {
95
+ background: none;
96
+ border: none;
97
+ color: #2196f3;
98
+ font-size: 20px;
99
+ font-weight: bold;
100
+ padding: 5px;
101
+ }
102
+
103
+ .text-button:active {
104
+ position: relative;
105
+ top: 1px;
106
+ }
107
+
108
+ .radio {
109
+ align-items: baseline;
110
+ padding: 15px;
111
+ }
112
+
113
+ input[type="checkbox"] {
114
+ width: 20px;
115
+ height: 20px;
116
+ border: 2px solid black;
117
+ background-color: white;
118
+ display: inline-block;
119
+ position: relative;
120
+ cursor: pointer;
121
+ }
122
+
123
+ input[type="text"] {
124
+ width: 173px;
125
+ height: 40px;
126
+ font-size: 15px;
127
+ margin: 5px;
128
+ border-radius: 100px;
129
+ padding-left: 10px;
130
+ padding-right: 10px;
131
+ margin-top: 10px;
132
+ }
133
+
134
+ .progress-bar {
135
+ width: 75%;
136
+ padding: 3px;
137
+ margin-top: 40px;
138
+ background-color: #eee;
139
+ border-radius: 8px;
140
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
141
+ }
142
+
143
+ #progress {
144
+ width: 0%;
145
+ height: 20px;
146
+ background-color: #4285F4;
147
+ border-radius: 5px;
148
+ }
@@ -0,0 +1,38 @@
1
+ <div class="column" style="height: 100%">
2
+ <div class="column header">
3
+ <span id="status">Loading...</span>
4
+ <div class="column divider"></div>
5
+ </div>
6
+ <div id="main" class="column no-scroll">
7
+ <div class="row">
8
+ <div class="column" style="padding: 5px;">
9
+ <p>Portrait</p>
10
+ <img id="portrait-image" src="images/portrait.png" height="160px" width="120px">
11
+ </div>
12
+ <div class="column" style="padding: 5px;">
13
+ <p>Document image</p>
14
+ <img id="document-image" src="images/document.png" height="160px" width="200px">
15
+ </div>
16
+ </div>
17
+ <div id="scenario-container" class="column no-scroll" style="margin-top: 15px; background-color: rgba(0, 0, 0, 0.03);">
18
+ <div id="scenarios" class="scroll"></div>
19
+ </div>
20
+ <div class="row" style="width: 360px; padding-top: 15px;">
21
+ <span id="rfid-checkbox-description" style="font-size: 18px;width: 100%;">Process rfid reading(unavailable)</span>
22
+ <input id="rfid-checkbox" type="checkbox" style="margin-left: auto;" disabled />
23
+ </div>
24
+ <div class="row">
25
+ <button id="scan" class="button">Scan document</button>
26
+ <button id="recognize" class="button">Scan image</button>
27
+ </div>
28
+ <button id="connect" class="button" style="width: 360px; display: none;">Connect</button>
29
+ <div style="padding-top: 20px;"></div>
30
+ </div>
31
+ <div id="custom-rfid" class="column no-scroll" style="display: none;">
32
+ <span id="rfid-description" style="font-size: 22px">Place your phone on top of the NFC tag</span>
33
+ <div class="progress-bar">
34
+ <div id="progress"></div>
35
+ </div>
36
+ <button id="cancel-rfid" class="text-button" style="margin-top: 50px; padding-bottom: 100px;">X</button>
37
+ </div>
38
+ </div>
@@ -0,0 +1,10 @@
1
+ import { IDV } from '@regulaforensics/idv'
2
+
3
+ var idv = IDV.instance
4
+
5
+
6
+ // --------------------------------------------------------------------------------------------------------------------
7
+
8
+ export function main() {
9
+
10
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "compilerOptions": {
3
+ "jsx": "react-jsx"
4
+ }
5
+ }
@@ -0,0 +1,17 @@
1
+ import react from '@vitejs/plugin-react'
2
+ import { defineConfig } from 'vite'
3
+ import { viteStaticCopy } from 'vite-plugin-static-copy';
4
+
5
+ export default defineConfig({
6
+ plugins: [
7
+ react(),
8
+ viteStaticCopy({
9
+ targets: [
10
+ {
11
+ src: 'src/main.html',
12
+ dest: '.'
13
+ }
14
+ ]
15
+ })],
16
+ build: { outDir: 'www' }
17
+ })
@@ -0,0 +1,15 @@
1
+ # Regula IDV Ionic demo application
2
+
3
+ ## How to build demo application
4
+ 1. Download or the clone current repository using the command `git clone https://github.com/regulaforensics/npm-idv.git`.
5
+ 2. Put `regula.license` file at `public/assets/` (you can get a trial license [here](https://client.regulaforensics.com)).
6
+ 3. Put `db.dat` file at `public/assets/` (you can get a trial database [here](https://client.regulaforensics.com/customer/databases))
7
+ 4. Execute `npm run setup` within this directory.
8
+ 5. In `src/main.tsx` choose prefered login configuration(`loginType` variable) and provide your login data according to it: username and password for `credentials`, tokenUrl for `token`, apiKey for `apiKey`.
9
+ 6. Run the app:
10
+ * IOS: `npm run ios`.
11
+ * Android: `npm run android`.
12
+ 7. After initialization choose **General KYC - AP** from workflows list and click **Start Workflow** button.
13
+ 8. Complete workflow and get your session id.
14
+
15
+ **Note**: `npm run ios`/`npm run android` is just one way of running the app. You can also pass `-o` or `--open` argument to the command, and this will open Xcode/Android Studio, then run the app directly from the IDE. Overall, this is a more consistent way, so if you're having troubles running the app from terminal, try running it from the IDE.
@@ -0,0 +1,39 @@
1
+ {
2
+ "version": 1,
3
+ "projects": {
4
+ "app": {
5
+ "root": "",
6
+ "sourceRoot": "src",
7
+ "projectType": "application",
8
+ "architect": {
9
+ "build": {
10
+ "builder": "@angular-devkit/build-angular:browser",
11
+ "options": {
12
+ "outputPath": "www",
13
+ "index": "index.html",
14
+ "main": "index.tsx",
15
+ "tsConfig": "tsconfig.json",
16
+ "assets": [
17
+ {
18
+ "glob": "**/*",
19
+ "input": "assets",
20
+ "output": "assets"
21
+ },
22
+ {
23
+ "glob": "**/*",
24
+ "input": "images",
25
+ "output": "images"
26
+ }
27
+ ]
28
+ }
29
+ },
30
+ "ionic-cordova-build": {
31
+ "builder": "@ionic/cordova-builders:cordova-build",
32
+ "options": {
33
+ "browserTarget": "app:build"
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
File without changes
@@ -0,0 +1,59 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <widget android-packageName="com.regula.example.idv.ionic" ios-CFBundleIdentifier="com.regula.example.idv.ionic" version="1.0.0"
3
+ xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <name>IDV</name>
5
+ <icon src="images/icon.png" />
6
+ <platform name="android">
7
+ <resource-file src="assets/regula.license" target="app/src/main/assets/Regula/regula.license" />
8
+ <resource-file src="assets/db.dat" target="app/src/main/assets/Regula/db.dat" />
9
+ <preference name="orientation" value="portrait" />
10
+ <preference name="AndroidEdgeToEdge" value="true" />
11
+ <preference name="android-minSdkVersion" value="24" />
12
+ <preference name="android-targetSdkVersion" value="36" />
13
+ <preference name="GradlePluginKotlinEnabled" value="true" />
14
+ <config-file parent="/*" target="AndroidManifest.xml">
15
+ <uses-permission android:name="android.permission.NFC" />
16
+ </config-file>
17
+ <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
18
+ <application android:usesCleartextTraffic="true" />
19
+ </edit-config>
20
+ </platform>
21
+ <platform name="ios">
22
+ <resource-file src="assets/regula.license" />
23
+ <resource-file src="assets/db.dat" />
24
+ <preference name="deployment-target" value="14.0" />
25
+ <preference name="orientation" value="portrait" />
26
+ <allow-intent href="itms:*" />
27
+ <allow-intent href="itms-apps:*" />
28
+ <config-file parent="NSCameraUsageDescription" target="*-Info.plist">
29
+ <string>To use camera</string>
30
+ </config-file>
31
+ <config-file parent="NSPhotoLibraryUsageDescription" target="*-Info.plist">
32
+ <string>To pick images</string>
33
+ </config-file>
34
+ <config-file parent="NFCReaderUsageDescription" target="*-Info.plist">
35
+ <string>To use NFC</string>
36
+ </config-file>
37
+ <config-file parent="com.apple.developer.nfc.readersession.iso7816.select-identifiers" target="*-Info.plist">
38
+ <array>
39
+ <string>A0000002471001</string>
40
+ <string>E80704007F00070302</string>
41
+ <string>A000000167455349474E</string>
42
+ <string>A0000002480100</string>
43
+ <string>A0000002480200</string>
44
+ <string>A0000002480300</string>
45
+ <string>A00000045645444C2D3031</string>
46
+ </array>
47
+ </config-file>
48
+ <config-file parent="com.apple.developer.nfc.readersession.formats" target="*-Debug.plist">
49
+ <array>
50
+ <string>TAG</string>
51
+ </array>
52
+ </config-file>
53
+ <config-file parent="com.apple.developer.nfc.readersession.formats" target="*-Release.plist">
54
+ <array>
55
+ <string>TAG</string>
56
+ </array>
57
+ </config-file>
58
+ </platform>
59
+ </widget>
Binary file
@@ -0,0 +1,19 @@
1
+ <head>
2
+ <meta name="viewport"
3
+ content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
4
+ <base href="/" />
5
+ </head>
6
+
7
+ <body>
8
+ <ion-app>
9
+ <app-root></app-root>
10
+ </ion-app>
11
+ </body>
12
+
13
+ <style>
14
+ html,
15
+ body {
16
+ height: 100%;
17
+ margin: 0;
18
+ }
19
+ </style>
@@ -0,0 +1,28 @@
1
+ import 'zone.js';
2
+ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
3
+ import { BrowserModule } from '@angular/platform-browser'
4
+ import { IonicModule, Platform } from '@ionic/angular'
5
+ import { NgModule } from '@angular/core'
6
+ import { Component } from '@angular/core'
7
+
8
+ import { main } from './src/main'
9
+
10
+ @Component({
11
+ selector: 'app-root',
12
+ templateUrl: 'src/main.html',
13
+ styleUrl: 'src/main.css'
14
+ })
15
+ class Main {
16
+ constructor(platform: Platform) {
17
+ platform.ready().then(main)
18
+ }
19
+ }
20
+
21
+ @NgModule({
22
+ bootstrap: [Main],
23
+ providers: [Platform],
24
+ imports: [BrowserModule, IonicModule.forRoot()]
25
+ })
26
+ class MainModule { }
27
+
28
+ platformBrowserDynamic().bootstrapModule(MainModule)
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "IDV",
3
+ "integrations": {
4
+ "cordova": {}
5
+ },
6
+ "type": "angular"
7
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "idv",
3
+ "scripts": {
4
+ "setup": "scripts/setup.sh",
5
+ "ios": "scripts/ios.sh",
6
+ "android": "scripts/android.sh"
7
+ },
8
+ "dependencies": {
9
+ "@angular-devkit/build-angular": "^20.3.1",
10
+ "@angular/cli": "^20.3.1",
11
+ "@angular/common": "^20.3.0",
12
+ "@angular/compiler-cli": "^20.3.0",
13
+ "@angular/core": "^20.3.0",
14
+ "@angular/forms": "^20.3.0",
15
+ "@angular/platform-browser-dynamic": "^20.3.0",
16
+ "@angular/router": "^20.3.0",
17
+ "@ionic/angular": "^8.7.3",
18
+ "@ionic/cordova-builders": "^12.3.0",
19
+ "@regulaforensics/idv": "3.2.23-beta",
20
+ "@regulaforensics/document-reader": "8.4.312-beta",
21
+ "@regulaforensics/face-sdk": "7.2.455-beta",
22
+ "@regulaforensics/document-reader-core-fullauthrfid": "8.4.271-beta",
23
+ "@regulaforensics/face-core-basic": "7.3.280-beta",
24
+ "@regulaforensics/idv-module-document-reader": "3.2.29-beta",
25
+ "@regulaforensics/idv-module-face": "3.2.28-beta",
26
+ "cordova-android": "^14.0.1",
27
+ "cordova-ios": "^7.1.1",
28
+ "cordova-plugin-ionic-webview": "^5.0.1"
29
+ },
30
+ "cordova": {
31
+ "plugins": {
32
+ "@regulaforensics/idv": {},
33
+ "@regulaforensics/document-reader": {},
34
+ "@regulaforensics/face-sdk": {},
35
+ "@regulaforensics/document-reader-core-fullauthrfid": {},
36
+ "@regulaforensics/face-core-basic": {},
37
+ "@regulaforensics/idv-module-document-reader": {},
38
+ "@regulaforensics/idv-module-face": {},
39
+ "cordova-plugin-ionic-webview": {}
40
+ },
41
+ "platforms": [
42
+ "android",
43
+ "ios"
44
+ ]
45
+ }
46
+ }
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+
3
+ if [[ $npm_config_o || $npm_config_open ]]; then
4
+ ionic cordova build android
5
+ studio platforms/android || open -a 'Android Studio' platforms/android
6
+ else
7
+ ionic cordova run android
8
+ fi
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+
3
+ if [[ $npm_config_o || $npm_config_open ]]; then
4
+ ionic cordova prepare ios
5
+ open platforms/ios/IDV.xcworkspace
6
+ else
7
+ ionic cordova run ios
8
+ fi
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ npm install
5
+ ionic cordova prepare || {
6
+ pod repo update
7
+ ionic cordova prepare
8
+ }
@@ -0,0 +1,148 @@
1
+ html,
2
+ body {
3
+ margin: 0;
4
+ width: 100%;
5
+ height: 99vh;
6
+ display: flex;
7
+ overflow: hidden;
8
+ flex-direction: column;
9
+ }
10
+
11
+ /* Prevent text selection */
12
+ * {
13
+ user-select: none !important;
14
+ -webkit-user-select: none !important;
15
+ -webkit-user-drag: none !important;
16
+ -webkit-touch-callout: none !important;
17
+ }
18
+
19
+ .column {
20
+ display: flex;
21
+ flex-direction: column;
22
+ align-items: center;
23
+ justify-content: center;
24
+ width: 100%;
25
+ }
26
+
27
+ .row {
28
+ display: flex;
29
+ flex-direction: row;
30
+ align-items: center;
31
+ justify-content: center;
32
+ }
33
+
34
+ .header {
35
+ text-align: center;
36
+ padding-top: 80px;
37
+ margin-top: -10px;
38
+ background-color: rgba(0, 0, 0, 0.03);
39
+ font-weight: 600;
40
+ font-size: 18px;
41
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
42
+ }
43
+
44
+ .sub-header {
45
+ background-color: rgba(0, 0, 0, 0.03);
46
+ width: 100%;
47
+ padding-top: 13px;
48
+ text-align: center;
49
+ font-weight: 550;
50
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
51
+ }
52
+
53
+ .divider {
54
+ height: 1px;
55
+ background-color: rgba(0, 0, 0, 0.075);
56
+ margin-top: 13px;
57
+ }
58
+
59
+ .scroll {
60
+ flex-grow: 1;
61
+ overflow-y: auto;
62
+ }
63
+
64
+ .no-scroll {
65
+ flex-grow: 1;
66
+ overflow-y: hidden;
67
+ }
68
+
69
+ .button {
70
+ width: 175px;
71
+ height: 40px;
72
+ margin: 5px;
73
+ margin-top: 10px;
74
+ background-color: #4285F4;
75
+ color: white;
76
+ border: none;
77
+ padding: 10px 20px;
78
+ justify-content: center;
79
+ font-size: 16px;
80
+ border-radius: 100px;
81
+ cursor: pointer;
82
+ transition: all 0.3s ease;
83
+ user-select: none;
84
+ -webkit-user-select: none;
85
+ -moz-user-select: none;
86
+ -ms-user-select: none;
87
+ }
88
+
89
+ .button:active {
90
+ position: relative;
91
+ top: 1px;
92
+ }
93
+
94
+ .text-button {
95
+ background: none;
96
+ border: none;
97
+ color: #2196f3;
98
+ font-size: 20px;
99
+ font-weight: bold;
100
+ padding: 5px;
101
+ }
102
+
103
+ .text-button:active {
104
+ position: relative;
105
+ top: 1px;
106
+ }
107
+
108
+ .radio {
109
+ align-items: baseline;
110
+ padding: 15px;
111
+ }
112
+
113
+ input[type="checkbox"] {
114
+ width: 20px;
115
+ height: 20px;
116
+ border: 2px solid black;
117
+ background-color: white;
118
+ display: inline-block;
119
+ position: relative;
120
+ cursor: pointer;
121
+ }
122
+
123
+ input[type="text"] {
124
+ width: 173px;
125
+ height: 40px;
126
+ font-size: 15px;
127
+ margin: 5px;
128
+ border-radius: 100px;
129
+ padding-left: 10px;
130
+ padding-right: 10px;
131
+ margin-top: 10px;
132
+ }
133
+
134
+ .progress-bar {
135
+ width: 75%;
136
+ padding: 3px;
137
+ margin-top: 40px;
138
+ background-color: #eee;
139
+ border-radius: 8px;
140
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
141
+ }
142
+
143
+ #progress {
144
+ width: 0%;
145
+ height: 20px;
146
+ background-color: #4285F4;
147
+ border-radius: 5px;
148
+ }