@webiny/api-mailer 0.0.0-unstable.78f581c1d2 → 0.0.0-unstable.7be00a75a9

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 (178) hide show
  1. package/README.md +10 -13
  2. package/constants.d.ts +1 -0
  3. package/constants.js +4 -0
  4. package/constants.js.map +1 -0
  5. package/domain/CodeMailerSettings/abstractions.d.ts +8 -0
  6. package/domain/CodeMailerSettings/abstractions.js +5 -0
  7. package/domain/CodeMailerSettings/abstractions.js.map +1 -0
  8. package/domain/MailTransport/abstractions.d.ts +26 -0
  9. package/domain/MailTransport/abstractions.js +7 -0
  10. package/domain/MailTransport/abstractions.js.map +1 -0
  11. package/domain/MailerService/abstractions.d.ts +19 -0
  12. package/domain/MailerService/abstractions.js +5 -0
  13. package/domain/MailerService/abstractions.js.map +1 -0
  14. package/domain/MailerService/errors.d.ts +16 -0
  15. package/domain/MailerService/errors.js +28 -0
  16. package/domain/MailerService/errors.js.map +1 -0
  17. package/domain/errors.d.ts +28 -0
  18. package/domain/errors.js +48 -0
  19. package/domain/errors.js.map +1 -0
  20. package/exports/api/mailer.d.ts +4 -0
  21. package/exports/api/mailer.js +4 -0
  22. package/features/CodeMailerSettings/CodeMailerSettingsImpl.d.ts +12 -0
  23. package/features/CodeMailerSettings/CodeMailerSettingsImpl.js +23 -0
  24. package/features/CodeMailerSettings/CodeMailerSettingsImpl.js.map +1 -0
  25. package/features/CodeMailerSettings/feature.d.ts +4 -0
  26. package/features/CodeMailerSettings/feature.js +11 -0
  27. package/features/CodeMailerSettings/feature.js.map +1 -0
  28. package/features/DummyTransport/DummyMailTransport.d.ts +9 -0
  29. package/features/DummyTransport/DummyMailTransport.js +14 -0
  30. package/features/DummyTransport/DummyMailTransport.js.map +1 -0
  31. package/features/DummyTransport/DummyMailTransportFactory.d.ts +9 -0
  32. package/features/DummyTransport/DummyMailTransportFactory.js +17 -0
  33. package/features/DummyTransport/DummyMailTransportFactory.js.map +1 -0
  34. package/features/DummyTransport/feature.d.ts +4 -0
  35. package/features/DummyTransport/feature.js +11 -0
  36. package/features/DummyTransport/feature.js.map +1 -0
  37. package/features/GetSettings/GetSettingsRepository.d.ts +16 -0
  38. package/features/GetSettings/GetSettingsRepository.js +54 -0
  39. package/features/GetSettings/GetSettingsRepository.js.map +1 -0
  40. package/features/GetSettings/GetSettingsUseCase.d.ts +11 -0
  41. package/features/GetSettings/GetSettingsUseCase.js +18 -0
  42. package/features/GetSettings/GetSettingsUseCase.js.map +1 -0
  43. package/features/GetSettings/abstractions.d.ts +22 -0
  44. package/features/GetSettings/abstractions.js +6 -0
  45. package/features/GetSettings/abstractions.js.map +1 -0
  46. package/features/GetSettings/feature.d.ts +4 -0
  47. package/features/GetSettings/feature.js +13 -0
  48. package/features/GetSettings/feature.js.map +1 -0
  49. package/features/GetSettings/index.d.ts +1 -0
  50. package/features/GetSettings/index.js +1 -0
  51. package/features/MailerService/ActiveTransport.d.ts +10 -0
  52. package/features/MailerService/ActiveTransport.js +24 -0
  53. package/features/MailerService/ActiveTransport.js.map +1 -0
  54. package/features/MailerService/MailerService.d.ts +16 -0
  55. package/features/MailerService/MailerService.js +49 -0
  56. package/features/MailerService/MailerService.js.map +1 -0
  57. package/features/MailerService/feature.d.ts +4 -0
  58. package/features/MailerService/feature.js +13 -0
  59. package/features/MailerService/feature.js.map +1 -0
  60. package/features/SaveSettings/SaveSettingsRepository.d.ts +13 -0
  61. package/features/SaveSettings/SaveSettingsRepository.js +43 -0
  62. package/features/SaveSettings/SaveSettingsRepository.js.map +1 -0
  63. package/features/SaveSettings/SaveSettingsUseCase.d.ts +18 -0
  64. package/features/SaveSettings/SaveSettingsUseCase.js +51 -0
  65. package/features/SaveSettings/SaveSettingsUseCase.js.map +1 -0
  66. package/features/SaveSettings/abstractions.d.ts +61 -0
  67. package/features/SaveSettings/abstractions.js +8 -0
  68. package/features/SaveSettings/abstractions.js.map +1 -0
  69. package/features/SaveSettings/events.d.ts +10 -0
  70. package/features/SaveSettings/events.js +21 -0
  71. package/features/SaveSettings/events.js.map +1 -0
  72. package/features/SaveSettings/feature.d.ts +4 -0
  73. package/features/SaveSettings/feature.js +13 -0
  74. package/features/SaveSettings/feature.js.map +1 -0
  75. package/features/SaveSettings/index.d.ts +1 -0
  76. package/features/SaveSettings/index.js +1 -0
  77. package/features/SaveSettings/validation.d.ts +9 -0
  78. package/features/SaveSettings/validation.js +20 -0
  79. package/features/SaveSettings/validation.js.map +1 -0
  80. package/features/SendMail/SendMailUseCase.d.ts +16 -0
  81. package/features/SendMail/SendMailUseCase.js +58 -0
  82. package/features/SendMail/SendMailUseCase.js.map +1 -0
  83. package/features/SendMail/abstractions.d.ts +45 -0
  84. package/features/SendMail/abstractions.js +8 -0
  85. package/features/SendMail/abstractions.js.map +1 -0
  86. package/features/SendMail/events.d.ts +14 -0
  87. package/features/SendMail/events.js +29 -0
  88. package/features/SendMail/events.js.map +1 -0
  89. package/features/SendMail/feature.d.ts +4 -0
  90. package/features/SendMail/feature.js +11 -0
  91. package/features/SendMail/feature.js.map +1 -0
  92. package/features/SendMail/index.d.ts +1 -0
  93. package/features/SendMail/index.js +1 -0
  94. package/features/SmtpTransport/SmtpConfig.d.ts +6 -0
  95. package/features/SmtpTransport/SmtpConfig.js +25 -0
  96. package/features/SmtpTransport/SmtpConfig.js.map +1 -0
  97. package/features/SmtpTransport/SmtpMailTransport.d.ts +68 -0
  98. package/features/SmtpTransport/SmtpMailTransport.js +53 -0
  99. package/features/SmtpTransport/SmtpMailTransport.js.map +1 -0
  100. package/features/SmtpTransport/SmtpMailTransportFactory.d.ts +10 -0
  101. package/features/SmtpTransport/SmtpMailTransportFactory.js +18 -0
  102. package/features/SmtpTransport/SmtpMailTransportFactory.js.map +1 -0
  103. package/features/SmtpTransport/feature.d.ts +4 -0
  104. package/features/SmtpTransport/feature.js +11 -0
  105. package/features/SmtpTransport/feature.js.map +1 -0
  106. package/graphql/settings.d.ts +2 -2
  107. package/graphql/settings.js +71 -73
  108. package/graphql/settings.js.map +1 -1
  109. package/index.d.ts +4 -8
  110. package/index.js +23 -89
  111. package/index.js.map +1 -1
  112. package/package.json +32 -45
  113. package/types.d.ts +2 -109
  114. package/types.js +0 -5
  115. package/utils/isMailboxAddress.d.ts +6 -0
  116. package/utils/isMailboxAddress.js +5 -0
  117. package/utils/isMailboxAddress.js.map +1 -0
  118. package/context.d.ts +0 -3
  119. package/context.js +0 -24
  120. package/context.js.map +0 -1
  121. package/crud/group.d.ts +0 -2
  122. package/crud/group.js +0 -21
  123. package/crud/group.js.map +0 -1
  124. package/crud/mailer/onBeforeSend.d.ts +0 -7
  125. package/crud/mailer/onBeforeSend.js +0 -69
  126. package/crud/mailer/onBeforeSend.js.map +0 -1
  127. package/crud/mailer.crud.d.ts +0 -2
  128. package/crud/mailer.crud.js +0 -123
  129. package/crud/mailer.crud.js.map +0 -1
  130. package/crud/settings/hooks.d.ts +0 -5
  131. package/crud/settings/hooks.js +0 -55
  132. package/crud/settings/hooks.js.map +0 -1
  133. package/crud/settings/model.d.ts +0 -3
  134. package/crud/settings/model.js +0 -90
  135. package/crud/settings/model.js.map +0 -1
  136. package/crud/settings/password.d.ts +0 -7
  137. package/crud/settings/password.js +0 -71
  138. package/crud/settings/password.js.map +0 -1
  139. package/crud/settings/secret.d.ts +0 -1
  140. package/crud/settings/secret.js +0 -23
  141. package/crud/settings/secret.js.map +0 -1
  142. package/crud/settings/transform.d.ts +0 -13
  143. package/crud/settings/transform.js +0 -56
  144. package/crud/settings/transform.js.map +0 -1
  145. package/crud/settings/validation.d.ts +0 -4
  146. package/crud/settings/validation.js +0 -38
  147. package/crud/settings/validation.js.map +0 -1
  148. package/crud/settings.crud.d.ts +0 -5
  149. package/crud/settings.crud.js +0 -331
  150. package/crud/settings.crud.js.map +0 -1
  151. package/crud/transport/onTransportBeforeSend.d.ts +0 -7
  152. package/crud/transport/onTransportBeforeSend.js +0 -69
  153. package/crud/transport/onTransportBeforeSend.js.map +0 -1
  154. package/crud/transporter.crud.d.ts +0 -2
  155. package/crud/transporter.crud.js +0 -193
  156. package/crud/transporter.crud.js.map +0 -1
  157. package/graphql/index.d.ts +0 -1
  158. package/graphql/index.js +0 -14
  159. package/graphql/index.js.map +0 -1
  160. package/mailers/createDummyMailer.d.ts +0 -5
  161. package/mailers/createDummyMailer.js +0 -24
  162. package/mailers/createDummyMailer.js.map +0 -1
  163. package/mailers/createSmtpMailer.d.ts +0 -13
  164. package/mailers/createSmtpMailer.js +0 -106
  165. package/mailers/createSmtpMailer.js.map +0 -1
  166. package/plugins/CreateTransportPlugin.d.ts +0 -17
  167. package/plugins/CreateTransportPlugin.js +0 -34
  168. package/plugins/CreateTransportPlugin.js.map +0 -1
  169. package/plugins/index.d.ts +0 -1
  170. package/plugins/index.js +0 -18
  171. package/plugins/index.js.map +0 -1
  172. package/transports/createDummyTransport.d.ts +0 -5
  173. package/transports/createDummyTransport.js +0 -25
  174. package/transports/createDummyTransport.js.map +0 -1
  175. package/transports/createSmtpTransport.d.ts +0 -12
  176. package/transports/createSmtpTransport.js +0 -101
  177. package/transports/createSmtpTransport.js.map +0 -1
  178. package/types.js.map +0 -1
@@ -1,123 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createMailerCrud = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _pubsub = require("@webiny/pubsub");
13
-
14
- var _onBeforeSend = require("./mailer/onBeforeSend");
15
-
16
- var _error = _interopRequireDefault(require("@webiny/error"));
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
-
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
- const createDefaultMailer = async () => {
27
- return Promise.resolve().then(() => _interopRequireWildcard(require("../mailers/createSmtpMailer"))).then(module => {
28
- return module.createSmtpMailer();
29
- });
30
- };
31
-
32
- const createMailerCrud = config => {
33
- let defaultMailer = (config === null || config === void 0 ? void 0 : config.mailer) || createDefaultMailer;
34
- /**
35
- * We define possible events to be hooked into.
36
- */
37
-
38
- const onBeforeSend = (0, _pubsub.createTopic)();
39
- const onAfterSend = (0, _pubsub.createTopic)();
40
- const onError = (0, _pubsub.createTopic)();
41
- /**
42
- * We attach our default ones.
43
- */
44
-
45
- (0, _onBeforeSend.attachOnBeforeSend)({
46
- onBeforeSend
47
- });
48
- let initializedMailer;
49
-
50
- const getMailer = async () => {
51
- if (initializedMailer) {
52
- return initializedMailer;
53
- } else if (!defaultMailer) {
54
- throw new _error.default({
55
- message: "Mailer is not set.",
56
- code: "MAILER_NOT_SET_ERROR"
57
- });
58
- } else if (typeof defaultMailer === "function") {
59
- try {
60
- initializedMailer = await defaultMailer();
61
- return initializedMailer;
62
- } catch (ex) {
63
- throw new _error.default({
64
- message: "Error while getting mailer.",
65
- code: "MAILER_ERROR",
66
- data: {
67
- error: ex
68
- }
69
- });
70
- }
71
- }
72
-
73
- initializedMailer = defaultMailer;
74
- return initializedMailer;
75
- };
76
-
77
- return {
78
- onBeforeSend,
79
- onAfterSend,
80
- onError,
81
- getMailer,
82
- setMailer: target => {
83
- initializedMailer = undefined;
84
- defaultMailer = target;
85
- },
86
- send: async ({
87
- data
88
- }) => {
89
- const mailer = await getMailer();
90
-
91
- try {
92
- await onBeforeSend.publish({
93
- data
94
- });
95
- const response = await mailer.send(data);
96
- await onAfterSend.publish({
97
- data
98
- });
99
- return {
100
- result: response.result,
101
- error: response.error
102
- };
103
- } catch (ex) {
104
- await onError.publish({
105
- error: ex,
106
- data
107
- });
108
- return {
109
- result: null,
110
- error: {
111
- message: ex.message,
112
- code: ex.code,
113
- data: _objectSpread({
114
- data
115
- }, ex.data)
116
- }
117
- };
118
- }
119
- }
120
- };
121
- };
122
-
123
- exports.createMailerCrud = createMailerCrud;
@@ -1 +0,0 @@
1
- {"version":3,"names":["createDefaultMailer","then","module","createSmtpMailer","createMailerCrud","config","defaultMailer","mailer","onBeforeSend","createTopic","onAfterSend","onError","attachOnBeforeSend","initializedMailer","getMailer","WebinyError","message","code","ex","data","error","setMailer","target","undefined","send","publish","response","result"],"sources":["mailer.crud.ts"],"sourcesContent":["import {\n MailerConfig,\n MailerContextObject,\n Mailer,\n MailerSetterParams,\n OnAfterMailerSendParams,\n OnBeforeMailerSendParams,\n OnErrorMailerParams\n} from \"~/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { attachOnBeforeSend } from \"~/crud/mailer/onBeforeSend\";\nimport WebinyError from \"@webiny/error\";\n\nconst createDefaultMailer = async () => {\n return import(\"~/mailers/createSmtpMailer\").then(module => {\n return module.createSmtpMailer();\n });\n};\n\nexport const createMailerCrud = (config?: MailerConfig): MailerContextObject => {\n let defaultMailer: MailerSetterParams | undefined = config?.mailer || createDefaultMailer;\n /**\n * We define possible events to be hooked into.\n */\n const onBeforeSend = createTopic<OnBeforeMailerSendParams>();\n const onAfterSend = createTopic<OnAfterMailerSendParams>();\n const onError = createTopic<OnErrorMailerParams>();\n /**\n * We attach our default ones.\n */\n attachOnBeforeSend({\n onBeforeSend\n });\n\n let initializedMailer: Mailer | undefined;\n\n const getMailer = async <T extends Mailer = Mailer>(): Promise<T> => {\n if (initializedMailer) {\n return initializedMailer as T;\n } else if (!defaultMailer) {\n throw new WebinyError({\n message: \"Mailer is not set.\",\n code: \"MAILER_NOT_SET_ERROR\"\n });\n } else if (typeof defaultMailer === \"function\") {\n try {\n initializedMailer = await defaultMailer();\n\n return initializedMailer as T;\n } catch (ex) {\n throw new WebinyError({\n message: \"Error while getting mailer.\",\n code: \"MAILER_ERROR\",\n data: {\n error: ex\n }\n });\n }\n }\n initializedMailer = defaultMailer;\n return initializedMailer as T;\n };\n\n return {\n onBeforeSend,\n onAfterSend,\n onError,\n getMailer,\n setMailer: target => {\n initializedMailer = undefined;\n defaultMailer = target;\n },\n send: async ({ data }) => {\n const mailer = await getMailer();\n try {\n await onBeforeSend.publish({\n data\n });\n const response = await mailer.send(data);\n await onAfterSend.publish({\n data\n });\n\n return {\n result: response.result,\n error: response.error\n };\n } catch (ex) {\n await onError.publish({\n error: ex,\n data\n });\n return {\n result: null,\n error: {\n message: ex.message,\n code: ex.code,\n data: {\n data,\n ...ex.data\n }\n }\n };\n }\n }\n };\n};\n"],"mappings":";;;;;;;;;;;AASA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,mBAAmB,GAAG,YAAY;EACpC,OAAO,8FAAqCC,IAArC,CAA0CC,MAAM,IAAI;IACvD,OAAOA,MAAM,CAACC,gBAAP,EAAP;EACH,CAFM,CAAP;AAGH,CAJD;;AAMO,MAAMC,gBAAgB,GAAIC,MAAD,IAAgD;EAC5E,IAAIC,aAA6C,GAAG,CAAAD,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEE,MAAR,KAAkBP,mBAAtE;EACA;AACJ;AACA;;EACI,MAAMQ,YAAY,GAAG,IAAAC,mBAAA,GAArB;EACA,MAAMC,WAAW,GAAG,IAAAD,mBAAA,GAApB;EACA,MAAME,OAAO,GAAG,IAAAF,mBAAA,GAAhB;EACA;AACJ;AACA;;EACI,IAAAG,gCAAA,EAAmB;IACfJ;EADe,CAAnB;EAIA,IAAIK,iBAAJ;;EAEA,MAAMC,SAAS,GAAG,YAAmD;IACjE,IAAID,iBAAJ,EAAuB;MACnB,OAAOA,iBAAP;IACH,CAFD,MAEO,IAAI,CAACP,aAAL,EAAoB;MACvB,MAAM,IAAIS,cAAJ,CAAgB;QAClBC,OAAO,EAAE,oBADS;QAElBC,IAAI,EAAE;MAFY,CAAhB,CAAN;IAIH,CALM,MAKA,IAAI,OAAOX,aAAP,KAAyB,UAA7B,EAAyC;MAC5C,IAAI;QACAO,iBAAiB,GAAG,MAAMP,aAAa,EAAvC;QAEA,OAAOO,iBAAP;MACH,CAJD,CAIE,OAAOK,EAAP,EAAW;QACT,MAAM,IAAIH,cAAJ,CAAgB;UAClBC,OAAO,EAAE,6BADS;UAElBC,IAAI,EAAE,cAFY;UAGlBE,IAAI,EAAE;YACFC,KAAK,EAAEF;UADL;QAHY,CAAhB,CAAN;MAOH;IACJ;;IACDL,iBAAiB,GAAGP,aAApB;IACA,OAAOO,iBAAP;EACH,CAzBD;;EA2BA,OAAO;IACHL,YADG;IAEHE,WAFG;IAGHC,OAHG;IAIHG,SAJG;IAKHO,SAAS,EAAEC,MAAM,IAAI;MACjBT,iBAAiB,GAAGU,SAApB;MACAjB,aAAa,GAAGgB,MAAhB;IACH,CARE;IASHE,IAAI,EAAE,OAAO;MAAEL;IAAF,CAAP,KAAoB;MACtB,MAAMZ,MAAM,GAAG,MAAMO,SAAS,EAA9B;;MACA,IAAI;QACA,MAAMN,YAAY,CAACiB,OAAb,CAAqB;UACvBN;QADuB,CAArB,CAAN;QAGA,MAAMO,QAAQ,GAAG,MAAMnB,MAAM,CAACiB,IAAP,CAAYL,IAAZ,CAAvB;QACA,MAAMT,WAAW,CAACe,OAAZ,CAAoB;UACtBN;QADsB,CAApB,CAAN;QAIA,OAAO;UACHQ,MAAM,EAAED,QAAQ,CAACC,MADd;UAEHP,KAAK,EAAEM,QAAQ,CAACN;QAFb,CAAP;MAIH,CAbD,CAaE,OAAOF,EAAP,EAAW;QACT,MAAMP,OAAO,CAACc,OAAR,CAAgB;UAClBL,KAAK,EAAEF,EADW;UAElBC;QAFkB,CAAhB,CAAN;QAIA,OAAO;UACHQ,MAAM,EAAE,IADL;UAEHP,KAAK,EAAE;YACHJ,OAAO,EAAEE,EAAE,CAACF,OADT;YAEHC,IAAI,EAAEC,EAAE,CAACD,IAFN;YAGHE,IAAI;cACAA;YADA,GAEGD,EAAE,CAACC,IAFN;UAHD;QAFJ,CAAP;MAWH;IACJ;EAzCE,CAAP;AA2CH,CAvFM"}
@@ -1,5 +0,0 @@
1
- import { MailerContext } from "../../types";
2
- /**
3
- * We need to remove password from all error reporting and all returns.
4
- */
5
- export declare const attachPasswordObfuscatingHooks: (context: MailerContext) => void;
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.attachPasswordObfuscatingHooks = void 0;
9
-
10
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
-
12
- var _model = require("./model");
13
-
14
- const _excluded = ["password"];
15
-
16
- const obfuscatePassword = values => {
17
- // eslint-disable-next-line
18
- const {
19
- password
20
- } = values,
21
- rest = (0, _objectWithoutProperties2.default)(values, _excluded);
22
- return {
23
- rest
24
- };
25
- };
26
-
27
- const hook = async params => {
28
- if (params.model.modelId !== _model.SETTINGS_MODEL_ID) {
29
- return;
30
- }
31
-
32
- delete params.input["password"];
33
- params.entry.values = obfuscatePassword(params.entry.values);
34
-
35
- if (typeof params.original !== "undefined") {
36
- params.original.values = obfuscatePassword(params.original.values);
37
- }
38
-
39
- if (params.storageEntry) {
40
- params.storageEntry.values = obfuscatePassword(params.storageEntry.values);
41
- }
42
- };
43
- /**
44
- * We need to remove password from all error reporting and all returns.
45
- */
46
-
47
-
48
- const attachPasswordObfuscatingHooks = context => {
49
- context.cms.onEntryAfterCreate.subscribe(hook);
50
- context.cms.onEntryCreateError.subscribe(hook);
51
- context.cms.onEntryAfterUpdate.subscribe(hook);
52
- context.cms.onEntryUpdateError.subscribe(hook);
53
- };
54
-
55
- exports.attachPasswordObfuscatingHooks = attachPasswordObfuscatingHooks;
@@ -1 +0,0 @@
1
- {"version":3,"names":["obfuscatePassword","values","password","rest","hook","params","model","modelId","SETTINGS_MODEL_ID","input","entry","original","storageEntry","attachPasswordObfuscatingHooks","context","cms","onEntryAfterCreate","subscribe","onEntryCreateError","onEntryAfterUpdate","onEntryUpdateError"],"sources":["hooks.ts"],"sourcesContent":["import { MailerContext } from \"~/types\";\nimport {\n OnEntryAfterCreateTopicParams,\n OnEntryAfterUpdateTopicParams,\n OnEntryCreateErrorTopicParams,\n OnEntryUpdateErrorTopicParams\n} from \"@webiny/api-headless-cms/types\";\nimport { SETTINGS_MODEL_ID } from \"~/crud/settings/model\";\n\nconst obfuscatePassword = (values: Record<string, any>) => {\n // eslint-disable-next-line\n const { password, ...rest } = values;\n\n return { rest };\n};\n\ntype Params = (\n | OnEntryAfterCreateTopicParams\n | OnEntryCreateErrorTopicParams\n | OnEntryAfterUpdateTopicParams\n | OnEntryUpdateErrorTopicParams\n) & {\n storageEntry?: any;\n original?: any;\n};\n\nconst hook = async (params: Params) => {\n if (params.model.modelId !== SETTINGS_MODEL_ID) {\n return;\n }\n delete params.input[\"password\"];\n params.entry.values = obfuscatePassword(params.entry.values);\n if (typeof params.original !== \"undefined\") {\n params.original.values = obfuscatePassword(params.original.values);\n }\n if (params.storageEntry) {\n params.storageEntry.values = obfuscatePassword(params.storageEntry.values);\n }\n};\n/**\n * We need to remove password from all error reporting and all returns.\n */\nexport const attachPasswordObfuscatingHooks = (context: MailerContext) => {\n context.cms.onEntryAfterCreate.subscribe(hook);\n context.cms.onEntryCreateError.subscribe(hook);\n context.cms.onEntryAfterUpdate.subscribe(hook);\n context.cms.onEntryUpdateError.subscribe(hook);\n};\n"],"mappings":";;;;;;;;;;;AAOA;;;;AAEA,MAAMA,iBAAiB,GAAIC,MAAD,IAAiC;EACvD;EACA,MAAM;IAAEC;EAAF,IAAwBD,MAA9B;EAAA,MAAqBE,IAArB,0CAA8BF,MAA9B;EAEA,OAAO;IAAEE;EAAF,CAAP;AACH,CALD;;AAiBA,MAAMC,IAAI,GAAG,MAAOC,MAAP,IAA0B;EACnC,IAAIA,MAAM,CAACC,KAAP,CAAaC,OAAb,KAAyBC,wBAA7B,EAAgD;IAC5C;EACH;;EACD,OAAOH,MAAM,CAACI,KAAP,CAAa,UAAb,CAAP;EACAJ,MAAM,CAACK,KAAP,CAAaT,MAAb,GAAsBD,iBAAiB,CAACK,MAAM,CAACK,KAAP,CAAaT,MAAd,CAAvC;;EACA,IAAI,OAAOI,MAAM,CAACM,QAAd,KAA2B,WAA/B,EAA4C;IACxCN,MAAM,CAACM,QAAP,CAAgBV,MAAhB,GAAyBD,iBAAiB,CAACK,MAAM,CAACM,QAAP,CAAgBV,MAAjB,CAA1C;EACH;;EACD,IAAII,MAAM,CAACO,YAAX,EAAyB;IACrBP,MAAM,CAACO,YAAP,CAAoBX,MAApB,GAA6BD,iBAAiB,CAACK,MAAM,CAACO,YAAP,CAAoBX,MAArB,CAA9C;EACH;AACJ,CAZD;AAaA;AACA;AACA;;;AACO,MAAMY,8BAA8B,GAAIC,OAAD,IAA4B;EACtEA,OAAO,CAACC,GAAR,CAAYC,kBAAZ,CAA+BC,SAA/B,CAAyCb,IAAzC;EACAU,OAAO,CAACC,GAAR,CAAYG,kBAAZ,CAA+BD,SAA/B,CAAyCb,IAAzC;EACAU,OAAO,CAACC,GAAR,CAAYI,kBAAZ,CAA+BF,SAA/B,CAAyCb,IAAzC;EACAU,OAAO,CAACC,GAAR,CAAYK,kBAAZ,CAA+BH,SAA/B,CAAyCb,IAAzC;AACH,CALM"}
@@ -1,3 +0,0 @@
1
- import { CmsGroupPlugin } from "@webiny/api-headless-cms";
2
- export declare const SETTINGS_MODEL_ID = "mailerSettings";
3
- export declare const createSettingsModel: (group: CmsGroupPlugin) => import("@webiny/api-headless-cms").CmsModelPlugin;
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createSettingsModel = exports.SETTINGS_MODEL_ID = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _apiHeadlessCms = require("@webiny/api-headless-cms");
13
-
14
- var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
15
-
16
- const SETTINGS_MODEL_ID = "mailerSettings";
17
- exports.SETTINGS_MODEL_ID = SETTINGS_MODEL_ID;
18
-
19
- const createField = params => {
20
- const {
21
- label,
22
- required,
23
- type
24
- } = params;
25
- const id = (0, _camelCase.default)(label);
26
- const validation = [];
27
-
28
- if (required) {
29
- validation.push({
30
- message: `Field "${label}" is required!`,
31
- name: "required",
32
- settings: {}
33
- });
34
- }
35
-
36
- return {
37
- label,
38
- id,
39
- fieldId: id,
40
- storageId: id,
41
- type,
42
- validation
43
- };
44
- };
45
-
46
- const createTextField = params => {
47
- return createField((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
48
- type: "text"
49
- }));
50
- };
51
-
52
- const createNumberField = params => {
53
- return createField((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
54
- type: "number"
55
- }));
56
- };
57
-
58
- const createSettingsModel = group => {
59
- return (0, _apiHeadlessCms.createCmsModel)({
60
- modelId: SETTINGS_MODEL_ID,
61
- name: "Mailer Settings",
62
- group: {
63
- id: group.contentModelGroup.id,
64
- name: group.contentModelGroup.name
65
- },
66
- fields: [createTextField({
67
- label: "Host",
68
- required: true
69
- }), createNumberField({
70
- label: "Port"
71
- }), createTextField({
72
- label: "User",
73
- required: true
74
- }), createTextField({
75
- label: "Password",
76
- required: true
77
- }), createTextField({
78
- label: "From",
79
- required: true
80
- }), createTextField({
81
- label: "Reply-To"
82
- })],
83
- layout: [["host", "port", "user", "password", "from", "replyTo"]],
84
- description: "Mailer Settings",
85
- titleFieldId: "",
86
- isPrivate: true
87
- });
88
- };
89
-
90
- exports.createSettingsModel = createSettingsModel;
@@ -1 +0,0 @@
1
- {"version":3,"names":["SETTINGS_MODEL_ID","createField","params","label","required","type","id","lodashCamelCase","validation","push","message","name","settings","fieldId","storageId","createTextField","createNumberField","createSettingsModel","group","createCmsModel","modelId","contentModelGroup","fields","layout","description","titleFieldId","isPrivate"],"sources":["model.ts"],"sourcesContent":["import { createCmsModel, CmsGroupPlugin } from \"@webiny/api-headless-cms\";\nimport { CmsModelField, CmsModelFieldValidation } from \"@webiny/api-headless-cms/types\";\nimport lodashCamelCase from \"lodash/camelCase\";\n\nexport const SETTINGS_MODEL_ID = \"mailerSettings\";\n\ninterface CreateFieldParams {\n type: string;\n label: string;\n required?: boolean;\n}\nconst createField = (params: CreateFieldParams): CmsModelField => {\n const { label, required, type } = params;\n const id = lodashCamelCase(label);\n\n const validation: CmsModelFieldValidation[] = [];\n if (required) {\n validation.push({\n message: `Field \"${label}\" is required!`,\n name: \"required\",\n settings: {}\n });\n }\n return {\n label,\n id,\n fieldId: id,\n storageId: id,\n type,\n validation\n };\n};\n\nconst createTextField = (params: Omit<CreateFieldParams, \"type\">) => {\n return createField({\n ...params,\n type: \"text\"\n });\n};\nconst createNumberField = (params: Omit<CreateFieldParams, \"type\">) => {\n return createField({\n ...params,\n type: \"number\"\n });\n};\n\nexport const createSettingsModel = (group: CmsGroupPlugin) => {\n return createCmsModel({\n modelId: SETTINGS_MODEL_ID,\n name: \"Mailer Settings\",\n group: {\n id: group.contentModelGroup.id,\n name: group.contentModelGroup.name\n },\n fields: [\n createTextField({\n label: \"Host\",\n required: true\n }),\n createNumberField({\n label: \"Port\"\n }),\n createTextField({\n label: \"User\",\n required: true\n }),\n createTextField({\n label: \"Password\",\n required: true\n }),\n createTextField({\n label: \"From\",\n required: true\n }),\n createTextField({\n label: \"Reply-To\"\n })\n ],\n layout: [[\"host\", \"port\", \"user\", \"password\", \"from\", \"replyTo\"]],\n description: \"Mailer Settings\",\n titleFieldId: \"\",\n isPrivate: true\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AAEO,MAAMA,iBAAiB,GAAG,gBAA1B;;;AAOP,MAAMC,WAAW,GAAIC,MAAD,IAA8C;EAC9D,MAAM;IAAEC,KAAF;IAASC,QAAT;IAAmBC;EAAnB,IAA4BH,MAAlC;EACA,MAAMI,EAAE,GAAG,IAAAC,kBAAA,EAAgBJ,KAAhB,CAAX;EAEA,MAAMK,UAAqC,GAAG,EAA9C;;EACA,IAAIJ,QAAJ,EAAc;IACVI,UAAU,CAACC,IAAX,CAAgB;MACZC,OAAO,EAAG,UAASP,KAAM,gBADb;MAEZQ,IAAI,EAAE,UAFM;MAGZC,QAAQ,EAAE;IAHE,CAAhB;EAKH;;EACD,OAAO;IACHT,KADG;IAEHG,EAFG;IAGHO,OAAO,EAAEP,EAHN;IAIHQ,SAAS,EAAER,EAJR;IAKHD,IALG;IAMHG;EANG,CAAP;AAQH,CApBD;;AAsBA,MAAMO,eAAe,GAAIb,MAAD,IAA6C;EACjE,OAAOD,WAAW,6DACXC,MADW;IAEdG,IAAI,EAAE;EAFQ,GAAlB;AAIH,CALD;;AAMA,MAAMW,iBAAiB,GAAId,MAAD,IAA6C;EACnE,OAAOD,WAAW,6DACXC,MADW;IAEdG,IAAI,EAAE;EAFQ,GAAlB;AAIH,CALD;;AAOO,MAAMY,mBAAmB,GAAIC,KAAD,IAA2B;EAC1D,OAAO,IAAAC,8BAAA,EAAe;IAClBC,OAAO,EAAEpB,iBADS;IAElBW,IAAI,EAAE,iBAFY;IAGlBO,KAAK,EAAE;MACHZ,EAAE,EAAEY,KAAK,CAACG,iBAAN,CAAwBf,EADzB;MAEHK,IAAI,EAAEO,KAAK,CAACG,iBAAN,CAAwBV;IAF3B,CAHW;IAOlBW,MAAM,EAAE,CACJP,eAAe,CAAC;MACZZ,KAAK,EAAE,MADK;MAEZC,QAAQ,EAAE;IAFE,CAAD,CADX,EAKJY,iBAAiB,CAAC;MACdb,KAAK,EAAE;IADO,CAAD,CALb,EAQJY,eAAe,CAAC;MACZZ,KAAK,EAAE,MADK;MAEZC,QAAQ,EAAE;IAFE,CAAD,CARX,EAYJW,eAAe,CAAC;MACZZ,KAAK,EAAE,UADK;MAEZC,QAAQ,EAAE;IAFE,CAAD,CAZX,EAgBJW,eAAe,CAAC;MACZZ,KAAK,EAAE,MADK;MAEZC,QAAQ,EAAE;IAFE,CAAD,CAhBX,EAoBJW,eAAe,CAAC;MACZZ,KAAK,EAAE;IADK,CAAD,CApBX,CAPU;IA+BlBoB,MAAM,EAAE,CAAC,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,EAAyB,UAAzB,EAAqC,MAArC,EAA6C,SAA7C,CAAD,CA/BU;IAgClBC,WAAW,EAAE,iBAhCK;IAiClBC,YAAY,EAAE,EAjCI;IAkClBC,SAAS,EAAE;EAlCO,CAAf,CAAP;AAoCH,CArCM"}
@@ -1,7 +0,0 @@
1
- interface Params {
2
- value?: string | null;
3
- secret?: string | null;
4
- }
5
- export declare const decrypt: (params: Params) => string;
6
- export declare const encrypt: (params: Params) => string;
7
- export {};
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.encrypt = exports.decrypt = void 0;
9
-
10
- var _cryptoJs = _interopRequireDefault(require("crypto-js"));
11
-
12
- var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
- const decrypt = params => {
15
- const {
16
- value,
17
- secret
18
- } = params;
19
-
20
- if (!secret) {
21
- throw new _error.default(`Cannot call decrypt without passing the secret.`);
22
- }
23
-
24
- if (!value) {
25
- return "";
26
- }
27
-
28
- try {
29
- const bytes = _cryptoJs.default.AES.decrypt(value, secret);
30
-
31
- const result = bytes.toString(_cryptoJs.default.enc.Utf8);
32
-
33
- if (!result) {
34
- console.log(`Error while converting decrypted password bytes into string. `);
35
- return "";
36
- }
37
-
38
- return result;
39
- } catch (ex) {
40
- console.log(`Could not decrypt given encrypted password.`);
41
- }
42
-
43
- return "";
44
- };
45
-
46
- exports.decrypt = decrypt;
47
-
48
- const encrypt = params => {
49
- const {
50
- value,
51
- secret
52
- } = params;
53
-
54
- if (!secret) {
55
- throw new _error.default(`Cannot call decrypt without passing the secret.`);
56
- }
57
-
58
- if (!value) {
59
- return "";
60
- }
61
-
62
- try {
63
- return _cryptoJs.default.AES.encrypt(value, secret).toString();
64
- } catch (ex) {
65
- console.log(`Could not encrypt given password.`);
66
- }
67
-
68
- return "";
69
- };
70
-
71
- exports.encrypt = encrypt;
@@ -1 +0,0 @@
1
- {"version":3,"names":["decrypt","params","value","secret","WebinyError","bytes","CryptoJS","AES","result","toString","enc","Utf8","console","log","ex","encrypt"],"sources":["password.ts"],"sourcesContent":["import CryptoJS from \"crypto-js\";\nimport WebinyError from \"@webiny/error\";\n\ninterface Params {\n value?: string | null;\n secret?: string | null;\n}\n\nexport const decrypt = (params: Params): string => {\n const { value, secret } = params;\n if (!secret) {\n throw new WebinyError(`Cannot call decrypt without passing the secret.`);\n }\n if (!value) {\n return \"\";\n }\n try {\n const bytes = CryptoJS.AES.decrypt(value, secret);\n const result = bytes.toString(CryptoJS.enc.Utf8);\n if (!result) {\n console.log(`Error while converting decrypted password bytes into string. `);\n return \"\";\n }\n return result;\n } catch (ex) {\n console.log(`Could not decrypt given encrypted password.`);\n }\n return \"\";\n};\n\nexport const encrypt = (params: Params): string => {\n const { value, secret } = params;\n if (!secret) {\n throw new WebinyError(`Cannot call decrypt without passing the secret.`);\n }\n if (!value) {\n return \"\";\n }\n try {\n return CryptoJS.AES.encrypt(value, secret).toString();\n } catch (ex) {\n console.log(`Could not encrypt given password.`);\n }\n return \"\";\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAOO,MAAMA,OAAO,GAAIC,MAAD,IAA4B;EAC/C,MAAM;IAAEC,KAAF;IAASC;EAAT,IAAoBF,MAA1B;;EACA,IAAI,CAACE,MAAL,EAAa;IACT,MAAM,IAAIC,cAAJ,CAAiB,iDAAjB,CAAN;EACH;;EACD,IAAI,CAACF,KAAL,EAAY;IACR,OAAO,EAAP;EACH;;EACD,IAAI;IACA,MAAMG,KAAK,GAAGC,iBAAA,CAASC,GAAT,CAAaP,OAAb,CAAqBE,KAArB,EAA4BC,MAA5B,CAAd;;IACA,MAAMK,MAAM,GAAGH,KAAK,CAACI,QAAN,CAAeH,iBAAA,CAASI,GAAT,CAAaC,IAA5B,CAAf;;IACA,IAAI,CAACH,MAAL,EAAa;MACTI,OAAO,CAACC,GAAR,CAAa,+DAAb;MACA,OAAO,EAAP;IACH;;IACD,OAAOL,MAAP;EACH,CARD,CAQE,OAAOM,EAAP,EAAW;IACTF,OAAO,CAACC,GAAR,CAAa,6CAAb;EACH;;EACD,OAAO,EAAP;AACH,CApBM;;;;AAsBA,MAAME,OAAO,GAAId,MAAD,IAA4B;EAC/C,MAAM;IAAEC,KAAF;IAASC;EAAT,IAAoBF,MAA1B;;EACA,IAAI,CAACE,MAAL,EAAa;IACT,MAAM,IAAIC,cAAJ,CAAiB,iDAAjB,CAAN;EACH;;EACD,IAAI,CAACF,KAAL,EAAY;IACR,OAAO,EAAP;EACH;;EACD,IAAI;IACA,OAAOI,iBAAA,CAASC,GAAT,CAAaQ,OAAb,CAAqBb,KAArB,EAA4BC,MAA5B,EAAoCM,QAApC,EAAP;EACH,CAFD,CAEE,OAAOK,EAAP,EAAW;IACTF,OAAO,CAACC,GAAR,CAAa,mCAAb;EACH;;EACD,OAAO,EAAP;AACH,CAdM"}
@@ -1 +0,0 @@
1
- export declare const getSecret: () => string;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getSecret = void 0;
9
-
10
- var _error = _interopRequireDefault(require("@webiny/error"));
11
-
12
- const getSecret = () => {
13
- const envValue = process.env.WEBINY_MAILER_PASSWORD_SECRET;
14
- const value = String(envValue).trim();
15
-
16
- if (!envValue || !value) {
17
- throw new _error.default(`There must be a password secret defined!`, "PASSWORD_SECRET_ERROR");
18
- }
19
-
20
- return value;
21
- };
22
-
23
- exports.getSecret = getSecret;
@@ -1 +0,0 @@
1
- {"version":3,"names":["getSecret","envValue","process","env","WEBINY_MAILER_PASSWORD_SECRET","value","String","trim","WebinyError"],"sources":["secret.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nexport const getSecret = (): string => {\n const envValue = process.env.WEBINY_MAILER_PASSWORD_SECRET;\n\n const value = String(envValue).trim();\n if (!envValue || !value) {\n throw new WebinyError(`There must be a password secret defined!`, \"PASSWORD_SECRET_ERROR\");\n }\n return value;\n};\n"],"mappings":";;;;;;;;;AAAA;;AAEO,MAAMA,SAAS,GAAG,MAAc;EACnC,MAAMC,QAAQ,GAAGC,OAAO,CAACC,GAAR,CAAYC,6BAA7B;EAEA,MAAMC,KAAK,GAAGC,MAAM,CAACL,QAAD,CAAN,CAAiBM,IAAjB,EAAd;;EACA,IAAI,CAACN,QAAD,IAAa,CAACI,KAAlB,EAAyB;IACrB,MAAM,IAAIG,cAAJ,CAAiB,0CAAjB,EAA4D,uBAA5D,CAAN;EACH;;EACD,OAAOH,KAAP;AACH,CARM"}
@@ -1,13 +0,0 @@
1
- import { ExtendedTransportSettings, TransportSettings } from "../../types";
2
- import { CmsEntry } from "@webiny/api-headless-cms/types";
3
- interface TransformValuesFromEntryParams {
4
- entry: CmsEntry<TransportSettings>;
5
- secret: string | null;
6
- }
7
- export declare const transformValuesFromEntry: (params: TransformValuesFromEntryParams) => ExtendedTransportSettings;
8
- interface TransformValuesToEntryValuesParams {
9
- values: TransportSettings;
10
- secret: string | null;
11
- }
12
- export declare const transformInputToEntryValues: (params: TransformValuesToEntryValuesParams) => TransportSettings;
13
- export {};
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.transformValuesFromEntry = exports.transformInputToEntryValues = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
- var _password = require("./password");
15
-
16
- const transformValuesFromEntry = params => {
17
- const {
18
- entry,
19
- secret
20
- } = params;
21
-
22
- if (!secret) {
23
- throw new _error.default(`There is no secret defined. Without it we cannot decrypt the password.`);
24
- }
25
-
26
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({
27
- id: entry.id
28
- }, entry.values), {}, {
29
- password: (0, _password.decrypt)({
30
- value: entry.values.password,
31
- secret
32
- })
33
- });
34
- };
35
-
36
- exports.transformValuesFromEntry = transformValuesFromEntry;
37
-
38
- const transformInputToEntryValues = params => {
39
- const {
40
- values,
41
- secret
42
- } = params;
43
-
44
- if (!secret) {
45
- throw new _error.default(`There is no secret defined. Without it we cannot decrypt the password.`);
46
- }
47
-
48
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, values), {}, {
49
- password: (0, _password.encrypt)({
50
- value: values.password,
51
- secret
52
- })
53
- });
54
- };
55
-
56
- exports.transformInputToEntryValues = transformInputToEntryValues;
@@ -1 +0,0 @@
1
- {"version":3,"names":["transformValuesFromEntry","params","entry","secret","WebinyError","id","values","password","decrypt","value","transformInputToEntryValues","encrypt"],"sources":["transform.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ExtendedTransportSettings, TransportSettings } from \"~/types\";\nimport { decrypt, encrypt } from \"./password\";\nimport { CmsEntry } from \"@webiny/api-headless-cms/types\";\n\ninterface TransformValuesFromEntryParams {\n entry: CmsEntry<TransportSettings>;\n secret: string | null;\n}\nexport const transformValuesFromEntry = (\n params: TransformValuesFromEntryParams\n): ExtendedTransportSettings => {\n const { entry, secret } = params;\n if (!secret) {\n throw new WebinyError(\n `There is no secret defined. Without it we cannot decrypt the password.`\n );\n }\n return {\n id: entry.id,\n ...entry.values,\n password: decrypt({\n value: entry.values.password,\n secret\n })\n };\n};\n\ninterface TransformValuesToEntryValuesParams {\n values: TransportSettings;\n secret: string | null;\n}\nexport const transformInputToEntryValues = (\n params: TransformValuesToEntryValuesParams\n): TransportSettings => {\n const { values, secret } = params;\n\n if (!secret) {\n throw new WebinyError(\n `There is no secret defined. Without it we cannot decrypt the password.`\n );\n }\n\n return {\n ...values,\n password: encrypt({\n value: values.password,\n secret\n })\n };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AAOO,MAAMA,wBAAwB,GACjCC,MADoC,IAER;EAC5B,MAAM;IAAEC,KAAF;IAASC;EAAT,IAAoBF,MAA1B;;EACA,IAAI,CAACE,MAAL,EAAa;IACT,MAAM,IAAIC,cAAJ,CACD,wEADC,CAAN;EAGH;;EACD;IACIC,EAAE,EAAEH,KAAK,CAACG;EADd,GAEOH,KAAK,CAACI,MAFb;IAGIC,QAAQ,EAAE,IAAAC,iBAAA,EAAQ;MACdC,KAAK,EAAEP,KAAK,CAACI,MAAN,CAAaC,QADN;MAEdJ;IAFc,CAAR;EAHd;AAQH,CAjBM;;;;AAuBA,MAAMO,2BAA2B,GACpCT,MADuC,IAEnB;EACpB,MAAM;IAAEK,MAAF;IAAUH;EAAV,IAAqBF,MAA3B;;EAEA,IAAI,CAACE,MAAL,EAAa;IACT,MAAM,IAAIC,cAAJ,CACD,wEADC,CAAN;EAGH;;EAED,mEACOE,MADP;IAEIC,QAAQ,EAAE,IAAAI,iBAAA,EAAQ;MACdF,KAAK,EAAEH,MAAM,CAACC,QADA;MAEdJ;IAFc,CAAR;EAFd;AAOH,CAlBM"}
@@ -1,4 +0,0 @@
1
- import joi from "joi";
2
- import { TransportSettings } from "../../types";
3
- export declare const createValidation: joi.ObjectSchema<TransportSettings>;
4
- export declare const updateValidation: joi.ObjectSchema<TransportSettings>;
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.updateValidation = exports.createValidation = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _joi = _interopRequireDefault(require("joi"));
13
-
14
- const options = {
15
- tlds: false
16
- };
17
-
18
- const password = _joi.default.string().label("Password");
19
-
20
- const common = {
21
- from: _joi.default.string().email(options).required().label("Mail from"),
22
- port: _joi.default.number().label("Port").default(25),
23
- replyTo: _joi.default.string().email(options).optional().label("Mail reply-to"),
24
- host: _joi.default.string().required().label("Hostname"),
25
- user: _joi.default.string().required().label("User")
26
- };
27
-
28
- const createValidation = _joi.default.object((0, _objectSpread2.default)((0, _objectSpread2.default)({}, common), {}, {
29
- password: password.required()
30
- })).required();
31
-
32
- exports.createValidation = createValidation;
33
-
34
- const updateValidation = _joi.default.object((0, _objectSpread2.default)((0, _objectSpread2.default)({}, common), {}, {
35
- password
36
- })).required();
37
-
38
- exports.updateValidation = updateValidation;
@@ -1 +0,0 @@
1
- {"version":3,"names":["options","tlds","password","joi","string","label","common","from","email","required","port","number","default","replyTo","optional","host","user","createValidation","object","updateValidation"],"sources":["validation.ts"],"sourcesContent":["import joi, { EmailOptions } from \"joi\";\nimport { TransportSettings } from \"~/types\";\n\nconst options: EmailOptions = {\n tlds: false\n};\n\nconst password = joi.string().label(\"Password\");\nconst common = {\n from: joi.string().email(options).required().label(\"Mail from\"),\n port: joi.number().label(\"Port\").default(25),\n replyTo: joi.string().email(options).optional().label(\"Mail reply-to\"),\n host: joi.string().required().label(\"Hostname\"),\n user: joi.string().required().label(\"User\")\n};\n\nexport const createValidation = joi\n .object<TransportSettings>({\n ...common,\n password: password.required()\n })\n .required();\n\nexport const updateValidation = joi\n .object<TransportSettings>({\n ...common,\n password\n })\n .required();\n"],"mappings":";;;;;;;;;;;AAAA;;AAGA,MAAMA,OAAqB,GAAG;EAC1BC,IAAI,EAAE;AADoB,CAA9B;;AAIA,MAAMC,QAAQ,GAAGC,YAAA,CAAIC,MAAJ,GAAaC,KAAb,CAAmB,UAAnB,CAAjB;;AACA,MAAMC,MAAM,GAAG;EACXC,IAAI,EAAEJ,YAAA,CAAIC,MAAJ,GAAaI,KAAb,CAAmBR,OAAnB,EAA4BS,QAA5B,GAAuCJ,KAAvC,CAA6C,WAA7C,CADK;EAEXK,IAAI,EAAEP,YAAA,CAAIQ,MAAJ,GAAaN,KAAb,CAAmB,MAAnB,EAA2BO,OAA3B,CAAmC,EAAnC,CAFK;EAGXC,OAAO,EAAEV,YAAA,CAAIC,MAAJ,GAAaI,KAAb,CAAmBR,OAAnB,EAA4Bc,QAA5B,GAAuCT,KAAvC,CAA6C,eAA7C,CAHE;EAIXU,IAAI,EAAEZ,YAAA,CAAIC,MAAJ,GAAaK,QAAb,GAAwBJ,KAAxB,CAA8B,UAA9B,CAJK;EAKXW,IAAI,EAAEb,YAAA,CAAIC,MAAJ,GAAaK,QAAb,GAAwBJ,KAAxB,CAA8B,MAA9B;AALK,CAAf;;AAQO,MAAMY,gBAAgB,GAAGd,YAAA,CAC3Be,MAD2B,6DAErBZ,MAFqB;EAGxBJ,QAAQ,EAAEA,QAAQ,CAACO,QAAT;AAHc,IAK3BA,QAL2B,EAAzB;;;;AAOA,MAAMU,gBAAgB,GAAGhB,YAAA,CAC3Be,MAD2B,6DAErBZ,MAFqB;EAGxBJ;AAHwB,IAK3BO,QAL2B,EAAzB"}
@@ -1,5 +0,0 @@
1
- import { MailerContext, MailerSettingsContext } from "../types";
2
- /**
3
- * Note that settings cannot be used if there is no secret defined.
4
- */
5
- export declare const createSettingsCrud: (context: MailerContext) => Promise<MailerSettingsContext>;