@inputdev/sdk 1.0.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/README.md +457 -0
- package/inputdev-sdk.d.ts +54 -0
- package/package.json +46 -0
package/README.md
ADDED
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
# InputDev SDK
|
|
2
|
+
|
|
3
|
+
🚀 **SDK JavaScript ultra-simple pour la soumission de formulaires**
|
|
4
|
+
|
|
5
|
+
Un SDK moderne et intelligent qui facilite l'intégration de formulaires avec votre backend InputDev.
|
|
6
|
+
|
|
7
|
+
## ✨ **Caractéristiques principales**
|
|
8
|
+
|
|
9
|
+
- 🎯 **Installation instantanée** - Un simple attribut HTML
|
|
10
|
+
- 📧 **Validation emails automatique**
|
|
11
|
+
- 🔇 **Mode silencieux** pour la production
|
|
12
|
+
- 🎨 **Messages d'erreur intelligents**
|
|
13
|
+
- 📊 **Logs détaillés et configurables**
|
|
14
|
+
- ⚡ **Compatible avec tous les frameworks**
|
|
15
|
+
|
|
16
|
+
## 🚀 **Installation**
|
|
17
|
+
|
|
18
|
+
### **CDN (recommandé)**
|
|
19
|
+
```html
|
|
20
|
+
<script src="https://cdn.jsdelivr.net/npm/inputdev-sdk@latest/dist/inputdev-sdk.min.js"></script>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### **NPM**
|
|
24
|
+
```bash
|
|
25
|
+
npm install inputdev-sdk
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 📖 **Utilisation rapide**
|
|
29
|
+
|
|
30
|
+
### **1. Formulaire automatique**
|
|
31
|
+
```html
|
|
32
|
+
<form data-inputdev="votre-clé-api">
|
|
33
|
+
<input type="text" name="name" required>
|
|
34
|
+
<input type="email" name="email" required>
|
|
35
|
+
<textarea name="message" required></textarea>
|
|
36
|
+
<button type="submit">Envoyer</button>
|
|
37
|
+
</form>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### **2. Mode silencieux** (pas de logs)
|
|
41
|
+
```html
|
|
42
|
+
<form data-inputdev-silence="votre-clé-api">
|
|
43
|
+
<input type="text" name="name" required>
|
|
44
|
+
<input type="email" name="email" required>
|
|
45
|
+
<textarea name="message" required></textarea>
|
|
46
|
+
<button type="submit">Envoyer</button>
|
|
47
|
+
</form>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**🔇 Mode silencieux =**
|
|
51
|
+
- ❌ **Aucun log dans la console**
|
|
52
|
+
- ❌ **Pas de messages d'erreur visibles**
|
|
53
|
+
- ✅ **Uniquement les événements personnalisés**
|
|
54
|
+
- ✅ **Idéal pour la production**
|
|
55
|
+
|
|
56
|
+
### **3. Appel manuel (avec logs)**
|
|
57
|
+
```javascript
|
|
58
|
+
const dev = new InputDevSDK();
|
|
59
|
+
|
|
60
|
+
await dev.submit("votre-clé-api", {
|
|
61
|
+
name: "John Doe",
|
|
62
|
+
email: "john@example.com",
|
|
63
|
+
message: "Hello!"
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**📊 Mode normal =**
|
|
68
|
+
- ✅ **Logs détaillés dans la console**
|
|
69
|
+
- ✅ **Messages d'erreur intelligents**
|
|
70
|
+
- ✅ **Instructions pour les erreurs courantes**
|
|
71
|
+
- ✅ **Idéal pour le développement**
|
|
72
|
+
|
|
73
|
+
### **4. Appel manuel silencieux**
|
|
74
|
+
```javascript
|
|
75
|
+
await dev.submit("votre-clé-api", "silence", {
|
|
76
|
+
name: "John Doe",
|
|
77
|
+
email: "john@example.com",
|
|
78
|
+
message: "Hello!"
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**🔇 Mode silencieux manuel =**
|
|
83
|
+
- ❌ **Aucun log dans la console**
|
|
84
|
+
- ❌ **Pas de messages d'erreur**
|
|
85
|
+
- ✅ **Uniquement les événements personnalisés**
|
|
86
|
+
- ✅ **Parfait pour la production**
|
|
87
|
+
|
|
88
|
+
## 🎨 **Fonctionnalités avancées**
|
|
89
|
+
|
|
90
|
+
### **Validation emails automatique**
|
|
91
|
+
Le SDK valide automatiquement les champs `<input type="email">` et les données contenant "email" :
|
|
92
|
+
|
|
93
|
+
- ✅ **Validation en temps réel** sur les champs HTML
|
|
94
|
+
- ✅ **Validation des données JSON** dans `submit()`
|
|
95
|
+
- ✅ **Feedback visuel** avec messages d'erreur
|
|
96
|
+
- ✅ **Messages console** détaillés
|
|
97
|
+
|
|
98
|
+
### **Gestion des erreurs intelligente**
|
|
99
|
+
Messages d'aide contextuels pour les erreurs courantes :
|
|
100
|
+
|
|
101
|
+
- **DOM_001** : Erreur de domaine non autorisé
|
|
102
|
+
- **API_003** : Clé API désactivée
|
|
103
|
+
- **EMAIL_INVALID** : Email invalide
|
|
104
|
+
|
|
105
|
+
### **Logs configurables**
|
|
106
|
+
```javascript
|
|
107
|
+
const dev = new InputDevSDK();
|
|
108
|
+
|
|
109
|
+
// Contrôler les logs
|
|
110
|
+
dev.disableLogs(); // Désactiver tous les logs
|
|
111
|
+
dev.enableLogs(); // Réactiver les logs
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## 🔧 **Configuration**
|
|
115
|
+
|
|
116
|
+
### **Modes de fonctionnement**
|
|
117
|
+
|
|
118
|
+
#### **📊 Mode normal (développement)**
|
|
119
|
+
```javascript
|
|
120
|
+
const dev = new InputDevSDK();
|
|
121
|
+
// Par défaut : logs activés, messages activés
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Avantages :**
|
|
125
|
+
- ✅ **Logs complets** pour le débogage
|
|
126
|
+
- ✅ **Messages d'erreur détaillés**
|
|
127
|
+
- ✅ **Instructions contextuelles** (DOM_001, API_003)
|
|
128
|
+
- ✅ **Validation emails** avec feedback visuel
|
|
129
|
+
|
|
130
|
+
#### **🔇 Mode silencieux (production)**
|
|
131
|
+
```javascript
|
|
132
|
+
// Attribut HTML
|
|
133
|
+
<form data-inputdev-silence="votre-clé-api">
|
|
134
|
+
|
|
135
|
+
// Ou appel manuel
|
|
136
|
+
await dev.submit("votre-clé-api", "silence", data);
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Avantages :**
|
|
140
|
+
- ❌ **Aucun log** dans la console
|
|
141
|
+
- ❌ **Pas de messages d'erreur** visibles
|
|
142
|
+
- ✅ **Console propre** pour les utilisateurs
|
|
143
|
+
- ✅ **Uniquement les événements** personnalisés
|
|
144
|
+
|
|
145
|
+
### **Contrôle manuel des logs**
|
|
146
|
+
```javascript
|
|
147
|
+
const dev = new InputDevSDK();
|
|
148
|
+
|
|
149
|
+
// Désactiver tous les logs
|
|
150
|
+
dev.disableLogs();
|
|
151
|
+
|
|
152
|
+
// Réactiver les logs
|
|
153
|
+
dev.enableLogs();
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### **Contrôle manuel des messages**
|
|
157
|
+
```javascript
|
|
158
|
+
// Désactiver les notifications visuelles
|
|
159
|
+
dev.disableMessages();
|
|
160
|
+
|
|
161
|
+
// Réactiver les notifications
|
|
162
|
+
dev.enableMessages();
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### **Quand utiliser quel mode ?**
|
|
166
|
+
|
|
167
|
+
| Situation | Mode recommandé | Pourquoi ? |
|
|
168
|
+
|-----------|-----------------|-----------|
|
|
169
|
+
| **Développement** | 📊 **Normal** | Débogage facile avec logs complets |
|
|
170
|
+
| **Production** | 🔇 **Silencieux** | Console propre pour les utilisateurs |
|
|
171
|
+
| **Tests** | 🔇 **Silencieux** | Pas de pollution des logs de test |
|
|
172
|
+
| **Débogage client** | 📊 **Normal** | Instructions d'erreur détaillées |
|
|
173
|
+
|
|
174
|
+
## 📋 **Événements personnalisés**
|
|
175
|
+
|
|
176
|
+
```javascript
|
|
177
|
+
// Écouter les succès
|
|
178
|
+
document.addEventListener('inputdev:success', (event) => {
|
|
179
|
+
console.log('Formulaire envoyé!', event.detail);
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// Écouter les erreurs
|
|
183
|
+
document.addEventListener('inputdev:error', (event) => {
|
|
184
|
+
console.log('Erreur:', event.detail);
|
|
185
|
+
});
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 🌍 **Compatibilité**
|
|
189
|
+
|
|
190
|
+
- ✅ **Vanilla JavaScript**
|
|
191
|
+
- ✅ **React**
|
|
192
|
+
- ✅ **Vue.js**
|
|
193
|
+
- ✅ **Angular**
|
|
194
|
+
- ✅ **Svelte**
|
|
195
|
+
- ✅ **Tous les navigateurs modernes**
|
|
196
|
+
|
|
197
|
+
## 📦 **Taille et performance**
|
|
198
|
+
|
|
199
|
+
- 📊 **~5KB** minifié et gzippé
|
|
200
|
+
- ⚡ **Chargement instantané**
|
|
201
|
+
- 🔄 **Aucune dépendance**
|
|
202
|
+
- 📱 **Mobile-friendly**
|
|
203
|
+
|
|
204
|
+
## 🔐 **Sécurité**
|
|
205
|
+
|
|
206
|
+
- 🔒 **Clés API masquées** dans les logs
|
|
207
|
+
- 🛡️ **Validation côté client**
|
|
208
|
+
- 🚫 **Pas de données sensibles** exposées
|
|
209
|
+
|
|
210
|
+
## 📚 **Exemples complets**
|
|
211
|
+
|
|
212
|
+
### **React**
|
|
213
|
+
```jsx
|
|
214
|
+
import { InputDevSDK } from 'inputdev-sdk';
|
|
215
|
+
|
|
216
|
+
const dev = new InputDevSDK();
|
|
217
|
+
|
|
218
|
+
const handleSubmit = async (data) => {
|
|
219
|
+
try {
|
|
220
|
+
await dev.submit("votre-clé-api", data);
|
|
221
|
+
alert("Message envoyé !");
|
|
222
|
+
} catch (error) {
|
|
223
|
+
console.error("Erreur:", error);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### **Vanilla JS**
|
|
229
|
+
```html
|
|
230
|
+
<script src="inputdev-sdk.min.js"></script>
|
|
231
|
+
<script>
|
|
232
|
+
const dev = new InputDevSDK();
|
|
233
|
+
|
|
234
|
+
document.getElementById('myForm').addEventListener('submit', async (e) => {
|
|
235
|
+
e.preventDefault();
|
|
236
|
+
|
|
237
|
+
const data = {
|
|
238
|
+
name: document.getElementById('name').value,
|
|
239
|
+
email: document.getElementById('email').value
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
await dev.submit("votre-clé-api", "silence", data);
|
|
243
|
+
});
|
|
244
|
+
</script>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## 🤝 **Contribution**
|
|
248
|
+
|
|
249
|
+
Contributions bienvenues !
|
|
250
|
+
- Fork le projet
|
|
251
|
+
- Créez une branche (`git checkout -b feature/amazing-feature`)
|
|
252
|
+
- Committez (`git commit -m 'Add amazing feature'`)
|
|
253
|
+
- Push (`git push origin feature/amazing-feature`)
|
|
254
|
+
- Ouvrez une Pull Request
|
|
255
|
+
|
|
256
|
+
## 📄 **Licence**
|
|
257
|
+
|
|
258
|
+
MIT License - libre pour usage commercial et personnel
|
|
259
|
+
|
|
260
|
+
## 🔗 **Liens utiles**
|
|
261
|
+
|
|
262
|
+
- 📖 **Documentation complète** : [docs.inputdev.com](https://docs.inputdev.com)
|
|
263
|
+
- 🚀 **Démo en ligne** : [demo.inputdev.com](https://demo.inputdev.com)
|
|
264
|
+
- 🐛 **Issues** : [GitHub Issues](https://github.com/inputdev/sdk/issues)
|
|
265
|
+
- 💬 **Support** : [Discord](https://discord.gg/inputdev)
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
**Made with ❤️ by InputDev Team**
|
|
270
|
+
|
|
271
|
+
## API Reference
|
|
272
|
+
|
|
273
|
+
### `dev.submit(apiKey, data)`
|
|
274
|
+
|
|
275
|
+
Envoie les données du formulaire vers l'API InputDev.
|
|
276
|
+
|
|
277
|
+
**Paramètres :**
|
|
278
|
+
- `apiKey` (string): Votre clé API InputDev
|
|
279
|
+
- `data` (object): Données du formulaire
|
|
280
|
+
|
|
281
|
+
**Retour :**
|
|
282
|
+
- `Promise`: Résolution avec la réponse de l'API
|
|
283
|
+
|
|
284
|
+
**Exemple :**
|
|
285
|
+
```javascript
|
|
286
|
+
const data = {
|
|
287
|
+
email: "contact@example.com",
|
|
288
|
+
message: "Bonjour, j'aimerais en savoir plus...",
|
|
289
|
+
telephone: "+33612345678",
|
|
290
|
+
plan: "free"
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
dev.submit("grts_VotreCleApiDeCeSite", data)
|
|
294
|
+
.then(response => {
|
|
295
|
+
console.log('Formulaire soumis:', response);
|
|
296
|
+
})
|
|
297
|
+
.catch(error => {
|
|
298
|
+
console.error('Erreur:', error.message);
|
|
299
|
+
});
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## Événements personnalisés
|
|
303
|
+
|
|
304
|
+
Le SDK émet des événements que vous pouvez écouter :
|
|
305
|
+
|
|
306
|
+
```javascript
|
|
307
|
+
// Succès de la soumission
|
|
308
|
+
document.addEventListener('inputdev:success', (event) => {
|
|
309
|
+
const { form, response } = event.detail;
|
|
310
|
+
console.log('Formulaire envoyé avec succès:', response);
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
// Erreur de soumission
|
|
314
|
+
document.addEventListener('inputdev:error', (event) => {
|
|
315
|
+
const { form, error } = event.detail;
|
|
316
|
+
console.error('Erreur lors de l\'envoi:', error);
|
|
317
|
+
});
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Codes d'erreur
|
|
321
|
+
|
|
322
|
+
| Code | Message | Description |
|
|
323
|
+
|------|---------|-------------|
|
|
324
|
+
| API_001 | Clé API invalide | La clé API n'existe pas ou est mal formatée |
|
|
325
|
+
| API_003 | Clé API désactivée | La clé API a été désactivée |
|
|
326
|
+
| DOM_001 | Domaine non autorisé | Le domaine n'est pas autorisé pour cette clé |
|
|
327
|
+
| QUO_001 | Quota de soumissions épuisé | Vous avez atteint votre limite de soumissions |
|
|
328
|
+
| STO_001 | Quota de stockage épuisé | Vous avez atteint votre limite de stockage |
|
|
329
|
+
| SRV_001 | Erreur serveur | Erreur interne du serveur |
|
|
330
|
+
| SRV_004 | Trop de requêtes | Rate limit dépassé (10 req/min par clé) |
|
|
331
|
+
|
|
332
|
+
## Configuration avancée
|
|
333
|
+
|
|
334
|
+
### Personnaliser la configuration
|
|
335
|
+
|
|
336
|
+
```javascript
|
|
337
|
+
// Mettre à jour la configuration
|
|
338
|
+
dev.updateConfig({
|
|
339
|
+
apiEndpoint: 'https://votre-serveur-personnalisé.com/submit',
|
|
340
|
+
timeout: 15000,
|
|
341
|
+
retries: 3
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
// Voir la configuration actuelle
|
|
345
|
+
console.log(dev.getConfig());
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Options de configuration
|
|
349
|
+
|
|
350
|
+
| Option | Défaut | Description |
|
|
351
|
+
|--------|--------|-------------|
|
|
352
|
+
| `apiEndpoint` | `https://votre-serveur.com/submit` | URL de l'API InputDev |
|
|
353
|
+
| `timeout` | `10000` | Timeout en millisecondes |
|
|
354
|
+
| `retries` | `2` | Nombre de tentatives en cas d'échec |
|
|
355
|
+
|
|
356
|
+
## Exemples pratiques
|
|
357
|
+
|
|
358
|
+
### Formulaire de contact
|
|
359
|
+
```html
|
|
360
|
+
<form data-inputdev="grts_VotreCleApi">
|
|
361
|
+
<div>
|
|
362
|
+
<label for="name">Nom:</label>
|
|
363
|
+
<input type="text" id="name" name="name" required>
|
|
364
|
+
</div>
|
|
365
|
+
|
|
366
|
+
<div>
|
|
367
|
+
<label for="email">Email:</label>
|
|
368
|
+
<input type="email" id="email" name="email" required>
|
|
369
|
+
</div>
|
|
370
|
+
|
|
371
|
+
<div>
|
|
372
|
+
<label for="subject">Sujet:</label>
|
|
373
|
+
<input type="text" id="subject" name="subject">
|
|
374
|
+
</div>
|
|
375
|
+
|
|
376
|
+
<div>
|
|
377
|
+
<label for="message">Message:</label>
|
|
378
|
+
<textarea id="message" name="message" required></textarea>
|
|
379
|
+
</div>
|
|
380
|
+
|
|
381
|
+
<button type="submit">Envoyer</button>
|
|
382
|
+
</form>
|
|
383
|
+
|
|
384
|
+
<script src="https://cdn.inputdev.dev/latest.js"></script>
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### Formulaire avec validation personnalisée
|
|
388
|
+
```javascript
|
|
389
|
+
document.addEventListener('inputdev:success', (event) => {
|
|
390
|
+
// Rediriger après succès
|
|
391
|
+
window.location.href = '/merci.html';
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
document.addEventListener('inputdev:error', (event) => {
|
|
395
|
+
// Afficher une notification personnalisée
|
|
396
|
+
showNotification('Erreur: ' + event.detail.error.message, 'error');
|
|
397
|
+
});
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Intégration React
|
|
401
|
+
```jsx
|
|
402
|
+
import { dev } from "@inputdev/sdk";
|
|
403
|
+
|
|
404
|
+
function ContactForm() {
|
|
405
|
+
const [formData, setFormData] = useState({
|
|
406
|
+
email: '',
|
|
407
|
+
message: ''
|
|
408
|
+
});
|
|
409
|
+
const [loading, setLoading] = useState(false);
|
|
410
|
+
|
|
411
|
+
const handleSubmit = async (e) => {
|
|
412
|
+
e.preventDefault();
|
|
413
|
+
setLoading(true);
|
|
414
|
+
|
|
415
|
+
try {
|
|
416
|
+
await dev.submit("grts_VotreCleApi", formData);
|
|
417
|
+
alert('Message envoyé avec succès!');
|
|
418
|
+
setFormData({ email: '', message: '' });
|
|
419
|
+
} catch (error) {
|
|
420
|
+
alert('Erreur: ' + error.message);
|
|
421
|
+
} finally {
|
|
422
|
+
setLoading(false);
|
|
423
|
+
}
|
|
424
|
+
};
|
|
425
|
+
|
|
426
|
+
return (
|
|
427
|
+
<form onSubmit={handleSubmit}>
|
|
428
|
+
<input
|
|
429
|
+
type="email"
|
|
430
|
+
value={formData.email}
|
|
431
|
+
onChange={(e) => setFormData({...formData, email: e.target.value})}
|
|
432
|
+
placeholder="Votre email"
|
|
433
|
+
required
|
|
434
|
+
/>
|
|
435
|
+
<textarea
|
|
436
|
+
value={formData.message}
|
|
437
|
+
onChange={(e) => setFormData({...formData, message: e.target.value})}
|
|
438
|
+
placeholder="Votre message"
|
|
439
|
+
required
|
|
440
|
+
/>
|
|
441
|
+
<button type="submit" disabled={loading}>
|
|
442
|
+
{loading ? 'Envoi...' : 'Envoyer'}
|
|
443
|
+
</button>
|
|
444
|
+
</form>
|
|
445
|
+
);
|
|
446
|
+
}
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
## Support
|
|
450
|
+
|
|
451
|
+
- 📖 Documentation complète : [docs.inputdev.dev](https://docs.inputdev.dev)
|
|
452
|
+
- 🐛 Rapports de bugs : [GitHub Issues](https://github.com/inputdev/sdk/issues)
|
|
453
|
+
- 💬 Communauté : [Discord](https://discord.gg/inputdev)
|
|
454
|
+
|
|
455
|
+
## Licence
|
|
456
|
+
|
|
457
|
+
MIT License - voir le fichier LICENSE pour les détails.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InputDev SDK - TypeScript Definitions
|
|
3
|
+
* Backend de formulaires sans code
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface InputDevConfig {
|
|
7
|
+
apiEndpoint?: string;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
retries?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface SubmissionResponse {
|
|
13
|
+
success: boolean;
|
|
14
|
+
message: string;
|
|
15
|
+
submissionId: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface SubmissionError {
|
|
19
|
+
code: string;
|
|
20
|
+
message: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface InputDevSDK {
|
|
24
|
+
/**
|
|
25
|
+
* Envoie les données du formulaire vers l'API InputDev
|
|
26
|
+
* @param apiKey - Clé API InputDev
|
|
27
|
+
* @param data - Données du formulaire
|
|
28
|
+
* @returns Promise avec la réponse
|
|
29
|
+
*/
|
|
30
|
+
submit(apiKey: string, data: Record<string, any>): Promise<SubmissionResponse>;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Met à jour la configuration du SDK
|
|
34
|
+
* @param newConfig - Nouvelle configuration
|
|
35
|
+
*/
|
|
36
|
+
updateConfig(newConfig: InputDevConfig): void;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Récupère la configuration actuelle
|
|
40
|
+
* @returns Configuration actuelle
|
|
41
|
+
*/
|
|
42
|
+
getConfig(): InputDevConfig;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export declare class InputDevSDKClass implements InputDevSDK {
|
|
46
|
+
constructor(config?: InputDevConfig);
|
|
47
|
+
submit(apiKey: string, data: Record<string, any>): Promise<SubmissionResponse>;
|
|
48
|
+
updateConfig(newConfig: InputDevConfig): void;
|
|
49
|
+
getConfig(): InputDevConfig;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export declare const dev: InputDevSDK;
|
|
53
|
+
|
|
54
|
+
export default InputDevSDKClass;
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@inputdev/sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Backend de formulaires sans code - SDK JavaScript",
|
|
5
|
+
"main": "inputdev-sdk.js",
|
|
6
|
+
"types": "inputdev-sdk.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "webpack --mode=production",
|
|
9
|
+
"dev": "webpack --mode=development --watch",
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"lint": "eslint *.js",
|
|
12
|
+
"minify": "terser inputdev-sdk.js -o inputdev-sdk.min.js --compress --mangle"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"form",
|
|
16
|
+
"backend",
|
|
17
|
+
"api",
|
|
18
|
+
"sdk",
|
|
19
|
+
"javascript",
|
|
20
|
+
"frontend",
|
|
21
|
+
"backend-as-a-service",
|
|
22
|
+
"form-handler",
|
|
23
|
+
"inputdev"
|
|
24
|
+
],
|
|
25
|
+
"author": "InputDev",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/inputdev/sdk.git"
|
|
30
|
+
},
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/inputdev/sdk/issues"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://inputdev.dev",
|
|
35
|
+
"files": [
|
|
36
|
+
"inputdev-sdk.js",
|
|
37
|
+
"inputdev-sdk.min.js",
|
|
38
|
+
"inputdev-sdk.d.ts",
|
|
39
|
+
"README.md",
|
|
40
|
+
"LICENSE"
|
|
41
|
+
],
|
|
42
|
+
"browser": "inputdev-sdk.js",
|
|
43
|
+
"module": "inputdev-sdk.js",
|
|
44
|
+
"unpkg": "inputdev-sdk.min.js",
|
|
45
|
+
"jsdelivr": "inputdev-sdk.min.js"
|
|
46
|
+
}
|