@antelopejs/dms-mailing 0.5.0 → 0.6.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 (106) hide show
  1. package/README.md +61 -339
  2. package/dist/data/templates-table.js +2 -10
  3. package/dist/data/templates-table.js.map +1 -1
  4. package/dist/db/models/index.d.ts +1 -0
  5. package/dist/db/models/index.js +1 -0
  6. package/dist/db/models/index.js.map +1 -1
  7. package/dist/db/models/send-events.model.d.ts +2 -0
  8. package/dist/db/models/send-events.model.js +11 -0
  9. package/dist/db/models/send-events.model.js.map +1 -1
  10. package/dist/db/models/sends.model.d.ts +3 -0
  11. package/dist/db/models/sends.model.js +13 -0
  12. package/dist/db/models/sends.model.js.map +1 -1
  13. package/dist/db/models/settings.model.d.ts +1 -0
  14. package/dist/db/models/suppressions.model.d.ts +1 -0
  15. package/dist/db/models/template-slugs.model.d.ts +27 -0
  16. package/dist/db/models/template-slugs.model.js +43 -0
  17. package/dist/db/models/template-slugs.model.js.map +1 -0
  18. package/dist/db/models/template-versions.model.d.ts +4 -1
  19. package/dist/db/models/template-versions.model.js +35 -2
  20. package/dist/db/models/template-versions.model.js.map +1 -1
  21. package/dist/db/models/templates.model.d.ts +2 -0
  22. package/dist/db/models/templates.model.js +22 -0
  23. package/dist/db/models/templates.model.js.map +1 -1
  24. package/dist/db/models/webhook-status.model.d.ts +1 -0
  25. package/dist/db/tables/index.d.ts +1 -0
  26. package/dist/db/tables/index.js +1 -0
  27. package/dist/db/tables/index.js.map +1 -1
  28. package/dist/db/tables/settings.table.d.ts +1 -0
  29. package/dist/db/tables/settings.table.js +4 -0
  30. package/dist/db/tables/settings.table.js.map +1 -1
  31. package/dist/db/tables/template-slugs.table.d.ts +7 -0
  32. package/dist/db/tables/template-slugs.table.js +35 -0
  33. package/dist/db/tables/template-slugs.table.js.map +1 -0
  34. package/dist/db/tables/templates.table.d.ts +5 -0
  35. package/dist/db/tables/templates.table.js +27 -0
  36. package/dist/db/tables/templates.table.js.map +1 -1
  37. package/dist/hooks/database-ready.d.ts +7 -0
  38. package/dist/hooks/database-ready.js +26 -0
  39. package/dist/hooks/database-ready.js.map +1 -0
  40. package/dist/hooks/index.d.ts +1 -0
  41. package/dist/hooks/index.js +1 -0
  42. package/dist/hooks/index.js.map +1 -1
  43. package/dist/implementations/dms-mailing/index.d.ts +3 -0
  44. package/dist/implementations/dms-mailing/index.js +7 -1
  45. package/dist/implementations/dms-mailing/index.js.map +1 -1
  46. package/dist/index.js +1 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/routes/templates.js +1 -0
  49. package/dist/routes/templates.js.map +1 -1
  50. package/dist/services/declaration-error.d.ts +6 -0
  51. package/dist/services/declaration-error.js +26 -0
  52. package/dist/services/declaration-error.js.map +1 -0
  53. package/dist/services/declarations.d.ts +3 -0
  54. package/dist/services/declarations.js +244 -0
  55. package/dist/services/declarations.js.map +1 -0
  56. package/dist/services/events.d.ts +4 -1
  57. package/dist/services/events.js.map +1 -1
  58. package/dist/services/fingerprint.d.ts +1 -0
  59. package/dist/services/fingerprint.js +20 -0
  60. package/dist/services/fingerprint.js.map +1 -0
  61. package/dist/services/send-import.d.ts +2 -0
  62. package/dist/services/send-import.js +136 -0
  63. package/dist/services/send-import.js.map +1 -0
  64. package/dist/services/templates.d.ts +3 -0
  65. package/dist/services/templates.js +75 -48
  66. package/dist/services/templates.js.map +1 -1
  67. package/dist/validation/declarations.schema.d.ts +299 -0
  68. package/dist/validation/declarations.schema.js +55 -0
  69. package/dist/validation/declarations.schema.js.map +1 -0
  70. package/frontend-vue/app/components/CategoriesInput.vue +12 -11
  71. package/frontend-vue/app/components/editor/EditorBlockList.vue +33 -30
  72. package/frontend-vue/app/components/editor/EditorPaletteGroup.vue +14 -14
  73. package/frontend-vue/app/composables/useSortableList.ts +159 -0
  74. package/frontend-vue/app/utils/blocks/dnd.ts +2 -0
  75. package/frontend-vue/i18n/locales/mailing-en-GB.json +1 -1
  76. package/frontend-vue/i18n/locales/mailing-fr-FR.json +1 -1
  77. package/frontend-vue/package.json +4 -3
  78. package/frontend-vue/pnpm-lock.yaml +6 -13
  79. package/frontend-vue/tests/editor-block-list.test.ts +46 -6
  80. package/frontend-vue/tests/sortable-list.test.ts +253 -0
  81. package/package.json +31 -14
  82. package/skills/dms-mailing/SKILL.md +101 -0
  83. package/src/data/templates-table.ts +7 -27
  84. package/src/db/models/index.ts +1 -0
  85. package/src/db/models/send-events.model.ts +13 -0
  86. package/src/db/models/sends.model.ts +22 -0
  87. package/src/db/models/template-slugs.model.ts +61 -0
  88. package/src/db/models/template-versions.model.ts +48 -2
  89. package/src/db/models/templates.model.ts +31 -0
  90. package/src/db/tables/index.ts +1 -0
  91. package/src/db/tables/settings.table.ts +8 -0
  92. package/src/db/tables/template-slugs.table.ts +29 -0
  93. package/src/db/tables/templates.table.ts +38 -0
  94. package/src/hooks/database-ready.ts +47 -0
  95. package/src/hooks/index.ts +1 -0
  96. package/src/implementations/dms-mailing/index.ts +17 -0
  97. package/src/index.ts +6 -1
  98. package/src/routes/templates.ts +2 -0
  99. package/src/services/declaration-error.ts +39 -0
  100. package/src/services/declarations.ts +450 -0
  101. package/src/services/events.ts +8 -2
  102. package/src/services/fingerprint.ts +22 -0
  103. package/src/services/send-import.ts +235 -0
  104. package/src/services/templates.ts +113 -72
  105. package/src/validation/declarations.schema.ts +77 -0
  106. package/frontend-vue/pnpm-workspace.yaml +0 -2
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.localesOf = localesOf;
4
4
  exports.requireTemplate = requireTemplate;
5
+ exports.assertSlugClaimed = assertSlugClaimed;
6
+ exports.releaseTemplateSlugs = releaseTemplateSlugs;
5
7
  exports.parseContent = parseContent;
6
8
  exports.hasDraft = hasDraft;
7
9
  exports.workingContent = workingContent;
@@ -20,6 +22,7 @@ exports.parseVersionChanges = parseVersionChanges;
20
22
  exports.parseVersionVariables = parseVersionVariables;
21
23
  exports.restoreVersionAsDraft = restoreVersionAsDraft;
22
24
  exports.localesWithoutSubject = localesWithoutSubject;
25
+ exports.publishSnapshot = publishSnapshot;
23
26
  exports.publishTemplate = publishTemplate;
24
27
  exports.contentOfVersion = contentOfVersion;
25
28
  exports.parseVersionContent = parseVersionContent;
@@ -29,6 +32,7 @@ exports.blankFields = blankFields;
29
32
  exports.localeContentOf = localeContentOf;
30
33
  exports.pickLocale = pickLocale;
31
34
  exports.displayName = displayName;
35
+ const node_crypto_1 = require("node:crypto");
32
36
  const interface_api_1 = require("@antelopejs/interface-api");
33
37
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
34
38
  const constants_1 = require("../constants");
@@ -43,12 +47,38 @@ const NEVER_PUBLISHED = 0;
43
47
  const STALE_DRAFT = "stale_draft";
44
48
  const VERSION_NOT_FOUND = "$dms_mailing.errors.version_not_found";
45
49
  const TEMPLATE_NOT_FOUND = "$dms_mailing.errors.template_not_found";
50
+ const DUPLICATE_SLUG = "$dms_mailing.errors.duplicate_slug";
46
51
  async function requireTemplate(model, id) {
47
52
  const template = await model.get(id);
48
53
  if (!template)
49
54
  throw new interface_api_1.HTTPResult(constants_1.HTTP_NOT_FOUND, TEMPLATE_NOT_FOUND);
50
55
  return template;
51
56
  }
57
+ async function claimTemplateSlug(tenantId, slug, templateId) {
58
+ const claims = (0, interface_database_decorators_1.GetModel)(db_1.TemplateSlugModel, tenantId);
59
+ const id = (0, db_1.templateSlugIdOf)(tenantId, slug);
60
+ if (await claims.insertClaim(id, slug, templateId))
61
+ return true;
62
+ const holder = await claims.get(id);
63
+ if (holder?.templateId === templateId)
64
+ return true;
65
+ if (holder) {
66
+ const templates = (0, interface_database_decorators_1.GetModel)(db_1.TemplateModel, tenantId);
67
+ if (await templates.get(holder.templateId))
68
+ return false;
69
+ await claims.dropClaimOf(id, holder.templateId);
70
+ }
71
+ return claims.insertClaim(id, slug, templateId);
72
+ }
73
+ async function assertSlugClaimed(tenantId, slug, templateId) {
74
+ if (await claimTemplateSlug(tenantId, slug, templateId))
75
+ return;
76
+ await (0, interface_database_decorators_1.GetModel)(db_1.TemplateModel, tenantId).delete(templateId);
77
+ throw new interface_api_1.HTTPResult(constants_1.HTTP_CONFLICT, DUPLICATE_SLUG);
78
+ }
79
+ async function releaseTemplateSlugs(tenantId, templateIds) {
80
+ await (0, interface_database_decorators_1.GetModel)(db_1.TemplateSlugModel, tenantId).releaseTemplates(templateIds);
81
+ }
52
82
  function parseContent(template) {
53
83
  return JSON.parse(template.json_content || EMPTY_CONTENT);
54
84
  }
@@ -174,65 +204,62 @@ function localesWithoutSubject(content) {
174
204
  .filter(([, locale]) => !locale.subject.trim())
175
205
  .map(([code]) => code);
176
206
  }
177
- async function ship(tenantId, template, shipment, author) {
178
- const { content, variables, version, changes } = shipment;
179
- const shipped = {
180
- json_content: JSON.stringify(content),
181
- json_variables: variables,
182
- locales: localesOf(content),
183
- publishedAt: new Date(),
184
- publishedBy: author,
185
- };
186
- await (0, interface_database_decorators_1.GetModel)(db_1.TemplateVersionModel, tenantId).insert({
187
- ...shipped,
188
- templateId: template._id,
189
- version,
190
- json_changes: JSON.stringify(changes),
191
- });
192
- await (0, interface_database_decorators_1.GetModel)(db_1.TemplateModel, tenantId).update(template._id, {
207
+ async function publishSnapshot(tenantId, template, draft, author, metadata = {}) {
208
+ const previous = publishedVersionOf(template);
209
+ const changes = changesOf(template, draft);
210
+ const isUnchanged = previous > NEVER_PUBLISHED && changes.length === 0;
211
+ const version = isUnchanged ? previous : previous + 1;
212
+ const versions = (0, interface_database_decorators_1.GetModel)(db_1.TemplateVersionModel, tenantId);
213
+ await versions.materialize(template);
214
+ const shipped = isUnchanged
215
+ ? {}
216
+ : {
217
+ json_content: JSON.stringify(draft.content),
218
+ json_variables: JSON.stringify(draft.variables),
219
+ locales: localesOf(draft.content),
220
+ publishedAt: new Date(),
221
+ publishedBy: author,
222
+ };
223
+ const history = isUnchanged
224
+ ? {}
225
+ : {
226
+ json_published_version: JSON.stringify({
227
+ ...shipped,
228
+ _id: (0, node_crypto_1.randomUUID)(),
229
+ templateId: template._id,
230
+ version,
231
+ json_changes: JSON.stringify(changes),
232
+ }),
233
+ };
234
+ const patch = {
235
+ ...metadata,
193
236
  ...shipped,
237
+ ...history,
194
238
  json_draft: "",
195
239
  json_variables_draft: "",
196
240
  isDraftPending: false,
197
- draftRevision: template.draftRevision + 1,
241
+ draftRevision: template.draftRevision + Number(!isUnchanged || hasDraft(template)),
198
242
  status: "live",
199
243
  publishedVersion: version,
244
+ publishedAt: shipped.publishedAt ?? template.publishedAt ?? new Date(),
200
245
  updatedBy: author,
246
+ };
247
+ if (!(await (0, interface_database_decorators_1.GetModel)(db_1.TemplateModel, tenantId).publishIfCurrent(template, patch)))
248
+ return undefined;
249
+ await versions.materialize({
250
+ json_published_version: patch.json_published_version ?? template.json_published_version,
201
251
  });
202
- }
203
- async function publishTemplate(tenantId, template, author) {
204
- const previous = publishedVersionOf(template);
205
- const changes = pendingChanges(template);
206
- const isUnchanged = previous > NEVER_PUBLISHED && changes.length === 0;
207
- const version = isUnchanged ? previous : previous + 1;
208
- if (isUnchanged)
209
- await markLive(tenantId, template, previous, author);
210
- else
211
- await ship(tenantId, template, {
212
- content: workingContent(template),
213
- variables: JSON.stringify(workingVariables(template)),
214
- version,
215
- changes,
216
- }, author);
217
252
  await (0, template_attention_1.refreshTemplateAttention)(tenantId);
218
253
  return { version, changes };
219
254
  }
220
- async function markLive(tenantId, template, version, author) {
221
- const draft = hasDraft(template)
222
- ? {
223
- json_draft: "",
224
- json_variables_draft: "",
225
- isDraftPending: false,
226
- draftRevision: template.draftRevision + 1,
227
- }
228
- : {};
229
- await (0, interface_database_decorators_1.GetModel)(db_1.TemplateModel, tenantId).update(template._id, {
230
- status: "live",
231
- publishedVersion: version,
232
- publishedAt: template.publishedAt ?? new Date(),
233
- updatedBy: author,
234
- ...draft,
235
- });
255
+ async function publishTemplate(tenantId, template, author) {
256
+ const outcome = await publishSnapshot(tenantId, template, {
257
+ content: workingContent(template),
258
+ variables: workingVariables(template),
259
+ }, author);
260
+ if (!outcome)
261
+ throw new interface_api_1.HTTPResult(constants_1.HTTP_CONFLICT, "$dms_mailing.errors.draft_conflict");
262
+ return outcome;
236
263
  }
237
264
  async function contentOfVersion(tenantId, template, version) {
238
265
  if (!version)
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/services/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/services/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,299 @@
1
+ import { z } from "zod";
2
+ export declare const templateDeclarationSchema: z.ZodObject<{
3
+ tenantId: z.ZodString;
4
+ slug: z.ZodString;
5
+ name: z.ZodString;
6
+ category: z.ZodDefault<z.ZodString>;
7
+ content: z.ZodObject<{
8
+ locales: z.ZodRecord<z.ZodString, z.ZodObject<{
9
+ subject: z.ZodString;
10
+ preheader: z.ZodString;
11
+ blocks: z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">;
12
+ }, "strip", z.ZodTypeAny, {
13
+ subject: string;
14
+ preheader: string;
15
+ blocks: unknown[];
16
+ }, {
17
+ subject: string;
18
+ preheader: string;
19
+ blocks: unknown[];
20
+ }>>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ locales: Record<string, {
23
+ subject: string;
24
+ preheader: string;
25
+ blocks: unknown[];
26
+ }>;
27
+ }, {
28
+ locales: Record<string, {
29
+ subject: string;
30
+ preheader: string;
31
+ blocks: unknown[];
32
+ }>;
33
+ }>;
34
+ variables: z.ZodDefault<z.ZodArray<z.ZodObject<{
35
+ path: z.ZodString;
36
+ type: z.ZodEnum<["string", "text", "number", "money", "date", "url", "boolean", "array"]>;
37
+ required: z.ZodBoolean;
38
+ }, "strip", z.ZodTypeAny, {
39
+ path: string;
40
+ type: "string" | "number" | "boolean" | "date" | "array" | "url" | "money" | "text";
41
+ required: boolean;
42
+ }, {
43
+ path: string;
44
+ type: "string" | "number" | "boolean" | "date" | "array" | "url" | "money" | "text";
45
+ required: boolean;
46
+ }>, "many">>;
47
+ testData: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
48
+ author: z.ZodOptional<z.ZodString>;
49
+ }, "strip", z.ZodTypeAny, {
50
+ name: string;
51
+ content: {
52
+ locales: Record<string, {
53
+ subject: string;
54
+ preheader: string;
55
+ blocks: unknown[];
56
+ }>;
57
+ };
58
+ category: string;
59
+ tenantId: string;
60
+ slug: string;
61
+ variables: {
62
+ path: string;
63
+ type: "string" | "number" | "boolean" | "date" | "array" | "url" | "money" | "text";
64
+ required: boolean;
65
+ }[];
66
+ testData: Record<string, unknown>;
67
+ author?: string | undefined;
68
+ }, {
69
+ name: string;
70
+ content: {
71
+ locales: Record<string, {
72
+ subject: string;
73
+ preheader: string;
74
+ blocks: unknown[];
75
+ }>;
76
+ };
77
+ tenantId: string;
78
+ slug: string;
79
+ category?: string | undefined;
80
+ variables?: {
81
+ path: string;
82
+ type: "string" | "number" | "boolean" | "date" | "array" | "url" | "money" | "text";
83
+ required: boolean;
84
+ }[] | undefined;
85
+ testData?: Record<string, unknown> | undefined;
86
+ author?: string | undefined;
87
+ }>;
88
+ export type ParsedTemplateDeclaration = z.infer<typeof templateDeclarationSchema>;
89
+ export declare const categoryDeclarationSchema: z.ZodObject<{
90
+ id: z.ZodString;
91
+ icon: z.ZodString;
92
+ } & {
93
+ tenantId: z.ZodString;
94
+ label: z.ZodString;
95
+ }, "strip", z.ZodTypeAny, {
96
+ id: string;
97
+ label: string;
98
+ icon: string;
99
+ tenantId: string;
100
+ }, {
101
+ id: string;
102
+ label: string;
103
+ icon: string;
104
+ tenantId: string;
105
+ }>;
106
+ export type ParsedCategoryDeclaration = z.infer<typeof categoryDeclarationSchema>;
107
+ declare const importedSendSchema: z.ZodObject<{
108
+ importId: z.ZodString;
109
+ templateSlug: z.ZodString;
110
+ to: z.ZodUnion<[z.ZodString, z.ZodObject<{
111
+ email: z.ZodString;
112
+ name: z.ZodOptional<z.ZodString>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ email: string;
115
+ name?: string | undefined;
116
+ }, {
117
+ email: string;
118
+ name?: string | undefined;
119
+ }>]>;
120
+ sentAt: z.ZodDate;
121
+ locale: z.ZodOptional<z.ZodString>;
122
+ variables: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
123
+ provider: z.ZodOptional<z.ZodString>;
124
+ providerMessageId: z.ZodOptional<z.ZodString>;
125
+ source: z.ZodOptional<z.ZodString>;
126
+ isTest: z.ZodDefault<z.ZodBoolean>;
127
+ events: z.ZodDefault<z.ZodArray<z.ZodObject<{
128
+ type: z.ZodEnum<[string, ...string[]]>;
129
+ at: z.ZodDate;
130
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ at: Date;
133
+ type: string;
134
+ details?: Record<string, unknown> | undefined;
135
+ }, {
136
+ at: Date;
137
+ type: string;
138
+ details?: Record<string, unknown> | undefined;
139
+ }>, "many">>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ to: string | {
142
+ email: string;
143
+ name?: string | undefined;
144
+ };
145
+ templateSlug: string;
146
+ isTest: boolean;
147
+ variables: Record<string, unknown>;
148
+ events: {
149
+ at: Date;
150
+ type: string;
151
+ details?: Record<string, unknown> | undefined;
152
+ }[];
153
+ importId: string;
154
+ sentAt: Date;
155
+ source?: string | undefined;
156
+ provider?: string | undefined;
157
+ locale?: string | undefined;
158
+ providerMessageId?: string | undefined;
159
+ }, {
160
+ to: string | {
161
+ email: string;
162
+ name?: string | undefined;
163
+ };
164
+ templateSlug: string;
165
+ importId: string;
166
+ sentAt: Date;
167
+ source?: string | undefined;
168
+ provider?: string | undefined;
169
+ locale?: string | undefined;
170
+ providerMessageId?: string | undefined;
171
+ isTest?: boolean | undefined;
172
+ variables?: Record<string, unknown> | undefined;
173
+ events?: {
174
+ at: Date;
175
+ type: string;
176
+ details?: Record<string, unknown> | undefined;
177
+ }[] | undefined;
178
+ }>;
179
+ export type ParsedImportedSend = z.infer<typeof importedSendSchema>;
180
+ export declare const sendImportSchema: z.ZodObject<{
181
+ tenantId: z.ZodString;
182
+ sends: z.ZodArray<z.ZodObject<{
183
+ importId: z.ZodString;
184
+ templateSlug: z.ZodString;
185
+ to: z.ZodUnion<[z.ZodString, z.ZodObject<{
186
+ email: z.ZodString;
187
+ name: z.ZodOptional<z.ZodString>;
188
+ }, "strip", z.ZodTypeAny, {
189
+ email: string;
190
+ name?: string | undefined;
191
+ }, {
192
+ email: string;
193
+ name?: string | undefined;
194
+ }>]>;
195
+ sentAt: z.ZodDate;
196
+ locale: z.ZodOptional<z.ZodString>;
197
+ variables: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
198
+ provider: z.ZodOptional<z.ZodString>;
199
+ providerMessageId: z.ZodOptional<z.ZodString>;
200
+ source: z.ZodOptional<z.ZodString>;
201
+ isTest: z.ZodDefault<z.ZodBoolean>;
202
+ events: z.ZodDefault<z.ZodArray<z.ZodObject<{
203
+ type: z.ZodEnum<[string, ...string[]]>;
204
+ at: z.ZodDate;
205
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
206
+ }, "strip", z.ZodTypeAny, {
207
+ at: Date;
208
+ type: string;
209
+ details?: Record<string, unknown> | undefined;
210
+ }, {
211
+ at: Date;
212
+ type: string;
213
+ details?: Record<string, unknown> | undefined;
214
+ }>, "many">>;
215
+ }, "strip", z.ZodTypeAny, {
216
+ to: string | {
217
+ email: string;
218
+ name?: string | undefined;
219
+ };
220
+ templateSlug: string;
221
+ isTest: boolean;
222
+ variables: Record<string, unknown>;
223
+ events: {
224
+ at: Date;
225
+ type: string;
226
+ details?: Record<string, unknown> | undefined;
227
+ }[];
228
+ importId: string;
229
+ sentAt: Date;
230
+ source?: string | undefined;
231
+ provider?: string | undefined;
232
+ locale?: string | undefined;
233
+ providerMessageId?: string | undefined;
234
+ }, {
235
+ to: string | {
236
+ email: string;
237
+ name?: string | undefined;
238
+ };
239
+ templateSlug: string;
240
+ importId: string;
241
+ sentAt: Date;
242
+ source?: string | undefined;
243
+ provider?: string | undefined;
244
+ locale?: string | undefined;
245
+ providerMessageId?: string | undefined;
246
+ isTest?: boolean | undefined;
247
+ variables?: Record<string, unknown> | undefined;
248
+ events?: {
249
+ at: Date;
250
+ type: string;
251
+ details?: Record<string, unknown> | undefined;
252
+ }[] | undefined;
253
+ }>, "many">;
254
+ }, "strip", z.ZodTypeAny, {
255
+ tenantId: string;
256
+ sends: {
257
+ to: string | {
258
+ email: string;
259
+ name?: string | undefined;
260
+ };
261
+ templateSlug: string;
262
+ isTest: boolean;
263
+ variables: Record<string, unknown>;
264
+ events: {
265
+ at: Date;
266
+ type: string;
267
+ details?: Record<string, unknown> | undefined;
268
+ }[];
269
+ importId: string;
270
+ sentAt: Date;
271
+ source?: string | undefined;
272
+ provider?: string | undefined;
273
+ locale?: string | undefined;
274
+ providerMessageId?: string | undefined;
275
+ }[];
276
+ }, {
277
+ tenantId: string;
278
+ sends: {
279
+ to: string | {
280
+ email: string;
281
+ name?: string | undefined;
282
+ };
283
+ templateSlug: string;
284
+ importId: string;
285
+ sentAt: Date;
286
+ source?: string | undefined;
287
+ provider?: string | undefined;
288
+ locale?: string | undefined;
289
+ providerMessageId?: string | undefined;
290
+ isTest?: boolean | undefined;
291
+ variables?: Record<string, unknown> | undefined;
292
+ events?: {
293
+ at: Date;
294
+ type: string;
295
+ details?: Record<string, unknown> | undefined;
296
+ }[] | undefined;
297
+ }[];
298
+ }>;
299
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendImportSchema = exports.categoryDeclarationSchema = exports.templateDeclarationSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../constants");
6
+ const types_1 = require("../types");
7
+ const settings_schema_1 = require("./settings.schema");
8
+ const templates_schema_1 = require("./templates.schema");
9
+ const MAX_AUTHOR_LENGTH = constants_1.MAX_NAME_LENGTH;
10
+ const MAX_IMPORT_ID_LENGTH = 200;
11
+ const tenantIdSchema = zod_1.z.string().trim().min(1);
12
+ exports.templateDeclarationSchema = zod_1.z.object({
13
+ tenantId: tenantIdSchema,
14
+ slug: templates_schema_1.slugSchema,
15
+ name: zod_1.z.string().trim().min(1).max(constants_1.MAX_NAME_LENGTH),
16
+ category: zod_1.z.string().trim().default(""),
17
+ content: templates_schema_1.templateContentSchema,
18
+ variables: templates_schema_1.variableListSchema.default([]),
19
+ testData: zod_1.z.record(zod_1.z.unknown()).default({}),
20
+ author: zod_1.z.string().trim().min(1).max(MAX_AUTHOR_LENGTH).optional(),
21
+ });
22
+ exports.categoryDeclarationSchema = settings_schema_1.categorySchema.extend({
23
+ tenantId: tenantIdSchema,
24
+ label: zod_1.z.string().trim().min(1).max(constants_1.MAX_NAME_LENGTH),
25
+ });
26
+ const recipientSchema = zod_1.z.union([
27
+ zod_1.z.string().trim().email(),
28
+ zod_1.z.object({
29
+ email: zod_1.z.string().trim().email(),
30
+ name: zod_1.z.string().optional(),
31
+ }),
32
+ ]);
33
+ const importedEventSchema = zod_1.z.object({
34
+ type: zod_1.z.enum(types_1.SEND_EVENT_TYPES),
35
+ at: zod_1.z.coerce.date(),
36
+ details: zod_1.z.record(zod_1.z.unknown()).optional(),
37
+ });
38
+ const importedSendSchema = zod_1.z.object({
39
+ importId: zod_1.z.string().trim().min(1).max(MAX_IMPORT_ID_LENGTH),
40
+ templateSlug: templates_schema_1.slugSchema,
41
+ to: recipientSchema,
42
+ sentAt: zod_1.z.coerce.date(),
43
+ locale: zod_1.z.string().trim().min(1).optional(),
44
+ variables: zod_1.z.record(zod_1.z.unknown()).default({}),
45
+ provider: zod_1.z.string().optional(),
46
+ providerMessageId: zod_1.z.string().optional(),
47
+ source: zod_1.z.string().optional(),
48
+ isTest: zod_1.z.boolean().default(false),
49
+ events: zod_1.z.array(importedEventSchema).default([]),
50
+ });
51
+ exports.sendImportSchema = zod_1.z.object({
52
+ tenantId: tenantIdSchema,
53
+ sends: zod_1.z.array(importedSendSchema),
54
+ });
55
+ //# sourceMappingURL=declarations.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations.schema.js","sourceRoot":"","sources":["../../src/validation/declarations.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,4CAA+C;AAC/C,oCAA4C;AAC5C,uDAAmD;AACnD,yDAI4B;AAE5B,MAAM,iBAAiB,GAAG,2BAAe,CAAC;AAC1C,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAMnC,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,6BAAU;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,2BAAe,CAAC;IACnD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACvC,OAAO,EAAE,wCAAqB;IAC9B,SAAS,EAAE,qCAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;CACnE,CAAC,CAAC;AAMU,QAAA,yBAAyB,GAAG,gCAAc,CAAC,MAAM,CAAC;IAC7D,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,2BAAe,CAAC;CACrD,CAAC,CAAC;AAMH,MAAM,eAAe,GAAG,OAAC,CAAC,KAAK,CAAC;IAC9B,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;IACzB,OAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;QAChC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,wBAAyC,CAAC;IACvD,EAAE,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE;IACnB,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC5D,YAAY,EAAE,6BAAU;IACxB,EAAE,EAAE,eAAe;IACnB,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE;IACvB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAIU,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;CACnC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import draggable from 'vuedraggable'
2
+ import { useSortableList } from '../composables/useSortableList'
3
3
  import { useLocalizedDefaults } from '../composables/useLocalizedDefaults'
4
4
  import { useCategoryUsage } from '../composables/useMailingReads'
5
5
  import { isMarketingCategory } from '../utils/system-variables'
@@ -219,6 +219,14 @@ async function moveBy(index: number, offset: number): Promise<void> {
219
219
  handles?.[moved.index]?.focus()
220
220
  }
221
221
 
222
+ const rowList = ref<HTMLElement | null>(null)
223
+
224
+ useSortableList(rowList, () => rows.value, {
225
+ handle: HANDLE_SELECTOR,
226
+ disabled: () => props.disabled,
227
+ onEnd: onEdit,
228
+ })
229
+
222
230
  watch(source, (value) => {
223
231
  if (serializeCategories(value) === lastEmitted) return
224
232
  rows.value = toRows(value)
@@ -243,15 +251,8 @@ watch(
243
251
  ref="root"
244
252
  class="border-default flex flex-col overflow-hidden rounded-lg border"
245
253
  >
246
- <draggable
247
- v-model="rows"
248
- item-key="key"
249
- :handle="HANDLE_SELECTOR"
250
- :disabled="disabled"
251
- class="divide-default flex flex-col divide-y"
252
- @end="onEdit"
253
- >
254
- <template #item="{ element, index }">
254
+ <div ref="rowList" class="divide-default flex flex-col divide-y">
255
+ <template v-for="(element, index) in rows" :key="element.key">
255
256
  <UFormField
256
257
  :name="labelFieldName(index)"
257
258
  :error-pattern="rowErrorPattern(index)"
@@ -343,7 +344,7 @@ watch(
343
344
  </template>
344
345
  </UFormField>
345
346
  </template>
346
- </draggable>
347
+ </div>
347
348
 
348
349
  <p v-if="!rows.length" class="text-muted px-4 py-3 text-[12.5px]">
349
350
  {{ key('empty') }}