@glicogh/healthcare-cdk 0.1.1 → 0.1.3

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/.env.uat ADDED
@@ -0,0 +1,5 @@
1
+ ENV_NAME=uat
2
+ SERVICE=
3
+ COMPANY=glico
4
+ AWS_REGION=us-east-1
5
+ AWS_ACCOUNT_ID=12345
package/cdk.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "app": "npx ts-node --prefer-ts-exts bin/cdk.ts",
3
+ "watch": {
4
+ "include": [
5
+ "**"
6
+ ],
7
+ "exclude": [
8
+ "README.md",
9
+ "cdk*.json",
10
+ "**/*.d.ts",
11
+ "**/*.js",
12
+ "tsconfig.json",
13
+ "package*.json",
14
+ "yarn.lock",
15
+ "node_modules",
16
+ "test"
17
+ ]
18
+ },
19
+ "context": {
20
+ "@aws-cdk/aws-lambda:recognizeLayerVersion": true,
21
+ "@aws-cdk/core:checkSecretUsage": true,
22
+ "@aws-cdk/core:target-partitions": [
23
+ "aws",
24
+ "aws-cn"
25
+ ],
26
+ "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
27
+ "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
28
+ "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true,
29
+ "@aws-cdk/aws-iam:minimizePolicies": true,
30
+ "@aws-cdk/core:validateSnapshotRemovalPolicy": true,
31
+ "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true,
32
+ "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true,
33
+ "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true,
34
+ "@aws-cdk/aws-apigateway:disableCloudWatchRole": true,
35
+ "@aws-cdk/core:enablePartitionLiterals": true,
36
+ "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true,
37
+ "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true,
38
+ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true,
39
+ "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true,
40
+ "@aws-cdk/aws-route53-patters:useCertificate": true,
41
+ "@aws-cdk/customresources:installLatestAwsSdkDefault": false,
42
+ "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true,
43
+ "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true,
44
+ "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true,
45
+ "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true,
46
+ "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true,
47
+ "@aws-cdk/aws-redshift:columnId": true,
48
+ "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true,
49
+ "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true,
50
+ "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true,
51
+ "@aws-cdk/aws-kms:aliasNameRef": true,
52
+ "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true,
53
+ "@aws-cdk/core:includePrefixInUniqueNameGeneration": true,
54
+ "@aws-cdk/aws-efs:denyAnonymousAccess": true,
55
+ "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true,
56
+ "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true,
57
+ "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true,
58
+ "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true,
59
+ "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true,
60
+ "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true,
61
+ "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true,
62
+ "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": true,
63
+ "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": true,
64
+ "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": true,
65
+ "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": true,
66
+ "@aws-cdk/aws-eks:nodegroupNameAttribute": true,
67
+ "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": true,
68
+ "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true,
69
+ "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false,
70
+ "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false
71
+ }
72
+ }
@@ -0,0 +1,11 @@
1
+ export type EnvName = 'uat' | 'prod';
2
+ export type BuildConfig = {
3
+ envName: EnvName;
4
+ envPath: string;
5
+ service: string;
6
+ company: string;
7
+ aws: {
8
+ account: string;
9
+ region: string;
10
+ };
11
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vQHR5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRW52TmFtZSA9ICd1YXQnIHwgJ3Byb2QnO1xuZXhwb3J0IHR5cGUgQnVpbGRDb25maWcgPSB7XG4gIGVudk5hbWU6IEVudk5hbWU7XG4gIGVudlBhdGg6IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICBjb21wYW55OiBzdHJpbmc7XG4gIGF3czoge1xuICAgIGFjY291bnQ6IHN0cmluZztcbiAgICByZWdpb246IHN0cmluZztcbiAgfTtcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import 'source-map-support/register';
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ require("source-map-support/register");
5
+ const initLaravelBasedCdkStack_1 = require("../util/initLaravelBasedCdkStack");
6
+ (0, initLaravelBasedCdkStack_1.initLaravelBasedCdkStack)();
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYmluL2Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1Q0FBcUM7QUFDckMsK0VBQTRFO0FBRTVFLElBQUEsbURBQXdCLEdBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAnc291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyJztcbmltcG9ydCB7IGluaXRMYXJhdmVsQmFzZWRDZGtTdGFjayB9IGZyb20gJy4uL3V0aWwvaW5pdExhcmF2ZWxCYXNlZENka1N0YWNrJztcblxuaW5pdExhcmF2ZWxCYXNlZENka1N0YWNrKCk7Il19
@@ -0,0 +1,2 @@
1
+ export * from './lib/laravel-based-microservice-stack';
2
+ export * from './util/initLaravelBasedCdkStack';
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lib/laravel-based-microservice-stack"), exports);
18
+ __exportStar(require("./util/initLaravelBasedCdkStack"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUVBQXVEO0FBQ3ZELGtFQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2xhcmF2ZWwtYmFzZWQtbWljcm9zZXJ2aWNlLXN0YWNrJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC9pbml0TGFyYXZlbEJhc2VkQ2RrU3RhY2snOyJdfQ==
@@ -0,0 +1,6 @@
1
+ import * as cdk from 'aws-cdk-lib';
2
+ import { Construct } from 'constructs';
3
+ import { BuildConfig } from '../@types/common';
4
+ export declare class LaravelBasedMicroserviceStack extends cdk.Stack {
5
+ constructor(scope: Construct, id: string, buildConfig: BuildConfig, props?: cdk.StackProps);
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LaravelBasedMicroserviceStack = void 0;
4
+ const cdk = require("aws-cdk-lib");
5
+ class LaravelBasedMicroserviceStack extends cdk.Stack {
6
+ constructor(scope, id, buildConfig, props) {
7
+ super(scope, id, props);
8
+ new cdk.CfnOutput(this, 'buildConfig', { value: JSON.stringify(buildConfig) });
9
+ }
10
+ }
11
+ exports.LaravelBasedMicroserviceStack = LaravelBasedMicroserviceStack;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFyYXZlbC1iYXNlZC1taWNyb3NlcnZpY2Utc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbGFyYXZlbC1iYXNlZC1taWNyb3NlcnZpY2Utc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBSW5DLE1BQWEsNkJBQThCLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDMUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxXQUF3QixFQUFHLEtBQXNCO1FBQ3pGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFBO0lBQzlFLENBQUM7Q0FDRjtBQU5ELHNFQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQnVpbGRDb25maWcgfSBmcm9tICcuLi9AdHlwZXMvY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIExhcmF2ZWxCYXNlZE1pY3Jvc2VydmljZVN0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYnVpbGRDb25maWc6IEJ1aWxkQ29uZmlnLCAgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ2J1aWxkQ29uZmlnJywge3ZhbHVlOiBKU09OLnN0cmluZ2lmeShidWlsZENvbmZpZyl9KVxuICB9XG59XG4iXX0=
File without changes
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // import * as cdk from 'aws-cdk-lib';
3
+ // import { Template } from 'aws-cdk-lib/assertions';
4
+ // import * as Cdk from '../lib/cdk-stack';
5
+ // example test. To run these tests, uncomment this file along with the
6
+ // example resource in lib/cdk-stack.ts
7
+ test('SQS Queue Created', () => {
8
+ // const app = new cdk.App();
9
+ // // WHEN
10
+ // const stack = new Cdk.CdkStack(app, 'MyTestStack');
11
+ // // THEN
12
+ // const template = Template.fromStack(stack);
13
+ // template.hasResourceProperties('AWS::SQS::Queue', {
14
+ // VisibilityTimeout: 300
15
+ // });
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L2Nkay50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzQ0FBc0M7QUFDdEMscURBQXFEO0FBQ3JELDJDQUEyQztBQUUzQyx1RUFBdUU7QUFDdkUsdUNBQXVDO0FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsK0JBQStCO0lBQy9CLGNBQWM7SUFDZCx3REFBd0Q7SUFDeEQsY0FBYztJQUNkLGdEQUFnRDtJQUVoRCx3REFBd0Q7SUFDeEQsNkJBQTZCO0lBQzdCLFFBQVE7QUFDUixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG4vLyBpbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xuLy8gaW1wb3J0ICogYXMgQ2RrIGZyb20gJy4uL2xpYi9jZGstc3RhY2snO1xuXG4vLyBleGFtcGxlIHRlc3QuIFRvIHJ1biB0aGVzZSB0ZXN0cywgdW5jb21tZW50IHRoaXMgZmlsZSBhbG9uZyB3aXRoIHRoZVxuLy8gZXhhbXBsZSByZXNvdXJjZSBpbiBsaWIvY2RrLXN0YWNrLnRzXG50ZXN0KCdTUVMgUXVldWUgQ3JlYXRlZCcsICgpID0+IHtcbi8vICAgY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbi8vICAgICAvLyBXSEVOXG4vLyAgIGNvbnN0IHN0YWNrID0gbmV3IENkay5DZGtTdGFjayhhcHAsICdNeVRlc3RTdGFjaycpO1xuLy8gICAgIC8vIFRIRU5cbi8vICAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4vLyAgIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpTUVM6OlF1ZXVlJywge1xuLy8gICAgIFZpc2liaWxpdHlUaW1lb3V0OiAzMDBcbi8vICAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { App } from 'aws-cdk-lib';
2
+ import { BuildConfig } from '../@types/common';
3
+ export declare function applyTags(app: App, config: BuildConfig): void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyTags = applyTags;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ function applyTags(app, config) {
6
+ const tags = aws_cdk_lib_1.Tags.of(app);
7
+ tags.add('Service', config.service);
8
+ tags.add('Company', config.company);
9
+ tags.add('Environment', config.envName);
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHlUYWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9hcHBseVRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4QkFLQztBQVJELDZDQUF3QztBQUd4QyxTQUFnQixTQUFTLENBQUMsR0FBUSxFQUFFLE1BQW1CO0lBQ3JELE1BQU0sSUFBSSxHQUFHLGtCQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHAsIFRhZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCdWlsZENvbmZpZyB9IGZyb20gJy4uL0B0eXBlcy9jb21tb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlUYWdzKGFwcDogQXBwLCBjb25maWc6IEJ1aWxkQ29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IHRhZ3MgPSBUYWdzLm9mKGFwcCk7XG4gIHRhZ3MuYWRkKCdTZXJ2aWNlJywgY29uZmlnLnNlcnZpY2UpO1xuICB0YWdzLmFkZCgnQ29tcGFueScsIGNvbmZpZy5jb21wYW55KTtcbiAgdGFncy5hZGQoJ0Vudmlyb25tZW50JywgY29uZmlnLmVudk5hbWUpO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ import { App } from 'aws-cdk-lib';
2
+ import { BuildConfig } from '../@types/common';
3
+ export declare function initBuildConfig(app: App, envPath?: string): BuildConfig;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initBuildConfig = initBuildConfig;
4
+ const path = require("path");
5
+ const dotenv = require("dotenv");
6
+ const fs_1 = require("fs");
7
+ function initBuildConfig(app, envPath) {
8
+ const envName = app.node.tryGetContext('env');
9
+ if (!envName) {
10
+ throw new Error('Context variable `config` missing on CDK command. Pass as `--context env=<environment>');
11
+ }
12
+ const envToLoad = envPath ??
13
+ path.resolve(`.env.${envName}`) ??
14
+ path.join(__dirname, `.env.${envName}`);
15
+ if (!(0, fs_1.existsSync)(envToLoad)) {
16
+ throw new Error(`env path ${envToLoad} not found`);
17
+ }
18
+ dotenv.config({
19
+ path: envToLoad,
20
+ override: true,
21
+ });
22
+ return {
23
+ envName: process.env.ENV_NAME ?? 'uat',
24
+ envPath: envToLoad,
25
+ service: process.env.SERVICE ?? '',
26
+ company: process.env.COMPANY ?? 'glico',
27
+ aws: {
28
+ region: process.env.AWS_REGION ?? '',
29
+ account: process.env.AWS_ACCOUNT_ID ?? '',
30
+ },
31
+ };
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdEJ1aWxkQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9pbml0QnVpbGRDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSwwQ0FnQ0M7QUFwQ0QsNkJBQThCO0FBQzlCLGlDQUFpQztBQUNqQywyQkFBZ0M7QUFFaEMsU0FBZ0IsZUFBZSxDQUFDLEdBQVEsRUFBRSxPQUFnQjtJQUN4RCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksS0FBSyxDQUNiLHdGQUF3RixDQUN6RixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sU0FBUyxHQUNiLE9BQU87UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxTQUFTLFlBQVksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ1osSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxPQUFPLEVBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFvQixJQUFJLEtBQUs7UUFDbkQsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUU7UUFDbEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU87UUFDdkMsR0FBRyxFQUFFO1lBQ0gsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDcEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUU7U0FDMUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcCB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1aWxkQ29uZmlnLCBFbnZOYW1lIH0gZnJvbSAnLi4vQHR5cGVzL2NvbW1vbic7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCAqIGFzIGRvdGVudiBmcm9tICdkb3RlbnYnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ2ZzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRCdWlsZENvbmZpZyhhcHA6IEFwcCwgZW52UGF0aD86IHN0cmluZyk6IEJ1aWxkQ29uZmlnIHtcbiAgY29uc3QgZW52TmFtZSA9IGFwcC5ub2RlLnRyeUdldENvbnRleHQoJ2VudicpO1xuICBpZiAoIWVudk5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ29udGV4dCB2YXJpYWJsZSBgY29uZmlnYCBtaXNzaW5nIG9uIENESyBjb21tYW5kLiBQYXNzIGFzIGAtLWNvbnRleHQgZW52PTxlbnZpcm9ubWVudD4nLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBlbnZUb0xvYWQgPVxuICAgIGVudlBhdGggPz9cbiAgICBwYXRoLnJlc29sdmUoYC5lbnYuJHtlbnZOYW1lfWApID8/XG4gICAgcGF0aC5qb2luKF9fZGlybmFtZSwgYC5lbnYuJHtlbnZOYW1lfWApO1xuXG4gIGlmICghZXhpc3RzU3luYyhlbnZUb0xvYWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBlbnYgcGF0aCAke2VudlRvTG9hZH0gbm90IGZvdW5kYCk7XG4gIH1cblxuICBkb3RlbnYuY29uZmlnKHtcbiAgICBwYXRoOiBlbnZUb0xvYWQsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgZW52TmFtZTogKHByb2Nlc3MuZW52LkVOVl9OQU1FIGFzIEVudk5hbWUpID8/ICd1YXQnLFxuICAgIGVudlBhdGg6IGVudlRvTG9hZCxcbiAgICBzZXJ2aWNlOiBwcm9jZXNzLmVudi5TRVJWSUNFID8/ICcnLFxuICAgIGNvbXBhbnk6IHByb2Nlc3MuZW52LkNPTVBBTlkgPz8gJ2dsaWNvJyxcbiAgICBhd3M6IHtcbiAgICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiA/PyAnJyxcbiAgICAgIGFjY291bnQ6IHByb2Nlc3MuZW52LkFXU19BQ0NPVU5UX0lEID8/ICcnLFxuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export declare function initLaravelBasedCdkStack(): void;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initLaravelBasedCdkStack = initLaravelBasedCdkStack;
4
+ const cdk = require("aws-cdk-lib");
5
+ const laravel_based_microservice_stack_1 = require("../lib/laravel-based-microservice-stack");
6
+ const initBuildConfig_1 = require("../util/initBuildConfig");
7
+ const applyTags_1 = require("../util/applyTags");
8
+ function initLaravelBasedCdkStack() {
9
+ const app = new cdk.App();
10
+ const buildConfig = (0, initBuildConfig_1.initBuildConfig)(app);
11
+ (0, applyTags_1.applyTags)(app, buildConfig);
12
+ new laravel_based_microservice_stack_1.LaravelBasedMicroserviceStack(app, 'LaravelBasedMicroserviceStack', buildConfig, {
13
+ env: buildConfig.aws,
14
+ /* If you don't specify 'env', this stack will be environment-agnostic.
15
+ * Account/Region-dependent features and context lookups will not work,
16
+ * but a single synthesized template can be deployed anywhere. */
17
+ /* Uncomment the next line to specialize this stack for the AWS Account
18
+ * and Region that are implied by the current CLI configuration. */
19
+ // env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },
20
+ /* Uncomment the next line if you know exactly what Account and Region you
21
+ * want to deploy the stack to. */
22
+ // env: { account: '123456789012', region: 'us-east-1' },
23
+ /* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */
24
+ });
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdExhcmF2ZWxCYXNlZENka1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9pbml0TGFyYXZlbEJhc2VkQ2RrU3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw0REEwQkM7QUEvQkQsbUNBQW1DO0FBQ25DLDhGQUF3RjtBQUN4Riw2REFBMEQ7QUFDMUQsaURBQThDO0FBRTlDLFNBQWdCLHdCQUF3QjtJQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFBLGlDQUFlLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsSUFBQSxxQkFBUyxFQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU1QixJQUFJLGdFQUE2QixDQUMvQixHQUFHLEVBQ0gsK0JBQStCLEVBQy9CLFdBQVcsRUFDWDtRQUNFLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztRQUNwQjs7eUVBRWlFO1FBRWpFOzJFQUNtRTtRQUNuRSw2RkFBNkY7UUFFN0Y7MENBQ2tDO1FBQ2xDLHlEQUF5RDtRQUV6RCw4RkFBOEY7S0FDL0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBMYXJhdmVsQmFzZWRNaWNyb3NlcnZpY2VTdGFjayB9IGZyb20gJy4uL2xpYi9sYXJhdmVsLWJhc2VkLW1pY3Jvc2VydmljZS1zdGFjayc7XG5pbXBvcnQgeyBpbml0QnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBhcHBseVRhZ3MgfSBmcm9tICcuLi91dGlsL2FwcGx5VGFncyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0TGFyYXZlbEJhc2VkQ2RrU3RhY2soKSB7XG4gIGNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG4gIGNvbnN0IGJ1aWxkQ29uZmlnID0gaW5pdEJ1aWxkQ29uZmlnKGFwcCk7XG4gIGFwcGx5VGFncyhhcHAsIGJ1aWxkQ29uZmlnKTtcblxuICBuZXcgTGFyYXZlbEJhc2VkTWljcm9zZXJ2aWNlU3RhY2soXG4gICAgYXBwLFxuICAgICdMYXJhdmVsQmFzZWRNaWNyb3NlcnZpY2VTdGFjaycsXG4gICAgYnVpbGRDb25maWcsXG4gICAge1xuICAgICAgZW52OiBidWlsZENvbmZpZy5hd3MsXG4gICAgICAvKiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSAnZW52JywgdGhpcyBzdGFjayB3aWxsIGJlIGVudmlyb25tZW50LWFnbm9zdGljLlxuICAgICAgICogQWNjb3VudC9SZWdpb24tZGVwZW5kZW50IGZlYXR1cmVzIGFuZCBjb250ZXh0IGxvb2t1cHMgd2lsbCBub3Qgd29yayxcbiAgICAgICAqIGJ1dCBhIHNpbmdsZSBzeW50aGVzaXplZCB0ZW1wbGF0ZSBjYW4gYmUgZGVwbG95ZWQgYW55d2hlcmUuICovXG5cbiAgICAgIC8qIFVuY29tbWVudCB0aGUgbmV4dCBsaW5lIHRvIHNwZWNpYWxpemUgdGhpcyBzdGFjayBmb3IgdGhlIEFXUyBBY2NvdW50XG4gICAgICAgKiBhbmQgUmVnaW9uIHRoYXQgYXJlIGltcGxpZWQgYnkgdGhlIGN1cnJlbnQgQ0xJIGNvbmZpZ3VyYXRpb24uICovXG4gICAgICAvLyBlbnY6IHsgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCwgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04gfSxcblxuICAgICAgLyogVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgaWYgeW91IGtub3cgZXhhY3RseSB3aGF0IEFjY291bnQgYW5kIFJlZ2lvbiB5b3VcbiAgICAgICAqIHdhbnQgdG8gZGVwbG95IHRoZSBzdGFjayB0by4gKi9cbiAgICAgIC8vIGVudjogeyBhY2NvdW50OiAnMTIzNDU2Nzg5MDEyJywgcmVnaW9uOiAndXMtZWFzdC0xJyB9LFxuXG4gICAgICAvKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvbGF0ZXN0L2d1aWRlL2Vudmlyb25tZW50cy5odG1sICovXG4gICAgfSxcbiAgKTtcbn1cbiJdfQ==
package/jest.config.js ADDED
@@ -0,0 +1,8 @@
1
+ module.exports = {
2
+ testEnvironment: 'node',
3
+ roots: ['<rootDir>/test'],
4
+ testMatch: ['**/*.test.ts'],
5
+ transform: {
6
+ '^.+\\.tsx?$': 'ts-jest'
7
+ }
8
+ };
package/package.json CHANGED
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "@glicogh/healthcare-cdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "CDK automations",
5
5
  "bin": {
6
6
  "cdk": "bin/cdk.js"
7
7
  },
8
8
  "scripts": {
9
- "build": "tsc",
9
+ "build": "rm -rf ./dist && tsc",
10
10
  "watch": "tsc -w",
11
11
  "test": "jest",
12
- "cdk": "cdk"
12
+ "cdk": "cdk",
13
+ "publish": "npm run build && npm publish"
13
14
  },
15
+ "main": "dist/index.js",
14
16
  "devDependencies": {
15
17
  "@types/jest": "^29.5.12",
16
18
  "@types/node": "20.14.9",
@@ -30,10 +32,5 @@
30
32
  "type": "git",
31
33
  "url": "git+https://github.com/glicogh/healthcare-automations.git",
32
34
  "directory": "cdk"
33
- },
34
- "files": [
35
- "lib/*",
36
- "util/*",
37
- "@types/*"
38
- ]
35
+ }
39
36
  }
package/tsconfig.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "commonjs",
5
+ "lib": [
6
+ "es2020",
7
+ "dom"
8
+ ],
9
+ "declaration": true,
10
+ "strict": true,
11
+ "noImplicitAny": true,
12
+ "strictNullChecks": true,
13
+ "noImplicitThis": true,
14
+ "alwaysStrict": true,
15
+ "noUnusedLocals": false,
16
+ "noUnusedParameters": false,
17
+ "noImplicitReturns": true,
18
+ "noFallthroughCasesInSwitch": false,
19
+ "inlineSourceMap": true,
20
+ "inlineSources": true,
21
+ "experimentalDecorators": true,
22
+ "strictPropertyInitialization": false,
23
+ "typeRoots": [
24
+ "./node_modules/@types", "@types"
25
+ ],
26
+ "outDir": "./dist"
27
+ },
28
+ "exclude": [
29
+ "node_modules",
30
+ "cdk.out"
31
+ ]
32
+ }
package/@types/common.ts DELETED
@@ -1,11 +0,0 @@
1
- export type EnvName = 'uat' | 'prod';
2
- export type BuildConfig = {
3
- envName: EnvName;
4
- envPath: string;
5
- service: string;
6
- company: string;
7
- aws: {
8
- account: string;
9
- region: string;
10
- };
11
- };
@@ -1,11 +0,0 @@
1
- import * as cdk from 'aws-cdk-lib';
2
- import { Construct } from 'constructs';
3
- import { BuildConfig } from '../@types/common';
4
-
5
- export class LaravelBasedMicroserviceStack extends cdk.Stack {
6
- constructor(scope: Construct, id: string, buildConfig: BuildConfig, props?: cdk.StackProps) {
7
- super(scope, id, props);
8
-
9
- new cdk.CfnOutput(this, 'buildConfig', {value: JSON.stringify(buildConfig)})
10
- }
11
- }
package/util/applyTags.ts DELETED
@@ -1,9 +0,0 @@
1
- import { App, Tags } from 'aws-cdk-lib';
2
- import { BuildConfig } from '../@types/common';
3
-
4
- export function applyTags(app: App, config: BuildConfig): void {
5
- const tags = Tags.of(app);
6
- tags.add('Service', config.service);
7
- tags.add('Company', config.company);
8
- tags.add('Environment', config.envName);
9
- }
@@ -1,39 +0,0 @@
1
- import { App } from 'aws-cdk-lib';
2
- import { BuildConfig, EnvName } from '../@types/common';
3
- import path = require('path');
4
- import * as dotenv from 'dotenv';
5
- import { existsSync } from 'fs';
6
-
7
- export function initBuildConfig(app: App, envPath?: string): BuildConfig {
8
- const envName = app.node.tryGetContext('env');
9
- if (!envName) {
10
- throw new Error(
11
- 'Context variable `config` missing on CDK command. Pass as `--context env=<environment>',
12
- );
13
- }
14
-
15
- const envToLoad =
16
- envPath ??
17
- path.resolve(`.env.${envName}`) ??
18
- path.join(__dirname, `.env.${envName}`);
19
-
20
- if (!existsSync(envToLoad)) {
21
- throw new Error(`env path ${envToLoad} not found`);
22
- }
23
-
24
- dotenv.config({
25
- path: envToLoad,
26
- override: true,
27
- });
28
-
29
- return {
30
- envName: (process.env.ENV_NAME as EnvName) ?? 'uat',
31
- envPath: envToLoad,
32
- service: process.env.SERVICE ?? '',
33
- company: process.env.COMPANY ?? 'glico',
34
- aws: {
35
- region: process.env.AWS_REGION ?? '',
36
- account: process.env.AWS_ACCOUNT_ID ?? '',
37
- },
38
- };
39
- }
@@ -1,32 +0,0 @@
1
- import * as cdk from 'aws-cdk-lib';
2
- import { LaravelBasedMicroserviceStack } from '../lib/laravel-based-microservice-stack';
3
- import { initBuildConfig } from '../util/initBuildConfig';
4
- import { applyTags } from '../util/applyTags';
5
-
6
- export function initLaravelBasedCdkStack() {
7
- const app = new cdk.App();
8
- const buildConfig = initBuildConfig(app);
9
- applyTags(app, buildConfig);
10
-
11
- new LaravelBasedMicroserviceStack(
12
- app,
13
- 'LaravelBasedMicroserviceStack',
14
- buildConfig,
15
- {
16
- env: buildConfig.aws,
17
- /* If you don't specify 'env', this stack will be environment-agnostic.
18
- * Account/Region-dependent features and context lookups will not work,
19
- * but a single synthesized template can be deployed anywhere. */
20
-
21
- /* Uncomment the next line to specialize this stack for the AWS Account
22
- * and Region that are implied by the current CLI configuration. */
23
- // env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },
24
-
25
- /* Uncomment the next line if you know exactly what Account and Region you
26
- * want to deploy the stack to. */
27
- // env: { account: '123456789012', region: 'us-east-1' },
28
-
29
- /* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */
30
- },
31
- );
32
- }