@webiny/api-mailer 0.0.0-unstable.bca7b3e350 → 0.0.0-unstable.c27f4d8a31

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 (165) hide show
  1. package/README.md +10 -13
  2. package/constants.d.ts +1 -0
  3. package/constants.js +3 -0
  4. package/constants.js.map +1 -0
  5. package/domain/Encryption/abstractions.d.ts +8 -0
  6. package/domain/Encryption/abstractions.js +4 -0
  7. package/domain/Encryption/abstractions.js.map +1 -0
  8. package/domain/MailTransport/abstractions.d.ts +18 -0
  9. package/domain/MailTransport/abstractions.js +5 -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 +4 -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 +30 -0
  16. package/domain/MailerService/errors.js.map +1 -0
  17. package/domain/errors.d.ts +24 -0
  18. package/domain/errors.js +44 -0
  19. package/domain/errors.js.map +1 -0
  20. package/features/DummyTransport/DummyMailTransport.d.ts +9 -0
  21. package/features/DummyTransport/DummyMailTransport.js +12 -0
  22. package/features/DummyTransport/DummyMailTransport.js.map +1 -0
  23. package/features/DummyTransport/DummyMailTransportFactory.d.ts +8 -0
  24. package/features/DummyTransport/DummyMailTransportFactory.js +13 -0
  25. package/features/DummyTransport/DummyMailTransportFactory.js.map +1 -0
  26. package/features/DummyTransport/feature.d.ts +1 -0
  27. package/features/DummyTransport/feature.js +10 -0
  28. package/features/DummyTransport/feature.js.map +1 -0
  29. package/features/Encryption/PasswordEncryption.d.ts +9 -0
  30. package/features/Encryption/PasswordEncryption.js +23 -0
  31. package/features/Encryption/PasswordEncryption.js.map +1 -0
  32. package/features/Encryption/feature.d.ts +1 -0
  33. package/features/Encryption/feature.js +10 -0
  34. package/features/Encryption/feature.js.map +1 -0
  35. package/features/Encryption/utils/password.js +56 -0
  36. package/features/Encryption/utils/password.js.map +1 -0
  37. package/features/Encryption/utils/secret.js +11 -0
  38. package/features/Encryption/utils/secret.js.map +1 -0
  39. package/features/GetSettings/GetSettingsRepository.d.ts +15 -0
  40. package/features/GetSettings/GetSettingsRepository.js +39 -0
  41. package/features/GetSettings/GetSettingsRepository.js.map +1 -0
  42. package/features/GetSettings/GetSettingsUseCase.d.ts +12 -0
  43. package/features/GetSettings/GetSettingsUseCase.js +15 -0
  44. package/features/GetSettings/GetSettingsUseCase.js.map +1 -0
  45. package/features/GetSettings/abstractions.d.ts +16 -0
  46. package/features/GetSettings/abstractions.js +5 -0
  47. package/features/GetSettings/abstractions.js.map +1 -0
  48. package/features/GetSettings/feature.d.ts +1 -0
  49. package/features/GetSettings/feature.js +12 -0
  50. package/features/GetSettings/feature.js.map +1 -0
  51. package/features/GetSettings/index.d.ts +1 -0
  52. package/features/GetSettings/index.js +3 -0
  53. package/features/GetSettings/index.js.map +1 -0
  54. package/features/MailerService/MailerService.d.ts +15 -0
  55. package/features/MailerService/MailerService.js +52 -0
  56. package/features/MailerService/MailerService.js.map +1 -0
  57. package/features/MailerService/TransportFactory.d.ts +2 -0
  58. package/features/MailerService/TransportFactory.js +31 -0
  59. package/features/MailerService/TransportFactory.js.map +1 -0
  60. package/features/MailerService/feature.d.ts +1 -0
  61. package/features/MailerService/feature.js +10 -0
  62. package/features/MailerService/feature.js.map +1 -0
  63. package/features/SaveSettings/SaveSettingsRepository.d.ts +13 -0
  64. package/features/SaveSettings/SaveSettingsRepository.js +57 -0
  65. package/features/SaveSettings/SaveSettingsRepository.js.map +1 -0
  66. package/features/SaveSettings/SaveSettingsUseCase.d.ts +14 -0
  67. package/features/SaveSettings/SaveSettingsUseCase.js +51 -0
  68. package/features/SaveSettings/SaveSettingsUseCase.js.map +1 -0
  69. package/features/SaveSettings/abstractions.d.ts +53 -0
  70. package/features/SaveSettings/abstractions.js +11 -0
  71. package/features/SaveSettings/abstractions.js.map +1 -0
  72. package/features/SaveSettings/events.d.ts +10 -0
  73. package/features/SaveSettings/events.js +16 -0
  74. package/features/SaveSettings/events.js.map +1 -0
  75. package/features/SaveSettings/feature.d.ts +1 -0
  76. package/features/SaveSettings/feature.js +12 -0
  77. package/features/SaveSettings/feature.js.map +1 -0
  78. package/features/SaveSettings/index.d.ts +1 -0
  79. package/features/SaveSettings/index.js +3 -0
  80. package/features/SaveSettings/index.js.map +1 -0
  81. package/features/SaveSettings/validation.d.ts +9 -0
  82. package/features/SaveSettings/validation.js +19 -0
  83. package/features/SaveSettings/validation.js.map +1 -0
  84. package/features/SendMail/SendMailUseCase.d.ts +16 -0
  85. package/features/SendMail/SendMailUseCase.js +62 -0
  86. package/features/SendMail/SendMailUseCase.js.map +1 -0
  87. package/features/SendMail/abstractions.d.ts +45 -0
  88. package/features/SendMail/abstractions.js +11 -0
  89. package/features/SendMail/abstractions.js.map +1 -0
  90. package/features/SendMail/events.d.ts +14 -0
  91. package/features/SendMail/events.js +22 -0
  92. package/features/SendMail/events.js.map +1 -0
  93. package/features/SendMail/feature.d.ts +1 -0
  94. package/features/SendMail/feature.js +10 -0
  95. package/features/SendMail/feature.js.map +1 -0
  96. package/features/SmtpTransport/SmtpConfig.d.ts +6 -0
  97. package/features/SmtpTransport/SmtpConfig.js +29 -0
  98. package/features/SmtpTransport/SmtpConfig.js.map +1 -0
  99. package/features/SmtpTransport/SmtpMailTransport.d.ts +18 -0
  100. package/features/SmtpTransport/SmtpMailTransport.js +61 -0
  101. package/features/SmtpTransport/SmtpMailTransport.js.map +1 -0
  102. package/features/SmtpTransport/SmtpMailTransportFactory.d.ts +9 -0
  103. package/features/SmtpTransport/SmtpMailTransportFactory.js +14 -0
  104. package/features/SmtpTransport/SmtpMailTransportFactory.js.map +1 -0
  105. package/features/SmtpTransport/feature.d.ts +1 -0
  106. package/features/SmtpTransport/feature.js +10 -0
  107. package/features/SmtpTransport/feature.js.map +1 -0
  108. package/graphql/settings.d.ts +2 -2
  109. package/graphql/settings.js +50 -36
  110. package/graphql/settings.js.map +1 -1
  111. package/index.d.ts +4 -8
  112. package/index.js +25 -72
  113. package/index.js.map +1 -1
  114. package/package.json +32 -42
  115. package/types.d.ts +1 -108
  116. package/types.js +2 -4
  117. package/types.js.map +1 -1
  118. package/context.d.ts +0 -3
  119. package/context.js +0 -17
  120. package/context.js.map +0 -1
  121. package/crud/group.d.ts +0 -2
  122. package/crud/group.js +0 -18
  123. package/crud/group.js.map +0 -1
  124. package/crud/settings/hooks.d.ts +0 -5
  125. package/crud/settings/hooks.js +0 -43
  126. package/crud/settings/hooks.js.map +0 -1
  127. package/crud/settings/model.d.ts +0 -3
  128. package/crud/settings/model.js +0 -78
  129. package/crud/settings/model.js.map +0 -1
  130. package/crud/settings/password.js +0 -53
  131. package/crud/settings/password.js.map +0 -1
  132. package/crud/settings/secret.js +0 -17
  133. package/crud/settings/secret.js.map +0 -1
  134. package/crud/settings/transform.d.ts +0 -13
  135. package/crud/settings/transform.js +0 -44
  136. package/crud/settings/transform.js.map +0 -1
  137. package/crud/settings/validation.d.ts +0 -45
  138. package/crud/settings/validation.js +0 -25
  139. package/crud/settings/validation.js.map +0 -1
  140. package/crud/settings.crud.d.ts +0 -5
  141. package/crud/settings.crud.js +0 -274
  142. package/crud/settings.crud.js.map +0 -1
  143. package/crud/transport/onTransportBeforeSend.d.ts +0 -7
  144. package/crud/transport/onTransportBeforeSend.js +0 -58
  145. package/crud/transport/onTransportBeforeSend.js.map +0 -1
  146. package/crud/transporter.crud.d.ts +0 -2
  147. package/crud/transporter.crud.js +0 -156
  148. package/crud/transporter.crud.js.map +0 -1
  149. package/graphql/index.d.ts +0 -1
  150. package/graphql/index.js +0 -11
  151. package/graphql/index.js.map +0 -1
  152. package/plugins/CreateTransportPlugin.d.ts +0 -17
  153. package/plugins/CreateTransportPlugin.js +0 -25
  154. package/plugins/CreateTransportPlugin.js.map +0 -1
  155. package/plugins/index.d.ts +0 -1
  156. package/plugins/index.js +0 -16
  157. package/plugins/index.js.map +0 -1
  158. package/transports/createDummyTransport.d.ts +0 -5
  159. package/transports/createDummyTransport.js +0 -23
  160. package/transports/createDummyTransport.js.map +0 -1
  161. package/transports/createSmtpTransport.d.ts +0 -12
  162. package/transports/createSmtpTransport.js +0 -86
  163. package/transports/createSmtpTransport.js.map +0 -1
  164. /package/{crud/settings → features/Encryption/utils}/password.d.ts +0 -0
  165. /package/{crud/settings → features/Encryption/utils}/secret.d.ts +0 -0
package/index.js CHANGED
@@ -1,74 +1,27 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "createDummyTransport", {
8
- enumerable: true,
9
- get: function () {
10
- return _createDummyTransport.createDummyTransport;
11
- }
12
- });
13
- exports.createMailerGraphQL = exports.createMailerContext = void 0;
14
- Object.defineProperty(exports, "createSmtpTransport", {
15
- enumerable: true,
16
- get: function () {
17
- return _createSmtpTransport.createSmtpTransport;
18
- }
19
- });
20
- Object.defineProperty(exports, "createTransport", {
21
- enumerable: true,
22
- get: function () {
23
- return _plugins.createTransport;
24
- }
25
- });
26
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
27
- var _context = require("./context");
28
- var _createDummyTransport = require("./transports/createDummyTransport");
29
- var _createSmtpTransport = require("./transports/createSmtpTransport");
30
- var _plugins = require("./plugins");
31
- var _model = require("./crud/settings/model");
32
- var _group = require("./crud/group");
33
- var _graphql = require("./graphql");
34
- const createMailerContext = () => {
35
- const group = (0, _group.createGroup)();
36
- return [group,
37
- /**
38
- * Groups and models to use via the CMS
39
- */
40
- (0, _model.createSettingsModel)(group),
41
- /**
42
- * If something is wrong with the smtp mailer, we will initialize the dummy one.
43
- */
44
- (0, _plugins.createTransport)(async () => {
45
- const plugin = await (0, _createDummyTransport.createDummyTransport)();
46
- plugin.name = "dummy-default";
47
- return plugin;
48
- }),
49
- /**
50
- * Smtp mailer goes into the plugins after the dummy one because plugins are loaded in reverse.
51
- */
52
- (0, _plugins.createTransport)(async ({
53
- settings
54
- }) => {
55
- /**
56
- * We need to map our settings to the required settings for the SMTP NodeMailer transport.
57
- */
58
- const config = (0, _objectSpread2.default)({}, settings || {});
59
- if (settings) {
60
- config.auth = {
61
- user: settings.user,
62
- pass: settings.password
63
- };
64
- }
65
- const plugin = await (0, _createSmtpTransport.createSmtpTransport)(config);
66
- plugin.name = "smtp-default";
67
- return plugin;
68
- }), (0, _context.createMailerContext)()];
1
+ import { createContextPlugin } from "@webiny/api";
2
+ import { EncryptionFeature } from "./features/Encryption/feature.js";
3
+ import { GetSettingsFeature } from "./features/GetSettings/feature.js";
4
+ import { SaveSettingsFeature } from "./features/SaveSettings/feature.js";
5
+ import { DummyTransportFeature } from "./features/DummyTransport/feature.js";
6
+ import { SmtpTransportFeature } from "./features/SmtpTransport/feature.js";
7
+ import { MailerServiceFeature } from "./features/MailerService/feature.js";
8
+ import { SendMailFeature } from "./features/SendMail/feature.js";
9
+ import { createSettingsGraphQL } from "./graphql/settings.js";
10
+ export { MailerService } from "./domain/MailerService/abstractions.js";
11
+ export const createMailerContext = () => {
12
+ return createContextPlugin(context => {
13
+ // Register all features
14
+ EncryptionFeature.register(context.container);
15
+ DummyTransportFeature.register(context.container);
16
+ SmtpTransportFeature.register(context.container);
17
+ GetSettingsFeature.register(context.container);
18
+ SaveSettingsFeature.register(context.container);
19
+ MailerServiceFeature.register(context.container);
20
+ SendMailFeature.register(context.container);
21
+ });
69
22
  };
70
- exports.createMailerContext = createMailerContext;
71
- const createMailerGraphQL = () => {
72
- return [...(0, _graphql.createGraphQL)()];
23
+ export const createMailerGraphQL = () => {
24
+ return createSettingsGraphQL();
73
25
  };
74
- exports.createMailerGraphQL = createMailerGraphQL;
26
+
27
+ //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createMailerContext","group","createGroup","createSettingsModel","createTransport","plugin","createDummyTransport","name","settings","config","auth","user","pass","password","createSmtpTransport","createMailerContextPlugin","createMailerGraphQL","createGraphQL"],"sources":["index.ts"],"sourcesContent":["import { PluginCollection } from \"@webiny/plugins/types\";\nimport { createMailerContext as createMailerContextPlugin } from \"~/context\";\nimport { createDummyTransport, DummyTransport } from \"~/transports/createDummyTransport\";\nimport {\n createSmtpTransport,\n SmtpTransport,\n SmtpTransportConfig\n} from \"~/transports/createSmtpTransport\";\nimport { createTransport } from \"~/plugins\";\nimport { createSettingsModel } from \"~/crud/settings/model\";\nimport { createGroup } from \"~/crud/group\";\nimport { createGraphQL } from \"~/graphql\";\n\nexport { createDummyTransport, createSmtpTransport, createTransport };\nexport type { SmtpTransport, SmtpTransportConfig, DummyTransport };\n\nexport const createMailerContext = (): PluginCollection => {\n const group = createGroup();\n return [\n group,\n /**\n * Groups and models to use via the CMS\n */\n createSettingsModel(group),\n /**\n * If something is wrong with the smtp mailer, we will initialize the dummy one.\n */\n createTransport(async () => {\n const plugin = await createDummyTransport();\n plugin.name = \"dummy-default\";\n return plugin;\n }),\n /**\n * Smtp mailer goes into the plugins after the dummy one because plugins are loaded in reverse.\n */\n createTransport(async ({ settings }) => {\n /**\n * We need to map our settings to the required settings for the SMTP NodeMailer transport.\n */\n const config: SmtpTransportConfig = {\n ...(settings || {})\n };\n if (settings) {\n config.auth = {\n user: settings.user,\n pass: settings.password\n };\n }\n const plugin = await createSmtpTransport(config);\n plugin.name = \"smtp-default\";\n return plugin;\n }),\n createMailerContextPlugin()\n ];\n};\n\nexport const createMailerGraphQL = () => {\n return [...createGraphQL()];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAKO,MAAMA,mBAAmB,GAAG,MAAwB;EACvD,MAAMC,KAAK,GAAG,IAAAC,kBAAW,GAAE;EAC3B,OAAO,CACHD,KAAK;EACL;AACR;AACA;EACQ,IAAAE,0BAAmB,EAACF,KAAK,CAAC;EAC1B;AACR;AACA;EACQ,IAAAG,wBAAe,EAAC,YAAY;IACxB,MAAMC,MAAM,GAAG,MAAM,IAAAC,0CAAoB,GAAE;IAC3CD,MAAM,CAACE,IAAI,GAAG,eAAe;IAC7B,OAAOF,MAAM;EACjB,CAAC,CAAC;EACF;AACR;AACA;EACQ,IAAAD,wBAAe,EAAC,OAAO;IAAEI;EAAS,CAAC,KAAK;IACpC;AACZ;AACA;IACY,MAAMC,MAA2B,mCACzBD,QAAQ,IAAI,CAAC,CAAC,CACrB;IACD,IAAIA,QAAQ,EAAE;MACVC,MAAM,CAACC,IAAI,GAAG;QACVC,IAAI,EAAEH,QAAQ,CAACG,IAAI;QACnBC,IAAI,EAAEJ,QAAQ,CAACK;MACnB,CAAC;IACL;IACA,MAAMR,MAAM,GAAG,MAAM,IAAAS,wCAAmB,EAACL,MAAM,CAAC;IAChDJ,MAAM,CAACE,IAAI,GAAG,cAAc;IAC5B,OAAOF,MAAM;EACjB,CAAC,CAAC,EACF,IAAAU,4BAAyB,GAAE,CAC9B;AACL,CAAC;AAAC;AAEK,MAAMC,mBAAmB,GAAG,MAAM;EACrC,OAAO,CAAC,GAAG,IAAAC,sBAAa,GAAE,CAAC;AAC/B,CAAC;AAAC"}
1
+ {"version":3,"names":["createContextPlugin","EncryptionFeature","GetSettingsFeature","SaveSettingsFeature","DummyTransportFeature","SmtpTransportFeature","MailerServiceFeature","SendMailFeature","createSettingsGraphQL","MailerService","createMailerContext","context","register","container","createMailerGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { EncryptionFeature } from \"~/features/Encryption/feature.js\";\nimport { GetSettingsFeature } from \"~/features/GetSettings/feature.js\";\nimport { SaveSettingsFeature } from \"~/features/SaveSettings/feature.js\";\nimport { DummyTransportFeature } from \"~/features/DummyTransport/feature.js\";\nimport { SmtpTransportFeature } from \"~/features/SmtpTransport/feature.js\";\nimport { MailerServiceFeature } from \"~/features/MailerService/feature.js\";\nimport { SendMailFeature } from \"~/features/SendMail/feature.js\";\nimport { createSettingsGraphQL } from \"~/graphql/settings.js\";\n\nexport { MailerService } from \"./domain/MailerService/abstractions.js\";\nexport type { IMailerService, IMailerServiceErrors } from \"./domain/MailerService/abstractions.js\";\n\nexport const createMailerContext = () => {\n return createContextPlugin(context => {\n // Register all features\n EncryptionFeature.register(context.container);\n DummyTransportFeature.register(context.container);\n SmtpTransportFeature.register(context.container);\n GetSettingsFeature.register(context.container);\n SaveSettingsFeature.register(context.container);\n MailerServiceFeature.register(context.container);\n SendMailFeature.register(context.container);\n });\n};\n\nexport const createMailerGraphQL = () => {\n return createSettingsGraphQL();\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAC3B,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AACxB,SAASC,qBAAqB;AAE9B,SAASC,aAAa;AAGtB,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAOV,mBAAmB,CAACW,OAAO,IAAI;IAClC;IACAV,iBAAiB,CAACW,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;IAC7CT,qBAAqB,CAACQ,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;IACjDR,oBAAoB,CAACO,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;IAChDX,kBAAkB,CAACU,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;IAC9CV,mBAAmB,CAACS,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;IAC/CP,oBAAoB,CAACM,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;IAChDN,eAAe,CAACK,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;EAC/C,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAON,qBAAqB,CAAC,CAAC;AAClC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@webiny/api-mailer",
3
- "version": "0.0.0-unstable.bca7b3e350",
3
+ "version": "0.0.0-unstable.c27f4d8a31",
4
+ "type": "module",
4
5
  "main": "index.js",
5
6
  "repository": {
6
7
  "type": "git",
@@ -14,52 +15,41 @@
14
15
  "description": "The API to send e-mails.",
15
16
  "license": "MIT",
16
17
  "dependencies": {
17
- "@babel/runtime": "7.20.13",
18
- "@webiny/api": "0.0.0-unstable.bca7b3e350",
19
- "@webiny/api-headless-cms": "0.0.0-unstable.bca7b3e350",
20
- "@webiny/error": "0.0.0-unstable.bca7b3e350",
21
- "@webiny/handler-graphql": "0.0.0-unstable.bca7b3e350",
22
- "@webiny/plugins": "0.0.0-unstable.bca7b3e350",
23
- "@webiny/pubsub": "0.0.0-unstable.bca7b3e350",
24
- "crypto-js": "4.1.1",
25
- "lodash": "4.17.21",
26
- "nodemailer": "6.9.1",
27
- "zod": "3.20.2"
18
+ "@webiny/api": "0.0.0-unstable.c27f4d8a31",
19
+ "@webiny/api-headless-cms": "0.0.0-unstable.c27f4d8a31",
20
+ "@webiny/error": "0.0.0-unstable.c27f4d8a31",
21
+ "@webiny/feature": "0.0.0-unstable.c27f4d8a31",
22
+ "@webiny/handler-graphql": "0.0.0-unstable.c27f4d8a31",
23
+ "@webiny/plugins": "0.0.0-unstable.c27f4d8a31",
24
+ "nodemailer": "7.0.13",
25
+ "zod": "4.3.6"
28
26
  },
29
27
  "devDependencies": {
30
- "@babel/cli": "^7.19.3",
31
- "@babel/core": "^7.19.3",
32
- "@babel/preset-env": "^7.19.4",
33
- "@babel/preset-typescript": "^7.18.6",
34
- "@types/crypto-js": "^4.1.1",
35
- "@types/nodemailer": "^6.4.4",
36
- "@webiny/api-headless-cms-ddb": "^0.0.0-unstable.bca7b3e350",
37
- "@webiny/api-i18n": "^0.0.0-unstable.bca7b3e350",
38
- "@webiny/api-i18n-ddb": "^0.0.0-unstable.bca7b3e350",
39
- "@webiny/api-security": "^0.0.0-unstable.bca7b3e350",
40
- "@webiny/api-security-so-ddb": "^0.0.0-unstable.bca7b3e350",
41
- "@webiny/api-tenancy": "^0.0.0-unstable.bca7b3e350",
42
- "@webiny/api-tenancy-so-ddb": "^0.0.0-unstable.bca7b3e350",
43
- "@webiny/cli": "^0.0.0-unstable.bca7b3e350",
44
- "@webiny/db-dynamodb": "^0.0.0-unstable.bca7b3e350",
45
- "@webiny/handler": "^0.0.0-unstable.bca7b3e350",
46
- "@webiny/handler-aws": "^0.0.0-unstable.bca7b3e350",
47
- "@webiny/handler-db": "^0.0.0-unstable.bca7b3e350",
48
- "@webiny/project-utils": "^0.0.0-unstable.bca7b3e350",
49
- "graphql": "^15.7.2",
50
- "jest": "^28.1.0",
51
- "jest-dynalite": "^3.6.1",
52
- "rimraf": "^3.0.2",
53
- "ttypescript": "^1.5.12",
54
- "typescript": "4.7.4"
28
+ "@types/crypto-js": "4.2.2",
29
+ "@types/nodemailer": "7.0.11",
30
+ "@webiny/api-core": "0.0.0-unstable.c27f4d8a31",
31
+ "@webiny/build-tools": "0.0.0-unstable.c27f4d8a31",
32
+ "@webiny/db-dynamodb": "0.0.0-unstable.c27f4d8a31",
33
+ "@webiny/handler": "0.0.0-unstable.c27f4d8a31",
34
+ "@webiny/handler-aws": "0.0.0-unstable.c27f4d8a31",
35
+ "@webiny/handler-db": "0.0.0-unstable.c27f4d8a31",
36
+ "@webiny/project-utils": "0.0.0-unstable.c27f4d8a31",
37
+ "graphql": "16.13.1",
38
+ "jest-dynalite": "3.6.1",
39
+ "rimraf": "6.1.3",
40
+ "typescript": "5.9.3",
41
+ "vitest": "4.0.18"
55
42
  },
56
43
  "publishConfig": {
57
44
  "access": "public",
58
45
  "directory": "dist"
59
46
  },
60
- "scripts": {
61
- "build": "yarn webiny run build",
62
- "watch": "yarn webiny run watch"
63
- },
64
- "gitHead": "bca7b3e35084d7012061bda0d3f08202fe611581"
47
+ "gitHead": "c27f4d8a31c3af1570817797441855292b6c1f20",
48
+ "adio": {
49
+ "ignore": {
50
+ "src": [
51
+ "node:crypto"
52
+ ]
53
+ }
54
+ }
65
55
  }
package/types.d.ts CHANGED
@@ -1,106 +1,3 @@
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
1
  /**
105
2
  * Interface to implement the actual mailer.
106
3
  */
@@ -133,11 +30,7 @@ interface BaseTransportSendData {
133
30
  html?: string;
134
31
  replyTo?: string;
135
32
  }
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
- }
33
+ export type TransportSendData = BaseTransportSendData & (TransportSendToData | TransportSendBccData | TransportSendCcData);
141
34
  export interface TransportSettings {
142
35
  host: string;
143
36
  port: number;
package/types.js CHANGED
@@ -1,5 +1,3 @@
1
- "use strict";
1
+ export {};
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
3
+ //# sourceMappingURL=types.js.map
package/types.js.map CHANGED
@@ -1 +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":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["// TODO: place types into appropriate domain abstractions\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);\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":"","ignoreList":[]}
package/context.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { ContextPlugin } from "@webiny/api";
2
- import { MailerContext } from "./types";
3
- export declare const createMailerContext: () => ContextPlugin<MailerContext>;
package/context.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createMailerContext = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _api = require("@webiny/api");
10
- var _transporter = require("./crud/transporter.crud");
11
- var _settings = require("./crud/settings.crud");
12
- const createMailerContext = () => {
13
- return new _api.ContextPlugin(async context => {
14
- context.mailer = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, await (0, _transporter.createTransporterCrud)(context)), await (0, _settings.createSettingsCrud)(context));
15
- });
16
- };
17
- exports.createMailerContext = createMailerContext;
package/context.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":["createMailerContext","ContextPlugin","context","mailer","createTransporterCrud","createSettingsCrud"],"sources":["context.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { MailerContext } from \"./types\";\nimport { createTransporterCrud } from \"~/crud/transporter.crud\";\nimport { createSettingsCrud } from \"~/crud/settings.crud\";\n\nexport const createMailerContext = () => {\n return new ContextPlugin<MailerContext>(async context => {\n context.mailer = {\n ...(await createTransporterCrud(context)),\n ...(await createSettingsCrud(context))\n };\n });\n};\n"],"mappings":";;;;;;;;AAAA;AAEA;AACA;AAEO,MAAMA,mBAAmB,GAAG,MAAM;EACrC,OAAO,IAAIC,kBAAa,CAAgB,MAAMC,OAAO,IAAI;IACrDA,OAAO,CAACC,MAAM,+DACN,MAAM,IAAAC,kCAAqB,EAACF,OAAO,CAAC,GACpC,MAAM,IAAAG,4BAAkB,EAACH,OAAO,CAAC,CACxC;EACL,CAAC,CAAC;AACN,CAAC;AAAC"}
package/crud/group.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import { CmsGroupPlugin } from "@webiny/api-headless-cms";
2
- export declare const createGroup: () => CmsGroupPlugin;
package/crud/group.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createGroup = void 0;
7
- var _apiHeadlessCms = require("@webiny/api-headless-cms");
8
- const createGroup = () => {
9
- return (0, _apiHeadlessCms.createCmsGroup)({
10
- name: "Mailer Group",
11
- description: "Mailer Group for CMS",
12
- id: "mailerGroup",
13
- slug: "mailerGroup",
14
- icon: "none",
15
- isPrivate: true
16
- });
17
- };
18
- exports.createGroup = createGroup;
package/crud/group.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":["createGroup","createCmsGroup","name","description","id","slug","icon","isPrivate"],"sources":["group.ts"],"sourcesContent":["import { CmsGroupPlugin, createCmsGroup } from \"@webiny/api-headless-cms\";\n\nexport const createGroup = (): CmsGroupPlugin => {\n return createCmsGroup({\n name: \"Mailer Group\",\n description: \"Mailer Group for CMS\",\n id: \"mailerGroup\",\n slug: \"mailerGroup\",\n icon: \"none\",\n isPrivate: true\n });\n};\n"],"mappings":";;;;;;AAAA;AAEO,MAAMA,WAAW,GAAG,MAAsB;EAC7C,OAAO,IAAAC,8BAAc,EAAC;IAClBC,IAAI,EAAE,cAAc;IACpBC,WAAW,EAAE,sBAAsB;IACnCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,aAAa;IACnBC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAE;EACf,CAAC,CAAC;AACN,CAAC;AAAC"}
@@ -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,43 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.attachPasswordObfuscatingHooks = void 0;
8
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
- var _model = require("./model");
10
- const _excluded = ["password"];
11
- const obfuscatePassword = values => {
12
- // eslint-disable-next-line
13
- const {
14
- password
15
- } = values,
16
- rest = (0, _objectWithoutProperties2.default)(values, _excluded);
17
- return {
18
- rest
19
- };
20
- };
21
- const hook = async params => {
22
- if (params.model.modelId !== _model.SETTINGS_MODEL_ID) {
23
- return;
24
- }
25
- delete params.input["password"];
26
- params.entry.values = obfuscatePassword(params.entry.values);
27
- if (typeof params.original !== "undefined") {
28
- params.original.values = obfuscatePassword(params.original.values);
29
- }
30
- if (params.storageEntry) {
31
- params.storageEntry.values = obfuscatePassword(params.storageEntry.values);
32
- }
33
- };
34
- /**
35
- * We need to remove password from all error reporting and all returns.
36
- */
37
- const attachPasswordObfuscatingHooks = context => {
38
- context.cms.onEntryAfterCreate.subscribe(hook);
39
- context.cms.onEntryCreateError.subscribe(hook);
40
- context.cms.onEntryAfterUpdate.subscribe(hook);
41
- context.cms.onEntryUpdateError.subscribe(hook);
42
- };
43
- 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;AAA0D;AAE1D,MAAMA,iBAAiB,GAAIC,MAA2B,IAAK;EACvD;EACA,MAAM;MAAEC;IAAkB,CAAC,GAAGD,MAAM;IAAfE,IAAI,0CAAKF,MAAM;EAEpC,OAAO;IAAEE;EAAK,CAAC;AACnB,CAAC;AAYD,MAAMC,IAAI,GAAG,MAAOC,MAAc,IAAK;EACnC,IAAIA,MAAM,CAACC,KAAK,CAACC,OAAO,KAAKC,wBAAiB,EAAE;IAC5C;EACJ;EACA,OAAOH,MAAM,CAACI,KAAK,CAAC,UAAU,CAAC;EAC/BJ,MAAM,CAACK,KAAK,CAACT,MAAM,GAAGD,iBAAiB,CAACK,MAAM,CAACK,KAAK,CAACT,MAAM,CAAC;EAC5D,IAAI,OAAOI,MAAM,CAACM,QAAQ,KAAK,WAAW,EAAE;IACxCN,MAAM,CAACM,QAAQ,CAACV,MAAM,GAAGD,iBAAiB,CAACK,MAAM,CAACM,QAAQ,CAACV,MAAM,CAAC;EACtE;EACA,IAAII,MAAM,CAACO,YAAY,EAAE;IACrBP,MAAM,CAACO,YAAY,CAACX,MAAM,GAAGD,iBAAiB,CAACK,MAAM,CAACO,YAAY,CAACX,MAAM,CAAC;EAC9E;AACJ,CAAC;AACD;AACA;AACA;AACO,MAAMY,8BAA8B,GAAIC,OAAsB,IAAK;EACtEA,OAAO,CAACC,GAAG,CAACC,kBAAkB,CAACC,SAAS,CAACb,IAAI,CAAC;EAC9CU,OAAO,CAACC,GAAG,CAACG,kBAAkB,CAACD,SAAS,CAACb,IAAI,CAAC;EAC9CU,OAAO,CAACC,GAAG,CAACI,kBAAkB,CAACF,SAAS,CAACb,IAAI,CAAC;EAC9CU,OAAO,CAACC,GAAG,CAACK,kBAAkB,CAACH,SAAS,CAACb,IAAI,CAAC;AAClD,CAAC;AAAC"}
@@ -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,78 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createSettingsModel = exports.SETTINGS_MODEL_ID = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _apiHeadlessCms = require("@webiny/api-headless-cms");
10
- var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
11
- const SETTINGS_MODEL_ID = "mailerSettings";
12
- exports.SETTINGS_MODEL_ID = SETTINGS_MODEL_ID;
13
- const createField = params => {
14
- const {
15
- label,
16
- required,
17
- type
18
- } = params;
19
- const id = (0, _camelCase.default)(label);
20
- const validation = [];
21
- if (required) {
22
- validation.push({
23
- message: `Field "${label}" is required!`,
24
- name: "required",
25
- settings: {}
26
- });
27
- }
28
- return {
29
- label,
30
- id,
31
- fieldId: id,
32
- storageId: id,
33
- type,
34
- validation
35
- };
36
- };
37
- const createTextField = params => {
38
- return createField((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
39
- type: "text"
40
- }));
41
- };
42
- const createNumberField = params => {
43
- return createField((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
44
- type: "number"
45
- }));
46
- };
47
- const createSettingsModel = group => {
48
- return (0, _apiHeadlessCms.createCmsModel)({
49
- modelId: SETTINGS_MODEL_ID,
50
- name: "Mailer Settings",
51
- group: {
52
- id: group.contentModelGroup.id,
53
- name: group.contentModelGroup.name
54
- },
55
- fields: [createTextField({
56
- label: "Host",
57
- required: true
58
- }), createNumberField({
59
- label: "Port"
60
- }), createTextField({
61
- label: "User",
62
- required: true
63
- }), createTextField({
64
- label: "Password",
65
- required: true
66
- }), createTextField({
67
- label: "From",
68
- required: true
69
- }), createTextField({
70
- label: "Reply-To"
71
- })],
72
- layout: [["host", "port", "user", "password", "from", "replyTo"]],
73
- description: "Mailer Settings",
74
- titleFieldId: "",
75
- isPrivate: true
76
- });
77
- };
78
- 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,gBAAgB;AAAC;AAOlD,MAAMC,WAAW,GAAIC,MAAyB,IAAoB;EAC9D,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGH,MAAM;EACxC,MAAMI,EAAE,GAAG,IAAAC,kBAAe,EAACJ,KAAK,CAAC;EAEjC,MAAMK,UAAqC,GAAG,EAAE;EAChD,IAAIJ,QAAQ,EAAE;IACVI,UAAU,CAACC,IAAI,CAAC;MACZC,OAAO,EAAG,UAASP,KAAM,gBAAe;MACxCQ,IAAI,EAAE,UAAU;MAChBC,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;EACN;EACA,OAAO;IACHT,KAAK;IACLG,EAAE;IACFO,OAAO,EAAEP,EAAE;IACXQ,SAAS,EAAER,EAAE;IACbD,IAAI;IACJG;EACJ,CAAC;AACL,CAAC;AAED,MAAMO,eAAe,GAAIb,MAAuC,IAAK;EACjE,OAAOD,WAAW,6DACXC,MAAM;IACTG,IAAI,EAAE;EAAM,GACd;AACN,CAAC;AACD,MAAMW,iBAAiB,GAAId,MAAuC,IAAK;EACnE,OAAOD,WAAW,6DACXC,MAAM;IACTG,IAAI,EAAE;EAAQ,GAChB;AACN,CAAC;AAEM,MAAMY,mBAAmB,GAAIC,KAAqB,IAAK;EAC1D,OAAO,IAAAC,8BAAc,EAAC;IAClBC,OAAO,EAAEpB,iBAAiB;IAC1BW,IAAI,EAAE,iBAAiB;IACvBO,KAAK,EAAE;MACHZ,EAAE,EAAEY,KAAK,CAACG,iBAAiB,CAACf,EAAE;MAC9BK,IAAI,EAAEO,KAAK,CAACG,iBAAiB,CAACV;IAClC,CAAC;IACDW,MAAM,EAAE,CACJP,eAAe,CAAC;MACZZ,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE;IACd,CAAC,CAAC,EACFY,iBAAiB,CAAC;MACdb,KAAK,EAAE;IACX,CAAC,CAAC,EACFY,eAAe,CAAC;MACZZ,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE;IACd,CAAC,CAAC,EACFW,eAAe,CAAC;MACZZ,KAAK,EAAE,UAAU;MACjBC,QAAQ,EAAE;IACd,CAAC,CAAC,EACFW,eAAe,CAAC;MACZZ,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE;IACd,CAAC,CAAC,EACFW,eAAe,CAAC;MACZZ,KAAK,EAAE;IACX,CAAC,CAAC,CACL;IACDoB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACjEC,WAAW,EAAE,iBAAiB;IAC9BC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAE;EACf,CAAC,CAAC;AACN,CAAC;AAAC"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.encrypt = exports.decrypt = void 0;
8
- var _cryptoJs = _interopRequireDefault(require("crypto-js"));
9
- var _error = _interopRequireDefault(require("@webiny/error"));
10
- const decrypt = params => {
11
- const {
12
- value,
13
- secret
14
- } = params;
15
- if (!secret) {
16
- throw new _error.default(`Cannot call decrypt without passing the secret.`);
17
- }
18
- if (!value) {
19
- return "";
20
- }
21
- try {
22
- const bytes = _cryptoJs.default.AES.decrypt(value, secret);
23
- const result = bytes.toString(_cryptoJs.default.enc.Utf8);
24
- if (!result) {
25
- console.log(`Error while converting decrypted password bytes into string. `);
26
- return "";
27
- }
28
- return result;
29
- } catch (ex) {
30
- console.log(`Could not decrypt given encrypted password.`);
31
- }
32
- return "";
33
- };
34
- exports.decrypt = decrypt;
35
- const encrypt = params => {
36
- const {
37
- value,
38
- secret
39
- } = params;
40
- if (!secret) {
41
- throw new _error.default(`Cannot call decrypt without passing the secret.`);
42
- }
43
- if (!value) {
44
- return "";
45
- }
46
- try {
47
- return _cryptoJs.default.AES.encrypt(value, secret).toString();
48
- } catch (ex) {
49
- console.log(`Could not encrypt given password.`);
50
- }
51
- return "";
52
- };
53
- 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,MAAc,IAAa;EAC/C,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAChC,IAAI,CAACE,MAAM,EAAE;IACT,MAAM,IAAIC,cAAW,CAAE,iDAAgD,CAAC;EAC5E;EACA,IAAI,CAACF,KAAK,EAAE;IACR,OAAO,EAAE;EACb;EACA,IAAI;IACA,MAAMG,KAAK,GAAGC,iBAAQ,CAACC,GAAG,CAACP,OAAO,CAACE,KAAK,EAAEC,MAAM,CAAC;IACjD,MAAMK,MAAM,GAAGH,KAAK,CAACI,QAAQ,CAACH,iBAAQ,CAACI,GAAG,CAACC,IAAI,CAAC;IAChD,IAAI,CAACH,MAAM,EAAE;MACTI,OAAO,CAACC,GAAG,CAAE,+DAA8D,CAAC;MAC5E,OAAO,EAAE;IACb;IACA,OAAOL,MAAM;EACjB,CAAC,CAAC,OAAOM,EAAE,EAAE;IACTF,OAAO,CAACC,GAAG,CAAE,6CAA4C,CAAC;EAC9D;EACA,OAAO,EAAE;AACb,CAAC;AAAC;AAEK,MAAME,OAAO,GAAId,MAAc,IAAa;EAC/C,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAChC,IAAI,CAACE,MAAM,EAAE;IACT,MAAM,IAAIC,cAAW,CAAE,iDAAgD,CAAC;EAC5E;EACA,IAAI,CAACF,KAAK,EAAE;IACR,OAAO,EAAE;EACb;EACA,IAAI;IACA,OAAOI,iBAAQ,CAACC,GAAG,CAACQ,OAAO,CAACb,KAAK,EAAEC,MAAM,CAAC,CAACM,QAAQ,EAAE;EACzD,CAAC,CAAC,OAAOK,EAAE,EAAE;IACTF,OAAO,CAACC,GAAG,CAAE,mCAAkC,CAAC;EACpD;EACA,OAAO,EAAE;AACb,CAAC;AAAC"}