@kwik-id/sdk-react-native 0.0.0-stage → 0.1.0-alpha.0
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.
- package/LICENSE +22 -0
- package/README.md +81 -2
- package/app.plugin.js +40 -0
- package/lib/commonjs/api/api-client.js +213 -0
- package/lib/commonjs/api/api-client.js.map +1 -0
- package/lib/commonjs/api/api-error.js +29 -0
- package/lib/commonjs/api/api-error.js.map +1 -0
- package/lib/commonjs/api/index.js +33 -0
- package/lib/commonjs/api/index.js.map +1 -0
- package/lib/commonjs/api/upload.js +74 -0
- package/lib/commonjs/api/upload.js.map +1 -0
- package/lib/commonjs/camera/camera-view.js +227 -0
- package/lib/commonjs/camera/camera-view.js.map +1 -0
- package/lib/commonjs/camera/index.js +20 -0
- package/lib/commonjs/camera/index.js.map +1 -0
- package/lib/commonjs/camera/photo-capture.js +50 -0
- package/lib/commonjs/camera/photo-capture.js.map +1 -0
- package/lib/commonjs/crypto/fingerprint.js +43 -0
- package/lib/commonjs/crypto/fingerprint.js.map +1 -0
- package/lib/commonjs/crypto/hmac.js +150 -0
- package/lib/commonjs/crypto/hmac.js.map +1 -0
- package/lib/commonjs/crypto/index.js +39 -0
- package/lib/commonjs/crypto/index.js.map +1 -0
- package/lib/commonjs/crypto/session-manager.js +173 -0
- package/lib/commonjs/crypto/session-manager.js.map +1 -0
- package/lib/commonjs/i18n/en.js +297 -0
- package/lib/commonjs/i18n/en.js.map +1 -0
- package/lib/commonjs/i18n/fr.js +294 -0
- package/lib/commonjs/i18n/fr.js.map +1 -0
- package/lib/commonjs/i18n/index.js +34 -0
- package/lib/commonjs/i18n/index.js.map +1 -0
- package/lib/commonjs/i18n/locale.js +20 -0
- package/lib/commonjs/i18n/locale.js.map +1 -0
- package/lib/commonjs/i18n/translator.js +37 -0
- package/lib/commonjs/i18n/translator.js.map +1 -0
- package/lib/commonjs/index.js +187 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/lib/device-detector.js +34 -0
- package/lib/commonjs/lib/device-detector.js.map +1 -0
- package/lib/commonjs/lib/event-emitter.js +85 -0
- package/lib/commonjs/lib/event-emitter.js.map +1 -0
- package/lib/commonjs/lib/index.js +63 -0
- package/lib/commonjs/lib/index.js.map +1 -0
- package/lib/commonjs/lib/kwik-id-rn-sdk.js +156 -0
- package/lib/commonjs/lib/kwik-id-rn-sdk.js.map +1 -0
- package/lib/commonjs/lib/verification-machine.js +276 -0
- package/lib/commonjs/lib/verification-machine.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types/events.js +6 -0
- package/lib/commonjs/types/events.js.map +1 -0
- package/lib/commonjs/types/index.js +2 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/ui/components/KwikIDVerificationModal.js +407 -0
- package/lib/commonjs/ui/components/KwikIDVerificationModal.js.map +1 -0
- package/lib/commonjs/ui/components/screens.js +338 -0
- package/lib/commonjs/ui/components/screens.js.map +1 -0
- package/lib/commonjs/ui/context/kwik-id-provider.js +52 -0
- package/lib/commonjs/ui/context/kwik-id-provider.js.map +1 -0
- package/lib/commonjs/ui/hooks/use-kwik-verification.js +77 -0
- package/lib/commonjs/ui/hooks/use-kwik-verification.js.map +1 -0
- package/lib/commonjs/ui/index.js +33 -0
- package/lib/commonjs/ui/index.js.map +1 -0
- package/lib/module/api/api-client.js +208 -0
- package/lib/module/api/api-client.js.map +1 -0
- package/lib/module/api/api-error.js +24 -0
- package/lib/module/api/api-error.js.map +1 -0
- package/lib/module/api/index.js +6 -0
- package/lib/module/api/index.js.map +1 -0
- package/lib/module/api/upload.js +68 -0
- package/lib/module/api/upload.js.map +1 -0
- package/lib/module/camera/camera-view.js +222 -0
- package/lib/module/camera/camera-view.js.map +1 -0
- package/lib/module/camera/index.js +5 -0
- package/lib/module/camera/index.js.map +1 -0
- package/lib/module/camera/photo-capture.js +45 -0
- package/lib/module/camera/photo-capture.js.map +1 -0
- package/lib/module/crypto/fingerprint.js +37 -0
- package/lib/module/crypto/fingerprint.js.map +1 -0
- package/lib/module/crypto/hmac.js +143 -0
- package/lib/module/crypto/hmac.js.map +1 -0
- package/lib/module/crypto/index.js +6 -0
- package/lib/module/crypto/index.js.map +1 -0
- package/lib/module/crypto/session-manager.js +169 -0
- package/lib/module/crypto/session-manager.js.map +1 -0
- package/lib/module/i18n/en.js +293 -0
- package/lib/module/i18n/en.js.map +1 -0
- package/lib/module/i18n/fr.js +290 -0
- package/lib/module/i18n/fr.js.map +1 -0
- package/lib/module/i18n/index.js +11 -0
- package/lib/module/i18n/index.js.map +1 -0
- package/lib/module/i18n/locale.js +15 -0
- package/lib/module/i18n/locale.js.map +1 -0
- package/lib/module/i18n/translator.js +34 -0
- package/lib/module/i18n/translator.js.map +1 -0
- package/lib/module/index.js +30 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/lib/device-detector.js +26 -0
- package/lib/module/lib/device-detector.js.map +1 -0
- package/lib/module/lib/event-emitter.js +80 -0
- package/lib/module/lib/event-emitter.js.map +1 -0
- package/lib/module/lib/index.js +6 -0
- package/lib/module/lib/index.js.map +1 -0
- package/lib/module/lib/kwik-id-rn-sdk.js +150 -0
- package/lib/module/lib/kwik-id-rn-sdk.js.map +1 -0
- package/lib/module/lib/verification-machine.js +268 -0
- package/lib/module/lib/verification-machine.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types/events.js +4 -0
- package/lib/module/types/events.js.map +1 -0
- package/lib/module/types/index.js +2 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/ui/components/KwikIDVerificationModal.js +402 -0
- package/lib/module/ui/components/KwikIDVerificationModal.js.map +1 -0
- package/lib/module/ui/components/screens.js +328 -0
- package/lib/module/ui/components/screens.js.map +1 -0
- package/lib/module/ui/context/kwik-id-provider.js +46 -0
- package/lib/module/ui/context/kwik-id-provider.js.map +1 -0
- package/lib/module/ui/hooks/use-kwik-verification.js +72 -0
- package/lib/module/ui/hooks/use-kwik-verification.js.map +1 -0
- package/lib/module/ui/index.js +6 -0
- package/lib/module/ui/index.js.map +1 -0
- package/lib/typescript/commonjs/api/api-client.d.ts +82 -0
- package/lib/typescript/commonjs/api/api-client.d.ts.map +1 -0
- package/lib/typescript/commonjs/api/api-error.d.ts +13 -0
- package/lib/typescript/commonjs/api/api-error.d.ts.map +1 -0
- package/lib/typescript/commonjs/api/index.d.ts +6 -0
- package/lib/typescript/commonjs/api/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/api/upload.d.ts +19 -0
- package/lib/typescript/commonjs/api/upload.d.ts.map +1 -0
- package/lib/typescript/commonjs/camera/camera-view.d.ts +25 -0
- package/lib/typescript/commonjs/camera/camera-view.d.ts.map +1 -0
- package/lib/typescript/commonjs/camera/index.d.ts +5 -0
- package/lib/typescript/commonjs/camera/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/camera/photo-capture.d.ts +9 -0
- package/lib/typescript/commonjs/camera/photo-capture.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/fingerprint.d.ts +3 -0
- package/lib/typescript/commonjs/crypto/fingerprint.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/hmac.d.ts +18 -0
- package/lib/typescript/commonjs/crypto/hmac.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/index.d.ts +4 -0
- package/lib/typescript/commonjs/crypto/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/session-manager.d.ts +27 -0
- package/lib/typescript/commonjs/crypto/session-manager.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n/en.d.ts +291 -0
- package/lib/typescript/commonjs/i18n/en.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n/fr.d.ts +6 -0
- package/lib/typescript/commonjs/i18n/fr.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n/index.d.ts +10 -0
- package/lib/typescript/commonjs/i18n/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n/locale.d.ts +4 -0
- package/lib/typescript/commonjs/i18n/locale.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n/translator.d.ts +15 -0
- package/lib/typescript/commonjs/i18n/translator.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +24 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/lib/device-detector.d.ts +5 -0
- package/lib/typescript/commonjs/lib/device-detector.d.ts.map +1 -0
- package/lib/typescript/commonjs/lib/event-emitter.d.ts +19 -0
- package/lib/typescript/commonjs/lib/event-emitter.d.ts.map +1 -0
- package/lib/typescript/commonjs/lib/index.d.ts +5 -0
- package/lib/typescript/commonjs/lib/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/lib/kwik-id-rn-sdk.d.ts +43 -0
- package/lib/typescript/commonjs/lib/kwik-id-rn-sdk.d.ts.map +1 -0
- package/lib/typescript/commonjs/lib/verification-machine.d.ts +78 -0
- package/lib/typescript/commonjs/lib/verification-machine.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/types/events.d.ts +94 -0
- package/lib/typescript/commonjs/types/events.d.ts.map +1 -0
- package/lib/typescript/commonjs/types/index.d.ts +242 -0
- package/lib/typescript/commonjs/types/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/KwikIDVerificationModal.d.ts +21 -0
- package/lib/typescript/commonjs/ui/components/KwikIDVerificationModal.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/screens.d.ts +46 -0
- package/lib/typescript/commonjs/ui/components/screens.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/context/kwik-id-provider.d.ts +19 -0
- package/lib/typescript/commonjs/ui/context/kwik-id-provider.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/use-kwik-verification.d.ts +29 -0
- package/lib/typescript/commonjs/ui/hooks/use-kwik-verification.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/index.d.ts +7 -0
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -0
- package/lib/typescript/module/api/api-client.d.ts +82 -0
- package/lib/typescript/module/api/api-client.d.ts.map +1 -0
- package/lib/typescript/module/api/api-error.d.ts +13 -0
- package/lib/typescript/module/api/api-error.d.ts.map +1 -0
- package/lib/typescript/module/api/index.d.ts +6 -0
- package/lib/typescript/module/api/index.d.ts.map +1 -0
- package/lib/typescript/module/api/upload.d.ts +19 -0
- package/lib/typescript/module/api/upload.d.ts.map +1 -0
- package/lib/typescript/module/camera/camera-view.d.ts +25 -0
- package/lib/typescript/module/camera/camera-view.d.ts.map +1 -0
- package/lib/typescript/module/camera/index.d.ts +5 -0
- package/lib/typescript/module/camera/index.d.ts.map +1 -0
- package/lib/typescript/module/camera/photo-capture.d.ts +9 -0
- package/lib/typescript/module/camera/photo-capture.d.ts.map +1 -0
- package/lib/typescript/module/crypto/fingerprint.d.ts +3 -0
- package/lib/typescript/module/crypto/fingerprint.d.ts.map +1 -0
- package/lib/typescript/module/crypto/hmac.d.ts +18 -0
- package/lib/typescript/module/crypto/hmac.d.ts.map +1 -0
- package/lib/typescript/module/crypto/index.d.ts +4 -0
- package/lib/typescript/module/crypto/index.d.ts.map +1 -0
- package/lib/typescript/module/crypto/session-manager.d.ts +27 -0
- package/lib/typescript/module/crypto/session-manager.d.ts.map +1 -0
- package/lib/typescript/module/i18n/en.d.ts +291 -0
- package/lib/typescript/module/i18n/en.d.ts.map +1 -0
- package/lib/typescript/module/i18n/fr.d.ts +6 -0
- package/lib/typescript/module/i18n/fr.d.ts.map +1 -0
- package/lib/typescript/module/i18n/index.d.ts +10 -0
- package/lib/typescript/module/i18n/index.d.ts.map +1 -0
- package/lib/typescript/module/i18n/locale.d.ts +4 -0
- package/lib/typescript/module/i18n/locale.d.ts.map +1 -0
- package/lib/typescript/module/i18n/translator.d.ts +15 -0
- package/lib/typescript/module/i18n/translator.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +24 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/lib/device-detector.d.ts +5 -0
- package/lib/typescript/module/lib/device-detector.d.ts.map +1 -0
- package/lib/typescript/module/lib/event-emitter.d.ts +19 -0
- package/lib/typescript/module/lib/event-emitter.d.ts.map +1 -0
- package/lib/typescript/module/lib/index.d.ts +5 -0
- package/lib/typescript/module/lib/index.d.ts.map +1 -0
- package/lib/typescript/module/lib/kwik-id-rn-sdk.d.ts +43 -0
- package/lib/typescript/module/lib/kwik-id-rn-sdk.d.ts.map +1 -0
- package/lib/typescript/module/lib/verification-machine.d.ts +78 -0
- package/lib/typescript/module/lib/verification-machine.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/types/events.d.ts +94 -0
- package/lib/typescript/module/types/events.d.ts.map +1 -0
- package/lib/typescript/module/types/index.d.ts +242 -0
- package/lib/typescript/module/types/index.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/KwikIDVerificationModal.d.ts +21 -0
- package/lib/typescript/module/ui/components/KwikIDVerificationModal.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/screens.d.ts +46 -0
- package/lib/typescript/module/ui/components/screens.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/kwik-id-provider.d.ts +19 -0
- package/lib/typescript/module/ui/context/kwik-id-provider.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/use-kwik-verification.d.ts +29 -0
- package/lib/typescript/module/ui/hooks/use-kwik-verification.d.ts.map +1 -0
- package/lib/typescript/module/ui/index.d.ts +7 -0
- package/lib/typescript/module/ui/index.d.ts.map +1 -0
- package/package.json +121 -3
- package/src/api/api-client.ts +319 -0
- package/src/api/api-error.ts +28 -0
- package/src/api/index.ts +12 -0
- package/src/api/upload.ts +87 -0
- package/src/camera/camera-view.tsx +217 -0
- package/src/camera/index.ts +4 -0
- package/src/camera/photo-capture.ts +58 -0
- package/src/crypto/fingerprint.ts +46 -0
- package/src/crypto/hmac.ts +172 -0
- package/src/crypto/index.ts +3 -0
- package/src/crypto/session-manager.ts +200 -0
- package/src/i18n/en.ts +315 -0
- package/src/i18n/fr.ts +325 -0
- package/src/i18n/index.ts +9 -0
- package/src/i18n/locale.ts +15 -0
- package/src/i18n/translator.ts +37 -0
- package/src/index.ts +102 -0
- package/src/lib/device-detector.ts +32 -0
- package/src/lib/event-emitter.ts +90 -0
- package/src/lib/index.ts +15 -0
- package/src/lib/kwik-id-rn-sdk.ts +160 -0
- package/src/lib/verification-machine.ts +273 -0
- package/src/types/events.ts +75 -0
- package/src/types/index.ts +309 -0
- package/src/ui/components/KwikIDVerificationModal.tsx +450 -0
- package/src/ui/components/screens.tsx +283 -0
- package/src/ui/context/kwik-id-provider.tsx +72 -0
- package/src/ui/hooks/use-kwik-verification.ts +121 -0
- package/src/ui/index.ts +9 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Presentational step screens for the Phase 1 verification flow.
|
|
5
|
+
* Plain RN components (no reanimated yet) — kept simple and theme-driven.
|
|
6
|
+
*/
|
|
7
|
+
import { ActivityIndicator, Image, Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const DOC_LABEL_KEYS = {
|
|
10
|
+
id_card: "documentType.idCard",
|
|
11
|
+
passport: "documentType.passport",
|
|
12
|
+
drivers_license: "documentType.driversLicense",
|
|
13
|
+
voters_card: "documentType.votersCard",
|
|
14
|
+
residence_permit: "documentType.residencePermit"
|
|
15
|
+
};
|
|
16
|
+
function docLabel(type, t) {
|
|
17
|
+
return t(DOC_LABEL_KEYS[type]);
|
|
18
|
+
}
|
|
19
|
+
function PrimaryButton({
|
|
20
|
+
label,
|
|
21
|
+
onPress,
|
|
22
|
+
theme
|
|
23
|
+
}) {
|
|
24
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
25
|
+
style: [styles.btn, {
|
|
26
|
+
backgroundColor: theme.primary
|
|
27
|
+
}],
|
|
28
|
+
onPress: onPress,
|
|
29
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
30
|
+
style: styles.btnText,
|
|
31
|
+
children: label
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export function IntroScreen({
|
|
36
|
+
orgName,
|
|
37
|
+
onNext,
|
|
38
|
+
theme,
|
|
39
|
+
t
|
|
40
|
+
}) {
|
|
41
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
42
|
+
style: styles.screen,
|
|
43
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
44
|
+
style: [styles.h1, {
|
|
45
|
+
color: theme.foreground
|
|
46
|
+
}],
|
|
47
|
+
children: t("intro.title")
|
|
48
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
49
|
+
style: styles.body,
|
|
50
|
+
children: [orgName ? `${t("intro.orgUsesKwikID", {
|
|
51
|
+
orgName
|
|
52
|
+
})} ` : "", t("intro.bodyMobile")]
|
|
53
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
54
|
+
style: styles.spacer
|
|
55
|
+
}), /*#__PURE__*/_jsx(PrimaryButton, {
|
|
56
|
+
label: t("intro.getStarted"),
|
|
57
|
+
onPress: onNext,
|
|
58
|
+
theme: theme
|
|
59
|
+
})]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
export function DocumentTypeScreen({
|
|
63
|
+
allowed,
|
|
64
|
+
onSelect,
|
|
65
|
+
theme,
|
|
66
|
+
t
|
|
67
|
+
}) {
|
|
68
|
+
return /*#__PURE__*/_jsxs(ScrollView, {
|
|
69
|
+
contentContainerStyle: styles.screen,
|
|
70
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
71
|
+
style: [styles.h1, {
|
|
72
|
+
color: theme.foreground
|
|
73
|
+
}],
|
|
74
|
+
children: t("documentType.chooseTitle")
|
|
75
|
+
}), allowed.map(doc => /*#__PURE__*/_jsxs(Pressable, {
|
|
76
|
+
style: styles.docRow,
|
|
77
|
+
onPress: () => onSelect(doc),
|
|
78
|
+
accessibilityRole: "button",
|
|
79
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
80
|
+
style: [styles.docLabel, {
|
|
81
|
+
color: theme.foreground
|
|
82
|
+
}],
|
|
83
|
+
children: docLabel(doc, t)
|
|
84
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
85
|
+
style: [styles.chevron, {
|
|
86
|
+
color: theme.primary
|
|
87
|
+
}],
|
|
88
|
+
children: "\u203A"
|
|
89
|
+
})]
|
|
90
|
+
}, doc))]
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const PREPARE_COPY_KEYS = {
|
|
94
|
+
front: {
|
|
95
|
+
title: "prepareFront.titleMobile",
|
|
96
|
+
body: "prepareFront.bodyMobile"
|
|
97
|
+
},
|
|
98
|
+
back: {
|
|
99
|
+
title: "prepareBack.titleMobile",
|
|
100
|
+
body: "prepareBack.bodyMobile"
|
|
101
|
+
},
|
|
102
|
+
selfie: {
|
|
103
|
+
title: "prepareSelfie.titleMobile",
|
|
104
|
+
body: "prepareSelfie.bodyMobile"
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
export function PrepareScreen({
|
|
108
|
+
kind,
|
|
109
|
+
onNext,
|
|
110
|
+
theme,
|
|
111
|
+
t
|
|
112
|
+
}) {
|
|
113
|
+
const copy = PREPARE_COPY_KEYS[kind];
|
|
114
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
115
|
+
style: styles.screen,
|
|
116
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
117
|
+
style: [styles.h1, {
|
|
118
|
+
color: theme.foreground
|
|
119
|
+
}],
|
|
120
|
+
children: t(copy.title)
|
|
121
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
122
|
+
style: styles.body,
|
|
123
|
+
children: t(copy.body)
|
|
124
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
125
|
+
style: styles.spacer
|
|
126
|
+
}), /*#__PURE__*/_jsx(PrimaryButton, {
|
|
127
|
+
label: t("common.imReady"),
|
|
128
|
+
onPress: onNext,
|
|
129
|
+
theme: theme
|
|
130
|
+
})]
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
export function ConfirmScreen({
|
|
134
|
+
asset,
|
|
135
|
+
onConfirm,
|
|
136
|
+
onRetake,
|
|
137
|
+
theme,
|
|
138
|
+
t
|
|
139
|
+
}) {
|
|
140
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
141
|
+
style: styles.screen,
|
|
142
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
143
|
+
style: [styles.h1, {
|
|
144
|
+
color: theme.foreground
|
|
145
|
+
}],
|
|
146
|
+
children: t("confirm.looksGoodTitle")
|
|
147
|
+
}), /*#__PURE__*/_jsx(Image, {
|
|
148
|
+
source: {
|
|
149
|
+
uri: asset.uri
|
|
150
|
+
},
|
|
151
|
+
style: styles.preview,
|
|
152
|
+
resizeMode: "contain"
|
|
153
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
154
|
+
style: styles.spacer
|
|
155
|
+
}), /*#__PURE__*/_jsx(PrimaryButton, {
|
|
156
|
+
label: t("confirm.useThisPhoto"),
|
|
157
|
+
onPress: onConfirm,
|
|
158
|
+
theme: theme
|
|
159
|
+
}), /*#__PURE__*/_jsx(Pressable, {
|
|
160
|
+
style: styles.linkBtn,
|
|
161
|
+
onPress: onRetake,
|
|
162
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
163
|
+
style: [styles.linkText, {
|
|
164
|
+
color: theme.primary
|
|
165
|
+
}],
|
|
166
|
+
children: t("common.retake")
|
|
167
|
+
})
|
|
168
|
+
})]
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
export function ProcessingScreen({
|
|
172
|
+
progress,
|
|
173
|
+
stage,
|
|
174
|
+
theme,
|
|
175
|
+
t
|
|
176
|
+
}) {
|
|
177
|
+
const label = stage === "submitting" ? t("processing.submitting") : stage === "document_front" ? t("processing.uploadingFront") : stage === "document_back" ? t("processing.uploadingBack") : stage === "selfie" ? t("processing.uploadingSelfie") : t("processing.working");
|
|
178
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
179
|
+
style: styles.center,
|
|
180
|
+
children: [/*#__PURE__*/_jsx(ActivityIndicator, {
|
|
181
|
+
size: "large",
|
|
182
|
+
color: theme.primary
|
|
183
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
184
|
+
style: [styles.body, {
|
|
185
|
+
marginTop: 16
|
|
186
|
+
}],
|
|
187
|
+
children: label
|
|
188
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
189
|
+
style: styles.progressTrack,
|
|
190
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
191
|
+
style: [styles.progressFill, {
|
|
192
|
+
width: `${progress}%`,
|
|
193
|
+
backgroundColor: theme.primary
|
|
194
|
+
}]
|
|
195
|
+
})
|
|
196
|
+
})]
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
export function ResultScreen({
|
|
200
|
+
success,
|
|
201
|
+
message,
|
|
202
|
+
onDone,
|
|
203
|
+
theme,
|
|
204
|
+
t
|
|
205
|
+
}) {
|
|
206
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
207
|
+
style: styles.center,
|
|
208
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
209
|
+
style: [styles.resultBadge, {
|
|
210
|
+
backgroundColor: success ? "#16a34a" : "#dc2626"
|
|
211
|
+
}],
|
|
212
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
213
|
+
style: styles.resultIcon,
|
|
214
|
+
children: success ? "✓" : "!"
|
|
215
|
+
})
|
|
216
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
217
|
+
style: [styles.h1, {
|
|
218
|
+
color: theme.foreground,
|
|
219
|
+
textAlign: "center",
|
|
220
|
+
marginTop: 16
|
|
221
|
+
}],
|
|
222
|
+
children: t(success ? "result.submittedShort" : "result.somethingWrong")
|
|
223
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
224
|
+
style: [styles.body, {
|
|
225
|
+
textAlign: "center"
|
|
226
|
+
}],
|
|
227
|
+
children: message
|
|
228
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
229
|
+
style: styles.spacer
|
|
230
|
+
}), /*#__PURE__*/_jsx(PrimaryButton, {
|
|
231
|
+
label: t("common.done"),
|
|
232
|
+
onPress: onDone,
|
|
233
|
+
theme: theme
|
|
234
|
+
})]
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
const styles = StyleSheet.create({
|
|
238
|
+
screen: {
|
|
239
|
+
flex: 1,
|
|
240
|
+
padding: 24
|
|
241
|
+
},
|
|
242
|
+
center: {
|
|
243
|
+
flex: 1,
|
|
244
|
+
padding: 24,
|
|
245
|
+
alignItems: "center",
|
|
246
|
+
justifyContent: "center"
|
|
247
|
+
},
|
|
248
|
+
h1: {
|
|
249
|
+
fontSize: 22,
|
|
250
|
+
fontWeight: "700",
|
|
251
|
+
marginBottom: 12
|
|
252
|
+
},
|
|
253
|
+
body: {
|
|
254
|
+
fontSize: 15,
|
|
255
|
+
lineHeight: 22,
|
|
256
|
+
color: "#4b5563"
|
|
257
|
+
},
|
|
258
|
+
spacer: {
|
|
259
|
+
flex: 1,
|
|
260
|
+
minHeight: 24
|
|
261
|
+
},
|
|
262
|
+
btn: {
|
|
263
|
+
borderRadius: 12,
|
|
264
|
+
paddingVertical: 16,
|
|
265
|
+
alignItems: "center"
|
|
266
|
+
},
|
|
267
|
+
btnText: {
|
|
268
|
+
color: "#fff",
|
|
269
|
+
fontSize: 16,
|
|
270
|
+
fontWeight: "600"
|
|
271
|
+
},
|
|
272
|
+
linkBtn: {
|
|
273
|
+
paddingVertical: 14,
|
|
274
|
+
alignItems: "center"
|
|
275
|
+
},
|
|
276
|
+
linkText: {
|
|
277
|
+
fontSize: 15,
|
|
278
|
+
fontWeight: "600"
|
|
279
|
+
},
|
|
280
|
+
docRow: {
|
|
281
|
+
flexDirection: "row",
|
|
282
|
+
alignItems: "center",
|
|
283
|
+
justifyContent: "space-between",
|
|
284
|
+
paddingVertical: 18,
|
|
285
|
+
borderBottomWidth: 1,
|
|
286
|
+
borderBottomColor: "#eee"
|
|
287
|
+
},
|
|
288
|
+
docLabel: {
|
|
289
|
+
fontSize: 16,
|
|
290
|
+
fontWeight: "500"
|
|
291
|
+
},
|
|
292
|
+
chevron: {
|
|
293
|
+
fontSize: 24,
|
|
294
|
+
fontWeight: "300"
|
|
295
|
+
},
|
|
296
|
+
preview: {
|
|
297
|
+
flex: 1,
|
|
298
|
+
width: "100%",
|
|
299
|
+
marginVertical: 16,
|
|
300
|
+
borderRadius: 12,
|
|
301
|
+
backgroundColor: "#f3f4f6"
|
|
302
|
+
},
|
|
303
|
+
progressTrack: {
|
|
304
|
+
width: "80%",
|
|
305
|
+
height: 6,
|
|
306
|
+
borderRadius: 3,
|
|
307
|
+
backgroundColor: "#e5e7eb",
|
|
308
|
+
marginTop: 20,
|
|
309
|
+
overflow: "hidden"
|
|
310
|
+
},
|
|
311
|
+
progressFill: {
|
|
312
|
+
height: 6,
|
|
313
|
+
borderRadius: 3
|
|
314
|
+
},
|
|
315
|
+
resultBadge: {
|
|
316
|
+
width: 64,
|
|
317
|
+
height: 64,
|
|
318
|
+
borderRadius: 32,
|
|
319
|
+
alignItems: "center",
|
|
320
|
+
justifyContent: "center"
|
|
321
|
+
},
|
|
322
|
+
resultIcon: {
|
|
323
|
+
color: "#fff",
|
|
324
|
+
fontSize: 32,
|
|
325
|
+
fontWeight: "700"
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
//# sourceMappingURL=screens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ActivityIndicator","Image","Pressable","ScrollView","StyleSheet","Text","View","jsx","_jsx","jsxs","_jsxs","DOC_LABEL_KEYS","id_card","passport","drivers_license","voters_card","residence_permit","docLabel","type","t","PrimaryButton","label","onPress","theme","style","styles","btn","backgroundColor","primary","children","btnText","IntroScreen","orgName","onNext","screen","h1","color","foreground","body","spacer","DocumentTypeScreen","allowed","onSelect","contentContainerStyle","map","doc","docRow","accessibilityRole","chevron","PREPARE_COPY_KEYS","front","title","back","selfie","PrepareScreen","kind","copy","ConfirmScreen","asset","onConfirm","onRetake","source","uri","preview","resizeMode","linkBtn","linkText","ProcessingScreen","progress","stage","center","size","marginTop","progressTrack","progressFill","width","ResultScreen","success","message","onDone","resultBadge","resultIcon","textAlign","create","flex","padding","alignItems","justifyContent","fontSize","fontWeight","marginBottom","lineHeight","minHeight","borderRadius","paddingVertical","flexDirection","borderBottomWidth","borderBottomColor","marginVertical","height","overflow"],"sourceRoot":"../../../../src","sources":["ui/components/screens.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* KwikIDProvider / useKwikID — optional context for advanced integrations that want
|
|
5
|
+
* to share a single SDK instance + theme across custom screens. The imperative
|
|
6
|
+
* `useKwikVerification` hook does NOT require this provider.
|
|
7
|
+
*/
|
|
8
|
+
import { createContext, createElement, useContext, useEffect, useMemo, useState } from "react";
|
|
9
|
+
import { KwikIdRNSDK } from "../../lib/kwik-id-rn-sdk.js";
|
|
10
|
+
const KwikIDContext = /*#__PURE__*/createContext(null);
|
|
11
|
+
export function KwikIDProvider({
|
|
12
|
+
config,
|
|
13
|
+
autoInitialize = true,
|
|
14
|
+
children
|
|
15
|
+
}) {
|
|
16
|
+
const sdk = useMemo(() => new KwikIdRNSDK(config), [config]);
|
|
17
|
+
const [sessionInfo, setSessionInfo] = useState(null);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (!autoInitialize) return;
|
|
20
|
+
let active = true;
|
|
21
|
+
sdk.initialize().then(info => active && setSessionInfo(info)).catch(() => undefined);
|
|
22
|
+
return () => {
|
|
23
|
+
active = false;
|
|
24
|
+
sdk.destroy();
|
|
25
|
+
};
|
|
26
|
+
}, [sdk, autoInitialize]);
|
|
27
|
+
const value = useMemo(() => ({
|
|
28
|
+
sdk,
|
|
29
|
+
sessionInfo,
|
|
30
|
+
orgName: sessionInfo?.orgName,
|
|
31
|
+
allowedDocumentTypes: sessionInfo?.config.documentTypes ?? [],
|
|
32
|
+
livenessMode: config.livenessMode ?? sessionInfo?.config.livenessMode ?? "passive",
|
|
33
|
+
theme: config.theme ?? {}
|
|
34
|
+
}), [sdk, sessionInfo, config.livenessMode, config.theme]);
|
|
35
|
+
return /*#__PURE__*/createElement(KwikIDContext.Provider, {
|
|
36
|
+
value
|
|
37
|
+
}, children);
|
|
38
|
+
}
|
|
39
|
+
export function useKwikID() {
|
|
40
|
+
const ctx = useContext(KwikIDContext);
|
|
41
|
+
if (!ctx) {
|
|
42
|
+
throw new Error("useKwikID must be used within a <KwikIDProvider>");
|
|
43
|
+
}
|
|
44
|
+
return ctx;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=kwik-id-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","createElement","useContext","useEffect","useMemo","useState","KwikIdRNSDK","KwikIDContext","KwikIDProvider","config","autoInitialize","children","sdk","sessionInfo","setSessionInfo","active","initialize","then","info","catch","undefined","destroy","value","orgName","allowedDocumentTypes","documentTypes","livenessMode","theme","Provider","useKwikID","ctx","Error"],"sourceRoot":"../../../../src","sources":["ui/context/kwik-id-provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAE9F,SAASC,WAAW,QAAQ,6BAA0B;AAkBtD,MAAMC,aAAa,gBAAGP,aAAa,CAA4B,IAAI,CAAC;AASpE,OAAO,SAASQ,cAAcA,CAAC;EAAEC,MAAM;EAAEC,cAAc,GAAG,IAAI;EAAEC;AAA8B,CAAC,EAAE;EAC7F,MAAMC,GAAG,GAAGR,OAAO,CAAC,MAAM,IAAIE,WAAW,CAACG,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAC5D,MAAM,CAACI,WAAW,EAAEC,cAAc,CAAC,GAAGT,QAAQ,CAAqB,IAAI,CAAC;EAExEF,SAAS,CAAC,MAAM;IACZ,IAAI,CAACO,cAAc,EAAE;IACrB,IAAIK,MAAM,GAAG,IAAI;IACjBH,GAAG,CAACI,UAAU,CAAC,CAAC,CACXC,IAAI,CAAEC,IAAI,IAAKH,MAAM,IAAID,cAAc,CAACI,IAAI,CAAC,CAAC,CAC9CC,KAAK,CAAC,MAAMC,SAAS,CAAC;IAC3B,OAAO,MAAM;MACTL,MAAM,GAAG,KAAK;MACdH,GAAG,CAACS,OAAO,CAAC,CAAC;IACjB,CAAC;EACL,CAAC,EAAE,CAACT,GAAG,EAAEF,cAAc,CAAC,CAAC;EAEzB,MAAMY,KAAK,GAAGlB,OAAO,CACjB,OAAO;IACHQ,GAAG;IACHC,WAAW;IACXU,OAAO,EAAEV,WAAW,EAAEU,OAAO;IAC7BC,oBAAoB,EAAEX,WAAW,EAAEJ,MAAM,CAACgB,aAAa,IAAI,EAAE;IAC7DC,YAAY,EAAEjB,MAAM,CAACiB,YAAY,IAAIb,WAAW,EAAEJ,MAAM,CAACiB,YAAY,IAAI,SAAS;IAClFC,KAAK,EAAElB,MAAM,CAACkB,KAAK,IAAI,CAAC;EAC5B,CAAC,CAAC,EACF,CAACf,GAAG,EAAEC,WAAW,EAAEJ,MAAM,CAACiB,YAAY,EAAEjB,MAAM,CAACkB,KAAK,CACxD,CAAC;EAED,oBAAO1B,aAAa,CAACM,aAAa,CAACqB,QAAQ,EAAE;IAAEN;EAAM,CAAC,EAAEX,QAAQ,CAAC;AACrE;AAEA,OAAO,SAASkB,SAASA,CAAA,EAAuB;EAC5C,MAAMC,GAAG,GAAG5B,UAAU,CAACK,aAAa,CAAC;EACrC,IAAI,CAACuB,GAAG,EAAE;IACN,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;EACvE;EACA,OAAOD,GAAG;AACd","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* useKwikVerification — imperative entry point (RN analog of the web
|
|
5
|
+
* `openKwikVerification`). Render `<kyc.Modal />` once, then `await kyc.start()`.
|
|
6
|
+
*/
|
|
7
|
+
import { createElement, useCallback, useMemo, useRef, useSyncExternalStore } from "react";
|
|
8
|
+
import { KwikIDVerificationModal } from "../components/KwikIDVerificationModal.js";
|
|
9
|
+
export function useKwikVerification(options) {
|
|
10
|
+
const storeRef = useRef(undefined);
|
|
11
|
+
if (!storeRef.current) {
|
|
12
|
+
storeRef.current = {
|
|
13
|
+
open: false,
|
|
14
|
+
resolve: null,
|
|
15
|
+
listeners: new Set()
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const store = storeRef.current;
|
|
19
|
+
const optionsRef = useRef(options);
|
|
20
|
+
optionsRef.current = options;
|
|
21
|
+
const subscribe = useCallback(cb => {
|
|
22
|
+
store.listeners.add(cb);
|
|
23
|
+
return () => store.listeners.delete(cb);
|
|
24
|
+
}, [store]);
|
|
25
|
+
const getSnapshot = useCallback(() => store.open, [store]);
|
|
26
|
+
const setOpen = useCallback(v => {
|
|
27
|
+
store.open = v;
|
|
28
|
+
store.listeners.forEach(l => l());
|
|
29
|
+
}, [store]);
|
|
30
|
+
const start = useCallback(() => new Promise(resolve => {
|
|
31
|
+
store.resolve = resolve;
|
|
32
|
+
setOpen(true);
|
|
33
|
+
}), [store, setOpen]);
|
|
34
|
+
const finish = useCallback(outcome => {
|
|
35
|
+
setOpen(false);
|
|
36
|
+
const resolve = store.resolve;
|
|
37
|
+
store.resolve = null;
|
|
38
|
+
resolve?.(outcome);
|
|
39
|
+
}, [store, setOpen]);
|
|
40
|
+
const cancel = useCallback(() => finish({
|
|
41
|
+
status: "cancelled"
|
|
42
|
+
}), [finish]);
|
|
43
|
+
const isOpen = useSyncExternalStore(subscribe, getSnapshot);
|
|
44
|
+
const Modal = useMemo(() => {
|
|
45
|
+
const KwikModal = () => {
|
|
46
|
+
const open = useSyncExternalStore(subscribe, getSnapshot);
|
|
47
|
+
const o = optionsRef.current;
|
|
48
|
+
return /*#__PURE__*/createElement(KwikIDVerificationModal, {
|
|
49
|
+
visible: open,
|
|
50
|
+
clientSecret: o.clientSecret,
|
|
51
|
+
baseUrl: o.baseUrl,
|
|
52
|
+
appName: o.appName,
|
|
53
|
+
theme: o.theme,
|
|
54
|
+
locale: o.locale,
|
|
55
|
+
documentTypes: o.documentTypes,
|
|
56
|
+
skipRuntimeCheck: o.skipRuntimeCheck,
|
|
57
|
+
onSubmitted: o.onSubmitted,
|
|
58
|
+
onComplete: finish,
|
|
59
|
+
onClose: () => undefined
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
KwikModal.displayName = "KwikIDModal";
|
|
63
|
+
return KwikModal;
|
|
64
|
+
}, [subscribe, getSnapshot, finish]);
|
|
65
|
+
return {
|
|
66
|
+
start,
|
|
67
|
+
cancel,
|
|
68
|
+
isOpen,
|
|
69
|
+
Modal
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=use-kwik-verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createElement","useCallback","useMemo","useRef","useSyncExternalStore","KwikIDVerificationModal","useKwikVerification","options","storeRef","undefined","current","open","resolve","listeners","Set","store","optionsRef","subscribe","cb","add","delete","getSnapshot","setOpen","v","forEach","l","start","Promise","finish","outcome","cancel","status","isOpen","Modal","KwikModal","o","visible","clientSecret","baseUrl","appName","theme","locale","documentTypes","skipRuntimeCheck","onSubmitted","onComplete","onClose","displayName"],"sourceRoot":"../../../../src","sources":["ui/hooks/use-kwik-verification.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { KwikIDVerificationModal } from "./components/KwikIDVerificationModal.js";
|
|
4
|
+
export { useKwikVerification } from "./hooks/use-kwik-verification.js";
|
|
5
|
+
export { KwikIDProvider, useKwikID } from "./context/kwik-id-provider.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KwikIDVerificationModal","useKwikVerification","KwikIDProvider","useKwikID"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,yCAAsC;AAE9E,SAASC,mBAAmB,QAAQ,kCAA+B;AAKnE,SAASC,cAAc,EAAEC,SAAS,QAAQ,+BAA4B","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RN API client for the KwikId SDK gateway (`/sdk/v1/*`).
|
|
3
|
+
*
|
|
4
|
+
* Ported from @kwik-id/sdk-core: the JSON `request()` (fetch + AbortController) is
|
|
5
|
+
* unchanged; the XMLHttpRequest upload is replaced with an injectable multipart
|
|
6
|
+
* uploader (expo-file-system by default). `liveness_frame` has no server endpoint
|
|
7
|
+
* and is rejected.
|
|
8
|
+
*/
|
|
9
|
+
import { SessionManager } from "../crypto/session-manager";
|
|
10
|
+
import type { CaptureAsset, CaptureType, DocumentType, LivenessResult, QualityResult, SessionInfo, VerificationResult } from "../types";
|
|
11
|
+
import { type Uploader } from "./upload";
|
|
12
|
+
export declare const DEFAULT_BASE_URL = "https://api.identity.kwiknkap.com";
|
|
13
|
+
export interface ApiClientConfig {
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
timeout?: number;
|
|
16
|
+
debug?: boolean;
|
|
17
|
+
/** Custom fetch implementation (for testing). */
|
|
18
|
+
fetch?: typeof fetch;
|
|
19
|
+
/** Custom multipart uploader (for testing). */
|
|
20
|
+
uploader?: Uploader;
|
|
21
|
+
}
|
|
22
|
+
export interface UploadResponse {
|
|
23
|
+
uploadId: string;
|
|
24
|
+
status: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SubmitResponse {
|
|
27
|
+
success: boolean;
|
|
28
|
+
message?: string;
|
|
29
|
+
jobId?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface StatusResponse {
|
|
32
|
+
jobId: string;
|
|
33
|
+
status: "queued" | "processing" | "completed" | "failed" | "verified" | "rejected";
|
|
34
|
+
progress?: number;
|
|
35
|
+
processingStep?: string;
|
|
36
|
+
errorCode?: string;
|
|
37
|
+
errorMessage?: string;
|
|
38
|
+
errorDetails?: {
|
|
39
|
+
document: string;
|
|
40
|
+
errorCode: string;
|
|
41
|
+
errorMessage: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface HandoffValidateResponse {
|
|
45
|
+
valid: boolean;
|
|
46
|
+
orgName?: string;
|
|
47
|
+
orgLogoUrl?: string;
|
|
48
|
+
expiresAt?: string;
|
|
49
|
+
error?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface HandoffRedeemResponse {
|
|
52
|
+
sessionToken: string;
|
|
53
|
+
jobId: string;
|
|
54
|
+
expiresAt: string;
|
|
55
|
+
}
|
|
56
|
+
export declare class ApiClient {
|
|
57
|
+
private config;
|
|
58
|
+
private sessionManager;
|
|
59
|
+
private uploader;
|
|
60
|
+
constructor(sessionManager: SessionManager, config?: Partial<ApiClientConfig>);
|
|
61
|
+
validateSession(clientSecret: string): Promise<SessionInfo>;
|
|
62
|
+
uploadCapture(type: CaptureType, asset: CaptureAsset, onProgress?: (progress: number) => void): Promise<UploadResponse>;
|
|
63
|
+
submitVerification(documentType: DocumentType, clientAnalysis?: {
|
|
64
|
+
qualityScores?: QualityResult;
|
|
65
|
+
livenessResult?: LivenessResult;
|
|
66
|
+
}): Promise<SubmitResponse>;
|
|
67
|
+
getStatus(): Promise<StatusResponse>;
|
|
68
|
+
getResult(): Promise<VerificationResult>;
|
|
69
|
+
pollForResult(options?: {
|
|
70
|
+
maxAttempts?: number;
|
|
71
|
+
intervalMs?: number;
|
|
72
|
+
onProgress?: (status: StatusResponse) => void;
|
|
73
|
+
}): Promise<VerificationResult>;
|
|
74
|
+
validateHandoff(code: string): Promise<HandoffValidateResponse>;
|
|
75
|
+
redeemHandoff(code: string): Promise<HandoffRedeemResponse>;
|
|
76
|
+
reportHandoffStatus(code: string, status: "completed" | "abandoned"): Promise<void>;
|
|
77
|
+
getBaseUrl(): string;
|
|
78
|
+
private request;
|
|
79
|
+
private parseErrorResponse;
|
|
80
|
+
private delay;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../../src/api/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API error (ported verbatim from @kwik-id/sdk-core).
|
|
3
|
+
*/
|
|
4
|
+
export declare class ApiError extends Error {
|
|
5
|
+
readonly statusCode: number;
|
|
6
|
+
readonly code?: string;
|
|
7
|
+
readonly details?: unknown;
|
|
8
|
+
constructor(message: string, statusCode: number, code?: string, details?: unknown);
|
|
9
|
+
isRetryable(): boolean;
|
|
10
|
+
isAuthError(): boolean;
|
|
11
|
+
isValidationError(): boolean;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=api-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../../../src/api/api-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAQjF,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,OAAO;IAItB,iBAAiB,IAAI,OAAO;CAG/B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ApiClient, DEFAULT_BASE_URL } from "./api-client";
|
|
2
|
+
export type { ApiClientConfig, UploadResponse, SubmitResponse, StatusResponse, HandoffValidateResponse, HandoffRedeemResponse, } from "./api-client";
|
|
3
|
+
export { ApiError } from "./api-error";
|
|
4
|
+
export { uploadMultipart } from "./upload";
|
|
5
|
+
export type { Uploader, UploadResult } from "./upload";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EACR,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,qBAAqB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CaptureAsset } from "../types";
|
|
2
|
+
export interface UploadResult {
|
|
3
|
+
uploadId: string;
|
|
4
|
+
status: string;
|
|
5
|
+
}
|
|
6
|
+
export type Uploader = (opts: {
|
|
7
|
+
url: string;
|
|
8
|
+
asset: CaptureAsset;
|
|
9
|
+
headers: Record<string, string>;
|
|
10
|
+
onProgress?: (pct: number) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Inactivity timeout in ms: the upload is cancelled and rejected when no progress
|
|
13
|
+
* (or response) arrives for this long. Omit or pass 0 to disable.
|
|
14
|
+
*/
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
}) => Promise<UploadResult>;
|
|
17
|
+
/** Default uploader — used on device. */
|
|
18
|
+
export declare const uploadMultipart: Uploader;
|
|
19
|
+
//# sourceMappingURL=upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../src/api/upload.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAU5B,yCAAyC;AACzC,eAAO,MAAM,eAAe,EAAE,QAmD7B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { RawPhoto } from "./photo-capture";
|
|
2
|
+
export interface CameraViewProps {
|
|
3
|
+
facing: "front" | "back";
|
|
4
|
+
/** Only render/activate the camera when this view is on screen. */
|
|
5
|
+
active: boolean;
|
|
6
|
+
primaryColor: string;
|
|
7
|
+
/** Optional overlay (e.g. document frame or face oval) drawn over the preview. */
|
|
8
|
+
overlay?: React.ReactNode;
|
|
9
|
+
instruction?: string;
|
|
10
|
+
/** Shown above the shutter when a capture (or the caller's onCapture) fails. */
|
|
11
|
+
captureErrorText?: string;
|
|
12
|
+
/** Permission-denied screen title. */
|
|
13
|
+
permissionTitle?: string;
|
|
14
|
+
/** Permission-denied screen body. */
|
|
15
|
+
permissionBody?: string;
|
|
16
|
+
/** Label of the button that opens the OS settings. */
|
|
17
|
+
openSettingsLabel?: string;
|
|
18
|
+
/** Accessibility label of the shutter button. */
|
|
19
|
+
captureLabel?: string;
|
|
20
|
+
/** May return a promise; a rejection is shown as `captureErrorText` and the user can retry. */
|
|
21
|
+
onCapture: (photo: RawPhoto) => void | Promise<void>;
|
|
22
|
+
onPermissionDenied?: (canAskAgain: boolean) => void;
|
|
23
|
+
}
|
|
24
|
+
export declare function CameraView({ facing, active, primaryColor, overlay, instruction, captureErrorText, permissionTitle, permissionBody, openSettingsLabel, captureLabel, onCapture, onPermissionDenied, }: CameraViewProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//# sourceMappingURL=camera-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera-view.d.ts","sourceRoot":"","sources":["../../../../src/camera/camera-view.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAWhD,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD;AAED,wBAAgB,UAAU,CAAC,EACvB,MAAM,EACN,MAAM,EACN,YAAY,EACZ,OAAO,EACP,WAAW,EACX,gBAAmE,EACnE,eAAwC,EACxC,cAA6E,EAC7E,iBAAmC,EACnC,YAA8B,EAC9B,SAAS,EACT,kBAAkB,GACrB,EAAE,eAAe,2CAkGjB"}
|