@bernierllc/email-campaign-management 1.0.1

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 (118) hide show
  1. package/.eslintrc.cjs +45 -0
  2. package/README.md +316 -0
  3. package/__tests__/api/campaigns.test.ts +217 -0
  4. package/__tests__/api/client.test.ts +330 -0
  5. package/__tests__/components/CampaignBuilder.test.tsx +103 -0
  6. package/__tests__/components/CampaignDashboard.test.tsx +89 -0
  7. package/__tests__/components/CampaignList.test.tsx +144 -0
  8. package/__tests__/components/MetricsOverview.test.tsx +200 -0
  9. package/__tests__/components/PerformanceChart.test.tsx +206 -0
  10. package/__tests__/hooks/useCampaignStore.test.ts +450 -0
  11. package/__tests__/hooks/useWorkflowValidation.test.ts +176 -0
  12. package/__tests__/utils/formatting.test.ts +48 -0
  13. package/__tests__/utils/validation.test.ts +199 -0
  14. package/__tests__/utils/workflow-helpers.test.ts +134 -0
  15. package/coverage/clover.xml +314 -0
  16. package/coverage/coverage-final.json +16 -0
  17. package/coverage/lcov-report/base.css +224 -0
  18. package/coverage/lcov-report/block-navigation.js +87 -0
  19. package/coverage/lcov-report/favicon.png +0 -0
  20. package/coverage/lcov-report/index.html +221 -0
  21. package/coverage/lcov-report/prettify.css +1 -0
  22. package/coverage/lcov-report/prettify.js +2 -0
  23. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  24. package/coverage/lcov-report/sorter.js +210 -0
  25. package/coverage/lcov-report/src/api/campaigns.ts.html +199 -0
  26. package/coverage/lcov-report/src/api/client.ts.html +478 -0
  27. package/coverage/lcov-report/src/api/index.html +131 -0
  28. package/coverage/lcov-report/src/components/CampaignBuilder/index.html +116 -0
  29. package/coverage/lcov-report/src/components/CampaignBuilder/index.tsx.html +454 -0
  30. package/coverage/lcov-report/src/components/CampaignDashboard/MetricsOverview.tsx.html +208 -0
  31. package/coverage/lcov-report/src/components/CampaignDashboard/PerformanceChart.tsx.html +232 -0
  32. package/coverage/lcov-report/src/components/CampaignDashboard/index.html +146 -0
  33. package/coverage/lcov-report/src/components/CampaignDashboard/index.tsx.html +241 -0
  34. package/coverage/lcov-report/src/components/CampaignList/index.html +116 -0
  35. package/coverage/lcov-report/src/components/CampaignList/index.tsx.html +244 -0
  36. package/coverage/lcov-report/src/config.ts.html +202 -0
  37. package/coverage/lcov-report/src/hooks/index.html +146 -0
  38. package/coverage/lcov-report/src/hooks/useCampaignMetrics.ts.html +208 -0
  39. package/coverage/lcov-report/src/hooks/useCampaignStore.ts.html +343 -0
  40. package/coverage/lcov-report/src/hooks/useWorkflowValidation.ts.html +136 -0
  41. package/coverage/lcov-report/src/index.html +116 -0
  42. package/coverage/lcov-report/src/types/index.html +116 -0
  43. package/coverage/lcov-report/src/types/index.ts.html +127 -0
  44. package/coverage/lcov-report/src/utils/formatting.ts.html +163 -0
  45. package/coverage/lcov-report/src/utils/index.html +146 -0
  46. package/coverage/lcov-report/src/utils/validation.ts.html +394 -0
  47. package/coverage/lcov-report/src/utils/workflow-helpers.ts.html +277 -0
  48. package/coverage/lcov.info +657 -0
  49. package/dist/api/campaigns.d.ts +9 -0
  50. package/dist/api/campaigns.js +38 -0
  51. package/dist/api/client.d.ts +14 -0
  52. package/dist/api/client.js +116 -0
  53. package/dist/components/CampaignBuilder/index.d.ts +8 -0
  54. package/dist/components/CampaignBuilder/index.js +88 -0
  55. package/dist/components/CampaignDashboard/MetricsOverview.d.ts +6 -0
  56. package/dist/components/CampaignDashboard/MetricsOverview.js +34 -0
  57. package/dist/components/CampaignDashboard/PerformanceChart.d.ts +7 -0
  58. package/dist/components/CampaignDashboard/PerformanceChart.js +45 -0
  59. package/dist/components/CampaignDashboard/index.d.ts +5 -0
  60. package/dist/components/CampaignDashboard/index.js +44 -0
  61. package/dist/components/CampaignList/index.d.ts +6 -0
  62. package/dist/components/CampaignList/index.js +68 -0
  63. package/dist/config.d.ts +12 -0
  64. package/dist/config.js +31 -0
  65. package/dist/hooks/useCampaignMetrics.d.ts +2 -0
  66. package/dist/hooks/useCampaignMetrics.js +42 -0
  67. package/dist/hooks/useCampaignStore.d.ts +14 -0
  68. package/dist/hooks/useCampaignStore.js +105 -0
  69. package/dist/hooks/useWorkflowValidation.d.ts +3 -0
  70. package/dist/hooks/useWorkflowValidation.js +17 -0
  71. package/dist/index.d.ts +13 -0
  72. package/dist/index.js +52 -0
  73. package/dist/types/abtest.d.ts +15 -0
  74. package/dist/types/abtest.js +9 -0
  75. package/dist/types/audience.d.ts +18 -0
  76. package/dist/types/audience.js +9 -0
  77. package/dist/types/campaign.d.ts +31 -0
  78. package/dist/types/campaign.js +9 -0
  79. package/dist/types/index.d.ts +6 -0
  80. package/dist/types/index.js +29 -0
  81. package/dist/types/metrics.d.ts +27 -0
  82. package/dist/types/metrics.js +9 -0
  83. package/dist/types/schedule.d.ts +15 -0
  84. package/dist/types/schedule.js +9 -0
  85. package/dist/types/workflow.d.ts +37 -0
  86. package/dist/types/workflow.js +9 -0
  87. package/dist/utils/formatting.d.ts +4 -0
  88. package/dist/utils/formatting.js +28 -0
  89. package/dist/utils/validation.d.ts +8 -0
  90. package/dist/utils/validation.js +81 -0
  91. package/dist/utils/workflow-helpers.d.ts +12 -0
  92. package/dist/utils/workflow-helpers.js +62 -0
  93. package/jest.config.cjs +33 -0
  94. package/jest.setup.cjs +9 -0
  95. package/package.json +72 -0
  96. package/src/api/campaigns.ts +38 -0
  97. package/src/api/client.ts +131 -0
  98. package/src/components/CampaignBuilder/index.tsx +123 -0
  99. package/src/components/CampaignDashboard/MetricsOverview.tsx +41 -0
  100. package/src/components/CampaignDashboard/PerformanceChart.tsx +49 -0
  101. package/src/components/CampaignDashboard/index.tsx +52 -0
  102. package/src/components/CampaignList/index.tsx +53 -0
  103. package/src/config.ts +39 -0
  104. package/src/hooks/useCampaignMetrics.ts +41 -0
  105. package/src/hooks/useCampaignStore.ts +86 -0
  106. package/src/hooks/useWorkflowValidation.ts +17 -0
  107. package/src/index.ts +32 -0
  108. package/src/types/abtest.ts +25 -0
  109. package/src/types/audience.ts +30 -0
  110. package/src/types/campaign.ts +44 -0
  111. package/src/types/index.ts +14 -0
  112. package/src/types/metrics.ts +36 -0
  113. package/src/types/schedule.ts +26 -0
  114. package/src/types/workflow.ts +53 -0
  115. package/src/utils/formatting.ts +26 -0
  116. package/src/utils/validation.ts +103 -0
  117. package/src/utils/workflow-helpers.ts +64 -0
  118. package/tsconfig.json +24 -0
@@ -0,0 +1,657 @@
1
+ TN:
2
+ SF:src/config.ts
3
+ FN:29,getConfig
4
+ FN:33,setConfig
5
+ FN:37,resetConfig
6
+ FNF:3
7
+ FNH:1
8
+ FNDA:7,getConfig
9
+ FNDA:0,setConfig
10
+ FNDA:0,resetConfig
11
+ DA:18,4
12
+ DA:27,4
13
+ DA:29,4
14
+ DA:30,7
15
+ DA:33,4
16
+ DA:34,0
17
+ DA:37,4
18
+ DA:38,0
19
+ LF:8
20
+ LH:6
21
+ BRDA:19,0,0,4
22
+ BRDA:19,0,1,4
23
+ BRDA:22,1,0,4
24
+ BRDA:22,1,1,4
25
+ BRDA:23,2,0,4
26
+ BRDA:23,2,1,4
27
+ BRDA:24,3,0,4
28
+ BRDA:24,3,1,4
29
+ BRF:8
30
+ BRH:8
31
+ end_of_record
32
+ TN:
33
+ SF:src/api/campaigns.ts
34
+ FN:12,getCampaigns
35
+ FN:16,getCampaign
36
+ FN:20,createCampaign
37
+ FN:24,updateCampaign
38
+ FN:28,deleteCampaign
39
+ FN:32,getCampaignMetrics
40
+ FN:36,getEmailMetrics
41
+ FNF:7
42
+ FNH:7
43
+ FNDA:2,getCampaigns
44
+ FNDA:2,getCampaign
45
+ FNDA:2,createCampaign
46
+ FNDA:2,updateCampaign
47
+ FNDA:2,deleteCampaign
48
+ FNDA:2,getCampaignMetrics
49
+ FNDA:3,getEmailMetrics
50
+ DA:9,4
51
+ DA:12,4
52
+ DA:13,2
53
+ DA:16,4
54
+ DA:17,2
55
+ DA:20,4
56
+ DA:21,2
57
+ DA:24,4
58
+ DA:25,2
59
+ DA:28,4
60
+ DA:29,2
61
+ DA:32,4
62
+ DA:33,2
63
+ DA:36,4
64
+ DA:37,3
65
+ LF:15
66
+ LH:15
67
+ BRF:0
68
+ BRH:0
69
+ end_of_record
70
+ TN:
71
+ SF:src/api/client.ts
72
+ FN:20,(anonymous_0)
73
+ FN:24,(anonymous_1)
74
+ FN:50,(anonymous_2)
75
+ FN:77,(anonymous_3)
76
+ FN:104,(anonymous_4)
77
+ FNF:5
78
+ FNH:5
79
+ FNDA:27,(anonymous_0)
80
+ FNDA:6,(anonymous_1)
81
+ FNDA:4,(anonymous_2)
82
+ FNDA:4,(anonymous_3)
83
+ FNDA:4,(anonymous_4)
84
+ DA:9,4
85
+ DA:17,4
86
+ DA:21,27
87
+ DA:25,6
88
+ DA:26,6
89
+ DA:33,4
90
+ DA:34,1
91
+ DA:40,3
92
+ DA:41,2
93
+ DA:43,3
94
+ DA:51,4
95
+ DA:52,4
96
+ DA:60,2
97
+ DA:61,1
98
+ DA:67,1
99
+ DA:68,1
100
+ DA:70,2
101
+ DA:78,4
102
+ DA:79,4
103
+ DA:87,2
104
+ DA:88,1
105
+ DA:94,1
106
+ DA:95,1
107
+ DA:97,2
108
+ DA:105,4
109
+ DA:106,4
110
+ DA:113,2
111
+ DA:114,1
112
+ DA:120,1
113
+ DA:121,1
114
+ DA:123,2
115
+ DA:131,4
116
+ LF:32
117
+ LH:32
118
+ BRDA:21,0,0,27
119
+ BRDA:21,0,1,25
120
+ BRDA:33,1,0,1
121
+ BRDA:45,2,0,2
122
+ BRDA:45,2,1,1
123
+ BRDA:60,3,0,1
124
+ BRDA:72,4,0,1
125
+ BRDA:72,4,1,1
126
+ BRDA:87,5,0,1
127
+ BRDA:99,6,0,1
128
+ BRDA:99,6,1,1
129
+ BRDA:113,7,0,1
130
+ BRDA:125,8,0,1
131
+ BRDA:125,8,1,1
132
+ BRF:14
133
+ BRH:14
134
+ end_of_record
135
+ TN:
136
+ SF:src/components/CampaignBuilder/index.tsx
137
+ FN:19,(anonymous_9)
138
+ FN:31,(anonymous_10)
139
+ FN:47,(anonymous_11)
140
+ FN:53,(anonymous_12)
141
+ FN:62,(anonymous_13)
142
+ FN:68,(anonymous_14)
143
+ FN:74,(anonymous_15)
144
+ FN:80,(anonymous_16)
145
+ FN:116,(anonymous_17)
146
+ FNF:9
147
+ FNH:6
148
+ FNDA:12,(anonymous_9)
149
+ FNDA:1,(anonymous_10)
150
+ FNDA:2,(anonymous_11)
151
+ FNDA:1,(anonymous_12)
152
+ FNDA:0,(anonymous_13)
153
+ FNDA:1,(anonymous_14)
154
+ FNDA:1,(anonymous_15)
155
+ FNDA:0,(anonymous_16)
156
+ FNDA:0,(anonymous_17)
157
+ DA:9,1
158
+ DA:11,1
159
+ DA:19,1
160
+ DA:24,12
161
+ DA:25,12
162
+ DA:26,12
163
+ DA:29,12
164
+ DA:31,12
165
+ DA:32,1
166
+ DA:41,12
167
+ DA:47,2
168
+ DA:53,1
169
+ DA:62,0
170
+ DA:68,1
171
+ DA:74,1
172
+ DA:80,0
173
+ DA:116,0
174
+ LF:17
175
+ LH:14
176
+ BRDA:24,0,0,12
177
+ BRDA:24,0,1,11
178
+ BRDA:25,1,0,12
179
+ BRDA:25,1,1,12
180
+ BRDA:27,2,0,12
181
+ BRDA:27,2,1,11
182
+ BRDA:61,3,0,10
183
+ BRDA:61,3,1,2
184
+ BRDA:67,4,0,1
185
+ BRDA:67,4,1,11
186
+ BRDA:73,5,0,1
187
+ BRDA:73,5,1,11
188
+ BRDA:79,6,0,0
189
+ BRDA:79,6,1,12
190
+ BRDA:87,7,0,12
191
+ BRDA:87,7,1,10
192
+ BRDA:94,8,0,12
193
+ BRDA:94,8,1,1
194
+ BRDA:99,9,0,12
195
+ BRDA:99,9,1,1
196
+ BRDA:104,10,0,12
197
+ BRDA:104,10,1,0
198
+ BRDA:115,11,0,12
199
+ BRDA:115,11,1,1
200
+ BRDA:115,11,2,1
201
+ BRF:25
202
+ BRH:23
203
+ end_of_record
204
+ TN:
205
+ SF:src/components/CampaignDashboard/MetricsOverview.tsx
206
+ FN:17,(anonymous_1)
207
+ FNF:1
208
+ FNH:1
209
+ FNDA:23,(anonymous_1)
210
+ DA:9,2
211
+ DA:11,2
212
+ DA:17,2
213
+ DA:18,23
214
+ LF:4
215
+ LH:4
216
+ BRF:0
217
+ BRH:0
218
+ end_of_record
219
+ TN:
220
+ SF:src/components/CampaignDashboard/PerformanceChart.tsx
221
+ FN:17,(anonymous_1)
222
+ FN:18,(anonymous_2)
223
+ FN:29,(anonymous_3)
224
+ FNF:3
225
+ FNH:3
226
+ FNDA:26,(anonymous_1)
227
+ FNDA:26,(anonymous_2)
228
+ FNDA:26,(anonymous_3)
229
+ DA:9,2
230
+ DA:17,2
231
+ DA:18,26
232
+ DA:19,26
233
+ DA:21,14
234
+ DA:23,6
235
+ DA:25,6
236
+ DA:29,26
237
+ DA:30,26
238
+ DA:32,14
239
+ DA:34,6
240
+ DA:36,6
241
+ DA:40,26
242
+ LF:13
243
+ LH:13
244
+ BRDA:19,0,0,14
245
+ BRDA:19,0,1,6
246
+ BRDA:19,0,2,6
247
+ BRDA:30,1,0,14
248
+ BRDA:30,1,1,6
249
+ BRDA:30,1,2,6
250
+ BRF:6
251
+ BRH:6
252
+ end_of_record
253
+ TN:
254
+ SF:src/components/CampaignDashboard/index.tsx
255
+ FN:18,(anonymous_1)
256
+ FN:42,(anonymous_2)
257
+ FNF:2
258
+ FNH:1
259
+ FNDA:2,(anonymous_1)
260
+ FNDA:0,(anonymous_2)
261
+ DA:9,1
262
+ DA:10,1
263
+ DA:11,1
264
+ DA:12,1
265
+ DA:18,1
266
+ DA:19,2
267
+ DA:20,2
268
+ DA:22,2
269
+ DA:23,2
270
+ DA:26,0
271
+ DA:27,0
272
+ DA:30,0
273
+ DA:43,0
274
+ LF:13
275
+ LH:9
276
+ BRDA:22,0,0,2
277
+ BRDA:22,1,0,2
278
+ BRDA:22,1,1,0
279
+ BRDA:26,2,0,0
280
+ BRDA:26,3,0,0
281
+ BRDA:26,3,1,0
282
+ BRDA:38,4,0,0
283
+ BRDA:38,4,1,0
284
+ BRF:8
285
+ BRH:2
286
+ end_of_record
287
+ TN:
288
+ SF:src/components/CampaignList/index.tsx
289
+ FN:17,(anonymous_9)
290
+ FN:20,(anonymous_10)
291
+ FN:39,(anonymous_11)
292
+ FN:40,(anonymous_12)
293
+ FNF:4
294
+ FNH:3
295
+ FNDA:5,(anonymous_9)
296
+ FNDA:5,(anonymous_10)
297
+ FNDA:2,(anonymous_11)
298
+ FNDA:0,(anonymous_12)
299
+ DA:9,1
300
+ DA:10,1
301
+ DA:17,1
302
+ DA:18,5
303
+ DA:20,5
304
+ DA:21,5
305
+ DA:24,5
306
+ DA:25,1
307
+ DA:28,4
308
+ DA:29,1
309
+ DA:32,3
310
+ DA:40,2
311
+ LF:12
312
+ LH:12
313
+ BRDA:24,0,0,1
314
+ BRDA:28,1,0,1
315
+ BRDA:35,2,0,2
316
+ BRDA:35,2,1,1
317
+ BRF:4
318
+ BRH:4
319
+ end_of_record
320
+ TN:
321
+ SF:src/hooks/useCampaignMetrics.ts
322
+ FN:13,useCampaignMetrics
323
+ FN:16,(anonymous_1)
324
+ FN:28,useEmailMetrics
325
+ FN:31,(anonymous_3)
326
+ FNF:4
327
+ FNH:4
328
+ FNDA:2,useCampaignMetrics
329
+ FNDA:1,(anonymous_1)
330
+ FNDA:2,useEmailMetrics
331
+ FNDA:1,(anonymous_3)
332
+ DA:9,1
333
+ DA:10,1
334
+ DA:11,1
335
+ DA:13,1
336
+ DA:14,2
337
+ DA:17,1
338
+ DA:18,0
339
+ DA:19,0
340
+ DA:21,0
341
+ DA:28,1
342
+ DA:29,2
343
+ DA:32,1
344
+ DA:33,0
345
+ DA:34,0
346
+ DA:36,0
347
+ LF:15
348
+ LH:9
349
+ BRDA:18,0,0,0
350
+ BRDA:19,1,0,0
351
+ BRDA:19,1,1,0
352
+ BRDA:33,2,0,0
353
+ BRDA:34,3,0,0
354
+ BRDA:34,3,1,0
355
+ BRF:6
356
+ BRH:0
357
+ end_of_record
358
+ TN:
359
+ SF:src/hooks/useCampaignStore.ts
360
+ FN:26,(anonymous_9)
361
+ FN:32,(anonymous_10)
362
+ FN:42,(anonymous_11)
363
+ FN:46,(anonymous_12)
364
+ FN:57,(anonymous_13)
365
+ FN:61,(anonymous_14)
366
+ FN:62,(anonymous_15)
367
+ FN:71,(anonymous_16)
368
+ FN:75,(anonymous_17)
369
+ FN:76,(anonymous_18)
370
+ FN:85,(anonymous_19)
371
+ FNF:11
372
+ FNH:11
373
+ FNDA:2,(anonymous_9)
374
+ FNDA:5,(anonymous_10)
375
+ FNDA:4,(anonymous_11)
376
+ FNDA:1,(anonymous_12)
377
+ FNDA:5,(anonymous_13)
378
+ FNDA:3,(anonymous_14)
379
+ FNDA:6,(anonymous_15)
380
+ FNDA:5,(anonymous_16)
381
+ FNDA:3,(anonymous_17)
382
+ FNDA:6,(anonymous_18)
383
+ FNDA:2,(anonymous_19)
384
+ DA:9,2
385
+ DA:11,2
386
+ DA:26,2
387
+ DA:33,5
388
+ DA:34,5
389
+ DA:35,4
390
+ DA:36,2
391
+ DA:38,2
392
+ DA:43,4
393
+ DA:44,4
394
+ DA:45,3
395
+ DA:46,1
396
+ DA:50,1
397
+ DA:52,2
398
+ DA:53,2
399
+ DA:58,5
400
+ DA:59,5
401
+ DA:60,5
402
+ DA:61,3
403
+ DA:62,6
404
+ DA:67,2
405
+ DA:72,5
406
+ DA:73,5
407
+ DA:74,5
408
+ DA:75,3
409
+ DA:76,6
410
+ DA:81,2
411
+ DA:85,2
412
+ LF:28
413
+ LH:28
414
+ BRDA:35,0,0,2
415
+ BRDA:35,0,1,2
416
+ BRDA:35,1,0,4
417
+ BRDA:35,1,1,2
418
+ BRDA:38,2,0,2
419
+ BRDA:38,2,1,1
420
+ BRDA:45,3,0,1
421
+ BRDA:45,3,1,2
422
+ BRDA:45,4,0,3
423
+ BRDA:45,4,1,1
424
+ BRDA:52,5,0,2
425
+ BRDA:52,5,1,1
426
+ BRDA:60,6,0,3
427
+ BRDA:60,6,1,2
428
+ BRDA:60,7,0,5
429
+ BRDA:60,7,1,3
430
+ BRDA:62,8,0,3
431
+ BRDA:62,8,1,3
432
+ BRDA:63,9,0,1
433
+ BRDA:63,9,1,2
434
+ BRDA:67,10,0,2
435
+ BRDA:67,10,1,1
436
+ BRDA:74,11,0,3
437
+ BRDA:74,11,1,2
438
+ BRDA:77,12,0,1
439
+ BRDA:77,12,1,2
440
+ BRDA:81,13,0,2
441
+ BRDA:81,13,1,1
442
+ BRF:28
443
+ BRH:28
444
+ end_of_record
445
+ TN:
446
+ SF:src/hooks/useWorkflowValidation.ts
447
+ FN:13,useWorkflowValidation
448
+ FN:14,(anonymous_1)
449
+ FNF:2
450
+ FNH:2
451
+ FNDA:9,useWorkflowValidation
452
+ FNDA:8,(anonymous_1)
453
+ DA:9,1
454
+ DA:11,1
455
+ DA:13,1
456
+ DA:14,9
457
+ DA:15,8
458
+ LF:5
459
+ LH:5
460
+ BRF:0
461
+ BRH:0
462
+ end_of_record
463
+ TN:
464
+ SF:src/types/index.ts
465
+ FNF:0
466
+ FNH:0
467
+ DA:9,0
468
+ DA:10,0
469
+ DA:11,0
470
+ DA:12,0
471
+ DA:13,0
472
+ DA:14,0
473
+ LF:6
474
+ LH:0
475
+ BRF:0
476
+ BRH:0
477
+ end_of_record
478
+ TN:
479
+ SF:src/utils/formatting.ts
480
+ FN:11,formatPercentage
481
+ FN:15,formatNumber
482
+ FN:19,formatDate
483
+ FN:23,formatMetricRate
484
+ FNF:4
485
+ FNH:3
486
+ FNDA:72,formatPercentage
487
+ FNDA:95,formatNumber
488
+ FNDA:0,formatDate
489
+ FNDA:4,formatMetricRate
490
+ DA:9,3
491
+ DA:11,3
492
+ DA:12,72
493
+ DA:15,3
494
+ DA:16,95
495
+ DA:19,3
496
+ DA:20,0
497
+ DA:23,3
498
+ DA:24,4
499
+ DA:25,3
500
+ LF:10
501
+ LH:9
502
+ BRDA:11,0,0,70
503
+ BRDA:19,1,0,0
504
+ BRDA:24,2,0,1
505
+ BRF:3
506
+ BRH:2
507
+ end_of_record
508
+ TN:
509
+ SF:src/utils/validation.ts
510
+ FN:16,validateWorkflow
511
+ FN:25,(anonymous_1)
512
+ FN:31,(anonymous_2)
513
+ FN:44,validateABTest
514
+ FN:56,(anonymous_4)
515
+ FN:61,(anonymous_5)
516
+ FN:88,validateCampaignName
517
+ FNF:7
518
+ FNH:7
519
+ FNDA:12,validateWorkflow
520
+ FNDA:7,(anonymous_1)
521
+ FNDA:16,(anonymous_2)
522
+ FNDA:6,validateABTest
523
+ FNDA:9,(anonymous_4)
524
+ FNDA:9,(anonymous_5)
525
+ FNDA:4,validateCampaignName
526
+ DA:16,2
527
+ DA:17,12
528
+ DA:19,12
529
+ DA:20,4
530
+ DA:24,12
531
+ DA:25,12
532
+ DA:26,7
533
+ DA:27,7
534
+ DA:30,12
535
+ DA:31,16
536
+ DA:34,12
537
+ DA:35,1
538
+ DA:38,12
539
+ DA:44,2
540
+ DA:45,6
541
+ DA:47,6
542
+ DA:48,1
543
+ DA:51,5
544
+ DA:52,1
545
+ DA:55,5
546
+ DA:56,9
547
+ DA:57,5
548
+ DA:58,1
549
+ DA:61,5
550
+ DA:62,9
551
+ DA:63,0
552
+ DA:65,9
553
+ DA:66,1
554
+ DA:68,9
555
+ DA:69,1
556
+ DA:74,5
557
+ DA:75,0
558
+ DA:78,5
559
+ DA:79,0
560
+ DA:82,5
561
+ DA:88,2
562
+ DA:89,4
563
+ DA:91,4
564
+ DA:92,2
565
+ DA:95,4
566
+ DA:96,1
567
+ DA:99,4
568
+ LF:42
569
+ LH:39
570
+ BRDA:19,0,0,4
571
+ BRDA:19,1,0,12
572
+ BRDA:19,1,1,12
573
+ BRDA:31,2,0,16
574
+ BRDA:31,2,1,3
575
+ BRDA:34,3,0,1
576
+ BRDA:47,4,0,1
577
+ BRDA:51,5,0,1
578
+ BRDA:51,6,0,5
579
+ BRDA:51,6,1,5
580
+ BRDA:55,7,0,5
581
+ BRDA:57,8,0,1
582
+ BRDA:62,9,0,0
583
+ BRDA:62,10,0,9
584
+ BRDA:62,10,1,9
585
+ BRDA:65,11,0,1
586
+ BRDA:68,12,0,1
587
+ BRDA:68,13,0,9
588
+ BRDA:68,13,1,8
589
+ BRDA:74,14,0,0
590
+ BRDA:78,15,0,0
591
+ BRDA:78,16,0,5
592
+ BRDA:78,16,1,5
593
+ BRDA:91,17,0,2
594
+ BRDA:91,18,0,4
595
+ BRDA:91,18,1,3
596
+ BRDA:95,19,0,1
597
+ BRDA:95,20,0,4
598
+ BRDA:95,20,1,3
599
+ BRF:29
600
+ BRH:26
601
+ end_of_record
602
+ TN:
603
+ SF:src/utils/workflow-helpers.ts
604
+ FN:11,generateNodeId
605
+ FN:15,generateEdgeId
606
+ FN:19,createNode
607
+ FN:28,createEdge
608
+ FN:37,getDefaultWorkflow
609
+ FN:45,findNodeById
610
+ FN:46,(anonymous_6)
611
+ FN:49,removeNode
612
+ FN:52,(anonymous_8)
613
+ FN:53,(anonymous_9)
614
+ FN:57,updateNode
615
+ FN:60,(anonymous_11)
616
+ FNF:12
617
+ FNH:12
618
+ FNDA:10,generateNodeId
619
+ FNDA:4,generateEdgeId
620
+ FNDA:8,createNode
621
+ FNDA:2,createEdge
622
+ FNDA:17,getDefaultWorkflow
623
+ FNDA:4,findNodeById
624
+ FNDA:4,(anonymous_6)
625
+ FNDA:1,removeNode
626
+ FNDA:2,(anonymous_8)
627
+ FNDA:1,(anonymous_9)
628
+ FNDA:2,updateNode
629
+ FNDA:3,(anonymous_11)
630
+ DA:11,2
631
+ DA:12,10
632
+ DA:15,2
633
+ DA:16,4
634
+ DA:19,2
635
+ DA:20,8
636
+ DA:28,2
637
+ DA:29,2
638
+ DA:37,2
639
+ DA:38,17
640
+ DA:45,2
641
+ DA:46,4
642
+ DA:49,2
643
+ DA:50,1
644
+ DA:52,2
645
+ DA:53,1
646
+ DA:57,2
647
+ DA:58,2
648
+ DA:61,3
649
+ LF:19
650
+ LH:19
651
+ BRDA:53,0,0,1
652
+ BRDA:53,0,1,0
653
+ BRDA:61,1,0,2
654
+ BRDA:61,1,1,1
655
+ BRF:4
656
+ BRH:3
657
+ end_of_record
@@ -0,0 +1,9 @@
1
+ import { APIResponse } from './client';
2
+ import { Campaign, CampaignMetrics, EmailMetrics } from '../types';
3
+ export declare function getCampaigns(): Promise<APIResponse<Campaign[]>>;
4
+ export declare function getCampaign(id: string): Promise<APIResponse<Campaign>>;
5
+ export declare function createCampaign(campaign: Partial<Campaign>): Promise<APIResponse<Campaign>>;
6
+ export declare function updateCampaign(id: string, updates: Partial<Campaign>): Promise<APIResponse<Campaign>>;
7
+ export declare function deleteCampaign(id: string): Promise<APIResponse<void>>;
8
+ export declare function getCampaignMetrics(campaignId: string): Promise<APIResponse<CampaignMetrics>>;
9
+ export declare function getEmailMetrics(campaignId: string): Promise<APIResponse<EmailMetrics[]>>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (c) 2025 Bernier LLC
4
+
5
+ This file is licensed to the client under a limited-use license.
6
+ The client may use and modify this code *only within the scope of the project it was delivered for*.
7
+ Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getCampaigns = getCampaigns;
11
+ exports.getCampaign = getCampaign;
12
+ exports.createCampaign = createCampaign;
13
+ exports.updateCampaign = updateCampaign;
14
+ exports.deleteCampaign = deleteCampaign;
15
+ exports.getCampaignMetrics = getCampaignMetrics;
16
+ exports.getEmailMetrics = getEmailMetrics;
17
+ const client_1 = require("./client");
18
+ async function getCampaigns() {
19
+ return client_1.apiClient.get('/campaigns');
20
+ }
21
+ async function getCampaign(id) {
22
+ return client_1.apiClient.get(`/campaigns/${id}`);
23
+ }
24
+ async function createCampaign(campaign) {
25
+ return client_1.apiClient.post('/campaigns', campaign);
26
+ }
27
+ async function updateCampaign(id, updates) {
28
+ return client_1.apiClient.put(`/campaigns/${id}`, updates);
29
+ }
30
+ async function deleteCampaign(id) {
31
+ return client_1.apiClient.delete(`/campaigns/${id}`);
32
+ }
33
+ async function getCampaignMetrics(campaignId) {
34
+ return client_1.apiClient.get(`/campaigns/${campaignId}/metrics`);
35
+ }
36
+ async function getEmailMetrics(campaignId) {
37
+ return client_1.apiClient.get(`/campaigns/${campaignId}/emails/metrics`);
38
+ }
@@ -0,0 +1,14 @@
1
+ export interface APIResponse<T = unknown> {
2
+ success: boolean;
3
+ data?: T;
4
+ error?: string;
5
+ }
6
+ export declare class APIClient {
7
+ private baseUrl;
8
+ constructor(baseUrl?: string);
9
+ get<T>(endpoint: string): Promise<APIResponse<T>>;
10
+ post<T>(endpoint: string, body: unknown): Promise<APIResponse<T>>;
11
+ put<T>(endpoint: string, body: unknown): Promise<APIResponse<T>>;
12
+ delete<T>(endpoint: string): Promise<APIResponse<T>>;
13
+ }
14
+ export declare const apiClient: APIClient;