@webiny/api-mailer 0.0.0-unstable.5e7233243f → 0.0.0-unstable.fcdad0bc61

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 (57) hide show
  1. package/context.d.ts +2 -2
  2. package/context.js +9 -3
  3. package/context.js.map +1 -1
  4. package/crud/group.d.ts +2 -0
  5. package/crud/group.js +21 -0
  6. package/crud/group.js.map +1 -0
  7. package/crud/settings/hooks.d.ts +5 -0
  8. package/crud/settings/hooks.js +55 -0
  9. package/crud/settings/hooks.js.map +1 -0
  10. package/crud/settings/model.d.ts +3 -0
  11. package/crud/settings/model.js +90 -0
  12. package/crud/settings/model.js.map +1 -0
  13. package/crud/settings/password.d.ts +7 -0
  14. package/crud/settings/password.js +71 -0
  15. package/crud/settings/password.js.map +1 -0
  16. package/crud/settings/secret.d.ts +1 -0
  17. package/crud/settings/secret.js +23 -0
  18. package/crud/settings/secret.js.map +1 -0
  19. package/crud/settings/transform.d.ts +13 -0
  20. package/crud/settings/transform.js +56 -0
  21. package/crud/settings/transform.js.map +1 -0
  22. package/crud/settings/validation.d.ts +4 -0
  23. package/crud/settings/validation.js +38 -0
  24. package/crud/settings/validation.js.map +1 -0
  25. package/crud/settings.crud.d.ts +5 -0
  26. package/crud/settings.crud.js +331 -0
  27. package/crud/settings.crud.js.map +1 -0
  28. package/crud/transport/onTransportBeforeSend.d.ts +7 -0
  29. package/crud/transport/onTransportBeforeSend.js +69 -0
  30. package/crud/transport/onTransportBeforeSend.js.map +1 -0
  31. package/crud/transporter.crud.d.ts +2 -0
  32. package/crud/transporter.crud.js +193 -0
  33. package/crud/transporter.crud.js.map +1 -0
  34. package/graphql/index.d.ts +1 -0
  35. package/graphql/index.js +14 -0
  36. package/graphql/index.js.map +1 -0
  37. package/graphql/settings.d.ts +3 -0
  38. package/graphql/settings.js +109 -0
  39. package/graphql/settings.js.map +1 -0
  40. package/index.d.ts +7 -6
  41. package/index.js +69 -10
  42. package/index.js.map +1 -1
  43. package/package.json +33 -15
  44. package/plugins/CreateTransportPlugin.d.ts +17 -0
  45. package/plugins/CreateTransportPlugin.js +34 -0
  46. package/plugins/CreateTransportPlugin.js.map +1 -0
  47. package/plugins/index.d.ts +1 -0
  48. package/plugins/index.js +18 -0
  49. package/plugins/index.js.map +1 -0
  50. package/transports/createDummyTransport.d.ts +5 -0
  51. package/transports/createDummyTransport.js +25 -0
  52. package/transports/createDummyTransport.js.map +1 -0
  53. package/transports/createSmtpTransport.d.ts +12 -0
  54. package/transports/createSmtpTransport.js +101 -0
  55. package/transports/createSmtpTransport.js.map +1 -0
  56. package/types.d.ts +124 -34
  57. package/types.js.map +1 -1
package/types.d.ts CHANGED
@@ -1,59 +1,149 @@
1
- import { Context } from "@webiny/api/types";
1
+ import { CmsContext } from "@webiny/api-headless-cms/types";
2
2
  import { Topic } from "@webiny/pubsub/types";
3
- export interface MailerContextObjectSendParams {
4
- data: MailerSendData;
5
- }
6
- export declare type MailerSetterParams = Mailer | (() => Promise<Mailer>);
7
- export interface MailerSetter {
8
- (mailer: MailerSetterParams): void;
9
- }
10
- export interface MailerContextObject {
11
- onBeforeSend: Topic<OnBeforeMailerSendParams>;
12
- onAfterSend: Topic<OnAfterMailerSendParams>;
13
- onError: Topic<OnErrorMailerParams>;
14
- setMailer: MailerSetter;
15
- getMailer: <T extends Mailer = Mailer>() => Promise<T>;
16
- send: <T>(params: MailerContextObjectSendParams) => Promise<MailerSendResponse<T>>;
17
- }
18
- export interface MailerContext extends Context {
19
- mailer: MailerContextObject;
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;
20
30
  }
21
- export interface MailerConfig<T extends Mailer = Mailer> {
22
- mailer?: T;
31
+ export interface OnSettingsBeforeCreateTopicParams {
32
+ settings: TransportSettings;
23
33
  }
24
- export interface OnBeforeMailerSendParams {
25
- data: MailerSendData;
34
+ export interface OnSettingsAfterCreateTopicParams {
35
+ settings: TransportSettings;
26
36
  }
27
- export interface OnAfterMailerSendParams {
28
- data: MailerSendData;
37
+ export interface OnSettingsCreateErrorTopicParams {
38
+ settings: TransportSettings;
39
+ error: Error;
40
+ }
41
+ export interface OnSettingsBeforeUpdateTopicParams {
42
+ settings: TransportSettings;
43
+ original: TransportSettings;
29
44
  }
30
- export interface OnErrorMailerParams {
45
+ export interface OnSettingsAfterUpdateTopicParams {
46
+ original: TransportSettings;
47
+ settings: TransportSettings;
48
+ }
49
+ export interface OnSettingsUpdateErrorTopicParams {
50
+ original: TransportSettings;
51
+ settings: TransportSettings;
31
52
  error: Error;
32
- data: MailerSendData;
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;
33
103
  }
34
104
  /**
35
105
  * Interface to implement the actual mailer.
36
106
  */
37
- export interface MailerSendResponse<T = any> {
107
+ export interface TransportSendResponse<T = any> {
38
108
  result: T | null;
39
109
  error: {
40
110
  message: string;
41
111
  code: string;
42
- data: {
112
+ data?: {
43
113
  [key: string]: any;
44
114
  };
45
115
  } | null;
46
116
  }
47
- export interface MailerSendData {
117
+ interface TransportSendToData {
48
118
  to: string[];
49
- from: 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;
50
131
  subject: string;
51
132
  text: string;
52
133
  html?: string;
53
134
  replyTo?: string;
54
- cc?: string[];
55
- bcc?: string[];
56
135
  }
57
- export interface Mailer<T = any> {
58
- send: (params: MailerSendData) => Promise<MailerSendResponse<T>>;
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;
59
148
  }
149
+ export {};
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { Context } from \"@webiny/api/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface MailerContextObjectSendParams {\n data: MailerSendData;\n}\n\nexport type MailerSetterParams = Mailer | (() => Promise<Mailer>);\n\nexport interface MailerSetter {\n (mailer: MailerSetterParams): void;\n}\n\nexport interface MailerContextObject {\n onBeforeSend: Topic<OnBeforeMailerSendParams>;\n onAfterSend: Topic<OnAfterMailerSendParams>;\n onError: Topic<OnErrorMailerParams>;\n setMailer: MailerSetter;\n getMailer: <T extends Mailer = Mailer>() => Promise<T>;\n send: <T>(params: MailerContextObjectSendParams) => Promise<MailerSendResponse<T>>;\n}\nexport interface MailerContext extends Context {\n mailer: MailerContextObject;\n}\n\nexport interface MailerConfig<T extends Mailer = Mailer> {\n mailer?: T;\n}\n\nexport interface OnBeforeMailerSendParams {\n data: MailerSendData;\n}\nexport interface OnAfterMailerSendParams {\n data: MailerSendData;\n}\nexport interface OnErrorMailerParams {\n error: Error;\n data: MailerSendData;\n}\n\n/**\n * Interface to implement the actual mailer.\n */\nexport interface MailerSendResponse<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\nexport interface MailerSendData {\n to: string[];\n from: string;\n subject: string;\n text: string;\n html?: string;\n replyTo?: string;\n cc?: string[];\n bcc?: string[];\n}\nexport interface Mailer<T = any> {\n send: (params: MailerSendData) => Promise<MailerSendResponse<T>>;\n}\n"],"mappings":""}
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":""}