@easyflow/javascript-sdk 2.1.7 → 2.1.9

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 (94) hide show
  1. package/README.md +294 -713
  2. package/dist/index.d.ts +421 -0
  3. package/package.json +19 -6
  4. package/.babelrc +0 -5
  5. package/.github/workflows/deploy-sdk-cf.yml +0 -49
  6. package/.github/workflows/release-sdk-cdn.yml +0 -144
  7. package/.github/workflows/release-sdk.yml +0 -112
  8. package/.prettierrc +0 -6
  9. package/CDN-DEPLOYMENT.md +0 -175
  10. package/DEMO.md +0 -258
  11. package/DEPLOYMENT.md +0 -224
  12. package/INTEGRATION-GUIDE.md +0 -521
  13. package/coverage/base.css +0 -224
  14. package/coverage/block-navigation.js +0 -87
  15. package/coverage/easyflow-javascript-sdk/index.html +0 -116
  16. package/coverage/easyflow-javascript-sdk/libs/constants.mjs.html +0 -268
  17. package/coverage/easyflow-javascript-sdk/libs/errors.mjs.html +0 -271
  18. package/coverage/easyflow-javascript-sdk/libs/exception-handler.mjs.html +0 -148
  19. package/coverage/easyflow-javascript-sdk/libs/fingerprint.mjs.html +0 -895
  20. package/coverage/easyflow-javascript-sdk/libs/http.mjs.html +0 -502
  21. package/coverage/easyflow-javascript-sdk/libs/index.html +0 -266
  22. package/coverage/easyflow-javascript-sdk/libs/logger.mjs.html +0 -568
  23. package/coverage/easyflow-javascript-sdk/libs/sanitizer.mjs.html +0 -1099
  24. package/coverage/easyflow-javascript-sdk/libs/security.mjs.html +0 -733
  25. package/coverage/easyflow-javascript-sdk/libs/types.mjs.html +0 -508
  26. package/coverage/easyflow-javascript-sdk/libs/utils.mjs.html +0 -379
  27. package/coverage/easyflow-javascript-sdk/libs/validator.mjs.html +0 -2623
  28. package/coverage/easyflow-javascript-sdk/sdk.mjs.html +0 -2434
  29. package/coverage/favicon.png +0 -0
  30. package/coverage/index.html +0 -131
  31. package/coverage/lcov-report/base.css +0 -224
  32. package/coverage/lcov-report/block-navigation.js +0 -87
  33. package/coverage/lcov-report/easyflow-javascript-sdk/index.html +0 -116
  34. package/coverage/lcov-report/easyflow-javascript-sdk/libs/constants.mjs.html +0 -268
  35. package/coverage/lcov-report/easyflow-javascript-sdk/libs/errors.mjs.html +0 -271
  36. package/coverage/lcov-report/easyflow-javascript-sdk/libs/exception-handler.mjs.html +0 -148
  37. package/coverage/lcov-report/easyflow-javascript-sdk/libs/fingerprint.mjs.html +0 -895
  38. package/coverage/lcov-report/easyflow-javascript-sdk/libs/http.mjs.html +0 -502
  39. package/coverage/lcov-report/easyflow-javascript-sdk/libs/index.html +0 -266
  40. package/coverage/lcov-report/easyflow-javascript-sdk/libs/logger.mjs.html +0 -568
  41. package/coverage/lcov-report/easyflow-javascript-sdk/libs/sanitizer.mjs.html +0 -1099
  42. package/coverage/lcov-report/easyflow-javascript-sdk/libs/security.mjs.html +0 -733
  43. package/coverage/lcov-report/easyflow-javascript-sdk/libs/types.mjs.html +0 -508
  44. package/coverage/lcov-report/easyflow-javascript-sdk/libs/utils.mjs.html +0 -379
  45. package/coverage/lcov-report/easyflow-javascript-sdk/libs/validator.mjs.html +0 -2623
  46. package/coverage/lcov-report/easyflow-javascript-sdk/sdk.mjs.html +0 -2434
  47. package/coverage/lcov-report/favicon.png +0 -0
  48. package/coverage/lcov-report/index.html +0 -131
  49. package/coverage/lcov-report/prettify.css +0 -1
  50. package/coverage/lcov-report/prettify.js +0 -2
  51. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  52. package/coverage/lcov-report/sorter.js +0 -196
  53. package/coverage/lcov.info +0 -1429
  54. package/coverage/prettify.css +0 -1
  55. package/coverage/prettify.js +0 -2
  56. package/coverage/sort-arrow-sprite.png +0 -0
  57. package/coverage/sorter.js +0 -196
  58. package/dist/435.easyflow-sdk.min.js +0 -1
  59. package/dist/easyflow-sdk.min.js +0 -1
  60. package/dist/easyflow-sdk.min.js.LICENSE.txt +0 -1
  61. package/dist/index.html +0 -756
  62. package/docs/index.html +0 -775
  63. package/examples/lovable-integration.html +0 -410
  64. package/index.html +0 -981
  65. package/jest.config.js +0 -37
  66. package/jsdoc.json +0 -42
  67. package/libs/auto-integration.mjs +0 -333
  68. package/libs/constants.mjs +0 -61
  69. package/libs/constants.spec.js +0 -198
  70. package/libs/errors.mjs +0 -62
  71. package/libs/errors.spec.js +0 -178
  72. package/libs/exception-handler.mjs +0 -21
  73. package/libs/exception-handler.spec.js +0 -237
  74. package/libs/fingerprint.mjs +0 -270
  75. package/libs/http.mjs +0 -163
  76. package/libs/http.spec.js +0 -427
  77. package/libs/integration-wrapper.mjs +0 -285
  78. package/libs/logger.mjs +0 -161
  79. package/libs/logger.spec.js +0 -389
  80. package/libs/sanitizer.mjs +0 -340
  81. package/libs/sanitizer.spec.js +0 -583
  82. package/libs/security.mjs +0 -217
  83. package/libs/types.mjs +0 -141
  84. package/libs/utils.mjs +0 -368
  85. package/libs/utils.spec.js +0 -231
  86. package/libs/validator.mjs +0 -952
  87. package/libs/validator.spec.js +0 -615
  88. package/mocks/offer.mock.js +0 -77
  89. package/scripts/publish-npm.sh +0 -82
  90. package/sdk.mjs +0 -945
  91. package/sdk.spec.js +0 -796
  92. package/test-setup.cjs +0 -211
  93. package/test.html +0 -154
  94. package/webpack.config.cjs +0 -41
package/dist/index.html DELETED
@@ -1,756 +0,0 @@
1
- <!doctype html>
2
- <html lang="pt-BR">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>📚 Easyflow SDK - Documentação Pública</title>
7
- <style>
8
- :root {
9
- --primary: #3b82f6;
10
- --primary-dark: #2563eb;
11
- --success: #10b981;
12
- --warning: #f59e0b;
13
- --error: #ef4444;
14
- --text: #1e293b;
15
- --text-light: #64748b;
16
- --bg: #ffffff;
17
- --bg-light: #f8fafc;
18
- --border: #e2e8f0;
19
- }
20
-
21
- * {
22
- margin: 0;
23
- padding: 0;
24
- box-sizing: border-box;
25
- }
26
-
27
- body {
28
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',
29
- Roboto, sans-serif;
30
- line-height: 1.6;
31
- color: var(--text);
32
- background: var(--bg-light);
33
- }
34
-
35
- .container {
36
- max-width: 1200px;
37
- margin: 0 auto;
38
- padding: 20px;
39
- }
40
-
41
- .header {
42
- background: var(--bg);
43
- padding: 40px 20px;
44
- text-align: center;
45
- border-radius: 12px;
46
- margin-bottom: 30px;
47
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
48
- }
49
-
50
- .header h1 {
51
- font-size: 2.5rem;
52
- margin-bottom: 15px;
53
- color: var(--primary);
54
- }
55
-
56
- .header p {
57
- font-size: 1.2rem;
58
- color: var(--text-light);
59
- max-width: 600px;
60
- margin: 0 auto;
61
- }
62
-
63
- .nav {
64
- background: var(--bg);
65
- padding: 20px;
66
- border-radius: 12px;
67
- margin-bottom: 30px;
68
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
69
- }
70
-
71
- .nav ul {
72
- list-style: none;
73
- display: flex;
74
- flex-wrap: wrap;
75
- gap: 15px;
76
- justify-content: center;
77
- }
78
-
79
- .nav a {
80
- color: var(--primary);
81
- text-decoration: none;
82
- padding: 8px 16px;
83
- border-radius: 6px;
84
- transition: all 0.2s;
85
- border: 2px solid transparent;
86
- }
87
-
88
- .nav a:hover {
89
- background: var(--primary);
90
- color: white;
91
- }
92
-
93
- .section {
94
- background: var(--bg);
95
- padding: 30px;
96
- border-radius: 12px;
97
- margin-bottom: 30px;
98
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
99
- }
100
-
101
- .section h2 {
102
- color: var(--primary);
103
- margin-bottom: 20px;
104
- font-size: 1.8rem;
105
- border-bottom: 2px solid var(--primary);
106
- padding-bottom: 10px;
107
- }
108
-
109
- .section h3 {
110
- color: var(--text);
111
- margin: 25px 0 15px 0;
112
- font-size: 1.4rem;
113
- }
114
-
115
- .code-block {
116
- background: var(--text);
117
- color: #e2e8f0;
118
- padding: 20px;
119
- border-radius: 8px;
120
- overflow-x: auto;
121
- margin: 15px 0;
122
- font-family: 'Monaco', 'Menlo', monospace;
123
- font-size: 14px;
124
- line-height: 1.4;
125
- }
126
-
127
- .highlight {
128
- background: #fef3c7;
129
- border-left: 4px solid var(--warning);
130
- padding: 15px;
131
- margin: 15px 0;
132
- border-radius: 0 8px 8px 0;
133
- }
134
-
135
- .success-box {
136
- background: #f0fdf4;
137
- border-left: 4px solid var(--success);
138
- padding: 15px;
139
- margin: 15px 0;
140
- border-radius: 0 8px 8px 0;
141
- }
142
-
143
- .error-box {
144
- background: #fef2f2;
145
- border-left: 4px solid var(--error);
146
- padding: 15px;
147
- margin: 15px 0;
148
- border-radius: 0 8px 8px 0;
149
- }
150
-
151
- .method {
152
- background: var(--bg-light);
153
- border: 1px solid var(--border);
154
- border-radius: 8px;
155
- padding: 20px;
156
- margin: 15px 0;
157
- }
158
-
159
- .method h4 {
160
- color: var(--primary);
161
- margin-bottom: 10px;
162
- font-size: 1.1rem;
163
- }
164
-
165
- .method .signature {
166
- background: var(--text);
167
- color: #e2e8f0;
168
- padding: 10px;
169
- border-radius: 6px;
170
- font-family: monospace;
171
- margin: 10px 0;
172
- }
173
-
174
- .method .description {
175
- color: var(--text-light);
176
- margin: 10px 0;
177
- }
178
-
179
- .method .params {
180
- margin: 10px 0;
181
- }
182
-
183
- .method .params strong {
184
- color: var(--text);
185
- }
186
-
187
- .method .example {
188
- background: #f1f5f9;
189
- border-left: 4px solid var(--primary);
190
- padding: 15px;
191
- margin: 10px 0;
192
- border-radius: 0 8px 8px 0;
193
- }
194
-
195
- .tabs {
196
- display: flex;
197
- border-bottom: 1px solid var(--border);
198
- margin-bottom: 20px;
199
- }
200
-
201
- .tab {
202
- padding: 12px 24px;
203
- cursor: pointer;
204
- border-bottom: 2px solid transparent;
205
- transition: all 0.2s;
206
- color: var(--text-light);
207
- }
208
-
209
- .tab.active {
210
- border-bottom-color: var(--primary);
211
- color: var(--primary);
212
- }
213
-
214
- .tab-content {
215
- display: none;
216
- }
217
-
218
- .tab-content.active {
219
- display: block;
220
- }
221
-
222
- .platform-grid {
223
- display: grid;
224
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
225
- gap: 20px;
226
- margin: 20px 0;
227
- }
228
-
229
- .platform-card {
230
- background: var(--bg);
231
- border: 1px solid var(--border);
232
- border-radius: 8px;
233
- padding: 20px;
234
- text-align: center;
235
- }
236
-
237
- .platform-card h4 {
238
- color: var(--primary);
239
- margin-bottom: 10px;
240
- }
241
-
242
- .platform-card p {
243
- color: var(--text-light);
244
- margin-bottom: 15px;
245
- }
246
-
247
- .platform-card .code {
248
- background: var(--bg-light);
249
- padding: 10px;
250
- border-radius: 6px;
251
- font-family: monospace;
252
- font-size: 12px;
253
- color: var(--text);
254
- }
255
-
256
- .footer {
257
- text-align: center;
258
- padding: 40px 20px;
259
- color: var(--text-light);
260
- border-top: 1px solid var(--border);
261
- margin-top: 40px;
262
- }
263
-
264
- .footer a {
265
- color: var(--primary);
266
- text-decoration: none;
267
- }
268
-
269
- @media (max-width: 768px) {
270
- .nav ul {
271
- flex-direction: column;
272
- align-items: center;
273
- }
274
-
275
- .header h1 {
276
- font-size: 2rem;
277
- }
278
-
279
- .container {
280
- padding: 10px;
281
- }
282
- }
283
- </style>
284
- </head>
285
- <body>
286
- <div class="container">
287
- <!-- Header -->
288
- <div class="header">
289
- <h1>📚 Easyflow SDK</h1>
290
- <p>
291
- Documentação pública para integração com plataformas
292
- low-code/no-code
293
- </p>
294
- </div>
295
-
296
- <!-- Navigation -->
297
- <div class="nav">
298
- <ul>
299
- <li><a href="#quick-start">🚀 Quick Start</a></li>
300
- <li><a href="#integration">🔗 Integração</a></li>
301
- <li><a href="#api-reference">📖 API Reference</a></li>
302
- <li><a href="#examples">💡 Exemplos</a></li>
303
- <li><a href="#platforms">🌐 Plataformas</a></li>
304
- <li><a href="#troubleshooting">🔧 Troubleshooting</a></li>
305
- </ul>
306
- </div>
307
-
308
- <!-- Quick Start -->
309
- <div id="quick-start" class="section">
310
- <h2>🚀 Quick Start</h2>
311
-
312
- <div class="highlight">
313
- <strong>⚠️ Importante:</strong> Esta documentação é
314
- atualizada automaticamente e está sempre sincronizada com a
315
- versão mais recente do SDK.
316
- </div>
317
-
318
- <h3>1. Incluir o SDK</h3>
319
- <p>Adicione o script do SDK no seu projeto:</p>
320
- <div class="code-block">
321
- &lt;script
322
- src="https://easyflow-sdk.pages.dev/easyflow-sdk.min.js"&gt;&lt;/script&gt;
323
- </div>
324
-
325
- <h3>2. Funcionalidades Automáticas</h3>
326
- <p>
327
- Após incluir o script, todas as funcionalidades ficam
328
- disponíveis automaticamente:
329
- </p>
330
- <div class="code-block">
331
- // ✅ Funcionalidades disponíveis automaticamente
332
- window.easyflowSDK = { // Clientes createCustomer:
333
- function(data) { /* ... */ }, getCustomer: function(id) { /*
334
- ... */ }, updateCustomer: function(id, data) { /* ... */ },
335
- // Pagamentos placeOrder: function(offerId, data) { /* ...
336
- */ }, charge: function(data) { /* ... */ }, // Validação
337
- validate: { email: function(email) { /* ... */ } }, //
338
- Callbacks para eventos on: function(event, callback) { /*
339
- ... */ } }
340
- </div>
341
-
342
- <h3>3. Configurar Callbacks</h3>
343
- <div class="code-block">
344
- // 🎯 Configurar callbacks para eventos
345
- easyflowSDK.on('customerCreated', function(customer) {
346
- console.log('🎉 Cliente criado:', customer); // Atualizar UI
347
- da plataforma }); easyflowSDK.on('paymentProcessed',
348
- function(result) { console.log('💳 Pagamento processado:',
349
- result); // Redirecionar ou atualizar status });
350
- </div>
351
- </div>
352
-
353
- <!-- Integration -->
354
- <div id="integration" class="section">
355
- <h2>🔗 Integração NO BRAINER</h2>
356
-
357
- <div class="success-box">
358
- <strong>✨ NO BRAINER:</strong> O SDK se integra
359
- automaticamente com plataformas low-code/no-code, expondo
360
- todas as funcionalidades globalmente.
361
- </div>
362
-
363
- <h3>Como Funciona</h3>
364
- <ol>
365
- <li>
366
- <strong>Carregamento:</strong> O script é carregado via
367
- CDN
368
- </li>
369
- <li>
370
- <strong>Auto-inicialização:</strong> O SDK se inicializa
371
- automaticamente
372
- </li>
373
- <li>
374
- <strong>Exposição global:</strong> Todas as
375
- funcionalidades ficam disponíveis em
376
- <code>window.easyflowSDK</code>
377
- </li>
378
- <li>
379
- <strong>Callbacks:</strong> Sistema de eventos para
380
- integração com a plataforma
381
- </li>
382
- </ol>
383
-
384
- <h3>Inicialização Tradicional (Opcional)</h3>
385
- <p>Para desenvolvedores que preferem controle manual:</p>
386
- <div class="code-block">
387
- // Inicialização tradicional const sdk = new
388
- EasyflowSDK('your-business-id'); // Ou usar o wrapper de
389
- integração const wrapper =
390
- EasyflowSDK.initializeForPlatform({ businessId:
391
- 'your-business-id', enableDebug: true });
392
- </div>
393
- </div>
394
-
395
- <!-- API Reference -->
396
- <div id="api-reference" class="section">
397
- <h2>📖 API Reference</h2>
398
-
399
- <div class="tabs">
400
- <div class="tab active" onclick="showTab('customers')">
401
- 👥 Clientes
402
- </div>
403
- <div class="tab" onclick="showTab('payments')">
404
- 💳 Pagamentos
405
- </div>
406
- <div class="tab" onclick="showTab('validation')">
407
- ✅ Validação
408
- </div>
409
- <div class="tab" onclick="showTab('events')">
410
- 🎯 Eventos
411
- </div>
412
- </div>
413
-
414
- <!-- Customers Tab -->
415
- <div id="customers" class="tab-content active">
416
- <div class="method">
417
- <h4>createCustomer(data)</h4>
418
- <div class="signature">
419
- easyflowSDK.createCustomer(customerData)
420
- </div>
421
- <div class="description">
422
- Cria um novo cliente no sistema
423
- </div>
424
- <div class="params">
425
- <strong>Parâmetros:</strong> customerData (Object) -
426
- Dados do cliente
427
- </div>
428
- <div class="example">
429
- <strong>Exemplo:</strong>
430
- <div class="code-block">
431
- const result = await
432
- easyflowSDK.createCustomer({ name: "João Silva",
433
- email: "joao@email.com", document: { type:
434
- "CPF", number: "12345678909" } });
435
- </div>
436
- </div>
437
- </div>
438
-
439
- <div class="method">
440
- <h4>getCustomer(id)</h4>
441
- <div class="signature">
442
- easyflowSDK.getCustomer(customerId)
443
- </div>
444
- <div class="description">
445
- Obtém dados de um cliente existente
446
- </div>
447
- <div class="params">
448
- <strong>Parâmetros:</strong> customerId (String) -
449
- ID do cliente
450
- </div>
451
- </div>
452
-
453
- <div class="method">
454
- <h4>updateCustomer(id, data)</h4>
455
- <div class="signature">
456
- easyflowSDK.updateCustomer(customerId, updateData)
457
- </div>
458
- <div class="description">
459
- Atualiza dados de um cliente existente
460
- </div>
461
- </div>
462
- </div>
463
-
464
- <!-- Payments Tab -->
465
- <div id="payments" class="tab-content">
466
- <div class="method">
467
- <h4>placeOrder(offerId, data)</h4>
468
- <div class="signature">
469
- easyflowSDK.placeOrder(offerId, orderData)
470
- </div>
471
- <div class="description">
472
- Cria um pedido com oferta específica
473
- </div>
474
- </div>
475
-
476
- <div class="method">
477
- <h4>charge(data)</h4>
478
- <div class="signature">
479
- easyflowSDK.charge(paymentData)
480
- </div>
481
- <div class="description">Processa pagamento direto</div>
482
- </div>
483
-
484
- <div class="method">
485
- <h4>addCreditCard(customerId, token)</h4>
486
- <div class="signature">
487
- easyflowSDK.addCreditCard(customerId, cardToken)
488
- </div>
489
- <div class="description">
490
- Adiciona cartão de crédito ao cliente
491
- </div>
492
- </div>
493
- </div>
494
-
495
- <!-- Validation Tab -->
496
- <div id="validation" class="tab-content">
497
- <div class="method">
498
- <h4>validate.email(email)</h4>
499
- <div class="signature">
500
- easyflowSDK.validate.email(emailAddress)
501
- </div>
502
- <div class="description">Valida formato de email</div>
503
- <div class="example">
504
- <strong>Exemplo:</strong>
505
- <div class="code-block">
506
- const isValid =
507
- easyflowSDK.validate.email("test@email.com"); //
508
- Retorna: true ou false
509
- </div>
510
- </div>
511
- </div>
512
-
513
- <div class="method">
514
- <h4>validate.cpf(cpf)</h4>
515
- <div class="signature">
516
- easyflowSDK.validate.cpf(cpfNumber)
517
- </div>
518
- <div class="description">Valida CPF brasileiro</div>
519
- </div>
520
-
521
- <div class="method">
522
- <h4>validate.cnpj(cnpj)</h4>
523
- <div class="signature">
524
- easyflowSDK.validate.cnpj(cnpjNumber)
525
- </div>
526
- <div class="description">Valida CNPJ brasileiro</div>
527
- </div>
528
- </div>
529
-
530
- <!-- Events Tab -->
531
- <div id="events" class="tab-content">
532
- <div class="method">
533
- <h4>on(event, callback)</h4>
534
- <div class="signature">
535
- easyflowSDK.on(eventName, callbackFunction)
536
- </div>
537
- <div class="description">
538
- Configura callback para eventos
539
- </div>
540
- <div class="example">
541
- <strong>Eventos disponíveis:</strong>
542
- <ul>
543
- <li>
544
- <code>'customerCreated'</code> - Cliente
545
- criado
546
- </li>
547
- <li>
548
- <code>'paymentProcessed'</code> - Pagamento
549
- processado
550
- </li>
551
- <li><code>'error'</code> - Erro ocorreu</li>
552
- </ul>
553
- </div>
554
- </div>
555
- </div>
556
- </div>
557
-
558
- <!-- Examples -->
559
- <div id="examples" class="section">
560
- <h2>💡 Exemplos Práticos</h2>
561
-
562
- <h3>Formulário de Cadastro</h3>
563
- <div class="code-block">
564
- // Formulário de cadastro de cliente async function
565
- handleCustomerRegistration(formData) { try { // Validar
566
- dados const emailValid =
567
- easyflowSDK.validate.email(formData.email); const cpfValid =
568
- easyflowSDK.validate.cpf(formData.cpf); if (!emailValid ||
569
- !cpfValid) { throw new Error('Dados inválidos'); } // Criar
570
- cliente const result = await easyflowSDK.createCustomer({
571
- name: formData.name, email: formData.email, document: {
572
- type: 'CPF', number: formData.cpf } }); if (result.success)
573
- { console.log('Cliente criado:', result.data); //
574
- Redirecionar para checkout } } catch (error) {
575
- console.error('Erro:', error.message); } }
576
- </div>
577
-
578
- <h3>Processamento de Pagamento</h3>
579
- <div class="code-block">
580
- // Processar pagamento async function
581
- processPayment(offerId, customerId, paymentData) { try { //
582
- Criar pedido const orderResult = await
583
- easyflowSDK.placeOrder(offerId, { buyer: customerId,
584
- payments: [paymentData] }); if (orderResult.success) {
585
- console.log('Pedido criado:', orderResult.data); //
586
- Redirecionar para sucesso } } catch (error) {
587
- console.error('Erro no pagamento:', error.message); } }
588
- </div>
589
- </div>
590
-
591
- <!-- Platforms -->
592
- <div id="platforms" class="section">
593
- <h2>🌐 Plataformas Suportadas</h2>
594
-
595
- <div class="platform-grid">
596
- <div class="platform-card">
597
- <h4>Lovable.dev</h4>
598
- <p>Integração automática com chat AI e workflows</p>
599
- <div class="code">
600
- // Funciona automaticamente
601
- easyflowSDK.createCustomer(data)
602
- </div>
603
- </div>
604
-
605
- <div class="platform-card">
606
- <h4>Bubble</h4>
607
- <p>JavaScript personalizado com callbacks</p>
608
- <div class="code">
609
- // Configurar callbacks
610
- easyflowSDK.on('customerCreated', callback)
611
- </div>
612
- </div>
613
-
614
- <div class="platform-card">
615
- <h4>Webflow</h4>
616
- <p>HTML personalizado com JavaScript</p>
617
- <div class="code">
618
- // Usar em formulários &lt;script
619
- src="..."&gt;&lt;/script&gt;
620
- </div>
621
- </div>
622
-
623
- <div class="platform-card">
624
- <h4>Zapier</h4>
625
- <p>Webhooks e automações</p>
626
- <div class="code">
627
- // Endpoint webhook POST /api/easyflow
628
- </div>
629
- </div>
630
- </div>
631
- </div>
632
-
633
- <!-- Troubleshooting -->
634
- <div id="troubleshooting" class="section">
635
- <h2>🔧 Troubleshooting</h2>
636
-
637
- <h3>Problemas Comuns</h3>
638
-
639
- <div class="error-box">
640
- <strong>❌ "easyflowSDK is not defined"</strong>
641
- <p>O script não foi carregado corretamente. Verifique:</p>
642
- <ul>
643
- <li>URL do script está correta</li>
644
- <li>Script foi incluído antes do seu código</li>
645
- <li>Console do navegador não mostra erros</li>
646
- </ul>
647
- </div>
648
-
649
- <div class="error-box">
650
- <strong>❌ "Method not found"</strong>
651
- <p>Método não existe ou não foi exposto. Verifique:</p>
652
- <ul>
653
- <li>Versão do SDK está atualizada</li>
654
- <li>Método está listado na documentação</li>
655
- <li>Console mostra <code>typeof easyflowSDK</code></li>
656
- </ul>
657
- </div>
658
-
659
- <div class="success-box">
660
- <strong>✅ Debug Mode</strong>
661
- <p>Para habilitar logs de debug:</p>
662
- <div class="code-block">
663
- easyflowSDK.configure({ enableDebug: true });
664
- </div>
665
- </div>
666
-
667
- <h3>Verificar Status</h3>
668
- <div class="code-block">
669
- // Verificar se o SDK está funcionando console.log('SDK
670
- Status:', easyflowSDK.getStatus()); console.log('Métodos
671
- disponíveis:', Object.keys(easyflowSDK));
672
- </div>
673
- </div>
674
-
675
- <!-- Footer -->
676
- <div class="footer">
677
- <p>
678
- <strong>Easyflow SDK</strong> - Documentação pública
679
- atualizada automaticamente<br />
680
- Mantido por
681
- <a href="https://github.com/dmourainatel" target="_blank"
682
- >Diego Moura</a
683
- >
684
- |
685
- <a href="https://easyflow.digital" target="_blank"
686
- >Easyflow.digital</a
687
- >
688
- </p>
689
- <p
690
- style="
691
- margin-top: 15px;
692
- font-size: 0.9rem;
693
- color: var(--text-light);
694
- "
695
- >
696
- Esta documentação é servida via CDN e está sempre
697
- sincronizada com a versão mais recente do SDK.
698
- </p>
699
- </div>
700
- </div>
701
-
702
- <script>
703
- // Tab functionality
704
- function showTab(tabName) {
705
- // Hide all tabs
706
- document.querySelectorAll('.tab-content').forEach((tab) => {
707
- tab.classList.remove('active')
708
- })
709
- document.querySelectorAll('.tab').forEach((tab) => {
710
- tab.classList.remove('active')
711
- })
712
-
713
- // Show selected tab
714
- document.getElementById(tabName).classList.add('active')
715
- event.target.classList.add('active')
716
- }
717
-
718
- // Smooth scrolling for navigation
719
- document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
720
- anchor.addEventListener('click', function (e) {
721
- e.preventDefault()
722
- const target = document.querySelector(
723
- this.getAttribute('href')
724
- )
725
- if (target) {
726
- target.scrollIntoView({
727
- behavior: 'smooth',
728
- block: 'start',
729
- })
730
- }
731
- })
732
- })
733
-
734
- // Highlight current section in navigation
735
- window.addEventListener('scroll', () => {
736
- const sections = document.querySelectorAll('.section')
737
- const navLinks = document.querySelectorAll('.nav a')
738
-
739
- let current = ''
740
- sections.forEach((section) => {
741
- const sectionTop = section.offsetTop
742
- if (pageYOffset >= sectionTop - 60) {
743
- current = section.getAttribute('id')
744
- }
745
- })
746
-
747
- navLinks.forEach((link) => {
748
- link.classList.remove('active')
749
- if (link.getAttribute('href') === `#${current}`) {
750
- link.classList.add('active')
751
- }
752
- })
753
- })
754
- </script>
755
- </body>
756
- </html>