@kwik-id/sdk-react-native 0.0.0-stage → 0.1.0-alpha.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 (269) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +312 -2
  3. package/app.plugin.js +40 -0
  4. package/lib/commonjs/api/api-client.js +213 -0
  5. package/lib/commonjs/api/api-client.js.map +1 -0
  6. package/lib/commonjs/api/api-error.js +29 -0
  7. package/lib/commonjs/api/api-error.js.map +1 -0
  8. package/lib/commonjs/api/index.js +33 -0
  9. package/lib/commonjs/api/index.js.map +1 -0
  10. package/lib/commonjs/api/upload.js +74 -0
  11. package/lib/commonjs/api/upload.js.map +1 -0
  12. package/lib/commonjs/camera/camera-view.js +227 -0
  13. package/lib/commonjs/camera/camera-view.js.map +1 -0
  14. package/lib/commonjs/camera/index.js +20 -0
  15. package/lib/commonjs/camera/index.js.map +1 -0
  16. package/lib/commonjs/camera/photo-capture.js +50 -0
  17. package/lib/commonjs/camera/photo-capture.js.map +1 -0
  18. package/lib/commonjs/crypto/fingerprint.js +43 -0
  19. package/lib/commonjs/crypto/fingerprint.js.map +1 -0
  20. package/lib/commonjs/crypto/hmac.js +150 -0
  21. package/lib/commonjs/crypto/hmac.js.map +1 -0
  22. package/lib/commonjs/crypto/index.js +39 -0
  23. package/lib/commonjs/crypto/index.js.map +1 -0
  24. package/lib/commonjs/crypto/session-manager.js +173 -0
  25. package/lib/commonjs/crypto/session-manager.js.map +1 -0
  26. package/lib/commonjs/i18n/en.js +297 -0
  27. package/lib/commonjs/i18n/en.js.map +1 -0
  28. package/lib/commonjs/i18n/fr.js +294 -0
  29. package/lib/commonjs/i18n/fr.js.map +1 -0
  30. package/lib/commonjs/i18n/index.js +34 -0
  31. package/lib/commonjs/i18n/index.js.map +1 -0
  32. package/lib/commonjs/i18n/locale.js +20 -0
  33. package/lib/commonjs/i18n/locale.js.map +1 -0
  34. package/lib/commonjs/i18n/translator.js +37 -0
  35. package/lib/commonjs/i18n/translator.js.map +1 -0
  36. package/lib/commonjs/index.js +187 -0
  37. package/lib/commonjs/index.js.map +1 -0
  38. package/lib/commonjs/lib/device-detector.js +34 -0
  39. package/lib/commonjs/lib/device-detector.js.map +1 -0
  40. package/lib/commonjs/lib/event-emitter.js +85 -0
  41. package/lib/commonjs/lib/event-emitter.js.map +1 -0
  42. package/lib/commonjs/lib/index.js +63 -0
  43. package/lib/commonjs/lib/index.js.map +1 -0
  44. package/lib/commonjs/lib/kwik-id-rn-sdk.js +156 -0
  45. package/lib/commonjs/lib/kwik-id-rn-sdk.js.map +1 -0
  46. package/lib/commonjs/lib/verification-machine.js +276 -0
  47. package/lib/commonjs/lib/verification-machine.js.map +1 -0
  48. package/lib/commonjs/package.json +1 -0
  49. package/lib/commonjs/types/events.js +6 -0
  50. package/lib/commonjs/types/events.js.map +1 -0
  51. package/lib/commonjs/types/index.js +2 -0
  52. package/lib/commonjs/types/index.js.map +1 -0
  53. package/lib/commonjs/ui/components/KwikIDVerificationModal.js +407 -0
  54. package/lib/commonjs/ui/components/KwikIDVerificationModal.js.map +1 -0
  55. package/lib/commonjs/ui/components/screens.js +338 -0
  56. package/lib/commonjs/ui/components/screens.js.map +1 -0
  57. package/lib/commonjs/ui/context/kwik-id-provider.js +52 -0
  58. package/lib/commonjs/ui/context/kwik-id-provider.js.map +1 -0
  59. package/lib/commonjs/ui/hooks/use-kwik-verification.js +77 -0
  60. package/lib/commonjs/ui/hooks/use-kwik-verification.js.map +1 -0
  61. package/lib/commonjs/ui/index.js +33 -0
  62. package/lib/commonjs/ui/index.js.map +1 -0
  63. package/lib/module/api/api-client.js +208 -0
  64. package/lib/module/api/api-client.js.map +1 -0
  65. package/lib/module/api/api-error.js +24 -0
  66. package/lib/module/api/api-error.js.map +1 -0
  67. package/lib/module/api/index.js +6 -0
  68. package/lib/module/api/index.js.map +1 -0
  69. package/lib/module/api/upload.js +68 -0
  70. package/lib/module/api/upload.js.map +1 -0
  71. package/lib/module/camera/camera-view.js +222 -0
  72. package/lib/module/camera/camera-view.js.map +1 -0
  73. package/lib/module/camera/index.js +5 -0
  74. package/lib/module/camera/index.js.map +1 -0
  75. package/lib/module/camera/photo-capture.js +45 -0
  76. package/lib/module/camera/photo-capture.js.map +1 -0
  77. package/lib/module/crypto/fingerprint.js +37 -0
  78. package/lib/module/crypto/fingerprint.js.map +1 -0
  79. package/lib/module/crypto/hmac.js +143 -0
  80. package/lib/module/crypto/hmac.js.map +1 -0
  81. package/lib/module/crypto/index.js +6 -0
  82. package/lib/module/crypto/index.js.map +1 -0
  83. package/lib/module/crypto/session-manager.js +169 -0
  84. package/lib/module/crypto/session-manager.js.map +1 -0
  85. package/lib/module/i18n/en.js +293 -0
  86. package/lib/module/i18n/en.js.map +1 -0
  87. package/lib/module/i18n/fr.js +290 -0
  88. package/lib/module/i18n/fr.js.map +1 -0
  89. package/lib/module/i18n/index.js +11 -0
  90. package/lib/module/i18n/index.js.map +1 -0
  91. package/lib/module/i18n/locale.js +15 -0
  92. package/lib/module/i18n/locale.js.map +1 -0
  93. package/lib/module/i18n/translator.js +34 -0
  94. package/lib/module/i18n/translator.js.map +1 -0
  95. package/lib/module/index.js +30 -0
  96. package/lib/module/index.js.map +1 -0
  97. package/lib/module/lib/device-detector.js +26 -0
  98. package/lib/module/lib/device-detector.js.map +1 -0
  99. package/lib/module/lib/event-emitter.js +80 -0
  100. package/lib/module/lib/event-emitter.js.map +1 -0
  101. package/lib/module/lib/index.js +6 -0
  102. package/lib/module/lib/index.js.map +1 -0
  103. package/lib/module/lib/kwik-id-rn-sdk.js +150 -0
  104. package/lib/module/lib/kwik-id-rn-sdk.js.map +1 -0
  105. package/lib/module/lib/verification-machine.js +268 -0
  106. package/lib/module/lib/verification-machine.js.map +1 -0
  107. package/lib/module/package.json +1 -0
  108. package/lib/module/types/events.js +4 -0
  109. package/lib/module/types/events.js.map +1 -0
  110. package/lib/module/types/index.js +2 -0
  111. package/lib/module/types/index.js.map +1 -0
  112. package/lib/module/ui/components/KwikIDVerificationModal.js +402 -0
  113. package/lib/module/ui/components/KwikIDVerificationModal.js.map +1 -0
  114. package/lib/module/ui/components/screens.js +328 -0
  115. package/lib/module/ui/components/screens.js.map +1 -0
  116. package/lib/module/ui/context/kwik-id-provider.js +46 -0
  117. package/lib/module/ui/context/kwik-id-provider.js.map +1 -0
  118. package/lib/module/ui/hooks/use-kwik-verification.js +72 -0
  119. package/lib/module/ui/hooks/use-kwik-verification.js.map +1 -0
  120. package/lib/module/ui/index.js +6 -0
  121. package/lib/module/ui/index.js.map +1 -0
  122. package/lib/typescript/commonjs/api/api-client.d.ts +82 -0
  123. package/lib/typescript/commonjs/api/api-client.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/api/api-error.d.ts +13 -0
  125. package/lib/typescript/commonjs/api/api-error.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/api/index.d.ts +6 -0
  127. package/lib/typescript/commonjs/api/index.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/api/upload.d.ts +19 -0
  129. package/lib/typescript/commonjs/api/upload.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/camera/camera-view.d.ts +25 -0
  131. package/lib/typescript/commonjs/camera/camera-view.d.ts.map +1 -0
  132. package/lib/typescript/commonjs/camera/index.d.ts +5 -0
  133. package/lib/typescript/commonjs/camera/index.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/camera/photo-capture.d.ts +9 -0
  135. package/lib/typescript/commonjs/camera/photo-capture.d.ts.map +1 -0
  136. package/lib/typescript/commonjs/crypto/fingerprint.d.ts +3 -0
  137. package/lib/typescript/commonjs/crypto/fingerprint.d.ts.map +1 -0
  138. package/lib/typescript/commonjs/crypto/hmac.d.ts +18 -0
  139. package/lib/typescript/commonjs/crypto/hmac.d.ts.map +1 -0
  140. package/lib/typescript/commonjs/crypto/index.d.ts +4 -0
  141. package/lib/typescript/commonjs/crypto/index.d.ts.map +1 -0
  142. package/lib/typescript/commonjs/crypto/session-manager.d.ts +27 -0
  143. package/lib/typescript/commonjs/crypto/session-manager.d.ts.map +1 -0
  144. package/lib/typescript/commonjs/i18n/en.d.ts +291 -0
  145. package/lib/typescript/commonjs/i18n/en.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/i18n/fr.d.ts +6 -0
  147. package/lib/typescript/commonjs/i18n/fr.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/i18n/index.d.ts +10 -0
  149. package/lib/typescript/commonjs/i18n/index.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/i18n/locale.d.ts +4 -0
  151. package/lib/typescript/commonjs/i18n/locale.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/i18n/translator.d.ts +15 -0
  153. package/lib/typescript/commonjs/i18n/translator.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/index.d.ts +24 -0
  155. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  156. package/lib/typescript/commonjs/lib/device-detector.d.ts +5 -0
  157. package/lib/typescript/commonjs/lib/device-detector.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/lib/event-emitter.d.ts +19 -0
  159. package/lib/typescript/commonjs/lib/event-emitter.d.ts.map +1 -0
  160. package/lib/typescript/commonjs/lib/index.d.ts +5 -0
  161. package/lib/typescript/commonjs/lib/index.d.ts.map +1 -0
  162. package/lib/typescript/commonjs/lib/kwik-id-rn-sdk.d.ts +43 -0
  163. package/lib/typescript/commonjs/lib/kwik-id-rn-sdk.d.ts.map +1 -0
  164. package/lib/typescript/commonjs/lib/verification-machine.d.ts +78 -0
  165. package/lib/typescript/commonjs/lib/verification-machine.d.ts.map +1 -0
  166. package/lib/typescript/commonjs/package.json +1 -0
  167. package/lib/typescript/commonjs/types/events.d.ts +94 -0
  168. package/lib/typescript/commonjs/types/events.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/types/index.d.ts +242 -0
  170. package/lib/typescript/commonjs/types/index.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/ui/components/KwikIDVerificationModal.d.ts +21 -0
  172. package/lib/typescript/commonjs/ui/components/KwikIDVerificationModal.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/ui/components/screens.d.ts +46 -0
  174. package/lib/typescript/commonjs/ui/components/screens.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/ui/context/kwik-id-provider.d.ts +19 -0
  176. package/lib/typescript/commonjs/ui/context/kwik-id-provider.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/ui/hooks/use-kwik-verification.d.ts +29 -0
  178. package/lib/typescript/commonjs/ui/hooks/use-kwik-verification.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/ui/index.d.ts +7 -0
  180. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -0
  181. package/lib/typescript/module/api/api-client.d.ts +82 -0
  182. package/lib/typescript/module/api/api-client.d.ts.map +1 -0
  183. package/lib/typescript/module/api/api-error.d.ts +13 -0
  184. package/lib/typescript/module/api/api-error.d.ts.map +1 -0
  185. package/lib/typescript/module/api/index.d.ts +6 -0
  186. package/lib/typescript/module/api/index.d.ts.map +1 -0
  187. package/lib/typescript/module/api/upload.d.ts +19 -0
  188. package/lib/typescript/module/api/upload.d.ts.map +1 -0
  189. package/lib/typescript/module/camera/camera-view.d.ts +25 -0
  190. package/lib/typescript/module/camera/camera-view.d.ts.map +1 -0
  191. package/lib/typescript/module/camera/index.d.ts +5 -0
  192. package/lib/typescript/module/camera/index.d.ts.map +1 -0
  193. package/lib/typescript/module/camera/photo-capture.d.ts +9 -0
  194. package/lib/typescript/module/camera/photo-capture.d.ts.map +1 -0
  195. package/lib/typescript/module/crypto/fingerprint.d.ts +3 -0
  196. package/lib/typescript/module/crypto/fingerprint.d.ts.map +1 -0
  197. package/lib/typescript/module/crypto/hmac.d.ts +18 -0
  198. package/lib/typescript/module/crypto/hmac.d.ts.map +1 -0
  199. package/lib/typescript/module/crypto/index.d.ts +4 -0
  200. package/lib/typescript/module/crypto/index.d.ts.map +1 -0
  201. package/lib/typescript/module/crypto/session-manager.d.ts +27 -0
  202. package/lib/typescript/module/crypto/session-manager.d.ts.map +1 -0
  203. package/lib/typescript/module/i18n/en.d.ts +291 -0
  204. package/lib/typescript/module/i18n/en.d.ts.map +1 -0
  205. package/lib/typescript/module/i18n/fr.d.ts +6 -0
  206. package/lib/typescript/module/i18n/fr.d.ts.map +1 -0
  207. package/lib/typescript/module/i18n/index.d.ts +10 -0
  208. package/lib/typescript/module/i18n/index.d.ts.map +1 -0
  209. package/lib/typescript/module/i18n/locale.d.ts +4 -0
  210. package/lib/typescript/module/i18n/locale.d.ts.map +1 -0
  211. package/lib/typescript/module/i18n/translator.d.ts +15 -0
  212. package/lib/typescript/module/i18n/translator.d.ts.map +1 -0
  213. package/lib/typescript/module/index.d.ts +24 -0
  214. package/lib/typescript/module/index.d.ts.map +1 -0
  215. package/lib/typescript/module/lib/device-detector.d.ts +5 -0
  216. package/lib/typescript/module/lib/device-detector.d.ts.map +1 -0
  217. package/lib/typescript/module/lib/event-emitter.d.ts +19 -0
  218. package/lib/typescript/module/lib/event-emitter.d.ts.map +1 -0
  219. package/lib/typescript/module/lib/index.d.ts +5 -0
  220. package/lib/typescript/module/lib/index.d.ts.map +1 -0
  221. package/lib/typescript/module/lib/kwik-id-rn-sdk.d.ts +43 -0
  222. package/lib/typescript/module/lib/kwik-id-rn-sdk.d.ts.map +1 -0
  223. package/lib/typescript/module/lib/verification-machine.d.ts +78 -0
  224. package/lib/typescript/module/lib/verification-machine.d.ts.map +1 -0
  225. package/lib/typescript/module/package.json +1 -0
  226. package/lib/typescript/module/types/events.d.ts +94 -0
  227. package/lib/typescript/module/types/events.d.ts.map +1 -0
  228. package/lib/typescript/module/types/index.d.ts +242 -0
  229. package/lib/typescript/module/types/index.d.ts.map +1 -0
  230. package/lib/typescript/module/ui/components/KwikIDVerificationModal.d.ts +21 -0
  231. package/lib/typescript/module/ui/components/KwikIDVerificationModal.d.ts.map +1 -0
  232. package/lib/typescript/module/ui/components/screens.d.ts +46 -0
  233. package/lib/typescript/module/ui/components/screens.d.ts.map +1 -0
  234. package/lib/typescript/module/ui/context/kwik-id-provider.d.ts +19 -0
  235. package/lib/typescript/module/ui/context/kwik-id-provider.d.ts.map +1 -0
  236. package/lib/typescript/module/ui/hooks/use-kwik-verification.d.ts +29 -0
  237. package/lib/typescript/module/ui/hooks/use-kwik-verification.d.ts.map +1 -0
  238. package/lib/typescript/module/ui/index.d.ts +7 -0
  239. package/lib/typescript/module/ui/index.d.ts.map +1 -0
  240. package/package.json +121 -3
  241. package/src/api/api-client.ts +319 -0
  242. package/src/api/api-error.ts +28 -0
  243. package/src/api/index.ts +12 -0
  244. package/src/api/upload.ts +87 -0
  245. package/src/camera/camera-view.tsx +217 -0
  246. package/src/camera/index.ts +4 -0
  247. package/src/camera/photo-capture.ts +58 -0
  248. package/src/crypto/fingerprint.ts +46 -0
  249. package/src/crypto/hmac.ts +172 -0
  250. package/src/crypto/index.ts +3 -0
  251. package/src/crypto/session-manager.ts +200 -0
  252. package/src/i18n/en.ts +315 -0
  253. package/src/i18n/fr.ts +325 -0
  254. package/src/i18n/index.ts +9 -0
  255. package/src/i18n/locale.ts +15 -0
  256. package/src/i18n/translator.ts +37 -0
  257. package/src/index.ts +102 -0
  258. package/src/lib/device-detector.ts +32 -0
  259. package/src/lib/event-emitter.ts +90 -0
  260. package/src/lib/index.ts +15 -0
  261. package/src/lib/kwik-id-rn-sdk.ts +160 -0
  262. package/src/lib/verification-machine.ts +273 -0
  263. package/src/types/events.ts +75 -0
  264. package/src/types/index.ts +309 -0
  265. package/src/ui/components/KwikIDVerificationModal.tsx +450 -0
  266. package/src/ui/components/screens.tsx +283 -0
  267. package/src/ui/context/kwik-id-provider.tsx +72 -0
  268. package/src/ui/hooks/use-kwik-verification.ts +121 -0
  269. package/src/ui/index.ts +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_apiClient","require","_apiError","_upload"],"sourceRoot":"../../../src","sources":["api/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AASA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.uploadMultipart = void 0;
7
+ var _expoFileSystem = require("expo-file-system");
8
+ var _apiError = require("./api-error.js");
9
+ /**
10
+ * Multipart upload for RN via expo-file-system (gives real upload progress, which
11
+ * RN's fetch/FormData path cannot). The gateway's multer expects the field `file`.
12
+ */
13
+
14
+ function parseBody(body) {
15
+ try {
16
+ return JSON.parse(body);
17
+ } catch {
18
+ return {};
19
+ }
20
+ }
21
+
22
+ /** Default uploader — used on device. */
23
+ const uploadMultipart = async ({
24
+ url,
25
+ asset,
26
+ headers,
27
+ onProgress,
28
+ timeoutMs
29
+ }) => {
30
+ let timer;
31
+ let rejectTimeout = () => undefined;
32
+ const timedOut = new Promise((_, reject) => {
33
+ rejectTimeout = reject;
34
+ });
35
+ // Reset on every progress event so a slow-but-moving upload isn't killed.
36
+ const armTimeout = () => {
37
+ if (!timeoutMs) return;
38
+ if (timer) clearTimeout(timer);
39
+ timer = setTimeout(() => {
40
+ task.cancelAsync().catch(() => undefined);
41
+ rejectTimeout(new _apiError.ApiError("Upload timeout", 0, "UPLOAD_TIMEOUT"));
42
+ }, timeoutMs);
43
+ };
44
+ const task = (0, _expoFileSystem.createUploadTask)(url, asset.uri, {
45
+ httpMethod: "POST",
46
+ uploadType: _expoFileSystem.FileSystemUploadType.MULTIPART,
47
+ fieldName: "file",
48
+ mimeType: asset.type,
49
+ headers
50
+ }, p => {
51
+ armTimeout();
52
+ if (p.totalBytesExpectedToSend > 0) {
53
+ onProgress?.(p.totalBytesSent / p.totalBytesExpectedToSend * 100);
54
+ }
55
+ });
56
+ armTimeout();
57
+ let res;
58
+ try {
59
+ res = await Promise.race([task.uploadAsync(), timedOut]);
60
+ } finally {
61
+ if (timer) clearTimeout(timer);
62
+ }
63
+ if (!res || res.status < 200 || res.status >= 300) {
64
+ const parsed = res ? parseBody(res.body) : {};
65
+ throw new _apiError.ApiError(parsed.message || `Upload failed with status ${res?.status ?? 0}`, res?.status ?? 0);
66
+ }
67
+ const parsed = parseBody(res.body);
68
+ return {
69
+ uploadId: parsed.uploadId || "",
70
+ status: parsed.status || "uploaded"
71
+ };
72
+ };
73
+ exports.uploadMultipart = uploadMultipart;
74
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_expoFileSystem","require","_apiError","parseBody","body","JSON","parse","uploadMultipart","url","asset","headers","onProgress","timeoutMs","timer","rejectTimeout","undefined","timedOut","Promise","_","reject","armTimeout","clearTimeout","setTimeout","task","cancelAsync","catch","ApiError","createUploadTask","uri","httpMethod","uploadType","FileSystemUploadType","MULTIPART","fieldName","mimeType","type","p","totalBytesExpectedToSend","totalBytesSent","res","race","uploadAsync","status","parsed","message","uploadId","exports"],"sourceRoot":"../../../src","sources":["api/upload.ts"],"mappings":";;;;;;AAIA,IAAAA,eAAA,GAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AAPA;AACA;AACA;AACA;;AAuBA,SAASE,SAASA,CAACC,IAAY,EAA4D;EACvF,IAAI;IACA,OAAOC,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC;EAC3B,CAAC,CAAC,MAAM;IACJ,OAAO,CAAC,CAAC;EACb;AACJ;;AAEA;AACO,MAAMG,eAAyB,GAAG,MAAAA,CAAO;EAAEC,GAAG;EAAEC,KAAK;EAAEC,OAAO;EAAEC,UAAU;EAAEC;AAAU,CAAC,KAAK;EAC/F,IAAIC,KAAgD;EACpD,IAAIC,aAAqC,GAAGA,CAAA,KAAMC,SAAS;EAC3D,MAAMC,QAAQ,GAAG,IAAIC,OAAO,CAAQ,CAACC,CAAC,EAAEC,MAAM,KAAK;IAC/CL,aAAa,GAAGK,MAAM;EAC1B,CAAC,CAAC;EACF;EACA,MAAMC,UAAU,GAAGA,CAAA,KAAM;IACrB,IAAI,CAACR,SAAS,EAAE;IAChB,IAAIC,KAAK,EAAEQ,YAAY,CAACR,KAAK,CAAC;IAC9BA,KAAK,GAAGS,UAAU,CAAC,MAAM;MACrBC,IAAI,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,MAAMV,SAAS,CAAC;MACzCD,aAAa,CAAC,IAAIY,kBAAQ,CAAC,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACtE,CAAC,EAAEd,SAAS,CAAC;EACjB,CAAC;EAED,MAAMW,IAAI,GAAG,IAAAI,gCAAgB,EACzBnB,GAAG,EACHC,KAAK,CAACmB,GAAG,EACT;IACIC,UAAU,EAAE,MAAM;IAClBC,UAAU,EAAEC,oCAAoB,CAACC,SAAS;IAC1CC,SAAS,EAAE,MAAM;IACjBC,QAAQ,EAAEzB,KAAK,CAAC0B,IAAI;IACpBzB;EACJ,CAAC,EACA0B,CAAC,IAAK;IACHhB,UAAU,CAAC,CAAC;IACZ,IAAIgB,CAAC,CAACC,wBAAwB,GAAG,CAAC,EAAE;MAChC1B,UAAU,GAAIyB,CAAC,CAACE,cAAc,GAAGF,CAAC,CAACC,wBAAwB,GAAI,GAAG,CAAC;IACvE;EACJ,CACJ,CAAC;EAEDjB,UAAU,CAAC,CAAC;EACZ,IAAImB,GAAiD;EACrD,IAAI;IACAA,GAAG,GAAG,MAAMtB,OAAO,CAACuB,IAAI,CAAC,CAACjB,IAAI,CAACkB,WAAW,CAAC,CAAC,EAAEzB,QAAQ,CAAC,CAAC;EAC5D,CAAC,SAAS;IACN,IAAIH,KAAK,EAAEQ,YAAY,CAACR,KAAK,CAAC;EAClC;EACA,IAAI,CAAC0B,GAAG,IAAIA,GAAG,CAACG,MAAM,GAAG,GAAG,IAAIH,GAAG,CAACG,MAAM,IAAI,GAAG,EAAE;IAC/C,MAAMC,MAAM,GAAGJ,GAAG,GAAGpC,SAAS,CAACoC,GAAG,CAACnC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAIsB,kBAAQ,CACdiB,MAAM,CAACC,OAAO,IAAI,6BAA6BL,GAAG,EAAEG,MAAM,IAAI,CAAC,EAAE,EACjEH,GAAG,EAAEG,MAAM,IAAI,CACnB,CAAC;EACL;EAEA,MAAMC,MAAM,GAAGxC,SAAS,CAACoC,GAAG,CAACnC,IAAI,CAAC;EAClC,OAAO;IAAEyC,QAAQ,EAAEF,MAAM,CAACE,QAAQ,IAAI,EAAE;IAAEH,MAAM,EAAEC,MAAM,CAACD,MAAM,IAAI;EAAW,CAAC;AACnF,CAAC;AAACI,OAAA,CAAAvC,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CameraView = CameraView;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * CameraView — vision-camera wrapper for still capture (Phase 1).
12
+ *
13
+ * Phase 1 is capture-only, so this uses `takePhoto` and does NOT run a frame
14
+ * processor (that lands in Phase 2 for liveness). Handles permission + device
15
+ * selection and reports a RawPhoto to the caller.
16
+ *
17
+ * vision-camera is required lazily: its NativeCameraModule throws at import time
18
+ * when the native module is missing (e.g. Expo Go), which would crash any import of
19
+ * this SDK before KwikIdRNSDK.initialize() can report a friendly runtime error.
20
+ */
21
+
22
+ let visionCamera;
23
+ function loadVisionCamera() {
24
+ visionCamera ??= require("react-native-vision-camera");
25
+ return visionCamera;
26
+ }
27
+ function CameraView({
28
+ facing,
29
+ active,
30
+ primaryColor,
31
+ overlay,
32
+ instruction,
33
+ captureErrorText = "Could not capture the photo. Please try again.",
34
+ permissionTitle = "Camera access needed",
35
+ permissionBody = "Enable camera access in Settings to continue verification.",
36
+ openSettingsLabel = "Open Settings",
37
+ captureLabel = "Capture photo",
38
+ onCapture,
39
+ onPermissionDenied
40
+ }) {
41
+ const {
42
+ Camera,
43
+ useCameraDevice,
44
+ useCameraPermission
45
+ } = loadVisionCamera();
46
+ const camera = (0, _react.useRef)(null);
47
+ const device = useCameraDevice(facing);
48
+ const {
49
+ hasPermission,
50
+ requestPermission
51
+ } = useCameraPermission();
52
+ const [capturing, setCapturing] = (0, _react.useState)(false);
53
+ const [permissionChecked, setPermissionChecked] = (0, _react.useState)(false);
54
+ const [captureFailed, setCaptureFailed] = (0, _react.useState)(false);
55
+ (0, _react.useEffect)(() => {
56
+ let cancelled = false;
57
+ (async () => {
58
+ if (!hasPermission) {
59
+ const granted = await requestPermission();
60
+ if (!cancelled && !granted) {
61
+ onPermissionDenied?.(false);
62
+ }
63
+ }
64
+ if (!cancelled) setPermissionChecked(true);
65
+ })();
66
+ return () => {
67
+ cancelled = true;
68
+ };
69
+ }, [hasPermission, requestPermission, onPermissionDenied]);
70
+ const takePhoto = async () => {
71
+ if (!camera.current || capturing) return;
72
+ setCapturing(true);
73
+ setCaptureFailed(false);
74
+ try {
75
+ const photo = await camera.current.takePhoto({
76
+ flash: "off"
77
+ });
78
+ await onCapture({
79
+ path: photo.path,
80
+ width: photo.width,
81
+ height: photo.height
82
+ });
83
+ } catch {
84
+ setCaptureFailed(true);
85
+ } finally {
86
+ setCapturing(false);
87
+ }
88
+ };
89
+ if (!hasPermission && permissionChecked) {
90
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
91
+ style: styles.center,
92
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
93
+ style: styles.permTitle,
94
+ children: permissionTitle
95
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
96
+ style: styles.permBody,
97
+ children: permissionBody
98
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
99
+ style: [styles.settingsBtn, {
100
+ borderColor: primaryColor
101
+ }],
102
+ onPress: () => _reactNative.Linking.openSettings(),
103
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
104
+ style: [styles.settingsText, {
105
+ color: primaryColor
106
+ }],
107
+ children: openSettingsLabel
108
+ })
109
+ })]
110
+ });
111
+ }
112
+ if (!device || !permissionChecked) {
113
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
114
+ style: styles.center,
115
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
116
+ color: primaryColor
117
+ })
118
+ });
119
+ }
120
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
121
+ style: styles.fill,
122
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Camera, {
123
+ ref: camera,
124
+ style: _reactNative.StyleSheet.absoluteFill,
125
+ device: device,
126
+ isActive: active,
127
+ photo: true
128
+ }), overlay, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
129
+ style: styles.bottomBar,
130
+ children: [captureFailed ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
131
+ accessibilityRole: "alert",
132
+ style: [styles.instruction, styles.captureError],
133
+ children: captureErrorText
134
+ }) : instruction ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
135
+ style: styles.instruction,
136
+ children: instruction
137
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
138
+ accessibilityLabel: captureLabel,
139
+ style: styles.shutterOuter,
140
+ onPress: takePhoto,
141
+ disabled: capturing,
142
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
143
+ style: [styles.shutterInner, capturing && styles.shutterBusy],
144
+ children: capturing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
145
+ color: "#fff"
146
+ }) : null
147
+ })
148
+ })]
149
+ })]
150
+ });
151
+ }
152
+ const styles = _reactNative.StyleSheet.create({
153
+ fill: {
154
+ flex: 1,
155
+ backgroundColor: "#000"
156
+ },
157
+ center: {
158
+ flex: 1,
159
+ alignItems: "center",
160
+ justifyContent: "center",
161
+ padding: 24,
162
+ backgroundColor: "#000"
163
+ },
164
+ bottomBar: {
165
+ position: "absolute",
166
+ bottom: 0,
167
+ left: 0,
168
+ right: 0,
169
+ alignItems: "center",
170
+ paddingBottom: 40
171
+ },
172
+ instruction: {
173
+ color: "#fff",
174
+ fontSize: 15,
175
+ marginBottom: 16,
176
+ textAlign: "center",
177
+ paddingHorizontal: 24
178
+ },
179
+ captureError: {
180
+ color: "#fca5a5",
181
+ fontWeight: "600"
182
+ },
183
+ shutterOuter: {
184
+ width: 76,
185
+ height: 76,
186
+ borderRadius: 38,
187
+ borderWidth: 4,
188
+ borderColor: "#fff",
189
+ alignItems: "center",
190
+ justifyContent: "center"
191
+ },
192
+ shutterInner: {
193
+ width: 58,
194
+ height: 58,
195
+ borderRadius: 29,
196
+ backgroundColor: "#fff",
197
+ alignItems: "center",
198
+ justifyContent: "center"
199
+ },
200
+ shutterBusy: {
201
+ backgroundColor: "#1E3A8A"
202
+ },
203
+ permTitle: {
204
+ color: "#fff",
205
+ fontSize: 18,
206
+ fontWeight: "600",
207
+ marginBottom: 8,
208
+ textAlign: "center"
209
+ },
210
+ permBody: {
211
+ color: "#ccc",
212
+ fontSize: 14,
213
+ textAlign: "center",
214
+ marginBottom: 20
215
+ },
216
+ settingsBtn: {
217
+ borderWidth: 1.5,
218
+ borderRadius: 10,
219
+ paddingVertical: 12,
220
+ paddingHorizontal: 24
221
+ },
222
+ settingsText: {
223
+ fontSize: 15,
224
+ fontWeight: "600"
225
+ }
226
+ });
227
+ //# sourceMappingURL=camera-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_jsxRuntime","visionCamera","loadVisionCamera","CameraView","facing","active","primaryColor","overlay","instruction","captureErrorText","permissionTitle","permissionBody","openSettingsLabel","captureLabel","onCapture","onPermissionDenied","Camera","useCameraDevice","useCameraPermission","camera","useRef","device","hasPermission","requestPermission","capturing","setCapturing","useState","permissionChecked","setPermissionChecked","captureFailed","setCaptureFailed","useEffect","cancelled","granted","takePhoto","current","photo","flash","path","width","height","jsxs","View","style","styles","center","children","jsx","Text","permTitle","permBody","Pressable","settingsBtn","borderColor","onPress","Linking","openSettings","settingsText","color","ActivityIndicator","fill","ref","StyleSheet","absoluteFill","isActive","bottomBar","accessibilityRole","captureError","accessibilityLabel","shutterOuter","disabled","shutterInner","shutterBusy","create","flex","backgroundColor","alignItems","justifyContent","padding","position","bottom","left","right","paddingBottom","fontSize","marginBottom","textAlign","paddingHorizontal","fontWeight","borderRadius","borderWidth","paddingVertical"],"sourceRoot":"../../../src","sources":["camera/camera-view.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CameraView", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _cameraView.CameraView;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "compressCapture", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _photoCapture.compressCapture;
16
+ }
17
+ });
18
+ var _cameraView = require("./camera-view.js");
19
+ var _photoCapture = require("./photo-capture.js");
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_cameraView","require","_photoCapture"],"sourceRoot":"../../../src","sources":["camera/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.compressCapture = compressCapture;
7
+ var _expoImageManipulator = require("expo-image-manipulator");
8
+ /**
9
+ * Normalize + compress a captured photo into a CaptureAsset ready for upload.
10
+ *
11
+ * Decoupled from vision-camera: callers pass a plain { path } (the camera hook maps
12
+ * VisionCamera's PhotoFile to this). Keeps the 10 MB server cap in mind by resizing
13
+ * the longest edge and compressing to JPEG.
14
+ */
15
+
16
+ const MAX_EDGE = 1600;
17
+ function toFileUri(path) {
18
+ return path.startsWith("file://") || path.startsWith("content://") ? path : `file://${path}`;
19
+ }
20
+ function fileName(type, ts) {
21
+ const base = type === "document_front" ? "front" : type === "document_back" ? "back" : "selfie";
22
+ return `${base}_${ts}.jpg`;
23
+ }
24
+ async function compressCapture(type, photo, timestamp) {
25
+ const uri = toFileUri(photo.path);
26
+
27
+ // Resize the longest edge to MAX_EDGE (only downscale) and compress to JPEG.
28
+ const longest = Math.max(photo.width ?? 0, photo.height ?? 0);
29
+ const resize = longest > MAX_EDGE ? (photo.width ?? 0) >= (photo.height ?? 0) ? [{
30
+ resize: {
31
+ width: MAX_EDGE
32
+ }
33
+ }] : [{
34
+ resize: {
35
+ height: MAX_EDGE
36
+ }
37
+ }] : [];
38
+ const result = await (0, _expoImageManipulator.manipulateAsync)(uri, resize, {
39
+ compress: 0.8,
40
+ format: _expoImageManipulator.SaveFormat.JPEG
41
+ });
42
+ return {
43
+ uri: result.uri,
44
+ name: fileName(type, timestamp),
45
+ type: "image/jpeg",
46
+ width: result.width,
47
+ height: result.height
48
+ };
49
+ }
50
+ //# sourceMappingURL=photo-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_expoImageManipulator","require","MAX_EDGE","toFileUri","path","startsWith","fileName","type","ts","base","compressCapture","photo","timestamp","uri","longest","Math","max","width","height","resize","result","manipulateAsync","compress","format","SaveFormat","JPEG","name"],"sourceRoot":"../../../src","sources":["camera/photo-capture.ts"],"mappings":";;;;;;AAOA,IAAAA,qBAAA,GAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,MAAMC,QAAQ,GAAG,IAAI;AAErB,SAASC,SAASA,CAACC,IAAY,EAAU;EACrC,OAAOA,IAAI,CAACC,UAAU,CAAC,SAAS,CAAC,IAAID,IAAI,CAACC,UAAU,CAAC,YAAY,CAAC,GAAGD,IAAI,GAAG,UAAUA,IAAI,EAAE;AAChG;AAEA,SAASE,QAAQA,CAACC,IAAiB,EAAEC,EAAU,EAAU;EACrD,MAAMC,IAAI,GAAGF,IAAI,KAAK,gBAAgB,GAAG,OAAO,GAAGA,IAAI,KAAK,eAAe,GAAG,MAAM,GAAG,QAAQ;EAC/F,OAAO,GAAGE,IAAI,IAAID,EAAE,MAAM;AAC9B;AAEO,eAAeE,eAAeA,CACjCH,IAAiB,EACjBI,KAAe,EACfC,SAAiB,EACI;EACrB,MAAMC,GAAG,GAAGV,SAAS,CAACQ,KAAK,CAACP,IAAI,CAAC;;EAEjC;EACA,MAAMU,OAAO,GAAGC,IAAI,CAACC,GAAG,CAACL,KAAK,CAACM,KAAK,IAAI,CAAC,EAAEN,KAAK,CAACO,MAAM,IAAI,CAAC,CAAC;EAC7D,MAAMC,MAAM,GACRL,OAAO,GAAGZ,QAAQ,GACZ,CAACS,KAAK,CAACM,KAAK,IAAI,CAAC,MAAMN,KAAK,CAACO,MAAM,IAAI,CAAC,CAAC,GACrC,CAAC;IAAEC,MAAM,EAAE;MAAEF,KAAK,EAAEf;IAAS;EAAE,CAAC,CAAC,GACjC,CAAC;IAAEiB,MAAM,EAAE;MAAED,MAAM,EAAEhB;IAAS;EAAE,CAAC,CAAC,GACtC,EAAE;EAEZ,MAAMkB,MAAM,GAAG,MAAM,IAAAC,qCAAe,EAACR,GAAG,EAAEM,MAAM,EAAE;IAC9CG,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEC,gCAAU,CAACC;EACvB,CAAC,CAAC;EAEF,OAAO;IACHZ,GAAG,EAAEO,MAAM,CAACP,GAAG;IACfa,IAAI,EAAEpB,QAAQ,CAACC,IAAI,EAAEK,SAAS,CAAC;IAC/BL,IAAI,EAAE,YAAY;IAClBU,KAAK,EAAEG,MAAM,CAACH,KAAK;IACnBC,MAAM,EAAEE,MAAM,CAACF;EACnB,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateFingerprint = generateFingerprint;
7
+ var Device = _interopRequireWildcard(require("expo-device"));
8
+ var Localization = _interopRequireWildcard(require("expo-localization"));
9
+ var _reactNative = require("react-native");
10
+ var _hmac = require("./hmac.js");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ /**
13
+ * Device fingerprint for RN (replaces the web SDK's canvas/WebGL fingerprint).
14
+ *
15
+ * Built from stable device + locale attributes available without extra permissions.
16
+ * Best-effort: the gateway does not currently require this header.
17
+ */
18
+
19
+ function generateFingerprint() {
20
+ const platform = `${_reactNative.Platform.OS} ${String(_reactNative.Platform.Version)}`;
21
+ const osVersion = Device.osVersion ?? String(_reactNative.Platform.Version);
22
+ const deviceModel = [Device.brand, Device.modelName].filter(Boolean).join(" ") || "unknown";
23
+ const {
24
+ width,
25
+ height,
26
+ scale
27
+ } = _reactNative.Dimensions.get("screen");
28
+ const screenResolution = `${Math.round(width)}x${Math.round(height)}@${scale}`;
29
+ const timezone = Localization.getCalendars()[0]?.timeZone ?? "unknown";
30
+ const language = Localization.getLocales()[0]?.languageTag ?? "unknown";
31
+ const components = [platform, osVersion, deviceModel, screenResolution, timezone, language, Device.osName ?? ""];
32
+ const fingerprintHash = (0, _hmac.sha256Hex)(components.join("|"));
33
+ return {
34
+ platform,
35
+ osVersion,
36
+ deviceModel,
37
+ screenResolution,
38
+ timezone,
39
+ language,
40
+ fingerprintHash
41
+ };
42
+ }
43
+ //# sourceMappingURL=fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Device","_interopRequireWildcard","require","Localization","_reactNative","_hmac","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","generateFingerprint","platform","Platform","OS","String","Version","osVersion","deviceModel","brand","modelName","filter","Boolean","join","width","height","scale","Dimensions","screenResolution","Math","round","timezone","getCalendars","timeZone","language","getLocales","languageTag","components","osName","fingerprintHash","sha256Hex"],"sourceRoot":"../../../src","sources":["crypto/fingerprint.ts"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAGA,IAAAG,KAAA,GAAAH,OAAA;AAAmC,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAXnC;AACA;AACA;AACA;AACA;AACA;;AAQO,SAASkB,mBAAmBA,CAAA,EAAsB;EACrD,MAAMC,QAAQ,GAAG,GAAGC,qBAAQ,CAACC,EAAE,IAAIC,MAAM,CAACF,qBAAQ,CAACG,OAAO,CAAC,EAAE;EAC7D,MAAMC,SAAS,GAAG/B,MAAM,CAAC+B,SAAS,IAAIF,MAAM,CAACF,qBAAQ,CAACG,OAAO,CAAC;EAC9D,MAAME,WAAW,GAAG,CAAChC,MAAM,CAACiC,KAAK,EAAEjC,MAAM,CAACkC,SAAS,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;EAE3F,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGC,uBAAU,CAACvB,GAAG,CAAC,QAAQ,CAAC;EACzD,MAAMwB,gBAAgB,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACN,KAAK,CAAC,IAAIK,IAAI,CAACC,KAAK,CAACL,MAAM,CAAC,IAAIC,KAAK,EAAE;EAE9E,MAAMK,QAAQ,GAAG1C,YAAY,CAAC2C,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEC,QAAQ,IAAI,SAAS;EACtE,MAAMC,QAAQ,GAAG7C,YAAY,CAAC8C,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEC,WAAW,IAAI,SAAS;EAEvE,MAAMC,UAAU,GAAG,CACfzB,QAAQ,EACRK,SAAS,EACTC,WAAW,EACXU,gBAAgB,EAChBG,QAAQ,EACRG,QAAQ,EACRhD,MAAM,CAACoD,MAAM,IAAI,EAAE,CACtB;EAED,MAAMC,eAAe,GAAG,IAAAC,eAAS,EAACH,UAAU,CAACd,IAAI,CAAC,GAAG,CAAC,CAAC;EAEvD,OAAO;IACHX,QAAQ;IACRK,SAAS;IACTC,WAAW;IACXU,gBAAgB;IAChBG,QAAQ;IACRG,QAAQ;IACRK;EACJ,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateNonce = generateNonce;
7
+ exports.hmacSha256Hex = hmacSha256Hex;
8
+ exports.sha256Bytes = sha256Bytes;
9
+ exports.sha256Hex = sha256Hex;
10
+ /**
11
+ * Pure-JS SHA-256 and HMAC-SHA256.
12
+ *
13
+ * Self-contained (no native dependency) so it runs identically on device and in
14
+ * node tests, and never blocks the verification flow. The web SDK used
15
+ * `crypto.subtle`; expo-crypto exposes digests but not raw HMAC, so we implement
16
+ * the standard ipad/opad construction here. Signatures are best-effort — the
17
+ * KwikId gateway enforces only the Bearer token.
18
+ */
19
+
20
+ const K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];
21
+ function rotr(x, n) {
22
+ return x >>> n | x << 32 - n;
23
+ }
24
+
25
+ /** SHA-256 over raw bytes → 32-byte digest. */
26
+ function sha256Bytes(message) {
27
+ const h = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];
28
+
29
+ // Pre-processing (padding).
30
+ const bitLen = message.length * 8;
31
+ const withOne = message.length + 1;
32
+ const totalLen = withOne + (56 - withOne % 64 + 64) % 64 + 8;
33
+ const padded = new Uint8Array(totalLen);
34
+ padded.set(message);
35
+ padded[message.length] = 0x80;
36
+ // Append 64-bit big-endian length (top 32 bits assumed 0 for our payload sizes).
37
+ const dv = new DataView(padded.buffer);
38
+ dv.setUint32(totalLen - 4, bitLen >>> 0, false);
39
+ dv.setUint32(totalLen - 8, Math.floor(bitLen / 0x100000000), false);
40
+ const w = new Uint32Array(64);
41
+ for (let offset = 0; offset < totalLen; offset += 64) {
42
+ for (let i = 0; i < 16; i++) {
43
+ w[i] = dv.getUint32(offset + i * 4, false);
44
+ }
45
+ for (let i = 16; i < 64; i++) {
46
+ const s0 = rotr(w[i - 15], 7) ^ rotr(w[i - 15], 18) ^ w[i - 15] >>> 3;
47
+ const s1 = rotr(w[i - 2], 17) ^ rotr(w[i - 2], 19) ^ w[i - 2] >>> 10;
48
+ w[i] = w[i - 16] + s0 + w[i - 7] + s1 >>> 0;
49
+ }
50
+ let [a, b, c, d, e, f, g, hh] = h;
51
+ for (let i = 0; i < 64; i++) {
52
+ const S1 = rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);
53
+ const ch = e & f ^ ~e & g;
54
+ const temp1 = hh + S1 + ch + K[i] + w[i] >>> 0;
55
+ const S0 = rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22);
56
+ const maj = a & b ^ a & c ^ b & c;
57
+ const temp2 = S0 + maj >>> 0;
58
+ hh = g;
59
+ g = f;
60
+ f = e;
61
+ e = d + temp1 >>> 0;
62
+ d = c;
63
+ c = b;
64
+ b = a;
65
+ a = temp1 + temp2 >>> 0;
66
+ }
67
+ h[0] = h[0] + a >>> 0;
68
+ h[1] = h[1] + b >>> 0;
69
+ h[2] = h[2] + c >>> 0;
70
+ h[3] = h[3] + d >>> 0;
71
+ h[4] = h[4] + e >>> 0;
72
+ h[5] = h[5] + f >>> 0;
73
+ h[6] = h[6] + g >>> 0;
74
+ h[7] = h[7] + hh >>> 0;
75
+ }
76
+ const out = new Uint8Array(32);
77
+ const outDv = new DataView(out.buffer);
78
+ for (let i = 0; i < 8; i++) outDv.setUint32(i * 4, h[i], false);
79
+ return out;
80
+ }
81
+ function utf8Bytes(str) {
82
+ // Minimal UTF-8 encoder (TextEncoder may be absent in some RN engines).
83
+ const bytes = [];
84
+ for (let i = 0; i < str.length; i++) {
85
+ let code = str.charCodeAt(i);
86
+ if (code < 0x80) {
87
+ bytes.push(code);
88
+ } else if (code < 0x800) {
89
+ bytes.push(0xc0 | code >> 6, 0x80 | code & 0x3f);
90
+ } else if (code >= 0xd800 && code <= 0xdbff) {
91
+ // Surrogate pair.
92
+ const hi = code;
93
+ const lo = str.charCodeAt(++i);
94
+ code = 0x10000 + (hi - 0xd800 << 10) + (lo - 0xdc00);
95
+ bytes.push(0xf0 | code >> 18, 0x80 | code >> 12 & 0x3f, 0x80 | code >> 6 & 0x3f, 0x80 | code & 0x3f);
96
+ } else {
97
+ bytes.push(0xe0 | code >> 12, 0x80 | code >> 6 & 0x3f, 0x80 | code & 0x3f);
98
+ }
99
+ }
100
+ return new Uint8Array(bytes);
101
+ }
102
+ function toHex(bytes) {
103
+ let hex = "";
104
+ for (let i = 0; i < bytes.length; i++) {
105
+ hex += bytes[i].toString(16).padStart(2, "0");
106
+ }
107
+ return hex;
108
+ }
109
+
110
+ /** SHA-256 of a UTF-8 string → lowercase hex. */
111
+ function sha256Hex(message) {
112
+ return toHex(sha256Bytes(utf8Bytes(message)));
113
+ }
114
+ const BLOCK_SIZE = 64;
115
+
116
+ /** HMAC-SHA256(message, key) → lowercase hex. */
117
+ function hmacSha256Hex(message, key) {
118
+ let keyBytes = utf8Bytes(key);
119
+ if (keyBytes.length > BLOCK_SIZE) {
120
+ keyBytes = sha256Bytes(keyBytes);
121
+ }
122
+ const block = new Uint8Array(BLOCK_SIZE);
123
+ block.set(keyBytes);
124
+ const ipad = new Uint8Array(BLOCK_SIZE);
125
+ const opad = new Uint8Array(BLOCK_SIZE);
126
+ for (let i = 0; i < BLOCK_SIZE; i++) {
127
+ ipad[i] = block[i] ^ 0x36;
128
+ opad[i] = block[i] ^ 0x5c;
129
+ }
130
+ const msgBytes = utf8Bytes(message);
131
+ const inner = new Uint8Array(BLOCK_SIZE + msgBytes.length);
132
+ inner.set(ipad);
133
+ inner.set(msgBytes, BLOCK_SIZE);
134
+ const innerHash = sha256Bytes(inner);
135
+ const outer = new Uint8Array(BLOCK_SIZE + innerHash.length);
136
+ outer.set(opad);
137
+ outer.set(innerHash, BLOCK_SIZE);
138
+ return toHex(sha256Bytes(outer));
139
+ }
140
+
141
+ /** Generate a hex nonce. Deterministic seed optional for tests. */
142
+ function generateNonce(length = 32, seed) {
143
+ const rand = seed ?? Math.random;
144
+ let hex = "";
145
+ for (let i = 0; i < length; i++) {
146
+ hex += Math.floor(rand() * 256).toString(16).padStart(2, "0");
147
+ }
148
+ return hex;
149
+ }
150
+ //# sourceMappingURL=hmac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["K","rotr","x","n","sha256Bytes","message","h","bitLen","length","withOne","totalLen","padded","Uint8Array","set","dv","DataView","buffer","setUint32","Math","floor","w","Uint32Array","offset","i","getUint32","s0","s1","a","b","c","d","e","f","g","hh","S1","ch","temp1","S0","maj","temp2","out","outDv","utf8Bytes","str","bytes","code","charCodeAt","push","hi","lo","toHex","hex","toString","padStart","sha256Hex","BLOCK_SIZE","hmacSha256Hex","key","keyBytes","block","ipad","opad","msgBytes","inner","innerHash","outer","generateNonce","seed","rand","random"],"sourceRoot":"../../../src","sources":["crypto/hmac.ts"],"mappings":"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","ignoreList":[]}