@dev.smartpricing/message-composer-utils 3.1.2

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 (119) hide show
  1. package/dist/types/api/aiIntegration.js +7 -0
  2. package/dist/types/api/aiIntegration.js.map +1 -0
  3. package/dist/types/api/apiMessages.js +2 -0
  4. package/dist/types/api/apiMessages.js.map +1 -0
  5. package/dist/types/api/index.js +3 -0
  6. package/dist/types/api/index.js.map +1 -0
  7. package/dist/types/app.js +23 -0
  8. package/dist/types/app.js.map +1 -0
  9. package/dist/types/brand.js +31 -0
  10. package/dist/types/brand.js.map +1 -0
  11. package/dist/types/dynamic-values.js +5 -0
  12. package/dist/types/dynamic-values.js.map +1 -0
  13. package/dist/types/emailblocks.v1.defaults.js +83 -0
  14. package/dist/types/emailblocks.v1.defaults.js.map +1 -0
  15. package/dist/types/emailblocks.v1.js +339 -0
  16. package/dist/types/emailblocks.v1.js.map +1 -0
  17. package/dist/types/index.js +16 -0
  18. package/dist/types/index.js.map +1 -0
  19. package/dist/types/kafka-events.js +2 -0
  20. package/dist/types/kafka-events.js.map +1 -0
  21. package/dist/types/language.js +2 -0
  22. package/dist/types/language.js.map +1 -0
  23. package/dist/types/media.js +6 -0
  24. package/dist/types/media.js.map +1 -0
  25. package/dist/types/message.js +41 -0
  26. package/dist/types/message.js.map +1 -0
  27. package/dist/types/meta-template.js +2 -0
  28. package/dist/types/meta-template.js.map +1 -0
  29. package/dist/types/meta-webhook.js +2 -0
  30. package/dist/types/meta-webhook.js.map +1 -0
  31. package/dist/types/submission-job.js +2 -0
  32. package/dist/types/submission-job.js.map +1 -0
  33. package/dist/types/tag.js +2 -0
  34. package/dist/types/tag.js.map +1 -0
  35. package/dist/types/utils.js +2 -0
  36. package/dist/types/utils.js.map +1 -0
  37. package/dist/types/whatsappblocks.v1.js +24 -0
  38. package/dist/types/whatsappblocks.v1.js.map +1 -0
  39. package/dist/utils/array.js +26 -0
  40. package/dist/utils/array.js.map +1 -0
  41. package/dist/utils/async.js +22 -0
  42. package/dist/utils/async.js.map +1 -0
  43. package/dist/utils/date.js +37 -0
  44. package/dist/utils/date.js.map +1 -0
  45. package/dist/utils/index.js +34 -0
  46. package/dist/utils/index.js.map +1 -0
  47. package/dist/utils/intl.js +37 -0
  48. package/dist/utils/intl.js.map +1 -0
  49. package/dist/utils/meta-status.js +21 -0
  50. package/dist/utils/meta-status.js.map +1 -0
  51. package/dist/utils/number.js +24 -0
  52. package/dist/utils/number.js.map +1 -0
  53. package/dist/utils/object.js +87 -0
  54. package/dist/utils/object.js.map +1 -0
  55. package/dist/utils/string.js +22 -0
  56. package/dist/utils/string.js.map +1 -0
  57. package/dist/utils/templates/brand-cascade.js +116 -0
  58. package/dist/utils/templates/brand-cascade.js.map +1 -0
  59. package/dist/utils/templates/email-compiler.js +126 -0
  60. package/dist/utils/templates/email-compiler.js.map +1 -0
  61. package/dist/utils/templates/email-mjml.js +444 -0
  62. package/dist/utils/templates/email-mjml.js.map +1 -0
  63. package/dist/utils/templates/email.js +580 -0
  64. package/dist/utils/templates/email.js.map +1 -0
  65. package/dist/utils/templates/html-sanitizer.js +95 -0
  66. package/dist/utils/templates/html-sanitizer.js.map +1 -0
  67. package/dist/utils/templates/messages.js +33 -0
  68. package/dist/utils/templates/messages.js.map +1 -0
  69. package/dist/utils/templates/meta.js +246 -0
  70. package/dist/utils/templates/meta.js.map +1 -0
  71. package/dist/utils/templates/tiptap.js +167 -0
  72. package/dist/utils/templates/tiptap.js.map +1 -0
  73. package/dist/utils/templates/whatsapp-compiler.js +168 -0
  74. package/dist/utils/templates/whatsapp-compiler.js.map +1 -0
  75. package/dist/utils/templates/whatsapp.js +329 -0
  76. package/dist/utils/templates/whatsapp.js.map +1 -0
  77. package/dist/utils/validations.js +39 -0
  78. package/dist/utils/validations.js.map +1 -0
  79. package/package.json +43 -0
  80. package/src/types/api/aiIntegration.ts +59 -0
  81. package/src/types/api/apiMessages.ts +22 -0
  82. package/src/types/api/index.ts +2 -0
  83. package/src/types/app.ts +76 -0
  84. package/src/types/brand.ts +80 -0
  85. package/src/types/dynamic-values.ts +47 -0
  86. package/src/types/emailblocks.v1.defaults.ts +123 -0
  87. package/src/types/emailblocks.v1.ts +655 -0
  88. package/src/types/index.ts +15 -0
  89. package/src/types/kafka-events.ts +46 -0
  90. package/src/types/language.ts +9 -0
  91. package/src/types/media.ts +26 -0
  92. package/src/types/message.ts +635 -0
  93. package/src/types/meta-template.ts +50 -0
  94. package/src/types/meta-webhook.ts +32 -0
  95. package/src/types/submission-job.ts +30 -0
  96. package/src/types/tag.ts +8 -0
  97. package/src/types/utils.ts +14 -0
  98. package/src/types/whatsappblocks.v1.ts +102 -0
  99. package/src/utils/array.ts +33 -0
  100. package/src/utils/async.ts +30 -0
  101. package/src/utils/date.ts +39 -0
  102. package/src/utils/index.ts +44 -0
  103. package/src/utils/intl.ts +51 -0
  104. package/src/utils/meta-status.ts +24 -0
  105. package/src/utils/number.ts +36 -0
  106. package/src/utils/object.ts +101 -0
  107. package/src/utils/string.ts +24 -0
  108. package/src/utils/templates/brand-cascade.ts +156 -0
  109. package/src/utils/templates/email-compiler.ts +155 -0
  110. package/src/utils/templates/email-mjml.ts +602 -0
  111. package/src/utils/templates/email.ts +713 -0
  112. package/src/utils/templates/html-sanitizer.ts +121 -0
  113. package/src/utils/templates/messages.ts +44 -0
  114. package/src/utils/templates/meta.ts +336 -0
  115. package/src/utils/templates/tiptap.ts +247 -0
  116. package/src/utils/templates/whatsapp-compiler.ts +212 -0
  117. package/src/utils/templates/whatsapp.ts +408 -0
  118. package/src/utils/validations.ts +49 -0
  119. package/tsconfig.json +10 -0
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Request and response types for AI integration endpoints
3
+ */
4
+ export const GENERATE_TEXT_PROMPT_MIN_LENGTH = 10;
5
+ export const GENERATE_TEXT_PROMPT_MAX_LENGTH = 500;
6
+ export const GENERATE_TEXT_SUGGESTIONS_COUNT = 3;
7
+ //# sourceMappingURL=aiIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiIntegration.js","sourceRoot":"","sources":["../../../src/types/api/aiIntegration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAClD,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AACnD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=apiMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiMessages.js","sourceRoot":"","sources":["../../../src/types/api/apiMessages.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from "./apiMessages.js";
2
+ export * from "./aiIntegration.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,23 @@
1
+ export const errorCodes = {
2
+ INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR",
3
+ UNAUTHORIZED: "UNAUTHORIZED",
4
+ NOT_FOUND: "NOT_FOUND",
5
+ BAD_REQUEST: "BAD_REQUEST",
6
+ FORBIDDEN: "FORBIDDEN",
7
+ CONFLICT: "CONFLICT",
8
+ META_CONFIG_MISSING: "META_CONFIG_MISSING",
9
+ META_TEMPLATE_MISSING: "META_TEMPLATE_MISSING",
10
+ META_TEMPLATE_SUBMISSION_FAILED: "META_TEMPLATE_SUBMISSION_FAILED",
11
+ META_TEMPLATE_DELETION_FAILED: "META_TEMPLATE_DELETION_FAILED",
12
+ META_TEMPLATE_DELETION_NOT_FOUND: "META_TEMPLATE_DELETION_NOT_FOUND",
13
+ META_TEMPLATE_DELETION_NOT_ALLOWED: "META_TEMPLATE_DELETION_NOT_ALLOWED",
14
+ TEMPLATE_NOT_EDITABLE: "TEMPLATE_NOT_EDITABLE",
15
+ LANGUAGE_NOT_FOUND: "LANGUAGE_NOT_FOUND",
16
+ TEMPLATE_NOT_APPROVED: "TEMPLATE_NOT_APPROVED",
17
+ TEMPLATE_NOT_SUBMITTED: "TEMPLATE_NOT_SUBMITTED",
18
+ MISSING_PARAMETERS: "MISSING_PARAMETERS",
19
+ UNSUPPORTED_RENDER_TYPE: "UNSUPPORTED_RENDER_TYPE",
20
+ NOT_IMPLEMENTED: "NOT_IMPLEMENTED",
21
+ };
22
+ export const managedLocales = ["en", "de", "fr", "it", "es"];
23
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/types/app.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,qBAAqB,EAAE,uBAAuB;IAC9C,+BAA+B,EAAE,iCAAiC;IAClE,6BAA6B,EAAE,+BAA+B;IAC9D,gCAAgC,EAAE,kCAAkC;IACpE,kCAAkC,EAAE,oCAAoC;IACxE,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,uBAAuB,EAAE,yBAAyB;IAClD,eAAe,EAAE,iBAAiB;CAC1B,CAAC;AAsDX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ // ============================================================================
3
+ // SCHEMAS (single source of truth for BE validation + FE form validation)
4
+ // ============================================================================
5
+ export const brandDefaultEmailSettingsSchema = z.object({
6
+ backgroundColor: z.string().optional(),
7
+ contentBackgroundColor: z.string().optional(),
8
+ textColor: z.string().optional(),
9
+ fontFamily: z.string().optional(),
10
+ });
11
+ export const brandDefaultButtonSettingsSchema = z.object({
12
+ textColor: z.string().optional(),
13
+ backgroundColor: z.string().optional(),
14
+ });
15
+ /** Brand socials: platform → URL. Absent key = not configured. */
16
+ export const brandSocialsSchema = z
17
+ .record(z.string(), z.string())
18
+ .nullable()
19
+ .optional();
20
+ export const brandBodySchema = z.object({
21
+ name: z.string().min(1),
22
+ organization_id: z.uuid().nullable().optional(),
23
+ logo_media_id: z.uuid().nullable().optional(),
24
+ colors: z.array(z.string()).optional(),
25
+ default_email_settings: brandDefaultEmailSettingsSchema.optional(),
26
+ default_button_settings: brandDefaultButtonSettingsSchema.optional(),
27
+ default_socials: brandSocialsSchema,
28
+ property_ids: z.array(z.uuid()).optional(),
29
+ });
30
+ export const brandUpdateSchema = brandBodySchema.partial();
31
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/types/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KAC9B,QAAQ,EAAE;KACV,QAAQ,EAAE,CAAC;AAId,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,sBAAsB,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IAClE,uBAAuB,EAAE,gCAAgC,CAAC,QAAQ,EAAE;IACpE,eAAe,EAAE,kBAAkB;IACnC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ // ============================================================================
2
+ // CONFIG TYPES (backend config files, multi-language)
3
+ // ============================================================================
4
+ export {};
5
+ //# sourceMappingURL=dynamic-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-values.js","sourceRoot":"","sources":["../../src/types/dynamic-values.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,sDAAsD;AACtD,+EAA+E"}
@@ -0,0 +1,83 @@
1
+ // ============================================================================
2
+ // DEFAULT SETTINGS FOR EACH EMAIL BLOCK TYPE
3
+ // Used by emptyBlock functions and frontend reset logic
4
+ // ============================================================================
5
+ export const DEFAULT_SPACER_SETTINGS = {
6
+ customSize: false,
7
+ height: 40,
8
+ backgroundColor: "transparent",
9
+ };
10
+ export const DEFAULT_DIVIDER_SETTINGS = {
11
+ style: "solid",
12
+ thickness: 1,
13
+ width: 100,
14
+ color: "#E5E7EB",
15
+ backgroundColor: "transparent",
16
+ };
17
+ export const DEFAULT_HEADING_SETTINGS = {
18
+ tag: "h1",
19
+ fontFamily: undefined,
20
+ fontSize: 24,
21
+ textColor: undefined,
22
+ backgroundColor: "transparent",
23
+ };
24
+ export const DEFAULT_PARAGRAPH_SETTINGS = {
25
+ tag: "p",
26
+ fontFamily: undefined,
27
+ fontSize: 16,
28
+ textColor: undefined,
29
+ backgroundColor: "transparent",
30
+ };
31
+ export const DEFAULT_BUTTON_SETTINGS = {
32
+ linkType: "web",
33
+ url: "",
34
+ fontFamily: undefined,
35
+ fontSize: 16,
36
+ shape: "rounded",
37
+ width: "fit_to_text",
38
+ alignment: "center",
39
+ textColor: undefined,
40
+ backgroundColor: undefined,
41
+ backgroundBlock: "transparent",
42
+ };
43
+ export const DEFAULT_GRID_SETTINGS = {
44
+ columns: 2,
45
+ backgroundColor: "transparent",
46
+ };
47
+ export const DEFAULT_DISCOUNT_SETTINGS = {
48
+ tag: "h3",
49
+ fontFamily: undefined,
50
+ fontSize: 16,
51
+ style: "square",
52
+ textColor: undefined,
53
+ backgroundComponent: "#F3F4F6",
54
+ backgroundBlock: "transparent",
55
+ width: "fit_to_text",
56
+ };
57
+ export const DEFAULT_HEADER_SETTINGS = {
58
+ src: "",
59
+ alt: "",
60
+ width: 200,
61
+ alignment: "center",
62
+ backgroundColor: "transparent",
63
+ };
64
+ export const DEFAULT_FOOTER_SETTINGS = {
65
+ fontSize: 12,
66
+ fontFamily: undefined,
67
+ textColor: undefined,
68
+ backgroundColor: "transparent",
69
+ alignment: "center",
70
+ };
71
+ export const DEFAULT_TOP_PRODUCTS_SETTINGS = {
72
+ storeId: "",
73
+ maxProducts: 4,
74
+ backgroundColor: "#F1F0EF",
75
+ };
76
+ export const DEFAULT_UNSUBSCRIBE_LINK_SETTINGS = {
77
+ fontFamily: undefined,
78
+ fontSize: 12,
79
+ textColor: undefined,
80
+ backgroundColor: "transparent",
81
+ alignment: "center",
82
+ };
83
+ //# sourceMappingURL=emailblocks.v1.defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emailblocks.v1.defaults.js","sourceRoot":"","sources":["../../src/types/emailblocks.v1.defaults.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6CAA6C;AAC7C,wDAAwD;AACxD,+EAA+E;AAgB/E,MAAM,CAAC,MAAM,uBAAuB,GAA4B;IAC9D,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,EAAE;IACV,eAAe,EAAE,aAAa;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAA6B;IAChE,KAAK,EAAE,OAAgB;IACvB,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,SAAS;IAChB,eAAe,EAAE,aAAa;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAGjC;IACF,GAAG,EAAE,IAAI;IACT,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,aAAa;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,GAAG,EAAE,GAAY;IACjB,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,aAAa;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAClC;IACE,QAAQ,EAAE,KAAc;IACxB,GAAG,EAAE,EAAE;IACP,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAkB;IACzB,KAAK,EAAE,aAAsB;IAC7B,SAAS,EAAE,QAAiB;IAC5B,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,aAAa;CACtB,CAAC;AAEb,MAAM,CAAC,MAAM,qBAAqB,GAChC;IACE,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,aAAa;CACtB,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAGlC;IACF,GAAG,EAAE,IAAa;IAClB,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,QAAiB;IACxB,SAAS,EAAE,SAAS;IACpB,mBAAmB,EAAE,SAAS;IAC9B,eAAe,EAAE,aAAa;IAC9B,KAAK,EAAE,aAAsB;CACrB,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAClC;IACE,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,GAAG;IACV,SAAS,EAAE,QAAiB;IAC5B,eAAe,EAAE,aAAa;CACtB,CAAC;AAEb,MAAM,CAAC,MAAM,uBAAuB,GAClC;IACE,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,aAAa;IAC9B,SAAS,EAAE,QAAiB;CACpB,CAAC;AAEb,MAAM,CAAC,MAAM,6BAA6B,GAAiC;IACzE,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,SAAS;CAClB,CAAC;AAEX,MAAM,CAAC,MAAM,iCAAiC,GAG1C;IACF,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,aAAa;IAC9B,SAAS,EAAE,QAAiB;CACpB,CAAC"}
@@ -0,0 +1,339 @@
1
+ import { DEFAULT_SPACER_SETTINGS, DEFAULT_DIVIDER_SETTINGS, DEFAULT_HEADING_SETTINGS, DEFAULT_PARAGRAPH_SETTINGS, DEFAULT_BUTTON_SETTINGS, DEFAULT_GRID_SETTINGS, DEFAULT_DISCOUNT_SETTINGS, DEFAULT_HEADER_SETTINGS, DEFAULT_FOOTER_SETTINGS, DEFAULT_UNSUBSCRIBE_LINK_SETTINGS, DEFAULT_TOP_PRODUCTS_SETTINGS, } from "./emailblocks.v1.defaults.js";
2
+ // ============================================================================
3
+ // EMAIL BLOCK TYPES
4
+ // ============================================================================
5
+ export const EMAIL_BLOCK_TYPES = [
6
+ "spacer",
7
+ "divider",
8
+ "heading",
9
+ "paragraph",
10
+ "image",
11
+ "button",
12
+ "grid",
13
+ "raw_html",
14
+ "discount",
15
+ "header",
16
+ "footer",
17
+ "unsubscribe_link",
18
+ "socials",
19
+ "top_products",
20
+ ];
21
+ export const TRANSLATABLE_BLOCK_TYPES = [
22
+ "heading",
23
+ "paragraph",
24
+ "button",
25
+ "discount",
26
+ "footer",
27
+ "raw_html",
28
+ "unsubscribe_link",
29
+ ];
30
+ // ============================================================================
31
+ // VALIDATION CONSTANTS
32
+ // ============================================================================
33
+ // Spacer
34
+ export const SPACER_MIN_HEIGHT = 8;
35
+ export const SPACER_MAX_HEIGHT = 200;
36
+ export const SPACER_SIZE_PRESETS = {
37
+ small: 24,
38
+ medium: 40,
39
+ large: 64,
40
+ extra_large: 96,
41
+ };
42
+ // Divider
43
+ export const DIVIDER_MIN_THICKNESS = 1;
44
+ export const DIVIDER_MAX_THICKNESS = 20;
45
+ export const DIVIDER_MIN_WIDTH = 10;
46
+ export const DIVIDER_MAX_WIDTH = 100;
47
+ // Text blocks
48
+ export const FONT_SIZE_MIN = 10;
49
+ export const FONT_SIZE_MAX = 48;
50
+ export const EMAIL_SAFE_FONTS = [
51
+ "Arial",
52
+ "Helvetica",
53
+ "Georgia",
54
+ "Times New Roman",
55
+ "Trebuchet MS",
56
+ "Verdana",
57
+ "Courier New",
58
+ ];
59
+ export const EMAIL_SAFE_FONT_ITEMS = EMAIL_SAFE_FONTS.map((font) => ({
60
+ value: font,
61
+ label: font,
62
+ }));
63
+ // Heading
64
+ export const HEADING_TAGS = ["h1", "h2", "h3", "h4", "h5", "h6"];
65
+ export const TEXT_TAGS = ["p", ...HEADING_TAGS];
66
+ export const TAGS_DEFAULT_FONT_SIZE = {
67
+ h1: 28,
68
+ h2: 24,
69
+ h3: 20,
70
+ h4: 18,
71
+ h5: 16,
72
+ h6: 14,
73
+ p: 16,
74
+ };
75
+ // HTML
76
+ export const HTML_MAX_LENGTH = 50000;
77
+ // Image
78
+ export const IMAGE_MIN_WIDTH = 50;
79
+ export const IMAGE_MAX_WIDTH = 600;
80
+ // Content width
81
+ export const CONTENT_WIDTH_MIN = 400;
82
+ export const CONTENT_WIDTH_MAX = 800;
83
+ export const SOCIAL_ICONS = {
84
+ facebook: "http://cdn.mcauto-images-production.sendgrid.net/7f5145b378e26280/8246b205-8497-4fdc-b834-a66a6fccf009/24x24.png",
85
+ instagram: "http://cdn.mcauto-images-production.sendgrid.net/7f5145b378e26280/0d446d50-f646-428c-83f2-73ca2b6c4c3e/24x24.png",
86
+ tripadvisor: "http://cdn.mcauto-images-production.sendgrid.net/7f5145b378e26280/6fc003ce-242d-46a9-923e-76e7f078727e/24x24.png",
87
+ tiktok: "http://cdn.mcauto-images-production.sendgrid.net/7f5145b378e26280/a56f5bf7-0f22-4a06-b41a-d552684e731b/24x24.png",
88
+ google: "http://cdn.mcauto-images-production.sendgrid.net/7f5145b378e26280/2dd79979-88ea-4074-9a4e-e646ddaed114/24x24.png",
89
+ };
90
+ export const SOCIAL_PLATFORMS = Object.keys(SOCIAL_ICONS);
91
+ export const DEFAULT_EMAIL_GLOBAL_SETTINGS = {
92
+ backgroundColor: "#F3F4F6",
93
+ contentBackgroundColor: "#FFFFFF",
94
+ contentWidth: 600,
95
+ fontFamily: "Arial",
96
+ textColor: "#1F2937",
97
+ verticalSpacing: 0,
98
+ horizontalSpacing: 0,
99
+ button: {
100
+ backgroundColor: "#FFFFFF",
101
+ textColor: "#000000",
102
+ },
103
+ };
104
+ export function emptySpacerBlock() {
105
+ return {
106
+ id: crypto.randomUUID(),
107
+ type: "spacer",
108
+ settings: { ...DEFAULT_SPACER_SETTINGS },
109
+ };
110
+ }
111
+ export function emptyDividerBlock() {
112
+ return {
113
+ id: crypto.randomUUID(),
114
+ type: "divider",
115
+ settings: { ...DEFAULT_DIVIDER_SETTINGS },
116
+ };
117
+ }
118
+ export function emptyHeadingBlock() {
119
+ return {
120
+ id: crypto.randomUUID(),
121
+ type: "heading",
122
+ settings: { ...DEFAULT_HEADING_SETTINGS, content: undefined },
123
+ };
124
+ }
125
+ export function emptyParagraphBlock() {
126
+ return {
127
+ id: crypto.randomUUID(),
128
+ type: "paragraph",
129
+ settings: { ...DEFAULT_PARAGRAPH_SETTINGS, content: undefined },
130
+ };
131
+ }
132
+ export function emptyImageBlock() {
133
+ return {
134
+ id: crypto.randomUUID(),
135
+ type: "image",
136
+ settings: { src: "", href: undefined },
137
+ };
138
+ }
139
+ export function emptyButtonBlock() {
140
+ return {
141
+ id: crypto.randomUUID(),
142
+ type: "button",
143
+ settings: { ...DEFAULT_BUTTON_SETTINGS, content: undefined },
144
+ };
145
+ }
146
+ export function emptyGridBlock() {
147
+ return {
148
+ id: crypto.randomUUID(),
149
+ type: "grid",
150
+ settings: { ...DEFAULT_GRID_SETTINGS, columnData: [] },
151
+ };
152
+ }
153
+ export function emptyRawHtmlBlock() {
154
+ return {
155
+ id: crypto.randomUUID(),
156
+ type: "raw_html",
157
+ settings: { html: "" },
158
+ };
159
+ }
160
+ export function emptyDiscountBlock() {
161
+ return {
162
+ id: crypto.randomUUID(),
163
+ type: "discount",
164
+ settings: { ...DEFAULT_DISCOUNT_SETTINGS, content: undefined },
165
+ };
166
+ }
167
+ export function emptyHeaderBlock() {
168
+ return {
169
+ id: crypto.randomUUID(),
170
+ type: "header",
171
+ settings: { ...DEFAULT_HEADER_SETTINGS },
172
+ };
173
+ }
174
+ export function emptyFooterBlock() {
175
+ return {
176
+ id: crypto.randomUUID(),
177
+ type: "footer",
178
+ settings: {
179
+ ...DEFAULT_FOOTER_SETTINGS,
180
+ content: {
181
+ type: "doc",
182
+ content: [
183
+ {
184
+ type: "paragraph",
185
+ attrs: { textAlign: null },
186
+ content: [
187
+ {
188
+ type: "text",
189
+ marks: [{ type: "bold" }],
190
+ text: "{{property_name}}",
191
+ },
192
+ ],
193
+ },
194
+ {
195
+ type: "paragraph",
196
+ attrs: { textAlign: null },
197
+ content: [{ type: "text", text: "{{property_address}}" }],
198
+ },
199
+ {
200
+ type: "paragraph",
201
+ attrs: { textAlign: null },
202
+ content: [
203
+ {
204
+ type: "text",
205
+ text: "{{property_telephone}} / {{property_email}} / {{property_website}}",
206
+ },
207
+ ],
208
+ },
209
+ ],
210
+ },
211
+ },
212
+ };
213
+ }
214
+ const UNSUBSCRIBE_LINK_CONTENT = {
215
+ en: {
216
+ prefix: "If you don't want to receive this type of emails anymore, you can unsubscribe ",
217
+ linkText: "here",
218
+ suffix: ".",
219
+ },
220
+ it: {
221
+ prefix: "Se non desideri più ricevere questo tipo di email, puoi annullare l'iscrizione ",
222
+ linkText: "qui",
223
+ suffix: ".",
224
+ },
225
+ de: {
226
+ prefix: "Wenn Sie diese Art von E-Mails nicht mehr erhalten möchten, können Sie sich ",
227
+ linkText: "hier",
228
+ suffix: " abmelden.",
229
+ },
230
+ fr: {
231
+ prefix: "Si vous ne souhaitez plus recevoir ce type d'e-mails, vous pouvez vous désabonner ",
232
+ linkText: "ici",
233
+ suffix: ".",
234
+ },
235
+ es: {
236
+ prefix: "Si no deseas recibir más este tipo de correos, puedes darte de baja ",
237
+ linkText: "aquí",
238
+ suffix: ".",
239
+ },
240
+ };
241
+ export function emptyUnsubscribeLinkBlock(language) {
242
+ const { prefix, linkText, suffix } = (UNSUBSCRIBE_LINK_CONTENT[language ?? "en"] ?? UNSUBSCRIBE_LINK_CONTENT.en);
243
+ return {
244
+ id: crypto.randomUUID(),
245
+ type: "unsubscribe_link",
246
+ settings: {
247
+ ...DEFAULT_UNSUBSCRIBE_LINK_SETTINGS,
248
+ content: {
249
+ type: "doc",
250
+ content: [
251
+ {
252
+ type: "paragraph",
253
+ attrs: { textAlign: null },
254
+ content: [
255
+ {
256
+ type: "text",
257
+ text: prefix,
258
+ },
259
+ {
260
+ type: "text",
261
+ marks: [
262
+ {
263
+ type: "link",
264
+ attrs: {
265
+ href: "{{unsubscribe}}",
266
+ target: "_blank",
267
+ rel: "noopener noreferrer nofollow",
268
+ class: "underline",
269
+ },
270
+ },
271
+ ],
272
+ text: linkText,
273
+ },
274
+ { type: "text", text: suffix },
275
+ ],
276
+ },
277
+ ],
278
+ },
279
+ },
280
+ };
281
+ }
282
+ export function emptyTopProductsBlock() {
283
+ return {
284
+ id: crypto.randomUUID(),
285
+ type: "top_products",
286
+ settings: { ...DEFAULT_TOP_PRODUCTS_SETTINGS },
287
+ };
288
+ }
289
+ export function emptySocialsBlock() {
290
+ return {
291
+ id: crypto.randomUUID(),
292
+ type: "socials",
293
+ settings: {
294
+ backgroundColor: "transparent",
295
+ socials: {
296
+ facebook: { enabled: false, url: "" },
297
+ instagram: { enabled: false, url: "" },
298
+ tripadvisor: { enabled: false, url: "" },
299
+ tiktok: { enabled: false, url: "" },
300
+ google: { enabled: false, url: "" },
301
+ },
302
+ },
303
+ };
304
+ }
305
+ export function emptyEmailBlock(type, language) {
306
+ switch (type) {
307
+ case "spacer":
308
+ return emptySpacerBlock();
309
+ case "divider":
310
+ return emptyDividerBlock();
311
+ case "heading":
312
+ return emptyHeadingBlock();
313
+ case "paragraph":
314
+ return emptyParagraphBlock();
315
+ case "image":
316
+ return emptyImageBlock();
317
+ case "button":
318
+ return emptyButtonBlock();
319
+ case "grid":
320
+ return emptyGridBlock();
321
+ case "raw_html":
322
+ return emptyRawHtmlBlock();
323
+ case "discount":
324
+ return emptyDiscountBlock();
325
+ case "header":
326
+ return emptyHeaderBlock();
327
+ case "footer":
328
+ return emptyFooterBlock();
329
+ case "unsubscribe_link":
330
+ return emptyUnsubscribeLinkBlock(language);
331
+ case "socials":
332
+ return emptySocialsBlock();
333
+ case "top_products":
334
+ return emptyTopProductsBlock();
335
+ default:
336
+ throw new Error(`Unknown block type: ${type}`);
337
+ }
338
+ }
339
+ //# sourceMappingURL=emailblocks.v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emailblocks.v1.js","sourceRoot":"","sources":["../../src/types/emailblocks.v1.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AAGtC,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;IACX,OAAO;IACP,QAAQ;IACR,MAAM;IACN,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,kBAAkB;IAClB,SAAS;IACT,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,WAAW;IACX,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,kBAAkB;CACV,CAAC;AAKX,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,SAAS;AACT,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;CACP,CAAC;AAEX,UAAU;AACV,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,cAAc;AACd,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO;IACP,WAAW;IACX,SAAS;IACT,iBAAiB;IACjB,cAAc;IACd,SAAS;IACT,aAAa;CACL,CAAC;AAGX,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnE,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC,CAAC;AAEJ,UAAU;AACV,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,YAAY,CAAU,CAAC;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAG/B;IACF,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,CAAC,EAAE,EAAE;CACN,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,QAAQ;AACR,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,gBAAgB;AAChB,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAgLrC,MAAM,CAAC,MAAM,YAAY,GAAmC;IAC1D,QAAQ,EACN,kHAAkH;IACpH,SAAS,EACP,kHAAkH;IACpH,WAAW,EACT,kHAAkH;IACpH,MAAM,EACJ,kHAAkH;IACpH,MAAM,EACJ,kHAAkH;CACrH,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAqB,CAAC;AAuE9E,MAAM,CAAC,MAAM,6BAA6B,GAAkC;IAC1E,eAAe,EAAE,SAAS;IAC1B,sBAAsB,EAAE,SAAS;IACjC,YAAY,EAAE,GAAG;IACjB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,CAAC;IAClB,iBAAiB,EAAE,CAAC;IACpB,MAAM,EAAE;QACN,eAAe,EAAE,SAAS;QAC1B,SAAS,EAAE,SAAS;KACrB;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,GAAG,uBAAuB,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,GAAG,wBAAwB,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,GAAG,wBAAwB,EAAE,OAAO,EAAE,SAAS,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,GAAG,0BAA0B,EAAE,OAAO,EAAE,SAAS,EAAE;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,GAAG,uBAAuB,EAAE,OAAO,EAAE,SAAS,EAAE;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE,GAAG,qBAAqB,EAAE,UAAU,EAAE,EAAE,EAAE;KACvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE,GAAG,yBAAyB,EAAE,OAAO,EAAE,SAAS,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,GAAG,uBAAuB,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE;YACR,GAAG,uBAAuB;YAC1B,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;wBAC1B,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gCACzB,IAAI,EAAE,mBAAmB;6BAC1B;yBACF;qBACF;oBACD;wBACE,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;wBAC1B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;qBAC1D;oBACD;wBACE,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;wBAC1B,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,oEAAoE;6BAC3E;yBACF;qBACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,wBAAwB,GAG1B;IACF,EAAE,EAAE;QACF,MAAM,EACJ,gFAAgF;QAClF,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,GAAG;KACZ;IACD,EAAE,EAAE;QACF,MAAM,EACJ,iFAAiF;QACnF,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,GAAG;KACZ;IACD,EAAE,EAAE;QACF,MAAM,EACJ,8EAA8E;QAChF,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,YAAY;KACrB;IACD,EAAE,EAAE;QACF,MAAM,EACJ,oFAAoF;QACtF,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,GAAG;KACZ;IACD,EAAE,EAAE;QACF,MAAM,EACJ,sEAAsE;QACxE,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,GAAG;KACZ;CACF,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,QAAiB;IAEjB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,wBAAwB,CAC5D,QAAQ,IAAI,IAAI,CACjB,IAAI,wBAAwB,CAAC,EAAE,CAAE,CAAC;IAEnC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE;YACR,GAAG,iCAAiC;YACpC,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;wBAC1B,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,MAAM;6BACb;4BACD;gCACE,IAAI,EAAE,MAAM;gCACZ,KAAK,EAAE;oCACL;wCACE,IAAI,EAAE,MAAM;wCACZ,KAAK,EAAE;4CACL,IAAI,EAAE,iBAAiB;4CACvB,MAAM,EAAE,QAAQ;4CAChB,GAAG,EAAE,8BAA8B;4CACnC,KAAK,EAAE,WAAW;yCACnB;qCACF;iCACF;gCACD,IAAI,EAAE,QAAQ;6BACf;4BACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;yBAC/B;qBACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,EAAE,GAAG,6BAA6B,EAAE;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE;YACR,eAAe,EAAE,aAAa;YAC9B,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBACrC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBACtC,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBACxC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBACnC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;aACpC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAoB,EACpB,QAAiB;IAEjB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,gBAAgB,EAAE,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,iBAAiB,EAAE,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,iBAAiB,EAAE,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,mBAAmB,EAAE,CAAC;QAC/B,KAAK,OAAO;YACV,OAAO,eAAe,EAAE,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,gBAAgB,EAAE,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,cAAc,EAAE,CAAC;QAC1B,KAAK,UAAU;YACb,OAAO,iBAAiB,EAAE,CAAC;QAC7B,KAAK,UAAU;YACb,OAAO,kBAAkB,EAAE,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,gBAAgB,EAAE,CAAC;QAC5B,KAAK,QAAQ;YACX,OAAO,gBAAgB,EAAE,CAAC;QAC5B,KAAK,kBAAkB;YACrB,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,iBAAiB,EAAE,CAAC;QAC7B,KAAK,cAAc;YACjB,OAAO,qBAAqB,EAAE,CAAC;QACjC;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ export * from "./app.js";
2
+ export * from "./utils.js";
3
+ export * from "./language.js";
4
+ export * from "./message.js";
5
+ export * from "./api/index.js";
6
+ export * from "./whatsappblocks.v1.js";
7
+ export * from "./emailblocks.v1.js";
8
+ export * from "./emailblocks.v1.defaults.js";
9
+ export * from "./media.js";
10
+ export * from "./meta-webhook.js";
11
+ export * from "./meta-template.js";
12
+ export * from "./submission-job.js";
13
+ export * from "./kafka-events.js";
14
+ export * from "./dynamic-values.js";
15
+ export * from "./brand.js";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kafka-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-events.js","sourceRoot":"","sources":["../../src/types/kafka-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/types/language.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export const MEDIA_LIMITS = {
2
+ image: { maxSize: 5 * 1024 * 1024, accept: ["image/jpeg", "image/png"] },
3
+ video: { maxSize: 16 * 1024 * 1024, accept: ["video/mp4", "video/3gpp"] },
4
+ document: { maxSize: 20 * 1024 * 1024, accept: ["application/pdf"] },
5
+ };
6
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE;IACxE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE;IACzE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;CAIrE,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import { brandDefaultEmailSettingsSchema, brandDefaultButtonSettingsSchema, } from "./brand.js";
3
+ export const MESSAGE_RENDER_TYPES = ["whatsapp_v1", "email_v1"];
4
+ export const MESSAGE_STATUS = [
5
+ "pending",
6
+ "draft",
7
+ "rejected",
8
+ "approved",
9
+ ];
10
+ export const MESSAGE_GROUP_CATEGORIES = ["marketing", "utility"];
11
+ export const MESSAGE_GROUP_VISIBILITY = ["public", "internal"];
12
+ /**
13
+ * Brand cascade data schema for preview validation.
14
+ * Subset of BrandFromDb used at compile time.
15
+ */
16
+ export const brandCascadeDataSchema = z.object({
17
+ default_email_settings: brandDefaultEmailSettingsSchema,
18
+ default_button_settings: brandDefaultButtonSettingsSchema,
19
+ default_socials: z.record(z.string(), z.string()).nullable(),
20
+ logo_url: z.string().nullable(),
21
+ });
22
+ /**
23
+ * Request body for previewing a message with inline data (no DB lookups).
24
+ */
25
+ export const previewMessageRequestSchema = z.object({
26
+ message: z
27
+ .object({
28
+ render_type: z.literal("email_v1"),
29
+ language_id: z.string(),
30
+ body: z.object({
31
+ subject: z.string(),
32
+ blocks: z.array(z.record(z.string(), z.unknown())),
33
+ settings: z.record(z.string(), z.unknown()),
34
+ }),
35
+ metadata: z.record(z.string(), z.unknown()).optional(),
36
+ })
37
+ .passthrough(),
38
+ parameters: z.record(z.string(), z.unknown()).optional().default({}),
39
+ brand: brandCascadeDataSchema.nullable().optional().default(null),
40
+ });
41
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAU,CAAC;AAEzE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,OAAO;IACP,UAAU;IACV,UAAU;CACF,CAAC;AAmDX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAU,CAAC;AAG1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AA2DxE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,sBAAsB,EAAE,+BAA+B;IACvD,uBAAuB,EAAE,gCAAgC;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;QACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;KACvD,CAAC;SACD,WAAW,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAClE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=meta-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-template.js","sourceRoot":"","sources":["../../src/types/meta-template.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=meta-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-webhook.js","sourceRoot":"","sources":["../../src/types/meta-webhook.ts"],"names":[],"mappings":""}