@velocitycareerlabs/vcl-react-native 1.0.1

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 (308) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +126 -0
  3. package/android/.gradle/7.4.2/checksums/checksums.lock +0 -0
  4. package/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  5. package/android/.gradle/7.4.2/dependencies-accessors/gc.properties +0 -0
  6. package/android/.gradle/7.4.2/executionHistory/executionHistory.lock +0 -0
  7. package/android/.gradle/7.4.2/fileChanges/last-build.bin +0 -0
  8. package/android/.gradle/7.4.2/fileHashes/fileHashes.lock +0 -0
  9. package/android/.gradle/7.4.2/gc.properties +0 -0
  10. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  11. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  12. package/android/.gradle/vcs-1/gc.properties +0 -0
  13. package/android/build.gradle +134 -0
  14. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  15. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  16. package/android/gradle.properties +4 -0
  17. package/android/src/main/AndroidManifest.xml +3 -0
  18. package/android/src/main/java/io/velocitycareerlabs/reactnative/VclReactNativeModule.kt +320 -0
  19. package/android/src/main/java/io/velocitycareerlabs/reactnative/VclReactNativePackage.kt +19 -0
  20. package/android/src/main/java/io/velocitycareerlabs/reactnative/extensions/ArrayExtensions.kt +88 -0
  21. package/android/src/main/java/io/velocitycareerlabs/reactnative/extensions/JSONExtensions.kt +66 -0
  22. package/android/src/main/java/io/velocitycareerlabs/reactnative/extensions/MapExtensions.kt +89 -0
  23. package/android/src/main/java/io/velocitycareerlabs/reactnative/extensions/RNCollectionExtensions.kt +62 -0
  24. package/android/src/main/java/io/velocitycareerlabs/reactnative/utlis/Converter.kt +514 -0
  25. package/ios/Extensions/StringExtensions.swift +21 -0
  26. package/ios/Utils/Converter.swift +507 -0
  27. package/ios/VclReactNative-Bridging-Header.h +2 -0
  28. package/ios/VclReactNative.m +70 -0
  29. package/ios/VclReactNative.swift +249 -0
  30. package/ios/VclReactNative.xcodeproj/project.pbxproj +303 -0
  31. package/lib/commonjs/api/Dictionary.js +2 -0
  32. package/lib/commonjs/api/Dictionary.js.map +1 -0
  33. package/lib/commonjs/api/VCLApi.js +6 -0
  34. package/lib/commonjs/api/VCLApi.js.map +1 -0
  35. package/lib/commonjs/api/VCLEnvironment.js +15 -0
  36. package/lib/commonjs/api/VCLEnvironment.js.map +1 -0
  37. package/lib/commonjs/api/entities/VCLCountries.js +263 -0
  38. package/lib/commonjs/api/entities/VCLCountries.js.map +1 -0
  39. package/lib/commonjs/api/entities/VCLCountry.js +6 -0
  40. package/lib/commonjs/api/entities/VCLCountry.js.map +1 -0
  41. package/lib/commonjs/api/entities/VCLCredentialManifest.js +6 -0
  42. package/lib/commonjs/api/entities/VCLCredentialManifest.js.map +1 -0
  43. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptor.js +6 -0
  44. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptor.js.map +1 -0
  45. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptorByDeepLink.js +6 -0
  46. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptorByDeepLink.js.map +1 -0
  47. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptorByService.js +6 -0
  48. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptorByService.js.map +1 -0
  49. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptorRefresh.js +6 -0
  50. package/lib/commonjs/api/entities/VCLCredentialManifestDescriptorRefresh.js.map +1 -0
  51. package/lib/commonjs/api/entities/VCLCredentialType.js +6 -0
  52. package/lib/commonjs/api/entities/VCLCredentialType.js.map +1 -0
  53. package/lib/commonjs/api/entities/VCLCredentialTypeSchema.js +6 -0
  54. package/lib/commonjs/api/entities/VCLCredentialTypeSchema.js.map +1 -0
  55. package/lib/commonjs/api/entities/VCLCredentialTypeSchemas.js +6 -0
  56. package/lib/commonjs/api/entities/VCLCredentialTypeSchemas.js.map +1 -0
  57. package/lib/commonjs/api/entities/VCLCredentialTypes.js +6 -0
  58. package/lib/commonjs/api/entities/VCLCredentialTypes.js.map +1 -0
  59. package/lib/commonjs/api/entities/VCLCredentialTypesUIFormSchema.js +6 -0
  60. package/lib/commonjs/api/entities/VCLCredentialTypesUIFormSchema.js.map +1 -0
  61. package/lib/commonjs/api/entities/VCLCredentialTypesUIFormSchemaDescriptor.js +2 -0
  62. package/lib/commonjs/api/entities/VCLCredentialTypesUIFormSchemaDescriptor.js.map +1 -0
  63. package/lib/commonjs/api/entities/VCLDeepLink.js +2 -0
  64. package/lib/commonjs/api/entities/VCLDeepLink.js.map +1 -0
  65. package/lib/commonjs/api/entities/VCLError.js +2 -0
  66. package/lib/commonjs/api/entities/VCLError.js.map +1 -0
  67. package/lib/commonjs/api/entities/VCLExchange.js +2 -0
  68. package/lib/commonjs/api/entities/VCLExchange.js.map +1 -0
  69. package/lib/commonjs/api/entities/VCLExchangeDescriptor.js +6 -0
  70. package/lib/commonjs/api/entities/VCLExchangeDescriptor.js.map +1 -0
  71. package/lib/commonjs/api/entities/VCLFilter.js +6 -0
  72. package/lib/commonjs/api/entities/VCLFilter.js.map +1 -0
  73. package/lib/commonjs/api/entities/VCLFinalizeOffersDescriptor.js +6 -0
  74. package/lib/commonjs/api/entities/VCLFinalizeOffersDescriptor.js.map +1 -0
  75. package/lib/commonjs/api/entities/VCLGenerateOffersDescriptor.js +6 -0
  76. package/lib/commonjs/api/entities/VCLGenerateOffersDescriptor.js.map +1 -0
  77. package/lib/commonjs/api/entities/VCLJWT.js +2 -0
  78. package/lib/commonjs/api/entities/VCLJWT.js.map +1 -0
  79. package/lib/commonjs/api/entities/VCLJwtVerifiableCredentials.js +6 -0
  80. package/lib/commonjs/api/entities/VCLJwtVerifiableCredentials.js.map +1 -0
  81. package/lib/commonjs/api/entities/VCLOffers.js +6 -0
  82. package/lib/commonjs/api/entities/VCLOffers.js.map +1 -0
  83. package/lib/commonjs/api/entities/VCLOrganization.js +6 -0
  84. package/lib/commonjs/api/entities/VCLOrganization.js.map +1 -0
  85. package/lib/commonjs/api/entities/VCLOrganizations.js +6 -0
  86. package/lib/commonjs/api/entities/VCLOrganizations.js.map +1 -0
  87. package/lib/commonjs/api/entities/VCLOrganizationsSearchDescriptor.js +6 -0
  88. package/lib/commonjs/api/entities/VCLOrganizationsSearchDescriptor.js.map +1 -0
  89. package/lib/commonjs/api/entities/VCLPage.js +2 -0
  90. package/lib/commonjs/api/entities/VCLPage.js.map +1 -0
  91. package/lib/commonjs/api/entities/VCLPresentationRequest.js +6 -0
  92. package/lib/commonjs/api/entities/VCLPresentationRequest.js.map +1 -0
  93. package/lib/commonjs/api/entities/VCLPresentationSubmission.js +6 -0
  94. package/lib/commonjs/api/entities/VCLPresentationSubmission.js.map +1 -0
  95. package/lib/commonjs/api/entities/VCLPresentationSubmissionResult.js +6 -0
  96. package/lib/commonjs/api/entities/VCLPresentationSubmissionResult.js.map +1 -0
  97. package/lib/commonjs/api/entities/VCLPublicKey.js +2 -0
  98. package/lib/commonjs/api/entities/VCLPublicKey.js.map +1 -0
  99. package/lib/commonjs/api/entities/VCLPushDelegate.js +2 -0
  100. package/lib/commonjs/api/entities/VCLPushDelegate.js.map +1 -0
  101. package/lib/commonjs/api/entities/VCLRegion.js +6 -0
  102. package/lib/commonjs/api/entities/VCLRegion.js.map +1 -0
  103. package/lib/commonjs/api/entities/VCLRegions.js +6 -0
  104. package/lib/commonjs/api/entities/VCLRegions.js.map +1 -0
  105. package/lib/commonjs/api/entities/VCLService.js +6 -0
  106. package/lib/commonjs/api/entities/VCLService.js.map +1 -0
  107. package/lib/commonjs/api/entities/VCLServiceCredentialAgentIssuer.js +6 -0
  108. package/lib/commonjs/api/entities/VCLServiceCredentialAgentIssuer.js.map +1 -0
  109. package/lib/commonjs/api/entities/VCLServiceType.js +20 -0
  110. package/lib/commonjs/api/entities/VCLServiceType.js.map +1 -0
  111. package/lib/commonjs/api/entities/VCLSubmissionResult.js +6 -0
  112. package/lib/commonjs/api/entities/VCLSubmissionResult.js.map +1 -0
  113. package/lib/commonjs/api/entities/VCLToken.js +2 -0
  114. package/lib/commonjs/api/entities/VCLToken.js.map +1 -0
  115. package/lib/commonjs/api/entities/VCLVerifiableCredential.js +2 -0
  116. package/lib/commonjs/api/entities/VCLVerifiableCredential.js.map +1 -0
  117. package/lib/commonjs/api/entities/VCLVerifiedProfile.js +6 -0
  118. package/lib/commonjs/api/entities/VCLVerifiedProfile.js.map +1 -0
  119. package/lib/commonjs/api/entities/VCLVerifiedProfileDescriptor.js +2 -0
  120. package/lib/commonjs/api/entities/VCLVerifiedProfileDescriptor.js.map +1 -0
  121. package/lib/commonjs/index.js +39 -0
  122. package/lib/commonjs/index.js.map +1 -0
  123. package/lib/module/api/Dictionary.js +2 -0
  124. package/lib/module/api/Dictionary.js.map +1 -0
  125. package/lib/module/api/VCLApi.js +2 -0
  126. package/lib/module/api/VCLApi.js.map +1 -0
  127. package/lib/module/api/VCLEnvironment.js +8 -0
  128. package/lib/module/api/VCLEnvironment.js.map +1 -0
  129. package/lib/module/api/entities/VCLCountries.js +256 -0
  130. package/lib/module/api/entities/VCLCountries.js.map +1 -0
  131. package/lib/module/api/entities/VCLCountry.js +2 -0
  132. package/lib/module/api/entities/VCLCountry.js.map +1 -0
  133. package/lib/module/api/entities/VCLCredentialManifest.js +2 -0
  134. package/lib/module/api/entities/VCLCredentialManifest.js.map +1 -0
  135. package/lib/module/api/entities/VCLCredentialManifestDescriptor.js +2 -0
  136. package/lib/module/api/entities/VCLCredentialManifestDescriptor.js.map +1 -0
  137. package/lib/module/api/entities/VCLCredentialManifestDescriptorByDeepLink.js +2 -0
  138. package/lib/module/api/entities/VCLCredentialManifestDescriptorByDeepLink.js.map +1 -0
  139. package/lib/module/api/entities/VCLCredentialManifestDescriptorByService.js +2 -0
  140. package/lib/module/api/entities/VCLCredentialManifestDescriptorByService.js.map +1 -0
  141. package/lib/module/api/entities/VCLCredentialManifestDescriptorRefresh.js +2 -0
  142. package/lib/module/api/entities/VCLCredentialManifestDescriptorRefresh.js.map +1 -0
  143. package/lib/module/api/entities/VCLCredentialType.js +2 -0
  144. package/lib/module/api/entities/VCLCredentialType.js.map +1 -0
  145. package/lib/module/api/entities/VCLCredentialTypeSchema.js +2 -0
  146. package/lib/module/api/entities/VCLCredentialTypeSchema.js.map +1 -0
  147. package/lib/module/api/entities/VCLCredentialTypeSchemas.js +2 -0
  148. package/lib/module/api/entities/VCLCredentialTypeSchemas.js.map +1 -0
  149. package/lib/module/api/entities/VCLCredentialTypes.js +2 -0
  150. package/lib/module/api/entities/VCLCredentialTypes.js.map +1 -0
  151. package/lib/module/api/entities/VCLCredentialTypesUIFormSchema.js +2 -0
  152. package/lib/module/api/entities/VCLCredentialTypesUIFormSchema.js.map +1 -0
  153. package/lib/module/api/entities/VCLCredentialTypesUIFormSchemaDescriptor.js +2 -0
  154. package/lib/module/api/entities/VCLCredentialTypesUIFormSchemaDescriptor.js.map +1 -0
  155. package/lib/module/api/entities/VCLDeepLink.js +2 -0
  156. package/lib/module/api/entities/VCLDeepLink.js.map +1 -0
  157. package/lib/module/api/entities/VCLError.js +2 -0
  158. package/lib/module/api/entities/VCLError.js.map +1 -0
  159. package/lib/module/api/entities/VCLExchange.js +2 -0
  160. package/lib/module/api/entities/VCLExchange.js.map +1 -0
  161. package/lib/module/api/entities/VCLExchangeDescriptor.js +2 -0
  162. package/lib/module/api/entities/VCLExchangeDescriptor.js.map +1 -0
  163. package/lib/module/api/entities/VCLFilter.js +2 -0
  164. package/lib/module/api/entities/VCLFilter.js.map +1 -0
  165. package/lib/module/api/entities/VCLFinalizeOffersDescriptor.js +2 -0
  166. package/lib/module/api/entities/VCLFinalizeOffersDescriptor.js.map +1 -0
  167. package/lib/module/api/entities/VCLGenerateOffersDescriptor.js +2 -0
  168. package/lib/module/api/entities/VCLGenerateOffersDescriptor.js.map +1 -0
  169. package/lib/module/api/entities/VCLJWT.js +2 -0
  170. package/lib/module/api/entities/VCLJWT.js.map +1 -0
  171. package/lib/module/api/entities/VCLJwtVerifiableCredentials.js +2 -0
  172. package/lib/module/api/entities/VCLJwtVerifiableCredentials.js.map +1 -0
  173. package/lib/module/api/entities/VCLOffers.js +2 -0
  174. package/lib/module/api/entities/VCLOffers.js.map +1 -0
  175. package/lib/module/api/entities/VCLOrganization.js +2 -0
  176. package/lib/module/api/entities/VCLOrganization.js.map +1 -0
  177. package/lib/module/api/entities/VCLOrganizations.js +2 -0
  178. package/lib/module/api/entities/VCLOrganizations.js.map +1 -0
  179. package/lib/module/api/entities/VCLOrganizationsSearchDescriptor.js +2 -0
  180. package/lib/module/api/entities/VCLOrganizationsSearchDescriptor.js.map +1 -0
  181. package/lib/module/api/entities/VCLPage.js +2 -0
  182. package/lib/module/api/entities/VCLPage.js.map +1 -0
  183. package/lib/module/api/entities/VCLPresentationRequest.js +2 -0
  184. package/lib/module/api/entities/VCLPresentationRequest.js.map +1 -0
  185. package/lib/module/api/entities/VCLPresentationSubmission.js +2 -0
  186. package/lib/module/api/entities/VCLPresentationSubmission.js.map +1 -0
  187. package/lib/module/api/entities/VCLPresentationSubmissionResult.js +2 -0
  188. package/lib/module/api/entities/VCLPresentationSubmissionResult.js.map +1 -0
  189. package/lib/module/api/entities/VCLPublicKey.js +2 -0
  190. package/lib/module/api/entities/VCLPublicKey.js.map +1 -0
  191. package/lib/module/api/entities/VCLPushDelegate.js +2 -0
  192. package/lib/module/api/entities/VCLPushDelegate.js.map +1 -0
  193. package/lib/module/api/entities/VCLRegion.js +2 -0
  194. package/lib/module/api/entities/VCLRegion.js.map +1 -0
  195. package/lib/module/api/entities/VCLRegions.js +2 -0
  196. package/lib/module/api/entities/VCLRegions.js.map +1 -0
  197. package/lib/module/api/entities/VCLService.js +2 -0
  198. package/lib/module/api/entities/VCLService.js.map +1 -0
  199. package/lib/module/api/entities/VCLServiceCredentialAgentIssuer.js +2 -0
  200. package/lib/module/api/entities/VCLServiceCredentialAgentIssuer.js.map +1 -0
  201. package/lib/module/api/entities/VCLServiceType.js +13 -0
  202. package/lib/module/api/entities/VCLServiceType.js.map +1 -0
  203. package/lib/module/api/entities/VCLSubmissionResult.js +2 -0
  204. package/lib/module/api/entities/VCLSubmissionResult.js.map +1 -0
  205. package/lib/module/api/entities/VCLToken.js +2 -0
  206. package/lib/module/api/entities/VCLToken.js.map +1 -0
  207. package/lib/module/api/entities/VCLVerifiableCredential.js +2 -0
  208. package/lib/module/api/entities/VCLVerifiableCredential.js.map +1 -0
  209. package/lib/module/api/entities/VCLVerifiedProfile.js +2 -0
  210. package/lib/module/api/entities/VCLVerifiedProfile.js.map +1 -0
  211. package/lib/module/api/entities/VCLVerifiedProfileDescriptor.js +2 -0
  212. package/lib/module/api/entities/VCLVerifiedProfileDescriptor.js.map +1 -0
  213. package/lib/module/index.js +10 -0
  214. package/lib/module/index.js.map +1 -0
  215. package/lib/typescript/api/Dictionary.d.ts +3 -0
  216. package/lib/typescript/api/VCLApi.d.ts +44 -0
  217. package/lib/typescript/api/VCLEnvironment.d.ts +8 -0
  218. package/lib/typescript/api/entities/VCLCountries.d.ts +257 -0
  219. package/lib/typescript/api/entities/VCLCountry.d.ts +8 -0
  220. package/lib/typescript/api/entities/VCLCredentialManifest.d.ts +8 -0
  221. package/lib/typescript/api/entities/VCLCredentialManifestDescriptor.d.ts +5 -0
  222. package/lib/typescript/api/entities/VCLCredentialManifestDescriptorByDeepLink.d.ts +5 -0
  223. package/lib/typescript/api/entities/VCLCredentialManifestDescriptorByService.d.ts +5 -0
  224. package/lib/typescript/api/entities/VCLCredentialManifestDescriptorRefresh.d.ts +6 -0
  225. package/lib/typescript/api/entities/VCLCredentialType.d.ts +10 -0
  226. package/lib/typescript/api/entities/VCLCredentialTypeSchema.d.ts +4 -0
  227. package/lib/typescript/api/entities/VCLCredentialTypeSchemas.d.ts +5 -0
  228. package/lib/typescript/api/entities/VCLCredentialTypes.d.ts +5 -0
  229. package/lib/typescript/api/entities/VCLCredentialTypesUIFormSchema.d.ts +4 -0
  230. package/lib/typescript/api/entities/VCLCredentialTypesUIFormSchemaDescriptor.d.ts +4 -0
  231. package/lib/typescript/api/entities/VCLDeepLink.d.ts +3 -0
  232. package/lib/typescript/api/entities/VCLError.d.ts +4 -0
  233. package/lib/typescript/api/entities/VCLExchange.d.ts +6 -0
  234. package/lib/typescript/api/entities/VCLExchangeDescriptor.d.ts +6 -0
  235. package/lib/typescript/api/entities/VCLFilter.d.ts +6 -0
  236. package/lib/typescript/api/entities/VCLFinalizeOffersDescriptor.d.ts +6 -0
  237. package/lib/typescript/api/entities/VCLGenerateOffersDescriptor.d.ts +8 -0
  238. package/lib/typescript/api/entities/VCLJWT.d.ts +3 -0
  239. package/lib/typescript/api/entities/VCLJwtVerifiableCredentials.d.ts +4 -0
  240. package/lib/typescript/api/entities/VCLOffers.d.ts +7 -0
  241. package/lib/typescript/api/entities/VCLOrganization.d.ts +6 -0
  242. package/lib/typescript/api/entities/VCLOrganizations.d.ts +4 -0
  243. package/lib/typescript/api/entities/VCLOrganizationsSearchDescriptor.d.ts +8 -0
  244. package/lib/typescript/api/entities/VCLPage.d.ts +4 -0
  245. package/lib/typescript/api/entities/VCLPresentationRequest.d.ts +10 -0
  246. package/lib/typescript/api/entities/VCLPresentationSubmission.d.ts +6 -0
  247. package/lib/typescript/api/entities/VCLPresentationSubmissionResult.d.ts +6 -0
  248. package/lib/typescript/api/entities/VCLPublicKey.d.ts +3 -0
  249. package/lib/typescript/api/entities/VCLPushDelegate.d.ts +4 -0
  250. package/lib/typescript/api/entities/VCLRegion.d.ts +6 -0
  251. package/lib/typescript/api/entities/VCLRegions.d.ts +5 -0
  252. package/lib/typescript/api/entities/VCLService.d.ts +4 -0
  253. package/lib/typescript/api/entities/VCLServiceCredentialAgentIssuer.d.ts +3 -0
  254. package/lib/typescript/api/entities/VCLServiceType.d.ts +10 -0
  255. package/lib/typescript/api/entities/VCLSubmissionResult.d.ts +6 -0
  256. package/lib/typescript/api/entities/VCLToken.d.ts +3 -0
  257. package/lib/typescript/api/entities/VCLVerifiableCredential.d.ts +4 -0
  258. package/lib/typescript/api/entities/VCLVerifiedProfile.d.ts +8 -0
  259. package/lib/typescript/api/entities/VCLVerifiedProfileDescriptor.d.ts +3 -0
  260. package/lib/typescript/index.d.ts +49 -0
  261. package/package.json +154 -0
  262. package/src/api/Dictionary.tsx +3 -0
  263. package/src/api/VCLApi.tsx +80 -0
  264. package/src/api/VCLEnvironment.tsx +9 -0
  265. package/src/api/entities/VCLCountries.tsx +259 -0
  266. package/src/api/entities/VCLCountry.tsx +9 -0
  267. package/src/api/entities/VCLCredentialManifest.tsx +9 -0
  268. package/src/api/entities/VCLCredentialManifestDescriptor.tsx +6 -0
  269. package/src/api/entities/VCLCredentialManifestDescriptorByDeepLink.tsx +7 -0
  270. package/src/api/entities/VCLCredentialManifestDescriptorByService.tsx +7 -0
  271. package/src/api/entities/VCLCredentialManifestDescriptorRefresh.tsx +8 -0
  272. package/src/api/entities/VCLCredentialType.tsx +11 -0
  273. package/src/api/entities/VCLCredentialTypeSchema.tsx +5 -0
  274. package/src/api/entities/VCLCredentialTypeSchemas.tsx +6 -0
  275. package/src/api/entities/VCLCredentialTypes.tsx +6 -0
  276. package/src/api/entities/VCLCredentialTypesUIFormSchema.tsx +5 -0
  277. package/src/api/entities/VCLCredentialTypesUIFormSchemaDescriptor.tsx +4 -0
  278. package/src/api/entities/VCLDeepLink.tsx +3 -0
  279. package/src/api/entities/VCLError.tsx +4 -0
  280. package/src/api/entities/VCLExchange.tsx +6 -0
  281. package/src/api/entities/VCLExchangeDescriptor.tsx +7 -0
  282. package/src/api/entities/VCLFilter.tsx +7 -0
  283. package/src/api/entities/VCLFinalizeOffersDescriptor.tsx +7 -0
  284. package/src/api/entities/VCLGenerateOffersDescriptor.tsx +9 -0
  285. package/src/api/entities/VCLJWT.tsx +3 -0
  286. package/src/api/entities/VCLJwtVerifiableCredentials.tsx +5 -0
  287. package/src/api/entities/VCLOffers.tsx +8 -0
  288. package/src/api/entities/VCLOrganization.tsx +7 -0
  289. package/src/api/entities/VCLOrganizations.tsx +5 -0
  290. package/src/api/entities/VCLOrganizationsSearchDescriptor.tsx +9 -0
  291. package/src/api/entities/VCLPage.tsx +4 -0
  292. package/src/api/entities/VCLPresentationRequest.tsx +11 -0
  293. package/src/api/entities/VCLPresentationSubmission.tsx +7 -0
  294. package/src/api/entities/VCLPresentationSubmissionResult.tsx +7 -0
  295. package/src/api/entities/VCLPublicKey.tsx +3 -0
  296. package/src/api/entities/VCLPushDelegate.tsx +4 -0
  297. package/src/api/entities/VCLRegion.tsx +7 -0
  298. package/src/api/entities/VCLRegions.tsx +6 -0
  299. package/src/api/entities/VCLService.tsx +5 -0
  300. package/src/api/entities/VCLServiceCredentialAgentIssuer.tsx +3 -0
  301. package/src/api/entities/VCLServiceType.tsx +10 -0
  302. package/src/api/entities/VCLSubmissionResult.tsx +7 -0
  303. package/src/api/entities/VCLToken.tsx +3 -0
  304. package/src/api/entities/VCLVerifiableCredential.tsx +4 -0
  305. package/src/api/entities/VCLVerifiedProfile.tsx +9 -0
  306. package/src/api/entities/VCLVerifiedProfileDescriptor.tsx +3 -0
  307. package/src/index.tsx +98 -0
  308. package/vcl-react-native.podspec +22 -0
@@ -0,0 +1,514 @@
1
+ package io.velocitycareerlabs.reactnative.utlis
2
+
3
+ import com.facebook.react.bridge.Arguments
4
+ import com.facebook.react.bridge.ReadableArray
5
+ import com.facebook.react.bridge.ReadableMap
6
+ import com.facebook.react.bridge.WritableArray
7
+ import io.velocitycareerlabs.api.*
8
+ import io.velocitycareerlabs.api.entities.*
9
+ import io.velocitycareerlabs.reactnative.extensions.*
10
+ import org.json.JSONObject
11
+ import java.lang.Exception
12
+
13
+ /**
14
+ * Created by Michael Avoyan on 04/07/2021.
15
+ */
16
+ object Converter {
17
+
18
+ fun mapToEnvironment(environmentMap: ReadableMap) =
19
+ when(environmentMap.getStringOpt("value")) {
20
+ VCLEnvironment.DEV.value -> VCLEnvironment.DEV
21
+ VCLEnvironment.STAGING.value -> VCLEnvironment.STAGING
22
+ VCLEnvironment.PROD.value -> VCLEnvironment.PROD
23
+ else -> VCLEnvironment.PROD
24
+ }
25
+
26
+ fun regionToMap(
27
+ region: VCLRegion
28
+ ): ReadableMap {
29
+ val regionMap = Arguments.createMap()
30
+ regionMap.putMap("payload", region.payload.toReadableMap())
31
+ regionMap.putString("code", region.code)
32
+ regionMap.putString("name", region.name)
33
+ return regionMap
34
+ }
35
+
36
+ fun regionsToMap(
37
+ regions: VCLRegions
38
+ ): ReadableMap {
39
+ val regionsMap = Arguments.createMap()
40
+ val regionsArr = Arguments.createArray()
41
+ for (i in regions.all.indices) {
42
+ regionsArr.pushMap(regionToMap(regions.all[i]))
43
+ }
44
+ regionsMap.putArray("all", regionsArr)
45
+ return regionsMap
46
+ }
47
+
48
+ fun countryToMap(
49
+ country: VCLCountry
50
+ ): ReadableMap {
51
+ val countryMap = Arguments.createMap()
52
+ countryMap.putMap("payload", country.payload.toReadableMap())
53
+ countryMap.putString("code", country.code)
54
+ countryMap.putString("name", country.name)
55
+ country.regions?.let{ countryMap.putMap("regions", regionsToMap(it)) }
56
+ return countryMap
57
+ }
58
+
59
+ fun countriesToMap(
60
+ countries: VCLCountries
61
+ ): ReadableMap {
62
+ val countriesMap = Arguments.createMap()
63
+ val countriesArr = Arguments.createArray()
64
+ countries.all?.let { all ->
65
+ for (i in all.indices) {
66
+ countriesArr.pushMap(countryToMap(all[i]))
67
+ }
68
+ }
69
+ countriesMap.putArray("all", countriesArr)
70
+ return countriesMap
71
+ }
72
+
73
+ fun credentialTypeSchemasToMap(
74
+ credentialTypeSchemas: VCLCredentialTypeSchemas
75
+ ): ReadableMap {
76
+ val credentialTypeSchemasMap = Arguments.createMap()
77
+ for ((key, credentialTypeSchema) in credentialTypeSchemas.all) {
78
+ val credentialTypeSchemaMap = Arguments.createMap()
79
+ credentialTypeSchemaMap.putMap("payload", credentialTypeSchema.payload.toReadableMap());
80
+ credentialTypeSchemasMap.putMap(key, credentialTypeSchemaMap)
81
+ }
82
+ val retVal = Arguments.createMap()
83
+ retVal.putMap("all", credentialTypeSchemasMap)
84
+ return retVal
85
+ }
86
+
87
+ fun credentialTypesToMap(credentialTypes: VCLCredentialTypes): ReadableMap {
88
+ var credentialTypesArray = Arguments.createArray()
89
+ credentialTypes.all?.let {
90
+ credentialTypesArray = parseCredentialTypesArray(it)
91
+ }
92
+ var recommendedCredentialTypesArray = Arguments.createArray()
93
+ credentialTypes.recommendedTypes?.let {
94
+ recommendedCredentialTypesArray = parseCredentialTypesArray(it)
95
+ }
96
+ val retVal = Arguments.createMap()
97
+ retVal.putArray("all", credentialTypesArray)
98
+ retVal.putArray("recommendedTypes", recommendedCredentialTypesArray)
99
+ return retVal
100
+ }
101
+
102
+ private fun parseCredentialTypesArray(credentialTypesArr: List<VCLCredentialType>): WritableArray {
103
+ val credentialTypesArray = Arguments.createArray()
104
+ credentialTypesArr.forEach {
105
+ val credentialType = Arguments.createMap()
106
+ credentialType.putMap("payload", it.payload.toReadableMap())
107
+ credentialType.putString("id", it.id)
108
+ credentialType.putString("schema", it.schema)
109
+ credentialType.putString("createdAt", it.createdAt)
110
+ credentialType.putString("schemaName", it.schemaName)
111
+ credentialType.putString("credentialType", it.credentialType)
112
+ credentialType.putBoolean("recommended", it.recommended)
113
+ credentialTypesArray.pushMap(credentialType)
114
+ }
115
+ return credentialTypesArray
116
+ }
117
+
118
+ fun mapToDeepLink(deepLinkMap: ReadableMap?) =
119
+ VCLDeepLink(deepLinkMap?.getStringOpt("value") ?: "")
120
+
121
+ fun deepLinkToMap(deepLink: VCLDeepLink): ReadableMap {
122
+ val retVal = Arguments.createMap()
123
+ retVal.putString("value", deepLink.value)
124
+ return retVal
125
+ }
126
+
127
+ fun mapToToken(tokenMap: ReadableMap?) =
128
+ VCLToken(tokenMap?.getStringOpt("value") ?: "")
129
+
130
+ fun tokenToMap(token: VCLToken): ReadableMap {
131
+ val retVal = Arguments.createMap()
132
+ retVal.putString("value", token.value)
133
+ return retVal
134
+ }
135
+
136
+ fun mapToPresentationRequest(
137
+ presentationRequestMap: ReadableMap?
138
+ ) = VCLPresentationRequest(
139
+ mapToJwt(presentationRequestMap?.getMapOpt("jwt")),
140
+ mapToPublicKey(presentationRequestMap?.getMapOpt("publicKey")),
141
+ mapToDeepLink(presentationRequestMap?.getMapOpt("deepLink"))
142
+ )
143
+
144
+ fun presentationRequestToMap(
145
+ presentationRequest: VCLPresentationRequest
146
+ ): ReadableMap {
147
+ val presentationRequestMap = Arguments.createMap()
148
+ val jwtMap = Arguments.createMap()
149
+ jwtMap.putString("encodedJwt", presentationRequest.jwt.signedJwt.serialize())
150
+ presentationRequestMap.putMap("jwt", jwtMap)
151
+ val jwkMap = Arguments.createMap()
152
+ jwkMap.putString("jwkStr", presentationRequest.publicKey.jwkStr)
153
+ presentationRequestMap.putMap("publicKey", jwkMap)
154
+ presentationRequestMap.putString("iss", presentationRequest.iss)
155
+ presentationRequestMap.putString("exchangeId", presentationRequest.exchangeId)
156
+ presentationRequestMap.putString("presentationDefinitionId", presentationRequest.presentationDefinitionId)
157
+ presentationRequestMap.putMap("deepLink", deepLinkToMap(presentationRequest.deepLink))
158
+ return presentationRequestMap
159
+ }
160
+
161
+ fun mapToPresentationSubmission(
162
+ presentationSubmissionMap: ReadableMap?
163
+ ): VCLPresentationSubmission {
164
+ val verifiableCredentialsReadableArr =
165
+ presentationSubmissionMap?.getArrayOpt("verifiableCredentials")
166
+ val verifiableCredentialsList = mutableListOf<VCLVerifiableCredential>()
167
+ verifiableCredentialsReadableArr?.let { verifiableCredentials ->
168
+ for (i in 0 until verifiableCredentials.size()) {
169
+ val verifiableCredential = verifiableCredentials.getMapOpt(i)
170
+ verifiableCredentialsList.add(
171
+ VCLVerifiableCredential(
172
+ inputDescriptor = verifiableCredential?.getStringOpt("inputDescriptor") ?: "",
173
+ jwtVc = verifiableCredential?.getStringOpt("jwtVc") ?: ""
174
+ )
175
+ )
176
+ }
177
+ }
178
+ return VCLPresentationSubmission(
179
+ presentationRequest = mapToPresentationRequest(presentationSubmissionMap?.getMapOpt("presentationRequest")),
180
+ verifiableCredentials = verifiableCredentialsList
181
+ )
182
+ }
183
+
184
+ fun presentationSubmissionResultToMap(
185
+ presentationSubmissionResult: VCLIdentificationSubmissionResult
186
+ ): ReadableMap {
187
+ val presentationSubmissionResultMap = Arguments.createMap()
188
+ presentationSubmissionResultMap.putMap("token", tokenToMap(presentationSubmissionResult.token))
189
+ presentationSubmissionResultMap.putMap(
190
+ "exchange",
191
+ exchangeToMap(presentationSubmissionResult.exchange)
192
+ )
193
+ return presentationSubmissionResultMap
194
+ }
195
+
196
+ fun exchangeToMap(
197
+ exchange: VCLExchange
198
+ ): ReadableMap {
199
+ val exchangeMap = Arguments.createMap()
200
+ exchangeMap.putString("id", exchange.id)
201
+ exchangeMap.putString("type", exchange.type)
202
+ exchangeMap.putBoolean("disclosureComplete", exchange.disclosureComplete)
203
+ exchangeMap.putBoolean("exchangeComplete", exchange.exchangeComplete)
204
+ return exchangeMap
205
+ }
206
+
207
+ fun mapToSubmissionResult(
208
+ submissionResultMap: ReadableMap?
209
+ ) = VCLSubmissionResult(
210
+ token = mapToToken(submissionResultMap?.getMapOpt("token")),
211
+ exchange = mapToExchange(submissionResultMap?.getMapOpt("exchange"))
212
+ )
213
+
214
+ fun mapToExchange(
215
+ exchangeMap: ReadableMap?
216
+ ) = VCLExchange(
217
+ id = exchangeMap?.getStringOpt("id") ?: "",
218
+ type = exchangeMap?.getStringOpt("type") ?: "",
219
+ disclosureComplete = exchangeMap?.getBooleanOpt("disclosureComplete") ?: false,
220
+ exchangeComplete = exchangeMap?.getBooleanOpt("exchangeComplete") ?: false
221
+ )
222
+
223
+ fun mapToExchangeDescriptor(exchangeDescriptorMap: ReadableMap) =
224
+ VCLExchangeDescriptor(
225
+ mapToPresentationSubmission(exchangeDescriptorMap.getMapOpt("presentationSubmission")),
226
+ mapToSubmissionResult(exchangeDescriptorMap.getMapOpt("submissionResult"))
227
+ )
228
+
229
+ fun stringToServiceType(
230
+ serviceType: String?
231
+ ): VCLServiceType? =
232
+ when (serviceType) {
233
+ "Issuer" -> VCLServiceType.Issuer
234
+ "Inspector" -> VCLServiceType.Inspector
235
+ "CredentialAgentOperator" -> VCLServiceType.CredentialAgentOperator
236
+ "NodeOperator" -> VCLServiceType.NodeOperator
237
+ "TrustRoot" -> VCLServiceType.TrustRoot
238
+ "NotaryIssuer" -> VCLServiceType.NotaryIssuer
239
+ "IdentityIssuer" -> VCLServiceType.IdentityIssuer
240
+ "HolderAppProvider" -> VCLServiceType.HolderAppProvider
241
+ else -> null
242
+ }
243
+
244
+ fun mapToOrganizationsSearchDescriptor(
245
+ organizationsDescriptorMap: ReadableMap
246
+ ) = VCLOrganizationsSearchDescriptor(
247
+ filter = mapToFilter(organizationsDescriptorMap.getMapOpt("filter")),
248
+ page = mapToPage(organizationsDescriptorMap.getMapOpt("page")),
249
+ sort = readableArrayToList(organizationsDescriptorMap.getArrayOpt("sort")),
250
+ query = organizationsDescriptorMap.getStringOpt("query") ?: ""
251
+ )
252
+
253
+ fun mapToFilter(
254
+ filterMap: ReadableMap?
255
+ ): VCLFilter {
256
+ val did = filterMap?.getStringOpt("did")
257
+ val serviceTypesArr = filterMap?.getArrayOpt("serviceTypes")
258
+ var serviceTypesList: MutableList<VCLServiceType>? = null
259
+ serviceTypesArr?.let {
260
+ serviceTypesList = mutableListOf()
261
+ for (i in 0 until it.size()) {
262
+ val serviceType = stringToServiceType(it.getStringOpt(i))
263
+ serviceType?.let { st -> serviceTypesList?.add(st) }
264
+ }
265
+ }
266
+ val credentialTypesArr = filterMap?.getArrayOpt("credentialTypes")
267
+ var credentialTypesList: MutableList<String>? = null
268
+ credentialTypesArr?.let {
269
+ credentialTypesList = mutableListOf()
270
+ for (i in 0 until it.size()) {
271
+ val credentialType = it.getStringOpt(i)
272
+ credentialType?.let { ct -> credentialTypesList?.add(ct) }
273
+ }
274
+ }
275
+ return VCLFilter(
276
+ did = did,
277
+ serviceTypes = serviceTypesList,
278
+ credentialTypes = credentialTypesList
279
+ )
280
+ }
281
+
282
+ fun mapToPage(pageMap: ReadableMap?) = VCLPage(
283
+ size = pageMap?.getStringOpt("size"),
284
+ skip = pageMap?.getStringOpt("skip")
285
+ )
286
+
287
+ fun readableArrayToList(
288
+ sortReadableArr: ReadableArray?
289
+ ): List<List<String>>? {
290
+ var sortList: MutableList<List<String>>? = null
291
+ sortReadableArr?.let {
292
+ sortList = mutableListOf()
293
+ for (i in 0 until it.size()) {
294
+ val arr = it.getArrayOpt(i)
295
+ val subList = mutableListOf<String>()
296
+ for (j in 0 until (arr?.size() ?: 0)) {
297
+ arr?.getStringOpt(j)?.let { str -> subList.add(str) }
298
+ }
299
+ if (subList.isNotEmpty()) sortList?.add(subList)
300
+ }
301
+ }
302
+ return sortList
303
+ }
304
+
305
+ fun organizationsToMap(
306
+ organizations: VCLOrganizations
307
+ ): ReadableMap {
308
+ val organizationsMap = Arguments.createMap()
309
+ val organizationsWritableArray = Arguments.createArray()
310
+ organizations.all.forEach { organization ->
311
+ val organizationMap = Arguments.createMap()
312
+ organizationMap.putMap("payload", organization.payload.toReadableMap())
313
+ val serviceCredentialAgentIssuersArr = Arguments.createArray()
314
+ organization.serviceCredentialAgentIssuers.forEach { service ->
315
+ val serviceCredentialAgentIssuerMap = Arguments.createMap()
316
+ service.credentialTypes?.let {
317
+ serviceCredentialAgentIssuerMap.putArray("credentialTypes", it.toReadableArray())
318
+ }
319
+ serviceCredentialAgentIssuerMap.putString("id", service.id)
320
+ serviceCredentialAgentIssuerMap.putString("type", service.type)
321
+ serviceCredentialAgentIssuerMap.putString("serviceEndpoint", service.serviceEndpoint)
322
+ serviceCredentialAgentIssuerMap.putMap("payload", service.payload.toReadableMap())
323
+ serviceCredentialAgentIssuersArr.pushMap(serviceCredentialAgentIssuerMap)
324
+ }
325
+ organizationMap.putArray("serviceCredentialAgentIssuers", serviceCredentialAgentIssuersArr)
326
+ organizationMap.putMap("payload", organization.payload.toReadableMap())
327
+ organizationsWritableArray.pushMap(organizationMap)
328
+ }
329
+ organizationsMap.putArray("all", organizationsWritableArray)
330
+ return organizationsMap
331
+ }
332
+
333
+ fun mapToCredentialManifestDescriptor(
334
+ credentialManifestDescriptorMap: ReadableMap
335
+ ): VCLCredentialManifestDescriptor? {
336
+ credentialManifestDescriptorMap.getMapOpt("deepLink")?.let {
337
+ return mapToCredentialManifestDescriptorByDeepLink(credentialManifestDescriptorMap)
338
+ } ?: credentialManifestDescriptorMap.getMapOpt("service")?.let {
339
+ credentialManifestDescriptorMap.getArrayOpt("credentialIds")?.let {
340
+ return mapToCredentialManifestDescriptorRefresh(credentialManifestDescriptorMap)
341
+ } ?: return mapToCredentialManifestDescriptorByService(credentialManifestDescriptorMap)
342
+ }
343
+ return null
344
+ }
345
+
346
+ fun mapToCredentialManifestDescriptorByDeepLink(
347
+ credentialManifestDescriptorByDeepLinkMap: ReadableMap
348
+ ): VCLCredentialManifestDescriptorByDeepLink {
349
+ return VCLCredentialManifestDescriptorByDeepLink(
350
+ mapToDeepLink(
351
+ credentialManifestDescriptorByDeepLinkMap.getMapOpt("deepLink")
352
+ )
353
+ )
354
+ }
355
+
356
+ fun mapToCredentialManifestDescriptorByService(
357
+ credentialManifestDescriptorByServiceMap: ReadableMap
358
+ ): VCLCredentialManifestDescriptorByService {
359
+ val pushDelegateMap = credentialManifestDescriptorByServiceMap.getMapOpt("pushDelegate")
360
+ val pushDelegate = VCLPushDelegate(
361
+ pushUrl = pushDelegateMap?.getStringOpt("pushUrl") ?: "",
362
+ pushToken = pushDelegateMap?.getStringOpt("pushToken") ?: ""
363
+ )
364
+ return VCLCredentialManifestDescriptorByService(
365
+ service = mapToServiceCredentialAgentIssuer(
366
+ credentialManifestDescriptorByServiceMap.getMapOpt("service")
367
+ ),
368
+ credentialTypes =
369
+ (credentialManifestDescriptorByServiceMap.getArrayOpt("credentialTypes")?.toArrayList()?.toList() as? List<String>),
370
+ pushDelegate = pushDelegate
371
+ )
372
+ }
373
+
374
+ fun mapToCredentialManifestDescriptorRefresh(
375
+ credentialManifestDescriptorRefreshMap: ReadableMap
376
+ ): VCLCredentialManifestDescriptor {
377
+ return VCLCredentialManifestDescriptorRefresh(
378
+ service = mapToServiceCredentialAgentIssuer(
379
+ credentialManifestDescriptorRefreshMap.getMapOpt("service")
380
+ ),
381
+ credentialIds = credentialManifestDescriptorRefreshMap.getArrayOpt("credentialIds")?.toArrayList()?.toList() as? List<String> ?: listOf()
382
+ )
383
+ }
384
+
385
+ fun mapToServiceCredentialAgentIssuer(
386
+ serviceMap: ReadableMap?
387
+ ): VCLServiceCredentialAgentIssuer {
388
+ var payload = JSONObject("{}")
389
+ try {
390
+ payload = JSONObject(serviceMap?.getMapOpt("payload").toString()).getJSONObject("NativeMap")
391
+ } catch (ex: Exception) {
392
+ ex.printStackTrace()
393
+ }
394
+ return VCLServiceCredentialAgentIssuer(payload = payload)
395
+ }
396
+
397
+ fun credentialManifestToMap(
398
+ credentialManifest: VCLCredentialManifest
399
+ ): ReadableMap {
400
+ val credentialManifestMap = Arguments.createMap()
401
+ val jwtMap = Arguments.createMap()
402
+ jwtMap.putString("encodedJwt", credentialManifest.jwt.signedJwt.serialize())
403
+ credentialManifestMap.putMap("jwt", jwtMap)
404
+ credentialManifestMap.putString("did", credentialManifest.did)
405
+ credentialManifestMap.putString("iss", credentialManifest.iss)
406
+ credentialManifestMap.putString("exchangeId", credentialManifest.exchangeId)
407
+ credentialManifestMap.putString("vendorOriginContext", credentialManifest.vendorOriginContext)
408
+ return credentialManifestMap
409
+ }
410
+
411
+ fun mapToCredentialManifest(
412
+ credentialManifestMap: ReadableMap?
413
+ ): VCLCredentialManifest {
414
+ val jwt = VCLJWT(encodedJwt = credentialManifestMap?.getMapOpt("jwt")?.getStringOpt("encodedJwt") ?: "")
415
+ val vendorOriginContext: String? = credentialManifestMap?.getStringOpt("vendorOriginContext")
416
+ return VCLCredentialManifest(jwt = jwt, vendorOriginContext = vendorOriginContext)
417
+ }
418
+
419
+ fun mapToGenerateOffersDescriptor(
420
+ generateOffersDescriptorMap: ReadableMap
421
+ ): VCLGenerateOffersDescriptor {
422
+ val verifiableCredentialsReadableArr = generateOffersDescriptorMap.getArrayOpt("identificationVerifiableCredentials")
423
+ val verifiableCredentialsList = mutableListOf<VCLVerifiableCredential>()
424
+ verifiableCredentialsReadableArr?.let {
425
+ for (i in 0 until it.size()) {
426
+ val verifiableCredentialMap = it.getMapOpt(i)
427
+ verifiableCredentialsList.add(
428
+ VCLVerifiableCredential(
429
+ inputDescriptor = verifiableCredentialMap?.getStringOpt("inputDescriptor") ?: "",
430
+ jwtVc = verifiableCredentialMap?.getStringOpt("jwtVc") ?: "",
431
+ )
432
+ )
433
+ }
434
+ }
435
+ return VCLGenerateOffersDescriptor(
436
+ mapToCredentialManifest(generateOffersDescriptorMap.getMapOpt("credentialManifest")),
437
+ types = (generateOffersDescriptorMap.getArrayOpt("types")?.toArrayList()?.toList() as? List<String>),
438
+ offerHashes = (generateOffersDescriptorMap.getArrayOpt("offerHashes")?.toArrayList()?.toList() as? List<String>),
439
+ identificationVerifiableCredentials = verifiableCredentialsList
440
+ )
441
+ }
442
+
443
+ fun generatedOffersToMap(
444
+ offers: VCLOffers
445
+ ): ReadableMap {
446
+ val generatedOffersMap = Arguments.createMap()
447
+ generatedOffersMap.putArray("all", offers.all.toReadableArray())
448
+ generatedOffersMap.putInt("responseCode", offers.responseCode)
449
+ generatedOffersMap.putMap("token", tokenToMap(offers.token))
450
+ return generatedOffersMap
451
+ }
452
+
453
+ fun credentialTypesFormSchemaToMap(
454
+ credentialTypesFormSchema: VCLCredentialTypesUIFormSchema
455
+ ): ReadableMap {
456
+ val credentialTypesFormSchemaMap = Arguments.createMap()
457
+ credentialTypesFormSchemaMap.putMap("payload", credentialTypesFormSchema.payload.toReadableMap())
458
+ return credentialTypesFormSchemaMap
459
+ }
460
+
461
+ fun mapToJwt(jwtMap: ReadableMap?) =
462
+ VCLJWT(encodedJwt = jwtMap?.getStringOpt("encodedJwt") ?: "")
463
+
464
+ fun mapToPublicKey(publicKeyMap: ReadableMap?) =
465
+ VCLPublicKey(jwkStr = publicKeyMap?.getStringOpt("jwkStr") ?: "")
466
+
467
+ fun mapToFinalizedOffersDescriptor(
468
+ finalizedOffersDescriptorMap: ReadableMap
469
+ ) = VCLFinalizeOffersDescriptor(
470
+ credentialManifest = mapToCredentialManifest(finalizedOffersDescriptorMap.getMapOpt("credentialManifest")),
471
+ approvedOfferIds = (finalizedOffersDescriptorMap.getArrayOpt("approvedOfferIds")?.toArrayList()?.toList() as? List<String>) ?: listOf(),
472
+ rejectedOfferIds = (finalizedOffersDescriptorMap.getArrayOpt("rejectedOfferIds")?.toArrayList()?.toList() as? List<String>) ?: listOf()
473
+ )
474
+
475
+ fun jwtVerifiableCredentialsToMap(
476
+ jwtVerifiableCredentials: VCLJwtVerifiableCredentials
477
+ ): ReadableMap {
478
+ val jwtVerifiableCredentialsMap = Arguments.createMap()
479
+ val jwtArr = Arguments.createArray()
480
+ jwtVerifiableCredentials.all.forEach {
481
+ jwtArr.pushString(it.signedJwt.serialize())
482
+ }
483
+ jwtVerifiableCredentialsMap.putArray("all", jwtArr)
484
+ return jwtVerifiableCredentialsMap
485
+ }
486
+
487
+ fun jwtToMap(jwt: VCLJWT): ReadableMap {
488
+ val jwtReadableMap = Arguments.createMap()
489
+ jwtReadableMap.putString("encodedJwt", jwt.signedJwt.serialize())
490
+ return jwtReadableMap
491
+ }
492
+
493
+ fun mapToCredentialTypesUIFormSchemaDescriptor(
494
+ credentialTypesUIFormSchemaDescriptorMap: ReadableMap
495
+ ) = VCLCredentialTypesUIFormSchemaDescriptor(
496
+ credentialTypesUIFormSchemaDescriptorMap.getStringOpt("credentialType") ?: "",
497
+ credentialTypesUIFormSchemaDescriptorMap.getStringOpt("countryCode") ?: "",
498
+ )
499
+
500
+ fun mapToVerifiedProfileDescriptor(verifiedProfileDescriptor: ReadableMap) =
501
+ VCLVerifiedProfileDescriptor(did = verifiedProfileDescriptor.getStringOpt("did") ?: "")
502
+
503
+ fun verifiedProfileToMap(
504
+ verifiedProfile: VCLVerifiedProfile
505
+ ): ReadableMap {
506
+ val verifiedProfileMap = Arguments.createMap()
507
+ verifiedProfileMap.putMap("payload", verifiedProfile.payload.toReadableMap())
508
+ verifiedProfileMap.putString("id", verifiedProfile.id)
509
+ verifiedProfileMap.putString("logo", verifiedProfile.logo)
510
+ verifiedProfileMap.putString("name", verifiedProfile.name)
511
+ return verifiedProfileMap
512
+ }
513
+ }
514
+
@@ -0,0 +1,21 @@
1
+ //
2
+ // StringExtensions.swift
3
+ // VclReactNative
4
+ //
5
+ // Created by Michael Avoyan on 13/07/2021.
6
+ // Copyright © 2021 Facebook. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ extension String {
12
+ func toDictionary() -> [String: Any]? {
13
+ if let data = self.data(using: .utf8) {
14
+ do {
15
+ return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
16
+ } catch {
17
+ }
18
+ }
19
+ return nil
20
+ }
21
+ }