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.
Files changed (98) hide show
  1. package/.gitlab-ci.yml +65 -0
  2. package/README.md +156 -55
  3. package/dist/index.d.ts +19 -2
  4. package/dist/index.js +61 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +33 -17723
  7. package/dist/index.mjs.map +1 -1
  8. package/docs/environment.md +27 -0
  9. package/docs/sdk_integration_guide.md +58 -0
  10. package/eslint.config.js +13 -0
  11. package/package.json +35 -41
  12. package/postcss.config.js +6 -0
  13. package/rollup.dev.config.js +55 -0
  14. package/tailwind.config.js +9 -0
  15. package/dist/assets/index.d.ts +0 -6
  16. package/dist/components/DatakeenSession.d.ts +0 -21
  17. package/dist/components/icons/PoweredByIcon.d.ts +0 -5
  18. package/dist/components/icons/StartIcon.d.ts +0 -5
  19. package/dist/components/id-check/BeforePhoto.d.ts +0 -5
  20. package/dist/components/id-check/BeforeVersoPhoto.d.ts +0 -5
  21. package/dist/components/id-check/CameraError.d.ts +0 -7
  22. package/dist/components/id-check/CameraMask.d.ts +0 -9
  23. package/dist/components/id-check/OrientationToggle.d.ts +0 -6
  24. package/dist/components/id-check/Photo.d.ts +0 -5
  25. package/dist/components/id-check/PhotoConfirmation.d.ts +0 -13
  26. package/dist/components/id-check/PhotoProcessingLoader.d.ts +0 -11
  27. package/dist/components/jdi/JDIDocumentSelection.d.ts +0 -8
  28. package/dist/components/jdi/JDIDocumentUpload.d.ts +0 -9
  29. package/dist/components/jdi/JDIError.d.ts +0 -7
  30. package/dist/components/jdi/JDIIntroduction.d.ts +0 -8
  31. package/dist/components/jdi/JDIPreIntroduction.d.ts +0 -7
  32. package/dist/components/jdi/JDIProcessing.d.ts +0 -9
  33. package/dist/components/jdi/JDISuccess.d.ts +0 -6
  34. package/dist/components/selfie/SelfieConfirmation.d.ts +0 -8
  35. package/dist/components/selfie/Video.d.ts +0 -8
  36. package/dist/components/selfie/VideoResetStyles.d.ts +0 -6
  37. package/dist/components/selfie/hooks/useVideoRecorderStyles.d.ts +0 -6
  38. package/dist/components/selfie/selfie-flow/InstructionsSelfie.d.ts +0 -6
  39. package/dist/components/selfie/selfie-flow/SelfieFlow.d.ts +0 -6
  40. package/dist/components/selfie/selfie-flow/SelfiePreIntroduction.d.ts +0 -6
  41. package/dist/components/selfie/selfie-flow/SelfieRecorder.d.ts +0 -7
  42. package/dist/components/selfie/utils/videoElementStyles.d.ts +0 -14
  43. package/dist/components/session/ChooseCountryJDI.d.ts +0 -48
  44. package/dist/components/session/ContactInfoForm.d.ts +0 -3
  45. package/dist/components/session/DocumentCheck.d.ts +0 -13
  46. package/dist/components/session/EndFlow.d.ts +0 -21
  47. package/dist/components/session/IDCheck.d.ts +0 -8
  48. package/dist/components/session/JDICheck.d.ts +0 -9
  49. package/dist/components/session/MobileRedirect.d.ts +0 -8
  50. package/dist/components/session/OTPVerification.d.ts +0 -12
  51. package/dist/components/session/Selfie.d.ts +0 -9
  52. package/dist/components/session/SessionExpired.d.ts +0 -11
  53. package/dist/components/session/StartSession.d.ts +0 -5
  54. package/dist/components/session/UserInputForm.d.ts +0 -3
  55. package/dist/components/start-flow/CGU.d.ts +0 -4
  56. package/dist/components/start-flow/Start.d.ts +0 -4
  57. package/dist/components/ui/Body.d.ts +0 -5
  58. package/dist/components/ui/Button.d.ts +0 -21
  59. package/dist/components/ui/ButtonDesktop.d.ts +0 -9
  60. package/dist/components/ui/Camera.d.ts +0 -0
  61. package/dist/components/ui/Card.d.ts +0 -9
  62. package/dist/components/ui/OTPInput.d.ts +0 -11
  63. package/dist/components/ui/Paper.d.ts +0 -7
  64. package/dist/components/ui/PoweredBy.d.ts +0 -5
  65. package/dist/components/ui/QRCodeDisplay.d.ts +0 -10
  66. package/dist/components/ui/Select.d.ts +0 -3
  67. package/dist/components/ui/SelectComponent.d.ts +0 -16
  68. package/dist/components/ui/SelectDrawer.d.ts +0 -12
  69. package/dist/components/ui/Subtitle.d.ts +0 -5
  70. package/dist/components/ui/Title.d.ts +0 -5
  71. package/dist/config/env.d.ts +0 -5
  72. package/dist/context/DocumentContext.d.ts +0 -13
  73. package/dist/hooks/useIsMobile.d.ts +0 -2
  74. package/dist/hooks/useSession.d.ts +0 -9
  75. package/dist/main.css +0 -1
  76. package/dist/services/analysis.d.ts +0 -2
  77. package/dist/services/api.d.ts +0 -38
  78. package/dist/services/cameraService.d.ts +0 -17
  79. package/dist/services/documentDetectionService.d.ts +0 -14
  80. package/dist/services/documentService.d.ts +0 -0
  81. package/dist/services/sessionService.d.ts +0 -254
  82. package/dist/services/utils.d.ts +0 -3
  83. package/dist/style.css +0 -1
  84. package/dist/types/camera.d.ts +0 -16
  85. package/dist/types/contactInfo.d.ts +0 -12
  86. package/dist/types/selfie.d.ts +0 -4
  87. package/dist/types/session.d.ts +0 -21
  88. package/dist/types/ui/select.d.ts +0 -11
  89. package/dist/types/uploadFiles.d.ts +0 -4
  90. package/dist/types/userInput.d.ts +0 -26
  91. package/dist/utils/chooseDocuments/frenchDocumentTypes.d.ts +0 -9
  92. package/dist/utils/chooseDocuments/spanishDocumentTypes.d.ts +0 -9
  93. package/dist/utils/jdiCountry.d.ts +0 -10
  94. package/dist/utils/languages.d.ts +0 -4
  95. package/dist/utils/mimeTypes.d.ts +0 -1
  96. package/dist/utils/stepsAnalysis.d.ts +0 -18
  97. package/dist/utils/utils.d.ts +0 -5
  98. /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
- # Guide d'intégration - Datakeen Session React SDK
1
+ # SDK Datakeen Session React
2
2
 
3
- ## Résolution du problème ReactCurrentDispatcher
3
+ <div style="background-color: #11E5C5; height: 8px; width: 100px; margin-bottom: 20px;"></div>
4
4
 
5
- Le problème `Cannot read properties of undefined (reading 'ReactCurrentDispatcher')` a été résolu en optimisant la configuration Vite pour un SDK React.
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
- ### Changements apportés
10
+ <div style="color: #3C3C40; font-size: 16px;">
8
11
 
9
- 1. **Configuration Vite** (`vite.config.ts`) :
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
- 2. **Gestion des dépendances** (`package.json`) :
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
- **Important :** Assurez-vous d'avoir installé toutes les peer dependencies :
27
+ ## 🚀 Guide de démarrage rapide
25
28
 
26
- ```bash
27
- npm install react react-dom axios @headlessui/react @radix-ui/react-checkbox @radix-ui/react-icons @radix-ui/react-label @radix-ui/react-select lucide-react
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
- ### Utilisation
40
+ ### Étape 2 : Initialiser et afficher la session
31
41
 
32
- ```tsx
33
- import React from 'react';
34
- import useSession from 'datakeen-session-react';
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 className="App">
41
- {/* Votre composant utilisant le SDK */}
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
- ### CSS
56
+ ## 💡 Cas d'utilisation courants
50
57
 
51
- N'oubliez pas d'importer le CSS du SDK :
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
- ```css
54
- @import 'datakeen-session-react/dist/datakeen-session-react.css';
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
- ### Résolution des problèmes
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
- Si vous rencontrez encore des erreurs :
144
+ - Carte Nationale d'Identité
145
+ - Passeport
146
+ - Permis de conduire
147
+ - Titre de séjour
60
148
 
61
- 1. Vérifiez que toutes les peerDependencies sont installées
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
- ### Build du SDK
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
- Pour rebuilder le SDK après modifications :
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 clean
80
- npm run build
164
+ npm run setup:env
81
165
  ```
82
166
 
83
- Le SDK sera construit dans le dossier `dist/` avec :
84
- - `index.js` (CommonJS)
85
- - `index.mjs` (ES Modules)
86
- - `index.d.ts` (Types TypeScript)
87
- - `datakeen-session-react.css` (Styles)
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 { default as useSession } from './hooks/useSession';
2
- export default useSession;
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 };