@kensio/yulin 1.19.3 → 1.19.4
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/dist/serve/http/local-server/sim-aws-local-server.d.ts +7 -5
- package/dist/serve/http/local-server/sim-aws-local-server.d.ts.map +1 -1
- package/dist/serve/http/local-server/sim-aws-local-server.js.map +1 -1
- package/dist/serve/message/sim-email-log-block.d.ts +35 -0
- package/dist/serve/message/sim-email-log-block.d.ts.map +1 -0
- package/dist/serve/message/sim-email-log-block.js +111 -0
- package/dist/serve/message/sim-email-log-block.js.map +1 -0
- package/dist/serve/message/sim-local-message-logging.d.ts.map +1 -1
- package/dist/serve/message/sim-local-message-logging.js +4 -1
- package/dist/serve/message/sim-local-message-logging.js.map +1 -1
- package/dist/serve/message/sim-message-indent.d.ts +10 -0
- package/dist/serve/message/sim-message-indent.d.ts.map +1 -0
- package/dist/serve/message/sim-message-indent.js +12 -0
- package/dist/serve/message/sim-message-indent.js.map +1 -0
- package/dist/serve/message/sim-message-log-console.d.ts +17 -1
- package/dist/serve/message/sim-message-log-console.d.ts.map +1 -1
- package/dist/serve/message/sim-message-log-console.js +25 -17
- package/dist/serve/message/sim-message-log-console.js.map +1 -1
- package/dist/serve/message/sim-message-logging.d.ts +16 -3
- package/dist/serve/message/sim-message-logging.d.ts.map +1 -1
- package/dist/serve/message/sim-message-logging.js +28 -7
- package/dist/serve/message/sim-message-logging.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +10 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +15 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +0 -9
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +0 -11
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +1 -1
- package/dist/service/aws/message/sim-aws-logged-message.d.ts +25 -5
- package/dist/service/aws/message/sim-aws-logged-message.d.ts.map +1 -1
- package/dist/service/cloudformation/bind/{sim-cfn-deploy-binding.d.ts → sim-cfn-binding.d.ts} +11 -4
- package/dist/service/cloudformation/bind/sim-cfn-binding.d.ts.map +1 -0
- package/dist/service/cloudformation/bind/{sim-cfn-deploy-binding.js → sim-cfn-binding.js} +1 -1
- package/dist/service/cloudformation/bind/sim-cfn-binding.js.map +1 -0
- package/dist/service/cloudformation/bind/sim-cfn-exec-binding.type.d.ts +32 -35
- package/dist/service/cloudformation/bind/sim-cfn-exec-binding.type.d.ts.map +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-finder.d.ts +2 -2
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-finder.d.ts.map +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-finder.js +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-finder.js.map +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-validator.d.ts +2 -2
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-validator.d.ts.map +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-validator.js +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-validator.js.map +1 -1
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +2 -2
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts.map +1 -1
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +2 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +2 -2
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +3 -3
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts.map +1 -1
- package/dist/service/cloudformation/index.d.ts +3 -0
- package/dist/service/cloudformation/index.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +2 -2
- package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +2 -2
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js.map +1 -1
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -2
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +8 -0
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +2 -2
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +3 -10
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +13 -18
- package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +2 -2
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-binding-lookup.d.ts +2 -2
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-binding-lookup.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.d.ts +2 -2
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.js.map +1 -1
- package/dist/service/ecs/cfn/bind/sim-cfn-ecs-container-binding.type.d.ts +1 -1
- package/dist/service/ecs/cfn/bind/sim-cfn-ecs-container-bindings.d.ts +2 -2
- package/dist/service/ecs/cfn/bind/sim-cfn-ecs-container-bindings.d.ts.map +1 -1
- package/dist/service/ecs/cfn/bind/sim-cfn-ecs-container-bindings.js +1 -1
- package/dist/service/ecs/cfn/bind/sim-cfn-ecs-container-bindings.js.map +1 -1
- package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.d.ts +2 -2
- package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.d.ts.map +1 -1
- package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.js.map +1 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-code-input.d.ts +2 -2
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-code-input.d.ts.map +1 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts +2 -2
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts.map +1 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js.map +1 -1
- package/dist/service/ses/command/send/sim-ses-configuration-set-check.d.ts +53 -0
- package/dist/service/ses/command/send/sim-ses-configuration-set-check.d.ts.map +1 -0
- package/dist/service/ses/command/send/sim-ses-configuration-set-check.js +70 -0
- package/dist/service/ses/command/send/sim-ses-configuration-set-check.js.map +1 -0
- package/dist/service/ses/command/send/sim-ses-send-email.d.ts +5 -3
- package/dist/service/ses/command/send/sim-ses-send-email.d.ts.map +1 -1
- package/dist/service/ses/command/send/sim-ses-send-email.js +11 -4
- package/dist/service/ses/command/send/sim-ses-send-email.js.map +1 -1
- package/dist/service/ses/command/send/sim-ses-service-send.d.ts +6 -0
- package/dist/service/ses/command/send/sim-ses-service-send.d.ts.map +1 -1
- package/dist/service/ses/command/send/sim-ses-service-send.js +9 -2
- package/dist/service/ses/command/send/sim-ses-service-send.js.map +1 -1
- package/dist/service/ses/email/sim-ses-sent-email-store.d.ts +14 -0
- package/dist/service/ses/email/sim-ses-sent-email-store.d.ts.map +1 -1
- package/dist/service/ses/email/sim-ses-sent-email-store.js +21 -0
- package/dist/service/ses/email/sim-ses-sent-email-store.js.map +1 -1
- package/dist/service/ses/error/sim-ses.error.d.ts +12 -0
- package/dist/service/ses/error/sim-ses.error.d.ts.map +1 -1
- package/dist/service/ses/error/sim-ses.error.js +14 -0
- package/dist/service/ses/error/sim-ses.error.js.map +1 -1
- package/dist/service/ses/index.d.ts +1 -1
- package/dist/service/ses/index.d.ts.map +1 -1
- package/dist/service/ses/index.js +1 -1
- package/dist/service/ses/index.js.map +1 -1
- package/dist/service/ses/sim-ses-commands.d.ts +5 -0
- package/dist/service/ses/sim-ses-commands.d.ts.map +1 -1
- package/dist/service/ses/sim-ses-commands.js +10 -2
- package/dist/service/ses/sim-ses-commands.js.map +1 -1
- package/dist/terraform/sim-tf-adapter.d.ts +2 -2
- package/dist/terraform/sim-tf-adapter.d.ts.map +1 -1
- package/dist/terraform/sim-tf-attribute-intrinsic.d.ts +13 -0
- package/dist/terraform/sim-tf-attribute-intrinsic.d.ts.map +1 -0
- package/dist/terraform/sim-tf-attribute-intrinsic.js +23 -0
- package/dist/terraform/sim-tf-attribute-intrinsic.js.map +1 -0
- package/dist/terraform/sim-tf-attributes.js +1 -1
- package/dist/terraform/sim-tf-attributes.js.map +1 -1
- package/dist/terraform/sim-tf-declare.d.ts +0 -20
- package/dist/terraform/sim-tf-declare.d.ts.map +1 -1
- package/dist/terraform/sim-tf-declare.js +1 -47
- package/dist/terraform/sim-tf-declare.js.map +1 -1
- package/dist/terraform/sim-tf-depends-on.d.ts +21 -0
- package/dist/terraform/sim-tf-depends-on.d.ts.map +1 -0
- package/dist/terraform/sim-tf-depends-on.js +30 -0
- package/dist/terraform/sim-tf-depends-on.js.map +1 -0
- package/dist/terraform/sim-tf-expression-references.d.ts +11 -0
- package/dist/terraform/sim-tf-expression-references.d.ts.map +1 -0
- package/dist/terraform/sim-tf-expression-references.js +22 -0
- package/dist/terraform/sim-tf-expression-references.js.map +1 -0
- package/dist/terraform/sim-tf-module-outputs.d.ts +39 -0
- package/dist/terraform/sim-tf-module-outputs.d.ts.map +1 -1
- package/dist/terraform/sim-tf-module-outputs.js +66 -0
- package/dist/terraform/sim-tf-module-outputs.js.map +1 -1
- package/dist/terraform/sim-tf-module-variables.d.ts +16 -0
- package/dist/terraform/sim-tf-module-variables.d.ts.map +1 -0
- package/dist/terraform/sim-tf-module-variables.js +37 -0
- package/dist/terraform/sim-tf-module-variables.js.map +1 -0
- package/dist/terraform/sim-tf-nested-attributes.js +2 -2
- package/dist/terraform/sim-tf-nested-attributes.js.map +1 -1
- package/dist/terraform/sim-tf-plan-resources.d.ts.map +1 -1
- package/dist/terraform/sim-tf-plan-resources.js +2 -0
- package/dist/terraform/sim-tf-plan-resources.js.map +1 -1
- package/dist/terraform/sim-tf-plan.type.d.ts +20 -3
- package/dist/terraform/sim-tf-plan.type.d.ts.map +1 -1
- package/dist/terraform/sim-tf-reference-addresses.d.ts +45 -0
- package/dist/terraform/sim-tf-reference-addresses.d.ts.map +1 -0
- package/dist/terraform/sim-tf-reference-addresses.js +82 -0
- package/dist/terraform/sim-tf-reference-addresses.js.map +1 -0
- package/dist/terraform/sim-tf-reference-scope.d.ts +29 -0
- package/dist/terraform/sim-tf-reference-scope.d.ts.map +1 -0
- package/dist/terraform/sim-tf-reference-scope.js +71 -0
- package/dist/terraform/sim-tf-reference-scope.js.map +1 -0
- package/dist/terraform/sim-tf-reference.d.ts +33 -31
- package/dist/terraform/sim-tf-reference.d.ts.map +1 -1
- package/dist/terraform/sim-tf-reference.js +79 -88
- package/dist/terraform/sim-tf-reference.js.map +1 -1
- package/dist/terraform/sim-tf-referenced.js +1 -1
- package/dist/terraform/sim-tf-referenced.js.map +1 -1
- package/dist/terraform/sim-tf-resource.type.d.ts +8 -0
- package/dist/terraform/sim-tf-resource.type.d.ts.map +1 -1
- package/dist/terraform/sim-tf-settle.d.ts.map +1 -1
- package/dist/terraform/sim-tf-settle.js +3 -1
- package/dist/terraform/sim-tf-settle.js.map +1 -1
- package/dist/util/exactly-one.type.d.ts +14 -0
- package/dist/util/exactly-one.type.d.ts.map +1 -0
- package/dist/util/exactly-one.type.js +2 -0
- package/dist/util/exactly-one.type.js.map +1 -0
- package/package.json +1 -1
- package/dist/service/cloudformation/bind/sim-cfn-deploy-binding.d.ts.map +0 -1
- package/dist/service/cloudformation/bind/sim-cfn-deploy-binding.js.map +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { simSesBareAddress } from "../../email/sim-ses-address.js";
|
|
2
|
+
import { SimSesSendingPausedException } from "../../error/sim-ses.error.js";
|
|
3
|
+
/**
|
|
4
|
+
* Which configuration set a send goes through, and whether it may.
|
|
5
|
+
*
|
|
6
|
+
* A send names its own set, and one that names none falls back to the set the
|
|
7
|
+
* sending identity was created with. That fallback is how an application
|
|
8
|
+
* attaching a set to an identity behaves, and it lets a test assert a message
|
|
9
|
+
* went through the right set without the send naming it.
|
|
10
|
+
*
|
|
11
|
+
* A name nothing created is still accepted. Real SES refuses one, and refusing
|
|
12
|
+
* here would fail a test over a set the developer left out of their local
|
|
13
|
+
* setup. A test wanting the strict reading asks `findConfigurationSet` for the
|
|
14
|
+
* set and finds nothing.
|
|
15
|
+
*
|
|
16
|
+
* `SendingEnabled` is the one option acted on. It is a switch the caller wrote
|
|
17
|
+
* deliberately. A send through a set that has it off is refused the way SES
|
|
18
|
+
* refuses one.
|
|
19
|
+
*/
|
|
20
|
+
export class SimSesConfigurationSetCheck {
|
|
21
|
+
#identities;
|
|
22
|
+
#configurationSets;
|
|
23
|
+
constructor(properties) {
|
|
24
|
+
this.#identities = properties.identities;
|
|
25
|
+
this.#configurationSets = properties.configurationSets;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The set this send is made through, or nothing where neither the send nor
|
|
29
|
+
* the identity names one.
|
|
30
|
+
*
|
|
31
|
+
* Which identity's set counts follows the rule IAM authorizes an address
|
|
32
|
+
* against. An address identity's set wins over its domain's.
|
|
33
|
+
*/
|
|
34
|
+
applying(send) {
|
|
35
|
+
if (send.configurationSetName !== undefined) {
|
|
36
|
+
return send.configurationSetName;
|
|
37
|
+
}
|
|
38
|
+
const address = simSesBareAddress(send.fromEmailAddress);
|
|
39
|
+
return this.#identities.find(this.#identities.covering(address))?.settings
|
|
40
|
+
.configurationSetName;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Refuse a send through a set whose sending is switched off.
|
|
44
|
+
*/
|
|
45
|
+
check(configurationSetName) {
|
|
46
|
+
const refusal = this.refusal(configurationSetName);
|
|
47
|
+
if (refusal !== undefined) {
|
|
48
|
+
throw new SimSesSendingPausedException(refusal);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Why SES would turn this send down, or nothing where it would take it.
|
|
53
|
+
*
|
|
54
|
+
* The identity check offers a reason alongside its exception, and this
|
|
55
|
+
* offers both for the same purpose. A service sending on the account's
|
|
56
|
+
* behalf reports the refusal in its own vocabulary.
|
|
57
|
+
*/
|
|
58
|
+
refusal(configurationSetName) {
|
|
59
|
+
if (configurationSetName === undefined) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const configurationSet = this.#configurationSets.find(configurationSetName);
|
|
63
|
+
if (configurationSet === undefined || configurationSet.sendingEnabled) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return (`Email sending is disabled for configuration set ` +
|
|
67
|
+
`${configurationSetName}.`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=sim-ses-configuration-set-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-ses-configuration-set-check.js","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-configuration-set-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAa5E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,2BAA2B;IAC7B,WAAW,CAAsB;IACjC,kBAAkB,CAA8B;IAEzD,YAAY,UAAiD;QAC3D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,IAA0B;QACjC,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ;aACvE,oBAAoB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAwC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAEnD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,oBAAwC;QAC9C,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAE5E,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,CAAC,cAAc,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,CACL,kDAAkD;YAClD,GAAG,oBAAoB,GAAG,CAC3B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -4,6 +4,7 @@ import type { SimSesIdentityStore } from "../../identity/sim-ses-identity-store.
|
|
|
4
4
|
import type { SimSesAuthorizer } from "../authorize/sim-ses-authorizer.js";
|
|
5
5
|
import type { SimSesRequestOptions } from "../sim-ses-request-options.js";
|
|
6
6
|
import type { SimSendEmailCommand, SimSendEmailCommandOutput } from "./send.command.js";
|
|
7
|
+
import type { SimSesConfigurationSetCheck } from "./sim-ses-configuration-set-check.js";
|
|
7
8
|
import type { SimSesContentReader } from "./sim-ses-content.js";
|
|
8
9
|
import type { SimSesSuppressionCheck } from "./sim-ses-suppression-check.js";
|
|
9
10
|
import type { SimSesVerifiedIdentityCheck } from "./sim-ses-verified-identities.js";
|
|
@@ -12,6 +13,7 @@ interface SimSesSendEmailProperties {
|
|
|
12
13
|
readonly content: SimSesContentReader;
|
|
13
14
|
readonly sent: SimSesSentEmailStore;
|
|
14
15
|
readonly identityCheck: SimSesVerifiedIdentityCheck;
|
|
16
|
+
readonly configurationSetCheck: SimSesConfigurationSetCheck;
|
|
15
17
|
readonly suppressionCheck: SimSesSuppressionCheck;
|
|
16
18
|
readonly authorizer: SimSesAuthorizer;
|
|
17
19
|
readonly clock: SimClock;
|
|
@@ -22,9 +24,9 @@ interface SimSesSendEmailProperties {
|
|
|
22
24
|
* Nothing is delivered, so what this does is decide whether SES would have
|
|
23
25
|
* accepted the message and, if it would, keep what it would have sent. The
|
|
24
26
|
* order matters and follows real SES: IAM decides the request before the
|
|
25
|
-
* service looks at it, then the identity check, then the
|
|
26
|
-
*
|
|
27
|
-
* identities are verified.
|
|
27
|
+
* service looks at it, then the identity check, then the configuration set's
|
|
28
|
+
* sending switch, then the message is recorded. A caller with no permission is
|
|
29
|
+
* therefore refused whether or not its identities are verified.
|
|
28
30
|
*
|
|
29
31
|
* The suppression list refuses nothing. SES accepts a message addressed to a
|
|
30
32
|
* suppressed recipient and holds it back from that recipient, so the check
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-send-email.d.ts","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-send-email.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAOpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAEpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,2BAA2B,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;;
|
|
1
|
+
{"version":3,"file":"sim-ses-send-email.d.ts","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-send-email.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAOpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAEpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,2BAA2B,CAAC;IACpD,QAAQ,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;;IAU1B,YAAY,UAAU,EAAE,yBAAyB,EAShD;IAED;;OAEG;IACH,MAAM,CACJ,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,yBAAyB,CAoD3B;CACF"}
|
|
@@ -9,9 +9,9 @@ import { refuseUnsimulatedSendInput } from "./sim-ses-unsimulated-send-input.js"
|
|
|
9
9
|
* Nothing is delivered, so what this does is decide whether SES would have
|
|
10
10
|
* accepted the message and, if it would, keep what it would have sent. The
|
|
11
11
|
* order matters and follows real SES: IAM decides the request before the
|
|
12
|
-
* service looks at it, then the identity check, then the
|
|
13
|
-
*
|
|
14
|
-
* identities are verified.
|
|
12
|
+
* service looks at it, then the identity check, then the configuration set's
|
|
13
|
+
* sending switch, then the message is recorded. A caller with no permission is
|
|
14
|
+
* therefore refused whether or not its identities are verified.
|
|
15
15
|
*
|
|
16
16
|
* The suppression list refuses nothing. SES accepts a message addressed to a
|
|
17
17
|
* suppressed recipient and holds it back from that recipient, so the check
|
|
@@ -22,6 +22,7 @@ export class SimSesSendEmail {
|
|
|
22
22
|
#content;
|
|
23
23
|
#sent;
|
|
24
24
|
#identityCheck;
|
|
25
|
+
#configurationSetCheck;
|
|
25
26
|
#suppressionCheck;
|
|
26
27
|
#authorizer;
|
|
27
28
|
#clock;
|
|
@@ -30,6 +31,7 @@ export class SimSesSendEmail {
|
|
|
30
31
|
this.#content = properties.content;
|
|
31
32
|
this.#sent = properties.sent;
|
|
32
33
|
this.#identityCheck = properties.identityCheck;
|
|
34
|
+
this.#configurationSetCheck = properties.configurationSetCheck;
|
|
33
35
|
this.#suppressionCheck = properties.suppressionCheck;
|
|
34
36
|
this.#authorizer = properties.authorizer;
|
|
35
37
|
this.#clock = properties.clock;
|
|
@@ -50,6 +52,11 @@ export class SimSesSendEmail {
|
|
|
50
52
|
}
|
|
51
53
|
const content = this.#content.read(input.Content);
|
|
52
54
|
this.#identityCheck.check({ fromEmailAddress, recipients });
|
|
55
|
+
const configurationSetName = this.#configurationSetCheck.applying({
|
|
56
|
+
fromEmailAddress,
|
|
57
|
+
configurationSetName: input.ConfigurationSetName,
|
|
58
|
+
});
|
|
59
|
+
this.#configurationSetCheck.check(configurationSetName);
|
|
53
60
|
const messageId = randomUUID();
|
|
54
61
|
this.#sent.add(new SimSesSentEmail({
|
|
55
62
|
messageId,
|
|
@@ -60,7 +67,7 @@ export class SimSesSendEmail {
|
|
|
60
67
|
body: content.body,
|
|
61
68
|
templateName: content.templateName,
|
|
62
69
|
templateData: content.templateData,
|
|
63
|
-
configurationSetName
|
|
70
|
+
configurationSetName,
|
|
64
71
|
suppressedRecipients: this.#suppressionCheck.withheldFrom(recipients),
|
|
65
72
|
sentDate: this.#clock.now(),
|
|
66
73
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-send-email.js","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-send-email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-ses-send-email.js","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-send-email.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SimClock } from "../../../../util/clock/sim-clock.js";
|
|
2
2
|
import type { SimSesSentEmailStore } from "../../email/sim-ses-sent-email-store.js";
|
|
3
|
+
import type { SimSesConfigurationSetCheck } from "./sim-ses-configuration-set-check.js";
|
|
3
4
|
import type { SimSesSuppressionCheck } from "./sim-ses-suppression-check.js";
|
|
4
5
|
import type { SimSesVerifiedIdentityCheck } from "./sim-ses-verified-identities.js";
|
|
5
6
|
/**
|
|
@@ -33,6 +34,7 @@ export interface SimSesServiceSendResult {
|
|
|
33
34
|
interface SimSesServiceSendProperties {
|
|
34
35
|
readonly sent: SimSesSentEmailStore;
|
|
35
36
|
readonly identityCheck: SimSesVerifiedIdentityCheck;
|
|
37
|
+
readonly configurationSetCheck: SimSesConfigurationSetCheck;
|
|
36
38
|
readonly suppressionCheck: SimSesSuppressionCheck;
|
|
37
39
|
readonly clock: SimClock;
|
|
38
40
|
}
|
|
@@ -55,6 +57,10 @@ interface SimSesServiceSendProperties {
|
|
|
55
57
|
* The suppression list applies too, and refuses nothing. A pool's message to a
|
|
56
58
|
* suppressed recipient is accepted and recorded as held back, exactly as one
|
|
57
59
|
* an SDK caller sent would be.
|
|
60
|
+
*
|
|
61
|
+
* The configuration set applies as it does to any other send. A pool that
|
|
62
|
+
* names none sends through the set its identity carries, and a set with
|
|
63
|
+
* sending switched off turns the message down.
|
|
58
64
|
*/
|
|
59
65
|
export declare class SimSesServiceSend {
|
|
60
66
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-service-send.d.ts","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-service-send.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,UAAU,2BAA2B;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,2BAA2B,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"sim-ses-service-send.d.ts","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-service-send.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,UAAU,2BAA2B;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,2BAA2B,CAAC;IACpD,QAAQ,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,iBAAiB;;IAO5B,YAAY,UAAU,EAAE,2BAA2B,EAMlD;IAED;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB,CAsC/D;CACF"}
|
|
@@ -20,15 +20,21 @@ import { SimSesSentEmail } from "../../email/sim-ses-sent-email.js";
|
|
|
20
20
|
* The suppression list applies too, and refuses nothing. A pool's message to a
|
|
21
21
|
* suppressed recipient is accepted and recorded as held back, exactly as one
|
|
22
22
|
* an SDK caller sent would be.
|
|
23
|
+
*
|
|
24
|
+
* The configuration set applies as it does to any other send. A pool that
|
|
25
|
+
* names none sends through the set its identity carries, and a set with
|
|
26
|
+
* sending switched off turns the message down.
|
|
23
27
|
*/
|
|
24
28
|
export class SimSesServiceSend {
|
|
25
29
|
#sent;
|
|
26
30
|
#identityCheck;
|
|
31
|
+
#configurationSetCheck;
|
|
27
32
|
#suppressionCheck;
|
|
28
33
|
#clock;
|
|
29
34
|
constructor(properties) {
|
|
30
35
|
this.#sent = properties.sent;
|
|
31
36
|
this.#identityCheck = properties.identityCheck;
|
|
37
|
+
this.#configurationSetCheck = properties.configurationSetCheck;
|
|
32
38
|
this.#suppressionCheck = properties.suppressionCheck;
|
|
33
39
|
this.#clock = properties.clock;
|
|
34
40
|
}
|
|
@@ -36,10 +42,11 @@ export class SimSesServiceSend {
|
|
|
36
42
|
* Accept the message, or say why SES would have refused it.
|
|
37
43
|
*/
|
|
38
44
|
send(request) {
|
|
45
|
+
const configurationSetName = this.#configurationSetCheck.applying(request);
|
|
39
46
|
const refusedBecause = this.#identityCheck.refusal({
|
|
40
47
|
fromEmailAddress: simSesBareAddress(request.fromEmailAddress),
|
|
41
48
|
recipients: [request.toAddress],
|
|
42
|
-
});
|
|
49
|
+
}) ?? this.#configurationSetCheck.refusal(configurationSetName);
|
|
43
50
|
if (refusedBecause !== undefined) {
|
|
44
51
|
return { refusedBecause };
|
|
45
52
|
}
|
|
@@ -57,7 +64,7 @@ export class SimSesServiceSend {
|
|
|
57
64
|
body: { text: request.body, html: undefined },
|
|
58
65
|
templateName: undefined,
|
|
59
66
|
templateData: undefined,
|
|
60
|
-
configurationSetName
|
|
67
|
+
configurationSetName,
|
|
61
68
|
suppressedRecipients: this.#suppressionCheck.withheldFrom([
|
|
62
69
|
request.toAddress,
|
|
63
70
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-service-send.js","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-service-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-ses-service-send.js","sourceRoot":"","sources":["../../../../../src/service/ses/command/send/sim-ses-service-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AA4CpE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,iBAAiB;IACnB,KAAK,CAAuB;IAC5B,cAAc,CAA8B;IAC5C,sBAAsB,CAA8B;IACpD,iBAAiB,CAAyB;IAC1C,MAAM,CAAW;IAE1B,YAAY,UAAuC;QACjD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC;QAC/C,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,qBAAqB,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAiC;QACpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3E,MAAM,cAAc,GAClB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC1B,gBAAgB,EAAE,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC7D,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;SAChC,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAElE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,EAAE,cAAc,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,eAAe,CAAC;YAClB,SAAS;YACT,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,WAAW,EAAE;gBACX,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;gBAChC,WAAW,EAAE,EAAE;gBACf,YAAY,EAAE,EAAE;aACjB;YACD,gBAAgB,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAC/C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC7C,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,SAAS;YACvB,oBAAoB;YACpB,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;gBACxD,OAAO,CAAC,SAAS;aAClB,CAAC;YACF,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;SAC5B,CAAC,CACH,CAAC;QAEF,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
+
import { SimAwsMessageLog } from "../../aws/message/sim-aws-message-log.js";
|
|
1
2
|
import type { SimSesSentEmail } from "./sim-ses-sent-email.js";
|
|
3
|
+
interface SimSesSentEmailStoreProperties {
|
|
4
|
+
/**
|
|
5
|
+
* Where each message is announced as it is kept, for a serving layer to
|
|
6
|
+
* print.
|
|
7
|
+
*/
|
|
8
|
+
readonly messageLog?: SimAwsMessageLog;
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
11
|
* The messages one simulated SES scope has accepted.
|
|
4
12
|
*
|
|
@@ -13,12 +21,17 @@ import type { SimSesSentEmail } from "./sim-ses-sent-email.js";
|
|
|
13
21
|
*/
|
|
14
22
|
export declare class SimSesSentEmailStore {
|
|
15
23
|
#private;
|
|
24
|
+
constructor(properties?: SimSesSentEmailStoreProperties);
|
|
16
25
|
/**
|
|
17
26
|
* Every message this scope has accepted, oldest first.
|
|
18
27
|
*/
|
|
19
28
|
get all(): readonly SimSesSentEmail[];
|
|
20
29
|
/**
|
|
21
30
|
* Keep a message SES has accepted.
|
|
31
|
+
*
|
|
32
|
+
* Both ways a message is accepted come through here, a `SendEmail` from the
|
|
33
|
+
* SDK and another simulated service sending on the account's behalf, so this
|
|
34
|
+
* is the one place a message is announced from.
|
|
22
35
|
*/
|
|
23
36
|
add(email: SimSesSentEmail): void;
|
|
24
37
|
/**
|
|
@@ -30,4 +43,5 @@ export declare class SimSesSentEmailStore {
|
|
|
30
43
|
*/
|
|
31
44
|
countSentSince(now: Date): number;
|
|
32
45
|
}
|
|
46
|
+
export {};
|
|
33
47
|
//# sourceMappingURL=sim-ses-sent-email-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-sent-email-store.d.ts","sourceRoot":"","sources":["../../../../src/service/ses/email/sim-ses-sent-email-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAoB;;
|
|
1
|
+
{"version":3,"file":"sim-ses-sent-email-store.d.ts","sourceRoot":"","sources":["../../../../src/service/ses/email/sim-ses-sent-email-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,UAAU,8BAA8B;IACtC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAoB;;IAI/B,YAAY,UAAU,GAAE,8BAAmC,EAE1D;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,SAAS,eAAe,EAAE,CAEpC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAchC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAKhC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SimAwsMessageLog } from "../../aws/message/sim-aws-message-log.js";
|
|
1
2
|
const hoursInADay = 24;
|
|
2
3
|
const millisecondsInAnHour = 60 * 60 * 1000;
|
|
3
4
|
/**
|
|
@@ -14,6 +15,10 @@ const millisecondsInAnHour = 60 * 60 * 1000;
|
|
|
14
15
|
*/
|
|
15
16
|
export class SimSesSentEmailStore {
|
|
16
17
|
#sent = [];
|
|
18
|
+
#messageLog;
|
|
19
|
+
constructor(properties = {}) {
|
|
20
|
+
this.#messageLog = properties.messageLog ?? new SimAwsMessageLog();
|
|
21
|
+
}
|
|
17
22
|
/**
|
|
18
23
|
* Every message this scope has accepted, oldest first.
|
|
19
24
|
*/
|
|
@@ -22,9 +27,25 @@ export class SimSesSentEmailStore {
|
|
|
22
27
|
}
|
|
23
28
|
/**
|
|
24
29
|
* Keep a message SES has accepted.
|
|
30
|
+
*
|
|
31
|
+
* Both ways a message is accepted come through here, a `SendEmail` from the
|
|
32
|
+
* SDK and another simulated service sending on the account's behalf, so this
|
|
33
|
+
* is the one place a message is announced from.
|
|
25
34
|
*/
|
|
26
35
|
add(email) {
|
|
27
36
|
this.#sent.push(email);
|
|
37
|
+
// Announced after it is kept, so a listener that goes and reads the store
|
|
38
|
+
// finds the message it was just told about.
|
|
39
|
+
this.#messageLog.record({
|
|
40
|
+
kind: "ses",
|
|
41
|
+
fromEmailAddress: email.fromEmailAddress,
|
|
42
|
+
destination: email.destination,
|
|
43
|
+
subject: email.subject,
|
|
44
|
+
text: email.body.text,
|
|
45
|
+
html: email.body.html,
|
|
46
|
+
templateName: email.templateName,
|
|
47
|
+
templateData: email.templateData,
|
|
48
|
+
});
|
|
28
49
|
}
|
|
29
50
|
/**
|
|
30
51
|
* How many messages were accepted in the 24 hours up to an instant.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-sent-email-store.js","sourceRoot":"","sources":["../../../../src/service/ses/email/sim-ses-sent-email-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-ses-sent-email-store.js","sourceRoot":"","sources":["../../../../src/service/ses/email/sim-ses-sent-email-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAU5C;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,oBAAoB;IACtB,KAAK,GAAsB,EAAE,CAAC;IAC9B,WAAW,CAAmB;IAEvC,YAAY,UAAU,GAAmC,EAAE;QACzD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,IAAI,IAAI,gBAAgB,EAAE,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,KAAsB;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,0EAA0E;QAC1E,4CAA4C;QAC5C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YACrB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,GAAS;QACtB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW,GAAG,oBAAoB,CAAC;QAEvE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC;aACxE,MAAM,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -67,4 +67,16 @@ export declare class SimSesUnsupportedOperationException extends SimSesError {
|
|
|
67
67
|
readonly name = "UnsupportedOperationException";
|
|
68
68
|
constructor(message: string);
|
|
69
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Simulated SES SendingPausedException error.
|
|
72
|
+
*
|
|
73
|
+
* SES reports a send it will not make because sending is switched off. Here
|
|
74
|
+
* that means a configuration set created with `SendingEnabled: false`. That
|
|
75
|
+
* switch is a declaration the caller wrote deliberately, and this simulation
|
|
76
|
+
* follows it.
|
|
77
|
+
*/
|
|
78
|
+
export declare class SimSesSendingPausedException extends SimSesError {
|
|
79
|
+
readonly name = "SendingPausedException";
|
|
80
|
+
constructor(message: string);
|
|
81
|
+
}
|
|
70
82
|
//# sourceMappingURL=sim-ses.error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses.error.d.ts","sourceRoot":"","sources":["../../../../src/service/ses/error/sim-ses.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAGlB,SAAS,EAAE,mBAAmB;IAFhD,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,mBAAwB,EAGpD;CACF;AAED;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,WAAW;IACxD,SAAyB,IAAI,yBAAyB;IAEtD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,SAAyB,IAAI,uBAAuB;IAEpD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,SAAyB,IAAI,4BAA4B;IAEzD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,SAAyB,IAAI,qBAAqB;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,mCAAoC,SAAQ,WAAW;IAClE,SAAyB,IAAI,mCAAmC;IAEhE,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
|
|
1
|
+
{"version":3,"file":"sim-ses.error.d.ts","sourceRoot":"","sources":["../../../../src/service/ses/error/sim-ses.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAGlB,SAAS,EAAE,mBAAmB;IAFhD,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,mBAAwB,EAGpD;CACF;AAED;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,WAAW;IACxD,SAAyB,IAAI,yBAAyB;IAEtD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,SAAyB,IAAI,uBAAuB;IAEpD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,SAAyB,IAAI,4BAA4B;IAEzD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,SAAyB,IAAI,qBAAqB;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,mCAAoC,SAAQ,WAAW;IAClE,SAAyB,IAAI,mCAAmC;IAEhE,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,SAAyB,IAAI,4BAA4B;IAEzD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
|
|
@@ -74,4 +74,18 @@ export class SimSesUnsupportedOperationException extends SimSesError {
|
|
|
74
74
|
super(message, { httpStatusCode: 400 });
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Simulated SES SendingPausedException error.
|
|
79
|
+
*
|
|
80
|
+
* SES reports a send it will not make because sending is switched off. Here
|
|
81
|
+
* that means a configuration set created with `SendingEnabled: false`. That
|
|
82
|
+
* switch is a declaration the caller wrote deliberately, and this simulation
|
|
83
|
+
* follows it.
|
|
84
|
+
*/
|
|
85
|
+
export class SimSesSendingPausedException extends SimSesError {
|
|
86
|
+
name = "SendingPausedException";
|
|
87
|
+
constructor(message) {
|
|
88
|
+
super(message, { httpStatusCode: 400 });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
77
91
|
//# sourceMappingURL=sim-ses.error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses.error.js","sourceRoot":"","sources":["../../../../src/service/ses/error/sim-ses.error.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGlB,SAAS;IAF3B,YACE,OAAe,EACC,SAAS,GAAwB,EAAE;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC;yBAFC,SAAS;IAG3B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IAC/B,IAAI,GAAG,qBAAqB,CAAC;IAEtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAC7B,IAAI,GAAG,mBAAmB,CAAC;IAEpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IAClC,IAAI,GAAG,wBAAwB,CAAC;IAEzD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAC3B,IAAI,GAAG,iBAAiB,CAAC;IAElD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,mCAAoC,SAAQ,WAAW;IACzC,IAAI,GAAG,+BAA+B,CAAC;IAEhE,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"sim-ses.error.js","sourceRoot":"","sources":["../../../../src/service/ses/error/sim-ses.error.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGlB,SAAS;IAF3B,YACE,OAAe,EACC,SAAS,GAAwB,EAAE;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC;yBAFC,SAAS;IAG3B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IAC/B,IAAI,GAAG,qBAAqB,CAAC;IAEtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAC7B,IAAI,GAAG,mBAAmB,CAAC;IAEpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IAClC,IAAI,GAAG,wBAAwB,CAAC;IAEzD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAC3B,IAAI,GAAG,iBAAiB,CAAC;IAElD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,mCAAoC,SAAQ,WAAW;IACzC,IAAI,GAAG,+BAA+B,CAAC;IAEhE,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IAClC,IAAI,GAAG,wBAAwB,CAAC;IAEzD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -16,5 +16,5 @@ export { SimSesSuppressedDestination } from "./suppression/sim-ses-suppressed-de
|
|
|
16
16
|
export { SimSesSuppressionList } from "./suppression/sim-ses-suppression-list.js";
|
|
17
17
|
export { requiredSimSesSuppressionReason, type SimSesSuppressionReason, } from "./suppression/sim-ses-suppression-reason.js";
|
|
18
18
|
export { SimSesAccount, type SimSesAccountContactDetails, type SimSesSendQuota, } from "./account/sim-ses-account.js";
|
|
19
|
-
export { SimSesAlreadyExistsException, SimSesBadRequestException, SimSesError, type SimSesErrorMetadata, SimSesMessageRejected, SimSesNotFoundException, SimSesUnsupportedOperationException, } from "./error/sim-ses.error.js";
|
|
19
|
+
export { SimSesAlreadyExistsException, SimSesBadRequestException, SimSesError, type SimSesErrorMetadata, SimSesMessageRejected, SimSesNotFoundException, SimSesSendingPausedException, SimSesUnsupportedOperationException, } from "./error/sim-ses.error.js";
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/ses/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,KAAK,qCAAqC,EAC1C,KAAK,6BAA6B,EAClC,KAAK,uCAAuC,EAC5C,KAAK,sBAAsB,GAC5B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EACL,+BAA+B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,aAAa,EACb,KAAK,2BAA2B,EAChC,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,WAAW,EACX,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,mCAAmC,GACpC,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/ses/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,KAAK,qCAAqC,EAC1C,KAAK,6BAA6B,EAClC,KAAK,uCAAuC,EAC5C,KAAK,sBAAsB,GAC5B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EACL,+BAA+B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,aAAa,EACb,KAAK,2BAA2B,EAChC,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,WAAW,EACX,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,0BAA0B,CAAC"}
|
|
@@ -13,5 +13,5 @@ export { SimSesSuppressedDestination } from "./suppression/sim-ses-suppressed-de
|
|
|
13
13
|
export { SimSesSuppressionList } from "./suppression/sim-ses-suppression-list.js";
|
|
14
14
|
export { requiredSimSesSuppressionReason, } from "./suppression/sim-ses-suppression-reason.js";
|
|
15
15
|
export { SimSesAccount, } from "./account/sim-ses-account.js";
|
|
16
|
-
export { SimSesAlreadyExistsException, SimSesBadRequestException, SimSesError, SimSesMessageRejected, SimSesNotFoundException, SimSesUnsupportedOperationException, } from "./error/sim-ses.error.js";
|
|
16
|
+
export { SimSesAlreadyExistsException, SimSesBadRequestException, SimSesError, SimSesMessageRejected, SimSesNotFoundException, SimSesSendingPausedException, SimSesUnsupportedOperationException, } from "./error/sim-ses.error.js";
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/ses/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO3C,OAAO,EACL,cAAc,GAGf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,GAO9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EAEjB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,GAKvB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EACL,eAAe,GAIhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EACL,+BAA+B,GAEhC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,aAAa,GAGd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,WAAW,EAEX,qBAAqB,EACrB,uBAAuB,EACvB,mCAAmC,GACpC,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/ses/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO3C,OAAO,EACL,cAAc,GAGf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,GAO9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EAEjB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,GAKvB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EACL,eAAe,GAIhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EACL,+BAA+B,GAEhC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,aAAa,GAGd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,WAAW,EAEX,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type BackgroundScheduler } from "../../util/background/background.js";
|
|
2
2
|
import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
|
|
3
|
+
import { SimAwsMessageLog } from "../aws/message/sim-aws-message-log.js";
|
|
3
4
|
import { type SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
5
|
import { SimSesAccount } from "./account/sim-ses-account.js";
|
|
5
6
|
import { SimSesAccountCommands } from "./command/account/sim-ses-account-commands.js";
|
|
@@ -18,6 +19,10 @@ export interface SimSesV2Properties {
|
|
|
18
19
|
readonly accountRegionScope?: SimAwsAccountRegionScope;
|
|
19
20
|
readonly iam?: SimIamInterServiceAuthZ;
|
|
20
21
|
readonly background?: BackgroundScheduler;
|
|
22
|
+
/**
|
|
23
|
+
* Where each accepted message is announced, for a serving layer to print.
|
|
24
|
+
*/
|
|
25
|
+
readonly messageLog?: SimAwsMessageLog;
|
|
21
26
|
}
|
|
22
27
|
/**
|
|
23
28
|
* The collaborators one simulated SES scope is built from.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-commands.d.ts","sourceRoot":"","sources":["../../../src/service/ses/sim-ses-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-ses-commands.d.ts","sourceRoot":"","sources":["../../../src/service/ses/sim-ses-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,mEAAmE,CAAC;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAGzF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAEzC,YAAY,UAAU,GAAE,kBAAuB,EAoF9C;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BackgroundTasks, } from "../../util/background/background.js";
|
|
2
|
+
import { SimAwsMessageLog } from "../aws/message/sim-aws-message-log.js";
|
|
2
3
|
import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
|
|
3
4
|
import { SimIamAllowAllAuth, } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
5
|
import { SimSesAccount } from "./account/sim-ses-account.js";
|
|
@@ -6,6 +7,7 @@ import { SimSesAccountCommands } from "./command/account/sim-ses-account-command
|
|
|
6
7
|
import { SimSesAuthorizer } from "./command/authorize/sim-ses-authorizer.js";
|
|
7
8
|
import { SimSesConfigurationSetCommands } from "./command/configuration-set/sim-ses-configuration-set-commands.js";
|
|
8
9
|
import { SimSesIdentityCommands } from "./command/identity/sim-ses-identity-commands.js";
|
|
10
|
+
import { SimSesConfigurationSetCheck } from "./command/send/sim-ses-configuration-set-check.js";
|
|
9
11
|
import { SimSesContentReader } from "./command/send/sim-ses-content.js";
|
|
10
12
|
import { SimSesSendEmail } from "./command/send/sim-ses-send-email.js";
|
|
11
13
|
import { SimSesServiceSend } from "./command/send/sim-ses-service-send.js";
|
|
@@ -46,14 +48,14 @@ export class SimSesCommands {
|
|
|
46
48
|
suppressionCommands;
|
|
47
49
|
background;
|
|
48
50
|
constructor(properties = {}) {
|
|
49
|
-
const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
|
|
51
|
+
const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), messageLog = new SimAwsMessageLog(), } = properties;
|
|
50
52
|
const authorizer = new SimSesAuthorizer({ iam, accountRegionScope });
|
|
51
53
|
const identities = new SimSesIdentityStore({ accountRegionScope });
|
|
52
54
|
const templates = new SimSesTemplateStore({ accountRegionScope });
|
|
53
55
|
const configurationSets = new SimSesConfigurationSetStore({
|
|
54
56
|
accountRegionScope,
|
|
55
57
|
});
|
|
56
|
-
const sent = new SimSesSentEmailStore();
|
|
58
|
+
const sent = new SimSesSentEmailStore({ messageLog });
|
|
57
59
|
const account = new SimSesAccount();
|
|
58
60
|
const suppression = new SimSesSuppressionList();
|
|
59
61
|
this.background = background;
|
|
@@ -86,11 +88,16 @@ export class SimSesCommands {
|
|
|
86
88
|
suppression,
|
|
87
89
|
account,
|
|
88
90
|
});
|
|
91
|
+
const configurationSetCheck = new SimSesConfigurationSetCheck({
|
|
92
|
+
identities,
|
|
93
|
+
configurationSets,
|
|
94
|
+
});
|
|
89
95
|
this.sendEmail = new SimSesSendEmail({
|
|
90
96
|
identities,
|
|
91
97
|
content: new SimSesContentReader({ templates }),
|
|
92
98
|
sent,
|
|
93
99
|
identityCheck,
|
|
100
|
+
configurationSetCheck,
|
|
94
101
|
suppressionCheck,
|
|
95
102
|
authorizer,
|
|
96
103
|
clock: background,
|
|
@@ -98,6 +105,7 @@ export class SimSesCommands {
|
|
|
98
105
|
this.serviceSend = new SimSesServiceSend({
|
|
99
106
|
sent,
|
|
100
107
|
identityCheck,
|
|
108
|
+
configurationSetCheck,
|
|
101
109
|
suppressionCheck,
|
|
102
110
|
clock: background,
|
|
103
111
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-ses-commands.js","sourceRoot":"","sources":["../../../src/service/ses/sim-ses-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,EACL,kBAAkB,GAEnB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mEAAmE,CAAC;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-ses-commands.js","sourceRoot":"","sources":["../../../src/service/ses/sim-ses-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SimAws } from "../service/aws/sim-aws.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { SimCfnBinding } from "../service/cloudformation/bind/sim-cfn-binding.js";
|
|
3
3
|
import type { SimCfnDeployedStack } from "../service/cloudformation/stack/sim-cfn-deployed-stack.type.js";
|
|
4
4
|
import type { SimCloudFormationStackName } from "../service/cloudformation/stack/sim-cfn-stack.type.js";
|
|
5
5
|
import type { TerraformPlanOverride } from "./sim-tf-override.type.js";
|
|
@@ -22,7 +22,7 @@ export interface TerraformPlanDeployProperties {
|
|
|
22
22
|
* matching on the function name the plan carries is how a simulated function
|
|
23
23
|
* gets its behaviour.
|
|
24
24
|
*/
|
|
25
|
-
readonly bindings?: readonly
|
|
25
|
+
readonly bindings?: readonly SimCfnBinding[] | undefined;
|
|
26
26
|
/**
|
|
27
27
|
* The values the plan could not carry.
|
|
28
28
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-tf-adapter.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sim-tf-adapter.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AAMxG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,6BAA6B;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,0BAA0B,GAAG,MAAM,GAAG,SAAS,CAAC;IAErE;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAEzD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;CACnE;AAED,uEAAuE;AACvE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAEpC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED;;;;;;;;;;OAUG;IACG,UAAU,CACd,UAAU,EAAE,6BAA6B,GAAG,MAAM,GACjD,OAAO,CAAC,uBAAuB,CAAC,CAkBlC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SimCfnTemplateValue } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
|
|
2
|
+
/**
|
|
3
|
+
* The CloudFormation intrinsic that reads one Terraform attribute off the
|
|
4
|
+
* Resource standing in for the resource producing it.
|
|
5
|
+
*
|
|
6
|
+
* A reference naming a resource and no attribute is the resource itself, and
|
|
7
|
+
* a `Ref` is what CloudFormation answers that with. An attribute is read
|
|
8
|
+
* through whichever of `Ref` and `Fn::GetAtt` carries that value, which the
|
|
9
|
+
* read table says and the two services often disagree about. An attribute the
|
|
10
|
+
* table has no entry for answers with nothing.
|
|
11
|
+
*/
|
|
12
|
+
export declare function terraformAttributeIntrinsic(type: string, attribute: string | undefined, logicalId: string): SimCfnTemplateValue | undefined;
|
|
13
|
+
//# sourceMappingURL=sim-tf-attribute-intrinsic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-attribute-intrinsic.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-attribute-intrinsic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oEAAoE,CAAC;AAG9G;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAChB,mBAAmB,GAAG,SAAS,CAajC"}
|