aws-cdk 2.1005.0 → 2.1007.0

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.
Files changed (178) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_LICENSES +86 -86
  3. package/build-info.json +2 -2
  4. package/db.json.gz +0 -0
  5. package/lib/api/aws-auth/awscli-compatible.js +9 -10
  6. package/lib/api/aws-auth/credential-plugins.js +6 -7
  7. package/lib/api/aws-auth/sdk-logger.js +3 -4
  8. package/lib/api/aws-auth/sdk-provider.js +11 -13
  9. package/lib/api/aws-auth/sdk.js +8 -9
  10. package/lib/api/aws-auth/tracing.js +3 -4
  11. package/lib/api/aws-auth/user-agent.js +4 -5
  12. package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
  13. package/lib/api/bootstrap/bootstrap-environment.js +42 -46
  14. package/lib/api/bootstrap/bootstrap-props.d.ts +1 -1
  15. package/lib/api/bootstrap/bootstrap-props.js +1 -1
  16. package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
  17. package/lib/api/bootstrap/deploy-bootstrap.js +11 -14
  18. package/lib/api/{evaluate-cloudformation-template.d.ts → cloudformation/evaluate-cloudformation-template.d.ts} +4 -8
  19. package/lib/api/{evaluate-cloudformation-template.js → cloudformation/evaluate-cloudformation-template.js} +16 -25
  20. package/lib/api/cloudformation/index.d.ts +4 -0
  21. package/lib/api/cloudformation/index.js +21 -0
  22. package/lib/api/{deployments → cloudformation}/nested-stack-helpers.d.ts +3 -9
  23. package/lib/api/cloudformation/nested-stack-helpers.js +86 -0
  24. package/lib/api/cloudformation/stack-helpers.d.ts +88 -0
  25. package/lib/api/cloudformation/stack-helpers.js +158 -0
  26. package/lib/api/{util → cloudformation}/template-body-parameter.d.ts +3 -2
  27. package/lib/api/cloudformation/template-body-parameter.js +104 -0
  28. package/lib/api/context.js +3 -3
  29. package/lib/api/cxapp/cloud-assembly.d.ts +6 -4
  30. package/lib/api/cxapp/cloud-assembly.js +25 -26
  31. package/lib/api/cxapp/cloud-executable.d.ts +5 -0
  32. package/lib/api/cxapp/cloud-executable.js +9 -10
  33. package/lib/api/cxapp/environments.js +4 -4
  34. package/lib/api/cxapp/exec.d.ts +5 -4
  35. package/lib/api/cxapp/exec.js +76 -72
  36. package/lib/api/deployments/asset-publishing.d.ts +0 -2
  37. package/lib/api/deployments/asset-publishing.js +24 -31
  38. package/lib/api/deployments/assets.d.ts +1 -1
  39. package/lib/api/deployments/assets.js +12 -13
  40. package/lib/api/deployments/{cloudformation.d.ts → cfn-api.d.ts} +5 -102
  41. package/lib/api/deployments/cfn-api.js +438 -0
  42. package/lib/api/deployments/checks.d.ts +1 -1
  43. package/lib/api/deployments/checks.js +12 -13
  44. package/lib/api/deployments/deploy-stack.d.ts +2 -3
  45. package/lib/api/deployments/deploy-stack.js +34 -45
  46. package/lib/api/deployments/deployment-result.js +3 -3
  47. package/lib/api/deployments/deployments.d.ts +3 -3
  48. package/lib/api/deployments/deployments.js +35 -42
  49. package/lib/api/deployments/hotswap-deployments.d.ts +2 -2
  50. package/lib/api/deployments/hotswap-deployments.js +122 -69
  51. package/lib/api/deployments/index.d.ts +1 -2
  52. package/lib/api/deployments/index.js +2 -3
  53. package/lib/api/environment/environment-access.d.ts +2 -2
  54. package/lib/api/environment/environment-access.js +18 -20
  55. package/lib/api/environment/environment-resources.d.ts +1 -1
  56. package/lib/api/environment/environment-resources.js +17 -19
  57. package/lib/api/environment/index.d.ts +1 -0
  58. package/lib/api/environment/index.js +2 -1
  59. package/lib/api/environment/placeholders.js +23 -0
  60. package/lib/api/garbage-collection/garbage-collector.d.ts +1 -1
  61. package/lib/api/garbage-collection/garbage-collector.js +56 -66
  62. package/lib/api/garbage-collection/progress-printer.d.ts +1 -1
  63. package/lib/api/garbage-collection/progress-printer.js +7 -7
  64. package/lib/api/garbage-collection/stack-refresh.d.ts +1 -1
  65. package/lib/api/garbage-collection/stack-refresh.js +12 -15
  66. package/lib/api/hotswap/appsync-mapping-templates.d.ts +3 -3
  67. package/lib/api/hotswap/appsync-mapping-templates.js +25 -22
  68. package/lib/api/hotswap/code-build-projects.d.ts +3 -3
  69. package/lib/api/hotswap/code-build-projects.js +12 -7
  70. package/lib/api/hotswap/common.d.ts +13 -61
  71. package/lib/api/hotswap/common.js +40 -70
  72. package/lib/api/hotswap/ecs-services.d.ts +4 -4
  73. package/lib/api/hotswap/ecs-services.js +38 -21
  74. package/lib/api/hotswap/lambda-functions.d.ts +3 -3
  75. package/lib/api/hotswap/lambda-functions.js +23 -19
  76. package/lib/api/hotswap/s3-bucket-deployments.d.ts +3 -3
  77. package/lib/api/hotswap/s3-bucket-deployments.js +11 -7
  78. package/lib/api/hotswap/stepfunctions-state-machines.d.ts +3 -3
  79. package/lib/api/hotswap/stepfunctions-state-machines.js +8 -4
  80. package/lib/api/logs/find-cloudwatch-logs.js +6 -7
  81. package/lib/api/logs/logs-monitor.js +5 -8
  82. package/lib/api/plugin/plugin.js +6 -10
  83. package/lib/api/resource-import/importer.d.ts +8 -8
  84. package/lib/api/resource-import/importer.js +27 -42
  85. package/lib/api/resource-import/migrator.d.ts +3 -3
  86. package/lib/api/resource-import/migrator.js +6 -6
  87. package/lib/api/settings.d.ts +0 -3
  88. package/lib/api/settings.js +4 -40
  89. package/lib/api/stack-events/stack-activity-monitor.d.ts +1 -1
  90. package/lib/api/stack-events/stack-activity-monitor.js +12 -15
  91. package/lib/api/stack-events/stack-event-poller.js +9 -10
  92. package/lib/api/toolkit-info.d.ts +2 -2
  93. package/lib/api/toolkit-info.js +20 -24
  94. package/lib/{tree.d.ts → api/tree.d.ts} +2 -2
  95. package/lib/api/tree.js +37 -0
  96. package/lib/api/util/rwlock.js +4 -4
  97. package/lib/api/work-graph/work-graph-builder.js +4 -4
  98. package/lib/api/work-graph/work-graph.d.ts +1 -1
  99. package/lib/api/work-graph/work-graph.js +13 -15
  100. package/lib/cli/activity-printer/base.d.ts +2 -2
  101. package/lib/cli/activity-printer/base.js +6 -8
  102. package/lib/cli/activity-printer/current.js +7 -11
  103. package/lib/cli/activity-printer/history.js +2 -3
  104. package/lib/cli/cdk-toolkit.d.ts +16 -19
  105. package/lib/cli/cdk-toolkit.js +118 -74
  106. package/lib/cli/ci-systems.js +2 -3
  107. package/lib/cli/cli-config.js +4 -4
  108. package/lib/cli/cli.js +49 -50
  109. package/lib/cli/convert-to-user-input.js +110 -111
  110. package/lib/{toolkit → cli/io-host}/cli-io-host.d.ts +6 -2
  111. package/lib/cli/io-host/cli-io-host.js +356 -0
  112. package/lib/cli/io-host/index.d.ts +1 -0
  113. package/lib/{toolkit/error.js → cli/io-host/index.js} +2 -2
  114. package/lib/cli/messages.d.ts +1 -1
  115. package/lib/cli/messages.js +2 -3
  116. package/lib/cli/pretty-print-error.d.ts +1 -0
  117. package/lib/cli/pretty-print-error.js +35 -0
  118. package/lib/cli/root-dir.js +4 -4
  119. package/lib/cli/user-configuration.js +57 -14
  120. package/lib/cli/util/npm.js +3 -3
  121. package/lib/cli/util/yargs-helpers.d.ts +1 -1
  122. package/lib/cli/util/yargs-helpers.js +3 -3
  123. package/lib/cli/version.js +4 -4
  124. package/lib/commands/context.js +7 -8
  125. package/lib/commands/diff.d.ts +1 -0
  126. package/lib/commands/diff.js +7 -0
  127. package/lib/commands/init/index.d.ts +1 -0
  128. package/lib/commands/init/index.js +18 -0
  129. package/lib/commands/init/init-hooks.js +63 -0
  130. package/lib/commands/init/init.js +435 -0
  131. package/lib/{os.js → commands/init/os.js} +4 -4
  132. package/lib/{list-stacks.d.ts → commands/list-stacks.d.ts} +1 -1
  133. package/lib/{list-stacks.js → commands/list-stacks.js} +2 -2
  134. package/lib/commands/migrate.js +29 -32
  135. package/lib/context-providers/ami.d.ts +3 -1
  136. package/lib/context-providers/ami.js +8 -8
  137. package/lib/context-providers/availability-zones.d.ts +3 -1
  138. package/lib/context-providers/availability-zones.js +4 -4
  139. package/lib/context-providers/cc-api-provider.d.ts +8 -12
  140. package/lib/context-providers/cc-api-provider.js +94 -66
  141. package/lib/context-providers/endpoint-service-availability-zones.d.ts +3 -1
  142. package/lib/context-providers/endpoint-service-availability-zones.js +6 -6
  143. package/lib/context-providers/hosted-zones.d.ts +3 -1
  144. package/lib/context-providers/hosted-zones.js +11 -11
  145. package/lib/context-providers/index.d.ts +19 -5
  146. package/lib/context-providers/index.js +35 -17
  147. package/lib/context-providers/keys.d.ts +3 -1
  148. package/lib/context-providers/keys.js +8 -8
  149. package/lib/context-providers/load-balancers.js +15 -18
  150. package/lib/context-providers/security-groups.js +10 -12
  151. package/lib/context-providers/ssm-parameters.d.ts +3 -1
  152. package/lib/context-providers/ssm-parameters.js +7 -7
  153. package/lib/context-providers/vpcs.d.ts +3 -1
  154. package/lib/context-providers/vpcs.js +14 -15
  155. package/lib/index.js +124098 -123198
  156. package/lib/init-templates/.init-version.json +1 -1
  157. package/lib/init-templates/.recommended-feature-flags.json +3 -1
  158. package/lib/legacy-exports-source.d.ts +4 -5
  159. package/lib/legacy-exports-source.js +6 -7
  160. package/lib/logging.js +2 -2
  161. package/lib/notices.d.ts +1 -1
  162. package/lib/notices.js +26 -32
  163. package/package.json +29 -29
  164. package/lib/api/deployments/cloudformation.js +0 -597
  165. package/lib/api/deployments/nested-stack-helpers.js +0 -88
  166. package/lib/api/util/placeholders.js +0 -24
  167. package/lib/api/util/template-body-parameter.js +0 -103
  168. package/lib/diff.d.ts +0 -28
  169. package/lib/diff.js +0 -165
  170. package/lib/init-hooks.js +0 -63
  171. package/lib/init.js +0 -437
  172. package/lib/toolkit/cli-io-host.js +0 -353
  173. package/lib/toolkit/error.d.ts +0 -1
  174. package/lib/tree.js +0 -40
  175. /package/lib/api/{util → environment}/placeholders.d.ts +0 -0
  176. /package/lib/{init-hooks.d.ts → commands/init/init-hooks.d.ts} +0 -0
  177. /package/lib/{init.d.ts → commands/init/init.d.ts} +0 -0
  178. /package/lib/{os.d.ts → commands/init/os.d.ts} +0 -0
@@ -1,15 +1,28 @@
1
1
  import * as cxschema from '@aws-cdk/cloud-assembly-schema';
2
+ import type { IoHelper } from '../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
2
3
  import type { SdkProvider } from '../api';
3
4
  import type { Context } from '../api/context';
4
5
  import type { ContextProviderPlugin } from '../api/plugin/context-provider-plugin';
5
- export type ContextProviderFactory = ((sdk: SdkProvider) => ContextProviderPlugin);
6
- export type ProviderMap = {
7
- [name: string]: ContextProviderFactory;
8
- };
6
+ type ContextProviderFactory = ((sdk: SdkProvider, io: IContextProviderMessages) => ContextProviderPlugin);
7
+ export interface IContextProviderMessages {
8
+ /**
9
+ * A message that is presented to users in normal mode of operation.
10
+ *
11
+ * Should be used sparingly. The Context Provider framework already provides useful output by default.
12
+ * This can be uses in exceptionally situations, e.g. if a lookup call is expected to take a long time.
13
+ */
14
+ info(message: string): Promise<void>;
15
+ /**
16
+ * A message that helps users debugging the context provider.
17
+ *
18
+ * Should be used in most cases to note on current action.
19
+ */
20
+ debug(message: string): Promise<void>;
21
+ }
9
22
  /**
10
23
  * Iterate over the list of missing context values and invoke the appropriate providers from the map to retrieve them
11
24
  */
12
- export declare function provideContextValues(missingValues: cxschema.MissingContext[], context: Context, sdk: SdkProvider): Promise<void>;
25
+ export declare function provideContextValues(missingValues: cxschema.MissingContext[], context: Context, sdk: SdkProvider, ioHelper: IoHelper): Promise<void>;
13
26
  /**
14
27
  * Register a context provider
15
28
  *
@@ -28,3 +41,4 @@ export declare function registerPluginContextProvider(name: string, provider: Co
28
41
  * A context provider factory takes an SdkProvider and returns the context provider plugin.
29
42
  */
30
43
  export declare function registerContextProviderFactory(name: string, provider: ContextProviderFactory): void;
44
+ export {};
@@ -16,17 +16,34 @@ const load_balancers_1 = require("./load-balancers");
16
16
  const security_groups_1 = require("./security-groups");
17
17
  const ssm_parameters_1 = require("./ssm-parameters");
18
18
  const vpcs_1 = require("./vpcs");
19
+ const api_1 = require("../../../@aws-cdk/tmp-toolkit-helpers/src/api");
20
+ const private_1 = require("../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private");
19
21
  const context_1 = require("../api/context");
22
+ const environment_1 = require("../api/environment");
20
23
  const plugin_1 = require("../api/plugin");
21
- const placeholders_1 = require("../api/util/placeholders");
22
- const logging_1 = require("../logging");
23
- const error_1 = require("../toolkit/error");
24
+ const io_host_1 = require("../cli/io-host");
24
25
  const util_1 = require("../util");
25
26
  const PLUGIN_PROVIDER_PREFIX = 'plugin';
27
+ class ContextProviderMessages {
28
+ constructor(ioHelper, providerName) {
29
+ this.ioHelper = ioHelper;
30
+ this.providerName = providerName;
31
+ }
32
+ async info(message) {
33
+ return this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0300.msg(message, {
34
+ provider: this.providerName,
35
+ }));
36
+ }
37
+ async debug(message) {
38
+ return this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0301.msg(message, {
39
+ provider: this.providerName,
40
+ }));
41
+ }
42
+ }
26
43
  /**
27
44
  * Iterate over the list of missing context values and invoke the appropriate providers from the map to retrieve them
28
45
  */
29
- async function provideContextValues(missingValues, context, sdk) {
46
+ async function provideContextValues(missingValues, context, sdk, ioHelper) {
30
47
  for (const missingContext of missingValues) {
31
48
  const key = missingContext.key;
32
49
  const providerName = missingContext.provider === cxschema.ContextProvider.PLUGIN
@@ -37,7 +54,7 @@ async function provideContextValues(missingValues, context, sdk) {
37
54
  const plugin = plugin_1.PluginHost.instance.contextProviderPlugins[providerName.substring(PLUGIN_PROVIDER_PREFIX.length + 1)];
38
55
  if (!plugin) {
39
56
  // eslint-disable-next-line max-len
40
- throw new error_1.ContextProviderError(`Unrecognized plugin context provider name: ${missingContext.provider}.`);
57
+ throw new api_1.ContextProviderError(`Unrecognized plugin context provider name: ${missingContext.provider}.`);
41
58
  }
42
59
  factory = () => plugin;
43
60
  }
@@ -45,10 +62,11 @@ async function provideContextValues(missingValues, context, sdk) {
45
62
  factory = availableContextProviders[providerName];
46
63
  if (!factory) {
47
64
  // eslint-disable-next-line max-len
48
- throw new error_1.ContextProviderError(`Unrecognized context provider name: ${missingContext.provider}. You might need to update the toolkit to match the version of the construct library.`);
65
+ throw new api_1.ContextProviderError(`Unrecognized context provider name: ${missingContext.provider}. You might need to update the toolkit to match the version of the construct library.`);
49
66
  }
50
67
  }
51
- const provider = factory(sdk);
68
+ ioHelper = ioHelper ?? io_host_1.CliIoHost.instance().asIoHelper();
69
+ const provider = factory(sdk, new ContextProviderMessages(ioHelper, providerName));
52
70
  let value;
53
71
  try {
54
72
  const environment = missingContext.props.account && missingContext.props.region
@@ -57,7 +75,7 @@ async function provideContextValues(missingValues, context, sdk) {
57
75
  const resolvedEnvironment = environment
58
76
  ? await sdk.resolveEnvironment(environment)
59
77
  : { account: '?', region: '?', name: '?' };
60
- const arns = await (0, placeholders_1.replaceEnvPlaceholders)({
78
+ const arns = await (0, environment_1.replaceEnvPlaceholders)({
61
79
  lookupRoleArn: missingContext.props.lookupRoleArn,
62
80
  }, resolvedEnvironment, sdk);
63
81
  value = await provider.getValue({ ...missingContext.props, lookupRoleArn: arns.lookupRoleArn });
@@ -68,7 +86,7 @@ async function provideContextValues(missingValues, context, sdk) {
68
86
  value = { [cxapi.PROVIDER_ERROR_KEY]: (0, util_1.formatErrorMessage)(e), [context_1.TRANSIENT_CONTEXT_KEY]: true };
69
87
  }
70
88
  context.set(key, value);
71
- (0, logging_1.debug)(`Setting "${key}" context to ${JSON.stringify(value)}`);
89
+ await ioHelper.notify(private_1.IO.DEFAULT_ASSEMBLY_DEBUG.msg(`Setting "${key}" context to ${JSON.stringify(value)}`));
72
90
  }
73
91
  }
74
92
  /**
@@ -96,16 +114,16 @@ function registerContextProviderFactory(name, provider) {
96
114
  availableContextProviders[name] = provider;
97
115
  }
98
116
  const availableContextProviders = {
99
- [cxschema.ContextProvider.AVAILABILITY_ZONE_PROVIDER]: (s) => new availability_zones_1.AZContextProviderPlugin(s),
100
- [cxschema.ContextProvider.SSM_PARAMETER_PROVIDER]: (s) => new ssm_parameters_1.SSMContextProviderPlugin(s),
101
- [cxschema.ContextProvider.HOSTED_ZONE_PROVIDER]: (s) => new hosted_zones_1.HostedZoneContextProviderPlugin(s),
102
- [cxschema.ContextProvider.VPC_PROVIDER]: (s) => new vpcs_1.VpcNetworkContextProviderPlugin(s),
103
- [cxschema.ContextProvider.AMI_PROVIDER]: (s) => new ami_1.AmiContextProviderPlugin(s),
104
- [cxschema.ContextProvider.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER]: (s) => new endpoint_service_availability_zones_1.EndpointServiceAZContextProviderPlugin(s),
117
+ [cxschema.ContextProvider.AVAILABILITY_ZONE_PROVIDER]: (s, io) => new availability_zones_1.AZContextProviderPlugin(s, io),
118
+ [cxschema.ContextProvider.SSM_PARAMETER_PROVIDER]: (s, io) => new ssm_parameters_1.SSMContextProviderPlugin(s, io),
119
+ [cxschema.ContextProvider.HOSTED_ZONE_PROVIDER]: (s, io) => new hosted_zones_1.HostedZoneContextProviderPlugin(s, io),
120
+ [cxschema.ContextProvider.VPC_PROVIDER]: (s, io) => new vpcs_1.VpcNetworkContextProviderPlugin(s, io),
121
+ [cxschema.ContextProvider.AMI_PROVIDER]: (s, io) => new ami_1.AmiContextProviderPlugin(s, io),
122
+ [cxschema.ContextProvider.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER]: (s, io) => new endpoint_service_availability_zones_1.EndpointServiceAZContextProviderPlugin(s, io),
105
123
  [cxschema.ContextProvider.SECURITY_GROUP_PROVIDER]: (s) => new security_groups_1.SecurityGroupContextProviderPlugin(s),
106
124
  [cxschema.ContextProvider.LOAD_BALANCER_PROVIDER]: (s) => new load_balancers_1.LoadBalancerContextProviderPlugin(s),
107
125
  [cxschema.ContextProvider.LOAD_BALANCER_LISTENER_PROVIDER]: (s) => new load_balancers_1.LoadBalancerListenerContextProviderPlugin(s),
108
- [cxschema.ContextProvider.KEY_PROVIDER]: (s) => new keys_1.KeyContextProviderPlugin(s),
126
+ [cxschema.ContextProvider.KEY_PROVIDER]: (s, io) => new keys_1.KeyContextProviderPlugin(s, io),
109
127
  [cxschema.ContextProvider.CC_API_PROVIDER]: (s) => new cc_api_provider_1.CcApiContextProviderPlugin(s),
110
128
  };
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThCQSxvREFvREM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUE3R0QsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFHekQsNENBQXVEO0FBQ3ZELDBDQUEyQztBQUUzQywyREFBa0U7QUFDbEUsd0NBQW1DO0FBQ25DLDRDQUF3RDtBQUN4RCxrQ0FBNkM7QUFLN0MsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUFFeEM7O0dBRUc7QUFDSSxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLGFBQXdDLEVBQ3hDLE9BQWdCLEVBQ2hCLEdBQWdCO0lBQ2hCLEtBQUssTUFBTSxjQUFjLElBQUksYUFBYSxFQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQztRQUUvQixNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTTtZQUM5RSxDQUFDLENBQUMsR0FBRyxzQkFBc0IsSUFBSyxjQUFjLENBQUMsS0FBcUMsQ0FBQyxVQUFVLEVBQUU7WUFDakcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFFNUIsSUFBSSxPQUFPLENBQUM7UUFDWixJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxzQkFBc0IsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxNQUFNLE1BQU0sR0FBRyxtQkFBVSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLE1BQU0s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SUFDbkgsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLCtCQUF3QixDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksNENBQTBCLENBQUMsQ0FBQyxDQUFDO0NBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IEFtaUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vYW1pJztcbmltcG9ydCB7IEFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9hdmFpbGFiaWxpdHktem9uZXMnO1xuaW1wb3J0IHsgQ2NBcGlDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2NjLWFwaS1wcm92aWRlcic7XG5pbXBvcnQgeyBFbmRwb2ludFNlcnZpY2VBWkNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuaW1wb3J0IHsgSG9zdGVkWm9uZUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vaG9zdGVkLXpvbmVzJztcbmltcG9ydCB7IEtleUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4va2V5cyc7XG5pbXBvcnQgeyBMb2FkQmFsYW5jZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4sIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9sb2FkLWJhbGFuY2Vycyc7XG5pbXBvcnQgeyBTZWN1cml0eUdyb3VwQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9zZWN1cml0eS1ncm91cHMnO1xuaW1wb3J0IHsgU1NNQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9zc20tcGFyYW1ldGVycyc7XG5pbXBvcnQgeyBWcGNOZXR3b3JrQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi92cGNzJztcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0IH0gZnJvbSAnLi4vYXBpL2NvbnRleHQnO1xuaW1wb3J0IHsgVFJBTlNJRU5UX0NPTlRFWFRfS0VZIH0gZnJvbSAnLi4vYXBpL2NvbnRleHQnO1xuaW1wb3J0IHsgUGx1Z2luSG9zdCB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luL2NvbnRleHQtcHJvdmlkZXItcGx1Z2luJztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9hcGkvdXRpbC9wbGFjZWhvbGRlcnMnO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tICcuLi9sb2dnaW5nJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC9lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi91dGlsJztcblxuZXhwb3J0IHR5cGUgQ29udGV4dFByb3ZpZGVyRmFjdG9yeSA9ICgoc2RrOiBTZGtQcm92aWRlcikgPT4gQ29udGV4dFByb3ZpZGVyUGx1Z2luKTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyTWFwID0ge1tuYW1lOiBzdHJpbmddOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5fTtcblxuY29uc3QgUExVR0lOX1BST1ZJREVSX1BSRUZJWCA9ICdwbHVnaW4nO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBtaXNzaW5nIGNvbnRleHQgdmFsdWVzIGFuZCBpbnZva2UgdGhlIGFwcHJvcHJpYXRlIHByb3ZpZGVycyBmcm9tIHRoZSBtYXAgdG8gcmV0cmlldmUgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlkZUNvbnRleHRWYWx1ZXMoXG4gIG1pc3NpbmdWYWx1ZXM6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0W10sXG4gIGNvbnRleHQ6IENvbnRleHQsXG4gIHNkazogU2RrUHJvdmlkZXIpIHtcbiAgZm9yIChjb25zdCBtaXNzaW5nQ29udGV4dCBvZiBtaXNzaW5nVmFsdWVzKSB7XG4gICAgY29uc3Qga2V5ID0gbWlzc2luZ0NvbnRleHQua2V5O1xuXG4gICAgY29uc3QgcHJvdmlkZXJOYW1lID0gbWlzc2luZ0NvbnRleHQucHJvdmlkZXIgPT09IGN4c2NoZW1hLkNvbnRleHRQcm92aWRlci5QTFVHSU5cbiAgICAgID8gYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06JHsobWlzc2luZ0NvbnRleHQucHJvcHMgYXMgY3hzY2hlbWEuUGx1Z2luQ29udGV4dFF1ZXJ5KS5wbHVnaW5OYW1lfWBcbiAgICAgIDogbWlzc2luZ0NvbnRleHQucHJvdmlkZXI7XG5cbiAgICBsZXQgZmFjdG9yeTtcbiAgICBpZiAocHJvdmlkZXJOYW1lLnN0YXJ0c1dpdGgoYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06YCkpIHtcbiAgICAgIGNvbnN0IHBsdWdpbiA9IFBsdWdpbkhvc3QuaW5zdGFuY2UuY29udGV4dFByb3ZpZGVyUGx1Z2luc1twcm92aWRlck5hbWUuc3Vic3RyaW5nKFBMVUdJTl9QUk9WSURFUl9QUkVGSVgubGVuZ3RoICsgMSldO1xuICAgICAgaWYgKCFwbHVnaW4pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBVbnJlY29nbml6ZWQgcGx1Z2luIGNvbnRleHQgcHJvdmlkZXIgbmFtZTogJHttaXNzaW5nQ29udGV4dC5wcm92aWRlcn0uYCk7XG4gICAgICB9XG4gICAgICBmYWN0b3J5ID0gKCkgPT4gcGx1Z2luO1xuICAgIH0gZWxzZSB7XG4gICAgICBmYWN0b3J5ID0gYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyc1twcm92aWRlck5hbWVdO1xuICAgICAgaWYgKCFmYWN0b3J5KSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgVW5yZWNvZ25pemVkIGNvbnRleHQgcHJvdmlkZXIgbmFtZTogJHttaXNzaW5nQ29udGV4dC5wcm92aWRlcn0uIFlvdSBtaWdodCBuZWVkIHRvIHVwZGF0ZSB0aGUgdG9vbGtpdCB0byBtYXRjaCB0aGUgdmVyc2lvbiBvZiB0aGUgY29uc3RydWN0IGxpYnJhcnkuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBmYWN0b3J5KHNkayk7XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gbWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCAmJiBtaXNzaW5nQ29udGV4dC5wcm9wcy5yZWdpb25cbiAgICAgICAgPyBjeGFwaS5FbnZpcm9ubWVudFV0aWxzLm1ha2UobWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCwgbWlzc2luZ0NvbnRleHQucHJvcHMucmVnaW9uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICAgICAgICA/IGF3YWl0IHNkay5yZXNvbHZlRW52aXJvbm1lbnQoZW52aXJvbm1lbnQpXG4gICAgICAgIDogeyBhY2NvdW50OiAnPycsIHJlZ2lvbjogJz8nLCBuYW1lOiAnPycgfTtcblxuICAgICAgY29uc3QgYXJucyA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgICBsb29rdXBSb2xlQXJuOiBtaXNzaW5nQ29udGV4dC5wcm9wcy5sb29rdXBSb2xlQXJuLFxuICAgICAgfSwgcmVzb2x2ZWRFbnZpcm9ubWVudCwgc2RrKTtcblxuICAgICAgdmFsdWUgPSBhd2FpdCBwcm92aWRlci5nZXRWYWx1ZSh7IC4uLm1pc3NpbmdDb250ZXh0LnByb3BzLCBsb29rdXBSb2xlQXJuOiBhcm5zLmxvb2t1cFJvbGVBcm4gfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBTZXQgYSBzcGVjaWFsbHkgZm9ybWF0dGVkIHByb3ZpZGVyIHZhbHVlIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWRcbiAgICAgIC8vIGFzIGEgbG9va3VwIGZhaWx1cmUgaW4gdGhlIHRvb2xraXQuXG4gICAgICB2YWx1ZSA9IHsgW2N4YXBpLlBST1ZJREVSX0VSUk9SX0tFWV06IGZvcm1hdEVycm9yTWVzc2FnZShlKSwgW1RSQU5TSUVOVF9DT05URVhUX0tFWV06IHRydWUgfTtcbiAgICB9XG4gICAgY29udGV4dC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgZGVidWcoYFNldHRpbmcgXCIke2tleX1cIiBjb250ZXh0IHRvICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICB9XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGNhbm5vdCByZXVzZSB0aGUgU0RLcyBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogQ29udGV4dFByb3ZpZGVyUGx1Z2luKSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSAoKSA9PiBwcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBwbHVnaW4gcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIoYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06JHtuYW1lfWAsIHByb3ZpZGVyKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXIgZmFjdG9yeVxuICpcbiAqIEEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5IHRha2VzIGFuIFNka1Byb3ZpZGVyIGFuZCByZXR1cm5zIHRoZSBjb250ZXh0IHByb3ZpZGVyIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGV4dFByb3ZpZGVyRmFjdG9yeShuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5KSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSBwcm92aWRlcjtcbn1cblxuY29uc3QgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyczogUHJvdmlkZXJNYXAgPSB7XG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocykgPT4gbmV3IEFaQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlNTTV9QQVJBTUVURVJfUFJPVklERVJdOiAocykgPT4gbmV3IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5IT1NURURfWk9ORV9QUk9WSURFUl06IChzKSA9PiBuZXcgSG9zdGVkWm9uZUNvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5WUENfUFJPVklERVJdOiAocykgPT4gbmV3IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQU1JX1BST1ZJREVSXTogKHMpID0+IG5ldyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuRU5EUE9JTlRfU0VSVklDRV9BVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUl06IChzKSA9PiBuZXcgRW5kcG9pbnRTZXJ2aWNlQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU0VDVVJJVFlfR1JPVVBfUFJPVklERVJdOiAocykgPT4gbmV3IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkxPQURfQkFMQU5DRVJfTElTVEVORVJfUFJPVklERVJdOiAocykgPT4gbmV3IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLktFWV9QUk9WSURFUl06IChzKSA9PiBuZXcgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkNDX0FQSV9QUk9WSURFUl06IChzKSA9PiBuZXcgQ2NBcGlDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG59O1xuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXVFQSxvREF1REM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUF6SkQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFDekQsdUVBQXFGO0FBRXJGLHNGQUE4RTtBQUc5RSw0Q0FBdUQ7QUFDdkQsb0RBQTREO0FBQzVELDBDQUEyQztBQUUzQyw0Q0FBMkM7QUFDM0Msa0NBQTZDO0FBSzdDLE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUFDO0FBbUJ4QyxNQUFNLHVCQUF1QjtJQUkzQixZQUFtQixRQUFrQixFQUFFLFlBQW9CO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQWU7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFlO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDN0QsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FB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QUFDO0lBQ3ZGLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSw0Q0FBMEIsQ0FBQyxDQUFDLENBQUM7Q0FDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHsgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9hbWknO1xuaW1wb3J0IHsgQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2F2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vY2MtYXBpLXByb3ZpZGVyJztcbmltcG9ydCB7IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9lbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9ob3N0ZWQtem9uZXMnO1xuaW1wb3J0IHsgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9rZXlzJztcbmltcG9ydCB7IExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2xvYWQtYmFsYW5jZXJzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NlY3VyaXR5LWdyb3Vwcyc7XG5pbXBvcnQgeyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NzbS1wYXJhbWV0ZXJzJztcbmltcG9ydCB7IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3ZwY3MnO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9AYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzL3NyYy9hcGknO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vLi4vQGF3cy1jZGsvdG1wLXRvb2xraXQtaGVscGVycy9zcmMvYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQgfSBmcm9tICcuLi9hcGkvY29udGV4dCc7XG5pbXBvcnQgeyBUUkFOU0lFTlRfQ09OVEVYVF9LRVkgfSBmcm9tICcuLi9hcGkvY29udGV4dCc7XG5pbXBvcnQgeyByZXBsYWNlRW52UGxhY2Vob2xkZXJzIH0gZnJvbSAnLi4vYXBpL2Vudmlyb25tZW50JztcbmltcG9ydCB7IFBsdWdpbkhvc3QgfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbi9jb250ZXh0LXByb3ZpZGVyLXBsdWdpbic7XG5pbXBvcnQgeyBDbGlJb0hvc3QgfSBmcm9tICcuLi9jbGkvaW8taG9zdCc7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi91dGlsJztcblxudHlwZSBDb250ZXh0UHJvdmlkZXJGYWN0b3J5ID0gKChzZGs6IFNka1Byb3ZpZGVyLCBpbzogSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzKSA9PiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pO1xudHlwZSBQcm92aWRlck1hcCA9IHtbbmFtZTogc3RyaW5nXTogQ29udGV4dFByb3ZpZGVyRmFjdG9yeX07XG5cbmNvbnN0IFBMVUdJTl9QUk9WSURFUl9QUkVGSVggPSAncGx1Z2luJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMge1xuICAvKipcbiAgICogQSBtZXNzYWdlIHRoYXQgaXMgcHJlc2VudGVkIHRvIHVzZXJzIGluIG5vcm1hbCBtb2RlIG9mIG9wZXJhdGlvbi5cbiAgICpcbiAgICogU2hvdWxkIGJlIHVzZWQgc3BhcmluZ2x5LiBUaGUgQ29udGV4dCBQcm92aWRlciBmcmFtZXdvcmsgYWxyZWFkeSBwcm92aWRlcyB1c2VmdWwgb3V0cHV0IGJ5IGRlZmF1bHQuXG4gICAqIFRoaXMgY2FuIGJlIHVzZXMgaW4gZXhjZXB0aW9uYWxseSBzaXR1YXRpb25zLCBlLmcuIGlmIGEgbG9va3VwIGNhbGwgaXMgZXhwZWN0ZWQgdG8gdGFrZSBhIGxvbmcgdGltZS5cbiAgICovXG4gIGluZm8obWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQSBtZXNzYWdlIHRoYXQgaGVscHMgdXNlcnMgZGVidWdnaW5nIHRoZSBjb250ZXh0IHByb3ZpZGVyLlxuICAgKlxuICAgKiBTaG91bGQgYmUgdXNlZCBpbiBtb3N0IGNhc2VzIHRvIG5vdGUgb24gY3VycmVudCBhY3Rpb24uXG4gICAqL1xuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5jbGFzcyBDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyBpbXBsZW1lbnRzIElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIsIHByb3ZpZGVyTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMucHJvdmlkZXJOYW1lID0gcHJvdmlkZXJOYW1lO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluZm8obWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDMwMC5tc2cobWVzc2FnZSwge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMzAxLm1zZyhtZXNzYWdlLCB7XG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlck5hbWUsXG4gICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogSXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIG1pc3NpbmcgY29udGV4dCB2YWx1ZXMgYW5kIGludm9rZSB0aGUgYXBwcm9wcmlhdGUgcHJvdmlkZXJzIGZyb20gdGhlIG1hcCB0byByZXRyaWV2ZSB0aGVtXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm92aWRlQ29udGV4dFZhbHVlcyhcbiAgbWlzc2luZ1ZhbHVlczogY3hzY2hlbWEuTWlzc2luZ0NvbnRleHRbXSxcbiAgY29udGV4dDogQ29udGV4dCxcbiAgc2RrOiBTZGtQcm92aWRlcixcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuKSB7XG4gIGZvciAoY29uc3QgbWlzc2luZ0NvbnRleHQgb2YgbWlzc2luZ1ZhbHVlcykge1xuICAgIGNvbnN0IGtleSA9IG1pc3NpbmdDb250ZXh0LmtleTtcblxuICAgIGNvbnN0IHByb3ZpZGVyTmFtZSA9IG1pc3NpbmdDb250ZXh0LnByb3ZpZGVyID09PSBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuUExVR0lOXG4gICAgICA/IGAke1BMVUdJTl9QUk9WSURFUl9QUkVGSVh9OiR7KG1pc3NpbmdDb250ZXh0LnByb3BzIGFzIGN4c2NoZW1hLlBsdWdpbkNvbnRleHRRdWVyeSkucGx1Z2luTmFtZX1gXG4gICAgICA6IG1pc3NpbmdDb250ZXh0LnByb3ZpZGVyO1xuXG4gICAgbGV0IGZhY3Rvcnk7XG4gICAgaWYgKHByb3ZpZGVyTmFtZS5zdGFydHNXaXRoKGAke1BMVUdJTl9QUk9WSURFUl9QUkVGSVh9OmApKSB7XG4gICAgICBjb25zdCBwbHVnaW4gPSBQbHVnaW5Ib3N0Lmluc3RhbmNlLmNvbnRleHRQcm92aWRlclBsdWdpbnNbcHJvdmlkZXJOYW1lLnN1YnN0cmluZyhQTFVHSU5fUFJPVklERVJfUFJFRklYLmxlbmd0aCArIDEpXTtcbiAgICAgIGlmICghcGx1Z2luKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgVW5yZWNvZ25pemVkIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyIG5hbWU6ICR7bWlzc2luZ0NvbnRleHQucHJvdmlkZXJ9LmApO1xuICAgICAgfVxuICAgICAgZmFjdG9yeSA9ICgpID0+IHBsdWdpbjtcbiAgICB9IGVsc2Uge1xuICAgICAgZmFjdG9yeSA9IGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbcHJvdmlkZXJOYW1lXTtcbiAgICAgIGlmICghZmFjdG9yeSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYFVucmVjb2duaXplZCBjb250ZXh0IHByb3ZpZGVyIG5hbWU6ICR7bWlzc2luZ0NvbnRleHQucHJvdmlkZXJ9LiBZb3UgbWlnaHQgbmVlZCB0byB1cGRhdGUgdGhlIHRvb2xraXQgdG8gbWF0Y2ggdGhlIHZlcnNpb24gb2YgdGhlIGNvbnN0cnVjdCBsaWJyYXJ5LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlvSGVscGVyID0gaW9IZWxwZXIgPz8gQ2xpSW9Ib3N0Lmluc3RhbmNlKCkuYXNJb0hlbHBlcigpO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gZmFjdG9yeShzZGssIG5ldyBDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyhpb0hlbHBlciwgcHJvdmlkZXJOYW1lKSk7XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gbWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCAmJiBtaXNzaW5nQ29udGV4dC5wcm9wcy5yZWdpb25cbiAgICAgICAgPyBjeGFwaS5FbnZpcm9ubWVudFV0aWxzLm1ha2UobWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCwgbWlzc2luZ0NvbnRleHQucHJvcHMucmVnaW9uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICAgICAgICA/IGF3YWl0IHNkay5yZXNvbHZlRW52aXJvbm1lbnQoZW52aXJvbm1lbnQpXG4gICAgICAgIDogeyBhY2NvdW50OiAnPycsIHJlZ2lvbjogJz8nLCBuYW1lOiAnPycgfTtcblxuICAgICAgY29uc3QgYXJucyA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgICBsb29rdXBSb2xlQXJuOiBtaXNzaW5nQ29udGV4dC5wcm9wcy5sb29rdXBSb2xlQXJuLFxuICAgICAgfSwgcmVzb2x2ZWRFbnZpcm9ubWVudCwgc2RrKTtcblxuICAgICAgdmFsdWUgPSBhd2FpdCBwcm92aWRlci5nZXRWYWx1ZSh7IC4uLm1pc3NpbmdDb250ZXh0LnByb3BzLCBsb29rdXBSb2xlQXJuOiBhcm5zLmxvb2t1cFJvbGVBcm4gfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBTZXQgYSBzcGVjaWFsbHkgZm9ybWF0dGVkIHByb3ZpZGVyIHZhbHVlIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWRcbiAgICAgIC8vIGFzIGEgbG9va3VwIGZhaWx1cmUgaW4gdGhlIHRvb2xraXQuXG4gICAgICB2YWx1ZSA9IHsgW2N4YXBpLlBST1ZJREVSX0VSUk9SX0tFWV06IGZvcm1hdEVycm9yTWVzc2FnZShlKSwgW1RSQU5TSUVOVF9DT05URVhUX0tFWV06IHRydWUgfTtcbiAgICB9XG4gICAgY29udGV4dC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfQVNTRU1CTFlfREVCVUcubXNnKGBTZXR0aW5nIFwiJHtrZXl9XCIgY29udGV4dCB0byAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXJcbiAqXG4gKiBBIGNvbnRleHQgcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyc1tuYW1lXSA9ICgpID0+IHByb3ZpZGVyO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgcGx1Z2luIGNvbnRleHQgcHJvdmlkZXJcbiAqXG4gKiBBIHBsdWdpbiBwcm92aWRlciBjYW5ub3QgcmV1c2UgdGhlIFNES3MgYXV0aGVudGljYXRpb24gbWVjaGFuaXNtcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUGx1Z2luQ29udGV4dFByb3ZpZGVyKG5hbWU6IHN0cmluZywgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlclBsdWdpbikge1xuICByZWdpc3RlckNvbnRleHRQcm92aWRlcihgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfToke25hbWV9YCwgcHJvdmlkZXIpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5XG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGZhY3RvcnkgdGFrZXMgYW4gU2RrUHJvdmlkZXIgYW5kIHJldHVybnMgdGhlIGNvbnRleHQgcHJvdmlkZXIgcGx1Z2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXJGYWN0b3J5KG5hbWU6IHN0cmluZywgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlckZhY3RvcnkpIHtcbiAgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyc1tuYW1lXSA9IHByb3ZpZGVyO1xufVxuXG5jb25zdCBhdmFpbGFibGVDb250ZXh0UHJvdmlkZXJzOiBQcm92aWRlck1hcCA9IHtcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5BVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEFaQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5TU01fUEFSQU1FVEVSX1BST1ZJREVSXTogKHMsIGlvKSA9PiBuZXcgU1NNQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5IT1NURURfWk9ORV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEhvc3RlZFpvbmVDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlZQQ19QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkFNSV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEFtaUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuRU5EUE9JTlRfU0VSVklDRV9BVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5TRUNVUklUWV9HUk9VUF9QUk9WSURFUl06IChzKSA9PiBuZXcgU2VjdXJpdHlHcm91cENvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5MT0FEX0JBTEFOQ0VSX1BST1ZJREVSXTogKHMpID0+IG5ldyBMb2FkQmFsYW5jZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9MSVNURU5FUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuS0VZX1BST1ZJREVSXTogKHMsIGlvKSA9PiBuZXcgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5DQ19BUElfUFJPVklERVJdOiAocykgPT4gbmV3IENjQXBpQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxufTtcbiJdfQ==
@@ -1,10 +1,12 @@
1
1
  import type { KeyContextQuery } from '@aws-cdk/cloud-assembly-schema';
2
2
  import type { KeyContextResponse } from '@aws-cdk/cx-api';
3
+ import type { IContextProviderMessages } from '.';
3
4
  import { type SdkProvider } from '../api/aws-auth/sdk-provider';
4
5
  import type { ContextProviderPlugin } from '../api/plugin';
5
6
  export declare class KeyContextProviderPlugin implements ContextProviderPlugin {
6
7
  private readonly aws;
7
- constructor(aws: SdkProvider);
8
+ private readonly io;
9
+ constructor(aws: SdkProvider, io: IContextProviderMessages);
8
10
  getValue(args: KeyContextQuery): Promise<KeyContextResponse>;
9
11
  private findKey;
10
12
  private readKeyProps;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KeyContextProviderPlugin = void 0;
4
+ const api_1 = require("../../../@aws-cdk/tmp-toolkit-helpers/src/api");
4
5
  const sdk_provider_1 = require("../api/aws-auth/sdk-provider");
5
- const logging_1 = require("../logging");
6
- const error_1 = require("../toolkit/error");
7
6
  class KeyContextProviderPlugin {
8
- constructor(aws) {
7
+ constructor(aws, io) {
9
8
  this.aws = aws;
9
+ this.io = io;
10
10
  }
11
11
  async getValue(args) {
12
12
  const kms = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).kms();
@@ -15,7 +15,7 @@ class KeyContextProviderPlugin {
15
15
  }
16
16
  // TODO: use paginator function
17
17
  async findKey(kms, args) {
18
- (0, logging_1.debug)(`Listing keys in ${args.account}:${args.region}`);
18
+ await this.io.debug(`Listing keys in ${args.account}:${args.region}`);
19
19
  let response;
20
20
  let nextMarker;
21
21
  do {
@@ -36,17 +36,17 @@ class KeyContextProviderPlugin {
36
36
  const keyId = args.dummyValue.keyId;
37
37
  return { TargetKeyId: keyId };
38
38
  }
39
- throw new error_1.ContextProviderError(`Could not find any key with alias named ${args.aliasName}`);
39
+ throw new api_1.ContextProviderError(`Could not find any key with alias named ${args.aliasName}`);
40
40
  }
41
41
  async readKeyProps(alias, args) {
42
42
  if (!alias.TargetKeyId) {
43
- throw new error_1.ContextProviderError(`Could not find any key with alias named ${args.aliasName}`);
43
+ throw new api_1.ContextProviderError(`Could not find any key with alias named ${args.aliasName}`);
44
44
  }
45
- (0, logging_1.debug)(`Key found ${alias.TargetKeyId}`);
45
+ await this.io.debug(`Key found ${alias.TargetKeyId}`);
46
46
  return {
47
47
  keyId: alias.TargetKeyId,
48
48
  };
49
49
  }
50
50
  }
51
51
  exports.KeyContextProviderPlugin = KeyContextProviderPlugin;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsK0RBQXdGO0FBRXhGLHdDQUFtQztBQUNuQyw0Q0FBd0Q7QUFFeEQsTUFBYSx3QkFBd0I7SUFDbkMsWUFBNkIsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUM3QyxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFxQjtRQUN6QyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxxQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFakUsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVyRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCwrQkFBK0I7SUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFlLEVBQUUsSUFBcUI7UUFDMUQsSUFBQSxlQUFLLEVBQUMsbUJBQW1CLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFeEQsSUFBSSxRQUFrQyxDQUFDO1FBQ3ZDLElBQUksVUFBOEIsQ0FBQztRQUNuQyxHQUFHLENBQUM7WUFDRixRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDO2dCQUMvQixNQUFNLEVBQUUsVUFBVTthQUNuQixDQUFDLENBQUM7WUFFSCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUN2QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN0QyxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztZQUVELFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ25DLENBQUMsUUFBUSxVQUFVLEVBQUU7UUFFckIsTUFBTSxhQUFhLEdBQUcsNkJBQTZCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQywyQkFBc0MsQ0FBQztRQUMzRyxNQUFNLGFBQWEsR0FBRyxZQUFZLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDNUksSUFBSSxhQUFhLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLFVBQWdDLENBQUMsS0FBSyxDQUFDO1lBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELE1BQU0sSUFBSSw0QkFBb0IsQ0FBQywyQ0FBMkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBcUIsRUFBRSxJQUFxQjtRQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSw0QkFBb0IsQ0FBQywyQ0FBMkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUVELElBQUEsZUFBSyxFQUFDLGFBQWEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFeEMsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVztTQUN6QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckRELDREQXFEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFJlc3BvbnNlIH0gZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB0eXBlIHsgQWxpYXNMaXN0RW50cnksIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnO1xuaW1wb3J0IHR5cGUgeyBJS01TQ2xpZW50IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IHR5cGUgU2RrUHJvdmlkZXIsIGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvc2RrLXByb3ZpZGVyJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbic7XG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L2Vycm9yJztcblxuZXhwb3J0IGNsYXNzIEtleUNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlcikge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFZhbHVlKGFyZ3M6IEtleUNvbnRleHRRdWVyeSkge1xuICAgIGNvbnN0IGttcyA9IChhd2FpdCBpbml0Q29udGV4dFByb3ZpZGVyU2RrKHRoaXMuYXdzLCBhcmdzKSkua21zKCk7XG5cbiAgICBjb25zdCBhbGlhc0xpc3RFbnRyeSA9IGF3YWl0IHRoaXMuZmluZEtleShrbXMsIGFyZ3MpO1xuXG4gICAgcmV0dXJuIHRoaXMucmVhZEtleVByb3BzKGFsaWFzTGlzdEVudHJ5LCBhcmdzKTtcbiAgfVxuXG4gIC8vIFRPRE86IHVzZSBwYWdpbmF0b3IgZnVuY3Rpb25cbiAgcHJpdmF0ZSBhc3luYyBmaW5kS2V5KGttczogSUtNU0NsaWVudCwgYXJnczogS2V5Q29udGV4dFF1ZXJ5KTogUHJvbWlzZTxBbGlhc0xpc3RFbnRyeT4ge1xuICAgIGRlYnVnKGBMaXN0aW5nIGtleXMgaW4gJHthcmdzLmFjY291bnR9OiR7YXJncy5yZWdpb259YCk7XG5cbiAgICBsZXQgcmVzcG9uc2U6IExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dDtcbiAgICBsZXQgbmV4dE1hcmtlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGRvIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQga21zLmxpc3RBbGlhc2VzKHtcbiAgICAgICAgTWFya2VyOiBuZXh0TWFya2VyLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFsaWFzZXMgPSByZXNwb25zZS5BbGlhc2VzIHx8IFtdO1xuICAgICAgZm9yIChjb25zdCBhbGlhcyBvZiBhbGlhc2VzKSB7XG4gICAgICAgIGlmIChhbGlhcy5BbGlhc05hbWUgPT0gYXJncy5hbGlhc05hbWUpIHtcbiAgICAgICAgICByZXR1cm4gYWxpYXM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbmV4dE1hcmtlciA9IHJlc3BvbnNlLk5leHRNYXJrZXI7XG4gICAgfSB3aGlsZSAobmV4dE1hcmtlcik7XG5cbiAgICBjb25zdCBzdXBwcmVzc0Vycm9yID0gJ2lnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dCcgaW4gYXJncyAmJiBhcmdzLmlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dCBhcyBib29sZWFuO1xuICAgIGNvbnN0IGhhc0R1bW15S2V5SWQgPSAnZHVtbXlWYWx1ZScgaW4gYXJncyAmJiB0eXBlb2YgYXJncy5kdW1teVZhbHVlID09PSAnb2JqZWN0JyAmJiBhcmdzLmR1bW15VmFsdWUgIT09IG51bGwgJiYgJ2tleUlkJyBpbiBhcmdzLmR1bW15VmFsdWU7XG4gICAgaWYgKHN1cHByZXNzRXJyb3IgJiYgaGFzRHVtbXlLZXlJZCkge1xuICAgICAgY29uc3Qga2V5SWQgPSAoYXJncy5kdW1teVZhbHVlIGFzIHsga2V5SWQ6IHN0cmluZyB9KS5rZXlJZDtcbiAgICAgIHJldHVybiB7IFRhcmdldEtleUlkOiBrZXlJZCB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYENvdWxkIG5vdCBmaW5kIGFueSBrZXkgd2l0aCBhbGlhcyBuYW1lZCAke2FyZ3MuYWxpYXNOYW1lfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWFkS2V5UHJvcHMoYWxpYXM6IEFsaWFzTGlzdEVudHJ5LCBhcmdzOiBLZXlDb250ZXh0UXVlcnkpOiBQcm9taXNlPEtleUNvbnRleHRSZXNwb25zZT4ge1xuICAgIGlmICghYWxpYXMuVGFyZ2V0S2V5SWQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgQ291bGQgbm90IGZpbmQgYW55IGtleSB3aXRoIGFsaWFzIG5hbWVkICR7YXJncy5hbGlhc05hbWV9YCk7XG4gICAgfVxuXG4gICAgZGVidWcoYEtleSBmb3VuZCAke2FsaWFzLlRhcmdldEtleUlkfWApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleUlkOiBhbGlhcy5UYXJnZXRLZXlJZCxcbiAgICB9O1xuICB9XG59XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdUVBQXFGO0FBRXJGLCtEQUF3RjtBQUd4RixNQUFhLHdCQUF3QjtJQUNuQyxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQXFCO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVqRSxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXJELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELCtCQUErQjtJQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQWUsRUFBRSxJQUFxQjtRQUMxRCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLElBQUksUUFBa0MsQ0FBQztRQUN2QyxJQUFJLFVBQThCLENBQUM7UUFDbkMsR0FBRyxDQUFDO1lBQ0YsUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDL0IsTUFBTSxFQUFFLFVBQVU7YUFDbkIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDdkMsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDdEMsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7WUFFRCxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxDQUFDLFFBQVEsVUFBVSxFQUFFO1FBRXJCLE1BQU0sYUFBYSxHQUFHLDZCQUE2QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsMkJBQXNDLENBQUM7UUFDM0csTUFBTSxhQUFhLEdBQUcsWUFBWSxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzVJLElBQUksYUFBYSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ25DLE1BQU0sS0FBSyxHQUFJLElBQUksQ0FBQyxVQUFnQyxDQUFDLEtBQUssQ0FBQztZQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxNQUFNLElBQUksMEJBQW9CLENBQUMsMkNBQTJDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXFCLEVBQUUsSUFBcUI7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksMEJBQW9CLENBQUMsMkNBQTJDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFdEQsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVztTQUN6QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckRELDREQXFEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFJlc3BvbnNlIH0gZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB0eXBlIHsgQWxpYXNMaXN0RW50cnksIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgfSBmcm9tICcuJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vLi4vLi4vQGF3cy1jZGsvdG1wLXRvb2xraXQtaGVscGVycy9zcmMvYXBpJztcbmltcG9ydCB0eXBlIHsgSUtNU0NsaWVudCB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuXG5leHBvcnQgY2xhc3MgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBLZXlDb250ZXh0UXVlcnkpIHtcbiAgICBjb25zdCBrbXMgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayh0aGlzLmF3cywgYXJncykpLmttcygpO1xuXG4gICAgY29uc3QgYWxpYXNMaXN0RW50cnkgPSBhd2FpdCB0aGlzLmZpbmRLZXkoa21zLCBhcmdzKTtcblxuICAgIHJldHVybiB0aGlzLnJlYWRLZXlQcm9wcyhhbGlhc0xpc3RFbnRyeSwgYXJncyk7XG4gIH1cblxuICAvLyBUT0RPOiB1c2UgcGFnaW5hdG9yIGZ1bmN0aW9uXG4gIHByaXZhdGUgYXN5bmMgZmluZEtleShrbXM6IElLTVNDbGllbnQsIGFyZ3M6IEtleUNvbnRleHRRdWVyeSk6IFByb21pc2U8QWxpYXNMaXN0RW50cnk+IHtcbiAgICBhd2FpdCB0aGlzLmlvLmRlYnVnKGBMaXN0aW5nIGtleXMgaW4gJHthcmdzLmFjY291bnR9OiR7YXJncy5yZWdpb259YCk7XG5cbiAgICBsZXQgcmVzcG9uc2U6IExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dDtcbiAgICBsZXQgbmV4dE1hcmtlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGRvIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQga21zLmxpc3RBbGlhc2VzKHtcbiAgICAgICAgTWFya2VyOiBuZXh0TWFya2VyLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFsaWFzZXMgPSByZXNwb25zZS5BbGlhc2VzIHx8IFtdO1xuICAgICAgZm9yIChjb25zdCBhbGlhcyBvZiBhbGlhc2VzKSB7XG4gICAgICAgIGlmIChhbGlhcy5BbGlhc05hbWUgPT0gYXJncy5hbGlhc05hbWUpIHtcbiAgICAgICAgICByZXR1cm4gYWxpYXM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbmV4dE1hcmtlciA9IHJlc3BvbnNlLk5leHRNYXJrZXI7XG4gICAgfSB3aGlsZSAobmV4dE1hcmtlcik7XG5cbiAgICBjb25zdCBzdXBwcmVzc0Vycm9yID0gJ2lnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dCcgaW4gYXJncyAmJiBhcmdzLmlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dCBhcyBib29sZWFuO1xuICAgIGNvbnN0IGhhc0R1bW15S2V5SWQgPSAnZHVtbXlWYWx1ZScgaW4gYXJncyAmJiB0eXBlb2YgYXJncy5kdW1teVZhbHVlID09PSAnb2JqZWN0JyAmJiBhcmdzLmR1bW15VmFsdWUgIT09IG51bGwgJiYgJ2tleUlkJyBpbiBhcmdzLmR1bW15VmFsdWU7XG4gICAgaWYgKHN1cHByZXNzRXJyb3IgJiYgaGFzRHVtbXlLZXlJZCkge1xuICAgICAgY29uc3Qga2V5SWQgPSAoYXJncy5kdW1teVZhbHVlIGFzIHsga2V5SWQ6IHN0cmluZyB9KS5rZXlJZDtcbiAgICAgIHJldHVybiB7IFRhcmdldEtleUlkOiBrZXlJZCB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYENvdWxkIG5vdCBmaW5kIGFueSBrZXkgd2l0aCBhbGlhcyBuYW1lZCAke2FyZ3MuYWxpYXNOYW1lfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWFkS2V5UHJvcHMoYWxpYXM6IEFsaWFzTGlzdEVudHJ5LCBhcmdzOiBLZXlDb250ZXh0UXVlcnkpOiBQcm9taXNlPEtleUNvbnRleHRSZXNwb25zZT4ge1xuICAgIGlmICghYWxpYXMuVGFyZ2V0S2V5SWQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgQ291bGQgbm90IGZpbmQgYW55IGtleSB3aXRoIGFsaWFzIG5hbWVkICR7YXJncy5hbGlhc05hbWV9YCk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgS2V5IGZvdW5kICR7YWxpYXMuVGFyZ2V0S2V5SWR9YCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5SWQ6IGFsaWFzLlRhcmdldEtleUlkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LoadBalancerListenerContextProviderPlugin = exports.LoadBalancerContextProviderPlugin = void 0;
4
4
  const cx_api_1 = require("@aws-cdk/cx-api");
5
+ const api_1 = require("../../../@aws-cdk/tmp-toolkit-helpers/src/api");
5
6
  const sdk_provider_1 = require("../api/aws-auth/sdk-provider");
6
- const error_1 = require("../toolkit/error");
7
7
  /**
8
8
  * Provides load balancer context information.
9
9
  */
@@ -12,9 +12,8 @@ class LoadBalancerContextProviderPlugin {
12
12
  this.aws = aws;
13
13
  }
14
14
  async getValue(query) {
15
- var _a;
16
15
  if (!query.loadBalancerArn && !query.loadBalancerTags) {
17
- throw new error_1.ContextProviderError('The load balancer lookup query must specify either `loadBalancerArn` or `loadBalancerTags`');
16
+ throw new api_1.ContextProviderError('The load balancer lookup query must specify either `loadBalancerArn` or `loadBalancerTags`');
18
17
  }
19
18
  const loadBalancer = await (await LoadBalancerProvider.getClient(this.aws, query)).getLoadBalancer();
20
19
  const ipAddressType = loadBalancer.IpAddressType === 'ipv4' ? cx_api_1.LoadBalancerIpAddressType.IPV4 : cx_api_1.LoadBalancerIpAddressType.DUAL_STACK;
@@ -23,7 +22,7 @@ class LoadBalancerContextProviderPlugin {
23
22
  loadBalancerCanonicalHostedZoneId: loadBalancer.CanonicalHostedZoneId,
24
23
  loadBalancerDnsName: loadBalancer.DNSName,
25
24
  vpcId: loadBalancer.VpcId,
26
- securityGroupIds: (_a = loadBalancer.SecurityGroups) !== null && _a !== void 0 ? _a : [],
25
+ securityGroupIds: loadBalancer.SecurityGroups ?? [],
27
26
  ipAddressType: ipAddressType,
28
27
  };
29
28
  }
@@ -38,7 +37,7 @@ class LoadBalancerListenerContextProviderPlugin {
38
37
  }
39
38
  async getValue(query) {
40
39
  if (!query.listenerArn && !query.loadBalancerArn && !query.loadBalancerTags) {
41
- throw new error_1.ContextProviderError('The load balancer listener query must specify at least one of: `listenerArn`, `loadBalancerArn` or `loadBalancerTags`');
40
+ throw new api_1.ContextProviderError('The load balancer listener query must specify at least one of: `listenerArn`, `loadBalancerArn` or `loadBalancerTags`');
42
41
  }
43
42
  return (await LoadBalancerProvider.getClient(this.aws, query)).getListener();
44
43
  }
@@ -52,10 +51,10 @@ class LoadBalancerProvider {
52
51
  ? // Assert we're sure there's at least one so it throws if not
53
52
  (await client.describeListeners({ ListenerArns: [query.listenerArn] })).Listeners[0]
54
53
  : undefined;
55
- return new LoadBalancerProvider(client, { ...query, loadBalancerArn: (listener === null || listener === void 0 ? void 0 : listener.LoadBalancerArn) || query.loadBalancerArn }, listener);
54
+ return new LoadBalancerProvider(client, { ...query, loadBalancerArn: listener?.LoadBalancerArn || query.loadBalancerArn }, listener);
56
55
  }
57
56
  catch (err) {
58
- throw new error_1.ContextProviderError(`No load balancer listeners found matching arn ${query.listenerArn}`);
57
+ throw new api_1.ContextProviderError(`No load balancer listeners found matching arn ${query.listenerArn}`);
59
58
  }
60
59
  }
61
60
  constructor(client, filter, listener) {
@@ -66,15 +65,14 @@ class LoadBalancerProvider {
66
65
  async getLoadBalancer() {
67
66
  const loadBalancers = await this.getLoadBalancers();
68
67
  if (loadBalancers.length === 0) {
69
- throw new error_1.ContextProviderError(`No load balancers found matching ${JSON.stringify(this.filter)}`);
68
+ throw new api_1.ContextProviderError(`No load balancers found matching ${JSON.stringify(this.filter)}`);
70
69
  }
71
70
  if (loadBalancers.length > 1) {
72
- throw new error_1.ContextProviderError(`Multiple load balancers found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);
71
+ throw new api_1.ContextProviderError(`Multiple load balancers found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);
73
72
  }
74
73
  return loadBalancers[0];
75
74
  }
76
75
  async getListener() {
77
- var _a;
78
76
  if (this.listener) {
79
77
  try {
80
78
  const loadBalancer = await this.getLoadBalancer();
@@ -85,27 +83,27 @@ class LoadBalancerProvider {
85
83
  };
86
84
  }
87
85
  catch (err) {
88
- throw new error_1.ContextProviderError(`No associated load balancer found for listener arn ${this.filter.listenerArn}`);
86
+ throw new api_1.ContextProviderError(`No associated load balancer found for listener arn ${this.filter.listenerArn}`);
89
87
  }
90
88
  }
91
89
  const loadBalancers = await this.getLoadBalancers();
92
90
  if (loadBalancers.length === 0) {
93
- throw new error_1.ContextProviderError(`No associated load balancers found for load balancer listener query ${JSON.stringify(this.filter)}`);
91
+ throw new api_1.ContextProviderError(`No associated load balancers found for load balancer listener query ${JSON.stringify(this.filter)}`);
94
92
  }
95
93
  const listeners = (await this.getListenersForLoadBalancers(loadBalancers)).filter((listener) => {
96
94
  return ((!this.filter.listenerPort || listener.Port === this.filter.listenerPort) &&
97
95
  (!this.filter.listenerProtocol || listener.Protocol === this.filter.listenerProtocol));
98
96
  });
99
97
  if (listeners.length === 0) {
100
- throw new error_1.ContextProviderError(`No load balancer listeners found matching ${JSON.stringify(this.filter)}`);
98
+ throw new api_1.ContextProviderError(`No load balancer listeners found matching ${JSON.stringify(this.filter)}`);
101
99
  }
102
100
  if (listeners.length > 1) {
103
- throw new error_1.ContextProviderError(`Multiple load balancer listeners found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);
101
+ throw new api_1.ContextProviderError(`Multiple load balancer listeners found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);
104
102
  }
105
103
  return {
106
104
  listenerArn: listeners[0].ListenerArn,
107
105
  listenerPort: listeners[0].Port,
108
- securityGroupIds: ((_a = loadBalancers.find((lb) => listeners[0].LoadBalancerArn === lb.LoadBalancerArn)) === null || _a === void 0 ? void 0 : _a.SecurityGroups) || [],
106
+ securityGroupIds: loadBalancers.find((lb) => listeners[0].LoadBalancerArn === lb.LoadBalancerArn)?.SecurityGroups || [],
109
107
  };
110
108
  }
111
109
  async getLoadBalancers() {
@@ -124,8 +122,7 @@ class LoadBalancerProvider {
124
122
  // For every tag in the filter, there is some tag in the LB that matches it.
125
123
  // In other words, the set of tags in the filter is a subset of the set of tags in the LB.
126
124
  return this.filter.loadBalancerTags.every((filter) => {
127
- var _a;
128
- return (_a = tagDescription.Tags) === null || _a === void 0 ? void 0 : _a.some((tag) => filter.key === tag.Key && filter.value === tag.Value);
125
+ return tagDescription.Tags?.some((tag) => filter.key === tag.Key && filter.value === tag.Value);
129
126
  });
130
127
  })
131
128
  .flatMap((tag) => loadBalancers.filter((loadBalancer) => tag.ResourceArn === loadBalancer.LoadBalancerArn));
@@ -156,4 +153,4 @@ class LoadBalancerProvider {
156
153
  return listeners;
157
154
  }
158
155
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2FkLWJhbGFuY2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSw0Q0FFeUI7QUFHekIsK0RBQXdGO0FBRXhGLDRDQUF3RDtBQUV4RDs7R0FFRztBQUNILE1BQWEsaUNBQWlDO0lBQzVDLFlBQTZCLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBK0I7O1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLDRCQUFvQixDQUFDLDRGQUE0RixDQUFDLENBQUM7UUFDL0gsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFckcsTUFBTSxhQUFhLEdBQ2pCLFlBQVksQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxrQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtDQUF5QixDQUFDLFVBQVUsQ0FBQztRQUVoSCxPQUFPO1lBQ0wsZUFBZSxFQUFFLFlBQVksQ0FBQyxlQUFnQjtZQUM5QyxpQ0FBaUMsRUFBRSxZQUFZLENBQUMscUJBQXNCO1lBQ3RFLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxPQUFRO1lBQzFDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBTTtZQUMxQixnQkFBZ0IsRUFBRSxNQUFBLFlBQVksQ0FBQyxjQUFjLG1DQUFJLEVBQUU7WUFDbkQsYUFBYSxFQUFFLGFBQWE7U0FDN0IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXZCRCw4RUF1QkM7QUFFRDs7R0FFRztBQUNILE1BQWEseUNBQXlDO0lB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QVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQy9DLFlBQVksRUFBRSxLQUFLO2FBQ3BCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sS0FBSyxDQUFDLDRCQUE0QixDQUFDLGFBQTZCO1FBQ3RFLE1BQU0sU0FBUyxHQUFlLEVBQUUsQ0FBQztRQUNqQyxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3pFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMb2FkQmFsYW5jZXJDb250ZXh0UXVlcnksIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHtcbiAgTG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlLFxuICBMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRSZXNwb25zZSxcbn0gZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7XG4gIExvYWRCYWxhbmNlcklwQWRkcmVzc1R5cGUsXG59IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgdHlwZSB7IExvYWRCYWxhbmNlciwgTGlzdGVuZXIsIFRhZ0Rlc2NyaXB0aW9uIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVsYXN0aWMtbG9hZC1iYWxhbmNpbmctdjInO1xuaW1wb3J0IHR5cGUgeyBJRWxhc3RpY0xvYWRCYWxhbmNpbmdWMkNsaWVudCB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L2Vycm9yJztcblxuLyoqXG4gKiBQcm92aWRlcyBsb2FkIGJhbGFuY2VyIGNvbnRleHQgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2FkQmFsYW5jZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIGFzeW5jIGdldFZhbHVlKHF1ZXJ5OiBMb2FkQmFsYW5jZXJDb250ZXh0UXVlcnkpOiBQcm9taXNlPExvYWRCYWxhbmNlckNvbnRleHRSZXNwb25zZT4ge1xuICAgIGlmICghcXVlcnkubG9hZEJhbGFuY2VyQXJuICYmICFxdWVyeS5sb2FkQmFsYW5jZXJUYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1RoZSBsb2FkIGJhbGFuY2VyIGxvb2t1cCBxdWVyeSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBsb2FkQmFsYW5jZXJBcm5gIG9yIGBsb2FkQmFsYW5jZXJUYWdzYCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGxvYWRCYWxhbmNlciA9IGF3YWl0IChhd2FpdCBMb2FkQmFsYW5jZXJQcm92aWRlci5nZXRDbGllbnQodGhpcy5hd3MsIHF1ZXJ5KSkuZ2V0TG9hZEJhbGFuY2VyKCk7XG5cbiAgICBjb25zdCBpcEFkZHJlc3NUeXBlID1cbiAgICAgIGxvYWRCYWxhbmNlci5JcEFkZHJlc3NUeXBlID09PSAnaXB2NCcgPyBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlLklQVjQgOiBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlLkRVQUxfU1RBQ0s7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbG9hZEJhbGFuY2VyQXJuOiBsb2FkQmFsYW5jZXIuTG9hZEJhbGFuY2VyQXJuISxcbiAgICAgIGxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZDogbG9hZEJhbGFuY2VyLkNhbm9uaWNhbEhvc3RlZFpvbmVJZCEsXG4gICAgICBsb2FkQmFsYW5jZXJEbnNOYW1lOiBsb2FkQmFsYW5jZXIuRE5TTmFtZSEsXG4gICAgICB2cGNJZDogbG9hZEJhbGFuY2VyLlZwY0lkISxcbiAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IGxvYWRCYWxhbmNlci5TZWN1cml0eUdyb3VwcyA/PyBbXSxcbiAgICAgIGlwQWRkcmVzc1R5cGU6IGlwQWRkcmVzc1R5cGUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3ZpZGVzIGxvYWQgYmFsYW5jZXIgbGlzdGVuZXIgY29udGV4dCBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgY2xhc3MgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIGFzeW5jIGdldFZhbHVlKHF1ZXJ5OiBMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRRdWVyeSk6IFByb21pc2U8TG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAoIXF1ZXJ5Lmxpc3RlbmVyQXJuICYmICFxdWVyeS5sb2FkQmFsYW5jZXJBcm4gJiYgIXF1ZXJ5LmxvYWRCYWxhbmNlclRhZ3MpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihcbiAgICAgICAgJ1RoZSBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHF1ZXJ5IG11c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgb2Y6IGBsaXN0ZW5lckFybmAsIGBsb2FkQmFsYW5jZXJBcm5gIG9yIGBsb2FkQmFsYW5jZXJUYWdzYCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoYXdhaXQgTG9hZEJhbGFuY2VyUHJvdmlkZXIuZ2V0Q2xpZW50KHRoaXMuYXdzLCBxdWVyeSkpLmdldExpc3RlbmVyKCk7XG4gIH1cbn1cblxuY2xhc3MgTG9hZEJhbGFuY2VyUHJvdmlkZXIge1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGdldENsaWVudChcbiAgICBhd3M6IFNka1Byb3ZpZGVyLFxuICAgIHF1ZXJ5OiBMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRRdWVyeSxcbiAgKTogUHJvbWlzZTxMb2FkQmFsYW5jZXJQcm92aWRlcj4ge1xuICAgIGNvbnN0IGNsaWVudCA9IChhd2FpdCBpbml0Q29udGV4dFByb3ZpZGVyU2RrKGF3cywgcXVlcnkpKS5lbGJ2MigpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gcXVlcnkubGlzdGVuZXJBcm5cbiAgICAgICAgPyAvLyBBc3NlcnQgd2UncmUgc3VyZSB0aGVyZSdzIGF0IGxlYXN0IG9uZSBzbyBpdCB0aHJvd3MgaWYgbm90XG4gICAgICAgIChhd2FpdCBjbGllbnQuZGVzY3JpYmVMaXN0ZW5lcnMoeyBMaXN0ZW5lckFybnM6IFtxdWVyeS5saXN0ZW5lckFybl0gfSkpLkxpc3RlbmVycyFbMF0hXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIG5ldyBMb2FkQmFsYW5jZXJQcm92aWRlcihcbiAgICAgICAgY2xpZW50LFxuICAgICAgICB7IC4uLnF1ZXJ5LCBsb2FkQmFsYW5jZXJBcm46IGxpc3RlbmVyPy5Mb2FkQmFsYW5jZXJBcm4gfHwgcXVlcnkubG9hZEJhbGFuY2VyQXJuIH0sXG4gICAgICAgIGxpc3RlbmVyLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgTm8gbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgYXJuICR7cXVlcnkubGlzdGVuZXJBcm59YCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IElFbGFzdGljTG9hZEJhbGFuY2luZ1YyQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyOiBMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRRdWVyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyPzogTGlzdGVuZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExvYWRCYWxhbmNlcigpOiBQcm9taXNlPExvYWRCYWxhbmNlcj4ge1xuICAgIGNvbnN0IGxvYWRCYWxhbmNlcnMgPSBhd2FpdCB0aGlzLmdldExvYWRCYWxhbmNlcnMoKTtcblxuICAgIGlmIChsb2FkQmFsYW5jZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBObyBsb2FkIGJhbGFuY2VycyBmb3VuZCBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyKX1gKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZEJhbGFuY2Vycy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoXG4gICAgICAgIGBNdWx0aXBsZSBsb2FkIGJhbGFuY2VycyBmb3VuZCBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyKX0gLSBwbGVhc2UgcHJvdmlkZSBtb3JlIHNwZWNpZmljIGNyaXRlcmlhYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvYWRCYWxhbmNlcnNbMF07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TGlzdGVuZXIoKTogUHJvbWlzZTxMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRSZXNwb25zZT4ge1xuICAgIGlmICh0aGlzLmxpc3RlbmVyKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBsb2FkQmFsYW5jZXIgPSBhd2FpdCB0aGlzLmdldExvYWRCYWxhbmNlcigpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxpc3RlbmVyQXJuOiB0aGlzLmxpc3RlbmVyLkxpc3RlbmVyQXJuISxcbiAgICAgICAgICBsaXN0ZW5lclBvcnQ6IHRoaXMubGlzdGVuZXIuUG9ydCEsXG4gICAgICAgICAgc2VjdXJpdHlHcm91cElkczogbG9hZEJhbGFuY2VyLlNlY3VyaXR5R3JvdXBzIHx8IFtdLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgTm8gYXNzb2NpYXRlZCBsb2FkIGJhbGFuY2VyIGZvdW5kIGZvciBsaXN0ZW5lciBhcm4gJHt0aGlzLmZpbHRlci5saXN0ZW5lckFybn1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBsb2FkQmFsYW5jZXJzID0gYXdhaXQgdGhpcy5nZXRMb2FkQmFsYW5jZXJzKCk7XG4gICAgaWYgKGxvYWRCYWxhbmNlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoXG4gICAgICAgIGBObyBhc3NvY2lhdGVkIGxvYWQgYmFsYW5jZXJzIGZvdW5kIGZvciBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHF1ZXJ5ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXIpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlbmVycyA9IChhd2FpdCB0aGlzLmdldExpc3RlbmVyc0ZvckxvYWRCYWxhbmNlcnMobG9hZEJhbGFuY2VycykpLmZpbHRlcigobGlzdGVuZXIpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICghdGhpcy5maWx0ZXIubGlzdGVuZXJQb3J0IHx8IGxpc3RlbmVyLlBvcnQgPT09IHRoaXMuZmlsdGVyLmxpc3RlbmVyUG9ydCkgJiZcbiAgICAgICAgKCF0aGlzLmZpbHRlci5saXN0ZW5lclByb3RvY29sIHx8IGxpc3RlbmVyLlByb3RvY29sID09PSB0aGlzLmZpbHRlci5saXN0ZW5lclByb3RvY29sKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGlmIChsaXN0ZW5lcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYE5vIGxvYWQgYmFsYW5jZXIgbGlzdGVuZXJzIGZvdW5kIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXIpfWApO1xuICAgIH1cblxuICAgIGlmIChsaXN0ZW5lcnMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKFxuICAgICAgICBgTXVsdGlwbGUgbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcil9IC0gcGxlYXNlIHByb3ZpZGUgbW9yZSBzcGVjaWZpYyBjcml0ZXJpYWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaXN0ZW5lckFybjogbGlzdGVuZXJzWzBdLkxpc3RlbmVyQXJuISxcbiAgICAgIGxpc3RlbmVyUG9ydDogbGlzdGVuZXJzWzBdLlBvcnQhLFxuICAgICAgc2VjdXJpdHlHcm91cElkczpcbiAgICAgICAgbG9hZEJhbGFuY2Vycy5maW5kKChsYikgPT4gbGlzdGVuZXJzWzBdLkxvYWRCYWxhbmNlckFybiA9PT0gbGIuTG9hZEJhbGFuY2VyQXJuKT8uU2VjdXJpdHlHcm91cHMgfHwgW10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TG9hZEJhbGFuY2VycygpIHtcbiAgICBjb25zdCBsb2FkQmFsYW5jZXJBcm5zID0gdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyQXJuID8gW3RoaXMuZmlsdGVyLmxvYWRCYWxhbmNlckFybl0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IChcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBhZ2luYXRlRGVzY3JpYmVMb2FkQmFsYW5jZXJzKHtcbiAgICAgICAgTG9hZEJhbGFuY2VyQXJuczogbG9hZEJhbGFuY2VyQXJucyxcbiAgICAgIH0pXG4gICAgKS5maWx0ZXIoKGxiKSA9PiBsYi5UeXBlID09PSB0aGlzLmZpbHRlci5sb2FkQmFsYW5jZXJUeXBlKTtcblxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5VGFncyhsb2FkQmFsYW5jZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyQnlUYWdzKGxvYWRCYWxhbmNlcnM6IExvYWRCYWxhbmNlcltdKTogUHJvbWlzZTxMb2FkQmFsYW5jZXJbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyVGFncykge1xuICAgICAgcmV0dXJuIGxvYWRCYWxhbmNlcnM7XG4gICAgfVxuICAgIHJldHVybiAoYXdhaXQgdGhpcy5kZXNjcmliZVRhZ3MobG9hZEJhbGFuY2Vycy5tYXAoKGxiKSA9PiBsYi5Mb2FkQmFsYW5jZXJBcm4hKSkpXG4gICAgICAuZmlsdGVyKCh0YWdEZXNjcmlwdGlvbikgPT4ge1xuICAgICAgICAvLyBGb3IgZXZlcnkgdGFnIGluIHRoZSBmaWx0ZXIsIHRoZXJlIGlzIHNvbWUgdGFnIGluIHRoZSBMQiB0aGF0IG1hdGNoZXMgaXQuXG4gICAgICAgIC8vIEluIG90aGVyIHdvcmRzLCB0aGUgc2V0IG9mIHRhZ3MgaW4gdGhlIGZpbHRlciBpcyBhIHN1YnNldCBvZiB0aGUgc2V0IG9mIHRhZ3MgaW4gdGhlIExCLlxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyVGFncyEuZXZlcnkoKGZpbHRlcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0YWdEZXNjcmlwdGlvbi5UYWdzPy5zb21lKCh0YWcpID0+XG4gICAgICAgICAgICBmaWx0ZXIua2V5ID09PSB0YWcuS2V5ICYmIGZpbHRlci52YWx1ZSA9PT0gdGFnLlZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKHRhZykgPT4gbG9hZEJhbGFuY2Vycy5maWx0ZXIoKGxvYWRCYWxhbmNlcikgPT4gdGFnLlJlc291cmNlQXJuID09PSBsb2FkQmFsYW5jZXIuTG9hZEJhbGFuY2VyQXJuKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0YWcgZGVzY3JpcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzb3VyY2VzLiBUaGUgQVBJIGRvZXNuJ3Qgc3VwcG9ydFxuICAgKiBwYWdpbmF0aW9uLCBzbyB0aGlzIGZ1bmN0aW9uIGJyZWFrcyB0aGUgcmVzb3VyY2UgbGlzdCBpbnRvIGNodW5rcyBhbmQgaXNzdWVzXG4gICAqIHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0cy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGVzY3JpYmVUYWdzKHJlc291cmNlQXJuczogc3RyaW5nW10pOiBQcm9taXNlPFRhZ0Rlc2NyaXB0aW9uW10+IHtcbiAgICAvLyBNYXggb2YgMjAgcmVzb3VyY2UgYXJucyBwZXIgcmVxdWVzdC5cbiAgICBjb25zdCBjaHVua1NpemUgPSAyMDtcbiAgICBjb25zdCB0YWdzID0gQXJyYXk8VGFnRGVzY3JpcHRpb24+KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNvdXJjZUFybnMubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xuICAgICAgY29uc3QgY2h1bmsgPSByZXNvdXJjZUFybnMuc2xpY2UoaSwgTWF0aC5taW4oaSArIGNodW5rU2l6ZSwgcmVzb3VyY2VBcm5zLmxlbmd0aCkpO1xuICAgICAgY29uc3QgY2h1bmtUYWdzID0gYXdhaXQgdGhpcy5jbGllbnQuZGVzY3JpYmVUYWdzKHtcbiAgICAgICAgUmVzb3VyY2VBcm5zOiBjaHVuayxcbiAgICAgIH0pO1xuXG4gICAgICB0YWdzLnB1c2goLi4uKGNodW5rVGFncy5UYWdEZXNjcmlwdGlvbnMgfHwgW10pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldExpc3RlbmVyc0ZvckxvYWRCYWxhbmNlcnMobG9hZEJhbGFuY2VyczogTG9hZEJhbGFuY2VyW10pOiBQcm9taXNlPExpc3RlbmVyW10+IHtcbiAgICBjb25zdCBsaXN0ZW5lcnM6IExpc3RlbmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGxvYWRCYWxhbmNlciBvZiBsb2FkQmFsYW5jZXJzLm1hcCgobGIpID0+IGxiLkxvYWRCYWxhbmNlckFybikpIHtcbiAgICAgIGxpc3RlbmVycy5wdXNoKC4uLihhd2FpdCB0aGlzLmNsaWVudC5wYWdpbmF0ZURlc2NyaWJlTGlzdGVuZXJzKHsgTG9hZEJhbGFuY2VyQXJuOiBsb2FkQmFsYW5jZXIgfSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpc3RlbmVycztcbiAgfVxufVxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2FkLWJhbGFuY2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSw0Q0FFeUI7QUFFekIsdUVBQXFGO0FBRXJGLCtEQUF3RjtBQUd4Rjs7R0FFRztBQUNILE1BQWEsaUNBQWlDO0lBQzVDLFlBQTZCLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBK0I7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUksMEJBQW9CLENBQUMsNEZBQTRGLENBQUMsQ0FBQztRQUMvSCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVyRyxNQUFNLGFBQWEsR0FDakIsWUFBWSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLGtDQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0NBQXlCLENBQUMsVUFBVSxDQUFDO1FBRWhILE9BQU87WUFDTCxlQUFlLEVBQUUsWUFBWSxDQUFDLGVBQWdCO1lBQzlDLGlDQUFpQyxFQUFFLFlBQVksQ0FBQyxxQkFBc0I7WUFDdEUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLE9BQVE7WUFDMUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFNO1lBQzFCLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxjQUFjLElBQUksRUFBRTtZQUNuRCxhQUFhLEVBQUUsYUFBYTtTQUM3QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdkJELDhFQXVCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx5Q0FBeUM7SUFDcEQsWUFB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TSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDL0MsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQUMsNEJBQTRCLENBQUMsYUFBNkI7UUFDdEUsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO1FBQ2pDLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDekUsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvYWRCYWxhbmNlckNvbnRleHRRdWVyeSwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUge1xuICBMb2FkQmFsYW5jZXJDb250ZXh0UmVzcG9uc2UsXG4gIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlLFxufSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHtcbiAgTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZSxcbn0gZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB0eXBlIHsgTG9hZEJhbGFuY2VyLCBMaXN0ZW5lciwgVGFnRGVzY3JpcHRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWxhc3RpYy1sb2FkLWJhbGFuY2luZy12Mic7XG5pbXBvcnQgeyBDb250ZXh0UHJvdmlkZXJFcnJvciB9IGZyb20gJy4uLy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaSc7XG5pbXBvcnQgdHlwZSB7IElFbGFzdGljTG9hZEJhbGFuY2luZ1YyQ2xpZW50IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IHR5cGUgU2RrUHJvdmlkZXIsIGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvc2RrLXByb3ZpZGVyJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbic7XG5cbi8qKlxuICogUHJvdmlkZXMgbG9hZCBiYWxhbmNlciBjb250ZXh0IGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyKSB7XG4gIH1cblxuICBhc3luYyBnZXRWYWx1ZShxdWVyeTogTG9hZEJhbGFuY2VyQ29udGV4dFF1ZXJ5KTogUHJvbWlzZTxMb2FkQmFsYW5jZXJDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAoIXF1ZXJ5LmxvYWRCYWxhbmNlckFybiAmJiAhcXVlcnkubG9hZEJhbGFuY2VyVGFncykge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdUaGUgbG9hZCBiYWxhbmNlciBsb29rdXAgcXVlcnkgbXVzdCBzcGVjaWZ5IGVpdGhlciBgbG9hZEJhbGFuY2VyQXJuYCBvciBgbG9hZEJhbGFuY2VyVGFnc2AnKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkQmFsYW5jZXIgPSBhd2FpdCAoYXdhaXQgTG9hZEJhbGFuY2VyUHJvdmlkZXIuZ2V0Q2xpZW50KHRoaXMuYXdzLCBxdWVyeSkpLmdldExvYWRCYWxhbmNlcigpO1xuXG4gICAgY29uc3QgaXBBZGRyZXNzVHlwZSA9XG4gICAgICBsb2FkQmFsYW5jZXIuSXBBZGRyZXNzVHlwZSA9PT0gJ2lwdjQnID8gTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZS5JUFY0IDogTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZS5EVUFMX1NUQUNLO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybjogbG9hZEJhbGFuY2VyLkxvYWRCYWxhbmNlckFybiEsXG4gICAgICBsb2FkQmFsYW5jZXJDYW5vbmljYWxIb3N0ZWRab25lSWQ6IGxvYWRCYWxhbmNlci5DYW5vbmljYWxIb3N0ZWRab25lSWQhLFxuICAgICAgbG9hZEJhbGFuY2VyRG5zTmFtZTogbG9hZEJhbGFuY2VyLkROU05hbWUhLFxuICAgICAgdnBjSWQ6IGxvYWRCYWxhbmNlci5WcGNJZCEsXG4gICAgICBzZWN1cml0eUdyb3VwSWRzOiBsb2FkQmFsYW5jZXIuU2VjdXJpdHlHcm91cHMgPz8gW10sXG4gICAgICBpcEFkZHJlc3NUeXBlOiBpcEFkZHJlc3NUeXBlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIGNvbnRleHQgaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyKSB7XG4gIH1cblxuICBhc3luYyBnZXRWYWx1ZShxdWVyeTogTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkpOiBQcm9taXNlPExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlPiB7XG4gICAgaWYgKCFxdWVyeS5saXN0ZW5lckFybiAmJiAhcXVlcnkubG9hZEJhbGFuY2VyQXJuICYmICFxdWVyeS5sb2FkQmFsYW5jZXJUYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoXG4gICAgICAgICdUaGUgbG9hZCBiYWxhbmNlciBsaXN0ZW5lciBxdWVyeSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIG9mOiBgbGlzdGVuZXJBcm5gLCBgbG9hZEJhbGFuY2VyQXJuYCBvciBgbG9hZEJhbGFuY2VyVGFnc2AnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IExvYWRCYWxhbmNlclByb3ZpZGVyLmdldENsaWVudCh0aGlzLmF3cywgcXVlcnkpKS5nZXRMaXN0ZW5lcigpO1xuICB9XG59XG5cbmNsYXNzIExvYWRCYWxhbmNlclByb3ZpZGVyIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBnZXRDbGllbnQoXG4gICAgYXdzOiBTZGtQcm92aWRlcixcbiAgICBxdWVyeTogTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnksXG4gICk6IFByb21pc2U8TG9hZEJhbGFuY2VyUHJvdmlkZXI+IHtcbiAgICBjb25zdCBjbGllbnQgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayhhd3MsIHF1ZXJ5KSkuZWxidjIoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsaXN0ZW5lciA9IHF1ZXJ5Lmxpc3RlbmVyQXJuXG4gICAgICAgID8gLy8gQXNzZXJ0IHdlJ3JlIHN1cmUgdGhlcmUncyBhdCBsZWFzdCBvbmUgc28gaXQgdGhyb3dzIGlmIG5vdFxuICAgICAgICAoYXdhaXQgY2xpZW50LmRlc2NyaWJlTGlzdGVuZXJzKHsgTGlzdGVuZXJBcm5zOiBbcXVlcnkubGlzdGVuZXJBcm5dIH0pKS5MaXN0ZW5lcnMhWzBdIVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBuZXcgTG9hZEJhbGFuY2VyUHJvdmlkZXIoXG4gICAgICAgIGNsaWVudCxcbiAgICAgICAgeyAuLi5xdWVyeSwgbG9hZEJhbGFuY2VyQXJuOiBsaXN0ZW5lcj8uTG9hZEJhbGFuY2VyQXJuIHx8IHF1ZXJ5LmxvYWRCYWxhbmNlckFybiB9LFxuICAgICAgICBsaXN0ZW5lcixcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYE5vIGxvYWQgYmFsYW5jZXIgbGlzdGVuZXJzIGZvdW5kIG1hdGNoaW5nIGFybiAke3F1ZXJ5Lmxpc3RlbmVyQXJufWApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBJRWxhc3RpY0xvYWRCYWxhbmNpbmdWMkNsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlcjogTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5lcj86IExpc3RlbmVyLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMb2FkQmFsYW5jZXIoKTogUHJvbWlzZTxMb2FkQmFsYW5jZXI+IHtcbiAgICBjb25zdCBsb2FkQmFsYW5jZXJzID0gYXdhaXQgdGhpcy5nZXRMb2FkQmFsYW5jZXJzKCk7XG5cbiAgICBpZiAobG9hZEJhbGFuY2Vycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgTm8gbG9hZCBiYWxhbmNlcnMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcil9YCk7XG4gICAgfVxuXG4gICAgaWYgKGxvYWRCYWxhbmNlcnMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKFxuICAgICAgICBgTXVsdGlwbGUgbG9hZCBiYWxhbmNlcnMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcil9IC0gcGxlYXNlIHByb3ZpZGUgbW9yZSBzcGVjaWZpYyBjcml0ZXJpYWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBsb2FkQmFsYW5jZXJzWzBdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExpc3RlbmVyKCk6IFByb21pc2U8TG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAodGhpcy5saXN0ZW5lcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbG9hZEJhbGFuY2VyID0gYXdhaXQgdGhpcy5nZXRMb2FkQmFsYW5jZXIoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsaXN0ZW5lckFybjogdGhpcy5saXN0ZW5lci5MaXN0ZW5lckFybiEsXG4gICAgICAgICAgbGlzdGVuZXJQb3J0OiB0aGlzLmxpc3RlbmVyLlBvcnQhLFxuICAgICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IGxvYWRCYWxhbmNlci5TZWN1cml0eUdyb3VwcyB8fCBbXSxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYE5vIGFzc29jaWF0ZWQgbG9hZCBiYWxhbmNlciBmb3VuZCBmb3IgbGlzdGVuZXIgYXJuICR7dGhpcy5maWx0ZXIubGlzdGVuZXJBcm59YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IGF3YWl0IHRoaXMuZ2V0TG9hZEJhbGFuY2VycygpO1xuICAgIGlmIChsb2FkQmFsYW5jZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKFxuICAgICAgICBgTm8gYXNzb2NpYXRlZCBsb2FkIGJhbGFuY2VycyBmb3VuZCBmb3IgbG9hZCBiYWxhbmNlciBsaXN0ZW5lciBxdWVyeSAke0pTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ZW5lcnMgPSAoYXdhaXQgdGhpcy5nZXRMaXN0ZW5lcnNGb3JMb2FkQmFsYW5jZXJzKGxvYWRCYWxhbmNlcnMpKS5maWx0ZXIoKGxpc3RlbmVyKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoIXRoaXMuZmlsdGVyLmxpc3RlbmVyUG9ydCB8fCBsaXN0ZW5lci5Qb3J0ID09PSB0aGlzLmZpbHRlci5saXN0ZW5lclBvcnQpICYmXG4gICAgICAgICghdGhpcy5maWx0ZXIubGlzdGVuZXJQcm90b2NvbCB8fCBsaXN0ZW5lci5Qcm90b2NvbCA9PT0gdGhpcy5maWx0ZXIubGlzdGVuZXJQcm90b2NvbClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpZiAobGlzdGVuZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBObyBsb2FkIGJhbGFuY2VyIGxpc3RlbmVycyBmb3VuZCBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyKX1gKTtcbiAgICB9XG5cbiAgICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihcbiAgICAgICAgYE11bHRpcGxlIGxvYWQgYmFsYW5jZXIgbGlzdGVuZXJzIGZvdW5kIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXIpfSAtIHBsZWFzZSBwcm92aWRlIG1vcmUgc3BlY2lmaWMgY3JpdGVyaWFgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGlzdGVuZXJBcm46IGxpc3RlbmVyc1swXS5MaXN0ZW5lckFybiEsXG4gICAgICBsaXN0ZW5lclBvcnQ6IGxpc3RlbmVyc1swXS5Qb3J0ISxcbiAgICAgIHNlY3VyaXR5R3JvdXBJZHM6XG4gICAgICAgIGxvYWRCYWxhbmNlcnMuZmluZCgobGIpID0+IGxpc3RlbmVyc1swXS5Mb2FkQmFsYW5jZXJBcm4gPT09IGxiLkxvYWRCYWxhbmNlckFybik/LlNlY3VyaXR5R3JvdXBzIHx8IFtdLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldExvYWRCYWxhbmNlcnMoKSB7XG4gICAgY29uc3QgbG9hZEJhbGFuY2VyQXJucyA9IHRoaXMuZmlsdGVyLmxvYWRCYWxhbmNlckFybiA/IFt0aGlzLmZpbHRlci5sb2FkQmFsYW5jZXJBcm5dIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxvYWRCYWxhbmNlcnMgPSAoXG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5wYWdpbmF0ZURlc2NyaWJlTG9hZEJhbGFuY2Vycyh7XG4gICAgICAgIExvYWRCYWxhbmNlckFybnM6IGxvYWRCYWxhbmNlckFybnMsXG4gICAgICB9KVxuICAgICkuZmlsdGVyKChsYikgPT4gbGIuVHlwZSA9PT0gdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyVHlwZSk7XG5cbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeVRhZ3MobG9hZEJhbGFuY2Vycyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZpbHRlckJ5VGFncyhsb2FkQmFsYW5jZXJzOiBMb2FkQmFsYW5jZXJbXSk6IFByb21pc2U8TG9hZEJhbGFuY2VyW10+IHtcbiAgICBpZiAoIXRoaXMuZmlsdGVyLmxvYWRCYWxhbmNlclRhZ3MpIHtcbiAgICAgIHJldHVybiBsb2FkQmFsYW5jZXJzO1xuICAgIH1cbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZGVzY3JpYmVUYWdzKGxvYWRCYWxhbmNlcnMubWFwKChsYikgPT4gbGIuTG9hZEJhbGFuY2VyQXJuISkpKVxuICAgICAgLmZpbHRlcigodGFnRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgLy8gRm9yIGV2ZXJ5IHRhZyBpbiB0aGUgZmlsdGVyLCB0aGVyZSBpcyBzb21lIHRhZyBpbiB0aGUgTEIgdGhhdCBtYXRjaGVzIGl0LlxuICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgdGhlIHNldCBvZiB0YWdzIGluIHRoZSBmaWx0ZXIgaXMgYSBzdWJzZXQgb2YgdGhlIHNldCBvZiB0YWdzIGluIHRoZSBMQi5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLmxvYWRCYWxhbmNlclRhZ3MhLmV2ZXJ5KChmaWx0ZXIpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGFnRGVzY3JpcHRpb24uVGFncz8uc29tZSgodGFnKSA9PlxuICAgICAgICAgICAgZmlsdGVyLmtleSA9PT0gdGFnLktleSAmJiBmaWx0ZXIudmFsdWUgPT09IHRhZy5WYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5mbGF0TWFwKCh0YWcpID0+IGxvYWRCYWxhbmNlcnMuZmlsdGVyKChsb2FkQmFsYW5jZXIpID0+IHRhZy5SZXNvdXJjZUFybiA9PT0gbG9hZEJhbGFuY2VyLkxvYWRCYWxhbmNlckFybikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGFnIGRlc2NyaXB0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc291cmNlcy4gVGhlIEFQSSBkb2Vzbid0IHN1cHBvcnRcbiAgICogcGFnaW5hdGlvbiwgc28gdGhpcyBmdW5jdGlvbiBicmVha3MgdGhlIHJlc291cmNlIGxpc3QgaW50byBjaHVua3MgYW5kIGlzc3Vlc1xuICAgKiB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdHMuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGRlc2NyaWJlVGFncyhyZXNvdXJjZUFybnM6IHN0cmluZ1tdKTogUHJvbWlzZTxUYWdEZXNjcmlwdGlvbltdPiB7XG4gICAgLy8gTWF4IG9mIDIwIHJlc291cmNlIGFybnMgcGVyIHJlcXVlc3QuXG4gICAgY29uc3QgY2h1bmtTaXplID0gMjA7XG4gICAgY29uc3QgdGFncyA9IEFycmF5PFRhZ0Rlc2NyaXB0aW9uPigpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzb3VyY2VBcm5zLmxlbmd0aDsgaSArPSBjaHVua1NpemUpIHtcbiAgICAgIGNvbnN0IGNodW5rID0gcmVzb3VyY2VBcm5zLnNsaWNlKGksIE1hdGgubWluKGkgKyBjaHVua1NpemUsIHJlc291cmNlQXJucy5sZW5ndGgpKTtcbiAgICAgIGNvbnN0IGNodW5rVGFncyA9IGF3YWl0IHRoaXMuY2xpZW50LmRlc2NyaWJlVGFncyh7XG4gICAgICAgIFJlc291cmNlQXJuczogY2h1bmssXG4gICAgICB9KTtcblxuICAgICAgdGFncy5wdXNoKC4uLihjaHVua1RhZ3MuVGFnRGVzY3JpcHRpb25zIHx8IFtdKSk7XG4gICAgfVxuICAgIHJldHVybiB0YWdzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRMaXN0ZW5lcnNGb3JMb2FkQmFsYW5jZXJzKGxvYWRCYWxhbmNlcnM6IExvYWRCYWxhbmNlcltdKTogUHJvbWlzZTxMaXN0ZW5lcltdPiB7XG4gICAgY29uc3QgbGlzdGVuZXJzOiBMaXN0ZW5lcltdID0gW107XG4gICAgZm9yIChjb25zdCBsb2FkQmFsYW5jZXIgb2YgbG9hZEJhbGFuY2Vycy5tYXAoKGxiKSA9PiBsYi5Mb2FkQmFsYW5jZXJBcm4pKSB7XG4gICAgICBsaXN0ZW5lcnMucHVzaCguLi4oYXdhaXQgdGhpcy5jbGllbnQucGFnaW5hdGVEZXNjcmliZUxpc3RlbmVycyh7IExvYWRCYWxhbmNlckFybjogbG9hZEJhbGFuY2VyIH0pKSk7XG4gICAgfVxuICAgIHJldHVybiBsaXN0ZW5lcnM7XG4gIH1cbn1cbiJdfQ==
@@ -2,19 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SecurityGroupContextProviderPlugin = void 0;
4
4
  exports.hasAllTrafficEgress = hasAllTrafficEgress;
5
+ const api_1 = require("../../../@aws-cdk/tmp-toolkit-helpers/src/api");
5
6
  const sdk_provider_1 = require("../api/aws-auth/sdk-provider");
6
- const error_1 = require("../toolkit/error");
7
7
  class SecurityGroupContextProviderPlugin {
8
8
  constructor(aws) {
9
9
  this.aws = aws;
10
10
  }
11
11
  async getValue(args) {
12
- var _a;
13
12
  if (args.securityGroupId && args.securityGroupName) {
14
- throw new error_1.ContextProviderError("'securityGroupId' and 'securityGroupName' can not be specified both when looking up a security group");
13
+ throw new api_1.ContextProviderError("'securityGroupId' and 'securityGroupName' can not be specified both when looking up a security group");
15
14
  }
16
15
  if (!args.securityGroupId && !args.securityGroupName) {
17
- throw new error_1.ContextProviderError("'securityGroupId' or 'securityGroupName' must be specified to look up a security group");
16
+ throw new api_1.ContextProviderError("'securityGroupId' or 'securityGroupName' must be specified to look up a security group");
18
17
  }
19
18
  const ec2 = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).ec2();
20
19
  const filters = [];
@@ -34,12 +33,12 @@ class SecurityGroupContextProviderPlugin {
34
33
  GroupIds: args.securityGroupId ? [args.securityGroupId] : undefined,
35
34
  Filters: filters.length > 0 ? filters : undefined,
36
35
  });
37
- const securityGroups = (_a = response.SecurityGroups) !== null && _a !== void 0 ? _a : [];
36
+ const securityGroups = response.SecurityGroups ?? [];
38
37
  if (securityGroups.length === 0) {
39
- throw new error_1.ContextProviderError(`No security groups found matching ${JSON.stringify(args)}`);
38
+ throw new api_1.ContextProviderError(`No security groups found matching ${JSON.stringify(args)}`);
40
39
  }
41
40
  if (securityGroups.length > 1) {
42
- throw new error_1.ContextProviderError(`More than one security groups found matching ${JSON.stringify(args)}`);
41
+ throw new api_1.ContextProviderError(`More than one security groups found matching ${JSON.stringify(args)}`);
43
42
  }
44
43
  const [securityGroup] = securityGroups;
45
44
  return {
@@ -53,18 +52,17 @@ exports.SecurityGroupContextProviderPlugin = SecurityGroupContextProviderPlugin;
53
52
  * @internal
54
53
  */
55
54
  function hasAllTrafficEgress(securityGroup) {
56
- var _a, _b, _c;
57
55
  let hasAllTrafficCidrV4 = false;
58
56
  let hasAllTrafficCidrV6 = false;
59
- for (const ipPermission of (_a = securityGroup.IpPermissionsEgress) !== null && _a !== void 0 ? _a : []) {
57
+ for (const ipPermission of securityGroup.IpPermissionsEgress ?? []) {
60
58
  const isAllProtocols = ipPermission.IpProtocol === '-1';
61
- if (isAllProtocols && ((_b = ipPermission.IpRanges) === null || _b === void 0 ? void 0 : _b.some((m) => m.CidrIp === '0.0.0.0/0'))) {
59
+ if (isAllProtocols && ipPermission.IpRanges?.some((m) => m.CidrIp === '0.0.0.0/0')) {
62
60
  hasAllTrafficCidrV4 = true;
63
61
  }
64
- if (isAllProtocols && ((_c = ipPermission.Ipv6Ranges) === null || _c === void 0 ? void 0 : _c.some((m) => m.CidrIpv6 === '::/0'))) {
62
+ if (isAllProtocols && ipPermission.Ipv6Ranges?.some((m) => m.CidrIpv6 === '::/0')) {
65
63
  hasAllTrafficCidrV6 = true;
66
64
  }
67
65
  }
68
66
  return hasAllTrafficCidrV4 && hasAllTrafficCidrV6;
69
67
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjdXJpdHktZ3JvdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdFQSxrREFpQkM7QUE5RUQsK0RBQXdGO0FBRXhGLDRDQUF3RDtBQUV4RCxNQUFhLGtDQUFrQztJQUM3QyxZQUE2QixHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQStCOztRQUM1QyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLDRCQUFvQixDQUM1QixzR0FBc0csQ0FDdkcsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JELE1BQU0sSUFBSSw0QkFBb0IsQ0FBQyx3RkFBd0YsQ0FBQyxDQUFDO1FBQzNILENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxxQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFakUsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ3JCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzthQUNqQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsc0JBQXNCLENBQUM7WUFDaEQsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ25FLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2xELENBQUMsQ0FBQztRQUVILE1BQU0sY0FBYyxHQUFHLE1BQUEsUUFBUSxDQUFDLGNBQWMsbUNBQUksRUFBRSxDQUFDO1FBQ3JELElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksNEJBQW9CLENBQUMscUNBQXFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLDRCQUFvQixDQUFDLGdEQUFnRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RyxDQUFDO1FBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUV2QyxPQUFPO1lBQ0wsZUFBZSxFQUFFLGFBQWEsQ0FBQyxPQUFRO1lBQ3ZDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztTQUNyRCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcERELGdGQW9EQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsYUFBNEI7O0lBQzlELElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBRWhDLEtBQUssTUFBTSxZQUFZLElBQUksTUFBQSxhQUFhLENBQUMsbUJBQW1CLG1DQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDO1FBRXhELElBQUksY0FBYyxLQUFJLE1BQUEsWUFBWSxDQUFDLFFBQVEsMENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFBLEVBQUUsQ0FBQztZQUNuRixtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksY0FBYyxLQUFJLE1BQUEsWUFBWSxDQUFDLFVBQVUsMENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFBLEVBQUUsQ0FBQztZQUNsRixtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBTZWN1cml0eUdyb3VwQ29udGV4dFJlc3BvbnNlIH0gZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB0eXBlIHsgRmlsdGVyLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L2Vycm9yJztcblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIGFzeW5jIGdldFZhbHVlKGFyZ3M6IFNlY3VyaXR5R3JvdXBDb250ZXh0UXVlcnkpOiBQcm9taXNlPFNlY3VyaXR5R3JvdXBDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAoYXJncy5zZWN1cml0eUdyb3VwSWQgJiYgYXJncy5zZWN1cml0eUdyb3VwTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKFxuICAgICAgICBcIidzZWN1cml0eUdyb3VwSWQnIGFuZCAnc2VjdXJpdHlHcm91cE5hbWUnIGNhbiBub3QgYmUgc3BlY2lmaWVkIGJvdGggd2hlbiBsb29raW5nIHVwIGEgc2VjdXJpdHkgZ3JvdXBcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFhcmdzLnNlY3VyaXR5R3JvdXBJZCAmJiAhYXJncy5zZWN1cml0eUdyb3VwTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKFwiJ3NlY3VyaXR5R3JvdXBJZCcgb3IgJ3NlY3VyaXR5R3JvdXBOYW1lJyBtdXN0IGJlIHNwZWNpZmllZCB0byBsb29rIHVwIGEgc2VjdXJpdHkgZ3JvdXBcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcblxuICAgIGNvbnN0IGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgaWYgKGFyZ3MudnBjSWQpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgIE5hbWU6ICd2cGMtaWQnLFxuICAgICAgICBWYWx1ZXM6IFthcmdzLnZwY0lkXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoYXJncy5zZWN1cml0eUdyb3VwTmFtZSkge1xuICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgTmFtZTogJ2dyb3VwLW5hbWUnLFxuICAgICAgICBWYWx1ZXM6IFthcmdzLnNlY3VyaXR5R3JvdXBOYW1lXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZWMyLmRlc2NyaWJlU2VjdXJpdHlHcm91cHMoe1xuICAgICAgR3JvdXBJZHM6IGFyZ3Muc2VjdXJpdHlHcm91cElkID8gW2FyZ3Muc2VjdXJpdHlHcm91cElkXSA6IHVuZGVmaW5lZCxcbiAgICAgIEZpbHRlcnM6IGZpbHRlcnMubGVuZ3RoID4gMCA/IGZpbHRlcnMgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZWN1cml0eUdyb3VwcyA9IHJlc3BvbnNlLlNlY3VyaXR5R3JvdXBzID8/IFtdO1xuICAgIGlmIChzZWN1cml0eUdyb3Vwcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgTm8gc2VjdXJpdHkgZ3JvdXBzIGZvdW5kIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YCk7XG4gICAgfVxuXG4gICAgaWYgKHNlY3VyaXR5R3JvdXBzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgTW9yZSB0aGFuIG9uZSBzZWN1cml0eSBncm91cHMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBbc2VjdXJpdHlHcm91cF0gPSBzZWN1cml0eUdyb3VwcztcblxuICAgIHJldHVybiB7XG4gICAgICBzZWN1cml0eUdyb3VwSWQ6IHNlY3VyaXR5R3JvdXAuR3JvdXBJZCEsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBoYXNBbGxUcmFmZmljRWdyZXNzKHNlY3VyaXR5R3JvdXApLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0FsbFRyYWZmaWNFZ3Jlc3Moc2VjdXJpdHlHcm91cDogU2VjdXJpdHlHcm91cCkge1xuICBsZXQgaGFzQWxsVHJhZmZpY0NpZHJWNCA9IGZhbHNlO1xuICBsZXQgaGFzQWxsVHJhZmZpY0NpZHJWNiA9IGZhbHNlO1xuXG4gIGZvciAoY29uc3QgaXBQZXJtaXNzaW9uIG9mIHNlY3VyaXR5R3JvdXAuSXBQZXJtaXNzaW9uc0VncmVzcyA/PyBbXSkge1xuICAgIGNvbnN0IGlzQWxsUHJvdG9jb2xzID0gaXBQZXJtaXNzaW9uLklwUHJvdG9jb2wgPT09ICctMSc7XG5cbiAgICBpZiAoaXNBbGxQcm90b2NvbHMgJiYgaXBQZXJtaXNzaW9uLklwUmFuZ2VzPy5zb21lKChtKSA9PiBtLkNpZHJJcCA9PT0gJzAuMC4wLjAvMCcpKSB7XG4gICAgICBoYXNBbGxUcmFmZmljQ2lkclY0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNBbGxQcm90b2NvbHMgJiYgaXBQZXJtaXNzaW9uLklwdjZSYW5nZXM/LnNvbWUoKG0pID0+IG0uQ2lkcklwdjYgPT09ICc6Oi8wJykpIHtcbiAgICAgIGhhc0FsbFRyYWZmaWNDaWRyVjYgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBoYXNBbGxUcmFmZmljQ2lkclY0ICYmIGhhc0FsbFRyYWZmaWNDaWRyVjY7XG59XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjdXJpdHktZ3JvdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdFQSxrREFpQkM7QUE5RUQsdUVBQXFGO0FBQ3JGLCtEQUF3RjtBQUd4RixNQUFhLGtDQUFrQztJQUM3QyxZQUE2QixHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQStCO1FBQzVDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksMEJBQW9CLENBQzVCLHNHQUFzRyxDQUN2RyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckQsTUFBTSxJQUFJLDBCQUFvQixDQUFDLHdGQUF3RixDQUFDLENBQUM7UUFDM0gsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVqRSxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLElBQUksRUFBRSxRQUFRO2dCQUNkLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDckIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztZQUNoRCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDbkUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDckQsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSwwQkFBb0IsQ0FBQyxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUVELElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksMEJBQW9CLENBQUMsZ0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBRXZDLE9BQU87WUFDTCxlQUFlLEVBQUUsYUFBYSxDQUFDLE9BQVE7WUFDdkMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1NBQ3JELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwREQsZ0ZBb0RDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxhQUE0QjtJQUM5RCxJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNoQyxJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUVoQyxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztRQUV4RCxJQUFJLGNBQWMsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ25GLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBSSxjQUFjLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsRixtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBTZWN1cml0eUdyb3VwQ29udGV4dFJlc3BvbnNlIH0gZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB0eXBlIHsgRmlsdGVyLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgeyBDb250ZXh0UHJvdmlkZXJFcnJvciB9IGZyb20gJy4uLy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaSc7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlHcm91cENvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlcikge1xuICB9XG5cbiAgYXN5bmMgZ2V0VmFsdWUoYXJnczogU2VjdXJpdHlHcm91cENvbnRleHRRdWVyeSk6IFByb21pc2U8U2VjdXJpdHlHcm91cENvbnRleHRSZXNwb25zZT4ge1xuICAgIGlmIChhcmdzLnNlY3VyaXR5R3JvdXBJZCAmJiBhcmdzLnNlY3VyaXR5R3JvdXBOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoXG4gICAgICAgIFwiJ3NlY3VyaXR5R3JvdXBJZCcgYW5kICdzZWN1cml0eUdyb3VwTmFtZScgY2FuIG5vdCBiZSBzcGVjaWZpZWQgYm90aCB3aGVuIGxvb2tpbmcgdXAgYSBzZWN1cml0eSBncm91cFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWFyZ3Muc2VjdXJpdHlHcm91cElkICYmICFhcmdzLnNlY3VyaXR5R3JvdXBOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoXCInc2VjdXJpdHlHcm91cElkJyBvciAnc2VjdXJpdHlHcm91cE5hbWUnIG11c3QgYmUgc3BlY2lmaWVkIHRvIGxvb2sgdXAgYSBzZWN1cml0eSBncm91cFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBlYzIgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayh0aGlzLmF3cywgYXJncykpLmVjMigpO1xuXG4gICAgY29uc3QgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgICBpZiAoYXJncy52cGNJZCkge1xuICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgTmFtZTogJ3ZwYy1pZCcsXG4gICAgICAgIFZhbHVlczogW2FyZ3MudnBjSWRdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChhcmdzLnNlY3VyaXR5R3JvdXBOYW1lKSB7XG4gICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICBOYW1lOiAnZ3JvdXAtbmFtZScsXG4gICAgICAgIFZhbHVlczogW2FyZ3Muc2VjdXJpdHlHcm91cE5hbWVdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlYzIuZGVzY3JpYmVTZWN1cml0eUdyb3Vwcyh7XG4gICAgICBHcm91cElkczogYXJncy5zZWN1cml0eUdyb3VwSWQgPyBbYXJncy5zZWN1cml0eUdyb3VwSWRdIDogdW5kZWZpbmVkLFxuICAgICAgRmlsdGVyczogZmlsdGVycy5sZW5ndGggPiAwID8gZmlsdGVycyA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBzID0gcmVzcG9uc2UuU2VjdXJpdHlHcm91cHMgPz8gW107XG4gICAgaWYgKHNlY3VyaXR5R3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBObyBzZWN1cml0eSBncm91cHMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBNb3JlIHRoYW4gb25lIHNlY3VyaXR5IGdyb3VwcyBmb3VuZCBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfWApO1xuICAgIH1cblxuICAgIGNvbnN0IFtzZWN1cml0eUdyb3VwXSA9IHNlY3VyaXR5R3JvdXBzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlY3VyaXR5R3JvdXBJZDogc2VjdXJpdHlHcm91cC5Hcm91cElkISxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IGhhc0FsbFRyYWZmaWNFZ3Jlc3Moc2VjdXJpdHlHcm91cCksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzQWxsVHJhZmZpY0VncmVzcyhzZWN1cml0eUdyb3VwOiBTZWN1cml0eUdyb3VwKSB7XG4gIGxldCBoYXNBbGxUcmFmZmljQ2lkclY0ID0gZmFsc2U7XG4gIGxldCBoYXNBbGxUcmFmZmljQ2lkclY2ID0gZmFsc2U7XG5cbiAgZm9yIChjb25zdCBpcFBlcm1pc3Npb24gb2Ygc2VjdXJpdHlHcm91cC5JcFBlcm1pc3Npb25zRWdyZXNzID8/IFtdKSB7XG4gICAgY29uc3QgaXNBbGxQcm90b2NvbHMgPSBpcFBlcm1pc3Npb24uSXBQcm90b2NvbCA9PT0gJy0xJztcblxuICAgIGlmIChpc0FsbFByb3RvY29scyAmJiBpcFBlcm1pc3Npb24uSXBSYW5nZXM/LnNvbWUoKG0pID0+IG0uQ2lkcklwID09PSAnMC4wLjAuMC8wJykpIHtcbiAgICAgIGhhc0FsbFRyYWZmaWNDaWRyVjQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpc0FsbFByb3RvY29scyAmJiBpcFBlcm1pc3Npb24uSXB2NlJhbmdlcz8uc29tZSgobSkgPT4gbS5DaWRySXB2NiA9PT0gJzo6LzAnKSkge1xuICAgICAgaGFzQWxsVHJhZmZpY0NpZHJWNiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGhhc0FsbFRyYWZmaWNDaWRyVjQgJiYgaGFzQWxsVHJhZmZpY0NpZHJWNjtcbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import type { SSMParameterContextQuery } from '@aws-cdk/cloud-assembly-schema';
2
+ import type { IContextProviderMessages } from '.';
2
3
  import { type SdkProvider } from '../api/aws-auth/sdk-provider';
3
4
  import type { ContextProviderPlugin } from '../api/plugin';
4
5
  /**
@@ -6,7 +7,8 @@ import type { ContextProviderPlugin } from '../api/plugin';
6
7
  */
7
8
  export declare class SSMContextProviderPlugin implements ContextProviderPlugin {
8
9
  private readonly aws;
9
- constructor(aws: SdkProvider);
10
+ private readonly io;
11
+ constructor(aws: SdkProvider, io: IContextProviderMessages);
10
12
  getValue(args: SSMParameterContextQuery): Promise<unknown>;
11
13
  /**
12
14
  * Gets the value of an SSM Parameter, while not throwin if the parameter does not exist.