@goldstack/template-email-send 0.3.55

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/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Goldstack Email Send Template Tools
2
+
3
+ This library provides an API and CLI for building Node.js modules that interact with AWS SES to send email messages.
4
+
5
+ For more information, see [Email Send Template](https://docs.goldstack.party/docs/modules/email-send)
package/bin/template ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+
3
+ require('./../dist/templateEmailSend')
4
+ .run(process.argv)
5
+ .catch((e) => {
6
+ console.log(e);
7
+ process.exit(1);
8
+ });
@@ -0,0 +1,9 @@
1
+ import SES from 'aws-sdk/clients/ses';
2
+ import { AWSError, Request } from 'aws-sdk/lib/core';
3
+ export declare class MockedSES {
4
+ private sendEmailRequests;
5
+ constructor();
6
+ getSentEmailRequests(): SES.SendEmailRequest[];
7
+ sendEmail(params: SES.SendEmailRequest, callback?: any): Request<SES.SendEmailResponse, AWSError>;
8
+ }
9
+ //# sourceMappingURL=mockedSES.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockedSES.d.ts","sourceRoot":"","sources":["../src/mockedSES.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,qBAAqB,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,SAAS;IACpB,OAAO,CAAC,iBAAiB,CAAyB;;IAMlD,oBAAoB,IAAI,GAAG,CAAC,gBAAgB,EAAE;IAI9C,SAAS,CACP,MAAM,EAAE,GAAG,CAAC,gBAAgB,EAC5B,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC;CAiB5C"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockedSES = void 0;
4
+ const uuid_1 = require("uuid");
5
+ class MockedSES {
6
+ constructor() {
7
+ this.sendEmailRequests = [];
8
+ }
9
+ getSentEmailRequests() {
10
+ return this.sendEmailRequests;
11
+ }
12
+ sendEmail(params, callback) {
13
+ this.sendEmailRequests.push(params);
14
+ if (process.env.GOLDSTACK_LOG_EMAILS) {
15
+ console.log('Mocked SES Send email');
16
+ console.log(JSON.stringify(params, null, 2));
17
+ }
18
+ if (callback) {
19
+ callback(null, { MessageId: (0, uuid_1.v4)() });
20
+ return {};
21
+ }
22
+ return {
23
+ promise: () => new Promise((resolve) => resolve({ MessageId: (0, uuid_1.v4)() })),
24
+ };
25
+ }
26
+ }
27
+ exports.MockedSES = MockedSES;
28
+ //# sourceMappingURL=mockedSES.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockedSES.js","sourceRoot":"","sources":["../src/mockedSES.ts"],"names":[],"mappings":";;;AAEA,+BAAmC;AAGnC,MAAa,SAAS;IAGpB;QACE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,SAAS,CACP,MAA4B,EAC5B,QAAc;QAEd,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACpC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC9C;QACD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAA,SAAK,GAAE,EAAE,CAAC,CAAC;YACvC,OAAO,EAAS,CAAC;SAClB;QACD,OAAO;YACL,OAAO,EAAE,GAAmC,EAAE,CAC5C,IAAI,OAAO,CAAwB,CAAC,OAAO,EAAE,EAAE,CAC7C,OAAO,CAAC,EAAE,SAAS,EAAE,IAAA,SAAK,GAAE,EAAE,CAAC,CAChC;SACG,CAAC;IACX,CAAC;CACF;AA/BD,8BA+BC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mockesSES.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockesSES.spec.d.ts","sourceRoot":"","sources":["../src/mockesSES.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mockedSES_1 = require("./mockedSES");
4
+ describe('MockedSES', () => {
5
+ it('Should create instance', () => {
6
+ const mockedSES = new mockedSES_1.MockedSES();
7
+ expect(mockedSES.sendEmail).toBeDefined();
8
+ });
9
+ });
10
+ //# sourceMappingURL=mockesSES.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockesSES.spec.js","sourceRoot":"","sources":["../src/mockesSES.spec.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AACxC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import SES from 'aws-sdk/clients/ses';
2
+ import { MockedSES } from './mockedSES';
3
+ export declare const getMockedSES: () => MockedSES;
4
+ export declare const connect: (goldstackConfig: any, packageSchema: any, deploymentName?: string | undefined) => Promise<SES>;
5
+ export declare const getFromDomain: (goldstackConfig: any, packageSchema: any, deploymentName?: string | undefined) => Promise<string>;
6
+ //# sourceMappingURL=sesConnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sesConnect.d.ts","sourceRoot":"","sources":["../src/sesConnect.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,qBAAqB,CAAC;AAUtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,eAAO,MAAM,YAAY,QAAO,SAK/B,CAAC;AAEF,eAAO,MAAM,OAAO,oBACD,GAAG,iBACL,GAAG,0CAEjB,QAAQ,GAAG,CAmCb,CAAC;AAEF,eAAO,MAAM,aAAa,oBACP,GAAG,iBACL,GAAG,0CAEjB,QAAQ,MAAM,CAwBhB,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getFromDomain = exports.connect = exports.getMockedSES = void 0;
7
+ const infra_aws_1 = require("@goldstack/infra-aws");
8
+ const ses_1 = __importDefault(require("aws-sdk/clients/ses"));
9
+ const assert_1 = __importDefault(require("assert"));
10
+ const utils_package_config_1 = require("@goldstack/utils-package-config");
11
+ const mockedSES_1 = require("./mockedSES");
12
+ let mockedSES;
13
+ const getMockedSES = () => {
14
+ if (!mockedSES) {
15
+ mockedSES = new mockedSES_1.MockedSES();
16
+ }
17
+ return mockedSES;
18
+ };
19
+ exports.getMockedSES = getMockedSES;
20
+ const connect = async (goldstackConfig, packageSchema, deploymentName) => {
21
+ const packageConfig = new utils_package_config_1.PackageConfig({
22
+ goldstackJson: goldstackConfig,
23
+ packageSchema,
24
+ });
25
+ if (!deploymentName) {
26
+ (0, assert_1.default)(process.env.GOLDSTACK_DEPLOYMENT, `Cannot connect to SES for package ${goldstackConfig.name}. Either specify a deploymentName or ensure environment variable GOLDSTACK_DEPLOYMENT is defined.`);
27
+ deploymentName = process.env.GOLDSTACK_DEPLOYMENT;
28
+ }
29
+ if (deploymentName === 'local') {
30
+ if (!mockedSES) {
31
+ mockedSES = new mockedSES_1.MockedSES();
32
+ }
33
+ return mockedSES;
34
+ }
35
+ const config = packageConfig.getConfigFromPackageConfig(goldstackConfig);
36
+ const deployment = packageConfig.getDeployment(config, deploymentName);
37
+ const awsUser = await (0, infra_aws_1.getAWSUser)(deployment.awsUser);
38
+ const ses = new ses_1.default({
39
+ apiVersion: '2010-12-01',
40
+ credentials: awsUser,
41
+ region: deployment.awsRegion,
42
+ });
43
+ return ses;
44
+ };
45
+ exports.connect = connect;
46
+ const getFromDomain = async (goldstackConfig, packageSchema, deploymentName) => {
47
+ const packageConfig = new utils_package_config_1.PackageConfig({
48
+ goldstackJson: goldstackConfig,
49
+ packageSchema,
50
+ });
51
+ if (!deploymentName) {
52
+ (0, assert_1.default)(process.env.GOLDSTACK_DEPLOYMENT, `Cannot connect to SES for package ${goldstackConfig.name}. Either specify a deploymentName or ensure environment variable GOLDSTACK_DEPLOYMENT is defined.`);
53
+ deploymentName = process.env.GOLDSTACK_DEPLOYMENT;
54
+ }
55
+ if (deploymentName === 'local') {
56
+ return 'test.local';
57
+ }
58
+ const config = packageConfig.getConfigFromPackageConfig(goldstackConfig);
59
+ const deployment = packageConfig.getDeployment(config, deploymentName);
60
+ return deployment.configuration.domain;
61
+ };
62
+ exports.getFromDomain = getFromDomain;
63
+ //# sourceMappingURL=sesConnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sesConnect.js","sourceRoot":"","sources":["../src/sesConnect.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkD;AAClD,8DAAsC;AAMtC,oDAA4B;AAE5B,0EAAgE;AAEhE,2CAAwC;AAExC,IAAI,SAAgC,CAAC;AAE9B,MAAM,YAAY,GAAG,GAAc,EAAE;IAC1C,IAAI,CAAC,SAAS,EAAE;QACd,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;KAC7B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB;AAEK,MAAM,OAAO,GAAG,KAAK,EAC1B,eAAoB,EACpB,aAAkB,EAClB,cAAuB,EACT,EAAE;IAChB,MAAM,aAAa,GAAG,IAAI,oCAAa,CAGrC;QACA,aAAa,EAAE,eAAe;QAC9B,aAAa;KACd,CAAC,CAAC;IACH,IAAI,CAAC,cAAc,EAAE;QACnB,IAAA,gBAAM,EACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAChC,qCAAqC,eAAe,CAAC,IAAI,mGAAmG,CAC7J,CAAC;QACF,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;KACnD;IAED,IAAI,cAAc,KAAK,OAAO,EAAE;QAC9B,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;SAC7B;QACD,OAAO,SAAgB,CAAC;KACzB;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,MAAM,IAAA,sBAAU,EAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC;QAClB,UAAU,EAAE,YAAY;QACxB,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE,UAAU,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAvCW,QAAA,OAAO,WAuClB;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,eAAoB,EACpB,aAAkB,EAClB,cAAuB,EACN,EAAE;IACnB,MAAM,aAAa,GAAG,IAAI,oCAAa,CAGrC;QACA,aAAa,EAAE,eAAe;QAC9B,aAAa;KACd,CAAC,CAAC;IACH,IAAI,CAAC,cAAc,EAAE;QACnB,IAAA,gBAAM,EACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAChC,qCAAqC,eAAe,CAAC,IAAI,mGAAmG,CAC7J,CAAC;QACF,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;KACnD;IAED,IAAI,cAAc,KAAK,OAAO,EAAE;QAC9B,OAAO,YAAY,CAAC;KACrB;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEvE,OAAO,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;AACzC,CAAC,CAAC;AA5BW,QAAA,aAAa,iBA4BxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sesConnect.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sesConnect.spec.d.ts","sourceRoot":"","sources":["../src/sesConnect.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sesConnect_1 = require("./sesConnect");
4
+ describe('SES connect', () => {
5
+ it('Should connect to mocked SES', async () => {
6
+ const ses = await (0, sesConnect_1.connect)({}, {}, 'local');
7
+ await ses
8
+ .sendEmail({
9
+ Destination: { ToAddresses: ['test@test.com'] },
10
+ Message: {
11
+ Subject: { Charset: 'UTF-8', Data: 'Test email' },
12
+ Body: {
13
+ Text: {
14
+ Charset: 'UTF-8',
15
+ Data: 'This is the message body in text format.',
16
+ },
17
+ },
18
+ },
19
+ Source: 'sender@example.com',
20
+ })
21
+ .promise();
22
+ const mockedSES = (0, sesConnect_1.getMockedSES)();
23
+ const sentEmailRequests = mockedSES.getSentEmailRequests();
24
+ expect(sentEmailRequests).toHaveLength(1);
25
+ });
26
+ });
27
+ //# sourceMappingURL=sesConnect.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sesConnect.spec.js","sourceRoot":"","sources":["../src/sesConnect.spec.ts"],"names":[],"mappings":";;AAAA,6CAAqD;AACrD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAO,EAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,GAAG;aACN,SAAS,CAAC;YACT,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE;YAC/C,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;gBACjD,IAAI,EAAE;oBACJ,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO;wBAChB,IAAI,EAAE,0CAA0C;qBACjD;iBACF;aACF;YACD,MAAM,EAAE,oBAAoB;SAC7B,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,SAAS,GAAG,IAAA,yBAAY,GAAE,CAAC;QACjC,MAAM,iBAAiB,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC3D,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { connect, getMockedSES, getFromDomain } from './sesConnect';
2
+ export { MockedSES } from './mockedSES';
3
+ export declare const run: (args: string[]) => Promise<void>;
4
+ //# sourceMappingURL=templateEmailSend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateEmailSend.d.ts","sourceRoot":"","sources":["../src/templateEmailSend.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,GAAG,SAAgB,MAAM,EAAE,KAAG,QAAQ,IAAI,CAyBtD,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.run = exports.MockedSES = exports.getFromDomain = exports.getMockedSES = exports.connect = void 0;
7
+ const utils_package_1 = require("@goldstack/utils-package");
8
+ const utils_cli_1 = require("@goldstack/utils-cli");
9
+ const utils_terraform_1 = require("@goldstack/utils-terraform");
10
+ const utils_terraform_aws_1 = require("@goldstack/utils-terraform-aws");
11
+ const utils_package_config_1 = require("@goldstack/utils-package-config");
12
+ const yargs_1 = __importDefault(require("yargs"));
13
+ var sesConnect_1 = require("./sesConnect");
14
+ Object.defineProperty(exports, "connect", { enumerable: true, get: function () { return sesConnect_1.connect; } });
15
+ Object.defineProperty(exports, "getMockedSES", { enumerable: true, get: function () { return sesConnect_1.getMockedSES; } });
16
+ Object.defineProperty(exports, "getFromDomain", { enumerable: true, get: function () { return sesConnect_1.getFromDomain; } });
17
+ var mockedSES_1 = require("./mockedSES");
18
+ Object.defineProperty(exports, "MockedSES", { enumerable: true, get: function () { return mockedSES_1.MockedSES; } });
19
+ const run = async (args) => {
20
+ await (0, utils_cli_1.wrapCli)(async () => {
21
+ const argv = (0, utils_package_1.buildCli)({
22
+ yargs: yargs_1.default,
23
+ deployCommands: (yargs) => yargs,
24
+ infraCommands: (0, utils_terraform_1.infraCommands)(),
25
+ }).help().argv;
26
+ const packageConfig = new utils_package_config_1.PackageConfig({
27
+ packagePath: './',
28
+ });
29
+ const config = packageConfig.getConfig();
30
+ const command = argv._[0];
31
+ const [, , , ...opArgs] = args;
32
+ if (command === 'infra') {
33
+ await (0, utils_terraform_aws_1.terraformAwsCli)(opArgs);
34
+ return;
35
+ }
36
+ throw new Error('Unknown command: ' + command);
37
+ });
38
+ };
39
+ exports.run = run;
40
+ //# sourceMappingURL=templateEmailSend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateEmailSend.js","sourceRoot":"","sources":["../src/templateEmailSend.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoD;AACpD,oDAA+C;AAC/C,gEAA2D;AAC3D,wEAAiE;AACjE,0EAAgE;AAKhE,kDAA0B;AAE1B,2CAAoE;AAA3D,qGAAA,OAAO,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,2GAAA,aAAa,OAAA;AAC7C,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAEX,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAiB,EAAE;IACzD,MAAM,IAAA,mBAAO,EAAC,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,IAAA,wBAAQ,EAAC;YACpB,KAAK,EAAL,eAAK;YACL,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YAChC,aAAa,EAAE,IAAA,+BAAa,GAAE;SAC/B,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;QAEf,MAAM,aAAa,GAAG,IAAI,oCAAa,CAGrC;YACA,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAE/B,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,MAAM,IAAA,qCAAe,EAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;SACR;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzBW,QAAA,GAAG,OAyBd"}
@@ -0,0 +1,61 @@
1
+ import { Package } from '@goldstack/utils-package';
2
+ import { AWSDeployment } from '@goldstack/infra-aws';
3
+ import { TerraformDeployment } from '@goldstack/utils-terraform';
4
+ import { Deployment } from '@goldstack/infra';
5
+ import { DeploymentConfiguration } from '@goldstack/infra';
6
+ export { DeploymentConfiguration };
7
+ import { Configuration } from '@goldstack/utils-package';
8
+ export { Configuration };
9
+ /**
10
+ * The domain that will be used for email sender FROM addresses.
11
+ *
12
+ * @title Domain
13
+ * @pattern ^[^\s]*
14
+ */
15
+ export declare type EmailDomain = string;
16
+ /**
17
+ * The domain name of the Route 53 hosted zone that the specific domain will be added to. This is often the same as the domain used for the FROM address.
18
+ *
19
+ * @title Hosted Zone Domain
20
+ * @pattern ^[^\s]*
21
+ */
22
+ export declare type HostedZoneDomain = string;
23
+ export interface EmailSendDeploymentConfiguration extends DeploymentConfiguration {
24
+ domain: EmailDomain;
25
+ hostedZoneDomain: HostedZoneDomain;
26
+ }
27
+ /**
28
+ * Configures a deployment target for the email infrastrucutre.
29
+ *
30
+ * @Title Deployment
31
+ *
32
+ */
33
+ export interface EmailSendDeployment extends Deployment, AWSDeployment, TerraformDeployment {
34
+ configuration: EmailSendDeploymentConfiguration;
35
+ }
36
+ /**
37
+ * Places where email send should be configured.
38
+ *
39
+ * @title Deployments
40
+ */
41
+ export declare type EmailSendDeployments = EmailSendDeployment[];
42
+ /**
43
+ * Email send package configuration
44
+ *
45
+ * @title Email Send Configuration
46
+ *
47
+ */
48
+ export interface EmailSendPackageConfiguration extends Configuration {
49
+ [propName: string]: any;
50
+ }
51
+ /**
52
+ * A package for enabling email sends through AWS SES.
53
+ *
54
+ * @title Email Send Package
55
+ */
56
+ export interface EmailSendPackage extends Package {
57
+ configuration: EmailSendPackageConfiguration;
58
+ deployments: EmailSendDeployments;
59
+ }
60
+ export default EmailSendPackage;
61
+ //# sourceMappingURL=EmailSendPackage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSendPackage.d.ts","sourceRoot":"","sources":["../../src/types/EmailSendPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;GAKG;AACH,oBAAY,WAAW,GAAG,MAAM,CAAC;AAEjC;;;;;GAKG;AACH,oBAAY,gBAAgB,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,gCACf,SAAQ,uBAAuB;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBACf,SAAQ,UAAU,EAChB,aAAa,EACb,mBAAmB;IACrB,aAAa,EAAE,gCAAgC,CAAC;CACjD;AAED;;;;GAIG;AACH,oBAAY,oBAAoB,GAAG,mBAAmB,EAAE,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,6BAA8B,SAAQ,aAAa;IAClE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,aAAa,EAAE,6BAA6B,CAAC;IAC7C,WAAW,EAAE,oBAAoB,CAAC;CACnC;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=EmailSendPackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSendPackage.js","sourceRoot":"","sources":["../../src/types/EmailSendPackage.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "@goldstack/template-email-send",
3
+ "version": "0.3.55",
4
+ "description": "Utilities for packages that implement email sending using AWS SES",
5
+ "keywords": [
6
+ "goldstack",
7
+ "utility",
8
+ "infrastructure",
9
+ "IaC",
10
+ "aws",
11
+ "SES",
12
+ "email",
13
+ "configuration"
14
+ ],
15
+ "homepage": "https://goldstack.party",
16
+ "bugs": {
17
+ "url": "https://github.com/goldstack/goldstack/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/goldstack/goldstack.git"
22
+ },
23
+ "license": "MIT",
24
+ "author": "Max Rohde",
25
+ "sideEffects": false,
26
+ "main": "dist/templateEmailSend.js",
27
+ "bin": {
28
+ "template": "./bin/template",
29
+ "template-email-send": "./bin/template"
30
+ },
31
+ "scripts": {
32
+ "build": "yarn clean && yarn compile",
33
+ "build:watch": "yarn clean && yarn compile:watch",
34
+ "clean": "rm -rf ./dist",
35
+ "compile": "tsc -p tsconfig.json",
36
+ "compile:watch": "tsc -p tsconfig.json --watch",
37
+ "compile:watch:light": "nodemon --watch ./src/ -e '*' --exec 'yarn compile'",
38
+ "coverage": "jest --collect-coverage --passWithNoTests --config=./jest.config.js",
39
+ "generate:schema": "utils-package-config-generate EmailSend && cp schemas/* ../../../templates/packages/email-send/schemas",
40
+ "prepublishOnly": "yarn run build",
41
+ "publish": "utils-git changed --exec \"yarn npm publish $@\"",
42
+ "test": "GOLDSTACK_DEPLOYMENT=local jest --watch --config=./jest.config.js",
43
+ "test:ci": "GOLDSTACK_DEPLOYMENT=local jest --passWithNoTests --config=./jest.config.js",
44
+ "version:apply": "utils-git changed --exec \"yarn version $@ && yarn version apply\"",
45
+ "version:apply:force": "yarn version $@ && yarn version apply"
46
+ },
47
+ "dependencies": {
48
+ "@goldstack/infra": "0.3.15",
49
+ "@goldstack/infra-aws": "0.3.17",
50
+ "@goldstack/utils-cli": "0.2.5",
51
+ "@goldstack/utils-config": "0.3.14",
52
+ "@goldstack/utils-docker": "0.3.15",
53
+ "@goldstack/utils-log": "0.2.6",
54
+ "@goldstack/utils-package": "0.3.15",
55
+ "@goldstack/utils-package-config": "0.3.15",
56
+ "@goldstack/utils-sh": "0.4.13",
57
+ "@goldstack/utils-template": "0.3.14",
58
+ "@goldstack/utils-terraform": "0.3.23",
59
+ "@goldstack/utils-terraform-aws": "0.3.23",
60
+ "aws-sdk": "2.721.0",
61
+ "uuid": "^8.3.0",
62
+ "yargs": "^15.4.1"
63
+ },
64
+ "devDependencies": {
65
+ "@goldstack/utils-git": "0.1.26",
66
+ "@goldstack/utils-package-config-generate": "0.2.5",
67
+ "@types/jest": "^26.0.21",
68
+ "@types/mock-aws-s3": "^2.6.1",
69
+ "@types/node": "^14.0.6",
70
+ "@types/uuid": "^8.3.0",
71
+ "@types/yargs": "^15.0.5",
72
+ "jest": "^26.6.3",
73
+ "ts-jest": "^26.5.4",
74
+ "typescript": "^4.4.3"
75
+ }
76
+ }