@inizioevoke/evosynth 2.1.0 → 2.1.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.
|
@@ -4,50 +4,55 @@ import { CloudFrontErrorResponse, CloudFrontFunctionRedirects } from '../constru
|
|
|
4
4
|
import { CodeBuildImageId, EcrBuildImage, CodeBuildSsmParameter, CodeBuildComputeType, CodeBuildNodeJs, EnvironmentVariables } from '../constructs/codebuild.ts';
|
|
5
5
|
import type { EvosynthAppConfig, CdkCommand, EvosynthAppType } from './evosynth.ts';
|
|
6
6
|
import type { CloudFrontFunctionEventType, CspHeaders, UUID, AWSManagedResponseHeadersPolicy } from '../types.d.ts';
|
|
7
|
+
export interface AppConfigDnsProps {
|
|
8
|
+
record: string;
|
|
9
|
+
zone: string;
|
|
10
|
+
}
|
|
11
|
+
export interface AppConfigSecurityProps {
|
|
12
|
+
basicAuth?: string;
|
|
13
|
+
basicAuthParam?: string;
|
|
14
|
+
webAcl?: string | false;
|
|
15
|
+
webAclParam?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AppConfigCloudFrontProps {
|
|
18
|
+
responseHeaders?: AWSManagedResponseHeadersPolicy | UUID | false;
|
|
19
|
+
responseHeadersParam?: string;
|
|
20
|
+
responseHeadersPolicy?: ResponseHeadersPolicyProps;
|
|
21
|
+
cspHeaders?: CspHeaders;
|
|
22
|
+
redirects?: CloudFrontFunctionRedirects;
|
|
23
|
+
function?: string | {
|
|
24
|
+
code: string;
|
|
25
|
+
eventType: CloudFrontFunctionEventType[];
|
|
26
|
+
};
|
|
27
|
+
errorResponses?: CloudFrontErrorResponse[];
|
|
28
|
+
}
|
|
29
|
+
export interface AppConfigPipelineSourceProps {
|
|
30
|
+
codestarConnection?: string;
|
|
31
|
+
codestarConnectionParam?: string;
|
|
32
|
+
owner: 'evokegroup' | 'meltmedia' | (string & {});
|
|
33
|
+
repo: string;
|
|
34
|
+
branch: string;
|
|
35
|
+
fullClone?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface AppConfigPipelineBuildProps {
|
|
38
|
+
buildSpec?: string | object;
|
|
39
|
+
buildImage?: IBuildImage;
|
|
40
|
+
buildImageEcr?: EcrBuildImage;
|
|
41
|
+
buildImageNodeJS?: CodeBuildNodeJs;
|
|
42
|
+
buildImageId?: CodeBuildImageId;
|
|
43
|
+
computeType?: CodeBuildComputeType;
|
|
44
|
+
environmentVariables?: EnvironmentVariables;
|
|
45
|
+
ssmParameters?: CodeBuildSsmParameter[];
|
|
46
|
+
}
|
|
7
47
|
export interface WebStaticServerlessAppConfig extends EvosynthAppConfig {
|
|
8
48
|
type: Extract<EvosynthAppType, 'web-static-serverless'>;
|
|
9
49
|
description?: string;
|
|
10
|
-
dns:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
security?: {
|
|
15
|
-
basicAuth?: string;
|
|
16
|
-
basicAuthParam?: string;
|
|
17
|
-
webAcl?: string | false;
|
|
18
|
-
webAclParam?: string;
|
|
19
|
-
};
|
|
20
|
-
cloudfront?: {
|
|
21
|
-
responseHeaders?: AWSManagedResponseHeadersPolicy | UUID | false;
|
|
22
|
-
responseHeadersParam?: string;
|
|
23
|
-
responseHeadersPolicy?: ResponseHeadersPolicyProps;
|
|
24
|
-
cspHeaders?: CspHeaders;
|
|
25
|
-
redirects?: CloudFrontFunctionRedirects;
|
|
26
|
-
function?: string | {
|
|
27
|
-
code: string;
|
|
28
|
-
eventType: CloudFrontFunctionEventType[];
|
|
29
|
-
};
|
|
30
|
-
errors?: CloudFrontErrorResponse[];
|
|
31
|
-
};
|
|
50
|
+
dns: AppConfigDnsProps;
|
|
51
|
+
security?: AppConfigSecurityProps;
|
|
52
|
+
cloudfront?: AppConfigCloudFrontProps;
|
|
32
53
|
pipeline?: {
|
|
33
|
-
source:
|
|
34
|
-
|
|
35
|
-
codestarConnectionParam?: string;
|
|
36
|
-
owner: 'evokegroup' | 'meltmedia' | (string & {});
|
|
37
|
-
repo: string;
|
|
38
|
-
branch: string;
|
|
39
|
-
fullClone?: boolean;
|
|
40
|
-
};
|
|
41
|
-
build?: {
|
|
42
|
-
buildSpec?: string | object;
|
|
43
|
-
buildImage?: IBuildImage;
|
|
44
|
-
buildImageEcr?: EcrBuildImage;
|
|
45
|
-
buildImageNodeJS?: CodeBuildNodeJs;
|
|
46
|
-
buildImageId?: CodeBuildImageId;
|
|
47
|
-
computeType?: CodeBuildComputeType;
|
|
48
|
-
environmentVariables?: EnvironmentVariables;
|
|
49
|
-
ssmParameters?: CodeBuildSsmParameter[];
|
|
50
|
-
};
|
|
54
|
+
source: AppConfigPipelineSourceProps;
|
|
55
|
+
build?: AppConfigPipelineBuildProps;
|
|
51
56
|
};
|
|
52
57
|
}
|
|
53
58
|
export declare function runWebStaticServerlessApp(cmd: CdkCommand, config: WebStaticServerlessAppConfig): Promise<void>;
|
|
@@ -26,7 +26,8 @@ export async function runWebStaticServerlessApp(cmd, config) {
|
|
|
26
26
|
cloudfrontFunction: config.cloudfront?.function && typeof config.cloudfront.function == 'string' ? {
|
|
27
27
|
code: config.cloudfront.function,
|
|
28
28
|
eventType: ['VIEWER_REQUEST', 'VIEWER_RESPONSE'],
|
|
29
|
-
} : config.cloudfront?.function
|
|
29
|
+
} : config.cloudfront?.function,
|
|
30
|
+
errorResponses: config.cloudfront?.errorResponses
|
|
30
31
|
};
|
|
31
32
|
if (config.pipeline) {
|
|
32
33
|
stageProps.pipeline = {
|
|
@@ -70,4 +71,4 @@ export async function runWebStaticServerlessApp(cmd, config) {
|
|
|
70
71
|
break;
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXN0YXRpYy1zZXJ2ZXJsZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS93ZWItc3RhdGljLXNlcnZlcmxlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU8vQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSx3QkFBd0IsRUFBaUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuSCxNQUFNLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBaUQxQixNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUFDLEdBQWUsRUFBRSxNQUFvQztJQUNuRyxNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQztTQUN6QyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBb0Q7WUFDbEUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzFCLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4RSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEtBQUssTUFBTSxD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UUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVO29CQUM1QyxZQUFZLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDaEQsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO29CQUN4RCxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUztvQkFDMUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVc7b0JBQzlDLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhO29CQUNsRCxhQUFhLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYTtpQkFDbkQsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUzRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDWixvQkFBb0I7UUFDcEIsd0hBQXdIO1FBQ3hILFdBQVc7UUFDWCxLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssT0FBTztZQUNWLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLE1BQU07SUFDVixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0ICogYXMgY29yZSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFRvb2xraXQgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgeyBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IElCdWlsZEltYWdlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgeyBDbG91ZEZyb250RXJyb3JSZXNwb25zZSwgQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RzIH0gZnJvbSAnLi4vY29uc3RydWN0cy9jbG91ZGZyb250LmpzJztcbmltcG9ydCB7IENvZGVCdWlsZEltYWdlSWQsIEVjckJ1aWxkSW1hZ2UsIENvZGVCdWlsZFNzbVBhcmFtZXRlciwgQ29kZUJ1aWxkQ29tcHV0ZVR5cGUsIENvZGVCdWlsZE5vZGVKcywgRW52aXJvbm1lbnRWYXJpYWJsZXMgfSBmcm9tICcuLi9jb25zdHJ1Y3RzL2NvZGVidWlsZC50cyc7XG5pbXBvcnQgdHlwZSB7IEV2b3N5bnRoQXBwQ29uZmlnLCBDZGtDb21tYW5kLCBFdm9zeW50aEFwcFR5cGUgfSBmcm9tICcuL2V2b3N5bnRoLnRzJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGcm9udEZ1bmN0aW9uRXZlbnRUeXBlLCBDc3BIZWFkZXJzLCBVVUlELCBBV1NNYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5IH0gZnJvbSAnLi4vdHlwZXMuZC50cyc7XG5pbXBvcnQgeyBnZXRFbnYgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5pbXBvcnQgeyBXZWJTdGF0aWNTZXJ2ZXJsZXNzU3RhZ2UsIFdlYlN0YXRpY1NlcnZlcmxlc3NTdGFnZVByb3BzIH0gZnJvbSAnLi4vc3RhZ2VzL3dlYi1zdGF0aWMtc2VydmVybGVzcy1zdGFnZS5qcyc7XG5cbmNvbnN0IGNkayA9IG5ldyBUb29sa2l0KCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViU3RhdGljU2VydmVybGVzc0FwcENvbmZpZyBleHRlbmRzIEV2b3N5bnRoQXBwQ29uZmlnIHtcbiAgdHlwZTogRXh0cmFjdDxFdm9zeW50aEFwcFR5cGUsICd3ZWItc3RhdGljLXNlcnZlcmxlc3MnPixcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRuczoge1xuICAgIHJlY29yZDogc3RyaW5nO1xuICAgIHpvbmU6IHN0cmluZztcbiAgfSxcbiAgc2VjdXJpdHk/OiB7XG4gICAgYmFzaWNBdXRoPzogc3RyaW5nO1xuICAgIGJhc2ljQXV0aFBhcmFtPzogc3RyaW5nO1xuICAgIHdlYkFjbD86IHN0cmluZyB8IGZhbHNlO1xuICAgIHdlYkFjbFBhcmFtPzogc3RyaW5nO1xuICB9LFxuICBjbG91ZGZyb250Pzoge1xuICAgIHJlc3BvbnNlSGVhZGVycz86IEFXU01hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3kgfCBVVUlEIHwgZmFsc2U7XG4gICAgcmVzcG9uc2VIZWFkZXJzUGFyYW0/OiBzdHJpbmc7XG4gICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5PzogUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM7XG4gICAgY3NwSGVhZGVycz86IENzcEhlYWRlcnM7XG4gICAgcmVkaXJlY3RzPzogQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RzO1xuICAgIGZ1bmN0aW9uPzogc3RyaW5nIHwge1xuICAgICAgY29kZTogc3RyaW5nO1xuICAgICAgZXZlbnRUeXBlOiBDbG91ZEZyb250RnVuY3Rpb25FdmVudFR5cGVbXTtcbiAgICB9LFxuICAgIGVycm9ycz86IENsb3VkRnJvbnRFcnJvclJlc3BvbnNlW11cbiAgfSxcbiAgcGlwZWxpbmU/OiB7XG4gICAgc291cmNlOiB7XG4gICAgICBjb2Rlc3RhckNvbm5lY3Rpb24/OiBzdHJpbmc7XG4gICAgICBjb2Rlc3RhckNvbm5lY3Rpb25QYXJhbT86IHN0cmluZztcbiAgICAgIG93bmVyOiAnZXZva2Vncm91cCcgfCAnbWVsdG1lZGlhJyB8IChzdHJpbmcgJiB7fSk7XG4gICAgICByZXBvOiBzdHJpbmc7XG4gICAgICBicmFuY2g6IHN0cmluZztcbiAgICAgIGZ1bGxDbG9uZT86IGJvb2xlYW47XG4gICAgfSxcbiAgICBidWlsZD86IHtcbiAgICAgIGJ1aWxkU3BlYz86IHN0cmluZyB8IG9iamVjdDtcbiAgICAgIGJ1aWxkSW1hZ2U/OiBJQnVpbGRJbWFnZTtcbiAgICAgIGJ1aWxkSW1hZ2VFY3I/OiBFY3JCdWlsZEltYWdlO1xuICAgICAgYnVpbGRJbWFnZU5vZGVKUz86IENvZGVCdWlsZE5vZGVKcztcbiAgICAgIGJ1aWxkSW1hZ2VJZD86IENvZGVCdWlsZEltYWdlSWQ7XG4gICAgICBjb21wdXRlVHlwZT86IENvZGVCdWlsZENvbXB1dGVUeXBlO1xuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM/OiBFbnZpcm9ubWVudFZhcmlhYmxlcztcbiAgICAgIHNzbVBhcmFtZXRlcnM/OiBDb2RlQnVpbGRTc21QYXJhbWV0ZXJbXVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2ViU3RhdGljU2VydmVybGVzc0FwcChjbWQ6IENka0NvbW1hbmQsIGNvbmZpZzogV2ViU3RhdGljU2VydmVybGVzc0FwcENvbmZpZykge1xuICBjb25zdCBjeCA9IGF3YWl0IGNkay5mcm9tQXNzZW1ibHlCdWlsZGVyKGFzeW5jIChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGFwcCA9IG5ldyBjb3JlLkFwcCh7XG4gICAgICBvdXRkaXI6IGpvaW4ocHJvY2Vzcy5jd2QoKSwgJy5ldm9zeW50aCcpLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhZ2VQcm9wczogV2ViU3RhdGljU2VydmVybGVzc1N0YWdlUHJvcHMgJiBjb3JlLlN0YWdlUHJvcHMgPSB7XG4gICAgICBlbnY6IGdldEVudihjb25maWcucmVnaW9uKSxcbiAgICAgIHN0YWdlTmFtZTogYCR7Y29uZmlnLm5hbWV9JHtjb25maWcuZW52VHlwZSA/IGAtJHtjb25maWcuZW52VHlwZX1gIDogJyd9YCxcbiAgICAgIHRhZ3M6IGNvbmZpZy50YWdzLFxuICAgICAgZW52VHlwZTogY29uZmlnLmVudlR5cGUgPT09ICdwcm9kJyA/ICdQUk9EJyA6ICdOT1RfUFJPRCcsXG4gICAgICBkZXNjcmlwdGlvbjogYCR7Y29uZmlnLmRlc2NyaXB0aW9ufSR7Y29uZmlnLmVudlR5cGUgPyBgICR7Y29uZmlnLmVudlR5cGUudG9VcHBlckNhc2UoKX1gIDogJyd9YCxcbiAgICAgIGhvc3RlZFpvbmU6IGNvbmZpZy5kbnMuem9uZSxcbiAgICAgIGRvbWFpbk5hbWU6IGAke2NvbmZpZy5kbnMucmVjb3JkfS4ke2NvbmZpZy5kbnMuem9uZX1gLFxuICAgICAgYmFzaWNBdXRoOiBjb25maWcuc2VjdXJpdHk/LmJhc2ljQXV0aFBhcmFtID8geyBwYXRoOiBjb25maWcuc2VjdXJpdHk/LmJhc2ljQXV0aFBhcmFtIH0gOiBjb25maWcuc2VjdXJpdHk/LmJhc2ljQXV0aCxcbiAgICAgIHdlYkFjbDogY29uZmlnLnNlY3VyaXR5Py53ZWJBY2xQYXJhbSA/IHsgcGF0aDogY29uZmlnLnNlY3VyaXR5LndlYkFjbFBhcmFtIH0gOiBjb25maWcuc2VjdXJpdHk/LndlYkFjbCxcbiAgICAgIHJlZGlyZWN0czogY29uZmlnLmNsb3VkZnJvbnQ/LnJlZGlyZWN0cyxcbiAgICAgIHJlc3BvbnNlQ3NwSGVhZGVyczogY29uZmlnLmNsb3VkZnJvbnQ/LmNzcEhlYWRlcnMsXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3k6IGNvbmZpZy5jbG91ZGZyb250Py5yZXNwb25zZUhlYWRlcnNQYXJhbSA/IHsgcGF0aDogY29uZmlnLmNsb3VkZnJvbnQucmVzcG9uc2VIZWFkZXJzUGFyYW0gfSA6IGNvbmZpZy5jbG91ZGZyb250Py5yZXNwb25zZUhlYWRlcnMsXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wczogY29uZmlnLmNsb3VkZnJvbnQ/LnJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgIGNsb3VkZnJvbnRGdW5jdGlvbjogY29uZmlnLmNsb3VkZnJvbnQ/LmZ1bmN0aW9uICYmIHR5cGVvZiBjb25maWcuY2xvdWRmcm9udC5mdW5jdGlvbiA9PSAnc3RyaW5nJyA/IHtcbiAgICAgICAgY29kZTogY29uZmlnLmNsb3VkZnJvbnQuZnVuY3Rpb24sXG4gICAgICAgIGV2ZW50VHlwZTogWydWSUVXRVJfUkVRVUVTVCcsJ1ZJRVdFUl9SRVNQT05TRSddLFxuICAgICAgfSA6IGNvbmZpZy5jbG91ZGZyb250Py5mdW5jdGlvbiBhcyBhbnlcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waXBlbGluZSkge1xuICAgICAgc3RhZ2VQcm9wcy5waXBlbGluZSA9IHtcbiAgICAgICAgc291cmNlU3RhZ2U6IHtcbiAgICAgICAgICBjb2Rlc3RhckNvbm5lY3Rpb246IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuY29kZXN0YXJDb25uZWN0aW9uUGFyYW0gPyB7IHBhdGg6IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuY29kZXN0YXJDb25uZWN0aW9uUGFyYW0gfSA6IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuY29kZXN0YXJDb25uZWN0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICByZXBvT3duZXI6IGNvbmZpZy5waXBlbGluZS5zb3VyY2Uub3duZXIsXG4gICAgICAgICAgcmVwbzogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5yZXBvLFxuICAgICAgICAgIGJyYW5jaDogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5icmFuY2gsXG4gICAgICAgICAgZnVsbENsb25lOiBjb25maWcucGlwZWxpbmUuc291cmNlLmZ1bGxDbG9uZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnBpcGVsaW5lLmJ1aWxkKSB7XG4gICAgICAgIHN0YWdlUHJvcHMucGlwZWxpbmUuYnVpbGRTdGFnZSA9IHtcbiAgICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmVudmlyb25tZW50VmFyaWFibGVzXG4gICAgICAgIH07XG4gICAgICAgIHN0YWdlUHJvcHMucGlwZWxpbmUuY29kZUJ1aWxkUHJvamVjdCA9IHtcbiAgICAgICAgICBidWlsZEltYWdlOiBjb25maWcucGlwZWxpbmUuYnVpbGQuYnVpbGRJbWFnZSxcbiAgICAgICAgICBidWlsZEltYWdlSWQ6IGNvbmZpZy5waXBlbGluZS5idWlsZC5idWlsZEltYWdlSWQsXG4gICAgICAgICAgYnVpbGRJbWFnZU5vZGVKUzogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmJ1aWxkSW1hZ2VOb2RlSlMsXG4gICAgICAgICAgYnVpbGRTcGVjOiBjb25maWcucGlwZWxpbmUuYnVpbGQuYnVpbGRTcGVjLFxuICAgICAgICAgIGNvbXB1dGVUeXBlOiBjb25maWcucGlwZWxpbmUuYnVpbGQuY29tcHV0ZVR5cGUsXG4gICAgICAgICAgZWNyQnVpbGRJbWFnZTogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmJ1aWxkSW1hZ2VFY3IsXG4gICAgICAgICAgc3NtUGFyYW1ldGVyczogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLnNzbVBhcmFtZXRlcnNcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXcgV2ViU3RhdGljU2VydmVybGVzc1N0YWdlKGFwcCwgY29uZmlnLnR5cGUsIHN0YWdlUHJvcHMpO1xuXG4gICAgcmV0dXJuIGFwcC5zeW50aCgpO1xuICB9KTtcblxuICBzd2l0Y2ggKGNtZCkge1xuICAgIC8vIGNhc2UgJ2Jvb3RzdHJhcCc6XG4gICAgLy8gICBhd2FpdCBjZGsuYm9vdHN0cmFwKEJvb3RzdHJhcEVudmlyb25tZW50cy5mcm9tTGlzdChbYGF3czovLyR7cHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVH0vJHtjb25maWcucmVnaW9ufWBdKSk7XG4gICAgLy8gICBicmVhaztcbiAgICBjYXNlICdkZXBsb3knOlxuICAgIGNhc2UgJ2Rlc3Ryb3knOlxuICAgIGNhc2UgJ2RpZmYnOlxuICAgIGNhc2UgJ2RyaWZ0JzpcbiAgICBjYXNlICdyb2xsYmFjayc6XG4gICAgY2FzZSAnc3ludGgnOlxuICAgICAgYXdhaXQgY2RrW2NtZF0oY3gpO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cbiJdfQ==
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXN0YXRpYy1zZXJ2ZXJsZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS93ZWItc3RhdGljLXNlcnZlcmxlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU8vQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSx3QkFBd0IsRUFBaUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuSCxNQUFNLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBMkQxQixNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUFDLEdBQWUsRUFBRSxNQUFvQztJQUNuRyxNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQztTQUN6QyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBb0Q7WUFDbEUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzFCLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4RSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEtBQUssTUFBTSxD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QyxnQkFBZ0IsR0FBRztvQkFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVU7b0JBQzVDLFlBQVksRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUNoRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7b0JBQ3hELFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTO29CQUMxQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVztvQkFDOUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWE7b0JBQ2xELGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhO2lCQUNuRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNELE9BQU8sR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNaLG9CQUFvQjtRQUNwQix3SEFBd0g7UUFDeEgsV0FBVztRQUNYLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxPQUFPO1lBQ1YsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkIsTUFBTTtJQUNWLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgKiBhcyBjb3JlIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgVG9vbGtpdCB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCB7IFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0IHsgSUJ1aWxkSW1hZ2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7IENsb3VkRnJvbnRFcnJvclJlc3BvbnNlLCBDbG91ZEZyb250RnVuY3Rpb25SZWRpcmVjdHMgfSBmcm9tICcuLi9jb25zdHJ1Y3RzL2Nsb3VkZnJvbnQuanMnO1xuaW1wb3J0IHsgQ29kZUJ1aWxkSW1hZ2VJZCwgRWNyQnVpbGRJbWFnZSwgQ29kZUJ1aWxkU3NtUGFyYW1ldGVyLCBDb2RlQnVpbGRDb21wdXRlVHlwZSwgQ29kZUJ1aWxkTm9kZUpzLCBFbnZpcm9ubWVudFZhcmlhYmxlcyB9IGZyb20gJy4uL2NvbnN0cnVjdHMvY29kZWJ1aWxkLnRzJztcbmltcG9ydCB0eXBlIHsgRXZvc3ludGhBcHBDb25maWcsIENka0NvbW1hbmQsIEV2b3N5bnRoQXBwVHlwZSB9IGZyb20gJy4vZXZvc3ludGgudHMnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZyb250RnVuY3Rpb25FdmVudFR5cGUsIENzcEhlYWRlcnMsIFVVSUQsIEFXU01hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3kgfSBmcm9tICcuLi90eXBlcy5kLnRzJztcbmltcG9ydCB7IGdldEVudiB9IGZyb20gJy4uL2luZGV4LmpzJztcbmltcG9ydCB7IFdlYlN0YXRpY1NlcnZlcmxlc3NTdGFnZSwgV2ViU3RhdGljU2VydmVybGVzc1N0YWdlUHJvcHMgfSBmcm9tICcuLi9zdGFnZXMvd2ViLXN0YXRpYy1zZXJ2ZXJsZXNzLXN0YWdlLmpzJztcblxuY29uc3QgY2RrID0gbmV3IFRvb2xraXQoKTtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWdEbnNQcm9wcyB7XG4gIHJlY29yZDogc3RyaW5nO1xuICB6b25lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnU2VjdXJpdHlQcm9wcyB7XG4gIGJhc2ljQXV0aD86IHN0cmluZztcbiAgYmFzaWNBdXRoUGFyYW0/OiBzdHJpbmc7XG4gIHdlYkFjbD86IHN0cmluZyB8IGZhbHNlO1xuICB3ZWJBY2xQYXJhbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWdDbG91ZEZyb250UHJvcHMge1xuICByZXNwb25zZUhlYWRlcnM/OiBBV1NNYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5IHwgVVVJRCB8IGZhbHNlO1xuICByZXNwb25zZUhlYWRlcnNQYXJhbT86IHN0cmluZztcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5PzogUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM7XG4gIGNzcEhlYWRlcnM/OiBDc3BIZWFkZXJzO1xuICByZWRpcmVjdHM/OiBDbG91ZEZyb250RnVuY3Rpb25SZWRpcmVjdHM7XG4gIGZ1bmN0aW9uPzogc3RyaW5nIHwge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBldmVudFR5cGU6IENsb3VkRnJvbnRGdW5jdGlvbkV2ZW50VHlwZVtdO1xuICB9LFxuICBlcnJvclJlc3BvbnNlcz86IENsb3VkRnJvbnRFcnJvclJlc3BvbnNlW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWdQaXBlbGluZVNvdXJjZVByb3BzIHtcbiAgY29kZXN0YXJDb25uZWN0aW9uPzogc3RyaW5nO1xuICBjb2Rlc3RhckNvbm5lY3Rpb25QYXJhbT86IHN0cmluZztcbiAgb3duZXI6ICdldm9rZWdyb3VwJyB8ICdtZWx0bWVkaWEnIHwgKHN0cmluZyAmIHt9KTtcbiAgcmVwbzogc3RyaW5nO1xuICBicmFuY2g6IHN0cmluZztcbiAgZnVsbENsb25lPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWdQaXBlbGluZUJ1aWxkUHJvcHMge1xuICBidWlsZFNwZWM/OiBzdHJpbmcgfCBvYmplY3Q7XG4gIGJ1aWxkSW1hZ2U/OiBJQnVpbGRJbWFnZTtcbiAgYnVpbGRJbWFnZUVjcj86IEVjckJ1aWxkSW1hZ2U7XG4gIGJ1aWxkSW1hZ2VOb2RlSlM/OiBDb2RlQnVpbGROb2RlSnM7XG4gIGJ1aWxkSW1hZ2VJZD86IENvZGVCdWlsZEltYWdlSWQ7XG4gIGNvbXB1dGVUeXBlPzogQ29kZUJ1aWxkQ29tcHV0ZVR5cGU7XG4gIGVudmlyb25tZW50VmFyaWFibGVzPzogRW52aXJvbm1lbnRWYXJpYWJsZXM7XG4gIHNzbVBhcmFtZXRlcnM/OiBDb2RlQnVpbGRTc21QYXJhbWV0ZXJbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlYlN0YXRpY1NlcnZlcmxlc3NBcHBDb25maWcgZXh0ZW5kcyBFdm9zeW50aEFwcENvbmZpZyB7XG4gIHR5cGU6IEV4dHJhY3Q8RXZvc3ludGhBcHBUeXBlLCAnd2ViLXN0YXRpYy1zZXJ2ZXJsZXNzJz4sXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkbnM6IEFwcENvbmZpZ0Ruc1Byb3BzLFxuICBzZWN1cml0eT86IEFwcENvbmZpZ1NlY3VyaXR5UHJvcHMsXG4gIGNsb3VkZnJvbnQ/OiBBcHBDb25maWdDbG91ZEZyb250UHJvcHMsXG4gIHBpcGVsaW5lPzoge1xuICAgIHNvdXJjZTogQXBwQ29uZmlnUGlwZWxpbmVTb3VyY2VQcm9wcyxcbiAgICBidWlsZD86IEFwcENvbmZpZ1BpcGVsaW5lQnVpbGRQcm9wc1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5XZWJTdGF0aWNTZXJ2ZXJsZXNzQXBwKGNtZDogQ2RrQ29tbWFuZCwgY29uZmlnOiBXZWJTdGF0aWNTZXJ2ZXJsZXNzQXBwQ29uZmlnKSB7XG4gIGNvbnN0IGN4ID0gYXdhaXQgY2RrLmZyb21Bc3NlbWJseUJ1aWxkZXIoYXN5bmMgKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYXBwID0gbmV3IGNvcmUuQXBwKHtcbiAgICAgIG91dGRpcjogam9pbihwcm9jZXNzLmN3ZCgpLCAnLmV2b3N5bnRoJyksXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGFnZVByb3BzOiBXZWJTdGF0aWNTZXJ2ZXJsZXNzU3RhZ2VQcm9wcyAmIGNvcmUuU3RhZ2VQcm9wcyA9IHtcbiAgICAgIGVudjogZ2V0RW52KGNvbmZpZy5yZWdpb24pLFxuICAgICAgc3RhZ2VOYW1lOiBgJHtjb25maWcubmFtZX0ke2NvbmZpZy5lbnZUeXBlID8gYC0ke2NvbmZpZy5lbnZUeXBlfWAgOiAnJ31gLFxuICAgICAgdGFnczogY29uZmlnLnRhZ3MsXG4gICAgICBlbnZUeXBlOiBjb25maWcuZW52VHlwZSA9PT0gJ3Byb2QnID8gJ1BST0QnIDogJ05PVF9QUk9EJyxcbiAgICAgIGRlc2NyaXB0aW9uOiBgJHtjb25maWcuZGVzY3JpcHRpb259JHtjb25maWcuZW52VHlwZSA/IGAgJHtjb25maWcuZW52VHlwZS50b1VwcGVyQ2FzZSgpfWAgOiAnJ31gLFxuICAgICAgaG9zdGVkWm9uZTogY29uZmlnLmRucy56b25lLFxuICAgICAgZG9tYWluTmFtZTogYCR7Y29uZmlnLmRucy5yZWNvcmR9LiR7Y29uZmlnLmRucy56b25lfWAsXG4gICAgICBiYXNpY0F1dGg6IGNvbmZpZy5zZWN1cml0eT8uYmFzaWNBdXRoUGFyYW0gPyB7IHBhdGg6IGNvbmZpZy5zZWN1cml0eT8uYmFzaWNBdXRoUGFyYW0gfSA6IGNvbmZpZy5zZWN1cml0eT8uYmFzaWNBdXRoLFxuICAgICAgd2ViQWNsOiBjb25maWcuc2VjdXJpdHk/LndlYkFjbFBhcmFtID8geyBwYXRoOiBjb25maWcuc2VjdXJpdHkud2ViQWNsUGFyYW0gfSA6IGNvbmZpZy5zZWN1cml0eT8ud2ViQWNsLFxuICAgICAgcmVkaXJlY3RzOiBjb25maWcuY2xvdWRmcm9udD8ucmVkaXJlY3RzLFxuICAgICAgcmVzcG9uc2VDc3BIZWFkZXJzOiBjb25maWcuY2xvdWRmcm9udD8uY3NwSGVhZGVycyxcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeTogY29uZmlnLmNsb3VkZnJvbnQ/LnJlc3BvbnNlSGVhZGVyc1BhcmFtID8geyBwYXRoOiBjb25maWcuY2xvdWRmcm9udC5yZXNwb25zZUhlYWRlcnNQYXJhbSB9IDogY29uZmlnLmNsb3VkZnJvbnQ/LnJlc3BvbnNlSGVhZGVycyxcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzOiBjb25maWcuY2xvdWRmcm9udD8ucmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuICAgICAgY2xvdWRmcm9udEZ1bmN0aW9uOiBjb25maWcuY2xvdWRmcm9udD8uZnVuY3Rpb24gJiYgdHlwZW9mIGNvbmZpZy5jbG91ZGZyb250LmZ1bmN0aW9uID09ICdzdHJpbmcnID8ge1xuICAgICAgICBjb2RlOiBjb25maWcuY2xvdWRmcm9udC5mdW5jdGlvbixcbiAgICAgICAgZXZlbnRUeXBlOiBbJ1ZJRVdFUl9SRVFVRVNUJywnVklFV0VSX1JFU1BPTlNFJ10sXG4gICAgICB9IDogY29uZmlnLmNsb3VkZnJvbnQ/LmZ1bmN0aW9uIGFzIGFueSxcbiAgICAgIGVycm9yUmVzcG9uc2VzOiBjb25maWcuY2xvdWRmcm9udD8uZXJyb3JSZXNwb25zZXNcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waXBlbGluZSkge1xuICAgICAgc3RhZ2VQcm9wcy5waXBlbGluZSA9IHtcbiAgICAgICAgc291cmNlU3RhZ2U6IHtcbiAgICAgICAgICBjb2Rlc3RhckNvbm5lY3Rpb246IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuY29kZXN0YXJDb25uZWN0aW9uUGFyYW0gPyB7IHBhdGg6IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuY29kZXN0YXJDb25uZWN0aW9uUGFyYW0gfSA6IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuY29kZXN0YXJDb25uZWN0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICByZXBvT3duZXI6IGNvbmZpZy5waXBlbGluZS5zb3VyY2Uub3duZXIsXG4gICAgICAgICAgcmVwbzogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5yZXBvLFxuICAgICAgICAgIGJyYW5jaDogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5icmFuY2gsXG4gICAgICAgICAgZnVsbENsb25lOiBjb25maWcucGlwZWxpbmUuc291cmNlLmZ1bGxDbG9uZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnBpcGVsaW5lLmJ1aWxkKSB7XG4gICAgICAgIHN0YWdlUHJvcHMucGlwZWxpbmUuYnVpbGRTdGFnZSA9IHtcbiAgICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmVudmlyb25tZW50VmFyaWFibGVzXG4gICAgICAgIH07XG4gICAgICAgIHN0YWdlUHJvcHMucGlwZWxpbmUuY29kZUJ1aWxkUHJvamVjdCA9IHtcbiAgICAgICAgICBidWlsZEltYWdlOiBjb25maWcucGlwZWxpbmUuYnVpbGQuYnVpbGRJbWFnZSxcbiAgICAgICAgICBidWlsZEltYWdlSWQ6IGNvbmZpZy5waXBlbGluZS5idWlsZC5idWlsZEltYWdlSWQsXG4gICAgICAgICAgYnVpbGRJbWFnZU5vZGVKUzogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmJ1aWxkSW1hZ2VOb2RlSlMsXG4gICAgICAgICAgYnVpbGRTcGVjOiBjb25maWcucGlwZWxpbmUuYnVpbGQuYnVpbGRTcGVjLFxuICAgICAgICAgIGNvbXB1dGVUeXBlOiBjb25maWcucGlwZWxpbmUuYnVpbGQuY29tcHV0ZVR5cGUsXG4gICAgICAgICAgZWNyQnVpbGRJbWFnZTogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmJ1aWxkSW1hZ2VFY3IsXG4gICAgICAgICAgc3NtUGFyYW1ldGVyczogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLnNzbVBhcmFtZXRlcnNcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXcgV2ViU3RhdGljU2VydmVybGVzc1N0YWdlKGFwcCwgY29uZmlnLnR5cGUsIHN0YWdlUHJvcHMpO1xuXG4gICAgcmV0dXJuIGFwcC5zeW50aCgpO1xuICB9KTtcblxuICBzd2l0Y2ggKGNtZCkge1xuICAgIC8vIGNhc2UgJ2Jvb3RzdHJhcCc6XG4gICAgLy8gICBhd2FpdCBjZGsuYm9vdHN0cmFwKEJvb3RzdHJhcEVudmlyb25tZW50cy5mcm9tTGlzdChbYGF3czovLyR7cHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVH0vJHtjb25maWcucmVnaW9ufWBdKSk7XG4gICAgLy8gICBicmVhaztcbiAgICBjYXNlICdkZXBsb3knOlxuICAgIGNhc2UgJ2Rlc3Ryb3knOlxuICAgIGNhc2UgJ2RpZmYnOlxuICAgIGNhc2UgJ2RyaWZ0JzpcbiAgICBjYXNlICdyb2xsYmFjayc6XG4gICAgY2FzZSAnc3ludGgnOlxuICAgICAgYXdhaXQgY2RrW2NtZF0oY3gpO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
EvoSynth is an npm package providing reusable AWS CDK stacks for deploying static serverless websites. It targets S3 + CloudFront + Route53 + ACM + WAF + CodePipeline architectures.
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
|
-
- [CDK v2.238.x](https://docs.aws.amazon.com/cdk/v2/guide/home.html)
|
|
7
6
|
- Node version 22+
|
|
8
7
|
- AWS Account ID, a configured profile, or other credentials
|
|
9
8
|
- CodeConnection ARN or SSM Parameter Store path of a shared connection ARN
|
|
@@ -15,8 +14,160 @@ EvoSynth is an npm package providing reusable AWS CDK stacks for deploying stati
|
|
|
15
14
|
- Copy the buildspec.yml on your Bitbucket Repo and the build configuration
|
|
16
15
|
- Update/Configure the Stack example below
|
|
17
16
|
|
|
17
|
+
## Version 2 - evosynth cli (preferred)
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
This library includes a cli tool `evosynth` to support a more streamlined configuration approach than the version 1 process, although the version 1 process is still supported.
|
|
20
|
+
|
|
21
|
+
### Instructions
|
|
22
|
+
|
|
23
|
+
In your project:
|
|
24
|
+
|
|
25
|
+
1. **Install the library**
|
|
26
|
+
```bash
|
|
27
|
+
> npm install @inizioevoke/evosynth
|
|
28
|
+
```
|
|
29
|
+
2. **Create the config file in your project root directory.** `[ENV]` should be your environment name *(e.g. `.evosynth.dev.ts`)*
|
|
30
|
+
```bash
|
|
31
|
+
.evosynth.[ENV].(js|mjs|ts|mts)
|
|
32
|
+
```
|
|
33
|
+
It is also possible to use 1 config file for multiple environments.
|
|
34
|
+
```bash
|
|
35
|
+
.evosynth.(js|mjs|ts|mts)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
3. **Compile your config.** Add standard AWS flags like `--profile` if necessary.
|
|
39
|
+
```bash
|
|
40
|
+
> npx evosynth synth [ENV]
|
|
41
|
+
```
|
|
42
|
+
```bash
|
|
43
|
+
> npx evosynth synth [ENV] --profile my-profile
|
|
44
|
+
```
|
|
45
|
+
4. **Deploy**
|
|
46
|
+
```bash
|
|
47
|
+
> npx evosynth deploy [ENV]
|
|
48
|
+
```
|
|
49
|
+
5. **Destroy**
|
|
50
|
+
```bash
|
|
51
|
+
> npx evosynth destroy [ENV]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Example config file - single environment
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// .evosynth.dev.ts
|
|
58
|
+
import type { WebStaticServerlessAppConfig } from '@inizioevoke/evosynth';
|
|
59
|
+
|
|
60
|
+
export default async function(): Promise<WebStaticServerlessAppConfig> {
|
|
61
|
+
return {
|
|
62
|
+
type: 'web-static-serverless',
|
|
63
|
+
envType: 'dev',
|
|
64
|
+
name: 'my-project',
|
|
65
|
+
description: 'My Project',
|
|
66
|
+
region: 'us-east-1',
|
|
67
|
+
tags: {
|
|
68
|
+
Account: 'Account Name',
|
|
69
|
+
Brand: 'Brand Name'
|
|
70
|
+
},
|
|
71
|
+
dns: {
|
|
72
|
+
record: 'my-project.dev.client',
|
|
73
|
+
zone: 'evodev.net'
|
|
74
|
+
},
|
|
75
|
+
security: {
|
|
76
|
+
basicAuthParam: '/evosynth/web/security/basicauth',
|
|
77
|
+
webAclParam: '/evosynth/web/security/webacl'
|
|
78
|
+
},
|
|
79
|
+
pipeline: {
|
|
80
|
+
source: {
|
|
81
|
+
codestarConnectionParam: '/evosynth/bitbucket/codeconnection',
|
|
82
|
+
owner: 'evokegroup',
|
|
83
|
+
repo: 'my-project',
|
|
84
|
+
branch: 'develop'
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Example config file - multiple environments
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
// .evosynth.dev.ts
|
|
95
|
+
import type { WebStaticServerlessAppConfig } from '@inizioevoke/evosynth';
|
|
96
|
+
|
|
97
|
+
const name = 'my-project';
|
|
98
|
+
const description = 'My Project';
|
|
99
|
+
const region = 'us-east-1';
|
|
100
|
+
const tags: Record<string, string> = {
|
|
101
|
+
Account: 'Account Name',
|
|
102
|
+
Brand: 'Brand Name'
|
|
103
|
+
};
|
|
104
|
+
const basicAuthParam = '/evosynth/web/security/basicauth';
|
|
105
|
+
const webAclParam = '/evosynth/web/security/webacl';
|
|
106
|
+
const codestarConnectionParam = '/evosynth/bitbucket/codeconnection';
|
|
107
|
+
const owner = 'evokegroup';
|
|
108
|
+
const repo = 'my-project';
|
|
109
|
+
|
|
110
|
+
export default async function dev(): Promise<WebStaticServerlessAppConfig> {
|
|
111
|
+
return {
|
|
112
|
+
type: 'web-static-serverless',
|
|
113
|
+
envType: 'dev',
|
|
114
|
+
name,
|
|
115
|
+
description,
|
|
116
|
+
region,
|
|
117
|
+
tags,
|
|
118
|
+
dns: {
|
|
119
|
+
record: 'my-project.dev.client',
|
|
120
|
+
zone: 'evodev.net'
|
|
121
|
+
},
|
|
122
|
+
security: {
|
|
123
|
+
basicAuthParam,
|
|
124
|
+
webAclParam
|
|
125
|
+
},
|
|
126
|
+
pipeline: {
|
|
127
|
+
source: {
|
|
128
|
+
codestarConnectionParam,
|
|
129
|
+
owner,
|
|
130
|
+
repo,
|
|
131
|
+
branch: 'develop'
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export default async function uat(): Promise<WebStaticServerlessAppConfig> {
|
|
137
|
+
return {
|
|
138
|
+
type: 'web-static-serverless',
|
|
139
|
+
envType: 'uat',
|
|
140
|
+
name,
|
|
141
|
+
description,
|
|
142
|
+
region,
|
|
143
|
+
tags,
|
|
144
|
+
dns: {
|
|
145
|
+
record: 'my-project.uat.client',
|
|
146
|
+
zone: 'evodev.net'
|
|
147
|
+
},
|
|
148
|
+
security: {
|
|
149
|
+
basicAuthParam,
|
|
150
|
+
webAclParam
|
|
151
|
+
},
|
|
152
|
+
pipeline: {
|
|
153
|
+
source: {
|
|
154
|
+
codestarConnectionParam,
|
|
155
|
+
owner,
|
|
156
|
+
repo,
|
|
157
|
+
branch: 'develop'
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Version 1
|
|
165
|
+
|
|
166
|
+
*Requires [CDK v2.238.x](https://docs.aws.amazon.com/cdk/v2/guide/home.html) installed locally*
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
### Example App (legacy)
|
|
20
171
|
|
|
21
172
|
```typescript
|
|
22
173
|
import * as cdk from 'aws-cdk-lib/core';
|
|
@@ -12,50 +12,60 @@ import { WebStaticServerlessStage, WebStaticServerlessStageProps } from '../stag
|
|
|
12
12
|
|
|
13
13
|
const cdk = new Toolkit();
|
|
14
14
|
|
|
15
|
+
export interface AppConfigDnsProps {
|
|
16
|
+
record: string;
|
|
17
|
+
zone: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface AppConfigSecurityProps {
|
|
21
|
+
basicAuth?: string;
|
|
22
|
+
basicAuthParam?: string;
|
|
23
|
+
webAcl?: string | false;
|
|
24
|
+
webAclParam?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface AppConfigCloudFrontProps {
|
|
28
|
+
responseHeaders?: AWSManagedResponseHeadersPolicy | UUID | false;
|
|
29
|
+
responseHeadersParam?: string;
|
|
30
|
+
responseHeadersPolicy?: ResponseHeadersPolicyProps;
|
|
31
|
+
cspHeaders?: CspHeaders;
|
|
32
|
+
redirects?: CloudFrontFunctionRedirects;
|
|
33
|
+
function?: string | {
|
|
34
|
+
code: string;
|
|
35
|
+
eventType: CloudFrontFunctionEventType[];
|
|
36
|
+
},
|
|
37
|
+
errorResponses?: CloudFrontErrorResponse[]
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface AppConfigPipelineSourceProps {
|
|
41
|
+
codestarConnection?: string;
|
|
42
|
+
codestarConnectionParam?: string;
|
|
43
|
+
owner: 'evokegroup' | 'meltmedia' | (string & {});
|
|
44
|
+
repo: string;
|
|
45
|
+
branch: string;
|
|
46
|
+
fullClone?: boolean;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface AppConfigPipelineBuildProps {
|
|
50
|
+
buildSpec?: string | object;
|
|
51
|
+
buildImage?: IBuildImage;
|
|
52
|
+
buildImageEcr?: EcrBuildImage;
|
|
53
|
+
buildImageNodeJS?: CodeBuildNodeJs;
|
|
54
|
+
buildImageId?: CodeBuildImageId;
|
|
55
|
+
computeType?: CodeBuildComputeType;
|
|
56
|
+
environmentVariables?: EnvironmentVariables;
|
|
57
|
+
ssmParameters?: CodeBuildSsmParameter[]
|
|
58
|
+
}
|
|
59
|
+
|
|
15
60
|
export interface WebStaticServerlessAppConfig extends EvosynthAppConfig {
|
|
16
61
|
type: Extract<EvosynthAppType, 'web-static-serverless'>,
|
|
17
62
|
description?: string;
|
|
18
|
-
dns:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
security?: {
|
|
23
|
-
basicAuth?: string;
|
|
24
|
-
basicAuthParam?: string;
|
|
25
|
-
webAcl?: string | false;
|
|
26
|
-
webAclParam?: string;
|
|
27
|
-
},
|
|
28
|
-
cloudfront?: {
|
|
29
|
-
responseHeaders?: AWSManagedResponseHeadersPolicy | UUID | false;
|
|
30
|
-
responseHeadersParam?: string;
|
|
31
|
-
responseHeadersPolicy?: ResponseHeadersPolicyProps;
|
|
32
|
-
cspHeaders?: CspHeaders;
|
|
33
|
-
redirects?: CloudFrontFunctionRedirects;
|
|
34
|
-
function?: string | {
|
|
35
|
-
code: string;
|
|
36
|
-
eventType: CloudFrontFunctionEventType[];
|
|
37
|
-
},
|
|
38
|
-
errors?: CloudFrontErrorResponse[]
|
|
39
|
-
},
|
|
63
|
+
dns: AppConfigDnsProps,
|
|
64
|
+
security?: AppConfigSecurityProps,
|
|
65
|
+
cloudfront?: AppConfigCloudFrontProps,
|
|
40
66
|
pipeline?: {
|
|
41
|
-
source:
|
|
42
|
-
|
|
43
|
-
codestarConnectionParam?: string;
|
|
44
|
-
owner: 'evokegroup' | 'meltmedia' | (string & {});
|
|
45
|
-
repo: string;
|
|
46
|
-
branch: string;
|
|
47
|
-
fullClone?: boolean;
|
|
48
|
-
},
|
|
49
|
-
build?: {
|
|
50
|
-
buildSpec?: string | object;
|
|
51
|
-
buildImage?: IBuildImage;
|
|
52
|
-
buildImageEcr?: EcrBuildImage;
|
|
53
|
-
buildImageNodeJS?: CodeBuildNodeJs;
|
|
54
|
-
buildImageId?: CodeBuildImageId;
|
|
55
|
-
computeType?: CodeBuildComputeType;
|
|
56
|
-
environmentVariables?: EnvironmentVariables;
|
|
57
|
-
ssmParameters?: CodeBuildSsmParameter[]
|
|
58
|
-
}
|
|
67
|
+
source: AppConfigPipelineSourceProps,
|
|
68
|
+
build?: AppConfigPipelineBuildProps
|
|
59
69
|
}
|
|
60
70
|
}
|
|
61
71
|
|
|
@@ -82,7 +92,8 @@ export async function runWebStaticServerlessApp(cmd: CdkCommand, config: WebStat
|
|
|
82
92
|
cloudfrontFunction: config.cloudfront?.function && typeof config.cloudfront.function == 'string' ? {
|
|
83
93
|
code: config.cloudfront.function,
|
|
84
94
|
eventType: ['VIEWER_REQUEST','VIEWER_RESPONSE'],
|
|
85
|
-
} : config.cloudfront?.function as any
|
|
95
|
+
} : config.cloudfront?.function as any,
|
|
96
|
+
errorResponses: config.cloudfront?.errorResponses
|
|
86
97
|
}
|
|
87
98
|
if (config.pipeline) {
|
|
88
99
|
stageProps.pipeline = {
|