datakeen-session-react 1.1.12 → 1.1.21
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/.gitlab-ci.yml +65 -0
- package/README.md +156 -55
- package/dist/index.d.ts +19 -2
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +33 -17723
- package/dist/index.mjs.map +1 -1
- package/docs/environment.md +27 -0
- package/docs/sdk_integration_guide.md +58 -0
- package/eslint.config.js +13 -0
- package/package.json +35 -41
- package/postcss.config.js +6 -0
- package/rollup.dev.config.js +55 -0
- package/tailwind.config.js +9 -0
- package/dist/assets/index.d.ts +0 -6
- package/dist/components/DatakeenSession.d.ts +0 -21
- package/dist/components/icons/PoweredByIcon.d.ts +0 -5
- package/dist/components/icons/StartIcon.d.ts +0 -5
- package/dist/components/id-check/BeforePhoto.d.ts +0 -5
- package/dist/components/id-check/BeforeVersoPhoto.d.ts +0 -5
- package/dist/components/id-check/CameraError.d.ts +0 -7
- package/dist/components/id-check/CameraMask.d.ts +0 -9
- package/dist/components/id-check/OrientationToggle.d.ts +0 -6
- package/dist/components/id-check/Photo.d.ts +0 -5
- package/dist/components/id-check/PhotoConfirmation.d.ts +0 -13
- package/dist/components/id-check/PhotoProcessingLoader.d.ts +0 -11
- package/dist/components/jdi/JDIDocumentSelection.d.ts +0 -8
- package/dist/components/jdi/JDIDocumentUpload.d.ts +0 -9
- package/dist/components/jdi/JDIError.d.ts +0 -7
- package/dist/components/jdi/JDIIntroduction.d.ts +0 -8
- package/dist/components/jdi/JDIPreIntroduction.d.ts +0 -7
- package/dist/components/jdi/JDIProcessing.d.ts +0 -9
- package/dist/components/jdi/JDISuccess.d.ts +0 -6
- package/dist/components/selfie/SelfieConfirmation.d.ts +0 -8
- package/dist/components/selfie/Video.d.ts +0 -8
- package/dist/components/selfie/VideoResetStyles.d.ts +0 -6
- package/dist/components/selfie/hooks/useVideoRecorderStyles.d.ts +0 -6
- package/dist/components/selfie/selfie-flow/InstructionsSelfie.d.ts +0 -6
- package/dist/components/selfie/selfie-flow/SelfieFlow.d.ts +0 -6
- package/dist/components/selfie/selfie-flow/SelfiePreIntroduction.d.ts +0 -6
- package/dist/components/selfie/selfie-flow/SelfieRecorder.d.ts +0 -7
- package/dist/components/selfie/utils/videoElementStyles.d.ts +0 -14
- package/dist/components/session/ChooseCountryJDI.d.ts +0 -48
- package/dist/components/session/ContactInfoForm.d.ts +0 -3
- package/dist/components/session/DocumentCheck.d.ts +0 -13
- package/dist/components/session/EndFlow.d.ts +0 -21
- package/dist/components/session/IDCheck.d.ts +0 -8
- package/dist/components/session/JDICheck.d.ts +0 -9
- package/dist/components/session/MobileRedirect.d.ts +0 -8
- package/dist/components/session/OTPVerification.d.ts +0 -12
- package/dist/components/session/Selfie.d.ts +0 -9
- package/dist/components/session/SessionExpired.d.ts +0 -11
- package/dist/components/session/StartSession.d.ts +0 -5
- package/dist/components/session/UserInputForm.d.ts +0 -3
- package/dist/components/start-flow/CGU.d.ts +0 -4
- package/dist/components/start-flow/Start.d.ts +0 -4
- package/dist/components/ui/Body.d.ts +0 -5
- package/dist/components/ui/Button.d.ts +0 -21
- package/dist/components/ui/ButtonDesktop.d.ts +0 -9
- package/dist/components/ui/Camera.d.ts +0 -0
- package/dist/components/ui/Card.d.ts +0 -9
- package/dist/components/ui/OTPInput.d.ts +0 -11
- package/dist/components/ui/Paper.d.ts +0 -7
- package/dist/components/ui/PoweredBy.d.ts +0 -5
- package/dist/components/ui/QRCodeDisplay.d.ts +0 -10
- package/dist/components/ui/Select.d.ts +0 -3
- package/dist/components/ui/SelectComponent.d.ts +0 -16
- package/dist/components/ui/SelectDrawer.d.ts +0 -12
- package/dist/components/ui/Subtitle.d.ts +0 -5
- package/dist/components/ui/Title.d.ts +0 -5
- package/dist/config/env.d.ts +0 -5
- package/dist/context/DocumentContext.d.ts +0 -13
- package/dist/hooks/useIsMobile.d.ts +0 -2
- package/dist/hooks/useSession.d.ts +0 -9
- package/dist/main.css +0 -1
- package/dist/services/analysis.d.ts +0 -2
- package/dist/services/api.d.ts +0 -38
- package/dist/services/cameraService.d.ts +0 -17
- package/dist/services/documentDetectionService.d.ts +0 -14
- package/dist/services/documentService.d.ts +0 -0
- package/dist/services/sessionService.d.ts +0 -254
- package/dist/services/utils.d.ts +0 -3
- package/dist/style.css +0 -1
- package/dist/types/camera.d.ts +0 -16
- package/dist/types/contactInfo.d.ts +0 -12
- package/dist/types/selfie.d.ts +0 -4
- package/dist/types/session.d.ts +0 -21
- package/dist/types/ui/select.d.ts +0 -11
- package/dist/types/uploadFiles.d.ts +0 -4
- package/dist/types/userInput.d.ts +0 -26
- package/dist/utils/chooseDocuments/frenchDocumentTypes.d.ts +0 -9
- package/dist/utils/chooseDocuments/spanishDocumentTypes.d.ts +0 -9
- package/dist/utils/jdiCountry.d.ts +0 -10
- package/dist/utils/languages.d.ts +0 -4
- package/dist/utils/mimeTypes.d.ts +0 -1
- package/dist/utils/stepsAnalysis.d.ts +0 -18
- package/dist/utils/utils.d.ts +0 -5
- /package/{dist/components/session/EndSession.d.ts → assets/logo.svg} +0 -0
package/.gitlab-ci.yml
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
stages:
|
|
2
|
+
- test
|
|
3
|
+
- lint
|
|
4
|
+
- publish
|
|
5
|
+
|
|
6
|
+
#############################################
|
|
7
|
+
# #
|
|
8
|
+
# TESTS #
|
|
9
|
+
# #
|
|
10
|
+
#############################################
|
|
11
|
+
|
|
12
|
+
test:
|
|
13
|
+
stage: test
|
|
14
|
+
image: node:18
|
|
15
|
+
script:
|
|
16
|
+
- echo "[TODO] TESTS"
|
|
17
|
+
only:
|
|
18
|
+
- main
|
|
19
|
+
- merge_requests
|
|
20
|
+
|
|
21
|
+
############################################
|
|
22
|
+
# #
|
|
23
|
+
# LINT #
|
|
24
|
+
# #
|
|
25
|
+
############################################
|
|
26
|
+
|
|
27
|
+
lint:
|
|
28
|
+
stage: lint
|
|
29
|
+
image: node:18
|
|
30
|
+
script:
|
|
31
|
+
- npm ci
|
|
32
|
+
- npm run lint || true
|
|
33
|
+
only:
|
|
34
|
+
- main
|
|
35
|
+
- merge_requests
|
|
36
|
+
needs:
|
|
37
|
+
- test
|
|
38
|
+
|
|
39
|
+
#################################################
|
|
40
|
+
# #
|
|
41
|
+
# PUBLISH #
|
|
42
|
+
# #
|
|
43
|
+
#################################################
|
|
44
|
+
|
|
45
|
+
publish:
|
|
46
|
+
stage: publish
|
|
47
|
+
image: node:latest
|
|
48
|
+
script:
|
|
49
|
+
- git config user.email "ci@example.com"
|
|
50
|
+
- git config user.name "CI Bot"
|
|
51
|
+
- git remote set-url origin https://${CI_PUSH_USER}:${CI_PUSH_TOKEN}@gitlab.com/datakeenteam/teamfullstack/client-sessions-react-sdk.git
|
|
52
|
+
|
|
53
|
+
- echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
|
|
54
|
+
- npm ci
|
|
55
|
+
- npm run build
|
|
56
|
+
- 'npm version patch -m "chore(release): %s [ci skip]"'
|
|
57
|
+
|
|
58
|
+
- git push origin HEAD:main
|
|
59
|
+
- git push origin --tags
|
|
60
|
+
|
|
61
|
+
- npm publish
|
|
62
|
+
only:
|
|
63
|
+
- main
|
|
64
|
+
needs:
|
|
65
|
+
- lint
|
package/README.md
CHANGED
|
@@ -1,87 +1,188 @@
|
|
|
1
|
-
#
|
|
1
|
+
# SDK Datakeen Session React
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<div style="background-color: #11E5C5; height: 8px; width: 100px; margin-bottom: 20px;"></div>
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<div style="display: flex; align-items: center; margin-bottom: 30px;">
|
|
6
|
+
<img src="./assets/logo.svg" alt="Datakeen Logo" width="180"/>
|
|
7
|
+
<span style="font-size: 20px; color: #3C3C40; margin-left: 20px; font-weight: 500;">Documentation Technique</span>
|
|
8
|
+
</div>
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
<div style="color: #3C3C40; font-size: 16px;">
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
- Ajout du JSX runtime automatique
|
|
11
|
-
- Externalisation de React, React-DOM et JSX runtime
|
|
12
|
-
- Externalisation des dépendances UI (Radix, Headless UI, Lucide)
|
|
12
|
+
## 📦 Installation du SDK
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
- React et React-DOM déplacés vers `peerDependencies` et `devDependencies`
|
|
16
|
-
- Dépendances UI déplacées vers `peerDependencies` pour éviter la duplication
|
|
17
|
-
|
|
18
|
-
### Installation dans une application React
|
|
14
|
+
Pour intégrer le SDK Datakeen Session dans votre projet React, vous pouvez utiliser npm, yarn ou pnpm :
|
|
19
15
|
|
|
20
16
|
```bash
|
|
17
|
+
# Via npm
|
|
21
18
|
npm install datakeen-session-react
|
|
19
|
+
|
|
20
|
+
# Via yarn
|
|
21
|
+
yarn add datakeen-session-react
|
|
22
|
+
|
|
23
|
+
# Via pnpm
|
|
24
|
+
pnpm add datakeen-session-react
|
|
22
25
|
```
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
## 🚀 Guide de démarrage rapide
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
### Prérequis
|
|
30
|
+
|
|
31
|
+
- Une application React fonctionnelle (React 16.8+ recommandé pour support des Hooks)
|
|
32
|
+
- Un identifiant de session Datakeen valide (obtenu via l'API Datakeen)
|
|
33
|
+
|
|
34
|
+
### Étape 1 : Importer le SDK
|
|
35
|
+
|
|
36
|
+
```jsx
|
|
37
|
+
import useSession from "datakeen-session-react";
|
|
28
38
|
```
|
|
29
39
|
|
|
30
|
-
###
|
|
40
|
+
### Étape 2 : Initialiser et afficher la session
|
|
31
41
|
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
|
|
42
|
+
```jsx
|
|
43
|
+
const MonComposant = () => {
|
|
44
|
+
// Initialisation avec l'ID de session
|
|
45
|
+
const { SessionComponent } = useSession("votre-session-id");
|
|
35
46
|
|
|
36
|
-
function App() {
|
|
37
|
-
const session = useSession();
|
|
38
|
-
|
|
39
47
|
return (
|
|
40
|
-
<div
|
|
41
|
-
{/*
|
|
48
|
+
<div>
|
|
49
|
+
{/* Intégrez le composant de session où vous le souhaitez */}
|
|
50
|
+
{SessionComponent}
|
|
42
51
|
</div>
|
|
43
52
|
);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export default App;
|
|
53
|
+
};
|
|
47
54
|
```
|
|
48
55
|
|
|
49
|
-
|
|
56
|
+
## 💡 Cas d'utilisation courants
|
|
50
57
|
|
|
51
|
-
|
|
58
|
+
### Intégration dans une page de vérification d'identité
|
|
59
|
+
|
|
60
|
+
```jsx
|
|
61
|
+
import React from "react";
|
|
62
|
+
import useSession from "datakeen-session-react";
|
|
63
|
+
|
|
64
|
+
const VerificationPage = () => {
|
|
65
|
+
// Vous pouvez récupérer l'ID de session depuis votre backend
|
|
66
|
+
const sessionId = "votre-session-id";
|
|
67
|
+
const { SessionComponent } = useSession(sessionId);
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<div className="verification-container">
|
|
71
|
+
<h1>Vérification d'identité</h1>
|
|
72
|
+
<p>Merci de suivre les étapes ci-dessous pour vérifier votre identité</p>
|
|
73
|
+
|
|
74
|
+
{/* Le SDK gère automatiquement toutes les étapes du processus */}
|
|
75
|
+
<div className="session-wrapper">{SessionComponent}</div>
|
|
76
|
+
</div>
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
```
|
|
52
80
|
|
|
53
|
-
|
|
54
|
-
|
|
81
|
+
### Intégration dans un flux d'onboarding
|
|
82
|
+
|
|
83
|
+
```jsx
|
|
84
|
+
import React, { useState } from "react";
|
|
85
|
+
import useSession from "datakeen-session-react";
|
|
86
|
+
|
|
87
|
+
const OnboardingFlow = () => {
|
|
88
|
+
const [step, setStep] = useState(1);
|
|
89
|
+
const [sessionId, setSessionId] = useState(null);
|
|
90
|
+
|
|
91
|
+
// Fonction pour initialiser la session après l'étape 1
|
|
92
|
+
const initializeSession = async (userData) => {
|
|
93
|
+
// Exemple d'appel API pour obtenir un ID de session
|
|
94
|
+
const response = await fetch("https://api.votreservice.com/init-session", {
|
|
95
|
+
method: "POST",
|
|
96
|
+
body: JSON.stringify(userData),
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
const data = await response.json();
|
|
100
|
+
setSessionId(data.sessionId);
|
|
101
|
+
setStep(2);
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// Rendu conditionnel basé sur l'étape
|
|
105
|
+
if (step === 1) {
|
|
106
|
+
return (
|
|
107
|
+
<div>
|
|
108
|
+
<h2>Étape 1: Informations de base</h2>
|
|
109
|
+
{/* Votre formulaire de collecte d'informations */}
|
|
110
|
+
<button
|
|
111
|
+
onClick={() =>
|
|
112
|
+
initializeSession({
|
|
113
|
+
/* données utilisateur */
|
|
114
|
+
})
|
|
115
|
+
}
|
|
116
|
+
>
|
|
117
|
+
Continuer
|
|
118
|
+
</button>
|
|
119
|
+
</div>
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (step === 2 && sessionId) {
|
|
124
|
+
const { SessionComponent } = useSession(sessionId);
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<div>
|
|
128
|
+
<h2>Étape 2: Vérification d'identité</h2>
|
|
129
|
+
{SessionComponent}
|
|
130
|
+
</div>
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
55
134
|
```
|
|
56
135
|
|
|
57
|
-
|
|
136
|
+
## 📋 Flux de vérification supportés
|
|
137
|
+
|
|
138
|
+
Le SDK prend en charge les documents d'identité des pays suivants :
|
|
139
|
+
|
|
140
|
+
- 🇫🇷 France
|
|
141
|
+
|
|
142
|
+
Les types de documents supportés incluent :
|
|
58
143
|
|
|
59
|
-
|
|
144
|
+
- Carte Nationale d'Identité
|
|
145
|
+
- Passeport
|
|
146
|
+
- Permis de conduire
|
|
147
|
+
- Titre de séjour
|
|
60
148
|
|
|
61
|
-
|
|
62
|
-
2. Assurez-vous qu'il n'y a qu'une seule version de React dans votre projet :
|
|
63
|
-
```bash
|
|
64
|
-
npm ls react
|
|
65
|
-
```
|
|
66
|
-
3. Si nécessaire, utilisez les résolutions de package dans votre `package.json` :
|
|
67
|
-
```json
|
|
68
|
-
"resolutions": {
|
|
69
|
-
"react": "^18.0.0",
|
|
70
|
-
"react-dom": "^18.0.0"
|
|
71
|
-
}
|
|
72
|
-
```
|
|
149
|
+
## 🔧 Personnalisation
|
|
73
150
|
|
|
74
|
-
|
|
151
|
+
Le SDK s'intègre naturellement avec votre interface utilisateur et adopte automatiquement les styles CSS de votre application. Pour une personnalisation avancée, vous pouvez encapsuler le composant de session dans vos propres conteneurs stylisés.
|
|
75
152
|
|
|
76
|
-
|
|
153
|
+
## ⚙️ Configuration de l'environnement
|
|
154
|
+
|
|
155
|
+
Le SDK utilise des variables d'environnement pour la configuration. Pour configurer l'URL de l'API, créez un fichier `.env` à la racine de votre projet avec le contenu suivant :
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
VITE_API_BASE_URL=http://localhost:8888
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Pour une configuration rapide, vous pouvez utiliser la commande suivante dans le projet SDK :
|
|
77
162
|
|
|
78
163
|
```bash
|
|
79
|
-
npm run
|
|
80
|
-
npm run build
|
|
164
|
+
npm run setup:env
|
|
81
165
|
```
|
|
82
166
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
167
|
+
Cette commande génère les fichiers `.env` nécessaires pour le SDK et le projet de démo.
|
|
168
|
+
|
|
169
|
+
Pour plus de détails sur la configuration de l'environnement, consultez [la documentation dédiée](./docs/environment.md).
|
|
170
|
+
|
|
171
|
+
## 💬 Support et assistance
|
|
172
|
+
|
|
173
|
+
Pour toute question technique ou problème d'intégration :
|
|
174
|
+
|
|
175
|
+
- **Email Support**: support@datakeen.co
|
|
176
|
+
- **Documentation API**: [https://api.datakeen.co/docs](https://api.datakeen.co/docs)
|
|
177
|
+
- **Site Web**: [www.datakeen.co](https://www.datakeen.co)
|
|
178
|
+
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<div style="background-color: #11E5C5; color: white; padding: 15px; border-radius: 5px; margin-top: 30px; display: flex; align-items: center; justify-content: space-between;">
|
|
182
|
+
<div>
|
|
183
|
+
<strong>Datakeen</strong> - Solutions d'identité numérique
|
|
184
|
+
</div>
|
|
185
|
+
<div>
|
|
186
|
+
Dernière mise à jour: Juin 2025
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface SessionConfig {
|
|
4
|
+
selfie?: boolean;
|
|
5
|
+
requireMobile?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface UseSessionReturn {
|
|
8
|
+
SessionComponent: React.ReactElement;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Custom hook to manage the session component.
|
|
13
|
+
* @param {string} sessionId - The ID of the session.
|
|
14
|
+
* @param {SessionConfig} sessionConfig - Configuration for the session (optional).
|
|
15
|
+
* @returns {UseSessionReturn} - An object containing the session component. The session component is a React element that can be rendered in your application.
|
|
16
|
+
*/
|
|
17
|
+
declare const useSession: (sessionId: string, sessionConfig?: SessionConfig) => UseSessionReturn;
|
|
18
|
+
|
|
19
|
+
export { useSession as default };
|