@regulaforensics/face-sdk 7.1.211-rc → 7.1.252-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 (305) hide show
  1. package/README.md +1 -1
  2. package/RNFaceSDK.podspec +3 -3
  3. package/android/CVDFaceSDK.kt +22 -8
  4. package/android/build.gradle +1 -1
  5. package/android/cordova.gradle +1 -1
  6. package/android/src/main/java/com/regula/plugin/facesdk/Config.kt +9 -1
  7. package/android/src/main/java/com/regula/plugin/facesdk/JSONConstructor.kt +2 -0
  8. package/android/src/main/java/com/regula/plugin/facesdk/Main.kt +15 -9
  9. package/android/src/main/java/com/regula/plugin/facesdk/RNFaceApiModule.kt +16 -6
  10. package/android/src/main/java/com/regula/plugin/facesdk/Utils.kt +32 -2
  11. package/examples/capacitor/README.md +3 -8
  12. package/examples/capacitor/android/app/build.gradle +2 -6
  13. package/examples/capacitor/android/app/capacitor.build.gradle +4 -4
  14. package/examples/capacitor/android/app/src/main/AndroidManifest.xml +3 -16
  15. package/examples/capacitor/android/app/src/main/java/com/regula/{faceapi → documentreader}/MainActivity.java +1 -1
  16. package/examples/capacitor/android/app/src/main/res/values/strings.xml +2 -2
  17. package/examples/capacitor/android/build.gradle +1 -1
  18. package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  19. package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.properties +2 -1
  20. package/examples/capacitor/android/gradlew +21 -13
  21. package/examples/capacitor/android/gradlew.bat +12 -10
  22. package/examples/capacitor/android/variables.gradle +11 -11
  23. package/examples/capacitor/index.html +8 -104
  24. package/examples/capacitor/ios/App/App.xcodeproj/project.pbxproj +4 -4
  25. package/examples/capacitor/ios/App/Podfile +2 -3
  26. package/examples/capacitor/ios/App/Podfile.lock +57 -0
  27. package/examples/capacitor/package-lock.json +3536 -0
  28. package/examples/capacitor/package.json +19 -56
  29. package/examples/capacitor/public/images/portrait.png +0 -0
  30. package/examples/capacitor/scripts/setup.sh +2 -0
  31. package/examples/capacitor/src/main.css +77 -0
  32. package/examples/capacitor/src/main.html +22 -0
  33. package/examples/capacitor/src/main.tsx +152 -11
  34. package/examples/capacitor/tsconfig.json +1 -17
  35. package/examples/capacitor/vite.config.ts +10 -9
  36. package/examples/cordova/README.md +4 -6
  37. package/examples/cordova/config.xml +4 -15
  38. package/examples/cordova/package-lock.json +1333 -0
  39. package/examples/cordova/package.json +8 -12
  40. package/examples/cordova/scripts/setup.sh +4 -1
  41. package/examples/cordova/www/images/portrait.png +0 -0
  42. package/examples/cordova/www/index.html +19 -92
  43. package/examples/cordova/www/src/main.css +77 -0
  44. package/examples/cordova/www/src/main.html +22 -0
  45. package/examples/cordova/www/{js/index.js → src/main.js} +41 -43
  46. package/examples/ionic/README.md +3 -6
  47. package/examples/ionic/angular.json +6 -154
  48. package/examples/ionic/config.xml +4 -93
  49. package/examples/ionic/index.html +19 -0
  50. package/examples/ionic/index.ts +17 -0
  51. package/examples/ionic/package-lock.json +13777 -0
  52. package/examples/ionic/package.json +24 -75
  53. package/examples/ionic/scripts/setup.sh +4 -1
  54. package/examples/ionic/src/images/portrait.png +0 -0
  55. package/examples/ionic/src/main.css +77 -0
  56. package/examples/ionic/src/main.html +22 -0
  57. package/examples/ionic/src/main.ts +157 -8
  58. package/examples/ionic/tsconfig.json +6 -20
  59. package/examples/react-native/Gemfile +7 -0
  60. package/examples/react-native/Gemfile.lock +28 -21
  61. package/examples/react-native/README.md +4 -10
  62. package/examples/react-native/android/app/build.gradle +2 -70
  63. package/examples/react-native/android/app/src/main/AndroidManifest.xml +21 -21
  64. package/examples/react-native/android/app/src/main/java/com/regula/{face/api → documentreader}/MainActivity.kt +2 -2
  65. package/examples/react-native/android/app/src/main/java/com/regula/{face/api → documentreader}/MainApplication.kt +1 -1
  66. package/examples/react-native/android/build.gradle +3 -3
  67. package/examples/react-native/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  68. package/examples/react-native/android/gradle.properties +0 -34
  69. package/examples/react-native/android/gradlew +1 -2
  70. package/examples/react-native/android/settings.gradle +1 -1
  71. package/examples/react-native/images/portrait.png +0 -0
  72. package/examples/react-native/index.html +11 -0
  73. package/examples/react-native/index.tsx +51 -0
  74. package/examples/react-native/ios/{FaceSDK → App}/AppDelegate.mm +1 -1
  75. package/examples/react-native/ios/{FaceSDK.xcodeproj → App.xcodeproj}/project.pbxproj +52 -269
  76. package/examples/react-native/ios/{FaceSDK.xcodeproj/xcshareddata/xcschemes/FaceSDK.xcscheme → App.xcodeproj/xcshareddata/xcschemes/App.xcscheme} +9 -27
  77. package/examples/react-native/ios/{FaceSDK.xcworkspace → App.xcworkspace}/contents.xcworkspacedata +1 -1
  78. package/examples/react-native/ios/Podfile +3 -6
  79. package/examples/react-native/ios/Podfile.lock +565 -512
  80. package/examples/react-native/metro.config.js +16 -11
  81. package/examples/react-native/package-lock.json +2121 -6901
  82. package/examples/react-native/package.json +12 -34
  83. package/examples/react-native/patches/react-native-webview+13.13.5.patch +36 -0
  84. package/examples/react-native/scripts/android.sh +5 -0
  85. package/examples/react-native/scripts/ios.sh +5 -1
  86. package/examples/react-native/src/main.css +77 -0
  87. package/examples/react-native/src/main.html +22 -0
  88. package/examples/react-native/{App.tsx → src/main.tsx} +19 -86
  89. package/ios/RFSWConfig.m +7 -1
  90. package/ios/RFSWJSONConstructor.h +2 -0
  91. package/ios/RFSWJSONConstructor.m +32 -15
  92. package/ios/RFSWMain.m +1 -1
  93. package/package.json +1 -1
  94. package/plugin.xml +4 -4
  95. package/www/capacitor/detect_faces/detect_faces_request.js +2 -0
  96. package/www/capacitor/face_capture/face_capture_config.js +6 -2
  97. package/www/capacitor/image_quality/image_quality_characteristic.js +2 -0
  98. package/www/capacitor/image_quality/image_quality_group.js +1 -0
  99. package/www/capacitor/init/init_config.js +8 -0
  100. package/www/capacitor/internal/bridge.js +8 -7
  101. package/www/capacitor/liveness/liveness_backend_exception.js +8 -0
  102. package/www/capacitor/liveness/liveness_config.js +3 -3
  103. package/www/capacitor/person_database/person_database.js +1 -1
  104. package/www/cordova.js +109 -80
  105. package/www/react-native/detect_faces/detect_faces_request.js +2 -0
  106. package/www/react-native/face_capture/face_capture_config.js +6 -2
  107. package/www/react-native/image_quality/image_quality_characteristic.js +2 -0
  108. package/www/react-native/image_quality/image_quality_group.js +1 -0
  109. package/www/react-native/init/init_config.js +8 -0
  110. package/www/react-native/internal/bridge.js +8 -7
  111. package/www/react-native/liveness/liveness_backend_exception.js +8 -0
  112. package/www/react-native/liveness/liveness_config.js +3 -3
  113. package/www/react-native/person_database/person_database.js +1 -1
  114. package/www/types/face_capture/face_capture_config.d.ts +6 -1
  115. package/www/types/init/init_config.d.ts +7 -1
  116. package/www/types/liveness/liveness_backend_exception.d.ts +9 -1
  117. package/www/types/liveness/liveness_config.d.ts +1 -1
  118. package/www/types/person_database/person_database.d.ts +1 -1
  119. package/.gitlab/report.yaml +0 -75
  120. package/.gitlab-ci.yml +0 -49
  121. package/examples/capacitor/.browserslistrc +0 -6
  122. package/examples/capacitor/.eslintrc.js +0 -17
  123. package/examples/capacitor/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +0 -26
  124. package/examples/capacitor/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
  125. package/examples/capacitor/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
  126. package/examples/capacitor/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
  127. package/examples/capacitor/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
  128. package/examples/capacitor/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
  129. package/examples/capacitor/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
  130. package/examples/capacitor/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
  131. package/examples/capacitor/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
  132. package/examples/capacitor/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
  133. package/examples/capacitor/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
  134. package/examples/capacitor/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
  135. package/examples/capacitor/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
  136. package/examples/capacitor/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
  137. package/examples/capacitor/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
  138. package/examples/capacitor/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  139. package/examples/capacitor/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  140. package/examples/capacitor/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  141. package/examples/capacitor/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  142. package/examples/capacitor/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  143. package/examples/capacitor/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  144. package/examples/capacitor/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  145. package/examples/capacitor/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  146. package/examples/capacitor/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  147. package/examples/capacitor/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  148. package/examples/capacitor/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  149. package/examples/capacitor/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  150. package/examples/capacitor/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  151. package/examples/capacitor/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  152. package/examples/capacitor/android/app/src/main/res/values/ic_launcher_background.xml +0 -4
  153. package/examples/capacitor/android/app/src/main/res/xml/file_paths.xml +0 -5
  154. package/examples/capacitor/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +0 -18
  155. package/examples/capacitor/capacitor.config.ts +0 -12
  156. package/examples/capacitor/cypress/e2e/test.cy.ts +0 -6
  157. package/examples/capacitor/cypress/fixtures/example.json +0 -5
  158. package/examples/capacitor/cypress/support/commands.ts +0 -37
  159. package/examples/capacitor/cypress/support/e2e.ts +0 -20
  160. package/examples/capacitor/cypress.config.ts +0 -10
  161. package/examples/capacitor/public/assets/img/id.png +0 -0
  162. package/examples/capacitor/public/assets/img/portrait.png +0 -0
  163. package/examples/capacitor/public/favicon.png +0 -0
  164. package/examples/capacitor/public/manifest.json +0 -21
  165. package/examples/capacitor/src/App.test.tsx +0 -8
  166. package/examples/capacitor/src/App.tsx +0 -42
  167. package/examples/capacitor/src/components/ExploreContainer.css +0 -24
  168. package/examples/capacitor/src/components/ExploreContainer.tsx +0 -14
  169. package/examples/capacitor/src/pages/Home.tsx +0 -159
  170. package/examples/capacitor/src/setupTests.ts +0 -14
  171. package/examples/capacitor/src/theme/variables.css +0 -242
  172. package/examples/capacitor/src/vite-env.d.ts +0 -1
  173. package/examples/capacitor/tsconfig.node.json +0 -9
  174. package/examples/cordova/jsconfig.json +0 -1
  175. package/examples/cordova/www/css/index.css +0 -107
  176. package/examples/cordova/www/img/id.png +0 -0
  177. package/examples/cordova/www/img/portrait.png +0 -0
  178. package/examples/ionic/browserslist +0 -12
  179. package/examples/ionic/e2e/protractor.conf.js +0 -28
  180. package/examples/ionic/e2e/src/app.e2e-spec.ts +0 -14
  181. package/examples/ionic/e2e/src/app.po.ts +0 -11
  182. package/examples/ionic/e2e/tsconfig.json +0 -13
  183. package/examples/ionic/karma.conf.js +0 -31
  184. package/examples/ionic/resources/README.md +0 -8
  185. package/examples/ionic/resources/android/icon/drawable-hdpi-icon.png +0 -0
  186. package/examples/ionic/resources/android/icon/drawable-ldpi-icon.png +0 -0
  187. package/examples/ionic/resources/android/icon/drawable-mdpi-icon.png +0 -0
  188. package/examples/ionic/resources/android/icon/drawable-xhdpi-icon.png +0 -0
  189. package/examples/ionic/resources/android/icon/drawable-xxhdpi-icon.png +0 -0
  190. package/examples/ionic/resources/android/icon/drawable-xxxhdpi-icon.png +0 -0
  191. package/examples/ionic/resources/android/splash/drawable-land-hdpi-screen.png +0 -0
  192. package/examples/ionic/resources/android/splash/drawable-land-ldpi-screen.png +0 -0
  193. package/examples/ionic/resources/android/splash/drawable-land-mdpi-screen.png +0 -0
  194. package/examples/ionic/resources/android/splash/drawable-land-xhdpi-screen.png +0 -0
  195. package/examples/ionic/resources/android/splash/drawable-land-xxhdpi-screen.png +0 -0
  196. package/examples/ionic/resources/android/splash/drawable-land-xxxhdpi-screen.png +0 -0
  197. package/examples/ionic/resources/android/splash/drawable-port-hdpi-screen.png +0 -0
  198. package/examples/ionic/resources/android/splash/drawable-port-ldpi-screen.png +0 -0
  199. package/examples/ionic/resources/android/splash/drawable-port-mdpi-screen.png +0 -0
  200. package/examples/ionic/resources/android/splash/drawable-port-xhdpi-screen.png +0 -0
  201. package/examples/ionic/resources/android/splash/drawable-port-xxhdpi-screen.png +0 -0
  202. package/examples/ionic/resources/android/splash/drawable-port-xxxhdpi-screen.png +0 -0
  203. package/examples/ionic/resources/android/xml/network_security_config.xml +0 -6
  204. package/examples/ionic/resources/ios/icon/icon-1024.png +0 -0
  205. package/examples/ionic/resources/ios/icon/icon-20.png +0 -0
  206. package/examples/ionic/resources/ios/icon/icon-20@2x.png +0 -0
  207. package/examples/ionic/resources/ios/icon/icon-20@3x.png +0 -0
  208. package/examples/ionic/resources/ios/icon/icon-24@2x.png +0 -0
  209. package/examples/ionic/resources/ios/icon/icon-27.5@2x.png +0 -0
  210. package/examples/ionic/resources/ios/icon/icon-29.png +0 -0
  211. package/examples/ionic/resources/ios/icon/icon-29@2x.png +0 -0
  212. package/examples/ionic/resources/ios/icon/icon-29@3x.png +0 -0
  213. package/examples/ionic/resources/ios/icon/icon-40.png +0 -0
  214. package/examples/ionic/resources/ios/icon/icon-40@2x.png +0 -0
  215. package/examples/ionic/resources/ios/icon/icon-40@3x.png +0 -0
  216. package/examples/ionic/resources/ios/icon/icon-44@2x.png +0 -0
  217. package/examples/ionic/resources/ios/icon/icon-50.png +0 -0
  218. package/examples/ionic/resources/ios/icon/icon-50@2x.png +0 -0
  219. package/examples/ionic/resources/ios/icon/icon-60.png +0 -0
  220. package/examples/ionic/resources/ios/icon/icon-60@2x.png +0 -0
  221. package/examples/ionic/resources/ios/icon/icon-60@3x.png +0 -0
  222. package/examples/ionic/resources/ios/icon/icon-72.png +0 -0
  223. package/examples/ionic/resources/ios/icon/icon-72@2x.png +0 -0
  224. package/examples/ionic/resources/ios/icon/icon-76.png +0 -0
  225. package/examples/ionic/resources/ios/icon/icon-76@2x.png +0 -0
  226. package/examples/ionic/resources/ios/icon/icon-83.5@2x.png +0 -0
  227. package/examples/ionic/resources/ios/icon/icon-86@2x.png +0 -0
  228. package/examples/ionic/resources/ios/icon/icon-98@2x.png +0 -0
  229. package/examples/ionic/resources/ios/icon/icon-small.png +0 -0
  230. package/examples/ionic/resources/ios/icon/icon-small@2x.png +0 -0
  231. package/examples/ionic/resources/ios/icon/icon-small@3x.png +0 -0
  232. package/examples/ionic/resources/ios/icon/icon.png +0 -0
  233. package/examples/ionic/resources/ios/icon/icon@2x.png +0 -0
  234. package/examples/ionic/resources/ios/splash/Default-2436h.png +0 -0
  235. package/examples/ionic/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
  236. package/examples/ionic/resources/ios/splash/Default-667h.png +0 -0
  237. package/examples/ionic/resources/ios/splash/Default-736h.png +0 -0
  238. package/examples/ionic/resources/ios/splash/Default-Landscape-2436h.png +0 -0
  239. package/examples/ionic/resources/ios/splash/Default-Landscape-736h.png +0 -0
  240. package/examples/ionic/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
  241. package/examples/ionic/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
  242. package/examples/ionic/resources/ios/splash/Default-Landscape~ipad.png +0 -0
  243. package/examples/ionic/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
  244. package/examples/ionic/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
  245. package/examples/ionic/resources/ios/splash/Default-Portrait~ipad.png +0 -0
  246. package/examples/ionic/resources/ios/splash/Default@2x~iphone.png +0 -0
  247. package/examples/ionic/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
  248. package/examples/ionic/resources/ios/splash/Default~iphone.png +0 -0
  249. package/examples/ionic/resources/splash.png +0 -0
  250. package/examples/ionic/src/app/app-routing.module.ts +0 -15
  251. package/examples/ionic/src/app/app.component.html +0 -3
  252. package/examples/ionic/src/app/app.component.spec.ts +0 -47
  253. package/examples/ionic/src/app/app.component.ts +0 -27
  254. package/examples/ionic/src/app/app.module.ts +0 -23
  255. package/examples/ionic/src/app/home/home.module.ts +0 -29
  256. package/examples/ionic/src/app/home/home.page.html +0 -75
  257. package/examples/ionic/src/app/home/home.page.scss +0 -1
  258. package/examples/ionic/src/app/home/home.page.spec.ts +0 -24
  259. package/examples/ionic/src/app/home/home.page.ts +0 -166
  260. package/examples/ionic/src/assets/icon/favicon.png +0 -0
  261. package/examples/ionic/src/assets/img/portrait.png +0 -0
  262. package/examples/ionic/src/assets/shapes.svg +0 -1
  263. package/examples/ionic/src/environments/environment.prod.ts +0 -3
  264. package/examples/ionic/src/environments/environment.ts +0 -16
  265. package/examples/ionic/src/global.scss +0 -31
  266. package/examples/ionic/src/index.html +0 -25
  267. package/examples/ionic/src/polyfills.ts +0 -66
  268. package/examples/ionic/src/test.ts +0 -20
  269. package/examples/ionic/src/theme/variables.scss +0 -77
  270. package/examples/ionic/src/zone-flags.ts +0 -5
  271. package/examples/ionic/tsconfig.app.json +0 -14
  272. package/examples/ionic/tsconfig.spec.json +0 -19
  273. package/examples/ionic/tslint.json +0 -88
  274. package/examples/react-native/.watchmanconfig +0 -1
  275. package/examples/react-native/android/app/proguard-rules.pro +0 -10
  276. package/examples/react-native/android/app/src/debug/AndroidManifest.xml +0 -9
  277. package/examples/react-native/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
  278. package/examples/react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  279. package/examples/react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  280. package/examples/react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  281. package/examples/react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  282. package/examples/react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  283. package/examples/react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  284. package/examples/react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  285. package/examples/react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  286. package/examples/react-native/android/app/src/main/res/values/strings.xml +0 -3
  287. package/examples/react-native/android/app/src/main/res/values/styles.xml +0 -9
  288. package/examples/react-native/app.json +0 -5
  289. package/examples/react-native/index.js +0 -5
  290. package/examples/react-native/ios/FaceSDKTests/FaceSDKTests.m +0 -66
  291. package/examples/react-native/ios/FaceSDKTests/Info.plist +0 -24
  292. /package/examples/capacitor/android/app/src/main/res/{mipmap-xxxhdpi → drawable}/ic_launcher.png +0 -0
  293. /package/examples/cordova/www/{img → images}/logo.png +0 -0
  294. /package/examples/ionic/src/{app/app.component.scss → assets/.gitkeep} +0 -0
  295. /package/examples/ionic/{resources → src/images}/icon.png +0 -0
  296. /package/examples/react-native/android/app/src/main/res/{mipmap-xxxhdpi → drawable}/ic_launcher.png +0 -0
  297. /package/examples/react-native/android/app/src/main/res/{mipmap-xxxhdpi → drawable}/ic_launcher_round.png +0 -0
  298. /package/examples/react-native/ios/{FaceSDK → App}/AppDelegate.h +0 -0
  299. /package/examples/react-native/ios/{FaceSDK → App}/Images.xcassets/AppIcon.appiconset/Contents.json +0 -0
  300. /package/examples/react-native/ios/{FaceSDK → App}/Images.xcassets/Contents.json +0 -0
  301. /package/examples/react-native/ios/{FaceSDK → App}/Info.plist +0 -0
  302. /package/examples/react-native/ios/{FaceSDK → App}/LaunchScreen.storyboard +0 -0
  303. /package/examples/react-native/ios/{FaceSDK → App}/PrivacyInfo.xcprivacy +0 -0
  304. /package/examples/react-native/ios/{FaceSDK → App}/main.m +0 -0
  305. /package/examples/react-native/ios/{FaceSDK.xcworkspace → App.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist +0 -0
package/README.md CHANGED
@@ -3,7 +3,7 @@ Face SDK is a framework that is used for face matching, recognition and liveness
3
3
  This plugin makes possible to use it with react-native, cordova and ionic applications.
4
4
 
5
5
  ## Demo applications
6
- In the [examples](examples/) folder you can find demo 4 applications:
6
+ In the [examples](examples/) folder you can find 4 demo applications:
7
7
  * [React-native](examples/react-native)
8
8
  * [Cordova](examples/cordova)
9
9
  * [Ionic(ionic app with cordova, angular)](examples/ionic)
package/RNFaceSDK.podspec CHANGED
@@ -5,7 +5,7 @@ source = File.join(__dir__, 'ios')
5
5
 
6
6
  Pod::Spec.new do |s|
7
7
  s.name = 'RNFaceSDK'
8
- s.version = '7.1.211-rc'
8
+ s.version = '7.1.252-beta'
9
9
  s.summary = package['description']
10
10
  s.license = package['license']
11
11
 
@@ -13,9 +13,9 @@ Pod::Spec.new do |s|
13
13
  s.homepage = 'https://regulaforensics.com'
14
14
 
15
15
  s.source = { http: "file:#{source}" }
16
- s.ios.deployment_target = '12.0'
16
+ s.ios.deployment_target = '13.0'
17
17
  s.source_files = 'ios/**/*.{h,m}'
18
18
  s.exclude_files = [ 'ios/CVDFaceSDK.h', 'ios/CVDFaceSDK.m' ]
19
- s.dependency 'FaceSDKStage', '7.1.2581'
19
+ s.dependency 'FaceSDKStage', '7.1.2586'
20
20
  s.dependency 'React'
21
21
  end
@@ -1,19 +1,27 @@
1
1
  package com.regula.plugin.facesdk
2
2
 
3
+ import android.content.Context
4
+ import android.util.Log
3
5
  import org.apache.cordova.CallbackContext
4
6
  import org.apache.cordova.CordovaPlugin
5
- import org.apache.cordova.CordovaWebView
6
7
  import org.apache.cordova.PluginResult
7
8
  import org.json.JSONArray
8
9
 
9
- lateinit var args: JSONArray
10
- lateinit var eventSender: CordovaWebView
11
10
  val eventCallbackIds = mutableMapOf<String, String>()
12
11
 
12
+ lateinit var args: JSONArray
13
+ lateinit var binding: CordovaPlugin
14
+ val context: Context
15
+ get() = binding.cordova.context
16
+
13
17
  fun sendEvent(callbackId: String, data: Any? = "") {
14
- val pluginResult = PluginResult(PluginResult.Status.OK, data.toSendable() as String?)
18
+ val pluginResult = when (data) {
19
+ is Int -> PluginResult(PluginResult.Status.OK, data)
20
+ is Boolean -> PluginResult(PluginResult.Status.OK, data)
21
+ else -> PluginResult(PluginResult.Status.OK, data.toSendable() as String?)
22
+ }
15
23
  pluginResult.keepCallback = true
16
- eventSender.sendPluginResult(pluginResult, eventCallbackIds[callbackId] ?: callbackId)
24
+ binding.webView.sendPluginResult(pluginResult, eventCallbackIds[callbackId] ?: callbackId)
17
25
  }
18
26
 
19
27
  @Suppress("UNCHECKED_CAST")
@@ -22,13 +30,19 @@ fun <T> argsNullable(index: Int): T? = if (args.get(index).toString() != "null")
22
30
  } else null
23
31
 
24
32
  class CVDFaceSDK : CordovaPlugin() {
33
+ init {
34
+ binding = this
35
+ }
36
+
25
37
  override fun execute(action: String, arguments: JSONArray, callbackContext: CallbackContext): Boolean {
26
- activity = cordova.activity
27
- eventSender = webView
28
38
  args = arguments
29
39
  val method = args.remove(0) as String
30
40
  if (method == "setEvent") eventCallbackIds[args(0)] = callbackContext.callbackId
31
- methodCall(method) { data: Any? -> sendEvent(callbackContext.callbackId, data) }
41
+ try {
42
+ methodCall(method) { data: Any? -> sendEvent(callbackContext.callbackId, data) }
43
+ } catch (error: Exception) {
44
+ Log.e("REGULA", "Caught exception in \"$method\" function:", error)
45
+ }
32
46
  return true
33
47
  }
34
48
  }
@@ -41,7 +41,7 @@ dependencies {
41
41
  //noinspection GradleDynamicVersion
42
42
  implementation 'com.facebook.react:react-native:+'
43
43
  //noinspection GradleDependency
44
- implementation('com.regula.face:api:7.1.3704'){
44
+ implementation('com.regula.face:api:6.4.3709'){
45
45
  transitive = true
46
46
  }
47
47
  }
@@ -12,7 +12,7 @@ repositories {
12
12
 
13
13
  dependencies {
14
14
  //noinspection GradleDependency
15
- implementation('com.regula.face:api:7.1.3704'){
15
+ implementation('com.regula.face:api:6.4.3709'){
16
16
  transitive = true
17
17
  }
18
18
  }
@@ -1,3 +1,5 @@
1
+ @file:Suppress("EnumValuesSoftDeprecate")
2
+
1
3
  package com.regula.plugin.facesdk
2
4
 
3
5
  import com.regula.facesdk.configuration.Customization
@@ -20,6 +22,8 @@ fun setFaceCaptureConfig(builder: FaceCaptureConfiguration.Builder, config: JSON
20
22
  "closeButtonEnabled" -> builder.setCloseButtonEnabled(v as Boolean)
21
23
  "torchButtonEnabled" -> builder.setTorchButtonEnabled(v as Boolean)
22
24
  "vibrateOnSteps" -> builder.setVibrateOnStep(v as Boolean)
25
+ "detectOcclusion" -> builder.setDetectOcclusion(v as Boolean)
26
+ "showFaceAnimation" -> builder.setShowFaceAnimation(v as Boolean)
23
27
  "cameraPositionAndroid" -> builder.setCameraId(v.toInt())
24
28
  "screenOrientation" -> builder.setScreenOrientation(*screenOrientationArrayFromJSON(v as JSONArray))
25
29
  "timeout" -> builder.setTimeout(v.toFloat())
@@ -33,6 +37,8 @@ fun getFaceCaptureConfig(input: FaceCaptureConfiguration) = mapOf(
33
37
  "closeButtonEnabled" to input.isCloseButtonEnabled,
34
38
  "torchButtonEnabled" to input.isTorchButtonEnabled,
35
39
  "vibrateOnSteps" to input.isVibrateOnSteps,
40
+ "detectOcclusion" to input.isDetectOcclusion,
41
+ "showFaceAnimation" to input.isShowFaceAnimation,
36
42
  "cameraPositionAndroid" to input.cameraId,
37
43
  "screenOrientation" to generateScreenOrientationArray(input.screenOrientation),
38
44
  "timeout" to input.timeout,
@@ -78,11 +84,13 @@ fun getLivenessConfig(input: LivenessConfiguration) = mapOf(
78
84
  fun setMatchFacesConfig(builder: MatchFacesConfiguration.Builder, config: JSONObject) = config.forEach { k, v ->
79
85
  when (k) {
80
86
  "processingMode" -> builder.setProcessingMode(ProcessingMode.values()[v.toInt()])
87
+ "locationTrackingEnabled" -> builder.setLocationTrackingEnabled(v as Boolean)
81
88
  }
82
89
  }
83
90
 
84
91
  fun getMatchFacesConfig(input: MatchFacesConfiguration) = mapOf(
85
- "processingMode" to input.processingMode.ordinal
92
+ "processingMode" to input.processingMode.ordinal,
93
+ "locationTrackingEnabled" to input.isLocationTrackingEnabled
86
94
  ).toJson()
87
95
 
88
96
  fun setCustomization(input: Customization, config: JSONObject) = config.forEach { key, value ->
@@ -1,3 +1,5 @@
1
+ @file:Suppress("EnumValuesSoftDeprecate", "unused")
2
+
1
3
  package com.regula.plugin.facesdk
2
4
 
3
5
  import android.annotation.SuppressLint
@@ -1,9 +1,9 @@
1
1
  package com.regula.plugin.facesdk
2
2
 
3
3
  import android.annotation.SuppressLint
4
- import android.app.Activity
5
4
  import com.regula.plugin.facesdk.Convert.toBase64
6
5
  import com.regula.common.LocalizationCallbacks
6
+ import com.regula.common.ble.BLEWrapper
7
7
  import com.regula.facesdk.FaceSDK.Instance
8
8
  import com.regula.facesdk.callback.DetectFacesCompletion
9
9
  import com.regula.facesdk.callback.FaceCaptureCallback
@@ -13,6 +13,7 @@ import com.regula.facesdk.callback.LivenessCallback
13
13
  import com.regula.facesdk.callback.LivenessNotificationCallback
14
14
  import com.regula.facesdk.callback.MatchFaceCallback
15
15
  import com.regula.facesdk.callback.PersonDBCallback
16
+ import com.regula.facesdk.configuration.InitializationBleDeviceConfiguration
16
17
  import com.regula.facesdk.listener.NetworkInterceptorListener
17
18
  import com.regula.facesdk.model.LivenessNotification
18
19
  import com.regula.facesdk.model.results.matchfaces.MatchFacesSimilarityThresholdSplit
@@ -68,11 +69,6 @@ fun methodCall(method: String, callback: (Any?) -> Unit): Any = when (method) {
68
69
  inline fun <reified T> args(index: Int) = argsNullable<T>(index)!!
69
70
  typealias Callback = (Any?) -> Unit
70
71
 
71
- @SuppressLint("StaticFieldLeak")
72
- lateinit var activity: Activity
73
- val context
74
- get() = activity
75
-
76
72
  const val cameraSwitchEvent = "cameraSwitchEvent"
77
73
  const val livenessNotificationEvent = "livenessNotificationEvent"
78
74
  const val videoEncoderCompletionEvent = "video_encoder_completion"
@@ -98,9 +94,17 @@ fun setCustomization(config: JSONObject) = setCustomization(Instance().customiza
98
94
 
99
95
  fun isInitialized(callback: Callback) = callback(Instance().isInitialized)
100
96
 
101
- fun initialize(callback: Callback, config: JSONObject?) = config?.let {
102
- Instance().initialize(context, initConfigFromJSON(it), initCompletion(callback))
103
- } ?: Instance().initialize(context, initCompletion(callback))
97
+ @SuppressLint("MissingPermission")
98
+ fun initialize(callback: Callback, config: JSONObject?) =
99
+ if (config == null)
100
+ Instance().initialize(context, initCompletion(callback))
101
+ else if (config.getBooleanOrNull("useBleDevice") != true)
102
+ Instance().initialize(context, initConfigFromJSON(config), initCompletion(callback))
103
+ else
104
+ getBleWrapper()?.let {
105
+ Instance().initialize(context, InitializationBleDeviceConfiguration(it), initCompletion(callback))
106
+ } ?: callback(false)
107
+ // TODO return an exception telling that btDevice is not connected
104
108
 
105
109
  fun deinitialize() = Instance().deinitialize()
106
110
 
@@ -136,11 +140,13 @@ fun stopLiveness() = Instance().stopLivenessProcessing(context)
136
140
 
137
141
  fun matchFaces(callback: Callback, request: JSONObject, config: JSONObject?) = config?.let {
138
142
  Instance().matchFaces(
143
+ context,
139
144
  matchFacesRequestFromJSON(request),
140
145
  matchFacesConfigFromJSON(it),
141
146
  matchFacesCompletion(callback)
142
147
  )
143
148
  } ?: Instance().matchFaces(
149
+ context,
144
150
  matchFacesRequestFromJSON(request),
145
151
  matchFacesCompletion(callback)
146
152
  )
@@ -1,5 +1,7 @@
1
1
  package com.regula.plugin.facesdk
2
2
 
3
+ import android.content.Context
4
+ import android.util.Log
3
5
  import com.facebook.react.ReactPackage
4
6
  import com.facebook.react.bridge.Promise
5
7
  import com.facebook.react.bridge.ReactApplicationContext
@@ -13,13 +15,16 @@ import org.json.JSONArray
13
15
  import org.json.JSONObject
14
16
 
15
17
  var listenerCount = 0
18
+
16
19
  lateinit var args: JSONArray
17
- lateinit var reactContext: ReactContext
20
+ lateinit var binding: ReactContext
21
+ val context: Context
22
+ get() = binding.applicationContext
18
23
 
19
24
  fun sendEvent(event: String, data: Any? = "") {
20
25
  if (listenerCount <= 0) return
21
26
  val result = if (data is JSONObject || data is JSONArray) data.toString() else data.toString() + ""
22
- reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit(event, result)
27
+ binding.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit(event, result)
23
28
  }
24
29
 
25
30
  @Suppress("UNCHECKED_CAST")
@@ -30,15 +35,16 @@ fun <T> argsNullable(index: Int): T? {
30
35
  return value as T
31
36
  }
32
37
 
38
+ @Suppress("unused")
33
39
  class RNFaceSDKPackage : ReactPackage {
34
40
  override fun createNativeModules(rc: ReactApplicationContext) = listOf(RNFaceSDKModule(rc))
35
41
  override fun createViewManagers(rc: ReactApplicationContext) = emptyList<ViewManager<*, *>>()
36
42
  }
37
43
 
38
44
  @Suppress("unused", "UNUSED_PARAMETER")
39
- class RNFaceSDKModule(rc: ReactApplicationContext) : ReactContextBaseJavaModule(rc) {
45
+ class RNFaceSDKModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
40
46
  init {
41
- reactContext = rc
47
+ binding = reactContext
42
48
  }
43
49
 
44
50
  @ReactMethod
@@ -54,8 +60,12 @@ class RNFaceSDKModule(rc: ReactApplicationContext) : ReactContextBaseJavaModule(
54
60
  @ReactMethod
55
61
  fun exec(method: String, arguments: ReadableArray, promise: Promise) {
56
62
  args = JSONArray(arguments.toArrayList())
57
- reactContext.currentActivity?.let { activity = it }
58
- methodCall(method) { data -> promise.resolve(data.toSendable()) }
63
+ try {
64
+ methodCall(method) { data -> promise.resolve(data.toSendable()) }
65
+ } catch (error: Exception) {
66
+ Log.e("REGULA", "Caught exception in \"$method\" function:", error)
67
+ }
59
68
  }
69
+
60
70
  override fun getName() = "RNFaceSDK"
61
71
  }
@@ -1,4 +1,4 @@
1
- @file:Suppress("UNCHECKED_CAST")
1
+ @file:Suppress("UNCHECKED_CAST", "EnumValuesSoftDeprecate", "UseKtx")
2
2
 
3
3
  package com.regula.plugin.facesdk
4
4
 
@@ -10,6 +10,8 @@ import android.graphics.Typeface
10
10
  import android.graphics.drawable.BitmapDrawable
11
11
  import android.graphics.drawable.Drawable
12
12
  import android.util.Base64
13
+ import android.util.Log
14
+ import com.regula.common.ble.BLEWrapper
13
15
  import com.regula.facesdk.configuration.Customization
14
16
  import com.regula.facesdk.enums.CustomizationColor
15
17
  import com.regula.facesdk.enums.CustomizationFont
@@ -284,4 +286,32 @@ internal object Convert {
284
286
  val height = (bitmap.height * density).toInt()
285
287
  BitmapDrawable(context.resources, Bitmap.createScaledBitmap(bitmap, width, height, false))
286
288
  }
287
- }
289
+ }
290
+
291
+ fun getBleWrapper(): BLEWrapper? {
292
+ listOf(
293
+ "io.flutter.plugins.regula.documentreader.flutter_document_reader_api",
294
+ "cordova.plugin.documentreader",
295
+ "com.regula.documentreader"
296
+ ).forEach { packageName ->
297
+ getVarFromClass<BLEWrapper>(
298
+ packageName,
299
+ "BluetoothUtilKt",
300
+ "bluetooth"
301
+ )?.let { return it }
302
+ }
303
+ Log.e("REGULA", "Failed to get BLEWrapper from DocumentReader plugin")
304
+ return null
305
+ }
306
+
307
+ fun <T> getVarFromClass(packageName: String, className: String, varName: String): T? {
308
+ try {
309
+ val targetClass = Class.forName("$packageName.$className")
310
+ val field = targetClass.getDeclaredField(varName)
311
+ field.isAccessible = true
312
+ val result = field.get(null) as BLEWrapper?
313
+ return result as T?
314
+ } catch (_: Exception) {
315
+ return null
316
+ }
317
+ }
@@ -12,18 +12,13 @@
12
12
  **Note**: this 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.
13
13
 
14
14
 
15
- ## How to use offine match
15
+ ## How to use offline match
16
16
  1. Place a license that supports offline match at `public/assets/regula.license`.
17
17
 
18
- 2. Change android and iOS bundle id if required by your license(replace `ANDROID_ID` and `IOS_ID` with actual ids):
19
- * Change `applicationId` to `ANDROID_ID` in `android/app/build.gradle`.
20
- * Change `Bundle Identifier` to `IOS_ID` in `ios/App/App.xcodeproj` in the `Signing & Capabilities` section.
21
-
22
- 3. Change core with the following commands:
18
+ 2. Change core with the following commands:
23
19
  ```bash
24
20
  npm uninstall @regulaforensics/face-core-basic
25
21
  npm install @regulaforensics/face-core-match
26
- ionic cap sync
27
22
  ```
28
23
 
29
- 4. Turn off the internet and run the app.
24
+ 3. Turn off the internet and run the app.
@@ -1,15 +1,14 @@
1
1
  apply plugin: 'com.android.application'
2
2
 
3
3
  android {
4
- namespace "com.regula.faceapi"
4
+ namespace "com.regula.documentreader.api.androidtest"
5
5
  compileSdkVersion rootProject.ext.compileSdkVersion
6
6
  defaultConfig {
7
- applicationId "com.regula.faceapi"
7
+ applicationId "com.regula.documentreader.api.androidtest"
8
8
  minSdkVersion rootProject.ext.minSdkVersion
9
9
  targetSdkVersion rootProject.ext.targetSdkVersion
10
10
  versionCode 1
11
11
  versionName "1.0"
12
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
13
12
  aaptOptions {
14
13
  // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
15
14
  // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61
@@ -36,9 +35,6 @@ dependencies {
36
35
  implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
37
36
  implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
38
37
  implementation project(':capacitor-android')
39
- testImplementation "junit:junit:$junitVersion"
40
- androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
41
- androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
42
38
  implementation project(':capacitor-cordova-android-plugins')
43
39
  }
44
40
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  android {
4
4
  compileOptions {
5
- sourceCompatibility JavaVersion.VERSION_17
6
- targetCompatibility JavaVersion.VERSION_17
5
+ sourceCompatibility JavaVersion.VERSION_21
6
+ targetCompatibility JavaVersion.VERSION_21
7
7
  }
8
8
  }
9
9
 
@@ -13,10 +13,10 @@ dependencies {
13
13
  implementation project(':capacitor-haptics')
14
14
  implementation project(':capacitor-keyboard')
15
15
  implementation project(':capacitor-status-bar')
16
-
16
+ implementation "androidx.core:core:1.6.+"
17
+ implementation "androidx.webkit:webkit:1.4.0"
17
18
  }
18
19
 
19
-
20
20
  if (hasProperty('postBuildExtras')) {
21
21
  postBuildExtras()
22
22
  }
@@ -3,17 +3,15 @@
3
3
 
4
4
  <application
5
5
  android:allowBackup="true"
6
- android:icon="@mipmap/ic_launcher"
7
- android:label="@string/app_name"
8
- android:roundIcon="@mipmap/ic_launcher_round"
6
+ android:icon="@drawable/ic_launcher"
7
+ android:label="FaceSDK"
9
8
  android:supportsRtl="true"
10
9
  android:theme="@style/AppTheme">
11
10
 
12
11
  <activity
13
12
  android:screenOrientation="portrait"
14
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
13
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
15
14
  android:name=".MainActivity"
16
- android:label="@string/title_activity_main"
17
15
  android:theme="@style/AppTheme.NoActionBarLaunch"
18
16
  android:launchMode="singleTask"
19
17
  android:exported="true">
@@ -24,20 +22,9 @@
24
22
  </intent-filter>
25
23
 
26
24
  </activity>
27
-
28
- <provider
29
- android:name="androidx.core.content.FileProvider"
30
- android:authorities="${applicationId}.fileprovider"
31
- android:exported="false"
32
- android:grantUriPermissions="true">
33
- <meta-data
34
- android:name="android.support.FILE_PROVIDER_PATHS"
35
- android:resource="@xml/file_paths"></meta-data>
36
- </provider>
37
25
  </application>
38
26
 
39
27
  <!-- Permissions -->
40
28
 
41
29
  <uses-permission android:name="android.permission.INTERNET" />
42
- <uses-permission android:name="android.permission.NFC" />
43
30
  </manifest>
@@ -1,4 +1,4 @@
1
- package com.regula.faceapi;
1
+ package com.regula.documentreader.api.androidtest;
2
2
 
3
3
  import com.getcapacitor.BridgeActivity;
4
4
 
@@ -2,6 +2,6 @@
2
2
  <resources>
3
3
  <string name="app_name">FaceSDK</string>
4
4
  <string name="title_activity_main">FaceSDK</string>
5
- <string name="package_name">com.regula.faceapi</string>
6
- <string name="custom_url_scheme">com.regula.faceapi</string>
5
+ <string name="package_name">com.regula.documentreader.api.androidtest</string>
6
+ <string name="custom_url_scheme">com.regula.documentreader.api.androidtest</string>
7
7
  </resources>
@@ -8,7 +8,7 @@ buildscript {
8
8
  }
9
9
  dependencies {
10
10
  classpath 'com.android.tools.build:gradle:8.8.0'
11
- classpath 'com.google.gms:google-services:4.3.15'
11
+ classpath 'com.google.gms:google-services:4.4.2'
12
12
  classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25"
13
13
 
14
14
  // NOTE: Do not place your application dependencies here; they belong
@@ -1,6 +1,7 @@
1
1
  distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
- distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
4
4
  networkTimeout=10000
5
+ validateDistributionUrl=true
5
6
  zipStoreBase=GRADLE_USER_HOME
6
7
  zipStorePath=wrapper/dists
@@ -15,6 +15,8 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
+ # SPDX-License-Identifier: Apache-2.0
19
+ #
18
20
 
19
21
  ##############################################################################
20
22
  #
@@ -55,7 +57,7 @@
55
57
  # Darwin, MinGW, and NonStop.
56
58
  #
57
59
  # (3) This script is generated from the Groovy template
58
- # https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
60
+ # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59
61
  # within the Gradle project.
60
62
  #
61
63
  # You can find Gradle at https://github.com/gradle/gradle/.
@@ -83,10 +85,9 @@ done
83
85
  # This is normally unused
84
86
  # shellcheck disable=SC2034
85
87
  APP_BASE_NAME=${0##*/}
86
- APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
87
-
88
- # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89
- DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
88
+ # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
89
+ APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
90
+ ' "$PWD" ) || exit
90
91
 
91
92
  # Use the maximum available, or set MAX_FD != -1 to use that value.
92
93
  MAX_FD=maximum
@@ -133,10 +134,13 @@ location of your Java installation."
133
134
  fi
134
135
  else
135
136
  JAVACMD=java
136
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137
+ if ! command -v java >/dev/null 2>&1
138
+ then
139
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137
140
 
138
141
  Please set the JAVA_HOME variable in your environment to match the
139
142
  location of your Java installation."
143
+ fi
140
144
  fi
141
145
 
142
146
  # Increase the maximum file descriptors if we can.
@@ -144,7 +148,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144
148
  case $MAX_FD in #(
145
149
  max*)
146
150
  # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
147
- # shellcheck disable=SC3045
151
+ # shellcheck disable=SC2039,SC3045
148
152
  MAX_FD=$( ulimit -H -n ) ||
149
153
  warn "Could not query maximum file descriptor limit"
150
154
  esac
@@ -152,7 +156,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
152
156
  '' | soft) :;; #(
153
157
  *)
154
158
  # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
155
- # shellcheck disable=SC3045
159
+ # shellcheck disable=SC2039,SC3045
156
160
  ulimit -n "$MAX_FD" ||
157
161
  warn "Could not set maximum file descriptor limit to $MAX_FD"
158
162
  esac
@@ -197,11 +201,15 @@ if "$cygwin" || "$msys" ; then
197
201
  done
198
202
  fi
199
203
 
200
- # Collect all arguments for the java command;
201
- # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
202
- # shell script including quotes and variable substitutions, so put them in
203
- # double quotes to make sure that they get re-expanded; and
204
- # * put everything else in single quotes, so that it's not re-expanded.
204
+
205
+ # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
206
+ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
207
+
208
+ # Collect all arguments for the java command:
209
+ # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
210
+ # and any embedded shellness will be escaped.
211
+ # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
212
+ # treated as '${Hostname}' itself on the command line.
205
213
 
206
214
  set -- \
207
215
  "-Dorg.gradle.appname=$APP_BASE_NAME" \
@@ -13,6 +13,8 @@
13
13
  @rem See the License for the specific language governing permissions and
14
14
  @rem limitations under the License.
15
15
  @rem
16
+ @rem SPDX-License-Identifier: Apache-2.0
17
+ @rem
16
18
 
17
19
  @if "%DEBUG%"=="" @echo off
18
20
  @rem ##########################################################################
@@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
43
45
  %JAVA_EXE% -version >NUL 2>&1
44
46
  if %ERRORLEVEL% equ 0 goto execute
45
47
 
46
- echo.
47
- echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
48
- echo.
49
- echo Please set the JAVA_HOME variable in your environment to match the
50
- echo location of your Java installation.
48
+ echo. 1>&2
49
+ echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
50
+ echo. 1>&2
51
+ echo Please set the JAVA_HOME variable in your environment to match the 1>&2
52
+ echo location of your Java installation. 1>&2
51
53
 
52
54
  goto fail
53
55
 
@@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
57
59
 
58
60
  if exist "%JAVA_EXE%" goto execute
59
61
 
60
- echo.
61
- echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
62
- echo.
63
- echo Please set the JAVA_HOME variable in your environment to match the
64
- echo location of your Java installation.
62
+ echo. 1>&2
63
+ echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
64
+ echo. 1>&2
65
+ echo Please set the JAVA_HOME variable in your environment to match the 1>&2
66
+ echo location of your Java installation. 1>&2
65
67
 
66
68
  goto fail
67
69
 
@@ -1,16 +1,16 @@
1
1
  ext {
2
2
  minSdkVersion = 24
3
- compileSdkVersion = 34
4
- targetSdkVersion = 34
5
- androidxActivityVersion = '1.8.2'
6
- androidxAppCompatVersion = '1.6.1'
3
+ compileSdkVersion = 35
4
+ targetSdkVersion = 35
5
+ androidxActivityVersion = '1.9.2'
6
+ androidxAppCompatVersion = '1.7.0'
7
7
  androidxCoordinatorLayoutVersion = '1.2.0'
8
- androidxCoreVersion = '1.12.0'
9
- androidxFragmentVersion = '1.5.6'
10
- coreSplashScreenVersion = '1.0.0'
11
- androidxWebkitVersion = '1.6.1'
8
+ androidxCoreVersion = '1.15.0'
9
+ androidxFragmentVersion = '1.8.4'
10
+ coreSplashScreenVersion = '1.0.1'
11
+ androidxWebkitVersion = '1.12.1'
12
12
  junitVersion = '4.13.2'
13
- androidxJunitVersion = '1.1.5'
14
- androidxEspressoCoreVersion = '3.5.1'
15
- cordovaAndroidVersion = '12.0.1'
13
+ androidxJunitVersion = '1.2.1'
14
+ androidxEspressoCoreVersion = '3.6.1'
15
+ cordovaAndroidVersion = '13.0.0'
16
16
  }