@cdk8s/projen-common 0.0.277 → 0.0.279

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/.jsii CHANGED
@@ -99,7 +99,7 @@
99
99
  },
100
100
  "locationInModule": {
101
101
  "filename": "src/projects/jsii.ts",
102
- "line": 61
102
+ "line": 62
103
103
  },
104
104
  "parameters": [
105
105
  {
@@ -113,7 +113,7 @@
113
113
  "kind": "class",
114
114
  "locationInModule": {
115
115
  "filename": "src/projects/jsii.ts",
116
- "line": 59
116
+ "line": 60
117
117
  },
118
118
  "name": "Cdk8sTeamJsiiProject",
119
119
  "symbolId": "src/projects/jsii:Cdk8sTeamJsiiProject"
@@ -133,7 +133,7 @@
133
133
  "kind": "interface",
134
134
  "locationInModule": {
135
135
  "filename": "src/projects/jsii.ts",
136
- "line": 17
136
+ "line": 18
137
137
  },
138
138
  "name": "Cdk8sTeamJsiiProjectOptions",
139
139
  "properties": [
@@ -147,7 +147,7 @@
147
147
  "immutable": true,
148
148
  "locationInModule": {
149
149
  "filename": "src/projects/jsii.ts",
150
- "line": 24
150
+ "line": 25
151
151
  },
152
152
  "name": "golang",
153
153
  "optional": true,
@@ -165,7 +165,7 @@
165
165
  "immutable": true,
166
166
  "locationInModule": {
167
167
  "filename": "src/projects/jsii.ts",
168
- "line": 31
168
+ "line": 32
169
169
  },
170
170
  "name": "golangBranch",
171
171
  "optional": true,
@@ -183,7 +183,7 @@
183
183
  "immutable": true,
184
184
  "locationInModule": {
185
185
  "filename": "src/projects/jsii.ts",
186
- "line": 45
186
+ "line": 46
187
187
  },
188
188
  "name": "maven",
189
189
  "optional": true,
@@ -201,7 +201,7 @@
201
201
  "immutable": true,
202
202
  "locationInModule": {
203
203
  "filename": "src/projects/jsii.ts",
204
- "line": 52
204
+ "line": 53
205
205
  },
206
206
  "name": "nuget",
207
207
  "optional": true,
@@ -219,7 +219,7 @@
219
219
  "immutable": true,
220
220
  "locationInModule": {
221
221
  "filename": "src/projects/jsii.ts",
222
- "line": 38
222
+ "line": 39
223
223
  },
224
224
  "name": "pypi",
225
225
  "optional": true,
@@ -246,7 +246,7 @@
246
246
  },
247
247
  "locationInModule": {
248
248
  "filename": "src/projects/node.ts",
249
- "line": 98
249
+ "line": 113
250
250
  },
251
251
  "parameters": [
252
252
  {
@@ -260,7 +260,7 @@
260
260
  "kind": "class",
261
261
  "locationInModule": {
262
262
  "filename": "src/projects/node.ts",
263
- "line": 96
263
+ "line": 111
264
264
  },
265
265
  "name": "Cdk8sTeamNodeProject",
266
266
  "symbolId": "src/projects/node:Cdk8sTeamNodeProject"
@@ -279,10 +279,51 @@
279
279
  "kind": "interface",
280
280
  "locationInModule": {
281
281
  "filename": "src/projects/node.ts",
282
- "line": 81
282
+ "line": 82
283
283
  },
284
284
  "name": "Cdk8sTeamNodeProjectOptions",
285
285
  "properties": [
286
+ {
287
+ "abstract": true,
288
+ "docs": {
289
+ "default": "false",
290
+ "stability": "stable",
291
+ "summary": "Configure a backport workflow."
292
+ },
293
+ "immutable": true,
294
+ "locationInModule": {
295
+ "filename": "src/projects/node.ts",
296
+ "line": 97
297
+ },
298
+ "name": "backport",
299
+ "optional": true,
300
+ "type": {
301
+ "primitive": "boolean"
302
+ }
303
+ },
304
+ {
305
+ "abstract": true,
306
+ "docs": {
307
+ "default": "- Will be derived from PR labels.",
308
+ "stability": "stable",
309
+ "summary": "Branches to backport to."
310
+ },
311
+ "immutable": true,
312
+ "locationInModule": {
313
+ "filename": "src/projects/node.ts",
314
+ "line": 104
315
+ },
316
+ "name": "backportBranches",
317
+ "optional": true,
318
+ "type": {
319
+ "collection": {
320
+ "elementtype": {
321
+ "primitive": "string"
322
+ },
323
+ "kind": "array"
324
+ }
325
+ }
326
+ },
286
327
  {
287
328
  "abstract": true,
288
329
  "docs": {
@@ -293,7 +334,7 @@
293
334
  "immutable": true,
294
335
  "locationInModule": {
295
336
  "filename": "src/projects/node.ts",
296
- "line": 89
337
+ "line": 90
297
338
  },
298
339
  "name": "repoName",
299
340
  "optional": true,
@@ -320,7 +361,7 @@
320
361
  },
321
362
  "locationInModule": {
322
363
  "filename": "src/projects/typescript.ts",
323
- "line": 24
364
+ "line": 39
324
365
  },
325
366
  "parameters": [
326
367
  {
@@ -334,7 +375,7 @@
334
375
  "kind": "class",
335
376
  "locationInModule": {
336
377
  "filename": "src/projects/typescript.ts",
337
- "line": 22
378
+ "line": 37
338
379
  },
339
380
  "name": "Cdk8sTeamTypeScriptProject",
340
381
  "symbolId": "src/projects/typescript:Cdk8sTeamTypeScriptProject"
@@ -353,10 +394,51 @@
353
394
  "kind": "interface",
354
395
  "locationInModule": {
355
396
  "filename": "src/projects/typescript.ts",
356
- "line": 7
397
+ "line": 8
357
398
  },
358
399
  "name": "Cdk8sTeamTypeScriptProjectOptions",
359
400
  "properties": [
401
+ {
402
+ "abstract": true,
403
+ "docs": {
404
+ "default": "false",
405
+ "stability": "stable",
406
+ "summary": "Configure a backport workflow."
407
+ },
408
+ "immutable": true,
409
+ "locationInModule": {
410
+ "filename": "src/projects/typescript.ts",
411
+ "line": 23
412
+ },
413
+ "name": "backport",
414
+ "optional": true,
415
+ "type": {
416
+ "primitive": "boolean"
417
+ }
418
+ },
419
+ {
420
+ "abstract": true,
421
+ "docs": {
422
+ "default": "- Will be derived from PR labels.",
423
+ "stability": "stable",
424
+ "summary": "Branches to backport to."
425
+ },
426
+ "immutable": true,
427
+ "locationInModule": {
428
+ "filename": "src/projects/typescript.ts",
429
+ "line": 30
430
+ },
431
+ "name": "backportBranches",
432
+ "optional": true,
433
+ "type": {
434
+ "collection": {
435
+ "elementtype": {
436
+ "primitive": "string"
437
+ },
438
+ "kind": "array"
439
+ }
440
+ }
441
+ },
360
442
  {
361
443
  "abstract": true,
362
444
  "docs": {
@@ -367,7 +449,7 @@
367
449
  "immutable": true,
368
450
  "locationInModule": {
369
451
  "filename": "src/projects/typescript.ts",
370
- "line": 15
452
+ "line": 16
371
453
  },
372
454
  "name": "repoName",
373
455
  "optional": true,
@@ -379,6 +461,6 @@
379
461
  "symbolId": "src/projects/typescript:Cdk8sTeamTypeScriptProjectOptions"
380
462
  }
381
463
  },
382
- "version": "0.0.277",
383
- "fingerprint": "lVuzhLjzgl8hZYBqKBNorQzbggJ3xX0Dowtr+SmdJAw="
464
+ "version": "0.0.279",
465
+ "fingerprint": "wELx6Gi5FanGu/XC/hwMqrvJBYX2/6Gw3Gs/l91C8D0="
384
466
  }
package/API.md CHANGED
@@ -159,6 +159,8 @@ const cdk8sTeamJsiiProjectOptions: Cdk8sTeamJsiiProjectOptions = { ... }
159
159
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
160
160
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name of the development tsconfig.json file. |
161
161
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
162
+ | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.backport">backport</a></code> | <code>boolean</code> | Configure a backport workflow. |
163
+ | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.backportBranches">backportBranches</a></code> | <code>string[]</code> | Branches to backport to. |
162
164
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.repoName">repoName</a></code> | <code>string</code> | The name of the repository inside the cdk8s-team org where the code of the project is locate in. |
163
165
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.golang">golang</a></code> | <code>boolean</code> | Publish Golang bindings to GitHub. |
164
166
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.golangBranch">golangBranch</a></code> | <code>string</code> | Name of the branch in the golang repository to publish to. |
@@ -2070,6 +2072,32 @@ same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).
2070
2072
 
2071
2073
  ---
2072
2074
 
2075
+ ##### `backport`<sup>Optional</sup> <a name="backport" id="@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.backport"></a>
2076
+
2077
+ ```typescript
2078
+ public readonly backport: boolean;
2079
+ ```
2080
+
2081
+ - *Type:* boolean
2082
+ - *Default:* false
2083
+
2084
+ Configure a backport workflow.
2085
+
2086
+ ---
2087
+
2088
+ ##### `backportBranches`<sup>Optional</sup> <a name="backportBranches" id="@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.backportBranches"></a>
2089
+
2090
+ ```typescript
2091
+ public readonly backportBranches: string[];
2092
+ ```
2093
+
2094
+ - *Type:* string[]
2095
+ - *Default:* Will be derived from PR labels.
2096
+
2097
+ Branches to backport to.
2098
+
2099
+ ---
2100
+
2073
2101
  ##### `repoName`<sup>Optional</sup> <a name="repoName" id="@cdk8s/projen-common.Cdk8sTeamJsiiProjectOptions.property.repoName"></a>
2074
2102
 
2075
2103
  ```typescript
@@ -2282,6 +2310,8 @@ const cdk8sTeamNodeProjectOptions: Cdk8sTeamNodeProjectOptions = { ... }
2282
2310
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Workflow steps to use in order to bootstrap this repo. |
2283
2311
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
2284
2312
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version to use in GitHub workflows. |
2313
+ | <code><a href="#@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.backport">backport</a></code> | <code>boolean</code> | Configure a backport workflow. |
2314
+ | <code><a href="#@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.backportBranches">backportBranches</a></code> | <code>string[]</code> | Branches to backport to. |
2285
2315
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.repoName">repoName</a></code> | <code>string</code> | The name of the repository inside the cdk8s-team org where the code of the project is locate in. |
2286
2316
 
2287
2317
  ---
@@ -3973,6 +4003,32 @@ The node version to use in GitHub workflows.
3973
4003
 
3974
4004
  ---
3975
4005
 
4006
+ ##### `backport`<sup>Optional</sup> <a name="backport" id="@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.backport"></a>
4007
+
4008
+ ```typescript
4009
+ public readonly backport: boolean;
4010
+ ```
4011
+
4012
+ - *Type:* boolean
4013
+ - *Default:* false
4014
+
4015
+ Configure a backport workflow.
4016
+
4017
+ ---
4018
+
4019
+ ##### `backportBranches`<sup>Optional</sup> <a name="backportBranches" id="@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.backportBranches"></a>
4020
+
4021
+ ```typescript
4022
+ public readonly backportBranches: string[];
4023
+ ```
4024
+
4025
+ - *Type:* string[]
4026
+ - *Default:* Will be derived from PR labels.
4027
+
4028
+ Branches to backport to.
4029
+
4030
+ ---
4031
+
3976
4032
  ##### `repoName`<sup>Optional</sup> <a name="repoName" id="@cdk8s/projen-common.Cdk8sTeamNodeProjectOptions.property.repoName"></a>
3977
4033
 
3978
4034
  ```typescript
@@ -4136,6 +4192,8 @@ const cdk8sTeamTypeScriptProjectOptions: Cdk8sTeamTypeScriptProjectOptions = { .
4136
4192
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
4137
4193
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name of the development tsconfig.json file. |
4138
4194
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
4195
+ | <code><a href="#@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.backport">backport</a></code> | <code>boolean</code> | Configure a backport workflow. |
4196
+ | <code><a href="#@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.backportBranches">backportBranches</a></code> | <code>string[]</code> | Branches to backport to. |
4139
4197
  | <code><a href="#@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.repoName">repoName</a></code> | <code>string</code> | The name of the repository inside the cdk8s-team org where the code of the project is locate in. |
4140
4198
 
4141
4199
  ---
@@ -6042,6 +6100,32 @@ same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).
6042
6100
 
6043
6101
  ---
6044
6102
 
6103
+ ##### `backport`<sup>Optional</sup> <a name="backport" id="@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.backport"></a>
6104
+
6105
+ ```typescript
6106
+ public readonly backport: boolean;
6107
+ ```
6108
+
6109
+ - *Type:* boolean
6110
+ - *Default:* false
6111
+
6112
+ Configure a backport workflow.
6113
+
6114
+ ---
6115
+
6116
+ ##### `backportBranches`<sup>Optional</sup> <a name="backportBranches" id="@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.backportBranches"></a>
6117
+
6118
+ ```typescript
6119
+ public readonly backportBranches: string[];
6120
+ ```
6121
+
6122
+ - *Type:* string[]
6123
+ - *Default:* Will be derived from PR labels.
6124
+
6125
+ Branches to backport to.
6126
+
6127
+ ---
6128
+
6045
6129
  ##### `repoName`<sup>Optional</sup> <a name="repoName" id="@cdk8s/projen-common.Cdk8sTeamTypeScriptProjectOptions.property.repoName"></a>
6046
6130
 
6047
6131
  ```typescript
@@ -0,0 +1,27 @@
1
+ import { Component } from 'projen';
2
+ import { NodeProject } from 'projen/lib/javascript';
3
+ /**
4
+ * Options for `Backport`.
5
+ */
6
+ export interface BackportOptions {
7
+ /**
8
+ * The repository name.
9
+ */
10
+ readonly repoName: string;
11
+ /**
12
+ * List of specific branches to backport to.
13
+ *
14
+ * @default - No specific branches. Will be determined by PR labels.
15
+ */
16
+ readonly branches?: string[];
17
+ }
18
+ /**
19
+ * Add a Backport workflow to our repos.
20
+ */
21
+ export declare class Backport extends Component {
22
+ private readonly repoName;
23
+ private readonly config;
24
+ constructor(project: NodeProject, options: BackportOptions);
25
+ private createTask;
26
+ private createWorkflow;
27
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Backport = void 0;
4
+ const projen_1 = require("projen");
5
+ const workflows_model_1 = require("projen/lib/github/workflows-model");
6
+ /**
7
+ * Add a Backport workflow to our repos.
8
+ */
9
+ class Backport extends projen_1.Component {
10
+ constructor(project, options) {
11
+ super(project);
12
+ this.repoName = options.repoName;
13
+ this.config = new projen_1.JsonFile(project, '.backportrc.json', {
14
+ // see https://github.com/sqren/backport/blob/main/docs/config-file-options.md
15
+ obj: {
16
+ repoOwner: 'cdk8s-team',
17
+ repoName: this.repoName,
18
+ signoff: true,
19
+ branchLabelMapping: {
20
+ '^backport-to-(.+)$': '$1',
21
+ },
22
+ prTitle: '{commitMessages}',
23
+ fork: false,
24
+ publishStatusCommentOnFailure: true,
25
+ publishStatusCommentOnSuccess: true,
26
+ publishStatusCommentOnAbort: true,
27
+ targetPRLabels: [project.autoApprove.label],
28
+ },
29
+ });
30
+ // pinning because of https://github.com/sqren/backport/issues/451
31
+ // optional because it requires node 16 which is only available in the
32
+ // backport workflow environment.
33
+ project.addFields({ optionalDependencies: { backport: '8.5.0' } });
34
+ // backport task to branches based on pr labels (i.e not branch specific)
35
+ const backportTask = this.createTask(project);
36
+ // backport tasks to explicit branches based on input
37
+ for (const branch of options.branches ?? []) {
38
+ this.createTask(project, branch);
39
+ }
40
+ this.createWorkflow(project, backportTask);
41
+ }
42
+ createTask(project, branch) {
43
+ const name = branch ? `backport:${branch}` : 'backport';
44
+ const task = project.addTask(name, { requiredEnv: ['BACKPORT_PR_NUMBER', 'GITHUB_TOKEN'] });
45
+ const commands = [
46
+ 'BACKPORT_HOME=$(mktemp -d)',
47
+ 'mkdir -p ${BACKPORT_HOME}',
48
+ `cp ${this.config.path} \${BACKPORT_HOME}`,
49
+ 'cd ${BACKPORT_HOME}',
50
+ ];
51
+ const backport = ['backport', '--dir', `\${BACKPORT_HOME}/${this.repoName}`, '--accesstoken', '${GITHUB_TOKEN}', '--pr', '${BACKPORT_PR_NUMBER}'];
52
+ if (branch) {
53
+ backport.push(...['--branch', branch]);
54
+ }
55
+ else {
56
+ backport.push('--non-interactive');
57
+ }
58
+ commands.push(backport.join(' '));
59
+ task.exec(commands.join(' && '));
60
+ return task;
61
+ }
62
+ createWorkflow(project, task) {
63
+ const backportWorkflow = project.github.addWorkflow('backport');
64
+ backportWorkflow.on({ pullRequestTarget: { types: ['closed'] } });
65
+ backportWorkflow.addJob('backport', {
66
+ runsOn: ['ubuntu-latest'],
67
+ permissions: {
68
+ contents: workflows_model_1.JobPermission.WRITE,
69
+ },
70
+ steps: [
71
+ // needed in order to run the projen task as well
72
+ // as use the backport configuration in the repo.
73
+ {
74
+ name: 'checkout',
75
+ uses: 'actions/checkout@v3',
76
+ with: {
77
+ // required because we need the full history
78
+ // for proper backports.
79
+ 'fetch-depth': 0,
80
+ },
81
+ },
82
+ {
83
+ name: 'Set Git Identity',
84
+ run: 'git config --global user.name "github-actions" && git config --global user.email "github-actions@github.com"',
85
+ },
86
+ {
87
+ name: 'backport',
88
+ if: 'github.event.pull_request.merged == true',
89
+ run: `npx projen ${task.name}`,
90
+ env: {
91
+ GITHUB_TOKEN: '${{ secrets.PROJEN_GITHUB_TOKEN }}',
92
+ BACKPORT_PR_NUMBER: '${{ github.event.pull_request.number }}',
93
+ },
94
+ },
95
+ ],
96
+ });
97
+ }
98
+ }
99
+ exports.Backport = Backport;
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYWNrcG9ydC9iYWNrcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUQ7QUFDbkQsdUVBQWtFO0FBcUJsRTs7R0FFRztBQUNILE1BQWEsUUFBUyxTQUFRLGtCQUFTO0lBS3JDLFlBQVksT0FBb0IsRUFBRSxPQUF3QjtRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFFakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlCQUFRLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFO1lBQ3RELDhFQUE4RTtZQUM5RSxHQUFHLEVBQUU7Z0JBQ0gsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLElBQUk7Z0JBQ2Isa0JBQWtCLEVBQUU7b0JBQ2xCLG9CQUFvQixFQUFFLElBQUk7aUJBQzNCO2dCQUNELE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLElBQUksRUFBRSxLQUFLO2dCQUNYLDZCQUE2QixFQUFFLElBQUk7Z0JBQ25DLDZCQUE2QixFQUFFLElBQUk7Z0JBQ25DLDJCQUEyQixFQUFFLElBQUk7Z0JBQ2pDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFZLENBQUMsS0FBSyxDQUFDO2FBQzdDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsa0VBQWtFO1FBQ2xFLHNFQUFzRTtRQUN0RSxpQ0FBaUM7UUFDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVuRSx5RUFBeUU7UUFDekUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5QyxxREFBcUQ7UUFDckQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRTdDLENBQUM7SUFFTyxVQUFVLENBQUMsT0FBb0IsRUFBRSxNQUFlO1FBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sUUFBUSxHQUFHO1lBQ2YsNEJBQTRCO1lBQzVCLDJCQUEyQjtZQUMzQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxvQkFBb0I7WUFDMUMscUJBQXFCO1NBQ3RCLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDbEosSUFBSSxNQUFNLEVBQUU7WUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQW9CLEVBQUUsSUFBVTtRQUVyRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNsQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7YUFDOUI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsaURBQWlEO2dCQUNqRCxpREFBaUQ7Z0JBQ2pEO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixJQUFJLEVBQUU7d0JBQ0osNENBQTRDO3dCQUM1Qyx3QkFBd0I7d0JBQ3hCLGFBQWEsRUFBRSxDQUFDO3FCQUNqQjtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsa0JBQWtCO29CQUN4QixHQUFHLEVBQUUsOEdBQThHO2lCQUNwSDtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsRUFBRSxFQUFFLDBDQUEwQztvQkFDOUMsR0FBRyxFQUFFLGNBQWMsSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDOUIsR0FBRyxFQUFFO3dCQUNILFlBQVksRUFBRSxvQ0FBb0M7d0JBQ2xELGtCQUFrQixFQUFFLHlDQUF5QztxQkFDOUQ7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUVMLENBQUM7Q0FFRjtBQXpHRCw0QkF5R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEpzb25GaWxlLCBUYXNrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24gfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnO1xuaW1wb3J0IHsgTm9kZVByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBCYWNrcG9ydGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3BvcnRPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2Ygc3BlY2lmaWMgYnJhbmNoZXMgdG8gYmFja3BvcnQgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc3BlY2lmaWMgYnJhbmNoZXMuIFdpbGwgYmUgZGV0ZXJtaW5lZCBieSBQUiBsYWJlbHMuXG4gICAqL1xuICByZWFkb25seSBicmFuY2hlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEFkZCBhIEJhY2twb3J0IHdvcmtmbG93IHRvIG91ciByZXBvcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhY2twb3J0IGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBKc29uRmlsZTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogQmFja3BvcnRPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLnJlcG9OYW1lID0gb3B0aW9ucy5yZXBvTmFtZTtcblxuICAgIHRoaXMuY29uZmlnID0gbmV3IEpzb25GaWxlKHByb2plY3QsICcuYmFja3BvcnRyYy5qc29uJywge1xuICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zcXJlbi9iYWNrcG9ydC9ibG9iL21haW4vZG9jcy9jb25maWctZmlsZS1vcHRpb25zLm1kXG4gICAgICBvYmo6IHtcbiAgICAgICAgcmVwb093bmVyOiAnY2RrOHMtdGVhbScsXG4gICAgICAgIHJlcG9OYW1lOiB0aGlzLnJlcG9OYW1lLFxuICAgICAgICBzaWdub2ZmOiB0cnVlLFxuICAgICAgICBicmFuY2hMYWJlbE1hcHBpbmc6IHtcbiAgICAgICAgICAnXmJhY2twb3J0LXRvLSguKykkJzogJyQxJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJUaXRsZTogJ3tjb21taXRNZXNzYWdlc30nLFxuICAgICAgICBmb3JrOiBmYWxzZSxcbiAgICAgICAgcHVibGlzaFN0YXR1c0NvbW1lbnRPbkZhaWx1cmU6IHRydWUsXG4gICAgICAgIHB1Ymxpc2hTdGF0dXNDb21tZW50T25TdWNjZXNzOiB0cnVlLFxuICAgICAgICBwdWJsaXNoU3RhdHVzQ29tbWVudE9uQWJvcnQ6IHRydWUsXG4gICAgICAgIHRhcmdldFBSTGFiZWxzOiBbcHJvamVjdC5hdXRvQXBwcm92ZSEubGFiZWxdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHBpbm5pbmcgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vc3FyZW4vYmFja3BvcnQvaXNzdWVzLzQ1MVxuICAgIC8vIG9wdGlvbmFsIGJlY2F1c2UgaXQgcmVxdWlyZXMgbm9kZSAxNiB3aGljaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGVcbiAgICAvLyBiYWNrcG9ydCB3b3JrZmxvdyBlbnZpcm9ubWVudC5cbiAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IG9wdGlvbmFsRGVwZW5kZW5jaWVzOiB7IGJhY2twb3J0OiAnOC41LjAnIH0gfSk7XG5cbiAgICAvLyBiYWNrcG9ydCB0YXNrIHRvIGJyYW5jaGVzIGJhc2VkIG9uIHByIGxhYmVscyAoaS5lIG5vdCBicmFuY2ggc3BlY2lmaWMpXG4gICAgY29uc3QgYmFja3BvcnRUYXNrID0gdGhpcy5jcmVhdGVUYXNrKHByb2plY3QpO1xuXG4gICAgLy8gYmFja3BvcnQgdGFza3MgdG8gZXhwbGljaXQgYnJhbmNoZXMgYmFzZWQgb24gaW5wdXRcbiAgICBmb3IgKGNvbnN0IGJyYW5jaCBvZiBvcHRpb25zLmJyYW5jaGVzID8/IFtdKSB7XG4gICAgICB0aGlzLmNyZWF0ZVRhc2socHJvamVjdCwgYnJhbmNoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZVdvcmtmbG93KHByb2plY3QsIGJhY2twb3J0VGFzayk7XG5cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGFzayhwcm9qZWN0OiBOb2RlUHJvamVjdCwgYnJhbmNoPzogc3RyaW5nKTogVGFzayB7XG4gICAgY29uc3QgbmFtZSA9IGJyYW5jaCA/IGBiYWNrcG9ydDoke2JyYW5jaH1gIDogJ2JhY2twb3J0JztcbiAgICBjb25zdCB0YXNrID0gcHJvamVjdC5hZGRUYXNrKG5hbWUsIHsgcmVxdWlyZWRFbnY6IFsnQkFDS1BPUlRfUFJfTlVNQkVSJywgJ0dJVEhVQl9UT0tFTiddIH0pO1xuICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgJ0JBQ0tQT1JUX0hPTUU9JChta3RlbXAgLWQpJyxcbiAgICAgICdta2RpciAtcCAke0JBQ0tQT1JUX0hPTUV9JyxcbiAgICAgIGBjcCAke3RoaXMuY29uZmlnLnBhdGh9IFxcJHtCQUNLUE9SVF9IT01FfWAsXG4gICAgICAnY2QgJHtCQUNLUE9SVF9IT01FfScsXG4gICAgXTtcbiAgICBjb25zdCBiYWNrcG9ydCA9IFsnYmFja3BvcnQnLCAnLS1kaXInLCBgXFwke0JBQ0tQT1JUX0hPTUV9LyR7dGhpcy5yZXBvTmFtZX1gLCAnLS1hY2Nlc3N0b2tlbicsICcke0dJVEhVQl9UT0tFTn0nLCAnLS1wcicsICcke0JBQ0tQT1JUX1BSX05VTUJFUn0nXTtcbiAgICBpZiAoYnJhbmNoKSB7XG4gICAgICBiYWNrcG9ydC5wdXNoKC4uLlsnLS1icmFuY2gnLCBicmFuY2hdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFja3BvcnQucHVzaCgnLS1ub24taW50ZXJhY3RpdmUnKTtcbiAgICB9XG5cbiAgICBjb21tYW5kcy5wdXNoKGJhY2twb3J0LmpvaW4oJyAnKSk7XG4gICAgdGFzay5leGVjKGNvbW1hbmRzLmpvaW4oJyAmJiAnKSk7XG4gICAgcmV0dXJuIHRhc2s7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdvcmtmbG93KHByb2plY3Q6IE5vZGVQcm9qZWN0LCB0YXNrOiBUYXNrKSB7XG5cbiAgICBjb25zdCBiYWNrcG9ydFdvcmtmbG93ID0gcHJvamVjdC5naXRodWIhLmFkZFdvcmtmbG93KCdiYWNrcG9ydCcpO1xuICAgIGJhY2twb3J0V29ya2Zsb3cub24oeyBwdWxsUmVxdWVzdFRhcmdldDogeyB0eXBlczogWydjbG9zZWQnXSB9IH0pO1xuICAgIGJhY2twb3J0V29ya2Zsb3cuYWRkSm9iKCdiYWNrcG9ydCcsIHtcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICAvLyBuZWVkZWQgaW4gb3JkZXIgdG8gcnVuIHRoZSBwcm9qZW4gdGFzayBhcyB3ZWxsXG4gICAgICAgIC8vIGFzIHVzZSB0aGUgYmFja3BvcnQgY29uZmlndXJhdGlvbiBpbiB0aGUgcmVwby5cbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjaGVja291dCcsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjMnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIHJlcXVpcmVkIGJlY2F1c2Ugd2UgbmVlZCB0aGUgZnVsbCBoaXN0b3J5XG4gICAgICAgICAgICAvLyBmb3IgcHJvcGVyIGJhY2twb3J0cy5cbiAgICAgICAgICAgICdmZXRjaC1kZXB0aCc6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZXQgR2l0IElkZW50aXR5JyxcbiAgICAgICAgICBydW46ICdnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSBcImdpdGh1Yi1hY3Rpb25zXCIgJiYgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsIFwiZ2l0aHViLWFjdGlvbnNAZ2l0aHViLmNvbVwiJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdiYWNrcG9ydCcsXG4gICAgICAgICAgaWY6ICdnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm1lcmdlZCA9PSB0cnVlJyxcbiAgICAgICAgICBydW46IGBucHggcHJvamVuICR7dGFzay5uYW1lfWAsXG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICBHSVRIVUJfVE9LRU46ICcke3sgc2VjcmV0cy5QUk9KRU5fR0lUSFVCX1RPS0VOIH19JyxcbiAgICAgICAgICAgIEJBQ0tQT1JUX1BSX05VTUJFUjogJyR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm51bWJlciB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgfVxuXG59Il19
@@ -0,0 +1,131 @@
1
+ import { Component, JsonFile, Task } from 'projen';
2
+ import { JobPermission } from 'projen/lib/github/workflows-model';
3
+ import { NodeProject } from 'projen/lib/javascript';
4
+
5
+ /**
6
+ * Options for `Backport`.
7
+ */
8
+ export interface BackportOptions {
9
+
10
+ /**
11
+ * The repository name.
12
+ */
13
+ readonly repoName: string;
14
+
15
+ /**
16
+ * List of specific branches to backport to.
17
+ *
18
+ * @default - No specific branches. Will be determined by PR labels.
19
+ */
20
+ readonly branches?: string[];
21
+ }
22
+
23
+ /**
24
+ * Add a Backport workflow to our repos.
25
+ */
26
+ export class Backport extends Component {
27
+
28
+ private readonly repoName: string;
29
+ private readonly config: JsonFile;
30
+
31
+ constructor(project: NodeProject, options: BackportOptions) {
32
+ super(project);
33
+
34
+ this.repoName = options.repoName;
35
+
36
+ this.config = new JsonFile(project, '.backportrc.json', {
37
+ // see https://github.com/sqren/backport/blob/main/docs/config-file-options.md
38
+ obj: {
39
+ repoOwner: 'cdk8s-team',
40
+ repoName: this.repoName,
41
+ signoff: true,
42
+ branchLabelMapping: {
43
+ '^backport-to-(.+)$': '$1',
44
+ },
45
+ prTitle: '{commitMessages}',
46
+ fork: false,
47
+ publishStatusCommentOnFailure: true,
48
+ publishStatusCommentOnSuccess: true,
49
+ publishStatusCommentOnAbort: true,
50
+ targetPRLabels: [project.autoApprove!.label],
51
+ },
52
+ });
53
+
54
+ // pinning because of https://github.com/sqren/backport/issues/451
55
+ // optional because it requires node 16 which is only available in the
56
+ // backport workflow environment.
57
+ project.addFields({ optionalDependencies: { backport: '8.5.0' } });
58
+
59
+ // backport task to branches based on pr labels (i.e not branch specific)
60
+ const backportTask = this.createTask(project);
61
+
62
+ // backport tasks to explicit branches based on input
63
+ for (const branch of options.branches ?? []) {
64
+ this.createTask(project, branch);
65
+ }
66
+
67
+ this.createWorkflow(project, backportTask);
68
+
69
+ }
70
+
71
+ private createTask(project: NodeProject, branch?: string): Task {
72
+ const name = branch ? `backport:${branch}` : 'backport';
73
+ const task = project.addTask(name, { requiredEnv: ['BACKPORT_PR_NUMBER', 'GITHUB_TOKEN'] });
74
+ const commands = [
75
+ 'BACKPORT_HOME=$(mktemp -d)',
76
+ 'mkdir -p ${BACKPORT_HOME}',
77
+ `cp ${this.config.path} \${BACKPORT_HOME}`,
78
+ 'cd ${BACKPORT_HOME}',
79
+ ];
80
+ const backport = ['backport', '--dir', `\${BACKPORT_HOME}/${this.repoName}`, '--accesstoken', '${GITHUB_TOKEN}', '--pr', '${BACKPORT_PR_NUMBER}'];
81
+ if (branch) {
82
+ backport.push(...['--branch', branch]);
83
+ } else {
84
+ backport.push('--non-interactive');
85
+ }
86
+
87
+ commands.push(backport.join(' '));
88
+ task.exec(commands.join(' && '));
89
+ return task;
90
+ }
91
+
92
+ private createWorkflow(project: NodeProject, task: Task) {
93
+
94
+ const backportWorkflow = project.github!.addWorkflow('backport');
95
+ backportWorkflow.on({ pullRequestTarget: { types: ['closed'] } });
96
+ backportWorkflow.addJob('backport', {
97
+ runsOn: ['ubuntu-latest'],
98
+ permissions: {
99
+ contents: JobPermission.WRITE,
100
+ },
101
+ steps: [
102
+ // needed in order to run the projen task as well
103
+ // as use the backport configuration in the repo.
104
+ {
105
+ name: 'checkout',
106
+ uses: 'actions/checkout@v3',
107
+ with: {
108
+ // required because we need the full history
109
+ // for proper backports.
110
+ 'fetch-depth': 0,
111
+ },
112
+ },
113
+ {
114
+ name: 'Set Git Identity',
115
+ run: 'git config --global user.name "github-actions" && git config --global user.email "github-actions@github.com"',
116
+ },
117
+ {
118
+ name: 'backport',
119
+ if: 'github.event.pull_request.merged == true',
120
+ run: `npx projen ${task.name}`,
121
+ env: {
122
+ GITHUB_TOKEN: '${{ secrets.PROJEN_GITHUB_TOKEN }}',
123
+ BACKPORT_PR_NUMBER: '${{ github.event.pull_request.number }}',
124
+ },
125
+ },
126
+ ],
127
+ });
128
+
129
+ }
130
+
131
+ }
@@ -1,10 +1,19 @@
1
1
  import { Component } from 'projen';
2
2
  import { NodeProject } from 'projen/lib/javascript';
3
+ /**
4
+ * Options for `Triage`.
5
+ */
6
+ export interface TriageOptions {
7
+ /**
8
+ * The repository name.
9
+ */
10
+ readonly repoName: string;
11
+ }
3
12
  /**
4
13
  * Add a Triage workflow to our repos.
5
14
  *
6
15
  * @see https://github.com/marketplace/actions/add-to-github-projects
7
16
  */
8
17
  export declare class Triage extends Component {
9
- constructor(project: NodeProject);
18
+ constructor(project: NodeProject, options: TriageOptions);
10
19
  }
@@ -9,7 +9,7 @@ const workflows_model_1 = require("projen/lib/github/workflows-model");
9
9
  * @see https://github.com/marketplace/actions/add-to-github-projects
10
10
  */
11
11
  class Triage extends projen_1.Component {
12
- constructor(project) {
12
+ constructor(project, options) {
13
13
  super(project);
14
14
  // hmm, we need to remember to update this in 2024
15
15
  // or figure out how to make this dynamic.
@@ -22,6 +22,9 @@ class Triage extends projen_1.Component {
22
22
  });
23
23
  workflow.addJob('assign-to-project', {
24
24
  permissions: { issues: workflows_model_1.JobPermission.WRITE },
25
+ // dont run this action in forks as it contains a hard link to our project board.
26
+ // see https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution#example-only-run-job-for-specific-repository
27
+ if: `github.repository == cdk8s-team/${options.repoName}`,
25
28
  runsOn: ['ubuntu-latest'],
26
29
  steps: [{
27
30
  uses: 'actions/add-to-project@v0.4.0',
@@ -35,4 +38,4 @@ class Triage extends projen_1.Component {
35
38
  }
36
39
  }
37
40
  exports.Triage = Triage;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJpYWdlL3RyaWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsdUVBQWtFO0FBR2xFOzs7O0dBSUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxrQkFBUztJQUVuQyxZQUFZLE9BQW9CO1FBQzlCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLGtEQUFrRDtRQUNsRCwwQ0FBMEM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsZ0RBQWdELENBQUM7UUFFcEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNWLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbEI7U0FDRixDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFO1lBQ25DLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSwrQkFBYSxDQUFDLEtBQUssRUFBRTtZQUM1QyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsS0FBSyxFQUFFLENBQUM7b0JBQ04sSUFBSSxFQUFFLCtCQUErQjtvQkFDckMsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSxVQUFVO3dCQUN6QixjQUFjLEVBQUUsb0NBQW9DO3dCQUNwRCxTQUFTLEVBQUUsY0FBYztxQkFDMUI7aUJBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQztJQUVMLENBQUM7Q0FDRjtBQTdCRCx3QkE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCc7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5cbi8qKlxuICogQWRkIGEgVHJpYWdlIHdvcmtmbG93IHRvIG91ciByZXBvcy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrZXRwbGFjZS9hY3Rpb25zL2FkZC10by1naXRodWItcHJvamVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFRyaWFnZSBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8vIGhtbSwgd2UgbmVlZCB0byByZW1lbWJlciB0byB1cGRhdGUgdGhpcyBpbiAyMDI0XG4gICAgLy8gb3IgZmlndXJlIG91dCBob3cgdG8gbWFrZSB0aGlzIGR5bmFtaWMuXG4gICAgY29uc3QgcHJvamVjdFVybCA9ICdodHRwczovL2dpdGh1Yi5jb20vb3Jncy9jZGs4cy10ZWFtL3Byb2plY3RzLzEyJztcblxuICAgIGNvbnN0IHdvcmtmbG93ID0gcHJvamVjdC5naXRodWIhLmFkZFdvcmtmbG93KCd0cmlhZ2UnKTtcbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICBpc3N1ZXM6IHtcbiAgICAgICAgdHlwZXM6IFsnb3BlbmVkJ10sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHdvcmtmbG93LmFkZEpvYignYXNzaWduLXRvLXByb2plY3QnLCB7XG4gICAgICBwZXJtaXNzaW9uczogeyBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUgfSxcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBzdGVwczogW3tcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvYWRkLXRvLXByb2plY3RAdjAuNC4wJyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdwcm9qZWN0LXVybCc6IHByb2plY3RVcmwsXG4gICAgICAgICAgJ2dpdGh1Yi10b2tlbic6ICcke3sgc2VjcmV0cy5QUk9KRU5fR0lUSFVCX1RPS0VOIH19JyxcbiAgICAgICAgICAnbGFiZWxlZCc6ICduZWVkcy10cmlhZ2UnLFxuICAgICAgICB9LFxuICAgICAgfV0sXG4gICAgfSk7XG5cbiAgfVxufSJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJpYWdlL3RyaWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsdUVBQWtFO0FBZWxFOzs7O0dBSUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxrQkFBUztJQUVuQyxZQUFZLE9BQW9CLEVBQUUsT0FBc0I7UUFDdEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsa0RBQWtEO1FBQ2xELDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxnREFBZ0QsQ0FBQztRQUVwRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ1YsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNsQjtTQUNGLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLCtCQUFhLENBQUMsS0FBSyxFQUFFO1lBQzVDLGlGQUFpRjtZQUNqRiwySUFBMkk7WUFDM0ksRUFBRSxFQUFFLG1DQUFtQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3pELE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUN6QixLQUFLLEVBQUUsQ0FBQztvQkFDTixJQUFJLEVBQUUsK0JBQStCO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0osYUFBYSxFQUFFLFVBQVU7d0JBQ3pCLGNBQWMsRUFBRSxvQ0FBb0M7d0JBQ3BELFNBQVMsRUFBRSxjQUFjO3FCQUMxQjtpQkFDRixDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBRUwsQ0FBQztDQUNGO0FBaENELHdCQWdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgVHJpYWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlhZ2VPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBBZGQgYSBUcmlhZ2Ugd29ya2Zsb3cgdG8gb3VyIHJlcG9zLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hcmtldHBsYWNlL2FjdGlvbnMvYWRkLXRvLWdpdGh1Yi1wcm9qZWN0c1xuICovXG5leHBvcnQgY2xhc3MgVHJpYWdlIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogVHJpYWdlT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgLy8gaG1tLCB3ZSBuZWVkIHRvIHJlbWVtYmVyIHRvIHVwZGF0ZSB0aGlzIGluIDIwMjRcbiAgICAvLyBvciBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHRoaXMgZHluYW1pYy5cbiAgICBjb25zdCBwcm9qZWN0VXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL2NkazhzLXRlYW0vcHJvamVjdHMvMTInO1xuXG4gICAgY29uc3Qgd29ya2Zsb3cgPSBwcm9qZWN0LmdpdGh1YiEuYWRkV29ya2Zsb3coJ3RyaWFnZScpO1xuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIGlzc3Vlczoge1xuICAgICAgICB0eXBlczogWydvcGVuZWQnXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgd29ya2Zsb3cuYWRkSm9iKCdhc3NpZ24tdG8tcHJvamVjdCcsIHtcbiAgICAgIHBlcm1pc3Npb25zOiB7IGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSB9LFxuICAgICAgLy8gZG9udCBydW4gdGhpcyBhY3Rpb24gaW4gZm9ya3MgYXMgaXQgY29udGFpbnMgYSBoYXJkIGxpbmsgdG8gb3VyIHByb2plY3QgYm9hcmQuXG4gICAgICAvLyBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy91c2luZy1qb2JzL3VzaW5nLWNvbmRpdGlvbnMtdG8tY29udHJvbC1qb2ItZXhlY3V0aW9uI2V4YW1wbGUtb25seS1ydW4tam9iLWZvci1zcGVjaWZpYy1yZXBvc2l0b3J5XG4gICAgICBpZjogYGdpdGh1Yi5yZXBvc2l0b3J5ID09IGNkazhzLXRlYW0vJHtvcHRpb25zLnJlcG9OYW1lfWAsXG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgc3RlcHM6IFt7XG4gICAgICAgIHVzZXM6ICdhY3Rpb25zL2FkZC10by1wcm9qZWN0QHYwLjQuMCcsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAncHJvamVjdC11cmwnOiBwcm9qZWN0VXJsLFxuICAgICAgICAgICdnaXRodWItdG9rZW4nOiAnJHt7IHNlY3JldHMuUFJPSkVOX0dJVEhVQl9UT0tFTiB9fScsXG4gICAgICAgICAgJ2xhYmVsZWQnOiAnbmVlZHMtdHJpYWdlJyxcbiAgICAgICAgfSxcbiAgICAgIH1dLFxuICAgIH0pO1xuXG4gIH1cbn0iXX0=
@@ -2,6 +2,18 @@ import { Component } from 'projen';
2
2
  import { JobPermission } from 'projen/lib/github/workflows-model';
3
3
  import { NodeProject } from 'projen/lib/javascript';
4
4
 
5
+ /**
6
+ * Options for `Triage`.
7
+ */
8
+ export interface TriageOptions {
9
+
10
+ /**
11
+ * The repository name.
12
+ */
13
+ readonly repoName: string;
14
+
15
+ }
16
+
5
17
  /**
6
18
  * Add a Triage workflow to our repos.
7
19
  *
@@ -9,7 +21,7 @@ import { NodeProject } from 'projen/lib/javascript';
9
21
  */
10
22
  export class Triage extends Component {
11
23
 
12
- constructor(project: NodeProject) {
24
+ constructor(project: NodeProject, options: TriageOptions) {
13
25
  super(project);
14
26
 
15
27
  // hmm, we need to remember to update this in 2024
@@ -24,6 +36,9 @@ export class Triage extends Component {
24
36
  });
25
37
  workflow.addJob('assign-to-project', {
26
38
  permissions: { issues: JobPermission.WRITE },
39
+ // dont run this action in forks as it contains a hard link to our project board.
40
+ // see https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution#example-only-run-job-for-specific-repository
41
+ if: `github.repository == cdk8s-team/${options.repoName}`,
27
42
  runsOn: ['ubuntu-latest'],
28
43
  steps: [{
29
44
  uses: 'actions/add-to-project@v0.4.0',
@@ -6,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const maker = require("codemaker");
7
7
  const projen_1 = require("projen");
8
8
  const node = require("./node");
9
+ const backport_1 = require("../components/backport/backport");
9
10
  const code = new maker.CodeMaker();
10
11
  /**
11
12
  * @pjid cdk8s-team-jsii-project
@@ -35,11 +36,14 @@ class Cdk8sTeamJsiiProject extends projen_1.cdk.JsiiProject {
35
36
  ...options,
36
37
  });
37
38
  node.addComponents(this, repoName);
39
+ if (options.backport ?? false) {
40
+ new backport_1.Backport(this, { branches: options.backportBranches, repoName });
41
+ }
38
42
  }
39
43
  }
40
44
  exports.Cdk8sTeamJsiiProject = Cdk8sTeamJsiiProject;
41
45
  _a = JSII_RTTI_SYMBOL_1;
42
- Cdk8sTeamJsiiProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamJsiiProject", version: "0.0.277" };
46
+ Cdk8sTeamJsiiProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamJsiiProject", version: "0.0.279" };
43
47
  function pythonTarget(name) {
44
48
  const repoName = node.buildRepositoryName(name);
45
49
  return {
@@ -73,4 +77,4 @@ function golangTarget(repoName, branch) {
73
77
  moduleName: `github.com/cdk8s-team/${repoName}-go`,
74
78
  };
75
79
  }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9qc2lpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLG1DQUE2QjtBQUM3QiwrQkFBK0I7QUFHL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7QUFrRG5DOztHQUVHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxZQUFHLENBQUMsV0FBVztJQUV2RCxZQUFZLE9BQW9DO1FBRTlDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFFLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUVwQyxLQUFLLENBQUM7WUFDSixNQUFNLEVBQUUsc0JBQXNCLENBQUMsVUFBVztZQUMxQyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsVUFBVztZQUNqRCxhQUFhLEVBQUUsd0JBQXdCO1lBQ3ZDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDNUQsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUM1RCxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzlELFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdEUsR0FBRyxzQkFBc0I7WUFDekIsR0FBRyx3QkFBd0I7WUFDM0IsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFckMsQ0FBQzs7QUFoQ0gsb0RBa0NDOzs7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFZO0lBQ2hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLFFBQVE7UUFDbEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztLQUNwQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQVk7SUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLE9BQU87UUFDTCxlQUFlLEVBQUUsUUFBUTtRQUN6QixZQUFZLEVBQUUsV0FBVztRQUN6QixXQUFXLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtLQUNoRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVk7SUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsT0FBTztRQUNMLGVBQWUsRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ25ELFNBQVMsRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0tBQzlDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsUUFBZ0IsRUFBRSxNQUFjO0lBQ3BELE9BQU87UUFDTCxXQUFXLEVBQUUsa0JBQWtCO1FBQy9CLFlBQVksRUFBRSx1QkFBdUI7UUFDckMsU0FBUyxFQUFFLE1BQU07UUFDakIsVUFBVSxFQUFFLHlCQUF5QixRQUFRLEtBQUs7S0FDbkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtYWtlciBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0IHsgY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCAqIGFzIG5vZGUgZnJvbSAnLi9ub2RlJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJy4vdHlwZXNjcmlwdCc7XG5cbmNvbnN0IGNvZGUgPSBuZXcgbWFrZXIuQ29kZU1ha2VyKCk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYENkazhzVGVhbUpzaWlQcm9qZWN0YC5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBleHRlbmRzIGBDZGs4c1RlYW1UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnNgIGFuZCBub3QgYGNkay5Kc2lpUHJvamVjdE9wdGlvbnNgXG4gKiBiZWNhdXNlIGBjZGsuSnNpaVByb2plY3RPcHRpb25zYCBoYXMgcmVxdWlyZWQgcHJvcGVydGllcyAobmFtZWx5ICdhdXRob3InIGFuZCAnYXV0aG9yQWRkcmVzcycpXG4gKiB0aGF0IHdlIHdhbnQgdG8gaGFyZGNvZGUgYW5kIGRpc2FsbG93IGN1c3RvbWl6YXRpb24gb2YuIFRoaXMgbWVhbnMgdGhhdCBhbnkganNpaSBzcGVjaWZpYyBmZWF0dXJlXG4gKiBjYW5ub3QgYmUgY3VzdG9taXplZCBvbiB0aGUgcHJvamVjdCBsZXZlbC4gVGhpcyBpcyBvayBiZWNhdXNlIHdlIGRvbid0IGV4cGVjdCBtdWNoIGRldmlhdGlvblxuICogd2l0aCB0aG9zZSBmZWF0dXJlcyBiZXR3ZWVuIHByb2plY3RzLiBJZiB0aGlzIHR1cm5zIG91dCB0byBub3QgYmUgdGhlIGNhc2UsIHdlIHdpbGwgY2hhbmdlIGFwcHJvcHJpYXRlbHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrOHNUZWFtSnNpaVByb2plY3RPcHRpb25zIGV4dGVuZHMgdHMuQ2RrOHNUZWFtVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIHtcblxuICAvKipcbiAgICogUHVibGlzaCBHb2xhbmcgYmluZGluZ3MgdG8gR2l0SHViLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBnb2xhbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBicmFuY2ggaW4gdGhlIGdvbGFuZyByZXBvc2l0b3J5IHRvIHB1Ymxpc2ggdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtYWluJ1xuICAgKi9cbiAgcmVhZG9ubHkgZ29sYW5nQnJhbmNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIFB5dGhvbiBiaW5kaW5ncyB0byBQeVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBweXBpPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHVibGlzaCBKYXZhIGJpbmRpbmdzIHRvIE1hdmVuLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBtYXZlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggRG90bmV0IGJpbmRpbmdzIHRvIE51Z2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBudWdldD86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBAcGppZCBjZGs4cy10ZWFtLWpzaWktcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgQ2RrOHNUZWFtSnNpaVByb2plY3QgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3Qge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENkazhzVGVhbUpzaWlQcm9qZWN0T3B0aW9ucykge1xuXG4gICAgbm9kZS52YWxpZGF0ZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgbm9kZS52YWxpZGF0ZVByb2plY3ROYW1lKG9wdGlvbnMpO1xuXG4gICAgY29uc3QgZml4ZWRUeXBlU2NyaXB0T3B0aW9ucyA9IG5vZGUuYnVpbGROb2RlUHJvamVjdEZpeGVkT3B0aW9ucyhvcHRpb25zKTtcbiAgICBjb25zdCBkZWZhdWx0VHlwZVNjcmlwdE9wdGlvbnMgPSBub2RlLmJ1aWxkTm9kZVByb2plY3REZWZhdWx0T3B0aW9ucyhvcHRpb25zKTtcbiAgICBjb25zdCByZXBvTmFtZSA9IG9wdGlvbnMucmVwb05hbWUgPz8gbm9kZS5idWlsZFJlcG9zaXRvcnlOYW1lKG9wdGlvbnMubmFtZSk7XG5cbiAgICBjb25zdCBnb2xhbmdCcmFuY2ggPSBvcHRpb25zLmdvbGFuZ0JyYW5jaCA/PyAnbWFpbic7XG4gICAgY29uc3QgZ29sYW5nID0gb3B0aW9ucy5nb2xhbmcgPz8gdHJ1ZTtcbiAgICBjb25zdCBweXBpID0gb3B0aW9ucy5weXBpID8/IHRydWU7XG4gICAgY29uc3QgbWF2ZW4gPSBvcHRpb25zLm1hdmVuID8/IHRydWU7XG4gICAgY29uc3QgbnVnZXQgPSBvcHRpb25zLm51Z2V0ID8/IHRydWU7XG5cbiAgICBzdXBlcih7XG4gICAgICBhdXRob3I6IGZpeGVkVHlwZVNjcmlwdE9wdGlvbnMuYXV0aG9yTmFtZSEsXG4gICAgICByZXBvc2l0b3J5VXJsOiBmaXhlZFR5cGVTY3JpcHRPcHRpb25zLnJlcG9zaXRvcnkhLFxuICAgICAgYXV0aG9yQWRkcmVzczogJ2h0dHBzOi8vYXdzLmFtYXpvbi5jb20nLFxuICAgICAgcHVibGlzaFRvUHlwaTogcHlwaSA/IHB5dGhvblRhcmdldChvcHRpb25zLm5hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgcHVibGlzaFRvTWF2ZW46IG1hdmVuID8gamF2YVRhcmdldChvcHRpb25zLm5hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgcHVibGlzaFRvTnVnZXQ6IG51Z2V0ID8gZG90bmV0VGFyZ2V0KG9wdGlvbnMubmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICBwdWJsaXNoVG9HbzogZ29sYW5nID8gZ29sYW5nVGFyZ2V0KHJlcG9OYW1lLCBnb2xhbmdCcmFuY2gpIDogdW5kZWZpbmVkLFxuICAgICAgLi4uZml4ZWRUeXBlU2NyaXB0T3B0aW9ucyxcbiAgICAgIC4uLmRlZmF1bHRUeXBlU2NyaXB0T3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBub2RlLmFkZENvbXBvbmVudHModGhpcywgcmVwb05hbWUpO1xuXG4gIH1cblxufVxuXG5mdW5jdGlvbiBweXRob25UYXJnZXQobmFtZTogc3RyaW5nKTogY2RrLkpzaWlQeXRob25UYXJnZXQge1xuICBjb25zdCByZXBvTmFtZSA9IG5vZGUuYnVpbGRSZXBvc2l0b3J5TmFtZShuYW1lKTtcbiAgcmV0dXJuIHtcbiAgICBkaXN0TmFtZTogcmVwb05hbWUsXG4gICAgbW9kdWxlOiByZXBvTmFtZS5yZXBsYWNlKC8tL2csICdfJyksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGphdmFUYXJnZXQobmFtZTogc3RyaW5nKTogY2RrLkpzaWlKYXZhVGFyZ2V0IHtcbiAgY29uc3QgcmVwb05hbWUgPSBub2RlLmJ1aWxkUmVwb3NpdG9yeU5hbWUobmFtZSk7XG4gIGNvbnN0IHBrZyA9IHJlcG9OYW1lLnN1YnN0cmluZyhub2RlLk5BTUVfUFJFRklYLmxlbmd0aCkucmVwbGFjZSgvLS9nLCAnJyk7XG4gIHJldHVybiB7XG4gICAgbWF2ZW5BcnRpZmFjdElkOiByZXBvTmFtZSxcbiAgICBtYXZlbkdyb3VwSWQ6ICdvcmcuY2RrOHMnLFxuICAgIGphdmFQYWNrYWdlOiBgb3JnLmNkazhzJHtwa2cgPyBgLiR7cGtnfWAgOiAnJ31gLFxuICB9O1xufVxuXG5mdW5jdGlvbiBkb3RuZXRUYXJnZXQobmFtZTogc3RyaW5nKSA6IGNkay5Kc2lpRG90TmV0VGFyZ2V0IHtcbiAgY29uc3QgcmVwb05hbWUgPSBub2RlLmJ1aWxkUmVwb3NpdG9yeU5hbWUobmFtZSk7XG4gIGNvbnN0IGFydGlmYWN0ID0gcmVwb05hbWUuc3Vic3RyaW5nKG5vZGUuTkFNRV9QUkVGSVgubGVuZ3RoKTtcbiAgY29uc3QgcGtnID0gY29kZS50b1Bhc2NhbENhc2UoYXJ0aWZhY3QpLnJlcGxhY2UoLy0vZywgJycpO1xuICByZXR1cm4ge1xuICAgIGRvdE5ldE5hbWVzcGFjZTogYE9yZy5DZGs4cyR7cGtnID8gYC4ke3BrZ31gIDogJyd9YCxcbiAgICBwYWNrYWdlSWQ6IGBPcmcuQ2RrOHMke3BrZyA/IGAuJHtwa2d9YCA6ICcnfWAsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdvbGFuZ1RhcmdldChyZXBvTmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IGNkay5Kc2lpR29UYXJnZXQge1xuICByZXR1cm4ge1xuICAgIGdpdFVzZXJOYW1lOiAnY2RrOHMtYXV0b21hdGlvbicsXG4gICAgZ2l0VXNlckVtYWlsOiAnY2RrOHMtdGVhbUBhbWF6b24uY29tJyxcbiAgICBnaXRCcmFuY2g6IGJyYW5jaCxcbiAgICBtb2R1bGVOYW1lOiBgZ2l0aHViLmNvbS9jZGs4cy10ZWFtLyR7cmVwb05hbWV9LWdvYCxcbiAgfTtcbn1cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9qc2lpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLG1DQUE2QjtBQUM3QiwrQkFBK0I7QUFFL0IsOERBQTJEO0FBRTNELE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBa0RuQzs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsWUFBRyxDQUFDLFdBQVc7SUFFdkQsWUFBWSxPQUFvQztRQUU5QyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsQyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRSxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7UUFFcEMsS0FBSyxDQUFDO1lBQ0osTUFBTSxFQUFFLHNCQUFzQixDQUFDLFVBQVc7WUFDMUMsYUFBYSxFQUFFLHNCQUFzQixDQUFDLFVBQVc7WUFDakQsYUFBYSxFQUFFLHdCQUF3QjtZQUN2QyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzVELGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDNUQsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUM5RCxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ3RFLEdBQUcsc0JBQXNCO1lBQ3pCLEdBQUcsd0JBQXdCO1lBQzNCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRW5DLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLEVBQUU7WUFDN0IsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUN0RTtJQUVILENBQUM7O0FBcENILG9EQXNDQzs7O0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsT0FBTztRQUNMLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7S0FDcEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFZO0lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRSxPQUFPO1FBQ0wsZUFBZSxFQUFFLFFBQVE7UUFDekIsWUFBWSxFQUFFLFdBQVc7UUFDekIsV0FBVyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7S0FDaEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFZO0lBQ2hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE9BQU87UUFDTCxlQUFlLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNuRCxTQUFTLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtLQUM5QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLFFBQWdCLEVBQUUsTUFBYztJQUNwRCxPQUFPO1FBQ0wsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixZQUFZLEVBQUUsdUJBQXVCO1FBQ3JDLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFVBQVUsRUFBRSx5QkFBeUIsUUFBUSxLQUFLO0tBQ25ELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbWFrZXIgZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IGNkayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgKiBhcyBub2RlIGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICcuL3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgQmFja3BvcnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2JhY2twb3J0L2JhY2twb3J0JztcblxuY29uc3QgY29kZSA9IG5ldyBtYWtlci5Db2RlTWFrZXIoKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQ2RrOHNUZWFtSnNpaVByb2plY3RgLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGV4dGVuZHMgYENkazhzVGVhbVR5cGVTY3JpcHRQcm9qZWN0T3B0aW9uc2AgYW5kIG5vdCBgY2RrLkpzaWlQcm9qZWN0T3B0aW9uc2BcbiAqIGJlY2F1c2UgYGNkay5Kc2lpUHJvamVjdE9wdGlvbnNgIGhhcyByZXF1aXJlZCBwcm9wZXJ0aWVzIChuYW1lbHkgJ2F1dGhvcicgYW5kICdhdXRob3JBZGRyZXNzJylcbiAqIHRoYXQgd2Ugd2FudCB0byBoYXJkY29kZSBhbmQgZGlzYWxsb3cgY3VzdG9taXphdGlvbiBvZi4gVGhpcyBtZWFucyB0aGF0IGFueSBqc2lpIHNwZWNpZmljIGZlYXR1cmVcbiAqIGNhbm5vdCBiZSBjdXN0b21pemVkIG9uIHRoZSBwcm9qZWN0IGxldmVsLiBUaGlzIGlzIG9rIGJlY2F1c2Ugd2UgZG9uJ3QgZXhwZWN0IG11Y2ggZGV2aWF0aW9uXG4gKiB3aXRoIHRob3NlIGZlYXR1cmVzIGJldHdlZW4gcHJvamVjdHMuIElmIHRoaXMgdHVybnMgb3V0IHRvIG5vdCBiZSB0aGUgY2FzZSwgd2Ugd2lsbCBjaGFuZ2UgYXBwcm9wcmlhdGVseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGs4c1RlYW1Kc2lpUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyB0cy5DZGs4c1RlYW1UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIEdvbGFuZyBiaW5kaW5ncyB0byBHaXRIdWIuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGdvbGFuZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGJyYW5jaCBpbiB0aGUgZ29sYW5nIHJlcG9zaXRvcnkgdG8gcHVibGlzaCB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgJ21haW4nXG4gICAqL1xuICByZWFkb25seSBnb2xhbmdCcmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggUHl0aG9uIGJpbmRpbmdzIHRvIFB5UEkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHB5cGk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIEphdmEgYmluZGluZ3MgdG8gTWF2ZW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHVibGlzaCBEb3RuZXQgYmluZGluZ3MgdG8gTnVnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG51Z2V0PzogYm9vbGVhbjtcblxufVxuXG4vKipcbiAqIEBwamlkIGNkazhzLXRlYW0tanNpaS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBDZGs4c1RlYW1Kc2lpUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrOHNUZWFtSnNpaVByb2plY3RPcHRpb25zKSB7XG5cbiAgICBub2RlLnZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKTtcbiAgICBub2RlLnZhbGlkYXRlUHJvamVjdE5hbWUob3B0aW9ucyk7XG5cbiAgICBjb25zdCBmaXhlZFR5cGVTY3JpcHRPcHRpb25zID0gbm9kZS5idWlsZE5vZGVQcm9qZWN0Rml4ZWRPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IGRlZmF1bHRUeXBlU2NyaXB0T3B0aW9ucyA9IG5vZGUuYnVpbGROb2RlUHJvamVjdERlZmF1bHRPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IHJlcG9OYW1lID0gb3B0aW9ucy5yZXBvTmFtZSA/PyBub2RlLmJ1aWxkUmVwb3NpdG9yeU5hbWUob3B0aW9ucy5uYW1lKTtcblxuICAgIGNvbnN0IGdvbGFuZ0JyYW5jaCA9IG9wdGlvbnMuZ29sYW5nQnJhbmNoID8/ICdtYWluJztcbiAgICBjb25zdCBnb2xhbmcgPSBvcHRpb25zLmdvbGFuZyA/PyB0cnVlO1xuICAgIGNvbnN0IHB5cGkgPSBvcHRpb25zLnB5cGkgPz8gdHJ1ZTtcbiAgICBjb25zdCBtYXZlbiA9IG9wdGlvbnMubWF2ZW4gPz8gdHJ1ZTtcbiAgICBjb25zdCBudWdldCA9IG9wdGlvbnMubnVnZXQgPz8gdHJ1ZTtcblxuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhvcjogZml4ZWRUeXBlU2NyaXB0T3B0aW9ucy5hdXRob3JOYW1lISxcbiAgICAgIHJlcG9zaXRvcnlVcmw6IGZpeGVkVHlwZVNjcmlwdE9wdGlvbnMucmVwb3NpdG9yeSEsXG4gICAgICBhdXRob3JBZGRyZXNzOiAnaHR0cHM6Ly9hd3MuYW1hem9uLmNvbScsXG4gICAgICBwdWJsaXNoVG9QeXBpOiBweXBpID8gcHl0aG9uVGFyZ2V0KG9wdGlvbnMubmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICBwdWJsaXNoVG9NYXZlbjogbWF2ZW4gPyBqYXZhVGFyZ2V0KG9wdGlvbnMubmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICBwdWJsaXNoVG9OdWdldDogbnVnZXQgPyBkb3RuZXRUYXJnZXQob3B0aW9ucy5uYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgIHB1Ymxpc2hUb0dvOiBnb2xhbmcgPyBnb2xhbmdUYXJnZXQocmVwb05hbWUsIGdvbGFuZ0JyYW5jaCkgOiB1bmRlZmluZWQsXG4gICAgICAuLi5maXhlZFR5cGVTY3JpcHRPcHRpb25zLFxuICAgICAgLi4uZGVmYXVsdFR5cGVTY3JpcHRPcHRpb25zLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIG5vZGUuYWRkQ29tcG9uZW50cyh0aGlzLCByZXBvTmFtZSk7XG5cbiAgICBpZiAob3B0aW9ucy5iYWNrcG9ydCA/PyBmYWxzZSkge1xuICAgICAgbmV3IEJhY2twb3J0KHRoaXMsIHsgYnJhbmNoZXM6IG9wdGlvbnMuYmFja3BvcnRCcmFuY2hlcywgcmVwb05hbWUgfSk7XG4gICAgfVxuXG4gIH1cblxufVxuXG5mdW5jdGlvbiBweXRob25UYXJnZXQobmFtZTogc3RyaW5nKTogY2RrLkpzaWlQeXRob25UYXJnZXQge1xuICBjb25zdCByZXBvTmFtZSA9IG5vZGUuYnVpbGRSZXBvc2l0b3J5TmFtZShuYW1lKTtcbiAgcmV0dXJuIHtcbiAgICBkaXN0TmFtZTogcmVwb05hbWUsXG4gICAgbW9kdWxlOiByZXBvTmFtZS5yZXBsYWNlKC8tL2csICdfJyksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGphdmFUYXJnZXQobmFtZTogc3RyaW5nKTogY2RrLkpzaWlKYXZhVGFyZ2V0IHtcbiAgY29uc3QgcmVwb05hbWUgPSBub2RlLmJ1aWxkUmVwb3NpdG9yeU5hbWUobmFtZSk7XG4gIGNvbnN0IHBrZyA9IHJlcG9OYW1lLnN1YnN0cmluZyhub2RlLk5BTUVfUFJFRklYLmxlbmd0aCkucmVwbGFjZSgvLS9nLCAnJyk7XG4gIHJldHVybiB7XG4gICAgbWF2ZW5BcnRpZmFjdElkOiByZXBvTmFtZSxcbiAgICBtYXZlbkdyb3VwSWQ6ICdvcmcuY2RrOHMnLFxuICAgIGphdmFQYWNrYWdlOiBgb3JnLmNkazhzJHtwa2cgPyBgLiR7cGtnfWAgOiAnJ31gLFxuICB9O1xufVxuXG5mdW5jdGlvbiBkb3RuZXRUYXJnZXQobmFtZTogc3RyaW5nKSA6IGNkay5Kc2lpRG90TmV0VGFyZ2V0IHtcbiAgY29uc3QgcmVwb05hbWUgPSBub2RlLmJ1aWxkUmVwb3NpdG9yeU5hbWUobmFtZSk7XG4gIGNvbnN0IGFydGlmYWN0ID0gcmVwb05hbWUuc3Vic3RyaW5nKG5vZGUuTkFNRV9QUkVGSVgubGVuZ3RoKTtcbiAgY29uc3QgcGtnID0gY29kZS50b1Bhc2NhbENhc2UoYXJ0aWZhY3QpLnJlcGxhY2UoLy0vZywgJycpO1xuICByZXR1cm4ge1xuICAgIGRvdE5ldE5hbWVzcGFjZTogYE9yZy5DZGs4cyR7cGtnID8gYC4ke3BrZ31gIDogJyd9YCxcbiAgICBwYWNrYWdlSWQ6IGBPcmcuQ2RrOHMke3BrZyA/IGAuJHtwa2d9YCA6ICcnfWAsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdvbGFuZ1RhcmdldChyZXBvTmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IGNkay5Kc2lpR29UYXJnZXQge1xuICByZXR1cm4ge1xuICAgIGdpdFVzZXJOYW1lOiAnY2RrOHMtYXV0b21hdGlvbicsXG4gICAgZ2l0VXNlckVtYWlsOiAnY2RrOHMtdGVhbUBhbWF6b24uY29tJyxcbiAgICBnaXRCcmFuY2g6IGJyYW5jaCxcbiAgICBtb2R1bGVOYW1lOiBgZ2l0aHViLmNvbS9jZGs4cy10ZWFtLyR7cmVwb05hbWV9LWdvYCxcbiAgfTtcbn1cbiJdfQ==
@@ -37,6 +37,18 @@ export interface Cdk8sTeamNodeProjectOptions extends javascript.NodeProjectOptio
37
37
  * @default - the package name.
38
38
  */
39
39
  readonly repoName?: string;
40
+ /**
41
+ * Configure a backport workflow.
42
+ *
43
+ * @default false
44
+ */
45
+ readonly backport?: boolean;
46
+ /**
47
+ * Branches to backport to.
48
+ *
49
+ * @default - Will be derived from PR labels.
50
+ */
51
+ readonly backportBranches?: string[];
40
52
  }
41
53
  /**
42
54
  * @pjid cdk8s-team-node-project
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.addComponents = exports.validateProjectName = exports.validateOptions = exports.Cdk8sTeamNodeProject = exports.buildRepositoryName = exports.buildNodeProjectDefaultOptions = exports.buildNodeProjectFixedOptions = exports.defaultOptionsKeys = exports.fixedOptionsKeys = exports.SCOPE = exports.NAME_PREFIX = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const projen_1 = require("projen");
7
+ const backport_1 = require("../components/backport/backport");
7
8
  const code_of_conduct_1 = require("../components/code-of-conduct/code-of-conduct");
8
9
  const devco_1 = require("../components/dco/devco");
9
10
  const git_hooks_1 = require("../components/git-hooks/git-hooks");
@@ -85,11 +86,14 @@ class Cdk8sTeamNodeProject extends projen_1.javascript.NodeProject {
85
86
  });
86
87
  const repoName = options.repoName ?? buildRepositoryName(options.name);
87
88
  addComponents(this, repoName);
89
+ if (options.backport ?? false) {
90
+ new backport_1.Backport(this, { branches: options.backportBranches, repoName });
91
+ }
88
92
  }
89
93
  }
90
94
  exports.Cdk8sTeamNodeProject = Cdk8sTeamNodeProject;
91
95
  _a = JSII_RTTI_SYMBOL_1;
92
- Cdk8sTeamNodeProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamNodeProject", version: "0.0.277" };
96
+ Cdk8sTeamNodeProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamNodeProject", version: "0.0.279" };
93
97
  /**
94
98
  * Validate that the options map does not contain any invalid option.
95
99
  * This would usually be implemented at compile time using Omit/Pick but jsii
@@ -140,7 +144,7 @@ function addComponents(project, repoName) {
140
144
  new git_hooks_1.GitHooks(project);
141
145
  new issue_templates_1.IssueTemplates(project, { repoName });
142
146
  new security_1.SecurityMD(project);
143
- new triage_1.Triage(project);
147
+ new triage_1.Triage(project, { repoName });
144
148
  }
145
149
  exports.addComponents = addComponents;
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9DO0FBRXBDLG1GQUFnRjtBQUNoRixtREFBOEM7QUFDOUMsaUVBQTZEO0FBQzdELG1GQUErRTtBQUMvRSw4REFBNkQ7QUFDN0Qsd0RBQXFEO0FBRXhDLFFBQUEsV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUN2QixRQUFBLEtBQUssR0FBRyxTQUFTLENBQUM7QUFFL0I7OztHQUdHO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBRztJQUM5QixZQUFZO0lBQ1osYUFBYTtJQUNiLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIscUJBQXFCO0lBRXJCLDRDQUE0QztJQUM1QywwQkFBMEI7SUFDMUIsaUJBQWlCO0NBQ1QsQ0FBQztBQUdYOzs7R0FHRztBQUNVLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsY0FBYztJQUNkLFNBQVM7SUFDVCxnQkFBZ0I7Q0FDUixDQUFDO0FBR1g7O0dBRUc7QUFDSCxTQUFnQiw0QkFBNEIsQ0FBQyxPQUFvQztJQUcvRSxPQUFPO1FBQ0wsVUFBVSxFQUFFLHFCQUFxQjtRQUNqQyxVQUFVLEVBQUUsaUNBQWlDLE9BQU8sQ0FBQyxRQUFRLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQ3hHLGtCQUFrQixFQUFFO1lBQ2xCLGdCQUFnQixFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDdEMsTUFBTSxFQUFFLGNBQWM7U0FDdkI7UUFDRCxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTztLQUNqQyxDQUFDO0FBQ0osQ0FBQztBQWJELG9FQWFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxPQUFvQztJQUVqRixPQUFPO1FBQ0wsNkRBQTZEO1FBQzdELFlBQVksRUFBRSxPQUFPLENBQUMsT0FBTztRQUM3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Q0FBQztBQUV0QixDQUFDO0FBVEQsc0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IENvZGVPZkNvbmR1Y3RNRCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29kZS1vZi1jb25kdWN0L2NvZGUtb2YtY29uZHVjdCc7XG5pbXBvcnQgeyBEQ08gfSBmcm9tICcuLi9jb21wb25lbnRzL2Rjby9kZXZjbyc7XG5pbXBvcnQgeyBHaXRIb29rcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvZ2l0LWhvb2tzL2dpdC1ob29rcyc7XG5pbXBvcnQgeyBJc3N1ZVRlbXBsYXRlcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvaXNzdWUtdGVtcGxhdGVzL2lzc3VlLXRlbXBsYXRlcyc7XG5pbXBvcnQgeyBTZWN1cml0eU1EIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zZWN1cml0eS9zZWN1cml0eSc7XG5pbXBvcnQgeyBUcmlhZ2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3RyaWFnZS90cmlhZ2UnO1xuXG5leHBvcnQgY29uc3QgTkFNRV9QUkVGSVggPSAnY2RrOHMtJztcbmV4cG9ydCBjb25zdCBTQ09QRSA9ICdAY2RrOHMvJztcblxuLyoqXG4gKiBTdWJzZXQgb2Ygb3B0aW9ucyB0aGF0IHNob3VsZCBiZSBmaXhlZCBmb3IgYWxsIGNkazhzLXRlYW0gbm9kZSBwcm9qZWN0cy5cbiAqIFRoZXNlIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBmb3IgY3VzdG9taXphdGlvbiBieSBpbmRpdmlkdWFsIHByb2plY3RzLlxuICovXG5leHBvcnQgY29uc3QgZml4ZWRPcHRpb25zS2V5cyA9IFtcbiAgJ2F1dGhvck5hbWUnLFxuICAnYXV0aG9yRW1haWwnLFxuICAncmVwb3NpdG9yeScsXG4gICdhdXRvQXBwcm92ZU9wdGlvbnMnLFxuICAnYXV0b0FwcHJvdmVVcGdyYWRlcycsXG5cbiAgLy8gdGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mICdyZWxlYXNlJy5cbiAgLy8gbGV0cyBkaXNhbGxvdyB1c2luZyBpdC5cbiAgJ3JlbGVhc2VXb3JrZmxvdycsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgZml4ZWRPcHRpb25zS2V5c1R5cGUgPSB0eXBlb2YgZml4ZWRPcHRpb25zS2V5c1tudW1iZXJdO1xuXG4vKipcbiAqIFN1YnNldCBvZiBvcHRpb25zIHRoYXQgaGF2ZSBkZWZhdWx0IHZhbHVlcyBmb3IgYWxsIGNkazhzLXRlYW0gbm9kZSBwcm9qZWN0cy5cbiAqIFRoZXNlIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBjdXN0b21pemF0aW9uIGJ5IGluZGl2aWR1YWwgcHJvamVjdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0T3B0aW9uc0tleXMgPSBbXG4gICdyZWxlYXNlVG9OcG0nLFxuICAncmVsZWFzZScsXG4gICdtaW5Ob2RlVmVyc2lvbicsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgZGVmYXVsdE9wdGlvbnNLZXlzVHlwZSA9IHR5cGVvZiBkZWZhdWx0T3B0aW9uc0tleXNbbnVtYmVyXTtcblxuLyoqXG4gKiBDcmVhdGUgdGhlIGZpeGVkIHR5cGVzY3JpcHQgcHJvamVjdCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGROb2RlUHJvamVjdEZpeGVkT3B0aW9ucyhvcHRpb25zOiBDZGs4c1RlYW1Ob2RlUHJvamVjdE9wdGlvbnMpOlxuUGljazxqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0T3B0aW9ucywgZml4ZWRPcHRpb25zS2V5c1R5cGU+IHtcblxuICByZXR1cm4ge1xuICAgIGF1dGhvck5hbWU6ICdBbWF6b24gV2ViIFNlcnZpY2VzJyxcbiAgICByZXBvc2l0b3J5OiBgaHR0cHM6Ly9naXRodWIuY29tL2NkazhzLXRlYW0vJHtvcHRpb25zLnJlcG9OYW1lID8/IGJ1aWxkUmVwb3NpdG9yeU5hbWUob3B0aW9ucy5uYW1lKX0uZ2l0YCxcbiAgICBhdXRvQXBwcm92ZU9wdGlvbnM6IHtcbiAgICAgIGFsbG93ZWRVc2VybmFtZXM6IFsnY2RrOHMtYXV0b21hdGlvbiddLFxuICAgICAgc2VjcmV0OiAnR0lUSFVCX1RPS0VOJyxcbiAgICB9LFxuICAgIGF1dG9BcHByb3ZlVXBncmFkZXM6IHRydWUsXG4gICAgcmVsZWFzZVdvcmtmbG93OiBvcHRpb25zLnJlbGVhc2UsXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBkZWZhdWx0IHR5cGVzY3JpcHQgcHJvamVjdCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGROb2RlUHJvamVjdERlZmF1bHRPcHRpb25zKG9wdGlvbnM6IENkazhzVGVhbU5vZGVQcm9qZWN0T3B0aW9ucyk6XG5QaWNrPGphdmFzY3JpcHQuTm9kZVByb2plY3RPcHRpb25zLCBkZWZhdWx0T3B0aW9uc0tleXNUeXBlPiB7XG4gIHJldHVybiB7XG4gICAgLy8gaWYgcmVsZWFzZSBpcyBlbmFibGVkLCBkZWZhdWx0IHRvIHJlbGVhc2luZyB0byBucG0gYXMgd2VsbFxuICAgIHJlbGVhc2VUb05wbTogb3B0aW9ucy5yZWxlYXNlLFxuICAgIG1pbk5vZGVWZXJzaW9uOiAnMTQuMTcuMCcsXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlIHRoZSByZXBvc2l0b3J5IG5hbWUgYmFzZWQgb24gdGhlIHByb2plY3QgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUmVwb3NpdG9yeU5hbWUocHJvamVjdE5hbWU6IHN0cmluZykge1xuICByZXR1cm4gcHJvamVjdE5hbWUuc3RhcnRzV2l0aChTQ09QRSkgPyBwcm9qZWN0TmFtZS5yZXBsYWNlKFNDT1BFLCBOQU1FX1BSRUZJWCkgOiBwcm9qZWN0TmFtZTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQ2RrOHNUZWFtTm9kZVByb2plY3RgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENkazhzVGVhbU5vZGVQcm9qZWN0T3B0aW9ucyBleHRlbmRzIGphdmFzY3JpcHQuTm9kZVByb2plY3RPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkgaW5zaWRlIHRoZSBjZGs4cy10ZWFtXG4gICAqIG9yZyB3aGVyZSB0aGUgY29kZSBvZiB0aGUgcHJvamVjdCBpcyBsb2NhdGUgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHBhY2thZ2UgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQHBqaWQgY2RrOHMtdGVhbS1ub2RlLXByb2plY3RcbiAqL1xuZXhwb3J0IGNsYXNzIENkazhzVGVhbU5vZGVQcm9qZWN0IGV4dGVuZHMgamF2YXNjcmlwdC5Ob2RlUHJvamVjdCB7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrOHNUZWFtTm9kZVByb2plY3RPcHRpb25zKSB7XG5cbiAgICB2YWxpZGF0ZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgdmFsaWRhdGVQcm9qZWN0TmFtZShvcHRpb25zKTtcblxuICAgIGNvbnN0IGZpeGVkT3B0aW9ucyA9IGJ1aWxkTm9kZVByb2plY3RGaXhlZE9wdGlvbnMob3B0aW9ucyk7XG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBidWlsZE5vZGVQcm9qZWN0RGVmYXVsdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5maXhlZE9wdGlvbnMsXG4gICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXBvTmFtZSA9IG9wdGlvbnMucmVwb05hbWUgPz8gYnVpbGRSZXBvc2l0b3J5TmFtZShvcHRpb25zLm5hbWUpO1xuXG4gICAgYWRkQ29tcG9uZW50cyh0aGlzLCByZXBvTmFtZSk7XG5cbiAgfVxuXG59XG5cbi8qKlxuICogVmFsaWRhdGUgdGhhdCB0aGUgb3B0aW9ucyBtYXAgZG9lcyBub3QgY29udGFpbiBhbnkgaW52YWxpZCBvcHRpb24uXG4gKiBUaGlzIHdvdWxkIHVzdWFsbHkgYmUgaW1wbGVtZW50ZWQgYXQgY29tcGlsZSB0aW1lIHVzaW5nIE9taXQvUGljayBidXQganNpaVxuICogZG9lc24ndCBhbGxvdyB0aGlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVPcHRpb25zKG9wdGlvbnM6IGFueSkge1xuXG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBmaXhlZE9wdGlvbnNLZXlzKSB7XG4gICAgaWYgKGtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9wdGlvbjogJHtrZXl9YCk7XG4gICAgfVxuICB9XG5cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGUgbmFtZSBvZiBhIHByb2plY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVByb2plY3ROYW1lKG9wdGlvbnM6IENkazhzVGVhbU5vZGVQcm9qZWN0T3B0aW9ucykge1xuXG4gIC8vIHNub3dmbGFrZSBmb3IgbW9ub3JlcG9zXG4gIGlmIChvcHRpb25zLm5hbWUgPT09ICdyb290Jykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIHNub3dmbGFrZSBmb3IgY2RrOHMtY29yZVxuICBpZiAob3B0aW9ucy5uYW1lID09PSAnY2RrOHMnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gb3RoZXJ3aXNlIHdlIHdhbnQgaXQgdG8gZWl0aGVyIHN0YXJ0IHdpdGggdGhlICdAY2RrOHMnIHNjb3BlIG9mICdjZGs4cy0nIHByZWZpeC5cbiAgY29uc3QgbmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgY29uc3Qgc2NvcGVkID0gbmFtZS5zdGFydHNXaXRoKCdAJyk7XG5cbiAgaWYgKHNjb3BlZCkge1xuICAgIGlmICghbmFtZS5zdGFydHNXaXRoKFNDT1BFKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbGxlZ2FsIHByb2plY3Qgc2NvcGU6ICR7bmFtZX0uIFNjb3BlIG11c3QgYmUgJ0BjZGs4cy8nYCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICghbmFtZS5zdGFydHNXaXRoKE5BTUVfUFJFRklYKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbGxlZ2FsIHByb2plY3QgbmFtZTogJHtuYW1lfS4gTmFtZSBtdXN0IHN0YXJ0IHdpdGggJ2NkazhzLSdgKTtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIEFkZCBjb21tb24gY29tcG9uZW50cyB0byB0aGUgcHJvamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZENvbXBvbmVudHMocHJvamVjdDogTm9kZVByb2plY3QsIHJlcG9OYW1lOiBzdHJpbmcpIHtcblxuICBuZXcgQ29kZU9mQ29uZHVjdE1EKHByb2plY3QpO1xuICBuZXcgRENPKHByb2plY3QpO1xuICBuZXcgR2l0SG9va3MocHJvamVjdCk7XG4gIG5ldyBJc3N1ZVRlbXBsYXRlcyhwcm9qZWN0LCB7IHJlcG9OYW1lIH0pO1xuICBuZXcgU2VjdXJpdHlNRChwcm9qZWN0KTtcbiAgbmV3IFRyaWFnZShwcm9qZWN0KTtcblxufVxuXG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9DO0FBRXBDLDhEQUEyRDtBQUMzRCxtRkFBZ0Y7QUFDaEYsbURBQThDO0FBQzlDLGlFQUE2RDtBQUM3RCxtRkFBK0U7QUFDL0UsOERBQTZEO0FBQzdELHdEQUFxRDtBQUV4QyxRQUFBLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFDdkIsUUFBQSxLQUFLLEdBQUcsU0FBUyxDQUFDO0FBRS9COzs7R0FHRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsWUFBWTtJQUNaLGFBQWE7SUFDYixZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUVyQiw0Q0FBNEM7SUFDNUMsMEJBQTBCO0lBQzFCLGlCQUFpQjtDQUNULENBQUM7QUFHWDs7O0dBR0c7QUFDVSxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLGNBQWM7SUFDZCxTQUFTO0lBQ1QsZ0JBQWdCO0NBQ1IsQ0FBQztBQUdYOztHQUVHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQUMsT0FBb0M7SUFHL0UsT0FBTztRQUNMLFVBQVUsRUFBRSxxQkFBcUI7UUFDakMsVUFBVSxFQUFFLGlDQUFpQyxPQUFPLENBQUMsUUFBUSxJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTTtRQUN4RyxrQkFBa0IsRUFBRTtZQUNsQixnQkFBZ0IsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ3RDLE1BQU0sRUFBRSxjQUFjO1NBQ3ZCO1FBQ0QsbUJBQW1CLEVBQUUsSUFBSTtRQUN6QixlQUFlLEVBQUUsT0FBTyxDQUFDLE9BQU87S0FDakMsQ0FBQztBQUNKLENBQUM7QUFiRCxvRUFhQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsOEJBQThCLENBQUMsT0FBb0M7SUFFakYsT0FBTztRQUNMLDZEQUE2RDtRQUM3RCxZQUFZLEVBQUUsT0FBTyxD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QVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QixJQUFJLGdDQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxQyxJQUFJLHFCQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsSUFBSSxlQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUVwQyxDQUFDO0FBVEQsc0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IEJhY2twb3J0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9iYWNrcG9ydC9iYWNrcG9ydCc7XG5pbXBvcnQgeyBDb2RlT2ZDb25kdWN0TUQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvZGUtb2YtY29uZHVjdC9jb2RlLW9mLWNvbmR1Y3QnO1xuaW1wb3J0IHsgRENPIH0gZnJvbSAnLi4vY29tcG9uZW50cy9kY28vZGV2Y28nO1xuaW1wb3J0IHsgR2l0SG9va3MgfSBmcm9tICcuLi9jb21wb25lbnRzL2dpdC1ob29rcy9naXQtaG9va3MnO1xuaW1wb3J0IHsgSXNzdWVUZW1wbGF0ZXMgfSBmcm9tICcuLi9jb21wb25lbnRzL2lzc3VlLXRlbXBsYXRlcy9pc3N1ZS10ZW1wbGF0ZXMnO1xuaW1wb3J0IHsgU2VjdXJpdHlNRCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2VjdXJpdHkvc2VjdXJpdHknO1xuaW1wb3J0IHsgVHJpYWdlIH0gZnJvbSAnLi4vY29tcG9uZW50cy90cmlhZ2UvdHJpYWdlJztcblxuZXhwb3J0IGNvbnN0IE5BTUVfUFJFRklYID0gJ2NkazhzLSc7XG5leHBvcnQgY29uc3QgU0NPUEUgPSAnQGNkazhzLyc7XG5cbi8qKlxuICogU3Vic2V0IG9mIG9wdGlvbnMgdGhhdCBzaG91bGQgYmUgZml4ZWQgZm9yIGFsbCBjZGs4cy10ZWFtIG5vZGUgcHJvamVjdHMuXG4gKiBUaGVzZSB3aWxsIG5vdCBiZSBhdmFpbGFibGUgZm9yIGN1c3RvbWl6YXRpb24gYnkgaW5kaXZpZHVhbCBwcm9qZWN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZpeGVkT3B0aW9uc0tleXMgPSBbXG4gICdhdXRob3JOYW1lJyxcbiAgJ2F1dGhvckVtYWlsJyxcbiAgJ3JlcG9zaXRvcnknLFxuICAnYXV0b0FwcHJvdmVPcHRpb25zJyxcbiAgJ2F1dG9BcHByb3ZlVXBncmFkZXMnLFxuXG4gIC8vIHRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiAncmVsZWFzZScuXG4gIC8vIGxldHMgZGlzYWxsb3cgdXNpbmcgaXQuXG4gICdyZWxlYXNlV29ya2Zsb3cnLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIGZpeGVkT3B0aW9uc0tleXNUeXBlID0gdHlwZW9mIGZpeGVkT3B0aW9uc0tleXNbbnVtYmVyXTtcblxuLyoqXG4gKiBTdWJzZXQgb2Ygb3B0aW9ucyB0aGF0IGhhdmUgZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCBjZGs4cy10ZWFtIG5vZGUgcHJvamVjdHMuXG4gKiBUaGVzZSB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgY3VzdG9taXphdGlvbiBieSBpbmRpdmlkdWFsIHByb2plY3RzLlxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdE9wdGlvbnNLZXlzID0gW1xuICAncmVsZWFzZVRvTnBtJyxcbiAgJ3JlbGVhc2UnLFxuICAnbWluTm9kZVZlcnNpb24nLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIGRlZmF1bHRPcHRpb25zS2V5c1R5cGUgPSB0eXBlb2YgZGVmYXVsdE9wdGlvbnNLZXlzW251bWJlcl07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBmaXhlZCB0eXBlc2NyaXB0IHByb2plY3Qgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTm9kZVByb2plY3RGaXhlZE9wdGlvbnMob3B0aW9uczogQ2RrOHNUZWFtTm9kZVByb2plY3RPcHRpb25zKTpcblBpY2s8amF2YXNjcmlwdC5Ob2RlUHJvamVjdE9wdGlvbnMsIGZpeGVkT3B0aW9uc0tleXNUeXBlPiB7XG5cbiAgcmV0dXJuIHtcbiAgICBhdXRob3JOYW1lOiAnQW1hem9uIFdlYiBTZXJ2aWNlcycsXG4gICAgcmVwb3NpdG9yeTogYGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtLyR7b3B0aW9ucy5yZXBvTmFtZSA/PyBidWlsZFJlcG9zaXRvcnlOYW1lKG9wdGlvbnMubmFtZSl9LmdpdGAsXG4gICAgYXV0b0FwcHJvdmVPcHRpb25zOiB7XG4gICAgICBhbGxvd2VkVXNlcm5hbWVzOiBbJ2NkazhzLWF1dG9tYXRpb24nXSxcbiAgICAgIHNlY3JldDogJ0dJVEhVQl9UT0tFTicsXG4gICAgfSxcbiAgICBhdXRvQXBwcm92ZVVwZ3JhZGVzOiB0cnVlLFxuICAgIHJlbGVhc2VXb3JrZmxvdzogb3B0aW9ucy5yZWxlYXNlLFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgZGVmYXVsdCB0eXBlc2NyaXB0IHByb2plY3Qgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTm9kZVByb2plY3REZWZhdWx0T3B0aW9ucyhvcHRpb25zOiBDZGs4c1RlYW1Ob2RlUHJvamVjdE9wdGlvbnMpOlxuUGljazxqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0T3B0aW9ucywgZGVmYXVsdE9wdGlvbnNLZXlzVHlwZT4ge1xuICByZXR1cm4ge1xuICAgIC8vIGlmIHJlbGVhc2UgaXMgZW5hYmxlZCwgZGVmYXVsdCB0byByZWxlYXNpbmcgdG8gbnBtIGFzIHdlbGxcbiAgICByZWxlYXNlVG9OcG06IG9wdGlvbnMucmVsZWFzZSxcbiAgICBtaW5Ob2RlVmVyc2lvbjogJzE0LjE3LjAnLFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVwb3NpdG9yeSBuYW1lIGJhc2VkIG9uIHRoZSBwcm9qZWN0IG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJlcG9zaXRvcnlOYW1lKHByb2plY3ROYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHByb2plY3ROYW1lLnN0YXJ0c1dpdGgoU0NPUEUpID8gcHJvamVjdE5hbWUucmVwbGFjZShTQ09QRSwgTkFNRV9QUkVGSVgpIDogcHJvamVjdE5hbWU7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYENkazhzVGVhbU5vZGVQcm9qZWN0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGs4c1RlYW1Ob2RlUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0T3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IGluc2lkZSB0aGUgY2RrOHMtdGVhbVxuICAgKiBvcmcgd2hlcmUgdGhlIGNvZGUgb2YgdGhlIHByb2plY3QgaXMgbG9jYXRlIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBwYWNrYWdlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZmlndXJlIGEgYmFja3BvcnQgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBiYWNrcG9ydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEJyYW5jaGVzIHRvIGJhY2twb3J0IHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFdpbGwgYmUgZGVyaXZlZCBmcm9tIFBSIGxhYmVscy5cbiAgICovXG4gIHJlYWRvbmx5IGJhY2twb3J0QnJhbmNoZXM/OiBzdHJpbmdbXTtcblxufVxuXG4vKipcbiAqIEBwamlkIGNkazhzLXRlYW0tbm9kZS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBDZGs4c1RlYW1Ob2RlUHJvamVjdCBleHRlbmRzIGphdmFzY3JpcHQuTm9kZVByb2plY3Qge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENkazhzVGVhbU5vZGVQcm9qZWN0T3B0aW9ucykge1xuXG4gICAgdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpO1xuICAgIHZhbGlkYXRlUHJvamVjdE5hbWUob3B0aW9ucyk7XG5cbiAgICBjb25zdCBmaXhlZE9wdGlvbnMgPSBidWlsZE5vZGVQcm9qZWN0Rml4ZWRPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gYnVpbGROb2RlUHJvamVjdERlZmF1bHRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4uZml4ZWRPcHRpb25zLFxuICAgICAgLi4uZGVmYXVsdE9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVwb05hbWUgPSBvcHRpb25zLnJlcG9OYW1lID8/IGJ1aWxkUmVwb3NpdG9yeU5hbWUob3B0aW9ucy5uYW1lKTtcblxuICAgIGFkZENvbXBvbmVudHModGhpcywgcmVwb05hbWUpO1xuXG4gICAgaWYgKG9wdGlvbnMuYmFja3BvcnQgPz8gZmFsc2UpIHtcbiAgICAgIG5ldyBCYWNrcG9ydCh0aGlzLCB7IGJyYW5jaGVzOiBvcHRpb25zLmJhY2twb3J0QnJhbmNoZXMsIHJlcG9OYW1lIH0pO1xuICAgIH1cblxuICB9XG5cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBvcHRpb25zIG1hcCBkb2VzIG5vdCBjb250YWluIGFueSBpbnZhbGlkIG9wdGlvbi5cbiAqIFRoaXMgd291bGQgdXN1YWxseSBiZSBpbXBsZW1lbnRlZCBhdCBjb21waWxlIHRpbWUgdXNpbmcgT21pdC9QaWNrIGJ1dCBqc2lpXG4gKiBkb2Vzbid0IGFsbG93IHRoaXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU9wdGlvbnMob3B0aW9uczogYW55KSB7XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpO1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIGZpeGVkT3B0aW9uc0tleXMpIHtcbiAgICBpZiAoa2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb3B0aW9uOiAke2tleX1gKTtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoZSBuYW1lIG9mIGEgcHJvamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUHJvamVjdE5hbWUob3B0aW9uczogQ2RrOHNUZWFtTm9kZVByb2plY3RPcHRpb25zKSB7XG5cbiAgLy8gc25vd2ZsYWtlIGZvciBtb25vcmVwb3NcbiAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ3Jvb3QnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gc25vd2ZsYWtlIGZvciBjZGs4cy1jb3JlXG4gIGlmIChvcHRpb25zLm5hbWUgPT09ICdjZGs4cycpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBvdGhlcndpc2Ugd2Ugd2FudCBpdCB0byBlaXRoZXIgc3RhcnQgd2l0aCB0aGUgJ0BjZGs4cycgc2NvcGUgb2YgJ2NkazhzLScgcHJlZml4LlxuICBjb25zdCBuYW1lID0gb3B0aW9ucy5uYW1lO1xuICBjb25zdCBzY29wZWQgPSBuYW1lLnN0YXJ0c1dpdGgoJ0AnKTtcblxuICBpZiAoc2NvcGVkKSB7XG4gICAgaWYgKCFuYW1lLnN0YXJ0c1dpdGgoU0NPUEUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYElsbGVnYWwgcHJvamVjdCBzY29wZTogJHtuYW1lfS4gU2NvcGUgbXVzdCBiZSAnQGNkazhzLydgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFuYW1lLnN0YXJ0c1dpdGgoTkFNRV9QUkVGSVgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYElsbGVnYWwgcHJvamVjdCBuYW1lOiAke25hbWV9LiBOYW1lIG11c3Qgc3RhcnQgd2l0aCAnY2RrOHMtJ2ApO1xuICAgIH1cbiAgfVxuXG59XG5cbi8qKlxuICogQWRkIGNvbW1vbiBjb21wb25lbnRzIHRvIHRoZSBwcm9qZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkQ29tcG9uZW50cyhwcm9qZWN0OiBOb2RlUHJvamVjdCwgcmVwb05hbWU6IHN0cmluZykge1xuXG4gIG5ldyBDb2RlT2ZDb25kdWN0TUQocHJvamVjdCk7XG4gIG5ldyBEQ08ocHJvamVjdCk7XG4gIG5ldyBHaXRIb29rcyhwcm9qZWN0KTtcbiAgbmV3IElzc3VlVGVtcGxhdGVzKHByb2plY3QsIHsgcmVwb05hbWUgfSk7XG4gIG5ldyBTZWN1cml0eU1EKHByb2plY3QpO1xuICBuZXcgVHJpYWdlKHByb2plY3QsIHsgcmVwb05hbWUgfSk7XG5cbn1cblxuIl19
@@ -10,6 +10,18 @@ export interface Cdk8sTeamTypeScriptProjectOptions extends typescript.TypeScript
10
10
  * @default - the package name.
11
11
  */
12
12
  readonly repoName?: string;
13
+ /**
14
+ * Configure a backport workflow.
15
+ *
16
+ * @default false
17
+ */
18
+ readonly backport?: boolean;
19
+ /**
20
+ * Branches to backport to.
21
+ *
22
+ * @default - Will be derived from PR labels.
23
+ */
24
+ readonly backportBranches?: string[];
13
25
  }
14
26
  /**
15
27
  * @pjid cdk8s-team-typescript-project
@@ -5,6 +5,7 @@ exports.Cdk8sTeamTypeScriptProject = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const projen_1 = require("projen");
7
7
  const node = require("./node");
8
+ const backport_1 = require("../components/backport/backport");
8
9
  /**
9
10
  * @pjid cdk8s-team-typescript-project
10
11
  */
@@ -21,9 +22,12 @@ class Cdk8sTeamTypeScriptProject extends projen_1.typescript.TypeScriptProject {
21
22
  });
22
23
  const repoName = options.repoName ?? node.buildRepositoryName(options.name);
23
24
  node.addComponents(this, repoName);
25
+ if (options.backport ?? false) {
26
+ new backport_1.Backport(this, { branches: options.backportBranches, repoName });
27
+ }
24
28
  }
25
29
  }
26
30
  exports.Cdk8sTeamTypeScriptProject = Cdk8sTeamTypeScriptProject;
27
31
  _a = JSII_RTTI_SYMBOL_1;
28
- Cdk8sTeamTypeScriptProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamTypeScriptProject", version: "0.0.277" };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9DO0FBQ3BDLCtCQUErQjtBQWlCL0I7O0dBRUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCO0lBRTFFLFlBQVksT0FBMEM7UUFFcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUdwRSxLQUFLLENBQUM7WUFDSixHQUFHLFlBQVk7WUFDZixHQUFHLGNBQWM7WUFDakIsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXJDLENBQUM7O0FBckJILGdFQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0ICogYXMgbm9kZSBmcm9tICcuL25vZGUnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBDZGs4c1RlYW1UeXBlU2NyaXB0UHJvamVjdGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrOHNUZWFtVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeSBpbnNpZGUgdGhlIGNkazhzLXRlYW1cbiAgICogb3JnIHdoZXJlIHRoZSBjb2RlIG9mIHRoZSBwcm9qZWN0IGlzIGxvY2F0ZSBpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgcGFja2FnZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb05hbWU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBAcGppZCBjZGs4cy10ZWFtLXR5cGVzY3JpcHQtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgQ2RrOHNUZWFtVHlwZVNjcmlwdFByb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IHtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGs4c1RlYW1UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcblxuICAgIG5vZGUudmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpO1xuICAgIG5vZGUudmFsaWRhdGVQcm9qZWN0TmFtZShvcHRpb25zKTtcblxuICAgIGNvbnN0IGZpeGVkT3B0aW9ucyA9IG5vZGUuYnVpbGROb2RlUHJvamVjdEZpeGVkT3B0aW9ucyhvcHRpb25zKTtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IG5vZGUuYnVpbGROb2RlUHJvamVjdERlZmF1bHRPcHRpb25zKG9wdGlvbnMpO1xuXG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5maXhlZE9wdGlvbnMsXG4gICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXBvTmFtZSA9IG9wdGlvbnMucmVwb05hbWUgPz8gbm9kZS5idWlsZFJlcG9zaXRvcnlOYW1lKG9wdGlvbnMubmFtZSk7XG5cbiAgICBub2RlLmFkZENvbXBvbmVudHModGhpcywgcmVwb05hbWUpO1xuXG4gIH1cblxufVxuIl19
32
+ Cdk8sTeamTypeScriptProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamTypeScriptProject", version: "0.0.279" };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9DO0FBQ3BDLCtCQUErQjtBQUMvQiw4REFBMkQ7QUErQjNEOztHQUVHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQUUxRSxZQUFZLE9BQTBDO1FBRXBELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFHcEUsS0FBSyxDQUFDO1lBQ0osR0FBRyxZQUFZO1lBQ2YsR0FBRyxjQUFjO1lBQ2pCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVuQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFO1lBQzdCLElBQUksbUJBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDdEU7SUFFSCxDQUFDOztBQXpCSCxnRUEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCAqIGFzIG5vZGUgZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IEJhY2twb3J0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9iYWNrcG9ydC9iYWNrcG9ydCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYENkazhzVGVhbVR5cGVTY3JpcHRQcm9qZWN0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGs4c1RlYW1UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IGluc2lkZSB0aGUgY2RrOHMtdGVhbVxuICAgKiBvcmcgd2hlcmUgdGhlIGNvZGUgb2YgdGhlIHByb2plY3QgaXMgbG9jYXRlIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBwYWNrYWdlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZmlndXJlIGEgYmFja3BvcnQgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBiYWNrcG9ydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEJyYW5jaGVzIHRvIGJhY2twb3J0IHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFdpbGwgYmUgZGVyaXZlZCBmcm9tIFBSIGxhYmVscy5cbiAgICovXG4gIHJlYWRvbmx5IGJhY2twb3J0QnJhbmNoZXM/OiBzdHJpbmdbXTtcblxufVxuXG4vKipcbiAqIEBwamlkIGNkazhzLXRlYW0tdHlwZXNjcmlwdC1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBDZGs4c1RlYW1UeXBlU2NyaXB0UHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENkazhzVGVhbVR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuXG4gICAgbm9kZS52YWxpZGF0ZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgbm9kZS52YWxpZGF0ZVByb2plY3ROYW1lKG9wdGlvbnMpO1xuXG4gICAgY29uc3QgZml4ZWRPcHRpb25zID0gbm9kZS5idWlsZE5vZGVQcm9qZWN0Rml4ZWRPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gbm9kZS5idWlsZE5vZGVQcm9qZWN0RGVmYXVsdE9wdGlvbnMob3B0aW9ucyk7XG5cblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLmZpeGVkT3B0aW9ucyxcbiAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlcG9OYW1lID0gb3B0aW9ucy5yZXBvTmFtZSA/PyBub2RlLmJ1aWxkUmVwb3NpdG9yeU5hbWUob3B0aW9ucy5uYW1lKTtcblxuICAgIG5vZGUuYWRkQ29tcG9uZW50cyh0aGlzLCByZXBvTmFtZSk7XG5cbiAgICBpZiAob3B0aW9ucy5iYWNrcG9ydCA/PyBmYWxzZSkge1xuICAgICAgbmV3IEJhY2twb3J0KHRoaXMsIHsgYnJhbmNoZXM6IG9wdGlvbnMuYmFja3BvcnRCcmFuY2hlcywgcmVwb05hbWUgfSk7XG4gICAgfVxuXG4gIH1cblxufVxuIl19
package/package.json CHANGED
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "main": "lib/index.js",
72
72
  "license": "Apache-2.0",
73
- "version": "0.0.277",
73
+ "version": "0.0.279",
74
74
  "jest": {
75
75
  "testMatch": [
76
76
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",