@guardian/cdk 50.7.0 → 50.8.1
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/lib/constructs/iam/roles/github-actions.d.ts.map +1 -1
- package/lib/constructs/iam/roles/github-actions.js +9 -3
- package/lib/constructs/iam/roles/github-actions.js.map +1 -1
- package/lib/constructs/ses/index.d.ts +35 -0
- package/lib/constructs/ses/index.d.ts.map +1 -0
- package/lib/constructs/ses/index.js +52 -0
- package/lib/constructs/ses/index.js.map +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-actions.d.ts","sourceRoot":"","sources":["../../../../src/constructs/iam/roles/github-actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"github-actions.d.ts","sourceRoot":"","sources":["../../../../src/constructs/iam/roles/github-actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAgBjC,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,kCAAkC,CAAC;CAChD;AAyBD;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,MAAM;gBACjC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB;CAmB5D"}
|
|
@@ -7,9 +7,15 @@ const roles_1 = require("./roles");
|
|
|
7
7
|
const GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN = "token.actions.githubusercontent.com";
|
|
8
8
|
/*
|
|
9
9
|
Thumbprint of `GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN`.
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
See:
|
|
12
|
+
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html
|
|
13
|
+
- https://github.blog/changelog/2023-06-27-github-actions-update-on-oidc-integration-with-aws/
|
|
11
14
|
*/
|
|
12
|
-
const
|
|
15
|
+
const GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN_THUMBPRINTS = [
|
|
16
|
+
"6938fd4d98bab03faadb97b34396831e3780aea1",
|
|
17
|
+
"1c58a3a8518e8759bf075b76b750d4f2df264fcd",
|
|
18
|
+
];
|
|
13
19
|
const GuGithubActionsRepositoryCondition = {
|
|
14
20
|
toString: ({ githubOrganisation, repositories }) => `repo:${githubOrganisation}/${repositories ?? "*"}`,
|
|
15
21
|
};
|
|
@@ -34,7 +40,7 @@ class GitHubOidcProvider extends aws_cdk_lib_1.CfnResource {
|
|
|
34
40
|
properties: {
|
|
35
41
|
Url: `https://${GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN}`,
|
|
36
42
|
ClientIdList: ["sts.amazonaws.com"],
|
|
37
|
-
ThumbprintList:
|
|
43
|
+
ThumbprintList: GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN_THUMBPRINTS,
|
|
38
44
|
},
|
|
39
45
|
});
|
|
40
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-actions.js","sourceRoot":"","sources":["../../../../src/constructs/iam/roles/github-actions.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,iDAAyD;AAGzD,mCAAiC;AAEjC,MAAM,sCAAsC,GAAG,qCAAqC,CAAC;AAErF
|
|
1
|
+
{"version":3,"file":"github-actions.js","sourceRoot":"","sources":["../../../../src/constructs/iam/roles/github-actions.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,iDAAyD;AAGzD,mCAAiC;AAEjC,MAAM,sCAAsC,GAAG,qCAAqC,CAAC;AAErF;;;;;;EAME;AACF,MAAM,kDAAkD,GAAG;IACzD,0CAA0C;IAC1C,0CAA0C;CAC3C,CAAC;AAcF,MAAM,kCAAkC,GAAG;IACzC,QAAQ,EAAE,CAAC,EAAE,kBAAkB,EAAE,YAAY,EAAsC,EAAU,EAAE,CAC7F,QAAQ,kBAAkB,IAAI,YAAY,IAAI,GAAG,EAAE;CACtD,CAAC;AAEF,MAAM,yBAAyB,GAAuC;IACpE,kBAAkB,EAAE,UAAU;IAC9B,YAAY,EAAE,GAAG;CAClB,CAAC;AAeF;;;;;;;;;GASG;AACH,MAAM,kBAAmB,SAAQ,yBAAW;IAC1C,YAAY,KAAc;QACxB,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE;YAChC,IAAI,EAAE,wBAAwB;YAC9B,UAAU,EAAE;gBACV,GAAG,EAAE,WAAW,sCAAsC,EAAE;gBACxD,YAAY,EAAE,CAAC,mBAAmB,CAAC;gBACnC,cAAc,EAAE,kDAAkD;aACnE;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAa,mBAAoB,SAAQ,cAAM;IAC7C,YAAY,KAAc,EAAE,KAA+B;QACzD,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE;YAChC,SAAS,EAAE,IAAI,4BAAkB,CAC/B,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,EACjC;gBACE,UAAU,EAAE;oBACV,CAAC,GAAG,sCAAsC,MAAM,CAAC,EAAE,kCAAkC,CAAC,QAAQ,CAC5F,KAAK,CAAC,SAAS,IAAI,yBAAyB,CAC7C;iBACF;aACF,EACD,+BAA+B,CAChC;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,IAAI,uBAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;CACF;AApBD,kDAoBC","sourcesContent":["import { CfnOutput, CfnResource } from \"aws-cdk-lib\";\nimport { FederatedPrincipal } from \"aws-cdk-lib/aws-iam\";\nimport type { GuStack } from \"../../core\";\nimport type { GuPolicy } from \"../policies\";\nimport { GuRole } from \"./roles\";\n\nconst GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN = \"token.actions.githubusercontent.com\";\n\n/*\nThumbprint of `GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN`.\n\nSee:\n - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html\n - https://github.blog/changelog/2023-06-27-github-actions-update-on-oidc-integration-with-aws/\n*/\nconst GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN_THUMBPRINTS = [\n \"6938fd4d98bab03faadb97b34396831e3780aea1\",\n \"1c58a3a8518e8759bf075b76b750d4f2df264fcd\",\n];\n\nexport interface GuGithubActionsRepositoryCondition {\n /**\n * The GitHub organisation/user to constrain the IAM Role to.\n */\n githubOrganisation: string;\n\n /**\n * Repositories to constrain the IAM Role to.\n */\n repositories?: string;\n}\n\nconst GuGithubActionsRepositoryCondition = {\n toString: ({ githubOrganisation, repositories }: GuGithubActionsRepositoryCondition): string =>\n `repo:${githubOrganisation}/${repositories ?? \"*\"}`,\n};\n\nconst ALL_GUARDIAN_REPOSITORIES: GuGithubActionsRepositoryCondition = {\n githubOrganisation: \"guardian\",\n repositories: \"*\",\n};\n\nexport interface GuGithubActionsRoleProps {\n /**\n * A list of IAM Policies for the GitHub Action.\n */\n policies: GuPolicy[];\n\n /**\n * Repositories where GitHub Actions can assumes this role.\n * Defaults to [[`ALL_GUARDIAN_REPOSITORIES`]].\n */\n condition?: GuGithubActionsRepositoryCondition;\n}\n\n/*\nAWS CDK implements an OIDCProvider as a custom resource.\nThis requires a lambda to be deployed into the account.\nAs far as I can tell, the lambda is automating the setting of `ThumbprintList`, which is quite generic.\nIt's simpler for us to be specific here.\n\nSee:\n - https://github.com/aws/aws-cdk/blob/851c8ca9989856fa61496ff113f9cb8c66d02f3b/packages/%40aws-cdk/aws-iam/lib/oidc-provider.ts\n - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html\n */\nclass GitHubOidcProvider extends CfnResource {\n constructor(scope: GuStack) {\n super(scope, \"GithubActionsOidc\", {\n type: \"AWS::IAM::OIDCProvider\",\n properties: {\n Url: `https://${GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN}`,\n ClientIdList: [\"sts.amazonaws.com\"],\n ThumbprintList: GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN_THUMBPRINTS,\n },\n });\n }\n}\n\n/**\n * A construct to create an IAM role for GitHub Actions to assume via `AssumeRoleWithWebIdentity`.\n *\n * An Output will be added to the stack with the Role's ARN for use with https://github.com/aws-actions/configure-aws-credentials.\n *\n * See:\n * - https://github.com/aws-actions/configure-aws-credentials\n * - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html\n */\nexport class GuGithubActionsRole extends GuRole {\n constructor(scope: GuStack, props: GuGithubActionsRoleProps) {\n super(scope, \"GithubActionsRole\", {\n assumedBy: new FederatedPrincipal(\n new GitHubOidcProvider(scope).ref,\n {\n StringLike: {\n [`${GITHUB_ACTIONS_ID_TOKEN_REQUEST_DOMAIN}:sub`]: GuGithubActionsRepositoryCondition.toString(\n props.condition ?? ALL_GUARDIAN_REPOSITORIES\n ),\n },\n },\n \"sts:AssumeRoleWithWebIdentity\"\n ),\n });\n\n props.policies.forEach((p) => p.attachToRole(this));\n\n new CfnOutput(this, `${this.node.id}-Arn`, { value: this.roleArn });\n }\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { EmailIdentityProps } from "aws-cdk-lib/aws-ses";
|
|
2
|
+
import { EmailIdentity } from "aws-cdk-lib/aws-ses";
|
|
3
|
+
import type { AppIdentity, GuStack } from "../core";
|
|
4
|
+
/**
|
|
5
|
+
* Properties for the GuEmailIdentity construct
|
|
6
|
+
* domainName: The domain name to use for this identity
|
|
7
|
+
* The domain name must be one of GuEmailIdentity.validDomains
|
|
8
|
+
* @see https://github.com/guardian/dns-validation-lambda/blob/main/README.md
|
|
9
|
+
*/
|
|
10
|
+
export interface GuEmailIdentityProps extends Omit<EmailIdentityProps, "identity">, AppIdentity {
|
|
11
|
+
domainName: string;
|
|
12
|
+
}
|
|
13
|
+
declare const GuEmailIdentity_base: {
|
|
14
|
+
new (...args: any[]): {
|
|
15
|
+
readonly idWithApp: string;
|
|
16
|
+
};
|
|
17
|
+
} & typeof EmailIdentity;
|
|
18
|
+
/**
|
|
19
|
+
* A construct to create an SES email identity.
|
|
20
|
+
* It also creates the required DNS records to verify the identity.
|
|
21
|
+
* @see https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html
|
|
22
|
+
* @see https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-identity.html
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* new GuEmailIdentity(stack, "MyEmailIdentity", {
|
|
26
|
+
* domainName: "my-service.gutools.co.uk",
|
|
27
|
+
* app: "test",
|
|
28
|
+
* });
|
|
29
|
+
**/
|
|
30
|
+
export declare class GuEmailIdentity extends GuEmailIdentity_base {
|
|
31
|
+
constructor(scope: GuStack, id: string, props: GuEmailIdentityProps);
|
|
32
|
+
static get validDomains(): string[];
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constructs/ses/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAY,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGpD;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,WAAW;IAC7F,UAAU,EAAE,MAAM,CAAC;CACpB;;;;;;AAWD;;;;;;;;;;;IAWI;AACJ,qBAAa,eAAgB,SAAQ,oBAAkC;gBACzD,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB;IAsBnE,MAAM,KAAK,YAAY,IAAI,MAAM,EAAE,CAElC;CACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GuEmailIdentity = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_ses_1 = require("aws-cdk-lib/aws-ses");
|
|
6
|
+
const app_aware_construct_1 = require("../../utils/mixin/app-aware-construct");
|
|
7
|
+
const dns_1 = require("../dns");
|
|
8
|
+
// TODO: Expand this list as we add more domains
|
|
9
|
+
const validDomains = [
|
|
10
|
+
"gutools.co.uk",
|
|
11
|
+
"dev-gutools.co.uk",
|
|
12
|
+
"guardianapis.com",
|
|
13
|
+
"dev-guardianapis.com",
|
|
14
|
+
"guardianapps.co.uk",
|
|
15
|
+
];
|
|
16
|
+
/**
|
|
17
|
+
* A construct to create an SES email identity.
|
|
18
|
+
* It also creates the required DNS records to verify the identity.
|
|
19
|
+
* @see https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html
|
|
20
|
+
* @see https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-identity.html
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* new GuEmailIdentity(stack, "MyEmailIdentity", {
|
|
24
|
+
* domainName: "my-service.gutools.co.uk",
|
|
25
|
+
* app: "test",
|
|
26
|
+
* });
|
|
27
|
+
**/
|
|
28
|
+
class GuEmailIdentity extends (0, app_aware_construct_1.GuAppAwareConstruct)(aws_ses_1.EmailIdentity) {
|
|
29
|
+
constructor(scope, id, props) {
|
|
30
|
+
const { app, domainName } = props;
|
|
31
|
+
if (!validDomains.some((validDomain) => domainName.endsWith(validDomain))) {
|
|
32
|
+
throw new Error(`Auto verification is only supported for certain domains. ${domainName} is not supported.`);
|
|
33
|
+
}
|
|
34
|
+
super(scope, id, {
|
|
35
|
+
identity: aws_ses_1.Identity.domain(domainName),
|
|
36
|
+
...props,
|
|
37
|
+
});
|
|
38
|
+
this.dkimRecords.forEach(({ name, value }, index) => {
|
|
39
|
+
new dns_1.GuCname(scope, `EmailIdentityDkim-${app}-${index}`, {
|
|
40
|
+
app,
|
|
41
|
+
domainName: name,
|
|
42
|
+
resourceRecord: value,
|
|
43
|
+
ttl: aws_cdk_lib_1.Duration.hours(1),
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
static get validDomains() {
|
|
48
|
+
return validDomains;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.GuEmailIdentity = GuEmailIdentity;
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constructs/ses/index.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC,iDAA8D;AAC9D,+EAA4E;AAE5E,gCAAiC;AAYjC,gDAAgD;AAChD,MAAM,YAAY,GAAG;IACnB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,sBAAsB;IACtB,oBAAoB;CACrB,CAAC;AAEF;;;;;;;;;;;IAWI;AACJ,MAAa,eAAgB,SAAQ,IAAA,yCAAmB,EAAC,uBAAa,CAAC;IACrE,YAAY,KAAc,EAAE,EAAU,EAAE,KAA2B;QACjE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAElC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE;YACzE,MAAM,IAAI,KAAK,CAAC,4DAA4D,UAAU,oBAAoB,CAAC,CAAC;SAC7G;QAED,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;YACf,QAAQ,EAAE,kBAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;YACrC,GAAG,KAAK;SACT,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;YAClD,IAAI,aAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,KAAK,EAAE,EAAE;gBACtD,GAAG;gBACH,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,KAAK;gBACrB,GAAG,EAAE,sBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA1BD,0CA0BC","sourcesContent":["import { Duration } from \"aws-cdk-lib\";\nimport type { EmailIdentityProps } from \"aws-cdk-lib/aws-ses\";\nimport { EmailIdentity, Identity } from \"aws-cdk-lib/aws-ses\";\nimport { GuAppAwareConstruct } from \"../../utils/mixin/app-aware-construct\";\nimport type { AppIdentity, GuStack } from \"../core\";\nimport { GuCname } from \"../dns\";\n\n/**\n * Properties for the GuEmailIdentity construct\n * domainName: The domain name to use for this identity\n * The domain name must be one of GuEmailIdentity.validDomains\n * @see https://github.com/guardian/dns-validation-lambda/blob/main/README.md\n */\nexport interface GuEmailIdentityProps extends Omit<EmailIdentityProps, \"identity\">, AppIdentity {\n domainName: string;\n}\n\n// TODO: Expand this list as we add more domains\nconst validDomains = [\n \"gutools.co.uk\",\n \"dev-gutools.co.uk\",\n \"guardianapis.com\",\n \"dev-guardianapis.com\",\n \"guardianapps.co.uk\",\n];\n\n/**\n * A construct to create an SES email identity.\n * It also creates the required DNS records to verify the identity.\n * @see https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html\n * @see https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-identity.html\n *\n * @example\n * new GuEmailIdentity(stack, \"MyEmailIdentity\", {\n * domainName: \"my-service.gutools.co.uk\",\n * app: \"test\",\n * });\n **/\nexport class GuEmailIdentity extends GuAppAwareConstruct(EmailIdentity) {\n constructor(scope: GuStack, id: string, props: GuEmailIdentityProps) {\n const { app, domainName } = props;\n\n if (!validDomains.some((validDomain) => domainName.endsWith(validDomain))) {\n throw new Error(`Auto verification is only supported for certain domains. ${domainName} is not supported.`);\n }\n\n super(scope, id, {\n identity: Identity.domain(domainName),\n ...props,\n });\n\n this.dkimRecords.forEach(({ name, value }, index) => {\n new GuCname(scope, `EmailIdentityDkim-${app}-${index}`, {\n app,\n domainName: name,\n resourceRecord: value,\n ttl: Duration.hours(1),\n });\n });\n }\n\n static get validDomains(): string[] {\n return validDomains;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guardian/cdk",
|
|
3
3
|
"description": "Generic Guardian flavoured AWS CDK components",
|
|
4
|
-
"version": "50.
|
|
4
|
+
"version": "50.8.1",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"@types/lodash.camelcase": "^4.3.7",
|
|
37
37
|
"@types/lodash.kebabcase": "^4.1.7",
|
|
38
38
|
"@types/lodash.upperfirst": "^4.3.7",
|
|
39
|
-
"@types/node": "20.3.
|
|
39
|
+
"@types/node": "20.3.2",
|
|
40
40
|
"@types/yargs": "^17.0.19",
|
|
41
41
|
"aws-cdk": "2.78.0",
|
|
42
42
|
"cz-conventional-changelog": "^3.3.0",
|
|
43
|
-
"eslint": "^8.
|
|
43
|
+
"eslint": "^8.43.0",
|
|
44
44
|
"eslint-plugin-custom-rules": "file:tools/eslint",
|
|
45
45
|
"gh-pages": "^5.0.0",
|
|
46
46
|
"jest": "^29.5.0",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"typescript": "~4.9.5"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@oclif/core": "2.8.
|
|
56
|
+
"@oclif/core": "2.8.10",
|
|
57
57
|
"aws-cdk-lib": "2.78.0",
|
|
58
|
-
"aws-sdk": "^2.
|
|
58
|
+
"aws-sdk": "^2.1408.0",
|
|
59
59
|
"chalk": "^4.1.2",
|
|
60
60
|
"codemaker": "^1.84.0",
|
|
61
61
|
"constructs": "10.2.18",
|