@webiny/api-mailer 0.0.0-unstable.e3f4727c56 → 0.0.0-unstable.eb196ccd2f
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.
- package/context.d.ts +1 -1
- package/context.js +7 -4
- package/context.js.map +1 -1
- package/crud/settings/hooks.d.ts +1 -1
- package/crud/settings/hooks.js +6 -7
- package/crud/settings/hooks.js.map +1 -1
- package/crud/settings/model.d.ts +1 -2
- package/crud/settings/model.js +16 -22
- package/crud/settings/model.js.map +1 -1
- package/crud/settings/password.js +3 -1
- package/crud/settings/password.js.map +1 -1
- package/crud/settings/secret.js +3 -1
- package/crud/settings/secret.js.map +1 -1
- package/crud/settings/transform.d.ts +2 -2
- package/crud/settings/transform.js +10 -8
- package/crud/settings/transform.js.map +1 -1
- package/crud/settings/validation.d.ts +9 -9
- package/crud/settings/validation.js +12 -9
- package/crud/settings/validation.js.map +1 -1
- package/crud/settings.crud.d.ts +1 -1
- package/crud/settings.crud.js +127 -132
- package/crud/settings.crud.js.map +1 -1
- package/crud/transport/onTransportBeforeSend.d.ts +2 -2
- package/crud/transport/onTransportBeforeSend.js +7 -3
- package/crud/transport/onTransportBeforeSend.js.map +1 -1
- package/crud/transporter.crud.d.ts +1 -1
- package/crud/transporter.crud.js +7 -5
- package/crud/transporter.crud.js.map +1 -1
- package/graphql/index.js +3 -1
- package/graphql/index.js.map +1 -1
- package/graphql/settings.d.ts +1 -1
- package/graphql/settings.js +7 -5
- package/graphql/settings.js.map +1 -1
- package/index.d.ts +3 -6
- package/index.js +38 -29
- package/index.js.map +1 -1
- package/package.json +28 -39
- package/plugins/CreateTransportPlugin.d.ts +1 -1
- package/plugins/CreateTransportPlugin.js +4 -5
- package/plugins/CreateTransportPlugin.js.map +1 -1
- package/plugins/index.js +3 -1
- package/plugins/index.js.map +1 -1
- package/transports/createDummyTransport.d.ts +1 -1
- package/transports/createDummyTransport.js +4 -2
- package/transports/createDummyTransport.js.map +1 -1
- package/transports/createSmtpTransport.d.ts +5 -4
- package/transports/createSmtpTransport.js +14 -6
- package/transports/createSmtpTransport.js.map +1 -1
- package/transports/index.d.ts +2 -0
- package/transports/index.js +29 -0
- package/transports/index.js.map +1 -0
- package/types.d.ts +3 -3
- package/types.js +3 -1
- package/types.js.map +1 -1
- package/crud/group.d.ts +0 -2
- package/crud/group.js +0 -18
- package/crud/group.js.map +0 -1
package/context.d.ts
CHANGED
package/context.js
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.createMailerContext = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
7
|
var _api = require("@webiny/api");
|
|
10
8
|
var _transporter = require("./crud/transporter.crud");
|
|
11
9
|
var _settings = require("./crud/settings.crud");
|
|
12
10
|
const createMailerContext = () => {
|
|
13
11
|
return new _api.ContextPlugin(async context => {
|
|
14
|
-
context.mailer =
|
|
12
|
+
context.mailer = {
|
|
13
|
+
...(await (0, _transporter.createTransporterCrud)(context)),
|
|
14
|
+
...(await (0, _settings.createSettingsCrud)(context))
|
|
15
|
+
};
|
|
15
16
|
});
|
|
16
17
|
};
|
|
17
|
-
exports.createMailerContext = createMailerContext;
|
|
18
|
+
exports.createMailerContext = createMailerContext;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=context.js.map
|
package/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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":"
|
|
1
|
+
{"version":3,"names":["_api","require","_transporter","_settings","createMailerContext","ContextPlugin","context","mailer","createTransporterCrud","createSettingsCrud","exports"],"sources":["context.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport type { 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,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,MAAMG,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAO,IAAIC,kBAAa,CAAgB,MAAMC,OAAO,IAAI;IACrDA,OAAO,CAACC,MAAM,GAAG;MACb,IAAI,MAAM,IAAAC,kCAAqB,EAACF,OAAO,CAAC,CAAC;MACzC,IAAI,MAAM,IAAAG,4BAAkB,EAACH,OAAO,CAAC;IACzC,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAACI,OAAA,CAAAN,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
package/crud/settings/hooks.d.ts
CHANGED
package/crud/settings/hooks.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.attachPasswordObfuscatingHooks = void 0;
|
|
8
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
9
7
|
var _model = require("./model");
|
|
10
|
-
const _excluded = ["password"];
|
|
11
8
|
const obfuscatePassword = values => {
|
|
12
9
|
// eslint-disable-next-line
|
|
13
10
|
const {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
password,
|
|
12
|
+
...rest
|
|
13
|
+
} = values;
|
|
17
14
|
return {
|
|
18
15
|
rest
|
|
19
16
|
};
|
|
@@ -40,4 +37,6 @@ const attachPasswordObfuscatingHooks = context => {
|
|
|
40
37
|
context.cms.onEntryAfterUpdate.subscribe(hook);
|
|
41
38
|
context.cms.onEntryUpdateError.subscribe(hook);
|
|
42
39
|
};
|
|
43
|
-
exports.attachPasswordObfuscatingHooks = attachPasswordObfuscatingHooks;
|
|
40
|
+
exports.attachPasswordObfuscatingHooks = attachPasswordObfuscatingHooks;
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
1
|
+
{"version":3,"names":["_model","require","obfuscatePassword","values","password","rest","hook","params","model","modelId","SETTINGS_MODEL_ID","input","entry","original","storageEntry","attachPasswordObfuscatingHooks","context","cms","onEntryAfterCreate","subscribe","onEntryCreateError","onEntryAfterUpdate","onEntryUpdateError","exports"],"sources":["hooks.ts"],"sourcesContent":["import type { MailerContext } from \"~/types\";\nimport type {\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,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,iBAAiB,GAAIC,MAA2B,IAAK;EACvD;EACA,MAAM;IAAEC,QAAQ;IAAE,GAAGC;EAAK,CAAC,GAAGF,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;AAACiB,OAAA,CAAAR,8BAAA,GAAAA,8BAAA","ignoreList":[]}
|
package/crud/settings/model.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { CmsGroupPlugin } from "@webiny/api-headless-cms";
|
|
2
1
|
export declare const SETTINGS_MODEL_ID = "mailerSettings";
|
|
3
|
-
export declare const createSettingsModel: (
|
|
2
|
+
export declare const createSettingsModel: () => import("@webiny/api-headless-cms").CmsModelPlugin;
|
package/crud/settings/model.js
CHANGED
|
@@ -5,11 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
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
8
|
var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
|
|
11
|
-
|
|
12
|
-
exports.SETTINGS_MODEL_ID =
|
|
9
|
+
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
10
|
+
const SETTINGS_MODEL_ID = exports.SETTINGS_MODEL_ID = "mailerSettings";
|
|
13
11
|
const createField = params => {
|
|
14
12
|
const {
|
|
15
13
|
label,
|
|
@@ -35,23 +33,21 @@ const createField = params => {
|
|
|
35
33
|
};
|
|
36
34
|
};
|
|
37
35
|
const createTextField = params => {
|
|
38
|
-
return createField(
|
|
36
|
+
return createField({
|
|
37
|
+
...params,
|
|
39
38
|
type: "text"
|
|
40
|
-
})
|
|
39
|
+
});
|
|
41
40
|
};
|
|
42
41
|
const createNumberField = params => {
|
|
43
|
-
return createField(
|
|
42
|
+
return createField({
|
|
43
|
+
...params,
|
|
44
44
|
type: "number"
|
|
45
|
-
})
|
|
45
|
+
});
|
|
46
46
|
};
|
|
47
|
-
const createSettingsModel =
|
|
48
|
-
return (0, _apiHeadlessCms.createCmsModel)({
|
|
49
|
-
modelId: SETTINGS_MODEL_ID,
|
|
47
|
+
const createSettingsModel = () => {
|
|
48
|
+
return (0, _apiHeadlessCms.createCmsModel)((0, _apiHeadlessCms.createPrivateModel)({
|
|
50
49
|
name: "Mailer Settings",
|
|
51
|
-
|
|
52
|
-
id: group.contentModelGroup.id,
|
|
53
|
-
name: group.contentModelGroup.name
|
|
54
|
-
},
|
|
50
|
+
modelId: SETTINGS_MODEL_ID,
|
|
55
51
|
fields: [createTextField({
|
|
56
52
|
label: "Host",
|
|
57
53
|
required: true
|
|
@@ -68,11 +64,9 @@ const createSettingsModel = group => {
|
|
|
68
64
|
required: true
|
|
69
65
|
}), createTextField({
|
|
70
66
|
label: "Reply-To"
|
|
71
|
-
})]
|
|
72
|
-
|
|
73
|
-
description: "Mailer Settings",
|
|
74
|
-
titleFieldId: "",
|
|
75
|
-
isPrivate: true
|
|
76
|
-
});
|
|
67
|
+
})]
|
|
68
|
+
}));
|
|
77
69
|
};
|
|
78
|
-
exports.createSettingsModel = createSettingsModel;
|
|
70
|
+
exports.createSettingsModel = createSettingsModel;
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SETTINGS_MODEL_ID","createField","params","label","required","type","id","lodashCamelCase","validation","push","message","name","settings","fieldId","storageId","createTextField","createNumberField","createSettingsModel","
|
|
1
|
+
{"version":3,"names":["_camelCase","_interopRequireDefault","require","_apiHeadlessCms","SETTINGS_MODEL_ID","exports","createField","params","label","required","type","id","lodashCamelCase","validation","push","message","name","settings","fieldId","storageId","createTextField","createNumberField","createSettingsModel","createCmsModel","createPrivateModel","modelId","fields"],"sources":["model.ts"],"sourcesContent":["import lodashCamelCase from \"lodash/camelCase\";\nimport { createCmsModel, createPrivateModel } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField, CmsModelFieldValidation } from \"@webiny/api-headless-cms/types\";\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 = () => {\n return createCmsModel(\n createPrivateModel({\n name: \"Mailer Settings\",\n modelId: SETTINGS_MODEL_ID,\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 })\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAGO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,gBAAgB;AAOjD,MAAME,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,EAAE,UAAUP,KAAK,gBAAgB;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,CAAC;IACf,GAAGC,MAAM;IACTG,IAAI,EAAE;EACV,CAAC,CAAC;AACN,CAAC;AACD,MAAMW,iBAAiB,GAAId,MAAuC,IAAK;EACnE,OAAOD,WAAW,CAAC;IACf,GAAGC,MAAM;IACTG,IAAI,EAAE;EACV,CAAC,CAAC;AACN,CAAC;AAEM,MAAMY,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAO,IAAAC,8BAAc,EACjB,IAAAC,kCAAkB,EAAC;IACfR,IAAI,EAAE,iBAAiB;IACvBS,OAAO,EAAErB,iBAAiB;IAC1BsB,MAAM,EAAE,CACJN,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;EAEV,CAAC,CACL,CAAC;AACL,CAAC;AAACH,OAAA,CAAAiB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"names":["_cryptoJs","_interopRequireDefault","require","_error","decrypt","params","value","secret","WebinyError","bytes","CryptoJS","AES","result","toString","enc","Utf8","console","log","ex","exports","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,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAOO,MAAME,OAAO,GAAIC,MAAc,IAAa;EAC/C,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAChC,IAAI,CAACE,MAAM,EAAE;IACT,MAAM,IAAIC,cAAW,CAAC,iDAAiD,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,CAAC,+DAA+D,CAAC;MAC5E,OAAO,EAAE;IACb;IACA,OAAOL,MAAM;EACjB,CAAC,CAAC,OAAOM,EAAE,EAAE;IACTF,OAAO,CAACC,GAAG,CAAC,6CAA6C,CAAC;EAC9D;EACA,OAAO,EAAE;AACb,CAAC;AAACE,OAAA,CAAAf,OAAA,GAAAA,OAAA;AAEK,MAAMgB,OAAO,GAAIf,MAAc,IAAa;EAC/C,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAChC,IAAI,CAACE,MAAM,EAAE;IACT,MAAM,IAAIC,cAAW,CAAC,iDAAiD,CAAC;EAC5E;EACA,IAAI,CAACF,KAAK,EAAE;IACR,OAAO,EAAE;EACb;EACA,IAAI;IACA,OAAOI,iBAAQ,CAACC,GAAG,CAACS,OAAO,CAACd,KAAK,EAAEC,MAAM,CAAC,CAACM,QAAQ,CAAC,CAAC;EACzD,CAAC,CAAC,OAAOK,EAAE,EAAE;IACTF,OAAO,CAACC,GAAG,CAAC,mCAAmC,CAAC;EACpD;EACA,OAAO,EAAE;AACb,CAAC;AAACE,OAAA,CAAAC,OAAA,GAAAA,OAAA","ignoreList":[]}
|
package/crud/settings/secret.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","getSecret","envValue","process","env","WEBINY_MAILER_PASSWORD_SECRET","value","String","trim","WebinyError","exports"],"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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,MAAMC,SAAS,GAAGA,CAAA,KAAc;EACnC,MAAMC,QAAQ,GAAGC,OAAO,CAACC,GAAG,CAACC,6BAA6B;EAE1D,MAAMC,KAAK,GAAGC,MAAM,CAACL,QAAQ,CAAC,CAACM,IAAI,CAAC,CAAC;EACrC,IAAI,CAACN,QAAQ,IAAI,CAACI,KAAK,EAAE;IACrB,MAAM,IAAIG,cAAW,CAAC,0CAA0C,EAAE,uBAAuB,CAAC;EAC9F;EACA,OAAOH,KAAK;AAChB,CAAC;AAACI,OAAA,CAAAT,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ExtendedTransportSettings, TransportSettings } from "../../types";
|
|
2
|
-
import { CmsEntry } from "@webiny/api-headless-cms/types";
|
|
1
|
+
import type { ExtendedTransportSettings, TransportSettings } from "../../types";
|
|
2
|
+
import type { CmsEntry } from "@webiny/api-headless-cms/types";
|
|
3
3
|
interface TransformValuesFromEntryParams {
|
|
4
4
|
entry: CmsEntry<TransportSettings>;
|
|
5
5
|
secret: string | null;
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.transformValuesFromEntry = exports.transformInputToEntryValues = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
9
|
var _password = require("./password");
|
|
11
10
|
const transformValuesFromEntry = params => {
|
|
@@ -16,14 +15,14 @@ const transformValuesFromEntry = params => {
|
|
|
16
15
|
if (!secret) {
|
|
17
16
|
throw new _error.default(`There is no secret defined. Without it we cannot decrypt the password.`);
|
|
18
17
|
}
|
|
19
|
-
return
|
|
20
|
-
id: entry.id
|
|
21
|
-
|
|
18
|
+
return {
|
|
19
|
+
id: entry.id,
|
|
20
|
+
...entry.values,
|
|
22
21
|
password: (0, _password.decrypt)({
|
|
23
22
|
value: entry.values.password,
|
|
24
23
|
secret
|
|
25
24
|
})
|
|
26
|
-
}
|
|
25
|
+
};
|
|
27
26
|
};
|
|
28
27
|
exports.transformValuesFromEntry = transformValuesFromEntry;
|
|
29
28
|
const transformInputToEntryValues = params => {
|
|
@@ -34,11 +33,14 @@ const transformInputToEntryValues = params => {
|
|
|
34
33
|
if (!secret) {
|
|
35
34
|
throw new _error.default(`There is no secret defined. Without it we cannot decrypt the password.`);
|
|
36
35
|
}
|
|
37
|
-
return
|
|
36
|
+
return {
|
|
37
|
+
...values,
|
|
38
38
|
password: (0, _password.encrypt)({
|
|
39
39
|
value: values.password,
|
|
40
40
|
secret
|
|
41
41
|
})
|
|
42
|
-
}
|
|
42
|
+
};
|
|
43
43
|
};
|
|
44
|
-
exports.transformInputToEntryValues = transformInputToEntryValues;
|
|
44
|
+
exports.transformInputToEntryValues = transformInputToEntryValues;
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_password","transformValuesFromEntry","params","entry","secret","WebinyError","id","values","password","decrypt","value","exports","transformInputToEntryValues","encrypt"],"sources":["transform.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { ExtendedTransportSettings, TransportSettings } from \"~/types\";\nimport { decrypt, encrypt } from \"./password\";\nimport type { 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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAOO,MAAME,wBAAwB,GACjCC,MAAsC,IACV;EAC5B,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAChC,IAAI,CAACE,MAAM,EAAE;IACT,MAAM,IAAIC,cAAW,CACjB,wEACJ,CAAC;EACL;EACA,OAAO;IACHC,EAAE,EAAEH,KAAK,CAACG,EAAE;IACZ,GAAGH,KAAK,CAACI,MAAM;IACfC,QAAQ,EAAE,IAAAC,iBAAO,EAAC;MACdC,KAAK,EAAEP,KAAK,CAACI,MAAM,CAACC,QAAQ;MAC5BJ;IACJ,CAAC;EACL,CAAC;AACL,CAAC;AAACO,OAAA,CAAAV,wBAAA,GAAAA,wBAAA;AAMK,MAAMW,2BAA2B,GACpCV,MAA0C,IACtB;EACpB,MAAM;IAAEK,MAAM;IAAEH;EAAO,CAAC,GAAGF,MAAM;EAEjC,IAAI,CAACE,MAAM,EAAE;IACT,MAAM,IAAIC,cAAW,CACjB,wEACJ,CAAC;EACL;EAEA,OAAO;IACH,GAAGE,MAAM;IACTC,QAAQ,EAAE,IAAAK,iBAAO,EAAC;MACdH,KAAK,EAAEH,MAAM,CAACC,QAAQ;MACtBJ;IACJ,CAAC;EACL,CAAC;AACL,CAAC;AAACO,OAAA,CAAAC,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import zod from "zod";
|
|
|
2
2
|
export declare const createValidation: zod.ZodObject<{
|
|
3
3
|
password: zod.ZodString;
|
|
4
4
|
from: zod.ZodString;
|
|
5
|
-
port: zod.
|
|
5
|
+
port: zod.ZodNullable<zod.ZodNumber>;
|
|
6
6
|
replyTo: zod.ZodString;
|
|
7
7
|
host: zod.ZodString;
|
|
8
8
|
user: zod.ZodString;
|
|
@@ -10,36 +10,36 @@ export declare const createValidation: zod.ZodObject<{
|
|
|
10
10
|
from: string;
|
|
11
11
|
replyTo: string;
|
|
12
12
|
password: string;
|
|
13
|
-
port: number;
|
|
13
|
+
port: number | null;
|
|
14
14
|
host: string;
|
|
15
15
|
user: string;
|
|
16
16
|
}, {
|
|
17
|
-
port?: number | undefined;
|
|
18
17
|
from: string;
|
|
19
18
|
replyTo: string;
|
|
20
19
|
password: string;
|
|
20
|
+
port: number | null;
|
|
21
21
|
host: string;
|
|
22
22
|
user: string;
|
|
23
23
|
}>;
|
|
24
24
|
export declare const updateValidation: zod.ZodObject<{
|
|
25
|
-
password: zod.ZodString
|
|
25
|
+
password: zod.ZodEffects<zod.ZodOptional<zod.ZodOptional<zod.ZodNullable<zod.ZodString>>>, string | null, string | null | undefined>;
|
|
26
26
|
from: zod.ZodString;
|
|
27
|
-
port: zod.
|
|
27
|
+
port: zod.ZodNullable<zod.ZodNumber>;
|
|
28
28
|
replyTo: zod.ZodString;
|
|
29
29
|
host: zod.ZodString;
|
|
30
30
|
user: zod.ZodString;
|
|
31
31
|
}, "strip", zod.ZodTypeAny, {
|
|
32
32
|
from: string;
|
|
33
33
|
replyTo: string;
|
|
34
|
-
password: string;
|
|
35
|
-
port: number;
|
|
34
|
+
password: string | null;
|
|
35
|
+
port: number | null;
|
|
36
36
|
host: string;
|
|
37
37
|
user: string;
|
|
38
38
|
}, {
|
|
39
|
-
port?: number | undefined;
|
|
40
39
|
from: string;
|
|
41
40
|
replyTo: string;
|
|
42
|
-
|
|
41
|
+
port: number | null;
|
|
43
42
|
host: string;
|
|
44
43
|
user: string;
|
|
44
|
+
password?: string | null | undefined;
|
|
45
45
|
}>;
|
|
@@ -5,21 +5,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.updateValidation = exports.createValidation = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
8
|
var _zod = _interopRequireDefault(require("zod"));
|
|
10
9
|
const password = _zod.default.string().describe("Password");
|
|
11
10
|
const common = {
|
|
12
11
|
from: _zod.default.string().email().describe("Mail from"),
|
|
13
|
-
port: _zod.default.number().describe("Port")
|
|
12
|
+
port: _zod.default.number().optional().nullish().describe("Port"),
|
|
14
13
|
replyTo: _zod.default.string().email().optional().describe("Mail reply-to"),
|
|
15
14
|
host: _zod.default.string().describe("Hostname"),
|
|
16
15
|
user: _zod.default.string().describe("User")
|
|
17
16
|
};
|
|
18
|
-
const createValidation = _zod.default.object(
|
|
17
|
+
const createValidation = exports.createValidation = _zod.default.object({
|
|
18
|
+
...common,
|
|
19
19
|
password
|
|
20
|
-
})
|
|
21
|
-
exports.
|
|
22
|
-
|
|
23
|
-
password: password.optional()
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
}).required();
|
|
21
|
+
const updateValidation = exports.updateValidation = _zod.default.object({
|
|
22
|
+
...common,
|
|
23
|
+
password: password.nullish().optional().transform(value => {
|
|
24
|
+
return value === undefined ? null : value;
|
|
25
|
+
})
|
|
26
|
+
}).required();
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["password","zod","string","describe","common","from","email","port","number","
|
|
1
|
+
{"version":3,"names":["_zod","_interopRequireDefault","require","password","zod","string","describe","common","from","email","port","number","optional","nullish","replyTo","host","user","createValidation","exports","object","required","updateValidation","transform","value","undefined"],"sources":["validation.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst password = zod.string().describe(\"Password\");\n\nconst common = {\n from: zod.string().email().describe(\"Mail from\"),\n port: zod.number().optional().nullish().describe(\"Port\"),\n replyTo: zod.string().email().optional().describe(\"Mail reply-to\"),\n host: zod.string().describe(\"Hostname\"),\n user: zod.string().describe(\"User\")\n};\n\nexport const createValidation = zod\n .object({\n ...common,\n password\n })\n .required();\n\nexport const updateValidation = zod\n .object({\n ...common,\n password: password\n .nullish()\n .optional()\n .transform(value => {\n return value === undefined ? null : value;\n })\n })\n .required();\n"],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAGC,YAAG,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,UAAU,CAAC;AAElD,MAAMC,MAAM,GAAG;EACXC,IAAI,EAAEJ,YAAG,CAACC,MAAM,CAAC,CAAC,CAACI,KAAK,CAAC,CAAC,CAACH,QAAQ,CAAC,WAAW,CAAC;EAChDI,IAAI,EAAEN,YAAG,CAACO,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACP,QAAQ,CAAC,MAAM,CAAC;EACxDQ,OAAO,EAAEV,YAAG,CAACC,MAAM,CAAC,CAAC,CAACI,KAAK,CAAC,CAAC,CAACG,QAAQ,CAAC,CAAC,CAACN,QAAQ,CAAC,eAAe,CAAC;EAClES,IAAI,EAAEX,YAAG,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,UAAU,CAAC;EACvCU,IAAI,EAAEZ,YAAG,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,MAAM;AACtC,CAAC;AAEM,MAAMW,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGb,YAAG,CAC9Be,MAAM,CAAC;EACJ,GAAGZ,MAAM;EACTJ;AACJ,CAAC,CAAC,CACDiB,QAAQ,CAAC,CAAC;AAER,MAAMC,gBAAgB,GAAAH,OAAA,CAAAG,gBAAA,GAAGjB,YAAG,CAC9Be,MAAM,CAAC;EACJ,GAAGZ,MAAM;EACTJ,QAAQ,EAAEA,QAAQ,CACbU,OAAO,CAAC,CAAC,CACTD,QAAQ,CAAC,CAAC,CACVU,SAAS,CAACC,KAAK,IAAI;IAChB,OAAOA,KAAK,KAAKC,SAAS,GAAG,IAAI,GAAGD,KAAK;EAC7C,CAAC;AACT,CAAC,CAAC,CACDH,QAAQ,CAAC,CAAC","ignoreList":[]}
|
package/crud/settings.crud.d.ts
CHANGED