@antelopejs/dms-mailing 0.9.1 → 0.10.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 (83) hide show
  1. package/README.md +11 -11
  2. package/dist/data/read-only-routes.d.ts +14 -1
  3. package/dist/data/sends-table.d.ts +14 -1
  4. package/dist/data/suppressions-table.d.ts +14 -1
  5. package/dist/data/templates-table.d.ts +15 -2
  6. package/dist/db/models/send-events.model.d.ts +3 -3
  7. package/dist/db/models/sends.model.d.ts +6 -4
  8. package/dist/db/models/sends.model.js +26 -2
  9. package/dist/db/models/sends.model.js.map +1 -1
  10. package/dist/db/models/settings.model.d.ts +3 -3
  11. package/dist/db/models/suppressions.model.d.ts +3 -3
  12. package/dist/db/models/template-versions.model.d.ts +3 -3
  13. package/dist/db/models/template-versions.model.js +2 -3
  14. package/dist/db/models/template-versions.model.js.map +1 -1
  15. package/dist/db/models/templates.model.d.ts +4 -3
  16. package/dist/db/models/templates.model.js +14 -6
  17. package/dist/db/models/templates.model.js.map +1 -1
  18. package/dist/db/models/webhook-status.model.d.ts +3 -3
  19. package/dist/db/tables/templates.table.d.ts +4 -1
  20. package/dist/hooks/tenant-export.js +5 -1
  21. package/dist/hooks/tenant-export.js.map +1 -1
  22. package/dist/pages/editor.js +1 -1
  23. package/dist/pages/editor.js.map +1 -1
  24. package/dist/routes/metrics.js +1 -2
  25. package/dist/routes/metrics.js.map +1 -1
  26. package/dist/routes/sends.js +2 -1
  27. package/dist/routes/sends.js.map +1 -1
  28. package/dist/routes/templates.d.ts +2 -2
  29. package/dist/routes/templates.js +4 -4
  30. package/dist/routes/templates.js.map +1 -1
  31. package/dist/services/attention.d.ts +1 -1
  32. package/dist/services/attention.js +3 -3
  33. package/dist/services/attention.js.map +1 -1
  34. package/dist/services/metrics.js +5 -1
  35. package/dist/services/metrics.js.map +1 -1
  36. package/dist/services/settings.js +2 -1
  37. package/dist/services/settings.js.map +1 -1
  38. package/dist/services/template-attention.d.ts +1 -1
  39. package/dist/services/template-attention.js +2 -4
  40. package/dist/services/template-attention.js.map +1 -1
  41. package/dist/services/templates.js +10 -8
  42. package/dist/services/templates.js.map +1 -1
  43. package/dist/validation/declarations.schema.d.ts +1 -1
  44. package/dist/validation/stored.schema.d.ts +12 -0
  45. package/dist/validation/stored.schema.js +198 -0
  46. package/dist/validation/stored.schema.js.map +1 -0
  47. package/frontend-vue/app/composables/useEditorContext.ts +1 -1
  48. package/frontend-vue/build/backend-boundary.ts +7 -2
  49. package/frontend-vue/dms.frontend.ts +1 -4
  50. package/frontend-vue/eslint.config.mjs +9 -1
  51. package/frontend-vue/package.json +1 -1
  52. package/frontend-vue/pnpm-lock.yaml +24 -7
  53. package/frontend-vue/tests/backend-boundary.test.ts +4 -4
  54. package/frontend-vue/tests/column-displays.test.ts +13 -12
  55. package/frontend-vue/tests/footer-block.test.ts +1 -1
  56. package/frontend-vue/tests/template-gallery-display.test.ts +6 -5
  57. package/frontend-vue/tests/template-overlays.test.ts +4 -12
  58. package/frontend-vue/tsconfig.typecheck.json +1 -2
  59. package/package.json +16 -16
  60. package/src/db/models/sends.model.ts +34 -4
  61. package/src/db/models/template-versions.model.ts +8 -6
  62. package/src/db/models/templates.model.ts +25 -9
  63. package/src/hooks/tenant-export.ts +5 -2
  64. package/src/pages/editor.ts +1 -1
  65. package/src/routes/metrics.ts +1 -2
  66. package/src/routes/sends.ts +2 -3
  67. package/src/routes/templates.ts +9 -9
  68. package/src/services/attention.ts +6 -6
  69. package/src/services/metrics.ts +3 -1
  70. package/src/services/settings.ts +9 -3
  71. package/src/services/template-attention.ts +4 -5
  72. package/src/services/templates.ts +35 -16
  73. package/src/validation/stored.schema.ts +257 -0
  74. /package/frontend-vue/app/components/{Editor.vue → TemplateEditor.vue} +0 -0
  75. /package/frontend-vue/app/components/blocks/{Button.vue → BlockButton.vue} +0 -0
  76. /package/frontend-vue/app/components/blocks/{Code.vue → BlockCode.vue} +0 -0
  77. /package/frontend-vue/app/components/blocks/{Divider.vue → BlockDivider.vue} +0 -0
  78. /package/frontend-vue/app/components/blocks/{Footer.vue → BlockFooter.vue} +0 -0
  79. /package/frontend-vue/app/components/blocks/{Heading.vue → BlockHeading.vue} +0 -0
  80. /package/frontend-vue/app/components/blocks/{Hero.vue → BlockHero.vue} +0 -0
  81. /package/frontend-vue/app/components/blocks/{List.vue → BlockList.vue} +0 -0
  82. /package/frontend-vue/app/components/blocks/{Paragraph.vue → BlockParagraph.vue} +0 -0
  83. /package/frontend-vue/app/components/blocks/{Total.vue → BlockTotal.vue} +0 -0
package/README.md CHANGED
@@ -37,7 +37,7 @@ In development, send to a throwaway Ethereal inbox:
37
37
  ```ts fragment
38
38
  // antelope.config.ts
39
39
  nodemailer: {
40
- source: { type: "package", package: "@antelopejs/nodemailer", version: ">=0.0.6 <1.0.0" },
40
+ source: { type: "package", package: "@antelopejs/nodemailer", version: ">=0.0.12 <0.1.0" },
41
41
  config: { ethereal: true },
42
42
  },
43
43
  ```
@@ -68,16 +68,16 @@ await SendTemplate("order-confirmed", {
68
68
 
69
69
  | Package | Supported | Tested with |
70
70
  | ------------------------------------------- | ------------------ | ----------- |
71
- | `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `0.3.0` |
72
- | `@antelopejs/interface-api-util` | `>=0.3.0 <1.0.0` | `0.3.0` |
73
- | `@antelopejs/interface-core` | `>=0.4.0 <1.0.0` | `0.4.0` |
74
- | `@antelopejs/interface-data-api` | `>=0.6.1 <1.0.0` | `0.6.1` |
75
- | `@antelopejs/interface-database` | `>=0.3.0 <1.0.0` | `0.3.0` |
76
- | `@antelopejs/interface-database-decorators` | `>=0.2.0 <1.0.0` | `0.2.0` |
77
- | `@antelopejs/interface-dms` | `>=0.12.0 <1.0.0` | `0.12.0` |
78
- | `@antelopejs/interface-dms-automation` | `>=0.6.0 <1.0.0` | `0.6.0` |
79
- | `@antelopejs/interface-dms-mailing` | `>=0.10.0 <0.11.0` | `0.10.0` |
80
- | `@antelopejs/interface-email` | `>=0.0.6 <1.0.0` | `0.0.6` |
71
+ | `@antelopejs/interface-api` | `>=0.3.3 <0.4.0` | `0.3.3` |
72
+ | `@antelopejs/interface-api-util` | `>=0.3.2 <0.4.0` | `0.3.2` |
73
+ | `@antelopejs/interface-core` | `>=0.5.0 <0.6.0` | `0.5.1` |
74
+ | `@antelopejs/interface-data-api` | `>=0.8.0 <0.9.0` | `0.8.0` |
75
+ | `@antelopejs/interface-database` | `>=0.4.0 <0.5.0` | `0.4.0` |
76
+ | `@antelopejs/interface-database-decorators` | `>=0.5.0 <0.6.0` | `0.5.2` |
77
+ | `@antelopejs/interface-dms` | `>=0.14.0 <0.15.0` | `0.14.0` |
78
+ | `@antelopejs/interface-dms-automation` | `>=0.6.0 <0.7.0` | `0.6.0` |
79
+ | `@antelopejs/interface-dms-mailing` | `>=0.11.0 <0.12.0` | `0.11.0` |
80
+ | `@antelopejs/interface-email` | `>=0.2.0 <0.3.0` | `0.2.1` |
81
81
 
82
82
  <!-- antelopejs-docs-compat:end -->
83
83
 
@@ -1,5 +1,18 @@
1
1
  export declare const READ_ONLY_ROUTES: {
2
- get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
2
+ exportStart: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<{
3
+ pluckMode: string;
4
+ }, {
5
+ jobId: string;
6
+ format: string;
7
+ extension: string;
8
+ }, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, string | undefined, string | undefined, string[], import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
9
+ exportStatus: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, {
10
+ status: string;
11
+ progress: number;
12
+ error?: string;
13
+ }, [import("@antelopejs/interface-api").RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
14
+ exportDownload: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, void, [import("@antelopejs/interface-api").RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
15
+ get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
3
16
  list: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("@antelopejs/interface-dms/base").TableViewListPage, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("@antelopejs/interface-dms/auth/db").User]>;
4
17
  count: import("@antelopejs/interface-data-api").DataControllerCallback;
5
18
  countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
@@ -2,7 +2,20 @@ import { type CellSubline } from "@antelopejs/interface-dms/base/table-view";
2
2
  import { MailingSend, SendModel, SuppressionModel } from "../db";
3
3
  import { type SendStage, type SendStatus } from "../types";
4
4
  declare const SendsTableAPI_base: import("@antelopejs/interface-core/decorators").Class<import("@antelopejs/interface-data-api").ExtractDefCallbacks<{
5
- get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
5
+ exportStart: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<{
6
+ pluckMode: string;
7
+ }, {
8
+ jobId: string;
9
+ format: string;
10
+ extension: string;
11
+ }, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, string | undefined, string | undefined, string[], import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
12
+ exportStatus: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, {
13
+ status: string;
14
+ progress: number;
15
+ error?: string;
16
+ }, [import("@antelopejs/interface-api").RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
17
+ exportDownload: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, void, [import("@antelopejs/interface-api").RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
18
+ get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
6
19
  list: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("@antelopejs/interface-dms/base").TableViewListPage, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("@antelopejs/interface-dms/auth/db").User]>;
7
20
  count: import("@antelopejs/interface-data-api").DataControllerCallback;
8
21
  countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
@@ -1,7 +1,20 @@
1
1
  import { MailingSuppression, SuppressionModel } from "../db";
2
2
  import { type SuppressionReason } from "../types";
3
3
  declare const SuppressionsTableAPI_base: import("@antelopejs/interface-core/decorators").Class<import("@antelopejs/interface-data-api").ExtractDefCallbacks<{
4
- get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
4
+ exportStart: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<{
5
+ pluckMode: string;
6
+ }, {
7
+ jobId: string;
8
+ format: string;
9
+ extension: string;
10
+ }, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, string | undefined, string | undefined, string[], import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
11
+ exportStatus: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, {
12
+ status: string;
13
+ progress: number;
14
+ error?: string;
15
+ }, [import("@antelopejs/interface-api").RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
16
+ exportDownload: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, void, [import("@antelopejs/interface-api").RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
17
+ get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
5
18
  list: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("@antelopejs/interface-dms/base").TableViewListPage, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("@antelopejs/interface-dms/auth/db").User]>;
6
19
  count: import("@antelopejs/interface-data-api").DataControllerCallback;
7
20
  countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
@@ -18,13 +18,26 @@ export declare function saveDetails(ctx: RequestContext, template: MailingTempla
18
18
  export declare function afterEdit(model: TemplateModel, id: string, locale: string): AfterWrite;
19
19
  declare const TemplatesTableAPI_base: import("@antelopejs/interface-core/decorators").Class<import("@antelopejs/interface-data-api").ExtractDefCallbacks<{
20
20
  new: DataControllerCallback;
21
- get: DataControllerCallback<Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [RequestContext, Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
21
+ exportStart: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<{
22
+ pluckMode: string;
23
+ }, {
24
+ jobId: string;
25
+ format: string;
26
+ extension: string;
27
+ }, [RequestContext, Parameters.ListParameters, string | undefined, string | undefined, string[], import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
28
+ exportStatus: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, {
29
+ status: string;
30
+ progress: number;
31
+ error?: string;
32
+ }, [RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
33
+ exportDownload: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, void, [RequestContext, string, import("@antelopejs/interface-dms/auth/db").User, import("@antelopejs/interface-dms/auth/db").User]>;
34
+ get: DataControllerCallback<Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [RequestContext, Parameters.GetParameters, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
22
35
  list: DataControllerCallback<Parameters.ListParameters, import("@antelopejs/interface-dms/base").TableViewListPage, [RequestContext, Parameters.ListParameters, import("@antelopejs/interface-dms/auth/db").User]>;
23
36
  select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<Parameters.ListParameters, import("@antelopejs/interface-dms/base").TableViewListPage, [RequestContext, Parameters.ListParameters, import("@antelopejs/interface-dms/auth/db").User]>;
24
37
  count: DataControllerCallback;
25
38
  countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
26
39
  summary: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
27
- edit: DataControllerCallback<Parameters.EditParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [RequestContext, Parameters.EditParameters, Validation.WrittenBody, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
40
+ edit: DataControllerCallback<Parameters.EditParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [RequestContext, Parameters.EditParameters, Validation.WrittenBody, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
28
41
  delete: DataControllerCallback<Parameters.DeleteParameters, number | {
29
42
  deleted: number;
30
43
  }, [RequestContext, Parameters.DeleteParameters, Buffer<ArrayBufferLike>, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
@@ -4,9 +4,9 @@ declare const SendEventModel_base: {
4
4
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
5
5
  readonly table: import("@antelopejs/interface-database").Table<MailingSendEvent>;
6
6
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
7
- get(id: string): PromiseLike<MailingSendEvent | undefined>;
8
- getBy(index: keyof MailingSendEvent, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<MailingSendEvent[]>;
9
- getAll(): PromiseLike<MailingSendEvent[]>;
7
+ get(id: string): Promise<MailingSendEvent | undefined>;
8
+ getBy(index: keyof MailingSendEvent, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<MailingSendEvent[]>;
9
+ getAll(): Promise<MailingSendEvent[]>;
10
10
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSendEvent> | import("@antelopejs/interface-database-decorators").DeepPartial<MailingSendEvent>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
11
11
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSendEvent>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
12
12
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSendEvent> & {
@@ -1,7 +1,8 @@
1
1
  import { MailingSend } from "../tables";
2
2
  type NewSend = Omit<MailingSend, "_id" | "createdAt" | "revision" | "isRetiring" | "lastActivityAt">;
3
3
  export type ImportedSendRow = Omit<MailingSend, "revision" | "isRetiring" | "lastActivityAt">;
4
- export type SendSummary = Omit<MailingSend, "json_variables">;
4
+ declare const SEND_SUMMARY_FIELDS: readonly ["_id", "createdAt", "templateSlug", "recipientEmail", "status", "stage", "latencyMs", "opens", "clicks", "isTest", "error", "source", "locale", "requestedLocale"];
5
+ export type SendSummary = Pick<MailingSend, (typeof SEND_SUMMARY_FIELDS)[number]>;
5
6
  type SendActivity = Pick<MailingSend, "status" | "opens" | "clicks" | "lastEventAt" | "provider" | "error" | "isSoftBounce">;
6
7
  export interface SendReplay {
7
8
  replayedBy: string;
@@ -11,9 +12,9 @@ declare const SendModel_base: {
11
12
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
12
13
  readonly table: import("@antelopejs/interface-database").Table<MailingSend>;
13
14
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
14
- get(id: string): PromiseLike<MailingSend | undefined>;
15
- getBy(index: keyof MailingSend, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<MailingSend[]>;
16
- getAll(): PromiseLike<MailingSend[]>;
15
+ get(id: string): Promise<MailingSend | undefined>;
16
+ getBy(index: keyof MailingSend, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<MailingSend[]>;
17
+ getAll(): Promise<MailingSend[]>;
17
18
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSend> | import("@antelopejs/interface-database-decorators").DeepPartial<MailingSend>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
18
19
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSend>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
19
20
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSend> & {
@@ -45,5 +46,6 @@ export declare class SendModel extends SendModel_base {
45
46
  private mutateLatest;
46
47
  listForTemplate(templateSlug: string, from: Date): Promise<SendSummary[]>;
47
48
  countOlderThan(limit: Date): Promise<number>;
49
+ listSentSlugs(from: Date, to: Date): Promise<string[]>;
48
50
  }
49
51
  export {};
@@ -9,6 +9,22 @@ const tables_1 = require("../tables");
9
9
  const FIRST_ROW_OFFSET = 0;
10
10
  const SINGLE_ROW = 1;
11
11
  const MAX_MUTATION_ATTEMPTS = 5;
12
+ const SEND_SUMMARY_FIELDS = [
13
+ "_id",
14
+ "createdAt",
15
+ "templateSlug",
16
+ "recipientEmail",
17
+ "status",
18
+ "stage",
19
+ "latencyMs",
20
+ "opens",
21
+ "clicks",
22
+ "isTest",
23
+ "error",
24
+ "source",
25
+ "locale",
26
+ "requestedLocale",
27
+ ];
12
28
  function canRetire(row, limit) {
13
29
  return row
14
30
  .key("createdAt")
@@ -64,7 +80,7 @@ class SendModel extends (0, interface_database_decorators_1.BasicDataModel)(tabl
64
80
  return this.table
65
81
  .filter((row) => row.key("createdAt").ge(from))
66
82
  .filter((row) => row.key("createdAt").lt(to))
67
- .without("json_variables")
83
+ .pluck(...SEND_SUMMARY_FIELDS)
68
84
  .run();
69
85
  }
70
86
  listOlderThan(limit, pageSize) {
@@ -178,7 +194,7 @@ class SendModel extends (0, interface_database_decorators_1.BasicDataModel)(tabl
178
194
  return this.table
179
195
  .getAll(templateSlug, "templateSlug")
180
196
  .filter((row) => row.key("createdAt").ge(from))
181
- .without("json_variables")
197
+ .pluck(...SEND_SUMMARY_FIELDS)
182
198
  .run();
183
199
  }
184
200
  countOlderThan(limit) {
@@ -187,6 +203,14 @@ class SendModel extends (0, interface_database_decorators_1.BasicDataModel)(tabl
187
203
  .count()
188
204
  .run();
189
205
  }
206
+ listSentSlugs(from, to) {
207
+ return this.table
208
+ .filter((row) => row.key("createdAt").ge(from))
209
+ .filter((row) => row.key("createdAt").lt(to))
210
+ .filter((row) => row.key("isTest").ne(true))
211
+ .distinct("templateSlug")
212
+ .run();
213
+ }
190
214
  }
191
215
  exports.SendModel = SendModel;
192
216
  //# sourceMappingURL=sends.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sends.model.js","sourceRoot":"","sources":["../../../src/db/models/sends.model.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,6FAA2E;AAC3E,uEAIwC;AACxC,uCAAuD;AACvD,sCAAkE;AAElE,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAarB,MAAM,qBAAqB,GAAG,CAAC,CAAC;AA2BhC,SAAS,SAAS,CAAC,GAA4B,EAAE,KAAW;IAC1D,OAAO,GAAG;SACP,GAAG,CAAC,WAAW,CAAC;SAChB,EAAE,CAAC,KAAK,CAAC;SACT,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;SACnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SACnE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,KAAW;IAChD,OAAO,CACL,IAAI,CAAC,MAAM,KAAK,QAAQ;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK;QAC5C,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,OAA8B;IAChD,IAAI,OAAO,KAAK,SAAS;QACvB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,OAAO,OAAO,KAAK,SAAS,CAAC;AAC/B,CAAC;AAED,MAAa,SAAU,SAAQ,IAAA,8CAAc,EAC3C,oBAAW,EACX,iCAAwB,CACzB;IAEC,UAAU,CAAC,IAAa;QACtB,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC;YACN,GAAG,IAAI;YACP,GAAG,EAAE,IAAA,wBAAU,GAAE;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,QAAQ,EAAE,IAAA,wBAAU,GAAE;SACvB,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAMD,KAAK,CAAC,cAAc,CAAC,IAAqB;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAA,wBAAU,GAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAA,wCAAmB,EAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAGD,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,SAAiB;QAEjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK;aAC1B,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;aACtC,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC;aACnC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAU,EAAE,EAAQ;QAC9B,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aAC9C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC5C,OAAO,CAAC,gBAAgB,CAAC;aACzB,GAAG,EAAE,CAAC;IACX,CAAC;IAED,aAAa,CAAC,KAAW,EAAE,QAAgB;QACzC,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;aACzE,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC;aACjC,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,KAAW;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;aAC7B,cAAc,CAAC,MAAM,EAAE;YACtB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,UAAU;YACzB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,YAAY,EAAE,IAAA,wBAAU,GAAE;YAC1B,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;SAC5B,CAAC;aACD,GAAG,EAAE,CAAC;QACT,IAAI,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,CAAC;IAGD,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE,UAAU;YAAE,OAAO,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;aAC7B,cAAc,CAAC,MAAM,EAAE;YACtB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,UAAU;YACzB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;SAChC,CAAC;aACD,GAAG,EAAE,CAAC;QACT,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,CAAC;IAGD,KAAK,CAAC,cAAc,CAClB,IAAiB,EACjB,OAAqB;QAErB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC;YACb,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,MAAM;gBACnB,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,MAAM,EAAE,IAAA,uBAAe,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtD,CAAC,CAAC,SAAS;YACb,cAAc,EAAE,IAAI,IAAI,EAAE;SAC3B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAC9C,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;aAC7B,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YACxB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,UAAU;YACzB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,YAAY,EAAE,IAAA,wBAAU,GAAE;YAC1B,KAAK;SACN,CAAC;aACD,GAAG,EAAE,CAAC;QACT,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAOD,eAAe,CAAC,MAAc,EAAE,UAAkB;QAChD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACxC,IAAA,uBAAe,EAAC,IAAI,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,UAAU;gBACV,KAAK,EAAE,IAAA,eAAO,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;aAClC,CACN,CAAC;IACJ,CAAC;IAGD,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1C,KAAK,EAAE,IAAA,eAAO,EAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAGD,YAAY,CAAC,MAAc,EAAE,MAAkB;QAC7C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,MAAM;YACT,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,KAAK,EAAE,IAAA,eAAO,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;SAClC,CAAC,CAAC,CAAC;IACN,CAAC;IAGD,YAAY,CAAC,MAAc,EAAE,UAAkB;QAC7C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,MAAc,EACd,OAAgB;QAEhB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,qBAAqB,EAAE,OAAO,EAAE,EAAE,CAAC;YACjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;iBAC7B,cAAc,CAAC,MAAM,EAAE;gBACtB,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,UAAU;gBACzB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;gBAC/B,YAAY,EAAE,IAAA,wBAAU,GAAE;gBAC1B,KAAK;aACN,CAAC;iBACD,GAAG,EAAE,CAAC;YACT,IAAI,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,eAAe,CAAC,YAAoB,EAAE,IAAU;QAC9C,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;aACpC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aAC9C,OAAO,CAAC,gBAAgB,CAAC;aACzB,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,cAAc,CAAC,KAAW;QACxB,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACtC,KAAK,EAAE;aACP,GAAG,EAAE,CAAC;IACX,CAAC;CACF;AArMD,8BAqMC"}
1
+ {"version":3,"file":"sends.model.js","sourceRoot":"","sources":["../../../src/db/models/sends.model.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ declare const SettingsModel_base: {
3
3
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
4
  readonly table: import("@antelopejs/interface-database").Table<MailingSettings>;
5
5
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
6
- get(id: string): PromiseLike<MailingSettings | undefined>;
7
- getBy(index: keyof MailingSettings, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<MailingSettings[]>;
8
- getAll(): PromiseLike<MailingSettings[]>;
6
+ get(id: string): Promise<MailingSettings | undefined>;
7
+ getBy(index: keyof MailingSettings, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<MailingSettings[]>;
8
+ getAll(): Promise<MailingSettings[]>;
9
9
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSettings> | import("@antelopejs/interface-database-decorators").DeepPartial<MailingSettings>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
10
10
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSettings>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
11
11
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSettings> & {
@@ -6,9 +6,9 @@ declare const SuppressionModel_base: {
6
6
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
7
7
  readonly table: import("@antelopejs/interface-database").Table<MailingSuppression>;
8
8
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
9
- get(id: string): PromiseLike<MailingSuppression | undefined>;
10
- getBy(index: keyof MailingSuppression, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<MailingSuppression[]>;
11
- getAll(): PromiseLike<MailingSuppression[]>;
9
+ get(id: string): Promise<MailingSuppression | undefined>;
10
+ getBy(index: keyof MailingSuppression, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<MailingSuppression[]>;
11
+ getAll(): Promise<MailingSuppression[]>;
12
12
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSuppression> | import("@antelopejs/interface-database-decorators").DeepPartial<MailingSuppression>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
13
13
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSuppression>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
14
14
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingSuppression> & {
@@ -4,9 +4,9 @@ declare const TemplateVersionModel_base: {
4
4
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
5
5
  readonly table: import("@antelopejs/interface-database").Table<MailingTemplateVersion>;
6
6
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
7
- get(id: string): PromiseLike<MailingTemplateVersion | undefined>;
8
- getBy(index: keyof MailingTemplateVersion, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<MailingTemplateVersion[]>;
9
- getAll(): PromiseLike<MailingTemplateVersion[]>;
7
+ get(id: string): Promise<MailingTemplateVersion | undefined>;
8
+ getBy(index: keyof MailingTemplateVersion, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<MailingTemplateVersion[]>;
9
+ getAll(): Promise<MailingTemplateVersion[]>;
10
10
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplateVersion> | import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplateVersion>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
11
11
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplateVersion>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
12
12
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplateVersion> & {
@@ -4,13 +4,12 @@ exports.TemplateVersionModel = void 0;
4
4
  exports.committedVersionOf = committedVersionOf;
5
5
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
6
6
  const tables_1 = require("../tables");
7
+ const stored_schema_1 = require("../../validation/stored.schema");
7
8
  const templates_model_1 = require("./templates.model");
8
9
  function committedVersionOf(template) {
9
10
  if (!template.json_published_version)
10
11
  return undefined;
11
- const row = JSON.parse(template.json_published_version);
12
- row.publishedAt = new Date(row.publishedAt);
13
- return row;
12
+ return (0, stored_schema_1.parseStored)(template.json_published_version, stored_schema_1.storedVersionRowSchema, "a version row");
14
13
  }
15
14
  class TemplateVersionModel extends (0, interface_database_decorators_1.BasicDataModel)(tables_1.MailingTemplateVersion, tables_1.MAILING_TEMPLATE_VERSIONS_TABLE_NAME) {
16
15
  async materialize(template) {
@@ -1 +1 @@
1
- {"version":3,"file":"template-versions.model.js","sourceRoot":"","sources":["../../../src/db/models/template-versions.model.ts"],"names":[],"mappings":";;;AASA,gDAWC;AApBD,6FAA2E;AAC3E,sCAImB;AACnB,uDAAkD;AAGlD,SAAgB,kBAAkB,CAChC,QAAyD;IAEzD,IAAI,CAAC,QAAQ,CAAC,sBAAsB;QAAE,OAAO,SAAS,CAAC;IAGvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,QAAQ,CAAC,sBAAsB,CACN,CAAC;IAC5B,GAAG,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAa,oBAAqB,SAAQ,IAAA,8CAAc,EACtD,+BAAsB,EACtB,6CAAoC,CACrC;IAEC,KAAK,CAAC,WAAW,CACf,QAAyD;QAEzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,MAAM,KAAK,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,IACE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAC1B,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAClE;gBAED,MAAM,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IAOD,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,+BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAClD,CAAC;QACF,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAAkB,EAClB,OAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACrD,CAAC;CACF;AApDD,oDAoDC"}
1
+ {"version":3,"file":"template-versions.model.js","sourceRoot":"","sources":["../../../src/db/models/template-versions.model.ts"],"names":[],"mappings":";;;AAaA,gDASC;AAtBD,6FAA2E;AAC3E,sCAImB;AACnB,kEAGwC;AACxC,uDAAkD;AAGlD,SAAgB,kBAAkB,CAChC,QAAyD;IAEzD,IAAI,CAAC,QAAQ,CAAC,sBAAsB;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO,IAAA,2BAAW,EAChB,QAAQ,CAAC,sBAAsB,EAC/B,sCAAsB,EACtB,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,MAAa,oBAAqB,SAAQ,IAAA,8CAAc,EACtD,+BAAsB,EACtB,6CAAoC,CACrC;IAEC,KAAK,CAAC,WAAW,CACf,QAAyD;QAEzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,MAAM,KAAK,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,IACE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAC1B,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAClE;gBAED,MAAM,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IAOD,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,+BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAClD,CAAC;QACF,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAAkB,EAClB,OAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACrD,CAAC;CACF;AApDD,oDAoDC"}
@@ -8,9 +8,9 @@ declare const TemplateModel_base: {
8
8
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
9
9
  readonly table: import("@antelopejs/interface-database").Table<MailingTemplate>;
10
10
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
11
- get(id: string): PromiseLike<MailingTemplate | undefined>;
12
- getBy(index: "_id" | "createdAt" | "updatedAt" | "name" | "attention" | "category" | "status" | "json_variables" | "revision" | "json_content" | "locales" | "publishedAt" | "publishedBy" | "slug" | "json_draft" | "isDraftPending" | "draftUpdatedAt" | "draftUpdatedBy" | "draftRevision" | "publishedVersion" | "json_variables_draft" | "json_test_data" | "updatedBy" | "needsAttention" | "unpublishedAt" | "json_published_version" | "localize", ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<MailingTemplate[]>;
13
- getAll(): PromiseLike<MailingTemplate[]>;
11
+ get(id: string): Promise<MailingTemplate | undefined>;
12
+ getBy(index: "name" | "_id" | "localize" | "createdAt" | "updatedAt" | "attention" | "category" | "status" | "json_variables" | "revision" | "json_content" | "locales" | "publishedAt" | "publishedBy" | "slug" | "json_draft" | "isDraftPending" | "draftUpdatedAt" | "draftUpdatedBy" | "draftRevision" | "publishedVersion" | "json_variables_draft" | "json_test_data" | "updatedBy" | "needsAttention" | "unpublishedAt" | "json_published_version", ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<MailingTemplate[]>;
13
+ getAll(): Promise<MailingTemplate[]>;
14
14
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplate> | import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplate>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
15
15
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplate>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
16
16
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingTemplate> & {
@@ -30,6 +30,7 @@ export declare class TemplateModel extends TemplateModel_base {
30
30
  static namesOf(template: MailingTemplate): LocalizedText;
31
31
  static nameIn(template: MailingTemplate, locale: string): string;
32
32
  insertFields(fields: TemplateFields): Promise<string[]>;
33
+ private static storedPatch;
33
34
  updateFields(id: string, fields: TemplateFields): Promise<number>;
34
35
  publishIfCurrent(template: MailingTemplate, patch: TemplateFields): Promise<boolean>;
35
36
  getBySlug(slug: string): Promise<MailingTemplate | undefined>;
@@ -11,7 +11,9 @@ const isLocalizedText = (value) => typeof value === "object" &&
11
11
  const MODIFIER_CONTAINER = "_internal";
12
12
  class TemplateModel extends (0, interface_database_decorators_1.BasicDataModel)(tables_1.MailingTemplate, tables_1.MAILING_TEMPLATES_TABLE_NAME) {
13
13
  static fromFields(fields) {
14
- return TemplateModel.fromPlainData(fields).localize("*", ["name"]);
14
+ const row = TemplateModel.fromPlainData(fields);
15
+ row.localize("*", ["name"]);
16
+ return row;
15
17
  }
16
18
  static namesOf(template) {
17
19
  const names = template.localize("*", ["name"]).name;
@@ -23,16 +25,22 @@ class TemplateModel extends (0, interface_database_decorators_1.BasicDataModel)(
23
25
  insertFields(fields) {
24
26
  return this.insert(TemplateModel.fromFields(fields));
25
27
  }
26
- updateFields(id, fields) {
27
- const row = TemplateModel.fromFields(fields);
28
- (0, interface_database_decorators_1.triggerEvent)(row, "update");
28
+ static storedPatch(row, fields) {
29
29
  const stored = TemplateModel.toDatabase(row);
30
30
  if (fields.name === undefined)
31
31
  delete stored[MODIFIER_CONTAINER];
32
- return this.table.get(id).update(stored).run();
32
+ return stored;
33
+ }
34
+ updateFields(id, fields) {
35
+ const row = TemplateModel.fromFields(fields);
36
+ (0, interface_database_decorators_1.triggerEvent)(row, "update");
37
+ return this.table
38
+ .get(id)
39
+ .update(TemplateModel.storedPatch(row, fields))
40
+ .run();
33
41
  }
34
42
  async publishIfCurrent(template, patch) {
35
- const stored = TemplateModel.toDatabase(TemplateModel.fromFields(patch));
43
+ const stored = TemplateModel.storedPatch(TemplateModel.fromFields(patch), patch);
36
44
  const outcome = await this.table
37
45
  .atomicMutation(template._id, {
38
46
  type: "update",
@@ -1 +1 @@
1
- {"version":3,"file":"templates.model.js","sourceRoot":"","sources":["../../../src/db/models/templates.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.model.js","sourceRoot":"","sources":["../../../src/db/models/templates.model.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,6FAGmD;AAEnD,sCAA0E;AAC1E,oDAAiD;AAQjD,MAAM,eAAe,GAAG,CAAC,KAAc,EAA0B,EAAE,CACjE,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,eAAM,CAAC,CAAC;AAGrC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAUvC,MAAa,aAAc,SAAQ,IAAA,8CAAc,EAC/C,wBAAe,EACf,qCAA4B,CAC7B;IAEC,MAAM,CAAC,UAAU,CAAC,MAAsB;QACtC,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAChD,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IAMD,MAAM,CAAC,OAAO,CAAC,QAAyB;QACtC,MAAM,KAAK,GAAY,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAGD,MAAM,CAAC,MAAM,CAAC,QAAyB,EAAE,MAAc;QACrD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACxD,CAAC;IAGD,YAAY,CAAC,MAAsB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAQO,MAAM,CAAC,WAAW,CAAC,GAAoB,EAAE,MAAsB;QACrE,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,YAAY,CAAC,EAAU,EAAE,MAAsB;QAC7C,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAA,4CAAY,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK;aACd,GAAG,CAAC,EAAE,CAAC;aACP,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aAC9C,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,CAAC,gBAAgB,CACpB,QAAyB,EACzB,KAAqB;QAErB,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CACtC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAC/B,KAAK,CACN,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;aAC7B,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,UAAU;YACzB,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1D,YAAY,EAAE,IAAA,wBAAU,GAAE;YAC1B,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;SAC5C,CAAC;aACD,GAAG,EAAE,CAAC;QACT,IAAI,OAAO,KAAK,SAAS;YACvB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,OAAO,OAAO,KAAK,SAAS,CAAC;IAC/B,CAAC;IAGD,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAMD,KAAK,CAAC,cAAc,CAClB,EAAU,EACV,MAA+B;QAE/B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAChD,CAAC;CACF;AA/FD,sCA+FC"}
@@ -4,9 +4,9 @@ declare const WebhookStatusModel_base: {
4
4
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
5
5
  readonly table: import("@antelopejs/interface-database").Table<MailingWebhookStatus>;
6
6
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
7
- get(id: string): PromiseLike<MailingWebhookStatus | undefined>;
8
- getBy(index: keyof MailingWebhookStatus, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<MailingWebhookStatus[]>;
9
- getAll(): PromiseLike<MailingWebhookStatus[]>;
7
+ get(id: string): Promise<MailingWebhookStatus | undefined>;
8
+ getBy(index: keyof MailingWebhookStatus, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<MailingWebhookStatus[]>;
9
+ getAll(): Promise<MailingWebhookStatus[]>;
10
10
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingWebhookStatus> | import("@antelopejs/interface-database-decorators").DeepPartial<MailingWebhookStatus>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
11
11
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingWebhookStatus>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
12
12
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<MailingWebhookStatus> & {
@@ -4,7 +4,10 @@ export declare const MAILING_TEMPLATES_TABLE_NAME = "mailing_templates";
4
4
  declare const MailingTemplate_base: import("@antelopejs/interface-database-decorators").TableClass<Table & {
5
5
  localize<This extends {
6
6
  constructor: any;
7
- }>(this: This, locale: string, fields?: Array<keyof This>): This;
7
+ }, K extends keyof This>(this: This, locale: "*", fields: readonly K[]): import("@antelopejs/interface-database-decorators").LocalizedRecords<This, K>;
8
+ localize<This extends {
9
+ constructor: any;
10
+ }>(this: This, locale: string, fields?: ReadonlyArray<keyof This>): This;
8
11
  }, [], object>;
9
12
  export declare class MailingTemplate extends MailingTemplate_base {
10
13
  _id: string;
@@ -59,7 +59,11 @@ async function loadPage(table, codec, offset, size) {
59
59
  .filter((row) => row !== undefined);
60
60
  }
61
61
  const templateCodec = {
62
- fromDatabase: (row) => db_1.TemplateModel.fromDatabase(row)?.localize("*", ["name"]),
62
+ fromDatabase: (stored) => {
63
+ const row = db_1.TemplateModel.fromDatabase(stored);
64
+ row?.localize("*", ["name"]);
65
+ return row;
66
+ },
63
67
  };
64
68
  function exportedCollections(tenantId) {
65
69
  const templates = (0, interface_database_decorators_1.GetModel)(db_1.TemplateModel, tenantId);
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-export.js","sourceRoot":"","sources":["../../src/hooks/tenant-export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenant-export.js","sourceRoot":"","sources":["../../src/hooks/tenant-export.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ let MailingEditorController = class MailingEditorController extends (0, page_1.P
23
23
  order: EDITOR_PAGE_ORDER,
24
24
  hidden: true,
25
25
  }, (0, layouts_1.DefaultLayout)({ fullWidth: true, hideHeader: true, fillHeight: true })) {
26
- static editor = (0, custom_1.CustomComponent)("MailingEditor").meta({
26
+ static editor = (0, custom_1.CustomComponent)("MailingTemplateEditor").meta({
27
27
  name: "$dms_mailing.permissions.editor.name",
28
28
  description: "$dms_mailing.permissions.editor.description",
29
29
  icon: "i-ph-pencil-simple",
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/pages/editor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAA8E;AAC9E,kEAAwE;AACxE,oEAAuE;AACvE,4CAAyC;AACzC,qCAA8C;AAE9C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAOrB,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,IAAA,qBAAc,EACzD,QAAQ,EACR;IACE,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,iCAAiC;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,qBAAS;IACjB,QAAQ,EAAE,2BAAkB;IAC5B,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,IAAI;CACb,EACD,IAAA,uBAAa,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CACvE;IACC,MAAM,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,eAAe,CAAC,CAAC,IAAI,CAAC;QACpD,IAAI,EAAE,sCAAsC;QAC5C,WAAW,EAAE,6CAA6C;QAC1D,IAAI,EAAE,oBAAoB;KAC3B,CAAC,CAAC;;AAlBQ,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAY,GAAE;GACF,uBAAuB,CAmBnC"}
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/pages/editor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAA8E;AAC9E,kEAAwE;AACxE,oEAAuE;AACvE,4CAAyC;AACzC,qCAA8C;AAE9C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAOrB,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,IAAA,qBAAc,EACzD,QAAQ,EACR;IACE,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,iCAAiC;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,qBAAS;IACjB,QAAQ,EAAE,2BAAkB;IAC5B,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,IAAI;CACb,EACD,IAAA,uBAAa,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CACvE;IACC,MAAM,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC;QAC5D,IAAI,EAAE,sCAAsC;QAC5C,WAAW,EAAE,6CAA6C;QAC1D,IAAI,EAAE,oBAAoB;KAC3B,CAAC,CAAC;;AAlBQ,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAY,GAAE;GACF,uBAAuB,CAmBnC"}
@@ -213,11 +213,10 @@ class MetricsController extends (0, interface_api_1.Controller)(`${constants_1.A
213
213
  (0, settings_1.findSettings)(this.tenantId),
214
214
  ]);
215
215
  const sends = (0, metrics_1.forAudience)(rows, this.audience);
216
- const excluded = rows.filter((row) => !sends.includes(row));
217
216
  const items = (0, attention_1.buildAttentionItems)({
218
217
  templates,
219
218
  sends,
220
- excluded,
219
+ excludedCount: rows.length - sends.length,
221
220
  windowEnd: range.to,
222
221
  tracking,
223
222
  isSenderSet: Boolean(settings?.senderEmail),