@inizioevoke/evosynth 2.2.5 → 2.2.6

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,6 +4,7 @@ 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
+ import type { DeepPartial } from '../types.d.ts';
7
8
  export interface AppConfigDnsProps {
8
9
  record: string;
9
10
  zone: string;
@@ -58,4 +59,5 @@ export interface WebStaticServerlessAppConfig extends EvosynthAppConfig {
58
59
  build?: AppConfigPipelineBuildProps;
59
60
  };
60
61
  }
62
+ export declare function mergeConfigs<T>(...configs: DeepPartial<T>[]): T;
61
63
  export declare function runWebStaticServerlessApp(cmd: CdkCommand, config: WebStaticServerlessAppConfig): Promise<void>;
@@ -3,6 +3,24 @@ import * as core from 'aws-cdk-lib/core';
3
3
  import { Toolkit } from '@aws-cdk/toolkit-lib';
4
4
  import { getEnv } from '../index.js';
5
5
  import { WebStaticServerlessStage } from '../stages/web-static-serverless-stage.js';
6
+ export function mergeConfigs(...configs) {
7
+ function deepMerge(target, source) {
8
+ const result = { ...target };
9
+ for (const key of Object.keys(source)) {
10
+ const srcVal = source[key];
11
+ const tgtVal = target[key];
12
+ if (srcVal !== null && typeof srcVal === 'object' && !Array.isArray(srcVal)
13
+ && tgtVal !== null && typeof tgtVal === 'object' && !Array.isArray(tgtVal)) {
14
+ result[key] = deepMerge(tgtVal, srcVal);
15
+ }
16
+ else if (srcVal !== undefined) {
17
+ result[key] = srcVal;
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ return configs.reduce((acc, config) => deepMerge(acc, config), {});
23
+ }
6
24
  export async function runWebStaticServerlessApp(cmd, config) {
7
25
  const cdk = new Toolkit();
8
26
  const cx = await cdk.fromAssemblyBuilder(async (props) => {
@@ -71,4 +89,4 @@ export async function runWebStaticServerlessApp(cmd, config) {
71
89
  break;
72
90
  }
73
91
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXN0YXRpYy1zZXJ2ZXJsZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS93ZWItc3RhdGljLXNlcnZlcmxlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU8vQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSx3QkFBd0IsRUFBaUMsTUFBTSwwQ0FBMEMsQ0FBQztBQTJEbkgsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxHQUFlLEVBQUUsTUFBb0M7SUFDbkcsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQixNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQztTQUN6QyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBb0Q7WUFDbEUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzFCLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4RSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEtBQUssTUFBTSxD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dGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIGNvcmUgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBUb29sa2l0IH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHsgUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyBJQnVpbGRJbWFnZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHsgQ2xvdWRGcm9udEVycm9yUmVzcG9uc2UsIENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0cyB9IGZyb20gJy4uL2NvbnN0cnVjdHMvY2xvdWRmcm9udC5qcyc7XG5pbXBvcnQgeyBDb2RlQnVpbGRJbWFnZUlkLCBFY3JCdWlsZEltYWdlLCBDb2RlQnVpbGRTc21QYXJhbWV0ZXIsIENvZGVCdWlsZENvbXB1dGVUeXBlLCBDb2RlQnVpbGROb2RlSnMsIEVudmlyb25tZW50VmFyaWFibGVzIH0gZnJvbSAnLi4vY29uc3RydWN0cy9jb2RlYnVpbGQudHMnO1xuaW1wb3J0IHR5cGUgeyBFdm9zeW50aEFwcENvbmZpZywgQ2RrQ29tbWFuZCwgRXZvc3ludGhBcHBUeXBlIH0gZnJvbSAnLi9ldm9zeW50aC50cyc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRnJvbnRGdW5jdGlvbkV2ZW50VHlwZSwgQ3NwSGVhZGVycywgVVVJRCwgQVdTTWFuYWdlZFJlc3BvbnNlSGVhZGVyc1BvbGljeSB9IGZyb20gJy4uL3R5cGVzLmQudHMnO1xuaW1wb3J0IHsgZ2V0RW52IH0gZnJvbSAnLi4vaW5kZXguanMnO1xuaW1wb3J0IHsgV2ViU3RhdGljU2VydmVybGVzc1N0YWdlLCBXZWJTdGF0aWNTZXJ2ZXJsZXNzU3RhZ2VQcm9wcyB9IGZyb20gJy4uL3N0YWdlcy93ZWItc3RhdGljLXNlcnZlcmxlc3Mtc3RhZ2UuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZ0Ruc1Byb3BzIHtcbiAgcmVjb3JkOiBzdHJpbmc7XG4gIHpvbmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWdTZWN1cml0eVByb3BzIHtcbiAgYmFzaWNBdXRoPzogc3RyaW5nO1xuICBiYXNpY0F1dGhQYXJhbT86IHN0cmluZztcbiAgd2ViQWNsPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgd2ViQWNsUGFyYW0/OiBzdHJpbmcgfCB7IHBhdGg6IHN0cmluZywgdmVyc2lvbj86IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZ0Nsb3VkRnJvbnRQcm9wcyB7XG4gIHJlc3BvbnNlSGVhZGVycz86IEFXU01hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3kgfCBVVUlEIHwgZmFsc2U7XG4gIHJlc3BvbnNlSGVhZGVyc1BhcmFtPzogc3RyaW5nO1xuICByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcztcbiAgY3NwSGVhZGVycz86IENzcEhlYWRlcnMgfCBzdHJpbmc7XG4gIHJlZGlyZWN0cz86IENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0cztcbiAgZnVuY3Rpb24/OiBzdHJpbmcgfCB7XG4gICAgY29kZTogc3RyaW5nO1xuICAgIGV2ZW50VHlwZTogQ2xvdWRGcm9udEZ1bmN0aW9uRXZlbnRUeXBlW107XG4gIH0sXG4gIGVycm9yUmVzcG9uc2VzPzogQ2xvdWRGcm9udEVycm9yUmVzcG9uc2VbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZ1BpcGVsaW5lU291cmNlUHJvcHMge1xuICBjb2Rlc3RhckNvbm5lY3Rpb24/OiBzdHJpbmc7XG4gIGNvZGVzdGFyQ29ubmVjdGlvblBhcmFtPzogc3RyaW5nO1xuICBvd25lcjogJ2V2b2tlZ3JvdXAnIHwgJ21lbHRtZWRpYScgfCAoc3RyaW5nICYge30pO1xuICByZXBvOiBzdHJpbmc7XG4gIGJyYW5jaDogc3RyaW5nO1xuICBmdWxsQ2xvbmU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZ1BpcGVsaW5lQnVpbGRQcm9wcyB7XG4gIGJ1aWxkU3BlYz86IHN0cmluZyB8IG9iamVjdDtcbiAgYnVpbGRJbWFnZT86IElCdWlsZEltYWdlO1xuICBidWlsZEltYWdlRWNyPzogRWNyQnVpbGRJbWFnZTtcbiAgYnVpbGRJbWFnZU5vZGVKUz86IENvZGVCdWlsZE5vZGVKcztcbiAgYnVpbGRJbWFnZUlkPzogQ29kZUJ1aWxkSW1hZ2VJZDtcbiAgY29tcHV0ZVR5cGU/OiBDb2RlQnVpbGRDb21wdXRlVHlwZTtcbiAgZW52aXJvbm1lbnRWYXJpYWJsZXM/OiBFbnZpcm9ubWVudFZhcmlhYmxlcztcbiAgc3NtUGFyYW1ldGVycz86IENvZGVCdWlsZFNzbVBhcmFtZXRlcltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViU3RhdGljU2VydmVybGVzc0FwcENvbmZpZyBleHRlbmRzIEV2b3N5bnRoQXBwQ29uZmlnIHtcbiAgdHlwZTogRXh0cmFjdDxFdm9zeW50aEFwcFR5cGUsICd3ZWItc3RhdGljLXNlcnZlcmxlc3MnPixcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZG5zOiBBcHBDb25maWdEbnNQcm9wcyxcbiAgc2VjdXJpdHk/OiBBcHBDb25maWdTZWN1cml0eVByb3BzLFxuICBjbG91ZGZyb250PzogQXBwQ29uZmlnQ2xvdWRGcm9udFByb3BzLFxuICBwaXBlbGluZT86IHtcbiAgICBzb3VyY2U6IEFwcENvbmZpZ1BpcGVsaW5lU291cmNlUHJvcHMsXG4gICAgYnVpbGQ/OiBBcHBDb25maWdQaXBlbGluZUJ1aWxkUHJvcHNcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2ViU3RhdGljU2VydmVybGVzc0FwcChjbWQ6IENka0NvbW1hbmQsIGNvbmZpZzogV2ViU3RhdGljU2VydmVybGVzc0FwcENvbmZpZykge1xuICBjb25zdCBjZGsgPSBuZXcgVG9vbGtpdCgpO1xuICBjb25zdCBjeCA9IGF3YWl0IGNkay5mcm9tQXNzZW1ibHlCdWlsZGVyKGFzeW5jIChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGFwcCA9IG5ldyBjb3JlLkFwcCh7XG4gICAgICBvdXRkaXI6IGpvaW4ocHJvY2Vzcy5jd2QoKSwgJy5ldm9zeW50aCcpLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhZ2VQcm9wczogV2ViU3RhdGljU2VydmVybGVzc1N0YWdlUHJvcHMgJiBjb3JlLlN0YWdlUHJvcHMgPSB7XG4gICAgICBlbnY6IGdldEVudihjb25maWcucmVnaW9uKSxcbiAgICAgIHN0YWdlTmFtZTogYCR7Y29uZmlnLm5hbWV9JHtjb25maWcuZW52VHlwZSA/IGAtJHtjb25maWcuZW52VHlwZX1gIDogJyd9YCxcbiAgICAgIHRhZ3M6IGNvbmZpZy50YWdzLFxuICAgICAgZW52VHlwZTogY29uZmlnLmVudlR5cGUgPT09ICdwcm9kJyA/ICdQUk9EJyA6ICdOT1RfUFJPRCcsXG4gICAgICBkZXNjcmlwdGlvbjogYCR7Y29uZmlnLmRlc2NyaXB0aW9ufSR7Y29uZmlnLmVudlR5cGUgPyBgICR7Y29uZmlnLmVudlR5cGUudG9VcHBlckNhc2UoKX1gIDogJyd9YCxcbiAgICAgIGhvc3RlZFpvbmU6IGNvbmZpZy5kbnMuem9uZSxcbiAgICAgIGRvbWFpbk5hbWU6IGAke2NvbmZpZy5kbnMucmVjb3JkfS4ke2NvbmZpZy5kbnMuem9uZX1gLFxuICAgICAgYmFzaWNBdXRoOiBjb25maWcuc2VjdXJpdHk/LmJhc2ljQXV0aFBhcmFtID8geyBwYXRoOiBjb25maWcuc2VjdXJpdHk/LmJhc2ljQXV0aFBhcmFtIH0gOiBjb25maWcuc2VjdXJpdHk/LmJhc2ljQXV0aCxcbiAgICAgIHdlYkFjbDogY29uZmlnLnNlY3VyaXR5Py53ZWJBY2xQYXJhbSA/IChjb25maWcuc2VjdXJpdHkud2ViQWNsUGFyYW0gYXMgYW55KS5wYXRoID8gY29uZmlnLnNlY3VyaXR5LndlYkFjbFBhcmFtIDogeyBwYXRoOiBjb25maWcuc2VjdXJpdHkud2ViQWNsUGFyYW0gYXMgc3RyaW5nIH0gOiBjb25maWcuc2VjdXJpdHk/LndlYkFjbCxcbiAgICAgIHJlZGlyZWN0czogY29uZmlnLmNsb3VkZnJvbnQ/LnJlZGlyZWN0cyxcbiAgICAgIHJlc3BvbnNlQ3NwSGVhZGVyczogY29uZmlnLmNsb3VkZnJvbnQ/LmNzcEhlYWRlcnMsXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3k6IGNvbmZpZy5jbG91ZGZyb250Py5yZXNwb25zZUhlYWRlcnNQYXJhbSA/IHsgcGF0aDogY29uZmlnLmNsb3VkZnJvbnQucmVzcG9uc2VIZWFkZXJzUGFyYW0gfSA6IGNvbmZpZy5jbG91ZGZyb250Py5yZXNwb25zZUhlYWRlcnMsXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wczogY29uZmlnLmNsb3VkZnJvbnQ/LnJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgIGNsb3VkZnJvbnRGdW5jdGlvbjogY29uZmlnLmNsb3VkZnJvbnQ/LmZ1bmN0aW9uICYmIHR5cGVvZiBjb25maWcuY2xvdWRmcm9udC5mdW5jdGlvbiA9PSAnc3RyaW5nJyA/IHtcbiAgICAgICAgY29kZTogY29uZmlnLmNsb3VkZnJvbnQuZnVuY3Rpb24sXG4gICAgICAgIGV2ZW50VHlwZTogWydWSUVXRVJfUkVRVUVTVCcsJ1ZJRVdFUl9SRVNQT05TRSddLFxuICAgICAgfSA6IGNvbmZpZy5jbG91ZGZyb250Py5mdW5jdGlvbiBhcyBhbnksXG4gICAgICBlcnJvclJlc3BvbnNlczogY29uZmlnLmNsb3VkZnJvbnQ/LmVycm9yUmVzcG9uc2VzXG4gICAgfVxuICAgIGlmIChjb25maWcucGlwZWxpbmUpIHtcbiAgICAgIHN0YWdlUHJvcHMucGlwZWxpbmUgPSB7XG4gICAgICAgIHNvdXJjZVN0YWdlOiB7XG4gICAgICAgICAgY29kZXN0YXJDb25uZWN0aW9uOiBjb25maWcucGlwZWxpbmUuc291cmNlLmNvZGVzdGFyQ29ubmVjdGlvblBhcmFtID8geyBwYXRoOiBjb25maWcucGlwZWxpbmUuc291cmNlLmNvZGVzdGFyQ29ubmVjdGlvblBhcmFtIH0gOiBjb25maWcucGlwZWxpbmUuc291cmNlLmNvZGVzdGFyQ29ubmVjdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICAgcmVwb093bmVyOiBjb25maWcucGlwZWxpbmUuc291cmNlLm93bmVyLFxuICAgICAgICAgIHJlcG86IGNvbmZpZy5waXBlbGluZS5zb3VyY2UucmVwbyxcbiAgICAgICAgICBicmFuY2g6IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuYnJhbmNoLFxuICAgICAgICAgIGZ1bGxDbG9uZTogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5mdWxsQ2xvbmVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy5waXBlbGluZS5idWlsZCkge1xuICAgICAgICBzdGFnZVByb3BzLnBpcGVsaW5lLmJ1aWxkU3RhZ2UgPSB7XG4gICAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IGNvbmZpZy5waXBlbGluZS5idWlsZC5lbnZpcm9ubWVudFZhcmlhYmxlc1xuICAgICAgICB9O1xuICAgICAgICBzdGFnZVByb3BzLnBpcGVsaW5lLmNvZGVCdWlsZFByb2plY3QgPSB7XG4gICAgICAgICAgYnVpbGRJbWFnZTogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmJ1aWxkSW1hZ2UsXG4gICAgICAgICAgYnVpbGRJbWFnZUlkOiBjb25maWcucGlwZWxpbmUuYnVpbGQuYnVpbGRJbWFnZUlkLFxuICAgICAgICAgIGJ1aWxkSW1hZ2VOb2RlSlM6IGNvbmZpZy5waXBlbGluZS5idWlsZC5idWlsZEltYWdlTm9kZUpTLFxuICAgICAgICAgIGJ1aWxkU3BlYzogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmJ1aWxkU3BlYyxcbiAgICAgICAgICBjb21wdXRlVHlwZTogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmNvbXB1dGVUeXBlLFxuICAgICAgICAgIGVjckJ1aWxkSW1hZ2U6IGNvbmZpZy5waXBlbGluZS5idWlsZC5idWlsZEltYWdlRWNyLFxuICAgICAgICAgIHNzbVBhcmFtZXRlcnM6IGNvbmZpZy5waXBlbGluZS5idWlsZC5zc21QYXJhbWV0ZXJzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV3IFdlYlN0YXRpY1NlcnZlcmxlc3NTdGFnZShhcHAsIGNvbmZpZy50eXBlLCBzdGFnZVByb3BzKTtcblxuICAgIHJldHVybiBhcHAuc3ludGgoKTtcbiAgfSk7XG5cbiAgc3dpdGNoIChjbWQpIHtcbiAgICAvLyBjYXNlICdib290c3RyYXAnOlxuICAgIC8vICAgYXdhaXQgY2RrLmJvb3RzdHJhcChCb290c3RyYXBFbnZpcm9ubWVudHMuZnJvbUxpc3QoW2Bhd3M6Ly8ke3Byb2Nlc3MuZW52LkNES19ERUZBVUxUX0FDQ09VTlR9LyR7Y29uZmlnLnJlZ2lvbn1gXSkpO1xuICAgIC8vICAgYnJlYWs7XG4gICAgY2FzZSAnZGVwbG95JzpcbiAgICBjYXNlICdkZXN0cm95JzpcbiAgICBjYXNlICdkaWZmJzpcbiAgICBjYXNlICdkcmlmdCc6XG4gICAgY2FzZSAncm9sbGJhY2snOlxuICAgIGNhc2UgJ3N5bnRoJzpcbiAgICAgIGF3YWl0IGNka1tjbWRdKGN4KTtcbiAgICAgIGJyZWFrO1xuICB9XG59XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXN0YXRpYy1zZXJ2ZXJsZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS93ZWItc3RhdGljLXNlcnZlcmxlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU8vQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSx3QkFBd0IsRUFBaUMsTUFBTSwwQ0FBMEMsQ0FBQztBQTREbkgsTUFBTSxVQUFVLFlBQVksQ0FBSSxHQUFHLE9BQXlCO0lBQzFELFNBQVMsU0FBUyxDQUFJLE1BQVMsRUFBRSxNQUFzQjtRQUNyRCxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUE2QixDQUFDO1FBQ3hELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFnQixDQUE0QixFQUFFLENBQUM7WUFDM0UsTUFBTSxNQUFNLEdBQUksTUFBa0MsQ0FBQyxHQUFhLENBQUMsQ0FBQztZQUNsRSxNQUFNLE1BQU0sR0FBSSxNQUFrQyxDQUFDLEdBQWEsQ0FBQyxDQUFDO1lBQ2xFLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzttQkFDcEUsTUFBTSxLQUFLLElBQUksSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQy9FLE1BQU0sQ0FBQyxHQUFhLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQW9DLENBQUMsQ0FBQztZQUNsRixDQUFDO2lCQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLENBQUMsR0FBYSxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUN2QyxFQUFPLENBQ0gsQ0FBQztBQUNULENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUFDLEdBQWUsRUFBRSxNQUFvQztJQUNuRyxNQUFNLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFCLE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUN2RCxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFvRDtZQUNsRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDMUIsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVTtZQUN4RCxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0YsVUFBVSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUMzQixVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNyRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUztZQUNuSCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNO1lBQzFMLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLFNBQVM7WUFDdkMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVO1lBQ2pELHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxlQUFlO1lBQ3RKLDBCQUEwQixFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUscUJBQXFCO1lBQ3BFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxJQUFJLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDakcsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUTtnQkFDaEMsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLENBQUM7YUFDaEQsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFlO1lBQ3RDLGNBQWMsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLGNBQWM7U0FDbEQsQ0FBQTtRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxRQUFRLEdBQUc7Z0JBQ3BCLFdBQVcsRUFBRTtvQkFDWCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsa0JBQTRCO29CQUNuTCxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSztvQkFDdkMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ2pDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNO29CQUNyQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUztpQkFDNUM7YUFDRixDQUFBO1lBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMxQixVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRztvQkFDL0Isb0JBQW9CLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsb0JBQW9CO2lCQUNqRSxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUc7b0JBQ3JDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVO29CQUM1QyxZQUFZLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDaEQsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO29CQUN4RCxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUztvQkFDMUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVc7b0JBQzlDLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhO29CQUNsRCxhQUFhLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYTtpQkFDbkQsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUzRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDWixvQkFBb0I7UUFDcEIsd0hBQXdIO1FBQ3hILFdBQVc7UUFDWCxLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssT0FBTztZQUNWLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLE1BQU07SUFDVixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0ICogYXMgY29yZSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFRvb2xraXQgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgeyBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IElCdWlsZEltYWdlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgeyBDbG91ZEZyb250RXJyb3JSZXNwb25zZSwgQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RzIH0gZnJvbSAnLi4vY29uc3RydWN0cy9jbG91ZGZyb250LmpzJztcbmltcG9ydCB7IENvZGVCdWlsZEltYWdlSWQsIEVjckJ1aWxkSW1hZ2UsIENvZGVCdWlsZFNzbVBhcmFtZXRlciwgQ29kZUJ1aWxkQ29tcHV0ZVR5cGUsIENvZGVCdWlsZE5vZGVKcywgRW52aXJvbm1lbnRWYXJpYWJsZXMgfSBmcm9tICcuLi9jb25zdHJ1Y3RzL2NvZGVidWlsZC50cyc7XG5pbXBvcnQgdHlwZSB7IEV2b3N5bnRoQXBwQ29uZmlnLCBDZGtDb21tYW5kLCBFdm9zeW50aEFwcFR5cGUgfSBmcm9tICcuL2V2b3N5bnRoLnRzJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGcm9udEZ1bmN0aW9uRXZlbnRUeXBlLCBDc3BIZWFkZXJzLCBVVUlELCBBV1NNYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5IH0gZnJvbSAnLi4vdHlwZXMuZC50cyc7XG5pbXBvcnQgeyBnZXRFbnYgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5pbXBvcnQgeyBXZWJTdGF0aWNTZXJ2ZXJsZXNzU3RhZ2UsIFdlYlN0YXRpY1NlcnZlcmxlc3NTdGFnZVByb3BzIH0gZnJvbSAnLi4vc3RhZ2VzL3dlYi1zdGF0aWMtc2VydmVybGVzcy1zdGFnZS5qcyc7XG5pbXBvcnQgdHlwZSB7IERlZXBQYXJ0aWFsIH0gZnJvbSAnLi4vdHlwZXMuZC50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnRG5zUHJvcHMge1xuICByZWNvcmQ6IHN0cmluZztcbiAgem9uZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZ1NlY3VyaXR5UHJvcHMge1xuICBiYXNpY0F1dGg/OiBzdHJpbmc7XG4gIGJhc2ljQXV0aFBhcmFtPzogc3RyaW5nO1xuICB3ZWJBY2w/OiBzdHJpbmcgfCBib29sZWFuO1xuICB3ZWJBY2xQYXJhbT86IHN0cmluZyB8IHsgcGF0aDogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnQ2xvdWRGcm9udFByb3BzIHtcbiAgcmVzcG9uc2VIZWFkZXJzPzogQVdTTWFuYWdlZFJlc3BvbnNlSGVhZGVyc1BvbGljeSB8IFVVSUQgfCBmYWxzZTtcbiAgcmVzcG9uc2VIZWFkZXJzUGFyYW0/OiBzdHJpbmc7XG4gIHJlc3BvbnNlSGVhZGVyc1BvbGljeT86IFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzO1xuICBjc3BIZWFkZXJzPzogQ3NwSGVhZGVycyB8IHN0cmluZztcbiAgcmVkaXJlY3RzPzogQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RzO1xuICBmdW5jdGlvbj86IHN0cmluZyB8IHtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgZXZlbnRUeXBlOiBDbG91ZEZyb250RnVuY3Rpb25FdmVudFR5cGVbXTtcbiAgfSxcbiAgZXJyb3JSZXNwb25zZXM/OiBDbG91ZEZyb250RXJyb3JSZXNwb25zZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnUGlwZWxpbmVTb3VyY2VQcm9wcyB7XG4gIGNvZGVzdGFyQ29ubmVjdGlvbj86IHN0cmluZztcbiAgY29kZXN0YXJDb25uZWN0aW9uUGFyYW0/OiBzdHJpbmc7XG4gIG93bmVyOiAnZXZva2Vncm91cCcgfCAnbWVsdG1lZGlhJyB8IChzdHJpbmcgJiB7fSk7XG4gIHJlcG86IHN0cmluZztcbiAgYnJhbmNoOiBzdHJpbmc7XG4gIGZ1bGxDbG9uZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnUGlwZWxpbmVCdWlsZFByb3BzIHtcbiAgYnVpbGRTcGVjPzogc3RyaW5nIHwgb2JqZWN0O1xuICBidWlsZEltYWdlPzogSUJ1aWxkSW1hZ2U7XG4gIGJ1aWxkSW1hZ2VFY3I/OiBFY3JCdWlsZEltYWdlO1xuICBidWlsZEltYWdlTm9kZUpTPzogQ29kZUJ1aWxkTm9kZUpzO1xuICBidWlsZEltYWdlSWQ/OiBDb2RlQnVpbGRJbWFnZUlkO1xuICBjb21wdXRlVHlwZT86IENvZGVCdWlsZENvbXB1dGVUeXBlO1xuICBlbnZpcm9ubWVudFZhcmlhYmxlcz86IEVudmlyb25tZW50VmFyaWFibGVzO1xuICBzc21QYXJhbWV0ZXJzPzogQ29kZUJ1aWxkU3NtUGFyYW1ldGVyW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJTdGF0aWNTZXJ2ZXJsZXNzQXBwQ29uZmlnIGV4dGVuZHMgRXZvc3ludGhBcHBDb25maWcge1xuICB0eXBlOiBFeHRyYWN0PEV2b3N5bnRoQXBwVHlwZSwgJ3dlYi1zdGF0aWMtc2VydmVybGVzcyc+LFxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBkbnM6IEFwcENvbmZpZ0Ruc1Byb3BzLFxuICBzZWN1cml0eT86IEFwcENvbmZpZ1NlY3VyaXR5UHJvcHMsXG4gIGNsb3VkZnJvbnQ/OiBBcHBDb25maWdDbG91ZEZyb250UHJvcHMsXG4gIHBpcGVsaW5lPzoge1xuICAgIHNvdXJjZTogQXBwQ29uZmlnUGlwZWxpbmVTb3VyY2VQcm9wcyxcbiAgICBidWlsZD86IEFwcENvbmZpZ1BpcGVsaW5lQnVpbGRQcm9wc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUNvbmZpZ3M8VD4oLi4uY29uZmlnczogRGVlcFBhcnRpYWw8VD5bXSk6IFQge1xuICBmdW5jdGlvbiBkZWVwTWVyZ2U8VT4odGFyZ2V0OiBVLCBzb3VyY2U6IERlZXBQYXJ0aWFsPFU+KTogVSB7XG4gICAgY29uc3QgcmVzdWx0ID0geyAuLi50YXJnZXQgfSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzb3VyY2UgYXMgb2JqZWN0KSBhcyAoa2V5b2YgdHlwZW9mIHNvdXJjZSlbXSkge1xuICAgICAgY29uc3Qgc3JjVmFsID0gKHNvdXJjZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5IGFzIHN0cmluZ107XG4gICAgICBjb25zdCB0Z3RWYWwgPSAodGFyZ2V0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXkgYXMgc3RyaW5nXTtcbiAgICAgIGlmIChzcmNWYWwgIT09IG51bGwgJiYgdHlwZW9mIHNyY1ZhbCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoc3JjVmFsKVxuICAgICAgICAgICYmIHRndFZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdGd0VmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh0Z3RWYWwpKSB7XG4gICAgICAgIHJlc3VsdFtrZXkgYXMgc3RyaW5nXSA9IGRlZXBNZXJnZSh0Z3RWYWwsIHNyY1ZhbCBhcyBEZWVwUGFydGlhbDx0eXBlb2YgdGd0VmFsPik7XG4gICAgICB9IGVsc2UgaWYgKHNyY1ZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlc3VsdFtrZXkgYXMgc3RyaW5nXSA9IHNyY1ZhbDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCBhcyBVO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZ3MucmVkdWNlPFQ+KFxuICAgIChhY2MsIGNvbmZpZykgPT4gZGVlcE1lcmdlKGFjYywgY29uZmlnKSxcbiAgICB7fSBhcyBUXG4gICkgYXMgVDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldlYlN0YXRpY1NlcnZlcmxlc3NBcHAoY21kOiBDZGtDb21tYW5kLCBjb25maWc6IFdlYlN0YXRpY1NlcnZlcmxlc3NBcHBDb25maWcpIHtcbiAgY29uc3QgY2RrID0gbmV3IFRvb2xraXQoKTtcbiAgY29uc3QgY3ggPSBhd2FpdCBjZGsuZnJvbUFzc2VtYmx5QnVpbGRlcihhc3luYyAocHJvcHMpID0+IHtcbiAgICBjb25zdCBhcHAgPSBuZXcgY29yZS5BcHAoe1xuICAgICAgb3V0ZGlyOiBqb2luKHByb2Nlc3MuY3dkKCksICcuZXZvc3ludGgnKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YWdlUHJvcHM6IFdlYlN0YXRpY1NlcnZlcmxlc3NTdGFnZVByb3BzICYgY29yZS5TdGFnZVByb3BzID0ge1xuICAgICAgZW52OiBnZXRFbnYoY29uZmlnLnJlZ2lvbiksXG4gICAgICBzdGFnZU5hbWU6IGAke2NvbmZpZy5uYW1lfSR7Y29uZmlnLmVudlR5cGUgPyBgLSR7Y29uZmlnLmVudlR5cGV9YCA6ICcnfWAsXG4gICAgICB0YWdzOiBjb25maWcudGFncyxcbiAgICAgIGVudlR5cGU6IGNvbmZpZy5lbnZUeXBlID09PSAncHJvZCcgPyAnUFJPRCcgOiAnTk9UX1BST0QnLFxuICAgICAgZGVzY3JpcHRpb246IGAke2NvbmZpZy5kZXNjcmlwdGlvbn0ke2NvbmZpZy5lbnZUeXBlID8gYCAke2NvbmZpZy5lbnZUeXBlLnRvVXBwZXJDYXNlKCl9YCA6ICcnfWAsXG4gICAgICBob3N0ZWRab25lOiBjb25maWcuZG5zLnpvbmUsXG4gICAgICBkb21haW5OYW1lOiBgJHtjb25maWcuZG5zLnJlY29yZH0uJHtjb25maWcuZG5zLnpvbmV9YCxcbiAgICAgIGJhc2ljQXV0aDogY29uZmlnLnNlY3VyaXR5Py5iYXNpY0F1dGhQYXJhbSA/IHsgcGF0aDogY29uZmlnLnNlY3VyaXR5Py5iYXNpY0F1dGhQYXJhbSB9IDogY29uZmlnLnNlY3VyaXR5Py5iYXNpY0F1dGgsXG4gICAgICB3ZWJBY2w6IGNvbmZpZy5zZWN1cml0eT8ud2ViQWNsUGFyYW0gPyAoY29uZmlnLnNlY3VyaXR5LndlYkFjbFBhcmFtIGFzIGFueSkucGF0aCA/IGNvbmZpZy5zZWN1cml0eS53ZWJBY2xQYXJhbSA6IHsgcGF0aDogY29uZmlnLnNlY3VyaXR5LndlYkFjbFBhcmFtIGFzIHN0cmluZyB9IDogY29uZmlnLnNlY3VyaXR5Py53ZWJBY2wsXG4gICAgICByZWRpcmVjdHM6IGNvbmZpZy5jbG91ZGZyb250Py5yZWRpcmVjdHMsXG4gICAgICByZXNwb25zZUNzcEhlYWRlcnM6IGNvbmZpZy5jbG91ZGZyb250Py5jc3BIZWFkZXJzLFxuICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5OiBjb25maWcuY2xvdWRmcm9udD8ucmVzcG9uc2VIZWFkZXJzUGFyYW0gPyB7IHBhdGg6IGNvbmZpZy5jbG91ZGZyb250LnJlc3BvbnNlSGVhZGVyc1BhcmFtIH0gOiBjb25maWcuY2xvdWRmcm9udD8ucmVzcG9uc2VIZWFkZXJzLFxuICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM6IGNvbmZpZy5jbG91ZGZyb250Py5yZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gICAgICBjbG91ZGZyb250RnVuY3Rpb246IGNvbmZpZy5jbG91ZGZyb250Py5mdW5jdGlvbiAmJiB0eXBlb2YgY29uZmlnLmNsb3VkZnJvbnQuZnVuY3Rpb24gPT0gJ3N0cmluZycgPyB7XG4gICAgICAgIGNvZGU6IGNvbmZpZy5jbG91ZGZyb250LmZ1bmN0aW9uLFxuICAgICAgICBldmVudFR5cGU6IFsnVklFV0VSX1JFUVVFU1QnLCdWSUVXRVJfUkVTUE9OU0UnXSxcbiAgICAgIH0gOiBjb25maWcuY2xvdWRmcm9udD8uZnVuY3Rpb24gYXMgYW55LFxuICAgICAgZXJyb3JSZXNwb25zZXM6IGNvbmZpZy5jbG91ZGZyb250Py5lcnJvclJlc3BvbnNlc1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnBpcGVsaW5lKSB7XG4gICAgICBzdGFnZVByb3BzLnBpcGVsaW5lID0ge1xuICAgICAgICBzb3VyY2VTdGFnZToge1xuICAgICAgICAgIGNvZGVzdGFyQ29ubmVjdGlvbjogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5jb2Rlc3RhckNvbm5lY3Rpb25QYXJhbSA/IHsgcGF0aDogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5jb2Rlc3RhckNvbm5lY3Rpb25QYXJhbSB9IDogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5jb2Rlc3RhckNvbm5lY3Rpb24gYXMgc3RyaW5nLFxuICAgICAgICAgIHJlcG9Pd25lcjogY29uZmlnLnBpcGVsaW5lLnNvdXJjZS5vd25lcixcbiAgICAgICAgICByZXBvOiBjb25maWcucGlwZWxpbmUuc291cmNlLnJlcG8sXG4gICAgICAgICAgYnJhbmNoOiBjb25maWcucGlwZWxpbmUuc291cmNlLmJyYW5jaCxcbiAgICAgICAgICBmdWxsQ2xvbmU6IGNvbmZpZy5waXBlbGluZS5zb3VyY2UuZnVsbENsb25lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb25maWcucGlwZWxpbmUuYnVpbGQpIHtcbiAgICAgICAgc3RhZ2VQcm9wcy5waXBlbGluZS5idWlsZFN0YWdlID0ge1xuICAgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiBjb25maWcucGlwZWxpbmUuYnVpbGQuZW52aXJvbm1lbnRWYXJpYWJsZXNcbiAgICAgICAgfTtcbiAgICAgICAgc3RhZ2VQcm9wcy5waXBlbGluZS5jb2RlQnVpbGRQcm9qZWN0ID0ge1xuICAgICAgICAgIGJ1aWxkSW1hZ2U6IGNvbmZpZy5waXBlbGluZS5idWlsZC5idWlsZEltYWdlLFxuICAgICAgICAgIGJ1aWxkSW1hZ2VJZDogY29uZmlnLnBpcGVsaW5lLmJ1aWxkLmJ1aWxkSW1hZ2VJZCxcbiAgICAgICAgICBidWlsZEltYWdlTm9kZUpTOiBjb25maWcucGlwZWxpbmUuYnVpbGQuYnVpbGRJbWFnZU5vZGVKUyxcbiAgICAgICAgICBidWlsZFNwZWM6IGNvbmZpZy5waXBlbGluZS5idWlsZC5idWlsZFNwZWMsXG4gICAgICAgICAgY29tcHV0ZVR5cGU6IGNvbmZpZy5waXBlbGluZS5idWlsZC5jb21wdXRlVHlwZSxcbiAgICAgICAgICBlY3JCdWlsZEltYWdlOiBjb25maWcucGlwZWxpbmUuYnVpbGQuYnVpbGRJbWFnZUVjcixcbiAgICAgICAgICBzc21QYXJhbWV0ZXJzOiBjb25maWcucGlwZWxpbmUuYnVpbGQuc3NtUGFyYW1ldGVyc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIG5ldyBXZWJTdGF0aWNTZXJ2ZXJsZXNzU3RhZ2UoYXBwLCBjb25maWcudHlwZSwgc3RhZ2VQcm9wcyk7XG5cbiAgICByZXR1cm4gYXBwLnN5bnRoKCk7XG4gIH0pO1xuXG4gIHN3aXRjaCAoY21kKSB7XG4gICAgLy8gY2FzZSAnYm9vdHN0cmFwJzpcbiAgICAvLyAgIGF3YWl0IGNkay5ib290c3RyYXAoQm9vdHN0cmFwRW52aXJvbm1lbnRzLmZyb21MaXN0KFtgYXdzOi8vJHtwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5UfS8ke2NvbmZpZy5yZWdpb259YF0pKTtcbiAgICAvLyAgIGJyZWFrO1xuICAgIGNhc2UgJ2RlcGxveSc6XG4gICAgY2FzZSAnZGVzdHJveSc6XG4gICAgY2FzZSAnZGlmZic6XG4gICAgY2FzZSAnZHJpZnQnOlxuICAgIGNhc2UgJ3JvbGxiYWNrJzpcbiAgICBjYXNlICdzeW50aCc6XG4gICAgICBhd2FpdCBjZGtbY21kXShjeCk7XG4gICAgICBicmVhaztcbiAgfVxufVxuIl19
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Environment } from "aws-cdk-lib";
2
2
  export * from './lib/tags.js';
3
3
  export * from './cli/index.js';
4
+ export type * from './types.d.ts';
4
5
  interface GetEnvParams {
5
6
  account?: number | string;
6
7
  region?: string;
package/dist/index.js CHANGED
@@ -24,4 +24,4 @@ export function getEnv(env) {
24
24
  }
25
25
  return { account, region };
26
26
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQVUvQixNQUFNLFVBQVUsTUFBTSxDQUFDLEdBQWtEO0lBQ3ZFLElBQUksT0FBTyxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO0lBQzVELElBQUksTUFBTSxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksV0FBVyxDQUFDO0lBQ25FLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixRQUFRLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLEdBQUcsR0FBRyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsTUFBTTtZQUNSO2dCQUNFLE9BQU8sR0FBSSxHQUFtQixDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQzdDLE1BQU0sR0FBSSxHQUFtQixDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUM7Z0JBQy9DLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGkvaW5kZXguanMnO1xuXG5pbnRlcmZhY2UgR2V0RW52UGFyYW1zIHsgXG4gIGFjY291bnQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gIHJlZ2lvbj86IHN0cmluZzsgXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW52KHJlZ2lvbj86IHN0cmluZyk6IEVudmlyb25tZW50O1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudihhY2NvdW50Pzogc3RyaW5nIHwgbnVtYmVyKTogRW52aXJvbm1lbnQ7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW52KHsgYWNjb3VudCwgcmVnaW9uIH06IEdldEVudlBhcmFtcyk6IEVudmlyb25tZW50O1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudihlbnY/OiBFbnZpcm9ubWVudCk6IEVudmlyb25tZW50O1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudihlbnY/OiBzdHJpbmcgfCBudW1iZXIgfCBHZXRFbnZQYXJhbXMgfCBFbnZpcm9ubWVudCkge1xuICBsZXQgYWNjb3VudDogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCB8fCAnJztcbiAgbGV0IHJlZ2lvbjogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OIHx8ICd1cy1lYXN0LTEnO1xuICBpZiAoZW52KSB7XG4gICAgc3dpdGNoICh0eXBlb2YgZW52KSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBhY2NvdW50ID0gZW52LnRvU3RyaW5nKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgaWYgKC9eXFxkKyQvLnRlc3QoZW52KSkge1xuICAgICAgICAgIGFjY291bnQgPSBlbnY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVnaW9uID0gZW52O1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYWNjb3VudCA9IChlbnYgYXMgRW52aXJvbm1lbnQpLmFjY291bnQgPz8gJyc7XG4gICAgICAgIHJlZ2lvbiA9IChlbnYgYXMgRW52aXJvbm1lbnQpLnJlZ2lvbiA/PyByZWdpb247XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBhY2NvdW50LCByZWdpb24gfTtcbn0iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQVcvQixNQUFNLFVBQVUsTUFBTSxDQUFDLEdBQWtEO0lBQ3ZFLElBQUksT0FBTyxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO0lBQzVELElBQUksTUFBTSxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksV0FBVyxDQUFDO0lBQ25FLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixRQUFRLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLEdBQUcsR0FBRyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsTUFBTTtZQUNSO2dCQUNFLE9BQU8sR0FBSSxHQUFtQixDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQzdDLE1BQU0sR0FBSSxHQUFtQixDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUM7Z0JBQy9DLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGkvaW5kZXguanMnO1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL3R5cGVzLmQudHMnO1xuXG5pbnRlcmZhY2UgR2V0RW52UGFyYW1zIHsgXG4gIGFjY291bnQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gIHJlZ2lvbj86IHN0cmluZzsgXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW52KHJlZ2lvbj86IHN0cmluZyk6IEVudmlyb25tZW50O1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudihhY2NvdW50Pzogc3RyaW5nIHwgbnVtYmVyKTogRW52aXJvbm1lbnQ7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW52KHsgYWNjb3VudCwgcmVnaW9uIH06IEdldEVudlBhcmFtcyk6IEVudmlyb25tZW50O1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudihlbnY/OiBFbnZpcm9ubWVudCk6IEVudmlyb25tZW50O1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudihlbnY/OiBzdHJpbmcgfCBudW1iZXIgfCBHZXRFbnZQYXJhbXMgfCBFbnZpcm9ubWVudCkge1xuICBsZXQgYWNjb3VudDogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCB8fCAnJztcbiAgbGV0IHJlZ2lvbjogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OIHx8ICd1cy1lYXN0LTEnO1xuICBpZiAoZW52KSB7XG4gICAgc3dpdGNoICh0eXBlb2YgZW52KSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBhY2NvdW50ID0gZW52LnRvU3RyaW5nKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgaWYgKC9eXFxkKyQvLnRlc3QoZW52KSkge1xuICAgICAgICAgIGFjY291bnQgPSBlbnY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVnaW9uID0gZW52O1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYWNjb3VudCA9IChlbnYgYXMgRW52aXJvbm1lbnQpLmFjY291bnQgPz8gJyc7XG4gICAgICAgIHJlZ2lvbiA9IChlbnYgYXMgRW52aXJvbm1lbnQpLnJlZ2lvbiA/PyByZWdpb247XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBhY2NvdW50LCByZWdpb24gfTtcbn0iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inizioevoke/evosynth",
3
- "version": "2.2.5",
3
+ "version": "2.2.6",
4
4
  "author": "",
5
5
  "license": "ISC",
6
6
  "description": "",
package/readme.md CHANGED
@@ -92,9 +92,9 @@ export default async function(): Promise<WebStaticServerlessAppConfig> {
92
92
 
93
93
  ```typescript
94
94
  // .evosynth.dev.ts
95
- import type { WebStaticServerlessAppConfig } from '@inizioevoke/evosynth';
95
+ import { mergeConfigs, type WebStaticServerlessAppConfig, type DeepPartial } from '@inizioevoke/evosynth';
96
96
 
97
- const config: Omit<WebStaticServerlessAppConfig, 'dns'> = {
97
+ const config: DeepPartial<WebStaticServerlessAppConfig> = {
98
98
  type: 'web-static-serverless',
99
99
  name: 'my-project',
100
100
  description: 'My Project',
@@ -103,6 +103,9 @@ const config: Omit<WebStaticServerlessAppConfig, 'dns'> = {
103
103
  Account: 'Account Name',
104
104
  Brand: 'Brand Name'
105
105
  },
106
+ dns: {
107
+ zone: 'evodev.net'
108
+ },
106
109
  security: {
107
110
  basicAuthParam: '/evosynth/web/security/basicauth',
108
111
  webAclParam: '/evosynth/web/security/webacl'
@@ -111,46 +114,39 @@ const config: Omit<WebStaticServerlessAppConfig, 'dns'> = {
111
114
  source: {
112
115
  codestarConnectionParam: '/evosynth/bitbucket/codeconnection',
113
116
  owner: 'evokegroup',
114
- repo: 'my-project',
115
- branch: ''
117
+ repo: 'my-project'
116
118
  }
117
119
  }
118
120
  };
119
121
 
120
122
  // dev environment
121
123
  export async function dev(): Promise<WebStaticServerlessAppConfig> {
122
- return {
123
- ...config,
124
+ return mergeConfigs<WebStaticServerlessAppConfig>(config, {
124
125
  envType: 'dev',
125
126
  dns: {
126
- record: 'my-project.dev.client',
127
- zone: 'evodev.net'
127
+ record: 'my-project.dev.client'
128
128
  },
129
129
  pipeline: {
130
130
  source: {
131
- ...config.pipeline!.source,
132
131
  branch: 'develop'
133
132
  }
134
133
  }
135
- }
134
+ });
136
135
  }
137
136
 
138
137
  // uat environment
139
138
  export async function uat(): Promise<WebStaticServerlessAppConfig> {
140
- return {
141
- ...config,
139
+ return mergeConfigs<WebStaticServerlessAppConfig>(config, {
142
140
  envType: 'uat',
143
141
  dns: {
144
- record: 'my-project.uat.client',
145
- zone: 'evodev.net'
142
+ record: 'my-project.uat.client'
146
143
  },
147
144
  pipeline: {
148
145
  source: {
149
- ...config.pipeline!.source,
150
146
  branch: 'uat'
151
147
  }
152
148
  }
153
- }
149
+ });
154
150
  }
155
151
  ```
156
152
 
@@ -1,13 +1,6 @@
1
- import type { WebStaticServerlessAppConfig } from '@inizioevoke/evosynth';
1
+ import { mergeConfigs, type WebStaticServerlessAppConfig, type DeepPartial } from '@inizioevoke/evosynth';
2
2
 
3
- // import CSP headers from an external typescript/javascript file
4
- // import cspHeaders from './csp';
5
- // OR import from a CSV file
6
- // import { readFile } from 'node:fs/promises';
7
- // import { join } from 'node:path';
8
- // const cspHeaders = await readFile(join(import.meta.dirname, 'csp.csv'), 'utf8');
9
-
10
- const config: Omit<WebStaticServerlessAppConfig, 'dns'> = {
3
+ const config: DeepPartial<WebStaticServerlessAppConfig> = {
11
4
  type: 'web-static-serverless',
12
5
  name: 'my-project',
13
6
  description: 'My Project',
@@ -16,19 +9,8 @@ const config: Omit<WebStaticServerlessAppConfig, 'dns'> = {
16
9
  Account: 'Account Name',
17
10
  Brand: 'Brand Name'
18
11
  },
19
- cloudfront: {
20
- redirects: {
21
- paths: {
22
- '/old': '/new/',
23
- '/hello': ['/world/', 302]
24
- }
25
- },
26
- cspHeaders: {
27
- 'default-src': [
28
- "'self'"
29
- ]
30
- },
31
- // cspHeaders: "default-src 'self';"
12
+ dns: {
13
+ zone: 'evodev.net'
32
14
  },
33
15
  security: {
34
16
  basicAuthParam: '/evosynth/web/security/basicauth',
@@ -38,44 +20,37 @@ const config: Omit<WebStaticServerlessAppConfig, 'dns'> = {
38
20
  source: {
39
21
  codestarConnectionParam: '/evosynth/bitbucket/codeconnection',
40
22
  owner: 'evokegroup',
41
- repo: 'my-project',
42
- branch: ''
23
+ repo: 'my-project'
43
24
  }
44
25
  }
45
26
  };
46
27
 
47
28
  // dev environment
48
29
  export async function dev(): Promise<WebStaticServerlessAppConfig> {
49
- return {
50
- ...config,
30
+ return mergeConfigs<WebStaticServerlessAppConfig>(config, {
51
31
  envType: 'dev',
52
32
  dns: {
53
- record: 'my-project.dev.client',
54
- zone: 'evodev.net'
33
+ record: 'my-project.dev.client'
55
34
  },
56
35
  pipeline: {
57
36
  source: {
58
- ...config.pipeline!.source,
59
37
  branch: 'develop'
60
38
  }
61
39
  }
62
- }
40
+ });
63
41
  }
64
42
 
65
43
  // uat environment
66
44
  export async function uat(): Promise<WebStaticServerlessAppConfig> {
67
- return {
68
- ...config,
45
+ return mergeConfigs<WebStaticServerlessAppConfig>(config, {
69
46
  envType: 'uat',
70
47
  dns: {
71
- record: 'my-project.uat.client',
72
- zone: 'evodev.net'
48
+ record: 'my-project.uat.client'
73
49
  },
74
50
  pipeline: {
75
51
  source: {
76
- ...config.pipeline!.source,
77
52
  branch: 'uat'
78
53
  }
79
54
  }
80
- }
55
+ });
81
56
  }
@@ -9,6 +9,7 @@ import type { EvosynthAppConfig, CdkCommand, EvosynthAppType } from './evosynth.
9
9
  import type { CloudFrontFunctionEventType, CspHeaders, UUID, AWSManagedResponseHeadersPolicy } from '../types.d.ts';
10
10
  import { getEnv } from '../index.js';
11
11
  import { WebStaticServerlessStage, WebStaticServerlessStageProps } from '../stages/web-static-serverless-stage.js';
12
+ import type { DeepPartial } from '../types.d.ts';
12
13
 
13
14
  export interface AppConfigDnsProps {
14
15
  record: string;
@@ -67,6 +68,28 @@ export interface WebStaticServerlessAppConfig extends EvosynthAppConfig {
67
68
  }
68
69
  }
69
70
 
71
+ export function mergeConfigs<T>(...configs: DeepPartial<T>[]): T {
72
+ function deepMerge<U>(target: U, source: DeepPartial<U>): U {
73
+ const result = { ...target } as Record<string, unknown>;
74
+ for (const key of Object.keys(source as object) as (keyof typeof source)[]) {
75
+ const srcVal = (source as Record<string, unknown>)[key as string];
76
+ const tgtVal = (target as Record<string, unknown>)[key as string];
77
+ if (srcVal !== null && typeof srcVal === 'object' && !Array.isArray(srcVal)
78
+ && tgtVal !== null && typeof tgtVal === 'object' && !Array.isArray(tgtVal)) {
79
+ result[key as string] = deepMerge(tgtVal, srcVal as DeepPartial<typeof tgtVal>);
80
+ } else if (srcVal !== undefined) {
81
+ result[key as string] = srcVal;
82
+ }
83
+ }
84
+ return result as U;
85
+ }
86
+
87
+ return configs.reduce<T>(
88
+ (acc, config) => deepMerge(acc, config),
89
+ {} as T
90
+ ) as T;
91
+ }
92
+
70
93
  export async function runWebStaticServerlessApp(cmd: CdkCommand, config: WebStaticServerlessAppConfig) {
71
94
  const cdk = new Toolkit();
72
95
  const cx = await cdk.fromAssemblyBuilder(async (props) => {
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ import { Environment } from "aws-cdk-lib";
2
2
 
3
3
  export * from './lib/tags.js';
4
4
  export * from './cli/index.js';
5
+ export type * from './types.d.ts';
5
6
 
6
7
  interface GetEnvParams {
7
8
  account?: number | string;