@rio-cloud/cdk-v2-constructs 4.25.0 → 4.27.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.
package/API.md CHANGED
@@ -8346,6 +8346,7 @@ const datadogUsageMonitoringProps: DatadogUsageMonitoringProps = { ... }
8346
8346
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DatadogUsageMonitoringProps.property.organization">organization</a></code> | <code>string</code> | *No description.* |
8347
8347
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DatadogUsageMonitoringProps.property.serviceName">serviceName</a></code> | <code>string</code> | *No description.* |
8348
8348
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DatadogUsageMonitoringProps.property.alertType">alertType</a></code> | <code>string</code> | *No description.* |
8349
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.DatadogUsageMonitoringProps.property.notification">notification</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.INotification</code> | *No description.* |
8349
8350
 
8350
8351
  ---
8351
8352
 
@@ -8369,7 +8370,9 @@ public readonly serviceName: string;
8369
8370
 
8370
8371
  ---
8371
8372
 
8372
- ##### `alertType`<sup>Optional</sup> <a name="alertType" id="@rio-cloud/cdk-v2-constructs.DatadogUsageMonitoringProps.property.alertType"></a>
8373
+ ##### ~~`alertType`~~<sup>Optional</sup> <a name="alertType" id="@rio-cloud/cdk-v2-constructs.DatadogUsageMonitoringProps.property.alertType"></a>
8374
+
8375
+ - *Deprecated:* not supported anymore. use `notification` instead.
8373
8376
 
8374
8377
  ```typescript
8375
8378
  public readonly alertType: string;
@@ -8379,6 +8382,16 @@ public readonly alertType: string;
8379
8382
 
8380
8383
  ---
8381
8384
 
8385
+ ##### `notification`<sup>Optional</sup> <a name="notification" id="@rio-cloud/cdk-v2-constructs.DatadogUsageMonitoringProps.property.notification"></a>
8386
+
8387
+ ```typescript
8388
+ public readonly notification: INotification;
8389
+ ```
8390
+
8391
+ - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.INotification
8392
+
8393
+ ---
8394
+
8382
8395
  ### FargateTaskDefinitionProps <a name="FargateTaskDefinitionProps" id="@rio-cloud/cdk-v2-constructs.FargateTaskDefinitionProps"></a>
8383
8396
 
8384
8397
  #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.FargateTaskDefinitionProps.Initializer"></a>
@@ -12745,11 +12758,25 @@ const watchfulProps: watchfulv2.WatchfulProps = { ... }
12745
12758
 
12746
12759
  | **Name** | **Type** | **Description** |
12747
12760
  | --- | --- | --- |
12761
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.createCasesFromErrorLogMonitors">createCasesFromErrorLogMonitors</a></code> | <code>boolean</code> | Enable error log monitors creating cases in Datadog. |
12748
12762
  | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.notification">notification</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.INotification</code> | Set the way how monitors should notify in case of an alert. |
12749
12763
  | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.serviceName">serviceName</a></code> | <code>string</code> | The service name. |
12750
12764
 
12751
12765
  ---
12752
12766
 
12767
+ ##### `createCasesFromErrorLogMonitors`<sup>Optional</sup> <a name="createCasesFromErrorLogMonitors" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.createCasesFromErrorLogMonitors"></a>
12768
+
12769
+ ```typescript
12770
+ public readonly createCasesFromErrorLogMonitors: boolean;
12771
+ ```
12772
+
12773
+ - *Type:* boolean
12774
+ - *Default:* {@link false }
12775
+
12776
+ Enable error log monitors creating cases in Datadog.
12777
+
12778
+ ---
12779
+
12753
12780
  ##### `notification`<sup>Optional</sup> <a name="notification" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.notification"></a>
12754
12781
 
12755
12782
  ```typescript
@@ -13036,6 +13063,69 @@ backup.BackupPolicy.apply(target: IConstruct, criticality: Criticality)
13036
13063
 
13037
13064
 
13038
13065
 
13066
+ ### DatadogCaseNotification <a name="DatadogCaseNotification" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogCaseNotification"></a>
13067
+
13068
+ - *Implements:* @rio-cloud/cdk-v2-constructs.datadogv2.INotification
13069
+
13070
+ An {@link INotification}, that uses the team_identifier to create a case in a team project in Datadogs CaseManagement.
13071
+
13072
+ It can be used to not lose e.g. an log alert, that is recovering
13073
+ automatically after a while.
13074
+
13075
+ To use it, setup a project in Datadog case management and configure
13076
+ the integration handle according to the naming convention.
13077
+
13078
+ #### Initializers <a name="Initializers" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogCaseNotification.Initializer"></a>
13079
+
13080
+ ```typescript
13081
+ import { datadogv2 } from '@rio-cloud/cdk-v2-constructs'
13082
+
13083
+ new datadogv2.DatadogCaseNotification()
13084
+ ```
13085
+
13086
+ | **Name** | **Type** | **Description** |
13087
+ | --- | --- | --- |
13088
+
13089
+ ---
13090
+
13091
+ #### Methods <a name="Methods" id="Methods"></a>
13092
+
13093
+ | **Name** | **Description** |
13094
+ | --- | --- |
13095
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogCaseNotification.generateMessageAnnotation">generateMessageAnnotation</a></code> | Example - route all pipeline monitors to a specific channel: ```ts generateMessageAnnotation(monitor: DatadogMonitor): string { if (monitor.name.indexOf('pipeline') > -1) { return '@slack-team-pipeline-alert-channel'; } else { return '@slack-team-serious-issue-alert-channel'; } } ```. |
13096
+
13097
+ ---
13098
+
13099
+ ##### `generateMessageAnnotation` <a name="generateMessageAnnotation" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogCaseNotification.generateMessageAnnotation"></a>
13100
+
13101
+ ```typescript
13102
+ public generateMessageAnnotation(monitor: DatadogMonitor): string
13103
+ ```
13104
+
13105
+ Example - route all pipeline monitors to a specific channel: ```ts generateMessageAnnotation(monitor: DatadogMonitor): string { if (monitor.name.indexOf('pipeline') > -1) { return '@slack-team-pipeline-alert-channel'; } else { return '@slack-team-serious-issue-alert-channel'; } } ```.
13106
+
13107
+ Example - route issues based on their priority:
13108
+ ```ts
13109
+ generateMessageAnnotation(monitor: DatadogMonitor): string {
13110
+ if (monitor.priority <= 2) {
13111
+ return '@<pager-integration>-team-schedule';
13112
+ } else if (monitor.priority == 3) {
13113
+ return '@slack-team-alert-channel';
13114
+ } else {
13115
+ return NoNotification.DO_NOT_NOTIFY;
13116
+ }
13117
+ }
13118
+ ```
13119
+
13120
+ ###### `monitor`<sup>Required</sup> <a name="monitor" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogCaseNotification.generateMessageAnnotation.parameter.monitor"></a>
13121
+
13122
+ - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.DatadogMonitor
13123
+
13124
+ ---
13125
+
13126
+
13127
+
13128
+
13039
13129
  ### DatadogMonitor <a name="DatadogMonitor" id="@rio-cloud/cdk-v2-constructs.DatadogMonitor"></a>
13040
13130
 
13041
13131
  #### Initializers <a name="Initializers" id="@rio-cloud/cdk-v2-constructs.DatadogMonitor.Initializer"></a>
@@ -14729,7 +14819,7 @@ the app stacks properties.
14729
14819
 
14730
14820
  ### INotification <a name="INotification" id="@rio-cloud/cdk-v2-constructs.datadogv2.INotification"></a>
14731
14821
 
14732
- - *Implemented By:* @rio-cloud/cdk-v2-constructs.datadogv2.DefaultSlackNotification, @rio-cloud/cdk-v2-constructs.datadogv2.NoNotification, @rio-cloud/cdk-v2-constructs.datadogv2.NotificationAggregator, @rio-cloud/cdk-v2-constructs.datadogv2.RioPagingNotification, @rio-cloud/cdk-v2-constructs.datadogv2.SlackNotification, @rio-cloud/cdk-v2-constructs.datadogv2.INotification
14822
+ - *Implemented By:* @rio-cloud/cdk-v2-constructs.datadogv2.DatadogCaseNotification, @rio-cloud/cdk-v2-constructs.datadogv2.DefaultSlackNotification, @rio-cloud/cdk-v2-constructs.datadogv2.NoNotification, @rio-cloud/cdk-v2-constructs.datadogv2.NotificationAggregator, @rio-cloud/cdk-v2-constructs.datadogv2.RioPagingNotification, @rio-cloud/cdk-v2-constructs.datadogv2.SlackNotification, @rio-cloud/cdk-v2-constructs.datadogv2.INotification
14733
14823
 
14734
14824
  Interface to plug in specific notification types for monitors in Datadog.
14735
14825
 
@@ -15026,7 +15116,8 @@ The allowed values for backup criticality levels.
15026
15116
  | **Name** | **Description** |
15027
15117
  | --- | --- |
15028
15118
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.AWS_FIRE_LENS">AWS_FIRE_LENS</a></code> | Forward logs directly to Datadog using AWS FireLens as log router, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=fluentbitandfirelens#log-collection. |
15029
- | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.FORWARDER_LAMBDA">FORWARDER_LAMBDA</a></code> | Store logs in AWS Cloudwatch and use the Datadog log forwarder lambda to forward the logs to Datadog, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=logdriver#log-collection. |
15119
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.FORWARDER_LAMBDA">FORWARDER_LAMBDA</a></code> | Store logs in AWS Cloudwatch and use the RIO customized Datadog log forwarder lambda from the legacy datadog-integration, to forward the logs to Datadog,. |
15120
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.DATADOG_FORWARDER_LAMBDA">DATADOG_FORWARDER_LAMBDA</a></code> | Store logs in AWS Cloudwatch and use the Datadog log forwarder lambda to forward the logs to Datadog, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=logdriver#log-collection. |
15030
15121
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.NONE">NONE</a></code> | Only log to AWS Cloudwatch without forwarding the logs to Datadog. |
15031
15122
 
15032
15123
  ---
@@ -15038,7 +15129,18 @@ Forward logs directly to Datadog using AWS FireLens as log router, see https://d
15038
15129
  ---
15039
15130
 
15040
15131
 
15041
- ##### `FORWARDER_LAMBDA` <a name="FORWARDER_LAMBDA" id="@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.FORWARDER_LAMBDA"></a>
15132
+ ##### ~~`FORWARDER_LAMBDA`~~ <a name="FORWARDER_LAMBDA" id="@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.FORWARDER_LAMBDA"></a>
15133
+
15134
+ - *Deprecated:* use DATADOG_FORWARDER_LAMBDA
15135
+
15136
+ Store logs in AWS Cloudwatch and use the RIO customized Datadog log forwarder lambda from the legacy datadog-integration, to forward the logs to Datadog,.
15137
+
15138
+ > [https://bitbucket.collaboration-man.com/projects/RIODEV/repos/datadog-integration/browse](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/datadog-integration/browse)
15139
+
15140
+ ---
15141
+
15142
+
15143
+ ##### `DATADOG_FORWARDER_LAMBDA` <a name="DATADOG_FORWARDER_LAMBDA" id="@rio-cloud/cdk-v2-constructs.DataDogLoggingMode.DATADOG_FORWARDER_LAMBDA"></a>
15042
15144
 
15043
15145
  Store logs in AWS Cloudwatch and use the Datadog log forwarder lambda to forward the logs to Datadog, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=logdriver#log-collection.
15044
15146
 
@@ -15059,7 +15161,8 @@ Only log to AWS Cloudwatch without forwarding the logs to Datadog.
15059
15161
  | **Name** | **Description** |
15060
15162
  | --- | --- |
15061
15163
  | <code><a href="#@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.AWS_FIRE_LENS">AWS_FIRE_LENS</a></code> | Forward logs directly to Datadog using AWS FireLens as log router, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=fluentbitandfirelens#log-collection. |
15062
- | <code><a href="#@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.FORWARDER_LAMBDA">FORWARDER_LAMBDA</a></code> | Store logs in AWS Cloudwatch and use the Datadog log forwarder lambda to forward the logs to Datadog, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=logdriver#log-collection. |
15164
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.FORWARDER_LAMBDA">FORWARDER_LAMBDA</a></code> | Store logs in AWS Cloudwatch and use the RIO customized Datadog log forwarder lambda from the legacy datadog-integration, to forward the logs to Datadog,. |
15165
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.DATADOG_FORWARDER_LAMBDA">DATADOG_FORWARDER_LAMBDA</a></code> | Store logs in AWS Cloudwatch and use the Datadog log forwarder lambda to forward the logs to Datadog, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=logdriver#log-collection. |
15063
15166
  | <code><a href="#@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.NONE">NONE</a></code> | Only log to AWS Cloudwatch without forwarding the logs to Datadog. |
15064
15167
 
15065
15168
  ---
@@ -15071,7 +15174,18 @@ Forward logs directly to Datadog using AWS FireLens as log router, see https://d
15071
15174
  ---
15072
15175
 
15073
15176
 
15074
- ##### `FORWARDER_LAMBDA` <a name="FORWARDER_LAMBDA" id="@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.FORWARDER_LAMBDA"></a>
15177
+ ##### ~~`FORWARDER_LAMBDA`~~ <a name="FORWARDER_LAMBDA" id="@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.FORWARDER_LAMBDA"></a>
15178
+
15179
+ - *Deprecated:* use DATADOG_FORWARDER_LAMBDA
15180
+
15181
+ Store logs in AWS Cloudwatch and use the RIO customized Datadog log forwarder lambda from the legacy datadog-integration, to forward the logs to Datadog,.
15182
+
15183
+ > [https://bitbucket.collaboration-man.com/projects/RIODEV/repos/datadog-integration/browse](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/datadog-integration/browse)
15184
+
15185
+ ---
15186
+
15187
+
15188
+ ##### `DATADOG_FORWARDER_LAMBDA` <a name="DATADOG_FORWARDER_LAMBDA" id="@rio-cloud/cdk-v2-constructs.fargate.DataDogLoggingMode.DATADOG_FORWARDER_LAMBDA"></a>
15075
15189
 
15076
15190
  Store logs in AWS Cloudwatch and use the Datadog log forwarder lambda to forward the logs to Datadog, see https://docs.datadoghq.com/integrations/ecs_fargate/?tab=logdriver#log-collection.
15077
15191
 
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [4.27.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.26.0&sourceBranch=refs%2Ftags%2Fv4.27.0) (2024-02-07)
6
+
7
+
8
+ ### Features
9
+
10
+ * add support for datadog managed log forwarder ([e42b36b](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/e42b36b2467015ac4527d3e6122e0d934debb675))
11
+
12
+ ## [4.26.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.25.0&sourceBranch=refs%2Ftags%2Fv4.26.0) (2024-02-06)
13
+
14
+
15
+ ### Features
16
+
17
+ * case creation from error log monitors. ([57b82b5](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/57b82b52f263fc66bf7529ef8446b3722da622e6))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * :bug: Fixed issues with firelens non blocking mode ([5da7dd8](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/5da7dd88df29e15dce70e773841a4b56e9736003))
23
+ * snapshot tests with increased version number. ([c71b5fc](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/c71b5fc29b61d3fa21b232cfaa404bd419f3e515))
24
+
5
25
  ## [4.25.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.24.1&sourceBranch=refs%2Ftags%2Fv4.25.0) (2024-02-01)
6
26
 
7
27
 
@@ -1,9 +1,14 @@
1
1
  import * as constructs from 'constructs';
2
2
  import { DatadogOrganization } from '../../../datadog';
3
3
  import { DatadogAlertType } from '../../../datadog/datadog-monitor';
4
+ import { INotification } from '../../../datadogv2';
4
5
  export interface DatadogUsageMonitoringProps {
5
6
  readonly serviceName: string;
7
+ /**
8
+ * @deprecated not supported anymore. use `notification` instead.
9
+ */
6
10
  readonly alertType?: DatadogAlertType;
11
+ readonly notification?: INotification;
7
12
  readonly organization: DatadogOrganization;
8
13
  }
9
14
  /**
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.DatadogUsageMonitoring = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const path = require("path");
7
- const ssm = require("aws-cdk-lib/aws-ssm");
8
7
  const constructs = require("constructs");
9
8
  const datadog_1 = require("../../../datadog");
10
- const datadog_monitor_1 = require("../../../datadog/datadog-monitor");
9
+ const datadogv2_1 = require("../../../datadogv2");
11
10
  const rio_claidometer_1 = require("../../../rio-claidometer");
12
11
  /**
13
12
  * This is a beta construct and is likely to have breaking changes.
@@ -16,7 +15,6 @@ const rio_claidometer_1 = require("../../../rio-claidometer");
16
15
  class DatadogUsageMonitoring extends constructs.Construct {
17
16
  constructor(scope, id, props) {
18
17
  super(scope, id);
19
- const teamName = ssm.StringParameter.fromStringParameterName(this, 'TeamName', '/config/team/name').stringValue;
20
18
  const infrastructureUsageSpikeMonitors = [
21
19
  {
22
20
  humanReadableName: 'infrastructure hosts',
@@ -106,34 +104,29 @@ class DatadogUsageMonitoring extends constructs.Construct {
106
104
  query: 'sum:datadog.estimated_usage.serverless.aws_lambda_functions{*} by {child_org_name}',
107
105
  },
108
106
  ];
107
+ const notification = props.notification ?? new datadogv2_1.DefaultSlackNotification();
109
108
  for (const usageSpikeMonitor of [].concat(infrastructureUsageSpikeMonitors, logManagementUsageSpikeMonitors, apmUsageSpikeMonitors, serverlessUsageSpikeMonitors, syntheticUsageSpikeMonitors)) {
110
- this.createAnomalyMonitorForSpikes(props.serviceName, teamName, usageSpikeMonitor, props.alertType);
109
+ this.createAnomalyMonitorForSpikes(props.serviceName, usageSpikeMonitor, notification);
111
110
  }
112
111
  if (props.organization === 'EU') {
113
112
  addClaidometer(this);
114
113
  }
115
114
  }
116
- createAnomalyMonitorForSpikes(serviceName, teamName, usageSpikeMonitor, alertType) {
117
- return new datadog_monitor_1.DatadogMonitor(this, usageSpikeMonitor.humanReadableName, {
115
+ createAnomalyMonitorForSpikes(serviceName, usageSpikeMonitor, notification) {
116
+ return new datadogv2_1.DatadogMonitor(this, usageSpikeMonitor.humanReadableName, {
117
+ name: `${usageSpikeMonitor.humanReadableName} spike`,
118
118
  serviceName,
119
- alertTypes: alertType ? [alertType] : undefined,
120
- monitor: {
121
- name: `${usageSpikeMonitor.humanReadableName} spike`,
122
- type: 'query alert',
123
- query: `avg(last_12h):anomalies(${usageSpikeMonitor.query}, 'agile', 3, direction='above', interval=120, alert_window='last_30m', seasonality='weekly', timezone='europe/berlin', count_default_zero='true') >= 1`,
124
- message: `[P4] ${usageSpikeMonitor.humanReadableName} are getting out-of-control. ${usageSpikeMonitor.additionalMessage ?? ''}`,
125
- options: {
126
- include_tags: false,
127
- notify_no_data: false,
128
- threshold_windows: {
129
- trigger_window: 'last_30m',
130
- recovery_window: 'last_15m',
131
- },
119
+ notification,
120
+ message: `[P4] ${usageSpikeMonitor.humanReadableName} are getting out-of-control. ${usageSpikeMonitor.additionalMessage ?? ''}`,
121
+ monitorType: datadogv2_1.DatadogMonitorQueryAlertType.QUERY_ALERT,
122
+ query: `avg(last_12h):anomalies(${usageSpikeMonitor.query}, 'agile', 3, direction='above', interval=120, alert_window='last_30m', seasonality='weekly', timezone='europe/berlin', count_default_zero='true') >= 1`,
123
+ optionOverrides: {
124
+ includeTags: false,
125
+ notifyNoData: false,
126
+ thresholdWindows: {
127
+ triggerWindow: 'last_30m',
128
+ recoveryWindow: 'last_15m',
132
129
  },
133
- tags: [
134
- `service:${serviceName}`,
135
- `team:${teamName}`,
136
- ],
137
130
  },
138
131
  });
139
132
  }
@@ -150,4 +143,4 @@ function addClaidometer(scope) {
150
143
  version: '0.0.8',
151
144
  });
152
145
  }
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9kYXRhZG9nLXVzYWdlLW1vbml0b3JpbmcvZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsOENBQWlGO0FBQ2pGLHNFQUFvRjtBQUNwRiw4REFBMkU7QUFjM0U7OztHQUdHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUMsV0FBVyxDQUFDO1FBRWhILE1BQU0sZ0NBQWdDLEdBQXdCO1lBQzVEO2dCQUNFLGlCQUFpQixFQUFFLHNCQUFzQjtnQkFDekMsS0FBSyxFQUFFLHNDQUFzQzthQUM5QztZQUNEO2dCQUNFLGlCQUFpQixFQUFFLG9EQUFvRDtnQkFDdkUsS0FBSyxFQUFFLDBEQUEwRDthQUNsRTtZQUNELEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSwwQ0FBMEMsRUFBRTtZQUN6RixFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRTtZQUMxRjtnQkFDRSxpQkFBaUIsRUFBRSxnQkFBZ0I7Z0JBQ25DLEtBQUssRUFBRSwrQ0FBK0M7YUFDdkQ7WUFDRDtnQkFDRSxpQkFBaUIsRUFBRSw4Q0FBOEM7Z0JBQ2pFLEtBQUssRUFBRSxtRUFBbUU7YUFDM0U7U0FDRixDQUFDO1FBRUYs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KiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFkb2dPcmdhbml6YXRpb24sIGdldE9yZ2FuaXphdGlvblVybFByZWZpeCB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cnO1xuaW1wb3J0IHsgRGF0YWRvZ0FsZXJ0VHlwZSwgRGF0YWRvZ01vbml0b3IgfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9nL2RhdGFkb2ctbW9uaXRvcic7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vcmlvLWNsYWlkb21ldGVyJztcblxuaW50ZXJmYWNlIFVzYWdlU3Bpa2VNb25pdG9yIHtcbiAgaHVtYW5SZWFkYWJsZU5hbWU6IHN0cmluZztcbiAgcXVlcnk6IHN0cmluZztcbiAgYWRkaXRpb25hbE1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWRvZ1VzYWdlTW9uaXRvcmluZ1Byb3BzIHtcbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWxlcnRUeXBlPzogRGF0YWRvZ0FsZXJ0VHlwZTtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBEYXRhZG9nT3JnYW5pemF0aW9uO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgYSBiZXRhIGNvbnN0cnVjdCBhbmQgaXMgbGlrZWx5IHRvIGhhdmUgYnJlYWtpbmcgY2hhbmdlcy5cbiAqIFRoZSBjb25zdHJ1Y3QgY3JlYXRlcyBtb25pdG9yaW5nIChiYXNlZCBvbiBhbm9tYWx5IGRldGVjdGlvbikgZm9yIHRoZSB1c2FnZSBvZiB0aGUgbW9zdCByZWxldmFudCBEYXRhZG9nIHJlc291cmNlc1xuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1VzYWdlTW9uaXRvcmluZyBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ1VzYWdlTW9uaXRvcmluZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHRlYW1OYW1lID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnVGVhbU5hbWUnLCAnL2NvbmZpZy90ZWFtL25hbWUnKS5zdHJpbmdWYWx1ZTtcblxuICAgIGNvbnN0IGluZnJhc3RydWN0dXJlVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2luZnJhc3RydWN0dXJlIGhvc3RzJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiaW5mcmFzdHJ1Y3R1cmUgaG9zdHMgZm9yICd7e2NoaWxkX29yZ19uYW1lLm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0gYnkge2NoaWxkX29yZ19uYW1lfScsXG4gICAgICB9LFxuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0ZhcmdhdGUgdGFza3MnLCBxdWVyeTogJ3N1bTpkYXRhZG9nLmFwbS5mYXJnYXRlX3Rhc2tfaW5zdGFuY2V7Kn0nIH0sXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAncHJvZmlsZWQgRmFyZ2F0ZSB0YXNrcycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cucHJvZmlsaW5nLmZhcmdhdGV7Kn0nIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnY3VzdG9tIG1ldHJpY3MnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJjdXN0b20gbWV0cmljcyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80NjUvbG9nLW1hbmFnZW1lbnQtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDY1L2xvZy1tYW5hZ2VtZW50LWVzdGltYXRlZC11c2FnZT90cGxfdmFyX2RhdGFkb2dfaW5kZXg9e3tkYXRhZG9nX2luZGV4Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgbG9nTWFuYWdlbWVudFVzYWdlU3Bpa2VNb25pdG9yczogVXNhZ2VTcGlrZU1vbml0b3JbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5nZXN0aW9uJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5nZXN0aW9uIGZvciAne3tkYXRhZG9nX2luZGV4Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5kZXhpbmcnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5kZXhpbmcgZm9yICd7e2RhdGFkb2dfaW5kZXgubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlP3RwbF92YXJfZW52PXt7ZW52Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgYXBtVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0FQTSBob3N0cycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfScgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiQVBNIGhvc3RzIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmdlc3Rpb24nLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5nZXN0ZWRfYnl0ZXN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzcGFuIGluZ2VzdGlvbiBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZ2VzdGVkX2J5dGVzeyp9IGJ5IHtlbnZ9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JFbnZTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmRleGluZycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbS5pbmRleGVkX3NwYW5zeyp9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwic3BhbiBpbmRleGluZyBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZGV4ZWRfc3BhbnN7Kn0gYnkge2Vudn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc3ludGhldGljVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ1N5bnRoZXRpYyBBUEkgdGVzdHMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zeW50aGV0aWNzLmFwaV90ZXN0X3J1bnN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzZXJ2ZXJsZXNzVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ3NlcnZlcmxlc3MgZnVuY3Rpb25zJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2Uuc2VydmVybGVzcy5hd3NfbGFtYmRhX2Z1bmN0aW9uc3sqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzZXJ2ZXJsZXNzIGZ1bmN0aW9ucyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zZXJ2ZXJsZXNzLmF3c19sYW1iZGFfZnVuY3Rpb25zeyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCB1c2FnZVNwaWtlTW9uaXRvciBvZiAoW10gYXMgVXNhZ2VTcGlrZU1vbml0b3JbXSkuY29uY2F0KFxuICAgICAgaW5mcmFzdHJ1Y3R1cmVVc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBsb2dNYW5hZ2VtZW50VXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgYXBtVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgc2VydmVybGVzc1VzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICAgIHN5bnRoZXRpY1VzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICApKSB7XG4gICAgICB0aGlzLmNyZWF0ZUFub21hbHlNb25pdG9yRm9yU3Bpa2VzKHByb3BzLnNlcnZpY2VOYW1lLCB0ZWFtTmFtZSwgdXNhZ2VTcGlrZU1vbml0b3IsIHByb3BzLmFsZXJ0VHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm9yZ2FuaXphdGlvbiA9PT0gJ0VVJykge1xuICAgICAgYWRkQ2xhaWRvbWV0ZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbm9tYWx5TW9uaXRvckZvclNwaWtlcyhcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nLFxuICAgIHRlYW1OYW1lOiBzdHJpbmcsXG4gICAgdXNhZ2VTcGlrZU1vbml0b3I6IFVzYWdlU3Bpa2VNb25pdG9yLFxuICAgIGFsZXJ0VHlwZT86IERhdGFkb2dBbGVydFR5cGUsXG4gICk6IERhdGFkb2dNb25pdG9yIHtcbiAgICByZXR1cm4gbmV3IERhdGFkb2dNb25pdG9yKHRoaXMsIHVzYWdlU3Bpa2VNb25pdG9yLmh1bWFuUmVhZGFibGVOYW1lLCB7XG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgIGFsZXJ0VHlwZXM6IGFsZXJ0VHlwZSA/IFthbGVydFR5cGVdIDogdW5kZWZpbmVkLFxuICAgICAgbW9uaXRvcjoge1xuICAgICAgICBuYW1lOiBgJHt1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZX0gc3Bpa2VgLFxuICAgICAgICB0eXBlOiAncXVlcnkgYWxlcnQnLFxuICAgICAgICBxdWVyeTogYGF2ZyhsYXN0XzEyaCk6YW5vbWFsaWVzKCR7dXNhZ2VTcGlrZU1vbml0b3IucXVlcnl9LCAnYWdpbGUnLCAzLCBkaXJlY3Rpb249J2Fib3ZlJywgaW50ZXJ2YWw9MTIwLCBhbGVydF93aW5kb3c9J2xhc3RfMzBtJywgc2Vhc29uYWxpdHk9J3dlZWtseScsIHRpbWV6b25lPSdldXJvcGUvYmVybGluJywgY291bnRfZGVmYXVsdF96ZXJvPSd0cnVlJykgPj0gMWAsXG4gICAgICAgIG1lc3NhZ2U6IGBbUDRdICR7dXNhZ2VTcGlrZU1vbml0b3IuaHVtYW5SZWFkYWJsZU5hbWV9IGFyZSBnZXR0aW5nIG91dC1vZi1jb250cm9sLiAke1xuICAgICAgICAgIHVzYWdlU3Bpa2VNb25pdG9yLmFkZGl0aW9uYWxNZXNzYWdlID8/ICcnXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgaW5jbHVkZV90YWdzOiBmYWxzZSxcbiAgICAgICAgICBub3RpZnlfbm9fZGF0YTogZmFsc2UsXG4gICAgICAgICAgdGhyZXNob2xkX3dpbmRvd3M6IHtcbiAgICAgICAgICAgIHRyaWdnZXJfd2luZG93OiAnbGFzdF8zMG0nLFxuICAgICAgICAgICAgcmVjb3Zlcnlfd2luZG93OiAnbGFzdF8xNW0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHRhZ3M6IFtcbiAgICAgICAgICBgc2VydmljZToke3NlcnZpY2VOYW1lfWAsXG4gICAgICAgICAgYHRlYW06JHt0ZWFtTmFtZX1gLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRDbGFpZG9tZXRlcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QpIHtcbiAgY29uc3QgW2ZlYXR1cmUsIHBhY2thZ2VOYW1lXSA9IF9fZGlybmFtZS5zcGxpdChwYXRoLnNlcCkucmV2ZXJzZSgpO1xuICBuZXcgQ2xhaWRvbWV0ZXIoc2NvcGUsICdDbGFpZG9tZXRlcicsIHtcbiAgICBwcm9kdWN0OiBDbGFpZG9tZXRlclByb2R1Y3QuQ0RLX0NPTlRSSUJVVElPTixcbiAgICBwYWNrYWdlTmFtZSxcbiAgICBmZWF0dXJlLFxuICAgIHZlcnNpb246ICcwLjAuOCcsXG4gIH0pO1xufVxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9kYXRhZG9nLXVzYWdlLW1vbml0b3JpbmcvZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLHlDQUF5QztBQUN6Qyw4Q0FBaUY7QUFFakYsa0RBQTJIO0FBQzNILDhEQUEyRTtBQWtCM0U7OztHQUdHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxnQ0FBZ0MsR0FBd0I7WUFDNUQ7Z0JBQ0UsaUJBQWlCLEVBQUUsc0JBQXNCO2dCQUN6QyxLQUFLLEVBQUUsc0NBQXNDO2FBQzlDO1lBQ0Q7Z0JBQ0UsaUJBQWlCLEVBQUUsb0RBQW9EO2dCQUN2RSxLQUFLLEVBQUUsMERBQTBEO2FBQ2xFO1lBQ0QsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLDBDQUEwQyxFQUFFO1lBQ3pGLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFO1lBQzFGO2dCQUNFLGlCQUFpQixFQUFFLGdCQUFnQjtnQkFDbkMsS0FBSyxFQUFFLCtDQUErQzthQUN2RDtZQUNEO2dCQUNFLGlCQUFpQixFQUFFLDhDQUE4QztnQkFDakUsS0FBSyxFQUFFLG1FQUFtRTthQUMzRTtTQUNGLENBQUM7UUFFRixNQUFNLHVEQUF1RCxHQUFHLDBCQUEwQixJQUFBLGtDQUF3QixFQUNoSCxLQUFLLENBQUMsWUFBWSxDQUNuQixxRkFBcUYsQ0FBQztRQUN2RixNQUFNLHVEQUF1RCxHQUFHLDBCQUEwQixJQUFBLGtD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aUJBQWlCLENBQUMsaUJBQWlCLFFBQVE7WUFDcEQsV0FBVztZQUNYLFlBQVk7WUFDWixPQUFPLEVBQUUsUUFBUSxpQkFBaUIsQ0FBQyxpQkFBaUIsZ0NBQ2xELGlCQUFpQixDQUFDLGlCQUFpQixJQUFJLEVBQ3pDLEVBQUU7WUFDRixXQUFXLEVBQUUsd0NBQTRCLENBQUMsV0FBVztZQUNyRCxLQUFLLEVBQUUsMkJBQTJCLGlCQUFpQixDQUFDLEtBQUsseUpBQXlKO1lBQ2xOLGVBQWUsRUFBRTtnQkFDZixXQUFXLEVBQUUsS0FBSztnQkFDbEIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGdCQUFnQixFQUFFO29CQUNoQixhQUFhLEVBQUUsVUFBVTtvQkFDekIsY0FBYyxFQUFFLFVBQVU7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpKSCx3REFrSkM7OztBQUVELFNBQVMsY0FBYyxDQUFDLEtBQTJCO0lBQ2pELE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkUsSUFBSSw2QkFBVyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7UUFDcEMsT0FBTyxFQUFFLG9DQUFrQixDQUFDLGdCQUFnQjtRQUM1QyxXQUFXO1FBQ1gsT0FBTztRQUNQLE9BQU8sRUFBRSxPQUFPO0tBQ2pCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFkb2dPcmdhbml6YXRpb24sIGdldE9yZ2FuaXphdGlvblVybFByZWZpeCB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cnO1xuaW1wb3J0IHsgRGF0YWRvZ0FsZXJ0VHlwZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cvZGF0YWRvZy1tb25pdG9yJztcbmltcG9ydCB7IElOb3RpZmljYXRpb24sIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgRGF0YWRvZ01vbml0b3IsIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUgfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9ndjInO1xuaW1wb3J0IHsgQ2xhaWRvbWV0ZXIsIENsYWlkb21ldGVyUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL3Jpby1jbGFpZG9tZXRlcic7XG5cbmludGVyZmFjZSBVc2FnZVNwaWtlTW9uaXRvciB7XG4gIGh1bWFuUmVhZGFibGVOYW1lOiBzdHJpbmc7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxNZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dVc2FnZU1vbml0b3JpbmdQcm9wcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBub3Qgc3VwcG9ydGVkIGFueW1vcmUuIHVzZSBgbm90aWZpY2F0aW9uYCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxlcnRUeXBlPzogRGF0YWRvZ0FsZXJ0VHlwZTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uPzogSU5vdGlmaWNhdGlvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBEYXRhZG9nT3JnYW5pemF0aW9uO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgYSBiZXRhIGNvbnN0cnVjdCBhbmQgaXMgbGlrZWx5IHRvIGhhdmUgYnJlYWtpbmcgY2hhbmdlcy5cbiAqIFRoZSBjb25zdHJ1Y3QgY3JlYXRlcyBtb25pdG9yaW5nIChiYXNlZCBvbiBhbm9tYWx5IGRldGVjdGlvbikgZm9yIHRoZSB1c2FnZSBvZiB0aGUgbW9zdCByZWxldmFudCBEYXRhZG9nIHJlc291cmNlc1xuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1VzYWdlTW9uaXRvcmluZyBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ1VzYWdlTW9uaXRvcmluZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGluZnJhc3RydWN0dXJlVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2luZnJhc3RydWN0dXJlIGhvc3RzJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiaW5mcmFzdHJ1Y3R1cmUgaG9zdHMgZm9yICd7e2NoaWxkX29yZ19uYW1lLm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0gYnkge2NoaWxkX29yZ19uYW1lfScsXG4gICAgICB9LFxuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0ZhcmdhdGUgdGFza3MnLCBxdWVyeTogJ3N1bTpkYXRhZG9nLmFwbS5mYXJnYXRlX3Rhc2tfaW5zdGFuY2V7Kn0nIH0sXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAncHJvZmlsZWQgRmFyZ2F0ZSB0YXNrcycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cucHJvZmlsaW5nLmZhcmdhdGV7Kn0nIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnY3VzdG9tIG1ldHJpY3MnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJjdXN0b20gbWV0cmljcyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80NjUvbG9nLW1hbmFnZW1lbnQtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDY1L2xvZy1tYW5hZ2VtZW50LWVzdGltYXRlZC11c2FnZT90cGxfdmFyX2RhdGFkb2dfaW5kZXg9e3tkYXRhZG9nX2luZGV4Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgbG9nTWFuYWdlbWVudFVzYWdlU3Bpa2VNb25pdG9yczogVXNhZ2VTcGlrZU1vbml0b3JbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5nZXN0aW9uJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5nZXN0aW9uIGZvciAne3tkYXRhZG9nX2luZGV4Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5kZXhpbmcnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5kZXhpbmcgZm9yICd7e2RhdGFkb2dfaW5kZXgubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlP3RwbF92YXJfZW52PXt7ZW52Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgYXBtVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0FQTSBob3N0cycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfScgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiQVBNIGhvc3RzIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmdlc3Rpb24nLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5nZXN0ZWRfYnl0ZXN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzcGFuIGluZ2VzdGlvbiBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZ2VzdGVkX2J5dGVzeyp9IGJ5IHtlbnZ9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JFbnZTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmRleGluZycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbS5pbmRleGVkX3NwYW5zeyp9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwic3BhbiBpbmRleGluZyBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZGV4ZWRfc3BhbnN7Kn0gYnkge2Vudn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc3ludGhldGljVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ1N5bnRoZXRpYyBBUEkgdGVzdHMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zeW50aGV0aWNzLmFwaV90ZXN0X3J1bnN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzZXJ2ZXJsZXNzVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ3NlcnZlcmxlc3MgZnVuY3Rpb25zJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2Uuc2VydmVybGVzcy5hd3NfbGFtYmRhX2Z1bmN0aW9uc3sqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzZXJ2ZXJsZXNzIGZ1bmN0aW9ucyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zZXJ2ZXJsZXNzLmF3c19sYW1iZGFfZnVuY3Rpb25zeyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0gcHJvcHMubm90aWZpY2F0aW9uID8/IG5ldyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKTtcbiAgICBmb3IgKGNvbnN0IHVzYWdlU3Bpa2VNb25pdG9yIG9mIChbXSBhcyBVc2FnZVNwaWtlTW9uaXRvcltdKS5jb25jYXQoXG4gICAgICBpbmZyYXN0cnVjdHVyZVVzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICAgIGxvZ01hbmFnZW1lbnRVc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBhcG1Vc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBzZXJ2ZXJsZXNzVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgc3ludGhldGljVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICkpIHtcbiAgICAgIHRoaXMuY3JlYXRlQW5vbWFseU1vbml0b3JGb3JTcGlrZXMocHJvcHMuc2VydmljZU5hbWUsIHVzYWdlU3Bpa2VNb25pdG9yLCBub3RpZmljYXRpb24pO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5vcmdhbml6YXRpb24gPT09ICdFVScpIHtcbiAgICAgIGFkZENsYWlkb21ldGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQW5vbWFseU1vbml0b3JGb3JTcGlrZXMoXG4gICAgc2VydmljZU5hbWU6IHN0cmluZyxcbiAgICB1c2FnZVNwaWtlTW9uaXRvcjogVXNhZ2VTcGlrZU1vbml0b3IsXG4gICAgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uLFxuICApOiBEYXRhZG9nTW9uaXRvciB7XG4gICAgcmV0dXJuIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCB1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZSwge1xuICAgICAgbmFtZTogYCR7dXNhZ2VTcGlrZU1vbml0b3IuaHVtYW5SZWFkYWJsZU5hbWV9IHNwaWtlYCxcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgbWVzc2FnZTogYFtQNF0gJHt1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZX0gYXJlIGdldHRpbmcgb3V0LW9mLWNvbnRyb2wuICR7XG4gICAgICAgIHVzYWdlU3Bpa2VNb25pdG9yLmFkZGl0aW9uYWxNZXNzYWdlID8/ICcnXG4gICAgICB9YCxcbiAgICAgIG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJULFxuICAgICAgcXVlcnk6IGBhdmcobGFzdF8xMmgpOmFub21hbGllcygke3VzYWdlU3Bpa2VNb25pdG9yLnF1ZXJ5fSwgJ2FnaWxlJywgMywgZGlyZWN0aW9uPSdhYm92ZScsIGludGVydmFsPTEyMCwgYWxlcnRfd2luZG93PSdsYXN0XzMwbScsIHNlYXNvbmFsaXR5PSd3ZWVrbHknLCB0aW1lem9uZT0nZXVyb3BlL2JlcmxpbicsIGNvdW50X2RlZmF1bHRfemVybz0ndHJ1ZScpID49IDFgLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIGluY2x1ZGVUYWdzOiBmYWxzZSxcbiAgICAgICAgbm90aWZ5Tm9EYXRhOiBmYWxzZSxcbiAgICAgICAgdGhyZXNob2xkV2luZG93czoge1xuICAgICAgICAgIHRyaWdnZXJXaW5kb3c6ICdsYXN0XzMwbScsXG4gICAgICAgICAgcmVjb3ZlcnlXaW5kb3c6ICdsYXN0XzE1bScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZENsYWlkb21ldGVyKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCkge1xuICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG4gIG5ldyBDbGFpZG9tZXRlcihzY29wZSwgJ0NsYWlkb21ldGVyJywge1xuICAgIHByb2R1Y3Q6IENsYWlkb21ldGVyUHJvZHVjdC5DREtfQ09OVFJJQlVUSU9OLFxuICAgIHBhY2thZ2VOYW1lLFxuICAgIGZlYXR1cmUsXG4gICAgdmVyc2lvbjogJzAuMC44JyxcbiAgfSk7XG59XG4iXX0=
@@ -8,7 +8,7 @@ phases:
8
8
  install:
9
9
  runtime-versions:
10
10
  java: corretto17
11
- nodejs: 18
11
+ nodejs: 20
12
12
  pre_build:
13
13
  commands:
14
14
  - (echo "Build triggered by commit " && git log --pretty=format:"%h%x09%an%x09%s" -n 1 ) | tr -d "\n"
@@ -2,7 +2,7 @@ version: '0.2'
2
2
  phases:
3
3
  install:
4
4
  runtime-versions:
5
- nodejs: 18
5
+ nodejs: 20
6
6
  build:
7
7
  commands:
8
8
  - cd infrastructure
@@ -9,7 +9,7 @@ phases:
9
9
  install:
10
10
  runtime-versions:
11
11
  java: corretto17
12
- nodejs: 18
12
+ nodejs: 20
13
13
  commands:
14
14
  - yum install --assumeyes libxcrypt-compat # workaround for create-and-sign-certificate
15
15
  build:
@@ -182,7 +182,6 @@ export declare class PipelineStack extends Stack {
182
182
  private readonly _serviceKeystorePassword;
183
183
  private readonly _accountNameParameter;
184
184
  private readonly _nistDataMirrorUrl;
185
- private readonly _codeBuildDefaults;
186
185
  constructor(scope: Construct, id: string, props: PipelineStackProps);
187
186
  get mainCodebuildProject(): cdk.pipelines.CodeBuildStep;
188
187
  get branchCodeBuildProject(): CodeBuildStep;