@webiny/api-mailer 0.0.0-ee-vpcs.549378cf03

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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -0
  3. package/context.d.ts +3 -0
  4. package/context.js +24 -0
  5. package/context.js.map +1 -0
  6. package/crud/group.d.ts +2 -0
  7. package/crud/group.js +21 -0
  8. package/crud/group.js.map +1 -0
  9. package/crud/settings/hooks.d.ts +5 -0
  10. package/crud/settings/hooks.js +55 -0
  11. package/crud/settings/hooks.js.map +1 -0
  12. package/crud/settings/model.d.ts +3 -0
  13. package/crud/settings/model.js +90 -0
  14. package/crud/settings/model.js.map +1 -0
  15. package/crud/settings/password.d.ts +7 -0
  16. package/crud/settings/password.js +71 -0
  17. package/crud/settings/password.js.map +1 -0
  18. package/crud/settings/secret.d.ts +1 -0
  19. package/crud/settings/secret.js +23 -0
  20. package/crud/settings/secret.js.map +1 -0
  21. package/crud/settings/transform.d.ts +13 -0
  22. package/crud/settings/transform.js +56 -0
  23. package/crud/settings/transform.js.map +1 -0
  24. package/crud/settings/validation.d.ts +4 -0
  25. package/crud/settings/validation.js +38 -0
  26. package/crud/settings/validation.js.map +1 -0
  27. package/crud/settings.crud.d.ts +5 -0
  28. package/crud/settings.crud.js +331 -0
  29. package/crud/settings.crud.js.map +1 -0
  30. package/crud/transport/onTransportBeforeSend.d.ts +7 -0
  31. package/crud/transport/onTransportBeforeSend.js +69 -0
  32. package/crud/transport/onTransportBeforeSend.js.map +1 -0
  33. package/crud/transporter.crud.d.ts +2 -0
  34. package/crud/transporter.crud.js +193 -0
  35. package/crud/transporter.crud.js.map +1 -0
  36. package/graphql/index.d.ts +1 -0
  37. package/graphql/index.js +14 -0
  38. package/graphql/index.js.map +1 -0
  39. package/graphql/settings.d.ts +3 -0
  40. package/graphql/settings.js +109 -0
  41. package/graphql/settings.js.map +1 -0
  42. package/index.d.ts +8 -0
  43. package/index.js +89 -0
  44. package/index.js.map +1 -0
  45. package/package.json +65 -0
  46. package/plugins/CreateTransportPlugin.d.ts +17 -0
  47. package/plugins/CreateTransportPlugin.js +34 -0
  48. package/plugins/CreateTransportPlugin.js.map +1 -0
  49. package/plugins/index.d.ts +1 -0
  50. package/plugins/index.js +18 -0
  51. package/plugins/index.js.map +1 -0
  52. package/transports/createDummyTransport.d.ts +5 -0
  53. package/transports/createDummyTransport.js +25 -0
  54. package/transports/createDummyTransport.js.map +1 -0
  55. package/transports/createSmtpTransport.d.ts +12 -0
  56. package/transports/createSmtpTransport.js +101 -0
  57. package/transports/createSmtpTransport.js.map +1 -0
  58. package/types.d.ts +149 -0
  59. package/types.js +5 -0
  60. package/types.js.map +1 -0
package/types.d.ts ADDED
@@ -0,0 +1,149 @@
1
+ import { CmsContext } from "@webiny/api-headless-cms/types";
2
+ import { Topic } from "@webiny/pubsub/types";
3
+ export interface MailerTransporterContext<T extends Transport = Transport> {
4
+ onTransportBeforeSend: Topic<OnTransportBeforeSendParams>;
5
+ onTransportAfterSend: Topic<OnTransportAfterSendParams>;
6
+ onTransportError: Topic<OnTransportErrorParams>;
7
+ getTransport: () => Promise<T | null>;
8
+ sendMail: <D>(data: TransportSendData) => Promise<TransportSendResponse<D>>;
9
+ }
10
+ export interface MailerSettingsCreateParams {
11
+ input: Partial<TransportSettings>;
12
+ }
13
+ export interface MailerSettingsUpdateParams {
14
+ input: Partial<TransportSettings>;
15
+ original?: ExtendedTransportSettings | null;
16
+ }
17
+ export interface MailerSettingsSaveParams {
18
+ input: Partial<TransportSettings>;
19
+ }
20
+ export interface OnSettingsBeforeGetTopicParams {
21
+ tenant: string;
22
+ }
23
+ export interface OnSettingsAfterGetTopicParams {
24
+ tenant: string;
25
+ settings: TransportSettings | null;
26
+ }
27
+ export interface OnSettingsGetErrorTopicParams {
28
+ tenant: string;
29
+ error: Error;
30
+ }
31
+ export interface OnSettingsBeforeCreateTopicParams {
32
+ settings: TransportSettings;
33
+ }
34
+ export interface OnSettingsAfterCreateTopicParams {
35
+ settings: TransportSettings;
36
+ }
37
+ export interface OnSettingsCreateErrorTopicParams {
38
+ settings: TransportSettings;
39
+ error: Error;
40
+ }
41
+ export interface OnSettingsBeforeUpdateTopicParams {
42
+ settings: TransportSettings;
43
+ original: TransportSettings;
44
+ }
45
+ export interface OnSettingsAfterUpdateTopicParams {
46
+ original: TransportSettings;
47
+ settings: TransportSettings;
48
+ }
49
+ export interface OnSettingsUpdateErrorTopicParams {
50
+ original: TransportSettings;
51
+ settings: TransportSettings;
52
+ error: Error;
53
+ }
54
+ export interface ExtendedTransportSettings extends TransportSettings {
55
+ id: string;
56
+ }
57
+ export interface MailerSettingsContext {
58
+ getSettings: () => Promise<ExtendedTransportSettings | null>;
59
+ /**
60
+ * Method should not be used outside of mailer
61
+ * @internal
62
+ */
63
+ createSettings: (params: MailerSettingsCreateParams) => Promise<TransportSettings>;
64
+ /**
65
+ * Method should not be used outside of mailer
66
+ * @internal
67
+ */
68
+ updateSettings: (params: MailerSettingsUpdateParams) => Promise<TransportSettings>;
69
+ /**
70
+ * Use to store the settings data.
71
+ */
72
+ saveSettings: (params: MailerSettingsSaveParams) => Promise<TransportSettings>;
73
+ /**
74
+ * Lifecycle events
75
+ */
76
+ onSettingsBeforeGet: Topic<OnSettingsBeforeGetTopicParams>;
77
+ onSettingsAfterGet: Topic<OnSettingsAfterGetTopicParams>;
78
+ onSettingsGetError: Topic<OnSettingsGetErrorTopicParams>;
79
+ onSettingsBeforeCreate: Topic<OnSettingsBeforeCreateTopicParams>;
80
+ onSettingsAfterCreate: Topic<OnSettingsAfterCreateTopicParams>;
81
+ onSettingsCreateError: Topic<OnSettingsCreateErrorTopicParams>;
82
+ onSettingsBeforeUpdate: Topic<OnSettingsBeforeUpdateTopicParams>;
83
+ onSettingsAfterUpdate: Topic<OnSettingsAfterUpdateTopicParams>;
84
+ onSettingsUpdateError: Topic<OnSettingsUpdateErrorTopicParams>;
85
+ }
86
+ export interface MailerContextObject<T extends Transport = Transport> extends MailerTransporterContext<T>, MailerSettingsContext {
87
+ }
88
+ export interface MailerContext extends CmsContext {
89
+ mailer: MailerContextObject;
90
+ }
91
+ export interface OnTransportBeforeSendParams {
92
+ data: TransportSendData;
93
+ transport: Transport;
94
+ }
95
+ export interface OnTransportAfterSendParams {
96
+ data: TransportSendData;
97
+ transport: Transport;
98
+ }
99
+ export interface OnTransportErrorParams {
100
+ error: Error;
101
+ data: TransportSendData;
102
+ transport: Transport;
103
+ }
104
+ /**
105
+ * Interface to implement the actual mailer.
106
+ */
107
+ export interface TransportSendResponse<T = any> {
108
+ result: T | null;
109
+ error: {
110
+ message: string;
111
+ code: string;
112
+ data?: {
113
+ [key: string]: any;
114
+ };
115
+ } | null;
116
+ }
117
+ interface TransportSendToData {
118
+ to: string[];
119
+ }
120
+ interface TransportSendCcData {
121
+ cc: string[];
122
+ }
123
+ interface TransportSendBccData {
124
+ bcc: string[];
125
+ }
126
+ interface BaseTransportSendData {
127
+ to?: string[];
128
+ cc?: string[];
129
+ bcc?: string[];
130
+ from?: string;
131
+ subject: string;
132
+ text: string;
133
+ html?: string;
134
+ replyTo?: string;
135
+ }
136
+ export declare type TransportSendData = BaseTransportSendData & (TransportSendToData | TransportSendBccData | TransportSendCcData);
137
+ export interface Transport<T = any> {
138
+ name: string;
139
+ send: (params: TransportSendData) => Promise<TransportSendResponse<T>>;
140
+ }
141
+ export interface TransportSettings {
142
+ host: string;
143
+ port: number;
144
+ user: string;
145
+ password: string;
146
+ from: string;
147
+ replyTo?: string;
148
+ }
149
+ export {};
package/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface MailerTransporterContext<T extends Transport = Transport> {\n onTransportBeforeSend: Topic<OnTransportBeforeSendParams>;\n onTransportAfterSend: Topic<OnTransportAfterSendParams>;\n onTransportError: Topic<OnTransportErrorParams>;\n getTransport: () => Promise<T | null>;\n sendMail: <D>(data: TransportSendData) => Promise<TransportSendResponse<D>>;\n}\n\nexport interface MailerSettingsCreateParams {\n input: Partial<TransportSettings>;\n}\nexport interface MailerSettingsUpdateParams {\n input: Partial<TransportSettings>;\n original?: ExtendedTransportSettings | null;\n}\n\nexport interface MailerSettingsSaveParams {\n input: Partial<TransportSettings>;\n}\n\nexport interface OnSettingsBeforeGetTopicParams {\n tenant: string;\n}\n\nexport interface OnSettingsAfterGetTopicParams {\n tenant: string;\n settings: TransportSettings | null;\n}\n\nexport interface OnSettingsGetErrorTopicParams {\n tenant: string;\n error: Error;\n}\n\nexport interface OnSettingsBeforeCreateTopicParams {\n settings: TransportSettings;\n}\n\nexport interface OnSettingsAfterCreateTopicParams {\n settings: TransportSettings;\n}\n\nexport interface OnSettingsCreateErrorTopicParams {\n settings: TransportSettings;\n error: Error;\n}\n\nexport interface OnSettingsBeforeUpdateTopicParams {\n settings: TransportSettings;\n original: TransportSettings;\n}\n\nexport interface OnSettingsAfterUpdateTopicParams {\n original: TransportSettings;\n settings: TransportSettings;\n}\n\nexport interface OnSettingsUpdateErrorTopicParams {\n original: TransportSettings;\n settings: TransportSettings;\n error: Error;\n}\n\nexport interface ExtendedTransportSettings extends TransportSettings {\n id: string;\n}\n\nexport interface MailerSettingsContext {\n getSettings: () => Promise<ExtendedTransportSettings | null>;\n /**\n * Method should not be used outside of mailer\n * @internal\n */\n createSettings: (params: MailerSettingsCreateParams) => Promise<TransportSettings>;\n /**\n * Method should not be used outside of mailer\n * @internal\n */\n updateSettings: (params: MailerSettingsUpdateParams) => Promise<TransportSettings>;\n /**\n * Use to store the settings data.\n */\n saveSettings: (params: MailerSettingsSaveParams) => Promise<TransportSettings>;\n /**\n * Lifecycle events\n */\n onSettingsBeforeGet: Topic<OnSettingsBeforeGetTopicParams>;\n onSettingsAfterGet: Topic<OnSettingsAfterGetTopicParams>;\n onSettingsGetError: Topic<OnSettingsGetErrorTopicParams>;\n onSettingsBeforeCreate: Topic<OnSettingsBeforeCreateTopicParams>;\n onSettingsAfterCreate: Topic<OnSettingsAfterCreateTopicParams>;\n onSettingsCreateError: Topic<OnSettingsCreateErrorTopicParams>;\n onSettingsBeforeUpdate: Topic<OnSettingsBeforeUpdateTopicParams>;\n onSettingsAfterUpdate: Topic<OnSettingsAfterUpdateTopicParams>;\n onSettingsUpdateError: Topic<OnSettingsUpdateErrorTopicParams>;\n}\n\nexport interface MailerContextObject<T extends Transport = Transport>\n extends MailerTransporterContext<T>,\n MailerSettingsContext {}\nexport interface MailerContext extends CmsContext {\n mailer: MailerContextObject;\n}\n\nexport interface OnTransportBeforeSendParams {\n data: TransportSendData;\n transport: Transport;\n}\nexport interface OnTransportAfterSendParams {\n data: TransportSendData;\n transport: Transport;\n}\nexport interface OnTransportErrorParams {\n error: Error;\n data: TransportSendData;\n transport: Transport;\n}\n\n/**\n * Interface to implement the actual mailer.\n */\nexport interface TransportSendResponse<T = any> {\n result: T | null;\n error: {\n message: string;\n code: string;\n data?: {\n [key: string]: any;\n };\n } | null;\n}\n\ninterface TransportSendToData {\n to: string[];\n}\ninterface TransportSendCcData {\n cc: string[];\n}\ninterface TransportSendBccData {\n bcc: string[];\n}\n\ninterface BaseTransportSendData {\n to?: string[];\n cc?: string[];\n bcc?: string[];\n from?: string;\n subject: string;\n text: string;\n html?: string;\n replyTo?: string;\n}\n\nexport type TransportSendData = BaseTransportSendData &\n (TransportSendToData | TransportSendBccData | TransportSendCcData);\nexport interface Transport<T = any> {\n name: string;\n send: (params: TransportSendData) => Promise<TransportSendResponse<T>>;\n}\n\nexport interface TransportSettings {\n host: string;\n port: number;\n user: string;\n password: string;\n from: string;\n replyTo?: string;\n}\n"],"mappings":""}