@antelopejs/dms-mailing 0.8.0 → 0.9.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 (179) hide show
  1. package/README.md +41 -43
  2. package/dist/automation/email-event-trigger.d.ts +2 -2
  3. package/dist/automation/send-template-action.d.ts +11 -3
  4. package/dist/automation/send-template-action.js +1 -1
  5. package/dist/automation/send-template-action.js.map +1 -1
  6. package/dist/data/body.d.ts +2 -1
  7. package/dist/data/body.js +2 -1
  8. package/dist/data/body.js.map +1 -1
  9. package/dist/data/read-only-routes.d.ts +4 -4
  10. package/dist/data/sends-table.d.ts +4 -4
  11. package/dist/data/suppressions-table.d.ts +4 -4
  12. package/dist/data/templates-table.d.ts +35 -12
  13. package/dist/data/templates-table.js +29 -24
  14. package/dist/data/templates-table.js.map +1 -1
  15. package/dist/data-types/categories-type.d.ts +1 -2
  16. package/dist/data-types/categories-type.js +3 -5
  17. package/dist/data-types/categories-type.js.map +1 -1
  18. package/dist/data-types/category-type.d.ts +1 -2
  19. package/dist/data-types/category-type.js +3 -5
  20. package/dist/data-types/category-type.js.map +1 -1
  21. package/dist/db/models/send-events.model.d.ts +7 -5
  22. package/dist/db/models/sends.model.d.ts +7 -5
  23. package/dist/db/models/sends.model.js.map +1 -1
  24. package/dist/db/models/settings.model.d.ts +7 -5
  25. package/dist/db/models/suppressions.model.d.ts +7 -5
  26. package/dist/db/models/template-versions.model.d.ts +7 -5
  27. package/dist/db/models/template-versions.model.js +4 -3
  28. package/dist/db/models/template-versions.model.js.map +1 -1
  29. package/dist/db/models/templates.model.d.ts +7 -5
  30. package/dist/db/models/webhook-status.model.d.ts +7 -5
  31. package/dist/db/tables/templates.table.js.map +1 -1
  32. package/dist/engine/changes.js +8 -19
  33. package/dist/engine/changes.js.map +1 -1
  34. package/dist/engine/conditions.d.ts +2 -1
  35. package/dist/engine/conditions.js +3 -2
  36. package/dist/engine/conditions.js.map +1 -1
  37. package/dist/engine/coverage.d.ts +2 -1
  38. package/dist/engine/coverage.js.map +1 -1
  39. package/dist/engine/formats.d.ts +4 -6
  40. package/dist/engine/formats.js +17 -3
  41. package/dist/engine/formats.js.map +1 -1
  42. package/dist/engine/paths.d.ts +4 -2
  43. package/dist/engine/paths.js +15 -3
  44. package/dist/engine/paths.js.map +1 -1
  45. package/dist/engine/plain-text.js +2 -4
  46. package/dist/engine/plain-text.js.map +1 -1
  47. package/dist/engine/resolve.d.ts +2 -1
  48. package/dist/engine/resolve.js +1 -1
  49. package/dist/engine/resolve.js.map +1 -1
  50. package/dist/engine/system-variables.d.ts +2 -1
  51. package/dist/engine/system-variables.js.map +1 -1
  52. package/dist/engine/tokens.d.ts +2 -1
  53. package/dist/engine/tokens.js.map +1 -1
  54. package/dist/hooks/tenant-export.js +10 -9
  55. package/dist/hooks/tenant-export.js.map +1 -1
  56. package/dist/pages/templates.js +3 -1
  57. package/dist/pages/templates.js.map +1 -1
  58. package/dist/routes/events.js +4 -2
  59. package/dist/routes/events.js.map +1 -1
  60. package/dist/routes/index.d.ts +1 -0
  61. package/dist/routes/index.js +1 -0
  62. package/dist/routes/index.js.map +1 -1
  63. package/dist/routes/metrics.js +27 -28
  64. package/dist/routes/metrics.js.map +1 -1
  65. package/dist/routes/period.js +5 -5
  66. package/dist/routes/period.js.map +1 -1
  67. package/dist/routes/sends.js +3 -4
  68. package/dist/routes/sends.js.map +1 -1
  69. package/dist/routes/settings.d.ts +1 -1
  70. package/dist/routes/settings.js +12 -10
  71. package/dist/routes/settings.js.map +1 -1
  72. package/dist/routes/suppressions.js +9 -6
  73. package/dist/routes/suppressions.js.map +1 -1
  74. package/dist/routes/template-content.d.ts +27 -0
  75. package/dist/routes/template-content.js +3 -0
  76. package/dist/routes/template-content.js.map +1 -0
  77. package/dist/routes/templates.d.ts +7 -30
  78. package/dist/routes/templates.js +3 -2
  79. package/dist/routes/templates.js.map +1 -1
  80. package/dist/routes/zod-json.d.ts +3 -0
  81. package/dist/routes/zod-json.js +21 -0
  82. package/dist/routes/zod-json.js.map +1 -0
  83. package/dist/services/attention.js +14 -7
  84. package/dist/services/attention.js.map +1 -1
  85. package/dist/services/catalog.js +4 -2
  86. package/dist/services/catalog.js.map +1 -1
  87. package/dist/services/declaration-error.d.ts +1 -1
  88. package/dist/services/declaration-error.js.map +1 -1
  89. package/dist/services/declarations.js +4 -1
  90. package/dist/services/declarations.js.map +1 -1
  91. package/dist/services/events.js +3 -1
  92. package/dist/services/events.js.map +1 -1
  93. package/dist/services/metrics.js +2 -5
  94. package/dist/services/metrics.js.map +1 -1
  95. package/dist/services/send.js +3 -4
  96. package/dist/services/send.js.map +1 -1
  97. package/dist/services/settings.d.ts +4 -2
  98. package/dist/services/settings.js +5 -4
  99. package/dist/services/settings.js.map +1 -1
  100. package/dist/services/starters.d.ts +3 -2
  101. package/dist/services/starters.js +1 -1
  102. package/dist/services/starters.js.map +1 -1
  103. package/dist/services/templates.d.ts +2 -1
  104. package/dist/services/templates.js +5 -5
  105. package/dist/services/templates.js.map +1 -1
  106. package/dist/services/webhook-status.d.ts +2 -2
  107. package/dist/services/webhook-status.js +6 -4
  108. package/dist/services/webhook-status.js.map +1 -1
  109. package/dist/types/json.d.ts +1 -0
  110. package/dist/types/json.js +3 -0
  111. package/dist/types/json.js.map +1 -0
  112. package/dist/types/settings.d.ts +2 -2
  113. package/dist/validation/declarations.schema.d.ts +28 -28
  114. package/dist/validation/declarations.schema.js +4 -3
  115. package/dist/validation/declarations.schema.js.map +1 -1
  116. package/dist/validation/guards.d.ts +0 -1
  117. package/dist/validation/guards.js +0 -4
  118. package/dist/validation/guards.js.map +1 -1
  119. package/dist/validation/json.d.ts +5 -0
  120. package/dist/validation/json.js +54 -0
  121. package/dist/validation/json.js.map +1 -0
  122. package/dist/validation/json.schema.d.ts +2 -0
  123. package/dist/validation/json.schema.js +9 -0
  124. package/dist/validation/json.schema.js.map +1 -0
  125. package/dist/validation/templates.schema.d.ts +25 -24
  126. package/dist/validation/templates.schema.js +4 -3
  127. package/dist/validation/templates.schema.js.map +1 -1
  128. package/frontend-vue/package.json +1 -1
  129. package/frontend-vue/pnpm-lock.yaml +44 -4
  130. package/package.json +16 -15
  131. package/skills/dms-mailing/SKILL.md +3 -3
  132. package/src/automation/email-event-trigger.ts +2 -2
  133. package/src/automation/send-template-action.ts +33 -14
  134. package/src/data/body.ts +5 -2
  135. package/src/data/templates-table.ts +46 -52
  136. package/src/data-types/categories-type.ts +2 -2
  137. package/src/data-types/category-type.ts +2 -2
  138. package/src/db/models/sends.model.ts +2 -2
  139. package/src/db/models/template-versions.model.ts +5 -3
  140. package/src/db/tables/templates.table.ts +1 -1
  141. package/src/engine/changes.ts +11 -29
  142. package/src/engine/conditions.ts +12 -4
  143. package/src/engine/coverage.ts +2 -1
  144. package/src/engine/formats.ts +31 -17
  145. package/src/engine/paths.ts +39 -6
  146. package/src/engine/plain-text.ts +2 -4
  147. package/src/engine/resolve.ts +12 -4
  148. package/src/engine/system-variables.ts +2 -1
  149. package/src/engine/tokens.ts +2 -1
  150. package/src/hooks/tenant-export.ts +11 -13
  151. package/src/pages/templates.ts +3 -1
  152. package/src/routes/events.ts +7 -4
  153. package/src/routes/index.ts +1 -0
  154. package/src/routes/metrics.ts +30 -30
  155. package/src/routes/period.ts +5 -5
  156. package/src/routes/sends.ts +13 -8
  157. package/src/routes/settings.ts +15 -10
  158. package/src/routes/suppressions.ts +12 -8
  159. package/src/routes/template-content.ts +45 -0
  160. package/src/routes/templates.ts +11 -44
  161. package/src/routes/zod-json.ts +28 -0
  162. package/src/services/attention.ts +16 -15
  163. package/src/services/catalog.ts +4 -8
  164. package/src/services/declaration-error.ts +1 -1
  165. package/src/services/declarations.ts +4 -1
  166. package/src/services/events.ts +4 -2
  167. package/src/services/metrics.ts +3 -5
  168. package/src/services/send.ts +3 -6
  169. package/src/services/settings.ts +17 -16
  170. package/src/services/starters.ts +8 -4
  171. package/src/services/templates.ts +16 -9
  172. package/src/services/webhook-status.ts +13 -8
  173. package/src/types/json.ts +1 -0
  174. package/src/types/settings.ts +2 -2
  175. package/src/validation/declarations.schema.ts +4 -3
  176. package/src/validation/guards.ts +0 -8
  177. package/src/validation/json.schema.ts +7 -0
  178. package/src/validation/json.ts +66 -0
  179. package/src/validation/templates.schema.ts +7 -3
package/README.md CHANGED
@@ -1,17 +1,17 @@
1
1
  <div align="center">
2
2
 
3
- # @antelopejs/dms-mailing
3
+ # `@antelopejs/dms-mailing`
4
4
 
5
- <a href="https://www.npmjs.com/package/@antelopejs/dms-mailing"><img alt="npm" src="https://img.shields.io/npm/v/@antelopejs/dms-mailing?style=for-the-badge&labelColor=000000&color=000000"></a>
6
- <a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/@antelopejs/dms-mailing?style=for-the-badge&labelColor=000000&color=000000"></a>
7
- <a href="https://discord.gg/g4pFt6eXqu"><img alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000"></a>
8
- <a href="https://dms.antelopejs.com/docs/modules/mailing"><img alt="Documentation" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000"></a>
5
+ <a href="https://www.npmjs.com/package/@antelopejs/dms-mailing"><img alt="npm" src="https://img.shields.io/npm/v/@antelopejs/dms-mailing?style=for-the-badge&labelColor=000000&color=000000" data-illustration></a>
6
+ <a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/@antelopejs/dms-mailing?style=for-the-badge&labelColor=000000&color=000000" data-illustration></a>
7
+ <a href="https://discord.gg/g4pFt6eXqu"><img alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000" data-illustration></a>
8
+ <a href="https://dms.antelopejs.com/docs/modules/mailing"><img alt="Documentation" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000" data-illustration></a>
9
9
 
10
10
  E-mail templates, sends and delivery metrics for the AntelopeJS DMS.
11
11
 
12
12
  </div>
13
13
 
14
- ![The Mailing overview: reach, engagement and list health for the last 30 days](https://raw.githubusercontent.com/AntelopeJS/dms-mailing/main/packages/dms-mailing/docs/images/overview.png)
14
+ ![The Mailing overview of the Helio demo: reach, engagement and list health for the last 30 days, the send volume chart and the items that need attention](./docs/images/captures/mailing-overview.webp)
15
15
 
16
16
  ## What it does
17
17
 
@@ -19,11 +19,11 @@ E-mail templates, sends and delivery metrics for the AntelopeJS DMS.
19
19
  - Keeps edits in draft and publishes them as versions, in several locales.
20
20
  - Sends a template by its slug from your code, an automation or the dashboard, through any `@antelopejs/interface-email` provider.
21
21
  - Logs every send with the provider's timeline, and turns delivery, open and click events into an overview.
22
- - Protects your sender reputation with a suppression list fed by bounces, complaints and unsubscriptions.
22
+ - Protects your sender reputation with a suppression list fed by hard bounces, spam complaints and unsubscriptions.
23
23
 
24
24
  ## Install
25
25
 
26
- Run the AntelopeJS CLI from the root of a project that already loads `@antelopejs/dms`, and add an e-mail provider if the project has none:
26
+ Run the AntelopeJS CLI from the root of a project that already loads `@antelopejs/dms`. Add an e-mail provider if the project has none:
27
27
 
28
28
  ```bash
29
29
  ajs project modules add @antelopejs/dms-mailing
@@ -34,23 +34,31 @@ ajs project modules add @antelopejs/nodemailer
34
34
 
35
35
  In development, send to a throwaway Ethereal inbox:
36
36
 
37
- ```ts
37
+ ```ts fragment
38
38
  // antelope.config.ts
39
39
  nodemailer: {
40
- source: { type: "package", package: "@antelopejs/nodemailer", version: ">=0.0.5 <1.0.0" },
40
+ source: { type: "package", package: "@antelopejs/nodemailer", version: ">=0.0.6 <1.0.0" },
41
41
  config: { ethereal: true },
42
42
  },
43
43
  ```
44
44
 
45
- Restart the backend, then the frontend, and open **Modules › Mailing** (`/modules/mailing/overview`). Create a template from a starter such as **Order confirmation**, publish it, then send it from any module through [`@antelopejs/interface-dms-mailing`](https://github.com/AntelopeJS/dms-mailing/tree/main/packages/interface-dms-mailing):
45
+ Restart the backend, then the frontend, and open **Modules › Mailing** (`/modules/mailing/overview`). On a workspace with no templates, create the **Order confirmation** template from the starter gallery and publish it. Its slug is `order-confirmed`. The **New template** dialog derives the slug from the name instead, so it gives `order-confirmation`. Check the slug before you send. Any module can then send it through [`@antelopejs/interface-dms-mailing`](https://github.com/AntelopeJS/dms-mailing/tree/main/packages/interface-dms-mailing):
46
46
 
47
- ```ts
47
+ ```ts fragment
48
48
  import { SendTemplate } from "@antelopejs/interface-dms-mailing";
49
49
 
50
- await SendTemplate("order-confirmation", {
50
+ await SendTemplate("order-confirmed", {
51
51
  tenantId,
52
52
  to: "sofie@example.com",
53
- variables: { order: { total: "48.00" } },
53
+ variables: {
54
+ customer: { firstName: "Sofie" },
55
+ order: {
56
+ number: "#10482",
57
+ total: { value: 4800, currency: "EUR" },
58
+ lines: [{ name: "Linen shirt", total: { value: 4800, currency: "EUR" } }],
59
+ url: "https://example.com/orders/10482",
60
+ },
61
+ },
54
62
  });
55
63
  ```
56
64
 
@@ -58,41 +66,31 @@ await SendTemplate("order-confirmation", {
58
66
 
59
67
  <!-- antelopejs-docs-compat:start -->
60
68
 
61
- | Package | Supported | Tested with |
62
- | ------------------------------------------- | ----------------- | ----------- |
63
- | `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | — |
64
- | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | — |
65
- | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | — |
66
- | `@antelopejs/interface-data-api` | `>=0.4.0 <1.0.0` | — |
67
- | `@antelopejs/interface-database` | `>=0.1.11 <1.0.0` | — |
68
- | `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | — |
69
- | `@antelopejs/interface-dms` | `>=0.9.0 <1.0.0` | — |
70
- | `@antelopejs/interface-dms-automation` | `>=0.2.1 <1.0.0` | — |
71
- | `@antelopejs/interface-dms-mailing` | `>=0.9.0 <0.10.0` | — |
72
- | `@antelopejs/interface-email` | `>=0.0.6 <1.0.0` | — |
69
+ | Package | Supported | Tested with |
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` |
73
81
 
74
82
  <!-- antelopejs-docs-compat:end -->
75
83
 
76
- | Package | Version |
77
- | --- | --- |
78
- | `@antelopejs/dms` | `>=0.11.0 <1.0.0` |
79
- | `@antelopejs/interface-dms` | `>=0.9.0 <1.0.0` |
80
- | `@antelopejs/dms-frontend` (renderer, playground range) | `>=0.9.1 <0.10.0` |
81
- | `@antelopejs/interface-dms-mailing` | `>=0.9.0 <0.10.0` |
82
- | Database module | one that enforces unique indexes: `@antelopejs/mongodb` `>=1.5.1`, `@antelopejs/postgres` `>=0.2.2` |
83
- | E-mail provider | an `@antelopejs/interface-email` implementation, such as `@antelopejs/nodemailer` |
84
+ The module also needs:
84
85
 
85
- On DMS 0.8, use `@antelopejs/dms-mailing` 0.4.
86
+ - A DMS backend in a release that implements the `@antelopejs/interface-dms` range in the table above.
87
+ - The `@antelopejs/dms-frontend` renderer in the range of `engines["@antelopejs/dms-frontend"]` in `frontend-vue/package.json`. The `ajs dms` CLI refuses to build the module with a renderer outside that range.
88
+ - A database module that enforces unique indexes, such as `@antelopejs/mongodb` or `@antelopejs/postgres`.
89
+ - An e-mail provider, which is an `@antelopejs/interface-email` implementation such as `@antelopejs/nodemailer`.
86
90
 
87
91
  ## Slugs
88
92
 
89
- Sends find a template by its slug, so a slug belongs to one template per
90
- workspace: the `slug` index of `mailing_templates` is unique. Creating or
91
- duplicating a template with a slug another template holds, even in a race,
92
- gets `409 duplicate_slug` instead of a second template. Deleting a template
93
- frees its slug. This needs a database module that enforces unique indexes
94
- (`@antelopejs/mongodb` 1.5, `@antelopejs/postgres` 0.3); RethinkDB refuses
95
- the schema.
93
+ Sends find a template by its slug, so a slug belongs to one template per workspace. The `slug` index of the `mailing_templates` table is unique. Creating or duplicating a template on a slug another template holds, even in a race, answers `409` with `$dms_mailing.errors.duplicate_slug` and creates nothing. Deleting a template frees its slug. The unique index needs a database module that enforces unique indexes, such as `@antelopejs/mongodb` or `@antelopejs/postgres`. RethinkDB refuses the schema.
96
94
 
97
95
  ## Documentation
98
96
 
@@ -100,7 +98,7 @@ the schema.
100
98
  - [Installation](https://dms.antelopejs.com/docs/modules/mailing/installation)
101
99
  - [Configuration](https://dms.antelopejs.com/docs/modules/mailing/configuration)
102
100
  - [Usage](https://dms.antelopejs.com/docs/modules/mailing/usage/overview)
103
- - [Extending](https://dms.antelopejs.com/docs/modules/mailing/extending): sending from code, provider events and webhooks, automations
101
+ - [Extending](https://dms.antelopejs.com/docs/modules/mailing/extending): sending from code, templates as code, importing past sends, provider events and webhooks, automations
104
102
  - [FAQ](https://dms.antelopejs.com/docs/modules/mailing/faq)
105
103
 
106
104
  The guide's sources live in [`packages/dms-mailing/docs`](https://github.com/AntelopeJS/dms-mailing/tree/main/packages/dms-mailing/docs). The module ships the `dms-mailing` Claude Code skill in [`packages/dms-mailing/skills`](https://github.com/AntelopeJS/dms-mailing/tree/main/packages/dms-mailing/skills), declared under `antelopeJs.skills`.
@@ -1,12 +1,12 @@
1
1
  import type { TriggerType } from "@antelopejs/interface-dms-automation";
2
2
  import { type SendEventType } from "../types";
3
- export interface EmailEventPayload {
3
+ export type EmailEventPayload = {
4
4
  tenantId: string;
5
5
  sendId: string;
6
6
  templateSlug: string;
7
7
  type: SendEventType;
8
8
  recipientEmail: string;
9
- }
9
+ };
10
10
  export interface EmailEventTriggerConfig {
11
11
  types?: SendEventType[];
12
12
  }
@@ -1,13 +1,21 @@
1
1
  import type { ActionType } from "@antelopejs/interface-dms-automation";
2
2
  import type { EmailAddress } from "@antelopejs/interface-email";
3
- import type { SendTemplateResult } from "@antelopejs/interface-dms-mailing";
3
+ import type { SendTemplateResult, TemplateVariables } from "@antelopejs/interface-dms-mailing";
4
4
  export interface SendTemplateActionInput {
5
5
  tenantId: string;
6
6
  slug: string;
7
7
  to: EmailAddress | EmailAddress[];
8
8
  locale?: string;
9
- variables?: Record<string, unknown>;
9
+ variables?: TemplateVariables;
10
10
  source?: string;
11
11
  }
12
12
  export declare const SEND_TEMPLATE_ACTION_ID = "mailing.send-template";
13
- export declare const sendTemplateAction: ActionType<SendTemplateActionInput, SendTemplateResult>;
13
+ type SendTemplateOutput = {
14
+ sendId: string;
15
+ status: SendTemplateResult["status"];
16
+ messageId?: string;
17
+ error?: string;
18
+ results?: SendTemplateOutput[];
19
+ };
20
+ export declare const sendTemplateAction: ActionType<SendTemplateActionInput, SendTemplateOutput>;
21
+ export {};
@@ -63,7 +63,7 @@ exports.sendTemplateAction = {
63
63
  return result;
64
64
  }
65
65
  catch (error) {
66
- ctx.log("error", `Template "${input.slug}" could not be sent`, error);
66
+ ctx.log("error", `Template "${input.slug}" could not be sent`, error instanceof Error ? error.message : String(error));
67
67
  throw error;
68
68
  }
69
69
  },
@@ -1 +1 @@
1
- {"version":3,"file":"send-template-action.js","sourceRoot":"","sources":["../../src/automation/send-template-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-template-action.js","sourceRoot":"","sources":["../../src/automation/send-template-action.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
- export declare function parseBody(body: Buffer | string): Record<string, unknown>;
1
+ import type { JsonValue } from "../types/json";
2
+ export declare function parseBody(body: Buffer | string): JsonValue;
package/dist/data/body.js CHANGED
@@ -4,13 +4,14 @@ exports.parseBody = parseBody;
4
4
  const interface_api_1 = require("@antelopejs/interface-api");
5
5
  const constants_1 = require("../constants");
6
6
  const guards_1 = require("../validation/guards");
7
+ const json_1 = require("../validation/json");
7
8
  const INVALID_BODY = "$dms_mailing.errors.invalid_body";
8
9
  function parseBody(body) {
9
10
  const raw = (0, guards_1.isText)(body) ? body : body.toString("utf8");
10
11
  if (!raw)
11
12
  return {};
12
13
  try {
13
- return JSON.parse(raw);
14
+ return (0, json_1.parseJson)(raw);
14
15
  }
15
16
  catch {
16
17
  throw new interface_api_1.HTTPResult(constants_1.HTTP_BAD_REQUEST, INVALID_BODY);
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../src/data/body.ts"],"names":[],"mappings":";;AAMA,8BAQC;AAdD,6DAAuD;AACvD,4CAAgD;AAChD,iDAA8C;AAE9C,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,SAAgB,SAAS,CAAC,IAAqB;IAC7C,MAAM,GAAG,GAAG,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,0BAAU,CAAC,4BAAgB,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../src/data/body.ts"],"names":[],"mappings":";;AASA,8BAQC;AAjBD,6DAAuD;AACvD,4CAAgD;AAEhD,iDAA8C;AAC9C,6CAA+C;AAE/C,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAGxD,SAAgB,SAAS,CAAC,IAAqB;IAC7C,MAAM,GAAG,GAAG,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,IAAA,gBAAS,EAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,0BAAU,CAAC,4BAAgB,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export declare const READ_ONLY_ROUTES: {
2
- get: import("@antelopejs/interface-data-api").DataControllerCallback;
3
- list: import("@antelopejs/interface-data-api").DataControllerCallback;
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]>;
3
+ 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
4
  count: import("@antelopejs/interface-data-api").DataControllerCallback;
5
- countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
6
- select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
5
+ countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
6
+ select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<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
7
  };
@@ -2,11 +2,11 @@ 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;
6
- list: import("@antelopejs/interface-data-api").DataControllerCallback;
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]>;
6
+ 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
7
  count: import("@antelopejs/interface-data-api").DataControllerCallback;
8
- countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
9
- select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
8
+ countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
9
+ select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<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]>;
10
10
  }> & {
11
11
  table: MailingSend;
12
12
  }> & import("@antelopejs/interface-core/decorators").Class<object> & {
@@ -1,11 +1,11 @@
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;
5
- list: import("@antelopejs/interface-data-api").DataControllerCallback;
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]>;
5
+ 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
6
  count: import("@antelopejs/interface-data-api").DataControllerCallback;
7
- countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
8
- select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
7
+ countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
8
+ select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<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]>;
9
9
  }> & {
10
10
  table: MailingSuppression;
11
11
  }> & import("@antelopejs/interface-core/decorators").Class<object> & {
@@ -1,6 +1,10 @@
1
1
  import { type RequestContext } from "@antelopejs/interface-api";
2
2
  import { type DataControllerCallback } from "@antelopejs/interface-data-api";
3
+ import type { Parameters, Validation } from "@antelopejs/interface-data-api/components";
3
4
  import { MailingTemplate, SendModel, TemplateModel } from "../db";
5
+ import { type TemplateDetails } from "../validation/templates.schema";
6
+ export type { TemplateDetails };
7
+ export declare const INVALID_TEMPLATE = "$dms_mailing.errors.invalid_template";
4
8
  interface TemplateEdit {
5
9
  slug?: unknown;
6
10
  category?: unknown;
@@ -10,20 +14,40 @@ type AfterWrite = () => Promise<void>;
10
14
  export declare function assertDeletable(tenantId: string, model: TemplateModel, ids: string[]): Promise<void>;
11
15
  export declare function afterDelete(tenantId: string, ids: string[]): AfterWrite;
12
16
  export declare function assertEditable(tenantId: string, body: TemplateEdit, current: Pick<MailingTemplate, "slug">): Promise<void>;
13
- export declare function saveDetails(ctx: RequestContext, template: MailingTemplate, body: unknown, author: string): Promise<void>;
14
- export declare function afterEdit(model: TemplateModel, id: string, name: unknown, locale: string): AfterWrite | undefined;
17
+ export declare function saveDetails(ctx: RequestContext, template: MailingTemplate, details: TemplateDetails, author: string): Promise<void>;
18
+ export declare function afterEdit(model: TemplateModel, id: string, locale: string): AfterWrite;
15
19
  declare const TemplatesTableAPI_base: import("@antelopejs/interface-core/decorators").Class<import("@antelopejs/interface-data-api").ExtractDefCallbacks<{
16
20
  new: DataControllerCallback;
17
- get: DataControllerCallback;
18
- list: DataControllerCallback;
19
- select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
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]>;
22
+ list: DataControllerCallback<Parameters.ListParameters, import("@antelopejs/interface-dms/base").TableViewListPage, [RequestContext, Parameters.ListParameters, import("@antelopejs/interface-dms/auth/db").User]>;
23
+ 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]>;
20
24
  count: DataControllerCallback;
21
- countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
22
- summary: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
23
- edit: DataControllerCallback;
24
- delete: DataControllerCallback;
25
- archive: DataControllerCallback;
26
- restore: DataControllerCallback;
25
+ countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any, unknown, [ctx: any, opts: any, ...args: any[]]>;
26
+ 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]>;
28
+ delete: DataControllerCallback<Parameters.DeleteParameters, number | {
29
+ deleted: number;
30
+ }, [RequestContext, Parameters.DeleteParameters, Buffer<ArrayBufferLike>, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
31
+ archive: DataControllerCallback<unknown, {
32
+ success: boolean;
33
+ archivedCount: number;
34
+ } | {
35
+ success: boolean;
36
+ restoredCount: number;
37
+ } | {
38
+ success: boolean;
39
+ archivedCount: number;
40
+ }, [RequestContext, string[], Buffer<ArrayBufferLike>, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
41
+ restore: DataControllerCallback<unknown, {
42
+ success: boolean;
43
+ archivedCount: number;
44
+ } | {
45
+ success: boolean;
46
+ restoredCount: number;
47
+ } | {
48
+ success: boolean;
49
+ restoredCount: number;
50
+ }, [RequestContext, string[], Buffer<ArrayBufferLike>, import("@antelopejs/interface-dms/auth/db").User, RequestContext, string | undefined, import("@antelopejs/interface-dms/auth/db").User]>;
27
51
  }> & {
28
52
  table: MailingTemplate;
29
53
  }> & import("@antelopejs/interface-core/decorators").Class<object> & {
@@ -49,4 +73,3 @@ export declare class TemplatesTableAPI extends TemplatesTableAPI_base {
49
73
  needsAttention: boolean;
50
74
  get hasSends(): Promise<boolean> | boolean;
51
75
  }
52
- export {};
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.TemplatesTableAPI = void 0;
12
+ exports.TemplatesTableAPI = exports.INVALID_TEMPLATE = void 0;
13
13
  exports.assertDeletable = assertDeletable;
14
14
  exports.afterDelete = afterDelete;
15
15
  exports.assertEditable = assertEditable;
@@ -17,6 +17,7 @@ exports.saveDetails = saveDetails;
17
17
  exports.afterEdit = afterEdit;
18
18
  const interface_api_1 = require("@antelopejs/interface-api");
19
19
  const interface_api_util_1 = require("@antelopejs/interface-api-util");
20
+ const zod_1 = require("zod");
20
21
  const interface_data_api_1 = require("@antelopejs/interface-data-api");
21
22
  const metadata_1 = require("@antelopejs/interface-data-api/metadata");
22
23
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
@@ -39,12 +40,13 @@ const template_attention_1 = require("../services/template-attention");
39
40
  const templates_1 = require("../services/templates");
40
41
  const templates_schema_1 = require("../validation/templates.schema");
41
42
  const guards_2 = require("../validation/guards");
43
+ const json_1 = require("../validation/json");
42
44
  const body_1 = require("./body");
43
45
  const displays_1 = require("./displays");
44
46
  const SLUG_IMMUTABLE = "$dms_mailing.errors.slug_immutable";
45
47
  const SOURCE_NOT_FOUND = "$dms_mailing.errors.template_not_found";
46
48
  const STARTER_NOT_FOUND = "$dms_mailing.errors.starter_not_found";
47
- const INVALID_TEMPLATE = "$dms_mailing.errors.invalid_template";
49
+ exports.INVALID_TEMPLATE = "$dms_mailing.errors.invalid_template";
48
50
  const UNKNOWN_CATEGORY = "$dms_mailing.errors.unknown_category";
49
51
  const TEMPLATE_IN_USE = "$dms_mailing.errors.template_in_use";
50
52
  const TEMPLATE_WAS_SENT = "$dms_mailing.errors.template_was_sent";
@@ -78,18 +80,20 @@ async function seedFields(tenantId, seed, fallbackLocale) {
78
80
  throw new interface_api_1.HTTPResult(constants_1.HTTP_NOT_FOUND, STARTER_NOT_FOUND);
79
81
  return (0, starters_1.starterFields)(starter, fallbackLocale);
80
82
  }
81
- const isBlank = (value) => value === undefined || value === null || value === "";
82
83
  function assertKnownCategory(categories, category) {
83
- if (isBlank(category))
84
+ if (!category || (0, settings_1.findCategory)(categories, category))
84
85
  return;
85
- if ((0, guards_2.isText)(category) && (0, settings_1.findCategory)(categories, category)) {
86
- return;
87
- }
88
86
  throw new interface_api_1.HTTPResult(constants_1.HTTP_UNPROCESSABLE, UNKNOWN_CATEGORY);
89
87
  }
88
+ const createdRowSchema = zod_1.z.object({ _id: zod_1.z.string() });
89
+ function parseCreationBody(body) {
90
+ const parsed = (0, body_1.parseBody)(body);
91
+ (0, interface_api_util_1.assert)((0, json_1.isJsonObject)(parsed), constants_1.HTTP_BAD_REQUEST, exports.INVALID_TEMPLATE);
92
+ return parsed;
93
+ }
90
94
  function parseCreation(body, locale) {
91
- const raw = Buffer.isBuffer(body) ? (0, body_1.parseBody)(body) : body;
92
- const seed = (0, interface_api_util_1.assertValidation)(raw, (value) => templates_schema_1.createTemplateSchema.parse(value), () => INVALID_TEMPLATE, constants_1.HTTP_BAD_REQUEST);
95
+ const raw = Buffer.isBuffer(body) ? parseCreationBody(body) : body;
96
+ const seed = (0, interface_api_util_1.assertValidation)(raw, (value) => templates_schema_1.createTemplateSchema.parse(value), () => exports.INVALID_TEMPLATE, constants_1.HTTP_BAD_REQUEST);
93
97
  const normalized = {
94
98
  ...raw,
95
99
  slug: seed.slug,
@@ -108,8 +112,8 @@ function withSeeding(base) {
108
112
  assertKnownCategory(settings.categories, seed.category);
109
113
  const fields = await seedFields(tenantId, seed, settings.fallbackLocale);
110
114
  this.language = ALL_LANGUAGES;
111
- const created = (await (0, templates_1.refuseTakenSlug)(base.func.call(this, ctx, params, normalized, ...rest)));
112
- const templateId = created._id;
115
+ const created = await (0, templates_1.refuseTakenSlug)(Promise.resolve(base.func.call(this, ctx, params, normalized, ...rest)));
116
+ const templateId = createdRowSchema.parse(created)._id;
113
117
  const user = await (0, guards_1.authenticateTenantRequest)(ctx);
114
118
  await (0, templates_1.initializeTemplate)(tenantId, templateId, (0, templates_1.displayName)(user), fields);
115
119
  return created;
@@ -126,7 +130,7 @@ async function deleteRefusal(tenantId, template) {
126
130
  const isSent = await wasSent((0, interface_database_decorators_1.GetModel)(db_1.SendModel, tenantId), template.slug);
127
131
  return isSent ? TEMPLATE_WAS_SENT : null;
128
132
  }
129
- const BLANK_NAME = { message: INVALID_TEMPLATE, field: "name" };
133
+ const BLANK_NAME = { message: exports.INVALID_TEMPLATE, field: "name" };
130
134
  async function assertDeletable(tenantId, model, ids) {
131
135
  for (const id of ids) {
132
136
  const template = await model.get(id);
@@ -145,13 +149,20 @@ function afterDelete(tenantId, ids) {
145
149
  async function assertEditable(tenantId, body, current) {
146
150
  if (body.slug !== undefined && body.slug !== current.slug)
147
151
  throw new interface_api_1.HTTPResult(constants_1.HTTP_CONFLICT, SLUG_IMMUTABLE);
148
- if (body.name !== undefined && isBlankName(body.name))
149
- throw new interface_api_1.HTTPResult(constants_1.HTTP_BAD_REQUEST, BLANK_NAME);
152
+ if (body.name !== undefined) {
153
+ const texts = (0, guards_2.isObject)(body.name) ? Object.values(body.name) : [body.name];
154
+ if (!texts.some((text) => (0, guards_2.isText)(text) && text.trim()))
155
+ throw new interface_api_1.HTTPResult(constants_1.HTTP_BAD_REQUEST, BLANK_NAME);
156
+ }
150
157
  const { categories } = await (0, settings_1.getSettings)(tenantId);
151
- assertKnownCategory(categories, body.category);
158
+ const { category } = body;
159
+ if (category === undefined || category === null || category === "")
160
+ return;
161
+ if (!(0, guards_2.isText)(category))
162
+ throw new interface_api_1.HTTPResult(constants_1.HTTP_UNPROCESSABLE, UNKNOWN_CATEGORY);
163
+ assertKnownCategory(categories, category);
152
164
  }
153
- async function saveDetails(ctx, template, body, author) {
154
- const details = (0, interface_api_util_1.assertValidation)(body, (value) => templates_schema_1.templateDetailsSchema.parse(value), () => INVALID_TEMPLATE);
165
+ async function saveDetails(ctx, template, details, author) {
155
166
  const tenantId = (0, request_tenant_1.getRequestTenantId)(ctx);
156
167
  await assertEditable(tenantId, details, template);
157
168
  const names = db_1.TemplateModel.namesOf(template);
@@ -163,10 +174,6 @@ async function saveDetails(ctx, template, body, author) {
163
174
  updatedBy: author,
164
175
  });
165
176
  }
166
- function isBlankName(name) {
167
- const texts = (0, guards_2.isObject)(name) ? Object.values(name) : [name];
168
- return !texts.some((text) => (0, guards_2.isText)(text) && text.trim());
169
- }
170
177
  function tidyNames(names, locale) {
171
178
  const tidy = Object.fromEntries(Object.entries(names)
172
179
  .map(([code, text]) => [code, text.trim()])
@@ -176,9 +183,7 @@ function tidyNames(names, locale) {
176
183
  const [first = ""] = Object.values(tidy);
177
184
  return { ...tidy, [interface_dms_mailing_1.LOCALIZED_TEXT_FALLBACK_LOCALE]: tidy[locale] ?? first };
178
185
  }
179
- function afterEdit(model, id, name, locale) {
180
- if (name === undefined)
181
- return undefined;
186
+ function afterEdit(model, id, locale) {
182
187
  return async () => {
183
188
  const template = await model.get(id);
184
189
  if (!template)
@@ -1 +1 @@
1
- {"version":3,"file":"templates-table.js","sourceRoot":"","sources":["../../src/data/templates-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates-table.js","sourceRoot":"","sources":["../../src/data/templates-table.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { DataType } from "@antelopejs/interface-dms/base/data-types";
2
2
  export declare class TemplateCategoriesType extends DataType {
3
- readonly options: Record<string, unknown>;
4
- constructor(options?: Record<string, unknown>);
3
+ constructor();
5
4
  protected defaultInputComponent(): import("@antelopejs/interface-dms").ComponentInfoSerialized<unknown>;
6
5
  getValidation(): import("zod").ZodEffects<import("zod").ZodArray<import("zod").ZodObject<{
7
6
  id: import("zod").ZodString;
@@ -15,10 +15,8 @@ const data_types_1 = require("@antelopejs/interface-dms/base/data-types");
15
15
  const constants_1 = require("../constants");
16
16
  const settings_schema_1 = require("../validation/settings.schema");
17
17
  let TemplateCategoriesType = class TemplateCategoriesType extends data_types_1.DataType {
18
- options;
19
- constructor(options = {}) {
20
- super([], undefined, options);
21
- this.options = options;
18
+ constructor() {
19
+ super([], undefined, {});
22
20
  }
23
21
  defaultInputComponent() {
24
22
  return (0, custom_1.CustomComponent)("MailingCategoriesInput")
@@ -32,6 +30,6 @@ let TemplateCategoriesType = class TemplateCategoriesType extends data_types_1.D
32
30
  exports.TemplateCategoriesType = TemplateCategoriesType;
33
31
  exports.TemplateCategoriesType = TemplateCategoriesType = __decorate([
34
32
  (0, data_types_1.RegisterDataType)(constants_1.TEMPLATE_CATEGORIES_TYPE_ID),
35
- __metadata("design:paramtypes", [Object])
33
+ __metadata("design:paramtypes", [])
36
34
  ], TemplateCategoriesType);
37
35
  //# sourceMappingURL=categories-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"categories-type.js","sourceRoot":"","sources":["../../src/data-types/categories-type.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kEAAwE;AACxE,0EAGmD;AACnD,4CAA2D;AAC3D,mEAAiE;AAO1D,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,qBAAQ;IACtB;IAA5B,YAA4B,UAAmC,EAAE;QAC/D,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QADJ,YAAO,GAAP,OAAO,CAA8B;IAEjE,CAAC;IAES,qBAAqB;QAC7B,OAAO,IAAA,wBAAe,EAAC,wBAAwB,CAAC;aAC7C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;aACrB,aAAa,EAAE,CAAC;IACrB,CAAC;IAED,aAAa;QACX,OAAO,kCAAgB,CAAC;IAC1B,CAAC;CACF,CAAA;AAdY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,6BAAgB,EAAC,uCAA2B,CAAC;;GACjC,sBAAsB,CAclC"}
1
+ {"version":3,"file":"categories-type.js","sourceRoot":"","sources":["../../src/data-types/categories-type.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kEAAwE;AACxE,0EAGmD;AACnD,4CAA2D;AAC3D,mEAAiE;AAO1D,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,qBAAQ;IAClD;QACE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IAES,qBAAqB;QAC7B,OAAO,IAAA,wBAAe,EAAC,wBAAwB,CAAC;aAC7C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;aACrB,aAAa,EAAE,CAAC;IACrB,CAAC;IAED,aAAa;QACX,OAAO,kCAAgB,CAAC;IAC1B,CAAC;CACF,CAAA;AAdY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,6BAAgB,EAAC,uCAA2B,CAAC;;GACjC,sBAAsB,CAclC"}
@@ -1,8 +1,7 @@
1
1
  import { DataType } from "@antelopejs/interface-dms/base/data-types";
2
2
  import { z } from "zod";
3
3
  export declare class TemplateCategoryType extends DataType {
4
- readonly options: Record<string, unknown>;
5
- constructor(options?: Record<string, unknown>);
4
+ constructor();
6
5
  protected defaultInputComponent(): import("@antelopejs/interface-dms").ComponentInfoSerialized<unknown>;
7
6
  getValidation(): z.ZodOptional<z.ZodString>;
8
7
  }