@vicacha-devs/strapi-plugin-broadcasts 0.0.0-stage → 0.1.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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -2
  3. package/dist/admin/BroadcastsHomePage-CM_N_spo.mjs +1210 -0
  4. package/dist/admin/BroadcastsHomePage-DQueM7nj.js +1228 -0
  5. package/dist/admin/SettingsPage-TawvAAiv.js +1187 -0
  6. package/dist/admin/SettingsPage-ikcb0cfh.mjs +1169 -0
  7. package/dist/admin/ar-vwekVqfp.js +232 -0
  8. package/dist/admin/ar-wZTCd3Za.mjs +232 -0
  9. package/dist/admin/de-IZicxuvv.mjs +232 -0
  10. package/dist/admin/de-Qa2SQQfY.js +232 -0
  11. package/dist/admin/en-B-HnZo8U.mjs +232 -0
  12. package/dist/admin/en-D1byrK0s.js +232 -0
  13. package/dist/admin/es-Co7PmAj8.mjs +232 -0
  14. package/dist/admin/es-Dgylqagv.js +232 -0
  15. package/dist/admin/fr-B9zZn3z1.mjs +232 -0
  16. package/dist/admin/fr-C7-MIWnw.js +232 -0
  17. package/dist/admin/index-CApLw9Uu.mjs +1036 -0
  18. package/dist/admin/index-Dw6J7U1v.js +1053 -0
  19. package/dist/admin/index.js +6 -0
  20. package/dist/admin/index.mjs +6 -0
  21. package/dist/admin/it-DJU9iBqT.mjs +232 -0
  22. package/dist/admin/it-D_mulZtx.js +232 -0
  23. package/dist/admin/pt-B9swwjPu.js +232 -0
  24. package/dist/admin/pt-Dr8u5we0.mjs +232 -0
  25. package/dist/admin/ru-B0NNiMNA.js +232 -0
  26. package/dist/admin/ru-Bd4cEKDV.mjs +232 -0
  27. package/dist/admin/selectOptions-BlvNrhvc.mjs +150 -0
  28. package/dist/admin/selectOptions-DuHQ0KK3.js +149 -0
  29. package/dist/admin/src/components/AutomationAndLogsTabs.d.ts +16 -0
  30. package/dist/admin/src/components/BridgesSandboxTab.d.ts +8 -0
  31. package/dist/admin/src/components/CampaignComposerForm.d.ts +26 -0
  32. package/dist/admin/src/components/CampaignsTableSection.d.ts +27 -0
  33. package/dist/admin/src/components/DeliveryLedgerSection.d.ts +17 -0
  34. package/dist/admin/src/components/Initializer.d.ts +6 -0
  35. package/dist/admin/src/components/OrganizationEmailTab.d.ts +10 -0
  36. package/dist/admin/src/components/PluginIcon.d.ts +3 -0
  37. package/dist/admin/src/components/WhatsAppTransportTab.d.ts +11 -0
  38. package/dist/admin/src/index.d.ts +24 -0
  39. package/dist/admin/src/pages/BroadcastsHomePage.d.ts +2 -0
  40. package/dist/admin/src/pages/SettingsPage.d.ts +3 -0
  41. package/dist/admin/src/permissions.d.ts +30 -0
  42. package/dist/admin/src/pluginId.d.ts +2 -0
  43. package/dist/admin/src/translations/cmLabels.d.ts +1 -0
  44. package/dist/admin/src/translations/cmLabelsExtra.d.ts +1 -0
  45. package/dist/admin/src/translations/cmPlaceholders.d.ts +1 -0
  46. package/dist/admin/src/translations/cmPlaceholdersExtra.d.ts +1 -0
  47. package/dist/admin/src/utils/extractApiError.d.ts +1 -0
  48. package/dist/admin/src/utils/selectOptions.d.ts +21 -0
  49. package/dist/admin/tr-Cc-ItZUP.js +232 -0
  50. package/dist/admin/tr-DlyHa2Vk.mjs +232 -0
  51. package/dist/admin/zh-CLzJ7x3y.mjs +232 -0
  52. package/dist/admin/zh-CaqwZk-p.js +232 -0
  53. package/dist/server/index.js +3399 -0
  54. package/dist/server/index.mjs +3399 -0
  55. package/dist/server/src/bootstrap.d.ts +5 -0
  56. package/dist/server/src/config/index.d.ts +5 -0
  57. package/dist/server/src/content-types/automation-rule/index.d.ts +90 -0
  58. package/dist/server/src/content-types/automation-rule/schema.json.d.ts +90 -0
  59. package/dist/server/src/content-types/campaign/index.d.ts +118 -0
  60. package/dist/server/src/content-types/campaign/schema.json.d.ts +118 -0
  61. package/dist/server/src/content-types/delivery-log/index.d.ts +71 -0
  62. package/dist/server/src/content-types/delivery-log/schema.json.d.ts +71 -0
  63. package/dist/server/src/content-types/index.d.ts +279 -0
  64. package/dist/server/src/controllers/broadcastController.d.ts +32 -0
  65. package/dist/server/src/controllers/index.d.ts +22 -0
  66. package/dist/server/src/destroy.d.ts +5 -0
  67. package/dist/server/src/eventHubRegistry.d.ts +5 -0
  68. package/dist/server/src/index.d.ts +463 -0
  69. package/dist/server/src/register.d.ts +5 -0
  70. package/dist/server/src/routes/admin.d.ts +17 -0
  71. package/dist/server/src/routes/content-api.d.ts +13 -0
  72. package/dist/server/src/routes/index.d.ts +31 -0
  73. package/dist/server/src/services/automationService.d.ts +33 -0
  74. package/dist/server/src/services/campaignChannelDispatch.d.ts +20 -0
  75. package/dist/server/src/services/campaignHelpers.d.ts +20 -0
  76. package/dist/server/src/services/campaignLifecycle.d.ts +23 -0
  77. package/dist/server/src/services/campaignService.d.ts +54 -0
  78. package/dist/server/src/services/deliveryLedger.d.ts +18 -0
  79. package/dist/server/src/services/emailDesignerBridge.d.ts +30 -0
  80. package/dist/server/src/services/idempotency.d.ts +5 -0
  81. package/dist/server/src/services/index.d.ts +119 -0
  82. package/dist/server/src/services/settings.d.ts +12 -0
  83. package/dist/server/src/services/transportService.d.ts +70 -0
  84. package/dist/shared/index.d.ts +1 -0
  85. package/dist/shared/index.js +825 -0
  86. package/dist/shared/index.mjs +823 -0
  87. package/package.json +109 -3
@@ -0,0 +1,5 @@
1
+ import { Core } from '@strapi/strapi';
2
+ declare const bootstrap: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => Promise<void>;
5
+ export default bootstrap;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: import('../../../shared').BroadcastSettings;
3
+ validator(): void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,90 @@
1
+ declare const _default: {
2
+ schema: {
3
+ kind: string;
4
+ collectionName: string;
5
+ info: {
6
+ singularName: string;
7
+ pluralName: string;
8
+ displayName: string;
9
+ description: string;
10
+ };
11
+ options: {
12
+ draftAndPublish: boolean;
13
+ };
14
+ pluginOptions: {
15
+ "content-manager": {
16
+ visible: boolean;
17
+ };
18
+ "content-type-builder": {
19
+ visible: boolean;
20
+ };
21
+ };
22
+ attributes: {
23
+ name: {
24
+ type: string;
25
+ required: boolean;
26
+ };
27
+ slug: {
28
+ type: string;
29
+ targetField: string;
30
+ required: boolean;
31
+ };
32
+ eventName: {
33
+ type: string;
34
+ required: boolean;
35
+ };
36
+ targetContentType: {
37
+ type: string;
38
+ };
39
+ topic: {
40
+ type: string;
41
+ default: string;
42
+ required: boolean;
43
+ };
44
+ channels: {
45
+ type: string;
46
+ required: boolean;
47
+ default: string[];
48
+ };
49
+ active: {
50
+ type: string;
51
+ default: boolean;
52
+ };
53
+ priority: {
54
+ type: string;
55
+ enum: string[];
56
+ default: string;
57
+ };
58
+ subjectTemplate: {
59
+ type: string;
60
+ required: boolean;
61
+ };
62
+ bodyTextTemplate: {
63
+ type: string;
64
+ required: boolean;
65
+ };
66
+ bodyHtmlTemplate: {
67
+ type: string;
68
+ };
69
+ ctaLabelTemplate: {
70
+ type: string;
71
+ };
72
+ ctaUrlTemplate: {
73
+ type: string;
74
+ };
75
+ translations: {
76
+ type: string;
77
+ default: {};
78
+ };
79
+ lastTriggeredAt: {
80
+ type: string;
81
+ };
82
+ triggerCount: {
83
+ type: string;
84
+ default: number;
85
+ min: number;
86
+ };
87
+ };
88
+ };
89
+ };
90
+ export default _default;
@@ -0,0 +1,90 @@
1
+ declare const _default: {
2
+ "kind": "collectionType",
3
+ "collectionName": "broadcast_automation_rules",
4
+ "info": {
5
+ "singularName": "automation-rule",
6
+ "pluralName": "automation-rules",
7
+ "displayName": "Broadcast Automation Rule",
8
+ "description": "EventHub-driven automated multi-channel broadcast rule"
9
+ },
10
+ "options": {
11
+ "draftAndPublish": false
12
+ },
13
+ "pluginOptions": {
14
+ "content-manager": {
15
+ "visible": true
16
+ },
17
+ "content-type-builder": {
18
+ "visible": true
19
+ }
20
+ },
21
+ "attributes": {
22
+ "name": {
23
+ "type": "string",
24
+ "required": true
25
+ },
26
+ "slug": {
27
+ "type": "uid",
28
+ "targetField": "name",
29
+ "required": true
30
+ },
31
+ "eventName": {
32
+ "type": "string",
33
+ "required": true
34
+ },
35
+ "targetContentType": {
36
+ "type": "string"
37
+ },
38
+ "topic": {
39
+ "type": "string",
40
+ "default": "announcements",
41
+ "required": true
42
+ },
43
+ "channels": {
44
+ "type": "json",
45
+ "required": true,
46
+ "default": ["telegram"]
47
+ },
48
+ "active": {
49
+ "type": "boolean",
50
+ "default": true
51
+ },
52
+ "priority": {
53
+ "type": "enumeration",
54
+ "enum": ["low", "normal", "high", "urgent"],
55
+ "default": "normal"
56
+ },
57
+ "subjectTemplate": {
58
+ "type": "string",
59
+ "required": true
60
+ },
61
+ "bodyTextTemplate": {
62
+ "type": "text",
63
+ "required": true
64
+ },
65
+ "bodyHtmlTemplate": {
66
+ "type": "richtext"
67
+ },
68
+ "ctaLabelTemplate": {
69
+ "type": "string"
70
+ },
71
+ "ctaUrlTemplate": {
72
+ "type": "string"
73
+ },
74
+ "translations": {
75
+ "type": "json",
76
+ "default": {}
77
+ },
78
+ "lastTriggeredAt": {
79
+ "type": "datetime"
80
+ },
81
+ "triggerCount": {
82
+ "type": "integer",
83
+ "default": 0,
84
+ "min": 0
85
+ }
86
+ }
87
+ }
88
+ ;
89
+
90
+ export default _default;
@@ -0,0 +1,118 @@
1
+ declare const _default: {
2
+ schema: {
3
+ kind: string;
4
+ collectionName: string;
5
+ info: {
6
+ singularName: string;
7
+ pluralName: string;
8
+ displayName: string;
9
+ description: string;
10
+ };
11
+ options: {
12
+ draftAndPublish: boolean;
13
+ };
14
+ pluginOptions: {
15
+ "content-manager": {
16
+ visible: boolean;
17
+ };
18
+ "content-type-builder": {
19
+ visible: boolean;
20
+ };
21
+ };
22
+ attributes: {
23
+ title: {
24
+ type: string;
25
+ required: boolean;
26
+ };
27
+ slug: {
28
+ type: string;
29
+ targetField: string;
30
+ required: boolean;
31
+ };
32
+ topic: {
33
+ type: string;
34
+ default: string;
35
+ required: boolean;
36
+ };
37
+ channels: {
38
+ type: string;
39
+ required: boolean;
40
+ default: string[];
41
+ };
42
+ priority: {
43
+ type: string;
44
+ enum: string[];
45
+ default: string;
46
+ required: boolean;
47
+ };
48
+ status: {
49
+ type: string;
50
+ enum: string[];
51
+ default: string;
52
+ required: boolean;
53
+ };
54
+ scheduledAt: {
55
+ type: string;
56
+ };
57
+ sentAt: {
58
+ type: string;
59
+ };
60
+ subject: {
61
+ type: string;
62
+ required: boolean;
63
+ };
64
+ bodyText: {
65
+ type: string;
66
+ required: boolean;
67
+ };
68
+ bodyHtml: {
69
+ type: string;
70
+ };
71
+ ctaLabel: {
72
+ type: string;
73
+ };
74
+ ctaUrl: {
75
+ type: string;
76
+ };
77
+ mediaUrl: {
78
+ type: string;
79
+ };
80
+ emailTemplateRef: {
81
+ type: string;
82
+ };
83
+ whatsappTemplateName: {
84
+ type: string;
85
+ };
86
+ whatsappGroupIds: {
87
+ type: string;
88
+ default: never[];
89
+ };
90
+ telegramChatId: {
91
+ type: string;
92
+ };
93
+ telegramThreadId: {
94
+ type: string;
95
+ };
96
+ translations: {
97
+ type: string;
98
+ default: {};
99
+ };
100
+ secondaryDate: {
101
+ type: string;
102
+ default: {};
103
+ };
104
+ secondaryDateLabel: {
105
+ type: string;
106
+ };
107
+ stats: {
108
+ type: string;
109
+ default: {};
110
+ };
111
+ metadata: {
112
+ type: string;
113
+ default: {};
114
+ };
115
+ };
116
+ };
117
+ };
118
+ export default _default;
@@ -0,0 +1,118 @@
1
+ declare const _default: {
2
+ "kind": "collectionType",
3
+ "collectionName": "broadcast_campaigns",
4
+ "info": {
5
+ "singularName": "campaign",
6
+ "pluralName": "campaigns",
7
+ "displayName": "Broadcast Campaign",
8
+ "description": "Omnichannel Email, Telegram & WhatsApp broadcast campaign"
9
+ },
10
+ "options": {
11
+ "draftAndPublish": false
12
+ },
13
+ "pluginOptions": {
14
+ "content-manager": {
15
+ "visible": true
16
+ },
17
+ "content-type-builder": {
18
+ "visible": true
19
+ }
20
+ },
21
+ "attributes": {
22
+ "title": {
23
+ "type": "string",
24
+ "required": true
25
+ },
26
+ "slug": {
27
+ "type": "uid",
28
+ "targetField": "title",
29
+ "required": true
30
+ },
31
+ "topic": {
32
+ "type": "string",
33
+ "default": "announcements",
34
+ "required": true
35
+ },
36
+ "channels": {
37
+ "type": "json",
38
+ "required": true,
39
+ "default": ["email", "telegram"]
40
+ },
41
+ "priority": {
42
+ "type": "enumeration",
43
+ "enum": ["low", "normal", "high", "urgent"],
44
+ "default": "normal",
45
+ "required": true
46
+ },
47
+ "status": {
48
+ "type": "enumeration",
49
+ "enum": ["draft", "scheduled", "sending", "sent", "failed", "cancelled"],
50
+ "default": "draft",
51
+ "required": true
52
+ },
53
+ "scheduledAt": {
54
+ "type": "datetime"
55
+ },
56
+ "sentAt": {
57
+ "type": "datetime"
58
+ },
59
+ "subject": {
60
+ "type": "string",
61
+ "required": true
62
+ },
63
+ "bodyText": {
64
+ "type": "text",
65
+ "required": true
66
+ },
67
+ "bodyHtml": {
68
+ "type": "richtext"
69
+ },
70
+ "ctaLabel": {
71
+ "type": "string"
72
+ },
73
+ "ctaUrl": {
74
+ "type": "string"
75
+ },
76
+ "mediaUrl": {
77
+ "type": "string"
78
+ },
79
+ "emailTemplateRef": {
80
+ "type": "string"
81
+ },
82
+ "whatsappTemplateName": {
83
+ "type": "string"
84
+ },
85
+ "whatsappGroupIds": {
86
+ "type": "json",
87
+ "default": []
88
+ },
89
+ "telegramChatId": {
90
+ "type": "string"
91
+ },
92
+ "telegramThreadId": {
93
+ "type": "integer"
94
+ },
95
+ "translations": {
96
+ "type": "json",
97
+ "default": {}
98
+ },
99
+ "secondaryDate": {
100
+ "type": "json",
101
+ "default": {}
102
+ },
103
+ "secondaryDateLabel": {
104
+ "type": "string"
105
+ },
106
+ "stats": {
107
+ "type": "json",
108
+ "default": {}
109
+ },
110
+ "metadata": {
111
+ "type": "json",
112
+ "default": {}
113
+ }
114
+ }
115
+ }
116
+ ;
117
+
118
+ export default _default;
@@ -0,0 +1,71 @@
1
+ declare const _default: {
2
+ schema: {
3
+ kind: string;
4
+ collectionName: string;
5
+ info: {
6
+ singularName: string;
7
+ pluralName: string;
8
+ displayName: string;
9
+ description: string;
10
+ };
11
+ options: {
12
+ draftAndPublish: boolean;
13
+ };
14
+ pluginOptions: {
15
+ "content-manager": {
16
+ visible: boolean;
17
+ };
18
+ "content-type-builder": {
19
+ visible: boolean;
20
+ };
21
+ };
22
+ attributes: {
23
+ idempotencyKey: {
24
+ type: string;
25
+ required: boolean;
26
+ unique: boolean;
27
+ };
28
+ campaignSlug: {
29
+ type: string;
30
+ required: boolean;
31
+ };
32
+ channel: {
33
+ type: string;
34
+ enum: string[];
35
+ required: boolean;
36
+ };
37
+ driver: {
38
+ type: string;
39
+ required: boolean;
40
+ };
41
+ recipientMasked: {
42
+ type: string;
43
+ required: boolean;
44
+ };
45
+ locale: {
46
+ type: string;
47
+ default: string;
48
+ required: boolean;
49
+ };
50
+ status: {
51
+ type: string;
52
+ enum: string[];
53
+ required: boolean;
54
+ };
55
+ externalMessageId: {
56
+ type: string;
57
+ };
58
+ errorMessage: {
59
+ type: string;
60
+ };
61
+ sentAt: {
62
+ type: string;
63
+ required: boolean;
64
+ };
65
+ secondaryDateLabel: {
66
+ type: string;
67
+ };
68
+ };
69
+ };
70
+ };
71
+ export default _default;
@@ -0,0 +1,71 @@
1
+ declare const _default: {
2
+ "kind": "collectionType",
3
+ "collectionName": "broadcast_delivery_logs",
4
+ "info": {
5
+ "singularName": "delivery-log",
6
+ "pluralName": "delivery-logs",
7
+ "displayName": "Broadcast Delivery Log",
8
+ "description": "Idempotent, PII-masked multi-channel delivery audit log"
9
+ },
10
+ "options": {
11
+ "draftAndPublish": false
12
+ },
13
+ "pluginOptions": {
14
+ "content-manager": {
15
+ "visible": true
16
+ },
17
+ "content-type-builder": {
18
+ "visible": true
19
+ }
20
+ },
21
+ "attributes": {
22
+ "idempotencyKey": {
23
+ "type": "string",
24
+ "required": true,
25
+ "unique": true
26
+ },
27
+ "campaignSlug": {
28
+ "type": "string",
29
+ "required": true
30
+ },
31
+ "channel": {
32
+ "type": "enumeration",
33
+ "enum": ["email", "telegram", "whatsapp"],
34
+ "required": true
35
+ },
36
+ "driver": {
37
+ "type": "string",
38
+ "required": true
39
+ },
40
+ "recipientMasked": {
41
+ "type": "string",
42
+ "required": true
43
+ },
44
+ "locale": {
45
+ "type": "string",
46
+ "default": "es",
47
+ "required": true
48
+ },
49
+ "status": {
50
+ "type": "enumeration",
51
+ "enum": ["sent", "simulated", "skipped_duplicate", "failed"],
52
+ "required": true
53
+ },
54
+ "externalMessageId": {
55
+ "type": "string"
56
+ },
57
+ "errorMessage": {
58
+ "type": "text"
59
+ },
60
+ "sentAt": {
61
+ "type": "datetime",
62
+ "required": true
63
+ },
64
+ "secondaryDateLabel": {
65
+ "type": "string"
66
+ }
67
+ }
68
+ }
69
+ ;
70
+
71
+ export default _default;